From 428d851913dffff317776928c8cdc1e10d1808e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=90=89=E6=98=93?= Date: Mon, 27 Nov 2023 15:25:40 +0800 Subject: [PATCH] feat: #190 improve mysql grammer (#196) * refactor: generic rename to mysql * refactor: g4 with mysql syntax * test: mysql syntax * refactor: remove useless keywords * refactor: remove nonReserved keywords * refactor: lint specificFunction --------- Co-authored-by: liuyi --- CONTRIBUTING.md | 2 +- scripts/antlr4.js | 2 +- src/grammar/generic/README.md | 3 - src/grammar/generic/SqlLexer.g4 | 1250 - src/grammar/generic/SqlParser.g4 | 2593 - src/grammar/mysql/MySqlLexer.g4 | 1074 + src/grammar/mysql/MySqlParser.g4 | 2840 + src/index.ts | 4 +- src/lib/generic/SqlLexer.interp | 3175 - src/lib/generic/SqlLexer.tokens | 2074 - src/lib/generic/SqlLexer.ts | 7992 -- src/lib/generic/SqlParser.interp | 2423 - src/lib/generic/SqlParser.tokens | 2074 - src/lib/generic/SqlParser.ts | 76059 -------------- src/lib/generic/SqlParserListener.ts | 7613 -- src/lib/generic/SqlParserVisitor.ts | 4992 - src/lib/mysql/MySqlLexer.interp | 2720 + src/lib/mysql/MySqlLexer.tokens | 1769 + src/lib/mysql/MySqlLexer.ts | 6918 ++ src/lib/mysql/MySqlParser.interp | 2223 + src/lib/mysql/MySqlParser.tokens | 1769 + src/lib/mysql/MySqlParser.ts | 84250 ++++++++++++++++ src/lib/mysql/MySqlParserListener.ts | 9211 ++ src/lib/mysql/MySqlParserVisitor.ts | 6049 ++ src/parser/index.ts | 2 +- src/parser/{generic.ts => mysql.ts} | 14 +- test/parser/generic/lexer.test.ts | 12 - test/parser/mysql/lexer.test.ts | 12 + .../{generic => mysql}/listener.test.ts | 10 +- test/parser/{generic => mysql}/syntax.test.ts | 6 +- .../mysql/syntax/administration.test.ts | 51 + test/parser/mysql/syntax/ddl.test.ts | 58 + test/parser/mysql/syntax/dml.test.ts | 42 + .../mysql/syntax/fixtures/alterDatabase.sql | 20 + .../mysql/syntax/fixtures/alterEvent.sql | 26 + .../mysql/syntax/fixtures/alterFunction.sql | 23 + .../mysql/syntax/fixtures/alterInstance.sql | 16 + .../syntax/fixtures/alterLogFileGroup.sql | 14 + .../mysql/syntax/fixtures/alterProcedure.sql | 25 + .../syntax/fixtures/alterResourceGroup.sql | 25 + .../mysql/syntax/fixtures/alterServer.sql | 7 + .../mysql/syntax/fixtures/alterTable.sql | 105 + .../alterTableAndGeneratedColumns.sql | 10 + .../syntax/fixtures/alterTablePartition.sql | 14 + .../mysql/syntax/fixtures/alterTableSpace.sql | 45 + .../mysql/syntax/fixtures/alterUser.sql | 217 + .../mysql/syntax/fixtures/alterView.sql | 22 + .../mysql/syntax/fixtures/analyzeTable.sql | 48 + test/parser/mysql/syntax/fixtures/call.sql | 8 + .../mysql/syntax/fixtures/changeMasterTo.sql | 89 + .../fixtures/changeReplicationFilter.sql | 41 + .../fixtures/changeReplicationSource.sql | 58 + .../mysql/syntax/fixtures/checkSumTable.sql | 9 + .../mysql/syntax/fixtures/checkTable.sql | 19 + test/parser/mysql/syntax/fixtures/clone.sql | 18 + test/parser/mysql/syntax/fixtures/commit.sql | 48 + .../mysql/syntax/fixtures/createDatabase.sql | 34 + .../mysql/syntax/fixtures/createEvent.sql | 41 + .../mysql/syntax/fixtures/createFunction.sql | 13 + .../mysql/syntax/fixtures/createIndex.sql | 43 + .../syntax/fixtures/createLogFileGroup.sql | 30 + .../mysql/syntax/fixtures/createProcedure.sql | 23 + .../syntax/fixtures/createResourceGroup.sql | 26 + .../mysql/syntax/fixtures/createRole.sql | 7 + .../mysql/syntax/fixtures/createServer.sql | 17 + .../mysql/syntax/fixtures/createTable.sql | 119 + .../syntax/fixtures/createTableSpace.sql | 38 + .../mysql/syntax/fixtures/createTrigger.sql | 22 + .../mysql/syntax/fixtures/createUser.sql | 113 + .../mysql/syntax/fixtures/createView.sql | 18 + test/parser/mysql/syntax/fixtures/delete.sql | 44 + test/parser/mysql/syntax/fixtures/do.sql | 6 + .../mysql/syntax/fixtures/dropDatabase.sql | 8 + .../mysql/syntax/fixtures/dropEvent.sql | 7 + .../mysql/syntax/fixtures/dropFunction.sql | 6 + .../mysql/syntax/fixtures/dropIndex.sql | 27 + .../syntax/fixtures/dropLogFileGroup.sql | 8 + .../mysql/syntax/fixtures/dropProcedure.sql | 8 + .../syntax/fixtures/dropResourceGroup.sql | 7 + .../parser/mysql/syntax/fixtures/dropRole.sql | 9 + .../mysql/syntax/fixtures/dropServer.sql | 7 + .../fixtures/dropSpatialReferenceSystem.sql | 11 + .../mysql/syntax/fixtures/dropTable.sql | 17 + .../mysql/syntax/fixtures/dropTableSpace.sql | 13 + .../mysql/syntax/fixtures/dropTrigger.sql | 9 + .../parser/mysql/syntax/fixtures/dropUser.sql | 9 + .../parser/mysql/syntax/fixtures/dropView.sql | 12 + test/parser/mysql/syntax/fixtures/grant.sql | 100 + .../syntax/fixtures/groupReplication.sql | 16 + test/parser/mysql/syntax/fixtures/handler.sql | 52 + .../mysql/syntax/fixtures/importTable.sql | 8 + test/parser/mysql/syntax/fixtures/insert.sql | 88 + .../mysql/syntax/fixtures/insertSelect.sql | 35 + .../syntax/fixtures/installComponent.sql | 16 + .../mysql/syntax/fixtures/installPlugin.sql | 6 + .../mysql/syntax/fixtures/interSect.sql | 12 + .../parser/mysql/syntax/fixtures/loadData.sql | 40 + test/parser/mysql/syntax/fixtures/loadXml.sql | 29 + .../mysql/syntax/fixtures/lockTable.sql | 25 + .../mysql/syntax/fixtures/optimizeTable.sql | 13 + .../syntax/fixtures/otherAdministrative.sql | 155 + .../syntax/fixtures/parenthesizedQuery.sql | 50 + .../parser/mysql/syntax/fixtures/prepared.sql | 30 + .../mysql/syntax/fixtures/renameTable.sql | 15 + .../mysql/syntax/fixtures/renameUser.sql | 7 + .../mysql/syntax/fixtures/repairTable.sql | 14 + test/parser/mysql/syntax/fixtures/replace.sql | 66 + .../mysql/syntax/fixtures/replication.sql | 16 + .../syntax/fixtures/resetSlaveOrReplica.sql | 28 + test/parser/mysql/syntax/fixtures/revoke.sql | 63 + .../mysql/syntax/fixtures/savePoint.sql | 15 + test/parser/mysql/syntax/fixtures/select.sql | 72 + .../mysql/syntax/fixtures/selectJoin.sql | 104 + test/parser/mysql/syntax/fixtures/set.sql | 45 + .../mysql/syntax/fixtures/setCharacterSet.sql | 11 + .../mysql/syntax/fixtures/setDefaultRole.sql | 10 + .../parser/mysql/syntax/fixtures/setNames.sql | 9 + .../mysql/syntax/fixtures/setOperations.sql | 35 + .../mysql/syntax/fixtures/setPassword.sql | 39 + .../syntax/fixtures/setResourceGroup.sql | 9 + test/parser/mysql/syntax/fixtures/setRole.sql | 16 + .../mysql/syntax/fixtures/setTransaction.sql | 34 + test/parser/mysql/syntax/fixtures/show.sql | 474 + .../syntax/fixtures/startSlaveOrReplica.sql | 70 + .../syntax/fixtures/stopSlaveOrReplica.sql | 27 + .../mysql/syntax/fixtures/subQueries.sql | 190 + test/parser/mysql/syntax/fixtures/table.sql | 13 + .../mysql/syntax/fixtures/truncateTable.sql | 7 + .../syntax/fixtures/uninstallComponent.sql | 8 + .../mysql/syntax/fixtures/uninstallPlugin.sql | 6 + test/parser/mysql/syntax/fixtures/union.sql | 23 + test/parser/mysql/syntax/fixtures/update.sql | 47 + test/parser/mysql/syntax/fixtures/utility.sql | 60 + test/parser/mysql/syntax/fixtures/values.sql | 21 + test/parser/mysql/syntax/fixtures/with.sql | 179 + .../mysql/syntax/fixtures/xaTransactions.sql | 35 + test/parser/mysql/syntax/other.test.ts | 36 + .../parser/{generic => mysql}/visitor.test.ts | 10 +- test/parser/pgsql/visitor.test.ts | 2 +- 139 files changed, 123150 insertions(+), 110286 deletions(-) delete mode 100644 src/grammar/generic/README.md delete mode 100644 src/grammar/generic/SqlLexer.g4 delete mode 100644 src/grammar/generic/SqlParser.g4 create mode 100644 src/grammar/mysql/MySqlLexer.g4 create mode 100644 src/grammar/mysql/MySqlParser.g4 delete mode 100644 src/lib/generic/SqlLexer.interp delete mode 100644 src/lib/generic/SqlLexer.tokens delete mode 100644 src/lib/generic/SqlLexer.ts delete mode 100644 src/lib/generic/SqlParser.interp delete mode 100644 src/lib/generic/SqlParser.tokens delete mode 100644 src/lib/generic/SqlParser.ts delete mode 100644 src/lib/generic/SqlParserListener.ts delete mode 100644 src/lib/generic/SqlParserVisitor.ts create mode 100644 src/lib/mysql/MySqlLexer.interp create mode 100644 src/lib/mysql/MySqlLexer.tokens create mode 100644 src/lib/mysql/MySqlLexer.ts create mode 100644 src/lib/mysql/MySqlParser.interp create mode 100644 src/lib/mysql/MySqlParser.tokens create mode 100644 src/lib/mysql/MySqlParser.ts create mode 100644 src/lib/mysql/MySqlParserListener.ts create mode 100644 src/lib/mysql/MySqlParserVisitor.ts rename src/parser/{generic.ts => mysql.ts} (57%) delete mode 100644 test/parser/generic/lexer.test.ts create mode 100644 test/parser/mysql/lexer.test.ts rename test/parser/{generic => mysql}/listener.test.ts (67%) rename test/parser/{generic => mysql}/syntax.test.ts (87%) create mode 100644 test/parser/mysql/syntax/administration.test.ts create mode 100644 test/parser/mysql/syntax/ddl.test.ts create mode 100644 test/parser/mysql/syntax/dml.test.ts create mode 100644 test/parser/mysql/syntax/fixtures/alterDatabase.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterEvent.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterFunction.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterInstance.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterLogFileGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterProcedure.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterResourceGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterServer.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterTableAndGeneratedColumns.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterTablePartition.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterTableSpace.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterUser.sql create mode 100644 test/parser/mysql/syntax/fixtures/alterView.sql create mode 100644 test/parser/mysql/syntax/fixtures/analyzeTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/call.sql create mode 100644 test/parser/mysql/syntax/fixtures/changeMasterTo.sql create mode 100644 test/parser/mysql/syntax/fixtures/changeReplicationFilter.sql create mode 100644 test/parser/mysql/syntax/fixtures/changeReplicationSource.sql create mode 100644 test/parser/mysql/syntax/fixtures/checkSumTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/checkTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/clone.sql create mode 100644 test/parser/mysql/syntax/fixtures/commit.sql create mode 100644 test/parser/mysql/syntax/fixtures/createDatabase.sql create mode 100644 test/parser/mysql/syntax/fixtures/createEvent.sql create mode 100644 test/parser/mysql/syntax/fixtures/createFunction.sql create mode 100644 test/parser/mysql/syntax/fixtures/createIndex.sql create mode 100644 test/parser/mysql/syntax/fixtures/createLogFileGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/createProcedure.sql create mode 100644 test/parser/mysql/syntax/fixtures/createResourceGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/createRole.sql create mode 100644 test/parser/mysql/syntax/fixtures/createServer.sql create mode 100644 test/parser/mysql/syntax/fixtures/createTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/createTableSpace.sql create mode 100644 test/parser/mysql/syntax/fixtures/createTrigger.sql create mode 100644 test/parser/mysql/syntax/fixtures/createUser.sql create mode 100644 test/parser/mysql/syntax/fixtures/createView.sql create mode 100644 test/parser/mysql/syntax/fixtures/delete.sql create mode 100644 test/parser/mysql/syntax/fixtures/do.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropDatabase.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropEvent.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropFunction.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropIndex.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropLogFileGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropProcedure.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropResourceGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropRole.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropServer.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropSpatialReferenceSystem.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropTableSpace.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropTrigger.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropUser.sql create mode 100644 test/parser/mysql/syntax/fixtures/dropView.sql create mode 100644 test/parser/mysql/syntax/fixtures/grant.sql create mode 100644 test/parser/mysql/syntax/fixtures/groupReplication.sql create mode 100644 test/parser/mysql/syntax/fixtures/handler.sql create mode 100644 test/parser/mysql/syntax/fixtures/importTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/insert.sql create mode 100644 test/parser/mysql/syntax/fixtures/insertSelect.sql create mode 100644 test/parser/mysql/syntax/fixtures/installComponent.sql create mode 100644 test/parser/mysql/syntax/fixtures/installPlugin.sql create mode 100644 test/parser/mysql/syntax/fixtures/interSect.sql create mode 100644 test/parser/mysql/syntax/fixtures/loadData.sql create mode 100644 test/parser/mysql/syntax/fixtures/loadXml.sql create mode 100644 test/parser/mysql/syntax/fixtures/lockTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/optimizeTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/otherAdministrative.sql create mode 100644 test/parser/mysql/syntax/fixtures/parenthesizedQuery.sql create mode 100644 test/parser/mysql/syntax/fixtures/prepared.sql create mode 100644 test/parser/mysql/syntax/fixtures/renameTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/renameUser.sql create mode 100644 test/parser/mysql/syntax/fixtures/repairTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/replace.sql create mode 100644 test/parser/mysql/syntax/fixtures/replication.sql create mode 100644 test/parser/mysql/syntax/fixtures/resetSlaveOrReplica.sql create mode 100644 test/parser/mysql/syntax/fixtures/revoke.sql create mode 100644 test/parser/mysql/syntax/fixtures/savePoint.sql create mode 100644 test/parser/mysql/syntax/fixtures/select.sql create mode 100644 test/parser/mysql/syntax/fixtures/selectJoin.sql create mode 100644 test/parser/mysql/syntax/fixtures/set.sql create mode 100644 test/parser/mysql/syntax/fixtures/setCharacterSet.sql create mode 100644 test/parser/mysql/syntax/fixtures/setDefaultRole.sql create mode 100644 test/parser/mysql/syntax/fixtures/setNames.sql create mode 100644 test/parser/mysql/syntax/fixtures/setOperations.sql create mode 100644 test/parser/mysql/syntax/fixtures/setPassword.sql create mode 100644 test/parser/mysql/syntax/fixtures/setResourceGroup.sql create mode 100644 test/parser/mysql/syntax/fixtures/setRole.sql create mode 100644 test/parser/mysql/syntax/fixtures/setTransaction.sql create mode 100644 test/parser/mysql/syntax/fixtures/show.sql create mode 100644 test/parser/mysql/syntax/fixtures/startSlaveOrReplica.sql create mode 100644 test/parser/mysql/syntax/fixtures/stopSlaveOrReplica.sql create mode 100644 test/parser/mysql/syntax/fixtures/subQueries.sql create mode 100644 test/parser/mysql/syntax/fixtures/table.sql create mode 100644 test/parser/mysql/syntax/fixtures/truncateTable.sql create mode 100644 test/parser/mysql/syntax/fixtures/uninstallComponent.sql create mode 100644 test/parser/mysql/syntax/fixtures/uninstallPlugin.sql create mode 100644 test/parser/mysql/syntax/fixtures/union.sql create mode 100644 test/parser/mysql/syntax/fixtures/update.sql create mode 100644 test/parser/mysql/syntax/fixtures/utility.sql create mode 100644 test/parser/mysql/syntax/fixtures/values.sql create mode 100644 test/parser/mysql/syntax/fixtures/with.sql create mode 100644 test/parser/mysql/syntax/fixtures/xaTransactions.sql create mode 100644 test/parser/mysql/syntax/other.test.ts rename test/parser/{generic => mysql}/visitor.test.ts (74%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f730477..f98774d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ yarn test Compile one language: ```bash -yarn antlr4 --lang=generic +yarn antlr4 --lang=mysql ``` Compile all languages: diff --git a/scripts/antlr4.js b/scripts/antlr4.js index 11c9c76..e0b9f88 100644 --- a/scripts/antlr4.js +++ b/scripts/antlr4.js @@ -64,7 +64,7 @@ function main() { compile(language); }); } else if (argv.lang) { - // compile single: yarn antlr4 --lang=generic + // compile single: yarn antlr4 --lang=mysql const supportedLanguage = languageEntries.some((language) => language === argv.lang); if (supportedLanguage) { compile(argv.lang); diff --git a/src/grammar/generic/README.md b/src/grammar/generic/README.md deleted file mode 100644 index ce17c7c..0000000 --- a/src/grammar/generic/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# MySQL Grammar - -[MySQL Grammar](https://github.com/mysql/mysql-workbench/tree/8.0/library/parsers/grammars) diff --git a/src/grammar/generic/SqlLexer.g4 b/src/grammar/generic/SqlLexer.g4 deleted file mode 100644 index d0192d1..0000000 --- a/src/grammar/generic/SqlLexer.g4 +++ /dev/null @@ -1,1250 +0,0 @@ -/* -MySQL (Positive Technologies) grammar -The MIT License (MIT). -Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. -Copyright (c) 2017, Ivan Khudyashev (IHudyashov@ptsecurity.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/** - * This file is an adaptation of antlr's grammars-v4/sql/mysql/Positive-Technologies/MySqlLexer.g4 grammar. - * Reference: https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlLexer.g4 - */ - -lexer grammar SqlLexer; - -channels { MYSQLCOMMENT, ERRORCHANNEL } - -// SKIP - -SPACE: [ \t\r\n]+ -> channel(HIDDEN); -SPEC_MYSQL_COMMENT: '/*!' .+? '*/' -> channel(MYSQLCOMMENT); -COMMENT_INPUT: '/*' .*? '*/' -> channel(HIDDEN); -LINE_COMMENT: ( - ('--' | '#') ~[\r\n]* ('\r'? '\n' | EOF) - | '--' ('\r'? '\n' | EOF) - ) -> channel(HIDDEN); - - -// Keywords -// Common Keywords - -ADD: 'ADD'; -ALL: 'ALL'; -ALTER: 'ALTER'; -ALWAYS: 'ALWAYS'; -ANALYZE: 'ANALYZE'; -AND: 'AND'; -AS: 'AS'; -ASC: 'ASC'; -BEFORE: 'BEFORE'; -BETWEEN: 'BETWEEN'; -BOTH: 'BOTH'; -BY: 'BY'; -CALL: 'CALL'; -CASCADE: 'CASCADE'; -CASE: 'CASE'; -CAST: 'CAST'; -CHANGE: 'CHANGE'; -CHARACTER: 'CHARACTER'; -CHECK: 'CHECK'; -COLLATE: 'COLLATE'; -COLUMN: 'COLUMN'; -CONDITION: 'CONDITION'; -CONSTRAINT: 'CONSTRAINT'; -CONTINUE: 'CONTINUE'; -CONVERT: 'CONVERT'; -CREATE: 'CREATE'; -CROSS: 'CROSS'; -CURRENT: 'CURRENT'; -CURRENT_USER: 'CURRENT_USER'; -CURSOR: 'CURSOR'; -DATABASE: 'DATABASE'; -DATABASES: 'DATABASES'; -DECLARE: 'DECLARE'; -DEFAULT: 'DEFAULT'; -DELAYED: 'DELAYED'; -DELETE: 'DELETE'; -DESC: 'DESC'; -DESCRIBE: 'DESCRIBE'; -DETERMINISTIC: 'DETERMINISTIC'; -DIAGNOSTICS: 'DIAGNOSTICS'; -DISTINCT: 'DISTINCT'; -DISTINCTROW: 'DISTINCTROW'; -DROP: 'DROP'; -EACH: 'EACH'; -ELSE: 'ELSE'; -ELSEIF: 'ELSEIF'; -ENCLOSED: 'ENCLOSED'; -ESCAPED: 'ESCAPED'; -EXISTS: 'EXISTS'; -EXIT: 'EXIT'; -EXPLAIN: 'EXPLAIN'; -FALSE: 'FALSE'; -FETCH: 'FETCH'; -FOR: 'FOR'; -FORCE: 'FORCE'; -FOREIGN: 'FOREIGN'; -FROM: 'FROM'; -FULLTEXT: 'FULLTEXT'; -GENERATED: 'GENERATED'; -GET: 'GET'; -GRANT: 'GRANT'; -GROUP: 'GROUP'; -HAVING: 'HAVING'; -HIGH_PRIORITY: 'HIGH_PRIORITY'; -IF: 'IF'; -IGNORE: 'IGNORE'; -IN: 'IN'; -INDEX: 'INDEX'; -INFILE: 'INFILE'; -INNER: 'INNER'; -INOUT: 'INOUT'; -INSERT: 'INSERT'; -INTERVAL: 'INTERVAL'; -INTO: 'INTO'; -IS: 'IS'; -ITERATE: 'ITERATE'; -JOIN: 'JOIN'; -KEY: 'KEY'; -KEYS: 'KEYS'; -KILL: 'KILL'; -LEADING: 'LEADING'; -LEAVE: 'LEAVE'; -LEFT: 'LEFT'; -LIKE: 'LIKE'; -LIMIT: 'LIMIT'; -LINEAR: 'LINEAR'; -LINES: 'LINES'; -LOAD: 'LOAD'; -LOCK: 'LOCK'; -LOOP: 'LOOP'; -LOW_PRIORITY: 'LOW_PRIORITY'; -MASTER_BIND: 'MASTER_BIND'; -MASTER_SSL_VERIFY_SERVER_CERT: 'MASTER_SSL_VERIFY_SERVER_CERT'; -MATCH: 'MATCH'; -MAXVALUE: 'MAXVALUE'; -MODIFIES: 'MODIFIES'; -NATURAL: 'NATURAL'; -NOT: 'NOT'; -NO_WRITE_TO_BINLOG: 'NO_WRITE_TO_BINLOG'; -NULL_LITERAL: 'NULL'; -NUMBER: 'NUMBER'; -ON: 'ON'; -OPTIMIZE: 'OPTIMIZE'; -OPTION: 'OPTION'; -OPTIONALLY: 'OPTIONALLY'; -OR: 'OR'; -ORDER: 'ORDER'; -OUT: 'OUT'; -OUTER: 'OUTER'; -OUTFILE: 'OUTFILE'; -PARTITION: 'PARTITION'; -PRIMARY: 'PRIMARY'; -PROCEDURE: 'PROCEDURE'; -PURGE: 'PURGE'; -RANGE: 'RANGE'; -READ: 'READ'; -READS: 'READS'; -REFERENCES: 'REFERENCES'; -REGEXP: 'REGEXP'; -RELEASE: 'RELEASE'; -RENAME: 'RENAME'; -REPEAT: 'REPEAT'; -REPLACE: 'REPLACE'; -REQUIRE: 'REQUIRE'; -RESIGNAL: 'RESIGNAL'; -RESTRICT: 'RESTRICT'; -RETURN: 'RETURN'; -REVOKE: 'REVOKE'; -RIGHT: 'RIGHT'; -RLIKE: 'RLIKE'; -SCHEMA: 'SCHEMA'; -SCHEMAS: 'SCHEMAS'; -SELECT: 'SELECT'; -SET: 'SET'; -SEPARATOR: 'SEPARATOR'; -SHOW: 'SHOW'; -SIGNAL: 'SIGNAL'; -SPATIAL: 'SPATIAL'; -SQL: 'SQL'; -SQLEXCEPTION: 'SQLEXCEPTION'; -SQLSTATE: 'SQLSTATE'; -SQLWARNING: 'SQLWARNING'; -SQL_BIG_RESULT: 'SQL_BIG_RESULT'; -SQL_CALC_FOUND_ROWS: 'SQL_CALC_FOUND_ROWS'; -SQL_SMALL_RESULT: 'SQL_SMALL_RESULT'; -SSL: 'SSL'; -STACKED: 'STACKED'; -STARTING: 'STARTING'; -STRAIGHT_JOIN: 'STRAIGHT_JOIN'; -TABLE: 'TABLE'; -TERMINATED: 'TERMINATED'; -THEN: 'THEN'; -TO: 'TO'; -TRAILING: 'TRAILING'; -TRIGGER: 'TRIGGER'; -TRUE: 'TRUE'; -UNDO: 'UNDO'; -UNION: 'UNION'; -UNIQUE: 'UNIQUE'; -UNLOCK: 'UNLOCK'; -UNSIGNED: 'UNSIGNED'; -UPDATE: 'UPDATE'; -USAGE: 'USAGE'; -USE: 'USE'; -USING: 'USING'; -VALUES: 'VALUES'; -WHEN: 'WHEN'; -WHERE: 'WHERE'; -WHILE: 'WHILE'; -WITH: 'WITH'; -WRITE: 'WRITE'; -XOR: 'XOR'; -ZEROFILL: 'ZEROFILL'; - - -// DATA TYPE Keywords - -TINYINT: 'TINYINT'; -SMALLINT: 'SMALLINT'; -MEDIUMINT: 'MEDIUMINT'; -MIDDLEINT: 'MIDDLEINT'; -INT: 'INT'; -INT1: 'INT1'; -INT2: 'INT2'; -INT3: 'INT3'; -INT4: 'INT4'; -INT8: 'INT8'; -INTEGER: 'INTEGER'; -BIGINT: 'BIGINT'; -REAL: 'REAL'; -DOUBLE: 'DOUBLE'; -PRECISION: 'PRECISION'; -FLOAT: 'FLOAT'; -FLOAT4: 'FLOAT4'; -FLOAT8: 'FLOAT8'; -DECIMAL: 'DECIMAL'; -DEC: 'DEC'; -NUMERIC: 'NUMERIC'; -DATE: 'DATE'; -TIME: 'TIME'; -TIMESTAMP: 'TIMESTAMP'; -DATETIME: 'DATETIME'; -YEAR: 'YEAR'; -CHAR: 'CHAR'; -VARCHAR: 'VARCHAR'; -NVARCHAR: 'NVARCHAR'; -NATIONAL: 'NATIONAL'; -BINARY: 'BINARY'; -VARBINARY: 'VARBINARY'; -TINYBLOB: 'TINYBLOB'; -BLOB: 'BLOB'; -MEDIUMBLOB: 'MEDIUMBLOB'; -LONG: 'LONG'; -LONGBLOB: 'LONGBLOB'; -TINYTEXT: 'TINYTEXT'; -TEXT: 'TEXT'; -MEDIUMTEXT: 'MEDIUMTEXT'; -LONGTEXT: 'LONGTEXT'; -ENUM: 'ENUM'; -VARYING: 'VARYING'; -SERIAL: 'SERIAL'; - - -// Interval type Keywords - -YEAR_MONTH: 'YEAR_MONTH'; -DAY_HOUR: 'DAY_HOUR'; -DAY_MINUTE: 'DAY_MINUTE'; -DAY_SECOND: 'DAY_SECOND'; -HOUR_MINUTE: 'HOUR_MINUTE'; -HOUR_SECOND: 'HOUR_SECOND'; -MINUTE_SECOND: 'MINUTE_SECOND'; -SECOND_MICROSECOND: 'SECOND_MICROSECOND'; -MINUTE_MICROSECOND: 'MINUTE_MICROSECOND'; -HOUR_MICROSECOND: 'HOUR_MICROSECOND'; -DAY_MICROSECOND: 'DAY_MICROSECOND'; - -// JSON keywords -JSON_VALID: 'JSON_VALID'; -JSON_SCHEMA_VALID: 'JSON_SCHEMA_VALID'; - -// Group function Keywords - -AVG: 'AVG'; -BIT_AND: 'BIT_AND'; -BIT_OR: 'BIT_OR'; -BIT_XOR: 'BIT_XOR'; -COUNT: 'COUNT'; -GROUP_CONCAT: 'GROUP_CONCAT'; -MAX: 'MAX'; -MIN: 'MIN'; -STD: 'STD'; -STDDEV: 'STDDEV'; -STDDEV_POP: 'STDDEV_POP'; -STDDEV_SAMP: 'STDDEV_SAMP'; -SUM: 'SUM'; -VAR_POP: 'VAR_POP'; -VAR_SAMP: 'VAR_SAMP'; -VARIANCE: 'VARIANCE'; - -// Common function Keywords - -CURRENT_DATE: 'CURRENT_DATE'; -CURRENT_TIME: 'CURRENT_TIME'; -CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'; -LOCALTIME: 'LOCALTIME'; -CURDATE: 'CURDATE'; -CURTIME: 'CURTIME'; -DATE_ADD: 'DATE_ADD'; -DATE_SUB: 'DATE_SUB'; -EXTRACT: 'EXTRACT'; -LOCALTIMESTAMP: 'LOCALTIMESTAMP'; -NOW: 'NOW'; -POSITION: 'POSITION'; -SUBSTR: 'SUBSTR'; -SUBSTRING: 'SUBSTRING'; -SYSDATE: 'SYSDATE'; -TRIM: 'TRIM'; -UTC_DATE: 'UTC_DATE'; -UTC_TIME: 'UTC_TIME'; -UTC_TIMESTAMP: 'UTC_TIMESTAMP'; - -// Keywords, but can be ID -// Common Keywords, but can be ID - -ACCOUNT: 'ACCOUNT'; -ACTION: 'ACTION'; -AFTER: 'AFTER'; -AGGREGATE: 'AGGREGATE'; -ALGORITHM: 'ALGORITHM'; -ANY: 'ANY'; -AT: 'AT'; -AUTHORS: 'AUTHORS'; -AUTOCOMMIT: 'AUTOCOMMIT'; -AUTOEXTEND_SIZE: 'AUTOEXTEND_SIZE'; -AUTO_INCREMENT: 'AUTO_INCREMENT'; -AVG_ROW_LENGTH: 'AVG_ROW_LENGTH'; -BEGIN: 'BEGIN'; -BINLOG: 'BINLOG'; -BIT: 'BIT'; -BLOCK: 'BLOCK'; -BOOL: 'BOOL'; -BOOLEAN: 'BOOLEAN'; -BTREE: 'BTREE'; -CACHE: 'CACHE'; -CASCADED: 'CASCADED'; -CHAIN: 'CHAIN'; -CHANGED: 'CHANGED'; -CHANNEL: 'CHANNEL'; -CHECKSUM: 'CHECKSUM'; -PAGE_CHECKSUM: 'PAGE_CHECKSUM'; -CIPHER: 'CIPHER'; -CLASS_ORIGIN: 'CLASS_ORIGIN'; -CLIENT: 'CLIENT'; -CLOSE: 'CLOSE'; -COALESCE: 'COALESCE'; -CODE: 'CODE'; -COLUMNS: 'COLUMNS'; -COLUMN_FORMAT: 'COLUMN_FORMAT'; -COLUMN_NAME: 'COLUMN_NAME'; -COMMENT: 'COMMENT'; -COMMIT: 'COMMIT'; -COMPACT: 'COMPACT'; -COMPLETION: 'COMPLETION'; -COMPRESSED: 'COMPRESSED'; -COMPRESSION: 'COMPRESSION'; -CONCURRENT: 'CONCURRENT'; -CONNECTION: 'CONNECTION'; -CONSISTENT: 'CONSISTENT'; -CONSTRAINT_CATALOG: 'CONSTRAINT_CATALOG'; -CONSTRAINT_SCHEMA: 'CONSTRAINT_SCHEMA'; -CONSTRAINT_NAME: 'CONSTRAINT_NAME'; -CONTAINS: 'CONTAINS'; -CONTEXT: 'CONTEXT'; -CONTRIBUTORS: 'CONTRIBUTORS'; -COPY: 'COPY'; -CPU: 'CPU'; -CURSOR_NAME: 'CURSOR_NAME'; -DATA: 'DATA'; -DATAFILE: 'DATAFILE'; -DEALLOCATE: 'DEALLOCATE'; -DEFAULT_AUTH: 'DEFAULT_AUTH'; -DEFINER: 'DEFINER'; -DELAY_KEY_WRITE: 'DELAY_KEY_WRITE'; -DES_KEY_FILE: 'DES_KEY_FILE'; -DIRECTORY: 'DIRECTORY'; -DISABLE: 'DISABLE'; -DISCARD: 'DISCARD'; -DISK: 'DISK'; -DO: 'DO'; -DUMPFILE: 'DUMPFILE'; -DUPLICATE: 'DUPLICATE'; -DYNAMIC: 'DYNAMIC'; -ENABLE: 'ENABLE'; -ENCRYPTION: 'ENCRYPTION'; -END: 'END'; -ENDS: 'ENDS'; -ENGINE: 'ENGINE'; -ENGINES: 'ENGINES'; -ERROR: 'ERROR'; -ERRORS: 'ERRORS'; -ESCAPE: 'ESCAPE'; -EVEN: 'EVEN'; -EVENT: 'EVENT'; -EVENTS: 'EVENTS'; -EVERY: 'EVERY'; -EXCHANGE: 'EXCHANGE'; -EXCLUSIVE: 'EXCLUSIVE'; -EXPIRE: 'EXPIRE'; -EXPORT: 'EXPORT'; -EXTENDED: 'EXTENDED'; -EXTENT_SIZE: 'EXTENT_SIZE'; -FAST: 'FAST'; -FAULTS: 'FAULTS'; -FIELDS: 'FIELDS'; -FILE_BLOCK_SIZE: 'FILE_BLOCK_SIZE'; -FILTER: 'FILTER'; -FIRST: 'FIRST'; -FIXED: 'FIXED'; -FLUSH: 'FLUSH'; -FOLLOWS: 'FOLLOWS'; -FOUND: 'FOUND'; -FULL: 'FULL'; -FUNCTION: 'FUNCTION'; -GENERAL: 'GENERAL'; -GLOBAL: 'GLOBAL'; -GRANTS: 'GRANTS'; -GROUP_REPLICATION: 'GROUP_REPLICATION'; -HANDLER: 'HANDLER'; -HASH: 'HASH'; -HELP: 'HELP'; -HOST: 'HOST'; -HOSTS: 'HOSTS'; -IDENTIFIED: 'IDENTIFIED'; -IGNORE_SERVER_IDS: 'IGNORE_SERVER_IDS'; -IMPORT: 'IMPORT'; -INDEXES: 'INDEXES'; -INITIAL_SIZE: 'INITIAL_SIZE'; -INPLACE: 'INPLACE'; -INSERT_METHOD: 'INSERT_METHOD'; -INSTALL: 'INSTALL'; -INSTANCE: 'INSTANCE'; -INVISIBLE: 'INVISIBLE'; -INVOKER: 'INVOKER'; -IO: 'IO'; -IO_THREAD: 'IO_THREAD'; -IPC: 'IPC'; -ISOLATION: 'ISOLATION'; -ISSUER: 'ISSUER'; -JSON: 'JSON'; -KEY_BLOCK_SIZE: 'KEY_BLOCK_SIZE'; -LANGUAGE: 'LANGUAGE'; -LAST: 'LAST'; -LEAVES: 'LEAVES'; -LESS: 'LESS'; -LEVEL: 'LEVEL'; -LIST: 'LIST'; -LOCAL: 'LOCAL'; -LOGFILE: 'LOGFILE'; -LOGS: 'LOGS'; -MASTER: 'MASTER'; -MASTER_AUTO_POSITION: 'MASTER_AUTO_POSITION'; -MASTER_CONNECT_RETRY: 'MASTER_CONNECT_RETRY'; -MASTER_DELAY: 'MASTER_DELAY'; -MASTER_HEARTBEAT_PERIOD: 'MASTER_HEARTBEAT_PERIOD'; -MASTER_HOST: 'MASTER_HOST'; -MASTER_LOG_FILE: 'MASTER_LOG_FILE'; -MASTER_LOG_POS: 'MASTER_LOG_POS'; -MASTER_PASSWORD: 'MASTER_PASSWORD'; -MASTER_PORT: 'MASTER_PORT'; -MASTER_RETRY_COUNT: 'MASTER_RETRY_COUNT'; -MASTER_SSL: 'MASTER_SSL'; -MASTER_SSL_CA: 'MASTER_SSL_CA'; -MASTER_SSL_CAPATH: 'MASTER_SSL_CAPATH'; -MASTER_SSL_CERT: 'MASTER_SSL_CERT'; -MASTER_SSL_CIPHER: 'MASTER_SSL_CIPHER'; -MASTER_SSL_CRL: 'MASTER_SSL_CRL'; -MASTER_SSL_CRLPATH: 'MASTER_SSL_CRLPATH'; -MASTER_SSL_KEY: 'MASTER_SSL_KEY'; -MASTER_TLS_VERSION: 'MASTER_TLS_VERSION'; -MASTER_USER: 'MASTER_USER'; -MAX_CONNECTIONS_PER_HOUR: 'MAX_CONNECTIONS_PER_HOUR'; -MAX_QUERIES_PER_HOUR: 'MAX_QUERIES_PER_HOUR'; -MAX_ROWS: 'MAX_ROWS'; -MAX_SIZE: 'MAX_SIZE'; -MAX_UPDATES_PER_HOUR: 'MAX_UPDATES_PER_HOUR'; -MAX_USER_CONNECTIONS: 'MAX_USER_CONNECTIONS'; -MEDIUM: 'MEDIUM'; -MERGE: 'MERGE'; -MESSAGE_TEXT: 'MESSAGE_TEXT'; -MID: 'MID'; -MIGRATE: 'MIGRATE'; -MIN_ROWS: 'MIN_ROWS'; -MODE: 'MODE'; -MODIFY: 'MODIFY'; -MUTEX: 'MUTEX'; -MYSQL: 'MYSQL'; -MYSQL_ERRNO: 'MYSQL_ERRNO'; -NAME: 'NAME'; -NAMES: 'NAMES'; -NCHAR: 'NCHAR'; -NEVER: 'NEVER'; -NEXT: 'NEXT'; -NO: 'NO'; -NODEGROUP: 'NODEGROUP'; -NONE: 'NONE'; -OFFLINE: 'OFFLINE'; -OFFSET: 'OFFSET'; -OJ: 'OJ'; -OLD_PASSWORD: 'OLD_PASSWORD'; -ONE: 'ONE'; -ONLINE: 'ONLINE'; -ONLY: 'ONLY'; -OPEN: 'OPEN'; -OPTIMIZER_COSTS: 'OPTIMIZER_COSTS'; -OPTIONS: 'OPTIONS'; -OWNER: 'OWNER'; -PACK_KEYS: 'PACK_KEYS'; -PAGE: 'PAGE'; -PARSER: 'PARSER'; -PARTIAL: 'PARTIAL'; -PARTITIONING: 'PARTITIONING'; -PARTITIONS: 'PARTITIONS'; -PASSWORD: 'PASSWORD'; -PHASE: 'PHASE'; -PLUGIN: 'PLUGIN'; -PLUGIN_DIR: 'PLUGIN_DIR'; -PLUGINS: 'PLUGINS'; -PORT: 'PORT'; -PRECEDES: 'PRECEDES'; -PREPARE: 'PREPARE'; -PRESERVE: 'PRESERVE'; -PREV: 'PREV'; -PROCESSLIST: 'PROCESSLIST'; -PROFILE: 'PROFILE'; -PROFILES: 'PROFILES'; -PROXY: 'PROXY'; -QUERY: 'QUERY'; -QUICK: 'QUICK'; -REBUILD: 'REBUILD'; -RECOVER: 'RECOVER'; -REDO_BUFFER_SIZE: 'REDO_BUFFER_SIZE'; -REDUNDANT: 'REDUNDANT'; -RELAY: 'RELAY'; -RELAY_LOG_FILE: 'RELAY_LOG_FILE'; -RELAY_LOG_POS: 'RELAY_LOG_POS'; -RELAYLOG: 'RELAYLOG'; -REMOVE: 'REMOVE'; -REORGANIZE: 'REORGANIZE'; -REPAIR: 'REPAIR'; -REPLICATE_DO_DB: 'REPLICATE_DO_DB'; -REPLICATE_DO_TABLE: 'REPLICATE_DO_TABLE'; -REPLICATE_IGNORE_DB: 'REPLICATE_IGNORE_DB'; -REPLICATE_IGNORE_TABLE: 'REPLICATE_IGNORE_TABLE'; -REPLICATE_REWRITE_DB: 'REPLICATE_REWRITE_DB'; -REPLICATE_WILD_DO_TABLE: 'REPLICATE_WILD_DO_TABLE'; -REPLICATE_WILD_IGNORE_TABLE: 'REPLICATE_WILD_IGNORE_TABLE'; -REPLICATION: 'REPLICATION'; -RESET: 'RESET'; -RESUME: 'RESUME'; -RETURNED_SQLSTATE: 'RETURNED_SQLSTATE'; -RETURNS: 'RETURNS'; -ROLE: 'ROLE'; -ROLLBACK: 'ROLLBACK'; -ROLLUP: 'ROLLUP'; -ROTATE: 'ROTATE'; -ROW: 'ROW'; -ROWS: 'ROWS'; -ROW_FORMAT: 'ROW_FORMAT'; -SAVEPOINT: 'SAVEPOINT'; -SCHEDULE: 'SCHEDULE'; -SECURITY: 'SECURITY'; -SERVER: 'SERVER'; -SESSION: 'SESSION'; -SHARE: 'SHARE'; -SHARED: 'SHARED'; -SIGNED: 'SIGNED'; -SIMPLE: 'SIMPLE'; -SLAVE: 'SLAVE'; -SLOW: 'SLOW'; -SNAPSHOT: 'SNAPSHOT'; -SOCKET: 'SOCKET'; -SOME: 'SOME'; -SONAME: 'SONAME'; -SOUNDS: 'SOUNDS'; -SOURCE: 'SOURCE'; -SQL_AFTER_GTIDS: 'SQL_AFTER_GTIDS'; -SQL_AFTER_MTS_GAPS: 'SQL_AFTER_MTS_GAPS'; -SQL_BEFORE_GTIDS: 'SQL_BEFORE_GTIDS'; -SQL_BUFFER_RESULT: 'SQL_BUFFER_RESULT'; -SQL_CACHE: 'SQL_CACHE'; -SQL_NO_CACHE: 'SQL_NO_CACHE'; -SQL_THREAD: 'SQL_THREAD'; -START: 'START'; -STARTS: 'STARTS'; -STATS_AUTO_RECALC: 'STATS_AUTO_RECALC'; -STATS_PERSISTENT: 'STATS_PERSISTENT'; -STATS_SAMPLE_PAGES: 'STATS_SAMPLE_PAGES'; -STATUS: 'STATUS'; -STOP: 'STOP'; -STORAGE: 'STORAGE'; -STORED: 'STORED'; -STRING: 'STRING'; -SUBCLASS_ORIGIN: 'SUBCLASS_ORIGIN'; -SUBJECT: 'SUBJECT'; -SUBPARTITION: 'SUBPARTITION'; -SUBPARTITIONS: 'SUBPARTITIONS'; -SUSPEND: 'SUSPEND'; -SWAPS: 'SWAPS'; -SWITCHES: 'SWITCHES'; -TABLE_NAME: 'TABLE_NAME'; -TABLESPACE: 'TABLESPACE'; -TEMPORARY: 'TEMPORARY'; -TEMPTABLE: 'TEMPTABLE'; -THAN: 'THAN'; -TRADITIONAL: 'TRADITIONAL'; -TRANSACTION: 'TRANSACTION'; -TRANSACTIONAL: 'TRANSACTIONAL'; -TRIGGERS: 'TRIGGERS'; -TRUNCATE: 'TRUNCATE'; -UNDEFINED: 'UNDEFINED'; -UNDOFILE: 'UNDOFILE'; -UNDO_BUFFER_SIZE: 'UNDO_BUFFER_SIZE'; -UNINSTALL: 'UNINSTALL'; -UNKNOWN: 'UNKNOWN'; -UNTIL: 'UNTIL'; -UPGRADE: 'UPGRADE'; -USER: 'USER'; -USE_FRM: 'USE_FRM'; -USER_RESOURCES: 'USER_RESOURCES'; -VALIDATION: 'VALIDATION'; -VALUE: 'VALUE'; -VARIABLES: 'VARIABLES'; -VIEW: 'VIEW'; -VIRTUAL: 'VIRTUAL'; -VISIBLE: 'VISIBLE'; -WAIT: 'WAIT'; -WARNINGS: 'WARNINGS'; -WITHOUT: 'WITHOUT'; -WORK: 'WORK'; -WRAPPER: 'WRAPPER'; -X509: 'X509'; -XA: 'XA'; -XML: 'XML'; - - -// Date format Keywords - -EUR: 'EUR'; -USA: 'USA'; -JIS: 'JIS'; -ISO: 'ISO'; -INTERNAL: 'INTERNAL'; - - -// Interval type Keywords - -QUARTER: 'QUARTER'; -MONTH: 'MONTH'; -DAY: 'DAY'; -HOUR: 'HOUR'; -MINUTE: 'MINUTE'; -WEEK: 'WEEK'; -SECOND: 'SECOND'; -MICROSECOND: 'MICROSECOND'; - - -// PRIVILEGES - -TABLES: 'TABLES'; -ROUTINE: 'ROUTINE'; -EXECUTE: 'EXECUTE'; -FILE: 'FILE'; -PROCESS: 'PROCESS'; -RELOAD: 'RELOAD'; -SHUTDOWN: 'SHUTDOWN'; -SUPER: 'SUPER'; -PRIVILEGES: 'PRIVILEGES'; -APPLICATION_PASSWORD_ADMIN: 'APPLICATION_PASSWORD_ADMIN'; -AUDIT_ADMIN: 'AUDIT_ADMIN'; -BACKUP_ADMIN: 'BACKUP_ADMIN'; -BINLOG_ADMIN: 'BINLOG_ADMIN'; -BINLOG_ENCRYPTION_ADMIN: 'BINLOG_ENCRYPTION_ADMIN'; -CLONE_ADMIN: 'CLONE_ADMIN'; -CONNECTION_ADMIN: 'CONNECTION_ADMIN'; -ENCRYPTION_KEY_ADMIN: 'ENCRYPTION_KEY_ADMIN'; -FIREWALL_ADMIN: 'FIREWALL_ADMIN'; -FIREWALL_USER: 'FIREWALL_USER'; -GROUP_REPLICATION_ADMIN: 'GROUP_REPLICATION_ADMIN'; -INNODB_REDO_LOG_ARCHIVE: 'INNODB_REDO_LOG_ARCHIVE'; -NDB_STORED_USER: 'NDB_STORED_USER'; -PERSIST_RO_VARIABLES_ADMIN: 'PERSIST_RO_VARIABLES_ADMIN'; -REPLICATION_APPLIER: 'REPLICATION_APPLIER'; -REPLICATION_SLAVE_ADMIN: 'REPLICATION_SLAVE_ADMIN'; -RESOURCE_GROUP_ADMIN: 'RESOURCE_GROUP_ADMIN'; -RESOURCE_GROUP_USER: 'RESOURCE_GROUP_USER'; -ROLE_ADMIN: 'ROLE_ADMIN'; -SESSION_VARIABLES_ADMIN: QUOTE_SYMB? 'SESSION_VARIABLES_ADMIN' QUOTE_SYMB?; -SET_USER_ID: 'SET_USER_ID'; -SHOW_ROUTINE: 'SHOW_ROUTINE'; -SYSTEM_VARIABLES_ADMIN: 'SYSTEM_VARIABLES_ADMIN'; -TABLE_ENCRYPTION_ADMIN: 'TABLE_ENCRYPTION_ADMIN'; -VERSION_TOKEN_ADMIN: 'VERSION_TOKEN_ADMIN'; -XA_RECOVER_ADMIN: 'XA_RECOVER_ADMIN'; - - -// Charsets - -ARMSCII8: 'ARMSCII8'; -ASCII: 'ASCII'; -BIG5: 'BIG5'; -CP1250: 'CP1250'; -CP1251: 'CP1251'; -CP1256: 'CP1256'; -CP1257: 'CP1257'; -CP850: 'CP850'; -CP852: 'CP852'; -CP866: 'CP866'; -CP932: 'CP932'; -DEC8: 'DEC8'; -EUCJPMS: 'EUCJPMS'; -EUCKR: 'EUCKR'; -GB2312: 'GB2312'; -GBK: 'GBK'; -GEOSTD8: 'GEOSTD8'; -GREEK: 'GREEK'; -HEBREW: 'HEBREW'; -HP8: 'HP8'; -KEYBCS2: 'KEYBCS2'; -KOI8R: 'KOI8R'; -KOI8U: 'KOI8U'; -LATIN1: 'LATIN1'; -LATIN2: 'LATIN2'; -LATIN5: 'LATIN5'; -LATIN7: 'LATIN7'; -MACCE: 'MACCE'; -MACROMAN: 'MACROMAN'; -SJIS: 'SJIS'; -SWE7: 'SWE7'; -TIS620: 'TIS620'; -UCS2: 'UCS2'; -UJIS: 'UJIS'; -UTF16: 'UTF16'; -UTF16LE: 'UTF16LE'; -UTF32: 'UTF32'; -UTF8: 'UTF8'; -UTF8MB3: 'UTF8MB3'; -UTF8MB4: 'UTF8MB4'; - - -// DB Engines - -ARCHIVE: 'ARCHIVE'; -BLACKHOLE: 'BLACKHOLE'; -CSV: 'CSV'; -FEDERATED: 'FEDERATED'; -INNODB: 'INNODB'; -MEMORY: 'MEMORY'; -MRG_MYISAM: 'MRG_MYISAM'; -MYISAM: 'MYISAM'; -NDB: 'NDB'; -NDBCLUSTER: 'NDBCLUSTER'; -PERFORMANCE_SCHEMA: 'PERFORMANCE_SCHEMA'; -TOKUDB: 'TOKUDB'; - - -// Transaction Levels - -REPEATABLE: 'REPEATABLE'; -COMMITTED: 'COMMITTED'; -UNCOMMITTED: 'UNCOMMITTED'; -SERIALIZABLE: 'SERIALIZABLE'; - - -// Spatial data types - -GEOMETRYCOLLECTION: 'GEOMETRYCOLLECTION'; -GEOMCOLLECTION: 'GEOMCOLLECTION'; -GEOMETRY: 'GEOMETRY'; -LINESTRING: 'LINESTRING'; -MULTILINESTRING: 'MULTILINESTRING'; -MULTIPOINT: 'MULTIPOINT'; -MULTIPOLYGON: 'MULTIPOLYGON'; -POINT: 'POINT'; -POLYGON: 'POLYGON'; - - -// Common function names - -ABS: 'ABS'; -ACOS: 'ACOS'; -ADDDATE: 'ADDDATE'; -ADDTIME: 'ADDTIME'; -AES_DECRYPT: 'AES_DECRYPT'; -AES_ENCRYPT: 'AES_ENCRYPT'; -AREA: 'AREA'; -ASBINARY: 'ASBINARY'; -ASIN: 'ASIN'; -ASTEXT: 'ASTEXT'; -ASWKB: 'ASWKB'; -ASWKT: 'ASWKT'; -ASYMMETRIC_DECRYPT: 'ASYMMETRIC_DECRYPT'; -ASYMMETRIC_DERIVE: 'ASYMMETRIC_DERIVE'; -ASYMMETRIC_ENCRYPT: 'ASYMMETRIC_ENCRYPT'; -ASYMMETRIC_SIGN: 'ASYMMETRIC_SIGN'; -ASYMMETRIC_VERIFY: 'ASYMMETRIC_VERIFY'; -ATAN: 'ATAN'; -ATAN2: 'ATAN2'; -BENCHMARK: 'BENCHMARK'; -BIN: 'BIN'; -BIT_COUNT: 'BIT_COUNT'; -BIT_LENGTH: 'BIT_LENGTH'; -BUFFER: 'BUFFER'; -CATALOG_NAME: 'CATALOG_NAME'; -CEIL: 'CEIL'; -CEILING: 'CEILING'; -CENTROID: 'CENTROID'; -CHARACTER_LENGTH: 'CHARACTER_LENGTH'; -CHARSET: 'CHARSET'; -CHAR_LENGTH: 'CHAR_LENGTH'; -COERCIBILITY: 'COERCIBILITY'; -COLLATION: 'COLLATION'; -COMPRESS: 'COMPRESS'; -CONCAT: 'CONCAT'; -CONCAT_WS: 'CONCAT_WS'; -CONNECTION_ID: 'CONNECTION_ID'; -CONV: 'CONV'; -CONVERT_TZ: 'CONVERT_TZ'; -COS: 'COS'; -COT: 'COT'; -CRC32: 'CRC32'; -CREATE_ASYMMETRIC_PRIV_KEY: 'CREATE_ASYMMETRIC_PRIV_KEY'; -CREATE_ASYMMETRIC_PUB_KEY: 'CREATE_ASYMMETRIC_PUB_KEY'; -CREATE_DH_PARAMETERS: 'CREATE_DH_PARAMETERS'; -CREATE_DIGEST: 'CREATE_DIGEST'; -CROSSES: 'CROSSES'; -DATEDIFF: 'DATEDIFF'; -DATE_FORMAT: 'DATE_FORMAT'; -DAYNAME: 'DAYNAME'; -DAYOFMONTH: 'DAYOFMONTH'; -DAYOFWEEK: 'DAYOFWEEK'; -DAYOFYEAR: 'DAYOFYEAR'; -DECODE: 'DECODE'; -DEGREES: 'DEGREES'; -DES_DECRYPT: 'DES_DECRYPT'; -DES_ENCRYPT: 'DES_ENCRYPT'; -DIMENSION: 'DIMENSION'; -DISJOINT: 'DISJOINT'; -ELT: 'ELT'; -ENCODE: 'ENCODE'; -ENCRYPT: 'ENCRYPT'; -ENDPOINT: 'ENDPOINT'; -ENVELOPE: 'ENVELOPE'; -EQUALS: 'EQUALS'; -EXP: 'EXP'; -EXPORT_SET: 'EXPORT_SET'; -EXTERIORRING: 'EXTERIORRING'; -EXTRACTVALUE: 'EXTRACTVALUE'; -FIELD: 'FIELD'; -FIND_IN_SET: 'FIND_IN_SET'; -FLOOR: 'FLOOR'; -FORMAT: 'FORMAT'; -FOUND_ROWS: 'FOUND_ROWS'; -FROM_BASE64: 'FROM_BASE64'; -FROM_DAYS: 'FROM_DAYS'; -FROM_UNIXTIME: 'FROM_UNIXTIME'; -GEOMCOLLFROMTEXT: 'GEOMCOLLFROMTEXT'; -GEOMCOLLFROMWKB: 'GEOMCOLLFROMWKB'; -GEOMETRYCOLLECTIONFROMTEXT: 'GEOMETRYCOLLECTIONFROMTEXT'; -GEOMETRYCOLLECTIONFROMWKB: 'GEOMETRYCOLLECTIONFROMWKB'; -GEOMETRYFROMTEXT: 'GEOMETRYFROMTEXT'; -GEOMETRYFROMWKB: 'GEOMETRYFROMWKB'; -GEOMETRYN: 'GEOMETRYN'; -GEOMETRYTYPE: 'GEOMETRYTYPE'; -GEOMFROMTEXT: 'GEOMFROMTEXT'; -GEOMFROMWKB: 'GEOMFROMWKB'; -GET_FORMAT: 'GET_FORMAT'; -GET_LOCK: 'GET_LOCK'; -GLENGTH: 'GLENGTH'; -GREATEST: 'GREATEST'; -GTID_SUBSET: 'GTID_SUBSET'; -GTID_SUBTRACT: 'GTID_SUBTRACT'; -HEX: 'HEX'; -IFNULL: 'IFNULL'; -INET6_ATON: 'INET6_ATON'; -INET6_NTOA: 'INET6_NTOA'; -INET_ATON: 'INET_ATON'; -INET_NTOA: 'INET_NTOA'; -INSTR: 'INSTR'; -INTERIORRINGN: 'INTERIORRINGN'; -INTERSECTS: 'INTERSECTS'; -ISCLOSED: 'ISCLOSED'; -ISEMPTY: 'ISEMPTY'; -ISNULL: 'ISNULL'; -ISSIMPLE: 'ISSIMPLE'; -IS_FREE_LOCK: 'IS_FREE_LOCK'; -IS_IPV4: 'IS_IPV4'; -IS_IPV4_COMPAT: 'IS_IPV4_COMPAT'; -IS_IPV4_MAPPED: 'IS_IPV4_MAPPED'; -IS_IPV6: 'IS_IPV6'; -IS_USED_LOCK: 'IS_USED_LOCK'; -LAST_INSERT_ID: 'LAST_INSERT_ID'; -LCASE: 'LCASE'; -LEAST: 'LEAST'; -LENGTH: 'LENGTH'; -LINEFROMTEXT: 'LINEFROMTEXT'; -LINEFROMWKB: 'LINEFROMWKB'; -LINESTRINGFROMTEXT: 'LINESTRINGFROMTEXT'; -LINESTRINGFROMWKB: 'LINESTRINGFROMWKB'; -LN: 'LN'; -LOAD_FILE: 'LOAD_FILE'; -LOCATE: 'LOCATE'; -LOG: 'LOG'; -LOG10: 'LOG10'; -LOG2: 'LOG2'; -LOWER: 'LOWER'; -LPAD: 'LPAD'; -LTRIM: 'LTRIM'; -MAKEDATE: 'MAKEDATE'; -MAKETIME: 'MAKETIME'; -MAKE_SET: 'MAKE_SET'; -MASTER_POS_WAIT: 'MASTER_POS_WAIT'; -MBRCONTAINS: 'MBRCONTAINS'; -MBRDISJOINT: 'MBRDISJOINT'; -MBREQUAL: 'MBREQUAL'; -MBRINTERSECTS: 'MBRINTERSECTS'; -MBROVERLAPS: 'MBROVERLAPS'; -MBRTOUCHES: 'MBRTOUCHES'; -MBRWITHIN: 'MBRWITHIN'; -MD5: 'MD5'; -MLINEFROMTEXT: 'MLINEFROMTEXT'; -MLINEFROMWKB: 'MLINEFROMWKB'; -MONTHNAME: 'MONTHNAME'; -MPOINTFROMTEXT: 'MPOINTFROMTEXT'; -MPOINTFROMWKB: 'MPOINTFROMWKB'; -MPOLYFROMTEXT: 'MPOLYFROMTEXT'; -MPOLYFROMWKB: 'MPOLYFROMWKB'; -MULTILINESTRINGFROMTEXT: 'MULTILINESTRINGFROMTEXT'; -MULTILINESTRINGFROMWKB: 'MULTILINESTRINGFROMWKB'; -MULTIPOINTFROMTEXT: 'MULTIPOINTFROMTEXT'; -MULTIPOINTFROMWKB: 'MULTIPOINTFROMWKB'; -MULTIPOLYGONFROMTEXT: 'MULTIPOLYGONFROMTEXT'; -MULTIPOLYGONFROMWKB: 'MULTIPOLYGONFROMWKB'; -NAME_CONST: 'NAME_CONST'; -NULLIF: 'NULLIF'; -NUMGEOMETRIES: 'NUMGEOMETRIES'; -NUMINTERIORRINGS: 'NUMINTERIORRINGS'; -NUMPOINTS: 'NUMPOINTS'; -OCT: 'OCT'; -OCTET_LENGTH: 'OCTET_LENGTH'; -ORD: 'ORD'; -OVERLAPS: 'OVERLAPS'; -PERIOD_ADD: 'PERIOD_ADD'; -PERIOD_DIFF: 'PERIOD_DIFF'; -PI: 'PI'; -POINTFROMTEXT: 'POINTFROMTEXT'; -POINTFROMWKB: 'POINTFROMWKB'; -POINTN: 'POINTN'; -POLYFROMTEXT: 'POLYFROMTEXT'; -POLYFROMWKB: 'POLYFROMWKB'; -POLYGONFROMTEXT: 'POLYGONFROMTEXT'; -POLYGONFROMWKB: 'POLYGONFROMWKB'; -POW: 'POW'; -POWER: 'POWER'; -QUOTE: 'QUOTE'; -RADIANS: 'RADIANS'; -RAND: 'RAND'; -RANDOM_BYTES: 'RANDOM_BYTES'; -RELEASE_LOCK: 'RELEASE_LOCK'; -REVERSE: 'REVERSE'; -ROUND: 'ROUND'; -ROW_COUNT: 'ROW_COUNT'; -RPAD: 'RPAD'; -RTRIM: 'RTRIM'; -SEC_TO_TIME: 'SEC_TO_TIME'; -SESSION_USER: 'SESSION_USER'; -SHA: 'SHA'; -SHA1: 'SHA1'; -SHA2: 'SHA2'; -SCHEMA_NAME: 'SCHEMA_NAME'; -SIGN: 'SIGN'; -SIN: 'SIN'; -SLEEP: 'SLEEP'; -SOUNDEX: 'SOUNDEX'; -SQL_THREAD_WAIT_AFTER_GTIDS: 'SQL_THREAD_WAIT_AFTER_GTIDS'; -SQRT: 'SQRT'; -SRID: 'SRID'; -STARTPOINT: 'STARTPOINT'; -STRCMP: 'STRCMP'; -STR_TO_DATE: 'STR_TO_DATE'; -ST_AREA: 'ST_AREA'; -ST_ASBINARY: 'ST_ASBINARY'; -ST_ASTEXT: 'ST_ASTEXT'; -ST_ASWKB: 'ST_ASWKB'; -ST_ASWKT: 'ST_ASWKT'; -ST_BUFFER: 'ST_BUFFER'; -ST_CENTROID: 'ST_CENTROID'; -ST_CONTAINS: 'ST_CONTAINS'; -ST_CROSSES: 'ST_CROSSES'; -ST_DIFFERENCE: 'ST_DIFFERENCE'; -ST_DIMENSION: 'ST_DIMENSION'; -ST_DISJOINT: 'ST_DISJOINT'; -ST_DISTANCE: 'ST_DISTANCE'; -ST_ENDPOINT: 'ST_ENDPOINT'; -ST_ENVELOPE: 'ST_ENVELOPE'; -ST_EQUALS: 'ST_EQUALS'; -ST_EXTERIORRING: 'ST_EXTERIORRING'; -ST_GEOMCOLLFROMTEXT: 'ST_GEOMCOLLFROMTEXT'; -ST_GEOMCOLLFROMTXT: 'ST_GEOMCOLLFROMTXT'; -ST_GEOMCOLLFROMWKB: 'ST_GEOMCOLLFROMWKB'; -ST_GEOMETRYCOLLECTIONFROMTEXT: 'ST_GEOMETRYCOLLECTIONFROMTEXT'; -ST_GEOMETRYCOLLECTIONFROMWKB: 'ST_GEOMETRYCOLLECTIONFROMWKB'; -ST_GEOMETRYFROMTEXT: 'ST_GEOMETRYFROMTEXT'; -ST_GEOMETRYFROMWKB: 'ST_GEOMETRYFROMWKB'; -ST_GEOMETRYN: 'ST_GEOMETRYN'; -ST_GEOMETRYTYPE: 'ST_GEOMETRYTYPE'; -ST_GEOMFROMTEXT: 'ST_GEOMFROMTEXT'; -ST_GEOMFROMWKB: 'ST_GEOMFROMWKB'; -ST_INTERIORRINGN: 'ST_INTERIORRINGN'; -ST_INTERSECTION: 'ST_INTERSECTION'; -ST_INTERSECTS: 'ST_INTERSECTS'; -ST_ISCLOSED: 'ST_ISCLOSED'; -ST_ISEMPTY: 'ST_ISEMPTY'; -ST_ISSIMPLE: 'ST_ISSIMPLE'; -ST_LINEFROMTEXT: 'ST_LINEFROMTEXT'; -ST_LINEFROMWKB: 'ST_LINEFROMWKB'; -ST_LINESTRINGFROMTEXT: 'ST_LINESTRINGFROMTEXT'; -ST_LINESTRINGFROMWKB: 'ST_LINESTRINGFROMWKB'; -ST_NUMGEOMETRIES: 'ST_NUMGEOMETRIES'; -ST_NUMINTERIORRING: 'ST_NUMINTERIORRING'; -ST_NUMINTERIORRINGS: 'ST_NUMINTERIORRINGS'; -ST_NUMPOINTS: 'ST_NUMPOINTS'; -ST_OVERLAPS: 'ST_OVERLAPS'; -ST_POINTFROMTEXT: 'ST_POINTFROMTEXT'; -ST_POINTFROMWKB: 'ST_POINTFROMWKB'; -ST_POINTN: 'ST_POINTN'; -ST_POLYFROMTEXT: 'ST_POLYFROMTEXT'; -ST_POLYFROMWKB: 'ST_POLYFROMWKB'; -ST_POLYGONFROMTEXT: 'ST_POLYGONFROMTEXT'; -ST_POLYGONFROMWKB: 'ST_POLYGONFROMWKB'; -ST_SRID: 'ST_SRID'; -ST_STARTPOINT: 'ST_STARTPOINT'; -ST_SYMDIFFERENCE: 'ST_SYMDIFFERENCE'; -ST_TOUCHES: 'ST_TOUCHES'; -ST_UNION: 'ST_UNION'; -ST_WITHIN: 'ST_WITHIN'; -ST_X: 'ST_X'; -ST_Y: 'ST_Y'; -SUBDATE: 'SUBDATE'; -SUBSTRING_INDEX: 'SUBSTRING_INDEX'; -SUBTIME: 'SUBTIME'; -SYSTEM_USER: 'SYSTEM_USER'; -TAN: 'TAN'; -TIMEDIFF: 'TIMEDIFF'; -TIMESTAMPADD: 'TIMESTAMPADD'; -TIMESTAMPDIFF: 'TIMESTAMPDIFF'; -TIME_FORMAT: 'TIME_FORMAT'; -TIME_TO_SEC: 'TIME_TO_SEC'; -TOUCHES: 'TOUCHES'; -TO_BASE64: 'TO_BASE64'; -TO_DAYS: 'TO_DAYS'; -TO_SECONDS: 'TO_SECONDS'; -UCASE: 'UCASE'; -UNCOMPRESS: 'UNCOMPRESS'; -UNCOMPRESSED_LENGTH: 'UNCOMPRESSED_LENGTH'; -UNHEX: 'UNHEX'; -UNIX_TIMESTAMP: 'UNIX_TIMESTAMP'; -UPDATEXML: 'UPDATEXML'; -UPPER: 'UPPER'; -UUID: 'UUID'; -UUID_SHORT: 'UUID_SHORT'; -VALIDATE_PASSWORD_STRENGTH: 'VALIDATE_PASSWORD_STRENGTH'; -VERSION: 'VERSION'; -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: 'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'; -WEEKDAY: 'WEEKDAY'; -WEEKOFYEAR: 'WEEKOFYEAR'; -WEIGHT_STRING: 'WEIGHT_STRING'; -WITHIN: 'WITHIN'; -YEARWEEK: 'YEARWEEK'; -Y_FUNCTION: 'Y'; -X_FUNCTION: 'X'; - - - -// Operators -// Operators. Assigns - -VAR_ASSIGN: ':='; -PLUS_ASSIGN: '+='; -MINUS_ASSIGN: '-='; -MULT_ASSIGN: '*='; -DIV_ASSIGN: '/='; -MOD_ASSIGN: '%='; -AND_ASSIGN: '&='; -XOR_ASSIGN: '^='; -OR_ASSIGN: '|='; - - -// Operators. Arithmetics - -STAR: '*'; -DIVIDE: '/'; -MODULE: '%'; -PLUS: '+'; -MINUSMINUS: '--'; -MINUS: '-'; -DIV: 'DIV'; -MOD: 'MOD'; - - -// Operators. Comparation - -EQUAL_SYMBOL: '='; -GREATER_SYMBOL: '>'; -LESS_SYMBOL: '<'; -EXCLAMATION_SYMBOL: '!'; - - -// Operators. Bit - -BIT_NOT_OP: '~'; -BIT_OR_OP: '|'; -BIT_AND_OP: '&'; -BIT_XOR_OP: '^'; - - -// Constructors symbols - -DOT: '.'; -LR_BRACKET: '('; -RR_BRACKET: ')'; -COMMA: ','; -SEMI: ';'; -AT_SIGN: '@'; -ZERO_DECIMAL: '0'; -ONE_DECIMAL: '1'; -TWO_DECIMAL: '2'; -SINGLE_QUOTE_SYMB: '\''; -DOUBLE_QUOTE_SYMB: '"'; -REVERSE_QUOTE_SYMB: '`'; -COLON_SYMB: ':'; - -fragment QUOTE_SYMB - : SINGLE_QUOTE_SYMB | DOUBLE_QUOTE_SYMB | REVERSE_QUOTE_SYMB - ; - - - -// Charsets - -CHARSET_REVERSE_QOUTE_STRING: '`' CHARSET_NAME '`'; - - - -// File's sizes - - -FILESIZE_LITERAL: DEC_DIGIT+ ('K'|'M'|'G'|'T'); - - - -// Literal Primitives - - -START_NATIONAL_STRING_LITERAL: 'N' SQUOTA_STRING; -STRING_LITERAL: DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING; -DECIMAL_LITERAL: DEC_DIGIT+; -HEXADECIMAL_LITERAL: 'X' '\'' (HEX_DIGIT HEX_DIGIT)+ '\'' - | '0X' HEX_DIGIT+; - -REAL_LITERAL: (DEC_DIGIT+)? '.' DEC_DIGIT+ - | DEC_DIGIT+ '.' EXPONENT_NUM_PART - | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART) - | DEC_DIGIT+ EXPONENT_NUM_PART; -NULL_SPEC_LITERAL: '\\' 'N'; -BIT_STRING: BIT_STRING_L; -STRING_CHARSET_NAME: '_' CHARSET_NAME; - - - - -// Hack for dotID -// Prevent recognize string: .123somelatin AS ((.123), FLOAT_LITERAL), ((somelatin), ID) -// it must recoginze: .123somelatin AS ((.), DOT), (123somelatin, ID) - -DOT_ID: '.' ID_LITERAL; - - - -// Identifiers - -ID: ID_LITERAL; -// DOUBLE_QUOTE_ID: '"' ~'"'+ '"'; -REVERSE_QUOTE_ID: '`' ~'`'+ '`'; -STRING_USER_NAME: ( - SQUOTA_STRING | DQUOTA_STRING - | BQUOTA_STRING | ID_LITERAL - ) '@' - ( - SQUOTA_STRING | DQUOTA_STRING - | BQUOTA_STRING | ID_LITERAL - ); -LOCAL_ID: '@' - ( - [A-Z0-9._$]+ - | SQUOTA_STRING - | DQUOTA_STRING - | BQUOTA_STRING - ); -GLOBAL_ID: '@' '@' - ( - [A-Z0-9._$]+ - | BQUOTA_STRING - ); - - -// Fragments for Literal primitives - -fragment CHARSET_NAME: ARMSCII8 | ASCII | BIG5 | BINARY | CP1250 - | CP1251 | CP1256 | CP1257 | CP850 - | CP852 | CP866 | CP932 | DEC8 | EUCJPMS - | EUCKR | GB2312 | GBK | GEOSTD8 | GREEK - | HEBREW | HP8 | KEYBCS2 | KOI8R | KOI8U - | LATIN1 | LATIN2 | LATIN5 | LATIN7 - | MACCE | MACROMAN | SJIS | SWE7 | TIS620 - | UCS2 | UJIS | UTF16 | UTF16LE | UTF32 - | UTF8 | UTF8MB3 | UTF8MB4; - -fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+; -fragment ID_LITERAL: [A-Z_$0-9]*?[A-Z_$]+?[A-Z_$0-9]*; -fragment DQUOTA_STRING: '"' ( '\\'. | '""' | ~('"'| '\\') )* '"'; -fragment SQUOTA_STRING: '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\''; -fragment BQUOTA_STRING: '`' ( '\\'. | '``' | ~('`'|'\\'))* '`'; -fragment HEX_DIGIT: [0-9A-F]; -fragment DEC_DIGIT: [0-9]; -fragment BIT_STRING_L: 'B' '\'' [01]+ '\''; - - - -// Last tokens must generate Errors - -ERROR_RECONGNIGION: . -> channel(ERRORCHANNEL); diff --git a/src/grammar/generic/SqlParser.g4 b/src/grammar/generic/SqlParser.g4 deleted file mode 100644 index 35038af..0000000 --- a/src/grammar/generic/SqlParser.g4 +++ /dev/null @@ -1,2593 +0,0 @@ -/* -MySQL (Positive Technologies) grammar -The MIT License (MIT). -Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. -Copyright (c) 2017, Ivan Khudyashev (IHudyashov@ptsecurity.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/** - * This file is an adaptation of antlr's grammars-v4/sql/mysql/Positive-Technologies/MySqlParser.g4 grammar. - * Reference: https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlParser.g4 - */ - -parser grammar SqlParser; - -options { tokenVocab=SqlLexer; } - - -// Top Level Description - -program: statement EOF; - -statement - : sqlStatements? MINUSMINUS? EOF - ; - -sqlStatements - : (sqlStatement MINUSMINUS? SEMI? | emptyStatement)* - (sqlStatement (MINUSMINUS? SEMI)? | emptyStatement) - ; - -sqlStatement - : ddlStatement | dmlStatement | transactionStatement - | replicationStatement | preparedStatement - | administrationStatement | utilityStatement - ; - -emptyStatement - : SEMI - ; - -ddlStatement - : createDatabase | createEvent | createIndex - | createLogfileGroup | createProcedure | createFunction - | createServer | createTable | createTablespaceInnodb - | createTablespaceNdb | createTrigger | createView - | alterDatabase | alterEvent | alterFunction - | alterInstance | alterLogfileGroup | alterProcedure - | alterServer | alterTable | alterTablespace | alterView - | dropDatabase | dropEvent | dropIndex - | dropLogfileGroup | dropProcedure | dropFunction - | dropServer | dropTable | dropTablespace - | dropTrigger | dropView - | renameTable | truncateTable - ; - -dmlStatement - : selectStatement | insertStatement | updateStatement - | deleteStatement | replaceStatement | callStatement - | loadDataStatement | loadXmlStatement | doStatement - | handlerStatement - ; - -transactionStatement - : startTransaction - | beginWork | commitWork | rollbackWork - | savepointStatement | rollbackStatement - | releaseStatement | lockTables | unlockTables - ; - -replicationStatement - : changeMaster | changeReplicationFilter | purgeBinaryLogs - | resetMaster | resetSlave | startSlave | stopSlave - | startGroupReplication | stopGroupReplication - | xaStartTransaction | xaEndTransaction | xaPrepareStatement - | xaCommitWork | xaRollbackWork | xaRecoverWork - ; - -preparedStatement - : prepareStatement | executeStatement | deallocatePrepare - ; - -// remark: NOT INCLUDED IN sqlStatement, but include in body -// of routine's statements -compoundStatement - : blockStatement - | caseStatement | ifStatement | leaveStatement - | loopStatement | repeatStatement | whileStatement - | iterateStatement | returnStatement | cursorStatement - ; - -administrationStatement - : alterUser | createUser | dropUser | grantStatement - | grantProxy | renameUser | revokeStatement - | revokeProxy | analyzeTable | checkTable - | checksumTable | optimizeTable | repairTable - | createUdfunction | installPlugin | uninstallPlugin - | setStatement | showStatement | binlogStatement - | cacheIndexStatement | flushStatement | killStatement - | loadIndexIntoCache | resetStatement - | shutdownStatement - ; - -utilityStatement - : simpleDescribeStatement | fullDescribeStatement - | helpStatement | useStatement | signalStatement - | resignalStatement | diagnosticsStatement - ; - - -// Data Definition Language - -// Create statements - -createDatabase - : CREATE dbFormat=(DATABASE | SCHEMA) - ifNotExists? uid createDatabaseOption* - ; - -createEvent - : CREATE ownerStatement? EVENT ifNotExists? fullId - ON SCHEDULE scheduleExpression - (ON COMPLETION NOT? PRESERVE)? enableType? - (COMMENT STRING_LITERAL)? - DO routineBody - ; - -createIndex - : CREATE - intimeAction=(ONLINE | OFFLINE)? - indexCategory=(UNIQUE | FULLTEXT | SPATIAL)? - INDEX uid indexType? - ON tableName indexColumnNames - indexOption* - ( - ALGORITHM '='? algType=(DEFAULT | INPLACE | COPY) - | LOCK '='? - lockType=(DEFAULT | NONE | SHARED | EXCLUSIVE) - )* - ; - -createLogfileGroup - : CREATE LOGFILE GROUP uid - ADD UNDOFILE undoFile=STRING_LITERAL - (INITIAL_SIZE '='? initSize=fileSizeLiteral)? - (UNDO_BUFFER_SIZE '='? undoSize=fileSizeLiteral)? - (REDO_BUFFER_SIZE '='? redoSize=fileSizeLiteral)? - (NODEGROUP '='? uid)? - WAIT? - (COMMENT '='? comment=STRING_LITERAL)? - ENGINE '='? engineName - ; - -createProcedure - : CREATE ownerStatement? - PROCEDURE fullId - '(' procedureParameter? (',' procedureParameter)* ')' - routineOption* - routineBody - ; - -createFunction - : CREATE ownerStatement? - FUNCTION fullId - '(' functionParameter? (',' functionParameter)* ')' - RETURNS dataType - routineOption* - (routineBody | returnStatement) - ; - -createServer - : CREATE SERVER uid - FOREIGN DATA WRAPPER wrapperName=(MYSQL | STRING_LITERAL) - OPTIONS '(' serverOption (',' serverOption)* ')' - ; - -createTable - : CREATE TEMPORARY? TABLE ifNotExists? - tableName - ( - LIKE tableName - | '(' LIKE parenthesisTable=tableName ')' - ) #copyCreateTable - | CREATE TEMPORARY? TABLE ifNotExists? - tableName createDefinitions? - ( tableOption (','? tableOption)* )? - partitionDefinitions? keyViolate=(IGNORE | REPLACE)? - AS? selectStatement #queryCreateTable - | CREATE TEMPORARY? TABLE ifNotExists? - tableName createDefinitions - ( tableOption (','? tableOption)* )? - partitionDefinitions? #columnCreateTable - ; - -createTablespaceInnodb - : CREATE TABLESPACE uid - ADD DATAFILE datafile=STRING_LITERAL - (FILE_BLOCK_SIZE '=' fileBlockSize=fileSizeLiteral)? - (ENGINE '='? engineName)? - ; - -createTablespaceNdb - : CREATE TABLESPACE uid - ADD DATAFILE datafile=STRING_LITERAL - USE LOGFILE GROUP uid - (EXTENT_SIZE '='? extentSize=fileSizeLiteral)? - (INITIAL_SIZE '='? initialSize=fileSizeLiteral)? - (AUTOEXTEND_SIZE '='? autoextendSize=fileSizeLiteral)? - (MAX_SIZE '='? maxSize=fileSizeLiteral)? - (NODEGROUP '='? uid)? - WAIT? - (COMMENT '='? comment=STRING_LITERAL)? - ENGINE '='? engineName - ; - -createTrigger - : CREATE ownerStatement? - TRIGGER thisTrigger=fullId - triggerTime=(BEFORE | AFTER) - triggerEvent=(INSERT | UPDATE | DELETE) - ON tableName FOR EACH ROW - (triggerPlace=(FOLLOWS | PRECEDES) otherTrigger=fullId)? - routineBody - ; - -createView - : CREATE (OR REPLACE)? - ( - ALGORITHM '=' algType=(UNDEFINED | MERGE | TEMPTABLE) - )? - ownerStatement? - (SQL SECURITY secContext=(DEFINER | INVOKER))? - VIEW fullId ('(' uidList ')')? AS selectStatement - (WITH checkOption=(CASCADED | LOCAL)? CHECK OPTION)? - ; - -// details - -createDatabaseOption - : DEFAULT? (CHARACTER SET | CHARSET) '='? (charsetName | DEFAULT) - | DEFAULT? COLLATE '='? collationName - ; - -ownerStatement - : DEFINER '=' (userName | CURRENT_USER ( '(' ')')?) - ; - -scheduleExpression - : AT timestampValue intervalExpr* #preciseSchedule - | EVERY (decimalLiteral | expression) intervalType - ( - STARTS startTimestamp=timestampValue - (startIntervals+=intervalExpr)* - )? - ( - ENDS endTimestamp=timestampValue - (endIntervals+=intervalExpr)* - )? #intervalSchedule - ; - -timestampValue - : CURRENT_TIMESTAMP - | stringLiteral - | decimalLiteral - | expression - ; - -intervalExpr - : '+' INTERVAL (decimalLiteral | expression) intervalType - ; - -intervalType - : intervalTypeBase - | YEAR | YEAR_MONTH | DAY_HOUR | DAY_MINUTE - | DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND - | SECOND_MICROSECOND | MINUTE_MICROSECOND - | HOUR_MICROSECOND | DAY_MICROSECOND - ; - -enableType - : ENABLE | DISABLE | DISABLE ON SLAVE - ; - -indexType - : USING (BTREE | HASH) - ; - -indexOption - : KEY_BLOCK_SIZE '='? fileSizeLiteral - | indexType - | WITH PARSER uid - | COMMENT STRING_LITERAL - | INVISIBLE - | VISIBLE - ; - -procedureParameter - : direction=(IN | OUT | INOUT)? uid dataType - ; - -functionParameter - : uid dataType - ; - -routineOption - : COMMENT STRING_LITERAL #routineComment - | LANGUAGE SQL #routineLanguage - | NOT? DETERMINISTIC #routineBehavior - | ( - CONTAINS SQL | NO SQL | READS SQL DATA - | MODIFIES SQL DATA - ) #routineData - | SQL SECURITY context=(DEFINER | INVOKER) #routineSecurity - ; - -serverOption - : HOST STRING_LITERAL - | DATABASE STRING_LITERAL - | USER STRING_LITERAL - | PASSWORD STRING_LITERAL - | SOCKET STRING_LITERAL - | OWNER STRING_LITERAL - | PORT decimalLiteral - ; - -createDefinitions - : '(' createDefinition (',' createDefinition)* ')' - ; - -createDefinition - : uid columnDefinition #columnDeclaration - | tableConstraint #constraintDeclaration - | indexColumnDefinition #indexDeclaration - ; - -columnDefinition - : dataType columnConstraint* - ; - -columnConstraint - : nullNotnull #nullColumnConstraint - | DEFAULT defaultValue #defaultColumnConstraint - | (AUTO_INCREMENT | ON UPDATE currentTimestamp) #autoIncrementColumnConstraint - | PRIMARY? KEY #primaryKeyColumnConstraint - | UNIQUE KEY? #uniqueKeyColumnConstraint - | COMMENT STRING_LITERAL #commentColumnConstraint - | COLUMN_FORMAT colformat=(FIXED | DYNAMIC | DEFAULT) #formatColumnConstraint - | STORAGE storageval=(DISK | MEMORY | DEFAULT) #storageColumnConstraint - | referenceDefinition #referenceColumnConstraint - | COLLATE collationName #collateColumnConstraint - | (GENERATED ALWAYS)? AS '(' expression ')' (VIRTUAL | STORED)? #generatedColumnConstraint - | SERIAL DEFAULT VALUE #serialDefaultColumnConstraint - | (CONSTRAINT name=uid?)? - CHECK '(' expression ')' #checkColumnConstraint - ; - -tableConstraint - : (CONSTRAINT name=uid?)? - PRIMARY KEY index=uid? indexType? - indexColumnNames indexOption* #primaryKeyTableConstraint - | (CONSTRAINT name=uid?)? - UNIQUE indexFormat=(INDEX | KEY)? index=uid? - indexType? indexColumnNames indexOption* #uniqueKeyTableConstraint - | (CONSTRAINT name=uid?)? - FOREIGN KEY index=uid? indexColumnNames - referenceDefinition #foreignKeyTableConstraint - | (CONSTRAINT name=uid?)? - CHECK '(' expression ')' #checkTableConstraint - ; - -referenceDefinition - : REFERENCES tableName indexColumnNames? - (MATCH matchType=(FULL | PARTIAL | SIMPLE))? - referenceAction? - ; - -referenceAction - : ON DELETE onDelete=referenceControlType - ( - ON UPDATE onUpdate=referenceControlType - )? - | ON UPDATE onUpdate=referenceControlType - ( - ON DELETE onDelete=referenceControlType - )? - ; - -referenceControlType - : RESTRICT | CASCADE | SET NULL_LITERAL | NO ACTION - ; - -indexColumnDefinition - : indexFormat=(INDEX | KEY) uid? indexType? - indexColumnNames indexOption* #simpleIndexDeclaration - | (FULLTEXT | SPATIAL) - indexFormat=(INDEX | KEY)? uid? - indexColumnNames indexOption* #specialIndexDeclaration - ; - -tableOption - : ENGINE '='? engineName #tableOptionEngine - | AUTO_INCREMENT '='? decimalLiteral #tableOptionAutoIncrement - | AVG_ROW_LENGTH '='? decimalLiteral #tableOptionAverage - | DEFAULT? (CHARACTER SET | CHARSET) '='? (charsetName|DEFAULT) #tableOptionCharset - | (CHECKSUM | PAGE_CHECKSUM) '='? boolValue=('0' | '1') #tableOptionChecksum - | DEFAULT? COLLATE '='? collationName #tableOptionCollate - | COMMENT '='? STRING_LITERAL #tableOptionComment - | COMPRESSION '='? (STRING_LITERAL | ID) #tableOptionCompression - | CONNECTION '='? STRING_LITERAL #tableOptionConnection - | DATA DIRECTORY '='? STRING_LITERAL #tableOptionDataDirectory - | DELAY_KEY_WRITE '='? boolValue=('0' | '1') #tableOptionDelay - | ENCRYPTION '='? STRING_LITERAL #tableOptionEncryption - | INDEX DIRECTORY '='? STRING_LITERAL #tableOptionIndexDirectory - | INSERT_METHOD '='? insertMethod=(NO | FIRST | LAST) #tableOptionInsertMethod - | KEY_BLOCK_SIZE '='? fileSizeLiteral #tableOptionKeyBlockSize - | MAX_ROWS '='? decimalLiteral #tableOptionMaxRows - | MIN_ROWS '='? decimalLiteral #tableOptionMinRows - | PACK_KEYS '='? extBoolValue=('0' | '1' | DEFAULT) #tableOptionPackKeys - | PASSWORD '='? STRING_LITERAL #tableOptionPassword - | ROW_FORMAT '='? - rowFormat=( - DEFAULT | DYNAMIC | FIXED | COMPRESSED - | REDUNDANT | COMPACT - ) #tableOptionRowFormat - | STATS_AUTO_RECALC '='? extBoolValue=(DEFAULT | '0' | '1') #tableOptionRecalculation - | STATS_PERSISTENT '='? extBoolValue=(DEFAULT | '0' | '1') #tableOptionPersistent - | STATS_SAMPLE_PAGES '='? decimalLiteral #tableOptionSamplePage - | TABLESPACE uid tablespaceStorage? #tableOptionTablespace - | tablespaceStorage #tableOptionTablespace - | UNION '='? '(' tables ')' #tableOptionUnion - ; - -tablespaceStorage - : STORAGE (DISK | MEMORY | DEFAULT) - ; - -partitionDefinitions - : PARTITION BY partitionFunctionDefinition - (PARTITIONS count=decimalLiteral)? - ( - SUBPARTITION BY subpartitionFunctionDefinition - (SUBPARTITIONS subCount=decimalLiteral)? - )? - ('(' partitionDefinition (',' partitionDefinition)* ')')? - ; - -partitionFunctionDefinition - : LINEAR? HASH '(' expression ')' #partitionFunctionHash - | LINEAR? KEY (ALGORITHM '=' algType=('1' | '2'))? - '(' uidList ')' #partitionFunctionKey - | RANGE ( '(' expression ')' | COLUMNS '(' uidList ')' ) #partitionFunctionRange - | LIST ( '(' expression ')' | COLUMNS '(' uidList ')' ) #partitionFunctionList - ; - -subpartitionFunctionDefinition - : LINEAR? HASH '(' expression ')' #subPartitionFunctionHash - | LINEAR? KEY (ALGORITHM '=' algType=('1' | '2'))? - '(' uidList ')' #subPartitionFunctionKey - ; - -partitionDefinition - : PARTITION uid VALUES LESS THAN - '(' - partitionDefinerAtom (',' partitionDefinerAtom)* - ')' - partitionOption* - (subpartitionDefinition (',' subpartitionDefinition)*)? #partitionComparision - | PARTITION uid VALUES LESS THAN - partitionDefinerAtom partitionOption* - (subpartitionDefinition (',' subpartitionDefinition)*)? #partitionComparision - | PARTITION uid VALUES IN - '(' - partitionDefinerAtom (',' partitionDefinerAtom)* - ')' - partitionOption* - (subpartitionDefinition (',' subpartitionDefinition)*)? #partitionListAtom - | PARTITION uid VALUES IN - '(' - partitionDefinerVector (',' partitionDefinerVector)* - ')' - partitionOption* - (subpartitionDefinition (',' subpartitionDefinition)*)? #partitionListVector - | PARTITION uid partitionOption* - (subpartitionDefinition (',' subpartitionDefinition)*)? #partitionSimple - ; - -partitionDefinerAtom - : constant | expression | MAXVALUE - ; - -partitionDefinerVector - : '(' partitionDefinerAtom (',' partitionDefinerAtom)+ ')' - ; - -subpartitionDefinition - : SUBPARTITION uid partitionOption* - ; - -partitionOption - : STORAGE? ENGINE '='? engineName #partitionOptionEngine - | COMMENT '='? comment=STRING_LITERAL #partitionOptionComment - | DATA DIRECTORY '='? dataDirectory=STRING_LITERAL #partitionOptionDataDirectory - | INDEX DIRECTORY '='? indexDirectory=STRING_LITERAL #partitionOptionIndexDirectory - | MAX_ROWS '='? maxRows=decimalLiteral #partitionOptionMaxRows - | MIN_ROWS '='? minRows=decimalLiteral #partitionOptionMinRows - | TABLESPACE '='? tablespace=uid #partitionOptionTablespace - | NODEGROUP '='? nodegroup=uid #partitionOptionNodeGroup - ; - -// Alter statements - -alterDatabase - : ALTER dbFormat=(DATABASE | SCHEMA) uid? - createDatabaseOption+ #alterSimpleDatabase - | ALTER dbFormat=(DATABASE | SCHEMA) uid - UPGRADE DATA DIRECTORY NAME #alterUpgradeName - ; - -alterEvent - : ALTER ownerStatement? - EVENT fullId - (ON SCHEDULE scheduleExpression)? - (ON COMPLETION NOT? PRESERVE)? - (RENAME TO fullId)? enableType? - (COMMENT STRING_LITERAL)? - (DO routineBody)? - ; - -alterFunction - : ALTER FUNCTION fullId routineOption* - ; - -alterInstance - : ALTER INSTANCE ROTATE INNODB MASTER KEY - ; - -alterLogfileGroup - : ALTER LOGFILE GROUP uid - ADD UNDOFILE STRING_LITERAL - (INITIAL_SIZE '='? fileSizeLiteral)? - WAIT? ENGINE '='? engineName - ; - -alterProcedure - : ALTER PROCEDURE fullId routineOption* - ; - -alterServer - : ALTER SERVER uid OPTIONS - '(' serverOption (',' serverOption)* ')' - ; - -alterTable - : ALTER intimeAction=(ONLINE | OFFLINE)? - IGNORE? TABLE tableName - (alterSpecification (',' alterSpecification)*)? - partitionDefinitions? - ; - -alterTablespace - : ALTER TABLESPACE uid - objectAction=(ADD | DROP) DATAFILE STRING_LITERAL - (INITIAL_SIZE '=' fileSizeLiteral)? - WAIT? - ENGINE '='? engineName - ; - -alterView - : ALTER - ( - ALGORITHM '=' algType=(UNDEFINED | MERGE | TEMPTABLE) - )? - ownerStatement? - (SQL SECURITY secContext=(DEFINER | INVOKER))? - VIEW fullId ('(' uidList ')')? AS selectStatement - (WITH checkOpt=(CASCADED | LOCAL)? CHECK OPTION)? - ; - -// details - -alterSpecification - : tableOption (','? tableOption)* #alterByTableOption - | ADD COLUMN? uid columnDefinition (FIRST | AFTER uid)? #alterByAddColumn - | ADD COLUMN? - '(' - uid columnDefinition ( ',' uid columnDefinition)* - ')' #alterByAddColumns - | ADD indexFormat=(INDEX | KEY) uid? indexType? - indexColumnNames indexOption* #alterByAddIndex - | ADD (CONSTRAINT name=uid?)? PRIMARY KEY index=uid? - indexType? indexColumnNames indexOption* #alterByAddPrimaryKey - | ADD (CONSTRAINT name=uid?)? UNIQUE - indexFormat=(INDEX | KEY)? indexName=uid? - indexType? indexColumnNames indexOption* #alterByAddUniqueKey - | ADD keyType=(FULLTEXT | SPATIAL) - indexFormat=(INDEX | KEY)? uid? - indexColumnNames indexOption* #alterByAddSpecialIndex - | ADD (CONSTRAINT name=uid?)? FOREIGN KEY - indexName=uid? indexColumnNames referenceDefinition #alterByAddForeignKey - | ADD (CONSTRAINT name=uid?)? CHECK '(' expression ')' #alterByAddCheckTableConstraint - | ALGORITHM '='? algType=(DEFAULT | INPLACE | COPY) #alterBySetAlgorithm - | ALTER COLUMN? uid - (SET DEFAULT defaultValue | DROP DEFAULT) #alterByChangeDefault - | CHANGE COLUMN? oldColumn=uid - newColumn=uid columnDefinition - (FIRST | AFTER afterColumn=uid)? #alterByChangeColumn - | RENAME COLUMN oldColumn=uid TO newColumn=uid #alterByRenameColumn - | LOCK '='? lockType=(DEFAULT | NONE | SHARED | EXCLUSIVE) #alterByLock - | MODIFY COLUMN? - uid columnDefinition (FIRST | AFTER uid)? #alterByModifyColumn - | DROP COLUMN? uid RESTRICT? #alterByDropColumn - | DROP PRIMARY KEY #alterByDropPrimaryKey - | RENAME indexFormat=(INDEX | KEY) uid TO uid #alterByRenameIndex - | ALTER INDEX uid (VISIBLE | INVISIBLE) #alterByAlterIndexVisibility - | DROP indexFormat=(INDEX | KEY) uid #alterByDropIndex - | DROP FOREIGN KEY uid #alterByDropForeignKey - | DISABLE KEYS #alterByDisableKeys - | ENABLE KEYS #alterByEnableKeys - | RENAME renameFormat=(TO | AS)? (uid | fullId) #alterByRename - | ORDER BY uidList #alterByOrder - | CONVERT TO CHARACTER SET charsetName - (COLLATE collationName)? #alterByConvertCharset - | DEFAULT? CHARACTER SET '=' charsetName - (COLLATE '=' collationName)? #alterByDefaultCharset - | DISCARD TABLESPACE #alterByDiscardTablespace - | IMPORT TABLESPACE #alterByImportTablespace - | FORCE #alterByForce - | validationFormat=(WITHOUT | WITH) VALIDATION #alterByValidate - | ADD PARTITION - '(' - partitionDefinition (',' partitionDefinition)* - ')' #alterByAddPartition - | DROP PARTITION uidList #alterByDropPartition - | DISCARD PARTITION (uidList | ALL) TABLESPACE #alterByDiscardPartition - | IMPORT PARTITION (uidList | ALL) TABLESPACE #alterByImportPartition - | TRUNCATE PARTITION (uidList | ALL) #alterByTruncatePartition - | COALESCE PARTITION decimalLiteral #alterByCoalescePartition - | REORGANIZE PARTITION uidList - INTO '(' - partitionDefinition (',' partitionDefinition)* - ')' #alterByReorganizePartition - | EXCHANGE PARTITION uid WITH TABLE tableName - (validationFormat=(WITH | WITHOUT) VALIDATION)? #alterByExchangePartition - | ANALYZE PARTITION (uidList | ALL) #alterByAnalyzePartition - | CHECK PARTITION (uidList | ALL) #alterByCheckPartition - | OPTIMIZE PARTITION (uidList | ALL) #alterByOptimizePartition - | REBUILD PARTITION (uidList | ALL) #alterByRebuildPartition - | REPAIR PARTITION (uidList | ALL) #alterByRepairPartition - | REMOVE PARTITIONING #alterByRemovePartitioning - | UPGRADE PARTITIONING #alterByUpgradePartitioning - ; - - -// Drop statements - -dropDatabase - : DROP dbFormat=(DATABASE | SCHEMA) ifExists? uid - ; - -dropEvent - : DROP EVENT ifExists? fullId - ; - -dropIndex - : DROP INDEX intimeAction=(ONLINE | OFFLINE)? - uid ON tableName - ( - ALGORITHM '='? algType=(DEFAULT | INPLACE | COPY) - | LOCK '='? - lockType=(DEFAULT | NONE | SHARED | EXCLUSIVE) - )* - ; - -dropLogfileGroup - : DROP LOGFILE GROUP uid ENGINE '=' engineName - ; - -dropProcedure - : DROP PROCEDURE ifExists? fullId - ; - -dropFunction - : DROP FUNCTION ifExists? fullId - ; - -dropServer - : DROP SERVER ifExists? uid - ; - -dropTable - : DROP TEMPORARY? TABLE ifExists? - tables dropType=(RESTRICT | CASCADE)? - ; - -dropTablespace - : DROP TABLESPACE uid (ENGINE '='? engineName)? - ; - -dropTrigger - : DROP TRIGGER ifExists? fullId - ; - -dropView - : DROP VIEW ifExists? - fullId (',' fullId)* dropType=(RESTRICT | CASCADE)? - ; - - -// Other DDL statements - -renameTable - : RENAME TABLE - renameTableClause (',' renameTableClause)* - ; - -renameTableClause - : tableName TO tableName - ; - -truncateTable - : TRUNCATE TABLE? tableName - ; - - -// Data Manipulation Language - -// Primary DML Statements - - -callStatement - : CALL fullId - ( - '(' (constants | expressions)? ')' - )? - ; - -deleteStatement - : singleDeleteStatement | multipleDeleteStatement - ; - -doStatement - : DO expressions - ; - -handlerStatement - : handlerOpenStatement - | handlerReadIndexStatement - | handlerReadStatement - | handlerCloseStatement - ; - -insertStatement - : INSERT - priority=(LOW_PRIORITY | DELAYED | HIGH_PRIORITY)? - IGNORE? INTO? tableName - (PARTITION '(' partitions=uidList? ')' )? - ( - ('(' columns=uidList ')')? insertStatementValue - | SET - setFirst=updatedElement - (',' setElements+=updatedElement)* - ) - ( - ON DUPLICATE KEY UPDATE - duplicatedFirst=updatedElement - (',' duplicatedElements+=updatedElement)* - )? - ; - -loadDataStatement - : LOAD DATA - priority=(LOW_PRIORITY | CONCURRENT)? - LOCAL? INFILE filename=STRING_LITERAL - violation=(REPLACE | IGNORE)? - INTO TABLE tableName - (PARTITION '(' uidList ')' )? - (CHARACTER SET charset=charsetName)? - ( - fieldsFormat=(FIELDS | COLUMNS) - selectFieldsInto+ - )? - ( - LINES - selectLinesInto+ - )? - ( - IGNORE decimalLiteral linesFormat=(LINES | ROWS) - )? - ( '(' assignmentField (',' assignmentField)* ')' )? - (SET updatedElement (',' updatedElement)*)? - ; - -loadXmlStatement - : LOAD XML - priority=(LOW_PRIORITY | CONCURRENT)? - LOCAL? INFILE filename=STRING_LITERAL - violation=(REPLACE | IGNORE)? - INTO TABLE tableName - (CHARACTER SET charset=charsetName)? - (ROWS IDENTIFIED BY '<' tag=STRING_LITERAL '>')? - ( IGNORE decimalLiteral linesFormat=(LINES | ROWS) )? - ( '(' assignmentField (',' assignmentField)* ')' )? - (SET updatedElement (',' updatedElement)*)? - ; - -replaceStatement - : REPLACE priority=(LOW_PRIORITY | DELAYED)? - INTO? tableName - (PARTITION '(' partitions=uidList ')' )? - ( - ('(' columns=uidList ')')? insertStatementValue - | SET - setFirst=updatedElement - (',' setElements+=updatedElement)* - ) - ; - -selectStatement - : querySpecification lockClause? #simpleSelect - | queryExpression lockClause? #parenthesisSelect - | querySpecificationNointo unionStatement+ - ( - UNION unionType=(ALL | DISTINCT)? - (querySpecification | queryExpression) - )? - orderByClause? limitClause? lockClause? #unionSelect - | queryExpressionNointo unionParenthesis+ - ( - UNION unionType=(ALL | DISTINCT)? - queryExpression - )? - orderByClause? limitClause? lockClause? #unionParenthesisSelect - ; - -updateStatement - : singleUpdateStatement | multipleUpdateStatement - ; - -// details - -insertStatementValue - : selectStatement - | insertFormat=(VALUES | VALUE) - '(' expressionsWithDefaults? ')' - (',' '(' expressionsWithDefaults? ')')* - ; - -updatedElement - : fullColumnName '=' (expression | DEFAULT) - ; - -assignmentField - : uid | LOCAL_ID - ; - -lockClause - : FOR UPDATE | LOCK IN SHARE MODE - ; - -// Detailed DML Statements - -singleDeleteStatement - : DELETE priority=LOW_PRIORITY? QUICK? IGNORE? - FROM tableName - (PARTITION '(' uidList ')' )? - (WHERE expression)? - orderByClause? (LIMIT limitClauseAtom)? - ; - -multipleDeleteStatement - : DELETE priority=LOW_PRIORITY? QUICK? IGNORE? - ( - tableName ('.' '*')? ( ',' tableName ('.' '*')? )* - FROM tableSources - | FROM - tableName ('.' '*')? ( ',' tableName ('.' '*')? )* - USING tableSources - ) - (WHERE expression)? - ; - -handlerOpenStatement - : HANDLER tableName OPEN (AS? uid)? - ; - -handlerReadIndexStatement - : HANDLER tableName READ index=uid - ( - comparisonOperator '(' constants ')' - | moveOrder=(FIRST | NEXT | PREV | LAST) - ) - (WHERE expression)? (LIMIT limitClauseAtom)? - ; - -handlerReadStatement - : HANDLER tableName READ moveOrder=(FIRST | NEXT) - (WHERE expression)? (LIMIT limitClauseAtom)? - ; - -handlerCloseStatement - : HANDLER tableName CLOSE - ; - -singleUpdateStatement - : UPDATE priority=LOW_PRIORITY? IGNORE? tableName (AS? uid)? - SET updatedElement (',' updatedElement)* - (WHERE expression)? orderByClause? limitClause? - ; - -multipleUpdateStatement - : UPDATE priority=LOW_PRIORITY? IGNORE? tableSources - SET updatedElement (',' updatedElement)* - (WHERE expression)? - ; - -// details - -orderByClause - : ORDER BY orderByExpression (',' orderByExpression)* - ; - -orderByExpression - : expression order=(ASC | DESC)? - ; - -tableSources - : tableSource (',' tableSource)* - ; - -tableSource - : tableSourceItem joinPart* #tableSourceBase - | '(' tableSourceItem joinPart* ')' #tableSourceNested - ; - -tableSourceItem - : tableName - (PARTITION '(' uidList ')' )? (AS? alias=uid)? - (indexHint (',' indexHint)* )? #atomTableItem - | ( - selectStatement - | '(' parenthesisSubquery=selectStatement ')' - ) - AS? alias=uid #subqueryTableItem - | '(' tableSources ')' #tableSourcesItem - ; - -indexHint - : indexHintAction=(USE | IGNORE | FORCE) - keyFormat=(INDEX|KEY) ( FOR indexHintType)? - '(' uidList ')' - ; - -indexHintType - : JOIN | ORDER BY | GROUP BY - ; - -joinPart - : (INNER | CROSS)? JOIN tableSourceItem - ( - ON expression - | USING '(' uidList ')' - )? #innerJoin - | STRAIGHT_JOIN tableSourceItem (ON expression)? #straightJoin - | (LEFT | RIGHT) OUTER? JOIN tableSourceItem - ( - ON expression - | USING '(' uidList ')' - ) #outerJoin - | NATURAL ((LEFT | RIGHT) OUTER?)? JOIN tableSourceItem #naturalJoin - ; - -// Select Statement's Details - -queryExpression - : '(' querySpecification ')' - | '(' queryExpression ')' - ; - -queryExpressionNointo - : '(' querySpecificationNointo ')' - | '(' queryExpressionNointo ')' - ; - -querySpecification - : SELECT selectSpec* selectElements selectIntoExpression? - fromClause? orderByClause? limitClause? - | SELECT selectSpec* selectElements - fromClause? orderByClause? limitClause? selectIntoExpression? - ; - -querySpecificationNointo - : SELECT selectSpec* selectElements - fromClause? orderByClause? limitClause? - ; - -unionParenthesis - : UNION unionType=(ALL | DISTINCT)? queryExpressionNointo - ; - -unionStatement - : UNION unionType=(ALL | DISTINCT)? - (querySpecificationNointo | queryExpressionNointo) - ; - -// details - -selectSpec - : (ALL | DISTINCT | DISTINCTROW) - | HIGH_PRIORITY | STRAIGHT_JOIN | SQL_SMALL_RESULT - | SQL_BIG_RESULT | SQL_BUFFER_RESULT - | (SQL_CACHE | SQL_NO_CACHE) - | SQL_CALC_FOUND_ROWS - ; - -selectElements - : (star='*' | selectElement ) (',' selectElement)* - ; - -selectElement - : fullId '.' '*' #selectStarElement - | fullColumnName (AS? uid)? #selectColumnElement - | functionCall (AS? uid)? #selectFunctionElement - | (LOCAL_ID VAR_ASSIGN)? expression (AS? uid)? #selectExpressionElement - ; - -selectIntoExpression - : INTO assignmentField (',' assignmentField )* #selectIntoVariables - | INTO DUMPFILE STRING_LITERAL #selectIntoDumpFile - | ( - INTO OUTFILE filename=STRING_LITERAL - (CHARACTER SET charset=charsetName)? - ( - fieldsFormat=(FIELDS | COLUMNS) - selectFieldsInto+ - )? - ( - LINES selectLinesInto+ - )? - ) #selectIntoTextFile - ; - -selectFieldsInto - : TERMINATED BY terminationField=STRING_LITERAL - | OPTIONALLY? ENCLOSED BY enclosion=STRING_LITERAL - | ESCAPED BY escaping=STRING_LITERAL - ; - -selectLinesInto - : STARTING BY starting=STRING_LITERAL - | TERMINATED BY terminationLine=STRING_LITERAL - ; - -fromClause - : FROM tableSources - (WHERE whereExpr=expression)? - ( - GROUP BY - groupByItem (',' groupByItem)* - (WITH ROLLUP)? - )? - (HAVING havingExpr=expression)? - ; - -groupByItem - : expression order=(ASC | DESC)? - ; - -limitClause - : LIMIT - ( - (offset=limitClauseAtom ',')? limit=limitClauseAtom - | limit=limitClauseAtom OFFSET offset=limitClauseAtom - ) - ; - -limitClauseAtom - : decimalLiteral | mysqlVariable - ; - - -// Transaction's Statements - -startTransaction - : START TRANSACTION (transactionMode (',' transactionMode)* )? - ; - -beginWork - : BEGIN WORK? - ; - -commitWork - : COMMIT WORK? - (AND nochain=NO? CHAIN)? - (norelease=NO? RELEASE)? - ; - -rollbackWork - : ROLLBACK WORK? - (AND nochain=NO? CHAIN)? - (norelease=NO? RELEASE)? - ; - -savepointStatement - : SAVEPOINT uid - ; - -rollbackStatement - : ROLLBACK WORK? TO SAVEPOINT? uid - ; - -releaseStatement - : RELEASE SAVEPOINT uid - ; - -lockTables - : LOCK TABLES lockTableElement (',' lockTableElement)* - ; - -unlockTables - : UNLOCK TABLES - ; - - -// details - -setAutocommitStatement - : SET AUTOCOMMIT '=' autocommitValue=('0' | '1') - ; - -setTransactionStatement - : SET transactionContext=(GLOBAL | SESSION)? TRANSACTION - transactionOption (',' transactionOption)* - ; - -transactionMode - : WITH CONSISTENT SNAPSHOT - | READ WRITE - | READ ONLY - ; - -lockTableElement - : tableName (AS? uid)? lockAction - ; - -lockAction - : READ LOCAL? | LOW_PRIORITY? WRITE - ; - -transactionOption - : ISOLATION LEVEL transactionLevel - | READ WRITE - | READ ONLY - ; - -transactionLevel - : REPEATABLE READ - | READ COMMITTED - | READ UNCOMMITTED - | SERIALIZABLE - ; - - -// Replication's Statements - -// Base Replication - -changeMaster - : CHANGE MASTER TO - masterOption (',' masterOption)* channelOption? - ; - -changeReplicationFilter - : CHANGE REPLICATION FILTER - replicationFilter (',' replicationFilter)* - ; - -purgeBinaryLogs - : PURGE purgeFormat=(BINARY | MASTER) LOGS - ( - TO fileName=STRING_LITERAL - | BEFORE timeValue=STRING_LITERAL - ) - ; - -resetMaster - : RESET MASTER - ; - -resetSlave - : RESET SLAVE ALL? channelOption? - ; - -startSlave - : START SLAVE (threadType (',' threadType)*)? - (UNTIL untilOption)? - connectionOption* channelOption? - ; - -stopSlave - : STOP SLAVE (threadType (',' threadType)*)? - ; - -startGroupReplication - : START GROUP_REPLICATION - ; - -stopGroupReplication - : STOP GROUP_REPLICATION - ; - -// details - -masterOption - : stringMasterOption '=' STRING_LITERAL #masterStringOption - | decimalMasterOption '=' decimalLiteral #masterDecimalOption - | boolMasterOption '=' boolVal=('0' | '1') #masterBoolOption - | MASTER_HEARTBEAT_PERIOD '=' REAL_LITERAL #masterRealOption - | IGNORE_SERVER_IDS '=' '(' (uid (',' uid)*)? ')' #masterUidListOption - ; - -stringMasterOption - : MASTER_BIND | MASTER_HOST | MASTER_USER | MASTER_PASSWORD - | MASTER_LOG_FILE | RELAY_LOG_FILE | MASTER_SSL_CA - | MASTER_SSL_CAPATH | MASTER_SSL_CERT | MASTER_SSL_CRL - | MASTER_SSL_CRLPATH | MASTER_SSL_KEY | MASTER_SSL_CIPHER - | MASTER_TLS_VERSION - ; -decimalMasterOption - : MASTER_PORT | MASTER_CONNECT_RETRY | MASTER_RETRY_COUNT - | MASTER_DELAY | MASTER_LOG_POS | RELAY_LOG_POS - ; - -boolMasterOption - : MASTER_AUTO_POSITION | MASTER_SSL - | MASTER_SSL_VERIFY_SERVER_CERT - ; - -channelOption - : FOR CHANNEL STRING_LITERAL - ; - -replicationFilter - : REPLICATE_DO_DB '=' '(' uidList ')' #doDbReplication - | REPLICATE_IGNORE_DB '=' '(' uidList ')' #ignoreDbReplication - | REPLICATE_DO_TABLE '=' '(' tables ')' #doTableReplication - | REPLICATE_IGNORE_TABLE '=' '(' tables ')' #ignoreTableReplication - | REPLICATE_WILD_DO_TABLE '=' '(' simpleStrings ')' #wildDoTableReplication - | REPLICATE_WILD_IGNORE_TABLE - '=' '(' simpleStrings ')' #wildIgnoreTableReplication - | REPLICATE_REWRITE_DB '=' - '(' tablePair (',' tablePair)* ')' #rewriteDbReplication - ; - -tablePair - : '(' firstTable=tableName ',' secondTable=tableName ')' - ; - -threadType - : IO_THREAD | SQL_THREAD - ; - -untilOption - : gtids=(SQL_BEFORE_GTIDS | SQL_AFTER_GTIDS) - '=' gtuidSet #gtidsUntilOption - | MASTER_LOG_FILE '=' STRING_LITERAL - ',' MASTER_LOG_POS '=' decimalLiteral #masterLogUntilOption - | RELAY_LOG_FILE '=' STRING_LITERAL - ',' RELAY_LOG_POS '=' decimalLiteral #relayLogUntilOption - | SQL_AFTER_MTS_GAPS #sqlGapsUntilOption - ; - -connectionOption - : USER '=' conOptUser=STRING_LITERAL #userConnectionOption - | PASSWORD '=' conOptPassword=STRING_LITERAL #passwordConnectionOption - | DEFAULT_AUTH '=' conOptDefAuth=STRING_LITERAL #defaultAuthConnectionOption - | PLUGIN_DIR '=' conOptPluginDir=STRING_LITERAL #pluginDirConnectionOption - ; - -gtuidSet - : uuidSet (',' uuidSet)* - | STRING_LITERAL - ; - - -// XA Transactions - -xaStartTransaction - : XA xaStart=(START | BEGIN) xid xaAction=(JOIN | RESUME)? - ; - -xaEndTransaction - : XA END xid (SUSPEND (FOR MIGRATE)?)? - ; - -xaPrepareStatement - : XA PREPARE xid - ; - -xaCommitWork - : XA COMMIT xid (ONE PHASE)? - ; - -xaRollbackWork - : XA ROLLBACK xid - ; - -xaRecoverWork - : XA RECOVER (CONVERT xid)? - ; - - -// Prepared Statements - -prepareStatement - : PREPARE uid FROM - (query=STRING_LITERAL | variable=LOCAL_ID) - ; - -executeStatement - : EXECUTE uid (USING userVariables)? - ; - -deallocatePrepare - : dropFormat=(DEALLOCATE | DROP) PREPARE uid - ; - - -// Compound Statements - -routineBody - : blockStatement | sqlStatement - ; - -// details - -blockStatement - : (uid ':')? BEGIN - ( - (declareVariable SEMI)* - (declareCondition SEMI)* - (declareCursor SEMI)* - (declareHandler SEMI)* - procedureSqlStatement* - )? - END uid? - ; - -caseStatement - : CASE (uid | expression)? caseAlternative+ - (ELSE procedureSqlStatement+)? - END CASE - ; - -ifStatement - : IF expression - THEN thenStatements+=procedureSqlStatement+ - elifAlternative* - (ELSE elseStatements+=procedureSqlStatement+ )? - END IF - ; - -iterateStatement - : ITERATE uid - ; - -leaveStatement - : LEAVE uid - ; - -loopStatement - : (uid ':')? - LOOP procedureSqlStatement+ - END LOOP uid? - ; - -repeatStatement - : (uid ':')? - REPEAT procedureSqlStatement+ - UNTIL expression - END REPEAT uid? - ; - -returnStatement - : RETURN expression - ; - -whileStatement - : (uid ':')? - WHILE expression - DO procedureSqlStatement+ - END WHILE uid? - ; - -cursorStatement - : CLOSE uid #CloseCursor - | FETCH (NEXT? FROM)? uid INTO uidList #FetchCursor - | OPEN uid #OpenCursor - ; - -// details - -declareVariable - : DECLARE uidList dataType (DEFAULT defaultValue)? - ; - -declareCondition - : DECLARE uid CONDITION FOR - ( decimalLiteral | SQLSTATE VALUE? STRING_LITERAL) - ; - -declareCursor - : DECLARE uid CURSOR FOR selectStatement - ; - -declareHandler - : DECLARE handlerAction=(CONTINUE | EXIT | UNDO) - HANDLER FOR - handlerConditionValue (',' handlerConditionValue)* - routineBody - ; - -handlerConditionValue - : decimalLiteral #handlerConditionCode - | SQLSTATE VALUE? STRING_LITERAL #handlerConditionState - | uid #handlerConditionName - | SQLWARNING #handlerConditionWarning - | NOT FOUND #handlerConditionNotfound - | SQLEXCEPTION #handlerConditionException - ; - -procedureSqlStatement - : (compoundStatement | sqlStatement) SEMI - ; - -caseAlternative - : WHEN (constant | expression) - THEN procedureSqlStatement+ - ; - -elifAlternative - : ELSEIF expression - THEN procedureSqlStatement+ - ; - -// Administration Statements - -// Account management statements - -alterUser - : ALTER USER - userSpecification (',' userSpecification)* #alterUserMysqlV56 - | ALTER USER ifExists? - userAuthOption (',' userAuthOption)* - ( - REQUIRE - (tlsNone=NONE | tlsOption (AND? tlsOption)* ) - )? - (WITH userResourceOption+)? - (userPasswordOption | userLockOption)* #alterUserMysqlV57 - ; - -createUser - : CREATE USER userAuthOption (',' userAuthOption)* #createUserMysqlV56 - | CREATE USER ifNotExists? - userAuthOption (',' userAuthOption)* - ( - REQUIRE - (tlsNone=NONE | tlsOption (AND? tlsOption)* ) - )? - (WITH userResourceOption+)? - (userPasswordOption | userLockOption)* #createUserMysqlV57 - ; - -dropUser - : DROP USER ifExists? userName (',' userName)* - ; - -grantStatement - : GRANT privelegeClause (',' privelegeClause)* - ON - privilegeObject=(TABLE | FUNCTION | PROCEDURE)? - privilegeLevel - TO userAuthOption (',' userAuthOption)* - ( - REQUIRE - (tlsNone=NONE | tlsOption (AND? tlsOption)* ) - )? - (WITH (GRANT OPTION | userResourceOption)* )? - ; - -grantProxy - : GRANT PROXY ON fromFirst=userName - TO toFirst=userName (',' toOther+=userName)* - (WITH GRANT OPTION)? - ; - -renameUser - : RENAME USER - renameUserClause (',' renameUserClause)* - ; - -revokeStatement - : REVOKE privelegeClause (',' privelegeClause)* - ON - privilegeObject=(TABLE | FUNCTION | PROCEDURE)? - privilegeLevel - FROM userName (',' userName)* #detailRevoke - | REVOKE ALL PRIVILEGES? ',' GRANT OPTION - FROM userName (',' userName)* #shortRevoke - ; - -revokeProxy - : REVOKE PROXY ON onUser=userName - FROM fromFirst=userName (',' fromOther+=userName)* - ; - -setPasswordStatement - : SET PASSWORD (FOR userName)? - '=' ( passwordFunctionClause | STRING_LITERAL) - ; - -// details - -userSpecification - : userName userPasswordOption - ; - -userAuthOption - : userName IDENTIFIED BY PASSWORD hashed=STRING_LITERAL #passwordAuthOption - | userName - IDENTIFIED (WITH authPlugin)? BY STRING_LITERAL #stringAuthOption - | userName - IDENTIFIED WITH authPlugin - (AS STRING_LITERAL)? #hashAuthOption - | userName #simpleAuthOption - ; - -tlsOption - : SSL - | X509 - | CIPHER STRING_LITERAL - | ISSUER STRING_LITERAL - | SUBJECT STRING_LITERAL - ; - -userResourceOption - : MAX_QUERIES_PER_HOUR decimalLiteral - | MAX_UPDATES_PER_HOUR decimalLiteral - | MAX_CONNECTIONS_PER_HOUR decimalLiteral - | MAX_USER_CONNECTIONS decimalLiteral - ; - -userPasswordOption - : PASSWORD EXPIRE - (expireType=DEFAULT - | expireType=NEVER - | expireType=INTERVAL decimalLiteral DAY - )? - ; - -userLockOption - : ACCOUNT lockType=(LOCK | UNLOCK) - ; - -privelegeClause - : privilege ( '(' uidList ')' )? - ; - -privilege - : ALL PRIVILEGES? - | ALTER ROUTINE? - | CREATE - (TEMPORARY TABLES | ROUTINE | VIEW | USER | TABLESPACE | ROLE)? - | DELETE | DROP (ROLE)? | EVENT | EXECUTE | FILE | GRANT OPTION - | INDEX | INSERT | LOCK TABLES | PROCESS | PROXY - | REFERENCES | RELOAD - | REPLICATION (CLIENT | SLAVE) - | SELECT - | SHOW (VIEW | DATABASES) - | SHUTDOWN | SUPER | TRIGGER | UPDATE | USAGE - | AUDIT_ADMIN | BACKUP_ADMIN | BINLOG_ADMIN | BINLOG_ENCRYPTION_ADMIN | CLONE_ADMIN - | CONNECTION_ADMIN | ENCRYPTION_KEY_ADMIN | FIREWALL_ADMIN | FIREWALL_USER | GROUP_REPLICATION_ADMIN - | INNODB_REDO_LOG_ARCHIVE | NDB_STORED_USER | PERSIST_RO_VARIABLES_ADMIN | REPLICATION_APPLIER - | REPLICATION_SLAVE_ADMIN | RESOURCE_GROUP_ADMIN | RESOURCE_GROUP_USER | ROLE_ADMIN - | SESSION_VARIABLES_ADMIN | SET_USER_ID | SHOW_ROUTINE | SYSTEM_VARIABLES_ADMIN | TABLE_ENCRYPTION_ADMIN - | VERSION_TOKEN_ADMIN | XA_RECOVER_ADMIN - ; - -privilegeLevel - : '*' #currentSchemaPriviLevel - | '*' '.' '*' #globalPrivLevel - | uid '.' '*' #definiteSchemaPrivLevel - | uid '.' uid #definiteFullTablePrivLevel - | uid dottedId #definiteFullTablePrivLevel2 - | uid #definiteTablePrivLevel - ; - -renameUserClause - : fromFirst=userName TO toFirst=userName - ; - -// Table maintenance statements - -analyzeTable - : ANALYZE actionOption=(NO_WRITE_TO_BINLOG | LOCAL)? - TABLE tables - ; - -checkTable - : CHECK TABLE tables checkTableOption* - ; - -checksumTable - : CHECKSUM TABLE tables actionOption=(QUICK | EXTENDED)? - ; - -optimizeTable - : OPTIMIZE actionOption=(NO_WRITE_TO_BINLOG | LOCAL)? - TABLE tables - ; - -repairTable - : REPAIR actionOption=(NO_WRITE_TO_BINLOG | LOCAL)? - TABLE tables - QUICK? EXTENDED? USE_FRM? - ; - -// details - -checkTableOption - : FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED - ; - - -// Plugin and udf statements - -createUdfunction - : CREATE AGGREGATE? FUNCTION uid - RETURNS returnType=(STRING | INTEGER | REAL | DECIMAL) - SONAME STRING_LITERAL - ; - -installPlugin - : INSTALL PLUGIN uid SONAME STRING_LITERAL - ; - -uninstallPlugin - : UNINSTALL PLUGIN uid - ; - - -// Set and show statements - -setStatement - : SET variableClause ('=' | ':=') expression - (',' variableClause ('=' | ':=') expression)* #setVariable - | SET (CHARACTER SET | CHARSET) (charsetName | DEFAULT) #setCharset - | SET NAMES - (charsetName (COLLATE collationName)? | DEFAULT) #setNames - | setPasswordStatement #setPassword - | setTransactionStatement #setTransaction - | setAutocommitStatement #setAutocommit - | SET fullId ('=' | ':=') expression - (',' fullId ('=' | ':=') expression)* #setNewValueInsideTrigger - ; - -showStatement - : SHOW logFormat=(BINARY | MASTER) LOGS #showMasterLogs - | SHOW logFormat=(BINLOG | RELAYLOG) - EVENTS (IN filename=STRING_LITERAL)? - (FROM fromPosition=decimalLiteral)? - (LIMIT - (offset=decimalLiteral ',')? - rowCount=decimalLiteral - )? #showLogEvents - | SHOW showCommonEntity showFilter? #showObjectFilter - | SHOW FULL? columnsFormat=(COLUMNS | FIELDS) - tableFormat=(FROM | IN) tableName - (schemaFormat=(FROM | IN) uid)? showFilter? #showColumns - | SHOW CREATE schemaFormat=(DATABASE | SCHEMA) - ifNotExists? uid #showCreateDb - | SHOW CREATE - namedEntity=( - EVENT | FUNCTION | PROCEDURE - | TABLE | TRIGGER | VIEW - ) - fullId #showCreateFullIdObject - | SHOW CREATE USER userName #showCreateUser - | SHOW ENGINE engineName engineOption=(STATUS | MUTEX) #showEngine - | SHOW showGlobalInfoClause #showGlobalInfo - | SHOW errorFormat=(ERRORS | WARNINGS) - (LIMIT - (offset=decimalLiteral ',')? - rowCount=decimalLiteral - ) #showErrors - | SHOW COUNT '(' '*' ')' errorFormat=(ERRORS | WARNINGS) #showCountErrors - | SHOW showSchemaEntity - (schemaFormat=(FROM | IN) uid)? showFilter? #showSchemaFilter - | SHOW routine=(FUNCTION | PROCEDURE) CODE fullId #showRoutine - | SHOW GRANTS (FOR userName)? #showGrants - | SHOW indexFormat=(INDEX | INDEXES | KEYS) - tableFormat=(FROM | IN) tableName - (schemaFormat=(FROM | IN) uid)? (WHERE expression)? #showIndexes - | SHOW OPEN TABLES ( schemaFormat=(FROM | IN) uid)? - showFilter? #showOpenTables - | SHOW PROFILE showProfileType (',' showProfileType)* - (FOR QUERY queryCount=decimalLiteral)? - (LIMIT - (offset=decimalLiteral ',')? - rowCount=decimalLiteral - ) #showProfile - | SHOW SLAVE STATUS (FOR CHANNEL STRING_LITERAL)? #showSlaveStatus - ; - -// details - -variableClause - : LOCAL_ID | GLOBAL_ID | ( ('@' '@')? (GLOBAL | SESSION | LOCAL) )? uid - ; - -showCommonEntity - : CHARACTER SET | COLLATION | DATABASES | SCHEMAS - | FUNCTION STATUS | PROCEDURE STATUS - | (GLOBAL | SESSION)? (STATUS | VARIABLES) - ; - -showFilter - : LIKE STRING_LITERAL - | WHERE expression - ; - -showGlobalInfoClause - : STORAGE? ENGINES | MASTER STATUS | PLUGINS - | PRIVILEGES | FULL? PROCESSLIST | PROFILES - | SLAVE HOSTS | AUTHORS | CONTRIBUTORS - ; - -showSchemaEntity - : EVENTS | TABLE STATUS | FULL? TABLES | TRIGGERS - ; - -showProfileType - : ALL | BLOCK IO | CONTEXT SWITCHES | CPU | IPC | MEMORY - | PAGE FAULTS | SOURCE | SWAPS - ; - - -// Other administrative statements - -binlogStatement - : BINLOG STRING_LITERAL - ; - -cacheIndexStatement - : CACHE INDEX tableIndexes (',' tableIndexes)* - ( PARTITION '(' (uidList | ALL) ')' )? - IN schema=uid - ; - -flushStatement - : FLUSH flushFormat=(NO_WRITE_TO_BINLOG | LOCAL)? - flushOption (',' flushOption)* - ; - -killStatement - : KILL connectionFormat=(CONNECTION | QUERY)? - decimalLiteral+ - ; - -loadIndexIntoCache - : LOAD INDEX INTO CACHE - loadedTableIndexes (',' loadedTableIndexes)* - ; - -// remark reset (maser | slave) describe in replication's -// statements section -resetStatement - : RESET QUERY CACHE - ; - -shutdownStatement - : SHUTDOWN - ; - -// details - -tableIndexes - : tableName ( indexFormat=(INDEX | KEY)? '(' uidList ')' )? - ; - -flushOption - : ( - DES_KEY_FILE | HOSTS - | ( - BINARY | ENGINE | ERROR | GENERAL | RELAY | SLOW - )? LOGS - | OPTIMIZER_COSTS | PRIVILEGES | QUERY CACHE | STATUS - | USER_RESOURCES | TABLES (WITH READ LOCK)? - ) #simpleFlushOption - | RELAY LOGS channelOption? #channelFlushOption - | TABLES tables flushTableOption? #tableFlushOption - ; - -flushTableOption - : WITH READ LOCK - | FOR EXPORT - ; - -loadedTableIndexes - : tableName - ( PARTITION '(' (partitionList=uidList | ALL) ')' )? - ( indexFormat=(INDEX | KEY)? '(' indexList=uidList ')' )? - (IGNORE LEAVES)? - ; - - -// Utility Statements - - -simpleDescribeStatement - : command=(EXPLAIN | DESCRIBE | DESC) tableName - (column=uid | pattern=STRING_LITERAL)? - ; - -fullDescribeStatement - : command=(EXPLAIN | DESCRIBE | DESC) - ( - formatType=(EXTENDED | PARTITIONS | FORMAT ) - '=' - formatValue=(TRADITIONAL | JSON) - )? - describeObjectClause - ; - -helpStatement - : HELP STRING_LITERAL - ; - -useStatement - : USE uid - ; - -signalStatement - : SIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID ) - ( SET signalConditionInformation ( ',' signalConditionInformation)* )? - ; - -resignalStatement - : RESIGNAL ( ( SQLSTATE VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )? - ( SET signalConditionInformation ( ',' signalConditionInformation)* )? - ; - -signalConditionInformation - : ( CLASS_ORIGIN - | SUBCLASS_ORIGIN - | MESSAGE_TEXT - | MYSQL_ERRNO - | CONSTRAINT_CATALOG - | CONSTRAINT_SCHEMA - | CONSTRAINT_NAME - | CATALOG_NAME - | SCHEMA_NAME - | TABLE_NAME - | COLUMN_NAME - | CURSOR_NAME - ) '=' ( stringLiteral | DECIMAL_LITERAL ) - ; - -diagnosticsStatement - : GET ( CURRENT | STACKED )? DIAGNOSTICS ( - ( variableClause '=' ( NUMBER | ROW_COUNT ) ( ',' variableClause '=' ( NUMBER | ROW_COUNT ) )* ) - | ( CONDITION ( decimalLiteral | variableClause ) variableClause '=' diagnosticsConditionInformationName ( ',' variableClause '=' diagnosticsConditionInformationName )* ) - ) - ; - -diagnosticsConditionInformationName - : CLASS_ORIGIN - | SUBCLASS_ORIGIN - | RETURNED_SQLSTATE - | MESSAGE_TEXT - | MYSQL_ERRNO - | CONSTRAINT_CATALOG - | CONSTRAINT_SCHEMA - | CONSTRAINT_NAME - | CATALOG_NAME - | SCHEMA_NAME - | TABLE_NAME - | COLUMN_NAME - | CURSOR_NAME - ; - -// details - -describeObjectClause - : ( - selectStatement | deleteStatement | insertStatement - | replaceStatement | updateStatement - ) #describeStatements - | FOR CONNECTION uid #describeConnection - ; - - -// Common Clauses - -// DB Objects - -fullId - : uid (DOT_ID | '.' uid)? - ; - -tableName - : fullId - ; - -fullColumnName - : uid (dottedId dottedId? )? - ; - -indexColumnName - : (uid | STRING_LITERAL) ('(' decimalLiteral ')')? sortType=(ASC | DESC)? - ; - -userName - : STRING_USER_NAME | ID | STRING_LITERAL; - -mysqlVariable - : LOCAL_ID - | GLOBAL_ID - ; - -charsetName - : BINARY - | charsetNameBase - | STRING_LITERAL - | CHARSET_REVERSE_QOUTE_STRING - ; - -collationName - : uid | STRING_LITERAL; - -engineName - : ARCHIVE | BLACKHOLE | CSV | FEDERATED | INNODB | MEMORY - | MRG_MYISAM | MYISAM | NDB | NDBCLUSTER | PERFORMANCE_SCHEMA - | TOKUDB - | ID - | STRING_LITERAL | REVERSE_QUOTE_ID - ; - -uuidSet - : decimalLiteral '-' decimalLiteral '-' decimalLiteral - '-' decimalLiteral '-' decimalLiteral - (':' decimalLiteral '-' decimalLiteral)+ - ; - -xid - : globalTableUid=xuidStringId - ( - ',' qualifier=xuidStringId - (',' idFormat=decimalLiteral)? - )? - ; - -xuidStringId - : STRING_LITERAL - | BIT_STRING - | HEXADECIMAL_LITERAL+ - ; - -authPlugin - : uid | STRING_LITERAL - ; - -uid - : simpleId - //| DOUBLE_QUOTE_ID - | REVERSE_QUOTE_ID - | CHARSET_REVERSE_QOUTE_STRING - ; - -simpleId - : ID - | charsetNameBase - | transactionLevelBase - | engineName - | privilegesBase - | intervalTypeBase - | dataTypeBase - | keywordsCanBeId - | functionNameBase - ; - -dottedId - : DOT_ID - | '.' uid - ; - - -// Literals - -decimalLiteral - : DECIMAL_LITERAL | ZERO_DECIMAL | ONE_DECIMAL | TWO_DECIMAL - ; - -fileSizeLiteral - : FILESIZE_LITERAL | decimalLiteral; - -stringLiteral - : ( - STRING_CHARSET_NAME? STRING_LITERAL - | START_NATIONAL_STRING_LITERAL - ) STRING_LITERAL+ - | ( - STRING_CHARSET_NAME? STRING_LITERAL - | START_NATIONAL_STRING_LITERAL - ) (COLLATE collationName)? - ; - -booleanLiteral - : TRUE | FALSE; - -hexadecimalLiteral - : STRING_CHARSET_NAME? HEXADECIMAL_LITERAL; - -nullNotnull - : NOT? (NULL_LITERAL | NULL_SPEC_LITERAL) - ; - -constant - : stringLiteral | decimalLiteral - | '-' decimalLiteral - | hexadecimalLiteral | booleanLiteral - | REAL_LITERAL | BIT_STRING - | NOT? nullLiteral=(NULL_LITERAL | NULL_SPEC_LITERAL) - ; - - -// Data Types - -dataType - : typeName=( - CHAR | CHARACTER | VARCHAR | TINYTEXT | TEXT | MEDIUMTEXT | LONGTEXT - | NCHAR | NVARCHAR | LONG - ) - lengthOneDimension? BINARY? - ((CHARACTER SET | CHARSET) charsetName)? - (COLLATE collationName)? #stringDataType - | NATIONAL typeName=(VARCHAR | CHARACTER) - lengthOneDimension? BINARY? #nationalStringDataType - | NCHAR typeName=VARCHAR - lengthOneDimension? BINARY? #nationalStringDataType - | NATIONAL typeName=(CHAR | CHARACTER) VARYING - lengthOneDimension? BINARY? #nationalVaryingStringDataType - | typeName=( - TINYINT | SMALLINT | MEDIUMINT | INT | INTEGER | BIGINT - | MIDDLEINT | INT1 | INT2 | INT3 | INT4 | INT8 - ) - lengthOneDimension? (SIGNED | UNSIGNED)? ZEROFILL? #dimensionDataType - | typeName=REAL - lengthTwoDimension? (SIGNED | UNSIGNED)? ZEROFILL? #dimensionDataType - | typeName=DOUBLE PRECISION? - lengthTwoDimension? (SIGNED | UNSIGNED)? ZEROFILL? #dimensionDataType - | typeName=(DECIMAL | DEC | FIXED | NUMERIC | FLOAT | FLOAT4 | FLOAT8) - lengthTwoOptionalDimension? (SIGNED | UNSIGNED)? ZEROFILL? #dimensionDataType - | typeName=( - DATE | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB - | BOOL | BOOLEAN | SERIAL - ) #simpleDataType - | typeName=( - BIT | TIME | TIMESTAMP | DATETIME | BINARY - | VARBINARY | YEAR - ) - lengthOneDimension? #dimensionDataType - | typeName=(ENUM | SET) - collectionOptions BINARY? - ((CHARACTER SET | CHARSET) charsetName)? #collectionDataType - | typeName=( - GEOMETRYCOLLECTION | GEOMCOLLECTION | LINESTRING | MULTILINESTRING - | MULTIPOINT | MULTIPOLYGON | POINT | POLYGON | JSON | GEOMETRY - ) #spatialDataType - | typeName=LONG VARCHAR? - BINARY? - ((CHARACTER SET | CHARSET) charsetName)? - (COLLATE collationName)? #longVarcharDataType // LONG VARCHAR is the same as LONG - | LONG VARBINARY #longVarbinaryDataType - ; - -collectionOptions - : '(' STRING_LITERAL (',' STRING_LITERAL)* ')' - ; - -convertedDataType - : typeName=(BINARY| NCHAR) lengthOneDimension? - | typeName=CHAR lengthOneDimension? ((CHARACTER SET | CHARSET) charsetName)? - | typeName=(DATE | DATETIME | TIME | JSON) - | typeName=DECIMAL lengthTwoDimension? - | (SIGNED | UNSIGNED) INTEGER? - ; - -lengthOneDimension - : '(' decimalLiteral ')' - ; - -lengthTwoDimension - : '(' decimalLiteral ',' decimalLiteral ')' - ; - -lengthTwoOptionalDimension - : '(' decimalLiteral (',' decimalLiteral)? ')' - ; - - -// Common Lists - -uidList - : uid (',' uid)* - ; - -tables - : tableName (',' tableName)* - ; - -indexColumnNames - : '(' indexColumnName (',' indexColumnName)* ')' - ; - -expressions - : expression (',' expression)* - ; - -expressionsWithDefaults - : expressionOrDefault (',' expressionOrDefault)* - ; - -constants - : constant (',' constant)* - ; - -simpleStrings - : STRING_LITERAL (',' STRING_LITERAL)* - ; - -userVariables - : LOCAL_ID (',' LOCAL_ID)* - ; - - -// Common Expressons - -defaultValue - : NULL_LITERAL - | unaryOperator? constant - | currentTimestamp (ON UPDATE currentTimestamp)? - ; - -currentTimestamp - : - ( - (CURRENT_TIMESTAMP | LOCALTIME | LOCALTIMESTAMP) ('(' decimalLiteral? ')')? - | NOW '(' decimalLiteral? ')' - ) - ; - -expressionOrDefault - : expression | DEFAULT - ; - -ifExists - : IF EXISTS; - -ifNotExists - : IF NOT EXISTS; - - -// Functions - -functionCall - : specificFunction #specificFunctionCall - | aggregateWindowedFunction #aggregateFunctionCall - | scalarFunctionName '(' functionArgs? ')' #scalarFunctionCall - | fullId '(' functionArgs? ')' #udfFunctionCall - | passwordFunctionClause #passwordFunctionCall - ; - -specificFunction - : ( - CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP - | CURRENT_USER | LOCALTIME - ) #simpleFunctionCall - | CONVERT '(' expression separator=',' convertedDataType ')' #dataTypeFunctionCall - | CONVERT '(' expression USING charsetName ')' #dataTypeFunctionCall - | CAST '(' expression AS convertedDataType ')' #dataTypeFunctionCall - | VALUES '(' fullColumnName ')' #valuesFunctionCall - | CASE expression caseFuncAlternative+ - (ELSE elseArg=functionArg)? END #caseFunctionCall - | CASE caseFuncAlternative+ - (ELSE elseArg=functionArg)? END #caseFunctionCall - | CHAR '(' functionArgs (USING charsetName)? ')' #charFunctionCall - | POSITION - '(' - ( - positionString=stringLiteral - | positionExpression=expression - ) - IN - ( - inString=stringLiteral - | inExpression=expression - ) - ')' #positionFunctionCall - | (SUBSTR | SUBSTRING) - '(' - ( - sourceString=stringLiteral - | sourceExpression=expression - ) FROM - ( - fromDecimal=decimalLiteral - | fromExpression=expression - ) - ( - FOR - ( - forDecimal=decimalLiteral - | forExpression=expression - ) - )? - ')' #substrFunctionCall - | TRIM - '(' - positioinForm=(BOTH | LEADING | TRAILING) - ( - sourceString=stringLiteral - | sourceExpression=expression - )? - FROM - ( - fromString=stringLiteral - | fromExpression=expression - ) - ')' #trimFunctionCall - | TRIM - '(' - ( - sourceString=stringLiteral - | sourceExpression=expression - ) - FROM - ( - fromString=stringLiteral - | fromExpression=expression - ) - ')' #trimFunctionCall - | WEIGHT_STRING - '(' - (stringLiteral | expression) - (AS stringFormat=(CHAR | BINARY) - '(' decimalLiteral ')' )? levelsInWeightString? - ')' #weightFunctionCall - | EXTRACT - '(' - intervalType - FROM - ( - sourceString=stringLiteral - | sourceExpression=expression - ) - ')' #extractFunctionCall - | GET_FORMAT - '(' - datetimeFormat=(DATE | TIME | DATETIME) - ',' stringLiteral - ')' #getFormatFunctionCall - ; - -caseFuncAlternative - : WHEN condition=functionArg - THEN consequent=functionArg - ; - -levelsInWeightString - : LEVEL levelInWeightListElement - (',' levelInWeightListElement)* #levelWeightList - | LEVEL - firstLevel=decimalLiteral '-' lastLevel=decimalLiteral #levelWeightRange - ; - -levelInWeightListElement - : decimalLiteral orderType=(ASC | DESC | REVERSE)? - ; - -aggregateWindowedFunction - : (AVG | MAX | MIN | SUM) - '(' aggregator=(ALL | DISTINCT)? functionArg ')' - | COUNT '(' (starArg='*' | aggregator=ALL? functionArg) ')' - | COUNT '(' aggregator=DISTINCT functionArgs ')' - | ( - BIT_AND | BIT_OR | BIT_XOR | STD | STDDEV | STDDEV_POP - | STDDEV_SAMP | VAR_POP | VAR_SAMP | VARIANCE - ) '(' aggregator=ALL? functionArg ')' - | GROUP_CONCAT '(' - aggregator=DISTINCT? functionArgs - (ORDER BY - orderByExpression (',' orderByExpression)* - )? (SEPARATOR separator=STRING_LITERAL)? - ')' - ; - -scalarFunctionName - : functionNameBase - | ASCII | CURDATE | CURRENT_DATE | CURRENT_TIME - | CURRENT_TIMESTAMP | CURTIME | DATE_ADD | DATE_SUB - | IF | INSERT | LOCALTIME | LOCALTIMESTAMP | MID | NOW - | REPLACE | SUBSTR | SUBSTRING | SYSDATE | TRIM - | UTC_DATE | UTC_TIME | UTC_TIMESTAMP - ; - -passwordFunctionClause - : functionName=(PASSWORD | OLD_PASSWORD) '(' functionArg ')' - ; - -functionArgs - : (constant | fullColumnName | functionCall | expression) - ( - ',' - (constant | fullColumnName | functionCall | expression) - )* - ; - -functionArg - : constant | fullColumnName | functionCall | expression - ; - - -// Expressions, predicates - -// Simplified approach for expression -expression - : notOperator=(NOT | '!') expression #notExpression - | expression logicalOperator expression #logicalExpression - | predicate IS NOT? testValue=(TRUE | FALSE | UNKNOWN) #isExpression - | predicate #predicateExpression - ; - -predicate - : predicate NOT? IN '(' (selectStatement | expressions) ')' #inPredicate - | predicate IS nullNotnull #isNullPredicate - | left=predicate comparisonOperator right=predicate #binaryComparasionPredicate - | predicate comparisonOperator - quantifier=(ALL | ANY | SOME) '(' selectStatement ')' #subqueryComparasionPredicate - | predicate NOT? BETWEEN predicate AND predicate #betweenPredicate - | predicate SOUNDS LIKE predicate #soundsLikePredicate - | predicate NOT? LIKE predicate (ESCAPE STRING_LITERAL)? #likePredicate - | predicate NOT? regex=(REGEXP | RLIKE) predicate #regexpPredicate - | (LOCAL_ID VAR_ASSIGN)? expressionAtom #expressionAtomPredicate - ; - - -// Add in ASTVisitor nullNotnull in constant -expressionAtom - : constant #constantExpressionAtom - | fullColumnName #fullColumnNameExpressionAtom - | functionCall #functionCallExpressionAtom - | expressionAtom COLLATE collationName #collateExpressionAtom - | mysqlVariable #mysqlVariableExpressionAtom - | unaryOperator expressionAtom #unaryExpressionAtom - | BINARY expressionAtom #binaryExpressionAtom - | '(' expression (',' expression)* ')' #nestedExpressionAtom - | ROW '(' expression (',' expression)+ ')' #nestedRowExpressionAtom - | EXISTS '(' selectStatement ')' #existsExpessionAtom - | '(' selectStatement ')' #subqueryExpessionAtom - | INTERVAL expression intervalType #intervalExpressionAtom - | left=expressionAtom bitOperator right=expressionAtom #bitExpressionAtom - | left=expressionAtom mathOperator right=expressionAtom #mathExpressionAtom - ; - -unaryOperator - : '!' | '~' | '+' | '-' | NOT - ; - -comparisonOperator - : '=' | '>' | '<' | '<' '=' | '>' '=' - | '<' '>' | '!' '=' | '<' '=' '>' - ; - -logicalOperator - : AND | '&' '&' | XOR | OR | '|' '|' - ; - -bitOperator - : '<' '<' | '>' '>' | '&' | '^' | '|' - ; - -mathOperator - : '*' | '/' | '%' | DIV | MOD | '+' | '-' | '--' - ; - - -// Simple id sets -// (that keyword, which can be id) - -charsetNameBase - : ARMSCII8 | ASCII | BIG5 | CP1250 | CP1251 | CP1256 | CP1257 - | CP850 | CP852 | CP866 | CP932 | DEC8 | EUCJPMS | EUCKR - | GB2312 | GBK | GEOSTD8 | GREEK | HEBREW | HP8 | KEYBCS2 - | KOI8R | KOI8U | LATIN1 | LATIN2 | LATIN5 | LATIN7 | MACCE - | MACROMAN | SJIS | SWE7 | TIS620 | UCS2 | UJIS | UTF16 - | UTF16LE | UTF32 | UTF8 | UTF8MB3 | UTF8MB4 - ; - -transactionLevelBase - : REPEATABLE | COMMITTED | UNCOMMITTED | SERIALIZABLE - ; - -privilegesBase - : TABLES | ROUTINE | EXECUTE | FILE | PROCESS - | RELOAD | SHUTDOWN | SUPER | PRIVILEGES - ; - -intervalTypeBase - : QUARTER | MONTH | DAY | HOUR - | MINUTE | WEEK | SECOND | MICROSECOND - ; - -dataTypeBase - : DATE | TIME | TIMESTAMP | DATETIME | YEAR | ENUM | TEXT - ; - -keywordsCanBeId - : ACCOUNT | ACTION | AFTER | AGGREGATE | ALGORITHM | ANY - | AT | AUDIT_ADMIN | AUTHORS | AUTOCOMMIT | AUTOEXTEND_SIZE - | AUTO_INCREMENT | AVG_ROW_LENGTH | BACKUP_ADMIN | BEGIN | BINLOG | BINLOG_ADMIN | BINLOG_ENCRYPTION_ADMIN | BIT - | BLOCK | BOOL | BOOLEAN | BTREE | CACHE | CASCADED | CHAIN | CHANGED - | CHANNEL | CHECKSUM | PAGE_CHECKSUM | CATALOG_NAME | CIPHER - | CLASS_ORIGIN | CLIENT | CLONE_ADMIN | CLOSE | COALESCE | CODE - | COLUMNS | COLUMN_FORMAT | COLUMN_NAME | COMMENT | COMMIT | COMPACT - | COMPLETION | COMPRESSED | COMPRESSION | CONCURRENT - | CONNECTION | CONNECTION_ADMIN | CONSISTENT | CONSTRAINT_CATALOG | CONSTRAINT_NAME - | CONSTRAINT_SCHEMA | CONTAINS | CONTEXT - | CONTRIBUTORS | COPY | CPU | CURRENT | CURSOR_NAME - | DATA | DATAFILE | DEALLOCATE - | DEFAULT_AUTH | DEFINER | DELAY_KEY_WRITE | DES_KEY_FILE | DIAGNOSTICS | DIRECTORY - | DISABLE | DISCARD | DISK | DO | DUMPFILE | DUPLICATE - | DYNAMIC | ENABLE | ENCRYPTION | ENCRYPTION_KEY_ADMIN | END | ENDS | ENGINE | ENGINES - | ERROR | ERRORS | ESCAPE | EVEN | EVENT | EVENTS | EVERY - | EXCHANGE | EXCLUSIVE | EXPIRE | EXPORT | EXTENDED | EXTENT_SIZE | FAST | FAULTS - | FIELDS | FILE_BLOCK_SIZE | FILTER | FIREWALL_ADMIN | FIREWALL_USER | FIRST | FIXED | FLUSH - | FOLLOWS | FOUND | FULL | FUNCTION | GENERAL | GLOBAL | GRANTS - | GROUP_REPLICATION | GROUP_REPLICATION_ADMIN | HANDLER | HASH | HELP | HOST | HOSTS | IDENTIFIED - | IGNORE_SERVER_IDS | IMPORT | INDEXES | INITIAL_SIZE | INNODB_REDO_LOG_ARCHIVE - | INPLACE | INSERT_METHOD | INSTALL | INSTANCE | INTERNAL | INVOKER | IO - | IO_THREAD | IPC | ISOLATION | ISSUER | JSON | KEY_BLOCK_SIZE - | LANGUAGE | LAST | LEAVES | LESS | LEVEL | LIST | LOCAL - | LOGFILE | LOGS | MASTER | MASTER_AUTO_POSITION - | MASTER_CONNECT_RETRY | MASTER_DELAY - | MASTER_HEARTBEAT_PERIOD | MASTER_HOST | MASTER_LOG_FILE - | MASTER_LOG_POS | MASTER_PASSWORD | MASTER_PORT - | MASTER_RETRY_COUNT | MASTER_SSL | MASTER_SSL_CA - | MASTER_SSL_CAPATH | MASTER_SSL_CERT | MASTER_SSL_CIPHER - | MASTER_SSL_CRL | MASTER_SSL_CRLPATH | MASTER_SSL_KEY - | MASTER_TLS_VERSION | MASTER_USER - | MAX_CONNECTIONS_PER_HOUR | MAX_QUERIES_PER_HOUR - | MAX_ROWS | MAX_SIZE | MAX_UPDATES_PER_HOUR - | MAX_USER_CONNECTIONS | MEDIUM | MEMORY | MERGE | MESSAGE_TEXT - | MID | MIGRATE - | MIN_ROWS | MODE | MODIFY | MUTEX | MYSQL | MYSQL_ERRNO | NAME | NAMES - | NCHAR | NDB_STORED_USER | NEVER | NEXT | NO | NODEGROUP | NONE | NUMBER | OFFLINE | OFFSET - | OJ | OLD_PASSWORD | ONE | ONLINE | ONLY | OPEN | OPTIMIZER_COSTS - | OPTIONS | OWNER | PACK_KEYS | PAGE | PARSER | PARTIAL - | PARTITIONING | PARTITIONS | PASSWORD | PERSIST_RO_VARIABLES_ADMIN | PHASE | PLUGINS - | PLUGIN_DIR | PLUGIN | PORT | PRECEDES | PREPARE | PRESERVE | PREV - | PROCESSLIST | PROFILE | PROFILES | PROXY | QUERY | QUICK - | REBUILD | RECOVER | REDO_BUFFER_SIZE | REDUNDANT - | RELAY | RELAYLOG | RELAY_LOG_FILE | RELAY_LOG_POS | REMOVE - | REORGANIZE | REPAIR | REPLICATE_DO_DB | REPLICATE_DO_TABLE - | REPLICATE_IGNORE_DB | REPLICATE_IGNORE_TABLE - | REPLICATE_REWRITE_DB | REPLICATE_WILD_DO_TABLE - | REPLICATE_WILD_IGNORE_TABLE | REPLICATION | REPLICATION_APPLIER | REPLICATION_SLAVE_ADMIN | RESET - | RESOURCE_GROUP_ADMIN | RESOURCE_GROUP_USER | RESUME - | RETURNED_SQLSTATE | RETURNS | ROLE | ROLE_ADMIN | ROLLBACK | ROLLUP | ROTATE | ROW | ROWS - | ROW_FORMAT | SAVEPOINT | SCHEDULE | SCHEMA_NAME | SECURITY | SERIAL | SERVER - | SESSION | SESSION_VARIABLES_ADMIN | SET_USER_ID | SHARE | SHARED | SHOW_ROUTINE | SIGNED | SIMPLE | SLAVE - | SLOW | SNAPSHOT | SOCKET | SOME | SONAME | SOUNDS | SOURCE - | SQL_AFTER_GTIDS | SQL_AFTER_MTS_GAPS | SQL_BEFORE_GTIDS - | SQL_BUFFER_RESULT | SQL_CACHE | SQL_NO_CACHE | SQL_THREAD - | STACKED | START | STARTS | STATS_AUTO_RECALC | STATS_PERSISTENT - | STATS_SAMPLE_PAGES | STATUS | STOP | STORAGE | STRING - | SUBCLASS_ORIGIN | SUBJECT | SUBPARTITION | SUBPARTITIONS | SUSPEND | SWAPS - | SWITCHES | SYSTEM_VARIABLES_ADMIN | TABLE_NAME | TABLESPACE | TABLE_ENCRYPTION_ADMIN - | TEMPORARY | TEMPTABLE | THAN | TRADITIONAL - | TRANSACTION | TRANSACTIONAL | TRIGGERS | TRUNCATE | UNDEFINED | UNDOFILE - | UNDO_BUFFER_SIZE | UNINSTALL | UNKNOWN | UNTIL | UPGRADE | USER | USE_FRM | USER_RESOURCES - | VALIDATION | VALUE | VARIABLES | VERSION_TOKEN_ADMIN | VIEW | WAIT | WARNINGS | WITHOUT - | WORK | WRAPPER | X509 | XA | XA_RECOVER_ADMIN | XML - ; - -functionNameBase - : ABS | ACOS | ADDDATE | ADDTIME | AES_DECRYPT | AES_ENCRYPT - | AREA | ASBINARY | ASIN | ASTEXT | ASWKB | ASWKT - | ASYMMETRIC_DECRYPT | ASYMMETRIC_DERIVE - | ASYMMETRIC_ENCRYPT | ASYMMETRIC_SIGN | ASYMMETRIC_VERIFY - | ATAN | ATAN2 | BENCHMARK | BIN | BIT_COUNT | BIT_LENGTH - | BUFFER | CEIL | CEILING | CENTROID | CHARACTER_LENGTH - | CHARSET | CHAR_LENGTH | COERCIBILITY | COLLATION - | COMPRESS | CONCAT | CONCAT_WS | CONNECTION_ID | CONV - | CONVERT_TZ | COS | COT | COUNT | CRC32 - | CREATE_ASYMMETRIC_PRIV_KEY | CREATE_ASYMMETRIC_PUB_KEY - | CREATE_DH_PARAMETERS | CREATE_DIGEST | CROSSES | DATABASE | DATE - | DATEDIFF | DATE_FORMAT | DAY | DAYNAME | DAYOFMONTH - | DAYOFWEEK | DAYOFYEAR | DECODE | DEGREES | DES_DECRYPT - | DES_ENCRYPT | DIMENSION | DISJOINT | ELT | ENCODE - | ENCRYPT | ENDPOINT | ENVELOPE | EQUALS | EXP | EXPORT_SET - | EXTERIORRING | EXTRACTVALUE | FIELD | FIND_IN_SET | FLOOR - | FORMAT | FOUND_ROWS | FROM_BASE64 | FROM_DAYS - | FROM_UNIXTIME | GEOMCOLLFROMTEXT | GEOMCOLLFROMWKB - | GEOMETRYCOLLECTION | GEOMETRYCOLLECTIONFROMTEXT - | GEOMETRYCOLLECTIONFROMWKB | GEOMETRYFROMTEXT - | GEOMETRYFROMWKB | GEOMETRYN | GEOMETRYTYPE | GEOMFROMTEXT - | GEOMFROMWKB | GET_FORMAT | GET_LOCK | GLENGTH | GREATEST - | GTID_SUBSET | GTID_SUBTRACT | HEX | HOUR | IFNULL - | INET6_ATON | INET6_NTOA | INET_ATON | INET_NTOA | INSTR - | INTERIORRINGN | INTERSECTS | INVISIBLE - | ISCLOSED | ISEMPTY | ISNULL - | ISSIMPLE | IS_FREE_LOCK | IS_IPV4 | IS_IPV4_COMPAT - | IS_IPV4_MAPPED | IS_IPV6 | IS_USED_LOCK | LAST_INSERT_ID - | LCASE | LEAST | LEFT | LENGTH | LINEFROMTEXT | LINEFROMWKB - | LINESTRING | LINESTRINGFROMTEXT | LINESTRINGFROMWKB | LN - | LOAD_FILE | LOCATE | LOG | LOG10 | LOG2 | LOWER | LPAD - | LTRIM | MAKEDATE | MAKETIME | MAKE_SET | MASTER_POS_WAIT - | MBRCONTAINS | MBRDISJOINT | MBREQUAL | MBRINTERSECTS - | MBROVERLAPS | MBRTOUCHES | MBRWITHIN | MD5 | MICROSECOND - | MINUTE | MLINEFROMTEXT | MLINEFROMWKB | MONTH | MONTHNAME - | MPOINTFROMTEXT | MPOINTFROMWKB | MPOLYFROMTEXT - | MPOLYFROMWKB | MULTILINESTRING | MULTILINESTRINGFROMTEXT - | MULTILINESTRINGFROMWKB | MULTIPOINT | MULTIPOINTFROMTEXT - | MULTIPOINTFROMWKB | MULTIPOLYGON | MULTIPOLYGONFROMTEXT - | MULTIPOLYGONFROMWKB | NAME_CONST | NULLIF | NUMGEOMETRIES - | NUMINTERIORRINGS | NUMPOINTS | OCT | OCTET_LENGTH | ORD - | OVERLAPS | PERIOD_ADD | PERIOD_DIFF | PI | POINT - | POINTFROMTEXT | POINTFROMWKB | POINTN | POLYFROMTEXT - | POLYFROMWKB | POLYGON | POLYGONFROMTEXT | POLYGONFROMWKB - | POSITION| POW | POWER | QUARTER | QUOTE | RADIANS | RAND - | RANDOM_BYTES | RELEASE_LOCK | REVERSE | RIGHT | ROUND - | ROW_COUNT | RPAD | RTRIM | SECOND | SEC_TO_TIME - | SESSION_USER | SESSION_VARIABLES_ADMIN - | SHA | SHA1 | SHA2 | SIGN | SIN | SLEEP - | SOUNDEX | SQL_THREAD_WAIT_AFTER_GTIDS | SQRT | SRID - | STARTPOINT | STRCMP | STR_TO_DATE | ST_AREA | ST_ASBINARY - | ST_ASTEXT | ST_ASWKB | ST_ASWKT | ST_BUFFER | ST_CENTROID - | ST_CONTAINS | ST_CROSSES | ST_DIFFERENCE | ST_DIMENSION - | ST_DISJOINT | ST_DISTANCE | ST_ENDPOINT | ST_ENVELOPE - | ST_EQUALS | ST_EXTERIORRING | ST_GEOMCOLLFROMTEXT - | ST_GEOMCOLLFROMTXT | ST_GEOMCOLLFROMWKB - | ST_GEOMETRYCOLLECTIONFROMTEXT - | ST_GEOMETRYCOLLECTIONFROMWKB | ST_GEOMETRYFROMTEXT - | ST_GEOMETRYFROMWKB | ST_GEOMETRYN | ST_GEOMETRYTYPE - | ST_GEOMFROMTEXT | ST_GEOMFROMWKB | ST_INTERIORRINGN - | ST_INTERSECTION | ST_INTERSECTS | ST_ISCLOSED | ST_ISEMPTY - | ST_ISSIMPLE | ST_LINEFROMTEXT | ST_LINEFROMWKB - | ST_LINESTRINGFROMTEXT | ST_LINESTRINGFROMWKB - | ST_NUMGEOMETRIES | ST_NUMINTERIORRING - | ST_NUMINTERIORRINGS | ST_NUMPOINTS | ST_OVERLAPS - | ST_POINTFROMTEXT | ST_POINTFROMWKB | ST_POINTN - | ST_POLYFROMTEXT | ST_POLYFROMWKB | ST_POLYGONFROMTEXT - | ST_POLYGONFROMWKB | ST_SRID | ST_STARTPOINT - | ST_SYMDIFFERENCE | ST_TOUCHES | ST_UNION | ST_WITHIN - | ST_X | ST_Y | SUBDATE | SUBSTRING_INDEX | SUBTIME - | SYSTEM_USER | TAN | TIME | TIMEDIFF | TIMESTAMP - | TIMESTAMPADD | TIMESTAMPDIFF | TIME_FORMAT | TIME_TO_SEC - | TOUCHES | TO_BASE64 | TO_DAYS | TO_SECONDS | UCASE - | UNCOMPRESS | UNCOMPRESSED_LENGTH | UNHEX | UNIX_TIMESTAMP - | UPDATEXML | UPPER | UUID | UUID_SHORT - | VALIDATE_PASSWORD_STRENGTH | VERSION | VISIBLE - | WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS | WEEK | WEEKDAY - | WEEKOFYEAR | WEIGHT_STRING | WITHIN | YEAR | YEARWEEK - | Y_FUNCTION | X_FUNCTION | JSON_VALID | JSON_SCHEMA_VALID - ; diff --git a/src/grammar/mysql/MySqlLexer.g4 b/src/grammar/mysql/MySqlLexer.g4 new file mode 100644 index 0000000..a594c62 --- /dev/null +++ b/src/grammar/mysql/MySqlLexer.g4 @@ -0,0 +1,1074 @@ +/* +MySQL (Positive Technologies) grammar +The MIT License (MIT). +Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. +Copyright (c) 2017, Ivan Khudyashev (IHudyashov@ptsecurity.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlLexer.g4 + +lexer grammar MySqlLexer; + +options { caseInsensitive = true; } + +channels { MYSQLCOMMENT, ERRORCHANNEL } + + +SPACE: [ \t\r\n]+ -> channel(HIDDEN); +SPEC_MYSQL_COMMENT: '/*!' .+? '*/' -> channel(MYSQLCOMMENT); +COMMENT_INPUT: '/*' .*? '*/' -> channel(HIDDEN); +LINE_COMMENT: ( + ('--' [ \t]* | '#') ~[\r\n]* ('\r'? '\n' | EOF) + | '--' ('\r'? '\n' | EOF) + ) -> channel(HIDDEN); + + +// Keywords +// Common Keywords + +KW_ACTIVE: 'ACTIVE'; +KW_ADD: 'ADD'; +KW_ALL: 'ALL'; +KW_ALTER: 'ALTER'; +KW_ALWAYS: 'ALWAYS'; +KW_ANALYZE: 'ANALYZE'; +KW_AND: 'AND'; +KW_ARRAY: 'ARRAY'; +KW_AS: 'AS'; +KW_ASC: 'ASC'; +KW_ATTRIBUTE: 'ATTRIBUTE'; +KW_BEFORE: 'BEFORE'; +KW_BETWEEN: 'BETWEEN'; +KW_BOTH: 'BOTH'; +KW_BUCKETS: 'BUCKETS'; +KW_BY: 'BY'; +KW_CALL: 'CALL'; +KW_CASCADE: 'CASCADE'; +KW_CASE: 'CASE'; +KW_CAST: 'CAST'; +KW_CHANGE: 'CHANGE'; +KW_CHARACTER: 'CHARACTER'; +KW_CHECK: 'CHECK'; +KW_COLLATE: 'COLLATE'; +KW_COLUMN: 'COLUMN'; +KW_CONDITION: 'CONDITION'; +KW_CONSTRAINT: 'CONSTRAINT'; +KW_CONTINUE: 'CONTINUE'; +KW_CONVERT: 'CONVERT'; +KW_CREATE: 'CREATE'; +KW_CROSS: 'CROSS'; +KW_CURRENT: 'CURRENT'; +KW_CURRENT_USER: 'CURRENT_USER'; +KW_CURSOR: 'CURSOR'; +KW_DATABASE: 'DATABASE'; +KW_DATABASES: 'DATABASES'; +KW_DECLARE: 'DECLARE'; +KW_DEFAULT: 'DEFAULT'; +KW_DELAYED: 'DELAYED'; +KW_DELETE: 'DELETE'; +KW_DESC: 'DESC'; +KW_DESCRIBE: 'DESCRIBE'; +KW_DETERMINISTIC: 'DETERMINISTIC'; +KW_DIAGNOSTICS: 'DIAGNOSTICS'; +KW_DISTINCT: 'DISTINCT'; +KW_DISTINCTROW: 'DISTINCTROW'; +KW_DROP: 'DROP'; +KW_EACH: 'EACH'; +KW_ELSE: 'ELSE'; +KW_ELSEIF: 'ELSEIF'; +KW_EMPTY: 'EMPTY'; +KW_ENCLOSED: 'ENCLOSED'; +KW_ENFORCED: 'ENFORCED'; +KW_ESCAPED: 'ESCAPED'; +KW_EXCEPT: 'EXCEPT'; +KW_EXISTS: 'EXISTS'; +KW_EXIT: 'EXIT'; +KW_EXPLAIN: 'EXPLAIN'; +KW_FALSE: 'FALSE'; +KW_FETCH: 'FETCH'; +KW_FOR: 'FOR'; +KW_FORCE: 'FORCE'; +KW_FOREIGN: 'FOREIGN'; +KW_FROM: 'FROM'; +KW_FULLTEXT: 'FULLTEXT'; +KW_GENERATE: 'GENERATE'; +KW_GENERATED: 'GENERATED'; +KW_GET: 'GET'; +KW_GRANT: 'GRANT'; +KW_GROUP: 'GROUP'; +KW_HAVING: 'HAVING'; +KW_HIGH_PRIORITY: 'HIGH_PRIORITY'; +KW_HISTOGRAM: 'HISTOGRAM'; +KW_IF: 'IF'; +KW_IGNORE: 'IGNORE'; +KW_IN: 'IN'; +KW_INACTIVE: 'INACTIVE'; +KW_INDEX: 'INDEX'; +KW_INFILE: 'INFILE'; +KW_INNER: 'INNER'; +KW_INOUT: 'INOUT'; +KW_INSERT: 'INSERT'; +KW_INTERVAL: 'INTERVAL'; +KW_INTO: 'INTO'; +KW_IS: 'IS'; +KW_ITERATE: 'ITERATE'; +KW_JOIN: 'JOIN'; +KW_KEY: 'KEY'; +KW_KEYS: 'KEYS'; +KW_KILL: 'KILL'; +KW_LATERAL: 'LATERAL'; +KW_LEADING: 'LEADING'; +KW_LEAVE: 'LEAVE'; +KW_LEFT: 'LEFT'; +KW_LIKE: 'LIKE'; +KW_LIMIT: 'LIMIT'; +KW_LINEAR: 'LINEAR'; +KW_LINES: 'LINES'; +KW_LOAD: 'LOAD'; +KW_LOCK: 'LOCK'; +KW_LOCKED: 'LOCKED'; +KW_LOOP: 'LOOP'; +KW_LOW_PRIORITY: 'LOW_PRIORITY'; +KW_MASTER_BIND: 'MASTER_BIND'; +KW_MASTER_SSL_VERIFY_SERVER_CERT: 'MASTER_SSL_VERIFY_SERVER_CERT'; +KW_MATCH: 'MATCH'; +KW_MAXVALUE: 'MAXVALUE'; +KW_MODIFIES: 'MODIFIES'; +KW_NATURAL: 'NATURAL'; +KW_NOT: 'NOT'; +KW_NO_WRITE_TO_BINLOG: 'NO_WRITE_TO_BINLOG'; +KW_NULL_LITERAL: 'NULL'; +KW_NUMBER: 'NUMBER'; +KW_STREAM: 'STREAM'; +KW_ON: 'ON'; +KW_OPTIMIZE: 'OPTIMIZE'; +KW_OPTION: 'OPTION'; +KW_OPTIONAL: 'OPTIONAL'; +KW_OPTIONALLY: 'OPTIONALLY'; +KW_OR: 'OR'; +KW_ORDER: 'ORDER'; +KW_OUT: 'OUT'; +KW_OUTER: 'OUTER'; +KW_OUTFILE: 'OUTFILE'; +KW_OVER: 'OVER'; +KW_PARTITION: 'PARTITION'; +KW_PRIMARY: 'PRIMARY'; +KW_PROCEDURE: 'PROCEDURE'; +KW_PURGE: 'PURGE'; +KW_RANGE: 'RANGE'; +KW_READ: 'READ'; +KW_READS: 'READS'; +KW_REFERENCE: 'REFERENCE'; +KW_REFERENCES: 'REFERENCES'; +KW_REGEXP: 'REGEXP'; +KW_RELEASE: 'RELEASE'; +KW_RENAME: 'RENAME'; +KW_REPEAT: 'REPEAT'; +KW_REPLACE: 'REPLACE'; +KW_REQUIRE: 'REQUIRE'; +KW_RESIGNAL: 'RESIGNAL'; +KW_RESTRICT: 'RESTRICT'; +KW_RETAIN: 'RETAIN'; +KW_RETURN: 'RETURN'; +KW_REVOKE: 'REVOKE'; +KW_RIGHT: 'RIGHT'; +KW_RLIKE: 'RLIKE'; +KW_SCHEMA: 'SCHEMA'; +KW_SCHEMAS: 'SCHEMAS'; +KW_SELECT: 'SELECT'; +KW_SET: 'SET'; +KW_SEPARATOR: 'SEPARATOR'; +KW_SHOW: 'SHOW'; +KW_SIGNAL: 'SIGNAL'; +KW_SKIP: 'SKIP'; +KW_SKIP_QUERY_REWRITE: 'SKIP_QUERY_REWRITE'; +KW_SPATIAL: 'SPATIAL'; +KW_SQL: 'SQL'; +KW_SQLEXCEPTION: 'SQLEXCEPTION'; +KW_SQLSTATE: 'SQLSTATE'; +KW_SQLWARNING: 'SQLWARNING'; +KW_SQL_BIG_RESULT: 'SQL_BIG_RESULT'; +KW_SQL_CALC_FOUND_ROWS: 'SQL_CALC_FOUND_ROWS'; +KW_SQL_SMALL_RESULT: 'SQL_SMALL_RESULT'; +KW_SSL: 'SSL'; +KW_STACKED: 'STACKED'; +KW_STARTING: 'STARTING'; +KW_STRAIGHT_JOIN: 'STRAIGHT_JOIN'; +KW_TABLE: 'TABLE'; +KW_TERMINATED: 'TERMINATED'; +KW_THEN: 'THEN'; +KW_TO: 'TO'; +KW_TRAILING: 'TRAILING'; +KW_TRIGGER: 'TRIGGER'; +KW_TRUE: 'TRUE'; +KW_UNDO: 'UNDO'; +KW_UNION: 'UNION'; +KW_UNIQUE: 'UNIQUE'; +KW_UNLOCK: 'UNLOCK'; +KW_UNSIGNED: 'UNSIGNED'; +KW_UPDATE: 'UPDATE'; +KW_USAGE: 'USAGE'; +KW_USE: 'USE'; +KW_USING: 'USING'; +KW_VALUES: 'VALUES'; +KW_VCPU: 'VCPU'; +KW_WHEN: 'WHEN'; +KW_WHERE: 'WHERE'; +KW_WHILE: 'WHILE'; +KW_WITH: 'WITH'; +KW_WRITE: 'WRITE'; +KW_XOR: 'XOR'; +KW_ZEROFILL: 'ZEROFILL'; + +// DATA TYPE Keywords + +KW_TINYINT: 'TINYINT'; +KW_SMALLINT: 'SMALLINT'; +KW_MEDIUMINT: 'MEDIUMINT'; +KW_MIDDLEINT: 'MIDDLEINT'; +KW_INT: 'INT'; +KW_INT1: 'INT1'; +KW_INT2: 'INT2'; +KW_INT3: 'INT3'; +KW_INT4: 'INT4'; +KW_INT8: 'INT8'; +KW_INTEGER: 'INTEGER'; +KW_BIGINT: 'BIGINT'; +KW_REAL: 'REAL'; +KW_DOUBLE: 'DOUBLE'; +KW_PRECISION: 'PRECISION'; +KW_FLOAT: 'FLOAT'; +KW_FLOAT4: 'FLOAT4'; +KW_FLOAT8: 'FLOAT8'; +KW_DECIMAL: 'DECIMAL'; +KW_DEC: 'DEC'; +KW_NUMERIC: 'NUMERIC'; +KW_DATE: 'DATE'; +KW_TIME: 'TIME'; +KW_TIMESTAMP: 'TIMESTAMP'; +KW_DATETIME: 'DATETIME'; +KW_YEAR: 'YEAR'; +KW_CHAR: 'CHAR'; +KW_VARCHAR: 'VARCHAR'; +KW_NVARCHAR: 'NVARCHAR'; +KW_NATIONAL: 'NATIONAL'; +KW_BINARY: 'BINARY'; +KW_VARBINARY: 'VARBINARY'; +KW_TINYBLOB: 'TINYBLOB'; +KW_BLOB: 'BLOB'; +KW_MEDIUMBLOB: 'MEDIUMBLOB'; +KW_LONG: 'LONG'; +KW_LONGBLOB: 'LONGBLOB'; +KW_TINYTEXT: 'TINYTEXT'; +KW_TEXT: 'TEXT'; +KW_MEDIUMTEXT: 'MEDIUMTEXT'; +KW_LONGTEXT: 'LONGTEXT'; +KW_ENUM: 'ENUM'; +KW_VARYING: 'VARYING'; +KW_SERIAL: 'SERIAL'; + + +// Interval type Keywords + +KW_YEAR_MONTH: 'YEAR_MONTH'; +KW_DAY_HOUR: 'DAY_HOUR'; +KW_DAY_MINUTE: 'DAY_MINUTE'; +KW_DAY_SECOND: 'DAY_SECOND'; +KW_HOUR_MINUTE: 'HOUR_MINUTE'; +KW_HOUR_SECOND: 'HOUR_SECOND'; +KW_MINUTE_SECOND: 'MINUTE_SECOND'; +KW_SECOND_MICROSECOND: 'SECOND_MICROSECOND'; +KW_MINUTE_MICROSECOND: 'MINUTE_MICROSECOND'; +KW_HOUR_MICROSECOND: 'HOUR_MICROSECOND'; +KW_DAY_MICROSECOND: 'DAY_MICROSECOND'; + +// JSON keywords +KW_JSON_TABLE: 'JSON_TABLE'; +KW_JSON_VALUE: 'JSON_VALUE'; +KW_NESTED: 'NESTED'; +KW_ORDINALITY: 'ORDINALITY'; +KW_PATH: 'PATH'; + +// Group function Keywords + +KW_AVG: 'AVG'; +KW_BIT_AND: 'BIT_AND'; +KW_BIT_OR: 'BIT_OR'; +KW_BIT_XOR: 'BIT_XOR'; +KW_COUNT: 'COUNT'; +KW_CUME_DIST: 'CUME_DIST'; +KW_DENSE_RANK: 'DENSE_RANK'; +KW_FIRST_VALUE: 'FIRST_VALUE'; +KW_GROUP_CONCAT: 'GROUP_CONCAT'; +KW_LAG: 'LAG'; +KW_LAST_VALUE: 'LAST_VALUE'; +KW_LEAD: 'LEAD'; +KW_MAX: 'MAX'; +KW_MIN: 'MIN'; +KW_NTILE: 'NTILE'; +KW_NTH_VALUE: 'NTH_VALUE'; +KW_PERCENT_RANK: 'PERCENT_RANK'; +KW_RANK: 'RANK'; +KW_ROW_NUMBER: 'ROW_NUMBER'; +KW_STD: 'STD'; +KW_STDDEV: 'STDDEV'; +KW_STDDEV_POP: 'STDDEV_POP'; +KW_STDDEV_SAMP: 'STDDEV_SAMP'; +KW_SUM: 'SUM'; +KW_VAR_POP: 'VAR_POP'; +KW_VAR_SAMP: 'VAR_SAMP'; +KW_VARIANCE: 'VARIANCE'; + +// Common function Keywords + +KW_CURRENT_DATE: 'CURRENT_DATE'; +KW_CURRENT_TIME: 'CURRENT_TIME'; +KW_CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'; +KW_LOCALTIME: 'LOCALTIME'; +KW_CURDATE: 'CURDATE'; +KW_CURTIME: 'CURTIME'; +KW_DATE_ADD: 'DATE_ADD'; +KW_DATE_SUB: 'DATE_SUB'; +KW_EXTRACT: 'EXTRACT'; +KW_LOCALTIMESTAMP: 'LOCALTIMESTAMP'; +KW_NOW: 'NOW'; +KW_POSITION: 'POSITION'; +KW_SUBSTR: 'SUBSTR'; +KW_SUBSTRING: 'SUBSTRING'; +KW_SYSDATE: 'SYSDATE'; +KW_TRIM: 'TRIM'; +KW_UTC_DATE: 'UTC_DATE'; +KW_UTC_TIME: 'UTC_TIME'; +KW_UTC_TIMESTAMP: 'UTC_TIMESTAMP'; + +// Keywords, but can be ID +// Common Keywords, but can be ID + +KW_ACCOUNT: 'ACCOUNT'; +KW_ACTION: 'ACTION'; +KW_AFTER: 'AFTER'; +KW_AGGREGATE: 'AGGREGATE'; +KW_ALGORITHM: 'ALGORITHM'; +KW_ANY: 'ANY'; +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS: 'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS'; +KW_AT: 'AT'; +KW_AUTHORS: 'AUTHORS'; +KW_AUTOCOMMIT: 'AUTOCOMMIT'; +KW_AUTOEXTEND_SIZE: 'AUTOEXTEND_SIZE'; +KW_AUTO_INCREMENT: 'AUTO_INCREMENT'; +KW_AVG_ROW_LENGTH: 'AVG_ROW_LENGTH'; +KW_BEGIN: 'BEGIN'; +KW_BINLOG: 'BINLOG'; +KW_BIT: 'BIT'; +KW_BLOCK: 'BLOCK'; +KW_BOOL: 'BOOL'; +KW_BOOLEAN: 'BOOLEAN'; +KW_BTREE: 'BTREE'; +KW_CACHE: 'CACHE'; +KW_CASCADED: 'CASCADED'; +KW_CHAIN: 'CHAIN'; +KW_CHANGED: 'CHANGED'; +KW_CHANNEL: 'CHANNEL'; +KW_CHECKSUM: 'CHECKSUM'; +KW_CHALLENGE_RESPONSE: 'CHALLENGE_RESPONSE'; +KW_CIPHER: 'CIPHER'; +KW_CLASS_ORIGIN: 'CLASS_ORIGIN'; +KW_CLIENT: 'CLIENT'; +KW_CLOSE: 'CLOSE'; +KW_COALESCE: 'COALESCE'; +KW_CODE: 'CODE'; +KW_COLUMNS: 'COLUMNS'; +KW_COLUMN_FORMAT: 'COLUMN_FORMAT'; +KW_COLUMN_NAME: 'COLUMN_NAME'; +KW_COMMENT: 'COMMENT'; +KW_COMMIT: 'COMMIT'; +KW_COMPACT: 'COMPACT'; +KW_COMPLETION: 'COMPLETION'; +KW_COMPONENT: 'COMPONENT'; +KW_COMPRESSED: 'COMPRESSED'; +KW_COMPRESSION: 'COMPRESSION'; +KW_CONCURRENT: 'CONCURRENT'; +KW_CONNECT: 'CONNECT'; +KW_CONNECTION: 'CONNECTION'; +KW_CONSISTENT: 'CONSISTENT'; +KW_CONSTRAINT_CATALOG: 'CONSTRAINT_CATALOG'; +KW_CONSTRAINT_SCHEMA: 'CONSTRAINT_SCHEMA'; +KW_CONSTRAINT_NAME: 'CONSTRAINT_NAME'; +KW_CONTAINS: 'CONTAINS'; +KW_CONTEXT: 'CONTEXT'; +KW_CONTRIBUTORS: 'CONTRIBUTORS'; +KW_COPY: 'COPY'; +KW_CPU: 'CPU'; +KW_CURSOR_NAME: 'CURSOR_NAME'; +KW_DATA: 'DATA'; +KW_DATAFILE: 'DATAFILE'; +KW_DEALLOCATE: 'DEALLOCATE'; +KW_DEFAULT_AUTH: 'DEFAULT_AUTH'; +KW_DEFINER: 'DEFINER'; +KW_DELAY_KEY_WRITE: 'DELAY_KEY_WRITE'; +KW_DES_KEY_FILE: 'DES_KEY_FILE'; +KW_DIRECTORY: 'DIRECTORY'; +KW_DISABLE: 'DISABLE'; +KW_DISCARD: 'DISCARD'; +KW_DISK: 'DISK'; +KW_DO: 'DO'; +KW_DUMPFILE: 'DUMPFILE'; +KW_DUPLICATE: 'DUPLICATE'; +KW_DYNAMIC: 'DYNAMIC'; +KW_ENABLE: 'ENABLE'; +KW_ENCRYPTION: 'ENCRYPTION'; +KW_ENCRYPTION_KEY_ID: 'ENCRYPTION_KEY_ID'; +KW_END: 'END'; +KW_ENDS: 'ENDS'; +KW_ENGINE: 'ENGINE'; +KW_ENGINES: 'ENGINES'; +KW_ERROR: 'ERROR'; +KW_ERRORS: 'ERRORS'; +KW_ESCAPE: 'ESCAPE'; +KW_EVENT: 'EVENT'; +KW_EVENTS: 'EVENTS'; +KW_EVERY: 'EVERY'; +KW_EXCHANGE: 'EXCHANGE'; +KW_EXCLUSIVE: 'EXCLUSIVE'; +KW_EXPIRE: 'EXPIRE'; +KW_EXPORT: 'EXPORT'; +KW_EXTENDED: 'EXTENDED'; +KW_EXTENT_SIZE: 'EXTENT_SIZE'; +KW_FACTOR: 'FACTOR'; +KW_FAILED_LOGIN_ATTEMPTS: 'FAILED_LOGIN_ATTEMPTS'; +KW_FAST: 'FAST'; +KW_FAULTS: 'FAULTS'; +KW_FIELDS: 'FIELDS'; +KW_FILE_BLOCK_SIZE: 'FILE_BLOCK_SIZE'; +KW_FILTER: 'FILTER'; +KW_FINISH: 'FINISH'; +KW_FIRST: 'FIRST'; +KW_FIXED: 'FIXED'; +KW_FLUSH: 'FLUSH'; +KW_FOLLOWING: 'FOLLOWING'; +KW_FOLLOWS: 'FOLLOWS'; +KW_FOUND: 'FOUND'; +KW_FULL: 'FULL'; +KW_FUNCTION: 'FUNCTION'; +KW_GENERAL: 'GENERAL'; +KW_GET_MASTER_PUBLIC_KEY: 'GET_MASTER_PUBLIC_KEY'; +KW_GET_SOURCE_PUBLIC_KEY: 'GET_SOURCE_PUBLIC_KEY'; +KW_GLOBAL: 'GLOBAL'; +KW_GRANTS: 'GRANTS'; +KW_GROUP_REPLICATION: 'GROUP_REPLICATION'; +KW_GTID_ONLY: 'GTID_ONLY'; +KW_HANDLER: 'HANDLER'; +KW_HASH: 'HASH'; +KW_HELP: 'HELP'; +KW_HISTORY: 'HISTORY'; +KW_HOST: 'HOST'; +KW_HOSTS: 'HOSTS'; +KW_IDENTIFIED: 'IDENTIFIED'; +KW_IGNORE_SERVER_IDS: 'IGNORE_SERVER_IDS'; +KW_IMPORT: 'IMPORT'; +KW_INDEXES: 'INDEXES'; +KW_INITIAL: 'INITIAL'; +KW_INITIAL_SIZE: 'INITIAL_SIZE'; +KW_INITIATE: 'INITIATE'; +KW_INPLACE: 'INPLACE'; +KW_INSERT_METHOD: 'INSERT_METHOD'; +KW_INSTALL: 'INSTALL'; +KW_INSTANCE: 'INSTANCE'; +KW_INSTANT: 'INSTANT'; +KW_INVISIBLE: 'INVISIBLE'; +KW_INVOKER: 'INVOKER'; +KW_IO: 'IO'; +KW_IO_THREAD: 'IO_THREAD'; +KW_IPC: 'IPC'; +KW_ISOLATION: 'ISOLATION'; +KW_ISSUER: 'ISSUER'; +KW_JSON: 'JSON'; +KW_KEY_BLOCK_SIZE: 'KEY_BLOCK_SIZE'; +KW_LANGUAGE: 'LANGUAGE'; +KW_LAST: 'LAST'; +KW_LEAVES: 'LEAVES'; +KW_LESS: 'LESS'; +KW_LEVEL: 'LEVEL'; +KW_LIST: 'LIST'; +KW_LOCAL: 'LOCAL'; +KW_LOGFILE: 'LOGFILE'; +KW_LOGS: 'LOGS'; +KW_MASTER: 'MASTER'; +KW_MASTER_AUTO_POSITION: 'MASTER_AUTO_POSITION'; +KW_MASTER_COMPRESSION_ALGORITHMS: 'MASTER_COMPRESSION_ALGORITHMS'; +KW_MASTER_CONNECT_RETRY: 'MASTER_CONNECT_RETRY'; +KW_MASTER_DELAY: 'MASTER_DELAY'; +KW_MASTER_HEARTBEAT_PERIOD: 'MASTER_HEARTBEAT_PERIOD'; +KW_MASTER_HOST: 'MASTER_HOST'; +KW_MASTER_LOG_FILE: 'MASTER_LOG_FILE'; +KW_MASTER_LOG_POS: 'MASTER_LOG_POS'; +KW_MASTER_PASSWORD: 'MASTER_PASSWORD'; +KW_MASTER_PORT: 'MASTER_PORT'; +KW_MASTER_PUBLIC_KEY_PATH: 'MASTER_PUBLIC_KEY_PATH'; +KW_MASTER_RETRY_COUNT: 'MASTER_RETRY_COUNT'; +KW_MASTER_SSL: 'MASTER_SSL'; +KW_MASTER_SSL_CA: 'MASTER_SSL_CA'; +KW_MASTER_SSL_CAPATH: 'MASTER_SSL_CAPATH'; +KW_MASTER_SSL_CERT: 'MASTER_SSL_CERT'; +KW_MASTER_SSL_CIPHER: 'MASTER_SSL_CIPHER'; +KW_MASTER_SSL_CRL: 'MASTER_SSL_CRL'; +KW_MASTER_SSL_CRLPATH: 'MASTER_SSL_CRLPATH'; +KW_MASTER_SSL_KEY: 'MASTER_SSL_KEY'; +KW_MASTER_TLS_CIPHERSUITES: 'MASTER_TLS_CIPHERSUITES'; +KW_MASTER_TLS_VERSION: 'MASTER_TLS_VERSION'; +KW_MASTER_USER: 'MASTER_USER'; +KW_MASTER_ZSTD_COMPRESSION_LEVEL: 'MASTER_ZSTD_COMPRESSION_LEVEL'; +KW_MAX_CONNECTIONS_PER_HOUR: 'MAX_CONNECTIONS_PER_HOUR'; +KW_MAX_QUERIES_PER_HOUR: 'MAX_QUERIES_PER_HOUR'; +KW_MAX_ROWS: 'MAX_ROWS'; +KW_MAX_SIZE: 'MAX_SIZE'; +KW_MAX_UPDATES_PER_HOUR: 'MAX_UPDATES_PER_HOUR'; +KW_MAX_USER_CONNECTIONS: 'MAX_USER_CONNECTIONS'; +KW_MEDIUM: 'MEDIUM'; +KW_MEMBER: 'MEMBER'; +KW_MERGE: 'MERGE'; +KW_MESSAGE_TEXT: 'MESSAGE_TEXT'; +KW_MID: 'MID'; +KW_MIGRATE: 'MIGRATE'; +KW_MIN_ROWS: 'MIN_ROWS'; +KW_MODE: 'MODE'; +KW_MODIFY: 'MODIFY'; +KW_MUTEX: 'MUTEX'; +KW_MYSQL: 'MYSQL'; +KW_MYSQL_ERRNO: 'MYSQL_ERRNO'; +KW_NAME: 'NAME'; +KW_NAMES: 'NAMES'; +KW_NCHAR: 'NCHAR'; +KW_NETWORK_NAMESPACE: 'NETWORK_NAMESPACE'; +KW_NEVER: 'NEVER'; +KW_NEXT: 'NEXT'; +KW_NO: 'NO'; +KW_NOWAIT: 'NOWAIT'; +KW_NODEGROUP: 'NODEGROUP'; +KW_NONE: 'NONE'; +KW_ODBC: 'ODBC'; +KW_OFF: 'OFF'; +KW_OFFLINE: 'OFFLINE'; +KW_OFFSET: 'OFFSET'; +KW_OF: 'OF'; +KW_OLD: 'OLD'; +KW_OLD_PASSWORD: 'OLD_PASSWORD'; +KW_ONE: 'ONE'; +KW_ONLINE: 'ONLINE'; +KW_ONLY: 'ONLY'; +KW_OPEN: 'OPEN'; +KW_OPTIMIZER_COSTS: 'OPTIMIZER_COSTS'; +KW_OPTIONS: 'OPTIONS'; +KW_OWNER: 'OWNER'; +KW_PACK_KEYS: 'PACK_KEYS'; +KW_PAGE: 'PAGE'; +KW_PAGE_CHECKSUM: 'PAGE_CHECKSUM'; +KW_PAGE_COMPRESSED: 'PAGE_COMPRESSED'; +KW_PAGE_COMPRESSION_LEVEL: 'PAGE_COMPRESSION_LEVEL'; +KW_PARSER: 'PARSER'; +KW_PARTIAL: 'PARTIAL'; +KW_PARTITIONING: 'PARTITIONING'; +KW_PARTITIONS: 'PARTITIONS'; +KW_PASSWORD: 'PASSWORD'; +KW_PASSWORD_LOCK_TIME: 'PASSWORD_LOCK_TIME'; +KW_PERSIST: 'PERSIST'; +KW_PERSIST_ONLY: 'PERSIST_ONLY'; +KW_PHASE: 'PHASE'; +KW_PLUGIN: 'PLUGIN'; +KW_PLUGIN_DIR: 'PLUGIN_DIR'; +KW_PLUGINS: 'PLUGINS'; +KW_PORT: 'PORT'; +KW_PRECEDES: 'PRECEDES'; +KW_PRECEDING: 'PRECEDING'; +KW_PREPARE: 'PREPARE'; +KW_PRESERVE: 'PRESERVE'; +KW_PREV: 'PREV'; +KW_PRIVILEGE_CHECKS_USER: 'PRIVILEGE_CHECKS_USER'; +KW_PROCESSLIST: 'PROCESSLIST'; +KW_PROFILE: 'PROFILE'; +KW_PROFILES: 'PROFILES'; +KW_PROXY: 'PROXY'; +KW_QUERY: 'QUERY'; +KW_QUICK: 'QUICK'; +KW_REBUILD: 'REBUILD'; +KW_RECOVER: 'RECOVER'; +KW_RECURSIVE: 'RECURSIVE'; +KW_REDO_BUFFER_SIZE: 'REDO_BUFFER_SIZE'; +KW_REDUNDANT: 'REDUNDANT'; +KW_REGISTRATION: 'REGISTRATION'; +KW_RELAY: 'RELAY'; +KW_RELAY_LOG_FILE: 'RELAY_LOG_FILE'; +KW_RELAY_LOG_POS: 'RELAY_LOG_POS'; +KW_RELAYLOG: 'RELAYLOG'; +KW_REMOVE: 'REMOVE'; +KW_REORGANIZE: 'REORGANIZE'; +KW_REPAIR: 'REPAIR'; +KW_REPLICA: 'REPLICA'; +KW_REPLICAS: 'REPLICAS'; +KW_REPLICATE_DO_DB: 'REPLICATE_DO_DB'; +KW_REPLICATE_DO_TABLE: 'REPLICATE_DO_TABLE'; +KW_REPLICATE_IGNORE_DB: 'REPLICATE_IGNORE_DB'; +KW_REPLICATE_IGNORE_TABLE: 'REPLICATE_IGNORE_TABLE'; +KW_REPLICATE_REWRITE_DB: 'REPLICATE_REWRITE_DB'; +KW_REPLICATE_WILD_DO_TABLE: 'REPLICATE_WILD_DO_TABLE'; +KW_REPLICATE_WILD_IGNORE_TABLE: 'REPLICATE_WILD_IGNORE_TABLE'; +KW_REPLICATION: 'REPLICATION'; +KW_REQUIRE_ROW_FORMAT: 'REQUIRE_ROW_FORMAT'; +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK: 'REQUIRE_TABLE_PRIMARY_KEY_CHECK'; +KW_RESET: 'RESET'; +KW_RESTART: 'RESTART'; +KW_RESUME: 'RESUME'; +KW_RETURNED_SQLSTATE: 'RETURNED_SQLSTATE'; +KW_RETURNING: 'RETURNING'; +KW_RETURNS: 'RETURNS'; +KW_REUSE: 'REUSE'; +KW_ROLE: 'ROLE'; +KW_ROLLBACK: 'ROLLBACK'; +KW_ROLLUP: 'ROLLUP'; +KW_ROTATE: 'ROTATE'; +KW_ROW: 'ROW'; +KW_ROWS: 'ROWS'; +KW_ROW_FORMAT: 'ROW_FORMAT'; +KW_SAVEPOINT: 'SAVEPOINT'; +KW_SCHEDULE: 'SCHEDULE'; +KW_SECURITY: 'SECURITY'; +KW_SERVER: 'SERVER'; +KW_SESSION: 'SESSION'; +KW_SHARE: 'SHARE'; +KW_SHARED: 'SHARED'; +KW_SIGNED: 'SIGNED'; +KW_SIMPLE: 'SIMPLE'; +KW_SLAVE: 'SLAVE'; +KW_SLOW: 'SLOW'; +KW_SNAPSHOT: 'SNAPSHOT'; +KW_SOCKET: 'SOCKET'; +KW_SOME: 'SOME'; +KW_SONAME: 'SONAME'; +KW_SOUNDS: 'SOUNDS'; +KW_SOURCE: 'SOURCE'; +KW_SOURCE_BIND: 'SOURCE_BIND'; +KW_SOURCE_HOST: 'SOURCE_HOST'; +KW_SOURCE_USER: 'SOURCE_USER'; +KW_SOURCE_PASSWORD: 'SOURCE_PASSWORD'; +KW_SOURCE_PORT: 'SOURCE_PORT'; +KW_SOURCE_LOG_FILE: 'SOURCE_LOG_FILE'; +KW_SOURCE_LOG_POS: 'SOURCE_LOG_POS'; +KW_SOURCE_AUTO_POSITION: 'SOURCE_AUTO_POSITION'; +KW_SOURCE_HEARTBEAT_PERIOD: 'SOURCE_HEARTBEAT_PERIOD'; +KW_SOURCE_CONNECT_RETRY: 'SOURCE_CONNECT_RETRY'; +KW_SOURCE_RETRY_COUNT: 'SOURCE_RETRY_COUNT'; +KW_SOURCE_CONNECTION_AUTO_FAILOVER: 'SOURCE_CONNECTION_AUTO_FAILOVER'; +KW_SOURCE_DELAY: 'SOURCE_DELAY'; +KW_SOURCE_COMPRESSION_ALGORITHMS: 'SOURCE_COMPRESSION_ALGORITHMS'; +KW_SOURCE_ZSTD_COMPRESSION_LEVEL: 'SOURCE_ZSTD_COMPRESSION_LEVEL'; +KW_SOURCE_SSL: 'SOURCE_SSL'; +KW_SOURCE_SSL_CA: 'SOURCE_SSL_CA'; +KW_SOURCE_SSL_CAPATH: 'SOURCE_SSL_CAPATH'; +KW_SOURCE_SSL_CERT: 'SOURCE_SSL_CERT'; +KW_SOURCE_SSL_CRL: 'SOURCE_SSL_CRL'; +KW_SOURCE_SSL_CRLPATH: 'SOURCE_SSL_CRLPATH'; +KW_SOURCE_SSL_KEY: 'SOURCE_SSL_KEY'; +KW_SOURCE_SSL_CIPHER: 'SOURCE_SSL_CIPHER'; +KW_SOURCE_SSL_VERIFY_SERVER_CERT: 'SOURCE_SSL_VERIFY_SERVER_CERT'; +KW_SOURCE_TLS_VERSION: 'SOURCE_TLS_VERSION'; +KW_SOURCE_TLS_CIPHERSUITES: 'SOURCE_TLS_CIPHERSUITES'; +KW_SOURCE_PUBLIC_KEY_PATH: 'SOURCE_PUBLIC_KEY_PATH'; +KW_SQL_AFTER_GTIDS: 'SQL_AFTER_GTIDS'; +KW_SQL_AFTER_MTS_GAPS: 'SQL_AFTER_MTS_GAPS'; +KW_SQL_BEFORE_GTIDS: 'SQL_BEFORE_GTIDS'; +KW_SQL_BUFFER_RESULT: 'SQL_BUFFER_RESULT'; +KW_SQL_CACHE: 'SQL_CACHE'; +KW_SQL_NO_CACHE: 'SQL_NO_CACHE'; +KW_SQL_THREAD: 'SQL_THREAD'; +KW_START: 'START'; +KW_STARTS: 'STARTS'; +KW_STATS_AUTO_RECALC: 'STATS_AUTO_RECALC'; +KW_STATS_PERSISTENT: 'STATS_PERSISTENT'; +KW_STATS_SAMPLE_PAGES: 'STATS_SAMPLE_PAGES'; +KW_STATUS: 'STATUS'; +KW_STOP: 'STOP'; +KW_STORAGE: 'STORAGE'; +KW_STORED: 'STORED'; +KW_STRING: 'STRING'; +KW_SUBCLASS_ORIGIN: 'SUBCLASS_ORIGIN'; +KW_SUBJECT: 'SUBJECT'; +KW_SUBPARTITION: 'SUBPARTITION'; +KW_SUBPARTITIONS: 'SUBPARTITIONS'; +KW_SUSPEND: 'SUSPEND'; +KW_SWAPS: 'SWAPS'; +KW_SWITCHES: 'SWITCHES'; +KW_TABLE_NAME: 'TABLE_NAME'; +KW_TABLESPACE: 'TABLESPACE'; +KW_TABLE_TYPE: 'TABLE_TYPE'; +KW_TEMPORARY: 'TEMPORARY'; +KW_TEMPTABLE: 'TEMPTABLE'; +KW_THAN: 'THAN'; +KW_TRADITIONAL: 'TRADITIONAL'; +KW_TRANSACTION: 'TRANSACTION'; +KW_TRANSACTIONAL: 'TRANSACTIONAL'; +KW_TREE: 'TREE'; +KW_TRIGGERS: 'TRIGGERS'; +KW_TRUNCATE: 'TRUNCATE'; +KW_UNBOUNDED: 'UNBOUNDED'; +KW_UNDEFINED: 'UNDEFINED'; +KW_UNDOFILE: 'UNDOFILE'; +KW_UNDO_BUFFER_SIZE: 'UNDO_BUFFER_SIZE'; +KW_UNINSTALL: 'UNINSTALL'; +KW_UNKNOWN: 'UNKNOWN'; +KW_UNREGISTER: 'UNREGISTER'; +KW_UNTIL: 'UNTIL'; +KW_UPGRADE: 'UPGRADE'; +KW_USER: 'USER'; +KW_USE_FRM: 'USE_FRM'; +KW_USER_RESOURCES: 'USER_RESOURCES'; +KW_VALIDATION: 'VALIDATION'; +KW_VALUE: 'VALUE'; +KW_VARIABLES: 'VARIABLES'; +KW_VIEW: 'VIEW'; +KW_VIRTUAL: 'VIRTUAL'; +KW_VISIBLE: 'VISIBLE'; +KW_WAIT: 'WAIT'; +KW_WARNINGS: 'WARNINGS'; +KW_WINDOW: 'WINDOW'; +KW_WITHOUT: 'WITHOUT'; +KW_WORK: 'WORK'; +KW_WRAPPER: 'WRAPPER'; +KW_X509: 'X509'; +KW_XA: 'XA'; +KW_XML: 'XML'; + + +// Interval type Keywords + +KW_QUARTER: 'QUARTER'; +KW_MONTH: 'MONTH'; +KW_DAY: 'DAY'; +KW_HOUR: 'HOUR'; +KW_MINUTE: 'MINUTE'; +KW_WEEK: 'WEEK'; +KW_SECOND: 'SECOND'; +KW_MICROSECOND: 'MICROSECOND'; + + +// PRIVILEGES + +KW_ADMIN: 'ADMIN'; +KW_APPLICATION_PASSWORD_ADMIN: 'APPLICATION_PASSWORD_ADMIN'; +KW_AUDIT_ABORT_EXEMPT: 'AUDIT_ABORT_EXEMPT'; +KW_AUDIT_ADMIN: 'AUDIT_ADMIN'; +KW_AUTHENTICATION: 'AUTHENTICATION'; +KW_AUTHENTICATION_POLICY_ADMIN: 'AUTHENTICATION_POLICY_ADMIN'; +KW_BACKUP_ADMIN: 'BACKUP_ADMIN'; +KW_BINLOG_ADMIN: 'BINLOG_ADMIN'; +KW_BINLOG_ENCRYPTION_ADMIN: 'BINLOG_ENCRYPTION_ADMIN'; +KW_CLONE: 'CLONE'; +KW_CLONE_ADMIN: 'CLONE_ADMIN'; +KW_CONNECTION_ADMIN: 'CONNECTION_ADMIN'; +KW_ENCRYPTION_KEY_ADMIN: 'ENCRYPTION_KEY_ADMIN'; +KW_EXECUTE: 'EXECUTE'; +KW_FILE: 'FILE'; +KW_FIREWALL_ADMIN: 'FIREWALL_ADMIN'; +KW_FIREWALL_EXEMPT: 'FIREWALL_EXEMPT'; +KW_FIREWALL_USER: 'FIREWALL_USER'; +KW_FLUSH_OPTIMIZER_COSTS: 'FLUSH_OPTIMIZER_COSTS'; +KW_FLUSH_STATUS: 'FLUSH_STATUS'; +KW_FLUSH_TABLES: 'FLUSH_TABLES'; +KW_FLUSH_USER_RESOURCES: 'FLUSH_USER_RESOURCES'; +KW_GROUP_REPLICATION_ADMIN: 'GROUP_REPLICATION_ADMIN'; +KW_INNODB_REDO_LOG_ARCHIVE: 'INNODB_REDO_LOG_ARCHIVE'; +KW_INNODB_REDO_LOG_ENABLE: 'INNODB_REDO_LOG_ENABLE'; +KW_INVOKE: 'INVOKE'; +KW_LAMBDA: 'LAMBDA'; +KW_NDB_STORED_USER: 'NDB_STORED_USER'; +KW_PASSWORDLESS_USER_ADMIN: 'PASSWORDLESS_USER_ADMIN'; +KW_PERSIST_RO_VARIABLES_ADMIN: 'PERSIST_RO_VARIABLES_ADMIN'; +KW_PRIVILEGES: 'PRIVILEGES'; +KW_PROCESS: 'PROCESS'; +KW_RELOAD: 'RELOAD'; +KW_REPLICATION_APPLIER: 'REPLICATION_APPLIER'; +KW_REPLICATION_SLAVE_ADMIN: 'REPLICATION_SLAVE_ADMIN'; +KW_RESOURCE: 'RESOURCE'; +KW_RESOURCE_GROUP_ADMIN: 'RESOURCE_GROUP_ADMIN'; +KW_RESOURCE_GROUP_USER: 'RESOURCE_GROUP_USER'; +KW_ROLE_ADMIN: 'ROLE_ADMIN'; +KW_ROUTINE: 'ROUTINE'; +KW_S3: 'S3'; +KW_SERVICE_CONNECTION_ADMIN: 'SERVICE_CONNECTION_ADMIN'; +KW_SESSION_VARIABLES_ADMIN: QUOTE_SYMB? 'SESSION_VARIABLES_ADMIN' QUOTE_SYMB?; +KW_SET_USER_ID: 'SET_USER_ID'; +KW_SHOW_ROUTINE: 'SHOW_ROUTINE'; +KW_SHUTDOWN: 'SHUTDOWN'; +KW_SUPER: 'SUPER'; +KW_SYSTEM_VARIABLES_ADMIN: 'SYSTEM_VARIABLES_ADMIN'; +KW_TABLES: 'TABLES'; +KW_TABLE_ENCRYPTION_ADMIN: 'TABLE_ENCRYPTION_ADMIN'; +KW_VERSION_TOKEN_ADMIN: 'VERSION_TOKEN_ADMIN'; +KW_XA_RECOVER_ADMIN: 'XA_RECOVER_ADMIN'; + + +// Charsets + +KW_ARMSCII8: 'ARMSCII8'; +KW_ASCII: 'ASCII'; +KW_BIG5: 'BIG5'; +KW_CP1250: 'CP1250'; +KW_CP1251: 'CP1251'; +KW_CP1256: 'CP1256'; +KW_CP1257: 'CP1257'; +KW_CP850: 'CP850'; +KW_CP852: 'CP852'; +KW_CP866: 'CP866'; +KW_CP932: 'CP932'; +KW_DEC8: 'DEC8'; +KW_EUCJPMS: 'EUCJPMS'; +KW_EUCKR: 'EUCKR'; +KW_GB18030: 'GB18030'; +KW_GB2312: 'GB2312'; +KW_GBK: 'GBK'; +KW_GEOSTD8: 'GEOSTD8'; +KW_GREEK: 'GREEK'; +KW_HEBREW: 'HEBREW'; +KW_HP8: 'HP8'; +KW_KEYBCS2: 'KEYBCS2'; +KW_KOI8R: 'KOI8R'; +KW_KOI8U: 'KOI8U'; +KW_LATIN1: 'LATIN1'; +KW_LATIN2: 'LATIN2'; +KW_LATIN5: 'LATIN5'; +KW_LATIN7: 'LATIN7'; +KW_MACCE: 'MACCE'; +KW_MACROMAN: 'MACROMAN'; +KW_SJIS: 'SJIS'; +KW_SWE7: 'SWE7'; +KW_TIS620: 'TIS620'; +KW_UCS2: 'UCS2'; +KW_UJIS: 'UJIS'; +KW_UTF16: 'UTF16'; +KW_UTF16LE: 'UTF16LE'; +KW_UTF32: 'UTF32'; +KW_UTF8: 'UTF8'; +KW_UTF8MB3: 'UTF8MB3'; +KW_UTF8MB4: 'UTF8MB4'; + + +// DB Engines + +KW_ARCHIVE: 'ARCHIVE'; +KW_BLACKHOLE: 'BLACKHOLE'; +KW_CSV: 'CSV'; +KW_FEDERATED: 'FEDERATED'; +KW_INNODB: 'INNODB'; +KW_MEMORY: 'MEMORY'; +KW_MRG_MYISAM: 'MRG_MYISAM'; +KW_MYISAM: 'MYISAM'; +KW_NDB: 'NDB'; +KW_NDBCLUSTER: 'NDBCLUSTER'; +KW_PERFORMANCE_SCHEMA: 'PERFORMANCE_SCHEMA'; +KW_TOKUDB: 'TOKUDB'; + + +// Transaction Levels + +KW_REPEATABLE: 'REPEATABLE'; +KW_COMMITTED: 'COMMITTED'; +KW_UNCOMMITTED: 'UNCOMMITTED'; +KW_SERIALIZABLE: 'SERIALIZABLE'; + + +// Spatial data types + +KW_GEOMETRYCOLLECTION: 'GEOMETRYCOLLECTION'; +KW_GEOMCOLLECTION: 'GEOMCOLLECTION'; +KW_GEOMETRY: 'GEOMETRY'; +KW_LINESTRING: 'LINESTRING'; +KW_MULTILINESTRING: 'MULTILINESTRING'; +KW_MULTIPOINT: 'MULTIPOINT'; +KW_MULTIPOLYGON: 'MULTIPOLYGON'; +KW_POINT: 'POINT'; +KW_POLYGON: 'POLYGON'; + + +// Common function names + +KW_CATALOG_NAME: 'CATALOG_NAME'; +KW_CHARSET: 'CHARSET'; +KW_COLLATION: 'COLLATION'; +KW_ENGINE_ATTRIBUTE: 'ENGINE_ATTRIBUTE'; +KW_FORMAT: 'FORMAT'; +KW_GET_FORMAT: 'GET_FORMAT'; +KW_INTERSECT: 'INTERSECT'; +KW_RANDOM: 'RANDOM'; +KW_REVERSE: 'REVERSE'; +KW_ROW_COUNT: 'ROW_COUNT'; +KW_SCHEMA_NAME: 'SCHEMA_NAME'; +KW_SECONDARY_ENGINE_ATTRIBUTE: 'SECONDARY_ENGINE_ATTRIBUTE'; +KW_SRID: 'SRID'; +KW_SYSTEM: 'SYSTEM'; +KW_SYSTEM_USER: 'SYSTEM_USER'; +KW_THREAD_PRIORITY: 'THREAD_PRIORITY'; +KW_TP_CONNECTION_ADMIN: 'TP_CONNECTION_ADMIN'; +KW_TYPE: 'TYPE'; +KW_WEIGHT_STRING: 'WEIGHT_STRING'; + + +// Operators +// Operators. Assigns + +VAR_ASSIGN: ':='; +PLUS_ASSIGN: '+='; +MINUS_ASSIGN: '-='; +MULT_ASSIGN: '*='; +DIV_ASSIGN: '/='; +MOD_ASSIGN: '%='; +AND_ASSIGN: '&='; +XOR_ASSIGN: '^='; +OR_ASSIGN: '|='; + + +// Operators. Arithmetics + +STAR: '*'; +DIVIDE: '/'; +MODULE: '%'; +PLUS: '+'; +MINUS: '-'; +DIV: 'DIV'; +MOD: 'MOD'; + + +// Operators. Comparation + +EQUAL_SYMBOL: '='; +GREATER_SYMBOL: '>'; +LESS_SYMBOL: '<'; +EXCLAMATION_SYMBOL: '!'; + + +// Operators. Bit + +BIT_NOT_OP: '~'; +BIT_OR_OP: '|'; +BIT_AND_OP: '&'; +BIT_XOR_OP: '^'; + + +// Constructors symbols + +DOT: '.'; +LR_BRACKET: '('; +RR_BRACKET: ')'; +COMMA: ','; +SEMI: ';'; +AT_SIGN: '@'; +ZERO_DECIMAL: '0'; +ONE_DECIMAL: '1'; +TWO_DECIMAL: '2'; +THREE_DECIMAL: '3'; +SINGLE_QUOTE_SYMB: '\''; +DOUBLE_QUOTE_SYMB: '"'; +REVERSE_QUOTE_SYMB: '`'; +COLON_SYMB: ':'; + +fragment QUOTE_SYMB + : SINGLE_QUOTE_SYMB | DOUBLE_QUOTE_SYMB | REVERSE_QUOTE_SYMB + ; + + +// Charsets +CHARSET_REVERSE_QOUTE_STRING: '`' CHARSET_NAME '`'; + + +// File's sizes +FILESIZE_LITERAL: DEC_DIGIT+ ('K'|'M'|'G'|'T'); + + +// Literal Primitives +START_NATIONAL_STRING_LITERAL: 'N' SQUOTA_STRING; +STRING_LITERAL: DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING; +DECIMAL_LITERAL: DEC_DIGIT+; +HEXADECIMAL_LITERAL: 'X' '\'' (HEX_DIGIT HEX_DIGIT)+ '\'' + | '0X' HEX_DIGIT+; + +REAL_LITERAL: DEC_DIGIT* '.' DEC_DIGIT+ + | DEC_DIGIT+ '.' EXPONENT_NUM_PART + | DEC_DIGIT* '.' (DEC_DIGIT+ EXPONENT_NUM_PART) + | DEC_DIGIT+ EXPONENT_NUM_PART; +NULL_SPEC_LITERAL: '\\' 'N'; +BIT_STRING: BIT_STRING_L; +STRING_CHARSET_NAME: '_' CHARSET_NAME; + + + + +// Hack for dotID +// Prevent recognize string: .123somelatin AS ((.123), FLOAT_LITERAL), ((somelatin), ID) +// it must recoginze: .123somelatin AS ((.), DOT), (123somelatin, ID) + +DOT_ID: '.' ID_LITERAL; + + + +// Identifiers + +ID: ID_LITERAL; +// DOUBLE_QUOTE_ID: '"' ~'"'+ '"'; +REVERSE_QUOTE_ID: BQUOTA_STRING; +HOST_IP_ADDRESS: (AT_SIGN IP_ADDRESS); +LOCAL_ID: AT_SIGN + ( + STRING_LITERAL | [A-Z0-9._$\u0080-\uFFFF]+ + ); +GLOBAL_ID: AT_SIGN AT_SIGN + ( + [A-Z0-9._$\u0080-\uFFFF]+ | BQUOTA_STRING + ); +PERSIST_ID: AT_SIGN AT_SIGN + ( + [A-Z0-9._$\u0080-\uFFFF]+ | BQUOTA_STRING + ); + + +// Fragments for Literal primitives + +fragment CHARSET_NAME: KW_ARMSCII8 | KW_ASCII | KW_BIG5 | KW_BINARY | KW_CP1250 + | KW_CP1251 | KW_CP1256 | KW_CP1257 | KW_CP850 + | KW_CP852 | KW_CP866 | KW_CP932 | KW_DEC8 | KW_EUCJPMS + | KW_EUCKR | KW_GB2312 | KW_GBK | KW_GEOSTD8 | KW_GREEK + | KW_HEBREW | KW_HP8 | KW_KEYBCS2 | KW_KOI8R | KW_KOI8U + | KW_LATIN1 | KW_LATIN2 | KW_LATIN5 | KW_LATIN7 + | KW_MACCE | KW_MACROMAN | KW_SJIS | KW_SWE7 | KW_TIS620 + | KW_UCS2 | KW_UJIS | KW_UTF16 | KW_UTF16LE | KW_UTF32 + | KW_UTF8 | KW_UTF8MB3 | KW_UTF8MB4; + +fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+; +fragment ID_LITERAL: [A-Z_$0-9\u0080-\uFFFF]*?[A-Z_$\u0080-\uFFFF]+?[A-Z_$0-9\u0080-\uFFFF]*; +fragment DQUOTA_STRING: '"' ( '\\'. | '""' | ~('"'| '\\') )* '"'; +fragment SQUOTA_STRING: '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\''; +fragment BQUOTA_STRING: '`' ( ~'`' | '``' )* '`'; +fragment HEX_DIGIT: [0-9A-F]; +fragment DEC_DIGIT: [0-9]; +fragment BIT_STRING_L: 'B' '\'' [01]+ '\''; +fragment IP_ADDRESS: [0-9]+ '.' [0-9.]+ | [0-9A-F]* ':' [0-9A-F]* ':' [0-9A-F:]+; + + +// Last tokens must generate Errors + +ERROR_RECONGNIGION: . -> channel(ERRORCHANNEL); diff --git a/src/grammar/mysql/MySqlParser.g4 b/src/grammar/mysql/MySqlParser.g4 new file mode 100644 index 0000000..1884bad --- /dev/null +++ b/src/grammar/mysql/MySqlParser.g4 @@ -0,0 +1,2840 @@ +/* +MySQL (Positive Technologies) grammar +The MIT License (MIT). +Copyright (c) 2015-2017, Ivan Kochurkin (kvanttt@gmail.com), Positive Technologies. +Copyright (c) 2017, Ivan Khudyashev (IHudyashov@ptsecurity.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// https://github.com/antlr/grammars-v4/blob/master/sql/mysql/Positive-Technologies/MySqlParser.g4 +// SQL Statements: https://dev.mysql.com/doc/refman/8.0/en/sql-statements.html + + +parser grammar MySqlParser; + +options { tokenVocab = MySqlLexer; } + + +// Top Level Description + +program + : sqlStatements? EOF + ; + +sqlStatements + : (sqlStatement | emptyStatement_)* + (sqlStatement SEMI? | emptyStatement_) + ; + +sqlStatement + : ddlStatement | dmlStatement | transactionStatement + | replicationStatement | preparedStatement + | administrationStatement | utilityStatement + ; + +emptyStatement_ + : SEMI + ; + +ddlStatement + : createDatabase | createEvent | createIndex + | createLogfileGroup | createProcedure | createFunction + | createServer | createTable | createTablespaceInnodb + | createTablespaceNdb | createTrigger | createView | createRole + | alterDatabase | alterEvent | alterFunction + | alterInstance | alterLogfileGroup | alterProcedure + | alterServer | alterTable | alterTablespace | alterView + | dropDatabase | dropEvent | dropIndex + | dropLogfileGroup | dropProcedure | dropFunction + | dropServer | dropSpatial | dropTable | dropTablespace + | dropTrigger | dropView | dropRole | setRole + | renameTable | truncateTable + ; + +dmlStatement + : selectStatement | setOperations | insertStatement | updateStatement + | deleteStatement | replaceStatement | callStatement | interSectStatement + | loadDataStatement | loadXmlStatement | parenthesizedQuery | doStatement + | handlerStatement | importTableStatement | valuesStatement | withStatement + | tableStatement + ; + +transactionStatement + : startTransaction + | beginWork | commitWork | rollbackWork + | savepointStatement | rollbackStatement + | releaseStatement | lockTables | unlockTables + ; + +replicationStatement + : changeMaster | changeReplicationFilter | changeReplicationSource | purgeBinaryLogs + | startSlaveOrReplica | stopSlaveOrReplica + | startGroupReplication | stopGroupReplication + | xaStartTransaction | xaEndTransaction | xaPrepareStatement + | xaCommitWork | xaRollbackWork | xaRecoverWork + ; + +preparedStatement + : prepareStatement | executeStatement | deallocatePrepare + ; + +// remark: NOT INCLUDED IN sqlStatement, but include in body +// of routine's statements +compoundStatement + : blockStatement + | caseStatement | ifStatement | leaveStatement + | loopStatement | repeatStatement | whileStatement + | iterateStatement | returnStatement | cursorStatement + ; + +administrationStatement + : alterUser | createUser | dropUser | grantStatement + | grantProxy | renameUser | revokeStatement + | alterResourceGroup | createResourceGroup | dropResourceGroup | setResourceGroup + | analyzeTable | checkTable + | checksumTable | optimizeTable | repairTable + | installComponent | uninstallComponent | installPlugin | uninstallPlugin + | cloneStatement | setStatement | showStatement | binlogStatement + | cacheIndexStatement | flushStatement | killStatement + | loadIndexIntoCache | resetStatement | resetPersist | resetAllChannel | reStartStatement + | shutdownStatement + ; + +utilityStatement + : simpleDescribeStatement | fullDescribeStatement | analyzeDescribeStatement + | helpStatement | useStatement | signalStatement + | resignalStatement | diagnosticsStatement + ; + + +// Data Definition Language + +// Create statements + +createDatabase + : KW_CREATE dbFormat=(KW_DATABASE | KW_SCHEMA) + ifNotExists? databaseNameCreate createDatabaseOption* + ; + +createEvent + : KW_CREATE ownerStatement? KW_EVENT ifNotExists? event_name=fullId + KW_ON KW_SCHEDULE scheduleExpression + (KW_ON KW_COMPLETION KW_NOT? KW_PRESERVE)? enableType? + (KW_COMMENT STRING_LITERAL)? + KW_DO routineBody + ; + +createIndex + : KW_CREATE + intimeAction=(KW_ONLINE | KW_OFFLINE)? + indexCategory=(KW_UNIQUE | KW_FULLTEXT | KW_SPATIAL)? KW_INDEX + indexNameCreate indexType? + KW_ON tableName indexColumnNames + indexOption* + ( + KW_ALGORITHM EQUAL_SYMBOL? algType=(KW_DEFAULT | KW_INPLACE | KW_COPY) + | KW_LOCK EQUAL_SYMBOL? lockType=(KW_DEFAULT | KW_NONE | KW_SHARED | KW_EXCLUSIVE) + )* + ; + +createLogfileGroup + : KW_CREATE KW_LOGFILE KW_GROUP logfileGroupName=uid + KW_ADD KW_UNDOFILE undoFile=STRING_LITERAL + (KW_INITIAL_SIZE '='? initSize=fileSizeLiteral)? + (KW_UNDO_BUFFER_SIZE '='? undoSize=fileSizeLiteral)? + (KW_REDO_BUFFER_SIZE '='? redoSize=fileSizeLiteral)? + (KW_NODEGROUP '='? nodegroup=uid)? + KW_WAIT? + (KW_COMMENT '='? comment=STRING_LITERAL)? + KW_ENGINE '='? engineName + ; + +createProcedure + : KW_CREATE ownerStatement? KW_PROCEDURE ifNotExists? sp_name=fullId + '(' procedureParameter? (',' procedureParameter)* ')' + routineOption* + routineBody + ; + +createRole + : KW_CREATE KW_ROLE ifNotExists? userOrRoleNames + ; + +createServer + : KW_CREATE KW_SERVER servername=uid + KW_FOREIGN KW_DATA KW_WRAPPER wrapperName=(KW_MYSQL | STRING_LITERAL) + KW_OPTIONS '(' serverOption (',' serverOption)* ')' + ; + +createTable + : KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tableNameCreate + createDefinitions + (tableOption (','? tableOption)* )? + partitionDefinitions? #copyCreateTable + | KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tableNameCreate + createDefinitions? + (tableOption (','? tableOption)*)? + partitionDefinitions? + (KW_IGNORE | KW_REPLACE)? + KW_AS? selectStatement #columnCreateTable + | KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tableNameCreate + (KW_LIKE tableName | '(' KW_LIKE tableName ')') #queryCreateTable + ; + +createTablespaceInnodb + : KW_CREATE KW_UNDO? KW_TABLESPACE tablespaceNameCreate + (KW_ADD KW_DATAFILE datafile=STRING_LITERAL)? + (KW_AUTOEXTEND_SIZE '='? autoextendSize=fileSizeLiteral)? + (KW_FILE_BLOCK_SIZE '=' fileBlockSize=fileSizeLiteral)? + (KW_ENGINE '='? engineName)? + (KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL)? + ; + +createTablespaceNdb + : KW_CREATE KW_UNDO? KW_TABLESPACE tablespaceNameCreate + KW_ADD KW_DATAFILE datafile=STRING_LITERAL + KW_USE KW_LOGFILE KW_GROUP logfileGroupName=uid + (KW_EXTENT_SIZE '='? extentSize=fileSizeLiteral)? + (KW_INITIAL_SIZE '='? initialSize=fileSizeLiteral)? + (KW_AUTOEXTEND_SIZE '='? autoextendSize=fileSizeLiteral)? + (KW_MAX_SIZE '='? maxSize=fileSizeLiteral)? + (KW_NODEGROUP '='? nodegroup=uid)? + KW_WAIT? + (KW_COMMENT '='? comment=STRING_LITERAL)? + KW_ENGINE '='? engineName + ; + +createTrigger + : KW_CREATE ownerStatement? KW_TRIGGER ifNotExists? trigger_name=fullId + triggerTime=(KW_BEFORE | KW_AFTER) + triggerEvent=(KW_INSERT | KW_UPDATE | KW_DELETE) + KW_ON tableName KW_FOR KW_EACH KW_ROW + (triggerPlace=(KW_FOLLOWS | KW_PRECEDES) other_trigger_name=fullId)? + routineBody + ; + +withClause + : KW_WITH KW_RECURSIVE? commonTableExpressions + ; + +commonTableExpressions + : cteName=uid ('(' cteColumnName=uid (',' cteColumnName=uid)* ')')? KW_AS '(' dmlStatement ')' + (',' commonTableExpressions)? + ; + +createView + : KW_CREATE orReplace? + ( + KW_ALGORITHM '=' algType=(KW_UNDEFINED | KW_MERGE | KW_TEMPTABLE) + )? + ownerStatement? + (KW_SQL KW_SECURITY secContext=(KW_DEFINER | KW_INVOKER))? + KW_VIEW viewNameCreate ('(' columnNames ')')? KW_AS + ( + '(' withClause? selectStatement ')' + | + withClause? selectStatement (KW_WITH checkOption=(KW_CASCADED | KW_LOCAL)? KW_CHECK KW_OPTION)? + ) + ; + + +// details + +createDatabaseOption + : KW_DEFAULT? charSet '='? (charsetName | KW_DEFAULT) + | KW_DEFAULT? KW_COLLATE '='? collationName + | KW_DEFAULT? KW_ENCRYPTION '='? STRING_LITERAL + | KW_READ KW_ONLY '='? (KW_DEFAULT | ZERO_DECIMAL | ONE_DECIMAL) + ; + +charSet + : KW_CHARACTER KW_SET + | KW_CHARSET + | KW_CHAR KW_SET + ; + +currentUserExpression + : (KW_CURRENT_USER | KW_USER) ( '(' ')')? + ; + +ownerStatement + : KW_DEFINER '=' (userName | currentUserExpression) + ; + +scheduleExpression + : KW_AT timestampValue intervalExpr* #preciseSchedule + | KW_EVERY (decimalLiteral | expression) intervalType + ( + KW_STARTS startTimestamp=timestampValue + (startIntervals+=intervalExpr)* + )? + ( + KW_ENDS endTimestamp=timestampValue + (endIntervals+=intervalExpr)* + )? #intervalSchedule + ; + +timestampValue + : KW_CURRENT_TIMESTAMP + | stringLiteral + | decimalLiteral + | expression + ; + +intervalExpr + : '+' KW_INTERVAL (decimalLiteral | expression) intervalType + ; + +intervalType + : intervalTypeBase + | KW_YEAR | KW_YEAR_MONTH | KW_DAY_HOUR | KW_DAY_MINUTE + | KW_DAY_SECOND | KW_HOUR_MINUTE | KW_HOUR_SECOND | KW_MINUTE_SECOND + | KW_SECOND_MICROSECOND | KW_MINUTE_MICROSECOND + | KW_HOUR_MICROSECOND | KW_DAY_MICROSECOND + ; + +enableType + : KW_ENABLE | KW_DISABLE | KW_DISABLE KW_ON KW_SLAVE + ; + +indexType + : KW_USING (KW_BTREE | KW_HASH) + ; + +indexOption + : KW_KEY_BLOCK_SIZE EQUAL_SYMBOL? fileSizeLiteral + | indexType + | KW_WITH KW_PARSER parserName=uid + | KW_COMMENT STRING_LITERAL + | (KW_VISIBLE | KW_INVISIBLE) + | KW_ENGINE_ATTRIBUTE EQUAL_SYMBOL? STRING_LITERAL + | KW_SECONDARY_ENGINE_ATTRIBUTE EQUAL_SYMBOL? STRING_LITERAL + ; + +procedureParameter + : direction=(KW_IN | KW_OUT | KW_INOUT)? paramName=uid dataType + ; + +routineOption + : KW_COMMENT STRING_LITERAL #routineComment + | KW_LANGUAGE KW_SQL #routineLanguage + | KW_NOT? KW_DETERMINISTIC #routineBehavior + | ( + KW_CONTAINS KW_SQL | KW_NO KW_SQL | KW_READS KW_SQL KW_DATA + | KW_MODIFIES KW_SQL KW_DATA + ) #routineData + | KW_SQL KW_SECURITY context=(KW_DEFINER | KW_INVOKER) #routineSecurity + ; + +serverOption + : KW_HOST STRING_LITERAL + | KW_DATABASE STRING_LITERAL + | KW_USER STRING_LITERAL + | KW_PASSWORD STRING_LITERAL + | KW_SOCKET STRING_LITERAL + | KW_OWNER STRING_LITERAL + | KW_PORT decimalLiteral + ; + +createDefinitions + : '(' createDefinition (',' createDefinition)* ')' + ; + +createDefinition + : columnName columnDefinition + | (KW_INDEX | KW_KEY) indexName? indexType? indexColumnNames indexOption* + | (KW_FULLTEXT | KW_SPATIAL) (KW_INDEX | KW_KEY)? indexName? indexColumnNames indexOption* + | constraintSymbol? KW_PRIMARY KW_KEY indexType? indexColumnNames indexOption* + | constraintSymbol? KW_UNIQUE (KW_INDEX | KW_KEY)? indexName? indexType? indexColumnNames indexOption* + | constraintSymbol? KW_FOREIGN KW_KEY indexName? indexColumnNames referenceDefinition + | KW_CHECK '(' expression ')' + | checkConstraintDefinition + ; + +checkConstraintDefinition + : constraintSymbol? KW_CHECK '(' expression ')' (KW_NOT? KW_ENFORCED)? + ; + +constraintSymbol + : KW_CONSTRAINT symbol=uid? + ; + +columnDefinition + : dataType columnConstraint* + ; + +columnConstraint + : nullNotnull #nullColumnConstraint + | KW_DEFAULT defaultValue #defaultColumnConstraint + | KW_VISIBLE #visibilityColumnConstraint + | KW_INVISIBLE #invisibilityColumnConstraint + | (KW_AUTO_INCREMENT | KW_ON KW_UPDATE currentTimestamp) #autoIncrementColumnConstraint + | KW_PRIMARY? KW_KEY #primaryKeyColumnConstraint + | KW_UNIQUE KW_KEY? #uniqueKeyColumnConstraint + | KW_COMMENT STRING_LITERAL #commentColumnConstraint + | KW_COLUMN_FORMAT colformat=(KW_FIXED | KW_DYNAMIC | KW_DEFAULT) #formatColumnConstraint + | KW_STORAGE storageval=(KW_DISK | KW_MEMORY | KW_DEFAULT) #storageColumnConstraint + | referenceDefinition #referenceColumnConstraint + | KW_COLLATE collationName #collateColumnConstraint + | (KW_GENERATED KW_ALWAYS)? KW_AS '(' expression ')' (KW_VIRTUAL | KW_STORED)? #generatedColumnConstraint + | KW_SERIAL KW_DEFAULT KW_VALUE #serialDefaultColumnConstraint + | checkConstraintDefinition #checkExpr + ; + +referenceDefinition + : KW_REFERENCES tableName indexColumnNames? + (KW_MATCH matchType=(KW_FULL | KW_PARTIAL | KW_SIMPLE))? + referenceAction? + ; + +referenceAction + : KW_ON KW_DELETE onDelete=referenceControlType + ( + KW_ON KW_UPDATE onUpdate=referenceControlType + )? + | KW_ON KW_UPDATE onUpdate=referenceControlType + ( + KW_ON KW_DELETE onDelete=referenceControlType + )? + ; + +referenceControlType + : KW_RESTRICT | KW_CASCADE | KW_SET KW_NULL_LITERAL | KW_NO KW_ACTION | KW_SET KW_DEFAULT + ; + + +tableOption + : KW_ENGINE '='? engineName? #tableOptionEngine + | KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL #tableOptionEngineAttribute + | KW_AUTOEXTEND_SIZE '='? decimalLiteral #tableOptionAutoextendSize + | KW_AUTO_INCREMENT '='? decimalLiteral #tableOptionAutoIncrement + | KW_AVG_ROW_LENGTH '='? decimalLiteral #tableOptionAverage + | KW_DEFAULT? charSet '='? (charsetName|KW_DEFAULT) #tableOptionCharset + | (KW_CHECKSUM | KW_PAGE_CHECKSUM) '='? boolValue=('0' | '1') #tableOptionChecksum + | KW_DEFAULT? KW_COLLATE '='? collationName #tableOptionCollate + | KW_COMMENT '='? STRING_LITERAL #tableOptionComment + | KW_COMPRESSION '='? (STRING_LITERAL | ID) #tableOptionCompression + | KW_CONNECTION '='? STRING_LITERAL #tableOptionConnection + | (KW_DATA | KW_INDEX) KW_DIRECTORY '='? STRING_LITERAL #tableOptionDataDirectory + | KW_DELAY_KEY_WRITE '='? boolValue=('0' | '1') #tableOptionDelay + | KW_ENCRYPTION '='? STRING_LITERAL #tableOptionEncryption + | (KW_PAGE_COMPRESSED | STRING_LITERAL) '='? ('0' | '1') #tableOptionPageCompressed + | (KW_PAGE_COMPRESSION_LEVEL | STRING_LITERAL) '='? decimalLiteral #tableOptionPageCompressionLevel + | KW_ENCRYPTION_KEY_ID '='? decimalLiteral #tableOptionEncryptionKeyId + | KW_INDEX KW_DIRECTORY '='? STRING_LITERAL #tableOptionIndexDirectory + | KW_INSERT_METHOD '='? insertMethod=(KW_NO | KW_FIRST | KW_LAST) #tableOptionInsertMethod + | KW_KEY_BLOCK_SIZE '='? fileSizeLiteral #tableOptionKeyBlockSize + | KW_MAX_ROWS '='? decimalLiteral #tableOptionMaxRows + | KW_MIN_ROWS '='? decimalLiteral #tableOptionMinRows + | KW_PACK_KEYS '='? extBoolValue=('0' | '1' | KW_DEFAULT) #tableOptionPackKeys + | KW_PASSWORD '='? STRING_LITERAL #tableOptionPassword + | KW_ROW_FORMAT '='? + rowFormat=( + KW_DEFAULT | KW_DYNAMIC | KW_FIXED | KW_COMPRESSED + | KW_REDUNDANT | KW_COMPACT | ID + ) #tableOptionRowFormat + | KW_START KW_TRANSACTION #tableOptionStartTransaction + | KW_SECONDARY_ENGINE_ATTRIBUTE '='? STRING_LITERAL #tableOptionSecondaryEngineAttribute + | KW_STATS_AUTO_RECALC '='? extBoolValue=(KW_DEFAULT | '0' | '1') #tableOptionRecalculation + | KW_STATS_PERSISTENT '='? extBoolValue=(KW_DEFAULT | '0' | '1') #tableOptionPersistent + | KW_STATS_SAMPLE_PAGES '='? (KW_DEFAULT | decimalLiteral) #tableOptionSamplePage + | KW_TABLESPACE tablespaceName tablespaceStorage? #tableOptionTablespace + | KW_TABLE_TYPE '=' tableType #tableOptionTableType + | tablespaceStorage #tableOptionTablespace + | KW_TRANSACTIONAL '='? ('0' | '1') #tableOptionTransactional + | KW_UNION '='? '(' tableNames ')' #tableOptionUnion + ; + +tableType + : KW_MYSQL | KW_ODBC + ; + +tablespaceStorage + : KW_STORAGE (KW_DISK | KW_MEMORY | KW_DEFAULT) + ; + +partitionDefinitions + : KW_PARTITION KW_BY partitionFunctionDefinition + (KW_PARTITIONS count=decimalLiteral)? + ( + KW_SUBPARTITION KW_BY subpartitionFunctionDefinition + (KW_SUBPARTITIONS subCount=decimalLiteral)? + )? + ('(' partitionDefinition (',' partitionDefinition)* ')')? + ; + +partitionFunctionDefinition + : KW_LINEAR? KW_HASH '(' expression ')' #partitionFunctionHash + | KW_LINEAR? KW_KEY (KW_ALGORITHM '=' algType=('1' | '2'))? + '(' columnNames? ')' #partitionFunctionKey + | KW_RANGE ( '(' expression ')' | KW_COLUMNS '(' columnNames ')' ) #partitionFunctionRange + | KW_LIST ( '(' expression ')' | KW_COLUMNS '(' columnNames ')' ) #partitionFunctionList + ; + +subpartitionFunctionDefinition + : KW_LINEAR? KW_HASH '(' expression ')' #subPartitionFunctionHash + | KW_LINEAR? KW_KEY (KW_ALGORITHM '=' algType=('1' | '2'))? + '(' columnNames ')' #subPartitionFunctionKey + ; + +partitionDefinition + : KW_PARTITION partitionName KW_VALUES KW_LESS KW_THAN + '(' + partitionDefinerAtom (',' partitionDefinerAtom)* + ')' + partitionOption* + ( '(' subpartitionDefinition (',' subpartitionDefinition)* ')' )? #partitionComparison + | KW_PARTITION partitionName KW_VALUES KW_LESS KW_THAN + partitionDefinerAtom partitionOption* + ( '(' subpartitionDefinition (',' subpartitionDefinition)* ')' )? #partitionComparison + | KW_PARTITION partitionName KW_VALUES KW_IN + '(' + partitionDefinerAtom (',' partitionDefinerAtom)* + ')' + partitionOption* + ( '(' subpartitionDefinition (',' subpartitionDefinition)* ')' )? #partitionListAtom + | KW_PARTITION partitionName KW_VALUES KW_IN + '(' + partitionDefinerVector (',' partitionDefinerVector)* + ')' + partitionOption* + ( '(' subpartitionDefinition (',' subpartitionDefinition)* ')' )? #partitionListVector + | KW_PARTITION partitionName partitionOption* + ( '(' subpartitionDefinition (',' subpartitionDefinition)* ')' )? #partitionSimple + ; + +partitionDefinerAtom + : constant | expression | KW_MAXVALUE + ; + +partitionDefinerVector + : '(' partitionDefinerAtom (',' partitionDefinerAtom)+ ')' + ; + +subpartitionDefinition + : KW_SUBPARTITION logicalName=uid partitionOption* + ; + +partitionOption + : KW_DEFAULT? KW_STORAGE? KW_ENGINE '='? engineName #partitionOptionEngine + | KW_COMMENT '='? comment=STRING_LITERAL #partitionOptionComment + | KW_DATA KW_DIRECTORY '='? dataDirectory=STRING_LITERAL #partitionOptionDataDirectory + | KW_INDEX KW_DIRECTORY '='? indexDirectory=STRING_LITERAL #partitionOptionIndexDirectory + | KW_MAX_ROWS '='? maxRows=decimalLiteral #partitionOptionMaxRows + | KW_MIN_ROWS '='? minRows=decimalLiteral #partitionOptionMinRows + | KW_TABLESPACE '='? tablespaceName #partitionOptionTablespace + | KW_NODEGROUP '='? nodegroup=uid #partitionOptionNodeGroup + ; + +// Alter statements + +alterDatabase + : KW_ALTER dbFormat=(KW_DATABASE | KW_SCHEMA) databaseName? + createDatabaseOption+ #alterSimpleDatabase + | KW_ALTER dbFormat=(KW_DATABASE | KW_SCHEMA) databaseName + KW_UPGRADE KW_DATA KW_DIRECTORY KW_NAME #alterUpgradeName + ; + +alterEvent + : KW_ALTER ownerStatement? + KW_EVENT event_name=fullId + (KW_ON KW_SCHEDULE scheduleExpression)? + (KW_ON KW_COMPLETION KW_NOT? KW_PRESERVE)? + (KW_RENAME KW_TO new_event_name=fullId)? enableType? + (KW_COMMENT STRING_LITERAL)? + (KW_DO routineBody)? + ; + +alterFunction + : KW_ALTER KW_FUNCTION functionName routineOption* + ; + +alterInstance + : KW_ALTER KW_INSTANCE KW_ROTATE KW_INNODB KW_MASTER KW_KEY + ; + +alterLogfileGroup + : KW_ALTER KW_LOGFILE KW_GROUP logfileGroupName=uid + KW_ADD KW_UNDOFILE STRING_LITERAL + (KW_INITIAL_SIZE '='? fileSizeLiteral)? + KW_WAIT? KW_ENGINE '='? engineName + ; + +alterProcedure + : KW_ALTER KW_PROCEDURE proc_name=fullId routineOption* + ; + +alterServer + : KW_ALTER KW_SERVER serverName=uid KW_OPTIONS + '(' serverOption (',' serverOption)* ')' + ; + +alterTable + : KW_ALTER KW_TABLE tableName + (alterOption (',' alterOption)*)? + (alterPartitionSpecification alterPartitionSpecification*)? + ; + +alterTablespace + : KW_ALTER KW_UNDO? KW_TABLESPACE tablespaceName + (KW_ADD | KW_DROP) KW_DATAFILE STRING_LITERAL + (KW_INITIAL_SIZE '='? fileSizeLiteral)? + KW_WAIT? + (KW_RENAME KW_TO tablespaceNameCreate)? + (KW_AUTOEXTEND_SIZE '='? fileSizeLiteral)? + (KW_SET (KW_ACTIVE | KW_INACTIVE))? + (KW_ENCRYPTION '='? STRING_LITERAL)? // STRING_LITERAL is 'Y' or 'N' + (KW_ENGINE '='? engineName)? + (KW_ENGINE_ATTRIBUTE '='? STRING_LITERAL)? + ; + +alterView + : KW_ALTER + ( + KW_ALGORITHM '=' algType=(KW_UNDEFINED | KW_MERGE | KW_TEMPTABLE) + )? + ownerStatement? + (KW_SQL KW_SECURITY secContext=(KW_DEFINER | KW_INVOKER))? + KW_VIEW viewName ('(' columnNames ')')? KW_AS selectStatement + (KW_WITH checkOpt=(KW_CASCADED | KW_LOCAL)? KW_CHECK KW_OPTION)? + ; + +alterOption + : tableOption (','? tableOption)* #alterByTableOption + | KW_ADD KW_COLUMN? columnName columnDefinition (KW_FIRST | KW_AFTER columnName)? #alterByAddColumn + | KW_ADD KW_COLUMN? '(' columnName columnDefinition ( ',' columnName columnDefinition)* ')' #alterByAddColumns + | KW_ADD (KW_INDEX | KW_KEY) indexName? indexType? indexColumnNames indexOption* #alterByAddIndex + | KW_ADD (KW_FULLTEXT | KW_SPATIAL) (KW_INDEX | KW_KEY)? indexName? indexColumnNames indexOption* #alterByAddSpecialIndex + | KW_ADD (KW_CONSTRAINT symbol=uid?)? KW_PRIMARY KW_KEY indexType? indexColumnNames indexOption* #alterByAddPrimaryKey + | KW_ADD (KW_CONSTRAINT symbol=uid?)? KW_UNIQUE (KW_INDEX | KW_KEY)? indexName? indexType? indexColumnNames indexOption* #alterByAddUniqueKey + | KW_ADD (KW_CONSTRAINT symbol=uid?)? KW_FOREIGN KW_KEY indexName? indexColumnNames referenceDefinition #alterByAddForeignKey + | KW_ADD checkConstraintDefinition? #alterByAddCheckTableConstraint + | KW_DROP (KW_CHECK | KW_CONSTRAINT) symbol=uid #alterByDropConstraintCheck + | KW_ALTER (KW_CHECK | KW_CONSTRAINT) symbol=uid KW_NOT? KW_ENFORCED? #alterByAlterCheckTableConstraint + | KW_ALGORITHM '='? (KW_DEFAULT | KW_INSTANT | KW_INPLACE | KW_COPY) #alterBySetAlgorithm + | KW_ALTER KW_COLUMN? columnName (KW_SET KW_DEFAULT defaultValue | KW_SET (KW_VISIBLE | KW_INVISIBLE) | KW_DROP KW_DEFAULT) #alterByAlterColumnDefault + | KW_ALTER KW_INDEX indexName (KW_VISIBLE | KW_INVISIBLE) #alterByAlterIndexVisibility + | KW_CHANGE KW_COLUMN? oldColumn=columnName newColumn=columnNameCreate columnDefinition (KW_FIRST | KW_AFTER columnName)? #alterByChangeColumn + | KW_DEFAULT? KW_CHARACTER KW_SET '=' charsetName (KW_COLLATE '='? collationName)? #alterByDefaultCharset + | KW_CONVERT KW_TO (KW_CHARSET | KW_CHARACTER KW_SET) charsetName (KW_COLLATE collationName)? #alterByConvertCharset + | (KW_DISABLE | KW_ENABLE) KW_KEYS #alterKeys + | (KW_DISCARD | KW_IMPORT) KW_TABLESPACE #alterTablespaceOption + | KW_DROP KW_COLUMN? columnName #alterByDropColumn + | KW_DROP (KW_INDEX | KW_KEY) indexName #alterByDropIndex + | KW_DROP KW_PRIMARY KW_KEY #alterByDropPrimaryKey + | KW_DROP KW_FOREIGN KW_KEY fk_symbol=uid #alterByDropForeignKey + | KW_FORCE #alterByForce + | KW_LOCK '='? lockType=(KW_DEFAULT | KW_NONE | KW_SHARED | KW_EXCLUSIVE) #alterByLock + | KW_MODIFY KW_COLUMN? columnName columnDefinition (KW_FIRST | KW_AFTER columnName)? #alterByModifyColumn + | KW_ORDER KW_BY columnNames #alterByOrder + | KW_RENAME KW_COLUMN olcdColumn=columnName KW_TO newColumn=columnNameCreate #alterByRenameColumn + | KW_RENAME indexFormat=(KW_INDEX | KW_KEY) indexName KW_TO indexNameCreate #alterByRenameIndex + | KW_RENAME renameFormat=(KW_TO | KW_AS)? tableNameCreate #alterByRename + | (KW_WITHOUT | KW_WITH) KW_VALIDATION #alterByValidate + | alterPartitionSpecification #alterPartition + ; + +alterPartitionSpecification + : KW_ADD KW_PARTITION '(' partitionDefinition (',' partitionDefinition)* ')' #alterByAddPartition + | KW_DROP KW_PARTITION partitionNames #alterByDropPartition + | KW_DISCARD KW_PARTITION (partitionNames | KW_ALL) KW_TABLESPACE #alterByDiscardPartition + | KW_IMPORT KW_PARTITION (partitionNames | KW_ALL) KW_TABLESPACE #alterByImportPartition + | KW_TRUNCATE KW_PARTITION (partitionNames | KW_ALL) #alterByTruncatePartition + | KW_COALESCE KW_PARTITION decimalLiteral #alterByCoalescePartition + | KW_REORGANIZE KW_PARTITION partitionNames KW_INTO '(' partitionDefinition (',' partitionDefinition)* ')' #alterByReorganizePartition + | KW_EXCHANGE KW_PARTITION partitionName KW_WITH KW_TABLE tableName (validationFormat=(KW_WITH | KW_WITHOUT) KW_VALIDATION)? #alterByExchangePartition + | KW_ANALYZE KW_PARTITION (partitionNames | KW_ALL) #alterByAnalyzePartition + | KW_CHECK KW_PARTITION (partitionNames | KW_ALL) #alterByCheckPartition + | KW_OPTIMIZE KW_PARTITION (partitionNames | KW_ALL) #alterByOptimizePartition + | KW_REBUILD KW_PARTITION (partitionNames | KW_ALL) #alterByRebuildPartition + | KW_REPAIR KW_PARTITION (partitionNames | KW_ALL) #alterByRepairPartition + | KW_REMOVE KW_PARTITIONING #alterByRemovePartitioning + | KW_UPGRADE KW_PARTITIONING #alterByUpgradePartitioning + ; + +dropDatabase + : KW_DROP dbFormat=(KW_DATABASE | KW_SCHEMA) ifExists? databaseName + ; + +dropEvent + : KW_DROP KW_EVENT ifExists? event_name=fullId + ; + +dropIndex + : KW_DROP KW_INDEX intimeAction=(KW_ONLINE | KW_OFFLINE)? indexName KW_ON tableName + ( + KW_ALGORITHM '='? algType=(KW_DEFAULT | KW_INPLACE | KW_COPY) + | KW_LOCK '='? + lockType=(KW_DEFAULT | KW_NONE | KW_SHARED | KW_EXCLUSIVE) + )* + ; + +dropLogfileGroup + : KW_DROP KW_LOGFILE KW_GROUP logfileGroupName=uid KW_ENGINE '='? engineName + ; + +dropProcedure + : KW_DROP KW_PROCEDURE ifExists? sp_name=fullId + ; + +dropFunction + : KW_DROP KW_FUNCTION ifExists? functionName + ; + +dropServer + : KW_DROP KW_SERVER ifExists? serverName=uid + ; + +dropSpatial + : KW_DROP KW_SPATIAL KW_REFERENCE KW_SYSTEM ifExists? DECIMAL_LITERAL + ; + +dropTable + : KW_DROP KW_TEMPORARY? KW_TABLE ifExists? + tableNames dropType=(KW_RESTRICT | KW_CASCADE)? + ; + +dropTablespace + : KW_DROP KW_UNDO? KW_TABLESPACE tablespaceName (KW_ENGINE '='? engineName)? + ; + +dropTrigger + : KW_DROP KW_TRIGGER ifExists? trigger_name=fullId + ; + +dropView + : KW_DROP KW_VIEW ifExists? + viewName (',' viewName)* dropType=(KW_RESTRICT | KW_CASCADE)? + ; + +dropRole + : KW_DROP KW_ROLE ifExists? userOrRoleNames + ; + +setRole + : KW_SET KW_DEFAULT KW_ROLE (KW_NONE | KW_ALL | userOrRoleNames) + KW_TO (userOrRoleName) (',' (userOrRoleName))* + | KW_SET KW_ROLE roleOption + ; + +renameTable + : KW_RENAME KW_TABLE renameTableClause (',' renameTableClause)* + ; + +renameTableClause + : tableName KW_TO tableNameCreate + ; + +truncateTable + : KW_TRUNCATE KW_TABLE? tableName + ; + +callStatement + : KW_CALL sp_name=fullId ('(' (constants | expressions)? ')')? + ; + +deleteStatement + : singleDeleteStatement | multipleDeleteStatement + ; + +doStatement + : KW_DO expressions + ; + +handlerStatement + : handlerOpenStatement + | handlerReadIndexStatement + | handlerReadStatement + | handlerCloseStatement + ; + +insertStatement + : KW_INSERT priority=(KW_LOW_PRIORITY | KW_DELAYED | KW_HIGH_PRIORITY)? + KW_IGNORE? KW_INTO? tableName + (KW_PARTITION '(' partitionNames? ')' )? + (fullColumnNames? (valuesOrValueList | selectOrTableOrValues)? asRowAlias? | setAssignmentList) + asRowAlias? + ( + KW_ON KW_DUPLICATE KW_KEY KW_UPDATE + duplicatedFirst=updatedElement + (',' duplicatedElements+=updatedElement)* + )? + ; + +asRowAlias + : KW_AS rowAlias=uid(fullColumnNames)? + ; + +selectOrTableOrValues + : selectStatement + | KW_TABLE tableName + | rowValuesList + ; + +interSectStatement + : interSectQuery (KW_INTERSECT (KW_ALL | KW_DISTINCT)? interSectQuery)+ + ; + +interSectQuery + : '('? querySpecification ')'? + ; + +loadDataStatement + : KW_LOAD KW_DATA + priority=(KW_LOW_PRIORITY | KW_CONCURRENT)? + KW_LOCAL? KW_INFILE filename=STRING_LITERAL + violation=(KW_REPLACE | KW_IGNORE)? + KW_INTO KW_TABLE tableName + (KW_PARTITION '(' partitionNames ')' )? + (KW_CHARACTER KW_SET charset=charsetName)? + ( + fieldsFormat=(KW_FIELDS | KW_COLUMNS) + selectFieldsInto+ + )? + ( + KW_LINES + selectLinesInto+ + )? + ( + KW_IGNORE decimalLiteral linesFormat=(KW_LINES | KW_ROWS) + )? + ( '(' assignmentField (',' assignmentField)* ')' )? + (KW_SET updatedElement (',' updatedElement)*)? + ; + +loadXmlStatement + : KW_LOAD KW_XML + priority=(KW_LOW_PRIORITY | KW_CONCURRENT)? + KW_LOCAL? KW_INFILE filename=STRING_LITERAL + violation=(KW_REPLACE | KW_IGNORE)? + KW_INTO KW_TABLE tableName + (KW_CHARACTER KW_SET charset=charsetName)? + (KW_ROWS KW_IDENTIFIED KW_BY '<'? tag=STRING_LITERAL '>'?)? + ( KW_IGNORE decimalLiteral linesFormat=(KW_LINES | KW_ROWS) )? + ( '(' assignmentField (',' assignmentField)* ')' )? + (KW_SET updatedElement (',' updatedElement)*)? + ; + +parenthesizedQuery + : '(' parenthesizedQueryExpression orderByClause? limitClause? ')' orderByClause? limitClause? intoClause? + ; + +replaceStatement + : KW_REPLACE priority=(KW_LOW_PRIORITY | KW_DELAYED)? + KW_INTO? tableName + (KW_PARTITION '(' partitionNames ')' )? + ( + ('(' columnNames ')')? replaceStatementValuesOrSelectOrTable + | setAssignmentList + ) + ; + +// into clause within a given statement can appear only once +selectStatement + : querySpecification lockClause? #simpleSelect + | querySpecificationNointo lockClause? intoClause? #simpleSelect + | queryExpression lockClause? #parenthesisSelect + | querySpecificationNointo unionStatement+ + ( + KW_UNION unionType=(KW_ALL | KW_DISTINCT)? + (querySpecification | queryExpression) + )? + orderByClause? limitClause? lockClause? #unionSelect + | queryExpressionNointo unionParenthesis+ + ( + KW_UNION unionType=(KW_ALL | KW_DISTINCT)? + queryExpression + )? + orderByClause? limitClause? lockClause? #unionParenthesisSelect + | querySpecificationNointo (',' lateralStatement)+ #withLateralStatement + ; + +// https://dev.mysql.com/doc/refman/8.0/en/set-operations.html +setOperations + : withClause? queryExpressionBody orderByClause? limitClause? intoClause? + ; + +queryExpressionBody + : queryItem + | queryExpressionBody KW_UNION (KW_ALL | KW_DISTINCT)? queryItem + | queryExpressionBody KW_EXCEPT (KW_ALL | KW_DISTINCT)? queryItem + ; +queryItem + : queryPrimary + | queryItem KW_INTERSECT (KW_ALL | KW_DISTINCT)? queryPrimary + ; +queryPrimary + : queryBlock + | '(' queryExpressionBody orderByClause? limitClause? intoClause? ')' + ; + +updateStatement + : singleUpdateStatement | multipleUpdateStatement + ; + +// https://dev.mysql.com/doc/refman/8.0/en/values.html +valuesStatement + : rowValuesList (KW_ORDER KW_BY indexColumnName)? (KW_LIMIT limitClauseAtom)? + ; + + +// Detailed DML Statements + +parenthesizedQueryExpression + : queryBlock ((KW_UNION | KW_INTERSECT | KW_EXCEPT) queryBlock)* orderByClause? limitClause? intoClause? + ; + +queryBlock + : selectStatement + | tableStatement + | valuesStatement + ; + +replaceStatementValuesOrSelectOrTable + : selectStatement + | KW_TABLE tableName + | valuesOrValueList + | rowValuesList + ; + +rowValuesList + : KW_VALUES KW_ROW expressionsWithDefaults (',' KW_ROW expressionsWithDefaults)* + ; + +setAssignmentList + : KW_SET setFirst=updatedElement (',' setElements+=updatedElement)* + ; + +updatedElement + : columnName '=' expressionOrDefault + ; + +assignmentField + : var_name=uid | LOCAL_ID + ; + +lockClause + : KW_FOR (KW_UPDATE | KW_SHARE) (KW_OF tableName (',' tableName)*)? ((KW_NOWAIT | KW_SKIP) KW_LOCKED)? + | KW_LOCK KW_IN KW_SHARE KW_MODE + ; + +singleDeleteStatement + : KW_DELETE priority=KW_LOW_PRIORITY? KW_QUICK? KW_IGNORE? + KW_FROM tableName (KW_AS? table_alias=uid)? + (KW_PARTITION '(' partitionNames ')' )? + (KW_WHERE expression)? + orderByClause? (KW_LIMIT limitClauseAtom)? + ; + +multipleDeleteStatement + : KW_DELETE priority=KW_LOW_PRIORITY? KW_QUICK? KW_IGNORE? + ( + tableName ('.' '*')? ( ',' tableName ('.' '*')? )* + KW_FROM tableSources + | KW_FROM + tableName ('.' '*')? ( ',' tableName ('.' '*')? )* + KW_USING tableSources + ) + (KW_WHERE expression)? + ; + +handlerOpenStatement + : KW_HANDLER tableName KW_OPEN (KW_AS? table_alias=uid)? + ; + +handlerReadIndexStatement + : KW_HANDLER tableName KW_READ indexName + ( + comparisonBase '(' constants ')' + | moveOrder=(KW_FIRST | KW_NEXT | KW_PREV | KW_LAST) + ) + (KW_WHERE expression)? (KW_LIMIT limitClauseAtom)? + ; + +handlerReadStatement + : KW_HANDLER tableName KW_READ moveOrder=(KW_FIRST | KW_NEXT) + (KW_WHERE expression)? (KW_LIMIT limitClauseAtom)? + ; + +handlerCloseStatement + : KW_HANDLER tableName KW_CLOSE + ; + +importTableStatement + : KW_IMPORT KW_TABLE KW_FROM stringLiteral (',' stringLiteral)* + ; + +singleUpdateStatement + : KW_UPDATE priority=KW_LOW_PRIORITY? KW_IGNORE? tableName (KW_AS? table_alias=uid)? + KW_SET updatedElement (',' updatedElement)* + (KW_WHERE expression)? orderByClause? limitClause? + ; + +multipleUpdateStatement + : KW_UPDATE priority=KW_LOW_PRIORITY? KW_IGNORE? tableSources + KW_SET updatedElement (',' updatedElement)* + (KW_WHERE expression)? + ; + +// details + +orderByClause + : KW_ORDER KW_BY orderByExpression (',' orderByExpression)* + ; + +orderByExpression + : expression order=(KW_ASC | KW_DESC)? + ; + +tableSources + : tableSource (',' tableSource)* + ; + +tableSource + : tableSourceItem joinPart* #tableSourceBase + | '(' tableSourceItem joinPart* ')' #tableSourceNested + | jsonTable #tableJson + ; + +tableSourceItem + : tableName + (KW_PARTITION '(' partitionNames ')' )? (KW_AS? alias=uid)? + (indexHint (',' indexHint)* )? #atomTableItem + | KW_LATERAL? ( selectStatement | '(' parenthesisSubquery=selectStatement ')') KW_AS? alias=uid fullColumnNames? #subqueryTableItem + | '(' tableSources ')' #tableSourcesItem + ; + +// (col_list) | (col_alias [, col_alias] ...) +fullColumnNames + : '(' columnNames ')' + ; + +indexHint + : indexHintAction=(KW_USE | KW_IGNORE | KW_FORCE) + keyFormat=(KW_INDEX | KW_KEY) ( KW_FOR indexHintType)? + '(' indexNames? ')' + ; + +indexHintType + : KW_JOIN | KW_ORDER KW_BY | KW_GROUP KW_BY + ; + +joinPart + : (KW_INNER | KW_CROSS)? KW_JOIN KW_LATERAL? tableSourceItem joinSpec* #innerJoin + | KW_STRAIGHT_JOIN tableSourceItem joinSpec* #straightJoin + | (KW_LEFT | KW_RIGHT) KW_OUTER? KW_JOIN KW_LATERAL? tableSourceItem joinSpec* #outerJoin + | KW_NATURAL ((KW_INNER | (KW_LEFT | KW_RIGHT)) KW_OUTER?)? KW_JOIN tableSourceItem #naturalJoin + ; + + + +joinSpec + : (KW_ON expression) + | KW_USING '(' columnNames ')' + ; + +// Select Statement's Details + +queryExpression + : '(' querySpecification ')' + | '(' queryExpression ')' + ; + +queryExpressionNointo + : '(' querySpecificationNointo ')' + | '(' queryExpressionNointo ')' + ; + +// into clause within a given statement can appear only once +querySpecification + : KW_SELECT selectSpec* selectElements intoClause? + fromClause groupByClause? havingClause? windowClause? orderByClause? limitClause? + | KW_SELECT selectSpec* selectElements + fromClause groupByClause? havingClause? windowClause? orderByClause? limitClause? intoClause? + ; + +querySpecificationNointo + : KW_SELECT selectSpec* selectElements + fromClause groupByClause? havingClause? windowClause? orderByClause? limitClause? + ; + +unionParenthesis + : KW_UNION unionType=(KW_ALL | KW_DISTINCT)? queryExpressionNointo + ; + +unionStatement + : KW_UNION unionType=(KW_ALL | KW_DISTINCT)? + (querySpecificationNointo | queryExpressionNointo) + ; + +lateralStatement + : KW_LATERAL (querySpecificationNointo | + queryExpressionNointo | + ('(' (querySpecificationNointo | queryExpressionNointo) ')' (KW_AS? alias=uid)?) + ) + ; + +// JSON + +// https://dev.mysql.com/doc/refman/8.0/en/json-table-functions.html +jsonTable + : KW_JSON_TABLE '(' + STRING_LITERAL ',' + STRING_LITERAL + KW_COLUMNS '(' jsonColumnList ')' + ')' (KW_AS? alias=uid)? + ; + +jsonColumnList + : jsonColumn (',' jsonColumn)* + ; + +jsonColumn + : columnName ( KW_FOR KW_ORDINALITY + | dataType ( KW_PATH STRING_LITERAL jsonOnEmpty? jsonOnError? + | KW_EXISTS KW_PATH STRING_LITERAL ) ) + | KW_NESTED KW_PATH? STRING_LITERAL KW_COLUMNS '(' jsonColumnList ')' + ; + +jsonOnEmpty + : (KW_NULL_LITERAL | KW_ERROR | KW_DEFAULT defaultValue) KW_ON KW_EMPTY + ; + +jsonOnError + : (KW_NULL_LITERAL | KW_ERROR | KW_DEFAULT defaultValue) KW_ON KW_ERROR + ; + +// details + +selectSpec + : (KW_ALL | KW_DISTINCT | KW_DISTINCTROW) + | KW_HIGH_PRIORITY | KW_STRAIGHT_JOIN | KW_SQL_SMALL_RESULT + | KW_SQL_BIG_RESULT | KW_SQL_BUFFER_RESULT + | (KW_SQL_CACHE | KW_SQL_NO_CACHE) + | KW_SQL_CALC_FOUND_ROWS + ; + +selectElements + : (star='*' | selectElement ) (',' selectElement)* + ; + +selectElement + : select_element=fullId '.' '*' #selectStarElement + | columnName (KW_AS? alias=uid)? #selectColumnElement + | functionCall (KW_AS? alias=uid)? #selectFunctionElement + | (LOCAL_ID VAR_ASSIGN)? expression (KW_AS? alias=uid)? #selectExpressionElement + ; + +intoClause + : KW_INTO assignmentField (',' assignmentField )* #selectIntoVariables + | KW_INTO KW_DUMPFILE STRING_LITERAL #selectIntoDumpFile + | ( + KW_INTO KW_OUTFILE filename=STRING_LITERAL + (KW_CHARACTER KW_SET charset=charsetName)? + ( + fieldsFormat=(KW_FIELDS | KW_COLUMNS) + selectFieldsInto+ + )? + ( + KW_LINES selectLinesInto+ + )? + ) #selectIntoTextFile + ; + +selectFieldsInto + : KW_TERMINATED KW_BY terminationField=STRING_LITERAL + | KW_OPTIONALLY? KW_ENCLOSED KW_BY enclosion=STRING_LITERAL + | KW_ESCAPED KW_BY escaping=STRING_LITERAL + ; + +selectLinesInto + : KW_STARTING KW_BY starting=STRING_LITERAL + | KW_TERMINATED KW_BY terminationLine=STRING_LITERAL + ; + +fromClause + : (KW_FROM tableSources)? + (KW_WHERE whereExpr=expression)? + ; + +groupByClause + : KW_GROUP KW_BY + groupByItem (',' groupByItem)* + (KW_WITH KW_ROLLUP)? + ; + +havingClause + : KW_HAVING havingExpr=expression + ; + +windowClause + : KW_WINDOW windowName KW_AS '(' windowSpec ')' (',' windowName KW_AS '(' windowSpec ')')* + ; + +groupByItem + : expression order=(KW_ASC | KW_DESC)? + ; + +limitClause + : KW_LIMIT + ( + (offset=limitClauseAtom ',')? limit=limitClauseAtom + | limit=limitClauseAtom KW_OFFSET offset=limitClauseAtom + ) + ; + +limitClauseAtom + : decimalLiteral | mysqlVariable | simpleId + ; + + +// Transaction's Statements + +startTransaction + : KW_START KW_TRANSACTION (transactionMode (',' transactionMode)* )? + ; + +beginWork + : KW_BEGIN KW_WORK? + ; + +commitWork + : KW_COMMIT KW_WORK? + (KW_AND nochain=KW_NO? KW_CHAIN)? + (norelease=KW_NO? KW_RELEASE)? + ; + +rollbackWork + : KW_ROLLBACK KW_WORK? + (KW_AND nochain=KW_NO? KW_CHAIN)? + (norelease=KW_NO? KW_RELEASE)? + ; + +savepointStatement + : KW_SAVEPOINT identifier=uid + ; + +rollbackStatement + : KW_ROLLBACK KW_WORK? KW_TO KW_SAVEPOINT? identifier=uid + ; + +releaseStatement + : KW_RELEASE KW_SAVEPOINT identifier=uid + ; + +lockTables + : KW_LOCK (KW_TABLE | KW_TABLES) lockTableElement (',' lockTableElement)* + ; + +unlockTables + : KW_UNLOCK KW_TABLES + ; + + +// details + +setAutocommitStatement + : KW_SET KW_AUTOCOMMIT '=' autocommitValue=('0' | '1') + ; + +setTransactionStatement + : KW_SET transactionContext=(KW_GLOBAL | KW_SESSION)? KW_TRANSACTION + transactionOption (',' transactionOption)* + ; + +transactionMode + : KW_WITH KW_CONSISTENT KW_SNAPSHOT + | KW_READ KW_WRITE + | KW_READ KW_ONLY + ; + +lockTableElement + : tableName (KW_AS? alias=uid)? lockAction + ; + +lockAction + : KW_READ KW_LOCAL? | KW_LOW_PRIORITY? KW_WRITE + ; + +transactionOption + : KW_ISOLATION KW_LEVEL transactionLevel + | KW_READ KW_WRITE + | KW_READ KW_ONLY + ; + +transactionLevel + : KW_REPEATABLE KW_READ + | KW_READ KW_COMMITTED + | KW_READ KW_UNCOMMITTED + | KW_SERIALIZABLE + ; + + +// Replication's Statements + +// Base Replication + +changeMaster + : KW_CHANGE KW_MASTER KW_TO masterOption (',' masterOption)* channelOption? + ; + +changeReplicationFilter + : KW_CHANGE KW_REPLICATION KW_FILTER replicationFilter (',' replicationFilter)* channelOption? + ; + +changeReplicationSource + : KW_CHANGE KW_REPLICATION KW_SOURCE KW_TO replicationSourceOption (',' replicationSourceOption)* channelOption? + ; + +purgeBinaryLogs + : KW_PURGE purgeFormat=(KW_BINARY | KW_MASTER) KW_LOGS + ( + KW_TO fileName=STRING_LITERAL + | KW_BEFORE timeValue=STRING_LITERAL + ) + ; + +startSlaveOrReplica + : KW_START (KW_SLAVE | KW_REPLICA) (threadType (',' threadType)*)? + (KW_UNTIL untilOption)? + connectionOptions* channelOption? + ; + +stopSlaveOrReplica + : KW_STOP (KW_SLAVE | KW_REPLICA) (threadType (',' threadType)*)? channelOption? + ; + +startGroupReplication + : KW_START KW_GROUP_REPLICATION (KW_USER '=' STRING_LITERAL)? (',' KW_PASSWORD '=' STRING_LITERAL)? (',' KW_DEFAULT_AUTH '=' STRING_LITERAL)? + ; + +stopGroupReplication + : KW_STOP KW_GROUP_REPLICATION + ; + +masterOption + : stringMasterOption '=' STRING_LITERAL #masterStringOption + | decimalMasterOption '=' decimalLiteral #masterDecimalOption + | boolMasterOption '=' boolVal=('0' | '1') #masterBoolOption + | v8NewMasterOption #v8AddMasterOption + | KW_IGNORE_SERVER_IDS '=' '(' (server_id=uid (',' server_id=uid)*)? ')' #masterUidListOption + ; +stringMasterOption + : KW_MASTER_BIND | KW_MASTER_HOST | KW_MASTER_USER | KW_MASTER_PASSWORD + | KW_MASTER_LOG_FILE | KW_RELAY_LOG_FILE | KW_MASTER_COMPRESSION_ALGORITHMS + | KW_MASTER_SSL_CA | KW_MASTER_SSL_CAPATH | KW_MASTER_SSL_CERT | KW_MASTER_SSL_CRL + | KW_MASTER_SSL_CRLPATH | KW_MASTER_SSL_KEY | KW_MASTER_SSL_CIPHER + | KW_MASTER_TLS_VERSION | KW_MASTER_TLS_CIPHERSUITES | KW_MASTER_PUBLIC_KEY_PATH + | KW_NETWORK_NAMESPACE + ; +decimalMasterOption + : KW_MASTER_PORT | KW_MASTER_LOG_POS | KW_RELAY_LOG_POS | KW_MASTER_HEARTBEAT_PERIOD + | KW_MASTER_CONNECT_RETRY | KW_MASTER_RETRY_COUNT | KW_MASTER_DELAY | KW_MASTER_ZSTD_COMPRESSION_LEVEL + ; +boolMasterOption + : KW_REQUIRE_ROW_FORMAT + | KW_MASTER_AUTO_POSITION + | KW_SOURCE_CONNECTION_AUTO_FAILOVER + | KW_MASTER_SSL + | KW_MASTER_SSL_VERIFY_SERVER_CERT + | KW_GET_MASTER_PUBLIC_KEY + | KW_GTID_ONLY + ; +// https://dev.mysql.com/doc/refman/8.0/en/change-master-to.html +v8NewMasterOption + : KW_PRIVILEGE_CHECKS_USER '=' (STRING_LITERAL | KW_NULL_LITERAL) + | KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK '=' (KW_STREAM | KW_ON | KW_OFF) + | KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS '=' (KW_OFF | KW_LOCAL | gtuidSet) + ; + +replicationSourceOption + : stringSourceOption '=' STRING_LITERAL #sourceStringOption + | decimalSourceOption '=' decimalLiteral #sourceDecimalOption + | boolSourceOption '=' boolVal=('0' | '1') #sourceBoolOption + | otherSourceOption #sourceOtherOption + | KW_IGNORE_SERVER_IDS '=' '(' (server_id=uid (',' server_id=uid)*)? ')' #sourceUidListOption + ; +stringSourceOption + : KW_SOURCE_BIND | KW_SOURCE_HOST | KW_SOURCE_USER | KW_SOURCE_PASSWORD + | KW_SOURCE_LOG_FILE | KW_RELAY_LOG_FILE | KW_SOURCE_COMPRESSION_ALGORITHMS + | KW_SOURCE_SSL_CA | KW_SOURCE_SSL_CAPATH | KW_SOURCE_SSL_CERT | KW_SOURCE_SSL_CRL + | KW_SOURCE_SSL_CRLPATH | KW_SOURCE_SSL_KEY | KW_SOURCE_SSL_CIPHER + | KW_SOURCE_TLS_VERSION | KW_SOURCE_TLS_CIPHERSUITES | KW_SOURCE_PUBLIC_KEY_PATH + | KW_NETWORK_NAMESPACE + ; +decimalSourceOption + : KW_SOURCE_PORT | KW_SOURCE_LOG_POS | KW_RELAY_LOG_POS | KW_SOURCE_HEARTBEAT_PERIOD + | KW_SOURCE_CONNECT_RETRY | KW_SOURCE_RETRY_COUNT | KW_SOURCE_DELAY | KW_SOURCE_ZSTD_COMPRESSION_LEVEL + ; +boolSourceOption + : KW_REQUIRE_ROW_FORMAT + | KW_SOURCE_AUTO_POSITION + | KW_SOURCE_CONNECTION_AUTO_FAILOVER + | KW_SOURCE_SSL + | KW_SOURCE_SSL_VERIFY_SERVER_CERT + | KW_GET_SOURCE_PUBLIC_KEY + | KW_GTID_ONLY + ; +otherSourceOption + : KW_PRIVILEGE_CHECKS_USER '=' (STRING_LITERAL | KW_NULL_LITERAL) + | KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK '=' (KW_STREAM | KW_ON | KW_OFF | KW_GENERATE) + | KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS '=' (KW_OFF | KW_LOCAL | gtuidSet) + ; + +channelOption + : KW_FOR KW_CHANNEL STRING_LITERAL + ; + +replicationFilter + : KW_REPLICATE_DO_DB '=' '(' databaseName (',' databaseName)* ')' #doDbReplication + | KW_REPLICATE_IGNORE_DB '=' '(' databaseName (',' databaseName)* ')' #ignoreDbReplication + | KW_REPLICATE_DO_TABLE '=' '(' tableNames ')' #doTableReplication + | KW_REPLICATE_IGNORE_TABLE '=' '(' tableNames ')' #ignoreTableReplication + | KW_REPLICATE_WILD_DO_TABLE '=' '(' simpleStrings ')' #wildDoTableReplication + | KW_REPLICATE_WILD_IGNORE_TABLE + '=' '(' simpleStrings ')' #wildIgnoreTableReplication + | KW_REPLICATE_REWRITE_DB '=' + '(' tablePair (',' tablePair)* ')' #rewriteDbReplication + ; + +tablePair + : '(' firstTable=tableName ',' secondTable=tableName ')' + ; + +threadType + : KW_IO_THREAD | KW_SQL_THREAD + ; + +untilOption + : gtids=(KW_SQL_BEFORE_GTIDS | KW_SQL_AFTER_GTIDS) '=' gtuidSet #gtidsUntilOption + | KW_MASTER_LOG_FILE '=' STRING_LITERAL ',' KW_MASTER_LOG_POS '=' decimalLiteral #masterLogUntilOption + | KW_SOURCE_LOG_FILE '=' STRING_LITERAL ',' KW_SOURCE_LOG_POS '=' decimalLiteral #sourceLogUntilOption + | KW_RELAY_LOG_FILE '=' STRING_LITERAL ',' KW_RELAY_LOG_POS '=' decimalLiteral #relayLogUntilOption + | KW_SQL_AFTER_MTS_GAPS #sqlGapsUntilOption + ; + +connectionOptions + : KW_USER '=' conOptUser=STRING_LITERAL #userConnectionOption + | KW_PASSWORD '=' conOptPassword=STRING_LITERAL #passwordConnectionOption + | KW_DEFAULT_AUTH '=' conOptDefAuth=STRING_LITERAL #defaultAuthConnectionOption + | KW_PLUGIN_DIR '=' conOptPluginDir=STRING_LITERAL #pluginDirConnectionOption + ; + +gtuidSet + : uuidSet (',' uuidSet)* + | STRING_LITERAL + ; + + +// XA Transactions + +xaStartTransaction + : KW_XA xaStart=(KW_START | KW_BEGIN) xid xaAction=(KW_JOIN | KW_RESUME)? + ; + +xaEndTransaction + : KW_XA KW_END xid (KW_SUSPEND (KW_FOR KW_MIGRATE)?)? + ; + +xaPrepareStatement + : KW_XA KW_PREPARE xid + ; + +xaCommitWork + : KW_XA KW_COMMIT xid (KW_ONE KW_PHASE)? + ; + +xaRollbackWork + : KW_XA KW_ROLLBACK xid + ; + +xaRecoverWork + : KW_XA KW_RECOVER (KW_CONVERT xid)? + ; + + +prepareStatement + : KW_PREPARE stmt_name=uid KW_FROM + (query=STRING_LITERAL | variable=LOCAL_ID) + ; + +executeStatement + : KW_EXECUTE stmt_name=uid (KW_USING userVariables)? + ; + +deallocatePrepare + : dropFormat=(KW_DEALLOCATE | KW_DROP) KW_PREPARE stmt_name=uid + ; + +routineBody + : blockStatement | sqlStatement + ; + +blockStatement + : (begin=uid ':')? KW_BEGIN + (declareVariable SEMI)* + (declareCondition SEMI)* + (declareCursor SEMI)* + (declareHandler SEMI)* + procedureSqlStatement* + KW_END end=uid? + ; + +caseStatement + : KW_CASE (case_value=uid | expression)? caseAlternative+ + (KW_ELSE procedureSqlStatement+)? + KW_END KW_CASE + ; + +ifStatement + : KW_IF expression + KW_THEN thenStatements+=procedureSqlStatement+ + elifAlternative* + (KW_ELSE elseStatements+=procedureSqlStatement+ )? + KW_END KW_IF + ; + +iterateStatement + : KW_ITERATE label=uid + ; + +leaveStatement + : KW_LEAVE label=uid + ; + +loopStatement + : (begin_label=uid ':')? + KW_LOOP procedureSqlStatement+ + KW_END KW_LOOP end_label=uid? + ; + +repeatStatement + : (begin_label=uid ':')? + KW_REPEAT procedureSqlStatement+ + KW_UNTIL expression + KW_END KW_REPEAT end_label=uid? + ; + +returnStatement + : KW_RETURN expression + ; + +whileStatement + : (begin_label=uid ':')? + KW_WHILE expression + KW_DO procedureSqlStatement+ + KW_END KW_WHILE end_label=uid? + ; + +cursorStatement + : KW_CLOSE cursor_name=uid #CloseCursor + | KW_FETCH (KW_NEXT? KW_FROM)? cursor_name=uid KW_INTO var_names=uidList #FetchCursor + | KW_OPEN cursor_name=uid #OpenCursor + ; + +declareVariable + : KW_DECLARE var_names=uidList dataType (KW_DEFAULT expression)? + ; + +declareCondition + : KW_DECLARE condition_name=uid KW_CONDITION KW_FOR + ( decimalLiteral | KW_SQLSTATE KW_VALUE? STRING_LITERAL) + ; + +declareCursor + : KW_DECLARE condition_name=uid KW_CURSOR KW_FOR selectStatement + ; + +declareHandler + : KW_DECLARE handlerAction=(KW_CONTINUE | KW_EXIT | KW_UNDO) + KW_HANDLER KW_FOR + handlerConditionValue (',' handlerConditionValue)* + routineBody + ; + +handlerConditionValue + : decimalLiteral #handlerConditionCode + | KW_SQLSTATE KW_VALUE? STRING_LITERAL #handlerConditionState + | condition_name=uid #handlerConditionName + | KW_SQLWARNING #handlerConditionWarning + | KW_NOT KW_FOUND #handlerConditionNotfound + | KW_SQLEXCEPTION #handlerConditionException + ; + +procedureSqlStatement + : (compoundStatement | sqlStatement) SEMI + ; + +caseAlternative + : KW_WHEN (constant | expression) + KW_THEN procedureSqlStatement+ + ; + +elifAlternative + : KW_ELSEIF expression + KW_THEN procedureSqlStatement+ + ; + +// Administration Statements + +// Account management statements + +alterUser + : KW_ALTER KW_USER ifExists? ( + (userSpecification (',' userSpecification)*) + | ( + alterUserAuthOption (',' alterUserAuthOption)* + (KW_REQUIRE (KW_NONE | tlsOption (KW_AND? tlsOption)* ))? + (KW_WITH userResourceOption+)? + (userPasswordOption | userLockOption)* + ((KW_COMMENT | KW_ATTRIBUTE) STRING_LITERAL)? + ) | ((userOrRoleName) KW_DEFAULT KW_ROLE roleOption) + ) + ; + +createUser + : KW_CREATE KW_USER ifNotExists? + userName createUserAuthOption? (',' userName createUserAuthOption?)* + (KW_DEFAULT KW_ROLE roleOption)? + (KW_REQUIRE (KW_NONE | tlsOption (KW_AND? tlsOption)*))? + (KW_WITH userResourceOption+)? + (userPasswordOption | userLockOption)* + ((KW_COMMENT | KW_ATTRIBUTE) STRING_LITERAL)? + ; + +dropUser + : KW_DROP KW_USER ifExists? userName (',' userName)* + ; + +grantStatement + : KW_GRANT privelegeClause (',' privelegeClause)* + KW_ON privilegeObjectType? privilegeLevel + KW_TO ((userAuthOption (',' userAuthOption)*) | userOrRoleNames) + (KW_REQUIRE (tlsNone=KW_NONE | tlsOption (KW_AND? tlsOption)*))? + (KW_WITH (KW_GRANT KW_OPTION | userResourceOption)* )? + (KW_AS userName (KW_WITH KW_ROLE roleOption)?)? + | KW_GRANT (KW_PROXY KW_ON)? (userOrRoleName) (',' (userOrRoleName))* + KW_TO (userOrRoleName) (',' (userOrRoleName))* + (KW_WITH KW_ADMIN KW_OPTION)? + ; + +roleOption + : KW_DEFAULT + | KW_NONE + | KW_ALL (KW_EXCEPT userOrRoleNames)? + | userOrRoleNames + ; + +grantProxy + : KW_GRANT KW_PROXY KW_ON fromFirst=userName + KW_TO toFirst=userName (',' toOther+=userName)* + (KW_WITH KW_GRANT KW_OPTION)? + ; + +alterResourceGroup + : KW_ALTER KW_RESOURCE KW_GROUP groupName + (KW_VCPU '='? resourceGroupVcpuSpec)? + (KW_THREAD_PRIORITY '='? decimalLiteral)? + ((KW_ENABLE | KW_DISABLE) KW_FORCE?)? + ; + +createResourceGroup + : KW_CREATE KW_RESOURCE KW_GROUP groupNameCreate + KW_TYPE '=' (KW_SYSTEM | KW_USER) + (KW_VCPU '='? resourceGroupVcpuSpec)? + (KW_THREAD_PRIORITY '='? decimalLiteral)? + (KW_ENABLE | KW_DISABLE)? + ; + +dropResourceGroup + : KW_DROP KW_RESOURCE KW_GROUP groupName KW_FORCE? + ; + +setResourceGroup + : KW_SET KW_RESOURCE KW_GROUP groupName (KW_FOR decimalLiteral (',' decimalLiteral)*)? + ; + +resourceGroupVcpuSpec + : (decimalLiteral | decimalLiteral MINUS decimalLiteral) (',' resourceGroupVcpuSpec)* + ; + +renameUser + : KW_RENAME KW_USER + renameUserClause (',' renameUserClause)* + ; + +revokeStatement + : KW_REVOKE ifExists? privelegeClause (',' privelegeClause)* + KW_ON privilegeObjectType? privilegeLevel + KW_FROM userOrRoleNames + ignoreUnknownUser? #detailRevoke + | KW_REVOKE ifExists? KW_ALL KW_PRIVILEGES? ',' KW_GRANT KW_OPTION + KW_FROM userOrRoleNames ignoreUnknownUser? #shortRevoke + | KW_REVOKE ifExists? (KW_PROXY KW_ON)? userOrRoleNames + KW_FROM userOrRoleNames ignoreUnknownUser? #proxyAndRoleRevoke + ; + +ignoreUnknownUser + : KW_IGNORE KW_UNKNOWN KW_USER + ; + +privilegeObjectType + : KW_TABLE | KW_FUNCTION | KW_PROCEDURE + ; + +setPasswordStatement + : KW_SET KW_PASSWORD (KW_FOR userName)? '=' ( passwordFunctionClause | STRING_LITERAL) #v57 + | KW_SET KW_PASSWORD (KW_FOR userName)? (KW_TO KW_RANDOM | '=' STRING_LITERAL) (KW_REPLACE STRING_LITERAL)? (KW_RETAIN KW_CURRENT KW_PASSWORD)? #v80 + ; + +userSpecification + : userName userPasswordOption + ; + +alterUserAuthOption + : userName KW_IDENTIFIED KW_BY STRING_LITERAL authOptionClause + | userName KW_IDENTIFIED KW_BY KW_RANDOM KW_PASSWORD authOptionClause + | userName KW_IDENTIFIED KW_WITH authenticationRule + | userName KW_DISCARD KW_OLD KW_PASSWORD + | userName ((KW_ADD | KW_MODIFY | KW_DROP) factor factorAuthOption?)+ + | userName registrationOption? + | userName + ; + +// createUser auth_option, 2fa_auth_option, 3fa_auth_option +createUserAuthOption + : KW_IDENTIFIED KW_BY (STRING_LITERAL | (KW_RANDOM KW_PASSWORD) | (KW_PASSWORD STRING_LITERAL)) (KW_AND createUserAuthOption)? + | KW_IDENTIFIED KW_WITH authPlugin=uid ((KW_BY (STRING_LITERAL | (KW_RANDOM KW_PASSWORD))) | KW_AS STRING_LITERAL)? (KW_AND createUserAuthOption)? + | KW_IDENTIFIED KW_WITH authPlugin=uid createUserInitialAuthOption? + ; +createUserInitialAuthOption + : KW_INITIAL KW_AUTHENTICATION KW_IDENTIFIED KW_BY ((KW_RANDOM KW_PASSWORD) | STRING_LITERAL) + | KW_INITIAL KW_AUTHENTICATION KW_IDENTIFIED KW_WITH authPlugin=uid KW_AS STRING_LITERAL + ; + +userAuthOption + : userName KW_IDENTIFIED KW_BY KW_PASSWORD hashed=STRING_LITERAL #hashAuthOption + | userName KW_IDENTIFIED KW_BY KW_RANDOM KW_PASSWORD authOptionClause #randomAuthOption + | userName KW_IDENTIFIED KW_BY STRING_LITERAL authOptionClause #stringAuthOption + | userName KW_IDENTIFIED KW_WITH authenticationRule #moduleAuthOption + | userName #simpleAuthOption + ; + +authOptionClause + : (KW_REPLACE STRING_LITERAL)? (KW_RETAIN KW_CURRENT KW_PASSWORD)? + ; + +authenticationRule + : authPlugin=uid + ((KW_BY | KW_USING | KW_AS) (STRING_LITERAL | KW_RANDOM KW_PASSWORD) + authOptionClause)? #module + | authPlugin=uid + KW_USING passwordFunctionClause #passwordModuleOption + ; + +tlsOption + : KW_SSL + | KW_X509 + | KW_CIPHER STRING_LITERAL + | KW_ISSUER STRING_LITERAL + | KW_SUBJECT STRING_LITERAL + ; + +userResourceOption + : KW_MAX_QUERIES_PER_HOUR decimalLiteral + | KW_MAX_UPDATES_PER_HOUR decimalLiteral + | KW_MAX_CONNECTIONS_PER_HOUR decimalLiteral + | KW_MAX_USER_CONNECTIONS decimalLiteral + ; + +userPasswordOption + : KW_PASSWORD KW_EXPIRE + (expireType=KW_DEFAULT + | expireType=KW_NEVER + | expireType=KW_INTERVAL decimalLiteral KW_DAY + )? + | KW_PASSWORD KW_HISTORY (KW_DEFAULT | decimalLiteral) + | KW_PASSWORD KW_REUSE KW_INTERVAL (KW_DEFAULT | decimalLiteral KW_DAY) + | KW_PASSWORD KW_REQUIRE KW_CURRENT (KW_OPTIONAL | KW_DEFAULT)? + | KW_FAILED_LOGIN_ATTEMPTS decimalLiteral + | KW_PASSWORD_LOCK_TIME (decimalLiteral | KW_UNBOUNDED) + ; + +userLockOption + : KW_ACCOUNT lockType=(KW_LOCK | KW_UNLOCK) + ; + +factorAuthOption + : KW_IDENTIFIED (KW_WITH authPlugin=uid)? ((KW_BY (STRING_LITERAL | (KW_RANDOM KW_PASSWORD))) | KW_AS STRING_LITERAL) + ; + +registrationOption + : factor KW_INITIATE KW_REGISTRATION + | factor KW_FINISH KW_REGISTRATION KW_SET KW_CHALLENGE_RESPONSE KW_AS STRING_LITERAL + | factor KW_UNREGISTER + ; + +factor + : (TWO_DECIMAL | THREE_DECIMAL) KW_FACTOR + ; + +privelegeClause + : privilege ( '(' columnNames ')' )? + ; + +privilege + : KW_ALL KW_PRIVILEGES? + | KW_ALTER KW_ROUTINE? + | KW_CREATE + (KW_TEMPORARY KW_TABLES | KW_ROUTINE | KW_VIEW | KW_USER | KW_TABLESPACE | KW_ROLE)? + | KW_DELETE | KW_DROP (KW_ROLE)? | KW_EVENT | KW_EXECUTE | KW_FILE | KW_GRANT KW_OPTION + | KW_INDEX | KW_INSERT | KW_LOCK KW_TABLES | KW_PROCESS | KW_PROXY + | KW_REFERENCES | KW_RELOAD + | KW_REPLICATION (KW_CLIENT | KW_SLAVE) + | KW_SELECT + | KW_SHOW (KW_VIEW | KW_DATABASES) + | KW_SHUTDOWN | KW_SUPER | KW_TRIGGER | KW_UPDATE | KW_USAGE + | KW_APPLICATION_PASSWORD_ADMIN | KW_AUDIT_ABORT_EXEMPT | KW_AUDIT_ADMIN | KW_AUTHENTICATION_POLICY_ADMIN | KW_BACKUP_ADMIN | KW_BINLOG_ADMIN | KW_BINLOG_ENCRYPTION_ADMIN | KW_CLONE_ADMIN + | KW_CONNECTION_ADMIN | KW_ENCRYPTION_KEY_ADMIN | KW_FIREWALL_ADMIN | KW_FIREWALL_EXEMPT | KW_FIREWALL_USER | KW_FLUSH_OPTIMIZER_COSTS + | KW_FLUSH_STATUS | KW_FLUSH_TABLES | KW_FLUSH_USER_RESOURCES | KW_GROUP_REPLICATION_ADMIN + | KW_INNODB_REDO_LOG_ARCHIVE | KW_INNODB_REDO_LOG_ENABLE | KW_NDB_STORED_USER | KW_PASSWORDLESS_USER_ADMIN | KW_PERSIST_RO_VARIABLES_ADMIN | KW_REPLICATION_APPLIER + | KW_REPLICATION_SLAVE_ADMIN | KW_RESOURCE_GROUP_ADMIN | KW_RESOURCE_GROUP_USER | KW_ROLE_ADMIN + | KW_SERVICE_CONNECTION_ADMIN + | KW_SESSION_VARIABLES_ADMIN | KW_SET_USER_ID | KW_SKIP_QUERY_REWRITE | KW_SHOW_ROUTINE | KW_SYSTEM_USER | KW_SYSTEM_VARIABLES_ADMIN + | KW_TABLE_ENCRYPTION_ADMIN | KW_TP_CONNECTION_ADMIN | KW_VERSION_TOKEN_ADMIN | KW_XA_RECOVER_ADMIN + // MySQL on Amazon RDS + | KW_LOAD KW_FROM KW_S3 | KW_SELECT KW_INTO KW_S3 | KW_INVOKE KW_LAMBDA + ; + +privilegeLevel + : '*' #currentSchemaPriviLevel + | '*' '.' '*' #globalPrivLevel + | uid '.' '*' #definiteSchemaPrivLevel + | uid '.' uid #definiteFullTablePrivLevel + | uid dottedId #definiteFullTablePrivLevel2 + | uid #definiteTablePrivLevel + ; + +renameUserClause + : fromFirst=userName KW_TO toFirst=userName + ; + +// Table maintenance statements + +analyzeTable + : KW_ANALYZE tableActionOption? KW_TABLE tableNames + | KW_ANALYZE tableActionOption? KW_TABLE tableName KW_UPDATE KW_HISTOGRAM KW_ON columnNames (KW_WITH decimalLiteral KW_BUCKETS)? + | KW_ANALYZE tableActionOption? KW_TABLE tableName KW_UPDATE KW_HISTOGRAM KW_ON columnName (KW_USING KW_DATA STRING_LITERAL)? + | KW_ANALYZE tableActionOption? KW_TABLE tableName KW_DROP KW_HISTOGRAM KW_ON columnNames + ; + +checkTable + : KW_CHECK KW_TABLE tableNames checkTableOption* + ; + +checksumTable + : KW_CHECKSUM KW_TABLE tableNames actionOption=(KW_QUICK | KW_EXTENDED)? + ; + +optimizeTable + : KW_OPTIMIZE tableActionOption? + (KW_TABLE | KW_TABLES) tableNames + ; + +repairTable + : KW_REPAIR tableActionOption? + KW_TABLE tableNames + KW_QUICK? KW_EXTENDED? KW_USE_FRM? + ; + +tableActionOption + : KW_NO_WRITE_TO_BINLOG | KW_LOCAL + ; + +checkTableOption + : KW_FOR KW_UPGRADE | KW_QUICK | KW_FAST | KW_MEDIUM | KW_EXTENDED | KW_CHANGED + ; + +createFunction + : KW_CREATE KW_AGGREGATE? KW_FUNCTION ifNotExists? functionNameCreate + KW_RETURNS returnType=(KW_STRING | KW_INTEGER | KW_REAL | KW_DECIMAL) + KW_SONAME STRING_LITERAL + ; + +installComponent + : KW_INSTALL KW_COMPONENT component_name=uid (',' component_name=uid)* (KW_SET variableExpr (',' variableExpr)*)? + ; +variableExpr + : (KW_GLOBAL | GLOBAL_ID | KW_PERSIST | PERSIST_ID) system_var_name=fullId '=' expression + ; + +uninstallComponent + : KW_UNINSTALL KW_COMPONENT component_name=uid (',' component_name=uid)* + ; + +installPlugin + : KW_INSTALL KW_PLUGIN pluginName=uid KW_SONAME STRING_LITERAL + ; + +uninstallPlugin + : KW_UNINSTALL KW_PLUGIN pluginName=uid + ; + + +cloneStatement + : KW_CLONE KW_LOCAL KW_DATA KW_DIRECTORY '='? STRING_LITERAL + | KW_CLONE KW_INSTANCE KW_FROM userHostPort + KW_IDENTIFIED KW_BY STRING_LITERAL + (KW_DATA KW_DIRECTORY '='? STRING_LITERAL)? + (KW_REQUIRE KW_NO? KW_SSL)? + ; + +setStatement + : KW_SET variableClause ('=' | ':=') (expression | KW_ON) + (',' variableClause ('=' | ':=') (expression | KW_ON))* #setVariable + | KW_SET charSet (charsetName | KW_DEFAULT) #setCharset + | KW_SET KW_NAMES + (charsetName (KW_COLLATE collationName)? | KW_DEFAULT) #setNames + | setPasswordStatement #setPassword + | setTransactionStatement #setTransaction + | setAutocommitStatement #setAutocommit + | KW_SET system_var_name=fullId ('=' | ':=') expression (',' system_var_name=fullId ('=' | ':=') expression)* #setNewValueInsideTrigger + ; + +showStatement + : KW_SHOW logFormat=(KW_BINARY | KW_MASTER) KW_LOGS #showMasterLogs + | KW_SHOW logFormat=(KW_BINLOG | KW_RELAYLOG) KW_EVENTS + (KW_IN filename=STRING_LITERAL)? + (KW_FROM fromPosition=decimalLiteral)? + (KW_LIMIT (offset=decimalLiteral ',')? rowCount=decimalLiteral)? + channelOption? #showLogEvents + | KW_SHOW showCommonEntity showFilter? #showObjectFilter + | KW_SHOW KW_EXTENDED? KW_FULL? columnsFormat=(KW_COLUMNS | KW_FIELDS) + tableFormat=(KW_FROM | KW_IN) tableName + (schemaFormat=(KW_FROM | KW_IN) databaseName)? showFilter? #showColumns + | KW_SHOW KW_CREATE (KW_DATABASE | KW_SCHEMA) ifNotExists? databaseNameCreate #showCreateDb + | KW_SHOW KW_CREATE (KW_EVENT | KW_PROCEDURE | KW_TRIGGER) fullId #showCreateFullIdObject + | KW_SHOW KW_CREATE KW_FUNCTION functionNameCreate #showCreateFunction + | KW_SHOW KW_CREATE KW_VIEW viewNameCreate #showCreateView + | KW_SHOW KW_CREATE KW_TABLE tableNameCreate #showCreateTable + | KW_SHOW KW_CREATE KW_USER userName #showCreateUser + | KW_SHOW KW_ENGINE engineName engineOption=(KW_STATUS | KW_MUTEX) #showEngine + | KW_SHOW showGlobalInfoClause #showGlobalInfo + | KW_SHOW errorFormat=(KW_ERRORS | KW_WARNINGS) + (KW_LIMIT + (offset=decimalLiteral ',')? + rowCount=decimalLiteral + )? #showErrors + | KW_SHOW KW_COUNT '(' '*' ')' errorFormat=(KW_ERRORS | KW_WARNINGS) #showCountErrors + | KW_SHOW showSchemaEntity (schemaFormat=(KW_FROM | KW_IN) databaseName)? showFilter? #showSchemaFilter + | KW_SHOW KW_PROCEDURE KW_CODE proc_name=fullId #showPercedureCode + | KW_SHOW KW_FUNCTION KW_CODE functionName #showFunctionCode + | KW_SHOW KW_GRANTS (KW_FOR userOrRoleName (KW_USING userOrRoleNames)?)? #showGrants + | KW_SHOW KW_EXTENDED? indexFormat=(KW_INDEX | KW_INDEXES | KW_KEYS) + tableFormat=(KW_FROM | KW_IN) tableName + (schemaFormat=(KW_FROM | KW_IN) databaseName)? (KW_WHERE expression)? #showIndexes + | KW_SHOW KW_OPEN KW_TABLES ((KW_FROM | KW_IN) databaseName)? showFilter? #showOpenTables + | KW_SHOW KW_PROFILE (showProfileType (',' showProfileType)*)? + (KW_FOR KW_QUERY queryCount=decimalLiteral)? + (KW_LIMIT rowCount=decimalLiteral (KW_OFFSET offset=decimalLiteral)?)? #showProfile + | KW_SHOW (KW_REPLICA | KW_SLAVE) KW_STATUS channelOption? #showSlaveStatus + | KW_SHOW KW_REPLICAS #showReplicas + ; + +// details + +variableClause + : LOCAL_ID | GLOBAL_ID | (('@' '@')? (KW_GLOBAL | KW_PERSIST | KW_PERSIST_ONLY | KW_SESSION | KW_LOCAL))? target=uid + ; + +showCommonEntity + : KW_CHARACTER KW_SET | KW_CHARSET | KW_COLLATION | KW_DATABASES | KW_SCHEMAS + | KW_FUNCTION KW_STATUS | KW_PROCEDURE KW_STATUS + | (KW_GLOBAL | KW_SESSION)? (KW_STATUS | KW_VARIABLES) + ; + +showFilter + : KW_LIKE STRING_LITERAL + | KW_WHERE expression + ; + +showGlobalInfoClause + : KW_STORAGE? KW_ENGINES | KW_MASTER KW_STATUS | KW_PLUGINS + | KW_PRIVILEGES | KW_FULL? KW_PROCESSLIST | KW_PROFILES + | KW_SLAVE KW_HOSTS | KW_AUTHORS | KW_CONTRIBUTORS + ; + +showSchemaEntity + : KW_EVENTS | KW_TABLE KW_STATUS | KW_EXTENDED? KW_FULL? KW_TABLES | KW_TRIGGERS + ; + +showProfileType + : KW_ALL | KW_BLOCK KW_IO | KW_CONTEXT KW_SWITCHES | KW_CPU | KW_IPC | KW_MEMORY + | KW_PAGE KW_FAULTS | KW_SOURCE | KW_SWAPS + ; + + +// Other administrative statements + +binlogStatement + : KW_BINLOG STRING_LITERAL + ; + +cacheIndexStatement + : KW_CACHE KW_INDEX + (tableIndex (',' tableIndex)* | tableName KW_PARTITION '(' (partitionNames | KW_ALL) ')') + KW_IN databaseName + ; + +flushStatement + : KW_FLUSH tableActionOption? + flushOption (',' flushOption)* + ; + +killStatement + : KW_KILL connectionFormat=(KW_CONNECTION | KW_QUERY)? expression + ; + +loadIndexIntoCache + : KW_LOAD KW_INDEX KW_INTO KW_CACHE + loadedTableIndexes (',' loadedTableIndexes)* + ; + +resetStatement + : KW_RESET resetOption (',' resetOption)* + ; + +resetOption + : KW_MASTER | KW_REPLICA | KW_QUERY KW_CACHE | KW_SLAVE + ; + +resetPersist + : KW_RESET KW_PERSIST (ifExists? system_var_name=uid)? + ; + +resetAllChannel + : KW_RESET (KW_REPLICA | KW_SLAVE) KW_ALL? channelOption? + ; + +reStartStatement + : KW_RESTART + ; + +shutdownStatement + : KW_SHUTDOWN + ; + +tableIndex + : tableName (indexFormat=(KW_INDEX | KW_KEY) '(' indexNames ')')? + ; + +flushOption + : ( + KW_DES_KEY_FILE | KW_HOSTS + | ( + KW_BINARY | KW_ENGINE | KW_ERROR | KW_GENERAL | KW_RELAY | KW_SLOW + )? KW_LOGS + | KW_OPTIMIZER_COSTS | KW_PRIVILEGES | KW_QUERY KW_CACHE | KW_STATUS + | KW_USER_RESOURCES | KW_TABLES (KW_WITH KW_READ KW_LOCK)? + ) #simpleFlushOption + | KW_RELAY KW_LOGS channelOption? #channelFlushOption + | (KW_TABLE | KW_TABLES) tableNames? flushTableOption? #tableFlushOption + ; + +flushTableOption + : KW_WITH KW_READ KW_LOCK + | KW_FOR KW_EXPORT + ; + +loadedTableIndexes + : tableName + ( KW_PARTITION '(' (partitionNames | KW_ALL) ')' )? + ( indexFormat=(KW_INDEX | KW_KEY)? '(' indexNames ')' )? + (KW_IGNORE KW_LEAVES)? + ; + +simpleDescribeStatement + : command=(KW_EXPLAIN | KW_DESCRIBE | KW_DESC) tableName + (column=columnName | pattern=STRING_LITERAL)? + ; + +fullDescribeStatement + : command=(KW_EXPLAIN | KW_DESCRIBE | KW_DESC) + (KW_EXTENDED | KW_PARTITIONS | KW_FORMAT '=' (KW_TRADITIONAL | KW_JSON | KW_TREE))? + describeObjectClause + ; + +analyzeDescribeStatement + : command=(KW_EXPLAIN | KW_DESCRIBE | KW_DESC) KW_ANALYZE (KW_FORMAT '=' KW_TREE)? selectStatement + ; + +helpStatement + : KW_HELP STRING_LITERAL + ; + +useStatement + : KW_USE databaseName + ; + +signalStatement + : KW_SIGNAL ( ( KW_SQLSTATE KW_VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID ) + ( KW_SET signalConditionInformation ( ',' signalConditionInformation)* )? + ; + +resignalStatement + : KW_RESIGNAL ( ( KW_SQLSTATE KW_VALUE? stringLiteral ) | ID | REVERSE_QUOTE_ID )? + ( KW_SET signalConditionInformation ( ',' signalConditionInformation)* )? + ; + +signalConditionInformation + : ( KW_CLASS_ORIGIN + | KW_SUBCLASS_ORIGIN + | KW_MESSAGE_TEXT + | KW_MYSQL_ERRNO + | KW_CONSTRAINT_CATALOG + | KW_CONSTRAINT_SCHEMA + | KW_CONSTRAINT_NAME + | KW_CATALOG_NAME + | KW_SCHEMA_NAME + | KW_TABLE_NAME + | KW_COLUMN_NAME + | KW_CURSOR_NAME + ) '=' ( stringLiteral | DECIMAL_LITERAL | mysqlVariable | simpleId ) + ; + +withStatement + : KW_WITH KW_RECURSIVE? commonTableExpressions (',' commonTableExpressions)* + ; + +tableStatement + : KW_TABLE tableName orderByClause? limitClause? + ; + +diagnosticsStatement + : KW_GET ( KW_CURRENT | KW_STACKED )? KW_DIAGNOSTICS ( + ( variableClause '=' ( KW_NUMBER | KW_ROW_COUNT ) ( ',' variableClause '=' ( KW_NUMBER | KW_ROW_COUNT ) )* ) + | ( KW_CONDITION ( decimalLiteral | variableClause ) variableClause '=' diagnosticsConditionInformationName ( ',' variableClause '=' diagnosticsConditionInformationName )* ) + ) + ; + +diagnosticsConditionInformationName + : KW_CLASS_ORIGIN + | KW_SUBCLASS_ORIGIN + | KW_RETURNED_SQLSTATE + | KW_MESSAGE_TEXT + | KW_MYSQL_ERRNO + | KW_CONSTRAINT_CATALOG + | KW_CONSTRAINT_SCHEMA + | KW_CONSTRAINT_NAME + | KW_CATALOG_NAME + | KW_SCHEMA_NAME + | KW_TABLE_NAME + | KW_COLUMN_NAME + | KW_CURSOR_NAME + ; + +describeObjectClause + : (selectStatement | deleteStatement | insertStatement | replaceStatement | updateStatement) #describeStatements + | KW_FOR KW_CONNECTION connection_id=uid #describeConnection + ; + + +databaseNameCreate + : fullId + ; +databaseName + : fullId + ; + +functionNameCreate + : fullId + ; +functionName + : fullId + ; + +viewNameCreate + : fullId + ; +viewName + : fullId + ; + +indexNameCreate + : uid + ; +indexNames + : indexName (',' indexName)* + ; +indexName + : uid + ; + +groupNameCreate + : uid + ; +groupName + : uid + ; + +tableNameCreate + : fullId + ; +tableNames + : tableName (',' tableName)* + ; +tableName + : fullId + ; + +userOrRoleNames + : userOrRoleName (',' userOrRoleName)* + ; +userOrRoleName + : userName | uid + ; + +columnNameCreate + : uid (dottedId dottedId? )? + | .? dottedId dottedId? + ; +columnNames + : columnName (',' columnName)* + ; +columnName + : uid (dottedId dottedId? )? + | .? dottedId dottedId? + ; + +tablespaceNameCreate + : uid + ; +tablespaceName + : uid + ; + +partitionNameCreate + : uid + ; +partitionNames + : partitionName (',' partitionName)* + ; +partitionName + : uid + ; + +indexColumnName + : (uid ('(' decimalLiteral ')')? | expression) sortType=(KW_ASC | KW_DESC)? + ; + +userHostPort + : userAtHost COLON_SYMB decimalLiteral + ; +userAtHost + : simpleUserName HOST_IP_ADDRESS + ; + +simpleUserName + : STRING_LITERAL + | ID + | KW_ADMIN + | keywordsCanBeId; +hostName: (LOCAL_ID | HOST_IP_ADDRESS | '@' ); +userName + : simpleUserName hostName? + | currentUserExpression; + +mysqlVariable + : LOCAL_ID + | GLOBAL_ID + ; + +charsetName + : KW_BINARY + | charsetNameBase + | STRING_LITERAL + | CHARSET_REVERSE_QOUTE_STRING + ; + +collationName + : uid; + +engineName + : engineNameBase + | ID + | STRING_LITERAL + ; + +engineNameBase + : KW_ARCHIVE | KW_BLACKHOLE | KW_CONNECT | KW_CSV | KW_FEDERATED | KW_INNODB | KW_MEMORY + | KW_MRG_MYISAM | KW_MYISAM | KW_NDB | KW_NDBCLUSTER | KW_PERFORMANCE_SCHEMA | KW_TOKUDB + ; + +uuidSet + : decimalLiteral '-' decimalLiteral '-' decimalLiteral + '-' decimalLiteral '-' decimalLiteral + (':' decimalLiteral '-' decimalLiteral)+ + ; + +xid + : globalTableUid=xuidStringId + ( + ',' qualifier=xuidStringId + (',' idFormat=decimalLiteral)? + )? + ; + +xuidStringId + : STRING_LITERAL + | BIT_STRING + | HEXADECIMAL_LITERAL+ + ; + +fullId + : uid dottedId? + ; + +uidList + : uid (',' uid)* + ; +uid + : simpleId + //| DOUBLE_QUOTE_ID + //| REVERSE_QUOTE_ID + | CHARSET_REVERSE_QOUTE_STRING + | STRING_LITERAL + ; + +simpleId + : ID + | charsetNameBase + | transactionLevelBase + | engineNameBase + | privilegesBase + | intervalTypeBase + | dataTypeBase + | keywordsCanBeId + | scalarFunctionName + ; + +dottedId + : DOT_ID + | '.' uid + ; + +decimalLiteral + : DECIMAL_LITERAL | ZERO_DECIMAL | ONE_DECIMAL | TWO_DECIMAL | THREE_DECIMAL | REAL_LITERAL + ; + +fileSizeLiteral + : FILESIZE_LITERAL | decimalLiteral; + +stringLiteral + : ( + STRING_CHARSET_NAME? STRING_LITERAL + | START_NATIONAL_STRING_LITERAL + ) STRING_LITERAL+ + | ( + STRING_CHARSET_NAME? STRING_LITERAL + | START_NATIONAL_STRING_LITERAL + ) (KW_COLLATE collationName)? + ; + +booleanLiteral + : KW_TRUE | KW_FALSE; + +hexadecimalLiteral + : STRING_CHARSET_NAME? HEXADECIMAL_LITERAL; + +nullNotnull + : KW_NOT? (KW_NULL_LITERAL | NULL_SPEC_LITERAL) + ; + +constant + : stringLiteral | decimalLiteral + | '-' decimalLiteral + | hexadecimalLiteral | booleanLiteral + | REAL_LITERAL | BIT_STRING + | KW_NOT? nullLiteral=(KW_NULL_LITERAL | NULL_SPEC_LITERAL) + ; + + +// Data Types + +dataType + : typeName=( + KW_CHAR | KW_CHARACTER | KW_VARCHAR | KW_TINYTEXT | KW_TEXT | KW_MEDIUMTEXT | KW_LONGTEXT + | KW_NCHAR | KW_NVARCHAR | KW_LONG + ) + KW_VARYING? + lengthOneDimension? KW_BINARY? + (charSet charsetName)? + (KW_COLLATE collationName | KW_BINARY)? #stringDataType + | KW_NATIONAL typeName=(KW_CHAR | KW_CHARACTER) KW_VARYING + lengthOneDimension? KW_BINARY? #nationalVaryingStringDataType + | KW_NATIONAL typeName=(KW_VARCHAR | KW_CHARACTER | KW_CHAR) + lengthOneDimension? KW_BINARY? #nationalStringDataType + | KW_NCHAR typeName=KW_VARCHAR + lengthOneDimension? KW_BINARY? #nationalStringDataType + | typeName=( + KW_TINYINT | KW_SMALLINT | KW_MEDIUMINT | KW_INT | KW_INTEGER | KW_BIGINT + | KW_MIDDLEINT | KW_INT1 | KW_INT2 | KW_INT3 | KW_INT4 | KW_INT8 + ) + lengthOneDimension? (KW_SIGNED | KW_UNSIGNED | KW_ZEROFILL)* #dimensionDataType + | typeName=KW_REAL + lengthTwoDimension? (KW_SIGNED | KW_UNSIGNED | KW_ZEROFILL)* #dimensionDataType + | typeName=KW_DOUBLE KW_PRECISION? + lengthTwoDimension? (KW_SIGNED | KW_UNSIGNED | KW_ZEROFILL)* #dimensionDataType + | typeName=(KW_DECIMAL | KW_DEC | KW_FIXED | KW_NUMERIC | KW_FLOAT | KW_FLOAT4 | KW_FLOAT8) + lengthTwoOptionalDimension? (KW_SIGNED | KW_UNSIGNED | KW_ZEROFILL)* #dimensionDataType + | typeName=( + KW_DATE | KW_TINYBLOB | KW_MEDIUMBLOB | KW_LONGBLOB + | KW_BOOL | KW_BOOLEAN | KW_SERIAL + ) #simpleDataType + | typeName=( + KW_BIT | KW_TIME | KW_TIMESTAMP | KW_DATETIME | KW_BINARY + | KW_VARBINARY | KW_BLOB | KW_YEAR + ) + lengthOneDimension? #dimensionDataType + | typeName=(KW_ENUM | KW_SET) + collectionOptions KW_BINARY? + (charSet charsetName)? #collectionDataType + | typeName=( + KW_GEOMETRYCOLLECTION | KW_GEOMCOLLECTION | KW_LINESTRING | KW_MULTILINESTRING + | KW_MULTIPOINT | KW_MULTIPOLYGON | KW_POINT | KW_POLYGON | KW_JSON | KW_GEOMETRY + ) (KW_SRID decimalLiteral)? #spatialDataType + | typeName=KW_LONG KW_VARCHAR? + KW_BINARY? + (charSet charsetName)? + (KW_COLLATE collationName)? #longVarcharDataType // LONG VARCHAR is the same as LONG + | KW_LONG KW_VARBINARY #longVarbinaryDataType + ; + +collectionOptions + : '(' STRING_LITERAL (',' STRING_LITERAL)* ')' + ; + +convertedDataType + : + ( + typeName=(KW_BINARY| KW_NCHAR) lengthOneDimension? + | typeName=KW_CHAR lengthOneDimension? (charSet charsetName)? + | typeName=(KW_DATE | KW_DATETIME | KW_TIME | KW_JSON | KW_INT | KW_INTEGER) + | typeName=(KW_DECIMAL | KW_DEC) lengthTwoOptionalDimension? + | (KW_SIGNED | KW_UNSIGNED) (KW_INTEGER | KW_INT)? + ) KW_ARRAY? + ; + +lengthOneDimension + : '(' decimalLiteral ')' + ; + +lengthTwoDimension + : '(' decimalLiteral ',' decimalLiteral ')' + ; + +lengthTwoOptionalDimension + : '(' decimalLiteral (',' decimalLiteral)? ')' + ; + + + +indexColumnNames + : '(' indexColumnName (',' indexColumnName)* ')' + ; + +expressions + : expression (',' expression)* + ; + +valuesOrValueList + : (KW_VALUES | KW_VALUE) expressionsWithDefaults (',' expressionsWithDefaults)* + ; + +// (valueList) +expressionsWithDefaults + : '(' expressionOrDefault (',' expressionOrDefault)* ')' + ; + +// value +expressionOrDefault + : expression | KW_DEFAULT + ; + +constants + : constant (',' constant)* + ; + +simpleStrings + : STRING_LITERAL (',' STRING_LITERAL)* + ; + +userVariables + : LOCAL_ID (',' LOCAL_ID)* + ; + + +// Common Expressons + +defaultValue + : KW_NULL_LITERAL + | KW_CAST '(' expression KW_AS convertedDataType ')' + | unaryOperator? constant + | currentTimestamp (KW_ON KW_UPDATE currentTimestamp)? + | '(' expression ')' + | '(' fullId ')' + ; + +currentTimestamp + : + ( + (KW_CURRENT_TIMESTAMP | KW_LOCALTIME | KW_LOCALTIMESTAMP) + ('(' decimalLiteral? ')')? + | KW_NOW '(' decimalLiteral? ')' + ) + ; + +ifExists + : KW_IF KW_EXISTS + ; + +ifNotExists + : KW_IF KW_NOT KW_EXISTS + ; + +orReplace + : KW_OR KW_REPLACE + ; + +// Functions + +functionCall + : specificFunction #specificFunctionCall + | aggregateWindowedFunction #aggregateFunctionCall + | nonAggregateWindowedFunction #nonAggregateFunctionCall + | scalarFunctionName '(' functionArgs? ')' #scalarFunctionCall + | fullId '(' functionArgs? ')' #udfFunctionCall + | passwordFunctionClause #passwordFunctionCall + ; + +specificFunction + : (KW_CURRENT_DATE | KW_CURRENT_TIME | KW_CURRENT_TIMESTAMP | KW_LOCALTIME | KW_UTC_TIMESTAMP | KW_SCHEMA) ('(' ')')? #simpleFunctionCall + | currentUserExpression #currentUser + | KW_CONVERT '(' expression separator=',' convertedDataType ')' #dataTypeFunctionCall + | KW_CONVERT '(' expression KW_USING charsetName ')' #dataTypeFunctionCall + | KW_CAST '(' expression KW_AS convertedDataType ')' #dataTypeFunctionCall + | KW_VALUES '(' columnName ')' #valuesFunctionCall + | KW_CASE expression caseFuncAlternative+ (KW_ELSE elseArg=functionArg)? KW_END #caseExpressionFunctionCall + | KW_CASE caseFuncAlternative+ (KW_ELSE elseArg=functionArg)? KW_END #caseFunctionCall + | KW_CHAR '(' functionArgs (KW_USING charsetName)? ')' #charFunctionCall + | KW_POSITION '(' (positionString=stringLiteral | positionExpression=expression) KW_IN ( inString=stringLiteral | inExpression=expression)')' #positionFunctionCall + | (KW_SUBSTR | KW_SUBSTRING) '(' (sourceString=stringLiteral | sourceExpression=expression) KW_FROM + (fromDecimal=decimalLiteral | fromExpression=expression) (KW_FOR (forDecimal=decimalLiteral | forExpression=expression))? ')' #substrFunctionCall + | KW_TRIM '(' positioinForm=(KW_BOTH | KW_LEADING | KW_TRAILING) (sourceString=stringLiteral | sourceExpression=expression)? KW_FROM + (fromString=stringLiteral | fromExpression=expression) ')' #trimFunctionCall + | KW_TRIM '(' (sourceString=stringLiteral | sourceExpression=expression) KW_FROM (fromString=stringLiteral | fromExpression=expression) ')' #trimFunctionCall + | KW_WEIGHT_STRING '(' (stringLiteral | expression) (KW_AS stringFormat=(KW_CHAR | KW_BINARY) '(' decimalLiteral ')' )? levelsInWeightString? ')' #weightFunctionCall + | KW_EXTRACT '(' intervalType KW_FROM (sourceString=stringLiteral | sourceExpression=expression) ')' #extractFunctionCall + | KW_GET_FORMAT '(' datetimeFormat=(KW_DATE | KW_TIME | KW_DATETIME) ',' stringLiteral ')' #getFormatFunctionCall + | KW_JSON_VALUE '(' expression ',' expression (KW_RETURNING convertedDataType)? jsonOnEmpty? jsonOnError? ')' #jsonValueFunctionCall + ; + +caseFuncAlternative + : KW_WHEN condition=functionArg + KW_THEN consequent=functionArg + ; + +levelsInWeightString + : KW_LEVEL levelInWeightListElement (',' levelInWeightListElement)* #levelWeightList + | KW_LEVEL firstLevel=decimalLiteral '-' lastLevel=decimalLiteral #levelWeightRange + ; + +levelInWeightListElement + : decimalLiteral orderType=(KW_ASC | KW_DESC | KW_REVERSE)? + ; + +aggregateWindowedFunction + : (KW_AVG | KW_MAX | KW_MIN | KW_SUM) + '(' aggregator=(KW_ALL | KW_DISTINCT)? functionArg ')' overClause? + | KW_COUNT '(' (starArg='*' | aggregator=KW_ALL? functionArg | aggregator=KW_DISTINCT functionArgs) ')' overClause? + | ( + KW_BIT_AND | KW_BIT_OR | KW_BIT_XOR | KW_STD | KW_STDDEV | KW_STDDEV_POP + | KW_STDDEV_SAMP | KW_VAR_POP | KW_VAR_SAMP | KW_VARIANCE + ) '(' aggregator=KW_ALL? functionArg ')' overClause? + | KW_GROUP_CONCAT '(' + aggregator=KW_DISTINCT? functionArgs + (KW_ORDER KW_BY + orderByExpression (',' orderByExpression)* + )? (KW_SEPARATOR separator=STRING_LITERAL)? + ')' + ; + +nonAggregateWindowedFunction + : (KW_LAG | KW_LEAD) '(' expression (',' decimalLiteral)? (',' decimalLiteral)? ')' overClause + | (KW_FIRST_VALUE | KW_LAST_VALUE) '(' expression ')' overClause + | (KW_CUME_DIST | KW_DENSE_RANK | KW_PERCENT_RANK | KW_RANK | KW_ROW_NUMBER) '('')' overClause + | KW_NTH_VALUE '(' expression ',' decimalLiteral ')' overClause + | KW_NTILE '(' decimalLiteral ')' overClause + ; + +overClause + : KW_OVER ('(' windowSpec ')' | windowName) + ; + +windowSpec + : windowName? partitionClause? orderByClause? frameClause? + ; + +windowName + : uid + ; + +frameClause + : frameUnits frameExtent + ; + +frameUnits + : KW_ROWS | KW_RANGE + ; + +frameExtent + : frameRange | frameBetween + ; + +frameBetween + : KW_BETWEEN frameRange KW_AND frameRange + ; + +frameRange + : KW_CURRENT KW_ROW + | KW_UNBOUNDED (KW_PRECEDING | KW_FOLLOWING) + | expression (KW_PRECEDING | KW_FOLLOWING) + ; + +partitionClause + : KW_PARTITION KW_BY expression (',' expression)* + ; + +scalarFunctionName + : functionNameBase + | KW_ASCII | KW_CURDATE | KW_CURRENT_DATE | KW_CURRENT_TIME + | KW_CURRENT_TIMESTAMP | KW_CURTIME | KW_DATE_ADD | KW_DATE_SUB + | KW_IF | KW_INSERT | KW_LOCALTIME | KW_LOCALTIMESTAMP | KW_MID | KW_NOW + | KW_REPEAT | KW_REPLACE | KW_SUBSTR | KW_SUBSTRING | KW_SYSDATE | KW_TRIM + | KW_UTC_DATE | KW_UTC_TIME | KW_UTC_TIMESTAMP + ; + +passwordFunctionClause + : (KW_PASSWORD | KW_OLD_PASSWORD) '(' functionArg ')' + ; + +functionArgs + : functionArg (',' functionArg)* + ; + +functionArg + : constant | columnName | functionCall | expression + ; + + +// Expressions, predicates + +// Simplified approach for expression +expression + : notOperator=(KW_NOT | '!') expression #notExpression + | expression logicalOperator expression #logicalExpression + | predicate KW_IS KW_NOT? testValue=(KW_TRUE | KW_FALSE | KW_UNKNOWN) #isExpression + | predicate #predicateExpression + ; + +predicate + : predicate KW_NOT? KW_IN '(' (selectStatement | expressions) ')' #inPredicate + | predicate KW_IS nullNotnull #isNullPredicate + | left=predicate comparisonOperator right=predicate #binaryComparisonPredicate + | predicate comparisonOperator + quantifier=(KW_ALL | KW_ANY | KW_SOME) '(' selectStatement ')' #subqueryComparisonPredicate + | predicate KW_NOT? KW_BETWEEN predicate KW_AND predicate #betweenPredicate + | predicate KW_SOUNDS KW_LIKE predicate #soundsLikePredicate + | predicate KW_NOT? KW_LIKE predicate (KW_ESCAPE STRING_LITERAL)? #likePredicate + | predicate KW_NOT? regex=(KW_REGEXP | KW_RLIKE) predicate #regexpPredicate + | predicate KW_MEMBER KW_OF '(' predicate ')' #jsonMemberOfPredicate + | expressionAtom #expressionAtomPredicate + ; + + +// Add in ASTVisitor nullNotnull in constant +expressionAtom + : constant #constantExpressionAtom + | columnName #columnNameExpressionAtom + | functionCall #functionCallExpressionAtom + | expressionAtom KW_COLLATE collationName #collateExpressionAtom + | mysqlVariable #mysqlVariableExpressionAtom + | unaryOperator expressionAtom #unaryExpressionAtom + | KW_BINARY expressionAtom #binaryExpressionAtom + | LOCAL_ID VAR_ASSIGN expressionAtom #variableAssignExpressionAtom + | '(' expression (',' expression)* ')' #nestedExpressionAtom + | KW_ROW '(' expression (',' expression)+ ')' #nestedRowExpressionAtom + | KW_EXISTS '(' selectStatement ')' #existsExpressionAtom + | '(' selectStatement ')' #subqueryExpressionAtom + | KW_INTERVAL expression intervalType #intervalExpressionAtom + | left=expressionAtom bitOperator right=expressionAtom #bitExpressionAtom + | left=expressionAtom mathOperator right=expressionAtom #mathExpressionAtom + | left=expressionAtom jsonOperator right=expressionAtom #jsonExpressionAtom + ; + +unaryOperator + : '!' | '~' | '+' | '-' | KW_NOT + ; + +comparisonOperator + : comparisonBase + | '<' '>' | '!' '=' | '<' '=' '>' + ; + +comparisonBase + : '=' | '>' | '<' | '<' '=' | '>' '=' + ; + +logicalOperator + : KW_AND | '&' '&' | KW_XOR | KW_OR | '|' '|' + ; + +bitOperator + : '<' '<' | '>' '>' | '&' | '^' | '|' + ; + +mathOperator + : '*' | '/' | '%' | DIV | MOD | '+' | '-' + ; + +jsonOperator + : '-' '>' | '-' '>' '>' + ; + +// Simple id sets +// (that keyword, which can be id) + +charsetNameBase + : KW_ARMSCII8 | KW_ASCII | KW_BIG5 | KW_BINARY | KW_CP1250 | KW_CP1251 | KW_CP1256 | KW_CP1257 + | KW_CP850 | KW_CP852 | KW_CP866 | KW_CP932 | KW_DEC8 | KW_EUCJPMS | KW_EUCKR + | KW_GB18030 | KW_GB2312 | KW_GBK | KW_GEOSTD8 | KW_GREEK | KW_HEBREW | KW_HP8 | KW_KEYBCS2 + | KW_KOI8R | KW_KOI8U | KW_LATIN1 | KW_LATIN2 | KW_LATIN5 | KW_LATIN7 | KW_MACCE + | KW_MACROMAN | KW_SJIS | KW_SWE7 | KW_TIS620 | KW_UCS2 | KW_UJIS | KW_UTF16 + | KW_UTF16LE | KW_UTF32 | KW_UTF8 | KW_UTF8MB3 | KW_UTF8MB4 + ; + +transactionLevelBase + : KW_REPEATABLE | KW_COMMITTED | KW_UNCOMMITTED | KW_SERIALIZABLE + ; + +privilegesBase + : KW_TABLES | KW_ROUTINE | KW_EXECUTE | KW_FILE | KW_PROCESS + | KW_RELOAD | KW_SHUTDOWN | KW_SUPER | KW_PRIVILEGES + ; + +intervalTypeBase + : KW_QUARTER | KW_MONTH | KW_DAY | KW_HOUR + | KW_MINUTE | KW_WEEK | KW_SECOND | KW_MICROSECOND + ; + +dataTypeBase + : KW_DATE | KW_TIME | KW_TIMESTAMP | KW_DATETIME | KW_YEAR | KW_ENUM | KW_TEXT + ; + +keywordsCanBeId + : KW_ACCOUNT | KW_ACTION | KW_ADMIN | KW_AFTER | KW_AGGREGATE | KW_ALGORITHM | KW_ANY | KW_ARRAY + | KW_AT | KW_AUDIT_ADMIN | KW_AUDIT_ABORT_EXEMPT | KW_AUTHORS | KW_AUTOCOMMIT | KW_AUTOEXTEND_SIZE + | KW_AUTO_INCREMENT | KW_AUTHENTICATION_POLICY_ADMIN | KW_AVG | KW_AVG_ROW_LENGTH | KW_ATTRIBUTE + | KW_BACKUP_ADMIN | KW_BEGIN | KW_BINLOG | KW_BINLOG_ADMIN | KW_BINLOG_ENCRYPTION_ADMIN | KW_BIT | KW_BIT_AND | KW_BIT_OR | KW_BIT_XOR + | KW_BLOCK | KW_BOOL | KW_BOOLEAN | KW_BTREE | KW_BUCKETS | KW_CACHE | KW_CASCADED | KW_CHAIN | KW_CHANGED + | KW_CHANNEL | KW_CHECKSUM | KW_PAGE_CHECKSUM | KW_CATALOG_NAME | KW_CIPHER + | KW_CLASS_ORIGIN | KW_CLIENT | KW_CLONE_ADMIN | KW_CLOSE | KW_COALESCE | KW_CODE + | KW_COLUMNS | KW_COLUMN_FORMAT | KW_COLUMN_NAME | KW_COMMENT | KW_COMMIT | KW_COMPACT + | KW_COMPLETION | KW_COMPRESSED | KW_COMPRESSION | KW_CONCURRENT | KW_CONDITION | KW_CONNECT + | KW_CONNECTION | KW_CONNECTION_ADMIN | KW_CONSISTENT | KW_CONSTRAINT_CATALOG | KW_CONSTRAINT_NAME + | KW_CONSTRAINT_SCHEMA | KW_CONTAINS | KW_CONTEXT + | KW_CONTRIBUTORS | KW_COPY | KW_COUNT | KW_CPU | KW_CURRENT | KW_CURRENT_USER | KW_CURSOR_NAME + | KW_DATA | KW_DATAFILE | KW_DEALLOCATE + | KW_DEFAULT | KW_DEFAULT_AUTH | KW_DEFINER | KW_DELAY_KEY_WRITE | KW_DES_KEY_FILE | KW_DIAGNOSTICS | KW_DIRECTORY + | KW_DISABLE | KW_DISCARD | KW_DISK | KW_DO | KW_DUMPFILE | KW_DUPLICATE + | KW_DYNAMIC | KW_EMPTY | KW_ENABLE | KW_ENCRYPTION | KW_ENCRYPTION_KEY_ADMIN | KW_END | KW_ENDS | KW_ENGINE | KW_ENGINE_ATTRIBUTE | KW_ENGINES | KW_ENFORCED + | KW_ERROR | KW_ERRORS | KW_ESCAPE | KW_EVENT | KW_EVENTS | KW_EVERY | KW_EXCEPT + | KW_EXCHANGE | KW_EXCLUSIVE | KW_EXPIRE | KW_EXPORT | KW_EXTENDED | KW_EXTENT_SIZE | KW_FAILED_LOGIN_ATTEMPTS | KW_FAST | KW_FAULTS + | KW_FIELDS | KW_FILE_BLOCK_SIZE | KW_FILTER | KW_FIREWALL_ADMIN | KW_FIREWALL_EXEMPT | KW_FIREWALL_USER | KW_FIRST | KW_FIXED | KW_FLUSH + | KW_FOLLOWS | KW_FOUND | KW_FULL | KW_FUNCTION | KW_GENERAL | KW_GLOBAL | KW_GRANTS | KW_GROUP | KW_GROUP_CONCAT + | KW_GROUP_REPLICATION | KW_GROUP_REPLICATION_ADMIN | KW_HANDLER | KW_HASH | KW_HELP | KW_HISTORY | KW_HOST | KW_HOSTS | KW_IDENTIFIED + | KW_IGNORE_SERVER_IDS | KW_IMPORT | KW_INDEXES | KW_INITIAL_SIZE | KW_INNODB_REDO_LOG_ARCHIVE + | KW_INPLACE | KW_INSERT_METHOD | KW_INSTALL | KW_INSTANCE | KW_INSTANT | KW_INVOKE | KW_INVOKER | KW_IO + | KW_IO_THREAD | KW_IPC | KW_ISOLATION | KW_ISSUER | KW_JSON | KW_KEY_BLOCK_SIZE + | KW_LAMBDA | KW_LANGUAGE | KW_LAST | KW_LATERAL | KW_LEAVES | KW_LESS | KW_LEVEL | KW_LIST | KW_LOCAL + | KW_LOGFILE | KW_LOGS | KW_MASTER | KW_MASTER_AUTO_POSITION + | KW_MASTER_CONNECT_RETRY | KW_MASTER_DELAY + | KW_MASTER_HEARTBEAT_PERIOD | KW_MASTER_HOST | KW_MASTER_LOG_FILE + | KW_MASTER_LOG_POS | KW_MASTER_PASSWORD | KW_MASTER_PORT + | KW_MASTER_RETRY_COUNT | KW_MASTER_SSL | KW_MASTER_SSL_CA + | KW_MASTER_SSL_CAPATH | KW_MASTER_SSL_CERT | KW_MASTER_SSL_CIPHER + | KW_MASTER_SSL_CRL | KW_MASTER_SSL_CRLPATH | KW_MASTER_SSL_KEY + | KW_MASTER_TLS_VERSION | KW_MASTER_USER + | KW_MAX_CONNECTIONS_PER_HOUR | KW_MAX_QUERIES_PER_HOUR + | KW_MAX | KW_MAX_ROWS | KW_MAX_SIZE | KW_MAX_UPDATES_PER_HOUR + | KW_MAX_USER_CONNECTIONS | KW_MEDIUM | KW_MEMBER | KW_MEMORY | KW_MERGE | KW_MESSAGE_TEXT + | KW_MID | KW_MIGRATE + | KW_MIN | KW_MIN_ROWS | KW_MODE | KW_MODIFY | KW_MUTEX | KW_MYSQL | KW_MYSQL_ERRNO | KW_NAME | KW_NAMES + | KW_NCHAR | KW_NDB_STORED_USER | KW_NESTED | KW_NEVER | KW_NEXT | KW_NO | KW_NODEGROUP | KW_NONE | KW_NOWAIT | KW_NUMBER | KW_ODBC | KW_OFFLINE | KW_OFFSET + | KW_OF | KW_OLD_PASSWORD | KW_ONE | KW_ONLINE | KW_ONLY | KW_OPEN | KW_OPTIMIZER_COSTS + | KW_OPTIONAL | KW_OPTIONS | KW_ORDER | KW_ORDINALITY | KW_OWNER | KW_PACK_KEYS | KW_PAGE | KW_PARSER | KW_PARTIAL + | KW_PARTITIONING | KW_PARTITIONS | KW_PASSWORD | KW_PASSWORDLESS_USER_ADMIN | KW_PASSWORD_LOCK_TIME | KW_PATH | KW_PERSIST_RO_VARIABLES_ADMIN | KW_PHASE | KW_PLUGINS + | KW_PLUGIN_DIR | KW_PLUGIN | KW_PORT | KW_PRECEDES | KW_PREPARE | KW_PRESERVE | KW_PREV | KW_PRIMARY + | KW_PROCESSLIST | KW_PROFILE | KW_PROFILES | KW_PROXY | KW_QUERY | KW_QUICK + | KW_REBUILD | KW_RECOVER | KW_RECURSIVE | KW_REDO_BUFFER_SIZE | KW_REDUNDANT + | KW_RELAY | KW_RELAYLOG | KW_RELAY_LOG_FILE | KW_RELAY_LOG_POS | KW_REMOVE + | KW_REORGANIZE | KW_REPAIR | KW_REPLICATE_DO_DB | KW_REPLICATE_DO_TABLE + | KW_REPLICATE_IGNORE_DB | KW_REPLICATE_IGNORE_TABLE + | KW_REPLICATE_REWRITE_DB | KW_REPLICATE_WILD_DO_TABLE + | KW_REPLICATE_WILD_IGNORE_TABLE | KW_REPLICATION | KW_REPLICATION_APPLIER | KW_REPLICATION_SLAVE_ADMIN | KW_RESET + | KW_RESOURCE_GROUP_ADMIN | KW_RESOURCE_GROUP_USER | KW_RESUME + | KW_RETURNED_SQLSTATE | KW_RETURNS | KW_REUSE | KW_ROLE | KW_ROLE_ADMIN | KW_ROLLBACK | KW_ROLLUP | KW_ROTATE | KW_ROW | KW_ROWS + | KW_ROW_FORMAT | KW_S3 | KW_SAVEPOINT | KW_SCHEDULE | KW_SCHEMA_NAME | KW_SECURITY | KW_SECONDARY_ENGINE_ATTRIBUTE | KW_SERIAL | KW_SERVER + | KW_SESSION | KW_SESSION_VARIABLES_ADMIN | KW_SET_USER_ID | KW_SHARE | KW_SHARED | KW_SHOW_ROUTINE | KW_SIGNED | KW_SIMPLE | KW_SLAVE + | KW_SLOW | KW_SKIP_QUERY_REWRITE | KW_SNAPSHOT | KW_SOCKET | KW_SOME | KW_SONAME | KW_SOUNDS | KW_SOURCE + | KW_SQL_AFTER_GTIDS | KW_SQL_AFTER_MTS_GAPS | KW_SQL_BEFORE_GTIDS + | KW_SQL_BUFFER_RESULT | KW_SQL_CACHE | KW_SQL_NO_CACHE | KW_SQL_THREAD + | KW_STACKED | KW_START | KW_STARTS | KW_STATS_AUTO_RECALC | KW_STATS_PERSISTENT + | KW_STATS_SAMPLE_PAGES | KW_STATUS | KW_STD | KW_STDDEV | KW_STDDEV_POP | KW_STDDEV_SAMP | KW_STOP | KW_STORAGE | KW_STRING + | KW_SUBCLASS_ORIGIN | KW_SUBJECT | KW_SUBPARTITION | KW_SUBPARTITIONS | KW_SUM | KW_SUSPEND | KW_SWAPS + | KW_SWITCHES | KW_SYSTEM_VARIABLES_ADMIN | KW_TABLE_NAME | KW_TABLESPACE | KW_TABLE_ENCRYPTION_ADMIN | KW_TABLE_TYPE + | KW_TEMPORARY | KW_TEMPTABLE | KW_THAN | KW_TP_CONNECTION_ADMIN | KW_TRADITIONAL + | KW_TRANSACTION | KW_TRANSACTIONAL | KW_TRIGGERS | KW_TRUNCATE | KW_UNBOUNDED | KW_UNDEFINED | KW_UNDOFILE + | KW_UNDO_BUFFER_SIZE | KW_UNINSTALL | KW_UNKNOWN | KW_UNTIL | KW_UPGRADE | KW_USER | KW_USE_FRM | KW_USER_RESOURCES + | KW_VALIDATION | KW_VALUE | KW_VAR_POP | KW_VAR_SAMP | KW_VARIABLES | KW_VARIANCE | KW_VERSION_TOKEN_ADMIN | KW_VIEW | KW_VIRTUAL + | KW_WAIT | KW_WARNINGS | KW_WITHOUT | KW_WORK | KW_WRAPPER | KW_X509 | KW_XA | KW_XA_RECOVER_ADMIN | KW_XML + ; + +functionNameBase + : KW_CHARSET | KW_COLLATION | KW_COUNT | KW_CUME_DIST | KW_DATABASE | KW_DATE | KW_DAY + | KW_DENSE_RANK | KW_FIRST_VALUE | KW_FORMAT + | KW_GEOMETRYCOLLECTION | KW_GET_FORMAT | KW_HOUR | KW_INVISIBLE | KW_LAG | KW_LAST_VALUE + | KW_LEAD | KW_LEFT | KW_LINESTRING | KW_MICROSECOND | KW_MINUTE | MOD | KW_MONTH + | KW_MULTILINESTRING | KW_MULTIPOINT | KW_MULTIPOLYGON | KW_NTH_VALUE | KW_NTILE + | KW_PERCENT_RANK | KW_POINT | KW_POLYGON | KW_POSITION | KW_QUARTER | KW_RANDOM | KW_RANK + | KW_REVERSE | KW_RIGHT | KW_ROW_COUNT | KW_ROW_NUMBER | KW_SCHEMA | KW_SECOND + | KW_SESSION_VARIABLES_ADMIN | KW_SRID | KW_SYSTEM_USER | KW_TIME | KW_TIMESTAMP + | KW_VISIBLE | KW_WEEK | KW_WEIGHT_STRING | KW_YEAR | KW_JSON_VALUE | KW_JSON_TABLE + ; diff --git a/src/index.ts b/src/index.ts index 54d68c6..d269d12 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,8 +2,8 @@ export * from './parser'; export * from './utils'; export * from './lib/flinksql/FlinkSqlParserListener'; export * from './lib/flinksql/FlinkSqlParserVisitor'; -export * from './lib/generic/SqlParserVisitor'; -export * from './lib/generic/SqlParserListener'; +export * from './lib/mysql/MySqlParserVisitor'; +export * from './lib/mysql/MySqlParserListener'; export * from './lib/hive/HiveSqlParserListener'; export * from './lib/hive/HiveSqlParserVisitor'; export * from './lib/plsql/PlSqlParserListener'; diff --git a/src/lib/generic/SqlLexer.interp b/src/lib/generic/SqlLexer.interp deleted file mode 100644 index d02ac06..0000000 --- a/src/lib/generic/SqlLexer.interp +++ /dev/null @@ -1,3175 +0,0 @@ -token literal names: -null -null -null -null -null -'ADD' -'ALL' -'ALTER' -'ALWAYS' -'ANALYZE' -'AND' -'AS' -'ASC' -'BEFORE' -'BETWEEN' -'BOTH' -'BY' -'CALL' -'CASCADE' -'CASE' -'CAST' -'CHANGE' -'CHARACTER' -'CHECK' -'COLLATE' -'COLUMN' -'CONDITION' -'CONSTRAINT' -'CONTINUE' -'CONVERT' -'CREATE' -'CROSS' -'CURRENT' -'CURRENT_USER' -'CURSOR' -'DATABASE' -'DATABASES' -'DECLARE' -'DEFAULT' -'DELAYED' -'DELETE' -'DESC' -'DESCRIBE' -'DETERMINISTIC' -'DIAGNOSTICS' -'DISTINCT' -'DISTINCTROW' -'DROP' -'EACH' -'ELSE' -'ELSEIF' -'ENCLOSED' -'ESCAPED' -'EXISTS' -'EXIT' -'EXPLAIN' -'FALSE' -'FETCH' -'FOR' -'FORCE' -'FOREIGN' -'FROM' -'FULLTEXT' -'GENERATED' -'GET' -'GRANT' -'GROUP' -'HAVING' -'HIGH_PRIORITY' -'IF' -'IGNORE' -'IN' -'INDEX' -'INFILE' -'INNER' -'INOUT' -'INSERT' -'INTERVAL' -'INTO' -'IS' -'ITERATE' -'JOIN' -'KEY' -'KEYS' -'KILL' -'LEADING' -'LEAVE' -'LEFT' -'LIKE' -'LIMIT' -'LINEAR' -'LINES' -'LOAD' -'LOCK' -'LOOP' -'LOW_PRIORITY' -'MASTER_BIND' -'MASTER_SSL_VERIFY_SERVER_CERT' -'MATCH' -'MAXVALUE' -'MODIFIES' -'NATURAL' -'NOT' -'NO_WRITE_TO_BINLOG' -'NULL' -'NUMBER' -'ON' -'OPTIMIZE' -'OPTION' -'OPTIONALLY' -'OR' -'ORDER' -'OUT' -'OUTER' -'OUTFILE' -'PARTITION' -'PRIMARY' -'PROCEDURE' -'PURGE' -'RANGE' -'READ' -'READS' -'REFERENCES' -'REGEXP' -'RELEASE' -'RENAME' -'REPEAT' -'REPLACE' -'REQUIRE' -'RESIGNAL' -'RESTRICT' -'RETURN' -'REVOKE' -'RIGHT' -'RLIKE' -'SCHEMA' -'SCHEMAS' -'SELECT' -'SET' -'SEPARATOR' -'SHOW' -'SIGNAL' -'SPATIAL' -'SQL' -'SQLEXCEPTION' -'SQLSTATE' -'SQLWARNING' -'SQL_BIG_RESULT' -'SQL_CALC_FOUND_ROWS' -'SQL_SMALL_RESULT' -'SSL' -'STACKED' -'STARTING' -'STRAIGHT_JOIN' -'TABLE' -'TERMINATED' -'THEN' -'TO' -'TRAILING' -'TRIGGER' -'TRUE' -'UNDO' -'UNION' -'UNIQUE' -'UNLOCK' -'UNSIGNED' -'UPDATE' -'USAGE' -'USE' -'USING' -'VALUES' -'WHEN' -'WHERE' -'WHILE' -'WITH' -'WRITE' -'XOR' -'ZEROFILL' -'TINYINT' -'SMALLINT' -'MEDIUMINT' -'MIDDLEINT' -'INT' -'INT1' -'INT2' -'INT3' -'INT4' -'INT8' -'INTEGER' -'BIGINT' -'REAL' -'DOUBLE' -'PRECISION' -'FLOAT' -'FLOAT4' -'FLOAT8' -'DECIMAL' -'DEC' -'NUMERIC' -'DATE' -'TIME' -'TIMESTAMP' -'DATETIME' -'YEAR' -'CHAR' -'VARCHAR' -'NVARCHAR' -'NATIONAL' -'BINARY' -'VARBINARY' -'TINYBLOB' -'BLOB' -'MEDIUMBLOB' -'LONG' -'LONGBLOB' -'TINYTEXT' -'TEXT' -'MEDIUMTEXT' -'LONGTEXT' -'ENUM' -'VARYING' -'SERIAL' -'YEAR_MONTH' -'DAY_HOUR' -'DAY_MINUTE' -'DAY_SECOND' -'HOUR_MINUTE' -'HOUR_SECOND' -'MINUTE_SECOND' -'SECOND_MICROSECOND' -'MINUTE_MICROSECOND' -'HOUR_MICROSECOND' -'DAY_MICROSECOND' -'JSON_VALID' -'JSON_SCHEMA_VALID' -'AVG' -'BIT_AND' -'BIT_OR' -'BIT_XOR' -'COUNT' -'GROUP_CONCAT' -'MAX' -'MIN' -'STD' -'STDDEV' -'STDDEV_POP' -'STDDEV_SAMP' -'SUM' -'VAR_POP' -'VAR_SAMP' -'VARIANCE' -'CURRENT_DATE' -'CURRENT_TIME' -'CURRENT_TIMESTAMP' -'LOCALTIME' -'CURDATE' -'CURTIME' -'DATE_ADD' -'DATE_SUB' -'EXTRACT' -'LOCALTIMESTAMP' -'NOW' -'POSITION' -'SUBSTR' -'SUBSTRING' -'SYSDATE' -'TRIM' -'UTC_DATE' -'UTC_TIME' -'UTC_TIMESTAMP' -'ACCOUNT' -'ACTION' -'AFTER' -'AGGREGATE' -'ALGORITHM' -'ANY' -'AT' -'AUTHORS' -'AUTOCOMMIT' -'AUTOEXTEND_SIZE' -'AUTO_INCREMENT' -'AVG_ROW_LENGTH' -'BEGIN' -'BINLOG' -'BIT' -'BLOCK' -'BOOL' -'BOOLEAN' -'BTREE' -'CACHE' -'CASCADED' -'CHAIN' -'CHANGED' -'CHANNEL' -'CHECKSUM' -'PAGE_CHECKSUM' -'CIPHER' -'CLASS_ORIGIN' -'CLIENT' -'CLOSE' -'COALESCE' -'CODE' -'COLUMNS' -'COLUMN_FORMAT' -'COLUMN_NAME' -'COMMENT' -'COMMIT' -'COMPACT' -'COMPLETION' -'COMPRESSED' -'COMPRESSION' -'CONCURRENT' -'CONNECTION' -'CONSISTENT' -'CONSTRAINT_CATALOG' -'CONSTRAINT_SCHEMA' -'CONSTRAINT_NAME' -'CONTAINS' -'CONTEXT' -'CONTRIBUTORS' -'COPY' -'CPU' -'CURSOR_NAME' -'DATA' -'DATAFILE' -'DEALLOCATE' -'DEFAULT_AUTH' -'DEFINER' -'DELAY_KEY_WRITE' -'DES_KEY_FILE' -'DIRECTORY' -'DISABLE' -'DISCARD' -'DISK' -'DO' -'DUMPFILE' -'DUPLICATE' -'DYNAMIC' -'ENABLE' -'ENCRYPTION' -'END' -'ENDS' -'ENGINE' -'ENGINES' -'ERROR' -'ERRORS' -'ESCAPE' -'EVEN' -'EVENT' -'EVENTS' -'EVERY' -'EXCHANGE' -'EXCLUSIVE' -'EXPIRE' -'EXPORT' -'EXTENDED' -'EXTENT_SIZE' -'FAST' -'FAULTS' -'FIELDS' -'FILE_BLOCK_SIZE' -'FILTER' -'FIRST' -'FIXED' -'FLUSH' -'FOLLOWS' -'FOUND' -'FULL' -'FUNCTION' -'GENERAL' -'GLOBAL' -'GRANTS' -'GROUP_REPLICATION' -'HANDLER' -'HASH' -'HELP' -'HOST' -'HOSTS' -'IDENTIFIED' -'IGNORE_SERVER_IDS' -'IMPORT' -'INDEXES' -'INITIAL_SIZE' -'INPLACE' -'INSERT_METHOD' -'INSTALL' -'INSTANCE' -'INVISIBLE' -'INVOKER' -'IO' -'IO_THREAD' -'IPC' -'ISOLATION' -'ISSUER' -'JSON' -'KEY_BLOCK_SIZE' -'LANGUAGE' -'LAST' -'LEAVES' -'LESS' -'LEVEL' -'LIST' -'LOCAL' -'LOGFILE' -'LOGS' -'MASTER' -'MASTER_AUTO_POSITION' -'MASTER_CONNECT_RETRY' -'MASTER_DELAY' -'MASTER_HEARTBEAT_PERIOD' -'MASTER_HOST' -'MASTER_LOG_FILE' -'MASTER_LOG_POS' -'MASTER_PASSWORD' -'MASTER_PORT' -'MASTER_RETRY_COUNT' -'MASTER_SSL' -'MASTER_SSL_CA' -'MASTER_SSL_CAPATH' -'MASTER_SSL_CERT' -'MASTER_SSL_CIPHER' -'MASTER_SSL_CRL' -'MASTER_SSL_CRLPATH' -'MASTER_SSL_KEY' -'MASTER_TLS_VERSION' -'MASTER_USER' -'MAX_CONNECTIONS_PER_HOUR' -'MAX_QUERIES_PER_HOUR' -'MAX_ROWS' -'MAX_SIZE' -'MAX_UPDATES_PER_HOUR' -'MAX_USER_CONNECTIONS' -'MEDIUM' -'MERGE' -'MESSAGE_TEXT' -'MID' -'MIGRATE' -'MIN_ROWS' -'MODE' -'MODIFY' -'MUTEX' -'MYSQL' -'MYSQL_ERRNO' -'NAME' -'NAMES' -'NCHAR' -'NEVER' -'NEXT' -'NO' -'NODEGROUP' -'NONE' -'OFFLINE' -'OFFSET' -'OJ' -'OLD_PASSWORD' -'ONE' -'ONLINE' -'ONLY' -'OPEN' -'OPTIMIZER_COSTS' -'OPTIONS' -'OWNER' -'PACK_KEYS' -'PAGE' -'PARSER' -'PARTIAL' -'PARTITIONING' -'PARTITIONS' -'PASSWORD' -'PHASE' -'PLUGIN' -'PLUGIN_DIR' -'PLUGINS' -'PORT' -'PRECEDES' -'PREPARE' -'PRESERVE' -'PREV' -'PROCESSLIST' -'PROFILE' -'PROFILES' -'PROXY' -'QUERY' -'QUICK' -'REBUILD' -'RECOVER' -'REDO_BUFFER_SIZE' -'REDUNDANT' -'RELAY' -'RELAY_LOG_FILE' -'RELAY_LOG_POS' -'RELAYLOG' -'REMOVE' -'REORGANIZE' -'REPAIR' -'REPLICATE_DO_DB' -'REPLICATE_DO_TABLE' -'REPLICATE_IGNORE_DB' -'REPLICATE_IGNORE_TABLE' -'REPLICATE_REWRITE_DB' -'REPLICATE_WILD_DO_TABLE' -'REPLICATE_WILD_IGNORE_TABLE' -'REPLICATION' -'RESET' -'RESUME' -'RETURNED_SQLSTATE' -'RETURNS' -'ROLE' -'ROLLBACK' -'ROLLUP' -'ROTATE' -'ROW' -'ROWS' -'ROW_FORMAT' -'SAVEPOINT' -'SCHEDULE' -'SECURITY' -'SERVER' -'SESSION' -'SHARE' -'SHARED' -'SIGNED' -'SIMPLE' -'SLAVE' -'SLOW' -'SNAPSHOT' -'SOCKET' -'SOME' -'SONAME' -'SOUNDS' -'SOURCE' -'SQL_AFTER_GTIDS' -'SQL_AFTER_MTS_GAPS' -'SQL_BEFORE_GTIDS' -'SQL_BUFFER_RESULT' -'SQL_CACHE' -'SQL_NO_CACHE' -'SQL_THREAD' -'START' -'STARTS' -'STATS_AUTO_RECALC' -'STATS_PERSISTENT' -'STATS_SAMPLE_PAGES' -'STATUS' -'STOP' -'STORAGE' -'STORED' -'STRING' -'SUBCLASS_ORIGIN' -'SUBJECT' -'SUBPARTITION' -'SUBPARTITIONS' -'SUSPEND' -'SWAPS' -'SWITCHES' -'TABLE_NAME' -'TABLESPACE' -'TEMPORARY' -'TEMPTABLE' -'THAN' -'TRADITIONAL' -'TRANSACTION' -'TRANSACTIONAL' -'TRIGGERS' -'TRUNCATE' -'UNDEFINED' -'UNDOFILE' -'UNDO_BUFFER_SIZE' -'UNINSTALL' -'UNKNOWN' -'UNTIL' -'UPGRADE' -'USER' -'USE_FRM' -'USER_RESOURCES' -'VALIDATION' -'VALUE' -'VARIABLES' -'VIEW' -'VIRTUAL' -'VISIBLE' -'WAIT' -'WARNINGS' -'WITHOUT' -'WORK' -'WRAPPER' -'X509' -'XA' -'XML' -'EUR' -'USA' -'JIS' -'ISO' -'INTERNAL' -'QUARTER' -'MONTH' -'DAY' -'HOUR' -'MINUTE' -'WEEK' -'SECOND' -'MICROSECOND' -'TABLES' -'ROUTINE' -'EXECUTE' -'FILE' -'PROCESS' -'RELOAD' -'SHUTDOWN' -'SUPER' -'PRIVILEGES' -'APPLICATION_PASSWORD_ADMIN' -'AUDIT_ADMIN' -'BACKUP_ADMIN' -'BINLOG_ADMIN' -'BINLOG_ENCRYPTION_ADMIN' -'CLONE_ADMIN' -'CONNECTION_ADMIN' -'ENCRYPTION_KEY_ADMIN' -'FIREWALL_ADMIN' -'FIREWALL_USER' -'GROUP_REPLICATION_ADMIN' -'INNODB_REDO_LOG_ARCHIVE' -'NDB_STORED_USER' -'PERSIST_RO_VARIABLES_ADMIN' -'REPLICATION_APPLIER' -'REPLICATION_SLAVE_ADMIN' -'RESOURCE_GROUP_ADMIN' -'RESOURCE_GROUP_USER' -'ROLE_ADMIN' -null -'SET_USER_ID' -'SHOW_ROUTINE' -'SYSTEM_VARIABLES_ADMIN' -'TABLE_ENCRYPTION_ADMIN' -'VERSION_TOKEN_ADMIN' -'XA_RECOVER_ADMIN' -'ARMSCII8' -'ASCII' -'BIG5' -'CP1250' -'CP1251' -'CP1256' -'CP1257' -'CP850' -'CP852' -'CP866' -'CP932' -'DEC8' -'EUCJPMS' -'EUCKR' -'GB2312' -'GBK' -'GEOSTD8' -'GREEK' -'HEBREW' -'HP8' -'KEYBCS2' -'KOI8R' -'KOI8U' -'LATIN1' -'LATIN2' -'LATIN5' -'LATIN7' -'MACCE' -'MACROMAN' -'SJIS' -'SWE7' -'TIS620' -'UCS2' -'UJIS' -'UTF16' -'UTF16LE' -'UTF32' -'UTF8' -'UTF8MB3' -'UTF8MB4' -'ARCHIVE' -'BLACKHOLE' -'CSV' -'FEDERATED' -'INNODB' -'MEMORY' -'MRG_MYISAM' -'MYISAM' -'NDB' -'NDBCLUSTER' -'PERFORMANCE_SCHEMA' -'TOKUDB' -'REPEATABLE' -'COMMITTED' -'UNCOMMITTED' -'SERIALIZABLE' -'GEOMETRYCOLLECTION' -'GEOMCOLLECTION' -'GEOMETRY' -'LINESTRING' -'MULTILINESTRING' -'MULTIPOINT' -'MULTIPOLYGON' -'POINT' -'POLYGON' -'ABS' -'ACOS' -'ADDDATE' -'ADDTIME' -'AES_DECRYPT' -'AES_ENCRYPT' -'AREA' -'ASBINARY' -'ASIN' -'ASTEXT' -'ASWKB' -'ASWKT' -'ASYMMETRIC_DECRYPT' -'ASYMMETRIC_DERIVE' -'ASYMMETRIC_ENCRYPT' -'ASYMMETRIC_SIGN' -'ASYMMETRIC_VERIFY' -'ATAN' -'ATAN2' -'BENCHMARK' -'BIN' -'BIT_COUNT' -'BIT_LENGTH' -'BUFFER' -'CATALOG_NAME' -'CEIL' -'CEILING' -'CENTROID' -'CHARACTER_LENGTH' -'CHARSET' -'CHAR_LENGTH' -'COERCIBILITY' -'COLLATION' -'COMPRESS' -'CONCAT' -'CONCAT_WS' -'CONNECTION_ID' -'CONV' -'CONVERT_TZ' -'COS' -'COT' -'CRC32' -'CREATE_ASYMMETRIC_PRIV_KEY' -'CREATE_ASYMMETRIC_PUB_KEY' -'CREATE_DH_PARAMETERS' -'CREATE_DIGEST' -'CROSSES' -'DATEDIFF' -'DATE_FORMAT' -'DAYNAME' -'DAYOFMONTH' -'DAYOFWEEK' -'DAYOFYEAR' -'DECODE' -'DEGREES' -'DES_DECRYPT' -'DES_ENCRYPT' -'DIMENSION' -'DISJOINT' -'ELT' -'ENCODE' -'ENCRYPT' -'ENDPOINT' -'ENVELOPE' -'EQUALS' -'EXP' -'EXPORT_SET' -'EXTERIORRING' -'EXTRACTVALUE' -'FIELD' -'FIND_IN_SET' -'FLOOR' -'FORMAT' -'FOUND_ROWS' -'FROM_BASE64' -'FROM_DAYS' -'FROM_UNIXTIME' -'GEOMCOLLFROMTEXT' -'GEOMCOLLFROMWKB' -'GEOMETRYCOLLECTIONFROMTEXT' -'GEOMETRYCOLLECTIONFROMWKB' -'GEOMETRYFROMTEXT' -'GEOMETRYFROMWKB' -'GEOMETRYN' -'GEOMETRYTYPE' -'GEOMFROMTEXT' -'GEOMFROMWKB' -'GET_FORMAT' -'GET_LOCK' -'GLENGTH' -'GREATEST' -'GTID_SUBSET' -'GTID_SUBTRACT' -'HEX' -'IFNULL' -'INET6_ATON' -'INET6_NTOA' -'INET_ATON' -'INET_NTOA' -'INSTR' -'INTERIORRINGN' -'INTERSECTS' -'ISCLOSED' -'ISEMPTY' -'ISNULL' -'ISSIMPLE' -'IS_FREE_LOCK' -'IS_IPV4' -'IS_IPV4_COMPAT' -'IS_IPV4_MAPPED' -'IS_IPV6' -'IS_USED_LOCK' -'LAST_INSERT_ID' -'LCASE' -'LEAST' -'LENGTH' -'LINEFROMTEXT' -'LINEFROMWKB' -'LINESTRINGFROMTEXT' -'LINESTRINGFROMWKB' -'LN' -'LOAD_FILE' -'LOCATE' -'LOG' -'LOG10' -'LOG2' -'LOWER' -'LPAD' -'LTRIM' -'MAKEDATE' -'MAKETIME' -'MAKE_SET' -'MASTER_POS_WAIT' -'MBRCONTAINS' -'MBRDISJOINT' -'MBREQUAL' -'MBRINTERSECTS' -'MBROVERLAPS' -'MBRTOUCHES' -'MBRWITHIN' -'MD5' -'MLINEFROMTEXT' -'MLINEFROMWKB' -'MONTHNAME' -'MPOINTFROMTEXT' -'MPOINTFROMWKB' -'MPOLYFROMTEXT' -'MPOLYFROMWKB' -'MULTILINESTRINGFROMTEXT' -'MULTILINESTRINGFROMWKB' -'MULTIPOINTFROMTEXT' -'MULTIPOINTFROMWKB' -'MULTIPOLYGONFROMTEXT' -'MULTIPOLYGONFROMWKB' -'NAME_CONST' -'NULLIF' -'NUMGEOMETRIES' -'NUMINTERIORRINGS' -'NUMPOINTS' -'OCT' -'OCTET_LENGTH' -'ORD' -'OVERLAPS' -'PERIOD_ADD' -'PERIOD_DIFF' -'PI' -'POINTFROMTEXT' -'POINTFROMWKB' -'POINTN' -'POLYFROMTEXT' -'POLYFROMWKB' -'POLYGONFROMTEXT' -'POLYGONFROMWKB' -'POW' -'POWER' -'QUOTE' -'RADIANS' -'RAND' -'RANDOM_BYTES' -'RELEASE_LOCK' -'REVERSE' -'ROUND' -'ROW_COUNT' -'RPAD' -'RTRIM' -'SEC_TO_TIME' -'SESSION_USER' -'SHA' -'SHA1' -'SHA2' -'SCHEMA_NAME' -'SIGN' -'SIN' -'SLEEP' -'SOUNDEX' -'SQL_THREAD_WAIT_AFTER_GTIDS' -'SQRT' -'SRID' -'STARTPOINT' -'STRCMP' -'STR_TO_DATE' -'ST_AREA' -'ST_ASBINARY' -'ST_ASTEXT' -'ST_ASWKB' -'ST_ASWKT' -'ST_BUFFER' -'ST_CENTROID' -'ST_CONTAINS' -'ST_CROSSES' -'ST_DIFFERENCE' -'ST_DIMENSION' -'ST_DISJOINT' -'ST_DISTANCE' -'ST_ENDPOINT' -'ST_ENVELOPE' -'ST_EQUALS' -'ST_EXTERIORRING' -'ST_GEOMCOLLFROMTEXT' -'ST_GEOMCOLLFROMTXT' -'ST_GEOMCOLLFROMWKB' -'ST_GEOMETRYCOLLECTIONFROMTEXT' -'ST_GEOMETRYCOLLECTIONFROMWKB' -'ST_GEOMETRYFROMTEXT' -'ST_GEOMETRYFROMWKB' -'ST_GEOMETRYN' -'ST_GEOMETRYTYPE' -'ST_GEOMFROMTEXT' -'ST_GEOMFROMWKB' -'ST_INTERIORRINGN' -'ST_INTERSECTION' -'ST_INTERSECTS' -'ST_ISCLOSED' -'ST_ISEMPTY' -'ST_ISSIMPLE' -'ST_LINEFROMTEXT' -'ST_LINEFROMWKB' -'ST_LINESTRINGFROMTEXT' -'ST_LINESTRINGFROMWKB' -'ST_NUMGEOMETRIES' -'ST_NUMINTERIORRING' -'ST_NUMINTERIORRINGS' -'ST_NUMPOINTS' -'ST_OVERLAPS' -'ST_POINTFROMTEXT' -'ST_POINTFROMWKB' -'ST_POINTN' -'ST_POLYFROMTEXT' -'ST_POLYFROMWKB' -'ST_POLYGONFROMTEXT' -'ST_POLYGONFROMWKB' -'ST_SRID' -'ST_STARTPOINT' -'ST_SYMDIFFERENCE' -'ST_TOUCHES' -'ST_UNION' -'ST_WITHIN' -'ST_X' -'ST_Y' -'SUBDATE' -'SUBSTRING_INDEX' -'SUBTIME' -'SYSTEM_USER' -'TAN' -'TIMEDIFF' -'TIMESTAMPADD' -'TIMESTAMPDIFF' -'TIME_FORMAT' -'TIME_TO_SEC' -'TOUCHES' -'TO_BASE64' -'TO_DAYS' -'TO_SECONDS' -'UCASE' -'UNCOMPRESS' -'UNCOMPRESSED_LENGTH' -'UNHEX' -'UNIX_TIMESTAMP' -'UPDATEXML' -'UPPER' -'UUID' -'UUID_SHORT' -'VALIDATE_PASSWORD_STRENGTH' -'VERSION' -'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' -'WEEKDAY' -'WEEKOFYEAR' -'WEIGHT_STRING' -'WITHIN' -'YEARWEEK' -'Y' -'X' -':=' -'+=' -'-=' -'*=' -'/=' -'%=' -'&=' -'^=' -'|=' -'*' -'/' -'%' -'+' -'--' -'-' -'DIV' -'MOD' -'=' -'>' -'<' -'!' -'~' -'|' -'&' -'^' -'.' -'(' -')' -',' -';' -'@' -'0' -'1' -'2' -'\'' -'"' -'`' -':' -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -SPACE -SPEC_MYSQL_COMMENT -COMMENT_INPUT -LINE_COMMENT -ADD -ALL -ALTER -ALWAYS -ANALYZE -AND -AS -ASC -BEFORE -BETWEEN -BOTH -BY -CALL -CASCADE -CASE -CAST -CHANGE -CHARACTER -CHECK -COLLATE -COLUMN -CONDITION -CONSTRAINT -CONTINUE -CONVERT -CREATE -CROSS -CURRENT -CURRENT_USER -CURSOR -DATABASE -DATABASES -DECLARE -DEFAULT -DELAYED -DELETE -DESC -DESCRIBE -DETERMINISTIC -DIAGNOSTICS -DISTINCT -DISTINCTROW -DROP -EACH -ELSE -ELSEIF -ENCLOSED -ESCAPED -EXISTS -EXIT -EXPLAIN -FALSE -FETCH -FOR -FORCE -FOREIGN -FROM -FULLTEXT -GENERATED -GET -GRANT -GROUP -HAVING -HIGH_PRIORITY -IF -IGNORE -IN -INDEX -INFILE -INNER -INOUT -INSERT -INTERVAL -INTO -IS -ITERATE -JOIN -KEY -KEYS -KILL -LEADING -LEAVE -LEFT -LIKE -LIMIT -LINEAR -LINES -LOAD -LOCK -LOOP -LOW_PRIORITY -MASTER_BIND -MASTER_SSL_VERIFY_SERVER_CERT -MATCH -MAXVALUE -MODIFIES -NATURAL -NOT -NO_WRITE_TO_BINLOG -NULL_LITERAL -NUMBER -ON -OPTIMIZE -OPTION -OPTIONALLY -OR -ORDER -OUT -OUTER -OUTFILE -PARTITION -PRIMARY -PROCEDURE -PURGE -RANGE -READ -READS -REFERENCES -REGEXP -RELEASE -RENAME -REPEAT -REPLACE -REQUIRE -RESIGNAL -RESTRICT -RETURN -REVOKE -RIGHT -RLIKE -SCHEMA -SCHEMAS -SELECT -SET -SEPARATOR -SHOW -SIGNAL -SPATIAL -SQL -SQLEXCEPTION -SQLSTATE -SQLWARNING -SQL_BIG_RESULT -SQL_CALC_FOUND_ROWS -SQL_SMALL_RESULT -SSL -STACKED -STARTING -STRAIGHT_JOIN -TABLE -TERMINATED -THEN -TO -TRAILING -TRIGGER -TRUE -UNDO -UNION -UNIQUE -UNLOCK -UNSIGNED -UPDATE -USAGE -USE -USING -VALUES -WHEN -WHERE -WHILE -WITH -WRITE -XOR -ZEROFILL -TINYINT -SMALLINT -MEDIUMINT -MIDDLEINT -INT -INT1 -INT2 -INT3 -INT4 -INT8 -INTEGER -BIGINT -REAL -DOUBLE -PRECISION -FLOAT -FLOAT4 -FLOAT8 -DECIMAL -DEC -NUMERIC -DATE -TIME -TIMESTAMP -DATETIME -YEAR -CHAR -VARCHAR -NVARCHAR -NATIONAL -BINARY -VARBINARY -TINYBLOB -BLOB -MEDIUMBLOB -LONG -LONGBLOB -TINYTEXT -TEXT -MEDIUMTEXT -LONGTEXT -ENUM -VARYING -SERIAL -YEAR_MONTH -DAY_HOUR -DAY_MINUTE -DAY_SECOND -HOUR_MINUTE -HOUR_SECOND -MINUTE_SECOND -SECOND_MICROSECOND -MINUTE_MICROSECOND -HOUR_MICROSECOND -DAY_MICROSECOND -JSON_VALID -JSON_SCHEMA_VALID -AVG -BIT_AND -BIT_OR -BIT_XOR -COUNT -GROUP_CONCAT -MAX -MIN -STD -STDDEV -STDDEV_POP -STDDEV_SAMP -SUM -VAR_POP -VAR_SAMP -VARIANCE -CURRENT_DATE -CURRENT_TIME -CURRENT_TIMESTAMP -LOCALTIME -CURDATE -CURTIME -DATE_ADD -DATE_SUB -EXTRACT -LOCALTIMESTAMP -NOW -POSITION -SUBSTR -SUBSTRING -SYSDATE -TRIM -UTC_DATE -UTC_TIME -UTC_TIMESTAMP -ACCOUNT -ACTION -AFTER -AGGREGATE -ALGORITHM -ANY -AT -AUTHORS -AUTOCOMMIT -AUTOEXTEND_SIZE -AUTO_INCREMENT -AVG_ROW_LENGTH -BEGIN -BINLOG -BIT -BLOCK -BOOL -BOOLEAN -BTREE -CACHE -CASCADED -CHAIN -CHANGED -CHANNEL -CHECKSUM -PAGE_CHECKSUM -CIPHER -CLASS_ORIGIN -CLIENT -CLOSE -COALESCE -CODE -COLUMNS -COLUMN_FORMAT -COLUMN_NAME -COMMENT -COMMIT -COMPACT -COMPLETION -COMPRESSED -COMPRESSION -CONCURRENT -CONNECTION -CONSISTENT -CONSTRAINT_CATALOG -CONSTRAINT_SCHEMA -CONSTRAINT_NAME -CONTAINS -CONTEXT -CONTRIBUTORS -COPY -CPU -CURSOR_NAME -DATA -DATAFILE -DEALLOCATE -DEFAULT_AUTH -DEFINER -DELAY_KEY_WRITE -DES_KEY_FILE -DIRECTORY -DISABLE -DISCARD -DISK -DO -DUMPFILE -DUPLICATE -DYNAMIC -ENABLE -ENCRYPTION -END -ENDS -ENGINE -ENGINES -ERROR -ERRORS -ESCAPE -EVEN -EVENT -EVENTS -EVERY -EXCHANGE -EXCLUSIVE -EXPIRE -EXPORT -EXTENDED -EXTENT_SIZE -FAST -FAULTS -FIELDS -FILE_BLOCK_SIZE -FILTER -FIRST -FIXED -FLUSH -FOLLOWS -FOUND -FULL -FUNCTION -GENERAL -GLOBAL -GRANTS -GROUP_REPLICATION -HANDLER -HASH -HELP -HOST -HOSTS -IDENTIFIED -IGNORE_SERVER_IDS -IMPORT -INDEXES -INITIAL_SIZE -INPLACE -INSERT_METHOD -INSTALL -INSTANCE -INVISIBLE -INVOKER -IO -IO_THREAD -IPC -ISOLATION -ISSUER -JSON -KEY_BLOCK_SIZE -LANGUAGE -LAST -LEAVES -LESS -LEVEL -LIST -LOCAL -LOGFILE -LOGS -MASTER -MASTER_AUTO_POSITION -MASTER_CONNECT_RETRY -MASTER_DELAY -MASTER_HEARTBEAT_PERIOD -MASTER_HOST -MASTER_LOG_FILE -MASTER_LOG_POS -MASTER_PASSWORD -MASTER_PORT -MASTER_RETRY_COUNT -MASTER_SSL -MASTER_SSL_CA -MASTER_SSL_CAPATH -MASTER_SSL_CERT -MASTER_SSL_CIPHER -MASTER_SSL_CRL -MASTER_SSL_CRLPATH -MASTER_SSL_KEY -MASTER_TLS_VERSION -MASTER_USER -MAX_CONNECTIONS_PER_HOUR -MAX_QUERIES_PER_HOUR -MAX_ROWS -MAX_SIZE -MAX_UPDATES_PER_HOUR -MAX_USER_CONNECTIONS -MEDIUM -MERGE -MESSAGE_TEXT -MID -MIGRATE -MIN_ROWS -MODE -MODIFY -MUTEX -MYSQL -MYSQL_ERRNO -NAME -NAMES -NCHAR -NEVER -NEXT -NO -NODEGROUP -NONE -OFFLINE -OFFSET -OJ -OLD_PASSWORD -ONE -ONLINE -ONLY -OPEN -OPTIMIZER_COSTS -OPTIONS -OWNER -PACK_KEYS -PAGE -PARSER -PARTIAL -PARTITIONING -PARTITIONS -PASSWORD -PHASE -PLUGIN -PLUGIN_DIR -PLUGINS -PORT -PRECEDES -PREPARE -PRESERVE -PREV -PROCESSLIST -PROFILE -PROFILES -PROXY -QUERY -QUICK -REBUILD -RECOVER -REDO_BUFFER_SIZE -REDUNDANT -RELAY -RELAY_LOG_FILE -RELAY_LOG_POS -RELAYLOG -REMOVE -REORGANIZE -REPAIR -REPLICATE_DO_DB -REPLICATE_DO_TABLE -REPLICATE_IGNORE_DB -REPLICATE_IGNORE_TABLE -REPLICATE_REWRITE_DB -REPLICATE_WILD_DO_TABLE -REPLICATE_WILD_IGNORE_TABLE -REPLICATION -RESET -RESUME -RETURNED_SQLSTATE -RETURNS -ROLE -ROLLBACK -ROLLUP -ROTATE -ROW -ROWS -ROW_FORMAT -SAVEPOINT -SCHEDULE -SECURITY -SERVER -SESSION -SHARE -SHARED -SIGNED -SIMPLE -SLAVE -SLOW -SNAPSHOT -SOCKET -SOME -SONAME -SOUNDS -SOURCE -SQL_AFTER_GTIDS -SQL_AFTER_MTS_GAPS -SQL_BEFORE_GTIDS -SQL_BUFFER_RESULT -SQL_CACHE -SQL_NO_CACHE -SQL_THREAD -START -STARTS -STATS_AUTO_RECALC -STATS_PERSISTENT -STATS_SAMPLE_PAGES -STATUS -STOP -STORAGE -STORED -STRING -SUBCLASS_ORIGIN -SUBJECT -SUBPARTITION -SUBPARTITIONS -SUSPEND -SWAPS -SWITCHES -TABLE_NAME -TABLESPACE -TEMPORARY -TEMPTABLE -THAN -TRADITIONAL -TRANSACTION -TRANSACTIONAL -TRIGGERS -TRUNCATE -UNDEFINED -UNDOFILE -UNDO_BUFFER_SIZE -UNINSTALL -UNKNOWN -UNTIL -UPGRADE -USER -USE_FRM -USER_RESOURCES -VALIDATION -VALUE -VARIABLES -VIEW -VIRTUAL -VISIBLE -WAIT -WARNINGS -WITHOUT -WORK -WRAPPER -X509 -XA -XML -EUR -USA -JIS -ISO -INTERNAL -QUARTER -MONTH -DAY -HOUR -MINUTE -WEEK -SECOND -MICROSECOND -TABLES -ROUTINE -EXECUTE -FILE -PROCESS -RELOAD -SHUTDOWN -SUPER -PRIVILEGES -APPLICATION_PASSWORD_ADMIN -AUDIT_ADMIN -BACKUP_ADMIN -BINLOG_ADMIN -BINLOG_ENCRYPTION_ADMIN -CLONE_ADMIN -CONNECTION_ADMIN -ENCRYPTION_KEY_ADMIN -FIREWALL_ADMIN -FIREWALL_USER -GROUP_REPLICATION_ADMIN -INNODB_REDO_LOG_ARCHIVE -NDB_STORED_USER -PERSIST_RO_VARIABLES_ADMIN -REPLICATION_APPLIER -REPLICATION_SLAVE_ADMIN -RESOURCE_GROUP_ADMIN -RESOURCE_GROUP_USER -ROLE_ADMIN -SESSION_VARIABLES_ADMIN -SET_USER_ID -SHOW_ROUTINE -SYSTEM_VARIABLES_ADMIN -TABLE_ENCRYPTION_ADMIN -VERSION_TOKEN_ADMIN -XA_RECOVER_ADMIN -ARMSCII8 -ASCII -BIG5 -CP1250 -CP1251 -CP1256 -CP1257 -CP850 -CP852 -CP866 -CP932 -DEC8 -EUCJPMS -EUCKR -GB2312 -GBK -GEOSTD8 -GREEK -HEBREW -HP8 -KEYBCS2 -KOI8R -KOI8U -LATIN1 -LATIN2 -LATIN5 -LATIN7 -MACCE -MACROMAN -SJIS -SWE7 -TIS620 -UCS2 -UJIS -UTF16 -UTF16LE -UTF32 -UTF8 -UTF8MB3 -UTF8MB4 -ARCHIVE -BLACKHOLE -CSV -FEDERATED -INNODB -MEMORY -MRG_MYISAM -MYISAM -NDB -NDBCLUSTER -PERFORMANCE_SCHEMA -TOKUDB -REPEATABLE -COMMITTED -UNCOMMITTED -SERIALIZABLE -GEOMETRYCOLLECTION -GEOMCOLLECTION -GEOMETRY -LINESTRING -MULTILINESTRING -MULTIPOINT -MULTIPOLYGON -POINT -POLYGON -ABS -ACOS -ADDDATE -ADDTIME -AES_DECRYPT -AES_ENCRYPT -AREA -ASBINARY -ASIN -ASTEXT -ASWKB -ASWKT -ASYMMETRIC_DECRYPT -ASYMMETRIC_DERIVE -ASYMMETRIC_ENCRYPT -ASYMMETRIC_SIGN -ASYMMETRIC_VERIFY -ATAN -ATAN2 -BENCHMARK -BIN -BIT_COUNT -BIT_LENGTH -BUFFER -CATALOG_NAME -CEIL -CEILING -CENTROID -CHARACTER_LENGTH -CHARSET -CHAR_LENGTH -COERCIBILITY -COLLATION -COMPRESS -CONCAT -CONCAT_WS -CONNECTION_ID -CONV -CONVERT_TZ -COS -COT -CRC32 -CREATE_ASYMMETRIC_PRIV_KEY -CREATE_ASYMMETRIC_PUB_KEY -CREATE_DH_PARAMETERS -CREATE_DIGEST -CROSSES -DATEDIFF -DATE_FORMAT -DAYNAME -DAYOFMONTH -DAYOFWEEK -DAYOFYEAR -DECODE -DEGREES -DES_DECRYPT -DES_ENCRYPT -DIMENSION -DISJOINT -ELT -ENCODE -ENCRYPT -ENDPOINT -ENVELOPE -EQUALS -EXP -EXPORT_SET -EXTERIORRING -EXTRACTVALUE -FIELD -FIND_IN_SET -FLOOR -FORMAT -FOUND_ROWS -FROM_BASE64 -FROM_DAYS -FROM_UNIXTIME -GEOMCOLLFROMTEXT -GEOMCOLLFROMWKB -GEOMETRYCOLLECTIONFROMTEXT -GEOMETRYCOLLECTIONFROMWKB -GEOMETRYFROMTEXT -GEOMETRYFROMWKB -GEOMETRYN -GEOMETRYTYPE -GEOMFROMTEXT -GEOMFROMWKB -GET_FORMAT -GET_LOCK -GLENGTH -GREATEST -GTID_SUBSET -GTID_SUBTRACT -HEX -IFNULL -INET6_ATON -INET6_NTOA -INET_ATON -INET_NTOA -INSTR -INTERIORRINGN -INTERSECTS -ISCLOSED -ISEMPTY -ISNULL -ISSIMPLE -IS_FREE_LOCK -IS_IPV4 -IS_IPV4_COMPAT -IS_IPV4_MAPPED -IS_IPV6 -IS_USED_LOCK -LAST_INSERT_ID -LCASE -LEAST -LENGTH -LINEFROMTEXT -LINEFROMWKB -LINESTRINGFROMTEXT -LINESTRINGFROMWKB -LN -LOAD_FILE -LOCATE -LOG -LOG10 -LOG2 -LOWER -LPAD -LTRIM -MAKEDATE -MAKETIME -MAKE_SET -MASTER_POS_WAIT -MBRCONTAINS -MBRDISJOINT -MBREQUAL -MBRINTERSECTS -MBROVERLAPS -MBRTOUCHES -MBRWITHIN -MD5 -MLINEFROMTEXT -MLINEFROMWKB -MONTHNAME -MPOINTFROMTEXT -MPOINTFROMWKB -MPOLYFROMTEXT -MPOLYFROMWKB -MULTILINESTRINGFROMTEXT -MULTILINESTRINGFROMWKB -MULTIPOINTFROMTEXT -MULTIPOINTFROMWKB -MULTIPOLYGONFROMTEXT -MULTIPOLYGONFROMWKB -NAME_CONST -NULLIF -NUMGEOMETRIES -NUMINTERIORRINGS -NUMPOINTS -OCT -OCTET_LENGTH -ORD -OVERLAPS -PERIOD_ADD -PERIOD_DIFF -PI -POINTFROMTEXT -POINTFROMWKB -POINTN -POLYFROMTEXT -POLYFROMWKB -POLYGONFROMTEXT -POLYGONFROMWKB -POW -POWER -QUOTE -RADIANS -RAND -RANDOM_BYTES -RELEASE_LOCK -REVERSE -ROUND -ROW_COUNT -RPAD -RTRIM -SEC_TO_TIME -SESSION_USER -SHA -SHA1 -SHA2 -SCHEMA_NAME -SIGN -SIN -SLEEP -SOUNDEX -SQL_THREAD_WAIT_AFTER_GTIDS -SQRT -SRID -STARTPOINT -STRCMP -STR_TO_DATE -ST_AREA -ST_ASBINARY -ST_ASTEXT -ST_ASWKB -ST_ASWKT -ST_BUFFER -ST_CENTROID -ST_CONTAINS -ST_CROSSES -ST_DIFFERENCE -ST_DIMENSION -ST_DISJOINT -ST_DISTANCE -ST_ENDPOINT -ST_ENVELOPE -ST_EQUALS -ST_EXTERIORRING -ST_GEOMCOLLFROMTEXT -ST_GEOMCOLLFROMTXT -ST_GEOMCOLLFROMWKB -ST_GEOMETRYCOLLECTIONFROMTEXT -ST_GEOMETRYCOLLECTIONFROMWKB -ST_GEOMETRYFROMTEXT -ST_GEOMETRYFROMWKB -ST_GEOMETRYN -ST_GEOMETRYTYPE -ST_GEOMFROMTEXT -ST_GEOMFROMWKB -ST_INTERIORRINGN -ST_INTERSECTION -ST_INTERSECTS -ST_ISCLOSED -ST_ISEMPTY -ST_ISSIMPLE -ST_LINEFROMTEXT -ST_LINEFROMWKB -ST_LINESTRINGFROMTEXT -ST_LINESTRINGFROMWKB -ST_NUMGEOMETRIES -ST_NUMINTERIORRING -ST_NUMINTERIORRINGS -ST_NUMPOINTS -ST_OVERLAPS -ST_POINTFROMTEXT -ST_POINTFROMWKB -ST_POINTN -ST_POLYFROMTEXT -ST_POLYFROMWKB -ST_POLYGONFROMTEXT -ST_POLYGONFROMWKB -ST_SRID -ST_STARTPOINT -ST_SYMDIFFERENCE -ST_TOUCHES -ST_UNION -ST_WITHIN -ST_X -ST_Y -SUBDATE -SUBSTRING_INDEX -SUBTIME -SYSTEM_USER -TAN -TIMEDIFF -TIMESTAMPADD -TIMESTAMPDIFF -TIME_FORMAT -TIME_TO_SEC -TOUCHES -TO_BASE64 -TO_DAYS -TO_SECONDS -UCASE -UNCOMPRESS -UNCOMPRESSED_LENGTH -UNHEX -UNIX_TIMESTAMP -UPDATEXML -UPPER -UUID -UUID_SHORT -VALIDATE_PASSWORD_STRENGTH -VERSION -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS -WEEKDAY -WEEKOFYEAR -WEIGHT_STRING -WITHIN -YEARWEEK -Y_FUNCTION -X_FUNCTION -VAR_ASSIGN -PLUS_ASSIGN -MINUS_ASSIGN -MULT_ASSIGN -DIV_ASSIGN -MOD_ASSIGN -AND_ASSIGN -XOR_ASSIGN -OR_ASSIGN -STAR -DIVIDE -MODULE -PLUS -MINUSMINUS -MINUS -DIV -MOD -EQUAL_SYMBOL -GREATER_SYMBOL -LESS_SYMBOL -EXCLAMATION_SYMBOL -BIT_NOT_OP -BIT_OR_OP -BIT_AND_OP -BIT_XOR_OP -DOT -LR_BRACKET -RR_BRACKET -COMMA -SEMI -AT_SIGN -ZERO_DECIMAL -ONE_DECIMAL -TWO_DECIMAL -SINGLE_QUOTE_SYMB -DOUBLE_QUOTE_SYMB -REVERSE_QUOTE_SYMB -COLON_SYMB -CHARSET_REVERSE_QOUTE_STRING -FILESIZE_LITERAL -START_NATIONAL_STRING_LITERAL -STRING_LITERAL -DECIMAL_LITERAL -HEXADECIMAL_LITERAL -REAL_LITERAL -NULL_SPEC_LITERAL -BIT_STRING -STRING_CHARSET_NAME -DOT_ID -ID -REVERSE_QUOTE_ID -STRING_USER_NAME -LOCAL_ID -GLOBAL_ID -ERROR_RECONGNIGION - -rule names: -SPACE -SPEC_MYSQL_COMMENT -COMMENT_INPUT -LINE_COMMENT -ADD -ALL -ALTER -ALWAYS -ANALYZE -AND -AS -ASC -BEFORE -BETWEEN -BOTH -BY -CALL -CASCADE -CASE -CAST -CHANGE -CHARACTER -CHECK -COLLATE -COLUMN -CONDITION -CONSTRAINT -CONTINUE -CONVERT -CREATE -CROSS -CURRENT -CURRENT_USER -CURSOR -DATABASE -DATABASES -DECLARE -DEFAULT -DELAYED -DELETE -DESC -DESCRIBE -DETERMINISTIC -DIAGNOSTICS -DISTINCT -DISTINCTROW -DROP -EACH -ELSE -ELSEIF -ENCLOSED -ESCAPED -EXISTS -EXIT -EXPLAIN -FALSE -FETCH -FOR -FORCE -FOREIGN -FROM -FULLTEXT -GENERATED -GET -GRANT -GROUP -HAVING -HIGH_PRIORITY -IF -IGNORE -IN -INDEX -INFILE -INNER -INOUT -INSERT -INTERVAL -INTO -IS -ITERATE -JOIN -KEY -KEYS -KILL -LEADING -LEAVE -LEFT -LIKE -LIMIT -LINEAR -LINES -LOAD -LOCK -LOOP -LOW_PRIORITY -MASTER_BIND -MASTER_SSL_VERIFY_SERVER_CERT -MATCH -MAXVALUE -MODIFIES -NATURAL -NOT -NO_WRITE_TO_BINLOG -NULL_LITERAL -NUMBER -ON -OPTIMIZE -OPTION -OPTIONALLY -OR -ORDER -OUT -OUTER -OUTFILE -PARTITION -PRIMARY -PROCEDURE -PURGE -RANGE -READ -READS -REFERENCES -REGEXP -RELEASE -RENAME -REPEAT -REPLACE -REQUIRE -RESIGNAL -RESTRICT -RETURN -REVOKE -RIGHT -RLIKE -SCHEMA -SCHEMAS -SELECT -SET -SEPARATOR -SHOW -SIGNAL -SPATIAL -SQL -SQLEXCEPTION -SQLSTATE -SQLWARNING -SQL_BIG_RESULT -SQL_CALC_FOUND_ROWS -SQL_SMALL_RESULT -SSL -STACKED -STARTING -STRAIGHT_JOIN -TABLE -TERMINATED -THEN -TO -TRAILING -TRIGGER -TRUE -UNDO -UNION -UNIQUE -UNLOCK -UNSIGNED -UPDATE -USAGE -USE -USING -VALUES -WHEN -WHERE -WHILE -WITH -WRITE -XOR -ZEROFILL -TINYINT -SMALLINT -MEDIUMINT -MIDDLEINT -INT -INT1 -INT2 -INT3 -INT4 -INT8 -INTEGER -BIGINT -REAL -DOUBLE -PRECISION -FLOAT -FLOAT4 -FLOAT8 -DECIMAL -DEC -NUMERIC -DATE -TIME -TIMESTAMP -DATETIME -YEAR -CHAR -VARCHAR -NVARCHAR -NATIONAL -BINARY -VARBINARY -TINYBLOB -BLOB -MEDIUMBLOB -LONG -LONGBLOB -TINYTEXT -TEXT -MEDIUMTEXT -LONGTEXT -ENUM -VARYING -SERIAL -YEAR_MONTH -DAY_HOUR -DAY_MINUTE -DAY_SECOND -HOUR_MINUTE -HOUR_SECOND -MINUTE_SECOND -SECOND_MICROSECOND -MINUTE_MICROSECOND -HOUR_MICROSECOND -DAY_MICROSECOND -JSON_VALID -JSON_SCHEMA_VALID -AVG -BIT_AND -BIT_OR -BIT_XOR -COUNT -GROUP_CONCAT -MAX -MIN -STD -STDDEV -STDDEV_POP -STDDEV_SAMP -SUM -VAR_POP -VAR_SAMP -VARIANCE -CURRENT_DATE -CURRENT_TIME -CURRENT_TIMESTAMP -LOCALTIME -CURDATE -CURTIME -DATE_ADD -DATE_SUB -EXTRACT -LOCALTIMESTAMP -NOW -POSITION -SUBSTR -SUBSTRING -SYSDATE -TRIM -UTC_DATE -UTC_TIME -UTC_TIMESTAMP -ACCOUNT -ACTION -AFTER -AGGREGATE -ALGORITHM -ANY -AT -AUTHORS -AUTOCOMMIT -AUTOEXTEND_SIZE -AUTO_INCREMENT -AVG_ROW_LENGTH -BEGIN -BINLOG -BIT -BLOCK -BOOL -BOOLEAN -BTREE -CACHE -CASCADED -CHAIN -CHANGED -CHANNEL -CHECKSUM -PAGE_CHECKSUM -CIPHER -CLASS_ORIGIN -CLIENT -CLOSE -COALESCE -CODE -COLUMNS -COLUMN_FORMAT -COLUMN_NAME -COMMENT -COMMIT -COMPACT -COMPLETION -COMPRESSED -COMPRESSION -CONCURRENT -CONNECTION -CONSISTENT -CONSTRAINT_CATALOG -CONSTRAINT_SCHEMA -CONSTRAINT_NAME -CONTAINS -CONTEXT -CONTRIBUTORS -COPY -CPU -CURSOR_NAME -DATA -DATAFILE -DEALLOCATE -DEFAULT_AUTH -DEFINER -DELAY_KEY_WRITE -DES_KEY_FILE -DIRECTORY -DISABLE -DISCARD -DISK -DO -DUMPFILE -DUPLICATE -DYNAMIC -ENABLE -ENCRYPTION -END -ENDS -ENGINE -ENGINES -ERROR -ERRORS -ESCAPE -EVEN -EVENT -EVENTS -EVERY -EXCHANGE -EXCLUSIVE -EXPIRE -EXPORT -EXTENDED -EXTENT_SIZE -FAST -FAULTS -FIELDS -FILE_BLOCK_SIZE -FILTER -FIRST -FIXED -FLUSH -FOLLOWS -FOUND -FULL -FUNCTION -GENERAL -GLOBAL -GRANTS -GROUP_REPLICATION -HANDLER -HASH -HELP -HOST -HOSTS -IDENTIFIED -IGNORE_SERVER_IDS -IMPORT -INDEXES -INITIAL_SIZE -INPLACE -INSERT_METHOD -INSTALL -INSTANCE -INVISIBLE -INVOKER -IO -IO_THREAD -IPC -ISOLATION -ISSUER -JSON -KEY_BLOCK_SIZE -LANGUAGE -LAST -LEAVES -LESS -LEVEL -LIST -LOCAL -LOGFILE -LOGS -MASTER -MASTER_AUTO_POSITION -MASTER_CONNECT_RETRY -MASTER_DELAY -MASTER_HEARTBEAT_PERIOD -MASTER_HOST -MASTER_LOG_FILE -MASTER_LOG_POS -MASTER_PASSWORD -MASTER_PORT -MASTER_RETRY_COUNT -MASTER_SSL -MASTER_SSL_CA -MASTER_SSL_CAPATH -MASTER_SSL_CERT -MASTER_SSL_CIPHER -MASTER_SSL_CRL -MASTER_SSL_CRLPATH -MASTER_SSL_KEY -MASTER_TLS_VERSION -MASTER_USER -MAX_CONNECTIONS_PER_HOUR -MAX_QUERIES_PER_HOUR -MAX_ROWS -MAX_SIZE -MAX_UPDATES_PER_HOUR -MAX_USER_CONNECTIONS -MEDIUM -MERGE -MESSAGE_TEXT -MID -MIGRATE -MIN_ROWS -MODE -MODIFY -MUTEX -MYSQL -MYSQL_ERRNO -NAME -NAMES -NCHAR -NEVER -NEXT -NO -NODEGROUP -NONE -OFFLINE -OFFSET -OJ -OLD_PASSWORD -ONE -ONLINE -ONLY -OPEN -OPTIMIZER_COSTS -OPTIONS -OWNER -PACK_KEYS -PAGE -PARSER -PARTIAL -PARTITIONING -PARTITIONS -PASSWORD -PHASE -PLUGIN -PLUGIN_DIR -PLUGINS -PORT -PRECEDES -PREPARE -PRESERVE -PREV -PROCESSLIST -PROFILE -PROFILES -PROXY -QUERY -QUICK -REBUILD -RECOVER -REDO_BUFFER_SIZE -REDUNDANT -RELAY -RELAY_LOG_FILE -RELAY_LOG_POS -RELAYLOG -REMOVE -REORGANIZE -REPAIR -REPLICATE_DO_DB -REPLICATE_DO_TABLE -REPLICATE_IGNORE_DB -REPLICATE_IGNORE_TABLE -REPLICATE_REWRITE_DB -REPLICATE_WILD_DO_TABLE -REPLICATE_WILD_IGNORE_TABLE -REPLICATION -RESET -RESUME -RETURNED_SQLSTATE -RETURNS -ROLE -ROLLBACK -ROLLUP -ROTATE -ROW -ROWS -ROW_FORMAT -SAVEPOINT -SCHEDULE -SECURITY -SERVER -SESSION -SHARE -SHARED -SIGNED -SIMPLE -SLAVE -SLOW -SNAPSHOT -SOCKET -SOME -SONAME -SOUNDS -SOURCE -SQL_AFTER_GTIDS -SQL_AFTER_MTS_GAPS -SQL_BEFORE_GTIDS -SQL_BUFFER_RESULT -SQL_CACHE -SQL_NO_CACHE -SQL_THREAD -START -STARTS -STATS_AUTO_RECALC -STATS_PERSISTENT -STATS_SAMPLE_PAGES -STATUS -STOP -STORAGE -STORED -STRING -SUBCLASS_ORIGIN -SUBJECT -SUBPARTITION -SUBPARTITIONS -SUSPEND -SWAPS -SWITCHES -TABLE_NAME -TABLESPACE -TEMPORARY -TEMPTABLE -THAN -TRADITIONAL -TRANSACTION -TRANSACTIONAL -TRIGGERS -TRUNCATE -UNDEFINED -UNDOFILE -UNDO_BUFFER_SIZE -UNINSTALL -UNKNOWN -UNTIL -UPGRADE -USER -USE_FRM -USER_RESOURCES -VALIDATION -VALUE -VARIABLES -VIEW -VIRTUAL -VISIBLE -WAIT -WARNINGS -WITHOUT -WORK -WRAPPER -X509 -XA -XML -EUR -USA -JIS -ISO -INTERNAL -QUARTER -MONTH -DAY -HOUR -MINUTE -WEEK -SECOND -MICROSECOND -TABLES -ROUTINE -EXECUTE -FILE -PROCESS -RELOAD -SHUTDOWN -SUPER -PRIVILEGES -APPLICATION_PASSWORD_ADMIN -AUDIT_ADMIN -BACKUP_ADMIN -BINLOG_ADMIN -BINLOG_ENCRYPTION_ADMIN -CLONE_ADMIN -CONNECTION_ADMIN -ENCRYPTION_KEY_ADMIN -FIREWALL_ADMIN -FIREWALL_USER -GROUP_REPLICATION_ADMIN -INNODB_REDO_LOG_ARCHIVE -NDB_STORED_USER -PERSIST_RO_VARIABLES_ADMIN -REPLICATION_APPLIER -REPLICATION_SLAVE_ADMIN -RESOURCE_GROUP_ADMIN -RESOURCE_GROUP_USER -ROLE_ADMIN -SESSION_VARIABLES_ADMIN -SET_USER_ID -SHOW_ROUTINE -SYSTEM_VARIABLES_ADMIN -TABLE_ENCRYPTION_ADMIN -VERSION_TOKEN_ADMIN -XA_RECOVER_ADMIN -ARMSCII8 -ASCII -BIG5 -CP1250 -CP1251 -CP1256 -CP1257 -CP850 -CP852 -CP866 -CP932 -DEC8 -EUCJPMS -EUCKR -GB2312 -GBK -GEOSTD8 -GREEK -HEBREW -HP8 -KEYBCS2 -KOI8R -KOI8U -LATIN1 -LATIN2 -LATIN5 -LATIN7 -MACCE -MACROMAN -SJIS -SWE7 -TIS620 -UCS2 -UJIS -UTF16 -UTF16LE -UTF32 -UTF8 -UTF8MB3 -UTF8MB4 -ARCHIVE -BLACKHOLE -CSV -FEDERATED -INNODB -MEMORY -MRG_MYISAM -MYISAM -NDB -NDBCLUSTER -PERFORMANCE_SCHEMA -TOKUDB -REPEATABLE -COMMITTED -UNCOMMITTED -SERIALIZABLE -GEOMETRYCOLLECTION -GEOMCOLLECTION -GEOMETRY -LINESTRING -MULTILINESTRING -MULTIPOINT -MULTIPOLYGON -POINT -POLYGON -ABS -ACOS -ADDDATE -ADDTIME -AES_DECRYPT -AES_ENCRYPT -AREA -ASBINARY -ASIN -ASTEXT -ASWKB -ASWKT -ASYMMETRIC_DECRYPT -ASYMMETRIC_DERIVE -ASYMMETRIC_ENCRYPT -ASYMMETRIC_SIGN -ASYMMETRIC_VERIFY -ATAN -ATAN2 -BENCHMARK -BIN -BIT_COUNT -BIT_LENGTH -BUFFER -CATALOG_NAME -CEIL -CEILING -CENTROID -CHARACTER_LENGTH -CHARSET -CHAR_LENGTH -COERCIBILITY -COLLATION -COMPRESS -CONCAT -CONCAT_WS -CONNECTION_ID -CONV -CONVERT_TZ -COS -COT -CRC32 -CREATE_ASYMMETRIC_PRIV_KEY -CREATE_ASYMMETRIC_PUB_KEY -CREATE_DH_PARAMETERS -CREATE_DIGEST -CROSSES -DATEDIFF -DATE_FORMAT -DAYNAME -DAYOFMONTH -DAYOFWEEK -DAYOFYEAR -DECODE -DEGREES -DES_DECRYPT -DES_ENCRYPT -DIMENSION -DISJOINT -ELT -ENCODE -ENCRYPT -ENDPOINT -ENVELOPE -EQUALS -EXP -EXPORT_SET -EXTERIORRING -EXTRACTVALUE -FIELD -FIND_IN_SET -FLOOR -FORMAT -FOUND_ROWS -FROM_BASE64 -FROM_DAYS -FROM_UNIXTIME -GEOMCOLLFROMTEXT -GEOMCOLLFROMWKB -GEOMETRYCOLLECTIONFROMTEXT -GEOMETRYCOLLECTIONFROMWKB -GEOMETRYFROMTEXT -GEOMETRYFROMWKB -GEOMETRYN -GEOMETRYTYPE -GEOMFROMTEXT -GEOMFROMWKB -GET_FORMAT -GET_LOCK -GLENGTH -GREATEST -GTID_SUBSET -GTID_SUBTRACT -HEX -IFNULL -INET6_ATON -INET6_NTOA -INET_ATON -INET_NTOA -INSTR -INTERIORRINGN -INTERSECTS -ISCLOSED -ISEMPTY -ISNULL -ISSIMPLE -IS_FREE_LOCK -IS_IPV4 -IS_IPV4_COMPAT -IS_IPV4_MAPPED -IS_IPV6 -IS_USED_LOCK -LAST_INSERT_ID -LCASE -LEAST -LENGTH -LINEFROMTEXT -LINEFROMWKB -LINESTRINGFROMTEXT -LINESTRINGFROMWKB -LN -LOAD_FILE -LOCATE -LOG -LOG10 -LOG2 -LOWER -LPAD -LTRIM -MAKEDATE -MAKETIME -MAKE_SET -MASTER_POS_WAIT -MBRCONTAINS -MBRDISJOINT -MBREQUAL -MBRINTERSECTS -MBROVERLAPS -MBRTOUCHES -MBRWITHIN -MD5 -MLINEFROMTEXT -MLINEFROMWKB -MONTHNAME -MPOINTFROMTEXT -MPOINTFROMWKB -MPOLYFROMTEXT -MPOLYFROMWKB -MULTILINESTRINGFROMTEXT -MULTILINESTRINGFROMWKB -MULTIPOINTFROMTEXT -MULTIPOINTFROMWKB -MULTIPOLYGONFROMTEXT -MULTIPOLYGONFROMWKB -NAME_CONST -NULLIF -NUMGEOMETRIES -NUMINTERIORRINGS -NUMPOINTS -OCT -OCTET_LENGTH -ORD -OVERLAPS -PERIOD_ADD -PERIOD_DIFF -PI -POINTFROMTEXT -POINTFROMWKB -POINTN -POLYFROMTEXT -POLYFROMWKB -POLYGONFROMTEXT -POLYGONFROMWKB -POW -POWER -QUOTE -RADIANS -RAND -RANDOM_BYTES -RELEASE_LOCK -REVERSE -ROUND -ROW_COUNT -RPAD -RTRIM -SEC_TO_TIME -SESSION_USER -SHA -SHA1 -SHA2 -SCHEMA_NAME -SIGN -SIN -SLEEP -SOUNDEX -SQL_THREAD_WAIT_AFTER_GTIDS -SQRT -SRID -STARTPOINT -STRCMP -STR_TO_DATE -ST_AREA -ST_ASBINARY -ST_ASTEXT -ST_ASWKB -ST_ASWKT -ST_BUFFER -ST_CENTROID -ST_CONTAINS -ST_CROSSES -ST_DIFFERENCE -ST_DIMENSION -ST_DISJOINT -ST_DISTANCE -ST_ENDPOINT -ST_ENVELOPE -ST_EQUALS -ST_EXTERIORRING -ST_GEOMCOLLFROMTEXT -ST_GEOMCOLLFROMTXT -ST_GEOMCOLLFROMWKB -ST_GEOMETRYCOLLECTIONFROMTEXT -ST_GEOMETRYCOLLECTIONFROMWKB -ST_GEOMETRYFROMTEXT -ST_GEOMETRYFROMWKB -ST_GEOMETRYN -ST_GEOMETRYTYPE -ST_GEOMFROMTEXT -ST_GEOMFROMWKB -ST_INTERIORRINGN -ST_INTERSECTION -ST_INTERSECTS -ST_ISCLOSED -ST_ISEMPTY -ST_ISSIMPLE -ST_LINEFROMTEXT -ST_LINEFROMWKB -ST_LINESTRINGFROMTEXT -ST_LINESTRINGFROMWKB -ST_NUMGEOMETRIES -ST_NUMINTERIORRING -ST_NUMINTERIORRINGS -ST_NUMPOINTS -ST_OVERLAPS -ST_POINTFROMTEXT -ST_POINTFROMWKB -ST_POINTN -ST_POLYFROMTEXT -ST_POLYFROMWKB -ST_POLYGONFROMTEXT -ST_POLYGONFROMWKB -ST_SRID -ST_STARTPOINT -ST_SYMDIFFERENCE -ST_TOUCHES -ST_UNION -ST_WITHIN -ST_X -ST_Y -SUBDATE -SUBSTRING_INDEX -SUBTIME -SYSTEM_USER -TAN -TIMEDIFF -TIMESTAMPADD -TIMESTAMPDIFF -TIME_FORMAT -TIME_TO_SEC -TOUCHES -TO_BASE64 -TO_DAYS -TO_SECONDS -UCASE -UNCOMPRESS -UNCOMPRESSED_LENGTH -UNHEX -UNIX_TIMESTAMP -UPDATEXML -UPPER -UUID -UUID_SHORT -VALIDATE_PASSWORD_STRENGTH -VERSION -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS -WEEKDAY -WEEKOFYEAR -WEIGHT_STRING -WITHIN -YEARWEEK -Y_FUNCTION -X_FUNCTION -VAR_ASSIGN -PLUS_ASSIGN -MINUS_ASSIGN -MULT_ASSIGN -DIV_ASSIGN -MOD_ASSIGN -AND_ASSIGN -XOR_ASSIGN -OR_ASSIGN -STAR -DIVIDE -MODULE -PLUS -MINUSMINUS -MINUS -DIV -MOD -EQUAL_SYMBOL -GREATER_SYMBOL -LESS_SYMBOL -EXCLAMATION_SYMBOL -BIT_NOT_OP -BIT_OR_OP -BIT_AND_OP -BIT_XOR_OP -DOT -LR_BRACKET -RR_BRACKET -COMMA -SEMI -AT_SIGN -ZERO_DECIMAL -ONE_DECIMAL -TWO_DECIMAL -SINGLE_QUOTE_SYMB -DOUBLE_QUOTE_SYMB -REVERSE_QUOTE_SYMB -COLON_SYMB -QUOTE_SYMB -CHARSET_REVERSE_QOUTE_STRING -FILESIZE_LITERAL -START_NATIONAL_STRING_LITERAL -STRING_LITERAL -DECIMAL_LITERAL -HEXADECIMAL_LITERAL -REAL_LITERAL -NULL_SPEC_LITERAL -BIT_STRING -STRING_CHARSET_NAME -DOT_ID -ID -REVERSE_QUOTE_ID -STRING_USER_NAME -LOCAL_ID -GLOBAL_ID -CHARSET_NAME -EXPONENT_NUM_PART -ID_LITERAL -DQUOTA_STRING -SQUOTA_STRING -BQUOTA_STRING -HEX_DIGIT -DEC_DIGIT -BIT_STRING_L -ERROR_RECONGNIGION - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN -null -null -MYSQLCOMMENT -ERRORCHANNEL - -mode names: -DEFAULT_MODE - -atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 1050, 12132, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 4, 318, 9, 318, 4, 319, 9, 319, 4, 320, 9, 320, 4, 321, 9, 321, 4, 322, 9, 322, 4, 323, 9, 323, 4, 324, 9, 324, 4, 325, 9, 325, 4, 326, 9, 326, 4, 327, 9, 327, 4, 328, 9, 328, 4, 329, 9, 329, 4, 330, 9, 330, 4, 331, 9, 331, 4, 332, 9, 332, 4, 333, 9, 333, 4, 334, 9, 334, 4, 335, 9, 335, 4, 336, 9, 336, 4, 337, 9, 337, 4, 338, 9, 338, 4, 339, 9, 339, 4, 340, 9, 340, 4, 341, 9, 341, 4, 342, 9, 342, 4, 343, 9, 343, 4, 344, 9, 344, 4, 345, 9, 345, 4, 346, 9, 346, 4, 347, 9, 347, 4, 348, 9, 348, 4, 349, 9, 349, 4, 350, 9, 350, 4, 351, 9, 351, 4, 352, 9, 352, 4, 353, 9, 353, 4, 354, 9, 354, 4, 355, 9, 355, 4, 356, 9, 356, 4, 357, 9, 357, 4, 358, 9, 358, 4, 359, 9, 359, 4, 360, 9, 360, 4, 361, 9, 361, 4, 362, 9, 362, 4, 363, 9, 363, 4, 364, 9, 364, 4, 365, 9, 365, 4, 366, 9, 366, 4, 367, 9, 367, 4, 368, 9, 368, 4, 369, 9, 369, 4, 370, 9, 370, 4, 371, 9, 371, 4, 372, 9, 372, 4, 373, 9, 373, 4, 374, 9, 374, 4, 375, 9, 375, 4, 376, 9, 376, 4, 377, 9, 377, 4, 378, 9, 378, 4, 379, 9, 379, 4, 380, 9, 380, 4, 381, 9, 381, 4, 382, 9, 382, 4, 383, 9, 383, 4, 384, 9, 384, 4, 385, 9, 385, 4, 386, 9, 386, 4, 387, 9, 387, 4, 388, 9, 388, 4, 389, 9, 389, 4, 390, 9, 390, 4, 391, 9, 391, 4, 392, 9, 392, 4, 393, 9, 393, 4, 394, 9, 394, 4, 395, 9, 395, 4, 396, 9, 396, 4, 397, 9, 397, 4, 398, 9, 398, 4, 399, 9, 399, 4, 400, 9, 400, 4, 401, 9, 401, 4, 402, 9, 402, 4, 403, 9, 403, 4, 404, 9, 404, 4, 405, 9, 405, 4, 406, 9, 406, 4, 407, 9, 407, 4, 408, 9, 408, 4, 409, 9, 409, 4, 410, 9, 410, 4, 411, 9, 411, 4, 412, 9, 412, 4, 413, 9, 413, 4, 414, 9, 414, 4, 415, 9, 415, 4, 416, 9, 416, 4, 417, 9, 417, 4, 418, 9, 418, 4, 419, 9, 419, 4, 420, 9, 420, 4, 421, 9, 421, 4, 422, 9, 422, 4, 423, 9, 423, 4, 424, 9, 424, 4, 425, 9, 425, 4, 426, 9, 426, 4, 427, 9, 427, 4, 428, 9, 428, 4, 429, 9, 429, 4, 430, 9, 430, 4, 431, 9, 431, 4, 432, 9, 432, 4, 433, 9, 433, 4, 434, 9, 434, 4, 435, 9, 435, 4, 436, 9, 436, 4, 437, 9, 437, 4, 438, 9, 438, 4, 439, 9, 439, 4, 440, 9, 440, 4, 441, 9, 441, 4, 442, 9, 442, 4, 443, 9, 443, 4, 444, 9, 444, 4, 445, 9, 445, 4, 446, 9, 446, 4, 447, 9, 447, 4, 448, 9, 448, 4, 449, 9, 449, 4, 450, 9, 450, 4, 451, 9, 451, 4, 452, 9, 452, 4, 453, 9, 453, 4, 454, 9, 454, 4, 455, 9, 455, 4, 456, 9, 456, 4, 457, 9, 457, 4, 458, 9, 458, 4, 459, 9, 459, 4, 460, 9, 460, 4, 461, 9, 461, 4, 462, 9, 462, 4, 463, 9, 463, 4, 464, 9, 464, 4, 465, 9, 465, 4, 466, 9, 466, 4, 467, 9, 467, 4, 468, 9, 468, 4, 469, 9, 469, 4, 470, 9, 470, 4, 471, 9, 471, 4, 472, 9, 472, 4, 473, 9, 473, 4, 474, 9, 474, 4, 475, 9, 475, 4, 476, 9, 476, 4, 477, 9, 477, 4, 478, 9, 478, 4, 479, 9, 479, 4, 480, 9, 480, 4, 481, 9, 481, 4, 482, 9, 482, 4, 483, 9, 483, 4, 484, 9, 484, 4, 485, 9, 485, 4, 486, 9, 486, 4, 487, 9, 487, 4, 488, 9, 488, 4, 489, 9, 489, 4, 490, 9, 490, 4, 491, 9, 491, 4, 492, 9, 492, 4, 493, 9, 493, 4, 494, 9, 494, 4, 495, 9, 495, 4, 496, 9, 496, 4, 497, 9, 497, 4, 498, 9, 498, 4, 499, 9, 499, 4, 500, 9, 500, 4, 501, 9, 501, 4, 502, 9, 502, 4, 503, 9, 503, 4, 504, 9, 504, 4, 505, 9, 505, 4, 506, 9, 506, 4, 507, 9, 507, 4, 508, 9, 508, 4, 509, 9, 509, 4, 510, 9, 510, 4, 511, 9, 511, 4, 512, 9, 512, 4, 513, 9, 513, 4, 514, 9, 514, 4, 515, 9, 515, 4, 516, 9, 516, 4, 517, 9, 517, 4, 518, 9, 518, 4, 519, 9, 519, 4, 520, 9, 520, 4, 521, 9, 521, 4, 522, 9, 522, 4, 523, 9, 523, 4, 524, 9, 524, 4, 525, 9, 525, 4, 526, 9, 526, 4, 527, 9, 527, 4, 528, 9, 528, 4, 529, 9, 529, 4, 530, 9, 530, 4, 531, 9, 531, 4, 532, 9, 532, 4, 533, 9, 533, 4, 534, 9, 534, 4, 535, 9, 535, 4, 536, 9, 536, 4, 537, 9, 537, 4, 538, 9, 538, 4, 539, 9, 539, 4, 540, 9, 540, 4, 541, 9, 541, 4, 542, 9, 542, 4, 543, 9, 543, 4, 544, 9, 544, 4, 545, 9, 545, 4, 546, 9, 546, 4, 547, 9, 547, 4, 548, 9, 548, 4, 549, 9, 549, 4, 550, 9, 550, 4, 551, 9, 551, 4, 552, 9, 552, 4, 553, 9, 553, 4, 554, 9, 554, 4, 555, 9, 555, 4, 556, 9, 556, 4, 557, 9, 557, 4, 558, 9, 558, 4, 559, 9, 559, 4, 560, 9, 560, 4, 561, 9, 561, 4, 562, 9, 562, 4, 563, 9, 563, 4, 564, 9, 564, 4, 565, 9, 565, 4, 566, 9, 566, 4, 567, 9, 567, 4, 568, 9, 568, 4, 569, 9, 569, 4, 570, 9, 570, 4, 571, 9, 571, 4, 572, 9, 572, 4, 573, 9, 573, 4, 574, 9, 574, 4, 575, 9, 575, 4, 576, 9, 576, 4, 577, 9, 577, 4, 578, 9, 578, 4, 579, 9, 579, 4, 580, 9, 580, 4, 581, 9, 581, 4, 582, 9, 582, 4, 583, 9, 583, 4, 584, 9, 584, 4, 585, 9, 585, 4, 586, 9, 586, 4, 587, 9, 587, 4, 588, 9, 588, 4, 589, 9, 589, 4, 590, 9, 590, 4, 591, 9, 591, 4, 592, 9, 592, 4, 593, 9, 593, 4, 594, 9, 594, 4, 595, 9, 595, 4, 596, 9, 596, 4, 597, 9, 597, 4, 598, 9, 598, 4, 599, 9, 599, 4, 600, 9, 600, 4, 601, 9, 601, 4, 602, 9, 602, 4, 603, 9, 603, 4, 604, 9, 604, 4, 605, 9, 605, 4, 606, 9, 606, 4, 607, 9, 607, 4, 608, 9, 608, 4, 609, 9, 609, 4, 610, 9, 610, 4, 611, 9, 611, 4, 612, 9, 612, 4, 613, 9, 613, 4, 614, 9, 614, 4, 615, 9, 615, 4, 616, 9, 616, 4, 617, 9, 617, 4, 618, 9, 618, 4, 619, 9, 619, 4, 620, 9, 620, 4, 621, 9, 621, 4, 622, 9, 622, 4, 623, 9, 623, 4, 624, 9, 624, 4, 625, 9, 625, 4, 626, 9, 626, 4, 627, 9, 627, 4, 628, 9, 628, 4, 629, 9, 629, 4, 630, 9, 630, 4, 631, 9, 631, 4, 632, 9, 632, 4, 633, 9, 633, 4, 634, 9, 634, 4, 635, 9, 635, 4, 636, 9, 636, 4, 637, 9, 637, 4, 638, 9, 638, 4, 639, 9, 639, 4, 640, 9, 640, 4, 641, 9, 641, 4, 642, 9, 642, 4, 643, 9, 643, 4, 644, 9, 644, 4, 645, 9, 645, 4, 646, 9, 646, 4, 647, 9, 647, 4, 648, 9, 648, 4, 649, 9, 649, 4, 650, 9, 650, 4, 651, 9, 651, 4, 652, 9, 652, 4, 653, 9, 653, 4, 654, 9, 654, 4, 655, 9, 655, 4, 656, 9, 656, 4, 657, 9, 657, 4, 658, 9, 658, 4, 659, 9, 659, 4, 660, 9, 660, 4, 661, 9, 661, 4, 662, 9, 662, 4, 663, 9, 663, 4, 664, 9, 664, 4, 665, 9, 665, 4, 666, 9, 666, 4, 667, 9, 667, 4, 668, 9, 668, 4, 669, 9, 669, 4, 670, 9, 670, 4, 671, 9, 671, 4, 672, 9, 672, 4, 673, 9, 673, 4, 674, 9, 674, 4, 675, 9, 675, 4, 676, 9, 676, 4, 677, 9, 677, 4, 678, 9, 678, 4, 679, 9, 679, 4, 680, 9, 680, 4, 681, 9, 681, 4, 682, 9, 682, 4, 683, 9, 683, 4, 684, 9, 684, 4, 685, 9, 685, 4, 686, 9, 686, 4, 687, 9, 687, 4, 688, 9, 688, 4, 689, 9, 689, 4, 690, 9, 690, 4, 691, 9, 691, 4, 692, 9, 692, 4, 693, 9, 693, 4, 694, 9, 694, 4, 695, 9, 695, 4, 696, 9, 696, 4, 697, 9, 697, 4, 698, 9, 698, 4, 699, 9, 699, 4, 700, 9, 700, 4, 701, 9, 701, 4, 702, 9, 702, 4, 703, 9, 703, 4, 704, 9, 704, 4, 705, 9, 705, 4, 706, 9, 706, 4, 707, 9, 707, 4, 708, 9, 708, 4, 709, 9, 709, 4, 710, 9, 710, 4, 711, 9, 711, 4, 712, 9, 712, 4, 713, 9, 713, 4, 714, 9, 714, 4, 715, 9, 715, 4, 716, 9, 716, 4, 717, 9, 717, 4, 718, 9, 718, 4, 719, 9, 719, 4, 720, 9, 720, 4, 721, 9, 721, 4, 722, 9, 722, 4, 723, 9, 723, 4, 724, 9, 724, 4, 725, 9, 725, 4, 726, 9, 726, 4, 727, 9, 727, 4, 728, 9, 728, 4, 729, 9, 729, 4, 730, 9, 730, 4, 731, 9, 731, 4, 732, 9, 732, 4, 733, 9, 733, 4, 734, 9, 734, 4, 735, 9, 735, 4, 736, 9, 736, 4, 737, 9, 737, 4, 738, 9, 738, 4, 739, 9, 739, 4, 740, 9, 740, 4, 741, 9, 741, 4, 742, 9, 742, 4, 743, 9, 743, 4, 744, 9, 744, 4, 745, 9, 745, 4, 746, 9, 746, 4, 747, 9, 747, 4, 748, 9, 748, 4, 749, 9, 749, 4, 750, 9, 750, 4, 751, 9, 751, 4, 752, 9, 752, 4, 753, 9, 753, 4, 754, 9, 754, 4, 755, 9, 755, 4, 756, 9, 756, 4, 757, 9, 757, 4, 758, 9, 758, 4, 759, 9, 759, 4, 760, 9, 760, 4, 761, 9, 761, 4, 762, 9, 762, 4, 763, 9, 763, 4, 764, 9, 764, 4, 765, 9, 765, 4, 766, 9, 766, 4, 767, 9, 767, 4, 768, 9, 768, 4, 769, 9, 769, 4, 770, 9, 770, 4, 771, 9, 771, 4, 772, 9, 772, 4, 773, 9, 773, 4, 774, 9, 774, 4, 775, 9, 775, 4, 776, 9, 776, 4, 777, 9, 777, 4, 778, 9, 778, 4, 779, 9, 779, 4, 780, 9, 780, 4, 781, 9, 781, 4, 782, 9, 782, 4, 783, 9, 783, 4, 784, 9, 784, 4, 785, 9, 785, 4, 786, 9, 786, 4, 787, 9, 787, 4, 788, 9, 788, 4, 789, 9, 789, 4, 790, 9, 790, 4, 791, 9, 791, 4, 792, 9, 792, 4, 793, 9, 793, 4, 794, 9, 794, 4, 795, 9, 795, 4, 796, 9, 796, 4, 797, 9, 797, 4, 798, 9, 798, 4, 799, 9, 799, 4, 800, 9, 800, 4, 801, 9, 801, 4, 802, 9, 802, 4, 803, 9, 803, 4, 804, 9, 804, 4, 805, 9, 805, 4, 806, 9, 806, 4, 807, 9, 807, 4, 808, 9, 808, 4, 809, 9, 809, 4, 810, 9, 810, 4, 811, 9, 811, 4, 812, 9, 812, 4, 813, 9, 813, 4, 814, 9, 814, 4, 815, 9, 815, 4, 816, 9, 816, 4, 817, 9, 817, 4, 818, 9, 818, 4, 819, 9, 819, 4, 820, 9, 820, 4, 821, 9, 821, 4, 822, 9, 822, 4, 823, 9, 823, 4, 824, 9, 824, 4, 825, 9, 825, 4, 826, 9, 826, 4, 827, 9, 827, 4, 828, 9, 828, 4, 829, 9, 829, 4, 830, 9, 830, 4, 831, 9, 831, 4, 832, 9, 832, 4, 833, 9, 833, 4, 834, 9, 834, 4, 835, 9, 835, 4, 836, 9, 836, 4, 837, 9, 837, 4, 838, 9, 838, 4, 839, 9, 839, 4, 840, 9, 840, 4, 841, 9, 841, 4, 842, 9, 842, 4, 843, 9, 843, 4, 844, 9, 844, 4, 845, 9, 845, 4, 846, 9, 846, 4, 847, 9, 847, 4, 848, 9, 848, 4, 849, 9, 849, 4, 850, 9, 850, 4, 851, 9, 851, 4, 852, 9, 852, 4, 853, 9, 853, 4, 854, 9, 854, 4, 855, 9, 855, 4, 856, 9, 856, 4, 857, 9, 857, 4, 858, 9, 858, 4, 859, 9, 859, 4, 860, 9, 860, 4, 861, 9, 861, 4, 862, 9, 862, 4, 863, 9, 863, 4, 864, 9, 864, 4, 865, 9, 865, 4, 866, 9, 866, 4, 867, 9, 867, 4, 868, 9, 868, 4, 869, 9, 869, 4, 870, 9, 870, 4, 871, 9, 871, 4, 872, 9, 872, 4, 873, 9, 873, 4, 874, 9, 874, 4, 875, 9, 875, 4, 876, 9, 876, 4, 877, 9, 877, 4, 878, 9, 878, 4, 879, 9, 879, 4, 880, 9, 880, 4, 881, 9, 881, 4, 882, 9, 882, 4, 883, 9, 883, 4, 884, 9, 884, 4, 885, 9, 885, 4, 886, 9, 886, 4, 887, 9, 887, 4, 888, 9, 888, 4, 889, 9, 889, 4, 890, 9, 890, 4, 891, 9, 891, 4, 892, 9, 892, 4, 893, 9, 893, 4, 894, 9, 894, 4, 895, 9, 895, 4, 896, 9, 896, 4, 897, 9, 897, 4, 898, 9, 898, 4, 899, 9, 899, 4, 900, 9, 900, 4, 901, 9, 901, 4, 902, 9, 902, 4, 903, 9, 903, 4, 904, 9, 904, 4, 905, 9, 905, 4, 906, 9, 906, 4, 907, 9, 907, 4, 908, 9, 908, 4, 909, 9, 909, 4, 910, 9, 910, 4, 911, 9, 911, 4, 912, 9, 912, 4, 913, 9, 913, 4, 914, 9, 914, 4, 915, 9, 915, 4, 916, 9, 916, 4, 917, 9, 917, 4, 918, 9, 918, 4, 919, 9, 919, 4, 920, 9, 920, 4, 921, 9, 921, 4, 922, 9, 922, 4, 923, 9, 923, 4, 924, 9, 924, 4, 925, 9, 925, 4, 926, 9, 926, 4, 927, 9, 927, 4, 928, 9, 928, 4, 929, 9, 929, 4, 930, 9, 930, 4, 931, 9, 931, 4, 932, 9, 932, 4, 933, 9, 933, 4, 934, 9, 934, 4, 935, 9, 935, 4, 936, 9, 936, 4, 937, 9, 937, 4, 938, 9, 938, 4, 939, 9, 939, 4, 940, 9, 940, 4, 941, 9, 941, 4, 942, 9, 942, 4, 943, 9, 943, 4, 944, 9, 944, 4, 945, 9, 945, 4, 946, 9, 946, 4, 947, 9, 947, 4, 948, 9, 948, 4, 949, 9, 949, 4, 950, 9, 950, 4, 951, 9, 951, 4, 952, 9, 952, 4, 953, 9, 953, 4, 954, 9, 954, 4, 955, 9, 955, 4, 956, 9, 956, 4, 957, 9, 957, 4, 958, 9, 958, 4, 959, 9, 959, 4, 960, 9, 960, 4, 961, 9, 961, 4, 962, 9, 962, 4, 963, 9, 963, 4, 964, 9, 964, 4, 965, 9, 965, 4, 966, 9, 966, 4, 967, 9, 967, 4, 968, 9, 968, 4, 969, 9, 969, 4, 970, 9, 970, 4, 971, 9, 971, 4, 972, 9, 972, 4, 973, 9, 973, 4, 974, 9, 974, 4, 975, 9, 975, 4, 976, 9, 976, 4, 977, 9, 977, 4, 978, 9, 978, 4, 979, 9, 979, 4, 980, 9, 980, 4, 981, 9, 981, 4, 982, 9, 982, 4, 983, 9, 983, 4, 984, 9, 984, 4, 985, 9, 985, 4, 986, 9, 986, 4, 987, 9, 987, 4, 988, 9, 988, 4, 989, 9, 989, 4, 990, 9, 990, 4, 991, 9, 991, 4, 992, 9, 992, 4, 993, 9, 993, 4, 994, 9, 994, 4, 995, 9, 995, 4, 996, 9, 996, 4, 997, 9, 997, 4, 998, 9, 998, 4, 999, 9, 999, 4, 1000, 9, 1000, 4, 1001, 9, 1001, 4, 1002, 9, 1002, 4, 1003, 9, 1003, 4, 1004, 9, 1004, 4, 1005, 9, 1005, 4, 1006, 9, 1006, 4, 1007, 9, 1007, 4, 1008, 9, 1008, 4, 1009, 9, 1009, 4, 1010, 9, 1010, 4, 1011, 9, 1011, 4, 1012, 9, 1012, 4, 1013, 9, 1013, 4, 1014, 9, 1014, 4, 1015, 9, 1015, 4, 1016, 9, 1016, 4, 1017, 9, 1017, 4, 1018, 9, 1018, 4, 1019, 9, 1019, 4, 1020, 9, 1020, 4, 1021, 9, 1021, 4, 1022, 9, 1022, 4, 1023, 9, 1023, 4, 1024, 9, 1024, 4, 1025, 9, 1025, 4, 1026, 9, 1026, 4, 1027, 9, 1027, 4, 1028, 9, 1028, 4, 1029, 9, 1029, 4, 1030, 9, 1030, 4, 1031, 9, 1031, 4, 1032, 9, 1032, 4, 1033, 9, 1033, 4, 1034, 9, 1034, 4, 1035, 9, 1035, 4, 1036, 9, 1036, 4, 1037, 9, 1037, 4, 1038, 9, 1038, 4, 1039, 9, 1039, 4, 1040, 9, 1040, 4, 1041, 9, 1041, 4, 1042, 9, 1042, 4, 1043, 9, 1043, 4, 1044, 9, 1044, 4, 1045, 9, 1045, 4, 1046, 9, 1046, 4, 1047, 9, 1047, 4, 1048, 9, 1048, 4, 1049, 9, 1049, 4, 1050, 9, 1050, 4, 1051, 9, 1051, 4, 1052, 9, 1052, 4, 1053, 9, 1053, 4, 1054, 9, 1054, 4, 1055, 9, 1055, 4, 1056, 9, 1056, 4, 1057, 9, 1057, 4, 1058, 9, 1058, 4, 1059, 9, 1059, 3, 2, 6, 2, 2121, 10, 2, 13, 2, 14, 2, 2122, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 2132, 10, 3, 13, 3, 14, 3, 2133, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 2145, 10, 4, 12, 4, 14, 4, 2148, 11, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 2158, 10, 5, 3, 5, 7, 5, 2161, 10, 5, 12, 5, 14, 5, 2164, 11, 5, 3, 5, 5, 5, 2167, 10, 5, 3, 5, 3, 5, 5, 5, 2171, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 2177, 10, 5, 3, 5, 3, 5, 5, 5, 2181, 10, 5, 5, 5, 2183, 10, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 3, 276, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 285, 3, 285, 3, 285, 3, 285, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 335, 3, 335, 3, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 341, 3, 341, 3, 341, 3, 341, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 358, 3, 358, 3, 358, 3, 358, 3, 358, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 359, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 371, 3, 371, 3, 371, 3, 371, 3, 371, 3, 371, 3, 371, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 372, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 376, 3, 376, 3, 376, 3, 376, 3, 376, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 379, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 390, 3, 390, 3, 390, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 392, 3, 392, 3, 392, 3, 392, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 403, 3, 403, 3, 403, 3, 403, 3, 403, 3, 403, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 436, 3, 436, 3, 436, 3, 436, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 438, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 440, 3, 440, 3, 440, 3, 440, 3, 440, 3, 440, 3, 440, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 442, 3, 442, 3, 442, 3, 442, 3, 442, 3, 442, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 446, 3, 446, 3, 446, 3, 446, 3, 446, 3, 446, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 448, 3, 448, 3, 448, 3, 448, 3, 448, 3, 449, 3, 449, 3, 449, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 451, 3, 451, 3, 451, 3, 451, 3, 451, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 454, 3, 454, 3, 454, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 456, 3, 456, 3, 456, 3, 456, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 489, 3, 489, 3, 489, 3, 489, 3, 489, 3, 489, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 495, 3, 495, 3, 495, 3, 495, 3, 495, 3, 495, 3, 495, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 503, 3, 504, 3, 504, 3, 504, 3, 504, 3, 504, 3, 504, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 507, 3, 507, 3, 507, 3, 507, 3, 507, 3, 507, 3, 507, 3, 507, 3, 508, 3, 508, 3, 508, 3, 508, 3, 508, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 511, 3, 511, 3, 511, 3, 511, 3, 511, 3, 511, 3, 511, 3, 512, 3, 512, 3, 512, 3, 512, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 514, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 522, 3, 522, 3, 522, 3, 522, 3, 522, 3, 522, 3, 522, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 582, 3, 582, 3, 582, 3, 582, 3, 582, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 585, 3, 585, 3, 585, 3, 585, 3, 585, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 587, 3, 587, 3, 587, 3, 587, 3, 587, 3, 588, 3, 588, 3, 588, 3, 589, 3, 589, 3, 589, 3, 589, 3, 590, 3, 590, 3, 590, 3, 590, 3, 591, 3, 591, 3, 591, 3, 591, 3, 592, 3, 592, 3, 592, 3, 592, 3, 593, 3, 593, 3, 593, 3, 593, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 597, 3, 597, 3, 597, 3, 597, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 600, 3, 600, 3, 600, 3, 600, 3, 600, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 603, 3, 603, 3, 603, 3, 603, 3, 603, 3, 603, 3, 603, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 606, 3, 606, 3, 606, 3, 606, 3, 606, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 631, 5, 631, 7799, 10, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 5, 631, 7826, 10, 631, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 641, 3, 641, 3, 641, 3, 641, 3, 641, 3, 641, 3, 641, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 646, 3, 646, 3, 646, 3, 646, 3, 646, 3, 646, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 649, 3, 649, 3, 649, 3, 649, 3, 649, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 653, 3, 653, 3, 653, 3, 653, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 656, 3, 656, 3, 656, 3, 656, 3, 656, 3, 656, 3, 656, 3, 657, 3, 657, 3, 657, 3, 657, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 663, 3, 663, 3, 663, 3, 663, 3, 663, 3, 663, 3, 663, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 675, 3, 675, 3, 675, 3, 675, 3, 675, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 680, 3, 680, 3, 680, 3, 680, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 683, 3, 683, 3, 683, 3, 683, 3, 683, 3, 683, 3, 683, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 686, 3, 686, 3, 686, 3, 686, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 695, 3, 696, 3, 696, 3, 696, 3, 696, 3, 696, 3, 696, 3, 696, 3, 696, 3, 696, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 699, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 701, 3, 701, 3, 701, 3, 701, 3, 701, 3, 701, 3, 702, 3, 702, 3, 702, 3, 702, 3, 702, 3, 702, 3, 702, 3, 702, 3, 703, 3, 703, 3, 703, 3, 703, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 714, 3, 714, 3, 714, 3, 714, 3, 714, 3, 714, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 723, 3, 723, 3, 723, 3, 723, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 742, 3, 742, 3, 742, 3, 742, 3, 743, 3, 743, 3, 743, 3, 743, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 745, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 762, 3, 762, 3, 762, 3, 762, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 768, 3, 768, 3, 768, 3, 768, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 772, 3, 772, 3, 772, 3, 772, 3, 772, 3, 772, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 773, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 775, 3, 775, 3, 775, 3, 775, 3, 775, 3, 775, 3, 775, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 777, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 796, 3, 796, 3, 796, 3, 796, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 800, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 802, 3, 802, 3, 802, 3, 802, 3, 802, 3, 802, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 806, 3, 806, 3, 806, 3, 806, 3, 806, 3, 806, 3, 806, 3, 806, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 823, 3, 823, 3, 823, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 826, 3, 826, 3, 826, 3, 826, 3, 827, 3, 827, 3, 827, 3, 827, 3, 827, 3, 827, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 830, 3, 830, 3, 830, 3, 830, 3, 830, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 842, 3, 843, 3, 843, 3, 843, 3, 843, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 844, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 845, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 846, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 847, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 848, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 849, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 850, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 851, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 852, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 853, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 854, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 855, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 856, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 857, 3, 858, 3, 858, 3, 858, 3, 858, 3, 858, 3, 858, 3, 858, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 859, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 860, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 861, 3, 862, 3, 862, 3, 862, 3, 862, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 863, 3, 864, 3, 864, 3, 864, 3, 864, 3, 865, 3, 865, 3, 865, 3, 865, 3, 865, 3, 865, 3, 865, 3, 865, 3, 865, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 866, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 867, 3, 868, 3, 868, 3, 868, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 869, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 870, 3, 871, 3, 871, 3, 871, 3, 871, 3, 871, 3, 871, 3, 871, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 872, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 873, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 874, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 875, 3, 876, 3, 876, 3, 876, 3, 876, 3, 877, 3, 877, 3, 877, 3, 877, 3, 877, 3, 877, 3, 878, 3, 878, 3, 878, 3, 878, 3, 878, 3, 878, 3, 879, 3, 879, 3, 879, 3, 879, 3, 879, 3, 879, 3, 879, 3, 879, 3, 880, 3, 880, 3, 880, 3, 880, 3, 880, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 881, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 882, 3, 883, 3, 883, 3, 883, 3, 883, 3, 883, 3, 883, 3, 883, 3, 883, 3, 884, 3, 884, 3, 884, 3, 884, 3, 884, 3, 884, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 885, 3, 886, 3, 886, 3, 886, 3, 886, 3, 886, 3, 887, 3, 887, 3, 887, 3, 887, 3, 887, 3, 887, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 888, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 889, 3, 890, 3, 890, 3, 890, 3, 890, 3, 891, 3, 891, 3, 891, 3, 891, 3, 891, 3, 892, 3, 892, 3, 892, 3, 892, 3, 892, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 893, 3, 894, 3, 894, 3, 894, 3, 894, 3, 894, 3, 895, 3, 895, 3, 895, 3, 895, 3, 896, 3, 896, 3, 896, 3, 896, 3, 896, 3, 896, 3, 897, 3, 897, 3, 897, 3, 897, 3, 897, 3, 897, 3, 897, 3, 897, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 899, 3, 899, 3, 899, 3, 899, 3, 899, 3, 900, 3, 900, 3, 900, 3, 900, 3, 900, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 902, 3, 902, 3, 902, 3, 902, 3, 902, 3, 902, 3, 902, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 903, 3, 904, 3, 904, 3, 904, 3, 904, 3, 904, 3, 904, 3, 904, 3, 904, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 905, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 906, 3, 907, 3, 907, 3, 907, 3, 907, 3, 907, 3, 907, 3, 907, 3, 907, 3, 907, 3, 908, 3, 908, 3, 908, 3, 908, 3, 908, 3, 908, 3, 908, 3, 908, 3, 908, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 909, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 910, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 911, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 912, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 913, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 914, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 915, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 916, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 917, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 918, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 919, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 920, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 921, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 922, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 923, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 924, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 925, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 926, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 927, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 928, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 929, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 930, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 931, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 932, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 933, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 934, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 935, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 936, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 937, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 938, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 939, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 940, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 941, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 942, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 943, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 944, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 945, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 946, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 947, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 948, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 949, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 950, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 951, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 952, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 953, 3, 954, 3, 954, 3, 954, 3, 954, 3, 954, 3, 954, 3, 954, 3, 954, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 955, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 956, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 957, 3, 958, 3, 958, 3, 958, 3, 958, 3, 958, 3, 958, 3, 958, 3, 958, 3, 958, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 959, 3, 960, 3, 960, 3, 960, 3, 960, 3, 960, 3, 961, 3, 961, 3, 961, 3, 961, 3, 961, 3, 962, 3, 962, 3, 962, 3, 962, 3, 962, 3, 962, 3, 962, 3, 962, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 963, 3, 964, 3, 964, 3, 964, 3, 964, 3, 964, 3, 964, 3, 964, 3, 964, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 965, 3, 966, 3, 966, 3, 966, 3, 966, 3, 967, 3, 967, 3, 967, 3, 967, 3, 967, 3, 967, 3, 967, 3, 967, 3, 967, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 968, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 969, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 970, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 971, 3, 972, 3, 972, 3, 972, 3, 972, 3, 972, 3, 972, 3, 972, 3, 972, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 973, 3, 974, 3, 974, 3, 974, 3, 974, 3, 974, 3, 974, 3, 974, 3, 974, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 975, 3, 976, 3, 976, 3, 976, 3, 976, 3, 976, 3, 976, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 977, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 978, 3, 979, 3, 979, 3, 979, 3, 979, 3, 979, 3, 979, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 980, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 981, 3, 982, 3, 982, 3, 982, 3, 982, 3, 982, 3, 982, 3, 983, 3, 983, 3, 983, 3, 983, 3, 983, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 984, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 985, 3, 986, 3, 986, 3, 986, 3, 986, 3, 986, 3, 986, 3, 986, 3, 986, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 987, 3, 988, 3, 988, 3, 988, 3, 988, 3, 988, 3, 988, 3, 988, 3, 988, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 989, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 990, 3, 991, 3, 991, 3, 991, 3, 991, 3, 991, 3, 991, 3, 991, 3, 992, 3, 992, 3, 992, 3, 992, 3, 992, 3, 992, 3, 992, 3, 992, 3, 992, 3, 993, 3, 993, 3, 994, 3, 994, 3, 995, 3, 995, 3, 995, 3, 996, 3, 996, 3, 996, 3, 997, 3, 997, 3, 997, 3, 998, 3, 998, 3, 998, 3, 999, 3, 999, 3, 999, 3, 1000, 3, 1000, 3, 1000, 3, 1001, 3, 1001, 3, 1001, 3, 1002, 3, 1002, 3, 1002, 3, 1003, 3, 1003, 3, 1003, 3, 1004, 3, 1004, 3, 1005, 3, 1005, 3, 1006, 3, 1006, 3, 1007, 3, 1007, 3, 1008, 3, 1008, 3, 1008, 3, 1009, 3, 1009, 3, 1010, 3, 1010, 3, 1010, 3, 1010, 3, 1011, 3, 1011, 3, 1011, 3, 1011, 3, 1012, 3, 1012, 3, 1013, 3, 1013, 3, 1014, 3, 1014, 3, 1015, 3, 1015, 3, 1016, 3, 1016, 3, 1017, 3, 1017, 3, 1018, 3, 1018, 3, 1019, 3, 1019, 3, 1020, 3, 1020, 3, 1021, 3, 1021, 3, 1022, 3, 1022, 3, 1023, 3, 1023, 3, 1024, 3, 1024, 3, 1025, 3, 1025, 3, 1026, 3, 1026, 3, 1027, 3, 1027, 3, 1028, 3, 1028, 3, 1029, 3, 1029, 3, 1030, 3, 1030, 3, 1031, 3, 1031, 3, 1032, 3, 1032, 3, 1033, 3, 1033, 3, 1033, 5, 1033, 11861, 10, 1033, 3, 1034, 3, 1034, 3, 1034, 3, 1034, 3, 1035, 6, 1035, 11868, 10, 1035, 13, 1035, 14, 1035, 11869, 3, 1035, 3, 1035, 3, 1036, 3, 1036, 3, 1036, 3, 1037, 3, 1037, 3, 1037, 5, 1037, 11880, 10, 1037, 3, 1038, 6, 1038, 11883, 10, 1038, 13, 1038, 14, 1038, 11884, 3, 1039, 3, 1039, 3, 1039, 3, 1039, 3, 1039, 6, 1039, 11892, 10, 1039, 13, 1039, 14, 1039, 11893, 3, 1039, 3, 1039, 3, 1039, 3, 1039, 3, 1039, 3, 1039, 6, 1039, 11902, 10, 1039, 13, 1039, 14, 1039, 11903, 5, 1039, 11906, 10, 1039, 3, 1040, 6, 1040, 11909, 10, 1040, 13, 1040, 14, 1040, 11910, 5, 1040, 11913, 10, 1040, 3, 1040, 3, 1040, 6, 1040, 11917, 10, 1040, 13, 1040, 14, 1040, 11918, 3, 1040, 6, 1040, 11922, 10, 1040, 13, 1040, 14, 1040, 11923, 3, 1040, 3, 1040, 3, 1040, 3, 1040, 6, 1040, 11930, 10, 1040, 13, 1040, 14, 1040, 11931, 5, 1040, 11934, 10, 1040, 3, 1040, 3, 1040, 6, 1040, 11938, 10, 1040, 13, 1040, 14, 1040, 11939, 3, 1040, 3, 1040, 3, 1040, 6, 1040, 11945, 10, 1040, 13, 1040, 14, 1040, 11946, 3, 1040, 3, 1040, 5, 1040, 11951, 10, 1040, 3, 1041, 3, 1041, 3, 1041, 3, 1042, 3, 1042, 3, 1043, 3, 1043, 3, 1043, 3, 1044, 3, 1044, 3, 1044, 3, 1045, 3, 1045, 3, 1046, 3, 1046, 6, 1046, 11968, 10, 1046, 13, 1046, 14, 1046, 11969, 3, 1046, 3, 1046, 3, 1047, 3, 1047, 3, 1047, 3, 1047, 5, 1047, 11978, 10, 1047, 3, 1047, 3, 1047, 3, 1047, 3, 1047, 3, 1047, 5, 1047, 11985, 10, 1047, 3, 1048, 3, 1048, 6, 1048, 11989, 10, 1048, 13, 1048, 14, 1048, 11990, 3, 1048, 3, 1048, 3, 1048, 5, 1048, 11996, 10, 1048, 3, 1049, 3, 1049, 3, 1049, 6, 1049, 12001, 10, 1049, 13, 1049, 14, 1049, 12002, 3, 1049, 5, 1049, 12006, 10, 1049, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 3, 1050, 5, 1050, 12049, 10, 1050, 3, 1051, 3, 1051, 5, 1051, 12053, 10, 1051, 3, 1051, 6, 1051, 12056, 10, 1051, 13, 1051, 14, 1051, 12057, 3, 1052, 7, 1052, 12061, 10, 1052, 12, 1052, 14, 1052, 12064, 11, 1052, 3, 1052, 6, 1052, 12067, 10, 1052, 13, 1052, 14, 1052, 12068, 3, 1052, 7, 1052, 12072, 10, 1052, 12, 1052, 14, 1052, 12075, 11, 1052, 3, 1053, 3, 1053, 3, 1053, 3, 1053, 3, 1053, 3, 1053, 7, 1053, 12083, 10, 1053, 12, 1053, 14, 1053, 12086, 11, 1053, 3, 1053, 3, 1053, 3, 1054, 3, 1054, 3, 1054, 3, 1054, 3, 1054, 3, 1054, 7, 1054, 12096, 10, 1054, 12, 1054, 14, 1054, 12099, 11, 1054, 3, 1054, 3, 1054, 3, 1055, 3, 1055, 3, 1055, 3, 1055, 3, 1055, 3, 1055, 7, 1055, 12109, 10, 1055, 12, 1055, 14, 1055, 12112, 11, 1055, 3, 1055, 3, 1055, 3, 1056, 3, 1056, 3, 1057, 3, 1057, 3, 1058, 3, 1058, 3, 1058, 6, 1058, 12123, 10, 1058, 13, 1058, 14, 1058, 12124, 3, 1058, 3, 1058, 3, 1059, 3, 1059, 3, 1059, 3, 1059, 6, 2133, 2146, 12062, 12068, 2, 2, 1060, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 15, 29, 2, 16, 31, 2, 17, 33, 2, 18, 35, 2, 19, 37, 2, 20, 39, 2, 21, 41, 2, 22, 43, 2, 23, 45, 2, 24, 47, 2, 25, 49, 2, 26, 51, 2, 27, 53, 2, 28, 55, 2, 29, 57, 2, 30, 59, 2, 31, 61, 2, 32, 63, 2, 33, 65, 2, 34, 67, 2, 35, 69, 2, 36, 71, 2, 37, 73, 2, 38, 75, 2, 39, 77, 2, 40, 79, 2, 41, 81, 2, 42, 83, 2, 43, 85, 2, 44, 87, 2, 45, 89, 2, 46, 91, 2, 47, 93, 2, 48, 95, 2, 49, 97, 2, 50, 99, 2, 51, 101, 2, 52, 103, 2, 53, 105, 2, 54, 107, 2, 55, 109, 2, 56, 111, 2, 57, 113, 2, 58, 115, 2, 59, 117, 2, 60, 119, 2, 61, 121, 2, 62, 123, 2, 63, 125, 2, 64, 127, 2, 65, 129, 2, 66, 131, 2, 67, 133, 2, 68, 135, 2, 69, 137, 2, 70, 139, 2, 71, 141, 2, 72, 143, 2, 73, 145, 2, 74, 147, 2, 75, 149, 2, 76, 151, 2, 77, 153, 2, 78, 155, 2, 79, 157, 2, 80, 159, 2, 81, 161, 2, 82, 163, 2, 83, 165, 2, 84, 167, 2, 85, 169, 2, 86, 171, 2, 87, 173, 2, 88, 175, 2, 89, 177, 2, 90, 179, 2, 91, 181, 2, 92, 183, 2, 93, 185, 2, 94, 187, 2, 95, 189, 2, 96, 191, 2, 97, 193, 2, 98, 195, 2, 99, 197, 2, 100, 199, 2, 101, 201, 2, 102, 203, 2, 103, 205, 2, 104, 207, 2, 105, 209, 2, 106, 211, 2, 107, 213, 2, 108, 215, 2, 109, 217, 2, 110, 219, 2, 111, 221, 2, 112, 223, 2, 113, 225, 2, 114, 227, 2, 115, 229, 2, 116, 231, 2, 117, 233, 2, 118, 235, 2, 119, 237, 2, 120, 239, 2, 121, 241, 2, 122, 243, 2, 123, 245, 2, 124, 247, 2, 125, 249, 2, 126, 251, 2, 127, 253, 2, 128, 255, 2, 129, 257, 2, 130, 259, 2, 131, 261, 2, 132, 263, 2, 133, 265, 2, 134, 267, 2, 135, 269, 2, 136, 271, 2, 137, 273, 2, 138, 275, 2, 139, 277, 2, 140, 279, 2, 141, 281, 2, 142, 283, 2, 143, 285, 2, 144, 287, 2, 145, 289, 2, 146, 291, 2, 147, 293, 2, 148, 295, 2, 149, 297, 2, 150, 299, 2, 151, 301, 2, 152, 303, 2, 153, 305, 2, 154, 307, 2, 155, 309, 2, 156, 311, 2, 157, 313, 2, 158, 315, 2, 159, 317, 2, 160, 319, 2, 161, 321, 2, 162, 323, 2, 163, 325, 2, 164, 327, 2, 165, 329, 2, 166, 331, 2, 167, 333, 2, 168, 335, 2, 169, 337, 2, 170, 339, 2, 171, 341, 2, 172, 343, 2, 173, 345, 2, 174, 347, 2, 175, 349, 2, 176, 351, 2, 177, 353, 2, 178, 355, 2, 179, 357, 2, 180, 359, 2, 181, 361, 2, 182, 363, 2, 183, 365, 2, 184, 367, 2, 185, 369, 2, 186, 371, 2, 187, 373, 2, 188, 375, 2, 189, 377, 2, 190, 379, 2, 191, 381, 2, 192, 383, 2, 193, 385, 2, 194, 387, 2, 195, 389, 2, 196, 391, 2, 197, 393, 2, 198, 395, 2, 199, 397, 2, 200, 399, 2, 201, 401, 2, 202, 403, 2, 203, 405, 2, 204, 407, 2, 205, 409, 2, 206, 411, 2, 207, 413, 2, 208, 415, 2, 209, 417, 2, 210, 419, 2, 211, 421, 2, 212, 423, 2, 213, 425, 2, 214, 427, 2, 215, 429, 2, 216, 431, 2, 217, 433, 2, 218, 435, 2, 219, 437, 2, 220, 439, 2, 221, 441, 2, 222, 443, 2, 223, 445, 2, 224, 447, 2, 225, 449, 2, 226, 451, 2, 227, 453, 2, 228, 455, 2, 229, 457, 2, 230, 459, 2, 231, 461, 2, 232, 463, 2, 233, 465, 2, 234, 467, 2, 235, 469, 2, 236, 471, 2, 237, 473, 2, 238, 475, 2, 239, 477, 2, 240, 479, 2, 241, 481, 2, 242, 483, 2, 243, 485, 2, 244, 487, 2, 245, 489, 2, 246, 491, 2, 247, 493, 2, 248, 495, 2, 249, 497, 2, 250, 499, 2, 251, 501, 2, 252, 503, 2, 253, 505, 2, 254, 507, 2, 255, 509, 2, 256, 511, 2, 257, 513, 2, 258, 515, 2, 259, 517, 2, 260, 519, 2, 261, 521, 2, 262, 523, 2, 263, 525, 2, 264, 527, 2, 265, 529, 2, 266, 531, 2, 267, 533, 2, 268, 535, 2, 269, 537, 2, 270, 539, 2, 271, 541, 2, 272, 543, 2, 273, 545, 2, 274, 547, 2, 275, 549, 2, 276, 551, 2, 277, 553, 2, 278, 555, 2, 279, 557, 2, 280, 559, 2, 281, 561, 2, 282, 563, 2, 283, 565, 2, 284, 567, 2, 285, 569, 2, 286, 571, 2, 287, 573, 2, 288, 575, 2, 289, 577, 2, 290, 579, 2, 291, 581, 2, 292, 583, 2, 293, 585, 2, 294, 587, 2, 295, 589, 2, 296, 591, 2, 297, 593, 2, 298, 595, 2, 299, 597, 2, 300, 599, 2, 301, 601, 2, 302, 603, 2, 303, 605, 2, 304, 607, 2, 305, 609, 2, 306, 611, 2, 307, 613, 2, 308, 615, 2, 309, 617, 2, 310, 619, 2, 311, 621, 2, 312, 623, 2, 313, 625, 2, 314, 627, 2, 315, 629, 2, 316, 631, 2, 317, 633, 2, 318, 635, 2, 319, 637, 2, 320, 639, 2, 321, 641, 2, 322, 643, 2, 323, 645, 2, 324, 647, 2, 325, 649, 2, 326, 651, 2, 327, 653, 2, 328, 655, 2, 329, 657, 2, 330, 659, 2, 331, 661, 2, 332, 663, 2, 333, 665, 2, 334, 667, 2, 335, 669, 2, 336, 671, 2, 337, 673, 2, 338, 675, 2, 339, 677, 2, 340, 679, 2, 341, 681, 2, 342, 683, 2, 343, 685, 2, 344, 687, 2, 345, 689, 2, 346, 691, 2, 347, 693, 2, 348, 695, 2, 349, 697, 2, 350, 699, 2, 351, 701, 2, 352, 703, 2, 353, 705, 2, 354, 707, 2, 355, 709, 2, 356, 711, 2, 357, 713, 2, 358, 715, 2, 359, 717, 2, 360, 719, 2, 361, 721, 2, 362, 723, 2, 363, 725, 2, 364, 727, 2, 365, 729, 2, 366, 731, 2, 367, 733, 2, 368, 735, 2, 369, 737, 2, 370, 739, 2, 371, 741, 2, 372, 743, 2, 373, 745, 2, 374, 747, 2, 375, 749, 2, 376, 751, 2, 377, 753, 2, 378, 755, 2, 379, 757, 2, 380, 759, 2, 381, 761, 2, 382, 763, 2, 383, 765, 2, 384, 767, 2, 385, 769, 2, 386, 771, 2, 387, 773, 2, 388, 775, 2, 389, 777, 2, 390, 779, 2, 391, 781, 2, 392, 783, 2, 393, 785, 2, 394, 787, 2, 395, 789, 2, 396, 791, 2, 397, 793, 2, 398, 795, 2, 399, 797, 2, 400, 799, 2, 401, 801, 2, 402, 803, 2, 403, 805, 2, 404, 807, 2, 405, 809, 2, 406, 811, 2, 407, 813, 2, 408, 815, 2, 409, 817, 2, 410, 819, 2, 411, 821, 2, 412, 823, 2, 413, 825, 2, 414, 827, 2, 415, 829, 2, 416, 831, 2, 417, 833, 2, 418, 835, 2, 419, 837, 2, 420, 839, 2, 421, 841, 2, 422, 843, 2, 423, 845, 2, 424, 847, 2, 425, 849, 2, 426, 851, 2, 427, 853, 2, 428, 855, 2, 429, 857, 2, 430, 859, 2, 431, 861, 2, 432, 863, 2, 433, 865, 2, 434, 867, 2, 435, 869, 2, 436, 871, 2, 437, 873, 2, 438, 875, 2, 439, 877, 2, 440, 879, 2, 441, 881, 2, 442, 883, 2, 443, 885, 2, 444, 887, 2, 445, 889, 2, 446, 891, 2, 447, 893, 2, 448, 895, 2, 449, 897, 2, 450, 899, 2, 451, 901, 2, 452, 903, 2, 453, 905, 2, 454, 907, 2, 455, 909, 2, 456, 911, 2, 457, 913, 2, 458, 915, 2, 459, 917, 2, 460, 919, 2, 461, 921, 2, 462, 923, 2, 463, 925, 2, 464, 927, 2, 465, 929, 2, 466, 931, 2, 467, 933, 2, 468, 935, 2, 469, 937, 2, 470, 939, 2, 471, 941, 2, 472, 943, 2, 473, 945, 2, 474, 947, 2, 475, 949, 2, 476, 951, 2, 477, 953, 2, 478, 955, 2, 479, 957, 2, 480, 959, 2, 481, 961, 2, 482, 963, 2, 483, 965, 2, 484, 967, 2, 485, 969, 2, 486, 971, 2, 487, 973, 2, 488, 975, 2, 489, 977, 2, 490, 979, 2, 491, 981, 2, 492, 983, 2, 493, 985, 2, 494, 987, 2, 495, 989, 2, 496, 991, 2, 497, 993, 2, 498, 995, 2, 499, 997, 2, 500, 999, 2, 501, 1001, 2, 502, 1003, 2, 503, 1005, 2, 504, 1007, 2, 505, 1009, 2, 506, 1011, 2, 507, 1013, 2, 508, 1015, 2, 509, 1017, 2, 510, 1019, 2, 511, 1021, 2, 512, 1023, 2, 513, 1025, 2, 514, 1027, 2, 515, 1029, 2, 516, 1031, 2, 517, 1033, 2, 518, 1035, 2, 519, 1037, 2, 520, 1039, 2, 521, 1041, 2, 522, 1043, 2, 523, 1045, 2, 524, 1047, 2, 525, 1049, 2, 526, 1051, 2, 527, 1053, 2, 528, 1055, 2, 529, 1057, 2, 530, 1059, 2, 531, 1061, 2, 532, 1063, 2, 533, 1065, 2, 534, 1067, 2, 535, 1069, 2, 536, 1071, 2, 537, 1073, 2, 538, 1075, 2, 539, 1077, 2, 540, 1079, 2, 541, 1081, 2, 542, 1083, 2, 543, 1085, 2, 544, 1087, 2, 545, 1089, 2, 546, 1091, 2, 547, 1093, 2, 548, 1095, 2, 549, 1097, 2, 550, 1099, 2, 551, 1101, 2, 552, 1103, 2, 553, 1105, 2, 554, 1107, 2, 555, 1109, 2, 556, 1111, 2, 557, 1113, 2, 558, 1115, 2, 559, 1117, 2, 560, 1119, 2, 561, 1121, 2, 562, 1123, 2, 563, 1125, 2, 564, 1127, 2, 565, 1129, 2, 566, 1131, 2, 567, 1133, 2, 568, 1135, 2, 569, 1137, 2, 570, 1139, 2, 571, 1141, 2, 572, 1143, 2, 573, 1145, 2, 574, 1147, 2, 575, 1149, 2, 576, 1151, 2, 577, 1153, 2, 578, 1155, 2, 579, 1157, 2, 580, 1159, 2, 581, 1161, 2, 582, 1163, 2, 583, 1165, 2, 584, 1167, 2, 585, 1169, 2, 586, 1171, 2, 587, 1173, 2, 588, 1175, 2, 589, 1177, 2, 590, 1179, 2, 591, 1181, 2, 592, 1183, 2, 593, 1185, 2, 594, 1187, 2, 595, 1189, 2, 596, 1191, 2, 597, 1193, 2, 598, 1195, 2, 599, 1197, 2, 600, 1199, 2, 601, 1201, 2, 602, 1203, 2, 603, 1205, 2, 604, 1207, 2, 605, 1209, 2, 606, 1211, 2, 607, 1213, 2, 608, 1215, 2, 609, 1217, 2, 610, 1219, 2, 611, 1221, 2, 612, 1223, 2, 613, 1225, 2, 614, 1227, 2, 615, 1229, 2, 616, 1231, 2, 617, 1233, 2, 618, 1235, 2, 619, 1237, 2, 620, 1239, 2, 621, 1241, 2, 622, 1243, 2, 623, 1245, 2, 624, 1247, 2, 625, 1249, 2, 626, 1251, 2, 627, 1253, 2, 628, 1255, 2, 629, 1257, 2, 630, 1259, 2, 631, 1261, 2, 632, 1263, 2, 633, 1265, 2, 634, 1267, 2, 635, 1269, 2, 636, 1271, 2, 637, 1273, 2, 638, 1275, 2, 639, 1277, 2, 640, 1279, 2, 641, 1281, 2, 642, 1283, 2, 643, 1285, 2, 644, 1287, 2, 645, 1289, 2, 646, 1291, 2, 647, 1293, 2, 648, 1295, 2, 649, 1297, 2, 650, 1299, 2, 651, 1301, 2, 652, 1303, 2, 653, 1305, 2, 654, 1307, 2, 655, 1309, 2, 656, 1311, 2, 657, 1313, 2, 658, 1315, 2, 659, 1317, 2, 660, 1319, 2, 661, 1321, 2, 662, 1323, 2, 663, 1325, 2, 664, 1327, 2, 665, 1329, 2, 666, 1331, 2, 667, 1333, 2, 668, 1335, 2, 669, 1337, 2, 670, 1339, 2, 671, 1341, 2, 672, 1343, 2, 673, 1345, 2, 674, 1347, 2, 675, 1349, 2, 676, 1351, 2, 677, 1353, 2, 678, 1355, 2, 679, 1357, 2, 680, 1359, 2, 681, 1361, 2, 682, 1363, 2, 683, 1365, 2, 684, 1367, 2, 685, 1369, 2, 686, 1371, 2, 687, 1373, 2, 688, 1375, 2, 689, 1377, 2, 690, 1379, 2, 691, 1381, 2, 692, 1383, 2, 693, 1385, 2, 694, 1387, 2, 695, 1389, 2, 696, 1391, 2, 697, 1393, 2, 698, 1395, 2, 699, 1397, 2, 700, 1399, 2, 701, 1401, 2, 702, 1403, 2, 703, 1405, 2, 704, 1407, 2, 705, 1409, 2, 706, 1411, 2, 707, 1413, 2, 708, 1415, 2, 709, 1417, 2, 710, 1419, 2, 711, 1421, 2, 712, 1423, 2, 713, 1425, 2, 714, 1427, 2, 715, 1429, 2, 716, 1431, 2, 717, 1433, 2, 718, 1435, 2, 719, 1437, 2, 720, 1439, 2, 721, 1441, 2, 722, 1443, 2, 723, 1445, 2, 724, 1447, 2, 725, 1449, 2, 726, 1451, 2, 727, 1453, 2, 728, 1455, 2, 729, 1457, 2, 730, 1459, 2, 731, 1461, 2, 732, 1463, 2, 733, 1465, 2, 734, 1467, 2, 735, 1469, 2, 736, 1471, 2, 737, 1473, 2, 738, 1475, 2, 739, 1477, 2, 740, 1479, 2, 741, 1481, 2, 742, 1483, 2, 743, 1485, 2, 744, 1487, 2, 745, 1489, 2, 746, 1491, 2, 747, 1493, 2, 748, 1495, 2, 749, 1497, 2, 750, 1499, 2, 751, 1501, 2, 752, 1503, 2, 753, 1505, 2, 754, 1507, 2, 755, 1509, 2, 756, 1511, 2, 757, 1513, 2, 758, 1515, 2, 759, 1517, 2, 760, 1519, 2, 761, 1521, 2, 762, 1523, 2, 763, 1525, 2, 764, 1527, 2, 765, 1529, 2, 766, 1531, 2, 767, 1533, 2, 768, 1535, 2, 769, 1537, 2, 770, 1539, 2, 771, 1541, 2, 772, 1543, 2, 773, 1545, 2, 774, 1547, 2, 775, 1549, 2, 776, 1551, 2, 777, 1553, 2, 778, 1555, 2, 779, 1557, 2, 780, 1559, 2, 781, 1561, 2, 782, 1563, 2, 783, 1565, 2, 784, 1567, 2, 785, 1569, 2, 786, 1571, 2, 787, 1573, 2, 788, 1575, 2, 789, 1577, 2, 790, 1579, 2, 791, 1581, 2, 792, 1583, 2, 793, 1585, 2, 794, 1587, 2, 795, 1589, 2, 796, 1591, 2, 797, 1593, 2, 798, 1595, 2, 799, 1597, 2, 800, 1599, 2, 801, 1601, 2, 802, 1603, 2, 803, 1605, 2, 804, 1607, 2, 805, 1609, 2, 806, 1611, 2, 807, 1613, 2, 808, 1615, 2, 809, 1617, 2, 810, 1619, 2, 811, 1621, 2, 812, 1623, 2, 813, 1625, 2, 814, 1627, 2, 815, 1629, 2, 816, 1631, 2, 817, 1633, 2, 818, 1635, 2, 819, 1637, 2, 820, 1639, 2, 821, 1641, 2, 822, 1643, 2, 823, 1645, 2, 824, 1647, 2, 825, 1649, 2, 826, 1651, 2, 827, 1653, 2, 828, 1655, 2, 829, 1657, 2, 830, 1659, 2, 831, 1661, 2, 832, 1663, 2, 833, 1665, 2, 834, 1667, 2, 835, 1669, 2, 836, 1671, 2, 837, 1673, 2, 838, 1675, 2, 839, 1677, 2, 840, 1679, 2, 841, 1681, 2, 842, 1683, 2, 843, 1685, 2, 844, 1687, 2, 845, 1689, 2, 846, 1691, 2, 847, 1693, 2, 848, 1695, 2, 849, 1697, 2, 850, 1699, 2, 851, 1701, 2, 852, 1703, 2, 853, 1705, 2, 854, 1707, 2, 855, 1709, 2, 856, 1711, 2, 857, 1713, 2, 858, 1715, 2, 859, 1717, 2, 860, 1719, 2, 861, 1721, 2, 862, 1723, 2, 863, 1725, 2, 864, 1727, 2, 865, 1729, 2, 866, 1731, 2, 867, 1733, 2, 868, 1735, 2, 869, 1737, 2, 870, 1739, 2, 871, 1741, 2, 872, 1743, 2, 873, 1745, 2, 874, 1747, 2, 875, 1749, 2, 876, 1751, 2, 877, 1753, 2, 878, 1755, 2, 879, 1757, 2, 880, 1759, 2, 881, 1761, 2, 882, 1763, 2, 883, 1765, 2, 884, 1767, 2, 885, 1769, 2, 886, 1771, 2, 887, 1773, 2, 888, 1775, 2, 889, 1777, 2, 890, 1779, 2, 891, 1781, 2, 892, 1783, 2, 893, 1785, 2, 894, 1787, 2, 895, 1789, 2, 896, 1791, 2, 897, 1793, 2, 898, 1795, 2, 899, 1797, 2, 900, 1799, 2, 901, 1801, 2, 902, 1803, 2, 903, 1805, 2, 904, 1807, 2, 905, 1809, 2, 906, 1811, 2, 907, 1813, 2, 908, 1815, 2, 909, 1817, 2, 910, 1819, 2, 911, 1821, 2, 912, 1823, 2, 913, 1825, 2, 914, 1827, 2, 915, 1829, 2, 916, 1831, 2, 917, 1833, 2, 918, 1835, 2, 919, 1837, 2, 920, 1839, 2, 921, 1841, 2, 922, 1843, 2, 923, 1845, 2, 924, 1847, 2, 925, 1849, 2, 926, 1851, 2, 927, 1853, 2, 928, 1855, 2, 929, 1857, 2, 930, 1859, 2, 931, 1861, 2, 932, 1863, 2, 933, 1865, 2, 934, 1867, 2, 935, 1869, 2, 936, 1871, 2, 937, 1873, 2, 938, 1875, 2, 939, 1877, 2, 940, 1879, 2, 941, 1881, 2, 942, 1883, 2, 943, 1885, 2, 944, 1887, 2, 945, 1889, 2, 946, 1891, 2, 947, 1893, 2, 948, 1895, 2, 949, 1897, 2, 950, 1899, 2, 951, 1901, 2, 952, 1903, 2, 953, 1905, 2, 954, 1907, 2, 955, 1909, 2, 956, 1911, 2, 957, 1913, 2, 958, 1915, 2, 959, 1917, 2, 960, 1919, 2, 961, 1921, 2, 962, 1923, 2, 963, 1925, 2, 964, 1927, 2, 965, 1929, 2, 966, 1931, 2, 967, 1933, 2, 968, 1935, 2, 969, 1937, 2, 970, 1939, 2, 971, 1941, 2, 972, 1943, 2, 973, 1945, 2, 974, 1947, 2, 975, 1949, 2, 976, 1951, 2, 977, 1953, 2, 978, 1955, 2, 979, 1957, 2, 980, 1959, 2, 981, 1961, 2, 982, 1963, 2, 983, 1965, 2, 984, 1967, 2, 985, 1969, 2, 986, 1971, 2, 987, 1973, 2, 988, 1975, 2, 989, 1977, 2, 990, 1979, 2, 991, 1981, 2, 992, 1983, 2, 993, 1985, 2, 994, 1987, 2, 995, 1989, 2, 996, 1991, 2, 997, 1993, 2, 998, 1995, 2, 999, 1997, 2, 1000, 1999, 2, 1001, 2001, 2, 1002, 2003, 2, 1003, 2005, 2, 1004, 2007, 2, 1005, 2009, 2, 1006, 2011, 2, 1007, 2013, 2, 1008, 2015, 2, 1009, 2017, 2, 1010, 2019, 2, 1011, 2021, 2, 1012, 2023, 2, 1013, 2025, 2, 1014, 2027, 2, 1015, 2029, 2, 1016, 2031, 2, 1017, 2033, 2, 1018, 2035, 2, 1019, 2037, 2, 1020, 2039, 2, 1021, 2041, 2, 1022, 2043, 2, 1023, 2045, 2, 1024, 2047, 2, 1025, 2049, 2, 1026, 2051, 2, 1027, 2053, 2, 1028, 2055, 2, 1029, 2057, 2, 1030, 2059, 2, 1031, 2061, 2, 1032, 2063, 2, 1033, 2065, 2, 2, 2067, 2, 1034, 2069, 2, 1035, 2071, 2, 1036, 2073, 2, 1037, 2075, 2, 1038, 2077, 2, 1039, 2079, 2, 1040, 2081, 2, 1041, 2083, 2, 1042, 2085, 2, 1043, 2087, 2, 1044, 2089, 2, 1045, 2091, 2, 1046, 2093, 2, 1047, 2095, 2, 1048, 2097, 2, 1049, 2099, 2, 2, 2101, 2, 2, 2103, 2, 2, 2105, 2, 2, 2107, 2, 2, 2109, 2, 2, 2111, 2, 2, 2113, 2, 2, 2115, 2, 2, 2117, 2, 1050, 3, 2, 16, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 12, 12, 15, 15, 6, 2, 73, 73, 77, 77, 79, 79, 86, 86, 3, 2, 98, 98, 7, 2, 38, 38, 48, 48, 50, 59, 67, 92, 97, 97, 4, 2, 45, 45, 47, 47, 6, 2, 38, 38, 50, 59, 67, 92, 97, 97, 5, 2, 38, 38, 67, 92, 97, 97, 4, 2, 36, 36, 94, 94, 4, 2, 41, 41, 94, 94, 4, 2, 94, 94, 98, 98, 4, 2, 50, 59, 67, 72, 3, 2, 50, 59, 3, 2, 50, 51, 2, 12221, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 519, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 535, 3, 2, 2, 2, 2, 537, 3, 2, 2, 2, 2, 539, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 545, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 2, 559, 3, 2, 2, 2, 2, 561, 3, 2, 2, 2, 2, 563, 3, 2, 2, 2, 2, 565, 3, 2, 2, 2, 2, 567, 3, 2, 2, 2, 2, 569, 3, 2, 2, 2, 2, 571, 3, 2, 2, 2, 2, 573, 3, 2, 2, 2, 2, 575, 3, 2, 2, 2, 2, 577, 3, 2, 2, 2, 2, 579, 3, 2, 2, 2, 2, 581, 3, 2, 2, 2, 2, 583, 3, 2, 2, 2, 2, 585, 3, 2, 2, 2, 2, 587, 3, 2, 2, 2, 2, 589, 3, 2, 2, 2, 2, 591, 3, 2, 2, 2, 2, 593, 3, 2, 2, 2, 2, 595, 3, 2, 2, 2, 2, 597, 3, 2, 2, 2, 2, 599, 3, 2, 2, 2, 2, 601, 3, 2, 2, 2, 2, 603, 3, 2, 2, 2, 2, 605, 3, 2, 2, 2, 2, 607, 3, 2, 2, 2, 2, 609, 3, 2, 2, 2, 2, 611, 3, 2, 2, 2, 2, 613, 3, 2, 2, 2, 2, 615, 3, 2, 2, 2, 2, 617, 3, 2, 2, 2, 2, 619, 3, 2, 2, 2, 2, 621, 3, 2, 2, 2, 2, 623, 3, 2, 2, 2, 2, 625, 3, 2, 2, 2, 2, 627, 3, 2, 2, 2, 2, 629, 3, 2, 2, 2, 2, 631, 3, 2, 2, 2, 2, 633, 3, 2, 2, 2, 2, 635, 3, 2, 2, 2, 2, 637, 3, 2, 2, 2, 2, 639, 3, 2, 2, 2, 2, 641, 3, 2, 2, 2, 2, 643, 3, 2, 2, 2, 2, 645, 3, 2, 2, 2, 2, 647, 3, 2, 2, 2, 2, 649, 3, 2, 2, 2, 2, 651, 3, 2, 2, 2, 2, 653, 3, 2, 2, 2, 2, 655, 3, 2, 2, 2, 2, 657, 3, 2, 2, 2, 2, 659, 3, 2, 2, 2, 2, 661, 3, 2, 2, 2, 2, 663, 3, 2, 2, 2, 2, 665, 3, 2, 2, 2, 2, 667, 3, 2, 2, 2, 2, 669, 3, 2, 2, 2, 2, 671, 3, 2, 2, 2, 2, 673, 3, 2, 2, 2, 2, 675, 3, 2, 2, 2, 2, 677, 3, 2, 2, 2, 2, 679, 3, 2, 2, 2, 2, 681, 3, 2, 2, 2, 2, 683, 3, 2, 2, 2, 2, 685, 3, 2, 2, 2, 2, 687, 3, 2, 2, 2, 2, 689, 3, 2, 2, 2, 2, 691, 3, 2, 2, 2, 2, 693, 3, 2, 2, 2, 2, 695, 3, 2, 2, 2, 2, 697, 3, 2, 2, 2, 2, 699, 3, 2, 2, 2, 2, 701, 3, 2, 2, 2, 2, 703, 3, 2, 2, 2, 2, 705, 3, 2, 2, 2, 2, 707, 3, 2, 2, 2, 2, 709, 3, 2, 2, 2, 2, 711, 3, 2, 2, 2, 2, 713, 3, 2, 2, 2, 2, 715, 3, 2, 2, 2, 2, 717, 3, 2, 2, 2, 2, 719, 3, 2, 2, 2, 2, 721, 3, 2, 2, 2, 2, 723, 3, 2, 2, 2, 2, 725, 3, 2, 2, 2, 2, 727, 3, 2, 2, 2, 2, 729, 3, 2, 2, 2, 2, 731, 3, 2, 2, 2, 2, 733, 3, 2, 2, 2, 2, 735, 3, 2, 2, 2, 2, 737, 3, 2, 2, 2, 2, 739, 3, 2, 2, 2, 2, 741, 3, 2, 2, 2, 2, 743, 3, 2, 2, 2, 2, 745, 3, 2, 2, 2, 2, 747, 3, 2, 2, 2, 2, 749, 3, 2, 2, 2, 2, 751, 3, 2, 2, 2, 2, 753, 3, 2, 2, 2, 2, 755, 3, 2, 2, 2, 2, 757, 3, 2, 2, 2, 2, 759, 3, 2, 2, 2, 2, 761, 3, 2, 2, 2, 2, 763, 3, 2, 2, 2, 2, 765, 3, 2, 2, 2, 2, 767, 3, 2, 2, 2, 2, 769, 3, 2, 2, 2, 2, 771, 3, 2, 2, 2, 2, 773, 3, 2, 2, 2, 2, 775, 3, 2, 2, 2, 2, 777, 3, 2, 2, 2, 2, 779, 3, 2, 2, 2, 2, 781, 3, 2, 2, 2, 2, 783, 3, 2, 2, 2, 2, 785, 3, 2, 2, 2, 2, 787, 3, 2, 2, 2, 2, 789, 3, 2, 2, 2, 2, 791, 3, 2, 2, 2, 2, 793, 3, 2, 2, 2, 2, 795, 3, 2, 2, 2, 2, 797, 3, 2, 2, 2, 2, 799, 3, 2, 2, 2, 2, 801, 3, 2, 2, 2, 2, 803, 3, 2, 2, 2, 2, 805, 3, 2, 2, 2, 2, 807, 3, 2, 2, 2, 2, 809, 3, 2, 2, 2, 2, 811, 3, 2, 2, 2, 2, 813, 3, 2, 2, 2, 2, 815, 3, 2, 2, 2, 2, 817, 3, 2, 2, 2, 2, 819, 3, 2, 2, 2, 2, 821, 3, 2, 2, 2, 2, 823, 3, 2, 2, 2, 2, 825, 3, 2, 2, 2, 2, 827, 3, 2, 2, 2, 2, 829, 3, 2, 2, 2, 2, 831, 3, 2, 2, 2, 2, 833, 3, 2, 2, 2, 2, 835, 3, 2, 2, 2, 2, 837, 3, 2, 2, 2, 2, 839, 3, 2, 2, 2, 2, 841, 3, 2, 2, 2, 2, 843, 3, 2, 2, 2, 2, 845, 3, 2, 2, 2, 2, 847, 3, 2, 2, 2, 2, 849, 3, 2, 2, 2, 2, 851, 3, 2, 2, 2, 2, 853, 3, 2, 2, 2, 2, 855, 3, 2, 2, 2, 2, 857, 3, 2, 2, 2, 2, 859, 3, 2, 2, 2, 2, 861, 3, 2, 2, 2, 2, 863, 3, 2, 2, 2, 2, 865, 3, 2, 2, 2, 2, 867, 3, 2, 2, 2, 2, 869, 3, 2, 2, 2, 2, 871, 3, 2, 2, 2, 2, 873, 3, 2, 2, 2, 2, 875, 3, 2, 2, 2, 2, 877, 3, 2, 2, 2, 2, 879, 3, 2, 2, 2, 2, 881, 3, 2, 2, 2, 2, 883, 3, 2, 2, 2, 2, 885, 3, 2, 2, 2, 2, 887, 3, 2, 2, 2, 2, 889, 3, 2, 2, 2, 2, 891, 3, 2, 2, 2, 2, 893, 3, 2, 2, 2, 2, 895, 3, 2, 2, 2, 2, 897, 3, 2, 2, 2, 2, 899, 3, 2, 2, 2, 2, 901, 3, 2, 2, 2, 2, 903, 3, 2, 2, 2, 2, 905, 3, 2, 2, 2, 2, 907, 3, 2, 2, 2, 2, 909, 3, 2, 2, 2, 2, 911, 3, 2, 2, 2, 2, 913, 3, 2, 2, 2, 2, 915, 3, 2, 2, 2, 2, 917, 3, 2, 2, 2, 2, 919, 3, 2, 2, 2, 2, 921, 3, 2, 2, 2, 2, 923, 3, 2, 2, 2, 2, 925, 3, 2, 2, 2, 2, 927, 3, 2, 2, 2, 2, 929, 3, 2, 2, 2, 2, 931, 3, 2, 2, 2, 2, 933, 3, 2, 2, 2, 2, 935, 3, 2, 2, 2, 2, 937, 3, 2, 2, 2, 2, 939, 3, 2, 2, 2, 2, 941, 3, 2, 2, 2, 2, 943, 3, 2, 2, 2, 2, 945, 3, 2, 2, 2, 2, 947, 3, 2, 2, 2, 2, 949, 3, 2, 2, 2, 2, 951, 3, 2, 2, 2, 2, 953, 3, 2, 2, 2, 2, 955, 3, 2, 2, 2, 2, 957, 3, 2, 2, 2, 2, 959, 3, 2, 2, 2, 2, 961, 3, 2, 2, 2, 2, 963, 3, 2, 2, 2, 2, 965, 3, 2, 2, 2, 2, 967, 3, 2, 2, 2, 2, 969, 3, 2, 2, 2, 2, 971, 3, 2, 2, 2, 2, 973, 3, 2, 2, 2, 2, 975, 3, 2, 2, 2, 2, 977, 3, 2, 2, 2, 2, 979, 3, 2, 2, 2, 2, 981, 3, 2, 2, 2, 2, 983, 3, 2, 2, 2, 2, 985, 3, 2, 2, 2, 2, 987, 3, 2, 2, 2, 2, 989, 3, 2, 2, 2, 2, 991, 3, 2, 2, 2, 2, 993, 3, 2, 2, 2, 2, 995, 3, 2, 2, 2, 2, 997, 3, 2, 2, 2, 2, 999, 3, 2, 2, 2, 2, 1001, 3, 2, 2, 2, 2, 1003, 3, 2, 2, 2, 2, 1005, 3, 2, 2, 2, 2, 1007, 3, 2, 2, 2, 2, 1009, 3, 2, 2, 2, 2, 1011, 3, 2, 2, 2, 2, 1013, 3, 2, 2, 2, 2, 1015, 3, 2, 2, 2, 2, 1017, 3, 2, 2, 2, 2, 1019, 3, 2, 2, 2, 2, 1021, 3, 2, 2, 2, 2, 1023, 3, 2, 2, 2, 2, 1025, 3, 2, 2, 2, 2, 1027, 3, 2, 2, 2, 2, 1029, 3, 2, 2, 2, 2, 1031, 3, 2, 2, 2, 2, 1033, 3, 2, 2, 2, 2, 1035, 3, 2, 2, 2, 2, 1037, 3, 2, 2, 2, 2, 1039, 3, 2, 2, 2, 2, 1041, 3, 2, 2, 2, 2, 1043, 3, 2, 2, 2, 2, 1045, 3, 2, 2, 2, 2, 1047, 3, 2, 2, 2, 2, 1049, 3, 2, 2, 2, 2, 1051, 3, 2, 2, 2, 2, 1053, 3, 2, 2, 2, 2, 1055, 3, 2, 2, 2, 2, 1057, 3, 2, 2, 2, 2, 1059, 3, 2, 2, 2, 2, 1061, 3, 2, 2, 2, 2, 1063, 3, 2, 2, 2, 2, 1065, 3, 2, 2, 2, 2, 1067, 3, 2, 2, 2, 2, 1069, 3, 2, 2, 2, 2, 1071, 3, 2, 2, 2, 2, 1073, 3, 2, 2, 2, 2, 1075, 3, 2, 2, 2, 2, 1077, 3, 2, 2, 2, 2, 1079, 3, 2, 2, 2, 2, 1081, 3, 2, 2, 2, 2, 1083, 3, 2, 2, 2, 2, 1085, 3, 2, 2, 2, 2, 1087, 3, 2, 2, 2, 2, 1089, 3, 2, 2, 2, 2, 1091, 3, 2, 2, 2, 2, 1093, 3, 2, 2, 2, 2, 1095, 3, 2, 2, 2, 2, 1097, 3, 2, 2, 2, 2, 1099, 3, 2, 2, 2, 2, 1101, 3, 2, 2, 2, 2, 1103, 3, 2, 2, 2, 2, 1105, 3, 2, 2, 2, 2, 1107, 3, 2, 2, 2, 2, 1109, 3, 2, 2, 2, 2, 1111, 3, 2, 2, 2, 2, 1113, 3, 2, 2, 2, 2, 1115, 3, 2, 2, 2, 2, 1117, 3, 2, 2, 2, 2, 1119, 3, 2, 2, 2, 2, 1121, 3, 2, 2, 2, 2, 1123, 3, 2, 2, 2, 2, 1125, 3, 2, 2, 2, 2, 1127, 3, 2, 2, 2, 2, 1129, 3, 2, 2, 2, 2, 1131, 3, 2, 2, 2, 2, 1133, 3, 2, 2, 2, 2, 1135, 3, 2, 2, 2, 2, 1137, 3, 2, 2, 2, 2, 1139, 3, 2, 2, 2, 2, 1141, 3, 2, 2, 2, 2, 1143, 3, 2, 2, 2, 2, 1145, 3, 2, 2, 2, 2, 1147, 3, 2, 2, 2, 2, 1149, 3, 2, 2, 2, 2, 1151, 3, 2, 2, 2, 2, 1153, 3, 2, 2, 2, 2, 1155, 3, 2, 2, 2, 2, 1157, 3, 2, 2, 2, 2, 1159, 3, 2, 2, 2, 2, 1161, 3, 2, 2, 2, 2, 1163, 3, 2, 2, 2, 2, 1165, 3, 2, 2, 2, 2, 1167, 3, 2, 2, 2, 2, 1169, 3, 2, 2, 2, 2, 1171, 3, 2, 2, 2, 2, 1173, 3, 2, 2, 2, 2, 1175, 3, 2, 2, 2, 2, 1177, 3, 2, 2, 2, 2, 1179, 3, 2, 2, 2, 2, 1181, 3, 2, 2, 2, 2, 1183, 3, 2, 2, 2, 2, 1185, 3, 2, 2, 2, 2, 1187, 3, 2, 2, 2, 2, 1189, 3, 2, 2, 2, 2, 1191, 3, 2, 2, 2, 2, 1193, 3, 2, 2, 2, 2, 1195, 3, 2, 2, 2, 2, 1197, 3, 2, 2, 2, 2, 1199, 3, 2, 2, 2, 2, 1201, 3, 2, 2, 2, 2, 1203, 3, 2, 2, 2, 2, 1205, 3, 2, 2, 2, 2, 1207, 3, 2, 2, 2, 2, 1209, 3, 2, 2, 2, 2, 1211, 3, 2, 2, 2, 2, 1213, 3, 2, 2, 2, 2, 1215, 3, 2, 2, 2, 2, 1217, 3, 2, 2, 2, 2, 1219, 3, 2, 2, 2, 2, 1221, 3, 2, 2, 2, 2, 1223, 3, 2, 2, 2, 2, 1225, 3, 2, 2, 2, 2, 1227, 3, 2, 2, 2, 2, 1229, 3, 2, 2, 2, 2, 1231, 3, 2, 2, 2, 2, 1233, 3, 2, 2, 2, 2, 1235, 3, 2, 2, 2, 2, 1237, 3, 2, 2, 2, 2, 1239, 3, 2, 2, 2, 2, 1241, 3, 2, 2, 2, 2, 1243, 3, 2, 2, 2, 2, 1245, 3, 2, 2, 2, 2, 1247, 3, 2, 2, 2, 2, 1249, 3, 2, 2, 2, 2, 1251, 3, 2, 2, 2, 2, 1253, 3, 2, 2, 2, 2, 1255, 3, 2, 2, 2, 2, 1257, 3, 2, 2, 2, 2, 1259, 3, 2, 2, 2, 2, 1261, 3, 2, 2, 2, 2, 1263, 3, 2, 2, 2, 2, 1265, 3, 2, 2, 2, 2, 1267, 3, 2, 2, 2, 2, 1269, 3, 2, 2, 2, 2, 1271, 3, 2, 2, 2, 2, 1273, 3, 2, 2, 2, 2, 1275, 3, 2, 2, 2, 2, 1277, 3, 2, 2, 2, 2, 1279, 3, 2, 2, 2, 2, 1281, 3, 2, 2, 2, 2, 1283, 3, 2, 2, 2, 2, 1285, 3, 2, 2, 2, 2, 1287, 3, 2, 2, 2, 2, 1289, 3, 2, 2, 2, 2, 1291, 3, 2, 2, 2, 2, 1293, 3, 2, 2, 2, 2, 1295, 3, 2, 2, 2, 2, 1297, 3, 2, 2, 2, 2, 1299, 3, 2, 2, 2, 2, 1301, 3, 2, 2, 2, 2, 1303, 3, 2, 2, 2, 2, 1305, 3, 2, 2, 2, 2, 1307, 3, 2, 2, 2, 2, 1309, 3, 2, 2, 2, 2, 1311, 3, 2, 2, 2, 2, 1313, 3, 2, 2, 2, 2, 1315, 3, 2, 2, 2, 2, 1317, 3, 2, 2, 2, 2, 1319, 3, 2, 2, 2, 2, 1321, 3, 2, 2, 2, 2, 1323, 3, 2, 2, 2, 2, 1325, 3, 2, 2, 2, 2, 1327, 3, 2, 2, 2, 2, 1329, 3, 2, 2, 2, 2, 1331, 3, 2, 2, 2, 2, 1333, 3, 2, 2, 2, 2, 1335, 3, 2, 2, 2, 2, 1337, 3, 2, 2, 2, 2, 1339, 3, 2, 2, 2, 2, 1341, 3, 2, 2, 2, 2, 1343, 3, 2, 2, 2, 2, 1345, 3, 2, 2, 2, 2, 1347, 3, 2, 2, 2, 2, 1349, 3, 2, 2, 2, 2, 1351, 3, 2, 2, 2, 2, 1353, 3, 2, 2, 2, 2, 1355, 3, 2, 2, 2, 2, 1357, 3, 2, 2, 2, 2, 1359, 3, 2, 2, 2, 2, 1361, 3, 2, 2, 2, 2, 1363, 3, 2, 2, 2, 2, 1365, 3, 2, 2, 2, 2, 1367, 3, 2, 2, 2, 2, 1369, 3, 2, 2, 2, 2, 1371, 3, 2, 2, 2, 2, 1373, 3, 2, 2, 2, 2, 1375, 3, 2, 2, 2, 2, 1377, 3, 2, 2, 2, 2, 1379, 3, 2, 2, 2, 2, 1381, 3, 2, 2, 2, 2, 1383, 3, 2, 2, 2, 2, 1385, 3, 2, 2, 2, 2, 1387, 3, 2, 2, 2, 2, 1389, 3, 2, 2, 2, 2, 1391, 3, 2, 2, 2, 2, 1393, 3, 2, 2, 2, 2, 1395, 3, 2, 2, 2, 2, 1397, 3, 2, 2, 2, 2, 1399, 3, 2, 2, 2, 2, 1401, 3, 2, 2, 2, 2, 1403, 3, 2, 2, 2, 2, 1405, 3, 2, 2, 2, 2, 1407, 3, 2, 2, 2, 2, 1409, 3, 2, 2, 2, 2, 1411, 3, 2, 2, 2, 2, 1413, 3, 2, 2, 2, 2, 1415, 3, 2, 2, 2, 2, 1417, 3, 2, 2, 2, 2, 1419, 3, 2, 2, 2, 2, 1421, 3, 2, 2, 2, 2, 1423, 3, 2, 2, 2, 2, 1425, 3, 2, 2, 2, 2, 1427, 3, 2, 2, 2, 2, 1429, 3, 2, 2, 2, 2, 1431, 3, 2, 2, 2, 2, 1433, 3, 2, 2, 2, 2, 1435, 3, 2, 2, 2, 2, 1437, 3, 2, 2, 2, 2, 1439, 3, 2, 2, 2, 2, 1441, 3, 2, 2, 2, 2, 1443, 3, 2, 2, 2, 2, 1445, 3, 2, 2, 2, 2, 1447, 3, 2, 2, 2, 2, 1449, 3, 2, 2, 2, 2, 1451, 3, 2, 2, 2, 2, 1453, 3, 2, 2, 2, 2, 1455, 3, 2, 2, 2, 2, 1457, 3, 2, 2, 2, 2, 1459, 3, 2, 2, 2, 2, 1461, 3, 2, 2, 2, 2, 1463, 3, 2, 2, 2, 2, 1465, 3, 2, 2, 2, 2, 1467, 3, 2, 2, 2, 2, 1469, 3, 2, 2, 2, 2, 1471, 3, 2, 2, 2, 2, 1473, 3, 2, 2, 2, 2, 1475, 3, 2, 2, 2, 2, 1477, 3, 2, 2, 2, 2, 1479, 3, 2, 2, 2, 2, 1481, 3, 2, 2, 2, 2, 1483, 3, 2, 2, 2, 2, 1485, 3, 2, 2, 2, 2, 1487, 3, 2, 2, 2, 2, 1489, 3, 2, 2, 2, 2, 1491, 3, 2, 2, 2, 2, 1493, 3, 2, 2, 2, 2, 1495, 3, 2, 2, 2, 2, 1497, 3, 2, 2, 2, 2, 1499, 3, 2, 2, 2, 2, 1501, 3, 2, 2, 2, 2, 1503, 3, 2, 2, 2, 2, 1505, 3, 2, 2, 2, 2, 1507, 3, 2, 2, 2, 2, 1509, 3, 2, 2, 2, 2, 1511, 3, 2, 2, 2, 2, 1513, 3, 2, 2, 2, 2, 1515, 3, 2, 2, 2, 2, 1517, 3, 2, 2, 2, 2, 1519, 3, 2, 2, 2, 2, 1521, 3, 2, 2, 2, 2, 1523, 3, 2, 2, 2, 2, 1525, 3, 2, 2, 2, 2, 1527, 3, 2, 2, 2, 2, 1529, 3, 2, 2, 2, 2, 1531, 3, 2, 2, 2, 2, 1533, 3, 2, 2, 2, 2, 1535, 3, 2, 2, 2, 2, 1537, 3, 2, 2, 2, 2, 1539, 3, 2, 2, 2, 2, 1541, 3, 2, 2, 2, 2, 1543, 3, 2, 2, 2, 2, 1545, 3, 2, 2, 2, 2, 1547, 3, 2, 2, 2, 2, 1549, 3, 2, 2, 2, 2, 1551, 3, 2, 2, 2, 2, 1553, 3, 2, 2, 2, 2, 1555, 3, 2, 2, 2, 2, 1557, 3, 2, 2, 2, 2, 1559, 3, 2, 2, 2, 2, 1561, 3, 2, 2, 2, 2, 1563, 3, 2, 2, 2, 2, 1565, 3, 2, 2, 2, 2, 1567, 3, 2, 2, 2, 2, 1569, 3, 2, 2, 2, 2, 1571, 3, 2, 2, 2, 2, 1573, 3, 2, 2, 2, 2, 1575, 3, 2, 2, 2, 2, 1577, 3, 2, 2, 2, 2, 1579, 3, 2, 2, 2, 2, 1581, 3, 2, 2, 2, 2, 1583, 3, 2, 2, 2, 2, 1585, 3, 2, 2, 2, 2, 1587, 3, 2, 2, 2, 2, 1589, 3, 2, 2, 2, 2, 1591, 3, 2, 2, 2, 2, 1593, 3, 2, 2, 2, 2, 1595, 3, 2, 2, 2, 2, 1597, 3, 2, 2, 2, 2, 1599, 3, 2, 2, 2, 2, 1601, 3, 2, 2, 2, 2, 1603, 3, 2, 2, 2, 2, 1605, 3, 2, 2, 2, 2, 1607, 3, 2, 2, 2, 2, 1609, 3, 2, 2, 2, 2, 1611, 3, 2, 2, 2, 2, 1613, 3, 2, 2, 2, 2, 1615, 3, 2, 2, 2, 2, 1617, 3, 2, 2, 2, 2, 1619, 3, 2, 2, 2, 2, 1621, 3, 2, 2, 2, 2, 1623, 3, 2, 2, 2, 2, 1625, 3, 2, 2, 2, 2, 1627, 3, 2, 2, 2, 2, 1629, 3, 2, 2, 2, 2, 1631, 3, 2, 2, 2, 2, 1633, 3, 2, 2, 2, 2, 1635, 3, 2, 2, 2, 2, 1637, 3, 2, 2, 2, 2, 1639, 3, 2, 2, 2, 2, 1641, 3, 2, 2, 2, 2, 1643, 3, 2, 2, 2, 2, 1645, 3, 2, 2, 2, 2, 1647, 3, 2, 2, 2, 2, 1649, 3, 2, 2, 2, 2, 1651, 3, 2, 2, 2, 2, 1653, 3, 2, 2, 2, 2, 1655, 3, 2, 2, 2, 2, 1657, 3, 2, 2, 2, 2, 1659, 3, 2, 2, 2, 2, 1661, 3, 2, 2, 2, 2, 1663, 3, 2, 2, 2, 2, 1665, 3, 2, 2, 2, 2, 1667, 3, 2, 2, 2, 2, 1669, 3, 2, 2, 2, 2, 1671, 3, 2, 2, 2, 2, 1673, 3, 2, 2, 2, 2, 1675, 3, 2, 2, 2, 2, 1677, 3, 2, 2, 2, 2, 1679, 3, 2, 2, 2, 2, 1681, 3, 2, 2, 2, 2, 1683, 3, 2, 2, 2, 2, 1685, 3, 2, 2, 2, 2, 1687, 3, 2, 2, 2, 2, 1689, 3, 2, 2, 2, 2, 1691, 3, 2, 2, 2, 2, 1693, 3, 2, 2, 2, 2, 1695, 3, 2, 2, 2, 2, 1697, 3, 2, 2, 2, 2, 1699, 3, 2, 2, 2, 2, 1701, 3, 2, 2, 2, 2, 1703, 3, 2, 2, 2, 2, 1705, 3, 2, 2, 2, 2, 1707, 3, 2, 2, 2, 2, 1709, 3, 2, 2, 2, 2, 1711, 3, 2, 2, 2, 2, 1713, 3, 2, 2, 2, 2, 1715, 3, 2, 2, 2, 2, 1717, 3, 2, 2, 2, 2, 1719, 3, 2, 2, 2, 2, 1721, 3, 2, 2, 2, 2, 1723, 3, 2, 2, 2, 2, 1725, 3, 2, 2, 2, 2, 1727, 3, 2, 2, 2, 2, 1729, 3, 2, 2, 2, 2, 1731, 3, 2, 2, 2, 2, 1733, 3, 2, 2, 2, 2, 1735, 3, 2, 2, 2, 2, 1737, 3, 2, 2, 2, 2, 1739, 3, 2, 2, 2, 2, 1741, 3, 2, 2, 2, 2, 1743, 3, 2, 2, 2, 2, 1745, 3, 2, 2, 2, 2, 1747, 3, 2, 2, 2, 2, 1749, 3, 2, 2, 2, 2, 1751, 3, 2, 2, 2, 2, 1753, 3, 2, 2, 2, 2, 1755, 3, 2, 2, 2, 2, 1757, 3, 2, 2, 2, 2, 1759, 3, 2, 2, 2, 2, 1761, 3, 2, 2, 2, 2, 1763, 3, 2, 2, 2, 2, 1765, 3, 2, 2, 2, 2, 1767, 3, 2, 2, 2, 2, 1769, 3, 2, 2, 2, 2, 1771, 3, 2, 2, 2, 2, 1773, 3, 2, 2, 2, 2, 1775, 3, 2, 2, 2, 2, 1777, 3, 2, 2, 2, 2, 1779, 3, 2, 2, 2, 2, 1781, 3, 2, 2, 2, 2, 1783, 3, 2, 2, 2, 2, 1785, 3, 2, 2, 2, 2, 1787, 3, 2, 2, 2, 2, 1789, 3, 2, 2, 2, 2, 1791, 3, 2, 2, 2, 2, 1793, 3, 2, 2, 2, 2, 1795, 3, 2, 2, 2, 2, 1797, 3, 2, 2, 2, 2, 1799, 3, 2, 2, 2, 2, 1801, 3, 2, 2, 2, 2, 1803, 3, 2, 2, 2, 2, 1805, 3, 2, 2, 2, 2, 1807, 3, 2, 2, 2, 2, 1809, 3, 2, 2, 2, 2, 1811, 3, 2, 2, 2, 2, 1813, 3, 2, 2, 2, 2, 1815, 3, 2, 2, 2, 2, 1817, 3, 2, 2, 2, 2, 1819, 3, 2, 2, 2, 2, 1821, 3, 2, 2, 2, 2, 1823, 3, 2, 2, 2, 2, 1825, 3, 2, 2, 2, 2, 1827, 3, 2, 2, 2, 2, 1829, 3, 2, 2, 2, 2, 1831, 3, 2, 2, 2, 2, 1833, 3, 2, 2, 2, 2, 1835, 3, 2, 2, 2, 2, 1837, 3, 2, 2, 2, 2, 1839, 3, 2, 2, 2, 2, 1841, 3, 2, 2, 2, 2, 1843, 3, 2, 2, 2, 2, 1845, 3, 2, 2, 2, 2, 1847, 3, 2, 2, 2, 2, 1849, 3, 2, 2, 2, 2, 1851, 3, 2, 2, 2, 2, 1853, 3, 2, 2, 2, 2, 1855, 3, 2, 2, 2, 2, 1857, 3, 2, 2, 2, 2, 1859, 3, 2, 2, 2, 2, 1861, 3, 2, 2, 2, 2, 1863, 3, 2, 2, 2, 2, 1865, 3, 2, 2, 2, 2, 1867, 3, 2, 2, 2, 2, 1869, 3, 2, 2, 2, 2, 1871, 3, 2, 2, 2, 2, 1873, 3, 2, 2, 2, 2, 1875, 3, 2, 2, 2, 2, 1877, 3, 2, 2, 2, 2, 1879, 3, 2, 2, 2, 2, 1881, 3, 2, 2, 2, 2, 1883, 3, 2, 2, 2, 2, 1885, 3, 2, 2, 2, 2, 1887, 3, 2, 2, 2, 2, 1889, 3, 2, 2, 2, 2, 1891, 3, 2, 2, 2, 2, 1893, 3, 2, 2, 2, 2, 1895, 3, 2, 2, 2, 2, 1897, 3, 2, 2, 2, 2, 1899, 3, 2, 2, 2, 2, 1901, 3, 2, 2, 2, 2, 1903, 3, 2, 2, 2, 2, 1905, 3, 2, 2, 2, 2, 1907, 3, 2, 2, 2, 2, 1909, 3, 2, 2, 2, 2, 1911, 3, 2, 2, 2, 2, 1913, 3, 2, 2, 2, 2, 1915, 3, 2, 2, 2, 2, 1917, 3, 2, 2, 2, 2, 1919, 3, 2, 2, 2, 2, 1921, 3, 2, 2, 2, 2, 1923, 3, 2, 2, 2, 2, 1925, 3, 2, 2, 2, 2, 1927, 3, 2, 2, 2, 2, 1929, 3, 2, 2, 2, 2, 1931, 3, 2, 2, 2, 2, 1933, 3, 2, 2, 2, 2, 1935, 3, 2, 2, 2, 2, 1937, 3, 2, 2, 2, 2, 1939, 3, 2, 2, 2, 2, 1941, 3, 2, 2, 2, 2, 1943, 3, 2, 2, 2, 2, 1945, 3, 2, 2, 2, 2, 1947, 3, 2, 2, 2, 2, 1949, 3, 2, 2, 2, 2, 1951, 3, 2, 2, 2, 2, 1953, 3, 2, 2, 2, 2, 1955, 3, 2, 2, 2, 2, 1957, 3, 2, 2, 2, 2, 1959, 3, 2, 2, 2, 2, 1961, 3, 2, 2, 2, 2, 1963, 3, 2, 2, 2, 2, 1965, 3, 2, 2, 2, 2, 1967, 3, 2, 2, 2, 2, 1969, 3, 2, 2, 2, 2, 1971, 3, 2, 2, 2, 2, 1973, 3, 2, 2, 2, 2, 1975, 3, 2, 2, 2, 2, 1977, 3, 2, 2, 2, 2, 1979, 3, 2, 2, 2, 2, 1981, 3, 2, 2, 2, 2, 1983, 3, 2, 2, 2, 2, 1985, 3, 2, 2, 2, 2, 1987, 3, 2, 2, 2, 2, 1989, 3, 2, 2, 2, 2, 1991, 3, 2, 2, 2, 2, 1993, 3, 2, 2, 2, 2, 1995, 3, 2, 2, 2, 2, 1997, 3, 2, 2, 2, 2, 1999, 3, 2, 2, 2, 2, 2001, 3, 2, 2, 2, 2, 2003, 3, 2, 2, 2, 2, 2005, 3, 2, 2, 2, 2, 2007, 3, 2, 2, 2, 2, 2009, 3, 2, 2, 2, 2, 2011, 3, 2, 2, 2, 2, 2013, 3, 2, 2, 2, 2, 2015, 3, 2, 2, 2, 2, 2017, 3, 2, 2, 2, 2, 2019, 3, 2, 2, 2, 2, 2021, 3, 2, 2, 2, 2, 2023, 3, 2, 2, 2, 2, 2025, 3, 2, 2, 2, 2, 2027, 3, 2, 2, 2, 2, 2029, 3, 2, 2, 2, 2, 2031, 3, 2, 2, 2, 2, 2033, 3, 2, 2, 2, 2, 2035, 3, 2, 2, 2, 2, 2037, 3, 2, 2, 2, 2, 2039, 3, 2, 2, 2, 2, 2041, 3, 2, 2, 2, 2, 2043, 3, 2, 2, 2, 2, 2045, 3, 2, 2, 2, 2, 2047, 3, 2, 2, 2, 2, 2049, 3, 2, 2, 2, 2, 2051, 3, 2, 2, 2, 2, 2053, 3, 2, 2, 2, 2, 2055, 3, 2, 2, 2, 2, 2057, 3, 2, 2, 2, 2, 2059, 3, 2, 2, 2, 2, 2061, 3, 2, 2, 2, 2, 2063, 3, 2, 2, 2, 2, 2067, 3, 2, 2, 2, 2, 2069, 3, 2, 2, 2, 2, 2071, 3, 2, 2, 2, 2, 2073, 3, 2, 2, 2, 2, 2075, 3, 2, 2, 2, 2, 2077, 3, 2, 2, 2, 2, 2079, 3, 2, 2, 2, 2, 2081, 3, 2, 2, 2, 2, 2083, 3, 2, 2, 2, 2, 2085, 3, 2, 2, 2, 2, 2087, 3, 2, 2, 2, 2, 2089, 3, 2, 2, 2, 2, 2091, 3, 2, 2, 2, 2, 2093, 3, 2, 2, 2, 2, 2095, 3, 2, 2, 2, 2, 2097, 3, 2, 2, 2, 2, 2117, 3, 2, 2, 2, 3, 2120, 3, 2, 2, 2, 5, 2126, 3, 2, 2, 2, 7, 2140, 3, 2, 2, 2, 9, 2182, 3, 2, 2, 2, 11, 2186, 3, 2, 2, 2, 13, 2190, 3, 2, 2, 2, 15, 2194, 3, 2, 2, 2, 17, 2200, 3, 2, 2, 2, 19, 2207, 3, 2, 2, 2, 21, 2215, 3, 2, 2, 2, 23, 2219, 3, 2, 2, 2, 25, 2222, 3, 2, 2, 2, 27, 2226, 3, 2, 2, 2, 29, 2233, 3, 2, 2, 2, 31, 2241, 3, 2, 2, 2, 33, 2246, 3, 2, 2, 2, 35, 2249, 3, 2, 2, 2, 37, 2254, 3, 2, 2, 2, 39, 2262, 3, 2, 2, 2, 41, 2267, 3, 2, 2, 2, 43, 2272, 3, 2, 2, 2, 45, 2279, 3, 2, 2, 2, 47, 2289, 3, 2, 2, 2, 49, 2295, 3, 2, 2, 2, 51, 2303, 3, 2, 2, 2, 53, 2310, 3, 2, 2, 2, 55, 2320, 3, 2, 2, 2, 57, 2331, 3, 2, 2, 2, 59, 2340, 3, 2, 2, 2, 61, 2348, 3, 2, 2, 2, 63, 2355, 3, 2, 2, 2, 65, 2361, 3, 2, 2, 2, 67, 2369, 3, 2, 2, 2, 69, 2382, 3, 2, 2, 2, 71, 2389, 3, 2, 2, 2, 73, 2398, 3, 2, 2, 2, 75, 2408, 3, 2, 2, 2, 77, 2416, 3, 2, 2, 2, 79, 2424, 3, 2, 2, 2, 81, 2432, 3, 2, 2, 2, 83, 2439, 3, 2, 2, 2, 85, 2444, 3, 2, 2, 2, 87, 2453, 3, 2, 2, 2, 89, 2467, 3, 2, 2, 2, 91, 2479, 3, 2, 2, 2, 93, 2488, 3, 2, 2, 2, 95, 2500, 3, 2, 2, 2, 97, 2505, 3, 2, 2, 2, 99, 2510, 3, 2, 2, 2, 101, 2515, 3, 2, 2, 2, 103, 2522, 3, 2, 2, 2, 105, 2531, 3, 2, 2, 2, 107, 2539, 3, 2, 2, 2, 109, 2546, 3, 2, 2, 2, 111, 2551, 3, 2, 2, 2, 113, 2559, 3, 2, 2, 2, 115, 2565, 3, 2, 2, 2, 117, 2571, 3, 2, 2, 2, 119, 2575, 3, 2, 2, 2, 121, 2581, 3, 2, 2, 2, 123, 2589, 3, 2, 2, 2, 125, 2594, 3, 2, 2, 2, 127, 2603, 3, 2, 2, 2, 129, 2613, 3, 2, 2, 2, 131, 2617, 3, 2, 2, 2, 133, 2623, 3, 2, 2, 2, 135, 2629, 3, 2, 2, 2, 137, 2636, 3, 2, 2, 2, 139, 2650, 3, 2, 2, 2, 141, 2653, 3, 2, 2, 2, 143, 2660, 3, 2, 2, 2, 145, 2663, 3, 2, 2, 2, 147, 2669, 3, 2, 2, 2, 149, 2676, 3, 2, 2, 2, 151, 2682, 3, 2, 2, 2, 153, 2688, 3, 2, 2, 2, 155, 2695, 3, 2, 2, 2, 157, 2704, 3, 2, 2, 2, 159, 2709, 3, 2, 2, 2, 161, 2712, 3, 2, 2, 2, 163, 2720, 3, 2, 2, 2, 165, 2725, 3, 2, 2, 2, 167, 2729, 3, 2, 2, 2, 169, 2734, 3, 2, 2, 2, 171, 2739, 3, 2, 2, 2, 173, 2747, 3, 2, 2, 2, 175, 2753, 3, 2, 2, 2, 177, 2758, 3, 2, 2, 2, 179, 2763, 3, 2, 2, 2, 181, 2769, 3, 2, 2, 2, 183, 2776, 3, 2, 2, 2, 185, 2782, 3, 2, 2, 2, 187, 2787, 3, 2, 2, 2, 189, 2792, 3, 2, 2, 2, 191, 2797, 3, 2, 2, 2, 193, 2810, 3, 2, 2, 2, 195, 2822, 3, 2, 2, 2, 197, 2852, 3, 2, 2, 2, 199, 2858, 3, 2, 2, 2, 201, 2867, 3, 2, 2, 2, 203, 2876, 3, 2, 2, 2, 205, 2884, 3, 2, 2, 2, 207, 2888, 3, 2, 2, 2, 209, 2907, 3, 2, 2, 2, 211, 2912, 3, 2, 2, 2, 213, 2919, 3, 2, 2, 2, 215, 2922, 3, 2, 2, 2, 217, 2931, 3, 2, 2, 2, 219, 2938, 3, 2, 2, 2, 221, 2949, 3, 2, 2, 2, 223, 2952, 3, 2, 2, 2, 225, 2958, 3, 2, 2, 2, 227, 2962, 3, 2, 2, 2, 229, 2968, 3, 2, 2, 2, 231, 2976, 3, 2, 2, 2, 233, 2986, 3, 2, 2, 2, 235, 2994, 3, 2, 2, 2, 237, 3004, 3, 2, 2, 2, 239, 3010, 3, 2, 2, 2, 241, 3016, 3, 2, 2, 2, 243, 3021, 3, 2, 2, 2, 245, 3027, 3, 2, 2, 2, 247, 3038, 3, 2, 2, 2, 249, 3045, 3, 2, 2, 2, 251, 3053, 3, 2, 2, 2, 253, 3060, 3, 2, 2, 2, 255, 3067, 3, 2, 2, 2, 257, 3075, 3, 2, 2, 2, 259, 3083, 3, 2, 2, 2, 261, 3092, 3, 2, 2, 2, 263, 3101, 3, 2, 2, 2, 265, 3108, 3, 2, 2, 2, 267, 3115, 3, 2, 2, 2, 269, 3121, 3, 2, 2, 2, 271, 3127, 3, 2, 2, 2, 273, 3134, 3, 2, 2, 2, 275, 3142, 3, 2, 2, 2, 277, 3149, 3, 2, 2, 2, 279, 3153, 3, 2, 2, 2, 281, 3163, 3, 2, 2, 2, 283, 3168, 3, 2, 2, 2, 285, 3175, 3, 2, 2, 2, 287, 3183, 3, 2, 2, 2, 289, 3187, 3, 2, 2, 2, 291, 3200, 3, 2, 2, 2, 293, 3209, 3, 2, 2, 2, 295, 3220, 3, 2, 2, 2, 297, 3235, 3, 2, 2, 2, 299, 3255, 3, 2, 2, 2, 301, 3272, 3, 2, 2, 2, 303, 3276, 3, 2, 2, 2, 305, 3284, 3, 2, 2, 2, 307, 3293, 3, 2, 2, 2, 309, 3307, 3, 2, 2, 2, 311, 3313, 3, 2, 2, 2, 313, 3324, 3, 2, 2, 2, 315, 3329, 3, 2, 2, 2, 317, 3332, 3, 2, 2, 2, 319, 3341, 3, 2, 2, 2, 321, 3349, 3, 2, 2, 2, 323, 3354, 3, 2, 2, 2, 325, 3359, 3, 2, 2, 2, 327, 3365, 3, 2, 2, 2, 329, 3372, 3, 2, 2, 2, 331, 3379, 3, 2, 2, 2, 333, 3388, 3, 2, 2, 2, 335, 3395, 3, 2, 2, 2, 337, 3401, 3, 2, 2, 2, 339, 3405, 3, 2, 2, 2, 341, 3411, 3, 2, 2, 2, 343, 3418, 3, 2, 2, 2, 345, 3423, 3, 2, 2, 2, 347, 3429, 3, 2, 2, 2, 349, 3435, 3, 2, 2, 2, 351, 3440, 3, 2, 2, 2, 353, 3446, 3, 2, 2, 2, 355, 3450, 3, 2, 2, 2, 357, 3459, 3, 2, 2, 2, 359, 3467, 3, 2, 2, 2, 361, 3476, 3, 2, 2, 2, 363, 3486, 3, 2, 2, 2, 365, 3496, 3, 2, 2, 2, 367, 3500, 3, 2, 2, 2, 369, 3505, 3, 2, 2, 2, 371, 3510, 3, 2, 2, 2, 373, 3515, 3, 2, 2, 2, 375, 3520, 3, 2, 2, 2, 377, 3525, 3, 2, 2, 2, 379, 3533, 3, 2, 2, 2, 381, 3540, 3, 2, 2, 2, 383, 3545, 3, 2, 2, 2, 385, 3552, 3, 2, 2, 2, 387, 3562, 3, 2, 2, 2, 389, 3568, 3, 2, 2, 2, 391, 3575, 3, 2, 2, 2, 393, 3582, 3, 2, 2, 2, 395, 3590, 3, 2, 2, 2, 397, 3594, 3, 2, 2, 2, 399, 3602, 3, 2, 2, 2, 401, 3607, 3, 2, 2, 2, 403, 3612, 3, 2, 2, 2, 405, 3622, 3, 2, 2, 2, 407, 3631, 3, 2, 2, 2, 409, 3636, 3, 2, 2, 2, 411, 3641, 3, 2, 2, 2, 413, 3649, 3, 2, 2, 2, 415, 3658, 3, 2, 2, 2, 417, 3667, 3, 2, 2, 2, 419, 3674, 3, 2, 2, 2, 421, 3684, 3, 2, 2, 2, 423, 3693, 3, 2, 2, 2, 425, 3698, 3, 2, 2, 2, 427, 3709, 3, 2, 2, 2, 429, 3714, 3, 2, 2, 2, 431, 3723, 3, 2, 2, 2, 433, 3732, 3, 2, 2, 2, 435, 3737, 3, 2, 2, 2, 437, 3748, 3, 2, 2, 2, 439, 3757, 3, 2, 2, 2, 441, 3762, 3, 2, 2, 2, 443, 3770, 3, 2, 2, 2, 445, 3777, 3, 2, 2, 2, 447, 3788, 3, 2, 2, 2, 449, 3797, 3, 2, 2, 2, 451, 3808, 3, 2, 2, 2, 453, 3819, 3, 2, 2, 2, 455, 3831, 3, 2, 2, 2, 457, 3843, 3, 2, 2, 2, 459, 3857, 3, 2, 2, 2, 461, 3876, 3, 2, 2, 2, 463, 3895, 3, 2, 2, 2, 465, 3912, 3, 2, 2, 2, 467, 3928, 3, 2, 2, 2, 469, 3939, 3, 2, 2, 2, 471, 3957, 3, 2, 2, 2, 473, 3961, 3, 2, 2, 2, 475, 3969, 3, 2, 2, 2, 477, 3976, 3, 2, 2, 2, 479, 3984, 3, 2, 2, 2, 481, 3990, 3, 2, 2, 2, 483, 4003, 3, 2, 2, 2, 485, 4007, 3, 2, 2, 2, 487, 4011, 3, 2, 2, 2, 489, 4015, 3, 2, 2, 2, 491, 4022, 3, 2, 2, 2, 493, 4033, 3, 2, 2, 2, 495, 4045, 3, 2, 2, 2, 497, 4049, 3, 2, 2, 2, 499, 4057, 3, 2, 2, 2, 501, 4066, 3, 2, 2, 2, 503, 4075, 3, 2, 2, 2, 505, 4088, 3, 2, 2, 2, 507, 4101, 3, 2, 2, 2, 509, 4119, 3, 2, 2, 2, 511, 4129, 3, 2, 2, 2, 513, 4137, 3, 2, 2, 2, 515, 4145, 3, 2, 2, 2, 517, 4154, 3, 2, 2, 2, 519, 4163, 3, 2, 2, 2, 521, 4171, 3, 2, 2, 2, 523, 4186, 3, 2, 2, 2, 525, 4190, 3, 2, 2, 2, 527, 4199, 3, 2, 2, 2, 529, 4206, 3, 2, 2, 2, 531, 4216, 3, 2, 2, 2, 533, 4224, 3, 2, 2, 2, 535, 4229, 3, 2, 2, 2, 537, 4238, 3, 2, 2, 2, 539, 4247, 3, 2, 2, 2, 541, 4261, 3, 2, 2, 2, 543, 4269, 3, 2, 2, 2, 545, 4276, 3, 2, 2, 2, 547, 4282, 3, 2, 2, 2, 549, 4292, 3, 2, 2, 2, 551, 4302, 3, 2, 2, 2, 553, 4306, 3, 2, 2, 2, 555, 4309, 3, 2, 2, 2, 557, 4317, 3, 2, 2, 2, 559, 4328, 3, 2, 2, 2, 561, 4344, 3, 2, 2, 2, 563, 4359, 3, 2, 2, 2, 565, 4374, 3, 2, 2, 2, 567, 4380, 3, 2, 2, 2, 569, 4387, 3, 2, 2, 2, 571, 4391, 3, 2, 2, 2, 573, 4397, 3, 2, 2, 2, 575, 4402, 3, 2, 2, 2, 577, 4410, 3, 2, 2, 2, 579, 4416, 3, 2, 2, 2, 581, 4422, 3, 2, 2, 2, 583, 4431, 3, 2, 2, 2, 585, 4437, 3, 2, 2, 2, 587, 4445, 3, 2, 2, 2, 589, 4453, 3, 2, 2, 2, 591, 4462, 3, 2, 2, 2, 593, 4476, 3, 2, 2, 2, 595, 4483, 3, 2, 2, 2, 597, 4496, 3, 2, 2, 2, 599, 4503, 3, 2, 2, 2, 601, 4509, 3, 2, 2, 2, 603, 4518, 3, 2, 2, 2, 605, 4523, 3, 2, 2, 2, 607, 4531, 3, 2, 2, 2, 609, 4545, 3, 2, 2, 2, 611, 4557, 3, 2, 2, 2, 613, 4565, 3, 2, 2, 2, 615, 4572, 3, 2, 2, 2, 617, 4580, 3, 2, 2, 2, 619, 4591, 3, 2, 2, 2, 621, 4602, 3, 2, 2, 2, 623, 4614, 3, 2, 2, 2, 625, 4625, 3, 2, 2, 2, 627, 4636, 3, 2, 2, 2, 629, 4647, 3, 2, 2, 2, 631, 4666, 3, 2, 2, 2, 633, 4684, 3, 2, 2, 2, 635, 4700, 3, 2, 2, 2, 637, 4709, 3, 2, 2, 2, 639, 4717, 3, 2, 2, 2, 641, 4730, 3, 2, 2, 2, 643, 4735, 3, 2, 2, 2, 645, 4739, 3, 2, 2, 2, 647, 4751, 3, 2, 2, 2, 649, 4756, 3, 2, 2, 2, 651, 4765, 3, 2, 2, 2, 653, 4776, 3, 2, 2, 2, 655, 4789, 3, 2, 2, 2, 657, 4797, 3, 2, 2, 2, 659, 4813, 3, 2, 2, 2, 661, 4826, 3, 2, 2, 2, 663, 4836, 3, 2, 2, 2, 665, 4844, 3, 2, 2, 2, 667, 4852, 3, 2, 2, 2, 669, 4857, 3, 2, 2, 2, 671, 4860, 3, 2, 2, 2, 673, 4869, 3, 2, 2, 2, 675, 4879, 3, 2, 2, 2, 677, 4887, 3, 2, 2, 2, 679, 4894, 3, 2, 2, 2, 681, 4905, 3, 2, 2, 2, 683, 4909, 3, 2, 2, 2, 685, 4914, 3, 2, 2, 2, 687, 4921, 3, 2, 2, 2, 689, 4929, 3, 2, 2, 2, 691, 4935, 3, 2, 2, 2, 693, 4942, 3, 2, 2, 2, 695, 4949, 3, 2, 2, 2, 697, 4954, 3, 2, 2, 2, 699, 4960, 3, 2, 2, 2, 701, 4967, 3, 2, 2, 2, 703, 4973, 3, 2, 2, 2, 705, 4982, 3, 2, 2, 2, 707, 4992, 3, 2, 2, 2, 709, 4999, 3, 2, 2, 2, 711, 5006, 3, 2, 2, 2, 713, 5015, 3, 2, 2, 2, 715, 5027, 3, 2, 2, 2, 717, 5032, 3, 2, 2, 2, 719, 5039, 3, 2, 2, 2, 721, 5046, 3, 2, 2, 2, 723, 5062, 3, 2, 2, 2, 725, 5069, 3, 2, 2, 2, 727, 5075, 3, 2, 2, 2, 729, 5081, 3, 2, 2, 2, 731, 5087, 3, 2, 2, 2, 733, 5095, 3, 2, 2, 2, 735, 5101, 3, 2, 2, 2, 737, 5106, 3, 2, 2, 2, 739, 5115, 3, 2, 2, 2, 741, 5123, 3, 2, 2, 2, 743, 5130, 3, 2, 2, 2, 745, 5137, 3, 2, 2, 2, 747, 5155, 3, 2, 2, 2, 749, 5163, 3, 2, 2, 2, 751, 5168, 3, 2, 2, 2, 753, 5173, 3, 2, 2, 2, 755, 5178, 3, 2, 2, 2, 757, 5184, 3, 2, 2, 2, 759, 5195, 3, 2, 2, 2, 761, 5213, 3, 2, 2, 2, 763, 5220, 3, 2, 2, 2, 765, 5228, 3, 2, 2, 2, 767, 5241, 3, 2, 2, 2, 769, 5249, 3, 2, 2, 2, 771, 5263, 3, 2, 2, 2, 773, 5271, 3, 2, 2, 2, 775, 5280, 3, 2, 2, 2, 777, 5290, 3, 2, 2, 2, 779, 5298, 3, 2, 2, 2, 781, 5301, 3, 2, 2, 2, 783, 5311, 3, 2, 2, 2, 785, 5315, 3, 2, 2, 2, 787, 5325, 3, 2, 2, 2, 789, 5332, 3, 2, 2, 2, 791, 5337, 3, 2, 2, 2, 793, 5352, 3, 2, 2, 2, 795, 5361, 3, 2, 2, 2, 797, 5366, 3, 2, 2, 2, 799, 5373, 3, 2, 2, 2, 801, 5378, 3, 2, 2, 2, 803, 5384, 3, 2, 2, 2, 805, 5389, 3, 2, 2, 2, 807, 5395, 3, 2, 2, 2, 809, 5403, 3, 2, 2, 2, 811, 5408, 3, 2, 2, 2, 813, 5415, 3, 2, 2, 2, 815, 5436, 3, 2, 2, 2, 817, 5457, 3, 2, 2, 2, 819, 5470, 3, 2, 2, 2, 821, 5494, 3, 2, 2, 2, 823, 5506, 3, 2, 2, 2, 825, 5522, 3, 2, 2, 2, 827, 5537, 3, 2, 2, 2, 829, 5553, 3, 2, 2, 2, 831, 5565, 3, 2, 2, 2, 833, 5584, 3, 2, 2, 2, 835, 5595, 3, 2, 2, 2, 837, 5609, 3, 2, 2, 2, 839, 5627, 3, 2, 2, 2, 841, 5643, 3, 2, 2, 2, 843, 5661, 3, 2, 2, 2, 845, 5676, 3, 2, 2, 2, 847, 5695, 3, 2, 2, 2, 849, 5710, 3, 2, 2, 2, 851, 5729, 3, 2, 2, 2, 853, 5741, 3, 2, 2, 2, 855, 5766, 3, 2, 2, 2, 857, 5787, 3, 2, 2, 2, 859, 5796, 3, 2, 2, 2, 861, 5805, 3, 2, 2, 2, 863, 5826, 3, 2, 2, 2, 865, 5847, 3, 2, 2, 2, 867, 5854, 3, 2, 2, 2, 869, 5860, 3, 2, 2, 2, 871, 5873, 3, 2, 2, 2, 873, 5877, 3, 2, 2, 2, 875, 5885, 3, 2, 2, 2, 877, 5894, 3, 2, 2, 2, 879, 5899, 3, 2, 2, 2, 881, 5906, 3, 2, 2, 2, 883, 5912, 3, 2, 2, 2, 885, 5918, 3, 2, 2, 2, 887, 5930, 3, 2, 2, 2, 889, 5935, 3, 2, 2, 2, 891, 5941, 3, 2, 2, 2, 893, 5947, 3, 2, 2, 2, 895, 5953, 3, 2, 2, 2, 897, 5958, 3, 2, 2, 2, 899, 5961, 3, 2, 2, 2, 901, 5971, 3, 2, 2, 2, 903, 5976, 3, 2, 2, 2, 905, 5984, 3, 2, 2, 2, 907, 5991, 3, 2, 2, 2, 909, 5994, 3, 2, 2, 2, 911, 6007, 3, 2, 2, 2, 913, 6011, 3, 2, 2, 2, 915, 6018, 3, 2, 2, 2, 917, 6023, 3, 2, 2, 2, 919, 6028, 3, 2, 2, 2, 921, 6044, 3, 2, 2, 2, 923, 6052, 3, 2, 2, 2, 925, 6058, 3, 2, 2, 2, 927, 6068, 3, 2, 2, 2, 929, 6073, 3, 2, 2, 2, 931, 6080, 3, 2, 2, 2, 933, 6088, 3, 2, 2, 2, 935, 6101, 3, 2, 2, 2, 937, 6112, 3, 2, 2, 2, 939, 6121, 3, 2, 2, 2, 941, 6127, 3, 2, 2, 2, 943, 6134, 3, 2, 2, 2, 945, 6145, 3, 2, 2, 2, 947, 6153, 3, 2, 2, 2, 949, 6158, 3, 2, 2, 2, 951, 6167, 3, 2, 2, 2, 953, 6175, 3, 2, 2, 2, 955, 6184, 3, 2, 2, 2, 957, 6189, 3, 2, 2, 2, 959, 6201, 3, 2, 2, 2, 961, 6209, 3, 2, 2, 2, 963, 6218, 3, 2, 2, 2, 965, 6224, 3, 2, 2, 2, 967, 6230, 3, 2, 2, 2, 969, 6236, 3, 2, 2, 2, 971, 6244, 3, 2, 2, 2, 973, 6252, 3, 2, 2, 2, 975, 6269, 3, 2, 2, 2, 977, 6279, 3, 2, 2, 2, 979, 6285, 3, 2, 2, 2, 981, 6300, 3, 2, 2, 2, 983, 6314, 3, 2, 2, 2, 985, 6323, 3, 2, 2, 2, 987, 6330, 3, 2, 2, 2, 989, 6341, 3, 2, 2, 2, 991, 6348, 3, 2, 2, 2, 993, 6364, 3, 2, 2, 2, 995, 6383, 3, 2, 2, 2, 997, 6403, 3, 2, 2, 2, 999, 6426, 3, 2, 2, 2, 1001, 6447, 3, 2, 2, 2, 1003, 6471, 3, 2, 2, 2, 1005, 6499, 3, 2, 2, 2, 1007, 6511, 3, 2, 2, 2, 1009, 6517, 3, 2, 2, 2, 1011, 6524, 3, 2, 2, 2, 1013, 6542, 3, 2, 2, 2, 1015, 6550, 3, 2, 2, 2, 1017, 6555, 3, 2, 2, 2, 1019, 6564, 3, 2, 2, 2, 1021, 6571, 3, 2, 2, 2, 1023, 6578, 3, 2, 2, 2, 1025, 6582, 3, 2, 2, 2, 1027, 6587, 3, 2, 2, 2, 1029, 6598, 3, 2, 2, 2, 1031, 6608, 3, 2, 2, 2, 1033, 6617, 3, 2, 2, 2, 1035, 6626, 3, 2, 2, 2, 1037, 6633, 3, 2, 2, 2, 1039, 6641, 3, 2, 2, 2, 1041, 6647, 3, 2, 2, 2, 1043, 6654, 3, 2, 2, 2, 1045, 6661, 3, 2, 2, 2, 1047, 6668, 3, 2, 2, 2, 1049, 6674, 3, 2, 2, 2, 1051, 6679, 3, 2, 2, 2, 1053, 6688, 3, 2, 2, 2, 1055, 6695, 3, 2, 2, 2, 1057, 6700, 3, 2, 2, 2, 1059, 6707, 3, 2, 2, 2, 1061, 6714, 3, 2, 2, 2, 1063, 6721, 3, 2, 2, 2, 1065, 6737, 3, 2, 2, 2, 1067, 6756, 3, 2, 2, 2, 1069, 6773, 3, 2, 2, 2, 1071, 6791, 3, 2, 2, 2, 1073, 6801, 3, 2, 2, 2, 1075, 6814, 3, 2, 2, 2, 1077, 6825, 3, 2, 2, 2, 1079, 6831, 3, 2, 2, 2, 1081, 6838, 3, 2, 2, 2, 1083, 6856, 3, 2, 2, 2, 1085, 6873, 3, 2, 2, 2, 1087, 6892, 3, 2, 2, 2, 1089, 6899, 3, 2, 2, 2, 1091, 6904, 3, 2, 2, 2, 1093, 6912, 3, 2, 2, 2, 1095, 6919, 3, 2, 2, 2, 1097, 6926, 3, 2, 2, 2, 1099, 6942, 3, 2, 2, 2, 1101, 6950, 3, 2, 2, 2, 1103, 6963, 3, 2, 2, 2, 1105, 6977, 3, 2, 2, 2, 1107, 6985, 3, 2, 2, 2, 1109, 6991, 3, 2, 2, 2, 1111, 7000, 3, 2, 2, 2, 1113, 7011, 3, 2, 2, 2, 1115, 7022, 3, 2, 2, 2, 1117, 7032, 3, 2, 2, 2, 1119, 7042, 3, 2, 2, 2, 1121, 7047, 3, 2, 2, 2, 1123, 7059, 3, 2, 2, 2, 1125, 7071, 3, 2, 2, 2, 1127, 7085, 3, 2, 2, 2, 1129, 7094, 3, 2, 2, 2, 1131, 7103, 3, 2, 2, 2, 1133, 7113, 3, 2, 2, 2, 1135, 7122, 3, 2, 2, 2, 1137, 7139, 3, 2, 2, 2, 1139, 7149, 3, 2, 2, 2, 1141, 7157, 3, 2, 2, 2, 1143, 7163, 3, 2, 2, 2, 1145, 7171, 3, 2, 2, 2, 1147, 7176, 3, 2, 2, 2, 1149, 7184, 3, 2, 2, 2, 1151, 7199, 3, 2, 2, 2, 1153, 7210, 3, 2, 2, 2, 1155, 7216, 3, 2, 2, 2, 1157, 7226, 3, 2, 2, 2, 1159, 7231, 3, 2, 2, 2, 1161, 7239, 3, 2, 2, 2, 1163, 7247, 3, 2, 2, 2, 1165, 7252, 3, 2, 2, 2, 1167, 7261, 3, 2, 2, 2, 1169, 7269, 3, 2, 2, 2, 1171, 7274, 3, 2, 2, 2, 1173, 7282, 3, 2, 2, 2, 1175, 7287, 3, 2, 2, 2, 1177, 7290, 3, 2, 2, 2, 1179, 7294, 3, 2, 2, 2, 1181, 7298, 3, 2, 2, 2, 1183, 7302, 3, 2, 2, 2, 1185, 7306, 3, 2, 2, 2, 1187, 7310, 3, 2, 2, 2, 1189, 7319, 3, 2, 2, 2, 1191, 7327, 3, 2, 2, 2, 1193, 7333, 3, 2, 2, 2, 1195, 7337, 3, 2, 2, 2, 1197, 7342, 3, 2, 2, 2, 1199, 7349, 3, 2, 2, 2, 1201, 7354, 3, 2, 2, 2, 1203, 7361, 3, 2, 2, 2, 1205, 7373, 3, 2, 2, 2, 1207, 7380, 3, 2, 2, 2, 1209, 7388, 3, 2, 2, 2, 1211, 7396, 3, 2, 2, 2, 1213, 7401, 3, 2, 2, 2, 1215, 7409, 3, 2, 2, 2, 1217, 7416, 3, 2, 2, 2, 1219, 7425, 3, 2, 2, 2, 1221, 7431, 3, 2, 2, 2, 1223, 7442, 3, 2, 2, 2, 1225, 7469, 3, 2, 2, 2, 1227, 7481, 3, 2, 2, 2, 1229, 7494, 3, 2, 2, 2, 1231, 7507, 3, 2, 2, 2, 1233, 7531, 3, 2, 2, 2, 1235, 7543, 3, 2, 2, 2, 1237, 7560, 3, 2, 2, 2, 1239, 7581, 3, 2, 2, 2, 1241, 7596, 3, 2, 2, 2, 1243, 7610, 3, 2, 2, 2, 1245, 7634, 3, 2, 2, 2, 1247, 7658, 3, 2, 2, 2, 1249, 7674, 3, 2, 2, 2, 1251, 7701, 3, 2, 2, 2, 1253, 7721, 3, 2, 2, 2, 1255, 7745, 3, 2, 2, 2, 1257, 7766, 3, 2, 2, 2, 1259, 7786, 3, 2, 2, 2, 1261, 7798, 3, 2, 2, 2, 1263, 7827, 3, 2, 2, 2, 1265, 7839, 3, 2, 2, 2, 1267, 7852, 3, 2, 2, 2, 1269, 7875, 3, 2, 2, 2, 1271, 7898, 3, 2, 2, 2, 1273, 7918, 3, 2, 2, 2, 1275, 7935, 3, 2, 2, 2, 1277, 7944, 3, 2, 2, 2, 1279, 7950, 3, 2, 2, 2, 1281, 7955, 3, 2, 2, 2, 1283, 7962, 3, 2, 2, 2, 1285, 7969, 3, 2, 2, 2, 1287, 7976, 3, 2, 2, 2, 1289, 7983, 3, 2, 2, 2, 1291, 7989, 3, 2, 2, 2, 1293, 7995, 3, 2, 2, 2, 1295, 8001, 3, 2, 2, 2, 1297, 8007, 3, 2, 2, 2, 1299, 8012, 3, 2, 2, 2, 1301, 8020, 3, 2, 2, 2, 1303, 8026, 3, 2, 2, 2, 1305, 8033, 3, 2, 2, 2, 1307, 8037, 3, 2, 2, 2, 1309, 8045, 3, 2, 2, 2, 1311, 8051, 3, 2, 2, 2, 1313, 8058, 3, 2, 2, 2, 1315, 8062, 3, 2, 2, 2, 1317, 8070, 3, 2, 2, 2, 1319, 8076, 3, 2, 2, 2, 1321, 8082, 3, 2, 2, 2, 1323, 8089, 3, 2, 2, 2, 1325, 8096, 3, 2, 2, 2, 1327, 8103, 3, 2, 2, 2, 1329, 8110, 3, 2, 2, 2, 1331, 8116, 3, 2, 2, 2, 1333, 8125, 3, 2, 2, 2, 1335, 8130, 3, 2, 2, 2, 1337, 8135, 3, 2, 2, 2, 1339, 8142, 3, 2, 2, 2, 1341, 8147, 3, 2, 2, 2, 1343, 8152, 3, 2, 2, 2, 1345, 8158, 3, 2, 2, 2, 1347, 8166, 3, 2, 2, 2, 1349, 8172, 3, 2, 2, 2, 1351, 8177, 3, 2, 2, 2, 1353, 8185, 3, 2, 2, 2, 1355, 8193, 3, 2, 2, 2, 1357, 8201, 3, 2, 2, 2, 1359, 8211, 3, 2, 2, 2, 1361, 8215, 3, 2, 2, 2, 1363, 8225, 3, 2, 2, 2, 1365, 8232, 3, 2, 2, 2, 1367, 8239, 3, 2, 2, 2, 1369, 8250, 3, 2, 2, 2, 1371, 8257, 3, 2, 2, 2, 1373, 8261, 3, 2, 2, 2, 1375, 8272, 3, 2, 2, 2, 1377, 8291, 3, 2, 2, 2, 1379, 8298, 3, 2, 2, 2, 1381, 8309, 3, 2, 2, 2, 1383, 8319, 3, 2, 2, 2, 1385, 8331, 3, 2, 2, 2, 1387, 8344, 3, 2, 2, 2, 1389, 8363, 3, 2, 2, 2, 1391, 8378, 3, 2, 2, 2, 1393, 8387, 3, 2, 2, 2, 1395, 8398, 3, 2, 2, 2, 1397, 8414, 3, 2, 2, 2, 1399, 8425, 3, 2, 2, 2, 1401, 8438, 3, 2, 2, 2, 1403, 8444, 3, 2, 2, 2, 1405, 8452, 3, 2, 2, 2, 1407, 8456, 3, 2, 2, 2, 1409, 8461, 3, 2, 2, 2, 1411, 8469, 3, 2, 2, 2, 1413, 8477, 3, 2, 2, 2, 1415, 8489, 3, 2, 2, 2, 1417, 8501, 3, 2, 2, 2, 1419, 8506, 3, 2, 2, 2, 1421, 8515, 3, 2, 2, 2, 1423, 8520, 3, 2, 2, 2, 1425, 8527, 3, 2, 2, 2, 1427, 8533, 3, 2, 2, 2, 1429, 8539, 3, 2, 2, 2, 1431, 8558, 3, 2, 2, 2, 1433, 8576, 3, 2, 2, 2, 1435, 8595, 3, 2, 2, 2, 1437, 8611, 3, 2, 2, 2, 1439, 8629, 3, 2, 2, 2, 1441, 8634, 3, 2, 2, 2, 1443, 8640, 3, 2, 2, 2, 1445, 8650, 3, 2, 2, 2, 1447, 8654, 3, 2, 2, 2, 1449, 8664, 3, 2, 2, 2, 1451, 8675, 3, 2, 2, 2, 1453, 8682, 3, 2, 2, 2, 1455, 8695, 3, 2, 2, 2, 1457, 8700, 3, 2, 2, 2, 1459, 8708, 3, 2, 2, 2, 1461, 8717, 3, 2, 2, 2, 1463, 8734, 3, 2, 2, 2, 1465, 8742, 3, 2, 2, 2, 1467, 8754, 3, 2, 2, 2, 1469, 8767, 3, 2, 2, 2, 1471, 8777, 3, 2, 2, 2, 1473, 8786, 3, 2, 2, 2, 1475, 8793, 3, 2, 2, 2, 1477, 8803, 3, 2, 2, 2, 1479, 8817, 3, 2, 2, 2, 1481, 8822, 3, 2, 2, 2, 1483, 8833, 3, 2, 2, 2, 1485, 8837, 3, 2, 2, 2, 1487, 8841, 3, 2, 2, 2, 1489, 8847, 3, 2, 2, 2, 1491, 8874, 3, 2, 2, 2, 1493, 8900, 3, 2, 2, 2, 1495, 8921, 3, 2, 2, 2, 1497, 8935, 3, 2, 2, 2, 1499, 8943, 3, 2, 2, 2, 1501, 8952, 3, 2, 2, 2, 1503, 8964, 3, 2, 2, 2, 1505, 8972, 3, 2, 2, 2, 1507, 8983, 3, 2, 2, 2, 1509, 8993, 3, 2, 2, 2, 1511, 9003, 3, 2, 2, 2, 1513, 9010, 3, 2, 2, 2, 1515, 9018, 3, 2, 2, 2, 1517, 9030, 3, 2, 2, 2, 1519, 9042, 3, 2, 2, 2, 1521, 9052, 3, 2, 2, 2, 1523, 9061, 3, 2, 2, 2, 1525, 9065, 3, 2, 2, 2, 1527, 9072, 3, 2, 2, 2, 1529, 9080, 3, 2, 2, 2, 1531, 9089, 3, 2, 2, 2, 1533, 9098, 3, 2, 2, 2, 1535, 9105, 3, 2, 2, 2, 1537, 9109, 3, 2, 2, 2, 1539, 9120, 3, 2, 2, 2, 1541, 9133, 3, 2, 2, 2, 1543, 9146, 3, 2, 2, 2, 1545, 9152, 3, 2, 2, 2, 1547, 9164, 3, 2, 2, 2, 1549, 9170, 3, 2, 2, 2, 1551, 9177, 3, 2, 2, 2, 1553, 9188, 3, 2, 2, 2, 1555, 9200, 3, 2, 2, 2, 1557, 9210, 3, 2, 2, 2, 1559, 9224, 3, 2, 2, 2, 1561, 9241, 3, 2, 2, 2, 1563, 9257, 3, 2, 2, 2, 1565, 9284, 3, 2, 2, 2, 1567, 9310, 3, 2, 2, 2, 1569, 9327, 3, 2, 2, 2, 1571, 9343, 3, 2, 2, 2, 1573, 9353, 3, 2, 2, 2, 1575, 9366, 3, 2, 2, 2, 1577, 9379, 3, 2, 2, 2, 1579, 9391, 3, 2, 2, 2, 1581, 9402, 3, 2, 2, 2, 1583, 9411, 3, 2, 2, 2, 1585, 9419, 3, 2, 2, 2, 1587, 9428, 3, 2, 2, 2, 1589, 9440, 3, 2, 2, 2, 1591, 9454, 3, 2, 2, 2, 1593, 9458, 3, 2, 2, 2, 1595, 9465, 3, 2, 2, 2, 1597, 9476, 3, 2, 2, 2, 1599, 9487, 3, 2, 2, 2, 1601, 9497, 3, 2, 2, 2, 1603, 9507, 3, 2, 2, 2, 1605, 9513, 3, 2, 2, 2, 1607, 9527, 3, 2, 2, 2, 1609, 9538, 3, 2, 2, 2, 1611, 9547, 3, 2, 2, 2, 1613, 9555, 3, 2, 2, 2, 1615, 9562, 3, 2, 2, 2, 1617, 9571, 3, 2, 2, 2, 1619, 9584, 3, 2, 2, 2, 1621, 9592, 3, 2, 2, 2, 1623, 9607, 3, 2, 2, 2, 1625, 9622, 3, 2, 2, 2, 1627, 9630, 3, 2, 2, 2, 1629, 9643, 3, 2, 2, 2, 1631, 9658, 3, 2, 2, 2, 1633, 9664, 3, 2, 2, 2, 1635, 9670, 3, 2, 2, 2, 1637, 9677, 3, 2, 2, 2, 1639, 9690, 3, 2, 2, 2, 1641, 9702, 3, 2, 2, 2, 1643, 9721, 3, 2, 2, 2, 1645, 9739, 3, 2, 2, 2, 1647, 9742, 3, 2, 2, 2, 1649, 9752, 3, 2, 2, 2, 1651, 9759, 3, 2, 2, 2, 1653, 9763, 3, 2, 2, 2, 1655, 9769, 3, 2, 2, 2, 1657, 9774, 3, 2, 2, 2, 1659, 9780, 3, 2, 2, 2, 1661, 9785, 3, 2, 2, 2, 1663, 9791, 3, 2, 2, 2, 1665, 9800, 3, 2, 2, 2, 1667, 9809, 3, 2, 2, 2, 1669, 9818, 3, 2, 2, 2, 1671, 9834, 3, 2, 2, 2, 1673, 9846, 3, 2, 2, 2, 1675, 9858, 3, 2, 2, 2, 1677, 9867, 3, 2, 2, 2, 1679, 9881, 3, 2, 2, 2, 1681, 9893, 3, 2, 2, 2, 1683, 9904, 3, 2, 2, 2, 1685, 9914, 3, 2, 2, 2, 1687, 9918, 3, 2, 2, 2, 1689, 9932, 3, 2, 2, 2, 1691, 9945, 3, 2, 2, 2, 1693, 9955, 3, 2, 2, 2, 1695, 9970, 3, 2, 2, 2, 1697, 9984, 3, 2, 2, 2, 1699, 9998, 3, 2, 2, 2, 1701, 10011, 3, 2, 2, 2, 1703, 10035, 3, 2, 2, 2, 1705, 10058, 3, 2, 2, 2, 1707, 10077, 3, 2, 2, 2, 1709, 10095, 3, 2, 2, 2, 1711, 10116, 3, 2, 2, 2, 1713, 10136, 3, 2, 2, 2, 1715, 10147, 3, 2, 2, 2, 1717, 10154, 3, 2, 2, 2, 1719, 10168, 3, 2, 2, 2, 1721, 10185, 3, 2, 2, 2, 1723, 10195, 3, 2, 2, 2, 1725, 10199, 3, 2, 2, 2, 1727, 10212, 3, 2, 2, 2, 1729, 10216, 3, 2, 2, 2, 1731, 10225, 3, 2, 2, 2, 1733, 10236, 3, 2, 2, 2, 1735, 10248, 3, 2, 2, 2, 1737, 10251, 3, 2, 2, 2, 1739, 10265, 3, 2, 2, 2, 1741, 10278, 3, 2, 2, 2, 1743, 10285, 3, 2, 2, 2, 1745, 10298, 3, 2, 2, 2, 1747, 10310, 3, 2, 2, 2, 1749, 10326, 3, 2, 2, 2, 1751, 10341, 3, 2, 2, 2, 1753, 10345, 3, 2, 2, 2, 1755, 10351, 3, 2, 2, 2, 1757, 10357, 3, 2, 2, 2, 1759, 10365, 3, 2, 2, 2, 1761, 10370, 3, 2, 2, 2, 1763, 10383, 3, 2, 2, 2, 1765, 10396, 3, 2, 2, 2, 1767, 10404, 3, 2, 2, 2, 1769, 10410, 3, 2, 2, 2, 1771, 10420, 3, 2, 2, 2, 1773, 10425, 3, 2, 2, 2, 1775, 10431, 3, 2, 2, 2, 1777, 10443, 3, 2, 2, 2, 1779, 10456, 3, 2, 2, 2, 1781, 10460, 3, 2, 2, 2, 1783, 10465, 3, 2, 2, 2, 1785, 10470, 3, 2, 2, 2, 1787, 10482, 3, 2, 2, 2, 1789, 10487, 3, 2, 2, 2, 1791, 10491, 3, 2, 2, 2, 1793, 10497, 3, 2, 2, 2, 1795, 10505, 3, 2, 2, 2, 1797, 10533, 3, 2, 2, 2, 1799, 10538, 3, 2, 2, 2, 1801, 10543, 3, 2, 2, 2, 1803, 10554, 3, 2, 2, 2, 1805, 10561, 3, 2, 2, 2, 1807, 10573, 3, 2, 2, 2, 1809, 10581, 3, 2, 2, 2, 1811, 10593, 3, 2, 2, 2, 1813, 10603, 3, 2, 2, 2, 1815, 10612, 3, 2, 2, 2, 1817, 10621, 3, 2, 2, 2, 1819, 10631, 3, 2, 2, 2, 1821, 10643, 3, 2, 2, 2, 1823, 10655, 3, 2, 2, 2, 1825, 10666, 3, 2, 2, 2, 1827, 10680, 3, 2, 2, 2, 1829, 10693, 3, 2, 2, 2, 1831, 10705, 3, 2, 2, 2, 1833, 10717, 3, 2, 2, 2, 1835, 10729, 3, 2, 2, 2, 1837, 10741, 3, 2, 2, 2, 1839, 10751, 3, 2, 2, 2, 1841, 10767, 3, 2, 2, 2, 1843, 10787, 3, 2, 2, 2, 1845, 10806, 3, 2, 2, 2, 1847, 10825, 3, 2, 2, 2, 1849, 10855, 3, 2, 2, 2, 1851, 10884, 3, 2, 2, 2, 1853, 10904, 3, 2, 2, 2, 1855, 10923, 3, 2, 2, 2, 1857, 10936, 3, 2, 2, 2, 1859, 10952, 3, 2, 2, 2, 1861, 10968, 3, 2, 2, 2, 1863, 10983, 3, 2, 2, 2, 1865, 11000, 3, 2, 2, 2, 1867, 11016, 3, 2, 2, 2, 1869, 11030, 3, 2, 2, 2, 1871, 11042, 3, 2, 2, 2, 1873, 11053, 3, 2, 2, 2, 1875, 11065, 3, 2, 2, 2, 1877, 11081, 3, 2, 2, 2, 1879, 11096, 3, 2, 2, 2, 1881, 11118, 3, 2, 2, 2, 1883, 11139, 3, 2, 2, 2, 1885, 11156, 3, 2, 2, 2, 1887, 11175, 3, 2, 2, 2, 1889, 11195, 3, 2, 2, 2, 1891, 11208, 3, 2, 2, 2, 1893, 11220, 3, 2, 2, 2, 1895, 11237, 3, 2, 2, 2, 1897, 11253, 3, 2, 2, 2, 1899, 11263, 3, 2, 2, 2, 1901, 11279, 3, 2, 2, 2, 1903, 11294, 3, 2, 2, 2, 1905, 11313, 3, 2, 2, 2, 1907, 11331, 3, 2, 2, 2, 1909, 11339, 3, 2, 2, 2, 1911, 11353, 3, 2, 2, 2, 1913, 11370, 3, 2, 2, 2, 1915, 11381, 3, 2, 2, 2, 1917, 11390, 3, 2, 2, 2, 1919, 11400, 3, 2, 2, 2, 1921, 11405, 3, 2, 2, 2, 1923, 11410, 3, 2, 2, 2, 1925, 11418, 3, 2, 2, 2, 1927, 11434, 3, 2, 2, 2, 1929, 11442, 3, 2, 2, 2, 1931, 11454, 3, 2, 2, 2, 1933, 11458, 3, 2, 2, 2, 1935, 11467, 3, 2, 2, 2, 1937, 11480, 3, 2, 2, 2, 1939, 11494, 3, 2, 2, 2, 1941, 11506, 3, 2, 2, 2, 1943, 11518, 3, 2, 2, 2, 1945, 11526, 3, 2, 2, 2, 1947, 11536, 3, 2, 2, 2, 1949, 11544, 3, 2, 2, 2, 1951, 11555, 3, 2, 2, 2, 1953, 11561, 3, 2, 2, 2, 1955, 11572, 3, 2, 2, 2, 1957, 11592, 3, 2, 2, 2, 1959, 11598, 3, 2, 2, 2, 1961, 11613, 3, 2, 2, 2, 1963, 11623, 3, 2, 2, 2, 1965, 11629, 3, 2, 2, 2, 1967, 11634, 3, 2, 2, 2, 1969, 11645, 3, 2, 2, 2, 1971, 11672, 3, 2, 2, 2, 1973, 11680, 3, 2, 2, 2, 1975, 11714, 3, 2, 2, 2, 1977, 11722, 3, 2, 2, 2, 1979, 11733, 3, 2, 2, 2, 1981, 11747, 3, 2, 2, 2, 1983, 11754, 3, 2, 2, 2, 1985, 11763, 3, 2, 2, 2, 1987, 11765, 3, 2, 2, 2, 1989, 11767, 3, 2, 2, 2, 1991, 11770, 3, 2, 2, 2, 1993, 11773, 3, 2, 2, 2, 1995, 11776, 3, 2, 2, 2, 1997, 11779, 3, 2, 2, 2, 1999, 11782, 3, 2, 2, 2, 2001, 11785, 3, 2, 2, 2, 2003, 11788, 3, 2, 2, 2, 2005, 11791, 3, 2, 2, 2, 2007, 11794, 3, 2, 2, 2, 2009, 11796, 3, 2, 2, 2, 2011, 11798, 3, 2, 2, 2, 2013, 11800, 3, 2, 2, 2, 2015, 11802, 3, 2, 2, 2, 2017, 11805, 3, 2, 2, 2, 2019, 11807, 3, 2, 2, 2, 2021, 11811, 3, 2, 2, 2, 2023, 11815, 3, 2, 2, 2, 2025, 11817, 3, 2, 2, 2, 2027, 11819, 3, 2, 2, 2, 2029, 11821, 3, 2, 2, 2, 2031, 11823, 3, 2, 2, 2, 2033, 11825, 3, 2, 2, 2, 2035, 11827, 3, 2, 2, 2, 2037, 11829, 3, 2, 2, 2, 2039, 11831, 3, 2, 2, 2, 2041, 11833, 3, 2, 2, 2, 2043, 11835, 3, 2, 2, 2, 2045, 11837, 3, 2, 2, 2, 2047, 11839, 3, 2, 2, 2, 2049, 11841, 3, 2, 2, 2, 2051, 11843, 3, 2, 2, 2, 2053, 11845, 3, 2, 2, 2, 2055, 11847, 3, 2, 2, 2, 2057, 11849, 3, 2, 2, 2, 2059, 11851, 3, 2, 2, 2, 2061, 11853, 3, 2, 2, 2, 2063, 11855, 3, 2, 2, 2, 2065, 11860, 3, 2, 2, 2, 2067, 11862, 3, 2, 2, 2, 2069, 11867, 3, 2, 2, 2, 2071, 11873, 3, 2, 2, 2, 2073, 11879, 3, 2, 2, 2, 2075, 11882, 3, 2, 2, 2, 2077, 11905, 3, 2, 2, 2, 2079, 11950, 3, 2, 2, 2, 2081, 11952, 3, 2, 2, 2, 2083, 11955, 3, 2, 2, 2, 2085, 11957, 3, 2, 2, 2, 2087, 11960, 3, 2, 2, 2, 2089, 11963, 3, 2, 2, 2, 2091, 11965, 3, 2, 2, 2, 2093, 11977, 3, 2, 2, 2, 2095, 11986, 3, 2, 2, 2, 2097, 11997, 3, 2, 2, 2, 2099, 12048, 3, 2, 2, 2, 2101, 12050, 3, 2, 2, 2, 2103, 12062, 3, 2, 2, 2, 2105, 12076, 3, 2, 2, 2, 2107, 12089, 3, 2, 2, 2, 2109, 12102, 3, 2, 2, 2, 2111, 12115, 3, 2, 2, 2, 2113, 12117, 3, 2, 2, 2, 2115, 12119, 3, 2, 2, 2, 2117, 12128, 3, 2, 2, 2, 2119, 2121, 9, 2, 2, 2, 2120, 2119, 3, 2, 2, 2, 2121, 2122, 3, 2, 2, 2, 2122, 2120, 3, 2, 2, 2, 2122, 2123, 3, 2, 2, 2, 2123, 2124, 3, 2, 2, 2, 2124, 2125, 8, 2, 2, 2, 2125, 4, 3, 2, 2, 2, 2126, 2127, 7, 49, 2, 2, 2127, 2128, 7, 44, 2, 2, 2128, 2129, 7, 35, 2, 2, 2129, 2131, 3, 2, 2, 2, 2130, 2132, 11, 2, 2, 2, 2131, 2130, 3, 2, 2, 2, 2132, 2133, 3, 2, 2, 2, 2133, 2134, 3, 2, 2, 2, 2133, 2131, 3, 2, 2, 2, 2134, 2135, 3, 2, 2, 2, 2135, 2136, 7, 44, 2, 2, 2136, 2137, 7, 49, 2, 2, 2137, 2138, 3, 2, 2, 2, 2138, 2139, 8, 3, 3, 2, 2139, 6, 3, 2, 2, 2, 2140, 2141, 7, 49, 2, 2, 2141, 2142, 7, 44, 2, 2, 2142, 2146, 3, 2, 2, 2, 2143, 2145, 11, 2, 2, 2, 2144, 2143, 3, 2, 2, 2, 2145, 2148, 3, 2, 2, 2, 2146, 2147, 3, 2, 2, 2, 2146, 2144, 3, 2, 2, 2, 2147, 2149, 3, 2, 2, 2, 2148, 2146, 3, 2, 2, 2, 2149, 2150, 7, 44, 2, 2, 2150, 2151, 7, 49, 2, 2, 2151, 2152, 3, 2, 2, 2, 2152, 2153, 8, 4, 2, 2, 2153, 8, 3, 2, 2, 2, 2154, 2155, 7, 47, 2, 2, 2155, 2158, 7, 47, 2, 2, 2156, 2158, 7, 37, 2, 2, 2157, 2154, 3, 2, 2, 2, 2157, 2156, 3, 2, 2, 2, 2158, 2162, 3, 2, 2, 2, 2159, 2161, 10, 3, 2, 2, 2160, 2159, 3, 2, 2, 2, 2161, 2164, 3, 2, 2, 2, 2162, 2160, 3, 2, 2, 2, 2162, 2163, 3, 2, 2, 2, 2163, 2170, 3, 2, 2, 2, 2164, 2162, 3, 2, 2, 2, 2165, 2167, 7, 15, 2, 2, 2166, 2165, 3, 2, 2, 2, 2166, 2167, 3, 2, 2, 2, 2167, 2168, 3, 2, 2, 2, 2168, 2171, 7, 12, 2, 2, 2169, 2171, 7, 2, 2, 3, 2170, 2166, 3, 2, 2, 2, 2170, 2169, 3, 2, 2, 2, 2171, 2183, 3, 2, 2, 2, 2172, 2173, 7, 47, 2, 2, 2173, 2174, 7, 47, 2, 2, 2174, 2180, 3, 2, 2, 2, 2175, 2177, 7, 15, 2, 2, 2176, 2175, 3, 2, 2, 2, 2176, 2177, 3, 2, 2, 2, 2177, 2178, 3, 2, 2, 2, 2178, 2181, 7, 12, 2, 2, 2179, 2181, 7, 2, 2, 3, 2180, 2176, 3, 2, 2, 2, 2180, 2179, 3, 2, 2, 2, 2181, 2183, 3, 2, 2, 2, 2182, 2157, 3, 2, 2, 2, 2182, 2172, 3, 2, 2, 2, 2183, 2184, 3, 2, 2, 2, 2184, 2185, 8, 5, 2, 2, 2185, 10, 3, 2, 2, 2, 2186, 2187, 7, 67, 2, 2, 2187, 2188, 7, 70, 2, 2, 2188, 2189, 7, 70, 2, 2, 2189, 12, 3, 2, 2, 2, 2190, 2191, 7, 67, 2, 2, 2191, 2192, 7, 78, 2, 2, 2192, 2193, 7, 78, 2, 2, 2193, 14, 3, 2, 2, 2, 2194, 2195, 7, 67, 2, 2, 2195, 2196, 7, 78, 2, 2, 2196, 2197, 7, 86, 2, 2, 2197, 2198, 7, 71, 2, 2, 2198, 2199, 7, 84, 2, 2, 2199, 16, 3, 2, 2, 2, 2200, 2201, 7, 67, 2, 2, 2201, 2202, 7, 78, 2, 2, 2202, 2203, 7, 89, 2, 2, 2203, 2204, 7, 67, 2, 2, 2204, 2205, 7, 91, 2, 2, 2205, 2206, 7, 85, 2, 2, 2206, 18, 3, 2, 2, 2, 2207, 2208, 7, 67, 2, 2, 2208, 2209, 7, 80, 2, 2, 2209, 2210, 7, 67, 2, 2, 2210, 2211, 7, 78, 2, 2, 2211, 2212, 7, 91, 2, 2, 2212, 2213, 7, 92, 2, 2, 2213, 2214, 7, 71, 2, 2, 2214, 20, 3, 2, 2, 2, 2215, 2216, 7, 67, 2, 2, 2216, 2217, 7, 80, 2, 2, 2217, 2218, 7, 70, 2, 2, 2218, 22, 3, 2, 2, 2, 2219, 2220, 7, 67, 2, 2, 2220, 2221, 7, 85, 2, 2, 2221, 24, 3, 2, 2, 2, 2222, 2223, 7, 67, 2, 2, 2223, 2224, 7, 85, 2, 2, 2224, 2225, 7, 69, 2, 2, 2225, 26, 3, 2, 2, 2, 2226, 2227, 7, 68, 2, 2, 2227, 2228, 7, 71, 2, 2, 2228, 2229, 7, 72, 2, 2, 2229, 2230, 7, 81, 2, 2, 2230, 2231, 7, 84, 2, 2, 2231, 2232, 7, 71, 2, 2, 2232, 28, 3, 2, 2, 2, 2233, 2234, 7, 68, 2, 2, 2234, 2235, 7, 71, 2, 2, 2235, 2236, 7, 86, 2, 2, 2236, 2237, 7, 89, 2, 2, 2237, 2238, 7, 71, 2, 2, 2238, 2239, 7, 71, 2, 2, 2239, 2240, 7, 80, 2, 2, 2240, 30, 3, 2, 2, 2, 2241, 2242, 7, 68, 2, 2, 2242, 2243, 7, 81, 2, 2, 2243, 2244, 7, 86, 2, 2, 2244, 2245, 7, 74, 2, 2, 2245, 32, 3, 2, 2, 2, 2246, 2247, 7, 68, 2, 2, 2247, 2248, 7, 91, 2, 2, 2248, 34, 3, 2, 2, 2, 2249, 2250, 7, 69, 2, 2, 2250, 2251, 7, 67, 2, 2, 2251, 2252, 7, 78, 2, 2, 2252, 2253, 7, 78, 2, 2, 2253, 36, 3, 2, 2, 2, 2254, 2255, 7, 69, 2, 2, 2255, 2256, 7, 67, 2, 2, 2256, 2257, 7, 85, 2, 2, 2257, 2258, 7, 69, 2, 2, 2258, 2259, 7, 67, 2, 2, 2259, 2260, 7, 70, 2, 2, 2260, 2261, 7, 71, 2, 2, 2261, 38, 3, 2, 2, 2, 2262, 2263, 7, 69, 2, 2, 2263, 2264, 7, 67, 2, 2, 2264, 2265, 7, 85, 2, 2, 2265, 2266, 7, 71, 2, 2, 2266, 40, 3, 2, 2, 2, 2267, 2268, 7, 69, 2, 2, 2268, 2269, 7, 67, 2, 2, 2269, 2270, 7, 85, 2, 2, 2270, 2271, 7, 86, 2, 2, 2271, 42, 3, 2, 2, 2, 2272, 2273, 7, 69, 2, 2, 2273, 2274, 7, 74, 2, 2, 2274, 2275, 7, 67, 2, 2, 2275, 2276, 7, 80, 2, 2, 2276, 2277, 7, 73, 2, 2, 2277, 2278, 7, 71, 2, 2, 2278, 44, 3, 2, 2, 2, 2279, 2280, 7, 69, 2, 2, 2280, 2281, 7, 74, 2, 2, 2281, 2282, 7, 67, 2, 2, 2282, 2283, 7, 84, 2, 2, 2283, 2284, 7, 67, 2, 2, 2284, 2285, 7, 69, 2, 2, 2285, 2286, 7, 86, 2, 2, 2286, 2287, 7, 71, 2, 2, 2287, 2288, 7, 84, 2, 2, 2288, 46, 3, 2, 2, 2, 2289, 2290, 7, 69, 2, 2, 2290, 2291, 7, 74, 2, 2, 2291, 2292, 7, 71, 2, 2, 2292, 2293, 7, 69, 2, 2, 2293, 2294, 7, 77, 2, 2, 2294, 48, 3, 2, 2, 2, 2295, 2296, 7, 69, 2, 2, 2296, 2297, 7, 81, 2, 2, 2297, 2298, 7, 78, 2, 2, 2298, 2299, 7, 78, 2, 2, 2299, 2300, 7, 67, 2, 2, 2300, 2301, 7, 86, 2, 2, 2301, 2302, 7, 71, 2, 2, 2302, 50, 3, 2, 2, 2, 2303, 2304, 7, 69, 2, 2, 2304, 2305, 7, 81, 2, 2, 2305, 2306, 7, 78, 2, 2, 2306, 2307, 7, 87, 2, 2, 2307, 2308, 7, 79, 2, 2, 2308, 2309, 7, 80, 2, 2, 2309, 52, 3, 2, 2, 2, 2310, 2311, 7, 69, 2, 2, 2311, 2312, 7, 81, 2, 2, 2312, 2313, 7, 80, 2, 2, 2313, 2314, 7, 70, 2, 2, 2314, 2315, 7, 75, 2, 2, 2315, 2316, 7, 86, 2, 2, 2316, 2317, 7, 75, 2, 2, 2317, 2318, 7, 81, 2, 2, 2318, 2319, 7, 80, 2, 2, 2319, 54, 3, 2, 2, 2, 2320, 2321, 7, 69, 2, 2, 2321, 2322, 7, 81, 2, 2, 2322, 2323, 7, 80, 2, 2, 2323, 2324, 7, 85, 2, 2, 2324, 2325, 7, 86, 2, 2, 2325, 2326, 7, 84, 2, 2, 2326, 2327, 7, 67, 2, 2, 2327, 2328, 7, 75, 2, 2, 2328, 2329, 7, 80, 2, 2, 2329, 2330, 7, 86, 2, 2, 2330, 56, 3, 2, 2, 2, 2331, 2332, 7, 69, 2, 2, 2332, 2333, 7, 81, 2, 2, 2333, 2334, 7, 80, 2, 2, 2334, 2335, 7, 86, 2, 2, 2335, 2336, 7, 75, 2, 2, 2336, 2337, 7, 80, 2, 2, 2337, 2338, 7, 87, 2, 2, 2338, 2339, 7, 71, 2, 2, 2339, 58, 3, 2, 2, 2, 2340, 2341, 7, 69, 2, 2, 2341, 2342, 7, 81, 2, 2, 2342, 2343, 7, 80, 2, 2, 2343, 2344, 7, 88, 2, 2, 2344, 2345, 7, 71, 2, 2, 2345, 2346, 7, 84, 2, 2, 2346, 2347, 7, 86, 2, 2, 2347, 60, 3, 2, 2, 2, 2348, 2349, 7, 69, 2, 2, 2349, 2350, 7, 84, 2, 2, 2350, 2351, 7, 71, 2, 2, 2351, 2352, 7, 67, 2, 2, 2352, 2353, 7, 86, 2, 2, 2353, 2354, 7, 71, 2, 2, 2354, 62, 3, 2, 2, 2, 2355, 2356, 7, 69, 2, 2, 2356, 2357, 7, 84, 2, 2, 2357, 2358, 7, 81, 2, 2, 2358, 2359, 7, 85, 2, 2, 2359, 2360, 7, 85, 2, 2, 2360, 64, 3, 2, 2, 2, 2361, 2362, 7, 69, 2, 2, 2362, 2363, 7, 87, 2, 2, 2363, 2364, 7, 84, 2, 2, 2364, 2365, 7, 84, 2, 2, 2365, 2366, 7, 71, 2, 2, 2366, 2367, 7, 80, 2, 2, 2367, 2368, 7, 86, 2, 2, 2368, 66, 3, 2, 2, 2, 2369, 2370, 7, 69, 2, 2, 2370, 2371, 7, 87, 2, 2, 2371, 2372, 7, 84, 2, 2, 2372, 2373, 7, 84, 2, 2, 2373, 2374, 7, 71, 2, 2, 2374, 2375, 7, 80, 2, 2, 2375, 2376, 7, 86, 2, 2, 2376, 2377, 7, 97, 2, 2, 2377, 2378, 7, 87, 2, 2, 2378, 2379, 7, 85, 2, 2, 2379, 2380, 7, 71, 2, 2, 2380, 2381, 7, 84, 2, 2, 2381, 68, 3, 2, 2, 2, 2382, 2383, 7, 69, 2, 2, 2383, 2384, 7, 87, 2, 2, 2384, 2385, 7, 84, 2, 2, 2385, 2386, 7, 85, 2, 2, 2386, 2387, 7, 81, 2, 2, 2387, 2388, 7, 84, 2, 2, 2388, 70, 3, 2, 2, 2, 2389, 2390, 7, 70, 2, 2, 2390, 2391, 7, 67, 2, 2, 2391, 2392, 7, 86, 2, 2, 2392, 2393, 7, 67, 2, 2, 2393, 2394, 7, 68, 2, 2, 2394, 2395, 7, 67, 2, 2, 2395, 2396, 7, 85, 2, 2, 2396, 2397, 7, 71, 2, 2, 2397, 72, 3, 2, 2, 2, 2398, 2399, 7, 70, 2, 2, 2399, 2400, 7, 67, 2, 2, 2400, 2401, 7, 86, 2, 2, 2401, 2402, 7, 67, 2, 2, 2402, 2403, 7, 68, 2, 2, 2403, 2404, 7, 67, 2, 2, 2404, 2405, 7, 85, 2, 2, 2405, 2406, 7, 71, 2, 2, 2406, 2407, 7, 85, 2, 2, 2407, 74, 3, 2, 2, 2, 2408, 2409, 7, 70, 2, 2, 2409, 2410, 7, 71, 2, 2, 2410, 2411, 7, 69, 2, 2, 2411, 2412, 7, 78, 2, 2, 2412, 2413, 7, 67, 2, 2, 2413, 2414, 7, 84, 2, 2, 2414, 2415, 7, 71, 2, 2, 2415, 76, 3, 2, 2, 2, 2416, 2417, 7, 70, 2, 2, 2417, 2418, 7, 71, 2, 2, 2418, 2419, 7, 72, 2, 2, 2419, 2420, 7, 67, 2, 2, 2420, 2421, 7, 87, 2, 2, 2421, 2422, 7, 78, 2, 2, 2422, 2423, 7, 86, 2, 2, 2423, 78, 3, 2, 2, 2, 2424, 2425, 7, 70, 2, 2, 2425, 2426, 7, 71, 2, 2, 2426, 2427, 7, 78, 2, 2, 2427, 2428, 7, 67, 2, 2, 2428, 2429, 7, 91, 2, 2, 2429, 2430, 7, 71, 2, 2, 2430, 2431, 7, 70, 2, 2, 2431, 80, 3, 2, 2, 2, 2432, 2433, 7, 70, 2, 2, 2433, 2434, 7, 71, 2, 2, 2434, 2435, 7, 78, 2, 2, 2435, 2436, 7, 71, 2, 2, 2436, 2437, 7, 86, 2, 2, 2437, 2438, 7, 71, 2, 2, 2438, 82, 3, 2, 2, 2, 2439, 2440, 7, 70, 2, 2, 2440, 2441, 7, 71, 2, 2, 2441, 2442, 7, 85, 2, 2, 2442, 2443, 7, 69, 2, 2, 2443, 84, 3, 2, 2, 2, 2444, 2445, 7, 70, 2, 2, 2445, 2446, 7, 71, 2, 2, 2446, 2447, 7, 85, 2, 2, 2447, 2448, 7, 69, 2, 2, 2448, 2449, 7, 84, 2, 2, 2449, 2450, 7, 75, 2, 2, 2450, 2451, 7, 68, 2, 2, 2451, 2452, 7, 71, 2, 2, 2452, 86, 3, 2, 2, 2, 2453, 2454, 7, 70, 2, 2, 2454, 2455, 7, 71, 2, 2, 2455, 2456, 7, 86, 2, 2, 2456, 2457, 7, 71, 2, 2, 2457, 2458, 7, 84, 2, 2, 2458, 2459, 7, 79, 2, 2, 2459, 2460, 7, 75, 2, 2, 2460, 2461, 7, 80, 2, 2, 2461, 2462, 7, 75, 2, 2, 2462, 2463, 7, 85, 2, 2, 2463, 2464, 7, 86, 2, 2, 2464, 2465, 7, 75, 2, 2, 2465, 2466, 7, 69, 2, 2, 2466, 88, 3, 2, 2, 2, 2467, 2468, 7, 70, 2, 2, 2468, 2469, 7, 75, 2, 2, 2469, 2470, 7, 67, 2, 2, 2470, 2471, 7, 73, 2, 2, 2471, 2472, 7, 80, 2, 2, 2472, 2473, 7, 81, 2, 2, 2473, 2474, 7, 85, 2, 2, 2474, 2475, 7, 86, 2, 2, 2475, 2476, 7, 75, 2, 2, 2476, 2477, 7, 69, 2, 2, 2477, 2478, 7, 85, 2, 2, 2478, 90, 3, 2, 2, 2, 2479, 2480, 7, 70, 2, 2, 2480, 2481, 7, 75, 2, 2, 2481, 2482, 7, 85, 2, 2, 2482, 2483, 7, 86, 2, 2, 2483, 2484, 7, 75, 2, 2, 2484, 2485, 7, 80, 2, 2, 2485, 2486, 7, 69, 2, 2, 2486, 2487, 7, 86, 2, 2, 2487, 92, 3, 2, 2, 2, 2488, 2489, 7, 70, 2, 2, 2489, 2490, 7, 75, 2, 2, 2490, 2491, 7, 85, 2, 2, 2491, 2492, 7, 86, 2, 2, 2492, 2493, 7, 75, 2, 2, 2493, 2494, 7, 80, 2, 2, 2494, 2495, 7, 69, 2, 2, 2495, 2496, 7, 86, 2, 2, 2496, 2497, 7, 84, 2, 2, 2497, 2498, 7, 81, 2, 2, 2498, 2499, 7, 89, 2, 2, 2499, 94, 3, 2, 2, 2, 2500, 2501, 7, 70, 2, 2, 2501, 2502, 7, 84, 2, 2, 2502, 2503, 7, 81, 2, 2, 2503, 2504, 7, 82, 2, 2, 2504, 96, 3, 2, 2, 2, 2505, 2506, 7, 71, 2, 2, 2506, 2507, 7, 67, 2, 2, 2507, 2508, 7, 69, 2, 2, 2508, 2509, 7, 74, 2, 2, 2509, 98, 3, 2, 2, 2, 2510, 2511, 7, 71, 2, 2, 2511, 2512, 7, 78, 2, 2, 2512, 2513, 7, 85, 2, 2, 2513, 2514, 7, 71, 2, 2, 2514, 100, 3, 2, 2, 2, 2515, 2516, 7, 71, 2, 2, 2516, 2517, 7, 78, 2, 2, 2517, 2518, 7, 85, 2, 2, 2518, 2519, 7, 71, 2, 2, 2519, 2520, 7, 75, 2, 2, 2520, 2521, 7, 72, 2, 2, 2521, 102, 3, 2, 2, 2, 2522, 2523, 7, 71, 2, 2, 2523, 2524, 7, 80, 2, 2, 2524, 2525, 7, 69, 2, 2, 2525, 2526, 7, 78, 2, 2, 2526, 2527, 7, 81, 2, 2, 2527, 2528, 7, 85, 2, 2, 2528, 2529, 7, 71, 2, 2, 2529, 2530, 7, 70, 2, 2, 2530, 104, 3, 2, 2, 2, 2531, 2532, 7, 71, 2, 2, 2532, 2533, 7, 85, 2, 2, 2533, 2534, 7, 69, 2, 2, 2534, 2535, 7, 67, 2, 2, 2535, 2536, 7, 82, 2, 2, 2536, 2537, 7, 71, 2, 2, 2537, 2538, 7, 70, 2, 2, 2538, 106, 3, 2, 2, 2, 2539, 2540, 7, 71, 2, 2, 2540, 2541, 7, 90, 2, 2, 2541, 2542, 7, 75, 2, 2, 2542, 2543, 7, 85, 2, 2, 2543, 2544, 7, 86, 2, 2, 2544, 2545, 7, 85, 2, 2, 2545, 108, 3, 2, 2, 2, 2546, 2547, 7, 71, 2, 2, 2547, 2548, 7, 90, 2, 2, 2548, 2549, 7, 75, 2, 2, 2549, 2550, 7, 86, 2, 2, 2550, 110, 3, 2, 2, 2, 2551, 2552, 7, 71, 2, 2, 2552, 2553, 7, 90, 2, 2, 2553, 2554, 7, 82, 2, 2, 2554, 2555, 7, 78, 2, 2, 2555, 2556, 7, 67, 2, 2, 2556, 2557, 7, 75, 2, 2, 2557, 2558, 7, 80, 2, 2, 2558, 112, 3, 2, 2, 2, 2559, 2560, 7, 72, 2, 2, 2560, 2561, 7, 67, 2, 2, 2561, 2562, 7, 78, 2, 2, 2562, 2563, 7, 85, 2, 2, 2563, 2564, 7, 71, 2, 2, 2564, 114, 3, 2, 2, 2, 2565, 2566, 7, 72, 2, 2, 2566, 2567, 7, 71, 2, 2, 2567, 2568, 7, 86, 2, 2, 2568, 2569, 7, 69, 2, 2, 2569, 2570, 7, 74, 2, 2, 2570, 116, 3, 2, 2, 2, 2571, 2572, 7, 72, 2, 2, 2572, 2573, 7, 81, 2, 2, 2573, 2574, 7, 84, 2, 2, 2574, 118, 3, 2, 2, 2, 2575, 2576, 7, 72, 2, 2, 2576, 2577, 7, 81, 2, 2, 2577, 2578, 7, 84, 2, 2, 2578, 2579, 7, 69, 2, 2, 2579, 2580, 7, 71, 2, 2, 2580, 120, 3, 2, 2, 2, 2581, 2582, 7, 72, 2, 2, 2582, 2583, 7, 81, 2, 2, 2583, 2584, 7, 84, 2, 2, 2584, 2585, 7, 71, 2, 2, 2585, 2586, 7, 75, 2, 2, 2586, 2587, 7, 73, 2, 2, 2587, 2588, 7, 80, 2, 2, 2588, 122, 3, 2, 2, 2, 2589, 2590, 7, 72, 2, 2, 2590, 2591, 7, 84, 2, 2, 2591, 2592, 7, 81, 2, 2, 2592, 2593, 7, 79, 2, 2, 2593, 124, 3, 2, 2, 2, 2594, 2595, 7, 72, 2, 2, 2595, 2596, 7, 87, 2, 2, 2596, 2597, 7, 78, 2, 2, 2597, 2598, 7, 78, 2, 2, 2598, 2599, 7, 86, 2, 2, 2599, 2600, 7, 71, 2, 2, 2600, 2601, 7, 90, 2, 2, 2601, 2602, 7, 86, 2, 2, 2602, 126, 3, 2, 2, 2, 2603, 2604, 7, 73, 2, 2, 2604, 2605, 7, 71, 2, 2, 2605, 2606, 7, 80, 2, 2, 2606, 2607, 7, 71, 2, 2, 2607, 2608, 7, 84, 2, 2, 2608, 2609, 7, 67, 2, 2, 2609, 2610, 7, 86, 2, 2, 2610, 2611, 7, 71, 2, 2, 2611, 2612, 7, 70, 2, 2, 2612, 128, 3, 2, 2, 2, 2613, 2614, 7, 73, 2, 2, 2614, 2615, 7, 71, 2, 2, 2615, 2616, 7, 86, 2, 2, 2616, 130, 3, 2, 2, 2, 2617, 2618, 7, 73, 2, 2, 2618, 2619, 7, 84, 2, 2, 2619, 2620, 7, 67, 2, 2, 2620, 2621, 7, 80, 2, 2, 2621, 2622, 7, 86, 2, 2, 2622, 132, 3, 2, 2, 2, 2623, 2624, 7, 73, 2, 2, 2624, 2625, 7, 84, 2, 2, 2625, 2626, 7, 81, 2, 2, 2626, 2627, 7, 87, 2, 2, 2627, 2628, 7, 82, 2, 2, 2628, 134, 3, 2, 2, 2, 2629, 2630, 7, 74, 2, 2, 2630, 2631, 7, 67, 2, 2, 2631, 2632, 7, 88, 2, 2, 2632, 2633, 7, 75, 2, 2, 2633, 2634, 7, 80, 2, 2, 2634, 2635, 7, 73, 2, 2, 2635, 136, 3, 2, 2, 2, 2636, 2637, 7, 74, 2, 2, 2637, 2638, 7, 75, 2, 2, 2638, 2639, 7, 73, 2, 2, 2639, 2640, 7, 74, 2, 2, 2640, 2641, 7, 97, 2, 2, 2641, 2642, 7, 82, 2, 2, 2642, 2643, 7, 84, 2, 2, 2643, 2644, 7, 75, 2, 2, 2644, 2645, 7, 81, 2, 2, 2645, 2646, 7, 84, 2, 2, 2646, 2647, 7, 75, 2, 2, 2647, 2648, 7, 86, 2, 2, 2648, 2649, 7, 91, 2, 2, 2649, 138, 3, 2, 2, 2, 2650, 2651, 7, 75, 2, 2, 2651, 2652, 7, 72, 2, 2, 2652, 140, 3, 2, 2, 2, 2653, 2654, 7, 75, 2, 2, 2654, 2655, 7, 73, 2, 2, 2655, 2656, 7, 80, 2, 2, 2656, 2657, 7, 81, 2, 2, 2657, 2658, 7, 84, 2, 2, 2658, 2659, 7, 71, 2, 2, 2659, 142, 3, 2, 2, 2, 2660, 2661, 7, 75, 2, 2, 2661, 2662, 7, 80, 2, 2, 2662, 144, 3, 2, 2, 2, 2663, 2664, 7, 75, 2, 2, 2664, 2665, 7, 80, 2, 2, 2665, 2666, 7, 70, 2, 2, 2666, 2667, 7, 71, 2, 2, 2667, 2668, 7, 90, 2, 2, 2668, 146, 3, 2, 2, 2, 2669, 2670, 7, 75, 2, 2, 2670, 2671, 7, 80, 2, 2, 2671, 2672, 7, 72, 2, 2, 2672, 2673, 7, 75, 2, 2, 2673, 2674, 7, 78, 2, 2, 2674, 2675, 7, 71, 2, 2, 2675, 148, 3, 2, 2, 2, 2676, 2677, 7, 75, 2, 2, 2677, 2678, 7, 80, 2, 2, 2678, 2679, 7, 80, 2, 2, 2679, 2680, 7, 71, 2, 2, 2680, 2681, 7, 84, 2, 2, 2681, 150, 3, 2, 2, 2, 2682, 2683, 7, 75, 2, 2, 2683, 2684, 7, 80, 2, 2, 2684, 2685, 7, 81, 2, 2, 2685, 2686, 7, 87, 2, 2, 2686, 2687, 7, 86, 2, 2, 2687, 152, 3, 2, 2, 2, 2688, 2689, 7, 75, 2, 2, 2689, 2690, 7, 80, 2, 2, 2690, 2691, 7, 85, 2, 2, 2691, 2692, 7, 71, 2, 2, 2692, 2693, 7, 84, 2, 2, 2693, 2694, 7, 86, 2, 2, 2694, 154, 3, 2, 2, 2, 2695, 2696, 7, 75, 2, 2, 2696, 2697, 7, 80, 2, 2, 2697, 2698, 7, 86, 2, 2, 2698, 2699, 7, 71, 2, 2, 2699, 2700, 7, 84, 2, 2, 2700, 2701, 7, 88, 2, 2, 2701, 2702, 7, 67, 2, 2, 2702, 2703, 7, 78, 2, 2, 2703, 156, 3, 2, 2, 2, 2704, 2705, 7, 75, 2, 2, 2705, 2706, 7, 80, 2, 2, 2706, 2707, 7, 86, 2, 2, 2707, 2708, 7, 81, 2, 2, 2708, 158, 3, 2, 2, 2, 2709, 2710, 7, 75, 2, 2, 2710, 2711, 7, 85, 2, 2, 2711, 160, 3, 2, 2, 2, 2712, 2713, 7, 75, 2, 2, 2713, 2714, 7, 86, 2, 2, 2714, 2715, 7, 71, 2, 2, 2715, 2716, 7, 84, 2, 2, 2716, 2717, 7, 67, 2, 2, 2717, 2718, 7, 86, 2, 2, 2718, 2719, 7, 71, 2, 2, 2719, 162, 3, 2, 2, 2, 2720, 2721, 7, 76, 2, 2, 2721, 2722, 7, 81, 2, 2, 2722, 2723, 7, 75, 2, 2, 2723, 2724, 7, 80, 2, 2, 2724, 164, 3, 2, 2, 2, 2725, 2726, 7, 77, 2, 2, 2726, 2727, 7, 71, 2, 2, 2727, 2728, 7, 91, 2, 2, 2728, 166, 3, 2, 2, 2, 2729, 2730, 7, 77, 2, 2, 2730, 2731, 7, 71, 2, 2, 2731, 2732, 7, 91, 2, 2, 2732, 2733, 7, 85, 2, 2, 2733, 168, 3, 2, 2, 2, 2734, 2735, 7, 77, 2, 2, 2735, 2736, 7, 75, 2, 2, 2736, 2737, 7, 78, 2, 2, 2737, 2738, 7, 78, 2, 2, 2738, 170, 3, 2, 2, 2, 2739, 2740, 7, 78, 2, 2, 2740, 2741, 7, 71, 2, 2, 2741, 2742, 7, 67, 2, 2, 2742, 2743, 7, 70, 2, 2, 2743, 2744, 7, 75, 2, 2, 2744, 2745, 7, 80, 2, 2, 2745, 2746, 7, 73, 2, 2, 2746, 172, 3, 2, 2, 2, 2747, 2748, 7, 78, 2, 2, 2748, 2749, 7, 71, 2, 2, 2749, 2750, 7, 67, 2, 2, 2750, 2751, 7, 88, 2, 2, 2751, 2752, 7, 71, 2, 2, 2752, 174, 3, 2, 2, 2, 2753, 2754, 7, 78, 2, 2, 2754, 2755, 7, 71, 2, 2, 2755, 2756, 7, 72, 2, 2, 2756, 2757, 7, 86, 2, 2, 2757, 176, 3, 2, 2, 2, 2758, 2759, 7, 78, 2, 2, 2759, 2760, 7, 75, 2, 2, 2760, 2761, 7, 77, 2, 2, 2761, 2762, 7, 71, 2, 2, 2762, 178, 3, 2, 2, 2, 2763, 2764, 7, 78, 2, 2, 2764, 2765, 7, 75, 2, 2, 2765, 2766, 7, 79, 2, 2, 2766, 2767, 7, 75, 2, 2, 2767, 2768, 7, 86, 2, 2, 2768, 180, 3, 2, 2, 2, 2769, 2770, 7, 78, 2, 2, 2770, 2771, 7, 75, 2, 2, 2771, 2772, 7, 80, 2, 2, 2772, 2773, 7, 71, 2, 2, 2773, 2774, 7, 67, 2, 2, 2774, 2775, 7, 84, 2, 2, 2775, 182, 3, 2, 2, 2, 2776, 2777, 7, 78, 2, 2, 2777, 2778, 7, 75, 2, 2, 2778, 2779, 7, 80, 2, 2, 2779, 2780, 7, 71, 2, 2, 2780, 2781, 7, 85, 2, 2, 2781, 184, 3, 2, 2, 2, 2782, 2783, 7, 78, 2, 2, 2783, 2784, 7, 81, 2, 2, 2784, 2785, 7, 67, 2, 2, 2785, 2786, 7, 70, 2, 2, 2786, 186, 3, 2, 2, 2, 2787, 2788, 7, 78, 2, 2, 2788, 2789, 7, 81, 2, 2, 2789, 2790, 7, 69, 2, 2, 2790, 2791, 7, 77, 2, 2, 2791, 188, 3, 2, 2, 2, 2792, 2793, 7, 78, 2, 2, 2793, 2794, 7, 81, 2, 2, 2794, 2795, 7, 81, 2, 2, 2795, 2796, 7, 82, 2, 2, 2796, 190, 3, 2, 2, 2, 2797, 2798, 7, 78, 2, 2, 2798, 2799, 7, 81, 2, 2, 2799, 2800, 7, 89, 2, 2, 2800, 2801, 7, 97, 2, 2, 2801, 2802, 7, 82, 2, 2, 2802, 2803, 7, 84, 2, 2, 2803, 2804, 7, 75, 2, 2, 2804, 2805, 7, 81, 2, 2, 2805, 2806, 7, 84, 2, 2, 2806, 2807, 7, 75, 2, 2, 2807, 2808, 7, 86, 2, 2, 2808, 2809, 7, 91, 2, 2, 2809, 192, 3, 2, 2, 2, 2810, 2811, 7, 79, 2, 2, 2811, 2812, 7, 67, 2, 2, 2812, 2813, 7, 85, 2, 2, 2813, 2814, 7, 86, 2, 2, 2814, 2815, 7, 71, 2, 2, 2815, 2816, 7, 84, 2, 2, 2816, 2817, 7, 97, 2, 2, 2817, 2818, 7, 68, 2, 2, 2818, 2819, 7, 75, 2, 2, 2819, 2820, 7, 80, 2, 2, 2820, 2821, 7, 70, 2, 2, 2821, 194, 3, 2, 2, 2, 2822, 2823, 7, 79, 2, 2, 2823, 2824, 7, 67, 2, 2, 2824, 2825, 7, 85, 2, 2, 2825, 2826, 7, 86, 2, 2, 2826, 2827, 7, 71, 2, 2, 2827, 2828, 7, 84, 2, 2, 2828, 2829, 7, 97, 2, 2, 2829, 2830, 7, 85, 2, 2, 2830, 2831, 7, 85, 2, 2, 2831, 2832, 7, 78, 2, 2, 2832, 2833, 7, 97, 2, 2, 2833, 2834, 7, 88, 2, 2, 2834, 2835, 7, 71, 2, 2, 2835, 2836, 7, 84, 2, 2, 2836, 2837, 7, 75, 2, 2, 2837, 2838, 7, 72, 2, 2, 2838, 2839, 7, 91, 2, 2, 2839, 2840, 7, 97, 2, 2, 2840, 2841, 7, 85, 2, 2, 2841, 2842, 7, 71, 2, 2, 2842, 2843, 7, 84, 2, 2, 2843, 2844, 7, 88, 2, 2, 2844, 2845, 7, 71, 2, 2, 2845, 2846, 7, 84, 2, 2, 2846, 2847, 7, 97, 2, 2, 2847, 2848, 7, 69, 2, 2, 2848, 2849, 7, 71, 2, 2, 2849, 2850, 7, 84, 2, 2, 2850, 2851, 7, 86, 2, 2, 2851, 196, 3, 2, 2, 2, 2852, 2853, 7, 79, 2, 2, 2853, 2854, 7, 67, 2, 2, 2854, 2855, 7, 86, 2, 2, 2855, 2856, 7, 69, 2, 2, 2856, 2857, 7, 74, 2, 2, 2857, 198, 3, 2, 2, 2, 2858, 2859, 7, 79, 2, 2, 2859, 2860, 7, 67, 2, 2, 2860, 2861, 7, 90, 2, 2, 2861, 2862, 7, 88, 2, 2, 2862, 2863, 7, 67, 2, 2, 2863, 2864, 7, 78, 2, 2, 2864, 2865, 7, 87, 2, 2, 2865, 2866, 7, 71, 2, 2, 2866, 200, 3, 2, 2, 2, 2867, 2868, 7, 79, 2, 2, 2868, 2869, 7, 81, 2, 2, 2869, 2870, 7, 70, 2, 2, 2870, 2871, 7, 75, 2, 2, 2871, 2872, 7, 72, 2, 2, 2872, 2873, 7, 75, 2, 2, 2873, 2874, 7, 71, 2, 2, 2874, 2875, 7, 85, 2, 2, 2875, 202, 3, 2, 2, 2, 2876, 2877, 7, 80, 2, 2, 2877, 2878, 7, 67, 2, 2, 2878, 2879, 7, 86, 2, 2, 2879, 2880, 7, 87, 2, 2, 2880, 2881, 7, 84, 2, 2, 2881, 2882, 7, 67, 2, 2, 2882, 2883, 7, 78, 2, 2, 2883, 204, 3, 2, 2, 2, 2884, 2885, 7, 80, 2, 2, 2885, 2886, 7, 81, 2, 2, 2886, 2887, 7, 86, 2, 2, 2887, 206, 3, 2, 2, 2, 2888, 2889, 7, 80, 2, 2, 2889, 2890, 7, 81, 2, 2, 2890, 2891, 7, 97, 2, 2, 2891, 2892, 7, 89, 2, 2, 2892, 2893, 7, 84, 2, 2, 2893, 2894, 7, 75, 2, 2, 2894, 2895, 7, 86, 2, 2, 2895, 2896, 7, 71, 2, 2, 2896, 2897, 7, 97, 2, 2, 2897, 2898, 7, 86, 2, 2, 2898, 2899, 7, 81, 2, 2, 2899, 2900, 7, 97, 2, 2, 2900, 2901, 7, 68, 2, 2, 2901, 2902, 7, 75, 2, 2, 2902, 2903, 7, 80, 2, 2, 2903, 2904, 7, 78, 2, 2, 2904, 2905, 7, 81, 2, 2, 2905, 2906, 7, 73, 2, 2, 2906, 208, 3, 2, 2, 2, 2907, 2908, 7, 80, 2, 2, 2908, 2909, 7, 87, 2, 2, 2909, 2910, 7, 78, 2, 2, 2910, 2911, 7, 78, 2, 2, 2911, 210, 3, 2, 2, 2, 2912, 2913, 7, 80, 2, 2, 2913, 2914, 7, 87, 2, 2, 2914, 2915, 7, 79, 2, 2, 2915, 2916, 7, 68, 2, 2, 2916, 2917, 7, 71, 2, 2, 2917, 2918, 7, 84, 2, 2, 2918, 212, 3, 2, 2, 2, 2919, 2920, 7, 81, 2, 2, 2920, 2921, 7, 80, 2, 2, 2921, 214, 3, 2, 2, 2, 2922, 2923, 7, 81, 2, 2, 2923, 2924, 7, 82, 2, 2, 2924, 2925, 7, 86, 2, 2, 2925, 2926, 7, 75, 2, 2, 2926, 2927, 7, 79, 2, 2, 2927, 2928, 7, 75, 2, 2, 2928, 2929, 7, 92, 2, 2, 2929, 2930, 7, 71, 2, 2, 2930, 216, 3, 2, 2, 2, 2931, 2932, 7, 81, 2, 2, 2932, 2933, 7, 82, 2, 2, 2933, 2934, 7, 86, 2, 2, 2934, 2935, 7, 75, 2, 2, 2935, 2936, 7, 81, 2, 2, 2936, 2937, 7, 80, 2, 2, 2937, 218, 3, 2, 2, 2, 2938, 2939, 7, 81, 2, 2, 2939, 2940, 7, 82, 2, 2, 2940, 2941, 7, 86, 2, 2, 2941, 2942, 7, 75, 2, 2, 2942, 2943, 7, 81, 2, 2, 2943, 2944, 7, 80, 2, 2, 2944, 2945, 7, 67, 2, 2, 2945, 2946, 7, 78, 2, 2, 2946, 2947, 7, 78, 2, 2, 2947, 2948, 7, 91, 2, 2, 2948, 220, 3, 2, 2, 2, 2949, 2950, 7, 81, 2, 2, 2950, 2951, 7, 84, 2, 2, 2951, 222, 3, 2, 2, 2, 2952, 2953, 7, 81, 2, 2, 2953, 2954, 7, 84, 2, 2, 2954, 2955, 7, 70, 2, 2, 2955, 2956, 7, 71, 2, 2, 2956, 2957, 7, 84, 2, 2, 2957, 224, 3, 2, 2, 2, 2958, 2959, 7, 81, 2, 2, 2959, 2960, 7, 87, 2, 2, 2960, 2961, 7, 86, 2, 2, 2961, 226, 3, 2, 2, 2, 2962, 2963, 7, 81, 2, 2, 2963, 2964, 7, 87, 2, 2, 2964, 2965, 7, 86, 2, 2, 2965, 2966, 7, 71, 2, 2, 2966, 2967, 7, 84, 2, 2, 2967, 228, 3, 2, 2, 2, 2968, 2969, 7, 81, 2, 2, 2969, 2970, 7, 87, 2, 2, 2970, 2971, 7, 86, 2, 2, 2971, 2972, 7, 72, 2, 2, 2972, 2973, 7, 75, 2, 2, 2973, 2974, 7, 78, 2, 2, 2974, 2975, 7, 71, 2, 2, 2975, 230, 3, 2, 2, 2, 2976, 2977, 7, 82, 2, 2, 2977, 2978, 7, 67, 2, 2, 2978, 2979, 7, 84, 2, 2, 2979, 2980, 7, 86, 2, 2, 2980, 2981, 7, 75, 2, 2, 2981, 2982, 7, 86, 2, 2, 2982, 2983, 7, 75, 2, 2, 2983, 2984, 7, 81, 2, 2, 2984, 2985, 7, 80, 2, 2, 2985, 232, 3, 2, 2, 2, 2986, 2987, 7, 82, 2, 2, 2987, 2988, 7, 84, 2, 2, 2988, 2989, 7, 75, 2, 2, 2989, 2990, 7, 79, 2, 2, 2990, 2991, 7, 67, 2, 2, 2991, 2992, 7, 84, 2, 2, 2992, 2993, 7, 91, 2, 2, 2993, 234, 3, 2, 2, 2, 2994, 2995, 7, 82, 2, 2, 2995, 2996, 7, 84, 2, 2, 2996, 2997, 7, 81, 2, 2, 2997, 2998, 7, 69, 2, 2, 2998, 2999, 7, 71, 2, 2, 2999, 3000, 7, 70, 2, 2, 3000, 3001, 7, 87, 2, 2, 3001, 3002, 7, 84, 2, 2, 3002, 3003, 7, 71, 2, 2, 3003, 236, 3, 2, 2, 2, 3004, 3005, 7, 82, 2, 2, 3005, 3006, 7, 87, 2, 2, 3006, 3007, 7, 84, 2, 2, 3007, 3008, 7, 73, 2, 2, 3008, 3009, 7, 71, 2, 2, 3009, 238, 3, 2, 2, 2, 3010, 3011, 7, 84, 2, 2, 3011, 3012, 7, 67, 2, 2, 3012, 3013, 7, 80, 2, 2, 3013, 3014, 7, 73, 2, 2, 3014, 3015, 7, 71, 2, 2, 3015, 240, 3, 2, 2, 2, 3016, 3017, 7, 84, 2, 2, 3017, 3018, 7, 71, 2, 2, 3018, 3019, 7, 67, 2, 2, 3019, 3020, 7, 70, 2, 2, 3020, 242, 3, 2, 2, 2, 3021, 3022, 7, 84, 2, 2, 3022, 3023, 7, 71, 2, 2, 3023, 3024, 7, 67, 2, 2, 3024, 3025, 7, 70, 2, 2, 3025, 3026, 7, 85, 2, 2, 3026, 244, 3, 2, 2, 2, 3027, 3028, 7, 84, 2, 2, 3028, 3029, 7, 71, 2, 2, 3029, 3030, 7, 72, 2, 2, 3030, 3031, 7, 71, 2, 2, 3031, 3032, 7, 84, 2, 2, 3032, 3033, 7, 71, 2, 2, 3033, 3034, 7, 80, 2, 2, 3034, 3035, 7, 69, 2, 2, 3035, 3036, 7, 71, 2, 2, 3036, 3037, 7, 85, 2, 2, 3037, 246, 3, 2, 2, 2, 3038, 3039, 7, 84, 2, 2, 3039, 3040, 7, 71, 2, 2, 3040, 3041, 7, 73, 2, 2, 3041, 3042, 7, 71, 2, 2, 3042, 3043, 7, 90, 2, 2, 3043, 3044, 7, 82, 2, 2, 3044, 248, 3, 2, 2, 2, 3045, 3046, 7, 84, 2, 2, 3046, 3047, 7, 71, 2, 2, 3047, 3048, 7, 78, 2, 2, 3048, 3049, 7, 71, 2, 2, 3049, 3050, 7, 67, 2, 2, 3050, 3051, 7, 85, 2, 2, 3051, 3052, 7, 71, 2, 2, 3052, 250, 3, 2, 2, 2, 3053, 3054, 7, 84, 2, 2, 3054, 3055, 7, 71, 2, 2, 3055, 3056, 7, 80, 2, 2, 3056, 3057, 7, 67, 2, 2, 3057, 3058, 7, 79, 2, 2, 3058, 3059, 7, 71, 2, 2, 3059, 252, 3, 2, 2, 2, 3060, 3061, 7, 84, 2, 2, 3061, 3062, 7, 71, 2, 2, 3062, 3063, 7, 82, 2, 2, 3063, 3064, 7, 71, 2, 2, 3064, 3065, 7, 67, 2, 2, 3065, 3066, 7, 86, 2, 2, 3066, 254, 3, 2, 2, 2, 3067, 3068, 7, 84, 2, 2, 3068, 3069, 7, 71, 2, 2, 3069, 3070, 7, 82, 2, 2, 3070, 3071, 7, 78, 2, 2, 3071, 3072, 7, 67, 2, 2, 3072, 3073, 7, 69, 2, 2, 3073, 3074, 7, 71, 2, 2, 3074, 256, 3, 2, 2, 2, 3075, 3076, 7, 84, 2, 2, 3076, 3077, 7, 71, 2, 2, 3077, 3078, 7, 83, 2, 2, 3078, 3079, 7, 87, 2, 2, 3079, 3080, 7, 75, 2, 2, 3080, 3081, 7, 84, 2, 2, 3081, 3082, 7, 71, 2, 2, 3082, 258, 3, 2, 2, 2, 3083, 3084, 7, 84, 2, 2, 3084, 3085, 7, 71, 2, 2, 3085, 3086, 7, 85, 2, 2, 3086, 3087, 7, 75, 2, 2, 3087, 3088, 7, 73, 2, 2, 3088, 3089, 7, 80, 2, 2, 3089, 3090, 7, 67, 2, 2, 3090, 3091, 7, 78, 2, 2, 3091, 260, 3, 2, 2, 2, 3092, 3093, 7, 84, 2, 2, 3093, 3094, 7, 71, 2, 2, 3094, 3095, 7, 85, 2, 2, 3095, 3096, 7, 86, 2, 2, 3096, 3097, 7, 84, 2, 2, 3097, 3098, 7, 75, 2, 2, 3098, 3099, 7, 69, 2, 2, 3099, 3100, 7, 86, 2, 2, 3100, 262, 3, 2, 2, 2, 3101, 3102, 7, 84, 2, 2, 3102, 3103, 7, 71, 2, 2, 3103, 3104, 7, 86, 2, 2, 3104, 3105, 7, 87, 2, 2, 3105, 3106, 7, 84, 2, 2, 3106, 3107, 7, 80, 2, 2, 3107, 264, 3, 2, 2, 2, 3108, 3109, 7, 84, 2, 2, 3109, 3110, 7, 71, 2, 2, 3110, 3111, 7, 88, 2, 2, 3111, 3112, 7, 81, 2, 2, 3112, 3113, 7, 77, 2, 2, 3113, 3114, 7, 71, 2, 2, 3114, 266, 3, 2, 2, 2, 3115, 3116, 7, 84, 2, 2, 3116, 3117, 7, 75, 2, 2, 3117, 3118, 7, 73, 2, 2, 3118, 3119, 7, 74, 2, 2, 3119, 3120, 7, 86, 2, 2, 3120, 268, 3, 2, 2, 2, 3121, 3122, 7, 84, 2, 2, 3122, 3123, 7, 78, 2, 2, 3123, 3124, 7, 75, 2, 2, 3124, 3125, 7, 77, 2, 2, 3125, 3126, 7, 71, 2, 2, 3126, 270, 3, 2, 2, 2, 3127, 3128, 7, 85, 2, 2, 3128, 3129, 7, 69, 2, 2, 3129, 3130, 7, 74, 2, 2, 3130, 3131, 7, 71, 2, 2, 3131, 3132, 7, 79, 2, 2, 3132, 3133, 7, 67, 2, 2, 3133, 272, 3, 2, 2, 2, 3134, 3135, 7, 85, 2, 2, 3135, 3136, 7, 69, 2, 2, 3136, 3137, 7, 74, 2, 2, 3137, 3138, 7, 71, 2, 2, 3138, 3139, 7, 79, 2, 2, 3139, 3140, 7, 67, 2, 2, 3140, 3141, 7, 85, 2, 2, 3141, 274, 3, 2, 2, 2, 3142, 3143, 7, 85, 2, 2, 3143, 3144, 7, 71, 2, 2, 3144, 3145, 7, 78, 2, 2, 3145, 3146, 7, 71, 2, 2, 3146, 3147, 7, 69, 2, 2, 3147, 3148, 7, 86, 2, 2, 3148, 276, 3, 2, 2, 2, 3149, 3150, 7, 85, 2, 2, 3150, 3151, 7, 71, 2, 2, 3151, 3152, 7, 86, 2, 2, 3152, 278, 3, 2, 2, 2, 3153, 3154, 7, 85, 2, 2, 3154, 3155, 7, 71, 2, 2, 3155, 3156, 7, 82, 2, 2, 3156, 3157, 7, 67, 2, 2, 3157, 3158, 7, 84, 2, 2, 3158, 3159, 7, 67, 2, 2, 3159, 3160, 7, 86, 2, 2, 3160, 3161, 7, 81, 2, 2, 3161, 3162, 7, 84, 2, 2, 3162, 280, 3, 2, 2, 2, 3163, 3164, 7, 85, 2, 2, 3164, 3165, 7, 74, 2, 2, 3165, 3166, 7, 81, 2, 2, 3166, 3167, 7, 89, 2, 2, 3167, 282, 3, 2, 2, 2, 3168, 3169, 7, 85, 2, 2, 3169, 3170, 7, 75, 2, 2, 3170, 3171, 7, 73, 2, 2, 3171, 3172, 7, 80, 2, 2, 3172, 3173, 7, 67, 2, 2, 3173, 3174, 7, 78, 2, 2, 3174, 284, 3, 2, 2, 2, 3175, 3176, 7, 85, 2, 2, 3176, 3177, 7, 82, 2, 2, 3177, 3178, 7, 67, 2, 2, 3178, 3179, 7, 86, 2, 2, 3179, 3180, 7, 75, 2, 2, 3180, 3181, 7, 67, 2, 2, 3181, 3182, 7, 78, 2, 2, 3182, 286, 3, 2, 2, 2, 3183, 3184, 7, 85, 2, 2, 3184, 3185, 7, 83, 2, 2, 3185, 3186, 7, 78, 2, 2, 3186, 288, 3, 2, 2, 2, 3187, 3188, 7, 85, 2, 2, 3188, 3189, 7, 83, 2, 2, 3189, 3190, 7, 78, 2, 2, 3190, 3191, 7, 71, 2, 2, 3191, 3192, 7, 90, 2, 2, 3192, 3193, 7, 69, 2, 2, 3193, 3194, 7, 71, 2, 2, 3194, 3195, 7, 82, 2, 2, 3195, 3196, 7, 86, 2, 2, 3196, 3197, 7, 75, 2, 2, 3197, 3198, 7, 81, 2, 2, 3198, 3199, 7, 80, 2, 2, 3199, 290, 3, 2, 2, 2, 3200, 3201, 7, 85, 2, 2, 3201, 3202, 7, 83, 2, 2, 3202, 3203, 7, 78, 2, 2, 3203, 3204, 7, 85, 2, 2, 3204, 3205, 7, 86, 2, 2, 3205, 3206, 7, 67, 2, 2, 3206, 3207, 7, 86, 2, 2, 3207, 3208, 7, 71, 2, 2, 3208, 292, 3, 2, 2, 2, 3209, 3210, 7, 85, 2, 2, 3210, 3211, 7, 83, 2, 2, 3211, 3212, 7, 78, 2, 2, 3212, 3213, 7, 89, 2, 2, 3213, 3214, 7, 67, 2, 2, 3214, 3215, 7, 84, 2, 2, 3215, 3216, 7, 80, 2, 2, 3216, 3217, 7, 75, 2, 2, 3217, 3218, 7, 80, 2, 2, 3218, 3219, 7, 73, 2, 2, 3219, 294, 3, 2, 2, 2, 3220, 3221, 7, 85, 2, 2, 3221, 3222, 7, 83, 2, 2, 3222, 3223, 7, 78, 2, 2, 3223, 3224, 7, 97, 2, 2, 3224, 3225, 7, 68, 2, 2, 3225, 3226, 7, 75, 2, 2, 3226, 3227, 7, 73, 2, 2, 3227, 3228, 7, 97, 2, 2, 3228, 3229, 7, 84, 2, 2, 3229, 3230, 7, 71, 2, 2, 3230, 3231, 7, 85, 2, 2, 3231, 3232, 7, 87, 2, 2, 3232, 3233, 7, 78, 2, 2, 3233, 3234, 7, 86, 2, 2, 3234, 296, 3, 2, 2, 2, 3235, 3236, 7, 85, 2, 2, 3236, 3237, 7, 83, 2, 2, 3237, 3238, 7, 78, 2, 2, 3238, 3239, 7, 97, 2, 2, 3239, 3240, 7, 69, 2, 2, 3240, 3241, 7, 67, 2, 2, 3241, 3242, 7, 78, 2, 2, 3242, 3243, 7, 69, 2, 2, 3243, 3244, 7, 97, 2, 2, 3244, 3245, 7, 72, 2, 2, 3245, 3246, 7, 81, 2, 2, 3246, 3247, 7, 87, 2, 2, 3247, 3248, 7, 80, 2, 2, 3248, 3249, 7, 70, 2, 2, 3249, 3250, 7, 97, 2, 2, 3250, 3251, 7, 84, 2, 2, 3251, 3252, 7, 81, 2, 2, 3252, 3253, 7, 89, 2, 2, 3253, 3254, 7, 85, 2, 2, 3254, 298, 3, 2, 2, 2, 3255, 3256, 7, 85, 2, 2, 3256, 3257, 7, 83, 2, 2, 3257, 3258, 7, 78, 2, 2, 3258, 3259, 7, 97, 2, 2, 3259, 3260, 7, 85, 2, 2, 3260, 3261, 7, 79, 2, 2, 3261, 3262, 7, 67, 2, 2, 3262, 3263, 7, 78, 2, 2, 3263, 3264, 7, 78, 2, 2, 3264, 3265, 7, 97, 2, 2, 3265, 3266, 7, 84, 2, 2, 3266, 3267, 7, 71, 2, 2, 3267, 3268, 7, 85, 2, 2, 3268, 3269, 7, 87, 2, 2, 3269, 3270, 7, 78, 2, 2, 3270, 3271, 7, 86, 2, 2, 3271, 300, 3, 2, 2, 2, 3272, 3273, 7, 85, 2, 2, 3273, 3274, 7, 85, 2, 2, 3274, 3275, 7, 78, 2, 2, 3275, 302, 3, 2, 2, 2, 3276, 3277, 7, 85, 2, 2, 3277, 3278, 7, 86, 2, 2, 3278, 3279, 7, 67, 2, 2, 3279, 3280, 7, 69, 2, 2, 3280, 3281, 7, 77, 2, 2, 3281, 3282, 7, 71, 2, 2, 3282, 3283, 7, 70, 2, 2, 3283, 304, 3, 2, 2, 2, 3284, 3285, 7, 85, 2, 2, 3285, 3286, 7, 86, 2, 2, 3286, 3287, 7, 67, 2, 2, 3287, 3288, 7, 84, 2, 2, 3288, 3289, 7, 86, 2, 2, 3289, 3290, 7, 75, 2, 2, 3290, 3291, 7, 80, 2, 2, 3291, 3292, 7, 73, 2, 2, 3292, 306, 3, 2, 2, 2, 3293, 3294, 7, 85, 2, 2, 3294, 3295, 7, 86, 2, 2, 3295, 3296, 7, 84, 2, 2, 3296, 3297, 7, 67, 2, 2, 3297, 3298, 7, 75, 2, 2, 3298, 3299, 7, 73, 2, 2, 3299, 3300, 7, 74, 2, 2, 3300, 3301, 7, 86, 2, 2, 3301, 3302, 7, 97, 2, 2, 3302, 3303, 7, 76, 2, 2, 3303, 3304, 7, 81, 2, 2, 3304, 3305, 7, 75, 2, 2, 3305, 3306, 7, 80, 2, 2, 3306, 308, 3, 2, 2, 2, 3307, 3308, 7, 86, 2, 2, 3308, 3309, 7, 67, 2, 2, 3309, 3310, 7, 68, 2, 2, 3310, 3311, 7, 78, 2, 2, 3311, 3312, 7, 71, 2, 2, 3312, 310, 3, 2, 2, 2, 3313, 3314, 7, 86, 2, 2, 3314, 3315, 7, 71, 2, 2, 3315, 3316, 7, 84, 2, 2, 3316, 3317, 7, 79, 2, 2, 3317, 3318, 7, 75, 2, 2, 3318, 3319, 7, 80, 2, 2, 3319, 3320, 7, 67, 2, 2, 3320, 3321, 7, 86, 2, 2, 3321, 3322, 7, 71, 2, 2, 3322, 3323, 7, 70, 2, 2, 3323, 312, 3, 2, 2, 2, 3324, 3325, 7, 86, 2, 2, 3325, 3326, 7, 74, 2, 2, 3326, 3327, 7, 71, 2, 2, 3327, 3328, 7, 80, 2, 2, 3328, 314, 3, 2, 2, 2, 3329, 3330, 7, 86, 2, 2, 3330, 3331, 7, 81, 2, 2, 3331, 316, 3, 2, 2, 2, 3332, 3333, 7, 86, 2, 2, 3333, 3334, 7, 84, 2, 2, 3334, 3335, 7, 67, 2, 2, 3335, 3336, 7, 75, 2, 2, 3336, 3337, 7, 78, 2, 2, 3337, 3338, 7, 75, 2, 2, 3338, 3339, 7, 80, 2, 2, 3339, 3340, 7, 73, 2, 2, 3340, 318, 3, 2, 2, 2, 3341, 3342, 7, 86, 2, 2, 3342, 3343, 7, 84, 2, 2, 3343, 3344, 7, 75, 2, 2, 3344, 3345, 7, 73, 2, 2, 3345, 3346, 7, 73, 2, 2, 3346, 3347, 7, 71, 2, 2, 3347, 3348, 7, 84, 2, 2, 3348, 320, 3, 2, 2, 2, 3349, 3350, 7, 86, 2, 2, 3350, 3351, 7, 84, 2, 2, 3351, 3352, 7, 87, 2, 2, 3352, 3353, 7, 71, 2, 2, 3353, 322, 3, 2, 2, 2, 3354, 3355, 7, 87, 2, 2, 3355, 3356, 7, 80, 2, 2, 3356, 3357, 7, 70, 2, 2, 3357, 3358, 7, 81, 2, 2, 3358, 324, 3, 2, 2, 2, 3359, 3360, 7, 87, 2, 2, 3360, 3361, 7, 80, 2, 2, 3361, 3362, 7, 75, 2, 2, 3362, 3363, 7, 81, 2, 2, 3363, 3364, 7, 80, 2, 2, 3364, 326, 3, 2, 2, 2, 3365, 3366, 7, 87, 2, 2, 3366, 3367, 7, 80, 2, 2, 3367, 3368, 7, 75, 2, 2, 3368, 3369, 7, 83, 2, 2, 3369, 3370, 7, 87, 2, 2, 3370, 3371, 7, 71, 2, 2, 3371, 328, 3, 2, 2, 2, 3372, 3373, 7, 87, 2, 2, 3373, 3374, 7, 80, 2, 2, 3374, 3375, 7, 78, 2, 2, 3375, 3376, 7, 81, 2, 2, 3376, 3377, 7, 69, 2, 2, 3377, 3378, 7, 77, 2, 2, 3378, 330, 3, 2, 2, 2, 3379, 3380, 7, 87, 2, 2, 3380, 3381, 7, 80, 2, 2, 3381, 3382, 7, 85, 2, 2, 3382, 3383, 7, 75, 2, 2, 3383, 3384, 7, 73, 2, 2, 3384, 3385, 7, 80, 2, 2, 3385, 3386, 7, 71, 2, 2, 3386, 3387, 7, 70, 2, 2, 3387, 332, 3, 2, 2, 2, 3388, 3389, 7, 87, 2, 2, 3389, 3390, 7, 82, 2, 2, 3390, 3391, 7, 70, 2, 2, 3391, 3392, 7, 67, 2, 2, 3392, 3393, 7, 86, 2, 2, 3393, 3394, 7, 71, 2, 2, 3394, 334, 3, 2, 2, 2, 3395, 3396, 7, 87, 2, 2, 3396, 3397, 7, 85, 2, 2, 3397, 3398, 7, 67, 2, 2, 3398, 3399, 7, 73, 2, 2, 3399, 3400, 7, 71, 2, 2, 3400, 336, 3, 2, 2, 2, 3401, 3402, 7, 87, 2, 2, 3402, 3403, 7, 85, 2, 2, 3403, 3404, 7, 71, 2, 2, 3404, 338, 3, 2, 2, 2, 3405, 3406, 7, 87, 2, 2, 3406, 3407, 7, 85, 2, 2, 3407, 3408, 7, 75, 2, 2, 3408, 3409, 7, 80, 2, 2, 3409, 3410, 7, 73, 2, 2, 3410, 340, 3, 2, 2, 2, 3411, 3412, 7, 88, 2, 2, 3412, 3413, 7, 67, 2, 2, 3413, 3414, 7, 78, 2, 2, 3414, 3415, 7, 87, 2, 2, 3415, 3416, 7, 71, 2, 2, 3416, 3417, 7, 85, 2, 2, 3417, 342, 3, 2, 2, 2, 3418, 3419, 7, 89, 2, 2, 3419, 3420, 7, 74, 2, 2, 3420, 3421, 7, 71, 2, 2, 3421, 3422, 7, 80, 2, 2, 3422, 344, 3, 2, 2, 2, 3423, 3424, 7, 89, 2, 2, 3424, 3425, 7, 74, 2, 2, 3425, 3426, 7, 71, 2, 2, 3426, 3427, 7, 84, 2, 2, 3427, 3428, 7, 71, 2, 2, 3428, 346, 3, 2, 2, 2, 3429, 3430, 7, 89, 2, 2, 3430, 3431, 7, 74, 2, 2, 3431, 3432, 7, 75, 2, 2, 3432, 3433, 7, 78, 2, 2, 3433, 3434, 7, 71, 2, 2, 3434, 348, 3, 2, 2, 2, 3435, 3436, 7, 89, 2, 2, 3436, 3437, 7, 75, 2, 2, 3437, 3438, 7, 86, 2, 2, 3438, 3439, 7, 74, 2, 2, 3439, 350, 3, 2, 2, 2, 3440, 3441, 7, 89, 2, 2, 3441, 3442, 7, 84, 2, 2, 3442, 3443, 7, 75, 2, 2, 3443, 3444, 7, 86, 2, 2, 3444, 3445, 7, 71, 2, 2, 3445, 352, 3, 2, 2, 2, 3446, 3447, 7, 90, 2, 2, 3447, 3448, 7, 81, 2, 2, 3448, 3449, 7, 84, 2, 2, 3449, 354, 3, 2, 2, 2, 3450, 3451, 7, 92, 2, 2, 3451, 3452, 7, 71, 2, 2, 3452, 3453, 7, 84, 2, 2, 3453, 3454, 7, 81, 2, 2, 3454, 3455, 7, 72, 2, 2, 3455, 3456, 7, 75, 2, 2, 3456, 3457, 7, 78, 2, 2, 3457, 3458, 7, 78, 2, 2, 3458, 356, 3, 2, 2, 2, 3459, 3460, 7, 86, 2, 2, 3460, 3461, 7, 75, 2, 2, 3461, 3462, 7, 80, 2, 2, 3462, 3463, 7, 91, 2, 2, 3463, 3464, 7, 75, 2, 2, 3464, 3465, 7, 80, 2, 2, 3465, 3466, 7, 86, 2, 2, 3466, 358, 3, 2, 2, 2, 3467, 3468, 7, 85, 2, 2, 3468, 3469, 7, 79, 2, 2, 3469, 3470, 7, 67, 2, 2, 3470, 3471, 7, 78, 2, 2, 3471, 3472, 7, 78, 2, 2, 3472, 3473, 7, 75, 2, 2, 3473, 3474, 7, 80, 2, 2, 3474, 3475, 7, 86, 2, 2, 3475, 360, 3, 2, 2, 2, 3476, 3477, 7, 79, 2, 2, 3477, 3478, 7, 71, 2, 2, 3478, 3479, 7, 70, 2, 2, 3479, 3480, 7, 75, 2, 2, 3480, 3481, 7, 87, 2, 2, 3481, 3482, 7, 79, 2, 2, 3482, 3483, 7, 75, 2, 2, 3483, 3484, 7, 80, 2, 2, 3484, 3485, 7, 86, 2, 2, 3485, 362, 3, 2, 2, 2, 3486, 3487, 7, 79, 2, 2, 3487, 3488, 7, 75, 2, 2, 3488, 3489, 7, 70, 2, 2, 3489, 3490, 7, 70, 2, 2, 3490, 3491, 7, 78, 2, 2, 3491, 3492, 7, 71, 2, 2, 3492, 3493, 7, 75, 2, 2, 3493, 3494, 7, 80, 2, 2, 3494, 3495, 7, 86, 2, 2, 3495, 364, 3, 2, 2, 2, 3496, 3497, 7, 75, 2, 2, 3497, 3498, 7, 80, 2, 2, 3498, 3499, 7, 86, 2, 2, 3499, 366, 3, 2, 2, 2, 3500, 3501, 7, 75, 2, 2, 3501, 3502, 7, 80, 2, 2, 3502, 3503, 7, 86, 2, 2, 3503, 3504, 7, 51, 2, 2, 3504, 368, 3, 2, 2, 2, 3505, 3506, 7, 75, 2, 2, 3506, 3507, 7, 80, 2, 2, 3507, 3508, 7, 86, 2, 2, 3508, 3509, 7, 52, 2, 2, 3509, 370, 3, 2, 2, 2, 3510, 3511, 7, 75, 2, 2, 3511, 3512, 7, 80, 2, 2, 3512, 3513, 7, 86, 2, 2, 3513, 3514, 7, 53, 2, 2, 3514, 372, 3, 2, 2, 2, 3515, 3516, 7, 75, 2, 2, 3516, 3517, 7, 80, 2, 2, 3517, 3518, 7, 86, 2, 2, 3518, 3519, 7, 54, 2, 2, 3519, 374, 3, 2, 2, 2, 3520, 3521, 7, 75, 2, 2, 3521, 3522, 7, 80, 2, 2, 3522, 3523, 7, 86, 2, 2, 3523, 3524, 7, 58, 2, 2, 3524, 376, 3, 2, 2, 2, 3525, 3526, 7, 75, 2, 2, 3526, 3527, 7, 80, 2, 2, 3527, 3528, 7, 86, 2, 2, 3528, 3529, 7, 71, 2, 2, 3529, 3530, 7, 73, 2, 2, 3530, 3531, 7, 71, 2, 2, 3531, 3532, 7, 84, 2, 2, 3532, 378, 3, 2, 2, 2, 3533, 3534, 7, 68, 2, 2, 3534, 3535, 7, 75, 2, 2, 3535, 3536, 7, 73, 2, 2, 3536, 3537, 7, 75, 2, 2, 3537, 3538, 7, 80, 2, 2, 3538, 3539, 7, 86, 2, 2, 3539, 380, 3, 2, 2, 2, 3540, 3541, 7, 84, 2, 2, 3541, 3542, 7, 71, 2, 2, 3542, 3543, 7, 67, 2, 2, 3543, 3544, 7, 78, 2, 2, 3544, 382, 3, 2, 2, 2, 3545, 3546, 7, 70, 2, 2, 3546, 3547, 7, 81, 2, 2, 3547, 3548, 7, 87, 2, 2, 3548, 3549, 7, 68, 2, 2, 3549, 3550, 7, 78, 2, 2, 3550, 3551, 7, 71, 2, 2, 3551, 384, 3, 2, 2, 2, 3552, 3553, 7, 82, 2, 2, 3553, 3554, 7, 84, 2, 2, 3554, 3555, 7, 71, 2, 2, 3555, 3556, 7, 69, 2, 2, 3556, 3557, 7, 75, 2, 2, 3557, 3558, 7, 85, 2, 2, 3558, 3559, 7, 75, 2, 2, 3559, 3560, 7, 81, 2, 2, 3560, 3561, 7, 80, 2, 2, 3561, 386, 3, 2, 2, 2, 3562, 3563, 7, 72, 2, 2, 3563, 3564, 7, 78, 2, 2, 3564, 3565, 7, 81, 2, 2, 3565, 3566, 7, 67, 2, 2, 3566, 3567, 7, 86, 2, 2, 3567, 388, 3, 2, 2, 2, 3568, 3569, 7, 72, 2, 2, 3569, 3570, 7, 78, 2, 2, 3570, 3571, 7, 81, 2, 2, 3571, 3572, 7, 67, 2, 2, 3572, 3573, 7, 86, 2, 2, 3573, 3574, 7, 54, 2, 2, 3574, 390, 3, 2, 2, 2, 3575, 3576, 7, 72, 2, 2, 3576, 3577, 7, 78, 2, 2, 3577, 3578, 7, 81, 2, 2, 3578, 3579, 7, 67, 2, 2, 3579, 3580, 7, 86, 2, 2, 3580, 3581, 7, 58, 2, 2, 3581, 392, 3, 2, 2, 2, 3582, 3583, 7, 70, 2, 2, 3583, 3584, 7, 71, 2, 2, 3584, 3585, 7, 69, 2, 2, 3585, 3586, 7, 75, 2, 2, 3586, 3587, 7, 79, 2, 2, 3587, 3588, 7, 67, 2, 2, 3588, 3589, 7, 78, 2, 2, 3589, 394, 3, 2, 2, 2, 3590, 3591, 7, 70, 2, 2, 3591, 3592, 7, 71, 2, 2, 3592, 3593, 7, 69, 2, 2, 3593, 396, 3, 2, 2, 2, 3594, 3595, 7, 80, 2, 2, 3595, 3596, 7, 87, 2, 2, 3596, 3597, 7, 79, 2, 2, 3597, 3598, 7, 71, 2, 2, 3598, 3599, 7, 84, 2, 2, 3599, 3600, 7, 75, 2, 2, 3600, 3601, 7, 69, 2, 2, 3601, 398, 3, 2, 2, 2, 3602, 3603, 7, 70, 2, 2, 3603, 3604, 7, 67, 2, 2, 3604, 3605, 7, 86, 2, 2, 3605, 3606, 7, 71, 2, 2, 3606, 400, 3, 2, 2, 2, 3607, 3608, 7, 86, 2, 2, 3608, 3609, 7, 75, 2, 2, 3609, 3610, 7, 79, 2, 2, 3610, 3611, 7, 71, 2, 2, 3611, 402, 3, 2, 2, 2, 3612, 3613, 7, 86, 2, 2, 3613, 3614, 7, 75, 2, 2, 3614, 3615, 7, 79, 2, 2, 3615, 3616, 7, 71, 2, 2, 3616, 3617, 7, 85, 2, 2, 3617, 3618, 7, 86, 2, 2, 3618, 3619, 7, 67, 2, 2, 3619, 3620, 7, 79, 2, 2, 3620, 3621, 7, 82, 2, 2, 3621, 404, 3, 2, 2, 2, 3622, 3623, 7, 70, 2, 2, 3623, 3624, 7, 67, 2, 2, 3624, 3625, 7, 86, 2, 2, 3625, 3626, 7, 71, 2, 2, 3626, 3627, 7, 86, 2, 2, 3627, 3628, 7, 75, 2, 2, 3628, 3629, 7, 79, 2, 2, 3629, 3630, 7, 71, 2, 2, 3630, 406, 3, 2, 2, 2, 3631, 3632, 7, 91, 2, 2, 3632, 3633, 7, 71, 2, 2, 3633, 3634, 7, 67, 2, 2, 3634, 3635, 7, 84, 2, 2, 3635, 408, 3, 2, 2, 2, 3636, 3637, 7, 69, 2, 2, 3637, 3638, 7, 74, 2, 2, 3638, 3639, 7, 67, 2, 2, 3639, 3640, 7, 84, 2, 2, 3640, 410, 3, 2, 2, 2, 3641, 3642, 7, 88, 2, 2, 3642, 3643, 7, 67, 2, 2, 3643, 3644, 7, 84, 2, 2, 3644, 3645, 7, 69, 2, 2, 3645, 3646, 7, 74, 2, 2, 3646, 3647, 7, 67, 2, 2, 3647, 3648, 7, 84, 2, 2, 3648, 412, 3, 2, 2, 2, 3649, 3650, 7, 80, 2, 2, 3650, 3651, 7, 88, 2, 2, 3651, 3652, 7, 67, 2, 2, 3652, 3653, 7, 84, 2, 2, 3653, 3654, 7, 69, 2, 2, 3654, 3655, 7, 74, 2, 2, 3655, 3656, 7, 67, 2, 2, 3656, 3657, 7, 84, 2, 2, 3657, 414, 3, 2, 2, 2, 3658, 3659, 7, 80, 2, 2, 3659, 3660, 7, 67, 2, 2, 3660, 3661, 7, 86, 2, 2, 3661, 3662, 7, 75, 2, 2, 3662, 3663, 7, 81, 2, 2, 3663, 3664, 7, 80, 2, 2, 3664, 3665, 7, 67, 2, 2, 3665, 3666, 7, 78, 2, 2, 3666, 416, 3, 2, 2, 2, 3667, 3668, 7, 68, 2, 2, 3668, 3669, 7, 75, 2, 2, 3669, 3670, 7, 80, 2, 2, 3670, 3671, 7, 67, 2, 2, 3671, 3672, 7, 84, 2, 2, 3672, 3673, 7, 91, 2, 2, 3673, 418, 3, 2, 2, 2, 3674, 3675, 7, 88, 2, 2, 3675, 3676, 7, 67, 2, 2, 3676, 3677, 7, 84, 2, 2, 3677, 3678, 7, 68, 2, 2, 3678, 3679, 7, 75, 2, 2, 3679, 3680, 7, 80, 2, 2, 3680, 3681, 7, 67, 2, 2, 3681, 3682, 7, 84, 2, 2, 3682, 3683, 7, 91, 2, 2, 3683, 420, 3, 2, 2, 2, 3684, 3685, 7, 86, 2, 2, 3685, 3686, 7, 75, 2, 2, 3686, 3687, 7, 80, 2, 2, 3687, 3688, 7, 91, 2, 2, 3688, 3689, 7, 68, 2, 2, 3689, 3690, 7, 78, 2, 2, 3690, 3691, 7, 81, 2, 2, 3691, 3692, 7, 68, 2, 2, 3692, 422, 3, 2, 2, 2, 3693, 3694, 7, 68, 2, 2, 3694, 3695, 7, 78, 2, 2, 3695, 3696, 7, 81, 2, 2, 3696, 3697, 7, 68, 2, 2, 3697, 424, 3, 2, 2, 2, 3698, 3699, 7, 79, 2, 2, 3699, 3700, 7, 71, 2, 2, 3700, 3701, 7, 70, 2, 2, 3701, 3702, 7, 75, 2, 2, 3702, 3703, 7, 87, 2, 2, 3703, 3704, 7, 79, 2, 2, 3704, 3705, 7, 68, 2, 2, 3705, 3706, 7, 78, 2, 2, 3706, 3707, 7, 81, 2, 2, 3707, 3708, 7, 68, 2, 2, 3708, 426, 3, 2, 2, 2, 3709, 3710, 7, 78, 2, 2, 3710, 3711, 7, 81, 2, 2, 3711, 3712, 7, 80, 2, 2, 3712, 3713, 7, 73, 2, 2, 3713, 428, 3, 2, 2, 2, 3714, 3715, 7, 78, 2, 2, 3715, 3716, 7, 81, 2, 2, 3716, 3717, 7, 80, 2, 2, 3717, 3718, 7, 73, 2, 2, 3718, 3719, 7, 68, 2, 2, 3719, 3720, 7, 78, 2, 2, 3720, 3721, 7, 81, 2, 2, 3721, 3722, 7, 68, 2, 2, 3722, 430, 3, 2, 2, 2, 3723, 3724, 7, 86, 2, 2, 3724, 3725, 7, 75, 2, 2, 3725, 3726, 7, 80, 2, 2, 3726, 3727, 7, 91, 2, 2, 3727, 3728, 7, 86, 2, 2, 3728, 3729, 7, 71, 2, 2, 3729, 3730, 7, 90, 2, 2, 3730, 3731, 7, 86, 2, 2, 3731, 432, 3, 2, 2, 2, 3732, 3733, 7, 86, 2, 2, 3733, 3734, 7, 71, 2, 2, 3734, 3735, 7, 90, 2, 2, 3735, 3736, 7, 86, 2, 2, 3736, 434, 3, 2, 2, 2, 3737, 3738, 7, 79, 2, 2, 3738, 3739, 7, 71, 2, 2, 3739, 3740, 7, 70, 2, 2, 3740, 3741, 7, 75, 2, 2, 3741, 3742, 7, 87, 2, 2, 3742, 3743, 7, 79, 2, 2, 3743, 3744, 7, 86, 2, 2, 3744, 3745, 7, 71, 2, 2, 3745, 3746, 7, 90, 2, 2, 3746, 3747, 7, 86, 2, 2, 3747, 436, 3, 2, 2, 2, 3748, 3749, 7, 78, 2, 2, 3749, 3750, 7, 81, 2, 2, 3750, 3751, 7, 80, 2, 2, 3751, 3752, 7, 73, 2, 2, 3752, 3753, 7, 86, 2, 2, 3753, 3754, 7, 71, 2, 2, 3754, 3755, 7, 90, 2, 2, 3755, 3756, 7, 86, 2, 2, 3756, 438, 3, 2, 2, 2, 3757, 3758, 7, 71, 2, 2, 3758, 3759, 7, 80, 2, 2, 3759, 3760, 7, 87, 2, 2, 3760, 3761, 7, 79, 2, 2, 3761, 440, 3, 2, 2, 2, 3762, 3763, 7, 88, 2, 2, 3763, 3764, 7, 67, 2, 2, 3764, 3765, 7, 84, 2, 2, 3765, 3766, 7, 91, 2, 2, 3766, 3767, 7, 75, 2, 2, 3767, 3768, 7, 80, 2, 2, 3768, 3769, 7, 73, 2, 2, 3769, 442, 3, 2, 2, 2, 3770, 3771, 7, 85, 2, 2, 3771, 3772, 7, 71, 2, 2, 3772, 3773, 7, 84, 2, 2, 3773, 3774, 7, 75, 2, 2, 3774, 3775, 7, 67, 2, 2, 3775, 3776, 7, 78, 2, 2, 3776, 444, 3, 2, 2, 2, 3777, 3778, 7, 91, 2, 2, 3778, 3779, 7, 71, 2, 2, 3779, 3780, 7, 67, 2, 2, 3780, 3781, 7, 84, 2, 2, 3781, 3782, 7, 97, 2, 2, 3782, 3783, 7, 79, 2, 2, 3783, 3784, 7, 81, 2, 2, 3784, 3785, 7, 80, 2, 2, 3785, 3786, 7, 86, 2, 2, 3786, 3787, 7, 74, 2, 2, 3787, 446, 3, 2, 2, 2, 3788, 3789, 7, 70, 2, 2, 3789, 3790, 7, 67, 2, 2, 3790, 3791, 7, 91, 2, 2, 3791, 3792, 7, 97, 2, 2, 3792, 3793, 7, 74, 2, 2, 3793, 3794, 7, 81, 2, 2, 3794, 3795, 7, 87, 2, 2, 3795, 3796, 7, 84, 2, 2, 3796, 448, 3, 2, 2, 2, 3797, 3798, 7, 70, 2, 2, 3798, 3799, 7, 67, 2, 2, 3799, 3800, 7, 91, 2, 2, 3800, 3801, 7, 97, 2, 2, 3801, 3802, 7, 79, 2, 2, 3802, 3803, 7, 75, 2, 2, 3803, 3804, 7, 80, 2, 2, 3804, 3805, 7, 87, 2, 2, 3805, 3806, 7, 86, 2, 2, 3806, 3807, 7, 71, 2, 2, 3807, 450, 3, 2, 2, 2, 3808, 3809, 7, 70, 2, 2, 3809, 3810, 7, 67, 2, 2, 3810, 3811, 7, 91, 2, 2, 3811, 3812, 7, 97, 2, 2, 3812, 3813, 7, 85, 2, 2, 3813, 3814, 7, 71, 2, 2, 3814, 3815, 7, 69, 2, 2, 3815, 3816, 7, 81, 2, 2, 3816, 3817, 7, 80, 2, 2, 3817, 3818, 7, 70, 2, 2, 3818, 452, 3, 2, 2, 2, 3819, 3820, 7, 74, 2, 2, 3820, 3821, 7, 81, 2, 2, 3821, 3822, 7, 87, 2, 2, 3822, 3823, 7, 84, 2, 2, 3823, 3824, 7, 97, 2, 2, 3824, 3825, 7, 79, 2, 2, 3825, 3826, 7, 75, 2, 2, 3826, 3827, 7, 80, 2, 2, 3827, 3828, 7, 87, 2, 2, 3828, 3829, 7, 86, 2, 2, 3829, 3830, 7, 71, 2, 2, 3830, 454, 3, 2, 2, 2, 3831, 3832, 7, 74, 2, 2, 3832, 3833, 7, 81, 2, 2, 3833, 3834, 7, 87, 2, 2, 3834, 3835, 7, 84, 2, 2, 3835, 3836, 7, 97, 2, 2, 3836, 3837, 7, 85, 2, 2, 3837, 3838, 7, 71, 2, 2, 3838, 3839, 7, 69, 2, 2, 3839, 3840, 7, 81, 2, 2, 3840, 3841, 7, 80, 2, 2, 3841, 3842, 7, 70, 2, 2, 3842, 456, 3, 2, 2, 2, 3843, 3844, 7, 79, 2, 2, 3844, 3845, 7, 75, 2, 2, 3845, 3846, 7, 80, 2, 2, 3846, 3847, 7, 87, 2, 2, 3847, 3848, 7, 86, 2, 2, 3848, 3849, 7, 71, 2, 2, 3849, 3850, 7, 97, 2, 2, 3850, 3851, 7, 85, 2, 2, 3851, 3852, 7, 71, 2, 2, 3852, 3853, 7, 69, 2, 2, 3853, 3854, 7, 81, 2, 2, 3854, 3855, 7, 80, 2, 2, 3855, 3856, 7, 70, 2, 2, 3856, 458, 3, 2, 2, 2, 3857, 3858, 7, 85, 2, 2, 3858, 3859, 7, 71, 2, 2, 3859, 3860, 7, 69, 2, 2, 3860, 3861, 7, 81, 2, 2, 3861, 3862, 7, 80, 2, 2, 3862, 3863, 7, 70, 2, 2, 3863, 3864, 7, 97, 2, 2, 3864, 3865, 7, 79, 2, 2, 3865, 3866, 7, 75, 2, 2, 3866, 3867, 7, 69, 2, 2, 3867, 3868, 7, 84, 2, 2, 3868, 3869, 7, 81, 2, 2, 3869, 3870, 7, 85, 2, 2, 3870, 3871, 7, 71, 2, 2, 3871, 3872, 7, 69, 2, 2, 3872, 3873, 7, 81, 2, 2, 3873, 3874, 7, 80, 2, 2, 3874, 3875, 7, 70, 2, 2, 3875, 460, 3, 2, 2, 2, 3876, 3877, 7, 79, 2, 2, 3877, 3878, 7, 75, 2, 2, 3878, 3879, 7, 80, 2, 2, 3879, 3880, 7, 87, 2, 2, 3880, 3881, 7, 86, 2, 2, 3881, 3882, 7, 71, 2, 2, 3882, 3883, 7, 97, 2, 2, 3883, 3884, 7, 79, 2, 2, 3884, 3885, 7, 75, 2, 2, 3885, 3886, 7, 69, 2, 2, 3886, 3887, 7, 84, 2, 2, 3887, 3888, 7, 81, 2, 2, 3888, 3889, 7, 85, 2, 2, 3889, 3890, 7, 71, 2, 2, 3890, 3891, 7, 69, 2, 2, 3891, 3892, 7, 81, 2, 2, 3892, 3893, 7, 80, 2, 2, 3893, 3894, 7, 70, 2, 2, 3894, 462, 3, 2, 2, 2, 3895, 3896, 7, 74, 2, 2, 3896, 3897, 7, 81, 2, 2, 3897, 3898, 7, 87, 2, 2, 3898, 3899, 7, 84, 2, 2, 3899, 3900, 7, 97, 2, 2, 3900, 3901, 7, 79, 2, 2, 3901, 3902, 7, 75, 2, 2, 3902, 3903, 7, 69, 2, 2, 3903, 3904, 7, 84, 2, 2, 3904, 3905, 7, 81, 2, 2, 3905, 3906, 7, 85, 2, 2, 3906, 3907, 7, 71, 2, 2, 3907, 3908, 7, 69, 2, 2, 3908, 3909, 7, 81, 2, 2, 3909, 3910, 7, 80, 2, 2, 3910, 3911, 7, 70, 2, 2, 3911, 464, 3, 2, 2, 2, 3912, 3913, 7, 70, 2, 2, 3913, 3914, 7, 67, 2, 2, 3914, 3915, 7, 91, 2, 2, 3915, 3916, 7, 97, 2, 2, 3916, 3917, 7, 79, 2, 2, 3917, 3918, 7, 75, 2, 2, 3918, 3919, 7, 69, 2, 2, 3919, 3920, 7, 84, 2, 2, 3920, 3921, 7, 81, 2, 2, 3921, 3922, 7, 85, 2, 2, 3922, 3923, 7, 71, 2, 2, 3923, 3924, 7, 69, 2, 2, 3924, 3925, 7, 81, 2, 2, 3925, 3926, 7, 80, 2, 2, 3926, 3927, 7, 70, 2, 2, 3927, 466, 3, 2, 2, 2, 3928, 3929, 7, 76, 2, 2, 3929, 3930, 7, 85, 2, 2, 3930, 3931, 7, 81, 2, 2, 3931, 3932, 7, 80, 2, 2, 3932, 3933, 7, 97, 2, 2, 3933, 3934, 7, 88, 2, 2, 3934, 3935, 7, 67, 2, 2, 3935, 3936, 7, 78, 2, 2, 3936, 3937, 7, 75, 2, 2, 3937, 3938, 7, 70, 2, 2, 3938, 468, 3, 2, 2, 2, 3939, 3940, 7, 76, 2, 2, 3940, 3941, 7, 85, 2, 2, 3941, 3942, 7, 81, 2, 2, 3942, 3943, 7, 80, 2, 2, 3943, 3944, 7, 97, 2, 2, 3944, 3945, 7, 85, 2, 2, 3945, 3946, 7, 69, 2, 2, 3946, 3947, 7, 74, 2, 2, 3947, 3948, 7, 71, 2, 2, 3948, 3949, 7, 79, 2, 2, 3949, 3950, 7, 67, 2, 2, 3950, 3951, 7, 97, 2, 2, 3951, 3952, 7, 88, 2, 2, 3952, 3953, 7, 67, 2, 2, 3953, 3954, 7, 78, 2, 2, 3954, 3955, 7, 75, 2, 2, 3955, 3956, 7, 70, 2, 2, 3956, 470, 3, 2, 2, 2, 3957, 3958, 7, 67, 2, 2, 3958, 3959, 7, 88, 2, 2, 3959, 3960, 7, 73, 2, 2, 3960, 472, 3, 2, 2, 2, 3961, 3962, 7, 68, 2, 2, 3962, 3963, 7, 75, 2, 2, 3963, 3964, 7, 86, 2, 2, 3964, 3965, 7, 97, 2, 2, 3965, 3966, 7, 67, 2, 2, 3966, 3967, 7, 80, 2, 2, 3967, 3968, 7, 70, 2, 2, 3968, 474, 3, 2, 2, 2, 3969, 3970, 7, 68, 2, 2, 3970, 3971, 7, 75, 2, 2, 3971, 3972, 7, 86, 2, 2, 3972, 3973, 7, 97, 2, 2, 3973, 3974, 7, 81, 2, 2, 3974, 3975, 7, 84, 2, 2, 3975, 476, 3, 2, 2, 2, 3976, 3977, 7, 68, 2, 2, 3977, 3978, 7, 75, 2, 2, 3978, 3979, 7, 86, 2, 2, 3979, 3980, 7, 97, 2, 2, 3980, 3981, 7, 90, 2, 2, 3981, 3982, 7, 81, 2, 2, 3982, 3983, 7, 84, 2, 2, 3983, 478, 3, 2, 2, 2, 3984, 3985, 7, 69, 2, 2, 3985, 3986, 7, 81, 2, 2, 3986, 3987, 7, 87, 2, 2, 3987, 3988, 7, 80, 2, 2, 3988, 3989, 7, 86, 2, 2, 3989, 480, 3, 2, 2, 2, 3990, 3991, 7, 73, 2, 2, 3991, 3992, 7, 84, 2, 2, 3992, 3993, 7, 81, 2, 2, 3993, 3994, 7, 87, 2, 2, 3994, 3995, 7, 82, 2, 2, 3995, 3996, 7, 97, 2, 2, 3996, 3997, 7, 69, 2, 2, 3997, 3998, 7, 81, 2, 2, 3998, 3999, 7, 80, 2, 2, 3999, 4000, 7, 69, 2, 2, 4000, 4001, 7, 67, 2, 2, 4001, 4002, 7, 86, 2, 2, 4002, 482, 3, 2, 2, 2, 4003, 4004, 7, 79, 2, 2, 4004, 4005, 7, 67, 2, 2, 4005, 4006, 7, 90, 2, 2, 4006, 484, 3, 2, 2, 2, 4007, 4008, 7, 79, 2, 2, 4008, 4009, 7, 75, 2, 2, 4009, 4010, 7, 80, 2, 2, 4010, 486, 3, 2, 2, 2, 4011, 4012, 7, 85, 2, 2, 4012, 4013, 7, 86, 2, 2, 4013, 4014, 7, 70, 2, 2, 4014, 488, 3, 2, 2, 2, 4015, 4016, 7, 85, 2, 2, 4016, 4017, 7, 86, 2, 2, 4017, 4018, 7, 70, 2, 2, 4018, 4019, 7, 70, 2, 2, 4019, 4020, 7, 71, 2, 2, 4020, 4021, 7, 88, 2, 2, 4021, 490, 3, 2, 2, 2, 4022, 4023, 7, 85, 2, 2, 4023, 4024, 7, 86, 2, 2, 4024, 4025, 7, 70, 2, 2, 4025, 4026, 7, 70, 2, 2, 4026, 4027, 7, 71, 2, 2, 4027, 4028, 7, 88, 2, 2, 4028, 4029, 7, 97, 2, 2, 4029, 4030, 7, 82, 2, 2, 4030, 4031, 7, 81, 2, 2, 4031, 4032, 7, 82, 2, 2, 4032, 492, 3, 2, 2, 2, 4033, 4034, 7, 85, 2, 2, 4034, 4035, 7, 86, 2, 2, 4035, 4036, 7, 70, 2, 2, 4036, 4037, 7, 70, 2, 2, 4037, 4038, 7, 71, 2, 2, 4038, 4039, 7, 88, 2, 2, 4039, 4040, 7, 97, 2, 2, 4040, 4041, 7, 85, 2, 2, 4041, 4042, 7, 67, 2, 2, 4042, 4043, 7, 79, 2, 2, 4043, 4044, 7, 82, 2, 2, 4044, 494, 3, 2, 2, 2, 4045, 4046, 7, 85, 2, 2, 4046, 4047, 7, 87, 2, 2, 4047, 4048, 7, 79, 2, 2, 4048, 496, 3, 2, 2, 2, 4049, 4050, 7, 88, 2, 2, 4050, 4051, 7, 67, 2, 2, 4051, 4052, 7, 84, 2, 2, 4052, 4053, 7, 97, 2, 2, 4053, 4054, 7, 82, 2, 2, 4054, 4055, 7, 81, 2, 2, 4055, 4056, 7, 82, 2, 2, 4056, 498, 3, 2, 2, 2, 4057, 4058, 7, 88, 2, 2, 4058, 4059, 7, 67, 2, 2, 4059, 4060, 7, 84, 2, 2, 4060, 4061, 7, 97, 2, 2, 4061, 4062, 7, 85, 2, 2, 4062, 4063, 7, 67, 2, 2, 4063, 4064, 7, 79, 2, 2, 4064, 4065, 7, 82, 2, 2, 4065, 500, 3, 2, 2, 2, 4066, 4067, 7, 88, 2, 2, 4067, 4068, 7, 67, 2, 2, 4068, 4069, 7, 84, 2, 2, 4069, 4070, 7, 75, 2, 2, 4070, 4071, 7, 67, 2, 2, 4071, 4072, 7, 80, 2, 2, 4072, 4073, 7, 69, 2, 2, 4073, 4074, 7, 71, 2, 2, 4074, 502, 3, 2, 2, 2, 4075, 4076, 7, 69, 2, 2, 4076, 4077, 7, 87, 2, 2, 4077, 4078, 7, 84, 2, 2, 4078, 4079, 7, 84, 2, 2, 4079, 4080, 7, 71, 2, 2, 4080, 4081, 7, 80, 2, 2, 4081, 4082, 7, 86, 2, 2, 4082, 4083, 7, 97, 2, 2, 4083, 4084, 7, 70, 2, 2, 4084, 4085, 7, 67, 2, 2, 4085, 4086, 7, 86, 2, 2, 4086, 4087, 7, 71, 2, 2, 4087, 504, 3, 2, 2, 2, 4088, 4089, 7, 69, 2, 2, 4089, 4090, 7, 87, 2, 2, 4090, 4091, 7, 84, 2, 2, 4091, 4092, 7, 84, 2, 2, 4092, 4093, 7, 71, 2, 2, 4093, 4094, 7, 80, 2, 2, 4094, 4095, 7, 86, 2, 2, 4095, 4096, 7, 97, 2, 2, 4096, 4097, 7, 86, 2, 2, 4097, 4098, 7, 75, 2, 2, 4098, 4099, 7, 79, 2, 2, 4099, 4100, 7, 71, 2, 2, 4100, 506, 3, 2, 2, 2, 4101, 4102, 7, 69, 2, 2, 4102, 4103, 7, 87, 2, 2, 4103, 4104, 7, 84, 2, 2, 4104, 4105, 7, 84, 2, 2, 4105, 4106, 7, 71, 2, 2, 4106, 4107, 7, 80, 2, 2, 4107, 4108, 7, 86, 2, 2, 4108, 4109, 7, 97, 2, 2, 4109, 4110, 7, 86, 2, 2, 4110, 4111, 7, 75, 2, 2, 4111, 4112, 7, 79, 2, 2, 4112, 4113, 7, 71, 2, 2, 4113, 4114, 7, 85, 2, 2, 4114, 4115, 7, 86, 2, 2, 4115, 4116, 7, 67, 2, 2, 4116, 4117, 7, 79, 2, 2, 4117, 4118, 7, 82, 2, 2, 4118, 508, 3, 2, 2, 2, 4119, 4120, 7, 78, 2, 2, 4120, 4121, 7, 81, 2, 2, 4121, 4122, 7, 69, 2, 2, 4122, 4123, 7, 67, 2, 2, 4123, 4124, 7, 78, 2, 2, 4124, 4125, 7, 86, 2, 2, 4125, 4126, 7, 75, 2, 2, 4126, 4127, 7, 79, 2, 2, 4127, 4128, 7, 71, 2, 2, 4128, 510, 3, 2, 2, 2, 4129, 4130, 7, 69, 2, 2, 4130, 4131, 7, 87, 2, 2, 4131, 4132, 7, 84, 2, 2, 4132, 4133, 7, 70, 2, 2, 4133, 4134, 7, 67, 2, 2, 4134, 4135, 7, 86, 2, 2, 4135, 4136, 7, 71, 2, 2, 4136, 512, 3, 2, 2, 2, 4137, 4138, 7, 69, 2, 2, 4138, 4139, 7, 87, 2, 2, 4139, 4140, 7, 84, 2, 2, 4140, 4141, 7, 86, 2, 2, 4141, 4142, 7, 75, 2, 2, 4142, 4143, 7, 79, 2, 2, 4143, 4144, 7, 71, 2, 2, 4144, 514, 3, 2, 2, 2, 4145, 4146, 7, 70, 2, 2, 4146, 4147, 7, 67, 2, 2, 4147, 4148, 7, 86, 2, 2, 4148, 4149, 7, 71, 2, 2, 4149, 4150, 7, 97, 2, 2, 4150, 4151, 7, 67, 2, 2, 4151, 4152, 7, 70, 2, 2, 4152, 4153, 7, 70, 2, 2, 4153, 516, 3, 2, 2, 2, 4154, 4155, 7, 70, 2, 2, 4155, 4156, 7, 67, 2, 2, 4156, 4157, 7, 86, 2, 2, 4157, 4158, 7, 71, 2, 2, 4158, 4159, 7, 97, 2, 2, 4159, 4160, 7, 85, 2, 2, 4160, 4161, 7, 87, 2, 2, 4161, 4162, 7, 68, 2, 2, 4162, 518, 3, 2, 2, 2, 4163, 4164, 7, 71, 2, 2, 4164, 4165, 7, 90, 2, 2, 4165, 4166, 7, 86, 2, 2, 4166, 4167, 7, 84, 2, 2, 4167, 4168, 7, 67, 2, 2, 4168, 4169, 7, 69, 2, 2, 4169, 4170, 7, 86, 2, 2, 4170, 520, 3, 2, 2, 2, 4171, 4172, 7, 78, 2, 2, 4172, 4173, 7, 81, 2, 2, 4173, 4174, 7, 69, 2, 2, 4174, 4175, 7, 67, 2, 2, 4175, 4176, 7, 78, 2, 2, 4176, 4177, 7, 86, 2, 2, 4177, 4178, 7, 75, 2, 2, 4178, 4179, 7, 79, 2, 2, 4179, 4180, 7, 71, 2, 2, 4180, 4181, 7, 85, 2, 2, 4181, 4182, 7, 86, 2, 2, 4182, 4183, 7, 67, 2, 2, 4183, 4184, 7, 79, 2, 2, 4184, 4185, 7, 82, 2, 2, 4185, 522, 3, 2, 2, 2, 4186, 4187, 7, 80, 2, 2, 4187, 4188, 7, 81, 2, 2, 4188, 4189, 7, 89, 2, 2, 4189, 524, 3, 2, 2, 2, 4190, 4191, 7, 82, 2, 2, 4191, 4192, 7, 81, 2, 2, 4192, 4193, 7, 85, 2, 2, 4193, 4194, 7, 75, 2, 2, 4194, 4195, 7, 86, 2, 2, 4195, 4196, 7, 75, 2, 2, 4196, 4197, 7, 81, 2, 2, 4197, 4198, 7, 80, 2, 2, 4198, 526, 3, 2, 2, 2, 4199, 4200, 7, 85, 2, 2, 4200, 4201, 7, 87, 2, 2, 4201, 4202, 7, 68, 2, 2, 4202, 4203, 7, 85, 2, 2, 4203, 4204, 7, 86, 2, 2, 4204, 4205, 7, 84, 2, 2, 4205, 528, 3, 2, 2, 2, 4206, 4207, 7, 85, 2, 2, 4207, 4208, 7, 87, 2, 2, 4208, 4209, 7, 68, 2, 2, 4209, 4210, 7, 85, 2, 2, 4210, 4211, 7, 86, 2, 2, 4211, 4212, 7, 84, 2, 2, 4212, 4213, 7, 75, 2, 2, 4213, 4214, 7, 80, 2, 2, 4214, 4215, 7, 73, 2, 2, 4215, 530, 3, 2, 2, 2, 4216, 4217, 7, 85, 2, 2, 4217, 4218, 7, 91, 2, 2, 4218, 4219, 7, 85, 2, 2, 4219, 4220, 7, 70, 2, 2, 4220, 4221, 7, 67, 2, 2, 4221, 4222, 7, 86, 2, 2, 4222, 4223, 7, 71, 2, 2, 4223, 532, 3, 2, 2, 2, 4224, 4225, 7, 86, 2, 2, 4225, 4226, 7, 84, 2, 2, 4226, 4227, 7, 75, 2, 2, 4227, 4228, 7, 79, 2, 2, 4228, 534, 3, 2, 2, 2, 4229, 4230, 7, 87, 2, 2, 4230, 4231, 7, 86, 2, 2, 4231, 4232, 7, 69, 2, 2, 4232, 4233, 7, 97, 2, 2, 4233, 4234, 7, 70, 2, 2, 4234, 4235, 7, 67, 2, 2, 4235, 4236, 7, 86, 2, 2, 4236, 4237, 7, 71, 2, 2, 4237, 536, 3, 2, 2, 2, 4238, 4239, 7, 87, 2, 2, 4239, 4240, 7, 86, 2, 2, 4240, 4241, 7, 69, 2, 2, 4241, 4242, 7, 97, 2, 2, 4242, 4243, 7, 86, 2, 2, 4243, 4244, 7, 75, 2, 2, 4244, 4245, 7, 79, 2, 2, 4245, 4246, 7, 71, 2, 2, 4246, 538, 3, 2, 2, 2, 4247, 4248, 7, 87, 2, 2, 4248, 4249, 7, 86, 2, 2, 4249, 4250, 7, 69, 2, 2, 4250, 4251, 7, 97, 2, 2, 4251, 4252, 7, 86, 2, 2, 4252, 4253, 7, 75, 2, 2, 4253, 4254, 7, 79, 2, 2, 4254, 4255, 7, 71, 2, 2, 4255, 4256, 7, 85, 2, 2, 4256, 4257, 7, 86, 2, 2, 4257, 4258, 7, 67, 2, 2, 4258, 4259, 7, 79, 2, 2, 4259, 4260, 7, 82, 2, 2, 4260, 540, 3, 2, 2, 2, 4261, 4262, 7, 67, 2, 2, 4262, 4263, 7, 69, 2, 2, 4263, 4264, 7, 69, 2, 2, 4264, 4265, 7, 81, 2, 2, 4265, 4266, 7, 87, 2, 2, 4266, 4267, 7, 80, 2, 2, 4267, 4268, 7, 86, 2, 2, 4268, 542, 3, 2, 2, 2, 4269, 4270, 7, 67, 2, 2, 4270, 4271, 7, 69, 2, 2, 4271, 4272, 7, 86, 2, 2, 4272, 4273, 7, 75, 2, 2, 4273, 4274, 7, 81, 2, 2, 4274, 4275, 7, 80, 2, 2, 4275, 544, 3, 2, 2, 2, 4276, 4277, 7, 67, 2, 2, 4277, 4278, 7, 72, 2, 2, 4278, 4279, 7, 86, 2, 2, 4279, 4280, 7, 71, 2, 2, 4280, 4281, 7, 84, 2, 2, 4281, 546, 3, 2, 2, 2, 4282, 4283, 7, 67, 2, 2, 4283, 4284, 7, 73, 2, 2, 4284, 4285, 7, 73, 2, 2, 4285, 4286, 7, 84, 2, 2, 4286, 4287, 7, 71, 2, 2, 4287, 4288, 7, 73, 2, 2, 4288, 4289, 7, 67, 2, 2, 4289, 4290, 7, 86, 2, 2, 4290, 4291, 7, 71, 2, 2, 4291, 548, 3, 2, 2, 2, 4292, 4293, 7, 67, 2, 2, 4293, 4294, 7, 78, 2, 2, 4294, 4295, 7, 73, 2, 2, 4295, 4296, 7, 81, 2, 2, 4296, 4297, 7, 84, 2, 2, 4297, 4298, 7, 75, 2, 2, 4298, 4299, 7, 86, 2, 2, 4299, 4300, 7, 74, 2, 2, 4300, 4301, 7, 79, 2, 2, 4301, 550, 3, 2, 2, 2, 4302, 4303, 7, 67, 2, 2, 4303, 4304, 7, 80, 2, 2, 4304, 4305, 7, 91, 2, 2, 4305, 552, 3, 2, 2, 2, 4306, 4307, 7, 67, 2, 2, 4307, 4308, 7, 86, 2, 2, 4308, 554, 3, 2, 2, 2, 4309, 4310, 7, 67, 2, 2, 4310, 4311, 7, 87, 2, 2, 4311, 4312, 7, 86, 2, 2, 4312, 4313, 7, 74, 2, 2, 4313, 4314, 7, 81, 2, 2, 4314, 4315, 7, 84, 2, 2, 4315, 4316, 7, 85, 2, 2, 4316, 556, 3, 2, 2, 2, 4317, 4318, 7, 67, 2, 2, 4318, 4319, 7, 87, 2, 2, 4319, 4320, 7, 86, 2, 2, 4320, 4321, 7, 81, 2, 2, 4321, 4322, 7, 69, 2, 2, 4322, 4323, 7, 81, 2, 2, 4323, 4324, 7, 79, 2, 2, 4324, 4325, 7, 79, 2, 2, 4325, 4326, 7, 75, 2, 2, 4326, 4327, 7, 86, 2, 2, 4327, 558, 3, 2, 2, 2, 4328, 4329, 7, 67, 2, 2, 4329, 4330, 7, 87, 2, 2, 4330, 4331, 7, 86, 2, 2, 4331, 4332, 7, 81, 2, 2, 4332, 4333, 7, 71, 2, 2, 4333, 4334, 7, 90, 2, 2, 4334, 4335, 7, 86, 2, 2, 4335, 4336, 7, 71, 2, 2, 4336, 4337, 7, 80, 2, 2, 4337, 4338, 7, 70, 2, 2, 4338, 4339, 7, 97, 2, 2, 4339, 4340, 7, 85, 2, 2, 4340, 4341, 7, 75, 2, 2, 4341, 4342, 7, 92, 2, 2, 4342, 4343, 7, 71, 2, 2, 4343, 560, 3, 2, 2, 2, 4344, 4345, 7, 67, 2, 2, 4345, 4346, 7, 87, 2, 2, 4346, 4347, 7, 86, 2, 2, 4347, 4348, 7, 81, 2, 2, 4348, 4349, 7, 97, 2, 2, 4349, 4350, 7, 75, 2, 2, 4350, 4351, 7, 80, 2, 2, 4351, 4352, 7, 69, 2, 2, 4352, 4353, 7, 84, 2, 2, 4353, 4354, 7, 71, 2, 2, 4354, 4355, 7, 79, 2, 2, 4355, 4356, 7, 71, 2, 2, 4356, 4357, 7, 80, 2, 2, 4357, 4358, 7, 86, 2, 2, 4358, 562, 3, 2, 2, 2, 4359, 4360, 7, 67, 2, 2, 4360, 4361, 7, 88, 2, 2, 4361, 4362, 7, 73, 2, 2, 4362, 4363, 7, 97, 2, 2, 4363, 4364, 7, 84, 2, 2, 4364, 4365, 7, 81, 2, 2, 4365, 4366, 7, 89, 2, 2, 4366, 4367, 7, 97, 2, 2, 4367, 4368, 7, 78, 2, 2, 4368, 4369, 7, 71, 2, 2, 4369, 4370, 7, 80, 2, 2, 4370, 4371, 7, 73, 2, 2, 4371, 4372, 7, 86, 2, 2, 4372, 4373, 7, 74, 2, 2, 4373, 564, 3, 2, 2, 2, 4374, 4375, 7, 68, 2, 2, 4375, 4376, 7, 71, 2, 2, 4376, 4377, 7, 73, 2, 2, 4377, 4378, 7, 75, 2, 2, 4378, 4379, 7, 80, 2, 2, 4379, 566, 3, 2, 2, 2, 4380, 4381, 7, 68, 2, 2, 4381, 4382, 7, 75, 2, 2, 4382, 4383, 7, 80, 2, 2, 4383, 4384, 7, 78, 2, 2, 4384, 4385, 7, 81, 2, 2, 4385, 4386, 7, 73, 2, 2, 4386, 568, 3, 2, 2, 2, 4387, 4388, 7, 68, 2, 2, 4388, 4389, 7, 75, 2, 2, 4389, 4390, 7, 86, 2, 2, 4390, 570, 3, 2, 2, 2, 4391, 4392, 7, 68, 2, 2, 4392, 4393, 7, 78, 2, 2, 4393, 4394, 7, 81, 2, 2, 4394, 4395, 7, 69, 2, 2, 4395, 4396, 7, 77, 2, 2, 4396, 572, 3, 2, 2, 2, 4397, 4398, 7, 68, 2, 2, 4398, 4399, 7, 81, 2, 2, 4399, 4400, 7, 81, 2, 2, 4400, 4401, 7, 78, 2, 2, 4401, 574, 3, 2, 2, 2, 4402, 4403, 7, 68, 2, 2, 4403, 4404, 7, 81, 2, 2, 4404, 4405, 7, 81, 2, 2, 4405, 4406, 7, 78, 2, 2, 4406, 4407, 7, 71, 2, 2, 4407, 4408, 7, 67, 2, 2, 4408, 4409, 7, 80, 2, 2, 4409, 576, 3, 2, 2, 2, 4410, 4411, 7, 68, 2, 2, 4411, 4412, 7, 86, 2, 2, 4412, 4413, 7, 84, 2, 2, 4413, 4414, 7, 71, 2, 2, 4414, 4415, 7, 71, 2, 2, 4415, 578, 3, 2, 2, 2, 4416, 4417, 7, 69, 2, 2, 4417, 4418, 7, 67, 2, 2, 4418, 4419, 7, 69, 2, 2, 4419, 4420, 7, 74, 2, 2, 4420, 4421, 7, 71, 2, 2, 4421, 580, 3, 2, 2, 2, 4422, 4423, 7, 69, 2, 2, 4423, 4424, 7, 67, 2, 2, 4424, 4425, 7, 85, 2, 2, 4425, 4426, 7, 69, 2, 2, 4426, 4427, 7, 67, 2, 2, 4427, 4428, 7, 70, 2, 2, 4428, 4429, 7, 71, 2, 2, 4429, 4430, 7, 70, 2, 2, 4430, 582, 3, 2, 2, 2, 4431, 4432, 7, 69, 2, 2, 4432, 4433, 7, 74, 2, 2, 4433, 4434, 7, 67, 2, 2, 4434, 4435, 7, 75, 2, 2, 4435, 4436, 7, 80, 2, 2, 4436, 584, 3, 2, 2, 2, 4437, 4438, 7, 69, 2, 2, 4438, 4439, 7, 74, 2, 2, 4439, 4440, 7, 67, 2, 2, 4440, 4441, 7, 80, 2, 2, 4441, 4442, 7, 73, 2, 2, 4442, 4443, 7, 71, 2, 2, 4443, 4444, 7, 70, 2, 2, 4444, 586, 3, 2, 2, 2, 4445, 4446, 7, 69, 2, 2, 4446, 4447, 7, 74, 2, 2, 4447, 4448, 7, 67, 2, 2, 4448, 4449, 7, 80, 2, 2, 4449, 4450, 7, 80, 2, 2, 4450, 4451, 7, 71, 2, 2, 4451, 4452, 7, 78, 2, 2, 4452, 588, 3, 2, 2, 2, 4453, 4454, 7, 69, 2, 2, 4454, 4455, 7, 74, 2, 2, 4455, 4456, 7, 71, 2, 2, 4456, 4457, 7, 69, 2, 2, 4457, 4458, 7, 77, 2, 2, 4458, 4459, 7, 85, 2, 2, 4459, 4460, 7, 87, 2, 2, 4460, 4461, 7, 79, 2, 2, 4461, 590, 3, 2, 2, 2, 4462, 4463, 7, 82, 2, 2, 4463, 4464, 7, 67, 2, 2, 4464, 4465, 7, 73, 2, 2, 4465, 4466, 7, 71, 2, 2, 4466, 4467, 7, 97, 2, 2, 4467, 4468, 7, 69, 2, 2, 4468, 4469, 7, 74, 2, 2, 4469, 4470, 7, 71, 2, 2, 4470, 4471, 7, 69, 2, 2, 4471, 4472, 7, 77, 2, 2, 4472, 4473, 7, 85, 2, 2, 4473, 4474, 7, 87, 2, 2, 4474, 4475, 7, 79, 2, 2, 4475, 592, 3, 2, 2, 2, 4476, 4477, 7, 69, 2, 2, 4477, 4478, 7, 75, 2, 2, 4478, 4479, 7, 82, 2, 2, 4479, 4480, 7, 74, 2, 2, 4480, 4481, 7, 71, 2, 2, 4481, 4482, 7, 84, 2, 2, 4482, 594, 3, 2, 2, 2, 4483, 4484, 7, 69, 2, 2, 4484, 4485, 7, 78, 2, 2, 4485, 4486, 7, 67, 2, 2, 4486, 4487, 7, 85, 2, 2, 4487, 4488, 7, 85, 2, 2, 4488, 4489, 7, 97, 2, 2, 4489, 4490, 7, 81, 2, 2, 4490, 4491, 7, 84, 2, 2, 4491, 4492, 7, 75, 2, 2, 4492, 4493, 7, 73, 2, 2, 4493, 4494, 7, 75, 2, 2, 4494, 4495, 7, 80, 2, 2, 4495, 596, 3, 2, 2, 2, 4496, 4497, 7, 69, 2, 2, 4497, 4498, 7, 78, 2, 2, 4498, 4499, 7, 75, 2, 2, 4499, 4500, 7, 71, 2, 2, 4500, 4501, 7, 80, 2, 2, 4501, 4502, 7, 86, 2, 2, 4502, 598, 3, 2, 2, 2, 4503, 4504, 7, 69, 2, 2, 4504, 4505, 7, 78, 2, 2, 4505, 4506, 7, 81, 2, 2, 4506, 4507, 7, 85, 2, 2, 4507, 4508, 7, 71, 2, 2, 4508, 600, 3, 2, 2, 2, 4509, 4510, 7, 69, 2, 2, 4510, 4511, 7, 81, 2, 2, 4511, 4512, 7, 67, 2, 2, 4512, 4513, 7, 78, 2, 2, 4513, 4514, 7, 71, 2, 2, 4514, 4515, 7, 85, 2, 2, 4515, 4516, 7, 69, 2, 2, 4516, 4517, 7, 71, 2, 2, 4517, 602, 3, 2, 2, 2, 4518, 4519, 7, 69, 2, 2, 4519, 4520, 7, 81, 2, 2, 4520, 4521, 7, 70, 2, 2, 4521, 4522, 7, 71, 2, 2, 4522, 604, 3, 2, 2, 2, 4523, 4524, 7, 69, 2, 2, 4524, 4525, 7, 81, 2, 2, 4525, 4526, 7, 78, 2, 2, 4526, 4527, 7, 87, 2, 2, 4527, 4528, 7, 79, 2, 2, 4528, 4529, 7, 80, 2, 2, 4529, 4530, 7, 85, 2, 2, 4530, 606, 3, 2, 2, 2, 4531, 4532, 7, 69, 2, 2, 4532, 4533, 7, 81, 2, 2, 4533, 4534, 7, 78, 2, 2, 4534, 4535, 7, 87, 2, 2, 4535, 4536, 7, 79, 2, 2, 4536, 4537, 7, 80, 2, 2, 4537, 4538, 7, 97, 2, 2, 4538, 4539, 7, 72, 2, 2, 4539, 4540, 7, 81, 2, 2, 4540, 4541, 7, 84, 2, 2, 4541, 4542, 7, 79, 2, 2, 4542, 4543, 7, 67, 2, 2, 4543, 4544, 7, 86, 2, 2, 4544, 608, 3, 2, 2, 2, 4545, 4546, 7, 69, 2, 2, 4546, 4547, 7, 81, 2, 2, 4547, 4548, 7, 78, 2, 2, 4548, 4549, 7, 87, 2, 2, 4549, 4550, 7, 79, 2, 2, 4550, 4551, 7, 80, 2, 2, 4551, 4552, 7, 97, 2, 2, 4552, 4553, 7, 80, 2, 2, 4553, 4554, 7, 67, 2, 2, 4554, 4555, 7, 79, 2, 2, 4555, 4556, 7, 71, 2, 2, 4556, 610, 3, 2, 2, 2, 4557, 4558, 7, 69, 2, 2, 4558, 4559, 7, 81, 2, 2, 4559, 4560, 7, 79, 2, 2, 4560, 4561, 7, 79, 2, 2, 4561, 4562, 7, 71, 2, 2, 4562, 4563, 7, 80, 2, 2, 4563, 4564, 7, 86, 2, 2, 4564, 612, 3, 2, 2, 2, 4565, 4566, 7, 69, 2, 2, 4566, 4567, 7, 81, 2, 2, 4567, 4568, 7, 79, 2, 2, 4568, 4569, 7, 79, 2, 2, 4569, 4570, 7, 75, 2, 2, 4570, 4571, 7, 86, 2, 2, 4571, 614, 3, 2, 2, 2, 4572, 4573, 7, 69, 2, 2, 4573, 4574, 7, 81, 2, 2, 4574, 4575, 7, 79, 2, 2, 4575, 4576, 7, 82, 2, 2, 4576, 4577, 7, 67, 2, 2, 4577, 4578, 7, 69, 2, 2, 4578, 4579, 7, 86, 2, 2, 4579, 616, 3, 2, 2, 2, 4580, 4581, 7, 69, 2, 2, 4581, 4582, 7, 81, 2, 2, 4582, 4583, 7, 79, 2, 2, 4583, 4584, 7, 82, 2, 2, 4584, 4585, 7, 78, 2, 2, 4585, 4586, 7, 71, 2, 2, 4586, 4587, 7, 86, 2, 2, 4587, 4588, 7, 75, 2, 2, 4588, 4589, 7, 81, 2, 2, 4589, 4590, 7, 80, 2, 2, 4590, 618, 3, 2, 2, 2, 4591, 4592, 7, 69, 2, 2, 4592, 4593, 7, 81, 2, 2, 4593, 4594, 7, 79, 2, 2, 4594, 4595, 7, 82, 2, 2, 4595, 4596, 7, 84, 2, 2, 4596, 4597, 7, 71, 2, 2, 4597, 4598, 7, 85, 2, 2, 4598, 4599, 7, 85, 2, 2, 4599, 4600, 7, 71, 2, 2, 4600, 4601, 7, 70, 2, 2, 4601, 620, 3, 2, 2, 2, 4602, 4603, 7, 69, 2, 2, 4603, 4604, 7, 81, 2, 2, 4604, 4605, 7, 79, 2, 2, 4605, 4606, 7, 82, 2, 2, 4606, 4607, 7, 84, 2, 2, 4607, 4608, 7, 71, 2, 2, 4608, 4609, 7, 85, 2, 2, 4609, 4610, 7, 85, 2, 2, 4610, 4611, 7, 75, 2, 2, 4611, 4612, 7, 81, 2, 2, 4612, 4613, 7, 80, 2, 2, 4613, 622, 3, 2, 2, 2, 4614, 4615, 7, 69, 2, 2, 4615, 4616, 7, 81, 2, 2, 4616, 4617, 7, 80, 2, 2, 4617, 4618, 7, 69, 2, 2, 4618, 4619, 7, 87, 2, 2, 4619, 4620, 7, 84, 2, 2, 4620, 4621, 7, 84, 2, 2, 4621, 4622, 7, 71, 2, 2, 4622, 4623, 7, 80, 2, 2, 4623, 4624, 7, 86, 2, 2, 4624, 624, 3, 2, 2, 2, 4625, 4626, 7, 69, 2, 2, 4626, 4627, 7, 81, 2, 2, 4627, 4628, 7, 80, 2, 2, 4628, 4629, 7, 80, 2, 2, 4629, 4630, 7, 71, 2, 2, 4630, 4631, 7, 69, 2, 2, 4631, 4632, 7, 86, 2, 2, 4632, 4633, 7, 75, 2, 2, 4633, 4634, 7, 81, 2, 2, 4634, 4635, 7, 80, 2, 2, 4635, 626, 3, 2, 2, 2, 4636, 4637, 7, 69, 2, 2, 4637, 4638, 7, 81, 2, 2, 4638, 4639, 7, 80, 2, 2, 4639, 4640, 7, 85, 2, 2, 4640, 4641, 7, 75, 2, 2, 4641, 4642, 7, 85, 2, 2, 4642, 4643, 7, 86, 2, 2, 4643, 4644, 7, 71, 2, 2, 4644, 4645, 7, 80, 2, 2, 4645, 4646, 7, 86, 2, 2, 4646, 628, 3, 2, 2, 2, 4647, 4648, 7, 69, 2, 2, 4648, 4649, 7, 81, 2, 2, 4649, 4650, 7, 80, 2, 2, 4650, 4651, 7, 85, 2, 2, 4651, 4652, 7, 86, 2, 2, 4652, 4653, 7, 84, 2, 2, 4653, 4654, 7, 67, 2, 2, 4654, 4655, 7, 75, 2, 2, 4655, 4656, 7, 80, 2, 2, 4656, 4657, 7, 86, 2, 2, 4657, 4658, 7, 97, 2, 2, 4658, 4659, 7, 69, 2, 2, 4659, 4660, 7, 67, 2, 2, 4660, 4661, 7, 86, 2, 2, 4661, 4662, 7, 67, 2, 2, 4662, 4663, 7, 78, 2, 2, 4663, 4664, 7, 81, 2, 2, 4664, 4665, 7, 73, 2, 2, 4665, 630, 3, 2, 2, 2, 4666, 4667, 7, 69, 2, 2, 4667, 4668, 7, 81, 2, 2, 4668, 4669, 7, 80, 2, 2, 4669, 4670, 7, 85, 2, 2, 4670, 4671, 7, 86, 2, 2, 4671, 4672, 7, 84, 2, 2, 4672, 4673, 7, 67, 2, 2, 4673, 4674, 7, 75, 2, 2, 4674, 4675, 7, 80, 2, 2, 4675, 4676, 7, 86, 2, 2, 4676, 4677, 7, 97, 2, 2, 4677, 4678, 7, 85, 2, 2, 4678, 4679, 7, 69, 2, 2, 4679, 4680, 7, 74, 2, 2, 4680, 4681, 7, 71, 2, 2, 4681, 4682, 7, 79, 2, 2, 4682, 4683, 7, 67, 2, 2, 4683, 632, 3, 2, 2, 2, 4684, 4685, 7, 69, 2, 2, 4685, 4686, 7, 81, 2, 2, 4686, 4687, 7, 80, 2, 2, 4687, 4688, 7, 85, 2, 2, 4688, 4689, 7, 86, 2, 2, 4689, 4690, 7, 84, 2, 2, 4690, 4691, 7, 67, 2, 2, 4691, 4692, 7, 75, 2, 2, 4692, 4693, 7, 80, 2, 2, 4693, 4694, 7, 86, 2, 2, 4694, 4695, 7, 97, 2, 2, 4695, 4696, 7, 80, 2, 2, 4696, 4697, 7, 67, 2, 2, 4697, 4698, 7, 79, 2, 2, 4698, 4699, 7, 71, 2, 2, 4699, 634, 3, 2, 2, 2, 4700, 4701, 7, 69, 2, 2, 4701, 4702, 7, 81, 2, 2, 4702, 4703, 7, 80, 2, 2, 4703, 4704, 7, 86, 2, 2, 4704, 4705, 7, 67, 2, 2, 4705, 4706, 7, 75, 2, 2, 4706, 4707, 7, 80, 2, 2, 4707, 4708, 7, 85, 2, 2, 4708, 636, 3, 2, 2, 2, 4709, 4710, 7, 69, 2, 2, 4710, 4711, 7, 81, 2, 2, 4711, 4712, 7, 80, 2, 2, 4712, 4713, 7, 86, 2, 2, 4713, 4714, 7, 71, 2, 2, 4714, 4715, 7, 90, 2, 2, 4715, 4716, 7, 86, 2, 2, 4716, 638, 3, 2, 2, 2, 4717, 4718, 7, 69, 2, 2, 4718, 4719, 7, 81, 2, 2, 4719, 4720, 7, 80, 2, 2, 4720, 4721, 7, 86, 2, 2, 4721, 4722, 7, 84, 2, 2, 4722, 4723, 7, 75, 2, 2, 4723, 4724, 7, 68, 2, 2, 4724, 4725, 7, 87, 2, 2, 4725, 4726, 7, 86, 2, 2, 4726, 4727, 7, 81, 2, 2, 4727, 4728, 7, 84, 2, 2, 4728, 4729, 7, 85, 2, 2, 4729, 640, 3, 2, 2, 2, 4730, 4731, 7, 69, 2, 2, 4731, 4732, 7, 81, 2, 2, 4732, 4733, 7, 82, 2, 2, 4733, 4734, 7, 91, 2, 2, 4734, 642, 3, 2, 2, 2, 4735, 4736, 7, 69, 2, 2, 4736, 4737, 7, 82, 2, 2, 4737, 4738, 7, 87, 2, 2, 4738, 644, 3, 2, 2, 2, 4739, 4740, 7, 69, 2, 2, 4740, 4741, 7, 87, 2, 2, 4741, 4742, 7, 84, 2, 2, 4742, 4743, 7, 85, 2, 2, 4743, 4744, 7, 81, 2, 2, 4744, 4745, 7, 84, 2, 2, 4745, 4746, 7, 97, 2, 2, 4746, 4747, 7, 80, 2, 2, 4747, 4748, 7, 67, 2, 2, 4748, 4749, 7, 79, 2, 2, 4749, 4750, 7, 71, 2, 2, 4750, 646, 3, 2, 2, 2, 4751, 4752, 7, 70, 2, 2, 4752, 4753, 7, 67, 2, 2, 4753, 4754, 7, 86, 2, 2, 4754, 4755, 7, 67, 2, 2, 4755, 648, 3, 2, 2, 2, 4756, 4757, 7, 70, 2, 2, 4757, 4758, 7, 67, 2, 2, 4758, 4759, 7, 86, 2, 2, 4759, 4760, 7, 67, 2, 2, 4760, 4761, 7, 72, 2, 2, 4761, 4762, 7, 75, 2, 2, 4762, 4763, 7, 78, 2, 2, 4763, 4764, 7, 71, 2, 2, 4764, 650, 3, 2, 2, 2, 4765, 4766, 7, 70, 2, 2, 4766, 4767, 7, 71, 2, 2, 4767, 4768, 7, 67, 2, 2, 4768, 4769, 7, 78, 2, 2, 4769, 4770, 7, 78, 2, 2, 4770, 4771, 7, 81, 2, 2, 4771, 4772, 7, 69, 2, 2, 4772, 4773, 7, 67, 2, 2, 4773, 4774, 7, 86, 2, 2, 4774, 4775, 7, 71, 2, 2, 4775, 652, 3, 2, 2, 2, 4776, 4777, 7, 70, 2, 2, 4777, 4778, 7, 71, 2, 2, 4778, 4779, 7, 72, 2, 2, 4779, 4780, 7, 67, 2, 2, 4780, 4781, 7, 87, 2, 2, 4781, 4782, 7, 78, 2, 2, 4782, 4783, 7, 86, 2, 2, 4783, 4784, 7, 97, 2, 2, 4784, 4785, 7, 67, 2, 2, 4785, 4786, 7, 87, 2, 2, 4786, 4787, 7, 86, 2, 2, 4787, 4788, 7, 74, 2, 2, 4788, 654, 3, 2, 2, 2, 4789, 4790, 7, 70, 2, 2, 4790, 4791, 7, 71, 2, 2, 4791, 4792, 7, 72, 2, 2, 4792, 4793, 7, 75, 2, 2, 4793, 4794, 7, 80, 2, 2, 4794, 4795, 7, 71, 2, 2, 4795, 4796, 7, 84, 2, 2, 4796, 656, 3, 2, 2, 2, 4797, 4798, 7, 70, 2, 2, 4798, 4799, 7, 71, 2, 2, 4799, 4800, 7, 78, 2, 2, 4800, 4801, 7, 67, 2, 2, 4801, 4802, 7, 91, 2, 2, 4802, 4803, 7, 97, 2, 2, 4803, 4804, 7, 77, 2, 2, 4804, 4805, 7, 71, 2, 2, 4805, 4806, 7, 91, 2, 2, 4806, 4807, 7, 97, 2, 2, 4807, 4808, 7, 89, 2, 2, 4808, 4809, 7, 84, 2, 2, 4809, 4810, 7, 75, 2, 2, 4810, 4811, 7, 86, 2, 2, 4811, 4812, 7, 71, 2, 2, 4812, 658, 3, 2, 2, 2, 4813, 4814, 7, 70, 2, 2, 4814, 4815, 7, 71, 2, 2, 4815, 4816, 7, 85, 2, 2, 4816, 4817, 7, 97, 2, 2, 4817, 4818, 7, 77, 2, 2, 4818, 4819, 7, 71, 2, 2, 4819, 4820, 7, 91, 2, 2, 4820, 4821, 7, 97, 2, 2, 4821, 4822, 7, 72, 2, 2, 4822, 4823, 7, 75, 2, 2, 4823, 4824, 7, 78, 2, 2, 4824, 4825, 7, 71, 2, 2, 4825, 660, 3, 2, 2, 2, 4826, 4827, 7, 70, 2, 2, 4827, 4828, 7, 75, 2, 2, 4828, 4829, 7, 84, 2, 2, 4829, 4830, 7, 71, 2, 2, 4830, 4831, 7, 69, 2, 2, 4831, 4832, 7, 86, 2, 2, 4832, 4833, 7, 81, 2, 2, 4833, 4834, 7, 84, 2, 2, 4834, 4835, 7, 91, 2, 2, 4835, 662, 3, 2, 2, 2, 4836, 4837, 7, 70, 2, 2, 4837, 4838, 7, 75, 2, 2, 4838, 4839, 7, 85, 2, 2, 4839, 4840, 7, 67, 2, 2, 4840, 4841, 7, 68, 2, 2, 4841, 4842, 7, 78, 2, 2, 4842, 4843, 7, 71, 2, 2, 4843, 664, 3, 2, 2, 2, 4844, 4845, 7, 70, 2, 2, 4845, 4846, 7, 75, 2, 2, 4846, 4847, 7, 85, 2, 2, 4847, 4848, 7, 69, 2, 2, 4848, 4849, 7, 67, 2, 2, 4849, 4850, 7, 84, 2, 2, 4850, 4851, 7, 70, 2, 2, 4851, 666, 3, 2, 2, 2, 4852, 4853, 7, 70, 2, 2, 4853, 4854, 7, 75, 2, 2, 4854, 4855, 7, 85, 2, 2, 4855, 4856, 7, 77, 2, 2, 4856, 668, 3, 2, 2, 2, 4857, 4858, 7, 70, 2, 2, 4858, 4859, 7, 81, 2, 2, 4859, 670, 3, 2, 2, 2, 4860, 4861, 7, 70, 2, 2, 4861, 4862, 7, 87, 2, 2, 4862, 4863, 7, 79, 2, 2, 4863, 4864, 7, 82, 2, 2, 4864, 4865, 7, 72, 2, 2, 4865, 4866, 7, 75, 2, 2, 4866, 4867, 7, 78, 2, 2, 4867, 4868, 7, 71, 2, 2, 4868, 672, 3, 2, 2, 2, 4869, 4870, 7, 70, 2, 2, 4870, 4871, 7, 87, 2, 2, 4871, 4872, 7, 82, 2, 2, 4872, 4873, 7, 78, 2, 2, 4873, 4874, 7, 75, 2, 2, 4874, 4875, 7, 69, 2, 2, 4875, 4876, 7, 67, 2, 2, 4876, 4877, 7, 86, 2, 2, 4877, 4878, 7, 71, 2, 2, 4878, 674, 3, 2, 2, 2, 4879, 4880, 7, 70, 2, 2, 4880, 4881, 7, 91, 2, 2, 4881, 4882, 7, 80, 2, 2, 4882, 4883, 7, 67, 2, 2, 4883, 4884, 7, 79, 2, 2, 4884, 4885, 7, 75, 2, 2, 4885, 4886, 7, 69, 2, 2, 4886, 676, 3, 2, 2, 2, 4887, 4888, 7, 71, 2, 2, 4888, 4889, 7, 80, 2, 2, 4889, 4890, 7, 67, 2, 2, 4890, 4891, 7, 68, 2, 2, 4891, 4892, 7, 78, 2, 2, 4892, 4893, 7, 71, 2, 2, 4893, 678, 3, 2, 2, 2, 4894, 4895, 7, 71, 2, 2, 4895, 4896, 7, 80, 2, 2, 4896, 4897, 7, 69, 2, 2, 4897, 4898, 7, 84, 2, 2, 4898, 4899, 7, 91, 2, 2, 4899, 4900, 7, 82, 2, 2, 4900, 4901, 7, 86, 2, 2, 4901, 4902, 7, 75, 2, 2, 4902, 4903, 7, 81, 2, 2, 4903, 4904, 7, 80, 2, 2, 4904, 680, 3, 2, 2, 2, 4905, 4906, 7, 71, 2, 2, 4906, 4907, 7, 80, 2, 2, 4907, 4908, 7, 70, 2, 2, 4908, 682, 3, 2, 2, 2, 4909, 4910, 7, 71, 2, 2, 4910, 4911, 7, 80, 2, 2, 4911, 4912, 7, 70, 2, 2, 4912, 4913, 7, 85, 2, 2, 4913, 684, 3, 2, 2, 2, 4914, 4915, 7, 71, 2, 2, 4915, 4916, 7, 80, 2, 2, 4916, 4917, 7, 73, 2, 2, 4917, 4918, 7, 75, 2, 2, 4918, 4919, 7, 80, 2, 2, 4919, 4920, 7, 71, 2, 2, 4920, 686, 3, 2, 2, 2, 4921, 4922, 7, 71, 2, 2, 4922, 4923, 7, 80, 2, 2, 4923, 4924, 7, 73, 2, 2, 4924, 4925, 7, 75, 2, 2, 4925, 4926, 7, 80, 2, 2, 4926, 4927, 7, 71, 2, 2, 4927, 4928, 7, 85, 2, 2, 4928, 688, 3, 2, 2, 2, 4929, 4930, 7, 71, 2, 2, 4930, 4931, 7, 84, 2, 2, 4931, 4932, 7, 84, 2, 2, 4932, 4933, 7, 81, 2, 2, 4933, 4934, 7, 84, 2, 2, 4934, 690, 3, 2, 2, 2, 4935, 4936, 7, 71, 2, 2, 4936, 4937, 7, 84, 2, 2, 4937, 4938, 7, 84, 2, 2, 4938, 4939, 7, 81, 2, 2, 4939, 4940, 7, 84, 2, 2, 4940, 4941, 7, 85, 2, 2, 4941, 692, 3, 2, 2, 2, 4942, 4943, 7, 71, 2, 2, 4943, 4944, 7, 85, 2, 2, 4944, 4945, 7, 69, 2, 2, 4945, 4946, 7, 67, 2, 2, 4946, 4947, 7, 82, 2, 2, 4947, 4948, 7, 71, 2, 2, 4948, 694, 3, 2, 2, 2, 4949, 4950, 7, 71, 2, 2, 4950, 4951, 7, 88, 2, 2, 4951, 4952, 7, 71, 2, 2, 4952, 4953, 7, 80, 2, 2, 4953, 696, 3, 2, 2, 2, 4954, 4955, 7, 71, 2, 2, 4955, 4956, 7, 88, 2, 2, 4956, 4957, 7, 71, 2, 2, 4957, 4958, 7, 80, 2, 2, 4958, 4959, 7, 86, 2, 2, 4959, 698, 3, 2, 2, 2, 4960, 4961, 7, 71, 2, 2, 4961, 4962, 7, 88, 2, 2, 4962, 4963, 7, 71, 2, 2, 4963, 4964, 7, 80, 2, 2, 4964, 4965, 7, 86, 2, 2, 4965, 4966, 7, 85, 2, 2, 4966, 700, 3, 2, 2, 2, 4967, 4968, 7, 71, 2, 2, 4968, 4969, 7, 88, 2, 2, 4969, 4970, 7, 71, 2, 2, 4970, 4971, 7, 84, 2, 2, 4971, 4972, 7, 91, 2, 2, 4972, 702, 3, 2, 2, 2, 4973, 4974, 7, 71, 2, 2, 4974, 4975, 7, 90, 2, 2, 4975, 4976, 7, 69, 2, 2, 4976, 4977, 7, 74, 2, 2, 4977, 4978, 7, 67, 2, 2, 4978, 4979, 7, 80, 2, 2, 4979, 4980, 7, 73, 2, 2, 4980, 4981, 7, 71, 2, 2, 4981, 704, 3, 2, 2, 2, 4982, 4983, 7, 71, 2, 2, 4983, 4984, 7, 90, 2, 2, 4984, 4985, 7, 69, 2, 2, 4985, 4986, 7, 78, 2, 2, 4986, 4987, 7, 87, 2, 2, 4987, 4988, 7, 85, 2, 2, 4988, 4989, 7, 75, 2, 2, 4989, 4990, 7, 88, 2, 2, 4990, 4991, 7, 71, 2, 2, 4991, 706, 3, 2, 2, 2, 4992, 4993, 7, 71, 2, 2, 4993, 4994, 7, 90, 2, 2, 4994, 4995, 7, 82, 2, 2, 4995, 4996, 7, 75, 2, 2, 4996, 4997, 7, 84, 2, 2, 4997, 4998, 7, 71, 2, 2, 4998, 708, 3, 2, 2, 2, 4999, 5000, 7, 71, 2, 2, 5000, 5001, 7, 90, 2, 2, 5001, 5002, 7, 82, 2, 2, 5002, 5003, 7, 81, 2, 2, 5003, 5004, 7, 84, 2, 2, 5004, 5005, 7, 86, 2, 2, 5005, 710, 3, 2, 2, 2, 5006, 5007, 7, 71, 2, 2, 5007, 5008, 7, 90, 2, 2, 5008, 5009, 7, 86, 2, 2, 5009, 5010, 7, 71, 2, 2, 5010, 5011, 7, 80, 2, 2, 5011, 5012, 7, 70, 2, 2, 5012, 5013, 7, 71, 2, 2, 5013, 5014, 7, 70, 2, 2, 5014, 712, 3, 2, 2, 2, 5015, 5016, 7, 71, 2, 2, 5016, 5017, 7, 90, 2, 2, 5017, 5018, 7, 86, 2, 2, 5018, 5019, 7, 71, 2, 2, 5019, 5020, 7, 80, 2, 2, 5020, 5021, 7, 86, 2, 2, 5021, 5022, 7, 97, 2, 2, 5022, 5023, 7, 85, 2, 2, 5023, 5024, 7, 75, 2, 2, 5024, 5025, 7, 92, 2, 2, 5025, 5026, 7, 71, 2, 2, 5026, 714, 3, 2, 2, 2, 5027, 5028, 7, 72, 2, 2, 5028, 5029, 7, 67, 2, 2, 5029, 5030, 7, 85, 2, 2, 5030, 5031, 7, 86, 2, 2, 5031, 716, 3, 2, 2, 2, 5032, 5033, 7, 72, 2, 2, 5033, 5034, 7, 67, 2, 2, 5034, 5035, 7, 87, 2, 2, 5035, 5036, 7, 78, 2, 2, 5036, 5037, 7, 86, 2, 2, 5037, 5038, 7, 85, 2, 2, 5038, 718, 3, 2, 2, 2, 5039, 5040, 7, 72, 2, 2, 5040, 5041, 7, 75, 2, 2, 5041, 5042, 7, 71, 2, 2, 5042, 5043, 7, 78, 2, 2, 5043, 5044, 7, 70, 2, 2, 5044, 5045, 7, 85, 2, 2, 5045, 720, 3, 2, 2, 2, 5046, 5047, 7, 72, 2, 2, 5047, 5048, 7, 75, 2, 2, 5048, 5049, 7, 78, 2, 2, 5049, 5050, 7, 71, 2, 2, 5050, 5051, 7, 97, 2, 2, 5051, 5052, 7, 68, 2, 2, 5052, 5053, 7, 78, 2, 2, 5053, 5054, 7, 81, 2, 2, 5054, 5055, 7, 69, 2, 2, 5055, 5056, 7, 77, 2, 2, 5056, 5057, 7, 97, 2, 2, 5057, 5058, 7, 85, 2, 2, 5058, 5059, 7, 75, 2, 2, 5059, 5060, 7, 92, 2, 2, 5060, 5061, 7, 71, 2, 2, 5061, 722, 3, 2, 2, 2, 5062, 5063, 7, 72, 2, 2, 5063, 5064, 7, 75, 2, 2, 5064, 5065, 7, 78, 2, 2, 5065, 5066, 7, 86, 2, 2, 5066, 5067, 7, 71, 2, 2, 5067, 5068, 7, 84, 2, 2, 5068, 724, 3, 2, 2, 2, 5069, 5070, 7, 72, 2, 2, 5070, 5071, 7, 75, 2, 2, 5071, 5072, 7, 84, 2, 2, 5072, 5073, 7, 85, 2, 2, 5073, 5074, 7, 86, 2, 2, 5074, 726, 3, 2, 2, 2, 5075, 5076, 7, 72, 2, 2, 5076, 5077, 7, 75, 2, 2, 5077, 5078, 7, 90, 2, 2, 5078, 5079, 7, 71, 2, 2, 5079, 5080, 7, 70, 2, 2, 5080, 728, 3, 2, 2, 2, 5081, 5082, 7, 72, 2, 2, 5082, 5083, 7, 78, 2, 2, 5083, 5084, 7, 87, 2, 2, 5084, 5085, 7, 85, 2, 2, 5085, 5086, 7, 74, 2, 2, 5086, 730, 3, 2, 2, 2, 5087, 5088, 7, 72, 2, 2, 5088, 5089, 7, 81, 2, 2, 5089, 5090, 7, 78, 2, 2, 5090, 5091, 7, 78, 2, 2, 5091, 5092, 7, 81, 2, 2, 5092, 5093, 7, 89, 2, 2, 5093, 5094, 7, 85, 2, 2, 5094, 732, 3, 2, 2, 2, 5095, 5096, 7, 72, 2, 2, 5096, 5097, 7, 81, 2, 2, 5097, 5098, 7, 87, 2, 2, 5098, 5099, 7, 80, 2, 2, 5099, 5100, 7, 70, 2, 2, 5100, 734, 3, 2, 2, 2, 5101, 5102, 7, 72, 2, 2, 5102, 5103, 7, 87, 2, 2, 5103, 5104, 7, 78, 2, 2, 5104, 5105, 7, 78, 2, 2, 5105, 736, 3, 2, 2, 2, 5106, 5107, 7, 72, 2, 2, 5107, 5108, 7, 87, 2, 2, 5108, 5109, 7, 80, 2, 2, 5109, 5110, 7, 69, 2, 2, 5110, 5111, 7, 86, 2, 2, 5111, 5112, 7, 75, 2, 2, 5112, 5113, 7, 81, 2, 2, 5113, 5114, 7, 80, 2, 2, 5114, 738, 3, 2, 2, 2, 5115, 5116, 7, 73, 2, 2, 5116, 5117, 7, 71, 2, 2, 5117, 5118, 7, 80, 2, 2, 5118, 5119, 7, 71, 2, 2, 5119, 5120, 7, 84, 2, 2, 5120, 5121, 7, 67, 2, 2, 5121, 5122, 7, 78, 2, 2, 5122, 740, 3, 2, 2, 2, 5123, 5124, 7, 73, 2, 2, 5124, 5125, 7, 78, 2, 2, 5125, 5126, 7, 81, 2, 2, 5126, 5127, 7, 68, 2, 2, 5127, 5128, 7, 67, 2, 2, 5128, 5129, 7, 78, 2, 2, 5129, 742, 3, 2, 2, 2, 5130, 5131, 7, 73, 2, 2, 5131, 5132, 7, 84, 2, 2, 5132, 5133, 7, 67, 2, 2, 5133, 5134, 7, 80, 2, 2, 5134, 5135, 7, 86, 2, 2, 5135, 5136, 7, 85, 2, 2, 5136, 744, 3, 2, 2, 2, 5137, 5138, 7, 73, 2, 2, 5138, 5139, 7, 84, 2, 2, 5139, 5140, 7, 81, 2, 2, 5140, 5141, 7, 87, 2, 2, 5141, 5142, 7, 82, 2, 2, 5142, 5143, 7, 97, 2, 2, 5143, 5144, 7, 84, 2, 2, 5144, 5145, 7, 71, 2, 2, 5145, 5146, 7, 82, 2, 2, 5146, 5147, 7, 78, 2, 2, 5147, 5148, 7, 75, 2, 2, 5148, 5149, 7, 69, 2, 2, 5149, 5150, 7, 67, 2, 2, 5150, 5151, 7, 86, 2, 2, 5151, 5152, 7, 75, 2, 2, 5152, 5153, 7, 81, 2, 2, 5153, 5154, 7, 80, 2, 2, 5154, 746, 3, 2, 2, 2, 5155, 5156, 7, 74, 2, 2, 5156, 5157, 7, 67, 2, 2, 5157, 5158, 7, 80, 2, 2, 5158, 5159, 7, 70, 2, 2, 5159, 5160, 7, 78, 2, 2, 5160, 5161, 7, 71, 2, 2, 5161, 5162, 7, 84, 2, 2, 5162, 748, 3, 2, 2, 2, 5163, 5164, 7, 74, 2, 2, 5164, 5165, 7, 67, 2, 2, 5165, 5166, 7, 85, 2, 2, 5166, 5167, 7, 74, 2, 2, 5167, 750, 3, 2, 2, 2, 5168, 5169, 7, 74, 2, 2, 5169, 5170, 7, 71, 2, 2, 5170, 5171, 7, 78, 2, 2, 5171, 5172, 7, 82, 2, 2, 5172, 752, 3, 2, 2, 2, 5173, 5174, 7, 74, 2, 2, 5174, 5175, 7, 81, 2, 2, 5175, 5176, 7, 85, 2, 2, 5176, 5177, 7, 86, 2, 2, 5177, 754, 3, 2, 2, 2, 5178, 5179, 7, 74, 2, 2, 5179, 5180, 7, 81, 2, 2, 5180, 5181, 7, 85, 2, 2, 5181, 5182, 7, 86, 2, 2, 5182, 5183, 7, 85, 2, 2, 5183, 756, 3, 2, 2, 2, 5184, 5185, 7, 75, 2, 2, 5185, 5186, 7, 70, 2, 2, 5186, 5187, 7, 71, 2, 2, 5187, 5188, 7, 80, 2, 2, 5188, 5189, 7, 86, 2, 2, 5189, 5190, 7, 75, 2, 2, 5190, 5191, 7, 72, 2, 2, 5191, 5192, 7, 75, 2, 2, 5192, 5193, 7, 71, 2, 2, 5193, 5194, 7, 70, 2, 2, 5194, 758, 3, 2, 2, 2, 5195, 5196, 7, 75, 2, 2, 5196, 5197, 7, 73, 2, 2, 5197, 5198, 7, 80, 2, 2, 5198, 5199, 7, 81, 2, 2, 5199, 5200, 7, 84, 2, 2, 5200, 5201, 7, 71, 2, 2, 5201, 5202, 7, 97, 2, 2, 5202, 5203, 7, 85, 2, 2, 5203, 5204, 7, 71, 2, 2, 5204, 5205, 7, 84, 2, 2, 5205, 5206, 7, 88, 2, 2, 5206, 5207, 7, 71, 2, 2, 5207, 5208, 7, 84, 2, 2, 5208, 5209, 7, 97, 2, 2, 5209, 5210, 7, 75, 2, 2, 5210, 5211, 7, 70, 2, 2, 5211, 5212, 7, 85, 2, 2, 5212, 760, 3, 2, 2, 2, 5213, 5214, 7, 75, 2, 2, 5214, 5215, 7, 79, 2, 2, 5215, 5216, 7, 82, 2, 2, 5216, 5217, 7, 81, 2, 2, 5217, 5218, 7, 84, 2, 2, 5218, 5219, 7, 86, 2, 2, 5219, 762, 3, 2, 2, 2, 5220, 5221, 7, 75, 2, 2, 5221, 5222, 7, 80, 2, 2, 5222, 5223, 7, 70, 2, 2, 5223, 5224, 7, 71, 2, 2, 5224, 5225, 7, 90, 2, 2, 5225, 5226, 7, 71, 2, 2, 5226, 5227, 7, 85, 2, 2, 5227, 764, 3, 2, 2, 2, 5228, 5229, 7, 75, 2, 2, 5229, 5230, 7, 80, 2, 2, 5230, 5231, 7, 75, 2, 2, 5231, 5232, 7, 86, 2, 2, 5232, 5233, 7, 75, 2, 2, 5233, 5234, 7, 67, 2, 2, 5234, 5235, 7, 78, 2, 2, 5235, 5236, 7, 97, 2, 2, 5236, 5237, 7, 85, 2, 2, 5237, 5238, 7, 75, 2, 2, 5238, 5239, 7, 92, 2, 2, 5239, 5240, 7, 71, 2, 2, 5240, 766, 3, 2, 2, 2, 5241, 5242, 7, 75, 2, 2, 5242, 5243, 7, 80, 2, 2, 5243, 5244, 7, 82, 2, 2, 5244, 5245, 7, 78, 2, 2, 5245, 5246, 7, 67, 2, 2, 5246, 5247, 7, 69, 2, 2, 5247, 5248, 7, 71, 2, 2, 5248, 768, 3, 2, 2, 2, 5249, 5250, 7, 75, 2, 2, 5250, 5251, 7, 80, 2, 2, 5251, 5252, 7, 85, 2, 2, 5252, 5253, 7, 71, 2, 2, 5253, 5254, 7, 84, 2, 2, 5254, 5255, 7, 86, 2, 2, 5255, 5256, 7, 97, 2, 2, 5256, 5257, 7, 79, 2, 2, 5257, 5258, 7, 71, 2, 2, 5258, 5259, 7, 86, 2, 2, 5259, 5260, 7, 74, 2, 2, 5260, 5261, 7, 81, 2, 2, 5261, 5262, 7, 70, 2, 2, 5262, 770, 3, 2, 2, 2, 5263, 5264, 7, 75, 2, 2, 5264, 5265, 7, 80, 2, 2, 5265, 5266, 7, 85, 2, 2, 5266, 5267, 7, 86, 2, 2, 5267, 5268, 7, 67, 2, 2, 5268, 5269, 7, 78, 2, 2, 5269, 5270, 7, 78, 2, 2, 5270, 772, 3, 2, 2, 2, 5271, 5272, 7, 75, 2, 2, 5272, 5273, 7, 80, 2, 2, 5273, 5274, 7, 85, 2, 2, 5274, 5275, 7, 86, 2, 2, 5275, 5276, 7, 67, 2, 2, 5276, 5277, 7, 80, 2, 2, 5277, 5278, 7, 69, 2, 2, 5278, 5279, 7, 71, 2, 2, 5279, 774, 3, 2, 2, 2, 5280, 5281, 7, 75, 2, 2, 5281, 5282, 7, 80, 2, 2, 5282, 5283, 7, 88, 2, 2, 5283, 5284, 7, 75, 2, 2, 5284, 5285, 7, 85, 2, 2, 5285, 5286, 7, 75, 2, 2, 5286, 5287, 7, 68, 2, 2, 5287, 5288, 7, 78, 2, 2, 5288, 5289, 7, 71, 2, 2, 5289, 776, 3, 2, 2, 2, 5290, 5291, 7, 75, 2, 2, 5291, 5292, 7, 80, 2, 2, 5292, 5293, 7, 88, 2, 2, 5293, 5294, 7, 81, 2, 2, 5294, 5295, 7, 77, 2, 2, 5295, 5296, 7, 71, 2, 2, 5296, 5297, 7, 84, 2, 2, 5297, 778, 3, 2, 2, 2, 5298, 5299, 7, 75, 2, 2, 5299, 5300, 7, 81, 2, 2, 5300, 780, 3, 2, 2, 2, 5301, 5302, 7, 75, 2, 2, 5302, 5303, 7, 81, 2, 2, 5303, 5304, 7, 97, 2, 2, 5304, 5305, 7, 86, 2, 2, 5305, 5306, 7, 74, 2, 2, 5306, 5307, 7, 84, 2, 2, 5307, 5308, 7, 71, 2, 2, 5308, 5309, 7, 67, 2, 2, 5309, 5310, 7, 70, 2, 2, 5310, 782, 3, 2, 2, 2, 5311, 5312, 7, 75, 2, 2, 5312, 5313, 7, 82, 2, 2, 5313, 5314, 7, 69, 2, 2, 5314, 784, 3, 2, 2, 2, 5315, 5316, 7, 75, 2, 2, 5316, 5317, 7, 85, 2, 2, 5317, 5318, 7, 81, 2, 2, 5318, 5319, 7, 78, 2, 2, 5319, 5320, 7, 67, 2, 2, 5320, 5321, 7, 86, 2, 2, 5321, 5322, 7, 75, 2, 2, 5322, 5323, 7, 81, 2, 2, 5323, 5324, 7, 80, 2, 2, 5324, 786, 3, 2, 2, 2, 5325, 5326, 7, 75, 2, 2, 5326, 5327, 7, 85, 2, 2, 5327, 5328, 7, 85, 2, 2, 5328, 5329, 7, 87, 2, 2, 5329, 5330, 7, 71, 2, 2, 5330, 5331, 7, 84, 2, 2, 5331, 788, 3, 2, 2, 2, 5332, 5333, 7, 76, 2, 2, 5333, 5334, 7, 85, 2, 2, 5334, 5335, 7, 81, 2, 2, 5335, 5336, 7, 80, 2, 2, 5336, 790, 3, 2, 2, 2, 5337, 5338, 7, 77, 2, 2, 5338, 5339, 7, 71, 2, 2, 5339, 5340, 7, 91, 2, 2, 5340, 5341, 7, 97, 2, 2, 5341, 5342, 7, 68, 2, 2, 5342, 5343, 7, 78, 2, 2, 5343, 5344, 7, 81, 2, 2, 5344, 5345, 7, 69, 2, 2, 5345, 5346, 7, 77, 2, 2, 5346, 5347, 7, 97, 2, 2, 5347, 5348, 7, 85, 2, 2, 5348, 5349, 7, 75, 2, 2, 5349, 5350, 7, 92, 2, 2, 5350, 5351, 7, 71, 2, 2, 5351, 792, 3, 2, 2, 2, 5352, 5353, 7, 78, 2, 2, 5353, 5354, 7, 67, 2, 2, 5354, 5355, 7, 80, 2, 2, 5355, 5356, 7, 73, 2, 2, 5356, 5357, 7, 87, 2, 2, 5357, 5358, 7, 67, 2, 2, 5358, 5359, 7, 73, 2, 2, 5359, 5360, 7, 71, 2, 2, 5360, 794, 3, 2, 2, 2, 5361, 5362, 7, 78, 2, 2, 5362, 5363, 7, 67, 2, 2, 5363, 5364, 7, 85, 2, 2, 5364, 5365, 7, 86, 2, 2, 5365, 796, 3, 2, 2, 2, 5366, 5367, 7, 78, 2, 2, 5367, 5368, 7, 71, 2, 2, 5368, 5369, 7, 67, 2, 2, 5369, 5370, 7, 88, 2, 2, 5370, 5371, 7, 71, 2, 2, 5371, 5372, 7, 85, 2, 2, 5372, 798, 3, 2, 2, 2, 5373, 5374, 7, 78, 2, 2, 5374, 5375, 7, 71, 2, 2, 5375, 5376, 7, 85, 2, 2, 5376, 5377, 7, 85, 2, 2, 5377, 800, 3, 2, 2, 2, 5378, 5379, 7, 78, 2, 2, 5379, 5380, 7, 71, 2, 2, 5380, 5381, 7, 88, 2, 2, 5381, 5382, 7, 71, 2, 2, 5382, 5383, 7, 78, 2, 2, 5383, 802, 3, 2, 2, 2, 5384, 5385, 7, 78, 2, 2, 5385, 5386, 7, 75, 2, 2, 5386, 5387, 7, 85, 2, 2, 5387, 5388, 7, 86, 2, 2, 5388, 804, 3, 2, 2, 2, 5389, 5390, 7, 78, 2, 2, 5390, 5391, 7, 81, 2, 2, 5391, 5392, 7, 69, 2, 2, 5392, 5393, 7, 67, 2, 2, 5393, 5394, 7, 78, 2, 2, 5394, 806, 3, 2, 2, 2, 5395, 5396, 7, 78, 2, 2, 5396, 5397, 7, 81, 2, 2, 5397, 5398, 7, 73, 2, 2, 5398, 5399, 7, 72, 2, 2, 5399, 5400, 7, 75, 2, 2, 5400, 5401, 7, 78, 2, 2, 5401, 5402, 7, 71, 2, 2, 5402, 808, 3, 2, 2, 2, 5403, 5404, 7, 78, 2, 2, 5404, 5405, 7, 81, 2, 2, 5405, 5406, 7, 73, 2, 2, 5406, 5407, 7, 85, 2, 2, 5407, 810, 3, 2, 2, 2, 5408, 5409, 7, 79, 2, 2, 5409, 5410, 7, 67, 2, 2, 5410, 5411, 7, 85, 2, 2, 5411, 5412, 7, 86, 2, 2, 5412, 5413, 7, 71, 2, 2, 5413, 5414, 7, 84, 2, 2, 5414, 812, 3, 2, 2, 2, 5415, 5416, 7, 79, 2, 2, 5416, 5417, 7, 67, 2, 2, 5417, 5418, 7, 85, 2, 2, 5418, 5419, 7, 86, 2, 2, 5419, 5420, 7, 71, 2, 2, 5420, 5421, 7, 84, 2, 2, 5421, 5422, 7, 97, 2, 2, 5422, 5423, 7, 67, 2, 2, 5423, 5424, 7, 87, 2, 2, 5424, 5425, 7, 86, 2, 2, 5425, 5426, 7, 81, 2, 2, 5426, 5427, 7, 97, 2, 2, 5427, 5428, 7, 82, 2, 2, 5428, 5429, 7, 81, 2, 2, 5429, 5430, 7, 85, 2, 2, 5430, 5431, 7, 75, 2, 2, 5431, 5432, 7, 86, 2, 2, 5432, 5433, 7, 75, 2, 2, 5433, 5434, 7, 81, 2, 2, 5434, 5435, 7, 80, 2, 2, 5435, 814, 3, 2, 2, 2, 5436, 5437, 7, 79, 2, 2, 5437, 5438, 7, 67, 2, 2, 5438, 5439, 7, 85, 2, 2, 5439, 5440, 7, 86, 2, 2, 5440, 5441, 7, 71, 2, 2, 5441, 5442, 7, 84, 2, 2, 5442, 5443, 7, 97, 2, 2, 5443, 5444, 7, 69, 2, 2, 5444, 5445, 7, 81, 2, 2, 5445, 5446, 7, 80, 2, 2, 5446, 5447, 7, 80, 2, 2, 5447, 5448, 7, 71, 2, 2, 5448, 5449, 7, 69, 2, 2, 5449, 5450, 7, 86, 2, 2, 5450, 5451, 7, 97, 2, 2, 5451, 5452, 7, 84, 2, 2, 5452, 5453, 7, 71, 2, 2, 5453, 5454, 7, 86, 2, 2, 5454, 5455, 7, 84, 2, 2, 5455, 5456, 7, 91, 2, 2, 5456, 816, 3, 2, 2, 2, 5457, 5458, 7, 79, 2, 2, 5458, 5459, 7, 67, 2, 2, 5459, 5460, 7, 85, 2, 2, 5460, 5461, 7, 86, 2, 2, 5461, 5462, 7, 71, 2, 2, 5462, 5463, 7, 84, 2, 2, 5463, 5464, 7, 97, 2, 2, 5464, 5465, 7, 70, 2, 2, 5465, 5466, 7, 71, 2, 2, 5466, 5467, 7, 78, 2, 2, 5467, 5468, 7, 67, 2, 2, 5468, 5469, 7, 91, 2, 2, 5469, 818, 3, 2, 2, 2, 5470, 5471, 7, 79, 2, 2, 5471, 5472, 7, 67, 2, 2, 5472, 5473, 7, 85, 2, 2, 5473, 5474, 7, 86, 2, 2, 5474, 5475, 7, 71, 2, 2, 5475, 5476, 7, 84, 2, 2, 5476, 5477, 7, 97, 2, 2, 5477, 5478, 7, 74, 2, 2, 5478, 5479, 7, 71, 2, 2, 5479, 5480, 7, 67, 2, 2, 5480, 5481, 7, 84, 2, 2, 5481, 5482, 7, 86, 2, 2, 5482, 5483, 7, 68, 2, 2, 5483, 5484, 7, 71, 2, 2, 5484, 5485, 7, 67, 2, 2, 5485, 5486, 7, 86, 2, 2, 5486, 5487, 7, 97, 2, 2, 5487, 5488, 7, 82, 2, 2, 5488, 5489, 7, 71, 2, 2, 5489, 5490, 7, 84, 2, 2, 5490, 5491, 7, 75, 2, 2, 5491, 5492, 7, 81, 2, 2, 5492, 5493, 7, 70, 2, 2, 5493, 820, 3, 2, 2, 2, 5494, 5495, 7, 79, 2, 2, 5495, 5496, 7, 67, 2, 2, 5496, 5497, 7, 85, 2, 2, 5497, 5498, 7, 86, 2, 2, 5498, 5499, 7, 71, 2, 2, 5499, 5500, 7, 84, 2, 2, 5500, 5501, 7, 97, 2, 2, 5501, 5502, 7, 74, 2, 2, 5502, 5503, 7, 81, 2, 2, 5503, 5504, 7, 85, 2, 2, 5504, 5505, 7, 86, 2, 2, 5505, 822, 3, 2, 2, 2, 5506, 5507, 7, 79, 2, 2, 5507, 5508, 7, 67, 2, 2, 5508, 5509, 7, 85, 2, 2, 5509, 5510, 7, 86, 2, 2, 5510, 5511, 7, 71, 2, 2, 5511, 5512, 7, 84, 2, 2, 5512, 5513, 7, 97, 2, 2, 5513, 5514, 7, 78, 2, 2, 5514, 5515, 7, 81, 2, 2, 5515, 5516, 7, 73, 2, 2, 5516, 5517, 7, 97, 2, 2, 5517, 5518, 7, 72, 2, 2, 5518, 5519, 7, 75, 2, 2, 5519, 5520, 7, 78, 2, 2, 5520, 5521, 7, 71, 2, 2, 5521, 824, 3, 2, 2, 2, 5522, 5523, 7, 79, 2, 2, 5523, 5524, 7, 67, 2, 2, 5524, 5525, 7, 85, 2, 2, 5525, 5526, 7, 86, 2, 2, 5526, 5527, 7, 71, 2, 2, 5527, 5528, 7, 84, 2, 2, 5528, 5529, 7, 97, 2, 2, 5529, 5530, 7, 78, 2, 2, 5530, 5531, 7, 81, 2, 2, 5531, 5532, 7, 73, 2, 2, 5532, 5533, 7, 97, 2, 2, 5533, 5534, 7, 82, 2, 2, 5534, 5535, 7, 81, 2, 2, 5535, 5536, 7, 85, 2, 2, 5536, 826, 3, 2, 2, 2, 5537, 5538, 7, 79, 2, 2, 5538, 5539, 7, 67, 2, 2, 5539, 5540, 7, 85, 2, 2, 5540, 5541, 7, 86, 2, 2, 5541, 5542, 7, 71, 2, 2, 5542, 5543, 7, 84, 2, 2, 5543, 5544, 7, 97, 2, 2, 5544, 5545, 7, 82, 2, 2, 5545, 5546, 7, 67, 2, 2, 5546, 5547, 7, 85, 2, 2, 5547, 5548, 7, 85, 2, 2, 5548, 5549, 7, 89, 2, 2, 5549, 5550, 7, 81, 2, 2, 5550, 5551, 7, 84, 2, 2, 5551, 5552, 7, 70, 2, 2, 5552, 828, 3, 2, 2, 2, 5553, 5554, 7, 79, 2, 2, 5554, 5555, 7, 67, 2, 2, 5555, 5556, 7, 85, 2, 2, 5556, 5557, 7, 86, 2, 2, 5557, 5558, 7, 71, 2, 2, 5558, 5559, 7, 84, 2, 2, 5559, 5560, 7, 97, 2, 2, 5560, 5561, 7, 82, 2, 2, 5561, 5562, 7, 81, 2, 2, 5562, 5563, 7, 84, 2, 2, 5563, 5564, 7, 86, 2, 2, 5564, 830, 3, 2, 2, 2, 5565, 5566, 7, 79, 2, 2, 5566, 5567, 7, 67, 2, 2, 5567, 5568, 7, 85, 2, 2, 5568, 5569, 7, 86, 2, 2, 5569, 5570, 7, 71, 2, 2, 5570, 5571, 7, 84, 2, 2, 5571, 5572, 7, 97, 2, 2, 5572, 5573, 7, 84, 2, 2, 5573, 5574, 7, 71, 2, 2, 5574, 5575, 7, 86, 2, 2, 5575, 5576, 7, 84, 2, 2, 5576, 5577, 7, 91, 2, 2, 5577, 5578, 7, 97, 2, 2, 5578, 5579, 7, 69, 2, 2, 5579, 5580, 7, 81, 2, 2, 5580, 5581, 7, 87, 2, 2, 5581, 5582, 7, 80, 2, 2, 5582, 5583, 7, 86, 2, 2, 5583, 832, 3, 2, 2, 2, 5584, 5585, 7, 79, 2, 2, 5585, 5586, 7, 67, 2, 2, 5586, 5587, 7, 85, 2, 2, 5587, 5588, 7, 86, 2, 2, 5588, 5589, 7, 71, 2, 2, 5589, 5590, 7, 84, 2, 2, 5590, 5591, 7, 97, 2, 2, 5591, 5592, 7, 85, 2, 2, 5592, 5593, 7, 85, 2, 2, 5593, 5594, 7, 78, 2, 2, 5594, 834, 3, 2, 2, 2, 5595, 5596, 7, 79, 2, 2, 5596, 5597, 7, 67, 2, 2, 5597, 5598, 7, 85, 2, 2, 5598, 5599, 7, 86, 2, 2, 5599, 5600, 7, 71, 2, 2, 5600, 5601, 7, 84, 2, 2, 5601, 5602, 7, 97, 2, 2, 5602, 5603, 7, 85, 2, 2, 5603, 5604, 7, 85, 2, 2, 5604, 5605, 7, 78, 2, 2, 5605, 5606, 7, 97, 2, 2, 5606, 5607, 7, 69, 2, 2, 5607, 5608, 7, 67, 2, 2, 5608, 836, 3, 2, 2, 2, 5609, 5610, 7, 79, 2, 2, 5610, 5611, 7, 67, 2, 2, 5611, 5612, 7, 85, 2, 2, 5612, 5613, 7, 86, 2, 2, 5613, 5614, 7, 71, 2, 2, 5614, 5615, 7, 84, 2, 2, 5615, 5616, 7, 97, 2, 2, 5616, 5617, 7, 85, 2, 2, 5617, 5618, 7, 85, 2, 2, 5618, 5619, 7, 78, 2, 2, 5619, 5620, 7, 97, 2, 2, 5620, 5621, 7, 69, 2, 2, 5621, 5622, 7, 67, 2, 2, 5622, 5623, 7, 82, 2, 2, 5623, 5624, 7, 67, 2, 2, 5624, 5625, 7, 86, 2, 2, 5625, 5626, 7, 74, 2, 2, 5626, 838, 3, 2, 2, 2, 5627, 5628, 7, 79, 2, 2, 5628, 5629, 7, 67, 2, 2, 5629, 5630, 7, 85, 2, 2, 5630, 5631, 7, 86, 2, 2, 5631, 5632, 7, 71, 2, 2, 5632, 5633, 7, 84, 2, 2, 5633, 5634, 7, 97, 2, 2, 5634, 5635, 7, 85, 2, 2, 5635, 5636, 7, 85, 2, 2, 5636, 5637, 7, 78, 2, 2, 5637, 5638, 7, 97, 2, 2, 5638, 5639, 7, 69, 2, 2, 5639, 5640, 7, 71, 2, 2, 5640, 5641, 7, 84, 2, 2, 5641, 5642, 7, 86, 2, 2, 5642, 840, 3, 2, 2, 2, 5643, 5644, 7, 79, 2, 2, 5644, 5645, 7, 67, 2, 2, 5645, 5646, 7, 85, 2, 2, 5646, 5647, 7, 86, 2, 2, 5647, 5648, 7, 71, 2, 2, 5648, 5649, 7, 84, 2, 2, 5649, 5650, 7, 97, 2, 2, 5650, 5651, 7, 85, 2, 2, 5651, 5652, 7, 85, 2, 2, 5652, 5653, 7, 78, 2, 2, 5653, 5654, 7, 97, 2, 2, 5654, 5655, 7, 69, 2, 2, 5655, 5656, 7, 75, 2, 2, 5656, 5657, 7, 82, 2, 2, 5657, 5658, 7, 74, 2, 2, 5658, 5659, 7, 71, 2, 2, 5659, 5660, 7, 84, 2, 2, 5660, 842, 3, 2, 2, 2, 5661, 5662, 7, 79, 2, 2, 5662, 5663, 7, 67, 2, 2, 5663, 5664, 7, 85, 2, 2, 5664, 5665, 7, 86, 2, 2, 5665, 5666, 7, 71, 2, 2, 5666, 5667, 7, 84, 2, 2, 5667, 5668, 7, 97, 2, 2, 5668, 5669, 7, 85, 2, 2, 5669, 5670, 7, 85, 2, 2, 5670, 5671, 7, 78, 2, 2, 5671, 5672, 7, 97, 2, 2, 5672, 5673, 7, 69, 2, 2, 5673, 5674, 7, 84, 2, 2, 5674, 5675, 7, 78, 2, 2, 5675, 844, 3, 2, 2, 2, 5676, 5677, 7, 79, 2, 2, 5677, 5678, 7, 67, 2, 2, 5678, 5679, 7, 85, 2, 2, 5679, 5680, 7, 86, 2, 2, 5680, 5681, 7, 71, 2, 2, 5681, 5682, 7, 84, 2, 2, 5682, 5683, 7, 97, 2, 2, 5683, 5684, 7, 85, 2, 2, 5684, 5685, 7, 85, 2, 2, 5685, 5686, 7, 78, 2, 2, 5686, 5687, 7, 97, 2, 2, 5687, 5688, 7, 69, 2, 2, 5688, 5689, 7, 84, 2, 2, 5689, 5690, 7, 78, 2, 2, 5690, 5691, 7, 82, 2, 2, 5691, 5692, 7, 67, 2, 2, 5692, 5693, 7, 86, 2, 2, 5693, 5694, 7, 74, 2, 2, 5694, 846, 3, 2, 2, 2, 5695, 5696, 7, 79, 2, 2, 5696, 5697, 7, 67, 2, 2, 5697, 5698, 7, 85, 2, 2, 5698, 5699, 7, 86, 2, 2, 5699, 5700, 7, 71, 2, 2, 5700, 5701, 7, 84, 2, 2, 5701, 5702, 7, 97, 2, 2, 5702, 5703, 7, 85, 2, 2, 5703, 5704, 7, 85, 2, 2, 5704, 5705, 7, 78, 2, 2, 5705, 5706, 7, 97, 2, 2, 5706, 5707, 7, 77, 2, 2, 5707, 5708, 7, 71, 2, 2, 5708, 5709, 7, 91, 2, 2, 5709, 848, 3, 2, 2, 2, 5710, 5711, 7, 79, 2, 2, 5711, 5712, 7, 67, 2, 2, 5712, 5713, 7, 85, 2, 2, 5713, 5714, 7, 86, 2, 2, 5714, 5715, 7, 71, 2, 2, 5715, 5716, 7, 84, 2, 2, 5716, 5717, 7, 97, 2, 2, 5717, 5718, 7, 86, 2, 2, 5718, 5719, 7, 78, 2, 2, 5719, 5720, 7, 85, 2, 2, 5720, 5721, 7, 97, 2, 2, 5721, 5722, 7, 88, 2, 2, 5722, 5723, 7, 71, 2, 2, 5723, 5724, 7, 84, 2, 2, 5724, 5725, 7, 85, 2, 2, 5725, 5726, 7, 75, 2, 2, 5726, 5727, 7, 81, 2, 2, 5727, 5728, 7, 80, 2, 2, 5728, 850, 3, 2, 2, 2, 5729, 5730, 7, 79, 2, 2, 5730, 5731, 7, 67, 2, 2, 5731, 5732, 7, 85, 2, 2, 5732, 5733, 7, 86, 2, 2, 5733, 5734, 7, 71, 2, 2, 5734, 5735, 7, 84, 2, 2, 5735, 5736, 7, 97, 2, 2, 5736, 5737, 7, 87, 2, 2, 5737, 5738, 7, 85, 2, 2, 5738, 5739, 7, 71, 2, 2, 5739, 5740, 7, 84, 2, 2, 5740, 852, 3, 2, 2, 2, 5741, 5742, 7, 79, 2, 2, 5742, 5743, 7, 67, 2, 2, 5743, 5744, 7, 90, 2, 2, 5744, 5745, 7, 97, 2, 2, 5745, 5746, 7, 69, 2, 2, 5746, 5747, 7, 81, 2, 2, 5747, 5748, 7, 80, 2, 2, 5748, 5749, 7, 80, 2, 2, 5749, 5750, 7, 71, 2, 2, 5750, 5751, 7, 69, 2, 2, 5751, 5752, 7, 86, 2, 2, 5752, 5753, 7, 75, 2, 2, 5753, 5754, 7, 81, 2, 2, 5754, 5755, 7, 80, 2, 2, 5755, 5756, 7, 85, 2, 2, 5756, 5757, 7, 97, 2, 2, 5757, 5758, 7, 82, 2, 2, 5758, 5759, 7, 71, 2, 2, 5759, 5760, 7, 84, 2, 2, 5760, 5761, 7, 97, 2, 2, 5761, 5762, 7, 74, 2, 2, 5762, 5763, 7, 81, 2, 2, 5763, 5764, 7, 87, 2, 2, 5764, 5765, 7, 84, 2, 2, 5765, 854, 3, 2, 2, 2, 5766, 5767, 7, 79, 2, 2, 5767, 5768, 7, 67, 2, 2, 5768, 5769, 7, 90, 2, 2, 5769, 5770, 7, 97, 2, 2, 5770, 5771, 7, 83, 2, 2, 5771, 5772, 7, 87, 2, 2, 5772, 5773, 7, 71, 2, 2, 5773, 5774, 7, 84, 2, 2, 5774, 5775, 7, 75, 2, 2, 5775, 5776, 7, 71, 2, 2, 5776, 5777, 7, 85, 2, 2, 5777, 5778, 7, 97, 2, 2, 5778, 5779, 7, 82, 2, 2, 5779, 5780, 7, 71, 2, 2, 5780, 5781, 7, 84, 2, 2, 5781, 5782, 7, 97, 2, 2, 5782, 5783, 7, 74, 2, 2, 5783, 5784, 7, 81, 2, 2, 5784, 5785, 7, 87, 2, 2, 5785, 5786, 7, 84, 2, 2, 5786, 856, 3, 2, 2, 2, 5787, 5788, 7, 79, 2, 2, 5788, 5789, 7, 67, 2, 2, 5789, 5790, 7, 90, 2, 2, 5790, 5791, 7, 97, 2, 2, 5791, 5792, 7, 84, 2, 2, 5792, 5793, 7, 81, 2, 2, 5793, 5794, 7, 89, 2, 2, 5794, 5795, 7, 85, 2, 2, 5795, 858, 3, 2, 2, 2, 5796, 5797, 7, 79, 2, 2, 5797, 5798, 7, 67, 2, 2, 5798, 5799, 7, 90, 2, 2, 5799, 5800, 7, 97, 2, 2, 5800, 5801, 7, 85, 2, 2, 5801, 5802, 7, 75, 2, 2, 5802, 5803, 7, 92, 2, 2, 5803, 5804, 7, 71, 2, 2, 5804, 860, 3, 2, 2, 2, 5805, 5806, 7, 79, 2, 2, 5806, 5807, 7, 67, 2, 2, 5807, 5808, 7, 90, 2, 2, 5808, 5809, 7, 97, 2, 2, 5809, 5810, 7, 87, 2, 2, 5810, 5811, 7, 82, 2, 2, 5811, 5812, 7, 70, 2, 2, 5812, 5813, 7, 67, 2, 2, 5813, 5814, 7, 86, 2, 2, 5814, 5815, 7, 71, 2, 2, 5815, 5816, 7, 85, 2, 2, 5816, 5817, 7, 97, 2, 2, 5817, 5818, 7, 82, 2, 2, 5818, 5819, 7, 71, 2, 2, 5819, 5820, 7, 84, 2, 2, 5820, 5821, 7, 97, 2, 2, 5821, 5822, 7, 74, 2, 2, 5822, 5823, 7, 81, 2, 2, 5823, 5824, 7, 87, 2, 2, 5824, 5825, 7, 84, 2, 2, 5825, 862, 3, 2, 2, 2, 5826, 5827, 7, 79, 2, 2, 5827, 5828, 7, 67, 2, 2, 5828, 5829, 7, 90, 2, 2, 5829, 5830, 7, 97, 2, 2, 5830, 5831, 7, 87, 2, 2, 5831, 5832, 7, 85, 2, 2, 5832, 5833, 7, 71, 2, 2, 5833, 5834, 7, 84, 2, 2, 5834, 5835, 7, 97, 2, 2, 5835, 5836, 7, 69, 2, 2, 5836, 5837, 7, 81, 2, 2, 5837, 5838, 7, 80, 2, 2, 5838, 5839, 7, 80, 2, 2, 5839, 5840, 7, 71, 2, 2, 5840, 5841, 7, 69, 2, 2, 5841, 5842, 7, 86, 2, 2, 5842, 5843, 7, 75, 2, 2, 5843, 5844, 7, 81, 2, 2, 5844, 5845, 7, 80, 2, 2, 5845, 5846, 7, 85, 2, 2, 5846, 864, 3, 2, 2, 2, 5847, 5848, 7, 79, 2, 2, 5848, 5849, 7, 71, 2, 2, 5849, 5850, 7, 70, 2, 2, 5850, 5851, 7, 75, 2, 2, 5851, 5852, 7, 87, 2, 2, 5852, 5853, 7, 79, 2, 2, 5853, 866, 3, 2, 2, 2, 5854, 5855, 7, 79, 2, 2, 5855, 5856, 7, 71, 2, 2, 5856, 5857, 7, 84, 2, 2, 5857, 5858, 7, 73, 2, 2, 5858, 5859, 7, 71, 2, 2, 5859, 868, 3, 2, 2, 2, 5860, 5861, 7, 79, 2, 2, 5861, 5862, 7, 71, 2, 2, 5862, 5863, 7, 85, 2, 2, 5863, 5864, 7, 85, 2, 2, 5864, 5865, 7, 67, 2, 2, 5865, 5866, 7, 73, 2, 2, 5866, 5867, 7, 71, 2, 2, 5867, 5868, 7, 97, 2, 2, 5868, 5869, 7, 86, 2, 2, 5869, 5870, 7, 71, 2, 2, 5870, 5871, 7, 90, 2, 2, 5871, 5872, 7, 86, 2, 2, 5872, 870, 3, 2, 2, 2, 5873, 5874, 7, 79, 2, 2, 5874, 5875, 7, 75, 2, 2, 5875, 5876, 7, 70, 2, 2, 5876, 872, 3, 2, 2, 2, 5877, 5878, 7, 79, 2, 2, 5878, 5879, 7, 75, 2, 2, 5879, 5880, 7, 73, 2, 2, 5880, 5881, 7, 84, 2, 2, 5881, 5882, 7, 67, 2, 2, 5882, 5883, 7, 86, 2, 2, 5883, 5884, 7, 71, 2, 2, 5884, 874, 3, 2, 2, 2, 5885, 5886, 7, 79, 2, 2, 5886, 5887, 7, 75, 2, 2, 5887, 5888, 7, 80, 2, 2, 5888, 5889, 7, 97, 2, 2, 5889, 5890, 7, 84, 2, 2, 5890, 5891, 7, 81, 2, 2, 5891, 5892, 7, 89, 2, 2, 5892, 5893, 7, 85, 2, 2, 5893, 876, 3, 2, 2, 2, 5894, 5895, 7, 79, 2, 2, 5895, 5896, 7, 81, 2, 2, 5896, 5897, 7, 70, 2, 2, 5897, 5898, 7, 71, 2, 2, 5898, 878, 3, 2, 2, 2, 5899, 5900, 7, 79, 2, 2, 5900, 5901, 7, 81, 2, 2, 5901, 5902, 7, 70, 2, 2, 5902, 5903, 7, 75, 2, 2, 5903, 5904, 7, 72, 2, 2, 5904, 5905, 7, 91, 2, 2, 5905, 880, 3, 2, 2, 2, 5906, 5907, 7, 79, 2, 2, 5907, 5908, 7, 87, 2, 2, 5908, 5909, 7, 86, 2, 2, 5909, 5910, 7, 71, 2, 2, 5910, 5911, 7, 90, 2, 2, 5911, 882, 3, 2, 2, 2, 5912, 5913, 7, 79, 2, 2, 5913, 5914, 7, 91, 2, 2, 5914, 5915, 7, 85, 2, 2, 5915, 5916, 7, 83, 2, 2, 5916, 5917, 7, 78, 2, 2, 5917, 884, 3, 2, 2, 2, 5918, 5919, 7, 79, 2, 2, 5919, 5920, 7, 91, 2, 2, 5920, 5921, 7, 85, 2, 2, 5921, 5922, 7, 83, 2, 2, 5922, 5923, 7, 78, 2, 2, 5923, 5924, 7, 97, 2, 2, 5924, 5925, 7, 71, 2, 2, 5925, 5926, 7, 84, 2, 2, 5926, 5927, 7, 84, 2, 2, 5927, 5928, 7, 80, 2, 2, 5928, 5929, 7, 81, 2, 2, 5929, 886, 3, 2, 2, 2, 5930, 5931, 7, 80, 2, 2, 5931, 5932, 7, 67, 2, 2, 5932, 5933, 7, 79, 2, 2, 5933, 5934, 7, 71, 2, 2, 5934, 888, 3, 2, 2, 2, 5935, 5936, 7, 80, 2, 2, 5936, 5937, 7, 67, 2, 2, 5937, 5938, 7, 79, 2, 2, 5938, 5939, 7, 71, 2, 2, 5939, 5940, 7, 85, 2, 2, 5940, 890, 3, 2, 2, 2, 5941, 5942, 7, 80, 2, 2, 5942, 5943, 7, 69, 2, 2, 5943, 5944, 7, 74, 2, 2, 5944, 5945, 7, 67, 2, 2, 5945, 5946, 7, 84, 2, 2, 5946, 892, 3, 2, 2, 2, 5947, 5948, 7, 80, 2, 2, 5948, 5949, 7, 71, 2, 2, 5949, 5950, 7, 88, 2, 2, 5950, 5951, 7, 71, 2, 2, 5951, 5952, 7, 84, 2, 2, 5952, 894, 3, 2, 2, 2, 5953, 5954, 7, 80, 2, 2, 5954, 5955, 7, 71, 2, 2, 5955, 5956, 7, 90, 2, 2, 5956, 5957, 7, 86, 2, 2, 5957, 896, 3, 2, 2, 2, 5958, 5959, 7, 80, 2, 2, 5959, 5960, 7, 81, 2, 2, 5960, 898, 3, 2, 2, 2, 5961, 5962, 7, 80, 2, 2, 5962, 5963, 7, 81, 2, 2, 5963, 5964, 7, 70, 2, 2, 5964, 5965, 7, 71, 2, 2, 5965, 5966, 7, 73, 2, 2, 5966, 5967, 7, 84, 2, 2, 5967, 5968, 7, 81, 2, 2, 5968, 5969, 7, 87, 2, 2, 5969, 5970, 7, 82, 2, 2, 5970, 900, 3, 2, 2, 2, 5971, 5972, 7, 80, 2, 2, 5972, 5973, 7, 81, 2, 2, 5973, 5974, 7, 80, 2, 2, 5974, 5975, 7, 71, 2, 2, 5975, 902, 3, 2, 2, 2, 5976, 5977, 7, 81, 2, 2, 5977, 5978, 7, 72, 2, 2, 5978, 5979, 7, 72, 2, 2, 5979, 5980, 7, 78, 2, 2, 5980, 5981, 7, 75, 2, 2, 5981, 5982, 7, 80, 2, 2, 5982, 5983, 7, 71, 2, 2, 5983, 904, 3, 2, 2, 2, 5984, 5985, 7, 81, 2, 2, 5985, 5986, 7, 72, 2, 2, 5986, 5987, 7, 72, 2, 2, 5987, 5988, 7, 85, 2, 2, 5988, 5989, 7, 71, 2, 2, 5989, 5990, 7, 86, 2, 2, 5990, 906, 3, 2, 2, 2, 5991, 5992, 7, 81, 2, 2, 5992, 5993, 7, 76, 2, 2, 5993, 908, 3, 2, 2, 2, 5994, 5995, 7, 81, 2, 2, 5995, 5996, 7, 78, 2, 2, 5996, 5997, 7, 70, 2, 2, 5997, 5998, 7, 97, 2, 2, 5998, 5999, 7, 82, 2, 2, 5999, 6000, 7, 67, 2, 2, 6000, 6001, 7, 85, 2, 2, 6001, 6002, 7, 85, 2, 2, 6002, 6003, 7, 89, 2, 2, 6003, 6004, 7, 81, 2, 2, 6004, 6005, 7, 84, 2, 2, 6005, 6006, 7, 70, 2, 2, 6006, 910, 3, 2, 2, 2, 6007, 6008, 7, 81, 2, 2, 6008, 6009, 7, 80, 2, 2, 6009, 6010, 7, 71, 2, 2, 6010, 912, 3, 2, 2, 2, 6011, 6012, 7, 81, 2, 2, 6012, 6013, 7, 80, 2, 2, 6013, 6014, 7, 78, 2, 2, 6014, 6015, 7, 75, 2, 2, 6015, 6016, 7, 80, 2, 2, 6016, 6017, 7, 71, 2, 2, 6017, 914, 3, 2, 2, 2, 6018, 6019, 7, 81, 2, 2, 6019, 6020, 7, 80, 2, 2, 6020, 6021, 7, 78, 2, 2, 6021, 6022, 7, 91, 2, 2, 6022, 916, 3, 2, 2, 2, 6023, 6024, 7, 81, 2, 2, 6024, 6025, 7, 82, 2, 2, 6025, 6026, 7, 71, 2, 2, 6026, 6027, 7, 80, 2, 2, 6027, 918, 3, 2, 2, 2, 6028, 6029, 7, 81, 2, 2, 6029, 6030, 7, 82, 2, 2, 6030, 6031, 7, 86, 2, 2, 6031, 6032, 7, 75, 2, 2, 6032, 6033, 7, 79, 2, 2, 6033, 6034, 7, 75, 2, 2, 6034, 6035, 7, 92, 2, 2, 6035, 6036, 7, 71, 2, 2, 6036, 6037, 7, 84, 2, 2, 6037, 6038, 7, 97, 2, 2, 6038, 6039, 7, 69, 2, 2, 6039, 6040, 7, 81, 2, 2, 6040, 6041, 7, 85, 2, 2, 6041, 6042, 7, 86, 2, 2, 6042, 6043, 7, 85, 2, 2, 6043, 920, 3, 2, 2, 2, 6044, 6045, 7, 81, 2, 2, 6045, 6046, 7, 82, 2, 2, 6046, 6047, 7, 86, 2, 2, 6047, 6048, 7, 75, 2, 2, 6048, 6049, 7, 81, 2, 2, 6049, 6050, 7, 80, 2, 2, 6050, 6051, 7, 85, 2, 2, 6051, 922, 3, 2, 2, 2, 6052, 6053, 7, 81, 2, 2, 6053, 6054, 7, 89, 2, 2, 6054, 6055, 7, 80, 2, 2, 6055, 6056, 7, 71, 2, 2, 6056, 6057, 7, 84, 2, 2, 6057, 924, 3, 2, 2, 2, 6058, 6059, 7, 82, 2, 2, 6059, 6060, 7, 67, 2, 2, 6060, 6061, 7, 69, 2, 2, 6061, 6062, 7, 77, 2, 2, 6062, 6063, 7, 97, 2, 2, 6063, 6064, 7, 77, 2, 2, 6064, 6065, 7, 71, 2, 2, 6065, 6066, 7, 91, 2, 2, 6066, 6067, 7, 85, 2, 2, 6067, 926, 3, 2, 2, 2, 6068, 6069, 7, 82, 2, 2, 6069, 6070, 7, 67, 2, 2, 6070, 6071, 7, 73, 2, 2, 6071, 6072, 7, 71, 2, 2, 6072, 928, 3, 2, 2, 2, 6073, 6074, 7, 82, 2, 2, 6074, 6075, 7, 67, 2, 2, 6075, 6076, 7, 84, 2, 2, 6076, 6077, 7, 85, 2, 2, 6077, 6078, 7, 71, 2, 2, 6078, 6079, 7, 84, 2, 2, 6079, 930, 3, 2, 2, 2, 6080, 6081, 7, 82, 2, 2, 6081, 6082, 7, 67, 2, 2, 6082, 6083, 7, 84, 2, 2, 6083, 6084, 7, 86, 2, 2, 6084, 6085, 7, 75, 2, 2, 6085, 6086, 7, 67, 2, 2, 6086, 6087, 7, 78, 2, 2, 6087, 932, 3, 2, 2, 2, 6088, 6089, 7, 82, 2, 2, 6089, 6090, 7, 67, 2, 2, 6090, 6091, 7, 84, 2, 2, 6091, 6092, 7, 86, 2, 2, 6092, 6093, 7, 75, 2, 2, 6093, 6094, 7, 86, 2, 2, 6094, 6095, 7, 75, 2, 2, 6095, 6096, 7, 81, 2, 2, 6096, 6097, 7, 80, 2, 2, 6097, 6098, 7, 75, 2, 2, 6098, 6099, 7, 80, 2, 2, 6099, 6100, 7, 73, 2, 2, 6100, 934, 3, 2, 2, 2, 6101, 6102, 7, 82, 2, 2, 6102, 6103, 7, 67, 2, 2, 6103, 6104, 7, 84, 2, 2, 6104, 6105, 7, 86, 2, 2, 6105, 6106, 7, 75, 2, 2, 6106, 6107, 7, 86, 2, 2, 6107, 6108, 7, 75, 2, 2, 6108, 6109, 7, 81, 2, 2, 6109, 6110, 7, 80, 2, 2, 6110, 6111, 7, 85, 2, 2, 6111, 936, 3, 2, 2, 2, 6112, 6113, 7, 82, 2, 2, 6113, 6114, 7, 67, 2, 2, 6114, 6115, 7, 85, 2, 2, 6115, 6116, 7, 85, 2, 2, 6116, 6117, 7, 89, 2, 2, 6117, 6118, 7, 81, 2, 2, 6118, 6119, 7, 84, 2, 2, 6119, 6120, 7, 70, 2, 2, 6120, 938, 3, 2, 2, 2, 6121, 6122, 7, 82, 2, 2, 6122, 6123, 7, 74, 2, 2, 6123, 6124, 7, 67, 2, 2, 6124, 6125, 7, 85, 2, 2, 6125, 6126, 7, 71, 2, 2, 6126, 940, 3, 2, 2, 2, 6127, 6128, 7, 82, 2, 2, 6128, 6129, 7, 78, 2, 2, 6129, 6130, 7, 87, 2, 2, 6130, 6131, 7, 73, 2, 2, 6131, 6132, 7, 75, 2, 2, 6132, 6133, 7, 80, 2, 2, 6133, 942, 3, 2, 2, 2, 6134, 6135, 7, 82, 2, 2, 6135, 6136, 7, 78, 2, 2, 6136, 6137, 7, 87, 2, 2, 6137, 6138, 7, 73, 2, 2, 6138, 6139, 7, 75, 2, 2, 6139, 6140, 7, 80, 2, 2, 6140, 6141, 7, 97, 2, 2, 6141, 6142, 7, 70, 2, 2, 6142, 6143, 7, 75, 2, 2, 6143, 6144, 7, 84, 2, 2, 6144, 944, 3, 2, 2, 2, 6145, 6146, 7, 82, 2, 2, 6146, 6147, 7, 78, 2, 2, 6147, 6148, 7, 87, 2, 2, 6148, 6149, 7, 73, 2, 2, 6149, 6150, 7, 75, 2, 2, 6150, 6151, 7, 80, 2, 2, 6151, 6152, 7, 85, 2, 2, 6152, 946, 3, 2, 2, 2, 6153, 6154, 7, 82, 2, 2, 6154, 6155, 7, 81, 2, 2, 6155, 6156, 7, 84, 2, 2, 6156, 6157, 7, 86, 2, 2, 6157, 948, 3, 2, 2, 2, 6158, 6159, 7, 82, 2, 2, 6159, 6160, 7, 84, 2, 2, 6160, 6161, 7, 71, 2, 2, 6161, 6162, 7, 69, 2, 2, 6162, 6163, 7, 71, 2, 2, 6163, 6164, 7, 70, 2, 2, 6164, 6165, 7, 71, 2, 2, 6165, 6166, 7, 85, 2, 2, 6166, 950, 3, 2, 2, 2, 6167, 6168, 7, 82, 2, 2, 6168, 6169, 7, 84, 2, 2, 6169, 6170, 7, 71, 2, 2, 6170, 6171, 7, 82, 2, 2, 6171, 6172, 7, 67, 2, 2, 6172, 6173, 7, 84, 2, 2, 6173, 6174, 7, 71, 2, 2, 6174, 952, 3, 2, 2, 2, 6175, 6176, 7, 82, 2, 2, 6176, 6177, 7, 84, 2, 2, 6177, 6178, 7, 71, 2, 2, 6178, 6179, 7, 85, 2, 2, 6179, 6180, 7, 71, 2, 2, 6180, 6181, 7, 84, 2, 2, 6181, 6182, 7, 88, 2, 2, 6182, 6183, 7, 71, 2, 2, 6183, 954, 3, 2, 2, 2, 6184, 6185, 7, 82, 2, 2, 6185, 6186, 7, 84, 2, 2, 6186, 6187, 7, 71, 2, 2, 6187, 6188, 7, 88, 2, 2, 6188, 956, 3, 2, 2, 2, 6189, 6190, 7, 82, 2, 2, 6190, 6191, 7, 84, 2, 2, 6191, 6192, 7, 81, 2, 2, 6192, 6193, 7, 69, 2, 2, 6193, 6194, 7, 71, 2, 2, 6194, 6195, 7, 85, 2, 2, 6195, 6196, 7, 85, 2, 2, 6196, 6197, 7, 78, 2, 2, 6197, 6198, 7, 75, 2, 2, 6198, 6199, 7, 85, 2, 2, 6199, 6200, 7, 86, 2, 2, 6200, 958, 3, 2, 2, 2, 6201, 6202, 7, 82, 2, 2, 6202, 6203, 7, 84, 2, 2, 6203, 6204, 7, 81, 2, 2, 6204, 6205, 7, 72, 2, 2, 6205, 6206, 7, 75, 2, 2, 6206, 6207, 7, 78, 2, 2, 6207, 6208, 7, 71, 2, 2, 6208, 960, 3, 2, 2, 2, 6209, 6210, 7, 82, 2, 2, 6210, 6211, 7, 84, 2, 2, 6211, 6212, 7, 81, 2, 2, 6212, 6213, 7, 72, 2, 2, 6213, 6214, 7, 75, 2, 2, 6214, 6215, 7, 78, 2, 2, 6215, 6216, 7, 71, 2, 2, 6216, 6217, 7, 85, 2, 2, 6217, 962, 3, 2, 2, 2, 6218, 6219, 7, 82, 2, 2, 6219, 6220, 7, 84, 2, 2, 6220, 6221, 7, 81, 2, 2, 6221, 6222, 7, 90, 2, 2, 6222, 6223, 7, 91, 2, 2, 6223, 964, 3, 2, 2, 2, 6224, 6225, 7, 83, 2, 2, 6225, 6226, 7, 87, 2, 2, 6226, 6227, 7, 71, 2, 2, 6227, 6228, 7, 84, 2, 2, 6228, 6229, 7, 91, 2, 2, 6229, 966, 3, 2, 2, 2, 6230, 6231, 7, 83, 2, 2, 6231, 6232, 7, 87, 2, 2, 6232, 6233, 7, 75, 2, 2, 6233, 6234, 7, 69, 2, 2, 6234, 6235, 7, 77, 2, 2, 6235, 968, 3, 2, 2, 2, 6236, 6237, 7, 84, 2, 2, 6237, 6238, 7, 71, 2, 2, 6238, 6239, 7, 68, 2, 2, 6239, 6240, 7, 87, 2, 2, 6240, 6241, 7, 75, 2, 2, 6241, 6242, 7, 78, 2, 2, 6242, 6243, 7, 70, 2, 2, 6243, 970, 3, 2, 2, 2, 6244, 6245, 7, 84, 2, 2, 6245, 6246, 7, 71, 2, 2, 6246, 6247, 7, 69, 2, 2, 6247, 6248, 7, 81, 2, 2, 6248, 6249, 7, 88, 2, 2, 6249, 6250, 7, 71, 2, 2, 6250, 6251, 7, 84, 2, 2, 6251, 972, 3, 2, 2, 2, 6252, 6253, 7, 84, 2, 2, 6253, 6254, 7, 71, 2, 2, 6254, 6255, 7, 70, 2, 2, 6255, 6256, 7, 81, 2, 2, 6256, 6257, 7, 97, 2, 2, 6257, 6258, 7, 68, 2, 2, 6258, 6259, 7, 87, 2, 2, 6259, 6260, 7, 72, 2, 2, 6260, 6261, 7, 72, 2, 2, 6261, 6262, 7, 71, 2, 2, 6262, 6263, 7, 84, 2, 2, 6263, 6264, 7, 97, 2, 2, 6264, 6265, 7, 85, 2, 2, 6265, 6266, 7, 75, 2, 2, 6266, 6267, 7, 92, 2, 2, 6267, 6268, 7, 71, 2, 2, 6268, 974, 3, 2, 2, 2, 6269, 6270, 7, 84, 2, 2, 6270, 6271, 7, 71, 2, 2, 6271, 6272, 7, 70, 2, 2, 6272, 6273, 7, 87, 2, 2, 6273, 6274, 7, 80, 2, 2, 6274, 6275, 7, 70, 2, 2, 6275, 6276, 7, 67, 2, 2, 6276, 6277, 7, 80, 2, 2, 6277, 6278, 7, 86, 2, 2, 6278, 976, 3, 2, 2, 2, 6279, 6280, 7, 84, 2, 2, 6280, 6281, 7, 71, 2, 2, 6281, 6282, 7, 78, 2, 2, 6282, 6283, 7, 67, 2, 2, 6283, 6284, 7, 91, 2, 2, 6284, 978, 3, 2, 2, 2, 6285, 6286, 7, 84, 2, 2, 6286, 6287, 7, 71, 2, 2, 6287, 6288, 7, 78, 2, 2, 6288, 6289, 7, 67, 2, 2, 6289, 6290, 7, 91, 2, 2, 6290, 6291, 7, 97, 2, 2, 6291, 6292, 7, 78, 2, 2, 6292, 6293, 7, 81, 2, 2, 6293, 6294, 7, 73, 2, 2, 6294, 6295, 7, 97, 2, 2, 6295, 6296, 7, 72, 2, 2, 6296, 6297, 7, 75, 2, 2, 6297, 6298, 7, 78, 2, 2, 6298, 6299, 7, 71, 2, 2, 6299, 980, 3, 2, 2, 2, 6300, 6301, 7, 84, 2, 2, 6301, 6302, 7, 71, 2, 2, 6302, 6303, 7, 78, 2, 2, 6303, 6304, 7, 67, 2, 2, 6304, 6305, 7, 91, 2, 2, 6305, 6306, 7, 97, 2, 2, 6306, 6307, 7, 78, 2, 2, 6307, 6308, 7, 81, 2, 2, 6308, 6309, 7, 73, 2, 2, 6309, 6310, 7, 97, 2, 2, 6310, 6311, 7, 82, 2, 2, 6311, 6312, 7, 81, 2, 2, 6312, 6313, 7, 85, 2, 2, 6313, 982, 3, 2, 2, 2, 6314, 6315, 7, 84, 2, 2, 6315, 6316, 7, 71, 2, 2, 6316, 6317, 7, 78, 2, 2, 6317, 6318, 7, 67, 2, 2, 6318, 6319, 7, 91, 2, 2, 6319, 6320, 7, 78, 2, 2, 6320, 6321, 7, 81, 2, 2, 6321, 6322, 7, 73, 2, 2, 6322, 984, 3, 2, 2, 2, 6323, 6324, 7, 84, 2, 2, 6324, 6325, 7, 71, 2, 2, 6325, 6326, 7, 79, 2, 2, 6326, 6327, 7, 81, 2, 2, 6327, 6328, 7, 88, 2, 2, 6328, 6329, 7, 71, 2, 2, 6329, 986, 3, 2, 2, 2, 6330, 6331, 7, 84, 2, 2, 6331, 6332, 7, 71, 2, 2, 6332, 6333, 7, 81, 2, 2, 6333, 6334, 7, 84, 2, 2, 6334, 6335, 7, 73, 2, 2, 6335, 6336, 7, 67, 2, 2, 6336, 6337, 7, 80, 2, 2, 6337, 6338, 7, 75, 2, 2, 6338, 6339, 7, 92, 2, 2, 6339, 6340, 7, 71, 2, 2, 6340, 988, 3, 2, 2, 2, 6341, 6342, 7, 84, 2, 2, 6342, 6343, 7, 71, 2, 2, 6343, 6344, 7, 82, 2, 2, 6344, 6345, 7, 67, 2, 2, 6345, 6346, 7, 75, 2, 2, 6346, 6347, 7, 84, 2, 2, 6347, 990, 3, 2, 2, 2, 6348, 6349, 7, 84, 2, 2, 6349, 6350, 7, 71, 2, 2, 6350, 6351, 7, 82, 2, 2, 6351, 6352, 7, 78, 2, 2, 6352, 6353, 7, 75, 2, 2, 6353, 6354, 7, 69, 2, 2, 6354, 6355, 7, 67, 2, 2, 6355, 6356, 7, 86, 2, 2, 6356, 6357, 7, 71, 2, 2, 6357, 6358, 7, 97, 2, 2, 6358, 6359, 7, 70, 2, 2, 6359, 6360, 7, 81, 2, 2, 6360, 6361, 7, 97, 2, 2, 6361, 6362, 7, 70, 2, 2, 6362, 6363, 7, 68, 2, 2, 6363, 992, 3, 2, 2, 2, 6364, 6365, 7, 84, 2, 2, 6365, 6366, 7, 71, 2, 2, 6366, 6367, 7, 82, 2, 2, 6367, 6368, 7, 78, 2, 2, 6368, 6369, 7, 75, 2, 2, 6369, 6370, 7, 69, 2, 2, 6370, 6371, 7, 67, 2, 2, 6371, 6372, 7, 86, 2, 2, 6372, 6373, 7, 71, 2, 2, 6373, 6374, 7, 97, 2, 2, 6374, 6375, 7, 70, 2, 2, 6375, 6376, 7, 81, 2, 2, 6376, 6377, 7, 97, 2, 2, 6377, 6378, 7, 86, 2, 2, 6378, 6379, 7, 67, 2, 2, 6379, 6380, 7, 68, 2, 2, 6380, 6381, 7, 78, 2, 2, 6381, 6382, 7, 71, 2, 2, 6382, 994, 3, 2, 2, 2, 6383, 6384, 7, 84, 2, 2, 6384, 6385, 7, 71, 2, 2, 6385, 6386, 7, 82, 2, 2, 6386, 6387, 7, 78, 2, 2, 6387, 6388, 7, 75, 2, 2, 6388, 6389, 7, 69, 2, 2, 6389, 6390, 7, 67, 2, 2, 6390, 6391, 7, 86, 2, 2, 6391, 6392, 7, 71, 2, 2, 6392, 6393, 7, 97, 2, 2, 6393, 6394, 7, 75, 2, 2, 6394, 6395, 7, 73, 2, 2, 6395, 6396, 7, 80, 2, 2, 6396, 6397, 7, 81, 2, 2, 6397, 6398, 7, 84, 2, 2, 6398, 6399, 7, 71, 2, 2, 6399, 6400, 7, 97, 2, 2, 6400, 6401, 7, 70, 2, 2, 6401, 6402, 7, 68, 2, 2, 6402, 996, 3, 2, 2, 2, 6403, 6404, 7, 84, 2, 2, 6404, 6405, 7, 71, 2, 2, 6405, 6406, 7, 82, 2, 2, 6406, 6407, 7, 78, 2, 2, 6407, 6408, 7, 75, 2, 2, 6408, 6409, 7, 69, 2, 2, 6409, 6410, 7, 67, 2, 2, 6410, 6411, 7, 86, 2, 2, 6411, 6412, 7, 71, 2, 2, 6412, 6413, 7, 97, 2, 2, 6413, 6414, 7, 75, 2, 2, 6414, 6415, 7, 73, 2, 2, 6415, 6416, 7, 80, 2, 2, 6416, 6417, 7, 81, 2, 2, 6417, 6418, 7, 84, 2, 2, 6418, 6419, 7, 71, 2, 2, 6419, 6420, 7, 97, 2, 2, 6420, 6421, 7, 86, 2, 2, 6421, 6422, 7, 67, 2, 2, 6422, 6423, 7, 68, 2, 2, 6423, 6424, 7, 78, 2, 2, 6424, 6425, 7, 71, 2, 2, 6425, 998, 3, 2, 2, 2, 6426, 6427, 7, 84, 2, 2, 6427, 6428, 7, 71, 2, 2, 6428, 6429, 7, 82, 2, 2, 6429, 6430, 7, 78, 2, 2, 6430, 6431, 7, 75, 2, 2, 6431, 6432, 7, 69, 2, 2, 6432, 6433, 7, 67, 2, 2, 6433, 6434, 7, 86, 2, 2, 6434, 6435, 7, 71, 2, 2, 6435, 6436, 7, 97, 2, 2, 6436, 6437, 7, 84, 2, 2, 6437, 6438, 7, 71, 2, 2, 6438, 6439, 7, 89, 2, 2, 6439, 6440, 7, 84, 2, 2, 6440, 6441, 7, 75, 2, 2, 6441, 6442, 7, 86, 2, 2, 6442, 6443, 7, 71, 2, 2, 6443, 6444, 7, 97, 2, 2, 6444, 6445, 7, 70, 2, 2, 6445, 6446, 7, 68, 2, 2, 6446, 1000, 3, 2, 2, 2, 6447, 6448, 7, 84, 2, 2, 6448, 6449, 7, 71, 2, 2, 6449, 6450, 7, 82, 2, 2, 6450, 6451, 7, 78, 2, 2, 6451, 6452, 7, 75, 2, 2, 6452, 6453, 7, 69, 2, 2, 6453, 6454, 7, 67, 2, 2, 6454, 6455, 7, 86, 2, 2, 6455, 6456, 7, 71, 2, 2, 6456, 6457, 7, 97, 2, 2, 6457, 6458, 7, 89, 2, 2, 6458, 6459, 7, 75, 2, 2, 6459, 6460, 7, 78, 2, 2, 6460, 6461, 7, 70, 2, 2, 6461, 6462, 7, 97, 2, 2, 6462, 6463, 7, 70, 2, 2, 6463, 6464, 7, 81, 2, 2, 6464, 6465, 7, 97, 2, 2, 6465, 6466, 7, 86, 2, 2, 6466, 6467, 7, 67, 2, 2, 6467, 6468, 7, 68, 2, 2, 6468, 6469, 7, 78, 2, 2, 6469, 6470, 7, 71, 2, 2, 6470, 1002, 3, 2, 2, 2, 6471, 6472, 7, 84, 2, 2, 6472, 6473, 7, 71, 2, 2, 6473, 6474, 7, 82, 2, 2, 6474, 6475, 7, 78, 2, 2, 6475, 6476, 7, 75, 2, 2, 6476, 6477, 7, 69, 2, 2, 6477, 6478, 7, 67, 2, 2, 6478, 6479, 7, 86, 2, 2, 6479, 6480, 7, 71, 2, 2, 6480, 6481, 7, 97, 2, 2, 6481, 6482, 7, 89, 2, 2, 6482, 6483, 7, 75, 2, 2, 6483, 6484, 7, 78, 2, 2, 6484, 6485, 7, 70, 2, 2, 6485, 6486, 7, 97, 2, 2, 6486, 6487, 7, 75, 2, 2, 6487, 6488, 7, 73, 2, 2, 6488, 6489, 7, 80, 2, 2, 6489, 6490, 7, 81, 2, 2, 6490, 6491, 7, 84, 2, 2, 6491, 6492, 7, 71, 2, 2, 6492, 6493, 7, 97, 2, 2, 6493, 6494, 7, 86, 2, 2, 6494, 6495, 7, 67, 2, 2, 6495, 6496, 7, 68, 2, 2, 6496, 6497, 7, 78, 2, 2, 6497, 6498, 7, 71, 2, 2, 6498, 1004, 3, 2, 2, 2, 6499, 6500, 7, 84, 2, 2, 6500, 6501, 7, 71, 2, 2, 6501, 6502, 7, 82, 2, 2, 6502, 6503, 7, 78, 2, 2, 6503, 6504, 7, 75, 2, 2, 6504, 6505, 7, 69, 2, 2, 6505, 6506, 7, 67, 2, 2, 6506, 6507, 7, 86, 2, 2, 6507, 6508, 7, 75, 2, 2, 6508, 6509, 7, 81, 2, 2, 6509, 6510, 7, 80, 2, 2, 6510, 1006, 3, 2, 2, 2, 6511, 6512, 7, 84, 2, 2, 6512, 6513, 7, 71, 2, 2, 6513, 6514, 7, 85, 2, 2, 6514, 6515, 7, 71, 2, 2, 6515, 6516, 7, 86, 2, 2, 6516, 1008, 3, 2, 2, 2, 6517, 6518, 7, 84, 2, 2, 6518, 6519, 7, 71, 2, 2, 6519, 6520, 7, 85, 2, 2, 6520, 6521, 7, 87, 2, 2, 6521, 6522, 7, 79, 2, 2, 6522, 6523, 7, 71, 2, 2, 6523, 1010, 3, 2, 2, 2, 6524, 6525, 7, 84, 2, 2, 6525, 6526, 7, 71, 2, 2, 6526, 6527, 7, 86, 2, 2, 6527, 6528, 7, 87, 2, 2, 6528, 6529, 7, 84, 2, 2, 6529, 6530, 7, 80, 2, 2, 6530, 6531, 7, 71, 2, 2, 6531, 6532, 7, 70, 2, 2, 6532, 6533, 7, 97, 2, 2, 6533, 6534, 7, 85, 2, 2, 6534, 6535, 7, 83, 2, 2, 6535, 6536, 7, 78, 2, 2, 6536, 6537, 7, 85, 2, 2, 6537, 6538, 7, 86, 2, 2, 6538, 6539, 7, 67, 2, 2, 6539, 6540, 7, 86, 2, 2, 6540, 6541, 7, 71, 2, 2, 6541, 1012, 3, 2, 2, 2, 6542, 6543, 7, 84, 2, 2, 6543, 6544, 7, 71, 2, 2, 6544, 6545, 7, 86, 2, 2, 6545, 6546, 7, 87, 2, 2, 6546, 6547, 7, 84, 2, 2, 6547, 6548, 7, 80, 2, 2, 6548, 6549, 7, 85, 2, 2, 6549, 1014, 3, 2, 2, 2, 6550, 6551, 7, 84, 2, 2, 6551, 6552, 7, 81, 2, 2, 6552, 6553, 7, 78, 2, 2, 6553, 6554, 7, 71, 2, 2, 6554, 1016, 3, 2, 2, 2, 6555, 6556, 7, 84, 2, 2, 6556, 6557, 7, 81, 2, 2, 6557, 6558, 7, 78, 2, 2, 6558, 6559, 7, 78, 2, 2, 6559, 6560, 7, 68, 2, 2, 6560, 6561, 7, 67, 2, 2, 6561, 6562, 7, 69, 2, 2, 6562, 6563, 7, 77, 2, 2, 6563, 1018, 3, 2, 2, 2, 6564, 6565, 7, 84, 2, 2, 6565, 6566, 7, 81, 2, 2, 6566, 6567, 7, 78, 2, 2, 6567, 6568, 7, 78, 2, 2, 6568, 6569, 7, 87, 2, 2, 6569, 6570, 7, 82, 2, 2, 6570, 1020, 3, 2, 2, 2, 6571, 6572, 7, 84, 2, 2, 6572, 6573, 7, 81, 2, 2, 6573, 6574, 7, 86, 2, 2, 6574, 6575, 7, 67, 2, 2, 6575, 6576, 7, 86, 2, 2, 6576, 6577, 7, 71, 2, 2, 6577, 1022, 3, 2, 2, 2, 6578, 6579, 7, 84, 2, 2, 6579, 6580, 7, 81, 2, 2, 6580, 6581, 7, 89, 2, 2, 6581, 1024, 3, 2, 2, 2, 6582, 6583, 7, 84, 2, 2, 6583, 6584, 7, 81, 2, 2, 6584, 6585, 7, 89, 2, 2, 6585, 6586, 7, 85, 2, 2, 6586, 1026, 3, 2, 2, 2, 6587, 6588, 7, 84, 2, 2, 6588, 6589, 7, 81, 2, 2, 6589, 6590, 7, 89, 2, 2, 6590, 6591, 7, 97, 2, 2, 6591, 6592, 7, 72, 2, 2, 6592, 6593, 7, 81, 2, 2, 6593, 6594, 7, 84, 2, 2, 6594, 6595, 7, 79, 2, 2, 6595, 6596, 7, 67, 2, 2, 6596, 6597, 7, 86, 2, 2, 6597, 1028, 3, 2, 2, 2, 6598, 6599, 7, 85, 2, 2, 6599, 6600, 7, 67, 2, 2, 6600, 6601, 7, 88, 2, 2, 6601, 6602, 7, 71, 2, 2, 6602, 6603, 7, 82, 2, 2, 6603, 6604, 7, 81, 2, 2, 6604, 6605, 7, 75, 2, 2, 6605, 6606, 7, 80, 2, 2, 6606, 6607, 7, 86, 2, 2, 6607, 1030, 3, 2, 2, 2, 6608, 6609, 7, 85, 2, 2, 6609, 6610, 7, 69, 2, 2, 6610, 6611, 7, 74, 2, 2, 6611, 6612, 7, 71, 2, 2, 6612, 6613, 7, 70, 2, 2, 6613, 6614, 7, 87, 2, 2, 6614, 6615, 7, 78, 2, 2, 6615, 6616, 7, 71, 2, 2, 6616, 1032, 3, 2, 2, 2, 6617, 6618, 7, 85, 2, 2, 6618, 6619, 7, 71, 2, 2, 6619, 6620, 7, 69, 2, 2, 6620, 6621, 7, 87, 2, 2, 6621, 6622, 7, 84, 2, 2, 6622, 6623, 7, 75, 2, 2, 6623, 6624, 7, 86, 2, 2, 6624, 6625, 7, 91, 2, 2, 6625, 1034, 3, 2, 2, 2, 6626, 6627, 7, 85, 2, 2, 6627, 6628, 7, 71, 2, 2, 6628, 6629, 7, 84, 2, 2, 6629, 6630, 7, 88, 2, 2, 6630, 6631, 7, 71, 2, 2, 6631, 6632, 7, 84, 2, 2, 6632, 1036, 3, 2, 2, 2, 6633, 6634, 7, 85, 2, 2, 6634, 6635, 7, 71, 2, 2, 6635, 6636, 7, 85, 2, 2, 6636, 6637, 7, 85, 2, 2, 6637, 6638, 7, 75, 2, 2, 6638, 6639, 7, 81, 2, 2, 6639, 6640, 7, 80, 2, 2, 6640, 1038, 3, 2, 2, 2, 6641, 6642, 7, 85, 2, 2, 6642, 6643, 7, 74, 2, 2, 6643, 6644, 7, 67, 2, 2, 6644, 6645, 7, 84, 2, 2, 6645, 6646, 7, 71, 2, 2, 6646, 1040, 3, 2, 2, 2, 6647, 6648, 7, 85, 2, 2, 6648, 6649, 7, 74, 2, 2, 6649, 6650, 7, 67, 2, 2, 6650, 6651, 7, 84, 2, 2, 6651, 6652, 7, 71, 2, 2, 6652, 6653, 7, 70, 2, 2, 6653, 1042, 3, 2, 2, 2, 6654, 6655, 7, 85, 2, 2, 6655, 6656, 7, 75, 2, 2, 6656, 6657, 7, 73, 2, 2, 6657, 6658, 7, 80, 2, 2, 6658, 6659, 7, 71, 2, 2, 6659, 6660, 7, 70, 2, 2, 6660, 1044, 3, 2, 2, 2, 6661, 6662, 7, 85, 2, 2, 6662, 6663, 7, 75, 2, 2, 6663, 6664, 7, 79, 2, 2, 6664, 6665, 7, 82, 2, 2, 6665, 6666, 7, 78, 2, 2, 6666, 6667, 7, 71, 2, 2, 6667, 1046, 3, 2, 2, 2, 6668, 6669, 7, 85, 2, 2, 6669, 6670, 7, 78, 2, 2, 6670, 6671, 7, 67, 2, 2, 6671, 6672, 7, 88, 2, 2, 6672, 6673, 7, 71, 2, 2, 6673, 1048, 3, 2, 2, 2, 6674, 6675, 7, 85, 2, 2, 6675, 6676, 7, 78, 2, 2, 6676, 6677, 7, 81, 2, 2, 6677, 6678, 7, 89, 2, 2, 6678, 1050, 3, 2, 2, 2, 6679, 6680, 7, 85, 2, 2, 6680, 6681, 7, 80, 2, 2, 6681, 6682, 7, 67, 2, 2, 6682, 6683, 7, 82, 2, 2, 6683, 6684, 7, 85, 2, 2, 6684, 6685, 7, 74, 2, 2, 6685, 6686, 7, 81, 2, 2, 6686, 6687, 7, 86, 2, 2, 6687, 1052, 3, 2, 2, 2, 6688, 6689, 7, 85, 2, 2, 6689, 6690, 7, 81, 2, 2, 6690, 6691, 7, 69, 2, 2, 6691, 6692, 7, 77, 2, 2, 6692, 6693, 7, 71, 2, 2, 6693, 6694, 7, 86, 2, 2, 6694, 1054, 3, 2, 2, 2, 6695, 6696, 7, 85, 2, 2, 6696, 6697, 7, 81, 2, 2, 6697, 6698, 7, 79, 2, 2, 6698, 6699, 7, 71, 2, 2, 6699, 1056, 3, 2, 2, 2, 6700, 6701, 7, 85, 2, 2, 6701, 6702, 7, 81, 2, 2, 6702, 6703, 7, 80, 2, 2, 6703, 6704, 7, 67, 2, 2, 6704, 6705, 7, 79, 2, 2, 6705, 6706, 7, 71, 2, 2, 6706, 1058, 3, 2, 2, 2, 6707, 6708, 7, 85, 2, 2, 6708, 6709, 7, 81, 2, 2, 6709, 6710, 7, 87, 2, 2, 6710, 6711, 7, 80, 2, 2, 6711, 6712, 7, 70, 2, 2, 6712, 6713, 7, 85, 2, 2, 6713, 1060, 3, 2, 2, 2, 6714, 6715, 7, 85, 2, 2, 6715, 6716, 7, 81, 2, 2, 6716, 6717, 7, 87, 2, 2, 6717, 6718, 7, 84, 2, 2, 6718, 6719, 7, 69, 2, 2, 6719, 6720, 7, 71, 2, 2, 6720, 1062, 3, 2, 2, 2, 6721, 6722, 7, 85, 2, 2, 6722, 6723, 7, 83, 2, 2, 6723, 6724, 7, 78, 2, 2, 6724, 6725, 7, 97, 2, 2, 6725, 6726, 7, 67, 2, 2, 6726, 6727, 7, 72, 2, 2, 6727, 6728, 7, 86, 2, 2, 6728, 6729, 7, 71, 2, 2, 6729, 6730, 7, 84, 2, 2, 6730, 6731, 7, 97, 2, 2, 6731, 6732, 7, 73, 2, 2, 6732, 6733, 7, 86, 2, 2, 6733, 6734, 7, 75, 2, 2, 6734, 6735, 7, 70, 2, 2, 6735, 6736, 7, 85, 2, 2, 6736, 1064, 3, 2, 2, 2, 6737, 6738, 7, 85, 2, 2, 6738, 6739, 7, 83, 2, 2, 6739, 6740, 7, 78, 2, 2, 6740, 6741, 7, 97, 2, 2, 6741, 6742, 7, 67, 2, 2, 6742, 6743, 7, 72, 2, 2, 6743, 6744, 7, 86, 2, 2, 6744, 6745, 7, 71, 2, 2, 6745, 6746, 7, 84, 2, 2, 6746, 6747, 7, 97, 2, 2, 6747, 6748, 7, 79, 2, 2, 6748, 6749, 7, 86, 2, 2, 6749, 6750, 7, 85, 2, 2, 6750, 6751, 7, 97, 2, 2, 6751, 6752, 7, 73, 2, 2, 6752, 6753, 7, 67, 2, 2, 6753, 6754, 7, 82, 2, 2, 6754, 6755, 7, 85, 2, 2, 6755, 1066, 3, 2, 2, 2, 6756, 6757, 7, 85, 2, 2, 6757, 6758, 7, 83, 2, 2, 6758, 6759, 7, 78, 2, 2, 6759, 6760, 7, 97, 2, 2, 6760, 6761, 7, 68, 2, 2, 6761, 6762, 7, 71, 2, 2, 6762, 6763, 7, 72, 2, 2, 6763, 6764, 7, 81, 2, 2, 6764, 6765, 7, 84, 2, 2, 6765, 6766, 7, 71, 2, 2, 6766, 6767, 7, 97, 2, 2, 6767, 6768, 7, 73, 2, 2, 6768, 6769, 7, 86, 2, 2, 6769, 6770, 7, 75, 2, 2, 6770, 6771, 7, 70, 2, 2, 6771, 6772, 7, 85, 2, 2, 6772, 1068, 3, 2, 2, 2, 6773, 6774, 7, 85, 2, 2, 6774, 6775, 7, 83, 2, 2, 6775, 6776, 7, 78, 2, 2, 6776, 6777, 7, 97, 2, 2, 6777, 6778, 7, 68, 2, 2, 6778, 6779, 7, 87, 2, 2, 6779, 6780, 7, 72, 2, 2, 6780, 6781, 7, 72, 2, 2, 6781, 6782, 7, 71, 2, 2, 6782, 6783, 7, 84, 2, 2, 6783, 6784, 7, 97, 2, 2, 6784, 6785, 7, 84, 2, 2, 6785, 6786, 7, 71, 2, 2, 6786, 6787, 7, 85, 2, 2, 6787, 6788, 7, 87, 2, 2, 6788, 6789, 7, 78, 2, 2, 6789, 6790, 7, 86, 2, 2, 6790, 1070, 3, 2, 2, 2, 6791, 6792, 7, 85, 2, 2, 6792, 6793, 7, 83, 2, 2, 6793, 6794, 7, 78, 2, 2, 6794, 6795, 7, 97, 2, 2, 6795, 6796, 7, 69, 2, 2, 6796, 6797, 7, 67, 2, 2, 6797, 6798, 7, 69, 2, 2, 6798, 6799, 7, 74, 2, 2, 6799, 6800, 7, 71, 2, 2, 6800, 1072, 3, 2, 2, 2, 6801, 6802, 7, 85, 2, 2, 6802, 6803, 7, 83, 2, 2, 6803, 6804, 7, 78, 2, 2, 6804, 6805, 7, 97, 2, 2, 6805, 6806, 7, 80, 2, 2, 6806, 6807, 7, 81, 2, 2, 6807, 6808, 7, 97, 2, 2, 6808, 6809, 7, 69, 2, 2, 6809, 6810, 7, 67, 2, 2, 6810, 6811, 7, 69, 2, 2, 6811, 6812, 7, 74, 2, 2, 6812, 6813, 7, 71, 2, 2, 6813, 1074, 3, 2, 2, 2, 6814, 6815, 7, 85, 2, 2, 6815, 6816, 7, 83, 2, 2, 6816, 6817, 7, 78, 2, 2, 6817, 6818, 7, 97, 2, 2, 6818, 6819, 7, 86, 2, 2, 6819, 6820, 7, 74, 2, 2, 6820, 6821, 7, 84, 2, 2, 6821, 6822, 7, 71, 2, 2, 6822, 6823, 7, 67, 2, 2, 6823, 6824, 7, 70, 2, 2, 6824, 1076, 3, 2, 2, 2, 6825, 6826, 7, 85, 2, 2, 6826, 6827, 7, 86, 2, 2, 6827, 6828, 7, 67, 2, 2, 6828, 6829, 7, 84, 2, 2, 6829, 6830, 7, 86, 2, 2, 6830, 1078, 3, 2, 2, 2, 6831, 6832, 7, 85, 2, 2, 6832, 6833, 7, 86, 2, 2, 6833, 6834, 7, 67, 2, 2, 6834, 6835, 7, 84, 2, 2, 6835, 6836, 7, 86, 2, 2, 6836, 6837, 7, 85, 2, 2, 6837, 1080, 3, 2, 2, 2, 6838, 6839, 7, 85, 2, 2, 6839, 6840, 7, 86, 2, 2, 6840, 6841, 7, 67, 2, 2, 6841, 6842, 7, 86, 2, 2, 6842, 6843, 7, 85, 2, 2, 6843, 6844, 7, 97, 2, 2, 6844, 6845, 7, 67, 2, 2, 6845, 6846, 7, 87, 2, 2, 6846, 6847, 7, 86, 2, 2, 6847, 6848, 7, 81, 2, 2, 6848, 6849, 7, 97, 2, 2, 6849, 6850, 7, 84, 2, 2, 6850, 6851, 7, 71, 2, 2, 6851, 6852, 7, 69, 2, 2, 6852, 6853, 7, 67, 2, 2, 6853, 6854, 7, 78, 2, 2, 6854, 6855, 7, 69, 2, 2, 6855, 1082, 3, 2, 2, 2, 6856, 6857, 7, 85, 2, 2, 6857, 6858, 7, 86, 2, 2, 6858, 6859, 7, 67, 2, 2, 6859, 6860, 7, 86, 2, 2, 6860, 6861, 7, 85, 2, 2, 6861, 6862, 7, 97, 2, 2, 6862, 6863, 7, 82, 2, 2, 6863, 6864, 7, 71, 2, 2, 6864, 6865, 7, 84, 2, 2, 6865, 6866, 7, 85, 2, 2, 6866, 6867, 7, 75, 2, 2, 6867, 6868, 7, 85, 2, 2, 6868, 6869, 7, 86, 2, 2, 6869, 6870, 7, 71, 2, 2, 6870, 6871, 7, 80, 2, 2, 6871, 6872, 7, 86, 2, 2, 6872, 1084, 3, 2, 2, 2, 6873, 6874, 7, 85, 2, 2, 6874, 6875, 7, 86, 2, 2, 6875, 6876, 7, 67, 2, 2, 6876, 6877, 7, 86, 2, 2, 6877, 6878, 7, 85, 2, 2, 6878, 6879, 7, 97, 2, 2, 6879, 6880, 7, 85, 2, 2, 6880, 6881, 7, 67, 2, 2, 6881, 6882, 7, 79, 2, 2, 6882, 6883, 7, 82, 2, 2, 6883, 6884, 7, 78, 2, 2, 6884, 6885, 7, 71, 2, 2, 6885, 6886, 7, 97, 2, 2, 6886, 6887, 7, 82, 2, 2, 6887, 6888, 7, 67, 2, 2, 6888, 6889, 7, 73, 2, 2, 6889, 6890, 7, 71, 2, 2, 6890, 6891, 7, 85, 2, 2, 6891, 1086, 3, 2, 2, 2, 6892, 6893, 7, 85, 2, 2, 6893, 6894, 7, 86, 2, 2, 6894, 6895, 7, 67, 2, 2, 6895, 6896, 7, 86, 2, 2, 6896, 6897, 7, 87, 2, 2, 6897, 6898, 7, 85, 2, 2, 6898, 1088, 3, 2, 2, 2, 6899, 6900, 7, 85, 2, 2, 6900, 6901, 7, 86, 2, 2, 6901, 6902, 7, 81, 2, 2, 6902, 6903, 7, 82, 2, 2, 6903, 1090, 3, 2, 2, 2, 6904, 6905, 7, 85, 2, 2, 6905, 6906, 7, 86, 2, 2, 6906, 6907, 7, 81, 2, 2, 6907, 6908, 7, 84, 2, 2, 6908, 6909, 7, 67, 2, 2, 6909, 6910, 7, 73, 2, 2, 6910, 6911, 7, 71, 2, 2, 6911, 1092, 3, 2, 2, 2, 6912, 6913, 7, 85, 2, 2, 6913, 6914, 7, 86, 2, 2, 6914, 6915, 7, 81, 2, 2, 6915, 6916, 7, 84, 2, 2, 6916, 6917, 7, 71, 2, 2, 6917, 6918, 7, 70, 2, 2, 6918, 1094, 3, 2, 2, 2, 6919, 6920, 7, 85, 2, 2, 6920, 6921, 7, 86, 2, 2, 6921, 6922, 7, 84, 2, 2, 6922, 6923, 7, 75, 2, 2, 6923, 6924, 7, 80, 2, 2, 6924, 6925, 7, 73, 2, 2, 6925, 1096, 3, 2, 2, 2, 6926, 6927, 7, 85, 2, 2, 6927, 6928, 7, 87, 2, 2, 6928, 6929, 7, 68, 2, 2, 6929, 6930, 7, 69, 2, 2, 6930, 6931, 7, 78, 2, 2, 6931, 6932, 7, 67, 2, 2, 6932, 6933, 7, 85, 2, 2, 6933, 6934, 7, 85, 2, 2, 6934, 6935, 7, 97, 2, 2, 6935, 6936, 7, 81, 2, 2, 6936, 6937, 7, 84, 2, 2, 6937, 6938, 7, 75, 2, 2, 6938, 6939, 7, 73, 2, 2, 6939, 6940, 7, 75, 2, 2, 6940, 6941, 7, 80, 2, 2, 6941, 1098, 3, 2, 2, 2, 6942, 6943, 7, 85, 2, 2, 6943, 6944, 7, 87, 2, 2, 6944, 6945, 7, 68, 2, 2, 6945, 6946, 7, 76, 2, 2, 6946, 6947, 7, 71, 2, 2, 6947, 6948, 7, 69, 2, 2, 6948, 6949, 7, 86, 2, 2, 6949, 1100, 3, 2, 2, 2, 6950, 6951, 7, 85, 2, 2, 6951, 6952, 7, 87, 2, 2, 6952, 6953, 7, 68, 2, 2, 6953, 6954, 7, 82, 2, 2, 6954, 6955, 7, 67, 2, 2, 6955, 6956, 7, 84, 2, 2, 6956, 6957, 7, 86, 2, 2, 6957, 6958, 7, 75, 2, 2, 6958, 6959, 7, 86, 2, 2, 6959, 6960, 7, 75, 2, 2, 6960, 6961, 7, 81, 2, 2, 6961, 6962, 7, 80, 2, 2, 6962, 1102, 3, 2, 2, 2, 6963, 6964, 7, 85, 2, 2, 6964, 6965, 7, 87, 2, 2, 6965, 6966, 7, 68, 2, 2, 6966, 6967, 7, 82, 2, 2, 6967, 6968, 7, 67, 2, 2, 6968, 6969, 7, 84, 2, 2, 6969, 6970, 7, 86, 2, 2, 6970, 6971, 7, 75, 2, 2, 6971, 6972, 7, 86, 2, 2, 6972, 6973, 7, 75, 2, 2, 6973, 6974, 7, 81, 2, 2, 6974, 6975, 7, 80, 2, 2, 6975, 6976, 7, 85, 2, 2, 6976, 1104, 3, 2, 2, 2, 6977, 6978, 7, 85, 2, 2, 6978, 6979, 7, 87, 2, 2, 6979, 6980, 7, 85, 2, 2, 6980, 6981, 7, 82, 2, 2, 6981, 6982, 7, 71, 2, 2, 6982, 6983, 7, 80, 2, 2, 6983, 6984, 7, 70, 2, 2, 6984, 1106, 3, 2, 2, 2, 6985, 6986, 7, 85, 2, 2, 6986, 6987, 7, 89, 2, 2, 6987, 6988, 7, 67, 2, 2, 6988, 6989, 7, 82, 2, 2, 6989, 6990, 7, 85, 2, 2, 6990, 1108, 3, 2, 2, 2, 6991, 6992, 7, 85, 2, 2, 6992, 6993, 7, 89, 2, 2, 6993, 6994, 7, 75, 2, 2, 6994, 6995, 7, 86, 2, 2, 6995, 6996, 7, 69, 2, 2, 6996, 6997, 7, 74, 2, 2, 6997, 6998, 7, 71, 2, 2, 6998, 6999, 7, 85, 2, 2, 6999, 1110, 3, 2, 2, 2, 7000, 7001, 7, 86, 2, 2, 7001, 7002, 7, 67, 2, 2, 7002, 7003, 7, 68, 2, 2, 7003, 7004, 7, 78, 2, 2, 7004, 7005, 7, 71, 2, 2, 7005, 7006, 7, 97, 2, 2, 7006, 7007, 7, 80, 2, 2, 7007, 7008, 7, 67, 2, 2, 7008, 7009, 7, 79, 2, 2, 7009, 7010, 7, 71, 2, 2, 7010, 1112, 3, 2, 2, 2, 7011, 7012, 7, 86, 2, 2, 7012, 7013, 7, 67, 2, 2, 7013, 7014, 7, 68, 2, 2, 7014, 7015, 7, 78, 2, 2, 7015, 7016, 7, 71, 2, 2, 7016, 7017, 7, 85, 2, 2, 7017, 7018, 7, 82, 2, 2, 7018, 7019, 7, 67, 2, 2, 7019, 7020, 7, 69, 2, 2, 7020, 7021, 7, 71, 2, 2, 7021, 1114, 3, 2, 2, 2, 7022, 7023, 7, 86, 2, 2, 7023, 7024, 7, 71, 2, 2, 7024, 7025, 7, 79, 2, 2, 7025, 7026, 7, 82, 2, 2, 7026, 7027, 7, 81, 2, 2, 7027, 7028, 7, 84, 2, 2, 7028, 7029, 7, 67, 2, 2, 7029, 7030, 7, 84, 2, 2, 7030, 7031, 7, 91, 2, 2, 7031, 1116, 3, 2, 2, 2, 7032, 7033, 7, 86, 2, 2, 7033, 7034, 7, 71, 2, 2, 7034, 7035, 7, 79, 2, 2, 7035, 7036, 7, 82, 2, 2, 7036, 7037, 7, 86, 2, 2, 7037, 7038, 7, 67, 2, 2, 7038, 7039, 7, 68, 2, 2, 7039, 7040, 7, 78, 2, 2, 7040, 7041, 7, 71, 2, 2, 7041, 1118, 3, 2, 2, 2, 7042, 7043, 7, 86, 2, 2, 7043, 7044, 7, 74, 2, 2, 7044, 7045, 7, 67, 2, 2, 7045, 7046, 7, 80, 2, 2, 7046, 1120, 3, 2, 2, 2, 7047, 7048, 7, 86, 2, 2, 7048, 7049, 7, 84, 2, 2, 7049, 7050, 7, 67, 2, 2, 7050, 7051, 7, 70, 2, 2, 7051, 7052, 7, 75, 2, 2, 7052, 7053, 7, 86, 2, 2, 7053, 7054, 7, 75, 2, 2, 7054, 7055, 7, 81, 2, 2, 7055, 7056, 7, 80, 2, 2, 7056, 7057, 7, 67, 2, 2, 7057, 7058, 7, 78, 2, 2, 7058, 1122, 3, 2, 2, 2, 7059, 7060, 7, 86, 2, 2, 7060, 7061, 7, 84, 2, 2, 7061, 7062, 7, 67, 2, 2, 7062, 7063, 7, 80, 2, 2, 7063, 7064, 7, 85, 2, 2, 7064, 7065, 7, 67, 2, 2, 7065, 7066, 7, 69, 2, 2, 7066, 7067, 7, 86, 2, 2, 7067, 7068, 7, 75, 2, 2, 7068, 7069, 7, 81, 2, 2, 7069, 7070, 7, 80, 2, 2, 7070, 1124, 3, 2, 2, 2, 7071, 7072, 7, 86, 2, 2, 7072, 7073, 7, 84, 2, 2, 7073, 7074, 7, 67, 2, 2, 7074, 7075, 7, 80, 2, 2, 7075, 7076, 7, 85, 2, 2, 7076, 7077, 7, 67, 2, 2, 7077, 7078, 7, 69, 2, 2, 7078, 7079, 7, 86, 2, 2, 7079, 7080, 7, 75, 2, 2, 7080, 7081, 7, 81, 2, 2, 7081, 7082, 7, 80, 2, 2, 7082, 7083, 7, 67, 2, 2, 7083, 7084, 7, 78, 2, 2, 7084, 1126, 3, 2, 2, 2, 7085, 7086, 7, 86, 2, 2, 7086, 7087, 7, 84, 2, 2, 7087, 7088, 7, 75, 2, 2, 7088, 7089, 7, 73, 2, 2, 7089, 7090, 7, 73, 2, 2, 7090, 7091, 7, 71, 2, 2, 7091, 7092, 7, 84, 2, 2, 7092, 7093, 7, 85, 2, 2, 7093, 1128, 3, 2, 2, 2, 7094, 7095, 7, 86, 2, 2, 7095, 7096, 7, 84, 2, 2, 7096, 7097, 7, 87, 2, 2, 7097, 7098, 7, 80, 2, 2, 7098, 7099, 7, 69, 2, 2, 7099, 7100, 7, 67, 2, 2, 7100, 7101, 7, 86, 2, 2, 7101, 7102, 7, 71, 2, 2, 7102, 1130, 3, 2, 2, 2, 7103, 7104, 7, 87, 2, 2, 7104, 7105, 7, 80, 2, 2, 7105, 7106, 7, 70, 2, 2, 7106, 7107, 7, 71, 2, 2, 7107, 7108, 7, 72, 2, 2, 7108, 7109, 7, 75, 2, 2, 7109, 7110, 7, 80, 2, 2, 7110, 7111, 7, 71, 2, 2, 7111, 7112, 7, 70, 2, 2, 7112, 1132, 3, 2, 2, 2, 7113, 7114, 7, 87, 2, 2, 7114, 7115, 7, 80, 2, 2, 7115, 7116, 7, 70, 2, 2, 7116, 7117, 7, 81, 2, 2, 7117, 7118, 7, 72, 2, 2, 7118, 7119, 7, 75, 2, 2, 7119, 7120, 7, 78, 2, 2, 7120, 7121, 7, 71, 2, 2, 7121, 1134, 3, 2, 2, 2, 7122, 7123, 7, 87, 2, 2, 7123, 7124, 7, 80, 2, 2, 7124, 7125, 7, 70, 2, 2, 7125, 7126, 7, 81, 2, 2, 7126, 7127, 7, 97, 2, 2, 7127, 7128, 7, 68, 2, 2, 7128, 7129, 7, 87, 2, 2, 7129, 7130, 7, 72, 2, 2, 7130, 7131, 7, 72, 2, 2, 7131, 7132, 7, 71, 2, 2, 7132, 7133, 7, 84, 2, 2, 7133, 7134, 7, 97, 2, 2, 7134, 7135, 7, 85, 2, 2, 7135, 7136, 7, 75, 2, 2, 7136, 7137, 7, 92, 2, 2, 7137, 7138, 7, 71, 2, 2, 7138, 1136, 3, 2, 2, 2, 7139, 7140, 7, 87, 2, 2, 7140, 7141, 7, 80, 2, 2, 7141, 7142, 7, 75, 2, 2, 7142, 7143, 7, 80, 2, 2, 7143, 7144, 7, 85, 2, 2, 7144, 7145, 7, 86, 2, 2, 7145, 7146, 7, 67, 2, 2, 7146, 7147, 7, 78, 2, 2, 7147, 7148, 7, 78, 2, 2, 7148, 1138, 3, 2, 2, 2, 7149, 7150, 7, 87, 2, 2, 7150, 7151, 7, 80, 2, 2, 7151, 7152, 7, 77, 2, 2, 7152, 7153, 7, 80, 2, 2, 7153, 7154, 7, 81, 2, 2, 7154, 7155, 7, 89, 2, 2, 7155, 7156, 7, 80, 2, 2, 7156, 1140, 3, 2, 2, 2, 7157, 7158, 7, 87, 2, 2, 7158, 7159, 7, 80, 2, 2, 7159, 7160, 7, 86, 2, 2, 7160, 7161, 7, 75, 2, 2, 7161, 7162, 7, 78, 2, 2, 7162, 1142, 3, 2, 2, 2, 7163, 7164, 7, 87, 2, 2, 7164, 7165, 7, 82, 2, 2, 7165, 7166, 7, 73, 2, 2, 7166, 7167, 7, 84, 2, 2, 7167, 7168, 7, 67, 2, 2, 7168, 7169, 7, 70, 2, 2, 7169, 7170, 7, 71, 2, 2, 7170, 1144, 3, 2, 2, 2, 7171, 7172, 7, 87, 2, 2, 7172, 7173, 7, 85, 2, 2, 7173, 7174, 7, 71, 2, 2, 7174, 7175, 7, 84, 2, 2, 7175, 1146, 3, 2, 2, 2, 7176, 7177, 7, 87, 2, 2, 7177, 7178, 7, 85, 2, 2, 7178, 7179, 7, 71, 2, 2, 7179, 7180, 7, 97, 2, 2, 7180, 7181, 7, 72, 2, 2, 7181, 7182, 7, 84, 2, 2, 7182, 7183, 7, 79, 2, 2, 7183, 1148, 3, 2, 2, 2, 7184, 7185, 7, 87, 2, 2, 7185, 7186, 7, 85, 2, 2, 7186, 7187, 7, 71, 2, 2, 7187, 7188, 7, 84, 2, 2, 7188, 7189, 7, 97, 2, 2, 7189, 7190, 7, 84, 2, 2, 7190, 7191, 7, 71, 2, 2, 7191, 7192, 7, 85, 2, 2, 7192, 7193, 7, 81, 2, 2, 7193, 7194, 7, 87, 2, 2, 7194, 7195, 7, 84, 2, 2, 7195, 7196, 7, 69, 2, 2, 7196, 7197, 7, 71, 2, 2, 7197, 7198, 7, 85, 2, 2, 7198, 1150, 3, 2, 2, 2, 7199, 7200, 7, 88, 2, 2, 7200, 7201, 7, 67, 2, 2, 7201, 7202, 7, 78, 2, 2, 7202, 7203, 7, 75, 2, 2, 7203, 7204, 7, 70, 2, 2, 7204, 7205, 7, 67, 2, 2, 7205, 7206, 7, 86, 2, 2, 7206, 7207, 7, 75, 2, 2, 7207, 7208, 7, 81, 2, 2, 7208, 7209, 7, 80, 2, 2, 7209, 1152, 3, 2, 2, 2, 7210, 7211, 7, 88, 2, 2, 7211, 7212, 7, 67, 2, 2, 7212, 7213, 7, 78, 2, 2, 7213, 7214, 7, 87, 2, 2, 7214, 7215, 7, 71, 2, 2, 7215, 1154, 3, 2, 2, 2, 7216, 7217, 7, 88, 2, 2, 7217, 7218, 7, 67, 2, 2, 7218, 7219, 7, 84, 2, 2, 7219, 7220, 7, 75, 2, 2, 7220, 7221, 7, 67, 2, 2, 7221, 7222, 7, 68, 2, 2, 7222, 7223, 7, 78, 2, 2, 7223, 7224, 7, 71, 2, 2, 7224, 7225, 7, 85, 2, 2, 7225, 1156, 3, 2, 2, 2, 7226, 7227, 7, 88, 2, 2, 7227, 7228, 7, 75, 2, 2, 7228, 7229, 7, 71, 2, 2, 7229, 7230, 7, 89, 2, 2, 7230, 1158, 3, 2, 2, 2, 7231, 7232, 7, 88, 2, 2, 7232, 7233, 7, 75, 2, 2, 7233, 7234, 7, 84, 2, 2, 7234, 7235, 7, 86, 2, 2, 7235, 7236, 7, 87, 2, 2, 7236, 7237, 7, 67, 2, 2, 7237, 7238, 7, 78, 2, 2, 7238, 1160, 3, 2, 2, 2, 7239, 7240, 7, 88, 2, 2, 7240, 7241, 7, 75, 2, 2, 7241, 7242, 7, 85, 2, 2, 7242, 7243, 7, 75, 2, 2, 7243, 7244, 7, 68, 2, 2, 7244, 7245, 7, 78, 2, 2, 7245, 7246, 7, 71, 2, 2, 7246, 1162, 3, 2, 2, 2, 7247, 7248, 7, 89, 2, 2, 7248, 7249, 7, 67, 2, 2, 7249, 7250, 7, 75, 2, 2, 7250, 7251, 7, 86, 2, 2, 7251, 1164, 3, 2, 2, 2, 7252, 7253, 7, 89, 2, 2, 7253, 7254, 7, 67, 2, 2, 7254, 7255, 7, 84, 2, 2, 7255, 7256, 7, 80, 2, 2, 7256, 7257, 7, 75, 2, 2, 7257, 7258, 7, 80, 2, 2, 7258, 7259, 7, 73, 2, 2, 7259, 7260, 7, 85, 2, 2, 7260, 1166, 3, 2, 2, 2, 7261, 7262, 7, 89, 2, 2, 7262, 7263, 7, 75, 2, 2, 7263, 7264, 7, 86, 2, 2, 7264, 7265, 7, 74, 2, 2, 7265, 7266, 7, 81, 2, 2, 7266, 7267, 7, 87, 2, 2, 7267, 7268, 7, 86, 2, 2, 7268, 1168, 3, 2, 2, 2, 7269, 7270, 7, 89, 2, 2, 7270, 7271, 7, 81, 2, 2, 7271, 7272, 7, 84, 2, 2, 7272, 7273, 7, 77, 2, 2, 7273, 1170, 3, 2, 2, 2, 7274, 7275, 7, 89, 2, 2, 7275, 7276, 7, 84, 2, 2, 7276, 7277, 7, 67, 2, 2, 7277, 7278, 7, 82, 2, 2, 7278, 7279, 7, 82, 2, 2, 7279, 7280, 7, 71, 2, 2, 7280, 7281, 7, 84, 2, 2, 7281, 1172, 3, 2, 2, 2, 7282, 7283, 7, 90, 2, 2, 7283, 7284, 7, 55, 2, 2, 7284, 7285, 7, 50, 2, 2, 7285, 7286, 7, 59, 2, 2, 7286, 1174, 3, 2, 2, 2, 7287, 7288, 7, 90, 2, 2, 7288, 7289, 7, 67, 2, 2, 7289, 1176, 3, 2, 2, 2, 7290, 7291, 7, 90, 2, 2, 7291, 7292, 7, 79, 2, 2, 7292, 7293, 7, 78, 2, 2, 7293, 1178, 3, 2, 2, 2, 7294, 7295, 7, 71, 2, 2, 7295, 7296, 7, 87, 2, 2, 7296, 7297, 7, 84, 2, 2, 7297, 1180, 3, 2, 2, 2, 7298, 7299, 7, 87, 2, 2, 7299, 7300, 7, 85, 2, 2, 7300, 7301, 7, 67, 2, 2, 7301, 1182, 3, 2, 2, 2, 7302, 7303, 7, 76, 2, 2, 7303, 7304, 7, 75, 2, 2, 7304, 7305, 7, 85, 2, 2, 7305, 1184, 3, 2, 2, 2, 7306, 7307, 7, 75, 2, 2, 7307, 7308, 7, 85, 2, 2, 7308, 7309, 7, 81, 2, 2, 7309, 1186, 3, 2, 2, 2, 7310, 7311, 7, 75, 2, 2, 7311, 7312, 7, 80, 2, 2, 7312, 7313, 7, 86, 2, 2, 7313, 7314, 7, 71, 2, 2, 7314, 7315, 7, 84, 2, 2, 7315, 7316, 7, 80, 2, 2, 7316, 7317, 7, 67, 2, 2, 7317, 7318, 7, 78, 2, 2, 7318, 1188, 3, 2, 2, 2, 7319, 7320, 7, 83, 2, 2, 7320, 7321, 7, 87, 2, 2, 7321, 7322, 7, 67, 2, 2, 7322, 7323, 7, 84, 2, 2, 7323, 7324, 7, 86, 2, 2, 7324, 7325, 7, 71, 2, 2, 7325, 7326, 7, 84, 2, 2, 7326, 1190, 3, 2, 2, 2, 7327, 7328, 7, 79, 2, 2, 7328, 7329, 7, 81, 2, 2, 7329, 7330, 7, 80, 2, 2, 7330, 7331, 7, 86, 2, 2, 7331, 7332, 7, 74, 2, 2, 7332, 1192, 3, 2, 2, 2, 7333, 7334, 7, 70, 2, 2, 7334, 7335, 7, 67, 2, 2, 7335, 7336, 7, 91, 2, 2, 7336, 1194, 3, 2, 2, 2, 7337, 7338, 7, 74, 2, 2, 7338, 7339, 7, 81, 2, 2, 7339, 7340, 7, 87, 2, 2, 7340, 7341, 7, 84, 2, 2, 7341, 1196, 3, 2, 2, 2, 7342, 7343, 7, 79, 2, 2, 7343, 7344, 7, 75, 2, 2, 7344, 7345, 7, 80, 2, 2, 7345, 7346, 7, 87, 2, 2, 7346, 7347, 7, 86, 2, 2, 7347, 7348, 7, 71, 2, 2, 7348, 1198, 3, 2, 2, 2, 7349, 7350, 7, 89, 2, 2, 7350, 7351, 7, 71, 2, 2, 7351, 7352, 7, 71, 2, 2, 7352, 7353, 7, 77, 2, 2, 7353, 1200, 3, 2, 2, 2, 7354, 7355, 7, 85, 2, 2, 7355, 7356, 7, 71, 2, 2, 7356, 7357, 7, 69, 2, 2, 7357, 7358, 7, 81, 2, 2, 7358, 7359, 7, 80, 2, 2, 7359, 7360, 7, 70, 2, 2, 7360, 1202, 3, 2, 2, 2, 7361, 7362, 7, 79, 2, 2, 7362, 7363, 7, 75, 2, 2, 7363, 7364, 7, 69, 2, 2, 7364, 7365, 7, 84, 2, 2, 7365, 7366, 7, 81, 2, 2, 7366, 7367, 7, 85, 2, 2, 7367, 7368, 7, 71, 2, 2, 7368, 7369, 7, 69, 2, 2, 7369, 7370, 7, 81, 2, 2, 7370, 7371, 7, 80, 2, 2, 7371, 7372, 7, 70, 2, 2, 7372, 1204, 3, 2, 2, 2, 7373, 7374, 7, 86, 2, 2, 7374, 7375, 7, 67, 2, 2, 7375, 7376, 7, 68, 2, 2, 7376, 7377, 7, 78, 2, 2, 7377, 7378, 7, 71, 2, 2, 7378, 7379, 7, 85, 2, 2, 7379, 1206, 3, 2, 2, 2, 7380, 7381, 7, 84, 2, 2, 7381, 7382, 7, 81, 2, 2, 7382, 7383, 7, 87, 2, 2, 7383, 7384, 7, 86, 2, 2, 7384, 7385, 7, 75, 2, 2, 7385, 7386, 7, 80, 2, 2, 7386, 7387, 7, 71, 2, 2, 7387, 1208, 3, 2, 2, 2, 7388, 7389, 7, 71, 2, 2, 7389, 7390, 7, 90, 2, 2, 7390, 7391, 7, 71, 2, 2, 7391, 7392, 7, 69, 2, 2, 7392, 7393, 7, 87, 2, 2, 7393, 7394, 7, 86, 2, 2, 7394, 7395, 7, 71, 2, 2, 7395, 1210, 3, 2, 2, 2, 7396, 7397, 7, 72, 2, 2, 7397, 7398, 7, 75, 2, 2, 7398, 7399, 7, 78, 2, 2, 7399, 7400, 7, 71, 2, 2, 7400, 1212, 3, 2, 2, 2, 7401, 7402, 7, 82, 2, 2, 7402, 7403, 7, 84, 2, 2, 7403, 7404, 7, 81, 2, 2, 7404, 7405, 7, 69, 2, 2, 7405, 7406, 7, 71, 2, 2, 7406, 7407, 7, 85, 2, 2, 7407, 7408, 7, 85, 2, 2, 7408, 1214, 3, 2, 2, 2, 7409, 7410, 7, 84, 2, 2, 7410, 7411, 7, 71, 2, 2, 7411, 7412, 7, 78, 2, 2, 7412, 7413, 7, 81, 2, 2, 7413, 7414, 7, 67, 2, 2, 7414, 7415, 7, 70, 2, 2, 7415, 1216, 3, 2, 2, 2, 7416, 7417, 7, 85, 2, 2, 7417, 7418, 7, 74, 2, 2, 7418, 7419, 7, 87, 2, 2, 7419, 7420, 7, 86, 2, 2, 7420, 7421, 7, 70, 2, 2, 7421, 7422, 7, 81, 2, 2, 7422, 7423, 7, 89, 2, 2, 7423, 7424, 7, 80, 2, 2, 7424, 1218, 3, 2, 2, 2, 7425, 7426, 7, 85, 2, 2, 7426, 7427, 7, 87, 2, 2, 7427, 7428, 7, 82, 2, 2, 7428, 7429, 7, 71, 2, 2, 7429, 7430, 7, 84, 2, 2, 7430, 1220, 3, 2, 2, 2, 7431, 7432, 7, 82, 2, 2, 7432, 7433, 7, 84, 2, 2, 7433, 7434, 7, 75, 2, 2, 7434, 7435, 7, 88, 2, 2, 7435, 7436, 7, 75, 2, 2, 7436, 7437, 7, 78, 2, 2, 7437, 7438, 7, 71, 2, 2, 7438, 7439, 7, 73, 2, 2, 7439, 7440, 7, 71, 2, 2, 7440, 7441, 7, 85, 2, 2, 7441, 1222, 3, 2, 2, 2, 7442, 7443, 7, 67, 2, 2, 7443, 7444, 7, 82, 2, 2, 7444, 7445, 7, 82, 2, 2, 7445, 7446, 7, 78, 2, 2, 7446, 7447, 7, 75, 2, 2, 7447, 7448, 7, 69, 2, 2, 7448, 7449, 7, 67, 2, 2, 7449, 7450, 7, 86, 2, 2, 7450, 7451, 7, 75, 2, 2, 7451, 7452, 7, 81, 2, 2, 7452, 7453, 7, 80, 2, 2, 7453, 7454, 7, 97, 2, 2, 7454, 7455, 7, 82, 2, 2, 7455, 7456, 7, 67, 2, 2, 7456, 7457, 7, 85, 2, 2, 7457, 7458, 7, 85, 2, 2, 7458, 7459, 7, 89, 2, 2, 7459, 7460, 7, 81, 2, 2, 7460, 7461, 7, 84, 2, 2, 7461, 7462, 7, 70, 2, 2, 7462, 7463, 7, 97, 2, 2, 7463, 7464, 7, 67, 2, 2, 7464, 7465, 7, 70, 2, 2, 7465, 7466, 7, 79, 2, 2, 7466, 7467, 7, 75, 2, 2, 7467, 7468, 7, 80, 2, 2, 7468, 1224, 3, 2, 2, 2, 7469, 7470, 7, 67, 2, 2, 7470, 7471, 7, 87, 2, 2, 7471, 7472, 7, 70, 2, 2, 7472, 7473, 7, 75, 2, 2, 7473, 7474, 7, 86, 2, 2, 7474, 7475, 7, 97, 2, 2, 7475, 7476, 7, 67, 2, 2, 7476, 7477, 7, 70, 2, 2, 7477, 7478, 7, 79, 2, 2, 7478, 7479, 7, 75, 2, 2, 7479, 7480, 7, 80, 2, 2, 7480, 1226, 3, 2, 2, 2, 7481, 7482, 7, 68, 2, 2, 7482, 7483, 7, 67, 2, 2, 7483, 7484, 7, 69, 2, 2, 7484, 7485, 7, 77, 2, 2, 7485, 7486, 7, 87, 2, 2, 7486, 7487, 7, 82, 2, 2, 7487, 7488, 7, 97, 2, 2, 7488, 7489, 7, 67, 2, 2, 7489, 7490, 7, 70, 2, 2, 7490, 7491, 7, 79, 2, 2, 7491, 7492, 7, 75, 2, 2, 7492, 7493, 7, 80, 2, 2, 7493, 1228, 3, 2, 2, 2, 7494, 7495, 7, 68, 2, 2, 7495, 7496, 7, 75, 2, 2, 7496, 7497, 7, 80, 2, 2, 7497, 7498, 7, 78, 2, 2, 7498, 7499, 7, 81, 2, 2, 7499, 7500, 7, 73, 2, 2, 7500, 7501, 7, 97, 2, 2, 7501, 7502, 7, 67, 2, 2, 7502, 7503, 7, 70, 2, 2, 7503, 7504, 7, 79, 2, 2, 7504, 7505, 7, 75, 2, 2, 7505, 7506, 7, 80, 2, 2, 7506, 1230, 3, 2, 2, 2, 7507, 7508, 7, 68, 2, 2, 7508, 7509, 7, 75, 2, 2, 7509, 7510, 7, 80, 2, 2, 7510, 7511, 7, 78, 2, 2, 7511, 7512, 7, 81, 2, 2, 7512, 7513, 7, 73, 2, 2, 7513, 7514, 7, 97, 2, 2, 7514, 7515, 7, 71, 2, 2, 7515, 7516, 7, 80, 2, 2, 7516, 7517, 7, 69, 2, 2, 7517, 7518, 7, 84, 2, 2, 7518, 7519, 7, 91, 2, 2, 7519, 7520, 7, 82, 2, 2, 7520, 7521, 7, 86, 2, 2, 7521, 7522, 7, 75, 2, 2, 7522, 7523, 7, 81, 2, 2, 7523, 7524, 7, 80, 2, 2, 7524, 7525, 7, 97, 2, 2, 7525, 7526, 7, 67, 2, 2, 7526, 7527, 7, 70, 2, 2, 7527, 7528, 7, 79, 2, 2, 7528, 7529, 7, 75, 2, 2, 7529, 7530, 7, 80, 2, 2, 7530, 1232, 3, 2, 2, 2, 7531, 7532, 7, 69, 2, 2, 7532, 7533, 7, 78, 2, 2, 7533, 7534, 7, 81, 2, 2, 7534, 7535, 7, 80, 2, 2, 7535, 7536, 7, 71, 2, 2, 7536, 7537, 7, 97, 2, 2, 7537, 7538, 7, 67, 2, 2, 7538, 7539, 7, 70, 2, 2, 7539, 7540, 7, 79, 2, 2, 7540, 7541, 7, 75, 2, 2, 7541, 7542, 7, 80, 2, 2, 7542, 1234, 3, 2, 2, 2, 7543, 7544, 7, 69, 2, 2, 7544, 7545, 7, 81, 2, 2, 7545, 7546, 7, 80, 2, 2, 7546, 7547, 7, 80, 2, 2, 7547, 7548, 7, 71, 2, 2, 7548, 7549, 7, 69, 2, 2, 7549, 7550, 7, 86, 2, 2, 7550, 7551, 7, 75, 2, 2, 7551, 7552, 7, 81, 2, 2, 7552, 7553, 7, 80, 2, 2, 7553, 7554, 7, 97, 2, 2, 7554, 7555, 7, 67, 2, 2, 7555, 7556, 7, 70, 2, 2, 7556, 7557, 7, 79, 2, 2, 7557, 7558, 7, 75, 2, 2, 7558, 7559, 7, 80, 2, 2, 7559, 1236, 3, 2, 2, 2, 7560, 7561, 7, 71, 2, 2, 7561, 7562, 7, 80, 2, 2, 7562, 7563, 7, 69, 2, 2, 7563, 7564, 7, 84, 2, 2, 7564, 7565, 7, 91, 2, 2, 7565, 7566, 7, 82, 2, 2, 7566, 7567, 7, 86, 2, 2, 7567, 7568, 7, 75, 2, 2, 7568, 7569, 7, 81, 2, 2, 7569, 7570, 7, 80, 2, 2, 7570, 7571, 7, 97, 2, 2, 7571, 7572, 7, 77, 2, 2, 7572, 7573, 7, 71, 2, 2, 7573, 7574, 7, 91, 2, 2, 7574, 7575, 7, 97, 2, 2, 7575, 7576, 7, 67, 2, 2, 7576, 7577, 7, 70, 2, 2, 7577, 7578, 7, 79, 2, 2, 7578, 7579, 7, 75, 2, 2, 7579, 7580, 7, 80, 2, 2, 7580, 1238, 3, 2, 2, 2, 7581, 7582, 7, 72, 2, 2, 7582, 7583, 7, 75, 2, 2, 7583, 7584, 7, 84, 2, 2, 7584, 7585, 7, 71, 2, 2, 7585, 7586, 7, 89, 2, 2, 7586, 7587, 7, 67, 2, 2, 7587, 7588, 7, 78, 2, 2, 7588, 7589, 7, 78, 2, 2, 7589, 7590, 7, 97, 2, 2, 7590, 7591, 7, 67, 2, 2, 7591, 7592, 7, 70, 2, 2, 7592, 7593, 7, 79, 2, 2, 7593, 7594, 7, 75, 2, 2, 7594, 7595, 7, 80, 2, 2, 7595, 1240, 3, 2, 2, 2, 7596, 7597, 7, 72, 2, 2, 7597, 7598, 7, 75, 2, 2, 7598, 7599, 7, 84, 2, 2, 7599, 7600, 7, 71, 2, 2, 7600, 7601, 7, 89, 2, 2, 7601, 7602, 7, 67, 2, 2, 7602, 7603, 7, 78, 2, 2, 7603, 7604, 7, 78, 2, 2, 7604, 7605, 7, 97, 2, 2, 7605, 7606, 7, 87, 2, 2, 7606, 7607, 7, 85, 2, 2, 7607, 7608, 7, 71, 2, 2, 7608, 7609, 7, 84, 2, 2, 7609, 1242, 3, 2, 2, 2, 7610, 7611, 7, 73, 2, 2, 7611, 7612, 7, 84, 2, 2, 7612, 7613, 7, 81, 2, 2, 7613, 7614, 7, 87, 2, 2, 7614, 7615, 7, 82, 2, 2, 7615, 7616, 7, 97, 2, 2, 7616, 7617, 7, 84, 2, 2, 7617, 7618, 7, 71, 2, 2, 7618, 7619, 7, 82, 2, 2, 7619, 7620, 7, 78, 2, 2, 7620, 7621, 7, 75, 2, 2, 7621, 7622, 7, 69, 2, 2, 7622, 7623, 7, 67, 2, 2, 7623, 7624, 7, 86, 2, 2, 7624, 7625, 7, 75, 2, 2, 7625, 7626, 7, 81, 2, 2, 7626, 7627, 7, 80, 2, 2, 7627, 7628, 7, 97, 2, 2, 7628, 7629, 7, 67, 2, 2, 7629, 7630, 7, 70, 2, 2, 7630, 7631, 7, 79, 2, 2, 7631, 7632, 7, 75, 2, 2, 7632, 7633, 7, 80, 2, 2, 7633, 1244, 3, 2, 2, 2, 7634, 7635, 7, 75, 2, 2, 7635, 7636, 7, 80, 2, 2, 7636, 7637, 7, 80, 2, 2, 7637, 7638, 7, 81, 2, 2, 7638, 7639, 7, 70, 2, 2, 7639, 7640, 7, 68, 2, 2, 7640, 7641, 7, 97, 2, 2, 7641, 7642, 7, 84, 2, 2, 7642, 7643, 7, 71, 2, 2, 7643, 7644, 7, 70, 2, 2, 7644, 7645, 7, 81, 2, 2, 7645, 7646, 7, 97, 2, 2, 7646, 7647, 7, 78, 2, 2, 7647, 7648, 7, 81, 2, 2, 7648, 7649, 7, 73, 2, 2, 7649, 7650, 7, 97, 2, 2, 7650, 7651, 7, 67, 2, 2, 7651, 7652, 7, 84, 2, 2, 7652, 7653, 7, 69, 2, 2, 7653, 7654, 7, 74, 2, 2, 7654, 7655, 7, 75, 2, 2, 7655, 7656, 7, 88, 2, 2, 7656, 7657, 7, 71, 2, 2, 7657, 1246, 3, 2, 2, 2, 7658, 7659, 7, 80, 2, 2, 7659, 7660, 7, 70, 2, 2, 7660, 7661, 7, 68, 2, 2, 7661, 7662, 7, 97, 2, 2, 7662, 7663, 7, 85, 2, 2, 7663, 7664, 7, 86, 2, 2, 7664, 7665, 7, 81, 2, 2, 7665, 7666, 7, 84, 2, 2, 7666, 7667, 7, 71, 2, 2, 7667, 7668, 7, 70, 2, 2, 7668, 7669, 7, 97, 2, 2, 7669, 7670, 7, 87, 2, 2, 7670, 7671, 7, 85, 2, 2, 7671, 7672, 7, 71, 2, 2, 7672, 7673, 7, 84, 2, 2, 7673, 1248, 3, 2, 2, 2, 7674, 7675, 7, 82, 2, 2, 7675, 7676, 7, 71, 2, 2, 7676, 7677, 7, 84, 2, 2, 7677, 7678, 7, 85, 2, 2, 7678, 7679, 7, 75, 2, 2, 7679, 7680, 7, 85, 2, 2, 7680, 7681, 7, 86, 2, 2, 7681, 7682, 7, 97, 2, 2, 7682, 7683, 7, 84, 2, 2, 7683, 7684, 7, 81, 2, 2, 7684, 7685, 7, 97, 2, 2, 7685, 7686, 7, 88, 2, 2, 7686, 7687, 7, 67, 2, 2, 7687, 7688, 7, 84, 2, 2, 7688, 7689, 7, 75, 2, 2, 7689, 7690, 7, 67, 2, 2, 7690, 7691, 7, 68, 2, 2, 7691, 7692, 7, 78, 2, 2, 7692, 7693, 7, 71, 2, 2, 7693, 7694, 7, 85, 2, 2, 7694, 7695, 7, 97, 2, 2, 7695, 7696, 7, 67, 2, 2, 7696, 7697, 7, 70, 2, 2, 7697, 7698, 7, 79, 2, 2, 7698, 7699, 7, 75, 2, 2, 7699, 7700, 7, 80, 2, 2, 7700, 1250, 3, 2, 2, 2, 7701, 7702, 7, 84, 2, 2, 7702, 7703, 7, 71, 2, 2, 7703, 7704, 7, 82, 2, 2, 7704, 7705, 7, 78, 2, 2, 7705, 7706, 7, 75, 2, 2, 7706, 7707, 7, 69, 2, 2, 7707, 7708, 7, 67, 2, 2, 7708, 7709, 7, 86, 2, 2, 7709, 7710, 7, 75, 2, 2, 7710, 7711, 7, 81, 2, 2, 7711, 7712, 7, 80, 2, 2, 7712, 7713, 7, 97, 2, 2, 7713, 7714, 7, 67, 2, 2, 7714, 7715, 7, 82, 2, 2, 7715, 7716, 7, 82, 2, 2, 7716, 7717, 7, 78, 2, 2, 7717, 7718, 7, 75, 2, 2, 7718, 7719, 7, 71, 2, 2, 7719, 7720, 7, 84, 2, 2, 7720, 1252, 3, 2, 2, 2, 7721, 7722, 7, 84, 2, 2, 7722, 7723, 7, 71, 2, 2, 7723, 7724, 7, 82, 2, 2, 7724, 7725, 7, 78, 2, 2, 7725, 7726, 7, 75, 2, 2, 7726, 7727, 7, 69, 2, 2, 7727, 7728, 7, 67, 2, 2, 7728, 7729, 7, 86, 2, 2, 7729, 7730, 7, 75, 2, 2, 7730, 7731, 7, 81, 2, 2, 7731, 7732, 7, 80, 2, 2, 7732, 7733, 7, 97, 2, 2, 7733, 7734, 7, 85, 2, 2, 7734, 7735, 7, 78, 2, 2, 7735, 7736, 7, 67, 2, 2, 7736, 7737, 7, 88, 2, 2, 7737, 7738, 7, 71, 2, 2, 7738, 7739, 7, 97, 2, 2, 7739, 7740, 7, 67, 2, 2, 7740, 7741, 7, 70, 2, 2, 7741, 7742, 7, 79, 2, 2, 7742, 7743, 7, 75, 2, 2, 7743, 7744, 7, 80, 2, 2, 7744, 1254, 3, 2, 2, 2, 7745, 7746, 7, 84, 2, 2, 7746, 7747, 7, 71, 2, 2, 7747, 7748, 7, 85, 2, 2, 7748, 7749, 7, 81, 2, 2, 7749, 7750, 7, 87, 2, 2, 7750, 7751, 7, 84, 2, 2, 7751, 7752, 7, 69, 2, 2, 7752, 7753, 7, 71, 2, 2, 7753, 7754, 7, 97, 2, 2, 7754, 7755, 7, 73, 2, 2, 7755, 7756, 7, 84, 2, 2, 7756, 7757, 7, 81, 2, 2, 7757, 7758, 7, 87, 2, 2, 7758, 7759, 7, 82, 2, 2, 7759, 7760, 7, 97, 2, 2, 7760, 7761, 7, 67, 2, 2, 7761, 7762, 7, 70, 2, 2, 7762, 7763, 7, 79, 2, 2, 7763, 7764, 7, 75, 2, 2, 7764, 7765, 7, 80, 2, 2, 7765, 1256, 3, 2, 2, 2, 7766, 7767, 7, 84, 2, 2, 7767, 7768, 7, 71, 2, 2, 7768, 7769, 7, 85, 2, 2, 7769, 7770, 7, 81, 2, 2, 7770, 7771, 7, 87, 2, 2, 7771, 7772, 7, 84, 2, 2, 7772, 7773, 7, 69, 2, 2, 7773, 7774, 7, 71, 2, 2, 7774, 7775, 7, 97, 2, 2, 7775, 7776, 7, 73, 2, 2, 7776, 7777, 7, 84, 2, 2, 7777, 7778, 7, 81, 2, 2, 7778, 7779, 7, 87, 2, 2, 7779, 7780, 7, 82, 2, 2, 7780, 7781, 7, 97, 2, 2, 7781, 7782, 7, 87, 2, 2, 7782, 7783, 7, 85, 2, 2, 7783, 7784, 7, 71, 2, 2, 7784, 7785, 7, 84, 2, 2, 7785, 1258, 3, 2, 2, 2, 7786, 7787, 7, 84, 2, 2, 7787, 7788, 7, 81, 2, 2, 7788, 7789, 7, 78, 2, 2, 7789, 7790, 7, 71, 2, 2, 7790, 7791, 7, 97, 2, 2, 7791, 7792, 7, 67, 2, 2, 7792, 7793, 7, 70, 2, 2, 7793, 7794, 7, 79, 2, 2, 7794, 7795, 7, 75, 2, 2, 7795, 7796, 7, 80, 2, 2, 7796, 1260, 3, 2, 2, 2, 7797, 7799, 5, 2065, 1033, 2, 7798, 7797, 3, 2, 2, 2, 7798, 7799, 3, 2, 2, 2, 7799, 7800, 3, 2, 2, 2, 7800, 7801, 7, 85, 2, 2, 7801, 7802, 7, 71, 2, 2, 7802, 7803, 7, 85, 2, 2, 7803, 7804, 7, 85, 2, 2, 7804, 7805, 7, 75, 2, 2, 7805, 7806, 7, 81, 2, 2, 7806, 7807, 7, 80, 2, 2, 7807, 7808, 7, 97, 2, 2, 7808, 7809, 7, 88, 2, 2, 7809, 7810, 7, 67, 2, 2, 7810, 7811, 7, 84, 2, 2, 7811, 7812, 7, 75, 2, 2, 7812, 7813, 7, 67, 2, 2, 7813, 7814, 7, 68, 2, 2, 7814, 7815, 7, 78, 2, 2, 7815, 7816, 7, 71, 2, 2, 7816, 7817, 7, 85, 2, 2, 7817, 7818, 7, 97, 2, 2, 7818, 7819, 7, 67, 2, 2, 7819, 7820, 7, 70, 2, 2, 7820, 7821, 7, 79, 2, 2, 7821, 7822, 7, 75, 2, 2, 7822, 7823, 7, 80, 2, 2, 7823, 7825, 3, 2, 2, 2, 7824, 7826, 5, 2065, 1033, 2, 7825, 7824, 3, 2, 2, 2, 7825, 7826, 3, 2, 2, 2, 7826, 1262, 3, 2, 2, 2, 7827, 7828, 7, 85, 2, 2, 7828, 7829, 7, 71, 2, 2, 7829, 7830, 7, 86, 2, 2, 7830, 7831, 7, 97, 2, 2, 7831, 7832, 7, 87, 2, 2, 7832, 7833, 7, 85, 2, 2, 7833, 7834, 7, 71, 2, 2, 7834, 7835, 7, 84, 2, 2, 7835, 7836, 7, 97, 2, 2, 7836, 7837, 7, 75, 2, 2, 7837, 7838, 7, 70, 2, 2, 7838, 1264, 3, 2, 2, 2, 7839, 7840, 7, 85, 2, 2, 7840, 7841, 7, 74, 2, 2, 7841, 7842, 7, 81, 2, 2, 7842, 7843, 7, 89, 2, 2, 7843, 7844, 7, 97, 2, 2, 7844, 7845, 7, 84, 2, 2, 7845, 7846, 7, 81, 2, 2, 7846, 7847, 7, 87, 2, 2, 7847, 7848, 7, 86, 2, 2, 7848, 7849, 7, 75, 2, 2, 7849, 7850, 7, 80, 2, 2, 7850, 7851, 7, 71, 2, 2, 7851, 1266, 3, 2, 2, 2, 7852, 7853, 7, 85, 2, 2, 7853, 7854, 7, 91, 2, 2, 7854, 7855, 7, 85, 2, 2, 7855, 7856, 7, 86, 2, 2, 7856, 7857, 7, 71, 2, 2, 7857, 7858, 7, 79, 2, 2, 7858, 7859, 7, 97, 2, 2, 7859, 7860, 7, 88, 2, 2, 7860, 7861, 7, 67, 2, 2, 7861, 7862, 7, 84, 2, 2, 7862, 7863, 7, 75, 2, 2, 7863, 7864, 7, 67, 2, 2, 7864, 7865, 7, 68, 2, 2, 7865, 7866, 7, 78, 2, 2, 7866, 7867, 7, 71, 2, 2, 7867, 7868, 7, 85, 2, 2, 7868, 7869, 7, 97, 2, 2, 7869, 7870, 7, 67, 2, 2, 7870, 7871, 7, 70, 2, 2, 7871, 7872, 7, 79, 2, 2, 7872, 7873, 7, 75, 2, 2, 7873, 7874, 7, 80, 2, 2, 7874, 1268, 3, 2, 2, 2, 7875, 7876, 7, 86, 2, 2, 7876, 7877, 7, 67, 2, 2, 7877, 7878, 7, 68, 2, 2, 7878, 7879, 7, 78, 2, 2, 7879, 7880, 7, 71, 2, 2, 7880, 7881, 7, 97, 2, 2, 7881, 7882, 7, 71, 2, 2, 7882, 7883, 7, 80, 2, 2, 7883, 7884, 7, 69, 2, 2, 7884, 7885, 7, 84, 2, 2, 7885, 7886, 7, 91, 2, 2, 7886, 7887, 7, 82, 2, 2, 7887, 7888, 7, 86, 2, 2, 7888, 7889, 7, 75, 2, 2, 7889, 7890, 7, 81, 2, 2, 7890, 7891, 7, 80, 2, 2, 7891, 7892, 7, 97, 2, 2, 7892, 7893, 7, 67, 2, 2, 7893, 7894, 7, 70, 2, 2, 7894, 7895, 7, 79, 2, 2, 7895, 7896, 7, 75, 2, 2, 7896, 7897, 7, 80, 2, 2, 7897, 1270, 3, 2, 2, 2, 7898, 7899, 7, 88, 2, 2, 7899, 7900, 7, 71, 2, 2, 7900, 7901, 7, 84, 2, 2, 7901, 7902, 7, 85, 2, 2, 7902, 7903, 7, 75, 2, 2, 7903, 7904, 7, 81, 2, 2, 7904, 7905, 7, 80, 2, 2, 7905, 7906, 7, 97, 2, 2, 7906, 7907, 7, 86, 2, 2, 7907, 7908, 7, 81, 2, 2, 7908, 7909, 7, 77, 2, 2, 7909, 7910, 7, 71, 2, 2, 7910, 7911, 7, 80, 2, 2, 7911, 7912, 7, 97, 2, 2, 7912, 7913, 7, 67, 2, 2, 7913, 7914, 7, 70, 2, 2, 7914, 7915, 7, 79, 2, 2, 7915, 7916, 7, 75, 2, 2, 7916, 7917, 7, 80, 2, 2, 7917, 1272, 3, 2, 2, 2, 7918, 7919, 7, 90, 2, 2, 7919, 7920, 7, 67, 2, 2, 7920, 7921, 7, 97, 2, 2, 7921, 7922, 7, 84, 2, 2, 7922, 7923, 7, 71, 2, 2, 7923, 7924, 7, 69, 2, 2, 7924, 7925, 7, 81, 2, 2, 7925, 7926, 7, 88, 2, 2, 7926, 7927, 7, 71, 2, 2, 7927, 7928, 7, 84, 2, 2, 7928, 7929, 7, 97, 2, 2, 7929, 7930, 7, 67, 2, 2, 7930, 7931, 7, 70, 2, 2, 7931, 7932, 7, 79, 2, 2, 7932, 7933, 7, 75, 2, 2, 7933, 7934, 7, 80, 2, 2, 7934, 1274, 3, 2, 2, 2, 7935, 7936, 7, 67, 2, 2, 7936, 7937, 7, 84, 2, 2, 7937, 7938, 7, 79, 2, 2, 7938, 7939, 7, 85, 2, 2, 7939, 7940, 7, 69, 2, 2, 7940, 7941, 7, 75, 2, 2, 7941, 7942, 7, 75, 2, 2, 7942, 7943, 7, 58, 2, 2, 7943, 1276, 3, 2, 2, 2, 7944, 7945, 7, 67, 2, 2, 7945, 7946, 7, 85, 2, 2, 7946, 7947, 7, 69, 2, 2, 7947, 7948, 7, 75, 2, 2, 7948, 7949, 7, 75, 2, 2, 7949, 1278, 3, 2, 2, 2, 7950, 7951, 7, 68, 2, 2, 7951, 7952, 7, 75, 2, 2, 7952, 7953, 7, 73, 2, 2, 7953, 7954, 7, 55, 2, 2, 7954, 1280, 3, 2, 2, 2, 7955, 7956, 7, 69, 2, 2, 7956, 7957, 7, 82, 2, 2, 7957, 7958, 7, 51, 2, 2, 7958, 7959, 7, 52, 2, 2, 7959, 7960, 7, 55, 2, 2, 7960, 7961, 7, 50, 2, 2, 7961, 1282, 3, 2, 2, 2, 7962, 7963, 7, 69, 2, 2, 7963, 7964, 7, 82, 2, 2, 7964, 7965, 7, 51, 2, 2, 7965, 7966, 7, 52, 2, 2, 7966, 7967, 7, 55, 2, 2, 7967, 7968, 7, 51, 2, 2, 7968, 1284, 3, 2, 2, 2, 7969, 7970, 7, 69, 2, 2, 7970, 7971, 7, 82, 2, 2, 7971, 7972, 7, 51, 2, 2, 7972, 7973, 7, 52, 2, 2, 7973, 7974, 7, 55, 2, 2, 7974, 7975, 7, 56, 2, 2, 7975, 1286, 3, 2, 2, 2, 7976, 7977, 7, 69, 2, 2, 7977, 7978, 7, 82, 2, 2, 7978, 7979, 7, 51, 2, 2, 7979, 7980, 7, 52, 2, 2, 7980, 7981, 7, 55, 2, 2, 7981, 7982, 7, 57, 2, 2, 7982, 1288, 3, 2, 2, 2, 7983, 7984, 7, 69, 2, 2, 7984, 7985, 7, 82, 2, 2, 7985, 7986, 7, 58, 2, 2, 7986, 7987, 7, 55, 2, 2, 7987, 7988, 7, 50, 2, 2, 7988, 1290, 3, 2, 2, 2, 7989, 7990, 7, 69, 2, 2, 7990, 7991, 7, 82, 2, 2, 7991, 7992, 7, 58, 2, 2, 7992, 7993, 7, 55, 2, 2, 7993, 7994, 7, 52, 2, 2, 7994, 1292, 3, 2, 2, 2, 7995, 7996, 7, 69, 2, 2, 7996, 7997, 7, 82, 2, 2, 7997, 7998, 7, 58, 2, 2, 7998, 7999, 7, 56, 2, 2, 7999, 8000, 7, 56, 2, 2, 8000, 1294, 3, 2, 2, 2, 8001, 8002, 7, 69, 2, 2, 8002, 8003, 7, 82, 2, 2, 8003, 8004, 7, 59, 2, 2, 8004, 8005, 7, 53, 2, 2, 8005, 8006, 7, 52, 2, 2, 8006, 1296, 3, 2, 2, 2, 8007, 8008, 7, 70, 2, 2, 8008, 8009, 7, 71, 2, 2, 8009, 8010, 7, 69, 2, 2, 8010, 8011, 7, 58, 2, 2, 8011, 1298, 3, 2, 2, 2, 8012, 8013, 7, 71, 2, 2, 8013, 8014, 7, 87, 2, 2, 8014, 8015, 7, 69, 2, 2, 8015, 8016, 7, 76, 2, 2, 8016, 8017, 7, 82, 2, 2, 8017, 8018, 7, 79, 2, 2, 8018, 8019, 7, 85, 2, 2, 8019, 1300, 3, 2, 2, 2, 8020, 8021, 7, 71, 2, 2, 8021, 8022, 7, 87, 2, 2, 8022, 8023, 7, 69, 2, 2, 8023, 8024, 7, 77, 2, 2, 8024, 8025, 7, 84, 2, 2, 8025, 1302, 3, 2, 2, 2, 8026, 8027, 7, 73, 2, 2, 8027, 8028, 7, 68, 2, 2, 8028, 8029, 7, 52, 2, 2, 8029, 8030, 7, 53, 2, 2, 8030, 8031, 7, 51, 2, 2, 8031, 8032, 7, 52, 2, 2, 8032, 1304, 3, 2, 2, 2, 8033, 8034, 7, 73, 2, 2, 8034, 8035, 7, 68, 2, 2, 8035, 8036, 7, 77, 2, 2, 8036, 1306, 3, 2, 2, 2, 8037, 8038, 7, 73, 2, 2, 8038, 8039, 7, 71, 2, 2, 8039, 8040, 7, 81, 2, 2, 8040, 8041, 7, 85, 2, 2, 8041, 8042, 7, 86, 2, 2, 8042, 8043, 7, 70, 2, 2, 8043, 8044, 7, 58, 2, 2, 8044, 1308, 3, 2, 2, 2, 8045, 8046, 7, 73, 2, 2, 8046, 8047, 7, 84, 2, 2, 8047, 8048, 7, 71, 2, 2, 8048, 8049, 7, 71, 2, 2, 8049, 8050, 7, 77, 2, 2, 8050, 1310, 3, 2, 2, 2, 8051, 8052, 7, 74, 2, 2, 8052, 8053, 7, 71, 2, 2, 8053, 8054, 7, 68, 2, 2, 8054, 8055, 7, 84, 2, 2, 8055, 8056, 7, 71, 2, 2, 8056, 8057, 7, 89, 2, 2, 8057, 1312, 3, 2, 2, 2, 8058, 8059, 7, 74, 2, 2, 8059, 8060, 7, 82, 2, 2, 8060, 8061, 7, 58, 2, 2, 8061, 1314, 3, 2, 2, 2, 8062, 8063, 7, 77, 2, 2, 8063, 8064, 7, 71, 2, 2, 8064, 8065, 7, 91, 2, 2, 8065, 8066, 7, 68, 2, 2, 8066, 8067, 7, 69, 2, 2, 8067, 8068, 7, 85, 2, 2, 8068, 8069, 7, 52, 2, 2, 8069, 1316, 3, 2, 2, 2, 8070, 8071, 7, 77, 2, 2, 8071, 8072, 7, 81, 2, 2, 8072, 8073, 7, 75, 2, 2, 8073, 8074, 7, 58, 2, 2, 8074, 8075, 7, 84, 2, 2, 8075, 1318, 3, 2, 2, 2, 8076, 8077, 7, 77, 2, 2, 8077, 8078, 7, 81, 2, 2, 8078, 8079, 7, 75, 2, 2, 8079, 8080, 7, 58, 2, 2, 8080, 8081, 7, 87, 2, 2, 8081, 1320, 3, 2, 2, 2, 8082, 8083, 7, 78, 2, 2, 8083, 8084, 7, 67, 2, 2, 8084, 8085, 7, 86, 2, 2, 8085, 8086, 7, 75, 2, 2, 8086, 8087, 7, 80, 2, 2, 8087, 8088, 7, 51, 2, 2, 8088, 1322, 3, 2, 2, 2, 8089, 8090, 7, 78, 2, 2, 8090, 8091, 7, 67, 2, 2, 8091, 8092, 7, 86, 2, 2, 8092, 8093, 7, 75, 2, 2, 8093, 8094, 7, 80, 2, 2, 8094, 8095, 7, 52, 2, 2, 8095, 1324, 3, 2, 2, 2, 8096, 8097, 7, 78, 2, 2, 8097, 8098, 7, 67, 2, 2, 8098, 8099, 7, 86, 2, 2, 8099, 8100, 7, 75, 2, 2, 8100, 8101, 7, 80, 2, 2, 8101, 8102, 7, 55, 2, 2, 8102, 1326, 3, 2, 2, 2, 8103, 8104, 7, 78, 2, 2, 8104, 8105, 7, 67, 2, 2, 8105, 8106, 7, 86, 2, 2, 8106, 8107, 7, 75, 2, 2, 8107, 8108, 7, 80, 2, 2, 8108, 8109, 7, 57, 2, 2, 8109, 1328, 3, 2, 2, 2, 8110, 8111, 7, 79, 2, 2, 8111, 8112, 7, 67, 2, 2, 8112, 8113, 7, 69, 2, 2, 8113, 8114, 7, 69, 2, 2, 8114, 8115, 7, 71, 2, 2, 8115, 1330, 3, 2, 2, 2, 8116, 8117, 7, 79, 2, 2, 8117, 8118, 7, 67, 2, 2, 8118, 8119, 7, 69, 2, 2, 8119, 8120, 7, 84, 2, 2, 8120, 8121, 7, 81, 2, 2, 8121, 8122, 7, 79, 2, 2, 8122, 8123, 7, 67, 2, 2, 8123, 8124, 7, 80, 2, 2, 8124, 1332, 3, 2, 2, 2, 8125, 8126, 7, 85, 2, 2, 8126, 8127, 7, 76, 2, 2, 8127, 8128, 7, 75, 2, 2, 8128, 8129, 7, 85, 2, 2, 8129, 1334, 3, 2, 2, 2, 8130, 8131, 7, 85, 2, 2, 8131, 8132, 7, 89, 2, 2, 8132, 8133, 7, 71, 2, 2, 8133, 8134, 7, 57, 2, 2, 8134, 1336, 3, 2, 2, 2, 8135, 8136, 7, 86, 2, 2, 8136, 8137, 7, 75, 2, 2, 8137, 8138, 7, 85, 2, 2, 8138, 8139, 7, 56, 2, 2, 8139, 8140, 7, 52, 2, 2, 8140, 8141, 7, 50, 2, 2, 8141, 1338, 3, 2, 2, 2, 8142, 8143, 7, 87, 2, 2, 8143, 8144, 7, 69, 2, 2, 8144, 8145, 7, 85, 2, 2, 8145, 8146, 7, 52, 2, 2, 8146, 1340, 3, 2, 2, 2, 8147, 8148, 7, 87, 2, 2, 8148, 8149, 7, 76, 2, 2, 8149, 8150, 7, 75, 2, 2, 8150, 8151, 7, 85, 2, 2, 8151, 1342, 3, 2, 2, 2, 8152, 8153, 7, 87, 2, 2, 8153, 8154, 7, 86, 2, 2, 8154, 8155, 7, 72, 2, 2, 8155, 8156, 7, 51, 2, 2, 8156, 8157, 7, 56, 2, 2, 8157, 1344, 3, 2, 2, 2, 8158, 8159, 7, 87, 2, 2, 8159, 8160, 7, 86, 2, 2, 8160, 8161, 7, 72, 2, 2, 8161, 8162, 7, 51, 2, 2, 8162, 8163, 7, 56, 2, 2, 8163, 8164, 7, 78, 2, 2, 8164, 8165, 7, 71, 2, 2, 8165, 1346, 3, 2, 2, 2, 8166, 8167, 7, 87, 2, 2, 8167, 8168, 7, 86, 2, 2, 8168, 8169, 7, 72, 2, 2, 8169, 8170, 7, 53, 2, 2, 8170, 8171, 7, 52, 2, 2, 8171, 1348, 3, 2, 2, 2, 8172, 8173, 7, 87, 2, 2, 8173, 8174, 7, 86, 2, 2, 8174, 8175, 7, 72, 2, 2, 8175, 8176, 7, 58, 2, 2, 8176, 1350, 3, 2, 2, 2, 8177, 8178, 7, 87, 2, 2, 8178, 8179, 7, 86, 2, 2, 8179, 8180, 7, 72, 2, 2, 8180, 8181, 7, 58, 2, 2, 8181, 8182, 7, 79, 2, 2, 8182, 8183, 7, 68, 2, 2, 8183, 8184, 7, 53, 2, 2, 8184, 1352, 3, 2, 2, 2, 8185, 8186, 7, 87, 2, 2, 8186, 8187, 7, 86, 2, 2, 8187, 8188, 7, 72, 2, 2, 8188, 8189, 7, 58, 2, 2, 8189, 8190, 7, 79, 2, 2, 8190, 8191, 7, 68, 2, 2, 8191, 8192, 7, 54, 2, 2, 8192, 1354, 3, 2, 2, 2, 8193, 8194, 7, 67, 2, 2, 8194, 8195, 7, 84, 2, 2, 8195, 8196, 7, 69, 2, 2, 8196, 8197, 7, 74, 2, 2, 8197, 8198, 7, 75, 2, 2, 8198, 8199, 7, 88, 2, 2, 8199, 8200, 7, 71, 2, 2, 8200, 1356, 3, 2, 2, 2, 8201, 8202, 7, 68, 2, 2, 8202, 8203, 7, 78, 2, 2, 8203, 8204, 7, 67, 2, 2, 8204, 8205, 7, 69, 2, 2, 8205, 8206, 7, 77, 2, 2, 8206, 8207, 7, 74, 2, 2, 8207, 8208, 7, 81, 2, 2, 8208, 8209, 7, 78, 2, 2, 8209, 8210, 7, 71, 2, 2, 8210, 1358, 3, 2, 2, 2, 8211, 8212, 7, 69, 2, 2, 8212, 8213, 7, 85, 2, 2, 8213, 8214, 7, 88, 2, 2, 8214, 1360, 3, 2, 2, 2, 8215, 8216, 7, 72, 2, 2, 8216, 8217, 7, 71, 2, 2, 8217, 8218, 7, 70, 2, 2, 8218, 8219, 7, 71, 2, 2, 8219, 8220, 7, 84, 2, 2, 8220, 8221, 7, 67, 2, 2, 8221, 8222, 7, 86, 2, 2, 8222, 8223, 7, 71, 2, 2, 8223, 8224, 7, 70, 2, 2, 8224, 1362, 3, 2, 2, 2, 8225, 8226, 7, 75, 2, 2, 8226, 8227, 7, 80, 2, 2, 8227, 8228, 7, 80, 2, 2, 8228, 8229, 7, 81, 2, 2, 8229, 8230, 7, 70, 2, 2, 8230, 8231, 7, 68, 2, 2, 8231, 1364, 3, 2, 2, 2, 8232, 8233, 7, 79, 2, 2, 8233, 8234, 7, 71, 2, 2, 8234, 8235, 7, 79, 2, 2, 8235, 8236, 7, 81, 2, 2, 8236, 8237, 7, 84, 2, 2, 8237, 8238, 7, 91, 2, 2, 8238, 1366, 3, 2, 2, 2, 8239, 8240, 7, 79, 2, 2, 8240, 8241, 7, 84, 2, 2, 8241, 8242, 7, 73, 2, 2, 8242, 8243, 7, 97, 2, 2, 8243, 8244, 7, 79, 2, 2, 8244, 8245, 7, 91, 2, 2, 8245, 8246, 7, 75, 2, 2, 8246, 8247, 7, 85, 2, 2, 8247, 8248, 7, 67, 2, 2, 8248, 8249, 7, 79, 2, 2, 8249, 1368, 3, 2, 2, 2, 8250, 8251, 7, 79, 2, 2, 8251, 8252, 7, 91, 2, 2, 8252, 8253, 7, 75, 2, 2, 8253, 8254, 7, 85, 2, 2, 8254, 8255, 7, 67, 2, 2, 8255, 8256, 7, 79, 2, 2, 8256, 1370, 3, 2, 2, 2, 8257, 8258, 7, 80, 2, 2, 8258, 8259, 7, 70, 2, 2, 8259, 8260, 7, 68, 2, 2, 8260, 1372, 3, 2, 2, 2, 8261, 8262, 7, 80, 2, 2, 8262, 8263, 7, 70, 2, 2, 8263, 8264, 7, 68, 2, 2, 8264, 8265, 7, 69, 2, 2, 8265, 8266, 7, 78, 2, 2, 8266, 8267, 7, 87, 2, 2, 8267, 8268, 7, 85, 2, 2, 8268, 8269, 7, 86, 2, 2, 8269, 8270, 7, 71, 2, 2, 8270, 8271, 7, 84, 2, 2, 8271, 1374, 3, 2, 2, 2, 8272, 8273, 7, 82, 2, 2, 8273, 8274, 7, 71, 2, 2, 8274, 8275, 7, 84, 2, 2, 8275, 8276, 7, 72, 2, 2, 8276, 8277, 7, 81, 2, 2, 8277, 8278, 7, 84, 2, 2, 8278, 8279, 7, 79, 2, 2, 8279, 8280, 7, 67, 2, 2, 8280, 8281, 7, 80, 2, 2, 8281, 8282, 7, 69, 2, 2, 8282, 8283, 7, 71, 2, 2, 8283, 8284, 7, 97, 2, 2, 8284, 8285, 7, 85, 2, 2, 8285, 8286, 7, 69, 2, 2, 8286, 8287, 7, 74, 2, 2, 8287, 8288, 7, 71, 2, 2, 8288, 8289, 7, 79, 2, 2, 8289, 8290, 7, 67, 2, 2, 8290, 1376, 3, 2, 2, 2, 8291, 8292, 7, 86, 2, 2, 8292, 8293, 7, 81, 2, 2, 8293, 8294, 7, 77, 2, 2, 8294, 8295, 7, 87, 2, 2, 8295, 8296, 7, 70, 2, 2, 8296, 8297, 7, 68, 2, 2, 8297, 1378, 3, 2, 2, 2, 8298, 8299, 7, 84, 2, 2, 8299, 8300, 7, 71, 2, 2, 8300, 8301, 7, 82, 2, 2, 8301, 8302, 7, 71, 2, 2, 8302, 8303, 7, 67, 2, 2, 8303, 8304, 7, 86, 2, 2, 8304, 8305, 7, 67, 2, 2, 8305, 8306, 7, 68, 2, 2, 8306, 8307, 7, 78, 2, 2, 8307, 8308, 7, 71, 2, 2, 8308, 1380, 3, 2, 2, 2, 8309, 8310, 7, 69, 2, 2, 8310, 8311, 7, 81, 2, 2, 8311, 8312, 7, 79, 2, 2, 8312, 8313, 7, 79, 2, 2, 8313, 8314, 7, 75, 2, 2, 8314, 8315, 7, 86, 2, 2, 8315, 8316, 7, 86, 2, 2, 8316, 8317, 7, 71, 2, 2, 8317, 8318, 7, 70, 2, 2, 8318, 1382, 3, 2, 2, 2, 8319, 8320, 7, 87, 2, 2, 8320, 8321, 7, 80, 2, 2, 8321, 8322, 7, 69, 2, 2, 8322, 8323, 7, 81, 2, 2, 8323, 8324, 7, 79, 2, 2, 8324, 8325, 7, 79, 2, 2, 8325, 8326, 7, 75, 2, 2, 8326, 8327, 7, 86, 2, 2, 8327, 8328, 7, 86, 2, 2, 8328, 8329, 7, 71, 2, 2, 8329, 8330, 7, 70, 2, 2, 8330, 1384, 3, 2, 2, 2, 8331, 8332, 7, 85, 2, 2, 8332, 8333, 7, 71, 2, 2, 8333, 8334, 7, 84, 2, 2, 8334, 8335, 7, 75, 2, 2, 8335, 8336, 7, 67, 2, 2, 8336, 8337, 7, 78, 2, 2, 8337, 8338, 7, 75, 2, 2, 8338, 8339, 7, 92, 2, 2, 8339, 8340, 7, 67, 2, 2, 8340, 8341, 7, 68, 2, 2, 8341, 8342, 7, 78, 2, 2, 8342, 8343, 7, 71, 2, 2, 8343, 1386, 3, 2, 2, 2, 8344, 8345, 7, 73, 2, 2, 8345, 8346, 7, 71, 2, 2, 8346, 8347, 7, 81, 2, 2, 8347, 8348, 7, 79, 2, 2, 8348, 8349, 7, 71, 2, 2, 8349, 8350, 7, 86, 2, 2, 8350, 8351, 7, 84, 2, 2, 8351, 8352, 7, 91, 2, 2, 8352, 8353, 7, 69, 2, 2, 8353, 8354, 7, 81, 2, 2, 8354, 8355, 7, 78, 2, 2, 8355, 8356, 7, 78, 2, 2, 8356, 8357, 7, 71, 2, 2, 8357, 8358, 7, 69, 2, 2, 8358, 8359, 7, 86, 2, 2, 8359, 8360, 7, 75, 2, 2, 8360, 8361, 7, 81, 2, 2, 8361, 8362, 7, 80, 2, 2, 8362, 1388, 3, 2, 2, 2, 8363, 8364, 7, 73, 2, 2, 8364, 8365, 7, 71, 2, 2, 8365, 8366, 7, 81, 2, 2, 8366, 8367, 7, 79, 2, 2, 8367, 8368, 7, 69, 2, 2, 8368, 8369, 7, 81, 2, 2, 8369, 8370, 7, 78, 2, 2, 8370, 8371, 7, 78, 2, 2, 8371, 8372, 7, 71, 2, 2, 8372, 8373, 7, 69, 2, 2, 8373, 8374, 7, 86, 2, 2, 8374, 8375, 7, 75, 2, 2, 8375, 8376, 7, 81, 2, 2, 8376, 8377, 7, 80, 2, 2, 8377, 1390, 3, 2, 2, 2, 8378, 8379, 7, 73, 2, 2, 8379, 8380, 7, 71, 2, 2, 8380, 8381, 7, 81, 2, 2, 8381, 8382, 7, 79, 2, 2, 8382, 8383, 7, 71, 2, 2, 8383, 8384, 7, 86, 2, 2, 8384, 8385, 7, 84, 2, 2, 8385, 8386, 7, 91, 2, 2, 8386, 1392, 3, 2, 2, 2, 8387, 8388, 7, 78, 2, 2, 8388, 8389, 7, 75, 2, 2, 8389, 8390, 7, 80, 2, 2, 8390, 8391, 7, 71, 2, 2, 8391, 8392, 7, 85, 2, 2, 8392, 8393, 7, 86, 2, 2, 8393, 8394, 7, 84, 2, 2, 8394, 8395, 7, 75, 2, 2, 8395, 8396, 7, 80, 2, 2, 8396, 8397, 7, 73, 2, 2, 8397, 1394, 3, 2, 2, 2, 8398, 8399, 7, 79, 2, 2, 8399, 8400, 7, 87, 2, 2, 8400, 8401, 7, 78, 2, 2, 8401, 8402, 7, 86, 2, 2, 8402, 8403, 7, 75, 2, 2, 8403, 8404, 7, 78, 2, 2, 8404, 8405, 7, 75, 2, 2, 8405, 8406, 7, 80, 2, 2, 8406, 8407, 7, 71, 2, 2, 8407, 8408, 7, 85, 2, 2, 8408, 8409, 7, 86, 2, 2, 8409, 8410, 7, 84, 2, 2, 8410, 8411, 7, 75, 2, 2, 8411, 8412, 7, 80, 2, 2, 8412, 8413, 7, 73, 2, 2, 8413, 1396, 3, 2, 2, 2, 8414, 8415, 7, 79, 2, 2, 8415, 8416, 7, 87, 2, 2, 8416, 8417, 7, 78, 2, 2, 8417, 8418, 7, 86, 2, 2, 8418, 8419, 7, 75, 2, 2, 8419, 8420, 7, 82, 2, 2, 8420, 8421, 7, 81, 2, 2, 8421, 8422, 7, 75, 2, 2, 8422, 8423, 7, 80, 2, 2, 8423, 8424, 7, 86, 2, 2, 8424, 1398, 3, 2, 2, 2, 8425, 8426, 7, 79, 2, 2, 8426, 8427, 7, 87, 2, 2, 8427, 8428, 7, 78, 2, 2, 8428, 8429, 7, 86, 2, 2, 8429, 8430, 7, 75, 2, 2, 8430, 8431, 7, 82, 2, 2, 8431, 8432, 7, 81, 2, 2, 8432, 8433, 7, 78, 2, 2, 8433, 8434, 7, 91, 2, 2, 8434, 8435, 7, 73, 2, 2, 8435, 8436, 7, 81, 2, 2, 8436, 8437, 7, 80, 2, 2, 8437, 1400, 3, 2, 2, 2, 8438, 8439, 7, 82, 2, 2, 8439, 8440, 7, 81, 2, 2, 8440, 8441, 7, 75, 2, 2, 8441, 8442, 7, 80, 2, 2, 8442, 8443, 7, 86, 2, 2, 8443, 1402, 3, 2, 2, 2, 8444, 8445, 7, 82, 2, 2, 8445, 8446, 7, 81, 2, 2, 8446, 8447, 7, 78, 2, 2, 8447, 8448, 7, 91, 2, 2, 8448, 8449, 7, 73, 2, 2, 8449, 8450, 7, 81, 2, 2, 8450, 8451, 7, 80, 2, 2, 8451, 1404, 3, 2, 2, 2, 8452, 8453, 7, 67, 2, 2, 8453, 8454, 7, 68, 2, 2, 8454, 8455, 7, 85, 2, 2, 8455, 1406, 3, 2, 2, 2, 8456, 8457, 7, 67, 2, 2, 8457, 8458, 7, 69, 2, 2, 8458, 8459, 7, 81, 2, 2, 8459, 8460, 7, 85, 2, 2, 8460, 1408, 3, 2, 2, 2, 8461, 8462, 7, 67, 2, 2, 8462, 8463, 7, 70, 2, 2, 8463, 8464, 7, 70, 2, 2, 8464, 8465, 7, 70, 2, 2, 8465, 8466, 7, 67, 2, 2, 8466, 8467, 7, 86, 2, 2, 8467, 8468, 7, 71, 2, 2, 8468, 1410, 3, 2, 2, 2, 8469, 8470, 7, 67, 2, 2, 8470, 8471, 7, 70, 2, 2, 8471, 8472, 7, 70, 2, 2, 8472, 8473, 7, 86, 2, 2, 8473, 8474, 7, 75, 2, 2, 8474, 8475, 7, 79, 2, 2, 8475, 8476, 7, 71, 2, 2, 8476, 1412, 3, 2, 2, 2, 8477, 8478, 7, 67, 2, 2, 8478, 8479, 7, 71, 2, 2, 8479, 8480, 7, 85, 2, 2, 8480, 8481, 7, 97, 2, 2, 8481, 8482, 7, 70, 2, 2, 8482, 8483, 7, 71, 2, 2, 8483, 8484, 7, 69, 2, 2, 8484, 8485, 7, 84, 2, 2, 8485, 8486, 7, 91, 2, 2, 8486, 8487, 7, 82, 2, 2, 8487, 8488, 7, 86, 2, 2, 8488, 1414, 3, 2, 2, 2, 8489, 8490, 7, 67, 2, 2, 8490, 8491, 7, 71, 2, 2, 8491, 8492, 7, 85, 2, 2, 8492, 8493, 7, 97, 2, 2, 8493, 8494, 7, 71, 2, 2, 8494, 8495, 7, 80, 2, 2, 8495, 8496, 7, 69, 2, 2, 8496, 8497, 7, 84, 2, 2, 8497, 8498, 7, 91, 2, 2, 8498, 8499, 7, 82, 2, 2, 8499, 8500, 7, 86, 2, 2, 8500, 1416, 3, 2, 2, 2, 8501, 8502, 7, 67, 2, 2, 8502, 8503, 7, 84, 2, 2, 8503, 8504, 7, 71, 2, 2, 8504, 8505, 7, 67, 2, 2, 8505, 1418, 3, 2, 2, 2, 8506, 8507, 7, 67, 2, 2, 8507, 8508, 7, 85, 2, 2, 8508, 8509, 7, 68, 2, 2, 8509, 8510, 7, 75, 2, 2, 8510, 8511, 7, 80, 2, 2, 8511, 8512, 7, 67, 2, 2, 8512, 8513, 7, 84, 2, 2, 8513, 8514, 7, 91, 2, 2, 8514, 1420, 3, 2, 2, 2, 8515, 8516, 7, 67, 2, 2, 8516, 8517, 7, 85, 2, 2, 8517, 8518, 7, 75, 2, 2, 8518, 8519, 7, 80, 2, 2, 8519, 1422, 3, 2, 2, 2, 8520, 8521, 7, 67, 2, 2, 8521, 8522, 7, 85, 2, 2, 8522, 8523, 7, 86, 2, 2, 8523, 8524, 7, 71, 2, 2, 8524, 8525, 7, 90, 2, 2, 8525, 8526, 7, 86, 2, 2, 8526, 1424, 3, 2, 2, 2, 8527, 8528, 7, 67, 2, 2, 8528, 8529, 7, 85, 2, 2, 8529, 8530, 7, 89, 2, 2, 8530, 8531, 7, 77, 2, 2, 8531, 8532, 7, 68, 2, 2, 8532, 1426, 3, 2, 2, 2, 8533, 8534, 7, 67, 2, 2, 8534, 8535, 7, 85, 2, 2, 8535, 8536, 7, 89, 2, 2, 8536, 8537, 7, 77, 2, 2, 8537, 8538, 7, 86, 2, 2, 8538, 1428, 3, 2, 2, 2, 8539, 8540, 7, 67, 2, 2, 8540, 8541, 7, 85, 2, 2, 8541, 8542, 7, 91, 2, 2, 8542, 8543, 7, 79, 2, 2, 8543, 8544, 7, 79, 2, 2, 8544, 8545, 7, 71, 2, 2, 8545, 8546, 7, 86, 2, 2, 8546, 8547, 7, 84, 2, 2, 8547, 8548, 7, 75, 2, 2, 8548, 8549, 7, 69, 2, 2, 8549, 8550, 7, 97, 2, 2, 8550, 8551, 7, 70, 2, 2, 8551, 8552, 7, 71, 2, 2, 8552, 8553, 7, 69, 2, 2, 8553, 8554, 7, 84, 2, 2, 8554, 8555, 7, 91, 2, 2, 8555, 8556, 7, 82, 2, 2, 8556, 8557, 7, 86, 2, 2, 8557, 1430, 3, 2, 2, 2, 8558, 8559, 7, 67, 2, 2, 8559, 8560, 7, 85, 2, 2, 8560, 8561, 7, 91, 2, 2, 8561, 8562, 7, 79, 2, 2, 8562, 8563, 7, 79, 2, 2, 8563, 8564, 7, 71, 2, 2, 8564, 8565, 7, 86, 2, 2, 8565, 8566, 7, 84, 2, 2, 8566, 8567, 7, 75, 2, 2, 8567, 8568, 7, 69, 2, 2, 8568, 8569, 7, 97, 2, 2, 8569, 8570, 7, 70, 2, 2, 8570, 8571, 7, 71, 2, 2, 8571, 8572, 7, 84, 2, 2, 8572, 8573, 7, 75, 2, 2, 8573, 8574, 7, 88, 2, 2, 8574, 8575, 7, 71, 2, 2, 8575, 1432, 3, 2, 2, 2, 8576, 8577, 7, 67, 2, 2, 8577, 8578, 7, 85, 2, 2, 8578, 8579, 7, 91, 2, 2, 8579, 8580, 7, 79, 2, 2, 8580, 8581, 7, 79, 2, 2, 8581, 8582, 7, 71, 2, 2, 8582, 8583, 7, 86, 2, 2, 8583, 8584, 7, 84, 2, 2, 8584, 8585, 7, 75, 2, 2, 8585, 8586, 7, 69, 2, 2, 8586, 8587, 7, 97, 2, 2, 8587, 8588, 7, 71, 2, 2, 8588, 8589, 7, 80, 2, 2, 8589, 8590, 7, 69, 2, 2, 8590, 8591, 7, 84, 2, 2, 8591, 8592, 7, 91, 2, 2, 8592, 8593, 7, 82, 2, 2, 8593, 8594, 7, 86, 2, 2, 8594, 1434, 3, 2, 2, 2, 8595, 8596, 7, 67, 2, 2, 8596, 8597, 7, 85, 2, 2, 8597, 8598, 7, 91, 2, 2, 8598, 8599, 7, 79, 2, 2, 8599, 8600, 7, 79, 2, 2, 8600, 8601, 7, 71, 2, 2, 8601, 8602, 7, 86, 2, 2, 8602, 8603, 7, 84, 2, 2, 8603, 8604, 7, 75, 2, 2, 8604, 8605, 7, 69, 2, 2, 8605, 8606, 7, 97, 2, 2, 8606, 8607, 7, 85, 2, 2, 8607, 8608, 7, 75, 2, 2, 8608, 8609, 7, 73, 2, 2, 8609, 8610, 7, 80, 2, 2, 8610, 1436, 3, 2, 2, 2, 8611, 8612, 7, 67, 2, 2, 8612, 8613, 7, 85, 2, 2, 8613, 8614, 7, 91, 2, 2, 8614, 8615, 7, 79, 2, 2, 8615, 8616, 7, 79, 2, 2, 8616, 8617, 7, 71, 2, 2, 8617, 8618, 7, 86, 2, 2, 8618, 8619, 7, 84, 2, 2, 8619, 8620, 7, 75, 2, 2, 8620, 8621, 7, 69, 2, 2, 8621, 8622, 7, 97, 2, 2, 8622, 8623, 7, 88, 2, 2, 8623, 8624, 7, 71, 2, 2, 8624, 8625, 7, 84, 2, 2, 8625, 8626, 7, 75, 2, 2, 8626, 8627, 7, 72, 2, 2, 8627, 8628, 7, 91, 2, 2, 8628, 1438, 3, 2, 2, 2, 8629, 8630, 7, 67, 2, 2, 8630, 8631, 7, 86, 2, 2, 8631, 8632, 7, 67, 2, 2, 8632, 8633, 7, 80, 2, 2, 8633, 1440, 3, 2, 2, 2, 8634, 8635, 7, 67, 2, 2, 8635, 8636, 7, 86, 2, 2, 8636, 8637, 7, 67, 2, 2, 8637, 8638, 7, 80, 2, 2, 8638, 8639, 7, 52, 2, 2, 8639, 1442, 3, 2, 2, 2, 8640, 8641, 7, 68, 2, 2, 8641, 8642, 7, 71, 2, 2, 8642, 8643, 7, 80, 2, 2, 8643, 8644, 7, 69, 2, 2, 8644, 8645, 7, 74, 2, 2, 8645, 8646, 7, 79, 2, 2, 8646, 8647, 7, 67, 2, 2, 8647, 8648, 7, 84, 2, 2, 8648, 8649, 7, 77, 2, 2, 8649, 1444, 3, 2, 2, 2, 8650, 8651, 7, 68, 2, 2, 8651, 8652, 7, 75, 2, 2, 8652, 8653, 7, 80, 2, 2, 8653, 1446, 3, 2, 2, 2, 8654, 8655, 7, 68, 2, 2, 8655, 8656, 7, 75, 2, 2, 8656, 8657, 7, 86, 2, 2, 8657, 8658, 7, 97, 2, 2, 8658, 8659, 7, 69, 2, 2, 8659, 8660, 7, 81, 2, 2, 8660, 8661, 7, 87, 2, 2, 8661, 8662, 7, 80, 2, 2, 8662, 8663, 7, 86, 2, 2, 8663, 1448, 3, 2, 2, 2, 8664, 8665, 7, 68, 2, 2, 8665, 8666, 7, 75, 2, 2, 8666, 8667, 7, 86, 2, 2, 8667, 8668, 7, 97, 2, 2, 8668, 8669, 7, 78, 2, 2, 8669, 8670, 7, 71, 2, 2, 8670, 8671, 7, 80, 2, 2, 8671, 8672, 7, 73, 2, 2, 8672, 8673, 7, 86, 2, 2, 8673, 8674, 7, 74, 2, 2, 8674, 1450, 3, 2, 2, 2, 8675, 8676, 7, 68, 2, 2, 8676, 8677, 7, 87, 2, 2, 8677, 8678, 7, 72, 2, 2, 8678, 8679, 7, 72, 2, 2, 8679, 8680, 7, 71, 2, 2, 8680, 8681, 7, 84, 2, 2, 8681, 1452, 3, 2, 2, 2, 8682, 8683, 7, 69, 2, 2, 8683, 8684, 7, 67, 2, 2, 8684, 8685, 7, 86, 2, 2, 8685, 8686, 7, 67, 2, 2, 8686, 8687, 7, 78, 2, 2, 8687, 8688, 7, 81, 2, 2, 8688, 8689, 7, 73, 2, 2, 8689, 8690, 7, 97, 2, 2, 8690, 8691, 7, 80, 2, 2, 8691, 8692, 7, 67, 2, 2, 8692, 8693, 7, 79, 2, 2, 8693, 8694, 7, 71, 2, 2, 8694, 1454, 3, 2, 2, 2, 8695, 8696, 7, 69, 2, 2, 8696, 8697, 7, 71, 2, 2, 8697, 8698, 7, 75, 2, 2, 8698, 8699, 7, 78, 2, 2, 8699, 1456, 3, 2, 2, 2, 8700, 8701, 7, 69, 2, 2, 8701, 8702, 7, 71, 2, 2, 8702, 8703, 7, 75, 2, 2, 8703, 8704, 7, 78, 2, 2, 8704, 8705, 7, 75, 2, 2, 8705, 8706, 7, 80, 2, 2, 8706, 8707, 7, 73, 2, 2, 8707, 1458, 3, 2, 2, 2, 8708, 8709, 7, 69, 2, 2, 8709, 8710, 7, 71, 2, 2, 8710, 8711, 7, 80, 2, 2, 8711, 8712, 7, 86, 2, 2, 8712, 8713, 7, 84, 2, 2, 8713, 8714, 7, 81, 2, 2, 8714, 8715, 7, 75, 2, 2, 8715, 8716, 7, 70, 2, 2, 8716, 1460, 3, 2, 2, 2, 8717, 8718, 7, 69, 2, 2, 8718, 8719, 7, 74, 2, 2, 8719, 8720, 7, 67, 2, 2, 8720, 8721, 7, 84, 2, 2, 8721, 8722, 7, 67, 2, 2, 8722, 8723, 7, 69, 2, 2, 8723, 8724, 7, 86, 2, 2, 8724, 8725, 7, 71, 2, 2, 8725, 8726, 7, 84, 2, 2, 8726, 8727, 7, 97, 2, 2, 8727, 8728, 7, 78, 2, 2, 8728, 8729, 7, 71, 2, 2, 8729, 8730, 7, 80, 2, 2, 8730, 8731, 7, 73, 2, 2, 8731, 8732, 7, 86, 2, 2, 8732, 8733, 7, 74, 2, 2, 8733, 1462, 3, 2, 2, 2, 8734, 8735, 7, 69, 2, 2, 8735, 8736, 7, 74, 2, 2, 8736, 8737, 7, 67, 2, 2, 8737, 8738, 7, 84, 2, 2, 8738, 8739, 7, 85, 2, 2, 8739, 8740, 7, 71, 2, 2, 8740, 8741, 7, 86, 2, 2, 8741, 1464, 3, 2, 2, 2, 8742, 8743, 7, 69, 2, 2, 8743, 8744, 7, 74, 2, 2, 8744, 8745, 7, 67, 2, 2, 8745, 8746, 7, 84, 2, 2, 8746, 8747, 7, 97, 2, 2, 8747, 8748, 7, 78, 2, 2, 8748, 8749, 7, 71, 2, 2, 8749, 8750, 7, 80, 2, 2, 8750, 8751, 7, 73, 2, 2, 8751, 8752, 7, 86, 2, 2, 8752, 8753, 7, 74, 2, 2, 8753, 1466, 3, 2, 2, 2, 8754, 8755, 7, 69, 2, 2, 8755, 8756, 7, 81, 2, 2, 8756, 8757, 7, 71, 2, 2, 8757, 8758, 7, 84, 2, 2, 8758, 8759, 7, 69, 2, 2, 8759, 8760, 7, 75, 2, 2, 8760, 8761, 7, 68, 2, 2, 8761, 8762, 7, 75, 2, 2, 8762, 8763, 7, 78, 2, 2, 8763, 8764, 7, 75, 2, 2, 8764, 8765, 7, 86, 2, 2, 8765, 8766, 7, 91, 2, 2, 8766, 1468, 3, 2, 2, 2, 8767, 8768, 7, 69, 2, 2, 8768, 8769, 7, 81, 2, 2, 8769, 8770, 7, 78, 2, 2, 8770, 8771, 7, 78, 2, 2, 8771, 8772, 7, 67, 2, 2, 8772, 8773, 7, 86, 2, 2, 8773, 8774, 7, 75, 2, 2, 8774, 8775, 7, 81, 2, 2, 8775, 8776, 7, 80, 2, 2, 8776, 1470, 3, 2, 2, 2, 8777, 8778, 7, 69, 2, 2, 8778, 8779, 7, 81, 2, 2, 8779, 8780, 7, 79, 2, 2, 8780, 8781, 7, 82, 2, 2, 8781, 8782, 7, 84, 2, 2, 8782, 8783, 7, 71, 2, 2, 8783, 8784, 7, 85, 2, 2, 8784, 8785, 7, 85, 2, 2, 8785, 1472, 3, 2, 2, 2, 8786, 8787, 7, 69, 2, 2, 8787, 8788, 7, 81, 2, 2, 8788, 8789, 7, 80, 2, 2, 8789, 8790, 7, 69, 2, 2, 8790, 8791, 7, 67, 2, 2, 8791, 8792, 7, 86, 2, 2, 8792, 1474, 3, 2, 2, 2, 8793, 8794, 7, 69, 2, 2, 8794, 8795, 7, 81, 2, 2, 8795, 8796, 7, 80, 2, 2, 8796, 8797, 7, 69, 2, 2, 8797, 8798, 7, 67, 2, 2, 8798, 8799, 7, 86, 2, 2, 8799, 8800, 7, 97, 2, 2, 8800, 8801, 7, 89, 2, 2, 8801, 8802, 7, 85, 2, 2, 8802, 1476, 3, 2, 2, 2, 8803, 8804, 7, 69, 2, 2, 8804, 8805, 7, 81, 2, 2, 8805, 8806, 7, 80, 2, 2, 8806, 8807, 7, 80, 2, 2, 8807, 8808, 7, 71, 2, 2, 8808, 8809, 7, 69, 2, 2, 8809, 8810, 7, 86, 2, 2, 8810, 8811, 7, 75, 2, 2, 8811, 8812, 7, 81, 2, 2, 8812, 8813, 7, 80, 2, 2, 8813, 8814, 7, 97, 2, 2, 8814, 8815, 7, 75, 2, 2, 8815, 8816, 7, 70, 2, 2, 8816, 1478, 3, 2, 2, 2, 8817, 8818, 7, 69, 2, 2, 8818, 8819, 7, 81, 2, 2, 8819, 8820, 7, 80, 2, 2, 8820, 8821, 7, 88, 2, 2, 8821, 1480, 3, 2, 2, 2, 8822, 8823, 7, 69, 2, 2, 8823, 8824, 7, 81, 2, 2, 8824, 8825, 7, 80, 2, 2, 8825, 8826, 7, 88, 2, 2, 8826, 8827, 7, 71, 2, 2, 8827, 8828, 7, 84, 2, 2, 8828, 8829, 7, 86, 2, 2, 8829, 8830, 7, 97, 2, 2, 8830, 8831, 7, 86, 2, 2, 8831, 8832, 7, 92, 2, 2, 8832, 1482, 3, 2, 2, 2, 8833, 8834, 7, 69, 2, 2, 8834, 8835, 7, 81, 2, 2, 8835, 8836, 7, 85, 2, 2, 8836, 1484, 3, 2, 2, 2, 8837, 8838, 7, 69, 2, 2, 8838, 8839, 7, 81, 2, 2, 8839, 8840, 7, 86, 2, 2, 8840, 1486, 3, 2, 2, 2, 8841, 8842, 7, 69, 2, 2, 8842, 8843, 7, 84, 2, 2, 8843, 8844, 7, 69, 2, 2, 8844, 8845, 7, 53, 2, 2, 8845, 8846, 7, 52, 2, 2, 8846, 1488, 3, 2, 2, 2, 8847, 8848, 7, 69, 2, 2, 8848, 8849, 7, 84, 2, 2, 8849, 8850, 7, 71, 2, 2, 8850, 8851, 7, 67, 2, 2, 8851, 8852, 7, 86, 2, 2, 8852, 8853, 7, 71, 2, 2, 8853, 8854, 7, 97, 2, 2, 8854, 8855, 7, 67, 2, 2, 8855, 8856, 7, 85, 2, 2, 8856, 8857, 7, 91, 2, 2, 8857, 8858, 7, 79, 2, 2, 8858, 8859, 7, 79, 2, 2, 8859, 8860, 7, 71, 2, 2, 8860, 8861, 7, 86, 2, 2, 8861, 8862, 7, 84, 2, 2, 8862, 8863, 7, 75, 2, 2, 8863, 8864, 7, 69, 2, 2, 8864, 8865, 7, 97, 2, 2, 8865, 8866, 7, 82, 2, 2, 8866, 8867, 7, 84, 2, 2, 8867, 8868, 7, 75, 2, 2, 8868, 8869, 7, 88, 2, 2, 8869, 8870, 7, 97, 2, 2, 8870, 8871, 7, 77, 2, 2, 8871, 8872, 7, 71, 2, 2, 8872, 8873, 7, 91, 2, 2, 8873, 1490, 3, 2, 2, 2, 8874, 8875, 7, 69, 2, 2, 8875, 8876, 7, 84, 2, 2, 8876, 8877, 7, 71, 2, 2, 8877, 8878, 7, 67, 2, 2, 8878, 8879, 7, 86, 2, 2, 8879, 8880, 7, 71, 2, 2, 8880, 8881, 7, 97, 2, 2, 8881, 8882, 7, 67, 2, 2, 8882, 8883, 7, 85, 2, 2, 8883, 8884, 7, 91, 2, 2, 8884, 8885, 7, 79, 2, 2, 8885, 8886, 7, 79, 2, 2, 8886, 8887, 7, 71, 2, 2, 8887, 8888, 7, 86, 2, 2, 8888, 8889, 7, 84, 2, 2, 8889, 8890, 7, 75, 2, 2, 8890, 8891, 7, 69, 2, 2, 8891, 8892, 7, 97, 2, 2, 8892, 8893, 7, 82, 2, 2, 8893, 8894, 7, 87, 2, 2, 8894, 8895, 7, 68, 2, 2, 8895, 8896, 7, 97, 2, 2, 8896, 8897, 7, 77, 2, 2, 8897, 8898, 7, 71, 2, 2, 8898, 8899, 7, 91, 2, 2, 8899, 1492, 3, 2, 2, 2, 8900, 8901, 7, 69, 2, 2, 8901, 8902, 7, 84, 2, 2, 8902, 8903, 7, 71, 2, 2, 8903, 8904, 7, 67, 2, 2, 8904, 8905, 7, 86, 2, 2, 8905, 8906, 7, 71, 2, 2, 8906, 8907, 7, 97, 2, 2, 8907, 8908, 7, 70, 2, 2, 8908, 8909, 7, 74, 2, 2, 8909, 8910, 7, 97, 2, 2, 8910, 8911, 7, 82, 2, 2, 8911, 8912, 7, 67, 2, 2, 8912, 8913, 7, 84, 2, 2, 8913, 8914, 7, 67, 2, 2, 8914, 8915, 7, 79, 2, 2, 8915, 8916, 7, 71, 2, 2, 8916, 8917, 7, 86, 2, 2, 8917, 8918, 7, 71, 2, 2, 8918, 8919, 7, 84, 2, 2, 8919, 8920, 7, 85, 2, 2, 8920, 1494, 3, 2, 2, 2, 8921, 8922, 7, 69, 2, 2, 8922, 8923, 7, 84, 2, 2, 8923, 8924, 7, 71, 2, 2, 8924, 8925, 7, 67, 2, 2, 8925, 8926, 7, 86, 2, 2, 8926, 8927, 7, 71, 2, 2, 8927, 8928, 7, 97, 2, 2, 8928, 8929, 7, 70, 2, 2, 8929, 8930, 7, 75, 2, 2, 8930, 8931, 7, 73, 2, 2, 8931, 8932, 7, 71, 2, 2, 8932, 8933, 7, 85, 2, 2, 8933, 8934, 7, 86, 2, 2, 8934, 1496, 3, 2, 2, 2, 8935, 8936, 7, 69, 2, 2, 8936, 8937, 7, 84, 2, 2, 8937, 8938, 7, 81, 2, 2, 8938, 8939, 7, 85, 2, 2, 8939, 8940, 7, 85, 2, 2, 8940, 8941, 7, 71, 2, 2, 8941, 8942, 7, 85, 2, 2, 8942, 1498, 3, 2, 2, 2, 8943, 8944, 7, 70, 2, 2, 8944, 8945, 7, 67, 2, 2, 8945, 8946, 7, 86, 2, 2, 8946, 8947, 7, 71, 2, 2, 8947, 8948, 7, 70, 2, 2, 8948, 8949, 7, 75, 2, 2, 8949, 8950, 7, 72, 2, 2, 8950, 8951, 7, 72, 2, 2, 8951, 1500, 3, 2, 2, 2, 8952, 8953, 7, 70, 2, 2, 8953, 8954, 7, 67, 2, 2, 8954, 8955, 7, 86, 2, 2, 8955, 8956, 7, 71, 2, 2, 8956, 8957, 7, 97, 2, 2, 8957, 8958, 7, 72, 2, 2, 8958, 8959, 7, 81, 2, 2, 8959, 8960, 7, 84, 2, 2, 8960, 8961, 7, 79, 2, 2, 8961, 8962, 7, 67, 2, 2, 8962, 8963, 7, 86, 2, 2, 8963, 1502, 3, 2, 2, 2, 8964, 8965, 7, 70, 2, 2, 8965, 8966, 7, 67, 2, 2, 8966, 8967, 7, 91, 2, 2, 8967, 8968, 7, 80, 2, 2, 8968, 8969, 7, 67, 2, 2, 8969, 8970, 7, 79, 2, 2, 8970, 8971, 7, 71, 2, 2, 8971, 1504, 3, 2, 2, 2, 8972, 8973, 7, 70, 2, 2, 8973, 8974, 7, 67, 2, 2, 8974, 8975, 7, 91, 2, 2, 8975, 8976, 7, 81, 2, 2, 8976, 8977, 7, 72, 2, 2, 8977, 8978, 7, 79, 2, 2, 8978, 8979, 7, 81, 2, 2, 8979, 8980, 7, 80, 2, 2, 8980, 8981, 7, 86, 2, 2, 8981, 8982, 7, 74, 2, 2, 8982, 1506, 3, 2, 2, 2, 8983, 8984, 7, 70, 2, 2, 8984, 8985, 7, 67, 2, 2, 8985, 8986, 7, 91, 2, 2, 8986, 8987, 7, 81, 2, 2, 8987, 8988, 7, 72, 2, 2, 8988, 8989, 7, 89, 2, 2, 8989, 8990, 7, 71, 2, 2, 8990, 8991, 7, 71, 2, 2, 8991, 8992, 7, 77, 2, 2, 8992, 1508, 3, 2, 2, 2, 8993, 8994, 7, 70, 2, 2, 8994, 8995, 7, 67, 2, 2, 8995, 8996, 7, 91, 2, 2, 8996, 8997, 7, 81, 2, 2, 8997, 8998, 7, 72, 2, 2, 8998, 8999, 7, 91, 2, 2, 8999, 9000, 7, 71, 2, 2, 9000, 9001, 7, 67, 2, 2, 9001, 9002, 7, 84, 2, 2, 9002, 1510, 3, 2, 2, 2, 9003, 9004, 7, 70, 2, 2, 9004, 9005, 7, 71, 2, 2, 9005, 9006, 7, 69, 2, 2, 9006, 9007, 7, 81, 2, 2, 9007, 9008, 7, 70, 2, 2, 9008, 9009, 7, 71, 2, 2, 9009, 1512, 3, 2, 2, 2, 9010, 9011, 7, 70, 2, 2, 9011, 9012, 7, 71, 2, 2, 9012, 9013, 7, 73, 2, 2, 9013, 9014, 7, 84, 2, 2, 9014, 9015, 7, 71, 2, 2, 9015, 9016, 7, 71, 2, 2, 9016, 9017, 7, 85, 2, 2, 9017, 1514, 3, 2, 2, 2, 9018, 9019, 7, 70, 2, 2, 9019, 9020, 7, 71, 2, 2, 9020, 9021, 7, 85, 2, 2, 9021, 9022, 7, 97, 2, 2, 9022, 9023, 7, 70, 2, 2, 9023, 9024, 7, 71, 2, 2, 9024, 9025, 7, 69, 2, 2, 9025, 9026, 7, 84, 2, 2, 9026, 9027, 7, 91, 2, 2, 9027, 9028, 7, 82, 2, 2, 9028, 9029, 7, 86, 2, 2, 9029, 1516, 3, 2, 2, 2, 9030, 9031, 7, 70, 2, 2, 9031, 9032, 7, 71, 2, 2, 9032, 9033, 7, 85, 2, 2, 9033, 9034, 7, 97, 2, 2, 9034, 9035, 7, 71, 2, 2, 9035, 9036, 7, 80, 2, 2, 9036, 9037, 7, 69, 2, 2, 9037, 9038, 7, 84, 2, 2, 9038, 9039, 7, 91, 2, 2, 9039, 9040, 7, 82, 2, 2, 9040, 9041, 7, 86, 2, 2, 9041, 1518, 3, 2, 2, 2, 9042, 9043, 7, 70, 2, 2, 9043, 9044, 7, 75, 2, 2, 9044, 9045, 7, 79, 2, 2, 9045, 9046, 7, 71, 2, 2, 9046, 9047, 7, 80, 2, 2, 9047, 9048, 7, 85, 2, 2, 9048, 9049, 7, 75, 2, 2, 9049, 9050, 7, 81, 2, 2, 9050, 9051, 7, 80, 2, 2, 9051, 1520, 3, 2, 2, 2, 9052, 9053, 7, 70, 2, 2, 9053, 9054, 7, 75, 2, 2, 9054, 9055, 7, 85, 2, 2, 9055, 9056, 7, 76, 2, 2, 9056, 9057, 7, 81, 2, 2, 9057, 9058, 7, 75, 2, 2, 9058, 9059, 7, 80, 2, 2, 9059, 9060, 7, 86, 2, 2, 9060, 1522, 3, 2, 2, 2, 9061, 9062, 7, 71, 2, 2, 9062, 9063, 7, 78, 2, 2, 9063, 9064, 7, 86, 2, 2, 9064, 1524, 3, 2, 2, 2, 9065, 9066, 7, 71, 2, 2, 9066, 9067, 7, 80, 2, 2, 9067, 9068, 7, 69, 2, 2, 9068, 9069, 7, 81, 2, 2, 9069, 9070, 7, 70, 2, 2, 9070, 9071, 7, 71, 2, 2, 9071, 1526, 3, 2, 2, 2, 9072, 9073, 7, 71, 2, 2, 9073, 9074, 7, 80, 2, 2, 9074, 9075, 7, 69, 2, 2, 9075, 9076, 7, 84, 2, 2, 9076, 9077, 7, 91, 2, 2, 9077, 9078, 7, 82, 2, 2, 9078, 9079, 7, 86, 2, 2, 9079, 1528, 3, 2, 2, 2, 9080, 9081, 7, 71, 2, 2, 9081, 9082, 7, 80, 2, 2, 9082, 9083, 7, 70, 2, 2, 9083, 9084, 7, 82, 2, 2, 9084, 9085, 7, 81, 2, 2, 9085, 9086, 7, 75, 2, 2, 9086, 9087, 7, 80, 2, 2, 9087, 9088, 7, 86, 2, 2, 9088, 1530, 3, 2, 2, 2, 9089, 9090, 7, 71, 2, 2, 9090, 9091, 7, 80, 2, 2, 9091, 9092, 7, 88, 2, 2, 9092, 9093, 7, 71, 2, 2, 9093, 9094, 7, 78, 2, 2, 9094, 9095, 7, 81, 2, 2, 9095, 9096, 7, 82, 2, 2, 9096, 9097, 7, 71, 2, 2, 9097, 1532, 3, 2, 2, 2, 9098, 9099, 7, 71, 2, 2, 9099, 9100, 7, 83, 2, 2, 9100, 9101, 7, 87, 2, 2, 9101, 9102, 7, 67, 2, 2, 9102, 9103, 7, 78, 2, 2, 9103, 9104, 7, 85, 2, 2, 9104, 1534, 3, 2, 2, 2, 9105, 9106, 7, 71, 2, 2, 9106, 9107, 7, 90, 2, 2, 9107, 9108, 7, 82, 2, 2, 9108, 1536, 3, 2, 2, 2, 9109, 9110, 7, 71, 2, 2, 9110, 9111, 7, 90, 2, 2, 9111, 9112, 7, 82, 2, 2, 9112, 9113, 7, 81, 2, 2, 9113, 9114, 7, 84, 2, 2, 9114, 9115, 7, 86, 2, 2, 9115, 9116, 7, 97, 2, 2, 9116, 9117, 7, 85, 2, 2, 9117, 9118, 7, 71, 2, 2, 9118, 9119, 7, 86, 2, 2, 9119, 1538, 3, 2, 2, 2, 9120, 9121, 7, 71, 2, 2, 9121, 9122, 7, 90, 2, 2, 9122, 9123, 7, 86, 2, 2, 9123, 9124, 7, 71, 2, 2, 9124, 9125, 7, 84, 2, 2, 9125, 9126, 7, 75, 2, 2, 9126, 9127, 7, 81, 2, 2, 9127, 9128, 7, 84, 2, 2, 9128, 9129, 7, 84, 2, 2, 9129, 9130, 7, 75, 2, 2, 9130, 9131, 7, 80, 2, 2, 9131, 9132, 7, 73, 2, 2, 9132, 1540, 3, 2, 2, 2, 9133, 9134, 7, 71, 2, 2, 9134, 9135, 7, 90, 2, 2, 9135, 9136, 7, 86, 2, 2, 9136, 9137, 7, 84, 2, 2, 9137, 9138, 7, 67, 2, 2, 9138, 9139, 7, 69, 2, 2, 9139, 9140, 7, 86, 2, 2, 9140, 9141, 7, 88, 2, 2, 9141, 9142, 7, 67, 2, 2, 9142, 9143, 7, 78, 2, 2, 9143, 9144, 7, 87, 2, 2, 9144, 9145, 7, 71, 2, 2, 9145, 1542, 3, 2, 2, 2, 9146, 9147, 7, 72, 2, 2, 9147, 9148, 7, 75, 2, 2, 9148, 9149, 7, 71, 2, 2, 9149, 9150, 7, 78, 2, 2, 9150, 9151, 7, 70, 2, 2, 9151, 1544, 3, 2, 2, 2, 9152, 9153, 7, 72, 2, 2, 9153, 9154, 7, 75, 2, 2, 9154, 9155, 7, 80, 2, 2, 9155, 9156, 7, 70, 2, 2, 9156, 9157, 7, 97, 2, 2, 9157, 9158, 7, 75, 2, 2, 9158, 9159, 7, 80, 2, 2, 9159, 9160, 7, 97, 2, 2, 9160, 9161, 7, 85, 2, 2, 9161, 9162, 7, 71, 2, 2, 9162, 9163, 7, 86, 2, 2, 9163, 1546, 3, 2, 2, 2, 9164, 9165, 7, 72, 2, 2, 9165, 9166, 7, 78, 2, 2, 9166, 9167, 7, 81, 2, 2, 9167, 9168, 7, 81, 2, 2, 9168, 9169, 7, 84, 2, 2, 9169, 1548, 3, 2, 2, 2, 9170, 9171, 7, 72, 2, 2, 9171, 9172, 7, 81, 2, 2, 9172, 9173, 7, 84, 2, 2, 9173, 9174, 7, 79, 2, 2, 9174, 9175, 7, 67, 2, 2, 9175, 9176, 7, 86, 2, 2, 9176, 1550, 3, 2, 2, 2, 9177, 9178, 7, 72, 2, 2, 9178, 9179, 7, 81, 2, 2, 9179, 9180, 7, 87, 2, 2, 9180, 9181, 7, 80, 2, 2, 9181, 9182, 7, 70, 2, 2, 9182, 9183, 7, 97, 2, 2, 9183, 9184, 7, 84, 2, 2, 9184, 9185, 7, 81, 2, 2, 9185, 9186, 7, 89, 2, 2, 9186, 9187, 7, 85, 2, 2, 9187, 1552, 3, 2, 2, 2, 9188, 9189, 7, 72, 2, 2, 9189, 9190, 7, 84, 2, 2, 9190, 9191, 7, 81, 2, 2, 9191, 9192, 7, 79, 2, 2, 9192, 9193, 7, 97, 2, 2, 9193, 9194, 7, 68, 2, 2, 9194, 9195, 7, 67, 2, 2, 9195, 9196, 7, 85, 2, 2, 9196, 9197, 7, 71, 2, 2, 9197, 9198, 7, 56, 2, 2, 9198, 9199, 7, 54, 2, 2, 9199, 1554, 3, 2, 2, 2, 9200, 9201, 7, 72, 2, 2, 9201, 9202, 7, 84, 2, 2, 9202, 9203, 7, 81, 2, 2, 9203, 9204, 7, 79, 2, 2, 9204, 9205, 7, 97, 2, 2, 9205, 9206, 7, 70, 2, 2, 9206, 9207, 7, 67, 2, 2, 9207, 9208, 7, 91, 2, 2, 9208, 9209, 7, 85, 2, 2, 9209, 1556, 3, 2, 2, 2, 9210, 9211, 7, 72, 2, 2, 9211, 9212, 7, 84, 2, 2, 9212, 9213, 7, 81, 2, 2, 9213, 9214, 7, 79, 2, 2, 9214, 9215, 7, 97, 2, 2, 9215, 9216, 7, 87, 2, 2, 9216, 9217, 7, 80, 2, 2, 9217, 9218, 7, 75, 2, 2, 9218, 9219, 7, 90, 2, 2, 9219, 9220, 7, 86, 2, 2, 9220, 9221, 7, 75, 2, 2, 9221, 9222, 7, 79, 2, 2, 9222, 9223, 7, 71, 2, 2, 9223, 1558, 3, 2, 2, 2, 9224, 9225, 7, 73, 2, 2, 9225, 9226, 7, 71, 2, 2, 9226, 9227, 7, 81, 2, 2, 9227, 9228, 7, 79, 2, 2, 9228, 9229, 7, 69, 2, 2, 9229, 9230, 7, 81, 2, 2, 9230, 9231, 7, 78, 2, 2, 9231, 9232, 7, 78, 2, 2, 9232, 9233, 7, 72, 2, 2, 9233, 9234, 7, 84, 2, 2, 9234, 9235, 7, 81, 2, 2, 9235, 9236, 7, 79, 2, 2, 9236, 9237, 7, 86, 2, 2, 9237, 9238, 7, 71, 2, 2, 9238, 9239, 7, 90, 2, 2, 9239, 9240, 7, 86, 2, 2, 9240, 1560, 3, 2, 2, 2, 9241, 9242, 7, 73, 2, 2, 9242, 9243, 7, 71, 2, 2, 9243, 9244, 7, 81, 2, 2, 9244, 9245, 7, 79, 2, 2, 9245, 9246, 7, 69, 2, 2, 9246, 9247, 7, 81, 2, 2, 9247, 9248, 7, 78, 2, 2, 9248, 9249, 7, 78, 2, 2, 9249, 9250, 7, 72, 2, 2, 9250, 9251, 7, 84, 2, 2, 9251, 9252, 7, 81, 2, 2, 9252, 9253, 7, 79, 2, 2, 9253, 9254, 7, 89, 2, 2, 9254, 9255, 7, 77, 2, 2, 9255, 9256, 7, 68, 2, 2, 9256, 1562, 3, 2, 2, 2, 9257, 9258, 7, 73, 2, 2, 9258, 9259, 7, 71, 2, 2, 9259, 9260, 7, 81, 2, 2, 9260, 9261, 7, 79, 2, 2, 9261, 9262, 7, 71, 2, 2, 9262, 9263, 7, 86, 2, 2, 9263, 9264, 7, 84, 2, 2, 9264, 9265, 7, 91, 2, 2, 9265, 9266, 7, 69, 2, 2, 9266, 9267, 7, 81, 2, 2, 9267, 9268, 7, 78, 2, 2, 9268, 9269, 7, 78, 2, 2, 9269, 9270, 7, 71, 2, 2, 9270, 9271, 7, 69, 2, 2, 9271, 9272, 7, 86, 2, 2, 9272, 9273, 7, 75, 2, 2, 9273, 9274, 7, 81, 2, 2, 9274, 9275, 7, 80, 2, 2, 9275, 9276, 7, 72, 2, 2, 9276, 9277, 7, 84, 2, 2, 9277, 9278, 7, 81, 2, 2, 9278, 9279, 7, 79, 2, 2, 9279, 9280, 7, 86, 2, 2, 9280, 9281, 7, 71, 2, 2, 9281, 9282, 7, 90, 2, 2, 9282, 9283, 7, 86, 2, 2, 9283, 1564, 3, 2, 2, 2, 9284, 9285, 7, 73, 2, 2, 9285, 9286, 7, 71, 2, 2, 9286, 9287, 7, 81, 2, 2, 9287, 9288, 7, 79, 2, 2, 9288, 9289, 7, 71, 2, 2, 9289, 9290, 7, 86, 2, 2, 9290, 9291, 7, 84, 2, 2, 9291, 9292, 7, 91, 2, 2, 9292, 9293, 7, 69, 2, 2, 9293, 9294, 7, 81, 2, 2, 9294, 9295, 7, 78, 2, 2, 9295, 9296, 7, 78, 2, 2, 9296, 9297, 7, 71, 2, 2, 9297, 9298, 7, 69, 2, 2, 9298, 9299, 7, 86, 2, 2, 9299, 9300, 7, 75, 2, 2, 9300, 9301, 7, 81, 2, 2, 9301, 9302, 7, 80, 2, 2, 9302, 9303, 7, 72, 2, 2, 9303, 9304, 7, 84, 2, 2, 9304, 9305, 7, 81, 2, 2, 9305, 9306, 7, 79, 2, 2, 9306, 9307, 7, 89, 2, 2, 9307, 9308, 7, 77, 2, 2, 9308, 9309, 7, 68, 2, 2, 9309, 1566, 3, 2, 2, 2, 9310, 9311, 7, 73, 2, 2, 9311, 9312, 7, 71, 2, 2, 9312, 9313, 7, 81, 2, 2, 9313, 9314, 7, 79, 2, 2, 9314, 9315, 7, 71, 2, 2, 9315, 9316, 7, 86, 2, 2, 9316, 9317, 7, 84, 2, 2, 9317, 9318, 7, 91, 2, 2, 9318, 9319, 7, 72, 2, 2, 9319, 9320, 7, 84, 2, 2, 9320, 9321, 7, 81, 2, 2, 9321, 9322, 7, 79, 2, 2, 9322, 9323, 7, 86, 2, 2, 9323, 9324, 7, 71, 2, 2, 9324, 9325, 7, 90, 2, 2, 9325, 9326, 7, 86, 2, 2, 9326, 1568, 3, 2, 2, 2, 9327, 9328, 7, 73, 2, 2, 9328, 9329, 7, 71, 2, 2, 9329, 9330, 7, 81, 2, 2, 9330, 9331, 7, 79, 2, 2, 9331, 9332, 7, 71, 2, 2, 9332, 9333, 7, 86, 2, 2, 9333, 9334, 7, 84, 2, 2, 9334, 9335, 7, 91, 2, 2, 9335, 9336, 7, 72, 2, 2, 9336, 9337, 7, 84, 2, 2, 9337, 9338, 7, 81, 2, 2, 9338, 9339, 7, 79, 2, 2, 9339, 9340, 7, 89, 2, 2, 9340, 9341, 7, 77, 2, 2, 9341, 9342, 7, 68, 2, 2, 9342, 1570, 3, 2, 2, 2, 9343, 9344, 7, 73, 2, 2, 9344, 9345, 7, 71, 2, 2, 9345, 9346, 7, 81, 2, 2, 9346, 9347, 7, 79, 2, 2, 9347, 9348, 7, 71, 2, 2, 9348, 9349, 7, 86, 2, 2, 9349, 9350, 7, 84, 2, 2, 9350, 9351, 7, 91, 2, 2, 9351, 9352, 7, 80, 2, 2, 9352, 1572, 3, 2, 2, 2, 9353, 9354, 7, 73, 2, 2, 9354, 9355, 7, 71, 2, 2, 9355, 9356, 7, 81, 2, 2, 9356, 9357, 7, 79, 2, 2, 9357, 9358, 7, 71, 2, 2, 9358, 9359, 7, 86, 2, 2, 9359, 9360, 7, 84, 2, 2, 9360, 9361, 7, 91, 2, 2, 9361, 9362, 7, 86, 2, 2, 9362, 9363, 7, 91, 2, 2, 9363, 9364, 7, 82, 2, 2, 9364, 9365, 7, 71, 2, 2, 9365, 1574, 3, 2, 2, 2, 9366, 9367, 7, 73, 2, 2, 9367, 9368, 7, 71, 2, 2, 9368, 9369, 7, 81, 2, 2, 9369, 9370, 7, 79, 2, 2, 9370, 9371, 7, 72, 2, 2, 9371, 9372, 7, 84, 2, 2, 9372, 9373, 7, 81, 2, 2, 9373, 9374, 7, 79, 2, 2, 9374, 9375, 7, 86, 2, 2, 9375, 9376, 7, 71, 2, 2, 9376, 9377, 7, 90, 2, 2, 9377, 9378, 7, 86, 2, 2, 9378, 1576, 3, 2, 2, 2, 9379, 9380, 7, 73, 2, 2, 9380, 9381, 7, 71, 2, 2, 9381, 9382, 7, 81, 2, 2, 9382, 9383, 7, 79, 2, 2, 9383, 9384, 7, 72, 2, 2, 9384, 9385, 7, 84, 2, 2, 9385, 9386, 7, 81, 2, 2, 9386, 9387, 7, 79, 2, 2, 9387, 9388, 7, 89, 2, 2, 9388, 9389, 7, 77, 2, 2, 9389, 9390, 7, 68, 2, 2, 9390, 1578, 3, 2, 2, 2, 9391, 9392, 7, 73, 2, 2, 9392, 9393, 7, 71, 2, 2, 9393, 9394, 7, 86, 2, 2, 9394, 9395, 7, 97, 2, 2, 9395, 9396, 7, 72, 2, 2, 9396, 9397, 7, 81, 2, 2, 9397, 9398, 7, 84, 2, 2, 9398, 9399, 7, 79, 2, 2, 9399, 9400, 7, 67, 2, 2, 9400, 9401, 7, 86, 2, 2, 9401, 1580, 3, 2, 2, 2, 9402, 9403, 7, 73, 2, 2, 9403, 9404, 7, 71, 2, 2, 9404, 9405, 7, 86, 2, 2, 9405, 9406, 7, 97, 2, 2, 9406, 9407, 7, 78, 2, 2, 9407, 9408, 7, 81, 2, 2, 9408, 9409, 7, 69, 2, 2, 9409, 9410, 7, 77, 2, 2, 9410, 1582, 3, 2, 2, 2, 9411, 9412, 7, 73, 2, 2, 9412, 9413, 7, 78, 2, 2, 9413, 9414, 7, 71, 2, 2, 9414, 9415, 7, 80, 2, 2, 9415, 9416, 7, 73, 2, 2, 9416, 9417, 7, 86, 2, 2, 9417, 9418, 7, 74, 2, 2, 9418, 1584, 3, 2, 2, 2, 9419, 9420, 7, 73, 2, 2, 9420, 9421, 7, 84, 2, 2, 9421, 9422, 7, 71, 2, 2, 9422, 9423, 7, 67, 2, 2, 9423, 9424, 7, 86, 2, 2, 9424, 9425, 7, 71, 2, 2, 9425, 9426, 7, 85, 2, 2, 9426, 9427, 7, 86, 2, 2, 9427, 1586, 3, 2, 2, 2, 9428, 9429, 7, 73, 2, 2, 9429, 9430, 7, 86, 2, 2, 9430, 9431, 7, 75, 2, 2, 9431, 9432, 7, 70, 2, 2, 9432, 9433, 7, 97, 2, 2, 9433, 9434, 7, 85, 2, 2, 9434, 9435, 7, 87, 2, 2, 9435, 9436, 7, 68, 2, 2, 9436, 9437, 7, 85, 2, 2, 9437, 9438, 7, 71, 2, 2, 9438, 9439, 7, 86, 2, 2, 9439, 1588, 3, 2, 2, 2, 9440, 9441, 7, 73, 2, 2, 9441, 9442, 7, 86, 2, 2, 9442, 9443, 7, 75, 2, 2, 9443, 9444, 7, 70, 2, 2, 9444, 9445, 7, 97, 2, 2, 9445, 9446, 7, 85, 2, 2, 9446, 9447, 7, 87, 2, 2, 9447, 9448, 7, 68, 2, 2, 9448, 9449, 7, 86, 2, 2, 9449, 9450, 7, 84, 2, 2, 9450, 9451, 7, 67, 2, 2, 9451, 9452, 7, 69, 2, 2, 9452, 9453, 7, 86, 2, 2, 9453, 1590, 3, 2, 2, 2, 9454, 9455, 7, 74, 2, 2, 9455, 9456, 7, 71, 2, 2, 9456, 9457, 7, 90, 2, 2, 9457, 1592, 3, 2, 2, 2, 9458, 9459, 7, 75, 2, 2, 9459, 9460, 7, 72, 2, 2, 9460, 9461, 7, 80, 2, 2, 9461, 9462, 7, 87, 2, 2, 9462, 9463, 7, 78, 2, 2, 9463, 9464, 7, 78, 2, 2, 9464, 1594, 3, 2, 2, 2, 9465, 9466, 7, 75, 2, 2, 9466, 9467, 7, 80, 2, 2, 9467, 9468, 7, 71, 2, 2, 9468, 9469, 7, 86, 2, 2, 9469, 9470, 7, 56, 2, 2, 9470, 9471, 7, 97, 2, 2, 9471, 9472, 7, 67, 2, 2, 9472, 9473, 7, 86, 2, 2, 9473, 9474, 7, 81, 2, 2, 9474, 9475, 7, 80, 2, 2, 9475, 1596, 3, 2, 2, 2, 9476, 9477, 7, 75, 2, 2, 9477, 9478, 7, 80, 2, 2, 9478, 9479, 7, 71, 2, 2, 9479, 9480, 7, 86, 2, 2, 9480, 9481, 7, 56, 2, 2, 9481, 9482, 7, 97, 2, 2, 9482, 9483, 7, 80, 2, 2, 9483, 9484, 7, 86, 2, 2, 9484, 9485, 7, 81, 2, 2, 9485, 9486, 7, 67, 2, 2, 9486, 1598, 3, 2, 2, 2, 9487, 9488, 7, 75, 2, 2, 9488, 9489, 7, 80, 2, 2, 9489, 9490, 7, 71, 2, 2, 9490, 9491, 7, 86, 2, 2, 9491, 9492, 7, 97, 2, 2, 9492, 9493, 7, 67, 2, 2, 9493, 9494, 7, 86, 2, 2, 9494, 9495, 7, 81, 2, 2, 9495, 9496, 7, 80, 2, 2, 9496, 1600, 3, 2, 2, 2, 9497, 9498, 7, 75, 2, 2, 9498, 9499, 7, 80, 2, 2, 9499, 9500, 7, 71, 2, 2, 9500, 9501, 7, 86, 2, 2, 9501, 9502, 7, 97, 2, 2, 9502, 9503, 7, 80, 2, 2, 9503, 9504, 7, 86, 2, 2, 9504, 9505, 7, 81, 2, 2, 9505, 9506, 7, 67, 2, 2, 9506, 1602, 3, 2, 2, 2, 9507, 9508, 7, 75, 2, 2, 9508, 9509, 7, 80, 2, 2, 9509, 9510, 7, 85, 2, 2, 9510, 9511, 7, 86, 2, 2, 9511, 9512, 7, 84, 2, 2, 9512, 1604, 3, 2, 2, 2, 9513, 9514, 7, 75, 2, 2, 9514, 9515, 7, 80, 2, 2, 9515, 9516, 7, 86, 2, 2, 9516, 9517, 7, 71, 2, 2, 9517, 9518, 7, 84, 2, 2, 9518, 9519, 7, 75, 2, 2, 9519, 9520, 7, 81, 2, 2, 9520, 9521, 7, 84, 2, 2, 9521, 9522, 7, 84, 2, 2, 9522, 9523, 7, 75, 2, 2, 9523, 9524, 7, 80, 2, 2, 9524, 9525, 7, 73, 2, 2, 9525, 9526, 7, 80, 2, 2, 9526, 1606, 3, 2, 2, 2, 9527, 9528, 7, 75, 2, 2, 9528, 9529, 7, 80, 2, 2, 9529, 9530, 7, 86, 2, 2, 9530, 9531, 7, 71, 2, 2, 9531, 9532, 7, 84, 2, 2, 9532, 9533, 7, 85, 2, 2, 9533, 9534, 7, 71, 2, 2, 9534, 9535, 7, 69, 2, 2, 9535, 9536, 7, 86, 2, 2, 9536, 9537, 7, 85, 2, 2, 9537, 1608, 3, 2, 2, 2, 9538, 9539, 7, 75, 2, 2, 9539, 9540, 7, 85, 2, 2, 9540, 9541, 7, 69, 2, 2, 9541, 9542, 7, 78, 2, 2, 9542, 9543, 7, 81, 2, 2, 9543, 9544, 7, 85, 2, 2, 9544, 9545, 7, 71, 2, 2, 9545, 9546, 7, 70, 2, 2, 9546, 1610, 3, 2, 2, 2, 9547, 9548, 7, 75, 2, 2, 9548, 9549, 7, 85, 2, 2, 9549, 9550, 7, 71, 2, 2, 9550, 9551, 7, 79, 2, 2, 9551, 9552, 7, 82, 2, 2, 9552, 9553, 7, 86, 2, 2, 9553, 9554, 7, 91, 2, 2, 9554, 1612, 3, 2, 2, 2, 9555, 9556, 7, 75, 2, 2, 9556, 9557, 7, 85, 2, 2, 9557, 9558, 7, 80, 2, 2, 9558, 9559, 7, 87, 2, 2, 9559, 9560, 7, 78, 2, 2, 9560, 9561, 7, 78, 2, 2, 9561, 1614, 3, 2, 2, 2, 9562, 9563, 7, 75, 2, 2, 9563, 9564, 7, 85, 2, 2, 9564, 9565, 7, 85, 2, 2, 9565, 9566, 7, 75, 2, 2, 9566, 9567, 7, 79, 2, 2, 9567, 9568, 7, 82, 2, 2, 9568, 9569, 7, 78, 2, 2, 9569, 9570, 7, 71, 2, 2, 9570, 1616, 3, 2, 2, 2, 9571, 9572, 7, 75, 2, 2, 9572, 9573, 7, 85, 2, 2, 9573, 9574, 7, 97, 2, 2, 9574, 9575, 7, 72, 2, 2, 9575, 9576, 7, 84, 2, 2, 9576, 9577, 7, 71, 2, 2, 9577, 9578, 7, 71, 2, 2, 9578, 9579, 7, 97, 2, 2, 9579, 9580, 7, 78, 2, 2, 9580, 9581, 7, 81, 2, 2, 9581, 9582, 7, 69, 2, 2, 9582, 9583, 7, 77, 2, 2, 9583, 1618, 3, 2, 2, 2, 9584, 9585, 7, 75, 2, 2, 9585, 9586, 7, 85, 2, 2, 9586, 9587, 7, 97, 2, 2, 9587, 9588, 7, 75, 2, 2, 9588, 9589, 7, 82, 2, 2, 9589, 9590, 7, 88, 2, 2, 9590, 9591, 7, 54, 2, 2, 9591, 1620, 3, 2, 2, 2, 9592, 9593, 7, 75, 2, 2, 9593, 9594, 7, 85, 2, 2, 9594, 9595, 7, 97, 2, 2, 9595, 9596, 7, 75, 2, 2, 9596, 9597, 7, 82, 2, 2, 9597, 9598, 7, 88, 2, 2, 9598, 9599, 7, 54, 2, 2, 9599, 9600, 7, 97, 2, 2, 9600, 9601, 7, 69, 2, 2, 9601, 9602, 7, 81, 2, 2, 9602, 9603, 7, 79, 2, 2, 9603, 9604, 7, 82, 2, 2, 9604, 9605, 7, 67, 2, 2, 9605, 9606, 7, 86, 2, 2, 9606, 1622, 3, 2, 2, 2, 9607, 9608, 7, 75, 2, 2, 9608, 9609, 7, 85, 2, 2, 9609, 9610, 7, 97, 2, 2, 9610, 9611, 7, 75, 2, 2, 9611, 9612, 7, 82, 2, 2, 9612, 9613, 7, 88, 2, 2, 9613, 9614, 7, 54, 2, 2, 9614, 9615, 7, 97, 2, 2, 9615, 9616, 7, 79, 2, 2, 9616, 9617, 7, 67, 2, 2, 9617, 9618, 7, 82, 2, 2, 9618, 9619, 7, 82, 2, 2, 9619, 9620, 7, 71, 2, 2, 9620, 9621, 7, 70, 2, 2, 9621, 1624, 3, 2, 2, 2, 9622, 9623, 7, 75, 2, 2, 9623, 9624, 7, 85, 2, 2, 9624, 9625, 7, 97, 2, 2, 9625, 9626, 7, 75, 2, 2, 9626, 9627, 7, 82, 2, 2, 9627, 9628, 7, 88, 2, 2, 9628, 9629, 7, 56, 2, 2, 9629, 1626, 3, 2, 2, 2, 9630, 9631, 7, 75, 2, 2, 9631, 9632, 7, 85, 2, 2, 9632, 9633, 7, 97, 2, 2, 9633, 9634, 7, 87, 2, 2, 9634, 9635, 7, 85, 2, 2, 9635, 9636, 7, 71, 2, 2, 9636, 9637, 7, 70, 2, 2, 9637, 9638, 7, 97, 2, 2, 9638, 9639, 7, 78, 2, 2, 9639, 9640, 7, 81, 2, 2, 9640, 9641, 7, 69, 2, 2, 9641, 9642, 7, 77, 2, 2, 9642, 1628, 3, 2, 2, 2, 9643, 9644, 7, 78, 2, 2, 9644, 9645, 7, 67, 2, 2, 9645, 9646, 7, 85, 2, 2, 9646, 9647, 7, 86, 2, 2, 9647, 9648, 7, 97, 2, 2, 9648, 9649, 7, 75, 2, 2, 9649, 9650, 7, 80, 2, 2, 9650, 9651, 7, 85, 2, 2, 9651, 9652, 7, 71, 2, 2, 9652, 9653, 7, 84, 2, 2, 9653, 9654, 7, 86, 2, 2, 9654, 9655, 7, 97, 2, 2, 9655, 9656, 7, 75, 2, 2, 9656, 9657, 7, 70, 2, 2, 9657, 1630, 3, 2, 2, 2, 9658, 9659, 7, 78, 2, 2, 9659, 9660, 7, 69, 2, 2, 9660, 9661, 7, 67, 2, 2, 9661, 9662, 7, 85, 2, 2, 9662, 9663, 7, 71, 2, 2, 9663, 1632, 3, 2, 2, 2, 9664, 9665, 7, 78, 2, 2, 9665, 9666, 7, 71, 2, 2, 9666, 9667, 7, 67, 2, 2, 9667, 9668, 7, 85, 2, 2, 9668, 9669, 7, 86, 2, 2, 9669, 1634, 3, 2, 2, 2, 9670, 9671, 7, 78, 2, 2, 9671, 9672, 7, 71, 2, 2, 9672, 9673, 7, 80, 2, 2, 9673, 9674, 7, 73, 2, 2, 9674, 9675, 7, 86, 2, 2, 9675, 9676, 7, 74, 2, 2, 9676, 1636, 3, 2, 2, 2, 9677, 9678, 7, 78, 2, 2, 9678, 9679, 7, 75, 2, 2, 9679, 9680, 7, 80, 2, 2, 9680, 9681, 7, 71, 2, 2, 9681, 9682, 7, 72, 2, 2, 9682, 9683, 7, 84, 2, 2, 9683, 9684, 7, 81, 2, 2, 9684, 9685, 7, 79, 2, 2, 9685, 9686, 7, 86, 2, 2, 9686, 9687, 7, 71, 2, 2, 9687, 9688, 7, 90, 2, 2, 9688, 9689, 7, 86, 2, 2, 9689, 1638, 3, 2, 2, 2, 9690, 9691, 7, 78, 2, 2, 9691, 9692, 7, 75, 2, 2, 9692, 9693, 7, 80, 2, 2, 9693, 9694, 7, 71, 2, 2, 9694, 9695, 7, 72, 2, 2, 9695, 9696, 7, 84, 2, 2, 9696, 9697, 7, 81, 2, 2, 9697, 9698, 7, 79, 2, 2, 9698, 9699, 7, 89, 2, 2, 9699, 9700, 7, 77, 2, 2, 9700, 9701, 7, 68, 2, 2, 9701, 1640, 3, 2, 2, 2, 9702, 9703, 7, 78, 2, 2, 9703, 9704, 7, 75, 2, 2, 9704, 9705, 7, 80, 2, 2, 9705, 9706, 7, 71, 2, 2, 9706, 9707, 7, 85, 2, 2, 9707, 9708, 7, 86, 2, 2, 9708, 9709, 7, 84, 2, 2, 9709, 9710, 7, 75, 2, 2, 9710, 9711, 7, 80, 2, 2, 9711, 9712, 7, 73, 2, 2, 9712, 9713, 7, 72, 2, 2, 9713, 9714, 7, 84, 2, 2, 9714, 9715, 7, 81, 2, 2, 9715, 9716, 7, 79, 2, 2, 9716, 9717, 7, 86, 2, 2, 9717, 9718, 7, 71, 2, 2, 9718, 9719, 7, 90, 2, 2, 9719, 9720, 7, 86, 2, 2, 9720, 1642, 3, 2, 2, 2, 9721, 9722, 7, 78, 2, 2, 9722, 9723, 7, 75, 2, 2, 9723, 9724, 7, 80, 2, 2, 9724, 9725, 7, 71, 2, 2, 9725, 9726, 7, 85, 2, 2, 9726, 9727, 7, 86, 2, 2, 9727, 9728, 7, 84, 2, 2, 9728, 9729, 7, 75, 2, 2, 9729, 9730, 7, 80, 2, 2, 9730, 9731, 7, 73, 2, 2, 9731, 9732, 7, 72, 2, 2, 9732, 9733, 7, 84, 2, 2, 9733, 9734, 7, 81, 2, 2, 9734, 9735, 7, 79, 2, 2, 9735, 9736, 7, 89, 2, 2, 9736, 9737, 7, 77, 2, 2, 9737, 9738, 7, 68, 2, 2, 9738, 1644, 3, 2, 2, 2, 9739, 9740, 7, 78, 2, 2, 9740, 9741, 7, 80, 2, 2, 9741, 1646, 3, 2, 2, 2, 9742, 9743, 7, 78, 2, 2, 9743, 9744, 7, 81, 2, 2, 9744, 9745, 7, 67, 2, 2, 9745, 9746, 7, 70, 2, 2, 9746, 9747, 7, 97, 2, 2, 9747, 9748, 7, 72, 2, 2, 9748, 9749, 7, 75, 2, 2, 9749, 9750, 7, 78, 2, 2, 9750, 9751, 7, 71, 2, 2, 9751, 1648, 3, 2, 2, 2, 9752, 9753, 7, 78, 2, 2, 9753, 9754, 7, 81, 2, 2, 9754, 9755, 7, 69, 2, 2, 9755, 9756, 7, 67, 2, 2, 9756, 9757, 7, 86, 2, 2, 9757, 9758, 7, 71, 2, 2, 9758, 1650, 3, 2, 2, 2, 9759, 9760, 7, 78, 2, 2, 9760, 9761, 7, 81, 2, 2, 9761, 9762, 7, 73, 2, 2, 9762, 1652, 3, 2, 2, 2, 9763, 9764, 7, 78, 2, 2, 9764, 9765, 7, 81, 2, 2, 9765, 9766, 7, 73, 2, 2, 9766, 9767, 7, 51, 2, 2, 9767, 9768, 7, 50, 2, 2, 9768, 1654, 3, 2, 2, 2, 9769, 9770, 7, 78, 2, 2, 9770, 9771, 7, 81, 2, 2, 9771, 9772, 7, 73, 2, 2, 9772, 9773, 7, 52, 2, 2, 9773, 1656, 3, 2, 2, 2, 9774, 9775, 7, 78, 2, 2, 9775, 9776, 7, 81, 2, 2, 9776, 9777, 7, 89, 2, 2, 9777, 9778, 7, 71, 2, 2, 9778, 9779, 7, 84, 2, 2, 9779, 1658, 3, 2, 2, 2, 9780, 9781, 7, 78, 2, 2, 9781, 9782, 7, 82, 2, 2, 9782, 9783, 7, 67, 2, 2, 9783, 9784, 7, 70, 2, 2, 9784, 1660, 3, 2, 2, 2, 9785, 9786, 7, 78, 2, 2, 9786, 9787, 7, 86, 2, 2, 9787, 9788, 7, 84, 2, 2, 9788, 9789, 7, 75, 2, 2, 9789, 9790, 7, 79, 2, 2, 9790, 1662, 3, 2, 2, 2, 9791, 9792, 7, 79, 2, 2, 9792, 9793, 7, 67, 2, 2, 9793, 9794, 7, 77, 2, 2, 9794, 9795, 7, 71, 2, 2, 9795, 9796, 7, 70, 2, 2, 9796, 9797, 7, 67, 2, 2, 9797, 9798, 7, 86, 2, 2, 9798, 9799, 7, 71, 2, 2, 9799, 1664, 3, 2, 2, 2, 9800, 9801, 7, 79, 2, 2, 9801, 9802, 7, 67, 2, 2, 9802, 9803, 7, 77, 2, 2, 9803, 9804, 7, 71, 2, 2, 9804, 9805, 7, 86, 2, 2, 9805, 9806, 7, 75, 2, 2, 9806, 9807, 7, 79, 2, 2, 9807, 9808, 7, 71, 2, 2, 9808, 1666, 3, 2, 2, 2, 9809, 9810, 7, 79, 2, 2, 9810, 9811, 7, 67, 2, 2, 9811, 9812, 7, 77, 2, 2, 9812, 9813, 7, 71, 2, 2, 9813, 9814, 7, 97, 2, 2, 9814, 9815, 7, 85, 2, 2, 9815, 9816, 7, 71, 2, 2, 9816, 9817, 7, 86, 2, 2, 9817, 1668, 3, 2, 2, 2, 9818, 9819, 7, 79, 2, 2, 9819, 9820, 7, 67, 2, 2, 9820, 9821, 7, 85, 2, 2, 9821, 9822, 7, 86, 2, 2, 9822, 9823, 7, 71, 2, 2, 9823, 9824, 7, 84, 2, 2, 9824, 9825, 7, 97, 2, 2, 9825, 9826, 7, 82, 2, 2, 9826, 9827, 7, 81, 2, 2, 9827, 9828, 7, 85, 2, 2, 9828, 9829, 7, 97, 2, 2, 9829, 9830, 7, 89, 2, 2, 9830, 9831, 7, 67, 2, 2, 9831, 9832, 7, 75, 2, 2, 9832, 9833, 7, 86, 2, 2, 9833, 1670, 3, 2, 2, 2, 9834, 9835, 7, 79, 2, 2, 9835, 9836, 7, 68, 2, 2, 9836, 9837, 7, 84, 2, 2, 9837, 9838, 7, 69, 2, 2, 9838, 9839, 7, 81, 2, 2, 9839, 9840, 7, 80, 2, 2, 9840, 9841, 7, 86, 2, 2, 9841, 9842, 7, 67, 2, 2, 9842, 9843, 7, 75, 2, 2, 9843, 9844, 7, 80, 2, 2, 9844, 9845, 7, 85, 2, 2, 9845, 1672, 3, 2, 2, 2, 9846, 9847, 7, 79, 2, 2, 9847, 9848, 7, 68, 2, 2, 9848, 9849, 7, 84, 2, 2, 9849, 9850, 7, 70, 2, 2, 9850, 9851, 7, 75, 2, 2, 9851, 9852, 7, 85, 2, 2, 9852, 9853, 7, 76, 2, 2, 9853, 9854, 7, 81, 2, 2, 9854, 9855, 7, 75, 2, 2, 9855, 9856, 7, 80, 2, 2, 9856, 9857, 7, 86, 2, 2, 9857, 1674, 3, 2, 2, 2, 9858, 9859, 7, 79, 2, 2, 9859, 9860, 7, 68, 2, 2, 9860, 9861, 7, 84, 2, 2, 9861, 9862, 7, 71, 2, 2, 9862, 9863, 7, 83, 2, 2, 9863, 9864, 7, 87, 2, 2, 9864, 9865, 7, 67, 2, 2, 9865, 9866, 7, 78, 2, 2, 9866, 1676, 3, 2, 2, 2, 9867, 9868, 7, 79, 2, 2, 9868, 9869, 7, 68, 2, 2, 9869, 9870, 7, 84, 2, 2, 9870, 9871, 7, 75, 2, 2, 9871, 9872, 7, 80, 2, 2, 9872, 9873, 7, 86, 2, 2, 9873, 9874, 7, 71, 2, 2, 9874, 9875, 7, 84, 2, 2, 9875, 9876, 7, 85, 2, 2, 9876, 9877, 7, 71, 2, 2, 9877, 9878, 7, 69, 2, 2, 9878, 9879, 7, 86, 2, 2, 9879, 9880, 7, 85, 2, 2, 9880, 1678, 3, 2, 2, 2, 9881, 9882, 7, 79, 2, 2, 9882, 9883, 7, 68, 2, 2, 9883, 9884, 7, 84, 2, 2, 9884, 9885, 7, 81, 2, 2, 9885, 9886, 7, 88, 2, 2, 9886, 9887, 7, 71, 2, 2, 9887, 9888, 7, 84, 2, 2, 9888, 9889, 7, 78, 2, 2, 9889, 9890, 7, 67, 2, 2, 9890, 9891, 7, 82, 2, 2, 9891, 9892, 7, 85, 2, 2, 9892, 1680, 3, 2, 2, 2, 9893, 9894, 7, 79, 2, 2, 9894, 9895, 7, 68, 2, 2, 9895, 9896, 7, 84, 2, 2, 9896, 9897, 7, 86, 2, 2, 9897, 9898, 7, 81, 2, 2, 9898, 9899, 7, 87, 2, 2, 9899, 9900, 7, 69, 2, 2, 9900, 9901, 7, 74, 2, 2, 9901, 9902, 7, 71, 2, 2, 9902, 9903, 7, 85, 2, 2, 9903, 1682, 3, 2, 2, 2, 9904, 9905, 7, 79, 2, 2, 9905, 9906, 7, 68, 2, 2, 9906, 9907, 7, 84, 2, 2, 9907, 9908, 7, 89, 2, 2, 9908, 9909, 7, 75, 2, 2, 9909, 9910, 7, 86, 2, 2, 9910, 9911, 7, 74, 2, 2, 9911, 9912, 7, 75, 2, 2, 9912, 9913, 7, 80, 2, 2, 9913, 1684, 3, 2, 2, 2, 9914, 9915, 7, 79, 2, 2, 9915, 9916, 7, 70, 2, 2, 9916, 9917, 7, 55, 2, 2, 9917, 1686, 3, 2, 2, 2, 9918, 9919, 7, 79, 2, 2, 9919, 9920, 7, 78, 2, 2, 9920, 9921, 7, 75, 2, 2, 9921, 9922, 7, 80, 2, 2, 9922, 9923, 7, 71, 2, 2, 9923, 9924, 7, 72, 2, 2, 9924, 9925, 7, 84, 2, 2, 9925, 9926, 7, 81, 2, 2, 9926, 9927, 7, 79, 2, 2, 9927, 9928, 7, 86, 2, 2, 9928, 9929, 7, 71, 2, 2, 9929, 9930, 7, 90, 2, 2, 9930, 9931, 7, 86, 2, 2, 9931, 1688, 3, 2, 2, 2, 9932, 9933, 7, 79, 2, 2, 9933, 9934, 7, 78, 2, 2, 9934, 9935, 7, 75, 2, 2, 9935, 9936, 7, 80, 2, 2, 9936, 9937, 7, 71, 2, 2, 9937, 9938, 7, 72, 2, 2, 9938, 9939, 7, 84, 2, 2, 9939, 9940, 7, 81, 2, 2, 9940, 9941, 7, 79, 2, 2, 9941, 9942, 7, 89, 2, 2, 9942, 9943, 7, 77, 2, 2, 9943, 9944, 7, 68, 2, 2, 9944, 1690, 3, 2, 2, 2, 9945, 9946, 7, 79, 2, 2, 9946, 9947, 7, 81, 2, 2, 9947, 9948, 7, 80, 2, 2, 9948, 9949, 7, 86, 2, 2, 9949, 9950, 7, 74, 2, 2, 9950, 9951, 7, 80, 2, 2, 9951, 9952, 7, 67, 2, 2, 9952, 9953, 7, 79, 2, 2, 9953, 9954, 7, 71, 2, 2, 9954, 1692, 3, 2, 2, 2, 9955, 9956, 7, 79, 2, 2, 9956, 9957, 7, 82, 2, 2, 9957, 9958, 7, 81, 2, 2, 9958, 9959, 7, 75, 2, 2, 9959, 9960, 7, 80, 2, 2, 9960, 9961, 7, 86, 2, 2, 9961, 9962, 7, 72, 2, 2, 9962, 9963, 7, 84, 2, 2, 9963, 9964, 7, 81, 2, 2, 9964, 9965, 7, 79, 2, 2, 9965, 9966, 7, 86, 2, 2, 9966, 9967, 7, 71, 2, 2, 9967, 9968, 7, 90, 2, 2, 9968, 9969, 7, 86, 2, 2, 9969, 1694, 3, 2, 2, 2, 9970, 9971, 7, 79, 2, 2, 9971, 9972, 7, 82, 2, 2, 9972, 9973, 7, 81, 2, 2, 9973, 9974, 7, 75, 2, 2, 9974, 9975, 7, 80, 2, 2, 9975, 9976, 7, 86, 2, 2, 9976, 9977, 7, 72, 2, 2, 9977, 9978, 7, 84, 2, 2, 9978, 9979, 7, 81, 2, 2, 9979, 9980, 7, 79, 2, 2, 9980, 9981, 7, 89, 2, 2, 9981, 9982, 7, 77, 2, 2, 9982, 9983, 7, 68, 2, 2, 9983, 1696, 3, 2, 2, 2, 9984, 9985, 7, 79, 2, 2, 9985, 9986, 7, 82, 2, 2, 9986, 9987, 7, 81, 2, 2, 9987, 9988, 7, 78, 2, 2, 9988, 9989, 7, 91, 2, 2, 9989, 9990, 7, 72, 2, 2, 9990, 9991, 7, 84, 2, 2, 9991, 9992, 7, 81, 2, 2, 9992, 9993, 7, 79, 2, 2, 9993, 9994, 7, 86, 2, 2, 9994, 9995, 7, 71, 2, 2, 9995, 9996, 7, 90, 2, 2, 9996, 9997, 7, 86, 2, 2, 9997, 1698, 3, 2, 2, 2, 9998, 9999, 7, 79, 2, 2, 9999, 10000, 7, 82, 2, 2, 10000, 10001, 7, 81, 2, 2, 10001, 10002, 7, 78, 2, 2, 10002, 10003, 7, 91, 2, 2, 10003, 10004, 7, 72, 2, 2, 10004, 10005, 7, 84, 2, 2, 10005, 10006, 7, 81, 2, 2, 10006, 10007, 7, 79, 2, 2, 10007, 10008, 7, 89, 2, 2, 10008, 10009, 7, 77, 2, 2, 10009, 10010, 7, 68, 2, 2, 10010, 1700, 3, 2, 2, 2, 10011, 10012, 7, 79, 2, 2, 10012, 10013, 7, 87, 2, 2, 10013, 10014, 7, 78, 2, 2, 10014, 10015, 7, 86, 2, 2, 10015, 10016, 7, 75, 2, 2, 10016, 10017, 7, 78, 2, 2, 10017, 10018, 7, 75, 2, 2, 10018, 10019, 7, 80, 2, 2, 10019, 10020, 7, 71, 2, 2, 10020, 10021, 7, 85, 2, 2, 10021, 10022, 7, 86, 2, 2, 10022, 10023, 7, 84, 2, 2, 10023, 10024, 7, 75, 2, 2, 10024, 10025, 7, 80, 2, 2, 10025, 10026, 7, 73, 2, 2, 10026, 10027, 7, 72, 2, 2, 10027, 10028, 7, 84, 2, 2, 10028, 10029, 7, 81, 2, 2, 10029, 10030, 7, 79, 2, 2, 10030, 10031, 7, 86, 2, 2, 10031, 10032, 7, 71, 2, 2, 10032, 10033, 7, 90, 2, 2, 10033, 10034, 7, 86, 2, 2, 10034, 1702, 3, 2, 2, 2, 10035, 10036, 7, 79, 2, 2, 10036, 10037, 7, 87, 2, 2, 10037, 10038, 7, 78, 2, 2, 10038, 10039, 7, 86, 2, 2, 10039, 10040, 7, 75, 2, 2, 10040, 10041, 7, 78, 2, 2, 10041, 10042, 7, 75, 2, 2, 10042, 10043, 7, 80, 2, 2, 10043, 10044, 7, 71, 2, 2, 10044, 10045, 7, 85, 2, 2, 10045, 10046, 7, 86, 2, 2, 10046, 10047, 7, 84, 2, 2, 10047, 10048, 7, 75, 2, 2, 10048, 10049, 7, 80, 2, 2, 10049, 10050, 7, 73, 2, 2, 10050, 10051, 7, 72, 2, 2, 10051, 10052, 7, 84, 2, 2, 10052, 10053, 7, 81, 2, 2, 10053, 10054, 7, 79, 2, 2, 10054, 10055, 7, 89, 2, 2, 10055, 10056, 7, 77, 2, 2, 10056, 10057, 7, 68, 2, 2, 10057, 1704, 3, 2, 2, 2, 10058, 10059, 7, 79, 2, 2, 10059, 10060, 7, 87, 2, 2, 10060, 10061, 7, 78, 2, 2, 10061, 10062, 7, 86, 2, 2, 10062, 10063, 7, 75, 2, 2, 10063, 10064, 7, 82, 2, 2, 10064, 10065, 7, 81, 2, 2, 10065, 10066, 7, 75, 2, 2, 10066, 10067, 7, 80, 2, 2, 10067, 10068, 7, 86, 2, 2, 10068, 10069, 7, 72, 2, 2, 10069, 10070, 7, 84, 2, 2, 10070, 10071, 7, 81, 2, 2, 10071, 10072, 7, 79, 2, 2, 10072, 10073, 7, 86, 2, 2, 10073, 10074, 7, 71, 2, 2, 10074, 10075, 7, 90, 2, 2, 10075, 10076, 7, 86, 2, 2, 10076, 1706, 3, 2, 2, 2, 10077, 10078, 7, 79, 2, 2, 10078, 10079, 7, 87, 2, 2, 10079, 10080, 7, 78, 2, 2, 10080, 10081, 7, 86, 2, 2, 10081, 10082, 7, 75, 2, 2, 10082, 10083, 7, 82, 2, 2, 10083, 10084, 7, 81, 2, 2, 10084, 10085, 7, 75, 2, 2, 10085, 10086, 7, 80, 2, 2, 10086, 10087, 7, 86, 2, 2, 10087, 10088, 7, 72, 2, 2, 10088, 10089, 7, 84, 2, 2, 10089, 10090, 7, 81, 2, 2, 10090, 10091, 7, 79, 2, 2, 10091, 10092, 7, 89, 2, 2, 10092, 10093, 7, 77, 2, 2, 10093, 10094, 7, 68, 2, 2, 10094, 1708, 3, 2, 2, 2, 10095, 10096, 7, 79, 2, 2, 10096, 10097, 7, 87, 2, 2, 10097, 10098, 7, 78, 2, 2, 10098, 10099, 7, 86, 2, 2, 10099, 10100, 7, 75, 2, 2, 10100, 10101, 7, 82, 2, 2, 10101, 10102, 7, 81, 2, 2, 10102, 10103, 7, 78, 2, 2, 10103, 10104, 7, 91, 2, 2, 10104, 10105, 7, 73, 2, 2, 10105, 10106, 7, 81, 2, 2, 10106, 10107, 7, 80, 2, 2, 10107, 10108, 7, 72, 2, 2, 10108, 10109, 7, 84, 2, 2, 10109, 10110, 7, 81, 2, 2, 10110, 10111, 7, 79, 2, 2, 10111, 10112, 7, 86, 2, 2, 10112, 10113, 7, 71, 2, 2, 10113, 10114, 7, 90, 2, 2, 10114, 10115, 7, 86, 2, 2, 10115, 1710, 3, 2, 2, 2, 10116, 10117, 7, 79, 2, 2, 10117, 10118, 7, 87, 2, 2, 10118, 10119, 7, 78, 2, 2, 10119, 10120, 7, 86, 2, 2, 10120, 10121, 7, 75, 2, 2, 10121, 10122, 7, 82, 2, 2, 10122, 10123, 7, 81, 2, 2, 10123, 10124, 7, 78, 2, 2, 10124, 10125, 7, 91, 2, 2, 10125, 10126, 7, 73, 2, 2, 10126, 10127, 7, 81, 2, 2, 10127, 10128, 7, 80, 2, 2, 10128, 10129, 7, 72, 2, 2, 10129, 10130, 7, 84, 2, 2, 10130, 10131, 7, 81, 2, 2, 10131, 10132, 7, 79, 2, 2, 10132, 10133, 7, 89, 2, 2, 10133, 10134, 7, 77, 2, 2, 10134, 10135, 7, 68, 2, 2, 10135, 1712, 3, 2, 2, 2, 10136, 10137, 7, 80, 2, 2, 10137, 10138, 7, 67, 2, 2, 10138, 10139, 7, 79, 2, 2, 10139, 10140, 7, 71, 2, 2, 10140, 10141, 7, 97, 2, 2, 10141, 10142, 7, 69, 2, 2, 10142, 10143, 7, 81, 2, 2, 10143, 10144, 7, 80, 2, 2, 10144, 10145, 7, 85, 2, 2, 10145, 10146, 7, 86, 2, 2, 10146, 1714, 3, 2, 2, 2, 10147, 10148, 7, 80, 2, 2, 10148, 10149, 7, 87, 2, 2, 10149, 10150, 7, 78, 2, 2, 10150, 10151, 7, 78, 2, 2, 10151, 10152, 7, 75, 2, 2, 10152, 10153, 7, 72, 2, 2, 10153, 1716, 3, 2, 2, 2, 10154, 10155, 7, 80, 2, 2, 10155, 10156, 7, 87, 2, 2, 10156, 10157, 7, 79, 2, 2, 10157, 10158, 7, 73, 2, 2, 10158, 10159, 7, 71, 2, 2, 10159, 10160, 7, 81, 2, 2, 10160, 10161, 7, 79, 2, 2, 10161, 10162, 7, 71, 2, 2, 10162, 10163, 7, 86, 2, 2, 10163, 10164, 7, 84, 2, 2, 10164, 10165, 7, 75, 2, 2, 10165, 10166, 7, 71, 2, 2, 10166, 10167, 7, 85, 2, 2, 10167, 1718, 3, 2, 2, 2, 10168, 10169, 7, 80, 2, 2, 10169, 10170, 7, 87, 2, 2, 10170, 10171, 7, 79, 2, 2, 10171, 10172, 7, 75, 2, 2, 10172, 10173, 7, 80, 2, 2, 10173, 10174, 7, 86, 2, 2, 10174, 10175, 7, 71, 2, 2, 10175, 10176, 7, 84, 2, 2, 10176, 10177, 7, 75, 2, 2, 10177, 10178, 7, 81, 2, 2, 10178, 10179, 7, 84, 2, 2, 10179, 10180, 7, 84, 2, 2, 10180, 10181, 7, 75, 2, 2, 10181, 10182, 7, 80, 2, 2, 10182, 10183, 7, 73, 2, 2, 10183, 10184, 7, 85, 2, 2, 10184, 1720, 3, 2, 2, 2, 10185, 10186, 7, 80, 2, 2, 10186, 10187, 7, 87, 2, 2, 10187, 10188, 7, 79, 2, 2, 10188, 10189, 7, 82, 2, 2, 10189, 10190, 7, 81, 2, 2, 10190, 10191, 7, 75, 2, 2, 10191, 10192, 7, 80, 2, 2, 10192, 10193, 7, 86, 2, 2, 10193, 10194, 7, 85, 2, 2, 10194, 1722, 3, 2, 2, 2, 10195, 10196, 7, 81, 2, 2, 10196, 10197, 7, 69, 2, 2, 10197, 10198, 7, 86, 2, 2, 10198, 1724, 3, 2, 2, 2, 10199, 10200, 7, 81, 2, 2, 10200, 10201, 7, 69, 2, 2, 10201, 10202, 7, 86, 2, 2, 10202, 10203, 7, 71, 2, 2, 10203, 10204, 7, 86, 2, 2, 10204, 10205, 7, 97, 2, 2, 10205, 10206, 7, 78, 2, 2, 10206, 10207, 7, 71, 2, 2, 10207, 10208, 7, 80, 2, 2, 10208, 10209, 7, 73, 2, 2, 10209, 10210, 7, 86, 2, 2, 10210, 10211, 7, 74, 2, 2, 10211, 1726, 3, 2, 2, 2, 10212, 10213, 7, 81, 2, 2, 10213, 10214, 7, 84, 2, 2, 10214, 10215, 7, 70, 2, 2, 10215, 1728, 3, 2, 2, 2, 10216, 10217, 7, 81, 2, 2, 10217, 10218, 7, 88, 2, 2, 10218, 10219, 7, 71, 2, 2, 10219, 10220, 7, 84, 2, 2, 10220, 10221, 7, 78, 2, 2, 10221, 10222, 7, 67, 2, 2, 10222, 10223, 7, 82, 2, 2, 10223, 10224, 7, 85, 2, 2, 10224, 1730, 3, 2, 2, 2, 10225, 10226, 7, 82, 2, 2, 10226, 10227, 7, 71, 2, 2, 10227, 10228, 7, 84, 2, 2, 10228, 10229, 7, 75, 2, 2, 10229, 10230, 7, 81, 2, 2, 10230, 10231, 7, 70, 2, 2, 10231, 10232, 7, 97, 2, 2, 10232, 10233, 7, 67, 2, 2, 10233, 10234, 7, 70, 2, 2, 10234, 10235, 7, 70, 2, 2, 10235, 1732, 3, 2, 2, 2, 10236, 10237, 7, 82, 2, 2, 10237, 10238, 7, 71, 2, 2, 10238, 10239, 7, 84, 2, 2, 10239, 10240, 7, 75, 2, 2, 10240, 10241, 7, 81, 2, 2, 10241, 10242, 7, 70, 2, 2, 10242, 10243, 7, 97, 2, 2, 10243, 10244, 7, 70, 2, 2, 10244, 10245, 7, 75, 2, 2, 10245, 10246, 7, 72, 2, 2, 10246, 10247, 7, 72, 2, 2, 10247, 1734, 3, 2, 2, 2, 10248, 10249, 7, 82, 2, 2, 10249, 10250, 7, 75, 2, 2, 10250, 1736, 3, 2, 2, 2, 10251, 10252, 7, 82, 2, 2, 10252, 10253, 7, 81, 2, 2, 10253, 10254, 7, 75, 2, 2, 10254, 10255, 7, 80, 2, 2, 10255, 10256, 7, 86, 2, 2, 10256, 10257, 7, 72, 2, 2, 10257, 10258, 7, 84, 2, 2, 10258, 10259, 7, 81, 2, 2, 10259, 10260, 7, 79, 2, 2, 10260, 10261, 7, 86, 2, 2, 10261, 10262, 7, 71, 2, 2, 10262, 10263, 7, 90, 2, 2, 10263, 10264, 7, 86, 2, 2, 10264, 1738, 3, 2, 2, 2, 10265, 10266, 7, 82, 2, 2, 10266, 10267, 7, 81, 2, 2, 10267, 10268, 7, 75, 2, 2, 10268, 10269, 7, 80, 2, 2, 10269, 10270, 7, 86, 2, 2, 10270, 10271, 7, 72, 2, 2, 10271, 10272, 7, 84, 2, 2, 10272, 10273, 7, 81, 2, 2, 10273, 10274, 7, 79, 2, 2, 10274, 10275, 7, 89, 2, 2, 10275, 10276, 7, 77, 2, 2, 10276, 10277, 7, 68, 2, 2, 10277, 1740, 3, 2, 2, 2, 10278, 10279, 7, 82, 2, 2, 10279, 10280, 7, 81, 2, 2, 10280, 10281, 7, 75, 2, 2, 10281, 10282, 7, 80, 2, 2, 10282, 10283, 7, 86, 2, 2, 10283, 10284, 7, 80, 2, 2, 10284, 1742, 3, 2, 2, 2, 10285, 10286, 7, 82, 2, 2, 10286, 10287, 7, 81, 2, 2, 10287, 10288, 7, 78, 2, 2, 10288, 10289, 7, 91, 2, 2, 10289, 10290, 7, 72, 2, 2, 10290, 10291, 7, 84, 2, 2, 10291, 10292, 7, 81, 2, 2, 10292, 10293, 7, 79, 2, 2, 10293, 10294, 7, 86, 2, 2, 10294, 10295, 7, 71, 2, 2, 10295, 10296, 7, 90, 2, 2, 10296, 10297, 7, 86, 2, 2, 10297, 1744, 3, 2, 2, 2, 10298, 10299, 7, 82, 2, 2, 10299, 10300, 7, 81, 2, 2, 10300, 10301, 7, 78, 2, 2, 10301, 10302, 7, 91, 2, 2, 10302, 10303, 7, 72, 2, 2, 10303, 10304, 7, 84, 2, 2, 10304, 10305, 7, 81, 2, 2, 10305, 10306, 7, 79, 2, 2, 10306, 10307, 7, 89, 2, 2, 10307, 10308, 7, 77, 2, 2, 10308, 10309, 7, 68, 2, 2, 10309, 1746, 3, 2, 2, 2, 10310, 10311, 7, 82, 2, 2, 10311, 10312, 7, 81, 2, 2, 10312, 10313, 7, 78, 2, 2, 10313, 10314, 7, 91, 2, 2, 10314, 10315, 7, 73, 2, 2, 10315, 10316, 7, 81, 2, 2, 10316, 10317, 7, 80, 2, 2, 10317, 10318, 7, 72, 2, 2, 10318, 10319, 7, 84, 2, 2, 10319, 10320, 7, 81, 2, 2, 10320, 10321, 7, 79, 2, 2, 10321, 10322, 7, 86, 2, 2, 10322, 10323, 7, 71, 2, 2, 10323, 10324, 7, 90, 2, 2, 10324, 10325, 7, 86, 2, 2, 10325, 1748, 3, 2, 2, 2, 10326, 10327, 7, 82, 2, 2, 10327, 10328, 7, 81, 2, 2, 10328, 10329, 7, 78, 2, 2, 10329, 10330, 7, 91, 2, 2, 10330, 10331, 7, 73, 2, 2, 10331, 10332, 7, 81, 2, 2, 10332, 10333, 7, 80, 2, 2, 10333, 10334, 7, 72, 2, 2, 10334, 10335, 7, 84, 2, 2, 10335, 10336, 7, 81, 2, 2, 10336, 10337, 7, 79, 2, 2, 10337, 10338, 7, 89, 2, 2, 10338, 10339, 7, 77, 2, 2, 10339, 10340, 7, 68, 2, 2, 10340, 1750, 3, 2, 2, 2, 10341, 10342, 7, 82, 2, 2, 10342, 10343, 7, 81, 2, 2, 10343, 10344, 7, 89, 2, 2, 10344, 1752, 3, 2, 2, 2, 10345, 10346, 7, 82, 2, 2, 10346, 10347, 7, 81, 2, 2, 10347, 10348, 7, 89, 2, 2, 10348, 10349, 7, 71, 2, 2, 10349, 10350, 7, 84, 2, 2, 10350, 1754, 3, 2, 2, 2, 10351, 10352, 7, 83, 2, 2, 10352, 10353, 7, 87, 2, 2, 10353, 10354, 7, 81, 2, 2, 10354, 10355, 7, 86, 2, 2, 10355, 10356, 7, 71, 2, 2, 10356, 1756, 3, 2, 2, 2, 10357, 10358, 7, 84, 2, 2, 10358, 10359, 7, 67, 2, 2, 10359, 10360, 7, 70, 2, 2, 10360, 10361, 7, 75, 2, 2, 10361, 10362, 7, 67, 2, 2, 10362, 10363, 7, 80, 2, 2, 10363, 10364, 7, 85, 2, 2, 10364, 1758, 3, 2, 2, 2, 10365, 10366, 7, 84, 2, 2, 10366, 10367, 7, 67, 2, 2, 10367, 10368, 7, 80, 2, 2, 10368, 10369, 7, 70, 2, 2, 10369, 1760, 3, 2, 2, 2, 10370, 10371, 7, 84, 2, 2, 10371, 10372, 7, 67, 2, 2, 10372, 10373, 7, 80, 2, 2, 10373, 10374, 7, 70, 2, 2, 10374, 10375, 7, 81, 2, 2, 10375, 10376, 7, 79, 2, 2, 10376, 10377, 7, 97, 2, 2, 10377, 10378, 7, 68, 2, 2, 10378, 10379, 7, 91, 2, 2, 10379, 10380, 7, 86, 2, 2, 10380, 10381, 7, 71, 2, 2, 10381, 10382, 7, 85, 2, 2, 10382, 1762, 3, 2, 2, 2, 10383, 10384, 7, 84, 2, 2, 10384, 10385, 7, 71, 2, 2, 10385, 10386, 7, 78, 2, 2, 10386, 10387, 7, 71, 2, 2, 10387, 10388, 7, 67, 2, 2, 10388, 10389, 7, 85, 2, 2, 10389, 10390, 7, 71, 2, 2, 10390, 10391, 7, 97, 2, 2, 10391, 10392, 7, 78, 2, 2, 10392, 10393, 7, 81, 2, 2, 10393, 10394, 7, 69, 2, 2, 10394, 10395, 7, 77, 2, 2, 10395, 1764, 3, 2, 2, 2, 10396, 10397, 7, 84, 2, 2, 10397, 10398, 7, 71, 2, 2, 10398, 10399, 7, 88, 2, 2, 10399, 10400, 7, 71, 2, 2, 10400, 10401, 7, 84, 2, 2, 10401, 10402, 7, 85, 2, 2, 10402, 10403, 7, 71, 2, 2, 10403, 1766, 3, 2, 2, 2, 10404, 10405, 7, 84, 2, 2, 10405, 10406, 7, 81, 2, 2, 10406, 10407, 7, 87, 2, 2, 10407, 10408, 7, 80, 2, 2, 10408, 10409, 7, 70, 2, 2, 10409, 1768, 3, 2, 2, 2, 10410, 10411, 7, 84, 2, 2, 10411, 10412, 7, 81, 2, 2, 10412, 10413, 7, 89, 2, 2, 10413, 10414, 7, 97, 2, 2, 10414, 10415, 7, 69, 2, 2, 10415, 10416, 7, 81, 2, 2, 10416, 10417, 7, 87, 2, 2, 10417, 10418, 7, 80, 2, 2, 10418, 10419, 7, 86, 2, 2, 10419, 1770, 3, 2, 2, 2, 10420, 10421, 7, 84, 2, 2, 10421, 10422, 7, 82, 2, 2, 10422, 10423, 7, 67, 2, 2, 10423, 10424, 7, 70, 2, 2, 10424, 1772, 3, 2, 2, 2, 10425, 10426, 7, 84, 2, 2, 10426, 10427, 7, 86, 2, 2, 10427, 10428, 7, 84, 2, 2, 10428, 10429, 7, 75, 2, 2, 10429, 10430, 7, 79, 2, 2, 10430, 1774, 3, 2, 2, 2, 10431, 10432, 7, 85, 2, 2, 10432, 10433, 7, 71, 2, 2, 10433, 10434, 7, 69, 2, 2, 10434, 10435, 7, 97, 2, 2, 10435, 10436, 7, 86, 2, 2, 10436, 10437, 7, 81, 2, 2, 10437, 10438, 7, 97, 2, 2, 10438, 10439, 7, 86, 2, 2, 10439, 10440, 7, 75, 2, 2, 10440, 10441, 7, 79, 2, 2, 10441, 10442, 7, 71, 2, 2, 10442, 1776, 3, 2, 2, 2, 10443, 10444, 7, 85, 2, 2, 10444, 10445, 7, 71, 2, 2, 10445, 10446, 7, 85, 2, 2, 10446, 10447, 7, 85, 2, 2, 10447, 10448, 7, 75, 2, 2, 10448, 10449, 7, 81, 2, 2, 10449, 10450, 7, 80, 2, 2, 10450, 10451, 7, 97, 2, 2, 10451, 10452, 7, 87, 2, 2, 10452, 10453, 7, 85, 2, 2, 10453, 10454, 7, 71, 2, 2, 10454, 10455, 7, 84, 2, 2, 10455, 1778, 3, 2, 2, 2, 10456, 10457, 7, 85, 2, 2, 10457, 10458, 7, 74, 2, 2, 10458, 10459, 7, 67, 2, 2, 10459, 1780, 3, 2, 2, 2, 10460, 10461, 7, 85, 2, 2, 10461, 10462, 7, 74, 2, 2, 10462, 10463, 7, 67, 2, 2, 10463, 10464, 7, 51, 2, 2, 10464, 1782, 3, 2, 2, 2, 10465, 10466, 7, 85, 2, 2, 10466, 10467, 7, 74, 2, 2, 10467, 10468, 7, 67, 2, 2, 10468, 10469, 7, 52, 2, 2, 10469, 1784, 3, 2, 2, 2, 10470, 10471, 7, 85, 2, 2, 10471, 10472, 7, 69, 2, 2, 10472, 10473, 7, 74, 2, 2, 10473, 10474, 7, 71, 2, 2, 10474, 10475, 7, 79, 2, 2, 10475, 10476, 7, 67, 2, 2, 10476, 10477, 7, 97, 2, 2, 10477, 10478, 7, 80, 2, 2, 10478, 10479, 7, 67, 2, 2, 10479, 10480, 7, 79, 2, 2, 10480, 10481, 7, 71, 2, 2, 10481, 1786, 3, 2, 2, 2, 10482, 10483, 7, 85, 2, 2, 10483, 10484, 7, 75, 2, 2, 10484, 10485, 7, 73, 2, 2, 10485, 10486, 7, 80, 2, 2, 10486, 1788, 3, 2, 2, 2, 10487, 10488, 7, 85, 2, 2, 10488, 10489, 7, 75, 2, 2, 10489, 10490, 7, 80, 2, 2, 10490, 1790, 3, 2, 2, 2, 10491, 10492, 7, 85, 2, 2, 10492, 10493, 7, 78, 2, 2, 10493, 10494, 7, 71, 2, 2, 10494, 10495, 7, 71, 2, 2, 10495, 10496, 7, 82, 2, 2, 10496, 1792, 3, 2, 2, 2, 10497, 10498, 7, 85, 2, 2, 10498, 10499, 7, 81, 2, 2, 10499, 10500, 7, 87, 2, 2, 10500, 10501, 7, 80, 2, 2, 10501, 10502, 7, 70, 2, 2, 10502, 10503, 7, 71, 2, 2, 10503, 10504, 7, 90, 2, 2, 10504, 1794, 3, 2, 2, 2, 10505, 10506, 7, 85, 2, 2, 10506, 10507, 7, 83, 2, 2, 10507, 10508, 7, 78, 2, 2, 10508, 10509, 7, 97, 2, 2, 10509, 10510, 7, 86, 2, 2, 10510, 10511, 7, 74, 2, 2, 10511, 10512, 7, 84, 2, 2, 10512, 10513, 7, 71, 2, 2, 10513, 10514, 7, 67, 2, 2, 10514, 10515, 7, 70, 2, 2, 10515, 10516, 7, 97, 2, 2, 10516, 10517, 7, 89, 2, 2, 10517, 10518, 7, 67, 2, 2, 10518, 10519, 7, 75, 2, 2, 10519, 10520, 7, 86, 2, 2, 10520, 10521, 7, 97, 2, 2, 10521, 10522, 7, 67, 2, 2, 10522, 10523, 7, 72, 2, 2, 10523, 10524, 7, 86, 2, 2, 10524, 10525, 7, 71, 2, 2, 10525, 10526, 7, 84, 2, 2, 10526, 10527, 7, 97, 2, 2, 10527, 10528, 7, 73, 2, 2, 10528, 10529, 7, 86, 2, 2, 10529, 10530, 7, 75, 2, 2, 10530, 10531, 7, 70, 2, 2, 10531, 10532, 7, 85, 2, 2, 10532, 1796, 3, 2, 2, 2, 10533, 10534, 7, 85, 2, 2, 10534, 10535, 7, 83, 2, 2, 10535, 10536, 7, 84, 2, 2, 10536, 10537, 7, 86, 2, 2, 10537, 1798, 3, 2, 2, 2, 10538, 10539, 7, 85, 2, 2, 10539, 10540, 7, 84, 2, 2, 10540, 10541, 7, 75, 2, 2, 10541, 10542, 7, 70, 2, 2, 10542, 1800, 3, 2, 2, 2, 10543, 10544, 7, 85, 2, 2, 10544, 10545, 7, 86, 2, 2, 10545, 10546, 7, 67, 2, 2, 10546, 10547, 7, 84, 2, 2, 10547, 10548, 7, 86, 2, 2, 10548, 10549, 7, 82, 2, 2, 10549, 10550, 7, 81, 2, 2, 10550, 10551, 7, 75, 2, 2, 10551, 10552, 7, 80, 2, 2, 10552, 10553, 7, 86, 2, 2, 10553, 1802, 3, 2, 2, 2, 10554, 10555, 7, 85, 2, 2, 10555, 10556, 7, 86, 2, 2, 10556, 10557, 7, 84, 2, 2, 10557, 10558, 7, 69, 2, 2, 10558, 10559, 7, 79, 2, 2, 10559, 10560, 7, 82, 2, 2, 10560, 1804, 3, 2, 2, 2, 10561, 10562, 7, 85, 2, 2, 10562, 10563, 7, 86, 2, 2, 10563, 10564, 7, 84, 2, 2, 10564, 10565, 7, 97, 2, 2, 10565, 10566, 7, 86, 2, 2, 10566, 10567, 7, 81, 2, 2, 10567, 10568, 7, 97, 2, 2, 10568, 10569, 7, 70, 2, 2, 10569, 10570, 7, 67, 2, 2, 10570, 10571, 7, 86, 2, 2, 10571, 10572, 7, 71, 2, 2, 10572, 1806, 3, 2, 2, 2, 10573, 10574, 7, 85, 2, 2, 10574, 10575, 7, 86, 2, 2, 10575, 10576, 7, 97, 2, 2, 10576, 10577, 7, 67, 2, 2, 10577, 10578, 7, 84, 2, 2, 10578, 10579, 7, 71, 2, 2, 10579, 10580, 7, 67, 2, 2, 10580, 1808, 3, 2, 2, 2, 10581, 10582, 7, 85, 2, 2, 10582, 10583, 7, 86, 2, 2, 10583, 10584, 7, 97, 2, 2, 10584, 10585, 7, 67, 2, 2, 10585, 10586, 7, 85, 2, 2, 10586, 10587, 7, 68, 2, 2, 10587, 10588, 7, 75, 2, 2, 10588, 10589, 7, 80, 2, 2, 10589, 10590, 7, 67, 2, 2, 10590, 10591, 7, 84, 2, 2, 10591, 10592, 7, 91, 2, 2, 10592, 1810, 3, 2, 2, 2, 10593, 10594, 7, 85, 2, 2, 10594, 10595, 7, 86, 2, 2, 10595, 10596, 7, 97, 2, 2, 10596, 10597, 7, 67, 2, 2, 10597, 10598, 7, 85, 2, 2, 10598, 10599, 7, 86, 2, 2, 10599, 10600, 7, 71, 2, 2, 10600, 10601, 7, 90, 2, 2, 10601, 10602, 7, 86, 2, 2, 10602, 1812, 3, 2, 2, 2, 10603, 10604, 7, 85, 2, 2, 10604, 10605, 7, 86, 2, 2, 10605, 10606, 7, 97, 2, 2, 10606, 10607, 7, 67, 2, 2, 10607, 10608, 7, 85, 2, 2, 10608, 10609, 7, 89, 2, 2, 10609, 10610, 7, 77, 2, 2, 10610, 10611, 7, 68, 2, 2, 10611, 1814, 3, 2, 2, 2, 10612, 10613, 7, 85, 2, 2, 10613, 10614, 7, 86, 2, 2, 10614, 10615, 7, 97, 2, 2, 10615, 10616, 7, 67, 2, 2, 10616, 10617, 7, 85, 2, 2, 10617, 10618, 7, 89, 2, 2, 10618, 10619, 7, 77, 2, 2, 10619, 10620, 7, 86, 2, 2, 10620, 1816, 3, 2, 2, 2, 10621, 10622, 7, 85, 2, 2, 10622, 10623, 7, 86, 2, 2, 10623, 10624, 7, 97, 2, 2, 10624, 10625, 7, 68, 2, 2, 10625, 10626, 7, 87, 2, 2, 10626, 10627, 7, 72, 2, 2, 10627, 10628, 7, 72, 2, 2, 10628, 10629, 7, 71, 2, 2, 10629, 10630, 7, 84, 2, 2, 10630, 1818, 3, 2, 2, 2, 10631, 10632, 7, 85, 2, 2, 10632, 10633, 7, 86, 2, 2, 10633, 10634, 7, 97, 2, 2, 10634, 10635, 7, 69, 2, 2, 10635, 10636, 7, 71, 2, 2, 10636, 10637, 7, 80, 2, 2, 10637, 10638, 7, 86, 2, 2, 10638, 10639, 7, 84, 2, 2, 10639, 10640, 7, 81, 2, 2, 10640, 10641, 7, 75, 2, 2, 10641, 10642, 7, 70, 2, 2, 10642, 1820, 3, 2, 2, 2, 10643, 10644, 7, 85, 2, 2, 10644, 10645, 7, 86, 2, 2, 10645, 10646, 7, 97, 2, 2, 10646, 10647, 7, 69, 2, 2, 10647, 10648, 7, 81, 2, 2, 10648, 10649, 7, 80, 2, 2, 10649, 10650, 7, 86, 2, 2, 10650, 10651, 7, 67, 2, 2, 10651, 10652, 7, 75, 2, 2, 10652, 10653, 7, 80, 2, 2, 10653, 10654, 7, 85, 2, 2, 10654, 1822, 3, 2, 2, 2, 10655, 10656, 7, 85, 2, 2, 10656, 10657, 7, 86, 2, 2, 10657, 10658, 7, 97, 2, 2, 10658, 10659, 7, 69, 2, 2, 10659, 10660, 7, 84, 2, 2, 10660, 10661, 7, 81, 2, 2, 10661, 10662, 7, 85, 2, 2, 10662, 10663, 7, 85, 2, 2, 10663, 10664, 7, 71, 2, 2, 10664, 10665, 7, 85, 2, 2, 10665, 1824, 3, 2, 2, 2, 10666, 10667, 7, 85, 2, 2, 10667, 10668, 7, 86, 2, 2, 10668, 10669, 7, 97, 2, 2, 10669, 10670, 7, 70, 2, 2, 10670, 10671, 7, 75, 2, 2, 10671, 10672, 7, 72, 2, 2, 10672, 10673, 7, 72, 2, 2, 10673, 10674, 7, 71, 2, 2, 10674, 10675, 7, 84, 2, 2, 10675, 10676, 7, 71, 2, 2, 10676, 10677, 7, 80, 2, 2, 10677, 10678, 7, 69, 2, 2, 10678, 10679, 7, 71, 2, 2, 10679, 1826, 3, 2, 2, 2, 10680, 10681, 7, 85, 2, 2, 10681, 10682, 7, 86, 2, 2, 10682, 10683, 7, 97, 2, 2, 10683, 10684, 7, 70, 2, 2, 10684, 10685, 7, 75, 2, 2, 10685, 10686, 7, 79, 2, 2, 10686, 10687, 7, 71, 2, 2, 10687, 10688, 7, 80, 2, 2, 10688, 10689, 7, 85, 2, 2, 10689, 10690, 7, 75, 2, 2, 10690, 10691, 7, 81, 2, 2, 10691, 10692, 7, 80, 2, 2, 10692, 1828, 3, 2, 2, 2, 10693, 10694, 7, 85, 2, 2, 10694, 10695, 7, 86, 2, 2, 10695, 10696, 7, 97, 2, 2, 10696, 10697, 7, 70, 2, 2, 10697, 10698, 7, 75, 2, 2, 10698, 10699, 7, 85, 2, 2, 10699, 10700, 7, 76, 2, 2, 10700, 10701, 7, 81, 2, 2, 10701, 10702, 7, 75, 2, 2, 10702, 10703, 7, 80, 2, 2, 10703, 10704, 7, 86, 2, 2, 10704, 1830, 3, 2, 2, 2, 10705, 10706, 7, 85, 2, 2, 10706, 10707, 7, 86, 2, 2, 10707, 10708, 7, 97, 2, 2, 10708, 10709, 7, 70, 2, 2, 10709, 10710, 7, 75, 2, 2, 10710, 10711, 7, 85, 2, 2, 10711, 10712, 7, 86, 2, 2, 10712, 10713, 7, 67, 2, 2, 10713, 10714, 7, 80, 2, 2, 10714, 10715, 7, 69, 2, 2, 10715, 10716, 7, 71, 2, 2, 10716, 1832, 3, 2, 2, 2, 10717, 10718, 7, 85, 2, 2, 10718, 10719, 7, 86, 2, 2, 10719, 10720, 7, 97, 2, 2, 10720, 10721, 7, 71, 2, 2, 10721, 10722, 7, 80, 2, 2, 10722, 10723, 7, 70, 2, 2, 10723, 10724, 7, 82, 2, 2, 10724, 10725, 7, 81, 2, 2, 10725, 10726, 7, 75, 2, 2, 10726, 10727, 7, 80, 2, 2, 10727, 10728, 7, 86, 2, 2, 10728, 1834, 3, 2, 2, 2, 10729, 10730, 7, 85, 2, 2, 10730, 10731, 7, 86, 2, 2, 10731, 10732, 7, 97, 2, 2, 10732, 10733, 7, 71, 2, 2, 10733, 10734, 7, 80, 2, 2, 10734, 10735, 7, 88, 2, 2, 10735, 10736, 7, 71, 2, 2, 10736, 10737, 7, 78, 2, 2, 10737, 10738, 7, 81, 2, 2, 10738, 10739, 7, 82, 2, 2, 10739, 10740, 7, 71, 2, 2, 10740, 1836, 3, 2, 2, 2, 10741, 10742, 7, 85, 2, 2, 10742, 10743, 7, 86, 2, 2, 10743, 10744, 7, 97, 2, 2, 10744, 10745, 7, 71, 2, 2, 10745, 10746, 7, 83, 2, 2, 10746, 10747, 7, 87, 2, 2, 10747, 10748, 7, 67, 2, 2, 10748, 10749, 7, 78, 2, 2, 10749, 10750, 7, 85, 2, 2, 10750, 1838, 3, 2, 2, 2, 10751, 10752, 7, 85, 2, 2, 10752, 10753, 7, 86, 2, 2, 10753, 10754, 7, 97, 2, 2, 10754, 10755, 7, 71, 2, 2, 10755, 10756, 7, 90, 2, 2, 10756, 10757, 7, 86, 2, 2, 10757, 10758, 7, 71, 2, 2, 10758, 10759, 7, 84, 2, 2, 10759, 10760, 7, 75, 2, 2, 10760, 10761, 7, 81, 2, 2, 10761, 10762, 7, 84, 2, 2, 10762, 10763, 7, 84, 2, 2, 10763, 10764, 7, 75, 2, 2, 10764, 10765, 7, 80, 2, 2, 10765, 10766, 7, 73, 2, 2, 10766, 1840, 3, 2, 2, 2, 10767, 10768, 7, 85, 2, 2, 10768, 10769, 7, 86, 2, 2, 10769, 10770, 7, 97, 2, 2, 10770, 10771, 7, 73, 2, 2, 10771, 10772, 7, 71, 2, 2, 10772, 10773, 7, 81, 2, 2, 10773, 10774, 7, 79, 2, 2, 10774, 10775, 7, 69, 2, 2, 10775, 10776, 7, 81, 2, 2, 10776, 10777, 7, 78, 2, 2, 10777, 10778, 7, 78, 2, 2, 10778, 10779, 7, 72, 2, 2, 10779, 10780, 7, 84, 2, 2, 10780, 10781, 7, 81, 2, 2, 10781, 10782, 7, 79, 2, 2, 10782, 10783, 7, 86, 2, 2, 10783, 10784, 7, 71, 2, 2, 10784, 10785, 7, 90, 2, 2, 10785, 10786, 7, 86, 2, 2, 10786, 1842, 3, 2, 2, 2, 10787, 10788, 7, 85, 2, 2, 10788, 10789, 7, 86, 2, 2, 10789, 10790, 7, 97, 2, 2, 10790, 10791, 7, 73, 2, 2, 10791, 10792, 7, 71, 2, 2, 10792, 10793, 7, 81, 2, 2, 10793, 10794, 7, 79, 2, 2, 10794, 10795, 7, 69, 2, 2, 10795, 10796, 7, 81, 2, 2, 10796, 10797, 7, 78, 2, 2, 10797, 10798, 7, 78, 2, 2, 10798, 10799, 7, 72, 2, 2, 10799, 10800, 7, 84, 2, 2, 10800, 10801, 7, 81, 2, 2, 10801, 10802, 7, 79, 2, 2, 10802, 10803, 7, 86, 2, 2, 10803, 10804, 7, 90, 2, 2, 10804, 10805, 7, 86, 2, 2, 10805, 1844, 3, 2, 2, 2, 10806, 10807, 7, 85, 2, 2, 10807, 10808, 7, 86, 2, 2, 10808, 10809, 7, 97, 2, 2, 10809, 10810, 7, 73, 2, 2, 10810, 10811, 7, 71, 2, 2, 10811, 10812, 7, 81, 2, 2, 10812, 10813, 7, 79, 2, 2, 10813, 10814, 7, 69, 2, 2, 10814, 10815, 7, 81, 2, 2, 10815, 10816, 7, 78, 2, 2, 10816, 10817, 7, 78, 2, 2, 10817, 10818, 7, 72, 2, 2, 10818, 10819, 7, 84, 2, 2, 10819, 10820, 7, 81, 2, 2, 10820, 10821, 7, 79, 2, 2, 10821, 10822, 7, 89, 2, 2, 10822, 10823, 7, 77, 2, 2, 10823, 10824, 7, 68, 2, 2, 10824, 1846, 3, 2, 2, 2, 10825, 10826, 7, 85, 2, 2, 10826, 10827, 7, 86, 2, 2, 10827, 10828, 7, 97, 2, 2, 10828, 10829, 7, 73, 2, 2, 10829, 10830, 7, 71, 2, 2, 10830, 10831, 7, 81, 2, 2, 10831, 10832, 7, 79, 2, 2, 10832, 10833, 7, 71, 2, 2, 10833, 10834, 7, 86, 2, 2, 10834, 10835, 7, 84, 2, 2, 10835, 10836, 7, 91, 2, 2, 10836, 10837, 7, 69, 2, 2, 10837, 10838, 7, 81, 2, 2, 10838, 10839, 7, 78, 2, 2, 10839, 10840, 7, 78, 2, 2, 10840, 10841, 7, 71, 2, 2, 10841, 10842, 7, 69, 2, 2, 10842, 10843, 7, 86, 2, 2, 10843, 10844, 7, 75, 2, 2, 10844, 10845, 7, 81, 2, 2, 10845, 10846, 7, 80, 2, 2, 10846, 10847, 7, 72, 2, 2, 10847, 10848, 7, 84, 2, 2, 10848, 10849, 7, 81, 2, 2, 10849, 10850, 7, 79, 2, 2, 10850, 10851, 7, 86, 2, 2, 10851, 10852, 7, 71, 2, 2, 10852, 10853, 7, 90, 2, 2, 10853, 10854, 7, 86, 2, 2, 10854, 1848, 3, 2, 2, 2, 10855, 10856, 7, 85, 2, 2, 10856, 10857, 7, 86, 2, 2, 10857, 10858, 7, 97, 2, 2, 10858, 10859, 7, 73, 2, 2, 10859, 10860, 7, 71, 2, 2, 10860, 10861, 7, 81, 2, 2, 10861, 10862, 7, 79, 2, 2, 10862, 10863, 7, 71, 2, 2, 10863, 10864, 7, 86, 2, 2, 10864, 10865, 7, 84, 2, 2, 10865, 10866, 7, 91, 2, 2, 10866, 10867, 7, 69, 2, 2, 10867, 10868, 7, 81, 2, 2, 10868, 10869, 7, 78, 2, 2, 10869, 10870, 7, 78, 2, 2, 10870, 10871, 7, 71, 2, 2, 10871, 10872, 7, 69, 2, 2, 10872, 10873, 7, 86, 2, 2, 10873, 10874, 7, 75, 2, 2, 10874, 10875, 7, 81, 2, 2, 10875, 10876, 7, 80, 2, 2, 10876, 10877, 7, 72, 2, 2, 10877, 10878, 7, 84, 2, 2, 10878, 10879, 7, 81, 2, 2, 10879, 10880, 7, 79, 2, 2, 10880, 10881, 7, 89, 2, 2, 10881, 10882, 7, 77, 2, 2, 10882, 10883, 7, 68, 2, 2, 10883, 1850, 3, 2, 2, 2, 10884, 10885, 7, 85, 2, 2, 10885, 10886, 7, 86, 2, 2, 10886, 10887, 7, 97, 2, 2, 10887, 10888, 7, 73, 2, 2, 10888, 10889, 7, 71, 2, 2, 10889, 10890, 7, 81, 2, 2, 10890, 10891, 7, 79, 2, 2, 10891, 10892, 7, 71, 2, 2, 10892, 10893, 7, 86, 2, 2, 10893, 10894, 7, 84, 2, 2, 10894, 10895, 7, 91, 2, 2, 10895, 10896, 7, 72, 2, 2, 10896, 10897, 7, 84, 2, 2, 10897, 10898, 7, 81, 2, 2, 10898, 10899, 7, 79, 2, 2, 10899, 10900, 7, 86, 2, 2, 10900, 10901, 7, 71, 2, 2, 10901, 10902, 7, 90, 2, 2, 10902, 10903, 7, 86, 2, 2, 10903, 1852, 3, 2, 2, 2, 10904, 10905, 7, 85, 2, 2, 10905, 10906, 7, 86, 2, 2, 10906, 10907, 7, 97, 2, 2, 10907, 10908, 7, 73, 2, 2, 10908, 10909, 7, 71, 2, 2, 10909, 10910, 7, 81, 2, 2, 10910, 10911, 7, 79, 2, 2, 10911, 10912, 7, 71, 2, 2, 10912, 10913, 7, 86, 2, 2, 10913, 10914, 7, 84, 2, 2, 10914, 10915, 7, 91, 2, 2, 10915, 10916, 7, 72, 2, 2, 10916, 10917, 7, 84, 2, 2, 10917, 10918, 7, 81, 2, 2, 10918, 10919, 7, 79, 2, 2, 10919, 10920, 7, 89, 2, 2, 10920, 10921, 7, 77, 2, 2, 10921, 10922, 7, 68, 2, 2, 10922, 1854, 3, 2, 2, 2, 10923, 10924, 7, 85, 2, 2, 10924, 10925, 7, 86, 2, 2, 10925, 10926, 7, 97, 2, 2, 10926, 10927, 7, 73, 2, 2, 10927, 10928, 7, 71, 2, 2, 10928, 10929, 7, 81, 2, 2, 10929, 10930, 7, 79, 2, 2, 10930, 10931, 7, 71, 2, 2, 10931, 10932, 7, 86, 2, 2, 10932, 10933, 7, 84, 2, 2, 10933, 10934, 7, 91, 2, 2, 10934, 10935, 7, 80, 2, 2, 10935, 1856, 3, 2, 2, 2, 10936, 10937, 7, 85, 2, 2, 10937, 10938, 7, 86, 2, 2, 10938, 10939, 7, 97, 2, 2, 10939, 10940, 7, 73, 2, 2, 10940, 10941, 7, 71, 2, 2, 10941, 10942, 7, 81, 2, 2, 10942, 10943, 7, 79, 2, 2, 10943, 10944, 7, 71, 2, 2, 10944, 10945, 7, 86, 2, 2, 10945, 10946, 7, 84, 2, 2, 10946, 10947, 7, 91, 2, 2, 10947, 10948, 7, 86, 2, 2, 10948, 10949, 7, 91, 2, 2, 10949, 10950, 7, 82, 2, 2, 10950, 10951, 7, 71, 2, 2, 10951, 1858, 3, 2, 2, 2, 10952, 10953, 7, 85, 2, 2, 10953, 10954, 7, 86, 2, 2, 10954, 10955, 7, 97, 2, 2, 10955, 10956, 7, 73, 2, 2, 10956, 10957, 7, 71, 2, 2, 10957, 10958, 7, 81, 2, 2, 10958, 10959, 7, 79, 2, 2, 10959, 10960, 7, 72, 2, 2, 10960, 10961, 7, 84, 2, 2, 10961, 10962, 7, 81, 2, 2, 10962, 10963, 7, 79, 2, 2, 10963, 10964, 7, 86, 2, 2, 10964, 10965, 7, 71, 2, 2, 10965, 10966, 7, 90, 2, 2, 10966, 10967, 7, 86, 2, 2, 10967, 1860, 3, 2, 2, 2, 10968, 10969, 7, 85, 2, 2, 10969, 10970, 7, 86, 2, 2, 10970, 10971, 7, 97, 2, 2, 10971, 10972, 7, 73, 2, 2, 10972, 10973, 7, 71, 2, 2, 10973, 10974, 7, 81, 2, 2, 10974, 10975, 7, 79, 2, 2, 10975, 10976, 7, 72, 2, 2, 10976, 10977, 7, 84, 2, 2, 10977, 10978, 7, 81, 2, 2, 10978, 10979, 7, 79, 2, 2, 10979, 10980, 7, 89, 2, 2, 10980, 10981, 7, 77, 2, 2, 10981, 10982, 7, 68, 2, 2, 10982, 1862, 3, 2, 2, 2, 10983, 10984, 7, 85, 2, 2, 10984, 10985, 7, 86, 2, 2, 10985, 10986, 7, 97, 2, 2, 10986, 10987, 7, 75, 2, 2, 10987, 10988, 7, 80, 2, 2, 10988, 10989, 7, 86, 2, 2, 10989, 10990, 7, 71, 2, 2, 10990, 10991, 7, 84, 2, 2, 10991, 10992, 7, 75, 2, 2, 10992, 10993, 7, 81, 2, 2, 10993, 10994, 7, 84, 2, 2, 10994, 10995, 7, 84, 2, 2, 10995, 10996, 7, 75, 2, 2, 10996, 10997, 7, 80, 2, 2, 10997, 10998, 7, 73, 2, 2, 10998, 10999, 7, 80, 2, 2, 10999, 1864, 3, 2, 2, 2, 11000, 11001, 7, 85, 2, 2, 11001, 11002, 7, 86, 2, 2, 11002, 11003, 7, 97, 2, 2, 11003, 11004, 7, 75, 2, 2, 11004, 11005, 7, 80, 2, 2, 11005, 11006, 7, 86, 2, 2, 11006, 11007, 7, 71, 2, 2, 11007, 11008, 7, 84, 2, 2, 11008, 11009, 7, 85, 2, 2, 11009, 11010, 7, 71, 2, 2, 11010, 11011, 7, 69, 2, 2, 11011, 11012, 7, 86, 2, 2, 11012, 11013, 7, 75, 2, 2, 11013, 11014, 7, 81, 2, 2, 11014, 11015, 7, 80, 2, 2, 11015, 1866, 3, 2, 2, 2, 11016, 11017, 7, 85, 2, 2, 11017, 11018, 7, 86, 2, 2, 11018, 11019, 7, 97, 2, 2, 11019, 11020, 7, 75, 2, 2, 11020, 11021, 7, 80, 2, 2, 11021, 11022, 7, 86, 2, 2, 11022, 11023, 7, 71, 2, 2, 11023, 11024, 7, 84, 2, 2, 11024, 11025, 7, 85, 2, 2, 11025, 11026, 7, 71, 2, 2, 11026, 11027, 7, 69, 2, 2, 11027, 11028, 7, 86, 2, 2, 11028, 11029, 7, 85, 2, 2, 11029, 1868, 3, 2, 2, 2, 11030, 11031, 7, 85, 2, 2, 11031, 11032, 7, 86, 2, 2, 11032, 11033, 7, 97, 2, 2, 11033, 11034, 7, 75, 2, 2, 11034, 11035, 7, 85, 2, 2, 11035, 11036, 7, 69, 2, 2, 11036, 11037, 7, 78, 2, 2, 11037, 11038, 7, 81, 2, 2, 11038, 11039, 7, 85, 2, 2, 11039, 11040, 7, 71, 2, 2, 11040, 11041, 7, 70, 2, 2, 11041, 1870, 3, 2, 2, 2, 11042, 11043, 7, 85, 2, 2, 11043, 11044, 7, 86, 2, 2, 11044, 11045, 7, 97, 2, 2, 11045, 11046, 7, 75, 2, 2, 11046, 11047, 7, 85, 2, 2, 11047, 11048, 7, 71, 2, 2, 11048, 11049, 7, 79, 2, 2, 11049, 11050, 7, 82, 2, 2, 11050, 11051, 7, 86, 2, 2, 11051, 11052, 7, 91, 2, 2, 11052, 1872, 3, 2, 2, 2, 11053, 11054, 7, 85, 2, 2, 11054, 11055, 7, 86, 2, 2, 11055, 11056, 7, 97, 2, 2, 11056, 11057, 7, 75, 2, 2, 11057, 11058, 7, 85, 2, 2, 11058, 11059, 7, 85, 2, 2, 11059, 11060, 7, 75, 2, 2, 11060, 11061, 7, 79, 2, 2, 11061, 11062, 7, 82, 2, 2, 11062, 11063, 7, 78, 2, 2, 11063, 11064, 7, 71, 2, 2, 11064, 1874, 3, 2, 2, 2, 11065, 11066, 7, 85, 2, 2, 11066, 11067, 7, 86, 2, 2, 11067, 11068, 7, 97, 2, 2, 11068, 11069, 7, 78, 2, 2, 11069, 11070, 7, 75, 2, 2, 11070, 11071, 7, 80, 2, 2, 11071, 11072, 7, 71, 2, 2, 11072, 11073, 7, 72, 2, 2, 11073, 11074, 7, 84, 2, 2, 11074, 11075, 7, 81, 2, 2, 11075, 11076, 7, 79, 2, 2, 11076, 11077, 7, 86, 2, 2, 11077, 11078, 7, 71, 2, 2, 11078, 11079, 7, 90, 2, 2, 11079, 11080, 7, 86, 2, 2, 11080, 1876, 3, 2, 2, 2, 11081, 11082, 7, 85, 2, 2, 11082, 11083, 7, 86, 2, 2, 11083, 11084, 7, 97, 2, 2, 11084, 11085, 7, 78, 2, 2, 11085, 11086, 7, 75, 2, 2, 11086, 11087, 7, 80, 2, 2, 11087, 11088, 7, 71, 2, 2, 11088, 11089, 7, 72, 2, 2, 11089, 11090, 7, 84, 2, 2, 11090, 11091, 7, 81, 2, 2, 11091, 11092, 7, 79, 2, 2, 11092, 11093, 7, 89, 2, 2, 11093, 11094, 7, 77, 2, 2, 11094, 11095, 7, 68, 2, 2, 11095, 1878, 3, 2, 2, 2, 11096, 11097, 7, 85, 2, 2, 11097, 11098, 7, 86, 2, 2, 11098, 11099, 7, 97, 2, 2, 11099, 11100, 7, 78, 2, 2, 11100, 11101, 7, 75, 2, 2, 11101, 11102, 7, 80, 2, 2, 11102, 11103, 7, 71, 2, 2, 11103, 11104, 7, 85, 2, 2, 11104, 11105, 7, 86, 2, 2, 11105, 11106, 7, 84, 2, 2, 11106, 11107, 7, 75, 2, 2, 11107, 11108, 7, 80, 2, 2, 11108, 11109, 7, 73, 2, 2, 11109, 11110, 7, 72, 2, 2, 11110, 11111, 7, 84, 2, 2, 11111, 11112, 7, 81, 2, 2, 11112, 11113, 7, 79, 2, 2, 11113, 11114, 7, 86, 2, 2, 11114, 11115, 7, 71, 2, 2, 11115, 11116, 7, 90, 2, 2, 11116, 11117, 7, 86, 2, 2, 11117, 1880, 3, 2, 2, 2, 11118, 11119, 7, 85, 2, 2, 11119, 11120, 7, 86, 2, 2, 11120, 11121, 7, 97, 2, 2, 11121, 11122, 7, 78, 2, 2, 11122, 11123, 7, 75, 2, 2, 11123, 11124, 7, 80, 2, 2, 11124, 11125, 7, 71, 2, 2, 11125, 11126, 7, 85, 2, 2, 11126, 11127, 7, 86, 2, 2, 11127, 11128, 7, 84, 2, 2, 11128, 11129, 7, 75, 2, 2, 11129, 11130, 7, 80, 2, 2, 11130, 11131, 7, 73, 2, 2, 11131, 11132, 7, 72, 2, 2, 11132, 11133, 7, 84, 2, 2, 11133, 11134, 7, 81, 2, 2, 11134, 11135, 7, 79, 2, 2, 11135, 11136, 7, 89, 2, 2, 11136, 11137, 7, 77, 2, 2, 11137, 11138, 7, 68, 2, 2, 11138, 1882, 3, 2, 2, 2, 11139, 11140, 7, 85, 2, 2, 11140, 11141, 7, 86, 2, 2, 11141, 11142, 7, 97, 2, 2, 11142, 11143, 7, 80, 2, 2, 11143, 11144, 7, 87, 2, 2, 11144, 11145, 7, 79, 2, 2, 11145, 11146, 7, 73, 2, 2, 11146, 11147, 7, 71, 2, 2, 11147, 11148, 7, 81, 2, 2, 11148, 11149, 7, 79, 2, 2, 11149, 11150, 7, 71, 2, 2, 11150, 11151, 7, 86, 2, 2, 11151, 11152, 7, 84, 2, 2, 11152, 11153, 7, 75, 2, 2, 11153, 11154, 7, 71, 2, 2, 11154, 11155, 7, 85, 2, 2, 11155, 1884, 3, 2, 2, 2, 11156, 11157, 7, 85, 2, 2, 11157, 11158, 7, 86, 2, 2, 11158, 11159, 7, 97, 2, 2, 11159, 11160, 7, 80, 2, 2, 11160, 11161, 7, 87, 2, 2, 11161, 11162, 7, 79, 2, 2, 11162, 11163, 7, 75, 2, 2, 11163, 11164, 7, 80, 2, 2, 11164, 11165, 7, 86, 2, 2, 11165, 11166, 7, 71, 2, 2, 11166, 11167, 7, 84, 2, 2, 11167, 11168, 7, 75, 2, 2, 11168, 11169, 7, 81, 2, 2, 11169, 11170, 7, 84, 2, 2, 11170, 11171, 7, 84, 2, 2, 11171, 11172, 7, 75, 2, 2, 11172, 11173, 7, 80, 2, 2, 11173, 11174, 7, 73, 2, 2, 11174, 1886, 3, 2, 2, 2, 11175, 11176, 7, 85, 2, 2, 11176, 11177, 7, 86, 2, 2, 11177, 11178, 7, 97, 2, 2, 11178, 11179, 7, 80, 2, 2, 11179, 11180, 7, 87, 2, 2, 11180, 11181, 7, 79, 2, 2, 11181, 11182, 7, 75, 2, 2, 11182, 11183, 7, 80, 2, 2, 11183, 11184, 7, 86, 2, 2, 11184, 11185, 7, 71, 2, 2, 11185, 11186, 7, 84, 2, 2, 11186, 11187, 7, 75, 2, 2, 11187, 11188, 7, 81, 2, 2, 11188, 11189, 7, 84, 2, 2, 11189, 11190, 7, 84, 2, 2, 11190, 11191, 7, 75, 2, 2, 11191, 11192, 7, 80, 2, 2, 11192, 11193, 7, 73, 2, 2, 11193, 11194, 7, 85, 2, 2, 11194, 1888, 3, 2, 2, 2, 11195, 11196, 7, 85, 2, 2, 11196, 11197, 7, 86, 2, 2, 11197, 11198, 7, 97, 2, 2, 11198, 11199, 7, 80, 2, 2, 11199, 11200, 7, 87, 2, 2, 11200, 11201, 7, 79, 2, 2, 11201, 11202, 7, 82, 2, 2, 11202, 11203, 7, 81, 2, 2, 11203, 11204, 7, 75, 2, 2, 11204, 11205, 7, 80, 2, 2, 11205, 11206, 7, 86, 2, 2, 11206, 11207, 7, 85, 2, 2, 11207, 1890, 3, 2, 2, 2, 11208, 11209, 7, 85, 2, 2, 11209, 11210, 7, 86, 2, 2, 11210, 11211, 7, 97, 2, 2, 11211, 11212, 7, 81, 2, 2, 11212, 11213, 7, 88, 2, 2, 11213, 11214, 7, 71, 2, 2, 11214, 11215, 7, 84, 2, 2, 11215, 11216, 7, 78, 2, 2, 11216, 11217, 7, 67, 2, 2, 11217, 11218, 7, 82, 2, 2, 11218, 11219, 7, 85, 2, 2, 11219, 1892, 3, 2, 2, 2, 11220, 11221, 7, 85, 2, 2, 11221, 11222, 7, 86, 2, 2, 11222, 11223, 7, 97, 2, 2, 11223, 11224, 7, 82, 2, 2, 11224, 11225, 7, 81, 2, 2, 11225, 11226, 7, 75, 2, 2, 11226, 11227, 7, 80, 2, 2, 11227, 11228, 7, 86, 2, 2, 11228, 11229, 7, 72, 2, 2, 11229, 11230, 7, 84, 2, 2, 11230, 11231, 7, 81, 2, 2, 11231, 11232, 7, 79, 2, 2, 11232, 11233, 7, 86, 2, 2, 11233, 11234, 7, 71, 2, 2, 11234, 11235, 7, 90, 2, 2, 11235, 11236, 7, 86, 2, 2, 11236, 1894, 3, 2, 2, 2, 11237, 11238, 7, 85, 2, 2, 11238, 11239, 7, 86, 2, 2, 11239, 11240, 7, 97, 2, 2, 11240, 11241, 7, 82, 2, 2, 11241, 11242, 7, 81, 2, 2, 11242, 11243, 7, 75, 2, 2, 11243, 11244, 7, 80, 2, 2, 11244, 11245, 7, 86, 2, 2, 11245, 11246, 7, 72, 2, 2, 11246, 11247, 7, 84, 2, 2, 11247, 11248, 7, 81, 2, 2, 11248, 11249, 7, 79, 2, 2, 11249, 11250, 7, 89, 2, 2, 11250, 11251, 7, 77, 2, 2, 11251, 11252, 7, 68, 2, 2, 11252, 1896, 3, 2, 2, 2, 11253, 11254, 7, 85, 2, 2, 11254, 11255, 7, 86, 2, 2, 11255, 11256, 7, 97, 2, 2, 11256, 11257, 7, 82, 2, 2, 11257, 11258, 7, 81, 2, 2, 11258, 11259, 7, 75, 2, 2, 11259, 11260, 7, 80, 2, 2, 11260, 11261, 7, 86, 2, 2, 11261, 11262, 7, 80, 2, 2, 11262, 1898, 3, 2, 2, 2, 11263, 11264, 7, 85, 2, 2, 11264, 11265, 7, 86, 2, 2, 11265, 11266, 7, 97, 2, 2, 11266, 11267, 7, 82, 2, 2, 11267, 11268, 7, 81, 2, 2, 11268, 11269, 7, 78, 2, 2, 11269, 11270, 7, 91, 2, 2, 11270, 11271, 7, 72, 2, 2, 11271, 11272, 7, 84, 2, 2, 11272, 11273, 7, 81, 2, 2, 11273, 11274, 7, 79, 2, 2, 11274, 11275, 7, 86, 2, 2, 11275, 11276, 7, 71, 2, 2, 11276, 11277, 7, 90, 2, 2, 11277, 11278, 7, 86, 2, 2, 11278, 1900, 3, 2, 2, 2, 11279, 11280, 7, 85, 2, 2, 11280, 11281, 7, 86, 2, 2, 11281, 11282, 7, 97, 2, 2, 11282, 11283, 7, 82, 2, 2, 11283, 11284, 7, 81, 2, 2, 11284, 11285, 7, 78, 2, 2, 11285, 11286, 7, 91, 2, 2, 11286, 11287, 7, 72, 2, 2, 11287, 11288, 7, 84, 2, 2, 11288, 11289, 7, 81, 2, 2, 11289, 11290, 7, 79, 2, 2, 11290, 11291, 7, 89, 2, 2, 11291, 11292, 7, 77, 2, 2, 11292, 11293, 7, 68, 2, 2, 11293, 1902, 3, 2, 2, 2, 11294, 11295, 7, 85, 2, 2, 11295, 11296, 7, 86, 2, 2, 11296, 11297, 7, 97, 2, 2, 11297, 11298, 7, 82, 2, 2, 11298, 11299, 7, 81, 2, 2, 11299, 11300, 7, 78, 2, 2, 11300, 11301, 7, 91, 2, 2, 11301, 11302, 7, 73, 2, 2, 11302, 11303, 7, 81, 2, 2, 11303, 11304, 7, 80, 2, 2, 11304, 11305, 7, 72, 2, 2, 11305, 11306, 7, 84, 2, 2, 11306, 11307, 7, 81, 2, 2, 11307, 11308, 7, 79, 2, 2, 11308, 11309, 7, 86, 2, 2, 11309, 11310, 7, 71, 2, 2, 11310, 11311, 7, 90, 2, 2, 11311, 11312, 7, 86, 2, 2, 11312, 1904, 3, 2, 2, 2, 11313, 11314, 7, 85, 2, 2, 11314, 11315, 7, 86, 2, 2, 11315, 11316, 7, 97, 2, 2, 11316, 11317, 7, 82, 2, 2, 11317, 11318, 7, 81, 2, 2, 11318, 11319, 7, 78, 2, 2, 11319, 11320, 7, 91, 2, 2, 11320, 11321, 7, 73, 2, 2, 11321, 11322, 7, 81, 2, 2, 11322, 11323, 7, 80, 2, 2, 11323, 11324, 7, 72, 2, 2, 11324, 11325, 7, 84, 2, 2, 11325, 11326, 7, 81, 2, 2, 11326, 11327, 7, 79, 2, 2, 11327, 11328, 7, 89, 2, 2, 11328, 11329, 7, 77, 2, 2, 11329, 11330, 7, 68, 2, 2, 11330, 1906, 3, 2, 2, 2, 11331, 11332, 7, 85, 2, 2, 11332, 11333, 7, 86, 2, 2, 11333, 11334, 7, 97, 2, 2, 11334, 11335, 7, 85, 2, 2, 11335, 11336, 7, 84, 2, 2, 11336, 11337, 7, 75, 2, 2, 11337, 11338, 7, 70, 2, 2, 11338, 1908, 3, 2, 2, 2, 11339, 11340, 7, 85, 2, 2, 11340, 11341, 7, 86, 2, 2, 11341, 11342, 7, 97, 2, 2, 11342, 11343, 7, 85, 2, 2, 11343, 11344, 7, 86, 2, 2, 11344, 11345, 7, 67, 2, 2, 11345, 11346, 7, 84, 2, 2, 11346, 11347, 7, 86, 2, 2, 11347, 11348, 7, 82, 2, 2, 11348, 11349, 7, 81, 2, 2, 11349, 11350, 7, 75, 2, 2, 11350, 11351, 7, 80, 2, 2, 11351, 11352, 7, 86, 2, 2, 11352, 1910, 3, 2, 2, 2, 11353, 11354, 7, 85, 2, 2, 11354, 11355, 7, 86, 2, 2, 11355, 11356, 7, 97, 2, 2, 11356, 11357, 7, 85, 2, 2, 11357, 11358, 7, 91, 2, 2, 11358, 11359, 7, 79, 2, 2, 11359, 11360, 7, 70, 2, 2, 11360, 11361, 7, 75, 2, 2, 11361, 11362, 7, 72, 2, 2, 11362, 11363, 7, 72, 2, 2, 11363, 11364, 7, 71, 2, 2, 11364, 11365, 7, 84, 2, 2, 11365, 11366, 7, 71, 2, 2, 11366, 11367, 7, 80, 2, 2, 11367, 11368, 7, 69, 2, 2, 11368, 11369, 7, 71, 2, 2, 11369, 1912, 3, 2, 2, 2, 11370, 11371, 7, 85, 2, 2, 11371, 11372, 7, 86, 2, 2, 11372, 11373, 7, 97, 2, 2, 11373, 11374, 7, 86, 2, 2, 11374, 11375, 7, 81, 2, 2, 11375, 11376, 7, 87, 2, 2, 11376, 11377, 7, 69, 2, 2, 11377, 11378, 7, 74, 2, 2, 11378, 11379, 7, 71, 2, 2, 11379, 11380, 7, 85, 2, 2, 11380, 1914, 3, 2, 2, 2, 11381, 11382, 7, 85, 2, 2, 11382, 11383, 7, 86, 2, 2, 11383, 11384, 7, 97, 2, 2, 11384, 11385, 7, 87, 2, 2, 11385, 11386, 7, 80, 2, 2, 11386, 11387, 7, 75, 2, 2, 11387, 11388, 7, 81, 2, 2, 11388, 11389, 7, 80, 2, 2, 11389, 1916, 3, 2, 2, 2, 11390, 11391, 7, 85, 2, 2, 11391, 11392, 7, 86, 2, 2, 11392, 11393, 7, 97, 2, 2, 11393, 11394, 7, 89, 2, 2, 11394, 11395, 7, 75, 2, 2, 11395, 11396, 7, 86, 2, 2, 11396, 11397, 7, 74, 2, 2, 11397, 11398, 7, 75, 2, 2, 11398, 11399, 7, 80, 2, 2, 11399, 1918, 3, 2, 2, 2, 11400, 11401, 7, 85, 2, 2, 11401, 11402, 7, 86, 2, 2, 11402, 11403, 7, 97, 2, 2, 11403, 11404, 7, 90, 2, 2, 11404, 1920, 3, 2, 2, 2, 11405, 11406, 7, 85, 2, 2, 11406, 11407, 7, 86, 2, 2, 11407, 11408, 7, 97, 2, 2, 11408, 11409, 7, 91, 2, 2, 11409, 1922, 3, 2, 2, 2, 11410, 11411, 7, 85, 2, 2, 11411, 11412, 7, 87, 2, 2, 11412, 11413, 7, 68, 2, 2, 11413, 11414, 7, 70, 2, 2, 11414, 11415, 7, 67, 2, 2, 11415, 11416, 7, 86, 2, 2, 11416, 11417, 7, 71, 2, 2, 11417, 1924, 3, 2, 2, 2, 11418, 11419, 7, 85, 2, 2, 11419, 11420, 7, 87, 2, 2, 11420, 11421, 7, 68, 2, 2, 11421, 11422, 7, 85, 2, 2, 11422, 11423, 7, 86, 2, 2, 11423, 11424, 7, 84, 2, 2, 11424, 11425, 7, 75, 2, 2, 11425, 11426, 7, 80, 2, 2, 11426, 11427, 7, 73, 2, 2, 11427, 11428, 7, 97, 2, 2, 11428, 11429, 7, 75, 2, 2, 11429, 11430, 7, 80, 2, 2, 11430, 11431, 7, 70, 2, 2, 11431, 11432, 7, 71, 2, 2, 11432, 11433, 7, 90, 2, 2, 11433, 1926, 3, 2, 2, 2, 11434, 11435, 7, 85, 2, 2, 11435, 11436, 7, 87, 2, 2, 11436, 11437, 7, 68, 2, 2, 11437, 11438, 7, 86, 2, 2, 11438, 11439, 7, 75, 2, 2, 11439, 11440, 7, 79, 2, 2, 11440, 11441, 7, 71, 2, 2, 11441, 1928, 3, 2, 2, 2, 11442, 11443, 7, 85, 2, 2, 11443, 11444, 7, 91, 2, 2, 11444, 11445, 7, 85, 2, 2, 11445, 11446, 7, 86, 2, 2, 11446, 11447, 7, 71, 2, 2, 11447, 11448, 7, 79, 2, 2, 11448, 11449, 7, 97, 2, 2, 11449, 11450, 7, 87, 2, 2, 11450, 11451, 7, 85, 2, 2, 11451, 11452, 7, 71, 2, 2, 11452, 11453, 7, 84, 2, 2, 11453, 1930, 3, 2, 2, 2, 11454, 11455, 7, 86, 2, 2, 11455, 11456, 7, 67, 2, 2, 11456, 11457, 7, 80, 2, 2, 11457, 1932, 3, 2, 2, 2, 11458, 11459, 7, 86, 2, 2, 11459, 11460, 7, 75, 2, 2, 11460, 11461, 7, 79, 2, 2, 11461, 11462, 7, 71, 2, 2, 11462, 11463, 7, 70, 2, 2, 11463, 11464, 7, 75, 2, 2, 11464, 11465, 7, 72, 2, 2, 11465, 11466, 7, 72, 2, 2, 11466, 1934, 3, 2, 2, 2, 11467, 11468, 7, 86, 2, 2, 11468, 11469, 7, 75, 2, 2, 11469, 11470, 7, 79, 2, 2, 11470, 11471, 7, 71, 2, 2, 11471, 11472, 7, 85, 2, 2, 11472, 11473, 7, 86, 2, 2, 11473, 11474, 7, 67, 2, 2, 11474, 11475, 7, 79, 2, 2, 11475, 11476, 7, 82, 2, 2, 11476, 11477, 7, 67, 2, 2, 11477, 11478, 7, 70, 2, 2, 11478, 11479, 7, 70, 2, 2, 11479, 1936, 3, 2, 2, 2, 11480, 11481, 7, 86, 2, 2, 11481, 11482, 7, 75, 2, 2, 11482, 11483, 7, 79, 2, 2, 11483, 11484, 7, 71, 2, 2, 11484, 11485, 7, 85, 2, 2, 11485, 11486, 7, 86, 2, 2, 11486, 11487, 7, 67, 2, 2, 11487, 11488, 7, 79, 2, 2, 11488, 11489, 7, 82, 2, 2, 11489, 11490, 7, 70, 2, 2, 11490, 11491, 7, 75, 2, 2, 11491, 11492, 7, 72, 2, 2, 11492, 11493, 7, 72, 2, 2, 11493, 1938, 3, 2, 2, 2, 11494, 11495, 7, 86, 2, 2, 11495, 11496, 7, 75, 2, 2, 11496, 11497, 7, 79, 2, 2, 11497, 11498, 7, 71, 2, 2, 11498, 11499, 7, 97, 2, 2, 11499, 11500, 7, 72, 2, 2, 11500, 11501, 7, 81, 2, 2, 11501, 11502, 7, 84, 2, 2, 11502, 11503, 7, 79, 2, 2, 11503, 11504, 7, 67, 2, 2, 11504, 11505, 7, 86, 2, 2, 11505, 1940, 3, 2, 2, 2, 11506, 11507, 7, 86, 2, 2, 11507, 11508, 7, 75, 2, 2, 11508, 11509, 7, 79, 2, 2, 11509, 11510, 7, 71, 2, 2, 11510, 11511, 7, 97, 2, 2, 11511, 11512, 7, 86, 2, 2, 11512, 11513, 7, 81, 2, 2, 11513, 11514, 7, 97, 2, 2, 11514, 11515, 7, 85, 2, 2, 11515, 11516, 7, 71, 2, 2, 11516, 11517, 7, 69, 2, 2, 11517, 1942, 3, 2, 2, 2, 11518, 11519, 7, 86, 2, 2, 11519, 11520, 7, 81, 2, 2, 11520, 11521, 7, 87, 2, 2, 11521, 11522, 7, 69, 2, 2, 11522, 11523, 7, 74, 2, 2, 11523, 11524, 7, 71, 2, 2, 11524, 11525, 7, 85, 2, 2, 11525, 1944, 3, 2, 2, 2, 11526, 11527, 7, 86, 2, 2, 11527, 11528, 7, 81, 2, 2, 11528, 11529, 7, 97, 2, 2, 11529, 11530, 7, 68, 2, 2, 11530, 11531, 7, 67, 2, 2, 11531, 11532, 7, 85, 2, 2, 11532, 11533, 7, 71, 2, 2, 11533, 11534, 7, 56, 2, 2, 11534, 11535, 7, 54, 2, 2, 11535, 1946, 3, 2, 2, 2, 11536, 11537, 7, 86, 2, 2, 11537, 11538, 7, 81, 2, 2, 11538, 11539, 7, 97, 2, 2, 11539, 11540, 7, 70, 2, 2, 11540, 11541, 7, 67, 2, 2, 11541, 11542, 7, 91, 2, 2, 11542, 11543, 7, 85, 2, 2, 11543, 1948, 3, 2, 2, 2, 11544, 11545, 7, 86, 2, 2, 11545, 11546, 7, 81, 2, 2, 11546, 11547, 7, 97, 2, 2, 11547, 11548, 7, 85, 2, 2, 11548, 11549, 7, 71, 2, 2, 11549, 11550, 7, 69, 2, 2, 11550, 11551, 7, 81, 2, 2, 11551, 11552, 7, 80, 2, 2, 11552, 11553, 7, 70, 2, 2, 11553, 11554, 7, 85, 2, 2, 11554, 1950, 3, 2, 2, 2, 11555, 11556, 7, 87, 2, 2, 11556, 11557, 7, 69, 2, 2, 11557, 11558, 7, 67, 2, 2, 11558, 11559, 7, 85, 2, 2, 11559, 11560, 7, 71, 2, 2, 11560, 1952, 3, 2, 2, 2, 11561, 11562, 7, 87, 2, 2, 11562, 11563, 7, 80, 2, 2, 11563, 11564, 7, 69, 2, 2, 11564, 11565, 7, 81, 2, 2, 11565, 11566, 7, 79, 2, 2, 11566, 11567, 7, 82, 2, 2, 11567, 11568, 7, 84, 2, 2, 11568, 11569, 7, 71, 2, 2, 11569, 11570, 7, 85, 2, 2, 11570, 11571, 7, 85, 2, 2, 11571, 1954, 3, 2, 2, 2, 11572, 11573, 7, 87, 2, 2, 11573, 11574, 7, 80, 2, 2, 11574, 11575, 7, 69, 2, 2, 11575, 11576, 7, 81, 2, 2, 11576, 11577, 7, 79, 2, 2, 11577, 11578, 7, 82, 2, 2, 11578, 11579, 7, 84, 2, 2, 11579, 11580, 7, 71, 2, 2, 11580, 11581, 7, 85, 2, 2, 11581, 11582, 7, 85, 2, 2, 11582, 11583, 7, 71, 2, 2, 11583, 11584, 7, 70, 2, 2, 11584, 11585, 7, 97, 2, 2, 11585, 11586, 7, 78, 2, 2, 11586, 11587, 7, 71, 2, 2, 11587, 11588, 7, 80, 2, 2, 11588, 11589, 7, 73, 2, 2, 11589, 11590, 7, 86, 2, 2, 11590, 11591, 7, 74, 2, 2, 11591, 1956, 3, 2, 2, 2, 11592, 11593, 7, 87, 2, 2, 11593, 11594, 7, 80, 2, 2, 11594, 11595, 7, 74, 2, 2, 11595, 11596, 7, 71, 2, 2, 11596, 11597, 7, 90, 2, 2, 11597, 1958, 3, 2, 2, 2, 11598, 11599, 7, 87, 2, 2, 11599, 11600, 7, 80, 2, 2, 11600, 11601, 7, 75, 2, 2, 11601, 11602, 7, 90, 2, 2, 11602, 11603, 7, 97, 2, 2, 11603, 11604, 7, 86, 2, 2, 11604, 11605, 7, 75, 2, 2, 11605, 11606, 7, 79, 2, 2, 11606, 11607, 7, 71, 2, 2, 11607, 11608, 7, 85, 2, 2, 11608, 11609, 7, 86, 2, 2, 11609, 11610, 7, 67, 2, 2, 11610, 11611, 7, 79, 2, 2, 11611, 11612, 7, 82, 2, 2, 11612, 1960, 3, 2, 2, 2, 11613, 11614, 7, 87, 2, 2, 11614, 11615, 7, 82, 2, 2, 11615, 11616, 7, 70, 2, 2, 11616, 11617, 7, 67, 2, 2, 11617, 11618, 7, 86, 2, 2, 11618, 11619, 7, 71, 2, 2, 11619, 11620, 7, 90, 2, 2, 11620, 11621, 7, 79, 2, 2, 11621, 11622, 7, 78, 2, 2, 11622, 1962, 3, 2, 2, 2, 11623, 11624, 7, 87, 2, 2, 11624, 11625, 7, 82, 2, 2, 11625, 11626, 7, 82, 2, 2, 11626, 11627, 7, 71, 2, 2, 11627, 11628, 7, 84, 2, 2, 11628, 1964, 3, 2, 2, 2, 11629, 11630, 7, 87, 2, 2, 11630, 11631, 7, 87, 2, 2, 11631, 11632, 7, 75, 2, 2, 11632, 11633, 7, 70, 2, 2, 11633, 1966, 3, 2, 2, 2, 11634, 11635, 7, 87, 2, 2, 11635, 11636, 7, 87, 2, 2, 11636, 11637, 7, 75, 2, 2, 11637, 11638, 7, 70, 2, 2, 11638, 11639, 7, 97, 2, 2, 11639, 11640, 7, 85, 2, 2, 11640, 11641, 7, 74, 2, 2, 11641, 11642, 7, 81, 2, 2, 11642, 11643, 7, 84, 2, 2, 11643, 11644, 7, 86, 2, 2, 11644, 1968, 3, 2, 2, 2, 11645, 11646, 7, 88, 2, 2, 11646, 11647, 7, 67, 2, 2, 11647, 11648, 7, 78, 2, 2, 11648, 11649, 7, 75, 2, 2, 11649, 11650, 7, 70, 2, 2, 11650, 11651, 7, 67, 2, 2, 11651, 11652, 7, 86, 2, 2, 11652, 11653, 7, 71, 2, 2, 11653, 11654, 7, 97, 2, 2, 11654, 11655, 7, 82, 2, 2, 11655, 11656, 7, 67, 2, 2, 11656, 11657, 7, 85, 2, 2, 11657, 11658, 7, 85, 2, 2, 11658, 11659, 7, 89, 2, 2, 11659, 11660, 7, 81, 2, 2, 11660, 11661, 7, 84, 2, 2, 11661, 11662, 7, 70, 2, 2, 11662, 11663, 7, 97, 2, 2, 11663, 11664, 7, 85, 2, 2, 11664, 11665, 7, 86, 2, 2, 11665, 11666, 7, 84, 2, 2, 11666, 11667, 7, 71, 2, 2, 11667, 11668, 7, 80, 2, 2, 11668, 11669, 7, 73, 2, 2, 11669, 11670, 7, 86, 2, 2, 11670, 11671, 7, 74, 2, 2, 11671, 1970, 3, 2, 2, 2, 11672, 11673, 7, 88, 2, 2, 11673, 11674, 7, 71, 2, 2, 11674, 11675, 7, 84, 2, 2, 11675, 11676, 7, 85, 2, 2, 11676, 11677, 7, 75, 2, 2, 11677, 11678, 7, 81, 2, 2, 11678, 11679, 7, 80, 2, 2, 11679, 1972, 3, 2, 2, 2, 11680, 11681, 7, 89, 2, 2, 11681, 11682, 7, 67, 2, 2, 11682, 11683, 7, 75, 2, 2, 11683, 11684, 7, 86, 2, 2, 11684, 11685, 7, 97, 2, 2, 11685, 11686, 7, 87, 2, 2, 11686, 11687, 7, 80, 2, 2, 11687, 11688, 7, 86, 2, 2, 11688, 11689, 7, 75, 2, 2, 11689, 11690, 7, 78, 2, 2, 11690, 11691, 7, 97, 2, 2, 11691, 11692, 7, 85, 2, 2, 11692, 11693, 7, 83, 2, 2, 11693, 11694, 7, 78, 2, 2, 11694, 11695, 7, 97, 2, 2, 11695, 11696, 7, 86, 2, 2, 11696, 11697, 7, 74, 2, 2, 11697, 11698, 7, 84, 2, 2, 11698, 11699, 7, 71, 2, 2, 11699, 11700, 7, 67, 2, 2, 11700, 11701, 7, 70, 2, 2, 11701, 11702, 7, 97, 2, 2, 11702, 11703, 7, 67, 2, 2, 11703, 11704, 7, 72, 2, 2, 11704, 11705, 7, 86, 2, 2, 11705, 11706, 7, 71, 2, 2, 11706, 11707, 7, 84, 2, 2, 11707, 11708, 7, 97, 2, 2, 11708, 11709, 7, 73, 2, 2, 11709, 11710, 7, 86, 2, 2, 11710, 11711, 7, 75, 2, 2, 11711, 11712, 7, 70, 2, 2, 11712, 11713, 7, 85, 2, 2, 11713, 1974, 3, 2, 2, 2, 11714, 11715, 7, 89, 2, 2, 11715, 11716, 7, 71, 2, 2, 11716, 11717, 7, 71, 2, 2, 11717, 11718, 7, 77, 2, 2, 11718, 11719, 7, 70, 2, 2, 11719, 11720, 7, 67, 2, 2, 11720, 11721, 7, 91, 2, 2, 11721, 1976, 3, 2, 2, 2, 11722, 11723, 7, 89, 2, 2, 11723, 11724, 7, 71, 2, 2, 11724, 11725, 7, 71, 2, 2, 11725, 11726, 7, 77, 2, 2, 11726, 11727, 7, 81, 2, 2, 11727, 11728, 7, 72, 2, 2, 11728, 11729, 7, 91, 2, 2, 11729, 11730, 7, 71, 2, 2, 11730, 11731, 7, 67, 2, 2, 11731, 11732, 7, 84, 2, 2, 11732, 1978, 3, 2, 2, 2, 11733, 11734, 7, 89, 2, 2, 11734, 11735, 7, 71, 2, 2, 11735, 11736, 7, 75, 2, 2, 11736, 11737, 7, 73, 2, 2, 11737, 11738, 7, 74, 2, 2, 11738, 11739, 7, 86, 2, 2, 11739, 11740, 7, 97, 2, 2, 11740, 11741, 7, 85, 2, 2, 11741, 11742, 7, 86, 2, 2, 11742, 11743, 7, 84, 2, 2, 11743, 11744, 7, 75, 2, 2, 11744, 11745, 7, 80, 2, 2, 11745, 11746, 7, 73, 2, 2, 11746, 1980, 3, 2, 2, 2, 11747, 11748, 7, 89, 2, 2, 11748, 11749, 7, 75, 2, 2, 11749, 11750, 7, 86, 2, 2, 11750, 11751, 7, 74, 2, 2, 11751, 11752, 7, 75, 2, 2, 11752, 11753, 7, 80, 2, 2, 11753, 1982, 3, 2, 2, 2, 11754, 11755, 7, 91, 2, 2, 11755, 11756, 7, 71, 2, 2, 11756, 11757, 7, 67, 2, 2, 11757, 11758, 7, 84, 2, 2, 11758, 11759, 7, 89, 2, 2, 11759, 11760, 7, 71, 2, 2, 11760, 11761, 7, 71, 2, 2, 11761, 11762, 7, 77, 2, 2, 11762, 1984, 3, 2, 2, 2, 11763, 11764, 7, 91, 2, 2, 11764, 1986, 3, 2, 2, 2, 11765, 11766, 7, 90, 2, 2, 11766, 1988, 3, 2, 2, 2, 11767, 11768, 7, 60, 2, 2, 11768, 11769, 7, 63, 2, 2, 11769, 1990, 3, 2, 2, 2, 11770, 11771, 7, 45, 2, 2, 11771, 11772, 7, 63, 2, 2, 11772, 1992, 3, 2, 2, 2, 11773, 11774, 7, 47, 2, 2, 11774, 11775, 7, 63, 2, 2, 11775, 1994, 3, 2, 2, 2, 11776, 11777, 7, 44, 2, 2, 11777, 11778, 7, 63, 2, 2, 11778, 1996, 3, 2, 2, 2, 11779, 11780, 7, 49, 2, 2, 11780, 11781, 7, 63, 2, 2, 11781, 1998, 3, 2, 2, 2, 11782, 11783, 7, 39, 2, 2, 11783, 11784, 7, 63, 2, 2, 11784, 2000, 3, 2, 2, 2, 11785, 11786, 7, 40, 2, 2, 11786, 11787, 7, 63, 2, 2, 11787, 2002, 3, 2, 2, 2, 11788, 11789, 7, 96, 2, 2, 11789, 11790, 7, 63, 2, 2, 11790, 2004, 3, 2, 2, 2, 11791, 11792, 7, 126, 2, 2, 11792, 11793, 7, 63, 2, 2, 11793, 2006, 3, 2, 2, 2, 11794, 11795, 7, 44, 2, 2, 11795, 2008, 3, 2, 2, 2, 11796, 11797, 7, 49, 2, 2, 11797, 2010, 3, 2, 2, 2, 11798, 11799, 7, 39, 2, 2, 11799, 2012, 3, 2, 2, 2, 11800, 11801, 7, 45, 2, 2, 11801, 2014, 3, 2, 2, 2, 11802, 11803, 7, 47, 2, 2, 11803, 11804, 7, 47, 2, 2, 11804, 2016, 3, 2, 2, 2, 11805, 11806, 7, 47, 2, 2, 11806, 2018, 3, 2, 2, 2, 11807, 11808, 7, 70, 2, 2, 11808, 11809, 7, 75, 2, 2, 11809, 11810, 7, 88, 2, 2, 11810, 2020, 3, 2, 2, 2, 11811, 11812, 7, 79, 2, 2, 11812, 11813, 7, 81, 2, 2, 11813, 11814, 7, 70, 2, 2, 11814, 2022, 3, 2, 2, 2, 11815, 11816, 7, 63, 2, 2, 11816, 2024, 3, 2, 2, 2, 11817, 11818, 7, 64, 2, 2, 11818, 2026, 3, 2, 2, 2, 11819, 11820, 7, 62, 2, 2, 11820, 2028, 3, 2, 2, 2, 11821, 11822, 7, 35, 2, 2, 11822, 2030, 3, 2, 2, 2, 11823, 11824, 7, 128, 2, 2, 11824, 2032, 3, 2, 2, 2, 11825, 11826, 7, 126, 2, 2, 11826, 2034, 3, 2, 2, 2, 11827, 11828, 7, 40, 2, 2, 11828, 2036, 3, 2, 2, 2, 11829, 11830, 7, 96, 2, 2, 11830, 2038, 3, 2, 2, 2, 11831, 11832, 7, 48, 2, 2, 11832, 2040, 3, 2, 2, 2, 11833, 11834, 7, 42, 2, 2, 11834, 2042, 3, 2, 2, 2, 11835, 11836, 7, 43, 2, 2, 11836, 2044, 3, 2, 2, 2, 11837, 11838, 7, 46, 2, 2, 11838, 2046, 3, 2, 2, 2, 11839, 11840, 7, 61, 2, 2, 11840, 2048, 3, 2, 2, 2, 11841, 11842, 7, 66, 2, 2, 11842, 2050, 3, 2, 2, 2, 11843, 11844, 7, 50, 2, 2, 11844, 2052, 3, 2, 2, 2, 11845, 11846, 7, 51, 2, 2, 11846, 2054, 3, 2, 2, 2, 11847, 11848, 7, 52, 2, 2, 11848, 2056, 3, 2, 2, 2, 11849, 11850, 7, 41, 2, 2, 11850, 2058, 3, 2, 2, 2, 11851, 11852, 7, 36, 2, 2, 11852, 2060, 3, 2, 2, 2, 11853, 11854, 7, 98, 2, 2, 11854, 2062, 3, 2, 2, 2, 11855, 11856, 7, 60, 2, 2, 11856, 2064, 3, 2, 2, 2, 11857, 11861, 5, 2057, 1029, 2, 11858, 11861, 5, 2059, 1030, 2, 11859, 11861, 5, 2061, 1031, 2, 11860, 11857, 3, 2, 2, 2, 11860, 11858, 3, 2, 2, 2, 11860, 11859, 3, 2, 2, 2, 11861, 2066, 3, 2, 2, 2, 11862, 11863, 7, 98, 2, 2, 11863, 11864, 5, 2099, 1050, 2, 11864, 11865, 7, 98, 2, 2, 11865, 2068, 3, 2, 2, 2, 11866, 11868, 5, 2113, 1057, 2, 11867, 11866, 3, 2, 2, 2, 11868, 11869, 3, 2, 2, 2, 11869, 11867, 3, 2, 2, 2, 11869, 11870, 3, 2, 2, 2, 11870, 11871, 3, 2, 2, 2, 11871, 11872, 9, 4, 2, 2, 11872, 2070, 3, 2, 2, 2, 11873, 11874, 7, 80, 2, 2, 11874, 11875, 5, 2107, 1054, 2, 11875, 2072, 3, 2, 2, 2, 11876, 11880, 5, 2105, 1053, 2, 11877, 11880, 5, 2107, 1054, 2, 11878, 11880, 5, 2109, 1055, 2, 11879, 11876, 3, 2, 2, 2, 11879, 11877, 3, 2, 2, 2, 11879, 11878, 3, 2, 2, 2, 11880, 2074, 3, 2, 2, 2, 11881, 11883, 5, 2113, 1057, 2, 11882, 11881, 3, 2, 2, 2, 11883, 11884, 3, 2, 2, 2, 11884, 11882, 3, 2, 2, 2, 11884, 11885, 3, 2, 2, 2, 11885, 2076, 3, 2, 2, 2, 11886, 11887, 7, 90, 2, 2, 11887, 11891, 7, 41, 2, 2, 11888, 11889, 5, 2111, 1056, 2, 11889, 11890, 5, 2111, 1056, 2, 11890, 11892, 3, 2, 2, 2, 11891, 11888, 3, 2, 2, 2, 11892, 11893, 3, 2, 2, 2, 11893, 11891, 3, 2, 2, 2, 11893, 11894, 3, 2, 2, 2, 11894, 11895, 3, 2, 2, 2, 11895, 11896, 7, 41, 2, 2, 11896, 11906, 3, 2, 2, 2, 11897, 11898, 7, 50, 2, 2, 11898, 11899, 7, 90, 2, 2, 11899, 11901, 3, 2, 2, 2, 11900, 11902, 5, 2111, 1056, 2, 11901, 11900, 3, 2, 2, 2, 11902, 11903, 3, 2, 2, 2, 11903, 11901, 3, 2, 2, 2, 11903, 11904, 3, 2, 2, 2, 11904, 11906, 3, 2, 2, 2, 11905, 11886, 3, 2, 2, 2, 11905, 11897, 3, 2, 2, 2, 11906, 2078, 3, 2, 2, 2, 11907, 11909, 5, 2113, 1057, 2, 11908, 11907, 3, 2, 2, 2, 11909, 11910, 3, 2, 2, 2, 11910, 11908, 3, 2, 2, 2, 11910, 11911, 3, 2, 2, 2, 11911, 11913, 3, 2, 2, 2, 11912, 11908, 3, 2, 2, 2, 11912, 11913, 3, 2, 2, 2, 11913, 11914, 3, 2, 2, 2, 11914, 11916, 7, 48, 2, 2, 11915, 11917, 5, 2113, 1057, 2, 11916, 11915, 3, 2, 2, 2, 11917, 11918, 3, 2, 2, 2, 11918, 11916, 3, 2, 2, 2, 11918, 11919, 3, 2, 2, 2, 11919, 11951, 3, 2, 2, 2, 11920, 11922, 5, 2113, 1057, 2, 11921, 11920, 3, 2, 2, 2, 11922, 11923, 3, 2, 2, 2, 11923, 11921, 3, 2, 2, 2, 11923, 11924, 3, 2, 2, 2, 11924, 11925, 3, 2, 2, 2, 11925, 11926, 7, 48, 2, 2, 11926, 11927, 5, 2101, 1051, 2, 11927, 11951, 3, 2, 2, 2, 11928, 11930, 5, 2113, 1057, 2, 11929, 11928, 3, 2, 2, 2, 11930, 11931, 3, 2, 2, 2, 11931, 11929, 3, 2, 2, 2, 11931, 11932, 3, 2, 2, 2, 11932, 11934, 3, 2, 2, 2, 11933, 11929, 3, 2, 2, 2, 11933, 11934, 3, 2, 2, 2, 11934, 11935, 3, 2, 2, 2, 11935, 11937, 7, 48, 2, 2, 11936, 11938, 5, 2113, 1057, 2, 11937, 11936, 3, 2, 2, 2, 11938, 11939, 3, 2, 2, 2, 11939, 11937, 3, 2, 2, 2, 11939, 11940, 3, 2, 2, 2, 11940, 11941, 3, 2, 2, 2, 11941, 11942, 5, 2101, 1051, 2, 11942, 11951, 3, 2, 2, 2, 11943, 11945, 5, 2113, 1057, 2, 11944, 11943, 3, 2, 2, 2, 11945, 11946, 3, 2, 2, 2, 11946, 11944, 3, 2, 2, 2, 11946, 11947, 3, 2, 2, 2, 11947, 11948, 3, 2, 2, 2, 11948, 11949, 5, 2101, 1051, 2, 11949, 11951, 3, 2, 2, 2, 11950, 11912, 3, 2, 2, 2, 11950, 11921, 3, 2, 2, 2, 11950, 11933, 3, 2, 2, 2, 11950, 11944, 3, 2, 2, 2, 11951, 2080, 3, 2, 2, 2, 11952, 11953, 7, 94, 2, 2, 11953, 11954, 7, 80, 2, 2, 11954, 2082, 3, 2, 2, 2, 11955, 11956, 5, 2115, 1058, 2, 11956, 2084, 3, 2, 2, 2, 11957, 11958, 7, 97, 2, 2, 11958, 11959, 5, 2099, 1050, 2, 11959, 2086, 3, 2, 2, 2, 11960, 11961, 7, 48, 2, 2, 11961, 11962, 5, 2103, 1052, 2, 11962, 2088, 3, 2, 2, 2, 11963, 11964, 5, 2103, 1052, 2, 11964, 2090, 3, 2, 2, 2, 11965, 11967, 7, 98, 2, 2, 11966, 11968, 10, 5, 2, 2, 11967, 11966, 3, 2, 2, 2, 11968, 11969, 3, 2, 2, 2, 11969, 11967, 3, 2, 2, 2, 11969, 11970, 3, 2, 2, 2, 11970, 11971, 3, 2, 2, 2, 11971, 11972, 7, 98, 2, 2, 11972, 2092, 3, 2, 2, 2, 11973, 11978, 5, 2107, 1054, 2, 11974, 11978, 5, 2105, 1053, 2, 11975, 11978, 5, 2109, 1055, 2, 11976, 11978, 5, 2103, 1052, 2, 11977, 11973, 3, 2, 2, 2, 11977, 11974, 3, 2, 2, 2, 11977, 11975, 3, 2, 2, 2, 11977, 11976, 3, 2, 2, 2, 11978, 11979, 3, 2, 2, 2, 11979, 11984, 7, 66, 2, 2, 11980, 11985, 5, 2107, 1054, 2, 11981, 11985, 5, 2105, 1053, 2, 11982, 11985, 5, 2109, 1055, 2, 11983, 11985, 5, 2103, 1052, 2, 11984, 11980, 3, 2, 2, 2, 11984, 11981, 3, 2, 2, 2, 11984, 11982, 3, 2, 2, 2, 11984, 11983, 3, 2, 2, 2, 11985, 2094, 3, 2, 2, 2, 11986, 11995, 7, 66, 2, 2, 11987, 11989, 9, 6, 2, 2, 11988, 11987, 3, 2, 2, 2, 11989, 11990, 3, 2, 2, 2, 11990, 11988, 3, 2, 2, 2, 11990, 11991, 3, 2, 2, 2, 11991, 11996, 3, 2, 2, 2, 11992, 11996, 5, 2107, 1054, 2, 11993, 11996, 5, 2105, 1053, 2, 11994, 11996, 5, 2109, 1055, 2, 11995, 11988, 3, 2, 2, 2, 11995, 11992, 3, 2, 2, 2, 11995, 11993, 3, 2, 2, 2, 11995, 11994, 3, 2, 2, 2, 11996, 2096, 3, 2, 2, 2, 11997, 11998, 7, 66, 2, 2, 11998, 12005, 7, 66, 2, 2, 11999, 12001, 9, 6, 2, 2, 12000, 11999, 3, 2, 2, 2, 12001, 12002, 3, 2, 2, 2, 12002, 12000, 3, 2, 2, 2, 12002, 12003, 3, 2, 2, 2, 12003, 12006, 3, 2, 2, 2, 12004, 12006, 5, 2109, 1055, 2, 12005, 12000, 3, 2, 2, 2, 12005, 12004, 3, 2, 2, 2, 12006, 2098, 3, 2, 2, 2, 12007, 12049, 5, 1275, 638, 2, 12008, 12049, 5, 1277, 639, 2, 12009, 12049, 5, 1279, 640, 2, 12010, 12049, 5, 417, 209, 2, 12011, 12049, 5, 1281, 641, 2, 12012, 12049, 5, 1283, 642, 2, 12013, 12049, 5, 1285, 643, 2, 12014, 12049, 5, 1287, 644, 2, 12015, 12049, 5, 1289, 645, 2, 12016, 12049, 5, 1291, 646, 2, 12017, 12049, 5, 1293, 647, 2, 12018, 12049, 5, 1295, 648, 2, 12019, 12049, 5, 1297, 649, 2, 12020, 12049, 5, 1299, 650, 2, 12021, 12049, 5, 1301, 651, 2, 12022, 12049, 5, 1303, 652, 2, 12023, 12049, 5, 1305, 653, 2, 12024, 12049, 5, 1307, 654, 2, 12025, 12049, 5, 1309, 655, 2, 12026, 12049, 5, 1311, 656, 2, 12027, 12049, 5, 1313, 657, 2, 12028, 12049, 5, 1315, 658, 2, 12029, 12049, 5, 1317, 659, 2, 12030, 12049, 5, 1319, 660, 2, 12031, 12049, 5, 1321, 661, 2, 12032, 12049, 5, 1323, 662, 2, 12033, 12049, 5, 1325, 663, 2, 12034, 12049, 5, 1327, 664, 2, 12035, 12049, 5, 1329, 665, 2, 12036, 12049, 5, 1331, 666, 2, 12037, 12049, 5, 1333, 667, 2, 12038, 12049, 5, 1335, 668, 2, 12039, 12049, 5, 1337, 669, 2, 12040, 12049, 5, 1339, 670, 2, 12041, 12049, 5, 1341, 671, 2, 12042, 12049, 5, 1343, 672, 2, 12043, 12049, 5, 1345, 673, 2, 12044, 12049, 5, 1347, 674, 2, 12045, 12049, 5, 1349, 675, 2, 12046, 12049, 5, 1351, 676, 2, 12047, 12049, 5, 1353, 677, 2, 12048, 12007, 3, 2, 2, 2, 12048, 12008, 3, 2, 2, 2, 12048, 12009, 3, 2, 2, 2, 12048, 12010, 3, 2, 2, 2, 12048, 12011, 3, 2, 2, 2, 12048, 12012, 3, 2, 2, 2, 12048, 12013, 3, 2, 2, 2, 12048, 12014, 3, 2, 2, 2, 12048, 12015, 3, 2, 2, 2, 12048, 12016, 3, 2, 2, 2, 12048, 12017, 3, 2, 2, 2, 12048, 12018, 3, 2, 2, 2, 12048, 12019, 3, 2, 2, 2, 12048, 12020, 3, 2, 2, 2, 12048, 12021, 3, 2, 2, 2, 12048, 12022, 3, 2, 2, 2, 12048, 12023, 3, 2, 2, 2, 12048, 12024, 3, 2, 2, 2, 12048, 12025, 3, 2, 2, 2, 12048, 12026, 3, 2, 2, 2, 12048, 12027, 3, 2, 2, 2, 12048, 12028, 3, 2, 2, 2, 12048, 12029, 3, 2, 2, 2, 12048, 12030, 3, 2, 2, 2, 12048, 12031, 3, 2, 2, 2, 12048, 12032, 3, 2, 2, 2, 12048, 12033, 3, 2, 2, 2, 12048, 12034, 3, 2, 2, 2, 12048, 12035, 3, 2, 2, 2, 12048, 12036, 3, 2, 2, 2, 12048, 12037, 3, 2, 2, 2, 12048, 12038, 3, 2, 2, 2, 12048, 12039, 3, 2, 2, 2, 12048, 12040, 3, 2, 2, 2, 12048, 12041, 3, 2, 2, 2, 12048, 12042, 3, 2, 2, 2, 12048, 12043, 3, 2, 2, 2, 12048, 12044, 3, 2, 2, 2, 12048, 12045, 3, 2, 2, 2, 12048, 12046, 3, 2, 2, 2, 12048, 12047, 3, 2, 2, 2, 12049, 2100, 3, 2, 2, 2, 12050, 12052, 7, 71, 2, 2, 12051, 12053, 9, 7, 2, 2, 12052, 12051, 3, 2, 2, 2, 12052, 12053, 3, 2, 2, 2, 12053, 12055, 3, 2, 2, 2, 12054, 12056, 5, 2113, 1057, 2, 12055, 12054, 3, 2, 2, 2, 12056, 12057, 3, 2, 2, 2, 12057, 12055, 3, 2, 2, 2, 12057, 12058, 3, 2, 2, 2, 12058, 2102, 3, 2, 2, 2, 12059, 12061, 9, 8, 2, 2, 12060, 12059, 3, 2, 2, 2, 12061, 12064, 3, 2, 2, 2, 12062, 12063, 3, 2, 2, 2, 12062, 12060, 3, 2, 2, 2, 12063, 12066, 3, 2, 2, 2, 12064, 12062, 3, 2, 2, 2, 12065, 12067, 9, 9, 2, 2, 12066, 12065, 3, 2, 2, 2, 12067, 12068, 3, 2, 2, 2, 12068, 12069, 3, 2, 2, 2, 12068, 12066, 3, 2, 2, 2, 12069, 12073, 3, 2, 2, 2, 12070, 12072, 9, 8, 2, 2, 12071, 12070, 3, 2, 2, 2, 12072, 12075, 3, 2, 2, 2, 12073, 12071, 3, 2, 2, 2, 12073, 12074, 3, 2, 2, 2, 12074, 2104, 3, 2, 2, 2, 12075, 12073, 3, 2, 2, 2, 12076, 12084, 7, 36, 2, 2, 12077, 12078, 7, 94, 2, 2, 12078, 12083, 11, 2, 2, 2, 12079, 12080, 7, 36, 2, 2, 12080, 12083, 7, 36, 2, 2, 12081, 12083, 10, 10, 2, 2, 12082, 12077, 3, 2, 2, 2, 12082, 12079, 3, 2, 2, 2, 12082, 12081, 3, 2, 2, 2, 12083, 12086, 3, 2, 2, 2, 12084, 12082, 3, 2, 2, 2, 12084, 12085, 3, 2, 2, 2, 12085, 12087, 3, 2, 2, 2, 12086, 12084, 3, 2, 2, 2, 12087, 12088, 7, 36, 2, 2, 12088, 2106, 3, 2, 2, 2, 12089, 12097, 7, 41, 2, 2, 12090, 12091, 7, 94, 2, 2, 12091, 12096, 11, 2, 2, 2, 12092, 12093, 7, 41, 2, 2, 12093, 12096, 7, 41, 2, 2, 12094, 12096, 10, 11, 2, 2, 12095, 12090, 3, 2, 2, 2, 12095, 12092, 3, 2, 2, 2, 12095, 12094, 3, 2, 2, 2, 12096, 12099, 3, 2, 2, 2, 12097, 12095, 3, 2, 2, 2, 12097, 12098, 3, 2, 2, 2, 12098, 12100, 3, 2, 2, 2, 12099, 12097, 3, 2, 2, 2, 12100, 12101, 7, 41, 2, 2, 12101, 2108, 3, 2, 2, 2, 12102, 12110, 7, 98, 2, 2, 12103, 12104, 7, 94, 2, 2, 12104, 12109, 11, 2, 2, 2, 12105, 12106, 7, 98, 2, 2, 12106, 12109, 7, 98, 2, 2, 12107, 12109, 10, 12, 2, 2, 12108, 12103, 3, 2, 2, 2, 12108, 12105, 3, 2, 2, 2, 12108, 12107, 3, 2, 2, 2, 12109, 12112, 3, 2, 2, 2, 12110, 12108, 3, 2, 2, 2, 12110, 12111, 3, 2, 2, 2, 12111, 12113, 3, 2, 2, 2, 12112, 12110, 3, 2, 2, 2, 12113, 12114, 7, 98, 2, 2, 12114, 2110, 3, 2, 2, 2, 12115, 12116, 9, 13, 2, 2, 12116, 2112, 3, 2, 2, 2, 12117, 12118, 9, 14, 2, 2, 12118, 2114, 3, 2, 2, 2, 12119, 12120, 7, 68, 2, 2, 12120, 12122, 7, 41, 2, 2, 12121, 12123, 9, 15, 2, 2, 12122, 12121, 3, 2, 2, 2, 12123, 12124, 3, 2, 2, 2, 12124, 12122, 3, 2, 2, 2, 12124, 12125, 3, 2, 2, 2, 12125, 12126, 3, 2, 2, 2, 12126, 12127, 7, 41, 2, 2, 12127, 2116, 3, 2, 2, 2, 12128, 12129, 11, 2, 2, 2, 12129, 12130, 3, 2, 2, 2, 12130, 12131, 8, 1059, 4, 2, 12131, 2118, 3, 2, 2, 2, 51, 2, 2122, 2133, 2146, 2157, 2162, 2166, 2170, 2176, 2180, 2182, 7798, 7825, 11860, 11869, 11879, 11884, 11893, 11903, 11905, 11910, 11912, 11918, 11923, 11931, 11933, 11939, 11946, 11950, 11969, 11977, 11984, 11990, 11995, 12002, 12005, 12048, 12052, 12057, 12062, 12068, 12073, 12082, 12084, 12095, 12097, 12108, 12110, 12124, 5, 2, 3, 2, 2, 4, 2, 2, 5, 2] \ No newline at end of file diff --git a/src/lib/generic/SqlLexer.tokens b/src/lib/generic/SqlLexer.tokens deleted file mode 100644 index 57b4669..0000000 --- a/src/lib/generic/SqlLexer.tokens +++ /dev/null @@ -1,2074 +0,0 @@ -SPACE=1 -SPEC_MYSQL_COMMENT=2 -COMMENT_INPUT=3 -LINE_COMMENT=4 -ADD=5 -ALL=6 -ALTER=7 -ALWAYS=8 -ANALYZE=9 -AND=10 -AS=11 -ASC=12 -BEFORE=13 -BETWEEN=14 -BOTH=15 -BY=16 -CALL=17 -CASCADE=18 -CASE=19 -CAST=20 -CHANGE=21 -CHARACTER=22 -CHECK=23 -COLLATE=24 -COLUMN=25 -CONDITION=26 -CONSTRAINT=27 -CONTINUE=28 -CONVERT=29 -CREATE=30 -CROSS=31 -CURRENT=32 -CURRENT_USER=33 -CURSOR=34 -DATABASE=35 -DATABASES=36 -DECLARE=37 -DEFAULT=38 -DELAYED=39 -DELETE=40 -DESC=41 -DESCRIBE=42 -DETERMINISTIC=43 -DIAGNOSTICS=44 -DISTINCT=45 -DISTINCTROW=46 -DROP=47 -EACH=48 -ELSE=49 -ELSEIF=50 -ENCLOSED=51 -ESCAPED=52 -EXISTS=53 -EXIT=54 -EXPLAIN=55 -FALSE=56 -FETCH=57 -FOR=58 -FORCE=59 -FOREIGN=60 -FROM=61 -FULLTEXT=62 -GENERATED=63 -GET=64 -GRANT=65 -GROUP=66 -HAVING=67 -HIGH_PRIORITY=68 -IF=69 -IGNORE=70 -IN=71 -INDEX=72 -INFILE=73 -INNER=74 -INOUT=75 -INSERT=76 -INTERVAL=77 -INTO=78 -IS=79 -ITERATE=80 -JOIN=81 -KEY=82 -KEYS=83 -KILL=84 -LEADING=85 -LEAVE=86 -LEFT=87 -LIKE=88 -LIMIT=89 -LINEAR=90 -LINES=91 -LOAD=92 -LOCK=93 -LOOP=94 -LOW_PRIORITY=95 -MASTER_BIND=96 -MASTER_SSL_VERIFY_SERVER_CERT=97 -MATCH=98 -MAXVALUE=99 -MODIFIES=100 -NATURAL=101 -NOT=102 -NO_WRITE_TO_BINLOG=103 -NULL_LITERAL=104 -NUMBER=105 -ON=106 -OPTIMIZE=107 -OPTION=108 -OPTIONALLY=109 -OR=110 -ORDER=111 -OUT=112 -OUTER=113 -OUTFILE=114 -PARTITION=115 -PRIMARY=116 -PROCEDURE=117 -PURGE=118 -RANGE=119 -READ=120 -READS=121 -REFERENCES=122 -REGEXP=123 -RELEASE=124 -RENAME=125 -REPEAT=126 -REPLACE=127 -REQUIRE=128 -RESIGNAL=129 -RESTRICT=130 -RETURN=131 -REVOKE=132 -RIGHT=133 -RLIKE=134 -SCHEMA=135 -SCHEMAS=136 -SELECT=137 -SET=138 -SEPARATOR=139 -SHOW=140 -SIGNAL=141 -SPATIAL=142 -SQL=143 -SQLEXCEPTION=144 -SQLSTATE=145 -SQLWARNING=146 -SQL_BIG_RESULT=147 -SQL_CALC_FOUND_ROWS=148 -SQL_SMALL_RESULT=149 -SSL=150 -STACKED=151 -STARTING=152 -STRAIGHT_JOIN=153 -TABLE=154 -TERMINATED=155 -THEN=156 -TO=157 -TRAILING=158 -TRIGGER=159 -TRUE=160 -UNDO=161 -UNION=162 -UNIQUE=163 -UNLOCK=164 -UNSIGNED=165 -UPDATE=166 -USAGE=167 -USE=168 -USING=169 -VALUES=170 -WHEN=171 -WHERE=172 -WHILE=173 -WITH=174 -WRITE=175 -XOR=176 -ZEROFILL=177 -TINYINT=178 -SMALLINT=179 -MEDIUMINT=180 -MIDDLEINT=181 -INT=182 -INT1=183 -INT2=184 -INT3=185 -INT4=186 -INT8=187 -INTEGER=188 -BIGINT=189 -REAL=190 -DOUBLE=191 -PRECISION=192 -FLOAT=193 -FLOAT4=194 -FLOAT8=195 -DECIMAL=196 -DEC=197 -NUMERIC=198 -DATE=199 -TIME=200 -TIMESTAMP=201 -DATETIME=202 -YEAR=203 -CHAR=204 -VARCHAR=205 -NVARCHAR=206 -NATIONAL=207 -BINARY=208 -VARBINARY=209 -TINYBLOB=210 -BLOB=211 -MEDIUMBLOB=212 -LONG=213 -LONGBLOB=214 -TINYTEXT=215 -TEXT=216 -MEDIUMTEXT=217 -LONGTEXT=218 -ENUM=219 -VARYING=220 -SERIAL=221 -YEAR_MONTH=222 -DAY_HOUR=223 -DAY_MINUTE=224 -DAY_SECOND=225 -HOUR_MINUTE=226 -HOUR_SECOND=227 -MINUTE_SECOND=228 -SECOND_MICROSECOND=229 -MINUTE_MICROSECOND=230 -HOUR_MICROSECOND=231 -DAY_MICROSECOND=232 -JSON_VALID=233 -JSON_SCHEMA_VALID=234 -AVG=235 -BIT_AND=236 -BIT_OR=237 -BIT_XOR=238 -COUNT=239 -GROUP_CONCAT=240 -MAX=241 -MIN=242 -STD=243 -STDDEV=244 -STDDEV_POP=245 -STDDEV_SAMP=246 -SUM=247 -VAR_POP=248 -VAR_SAMP=249 -VARIANCE=250 -CURRENT_DATE=251 -CURRENT_TIME=252 -CURRENT_TIMESTAMP=253 -LOCALTIME=254 -CURDATE=255 -CURTIME=256 -DATE_ADD=257 -DATE_SUB=258 -EXTRACT=259 -LOCALTIMESTAMP=260 -NOW=261 -POSITION=262 -SUBSTR=263 -SUBSTRING=264 -SYSDATE=265 -TRIM=266 -UTC_DATE=267 -UTC_TIME=268 -UTC_TIMESTAMP=269 -ACCOUNT=270 -ACTION=271 -AFTER=272 -AGGREGATE=273 -ALGORITHM=274 -ANY=275 -AT=276 -AUTHORS=277 -AUTOCOMMIT=278 -AUTOEXTEND_SIZE=279 -AUTO_INCREMENT=280 -AVG_ROW_LENGTH=281 -BEGIN=282 -BINLOG=283 -BIT=284 -BLOCK=285 -BOOL=286 -BOOLEAN=287 -BTREE=288 -CACHE=289 -CASCADED=290 -CHAIN=291 -CHANGED=292 -CHANNEL=293 -CHECKSUM=294 -PAGE_CHECKSUM=295 -CIPHER=296 -CLASS_ORIGIN=297 -CLIENT=298 -CLOSE=299 -COALESCE=300 -CODE=301 -COLUMNS=302 -COLUMN_FORMAT=303 -COLUMN_NAME=304 -COMMENT=305 -COMMIT=306 -COMPACT=307 -COMPLETION=308 -COMPRESSED=309 -COMPRESSION=310 -CONCURRENT=311 -CONNECTION=312 -CONSISTENT=313 -CONSTRAINT_CATALOG=314 -CONSTRAINT_SCHEMA=315 -CONSTRAINT_NAME=316 -CONTAINS=317 -CONTEXT=318 -CONTRIBUTORS=319 -COPY=320 -CPU=321 -CURSOR_NAME=322 -DATA=323 -DATAFILE=324 -DEALLOCATE=325 -DEFAULT_AUTH=326 -DEFINER=327 -DELAY_KEY_WRITE=328 -DES_KEY_FILE=329 -DIRECTORY=330 -DISABLE=331 -DISCARD=332 -DISK=333 -DO=334 -DUMPFILE=335 -DUPLICATE=336 -DYNAMIC=337 -ENABLE=338 -ENCRYPTION=339 -END=340 -ENDS=341 -ENGINE=342 -ENGINES=343 -ERROR=344 -ERRORS=345 -ESCAPE=346 -EVEN=347 -EVENT=348 -EVENTS=349 -EVERY=350 -EXCHANGE=351 -EXCLUSIVE=352 -EXPIRE=353 -EXPORT=354 -EXTENDED=355 -EXTENT_SIZE=356 -FAST=357 -FAULTS=358 -FIELDS=359 -FILE_BLOCK_SIZE=360 -FILTER=361 -FIRST=362 -FIXED=363 -FLUSH=364 -FOLLOWS=365 -FOUND=366 -FULL=367 -FUNCTION=368 -GENERAL=369 -GLOBAL=370 -GRANTS=371 -GROUP_REPLICATION=372 -HANDLER=373 -HASH=374 -HELP=375 -HOST=376 -HOSTS=377 -IDENTIFIED=378 -IGNORE_SERVER_IDS=379 -IMPORT=380 -INDEXES=381 -INITIAL_SIZE=382 -INPLACE=383 -INSERT_METHOD=384 -INSTALL=385 -INSTANCE=386 -INVISIBLE=387 -INVOKER=388 -IO=389 -IO_THREAD=390 -IPC=391 -ISOLATION=392 -ISSUER=393 -JSON=394 -KEY_BLOCK_SIZE=395 -LANGUAGE=396 -LAST=397 -LEAVES=398 -LESS=399 -LEVEL=400 -LIST=401 -LOCAL=402 -LOGFILE=403 -LOGS=404 -MASTER=405 -MASTER_AUTO_POSITION=406 -MASTER_CONNECT_RETRY=407 -MASTER_DELAY=408 -MASTER_HEARTBEAT_PERIOD=409 -MASTER_HOST=410 -MASTER_LOG_FILE=411 -MASTER_LOG_POS=412 -MASTER_PASSWORD=413 -MASTER_PORT=414 -MASTER_RETRY_COUNT=415 -MASTER_SSL=416 -MASTER_SSL_CA=417 -MASTER_SSL_CAPATH=418 -MASTER_SSL_CERT=419 -MASTER_SSL_CIPHER=420 -MASTER_SSL_CRL=421 -MASTER_SSL_CRLPATH=422 -MASTER_SSL_KEY=423 -MASTER_TLS_VERSION=424 -MASTER_USER=425 -MAX_CONNECTIONS_PER_HOUR=426 -MAX_QUERIES_PER_HOUR=427 -MAX_ROWS=428 -MAX_SIZE=429 -MAX_UPDATES_PER_HOUR=430 -MAX_USER_CONNECTIONS=431 -MEDIUM=432 -MERGE=433 -MESSAGE_TEXT=434 -MID=435 -MIGRATE=436 -MIN_ROWS=437 -MODE=438 -MODIFY=439 -MUTEX=440 -MYSQL=441 -MYSQL_ERRNO=442 -NAME=443 -NAMES=444 -NCHAR=445 -NEVER=446 -NEXT=447 -NO=448 -NODEGROUP=449 -NONE=450 -OFFLINE=451 -OFFSET=452 -OJ=453 -OLD_PASSWORD=454 -ONE=455 -ONLINE=456 -ONLY=457 -OPEN=458 -OPTIMIZER_COSTS=459 -OPTIONS=460 -OWNER=461 -PACK_KEYS=462 -PAGE=463 -PARSER=464 -PARTIAL=465 -PARTITIONING=466 -PARTITIONS=467 -PASSWORD=468 -PHASE=469 -PLUGIN=470 -PLUGIN_DIR=471 -PLUGINS=472 -PORT=473 -PRECEDES=474 -PREPARE=475 -PRESERVE=476 -PREV=477 -PROCESSLIST=478 -PROFILE=479 -PROFILES=480 -PROXY=481 -QUERY=482 -QUICK=483 -REBUILD=484 -RECOVER=485 -REDO_BUFFER_SIZE=486 -REDUNDANT=487 -RELAY=488 -RELAY_LOG_FILE=489 -RELAY_LOG_POS=490 -RELAYLOG=491 -REMOVE=492 -REORGANIZE=493 -REPAIR=494 -REPLICATE_DO_DB=495 -REPLICATE_DO_TABLE=496 -REPLICATE_IGNORE_DB=497 -REPLICATE_IGNORE_TABLE=498 -REPLICATE_REWRITE_DB=499 -REPLICATE_WILD_DO_TABLE=500 -REPLICATE_WILD_IGNORE_TABLE=501 -REPLICATION=502 -RESET=503 -RESUME=504 -RETURNED_SQLSTATE=505 -RETURNS=506 -ROLE=507 -ROLLBACK=508 -ROLLUP=509 -ROTATE=510 -ROW=511 -ROWS=512 -ROW_FORMAT=513 -SAVEPOINT=514 -SCHEDULE=515 -SECURITY=516 -SERVER=517 -SESSION=518 -SHARE=519 -SHARED=520 -SIGNED=521 -SIMPLE=522 -SLAVE=523 -SLOW=524 -SNAPSHOT=525 -SOCKET=526 -SOME=527 -SONAME=528 -SOUNDS=529 -SOURCE=530 -SQL_AFTER_GTIDS=531 -SQL_AFTER_MTS_GAPS=532 -SQL_BEFORE_GTIDS=533 -SQL_BUFFER_RESULT=534 -SQL_CACHE=535 -SQL_NO_CACHE=536 -SQL_THREAD=537 -START=538 -STARTS=539 -STATS_AUTO_RECALC=540 -STATS_PERSISTENT=541 -STATS_SAMPLE_PAGES=542 -STATUS=543 -STOP=544 -STORAGE=545 -STORED=546 -STRING=547 -SUBCLASS_ORIGIN=548 -SUBJECT=549 -SUBPARTITION=550 -SUBPARTITIONS=551 -SUSPEND=552 -SWAPS=553 -SWITCHES=554 -TABLE_NAME=555 -TABLESPACE=556 -TEMPORARY=557 -TEMPTABLE=558 -THAN=559 -TRADITIONAL=560 -TRANSACTION=561 -TRANSACTIONAL=562 -TRIGGERS=563 -TRUNCATE=564 -UNDEFINED=565 -UNDOFILE=566 -UNDO_BUFFER_SIZE=567 -UNINSTALL=568 -UNKNOWN=569 -UNTIL=570 -UPGRADE=571 -USER=572 -USE_FRM=573 -USER_RESOURCES=574 -VALIDATION=575 -VALUE=576 -VARIABLES=577 -VIEW=578 -VIRTUAL=579 -VISIBLE=580 -WAIT=581 -WARNINGS=582 -WITHOUT=583 -WORK=584 -WRAPPER=585 -X509=586 -XA=587 -XML=588 -EUR=589 -USA=590 -JIS=591 -ISO=592 -INTERNAL=593 -QUARTER=594 -MONTH=595 -DAY=596 -HOUR=597 -MINUTE=598 -WEEK=599 -SECOND=600 -MICROSECOND=601 -TABLES=602 -ROUTINE=603 -EXECUTE=604 -FILE=605 -PROCESS=606 -RELOAD=607 -SHUTDOWN=608 -SUPER=609 -PRIVILEGES=610 -APPLICATION_PASSWORD_ADMIN=611 -AUDIT_ADMIN=612 -BACKUP_ADMIN=613 -BINLOG_ADMIN=614 -BINLOG_ENCRYPTION_ADMIN=615 -CLONE_ADMIN=616 -CONNECTION_ADMIN=617 -ENCRYPTION_KEY_ADMIN=618 -FIREWALL_ADMIN=619 -FIREWALL_USER=620 -GROUP_REPLICATION_ADMIN=621 -INNODB_REDO_LOG_ARCHIVE=622 -NDB_STORED_USER=623 -PERSIST_RO_VARIABLES_ADMIN=624 -REPLICATION_APPLIER=625 -REPLICATION_SLAVE_ADMIN=626 -RESOURCE_GROUP_ADMIN=627 -RESOURCE_GROUP_USER=628 -ROLE_ADMIN=629 -SESSION_VARIABLES_ADMIN=630 -SET_USER_ID=631 -SHOW_ROUTINE=632 -SYSTEM_VARIABLES_ADMIN=633 -TABLE_ENCRYPTION_ADMIN=634 -VERSION_TOKEN_ADMIN=635 -XA_RECOVER_ADMIN=636 -ARMSCII8=637 -ASCII=638 -BIG5=639 -CP1250=640 -CP1251=641 -CP1256=642 -CP1257=643 -CP850=644 -CP852=645 -CP866=646 -CP932=647 -DEC8=648 -EUCJPMS=649 -EUCKR=650 -GB2312=651 -GBK=652 -GEOSTD8=653 -GREEK=654 -HEBREW=655 -HP8=656 -KEYBCS2=657 -KOI8R=658 -KOI8U=659 -LATIN1=660 -LATIN2=661 -LATIN5=662 -LATIN7=663 -MACCE=664 -MACROMAN=665 -SJIS=666 -SWE7=667 -TIS620=668 -UCS2=669 -UJIS=670 -UTF16=671 -UTF16LE=672 -UTF32=673 -UTF8=674 -UTF8MB3=675 -UTF8MB4=676 -ARCHIVE=677 -BLACKHOLE=678 -CSV=679 -FEDERATED=680 -INNODB=681 -MEMORY=682 -MRG_MYISAM=683 -MYISAM=684 -NDB=685 -NDBCLUSTER=686 -PERFORMANCE_SCHEMA=687 -TOKUDB=688 -REPEATABLE=689 -COMMITTED=690 -UNCOMMITTED=691 -SERIALIZABLE=692 -GEOMETRYCOLLECTION=693 -GEOMCOLLECTION=694 -GEOMETRY=695 -LINESTRING=696 -MULTILINESTRING=697 -MULTIPOINT=698 -MULTIPOLYGON=699 -POINT=700 -POLYGON=701 -ABS=702 -ACOS=703 -ADDDATE=704 -ADDTIME=705 -AES_DECRYPT=706 -AES_ENCRYPT=707 -AREA=708 -ASBINARY=709 -ASIN=710 -ASTEXT=711 -ASWKB=712 -ASWKT=713 -ASYMMETRIC_DECRYPT=714 -ASYMMETRIC_DERIVE=715 -ASYMMETRIC_ENCRYPT=716 -ASYMMETRIC_SIGN=717 -ASYMMETRIC_VERIFY=718 -ATAN=719 -ATAN2=720 -BENCHMARK=721 -BIN=722 -BIT_COUNT=723 -BIT_LENGTH=724 -BUFFER=725 -CATALOG_NAME=726 -CEIL=727 -CEILING=728 -CENTROID=729 -CHARACTER_LENGTH=730 -CHARSET=731 -CHAR_LENGTH=732 -COERCIBILITY=733 -COLLATION=734 -COMPRESS=735 -CONCAT=736 -CONCAT_WS=737 -CONNECTION_ID=738 -CONV=739 -CONVERT_TZ=740 -COS=741 -COT=742 -CRC32=743 -CREATE_ASYMMETRIC_PRIV_KEY=744 -CREATE_ASYMMETRIC_PUB_KEY=745 -CREATE_DH_PARAMETERS=746 -CREATE_DIGEST=747 -CROSSES=748 -DATEDIFF=749 -DATE_FORMAT=750 -DAYNAME=751 -DAYOFMONTH=752 -DAYOFWEEK=753 -DAYOFYEAR=754 -DECODE=755 -DEGREES=756 -DES_DECRYPT=757 -DES_ENCRYPT=758 -DIMENSION=759 -DISJOINT=760 -ELT=761 -ENCODE=762 -ENCRYPT=763 -ENDPOINT=764 -ENVELOPE=765 -EQUALS=766 -EXP=767 -EXPORT_SET=768 -EXTERIORRING=769 -EXTRACTVALUE=770 -FIELD=771 -FIND_IN_SET=772 -FLOOR=773 -FORMAT=774 -FOUND_ROWS=775 -FROM_BASE64=776 -FROM_DAYS=777 -FROM_UNIXTIME=778 -GEOMCOLLFROMTEXT=779 -GEOMCOLLFROMWKB=780 -GEOMETRYCOLLECTIONFROMTEXT=781 -GEOMETRYCOLLECTIONFROMWKB=782 -GEOMETRYFROMTEXT=783 -GEOMETRYFROMWKB=784 -GEOMETRYN=785 -GEOMETRYTYPE=786 -GEOMFROMTEXT=787 -GEOMFROMWKB=788 -GET_FORMAT=789 -GET_LOCK=790 -GLENGTH=791 -GREATEST=792 -GTID_SUBSET=793 -GTID_SUBTRACT=794 -HEX=795 -IFNULL=796 -INET6_ATON=797 -INET6_NTOA=798 -INET_ATON=799 -INET_NTOA=800 -INSTR=801 -INTERIORRINGN=802 -INTERSECTS=803 -ISCLOSED=804 -ISEMPTY=805 -ISNULL=806 -ISSIMPLE=807 -IS_FREE_LOCK=808 -IS_IPV4=809 -IS_IPV4_COMPAT=810 -IS_IPV4_MAPPED=811 -IS_IPV6=812 -IS_USED_LOCK=813 -LAST_INSERT_ID=814 -LCASE=815 -LEAST=816 -LENGTH=817 -LINEFROMTEXT=818 -LINEFROMWKB=819 -LINESTRINGFROMTEXT=820 -LINESTRINGFROMWKB=821 -LN=822 -LOAD_FILE=823 -LOCATE=824 -LOG=825 -LOG10=826 -LOG2=827 -LOWER=828 -LPAD=829 -LTRIM=830 -MAKEDATE=831 -MAKETIME=832 -MAKE_SET=833 -MASTER_POS_WAIT=834 -MBRCONTAINS=835 -MBRDISJOINT=836 -MBREQUAL=837 -MBRINTERSECTS=838 -MBROVERLAPS=839 -MBRTOUCHES=840 -MBRWITHIN=841 -MD5=842 -MLINEFROMTEXT=843 -MLINEFROMWKB=844 -MONTHNAME=845 -MPOINTFROMTEXT=846 -MPOINTFROMWKB=847 -MPOLYFROMTEXT=848 -MPOLYFROMWKB=849 -MULTILINESTRINGFROMTEXT=850 -MULTILINESTRINGFROMWKB=851 -MULTIPOINTFROMTEXT=852 -MULTIPOINTFROMWKB=853 -MULTIPOLYGONFROMTEXT=854 -MULTIPOLYGONFROMWKB=855 -NAME_CONST=856 -NULLIF=857 -NUMGEOMETRIES=858 -NUMINTERIORRINGS=859 -NUMPOINTS=860 -OCT=861 -OCTET_LENGTH=862 -ORD=863 -OVERLAPS=864 -PERIOD_ADD=865 -PERIOD_DIFF=866 -PI=867 -POINTFROMTEXT=868 -POINTFROMWKB=869 -POINTN=870 -POLYFROMTEXT=871 -POLYFROMWKB=872 -POLYGONFROMTEXT=873 -POLYGONFROMWKB=874 -POW=875 -POWER=876 -QUOTE=877 -RADIANS=878 -RAND=879 -RANDOM_BYTES=880 -RELEASE_LOCK=881 -REVERSE=882 -ROUND=883 -ROW_COUNT=884 -RPAD=885 -RTRIM=886 -SEC_TO_TIME=887 -SESSION_USER=888 -SHA=889 -SHA1=890 -SHA2=891 -SCHEMA_NAME=892 -SIGN=893 -SIN=894 -SLEEP=895 -SOUNDEX=896 -SQL_THREAD_WAIT_AFTER_GTIDS=897 -SQRT=898 -SRID=899 -STARTPOINT=900 -STRCMP=901 -STR_TO_DATE=902 -ST_AREA=903 -ST_ASBINARY=904 -ST_ASTEXT=905 -ST_ASWKB=906 -ST_ASWKT=907 -ST_BUFFER=908 -ST_CENTROID=909 -ST_CONTAINS=910 -ST_CROSSES=911 -ST_DIFFERENCE=912 -ST_DIMENSION=913 -ST_DISJOINT=914 -ST_DISTANCE=915 -ST_ENDPOINT=916 -ST_ENVELOPE=917 -ST_EQUALS=918 -ST_EXTERIORRING=919 -ST_GEOMCOLLFROMTEXT=920 -ST_GEOMCOLLFROMTXT=921 -ST_GEOMCOLLFROMWKB=922 -ST_GEOMETRYCOLLECTIONFROMTEXT=923 -ST_GEOMETRYCOLLECTIONFROMWKB=924 -ST_GEOMETRYFROMTEXT=925 -ST_GEOMETRYFROMWKB=926 -ST_GEOMETRYN=927 -ST_GEOMETRYTYPE=928 -ST_GEOMFROMTEXT=929 -ST_GEOMFROMWKB=930 -ST_INTERIORRINGN=931 -ST_INTERSECTION=932 -ST_INTERSECTS=933 -ST_ISCLOSED=934 -ST_ISEMPTY=935 -ST_ISSIMPLE=936 -ST_LINEFROMTEXT=937 -ST_LINEFROMWKB=938 -ST_LINESTRINGFROMTEXT=939 -ST_LINESTRINGFROMWKB=940 -ST_NUMGEOMETRIES=941 -ST_NUMINTERIORRING=942 -ST_NUMINTERIORRINGS=943 -ST_NUMPOINTS=944 -ST_OVERLAPS=945 -ST_POINTFROMTEXT=946 -ST_POINTFROMWKB=947 -ST_POINTN=948 -ST_POLYFROMTEXT=949 -ST_POLYFROMWKB=950 -ST_POLYGONFROMTEXT=951 -ST_POLYGONFROMWKB=952 -ST_SRID=953 -ST_STARTPOINT=954 -ST_SYMDIFFERENCE=955 -ST_TOUCHES=956 -ST_UNION=957 -ST_WITHIN=958 -ST_X=959 -ST_Y=960 -SUBDATE=961 -SUBSTRING_INDEX=962 -SUBTIME=963 -SYSTEM_USER=964 -TAN=965 -TIMEDIFF=966 -TIMESTAMPADD=967 -TIMESTAMPDIFF=968 -TIME_FORMAT=969 -TIME_TO_SEC=970 -TOUCHES=971 -TO_BASE64=972 -TO_DAYS=973 -TO_SECONDS=974 -UCASE=975 -UNCOMPRESS=976 -UNCOMPRESSED_LENGTH=977 -UNHEX=978 -UNIX_TIMESTAMP=979 -UPDATEXML=980 -UPPER=981 -UUID=982 -UUID_SHORT=983 -VALIDATE_PASSWORD_STRENGTH=984 -VERSION=985 -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=986 -WEEKDAY=987 -WEEKOFYEAR=988 -WEIGHT_STRING=989 -WITHIN=990 -YEARWEEK=991 -Y_FUNCTION=992 -X_FUNCTION=993 -VAR_ASSIGN=994 -PLUS_ASSIGN=995 -MINUS_ASSIGN=996 -MULT_ASSIGN=997 -DIV_ASSIGN=998 -MOD_ASSIGN=999 -AND_ASSIGN=1000 -XOR_ASSIGN=1001 -OR_ASSIGN=1002 -STAR=1003 -DIVIDE=1004 -MODULE=1005 -PLUS=1006 -MINUSMINUS=1007 -MINUS=1008 -DIV=1009 -MOD=1010 -EQUAL_SYMBOL=1011 -GREATER_SYMBOL=1012 -LESS_SYMBOL=1013 -EXCLAMATION_SYMBOL=1014 -BIT_NOT_OP=1015 -BIT_OR_OP=1016 -BIT_AND_OP=1017 -BIT_XOR_OP=1018 -DOT=1019 -LR_BRACKET=1020 -RR_BRACKET=1021 -COMMA=1022 -SEMI=1023 -AT_SIGN=1024 -ZERO_DECIMAL=1025 -ONE_DECIMAL=1026 -TWO_DECIMAL=1027 -SINGLE_QUOTE_SYMB=1028 -DOUBLE_QUOTE_SYMB=1029 -REVERSE_QUOTE_SYMB=1030 -COLON_SYMB=1031 -CHARSET_REVERSE_QOUTE_STRING=1032 -FILESIZE_LITERAL=1033 -START_NATIONAL_STRING_LITERAL=1034 -STRING_LITERAL=1035 -DECIMAL_LITERAL=1036 -HEXADECIMAL_LITERAL=1037 -REAL_LITERAL=1038 -NULL_SPEC_LITERAL=1039 -BIT_STRING=1040 -STRING_CHARSET_NAME=1041 -DOT_ID=1042 -ID=1043 -REVERSE_QUOTE_ID=1044 -STRING_USER_NAME=1045 -LOCAL_ID=1046 -GLOBAL_ID=1047 -ERROR_RECONGNIGION=1048 -'ADD'=5 -'ALL'=6 -'ALTER'=7 -'ALWAYS'=8 -'ANALYZE'=9 -'AND'=10 -'AS'=11 -'ASC'=12 -'BEFORE'=13 -'BETWEEN'=14 -'BOTH'=15 -'BY'=16 -'CALL'=17 -'CASCADE'=18 -'CASE'=19 -'CAST'=20 -'CHANGE'=21 -'CHARACTER'=22 -'CHECK'=23 -'COLLATE'=24 -'COLUMN'=25 -'CONDITION'=26 -'CONSTRAINT'=27 -'CONTINUE'=28 -'CONVERT'=29 -'CREATE'=30 -'CROSS'=31 -'CURRENT'=32 -'CURRENT_USER'=33 -'CURSOR'=34 -'DATABASE'=35 -'DATABASES'=36 -'DECLARE'=37 -'DEFAULT'=38 -'DELAYED'=39 -'DELETE'=40 -'DESC'=41 -'DESCRIBE'=42 -'DETERMINISTIC'=43 -'DIAGNOSTICS'=44 -'DISTINCT'=45 -'DISTINCTROW'=46 -'DROP'=47 -'EACH'=48 -'ELSE'=49 -'ELSEIF'=50 -'ENCLOSED'=51 -'ESCAPED'=52 -'EXISTS'=53 -'EXIT'=54 -'EXPLAIN'=55 -'FALSE'=56 -'FETCH'=57 -'FOR'=58 -'FORCE'=59 -'FOREIGN'=60 -'FROM'=61 -'FULLTEXT'=62 -'GENERATED'=63 -'GET'=64 -'GRANT'=65 -'GROUP'=66 -'HAVING'=67 -'HIGH_PRIORITY'=68 -'IF'=69 -'IGNORE'=70 -'IN'=71 -'INDEX'=72 -'INFILE'=73 -'INNER'=74 -'INOUT'=75 -'INSERT'=76 -'INTERVAL'=77 -'INTO'=78 -'IS'=79 -'ITERATE'=80 -'JOIN'=81 -'KEY'=82 -'KEYS'=83 -'KILL'=84 -'LEADING'=85 -'LEAVE'=86 -'LEFT'=87 -'LIKE'=88 -'LIMIT'=89 -'LINEAR'=90 -'LINES'=91 -'LOAD'=92 -'LOCK'=93 -'LOOP'=94 -'LOW_PRIORITY'=95 -'MASTER_BIND'=96 -'MASTER_SSL_VERIFY_SERVER_CERT'=97 -'MATCH'=98 -'MAXVALUE'=99 -'MODIFIES'=100 -'NATURAL'=101 -'NOT'=102 -'NO_WRITE_TO_BINLOG'=103 -'NULL'=104 -'NUMBER'=105 -'ON'=106 -'OPTIMIZE'=107 -'OPTION'=108 -'OPTIONALLY'=109 -'OR'=110 -'ORDER'=111 -'OUT'=112 -'OUTER'=113 -'OUTFILE'=114 -'PARTITION'=115 -'PRIMARY'=116 -'PROCEDURE'=117 -'PURGE'=118 -'RANGE'=119 -'READ'=120 -'READS'=121 -'REFERENCES'=122 -'REGEXP'=123 -'RELEASE'=124 -'RENAME'=125 -'REPEAT'=126 -'REPLACE'=127 -'REQUIRE'=128 -'RESIGNAL'=129 -'RESTRICT'=130 -'RETURN'=131 -'REVOKE'=132 -'RIGHT'=133 -'RLIKE'=134 -'SCHEMA'=135 -'SCHEMAS'=136 -'SELECT'=137 -'SET'=138 -'SEPARATOR'=139 -'SHOW'=140 -'SIGNAL'=141 -'SPATIAL'=142 -'SQL'=143 -'SQLEXCEPTION'=144 -'SQLSTATE'=145 -'SQLWARNING'=146 -'SQL_BIG_RESULT'=147 -'SQL_CALC_FOUND_ROWS'=148 -'SQL_SMALL_RESULT'=149 -'SSL'=150 -'STACKED'=151 -'STARTING'=152 -'STRAIGHT_JOIN'=153 -'TABLE'=154 -'TERMINATED'=155 -'THEN'=156 -'TO'=157 -'TRAILING'=158 -'TRIGGER'=159 -'TRUE'=160 -'UNDO'=161 -'UNION'=162 -'UNIQUE'=163 -'UNLOCK'=164 -'UNSIGNED'=165 -'UPDATE'=166 -'USAGE'=167 -'USE'=168 -'USING'=169 -'VALUES'=170 -'WHEN'=171 -'WHERE'=172 -'WHILE'=173 -'WITH'=174 -'WRITE'=175 -'XOR'=176 -'ZEROFILL'=177 -'TINYINT'=178 -'SMALLINT'=179 -'MEDIUMINT'=180 -'MIDDLEINT'=181 -'INT'=182 -'INT1'=183 -'INT2'=184 -'INT3'=185 -'INT4'=186 -'INT8'=187 -'INTEGER'=188 -'BIGINT'=189 -'REAL'=190 -'DOUBLE'=191 -'PRECISION'=192 -'FLOAT'=193 -'FLOAT4'=194 -'FLOAT8'=195 -'DECIMAL'=196 -'DEC'=197 -'NUMERIC'=198 -'DATE'=199 -'TIME'=200 -'TIMESTAMP'=201 -'DATETIME'=202 -'YEAR'=203 -'CHAR'=204 -'VARCHAR'=205 -'NVARCHAR'=206 -'NATIONAL'=207 -'BINARY'=208 -'VARBINARY'=209 -'TINYBLOB'=210 -'BLOB'=211 -'MEDIUMBLOB'=212 -'LONG'=213 -'LONGBLOB'=214 -'TINYTEXT'=215 -'TEXT'=216 -'MEDIUMTEXT'=217 -'LONGTEXT'=218 -'ENUM'=219 -'VARYING'=220 -'SERIAL'=221 -'YEAR_MONTH'=222 -'DAY_HOUR'=223 -'DAY_MINUTE'=224 -'DAY_SECOND'=225 -'HOUR_MINUTE'=226 -'HOUR_SECOND'=227 -'MINUTE_SECOND'=228 -'SECOND_MICROSECOND'=229 -'MINUTE_MICROSECOND'=230 -'HOUR_MICROSECOND'=231 -'DAY_MICROSECOND'=232 -'JSON_VALID'=233 -'JSON_SCHEMA_VALID'=234 -'AVG'=235 -'BIT_AND'=236 -'BIT_OR'=237 -'BIT_XOR'=238 -'COUNT'=239 -'GROUP_CONCAT'=240 -'MAX'=241 -'MIN'=242 -'STD'=243 -'STDDEV'=244 -'STDDEV_POP'=245 -'STDDEV_SAMP'=246 -'SUM'=247 -'VAR_POP'=248 -'VAR_SAMP'=249 -'VARIANCE'=250 -'CURRENT_DATE'=251 -'CURRENT_TIME'=252 -'CURRENT_TIMESTAMP'=253 -'LOCALTIME'=254 -'CURDATE'=255 -'CURTIME'=256 -'DATE_ADD'=257 -'DATE_SUB'=258 -'EXTRACT'=259 -'LOCALTIMESTAMP'=260 -'NOW'=261 -'POSITION'=262 -'SUBSTR'=263 -'SUBSTRING'=264 -'SYSDATE'=265 -'TRIM'=266 -'UTC_DATE'=267 -'UTC_TIME'=268 -'UTC_TIMESTAMP'=269 -'ACCOUNT'=270 -'ACTION'=271 -'AFTER'=272 -'AGGREGATE'=273 -'ALGORITHM'=274 -'ANY'=275 -'AT'=276 -'AUTHORS'=277 -'AUTOCOMMIT'=278 -'AUTOEXTEND_SIZE'=279 -'AUTO_INCREMENT'=280 -'AVG_ROW_LENGTH'=281 -'BEGIN'=282 -'BINLOG'=283 -'BIT'=284 -'BLOCK'=285 -'BOOL'=286 -'BOOLEAN'=287 -'BTREE'=288 -'CACHE'=289 -'CASCADED'=290 -'CHAIN'=291 -'CHANGED'=292 -'CHANNEL'=293 -'CHECKSUM'=294 -'PAGE_CHECKSUM'=295 -'CIPHER'=296 -'CLASS_ORIGIN'=297 -'CLIENT'=298 -'CLOSE'=299 -'COALESCE'=300 -'CODE'=301 -'COLUMNS'=302 -'COLUMN_FORMAT'=303 -'COLUMN_NAME'=304 -'COMMENT'=305 -'COMMIT'=306 -'COMPACT'=307 -'COMPLETION'=308 -'COMPRESSED'=309 -'COMPRESSION'=310 -'CONCURRENT'=311 -'CONNECTION'=312 -'CONSISTENT'=313 -'CONSTRAINT_CATALOG'=314 -'CONSTRAINT_SCHEMA'=315 -'CONSTRAINT_NAME'=316 -'CONTAINS'=317 -'CONTEXT'=318 -'CONTRIBUTORS'=319 -'COPY'=320 -'CPU'=321 -'CURSOR_NAME'=322 -'DATA'=323 -'DATAFILE'=324 -'DEALLOCATE'=325 -'DEFAULT_AUTH'=326 -'DEFINER'=327 -'DELAY_KEY_WRITE'=328 -'DES_KEY_FILE'=329 -'DIRECTORY'=330 -'DISABLE'=331 -'DISCARD'=332 -'DISK'=333 -'DO'=334 -'DUMPFILE'=335 -'DUPLICATE'=336 -'DYNAMIC'=337 -'ENABLE'=338 -'ENCRYPTION'=339 -'END'=340 -'ENDS'=341 -'ENGINE'=342 -'ENGINES'=343 -'ERROR'=344 -'ERRORS'=345 -'ESCAPE'=346 -'EVEN'=347 -'EVENT'=348 -'EVENTS'=349 -'EVERY'=350 -'EXCHANGE'=351 -'EXCLUSIVE'=352 -'EXPIRE'=353 -'EXPORT'=354 -'EXTENDED'=355 -'EXTENT_SIZE'=356 -'FAST'=357 -'FAULTS'=358 -'FIELDS'=359 -'FILE_BLOCK_SIZE'=360 -'FILTER'=361 -'FIRST'=362 -'FIXED'=363 -'FLUSH'=364 -'FOLLOWS'=365 -'FOUND'=366 -'FULL'=367 -'FUNCTION'=368 -'GENERAL'=369 -'GLOBAL'=370 -'GRANTS'=371 -'GROUP_REPLICATION'=372 -'HANDLER'=373 -'HASH'=374 -'HELP'=375 -'HOST'=376 -'HOSTS'=377 -'IDENTIFIED'=378 -'IGNORE_SERVER_IDS'=379 -'IMPORT'=380 -'INDEXES'=381 -'INITIAL_SIZE'=382 -'INPLACE'=383 -'INSERT_METHOD'=384 -'INSTALL'=385 -'INSTANCE'=386 -'INVISIBLE'=387 -'INVOKER'=388 -'IO'=389 -'IO_THREAD'=390 -'IPC'=391 -'ISOLATION'=392 -'ISSUER'=393 -'JSON'=394 -'KEY_BLOCK_SIZE'=395 -'LANGUAGE'=396 -'LAST'=397 -'LEAVES'=398 -'LESS'=399 -'LEVEL'=400 -'LIST'=401 -'LOCAL'=402 -'LOGFILE'=403 -'LOGS'=404 -'MASTER'=405 -'MASTER_AUTO_POSITION'=406 -'MASTER_CONNECT_RETRY'=407 -'MASTER_DELAY'=408 -'MASTER_HEARTBEAT_PERIOD'=409 -'MASTER_HOST'=410 -'MASTER_LOG_FILE'=411 -'MASTER_LOG_POS'=412 -'MASTER_PASSWORD'=413 -'MASTER_PORT'=414 -'MASTER_RETRY_COUNT'=415 -'MASTER_SSL'=416 -'MASTER_SSL_CA'=417 -'MASTER_SSL_CAPATH'=418 -'MASTER_SSL_CERT'=419 -'MASTER_SSL_CIPHER'=420 -'MASTER_SSL_CRL'=421 -'MASTER_SSL_CRLPATH'=422 -'MASTER_SSL_KEY'=423 -'MASTER_TLS_VERSION'=424 -'MASTER_USER'=425 -'MAX_CONNECTIONS_PER_HOUR'=426 -'MAX_QUERIES_PER_HOUR'=427 -'MAX_ROWS'=428 -'MAX_SIZE'=429 -'MAX_UPDATES_PER_HOUR'=430 -'MAX_USER_CONNECTIONS'=431 -'MEDIUM'=432 -'MERGE'=433 -'MESSAGE_TEXT'=434 -'MID'=435 -'MIGRATE'=436 -'MIN_ROWS'=437 -'MODE'=438 -'MODIFY'=439 -'MUTEX'=440 -'MYSQL'=441 -'MYSQL_ERRNO'=442 -'NAME'=443 -'NAMES'=444 -'NCHAR'=445 -'NEVER'=446 -'NEXT'=447 -'NO'=448 -'NODEGROUP'=449 -'NONE'=450 -'OFFLINE'=451 -'OFFSET'=452 -'OJ'=453 -'OLD_PASSWORD'=454 -'ONE'=455 -'ONLINE'=456 -'ONLY'=457 -'OPEN'=458 -'OPTIMIZER_COSTS'=459 -'OPTIONS'=460 -'OWNER'=461 -'PACK_KEYS'=462 -'PAGE'=463 -'PARSER'=464 -'PARTIAL'=465 -'PARTITIONING'=466 -'PARTITIONS'=467 -'PASSWORD'=468 -'PHASE'=469 -'PLUGIN'=470 -'PLUGIN_DIR'=471 -'PLUGINS'=472 -'PORT'=473 -'PRECEDES'=474 -'PREPARE'=475 -'PRESERVE'=476 -'PREV'=477 -'PROCESSLIST'=478 -'PROFILE'=479 -'PROFILES'=480 -'PROXY'=481 -'QUERY'=482 -'QUICK'=483 -'REBUILD'=484 -'RECOVER'=485 -'REDO_BUFFER_SIZE'=486 -'REDUNDANT'=487 -'RELAY'=488 -'RELAY_LOG_FILE'=489 -'RELAY_LOG_POS'=490 -'RELAYLOG'=491 -'REMOVE'=492 -'REORGANIZE'=493 -'REPAIR'=494 -'REPLICATE_DO_DB'=495 -'REPLICATE_DO_TABLE'=496 -'REPLICATE_IGNORE_DB'=497 -'REPLICATE_IGNORE_TABLE'=498 -'REPLICATE_REWRITE_DB'=499 -'REPLICATE_WILD_DO_TABLE'=500 -'REPLICATE_WILD_IGNORE_TABLE'=501 -'REPLICATION'=502 -'RESET'=503 -'RESUME'=504 -'RETURNED_SQLSTATE'=505 -'RETURNS'=506 -'ROLE'=507 -'ROLLBACK'=508 -'ROLLUP'=509 -'ROTATE'=510 -'ROW'=511 -'ROWS'=512 -'ROW_FORMAT'=513 -'SAVEPOINT'=514 -'SCHEDULE'=515 -'SECURITY'=516 -'SERVER'=517 -'SESSION'=518 -'SHARE'=519 -'SHARED'=520 -'SIGNED'=521 -'SIMPLE'=522 -'SLAVE'=523 -'SLOW'=524 -'SNAPSHOT'=525 -'SOCKET'=526 -'SOME'=527 -'SONAME'=528 -'SOUNDS'=529 -'SOURCE'=530 -'SQL_AFTER_GTIDS'=531 -'SQL_AFTER_MTS_GAPS'=532 -'SQL_BEFORE_GTIDS'=533 -'SQL_BUFFER_RESULT'=534 -'SQL_CACHE'=535 -'SQL_NO_CACHE'=536 -'SQL_THREAD'=537 -'START'=538 -'STARTS'=539 -'STATS_AUTO_RECALC'=540 -'STATS_PERSISTENT'=541 -'STATS_SAMPLE_PAGES'=542 -'STATUS'=543 -'STOP'=544 -'STORAGE'=545 -'STORED'=546 -'STRING'=547 -'SUBCLASS_ORIGIN'=548 -'SUBJECT'=549 -'SUBPARTITION'=550 -'SUBPARTITIONS'=551 -'SUSPEND'=552 -'SWAPS'=553 -'SWITCHES'=554 -'TABLE_NAME'=555 -'TABLESPACE'=556 -'TEMPORARY'=557 -'TEMPTABLE'=558 -'THAN'=559 -'TRADITIONAL'=560 -'TRANSACTION'=561 -'TRANSACTIONAL'=562 -'TRIGGERS'=563 -'TRUNCATE'=564 -'UNDEFINED'=565 -'UNDOFILE'=566 -'UNDO_BUFFER_SIZE'=567 -'UNINSTALL'=568 -'UNKNOWN'=569 -'UNTIL'=570 -'UPGRADE'=571 -'USER'=572 -'USE_FRM'=573 -'USER_RESOURCES'=574 -'VALIDATION'=575 -'VALUE'=576 -'VARIABLES'=577 -'VIEW'=578 -'VIRTUAL'=579 -'VISIBLE'=580 -'WAIT'=581 -'WARNINGS'=582 -'WITHOUT'=583 -'WORK'=584 -'WRAPPER'=585 -'X509'=586 -'XA'=587 -'XML'=588 -'EUR'=589 -'USA'=590 -'JIS'=591 -'ISO'=592 -'INTERNAL'=593 -'QUARTER'=594 -'MONTH'=595 -'DAY'=596 -'HOUR'=597 -'MINUTE'=598 -'WEEK'=599 -'SECOND'=600 -'MICROSECOND'=601 -'TABLES'=602 -'ROUTINE'=603 -'EXECUTE'=604 -'FILE'=605 -'PROCESS'=606 -'RELOAD'=607 -'SHUTDOWN'=608 -'SUPER'=609 -'PRIVILEGES'=610 -'APPLICATION_PASSWORD_ADMIN'=611 -'AUDIT_ADMIN'=612 -'BACKUP_ADMIN'=613 -'BINLOG_ADMIN'=614 -'BINLOG_ENCRYPTION_ADMIN'=615 -'CLONE_ADMIN'=616 -'CONNECTION_ADMIN'=617 -'ENCRYPTION_KEY_ADMIN'=618 -'FIREWALL_ADMIN'=619 -'FIREWALL_USER'=620 -'GROUP_REPLICATION_ADMIN'=621 -'INNODB_REDO_LOG_ARCHIVE'=622 -'NDB_STORED_USER'=623 -'PERSIST_RO_VARIABLES_ADMIN'=624 -'REPLICATION_APPLIER'=625 -'REPLICATION_SLAVE_ADMIN'=626 -'RESOURCE_GROUP_ADMIN'=627 -'RESOURCE_GROUP_USER'=628 -'ROLE_ADMIN'=629 -'SET_USER_ID'=631 -'SHOW_ROUTINE'=632 -'SYSTEM_VARIABLES_ADMIN'=633 -'TABLE_ENCRYPTION_ADMIN'=634 -'VERSION_TOKEN_ADMIN'=635 -'XA_RECOVER_ADMIN'=636 -'ARMSCII8'=637 -'ASCII'=638 -'BIG5'=639 -'CP1250'=640 -'CP1251'=641 -'CP1256'=642 -'CP1257'=643 -'CP850'=644 -'CP852'=645 -'CP866'=646 -'CP932'=647 -'DEC8'=648 -'EUCJPMS'=649 -'EUCKR'=650 -'GB2312'=651 -'GBK'=652 -'GEOSTD8'=653 -'GREEK'=654 -'HEBREW'=655 -'HP8'=656 -'KEYBCS2'=657 -'KOI8R'=658 -'KOI8U'=659 -'LATIN1'=660 -'LATIN2'=661 -'LATIN5'=662 -'LATIN7'=663 -'MACCE'=664 -'MACROMAN'=665 -'SJIS'=666 -'SWE7'=667 -'TIS620'=668 -'UCS2'=669 -'UJIS'=670 -'UTF16'=671 -'UTF16LE'=672 -'UTF32'=673 -'UTF8'=674 -'UTF8MB3'=675 -'UTF8MB4'=676 -'ARCHIVE'=677 -'BLACKHOLE'=678 -'CSV'=679 -'FEDERATED'=680 -'INNODB'=681 -'MEMORY'=682 -'MRG_MYISAM'=683 -'MYISAM'=684 -'NDB'=685 -'NDBCLUSTER'=686 -'PERFORMANCE_SCHEMA'=687 -'TOKUDB'=688 -'REPEATABLE'=689 -'COMMITTED'=690 -'UNCOMMITTED'=691 -'SERIALIZABLE'=692 -'GEOMETRYCOLLECTION'=693 -'GEOMCOLLECTION'=694 -'GEOMETRY'=695 -'LINESTRING'=696 -'MULTILINESTRING'=697 -'MULTIPOINT'=698 -'MULTIPOLYGON'=699 -'POINT'=700 -'POLYGON'=701 -'ABS'=702 -'ACOS'=703 -'ADDDATE'=704 -'ADDTIME'=705 -'AES_DECRYPT'=706 -'AES_ENCRYPT'=707 -'AREA'=708 -'ASBINARY'=709 -'ASIN'=710 -'ASTEXT'=711 -'ASWKB'=712 -'ASWKT'=713 -'ASYMMETRIC_DECRYPT'=714 -'ASYMMETRIC_DERIVE'=715 -'ASYMMETRIC_ENCRYPT'=716 -'ASYMMETRIC_SIGN'=717 -'ASYMMETRIC_VERIFY'=718 -'ATAN'=719 -'ATAN2'=720 -'BENCHMARK'=721 -'BIN'=722 -'BIT_COUNT'=723 -'BIT_LENGTH'=724 -'BUFFER'=725 -'CATALOG_NAME'=726 -'CEIL'=727 -'CEILING'=728 -'CENTROID'=729 -'CHARACTER_LENGTH'=730 -'CHARSET'=731 -'CHAR_LENGTH'=732 -'COERCIBILITY'=733 -'COLLATION'=734 -'COMPRESS'=735 -'CONCAT'=736 -'CONCAT_WS'=737 -'CONNECTION_ID'=738 -'CONV'=739 -'CONVERT_TZ'=740 -'COS'=741 -'COT'=742 -'CRC32'=743 -'CREATE_ASYMMETRIC_PRIV_KEY'=744 -'CREATE_ASYMMETRIC_PUB_KEY'=745 -'CREATE_DH_PARAMETERS'=746 -'CREATE_DIGEST'=747 -'CROSSES'=748 -'DATEDIFF'=749 -'DATE_FORMAT'=750 -'DAYNAME'=751 -'DAYOFMONTH'=752 -'DAYOFWEEK'=753 -'DAYOFYEAR'=754 -'DECODE'=755 -'DEGREES'=756 -'DES_DECRYPT'=757 -'DES_ENCRYPT'=758 -'DIMENSION'=759 -'DISJOINT'=760 -'ELT'=761 -'ENCODE'=762 -'ENCRYPT'=763 -'ENDPOINT'=764 -'ENVELOPE'=765 -'EQUALS'=766 -'EXP'=767 -'EXPORT_SET'=768 -'EXTERIORRING'=769 -'EXTRACTVALUE'=770 -'FIELD'=771 -'FIND_IN_SET'=772 -'FLOOR'=773 -'FORMAT'=774 -'FOUND_ROWS'=775 -'FROM_BASE64'=776 -'FROM_DAYS'=777 -'FROM_UNIXTIME'=778 -'GEOMCOLLFROMTEXT'=779 -'GEOMCOLLFROMWKB'=780 -'GEOMETRYCOLLECTIONFROMTEXT'=781 -'GEOMETRYCOLLECTIONFROMWKB'=782 -'GEOMETRYFROMTEXT'=783 -'GEOMETRYFROMWKB'=784 -'GEOMETRYN'=785 -'GEOMETRYTYPE'=786 -'GEOMFROMTEXT'=787 -'GEOMFROMWKB'=788 -'GET_FORMAT'=789 -'GET_LOCK'=790 -'GLENGTH'=791 -'GREATEST'=792 -'GTID_SUBSET'=793 -'GTID_SUBTRACT'=794 -'HEX'=795 -'IFNULL'=796 -'INET6_ATON'=797 -'INET6_NTOA'=798 -'INET_ATON'=799 -'INET_NTOA'=800 -'INSTR'=801 -'INTERIORRINGN'=802 -'INTERSECTS'=803 -'ISCLOSED'=804 -'ISEMPTY'=805 -'ISNULL'=806 -'ISSIMPLE'=807 -'IS_FREE_LOCK'=808 -'IS_IPV4'=809 -'IS_IPV4_COMPAT'=810 -'IS_IPV4_MAPPED'=811 -'IS_IPV6'=812 -'IS_USED_LOCK'=813 -'LAST_INSERT_ID'=814 -'LCASE'=815 -'LEAST'=816 -'LENGTH'=817 -'LINEFROMTEXT'=818 -'LINEFROMWKB'=819 -'LINESTRINGFROMTEXT'=820 -'LINESTRINGFROMWKB'=821 -'LN'=822 -'LOAD_FILE'=823 -'LOCATE'=824 -'LOG'=825 -'LOG10'=826 -'LOG2'=827 -'LOWER'=828 -'LPAD'=829 -'LTRIM'=830 -'MAKEDATE'=831 -'MAKETIME'=832 -'MAKE_SET'=833 -'MASTER_POS_WAIT'=834 -'MBRCONTAINS'=835 -'MBRDISJOINT'=836 -'MBREQUAL'=837 -'MBRINTERSECTS'=838 -'MBROVERLAPS'=839 -'MBRTOUCHES'=840 -'MBRWITHIN'=841 -'MD5'=842 -'MLINEFROMTEXT'=843 -'MLINEFROMWKB'=844 -'MONTHNAME'=845 -'MPOINTFROMTEXT'=846 -'MPOINTFROMWKB'=847 -'MPOLYFROMTEXT'=848 -'MPOLYFROMWKB'=849 -'MULTILINESTRINGFROMTEXT'=850 -'MULTILINESTRINGFROMWKB'=851 -'MULTIPOINTFROMTEXT'=852 -'MULTIPOINTFROMWKB'=853 -'MULTIPOLYGONFROMTEXT'=854 -'MULTIPOLYGONFROMWKB'=855 -'NAME_CONST'=856 -'NULLIF'=857 -'NUMGEOMETRIES'=858 -'NUMINTERIORRINGS'=859 -'NUMPOINTS'=860 -'OCT'=861 -'OCTET_LENGTH'=862 -'ORD'=863 -'OVERLAPS'=864 -'PERIOD_ADD'=865 -'PERIOD_DIFF'=866 -'PI'=867 -'POINTFROMTEXT'=868 -'POINTFROMWKB'=869 -'POINTN'=870 -'POLYFROMTEXT'=871 -'POLYFROMWKB'=872 -'POLYGONFROMTEXT'=873 -'POLYGONFROMWKB'=874 -'POW'=875 -'POWER'=876 -'QUOTE'=877 -'RADIANS'=878 -'RAND'=879 -'RANDOM_BYTES'=880 -'RELEASE_LOCK'=881 -'REVERSE'=882 -'ROUND'=883 -'ROW_COUNT'=884 -'RPAD'=885 -'RTRIM'=886 -'SEC_TO_TIME'=887 -'SESSION_USER'=888 -'SHA'=889 -'SHA1'=890 -'SHA2'=891 -'SCHEMA_NAME'=892 -'SIGN'=893 -'SIN'=894 -'SLEEP'=895 -'SOUNDEX'=896 -'SQL_THREAD_WAIT_AFTER_GTIDS'=897 -'SQRT'=898 -'SRID'=899 -'STARTPOINT'=900 -'STRCMP'=901 -'STR_TO_DATE'=902 -'ST_AREA'=903 -'ST_ASBINARY'=904 -'ST_ASTEXT'=905 -'ST_ASWKB'=906 -'ST_ASWKT'=907 -'ST_BUFFER'=908 -'ST_CENTROID'=909 -'ST_CONTAINS'=910 -'ST_CROSSES'=911 -'ST_DIFFERENCE'=912 -'ST_DIMENSION'=913 -'ST_DISJOINT'=914 -'ST_DISTANCE'=915 -'ST_ENDPOINT'=916 -'ST_ENVELOPE'=917 -'ST_EQUALS'=918 -'ST_EXTERIORRING'=919 -'ST_GEOMCOLLFROMTEXT'=920 -'ST_GEOMCOLLFROMTXT'=921 -'ST_GEOMCOLLFROMWKB'=922 -'ST_GEOMETRYCOLLECTIONFROMTEXT'=923 -'ST_GEOMETRYCOLLECTIONFROMWKB'=924 -'ST_GEOMETRYFROMTEXT'=925 -'ST_GEOMETRYFROMWKB'=926 -'ST_GEOMETRYN'=927 -'ST_GEOMETRYTYPE'=928 -'ST_GEOMFROMTEXT'=929 -'ST_GEOMFROMWKB'=930 -'ST_INTERIORRINGN'=931 -'ST_INTERSECTION'=932 -'ST_INTERSECTS'=933 -'ST_ISCLOSED'=934 -'ST_ISEMPTY'=935 -'ST_ISSIMPLE'=936 -'ST_LINEFROMTEXT'=937 -'ST_LINEFROMWKB'=938 -'ST_LINESTRINGFROMTEXT'=939 -'ST_LINESTRINGFROMWKB'=940 -'ST_NUMGEOMETRIES'=941 -'ST_NUMINTERIORRING'=942 -'ST_NUMINTERIORRINGS'=943 -'ST_NUMPOINTS'=944 -'ST_OVERLAPS'=945 -'ST_POINTFROMTEXT'=946 -'ST_POINTFROMWKB'=947 -'ST_POINTN'=948 -'ST_POLYFROMTEXT'=949 -'ST_POLYFROMWKB'=950 -'ST_POLYGONFROMTEXT'=951 -'ST_POLYGONFROMWKB'=952 -'ST_SRID'=953 -'ST_STARTPOINT'=954 -'ST_SYMDIFFERENCE'=955 -'ST_TOUCHES'=956 -'ST_UNION'=957 -'ST_WITHIN'=958 -'ST_X'=959 -'ST_Y'=960 -'SUBDATE'=961 -'SUBSTRING_INDEX'=962 -'SUBTIME'=963 -'SYSTEM_USER'=964 -'TAN'=965 -'TIMEDIFF'=966 -'TIMESTAMPADD'=967 -'TIMESTAMPDIFF'=968 -'TIME_FORMAT'=969 -'TIME_TO_SEC'=970 -'TOUCHES'=971 -'TO_BASE64'=972 -'TO_DAYS'=973 -'TO_SECONDS'=974 -'UCASE'=975 -'UNCOMPRESS'=976 -'UNCOMPRESSED_LENGTH'=977 -'UNHEX'=978 -'UNIX_TIMESTAMP'=979 -'UPDATEXML'=980 -'UPPER'=981 -'UUID'=982 -'UUID_SHORT'=983 -'VALIDATE_PASSWORD_STRENGTH'=984 -'VERSION'=985 -'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'=986 -'WEEKDAY'=987 -'WEEKOFYEAR'=988 -'WEIGHT_STRING'=989 -'WITHIN'=990 -'YEARWEEK'=991 -'Y'=992 -'X'=993 -':='=994 -'+='=995 -'-='=996 -'*='=997 -'/='=998 -'%='=999 -'&='=1000 -'^='=1001 -'|='=1002 -'*'=1003 -'/'=1004 -'%'=1005 -'+'=1006 -'--'=1007 -'-'=1008 -'DIV'=1009 -'MOD'=1010 -'='=1011 -'>'=1012 -'<'=1013 -'!'=1014 -'~'=1015 -'|'=1016 -'&'=1017 -'^'=1018 -'.'=1019 -'('=1020 -')'=1021 -','=1022 -';'=1023 -'@'=1024 -'0'=1025 -'1'=1026 -'2'=1027 -'\''=1028 -'"'=1029 -'`'=1030 -':'=1031 diff --git a/src/lib/generic/SqlLexer.ts b/src/lib/generic/SqlLexer.ts deleted file mode 100644 index d75fecb..0000000 --- a/src/lib/generic/SqlLexer.ts +++ /dev/null @@ -1,7992 +0,0 @@ -// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/generic/SqlLexer.g4 by ANTLR 4.9.0-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { CharStream } from "antlr4ts/CharStream"; -import { Lexer } from "antlr4ts/Lexer"; -import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator"; -import { NotNull } from "antlr4ts/Decorators"; -import { Override } from "antlr4ts/Decorators"; -import { RuleContext } from "antlr4ts/RuleContext"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - - -export class SqlLexer extends Lexer { - public static readonly SPACE = 1; - public static readonly SPEC_MYSQL_COMMENT = 2; - public static readonly COMMENT_INPUT = 3; - public static readonly LINE_COMMENT = 4; - public static readonly ADD = 5; - public static readonly ALL = 6; - public static readonly ALTER = 7; - public static readonly ALWAYS = 8; - public static readonly ANALYZE = 9; - public static readonly AND = 10; - public static readonly AS = 11; - public static readonly ASC = 12; - public static readonly BEFORE = 13; - public static readonly BETWEEN = 14; - public static readonly BOTH = 15; - public static readonly BY = 16; - public static readonly CALL = 17; - public static readonly CASCADE = 18; - public static readonly CASE = 19; - public static readonly CAST = 20; - public static readonly CHANGE = 21; - public static readonly CHARACTER = 22; - public static readonly CHECK = 23; - public static readonly COLLATE = 24; - public static readonly COLUMN = 25; - public static readonly CONDITION = 26; - public static readonly CONSTRAINT = 27; - public static readonly CONTINUE = 28; - public static readonly CONVERT = 29; - public static readonly CREATE = 30; - public static readonly CROSS = 31; - public static readonly CURRENT = 32; - public static readonly CURRENT_USER = 33; - public static readonly CURSOR = 34; - public static readonly DATABASE = 35; - public static readonly DATABASES = 36; - public static readonly DECLARE = 37; - public static readonly DEFAULT = 38; - public static readonly DELAYED = 39; - public static readonly DELETE = 40; - public static readonly DESC = 41; - public static readonly DESCRIBE = 42; - public static readonly DETERMINISTIC = 43; - public static readonly DIAGNOSTICS = 44; - public static readonly DISTINCT = 45; - public static readonly DISTINCTROW = 46; - public static readonly DROP = 47; - public static readonly EACH = 48; - public static readonly ELSE = 49; - public static readonly ELSEIF = 50; - public static readonly ENCLOSED = 51; - public static readonly ESCAPED = 52; - public static readonly EXISTS = 53; - public static readonly EXIT = 54; - public static readonly EXPLAIN = 55; - public static readonly FALSE = 56; - public static readonly FETCH = 57; - public static readonly FOR = 58; - public static readonly FORCE = 59; - public static readonly FOREIGN = 60; - public static readonly FROM = 61; - public static readonly FULLTEXT = 62; - public static readonly GENERATED = 63; - public static readonly GET = 64; - public static readonly GRANT = 65; - public static readonly GROUP = 66; - public static readonly HAVING = 67; - public static readonly HIGH_PRIORITY = 68; - public static readonly IF = 69; - public static readonly IGNORE = 70; - public static readonly IN = 71; - public static readonly INDEX = 72; - public static readonly INFILE = 73; - public static readonly INNER = 74; - public static readonly INOUT = 75; - public static readonly INSERT = 76; - public static readonly INTERVAL = 77; - public static readonly INTO = 78; - public static readonly IS = 79; - public static readonly ITERATE = 80; - public static readonly JOIN = 81; - public static readonly KEY = 82; - public static readonly KEYS = 83; - public static readonly KILL = 84; - public static readonly LEADING = 85; - public static readonly LEAVE = 86; - public static readonly LEFT = 87; - public static readonly LIKE = 88; - public static readonly LIMIT = 89; - public static readonly LINEAR = 90; - public static readonly LINES = 91; - public static readonly LOAD = 92; - public static readonly LOCK = 93; - public static readonly LOOP = 94; - public static readonly LOW_PRIORITY = 95; - public static readonly MASTER_BIND = 96; - public static readonly MASTER_SSL_VERIFY_SERVER_CERT = 97; - public static readonly MATCH = 98; - public static readonly MAXVALUE = 99; - public static readonly MODIFIES = 100; - public static readonly NATURAL = 101; - public static readonly NOT = 102; - public static readonly NO_WRITE_TO_BINLOG = 103; - public static readonly NULL_LITERAL = 104; - public static readonly NUMBER = 105; - public static readonly ON = 106; - public static readonly OPTIMIZE = 107; - public static readonly OPTION = 108; - public static readonly OPTIONALLY = 109; - public static readonly OR = 110; - public static readonly ORDER = 111; - public static readonly OUT = 112; - public static readonly OUTER = 113; - public static readonly OUTFILE = 114; - public static readonly PARTITION = 115; - public static readonly PRIMARY = 116; - public static readonly PROCEDURE = 117; - public static readonly PURGE = 118; - public static readonly RANGE = 119; - public static readonly READ = 120; - public static readonly READS = 121; - public static readonly REFERENCES = 122; - public static readonly REGEXP = 123; - public static readonly RELEASE = 124; - public static readonly RENAME = 125; - public static readonly REPEAT = 126; - public static readonly REPLACE = 127; - public static readonly REQUIRE = 128; - public static readonly RESIGNAL = 129; - public static readonly RESTRICT = 130; - public static readonly RETURN = 131; - public static readonly REVOKE = 132; - public static readonly RIGHT = 133; - public static readonly RLIKE = 134; - public static readonly SCHEMA = 135; - public static readonly SCHEMAS = 136; - public static readonly SELECT = 137; - public static readonly SET = 138; - public static readonly SEPARATOR = 139; - public static readonly SHOW = 140; - public static readonly SIGNAL = 141; - public static readonly SPATIAL = 142; - public static readonly SQL = 143; - public static readonly SQLEXCEPTION = 144; - public static readonly SQLSTATE = 145; - public static readonly SQLWARNING = 146; - public static readonly SQL_BIG_RESULT = 147; - public static readonly SQL_CALC_FOUND_ROWS = 148; - public static readonly SQL_SMALL_RESULT = 149; - public static readonly SSL = 150; - public static readonly STACKED = 151; - public static readonly STARTING = 152; - public static readonly STRAIGHT_JOIN = 153; - public static readonly TABLE = 154; - public static readonly TERMINATED = 155; - public static readonly THEN = 156; - public static readonly TO = 157; - public static readonly TRAILING = 158; - public static readonly TRIGGER = 159; - public static readonly TRUE = 160; - public static readonly UNDO = 161; - public static readonly UNION = 162; - public static readonly UNIQUE = 163; - public static readonly UNLOCK = 164; - public static readonly UNSIGNED = 165; - public static readonly UPDATE = 166; - public static readonly USAGE = 167; - public static readonly USE = 168; - public static readonly USING = 169; - public static readonly VALUES = 170; - public static readonly WHEN = 171; - public static readonly WHERE = 172; - public static readonly WHILE = 173; - public static readonly WITH = 174; - public static readonly WRITE = 175; - public static readonly XOR = 176; - public static readonly ZEROFILL = 177; - public static readonly TINYINT = 178; - public static readonly SMALLINT = 179; - public static readonly MEDIUMINT = 180; - public static readonly MIDDLEINT = 181; - public static readonly INT = 182; - public static readonly INT1 = 183; - public static readonly INT2 = 184; - public static readonly INT3 = 185; - public static readonly INT4 = 186; - public static readonly INT8 = 187; - public static readonly INTEGER = 188; - public static readonly BIGINT = 189; - public static readonly REAL = 190; - public static readonly DOUBLE = 191; - public static readonly PRECISION = 192; - public static readonly FLOAT = 193; - public static readonly FLOAT4 = 194; - public static readonly FLOAT8 = 195; - public static readonly DECIMAL = 196; - public static readonly DEC = 197; - public static readonly NUMERIC = 198; - public static readonly DATE = 199; - public static readonly TIME = 200; - public static readonly TIMESTAMP = 201; - public static readonly DATETIME = 202; - public static readonly YEAR = 203; - public static readonly CHAR = 204; - public static readonly VARCHAR = 205; - public static readonly NVARCHAR = 206; - public static readonly NATIONAL = 207; - public static readonly BINARY = 208; - public static readonly VARBINARY = 209; - public static readonly TINYBLOB = 210; - public static readonly BLOB = 211; - public static readonly MEDIUMBLOB = 212; - public static readonly LONG = 213; - public static readonly LONGBLOB = 214; - public static readonly TINYTEXT = 215; - public static readonly TEXT = 216; - public static readonly MEDIUMTEXT = 217; - public static readonly LONGTEXT = 218; - public static readonly ENUM = 219; - public static readonly VARYING = 220; - public static readonly SERIAL = 221; - public static readonly YEAR_MONTH = 222; - public static readonly DAY_HOUR = 223; - public static readonly DAY_MINUTE = 224; - public static readonly DAY_SECOND = 225; - public static readonly HOUR_MINUTE = 226; - public static readonly HOUR_SECOND = 227; - public static readonly MINUTE_SECOND = 228; - public static readonly SECOND_MICROSECOND = 229; - public static readonly MINUTE_MICROSECOND = 230; - public static readonly HOUR_MICROSECOND = 231; - public static readonly DAY_MICROSECOND = 232; - public static readonly JSON_VALID = 233; - public static readonly JSON_SCHEMA_VALID = 234; - public static readonly AVG = 235; - public static readonly BIT_AND = 236; - public static readonly BIT_OR = 237; - public static readonly BIT_XOR = 238; - public static readonly COUNT = 239; - public static readonly GROUP_CONCAT = 240; - public static readonly MAX = 241; - public static readonly MIN = 242; - public static readonly STD = 243; - public static readonly STDDEV = 244; - public static readonly STDDEV_POP = 245; - public static readonly STDDEV_SAMP = 246; - public static readonly SUM = 247; - public static readonly VAR_POP = 248; - public static readonly VAR_SAMP = 249; - public static readonly VARIANCE = 250; - public static readonly CURRENT_DATE = 251; - public static readonly CURRENT_TIME = 252; - public static readonly CURRENT_TIMESTAMP = 253; - public static readonly LOCALTIME = 254; - public static readonly CURDATE = 255; - public static readonly CURTIME = 256; - public static readonly DATE_ADD = 257; - public static readonly DATE_SUB = 258; - public static readonly EXTRACT = 259; - public static readonly LOCALTIMESTAMP = 260; - public static readonly NOW = 261; - public static readonly POSITION = 262; - public static readonly SUBSTR = 263; - public static readonly SUBSTRING = 264; - public static readonly SYSDATE = 265; - public static readonly TRIM = 266; - public static readonly UTC_DATE = 267; - public static readonly UTC_TIME = 268; - public static readonly UTC_TIMESTAMP = 269; - public static readonly ACCOUNT = 270; - public static readonly ACTION = 271; - public static readonly AFTER = 272; - public static readonly AGGREGATE = 273; - public static readonly ALGORITHM = 274; - public static readonly ANY = 275; - public static readonly AT = 276; - public static readonly AUTHORS = 277; - public static readonly AUTOCOMMIT = 278; - public static readonly AUTOEXTEND_SIZE = 279; - public static readonly AUTO_INCREMENT = 280; - public static readonly AVG_ROW_LENGTH = 281; - public static readonly BEGIN = 282; - public static readonly BINLOG = 283; - public static readonly BIT = 284; - public static readonly BLOCK = 285; - public static readonly BOOL = 286; - public static readonly BOOLEAN = 287; - public static readonly BTREE = 288; - public static readonly CACHE = 289; - public static readonly CASCADED = 290; - public static readonly CHAIN = 291; - public static readonly CHANGED = 292; - public static readonly CHANNEL = 293; - public static readonly CHECKSUM = 294; - public static readonly PAGE_CHECKSUM = 295; - public static readonly CIPHER = 296; - public static readonly CLASS_ORIGIN = 297; - public static readonly CLIENT = 298; - public static readonly CLOSE = 299; - public static readonly COALESCE = 300; - public static readonly CODE = 301; - public static readonly COLUMNS = 302; - public static readonly COLUMN_FORMAT = 303; - public static readonly COLUMN_NAME = 304; - public static readonly COMMENT = 305; - public static readonly COMMIT = 306; - public static readonly COMPACT = 307; - public static readonly COMPLETION = 308; - public static readonly COMPRESSED = 309; - public static readonly COMPRESSION = 310; - public static readonly CONCURRENT = 311; - public static readonly CONNECTION = 312; - public static readonly CONSISTENT = 313; - public static readonly CONSTRAINT_CATALOG = 314; - public static readonly CONSTRAINT_SCHEMA = 315; - public static readonly CONSTRAINT_NAME = 316; - public static readonly CONTAINS = 317; - public static readonly CONTEXT = 318; - public static readonly CONTRIBUTORS = 319; - public static readonly COPY = 320; - public static readonly CPU = 321; - public static readonly CURSOR_NAME = 322; - public static readonly DATA = 323; - public static readonly DATAFILE = 324; - public static readonly DEALLOCATE = 325; - public static readonly DEFAULT_AUTH = 326; - public static readonly DEFINER = 327; - public static readonly DELAY_KEY_WRITE = 328; - public static readonly DES_KEY_FILE = 329; - public static readonly DIRECTORY = 330; - public static readonly DISABLE = 331; - public static readonly DISCARD = 332; - public static readonly DISK = 333; - public static readonly DO = 334; - public static readonly DUMPFILE = 335; - public static readonly DUPLICATE = 336; - public static readonly DYNAMIC = 337; - public static readonly ENABLE = 338; - public static readonly ENCRYPTION = 339; - public static readonly END = 340; - public static readonly ENDS = 341; - public static readonly ENGINE = 342; - public static readonly ENGINES = 343; - public static readonly ERROR = 344; - public static readonly ERRORS = 345; - public static readonly ESCAPE = 346; - public static readonly EVEN = 347; - public static readonly EVENT = 348; - public static readonly EVENTS = 349; - public static readonly EVERY = 350; - public static readonly EXCHANGE = 351; - public static readonly EXCLUSIVE = 352; - public static readonly EXPIRE = 353; - public static readonly EXPORT = 354; - public static readonly EXTENDED = 355; - public static readonly EXTENT_SIZE = 356; - public static readonly FAST = 357; - public static readonly FAULTS = 358; - public static readonly FIELDS = 359; - public static readonly FILE_BLOCK_SIZE = 360; - public static readonly FILTER = 361; - public static readonly FIRST = 362; - public static readonly FIXED = 363; - public static readonly FLUSH = 364; - public static readonly FOLLOWS = 365; - public static readonly FOUND = 366; - public static readonly FULL = 367; - public static readonly FUNCTION = 368; - public static readonly GENERAL = 369; - public static readonly GLOBAL = 370; - public static readonly GRANTS = 371; - public static readonly GROUP_REPLICATION = 372; - public static readonly HANDLER = 373; - public static readonly HASH = 374; - public static readonly HELP = 375; - public static readonly HOST = 376; - public static readonly HOSTS = 377; - public static readonly IDENTIFIED = 378; - public static readonly IGNORE_SERVER_IDS = 379; - public static readonly IMPORT = 380; - public static readonly INDEXES = 381; - public static readonly INITIAL_SIZE = 382; - public static readonly INPLACE = 383; - public static readonly INSERT_METHOD = 384; - public static readonly INSTALL = 385; - public static readonly INSTANCE = 386; - public static readonly INVISIBLE = 387; - public static readonly INVOKER = 388; - public static readonly IO = 389; - public static readonly IO_THREAD = 390; - public static readonly IPC = 391; - public static readonly ISOLATION = 392; - public static readonly ISSUER = 393; - public static readonly JSON = 394; - public static readonly KEY_BLOCK_SIZE = 395; - public static readonly LANGUAGE = 396; - public static readonly LAST = 397; - public static readonly LEAVES = 398; - public static readonly LESS = 399; - public static readonly LEVEL = 400; - public static readonly LIST = 401; - public static readonly LOCAL = 402; - public static readonly LOGFILE = 403; - public static readonly LOGS = 404; - public static readonly MASTER = 405; - public static readonly MASTER_AUTO_POSITION = 406; - public static readonly MASTER_CONNECT_RETRY = 407; - public static readonly MASTER_DELAY = 408; - public static readonly MASTER_HEARTBEAT_PERIOD = 409; - public static readonly MASTER_HOST = 410; - public static readonly MASTER_LOG_FILE = 411; - public static readonly MASTER_LOG_POS = 412; - public static readonly MASTER_PASSWORD = 413; - public static readonly MASTER_PORT = 414; - public static readonly MASTER_RETRY_COUNT = 415; - public static readonly MASTER_SSL = 416; - public static readonly MASTER_SSL_CA = 417; - public static readonly MASTER_SSL_CAPATH = 418; - public static readonly MASTER_SSL_CERT = 419; - public static readonly MASTER_SSL_CIPHER = 420; - public static readonly MASTER_SSL_CRL = 421; - public static readonly MASTER_SSL_CRLPATH = 422; - public static readonly MASTER_SSL_KEY = 423; - public static readonly MASTER_TLS_VERSION = 424; - public static readonly MASTER_USER = 425; - public static readonly MAX_CONNECTIONS_PER_HOUR = 426; - public static readonly MAX_QUERIES_PER_HOUR = 427; - public static readonly MAX_ROWS = 428; - public static readonly MAX_SIZE = 429; - public static readonly MAX_UPDATES_PER_HOUR = 430; - public static readonly MAX_USER_CONNECTIONS = 431; - public static readonly MEDIUM = 432; - public static readonly MERGE = 433; - public static readonly MESSAGE_TEXT = 434; - public static readonly MID = 435; - public static readonly MIGRATE = 436; - public static readonly MIN_ROWS = 437; - public static readonly MODE = 438; - public static readonly MODIFY = 439; - public static readonly MUTEX = 440; - public static readonly MYSQL = 441; - public static readonly MYSQL_ERRNO = 442; - public static readonly NAME = 443; - public static readonly NAMES = 444; - public static readonly NCHAR = 445; - public static readonly NEVER = 446; - public static readonly NEXT = 447; - public static readonly NO = 448; - public static readonly NODEGROUP = 449; - public static readonly NONE = 450; - public static readonly OFFLINE = 451; - public static readonly OFFSET = 452; - public static readonly OJ = 453; - public static readonly OLD_PASSWORD = 454; - public static readonly ONE = 455; - public static readonly ONLINE = 456; - public static readonly ONLY = 457; - public static readonly OPEN = 458; - public static readonly OPTIMIZER_COSTS = 459; - public static readonly OPTIONS = 460; - public static readonly OWNER = 461; - public static readonly PACK_KEYS = 462; - public static readonly PAGE = 463; - public static readonly PARSER = 464; - public static readonly PARTIAL = 465; - public static readonly PARTITIONING = 466; - public static readonly PARTITIONS = 467; - public static readonly PASSWORD = 468; - public static readonly PHASE = 469; - public static readonly PLUGIN = 470; - public static readonly PLUGIN_DIR = 471; - public static readonly PLUGINS = 472; - public static readonly PORT = 473; - public static readonly PRECEDES = 474; - public static readonly PREPARE = 475; - public static readonly PRESERVE = 476; - public static readonly PREV = 477; - public static readonly PROCESSLIST = 478; - public static readonly PROFILE = 479; - public static readonly PROFILES = 480; - public static readonly PROXY = 481; - public static readonly QUERY = 482; - public static readonly QUICK = 483; - public static readonly REBUILD = 484; - public static readonly RECOVER = 485; - public static readonly REDO_BUFFER_SIZE = 486; - public static readonly REDUNDANT = 487; - public static readonly RELAY = 488; - public static readonly RELAY_LOG_FILE = 489; - public static readonly RELAY_LOG_POS = 490; - public static readonly RELAYLOG = 491; - public static readonly REMOVE = 492; - public static readonly REORGANIZE = 493; - public static readonly REPAIR = 494; - public static readonly REPLICATE_DO_DB = 495; - public static readonly REPLICATE_DO_TABLE = 496; - public static readonly REPLICATE_IGNORE_DB = 497; - public static readonly REPLICATE_IGNORE_TABLE = 498; - public static readonly REPLICATE_REWRITE_DB = 499; - public static readonly REPLICATE_WILD_DO_TABLE = 500; - public static readonly REPLICATE_WILD_IGNORE_TABLE = 501; - public static readonly REPLICATION = 502; - public static readonly RESET = 503; - public static readonly RESUME = 504; - public static readonly RETURNED_SQLSTATE = 505; - public static readonly RETURNS = 506; - public static readonly ROLE = 507; - public static readonly ROLLBACK = 508; - public static readonly ROLLUP = 509; - public static readonly ROTATE = 510; - public static readonly ROW = 511; - public static readonly ROWS = 512; - public static readonly ROW_FORMAT = 513; - public static readonly SAVEPOINT = 514; - public static readonly SCHEDULE = 515; - public static readonly SECURITY = 516; - public static readonly SERVER = 517; - public static readonly SESSION = 518; - public static readonly SHARE = 519; - public static readonly SHARED = 520; - public static readonly SIGNED = 521; - public static readonly SIMPLE = 522; - public static readonly SLAVE = 523; - public static readonly SLOW = 524; - public static readonly SNAPSHOT = 525; - public static readonly SOCKET = 526; - public static readonly SOME = 527; - public static readonly SONAME = 528; - public static readonly SOUNDS = 529; - public static readonly SOURCE = 530; - public static readonly SQL_AFTER_GTIDS = 531; - public static readonly SQL_AFTER_MTS_GAPS = 532; - public static readonly SQL_BEFORE_GTIDS = 533; - public static readonly SQL_BUFFER_RESULT = 534; - public static readonly SQL_CACHE = 535; - public static readonly SQL_NO_CACHE = 536; - public static readonly SQL_THREAD = 537; - public static readonly START = 538; - public static readonly STARTS = 539; - public static readonly STATS_AUTO_RECALC = 540; - public static readonly STATS_PERSISTENT = 541; - public static readonly STATS_SAMPLE_PAGES = 542; - public static readonly STATUS = 543; - public static readonly STOP = 544; - public static readonly STORAGE = 545; - public static readonly STORED = 546; - public static readonly STRING = 547; - public static readonly SUBCLASS_ORIGIN = 548; - public static readonly SUBJECT = 549; - public static readonly SUBPARTITION = 550; - public static readonly SUBPARTITIONS = 551; - public static readonly SUSPEND = 552; - public static readonly SWAPS = 553; - public static readonly SWITCHES = 554; - public static readonly TABLE_NAME = 555; - public static readonly TABLESPACE = 556; - public static readonly TEMPORARY = 557; - public static readonly TEMPTABLE = 558; - public static readonly THAN = 559; - public static readonly TRADITIONAL = 560; - public static readonly TRANSACTION = 561; - public static readonly TRANSACTIONAL = 562; - public static readonly TRIGGERS = 563; - public static readonly TRUNCATE = 564; - public static readonly UNDEFINED = 565; - public static readonly UNDOFILE = 566; - public static readonly UNDO_BUFFER_SIZE = 567; - public static readonly UNINSTALL = 568; - public static readonly UNKNOWN = 569; - public static readonly UNTIL = 570; - public static readonly UPGRADE = 571; - public static readonly USER = 572; - public static readonly USE_FRM = 573; - public static readonly USER_RESOURCES = 574; - public static readonly VALIDATION = 575; - public static readonly VALUE = 576; - public static readonly VARIABLES = 577; - public static readonly VIEW = 578; - public static readonly VIRTUAL = 579; - public static readonly VISIBLE = 580; - public static readonly WAIT = 581; - public static readonly WARNINGS = 582; - public static readonly WITHOUT = 583; - public static readonly WORK = 584; - public static readonly WRAPPER = 585; - public static readonly X509 = 586; - public static readonly XA = 587; - public static readonly XML = 588; - public static readonly EUR = 589; - public static readonly USA = 590; - public static readonly JIS = 591; - public static readonly ISO = 592; - public static readonly INTERNAL = 593; - public static readonly QUARTER = 594; - public static readonly MONTH = 595; - public static readonly DAY = 596; - public static readonly HOUR = 597; - public static readonly MINUTE = 598; - public static readonly WEEK = 599; - public static readonly SECOND = 600; - public static readonly MICROSECOND = 601; - public static readonly TABLES = 602; - public static readonly ROUTINE = 603; - public static readonly EXECUTE = 604; - public static readonly FILE = 605; - public static readonly PROCESS = 606; - public static readonly RELOAD = 607; - public static readonly SHUTDOWN = 608; - public static readonly SUPER = 609; - public static readonly PRIVILEGES = 610; - public static readonly APPLICATION_PASSWORD_ADMIN = 611; - public static readonly AUDIT_ADMIN = 612; - public static readonly BACKUP_ADMIN = 613; - public static readonly BINLOG_ADMIN = 614; - public static readonly BINLOG_ENCRYPTION_ADMIN = 615; - public static readonly CLONE_ADMIN = 616; - public static readonly CONNECTION_ADMIN = 617; - public static readonly ENCRYPTION_KEY_ADMIN = 618; - public static readonly FIREWALL_ADMIN = 619; - public static readonly FIREWALL_USER = 620; - public static readonly GROUP_REPLICATION_ADMIN = 621; - public static readonly INNODB_REDO_LOG_ARCHIVE = 622; - public static readonly NDB_STORED_USER = 623; - public static readonly PERSIST_RO_VARIABLES_ADMIN = 624; - public static readonly REPLICATION_APPLIER = 625; - public static readonly REPLICATION_SLAVE_ADMIN = 626; - public static readonly RESOURCE_GROUP_ADMIN = 627; - public static readonly RESOURCE_GROUP_USER = 628; - public static readonly ROLE_ADMIN = 629; - public static readonly SESSION_VARIABLES_ADMIN = 630; - public static readonly SET_USER_ID = 631; - public static readonly SHOW_ROUTINE = 632; - public static readonly SYSTEM_VARIABLES_ADMIN = 633; - public static readonly TABLE_ENCRYPTION_ADMIN = 634; - public static readonly VERSION_TOKEN_ADMIN = 635; - public static readonly XA_RECOVER_ADMIN = 636; - public static readonly ARMSCII8 = 637; - public static readonly ASCII = 638; - public static readonly BIG5 = 639; - public static readonly CP1250 = 640; - public static readonly CP1251 = 641; - public static readonly CP1256 = 642; - public static readonly CP1257 = 643; - public static readonly CP850 = 644; - public static readonly CP852 = 645; - public static readonly CP866 = 646; - public static readonly CP932 = 647; - public static readonly DEC8 = 648; - public static readonly EUCJPMS = 649; - public static readonly EUCKR = 650; - public static readonly GB2312 = 651; - public static readonly GBK = 652; - public static readonly GEOSTD8 = 653; - public static readonly GREEK = 654; - public static readonly HEBREW = 655; - public static readonly HP8 = 656; - public static readonly KEYBCS2 = 657; - public static readonly KOI8R = 658; - public static readonly KOI8U = 659; - public static readonly LATIN1 = 660; - public static readonly LATIN2 = 661; - public static readonly LATIN5 = 662; - public static readonly LATIN7 = 663; - public static readonly MACCE = 664; - public static readonly MACROMAN = 665; - public static readonly SJIS = 666; - public static readonly SWE7 = 667; - public static readonly TIS620 = 668; - public static readonly UCS2 = 669; - public static readonly UJIS = 670; - public static readonly UTF16 = 671; - public static readonly UTF16LE = 672; - public static readonly UTF32 = 673; - public static readonly UTF8 = 674; - public static readonly UTF8MB3 = 675; - public static readonly UTF8MB4 = 676; - public static readonly ARCHIVE = 677; - public static readonly BLACKHOLE = 678; - public static readonly CSV = 679; - public static readonly FEDERATED = 680; - public static readonly INNODB = 681; - public static readonly MEMORY = 682; - public static readonly MRG_MYISAM = 683; - public static readonly MYISAM = 684; - public static readonly NDB = 685; - public static readonly NDBCLUSTER = 686; - public static readonly PERFORMANCE_SCHEMA = 687; - public static readonly TOKUDB = 688; - public static readonly REPEATABLE = 689; - public static readonly COMMITTED = 690; - public static readonly UNCOMMITTED = 691; - public static readonly SERIALIZABLE = 692; - public static readonly GEOMETRYCOLLECTION = 693; - public static readonly GEOMCOLLECTION = 694; - public static readonly GEOMETRY = 695; - public static readonly LINESTRING = 696; - public static readonly MULTILINESTRING = 697; - public static readonly MULTIPOINT = 698; - public static readonly MULTIPOLYGON = 699; - public static readonly POINT = 700; - public static readonly POLYGON = 701; - public static readonly ABS = 702; - public static readonly ACOS = 703; - public static readonly ADDDATE = 704; - public static readonly ADDTIME = 705; - public static readonly AES_DECRYPT = 706; - public static readonly AES_ENCRYPT = 707; - public static readonly AREA = 708; - public static readonly ASBINARY = 709; - public static readonly ASIN = 710; - public static readonly ASTEXT = 711; - public static readonly ASWKB = 712; - public static readonly ASWKT = 713; - public static readonly ASYMMETRIC_DECRYPT = 714; - public static readonly ASYMMETRIC_DERIVE = 715; - public static readonly ASYMMETRIC_ENCRYPT = 716; - public static readonly ASYMMETRIC_SIGN = 717; - public static readonly ASYMMETRIC_VERIFY = 718; - public static readonly ATAN = 719; - public static readonly ATAN2 = 720; - public static readonly BENCHMARK = 721; - public static readonly BIN = 722; - public static readonly BIT_COUNT = 723; - public static readonly BIT_LENGTH = 724; - public static readonly BUFFER = 725; - public static readonly CATALOG_NAME = 726; - public static readonly CEIL = 727; - public static readonly CEILING = 728; - public static readonly CENTROID = 729; - public static readonly CHARACTER_LENGTH = 730; - public static readonly CHARSET = 731; - public static readonly CHAR_LENGTH = 732; - public static readonly COERCIBILITY = 733; - public static readonly COLLATION = 734; - public static readonly COMPRESS = 735; - public static readonly CONCAT = 736; - public static readonly CONCAT_WS = 737; - public static readonly CONNECTION_ID = 738; - public static readonly CONV = 739; - public static readonly CONVERT_TZ = 740; - public static readonly COS = 741; - public static readonly COT = 742; - public static readonly CRC32 = 743; - public static readonly CREATE_ASYMMETRIC_PRIV_KEY = 744; - public static readonly CREATE_ASYMMETRIC_PUB_KEY = 745; - public static readonly CREATE_DH_PARAMETERS = 746; - public static readonly CREATE_DIGEST = 747; - public static readonly CROSSES = 748; - public static readonly DATEDIFF = 749; - public static readonly DATE_FORMAT = 750; - public static readonly DAYNAME = 751; - public static readonly DAYOFMONTH = 752; - public static readonly DAYOFWEEK = 753; - public static readonly DAYOFYEAR = 754; - public static readonly DECODE = 755; - public static readonly DEGREES = 756; - public static readonly DES_DECRYPT = 757; - public static readonly DES_ENCRYPT = 758; - public static readonly DIMENSION = 759; - public static readonly DISJOINT = 760; - public static readonly ELT = 761; - public static readonly ENCODE = 762; - public static readonly ENCRYPT = 763; - public static readonly ENDPOINT = 764; - public static readonly ENVELOPE = 765; - public static readonly EQUALS = 766; - public static readonly EXP = 767; - public static readonly EXPORT_SET = 768; - public static readonly EXTERIORRING = 769; - public static readonly EXTRACTVALUE = 770; - public static readonly FIELD = 771; - public static readonly FIND_IN_SET = 772; - public static readonly FLOOR = 773; - public static readonly FORMAT = 774; - public static readonly FOUND_ROWS = 775; - public static readonly FROM_BASE64 = 776; - public static readonly FROM_DAYS = 777; - public static readonly FROM_UNIXTIME = 778; - public static readonly GEOMCOLLFROMTEXT = 779; - public static readonly GEOMCOLLFROMWKB = 780; - public static readonly GEOMETRYCOLLECTIONFROMTEXT = 781; - public static readonly GEOMETRYCOLLECTIONFROMWKB = 782; - public static readonly GEOMETRYFROMTEXT = 783; - public static readonly GEOMETRYFROMWKB = 784; - public static readonly GEOMETRYN = 785; - public static readonly GEOMETRYTYPE = 786; - public static readonly GEOMFROMTEXT = 787; - public static readonly GEOMFROMWKB = 788; - public static readonly GET_FORMAT = 789; - public static readonly GET_LOCK = 790; - public static readonly GLENGTH = 791; - public static readonly GREATEST = 792; - public static readonly GTID_SUBSET = 793; - public static readonly GTID_SUBTRACT = 794; - public static readonly HEX = 795; - public static readonly IFNULL = 796; - public static readonly INET6_ATON = 797; - public static readonly INET6_NTOA = 798; - public static readonly INET_ATON = 799; - public static readonly INET_NTOA = 800; - public static readonly INSTR = 801; - public static readonly INTERIORRINGN = 802; - public static readonly INTERSECTS = 803; - public static readonly ISCLOSED = 804; - public static readonly ISEMPTY = 805; - public static readonly ISNULL = 806; - public static readonly ISSIMPLE = 807; - public static readonly IS_FREE_LOCK = 808; - public static readonly IS_IPV4 = 809; - public static readonly IS_IPV4_COMPAT = 810; - public static readonly IS_IPV4_MAPPED = 811; - public static readonly IS_IPV6 = 812; - public static readonly IS_USED_LOCK = 813; - public static readonly LAST_INSERT_ID = 814; - public static readonly LCASE = 815; - public static readonly LEAST = 816; - public static readonly LENGTH = 817; - public static readonly LINEFROMTEXT = 818; - public static readonly LINEFROMWKB = 819; - public static readonly LINESTRINGFROMTEXT = 820; - public static readonly LINESTRINGFROMWKB = 821; - public static readonly LN = 822; - public static readonly LOAD_FILE = 823; - public static readonly LOCATE = 824; - public static readonly LOG = 825; - public static readonly LOG10 = 826; - public static readonly LOG2 = 827; - public static readonly LOWER = 828; - public static readonly LPAD = 829; - public static readonly LTRIM = 830; - public static readonly MAKEDATE = 831; - public static readonly MAKETIME = 832; - public static readonly MAKE_SET = 833; - public static readonly MASTER_POS_WAIT = 834; - public static readonly MBRCONTAINS = 835; - public static readonly MBRDISJOINT = 836; - public static readonly MBREQUAL = 837; - public static readonly MBRINTERSECTS = 838; - public static readonly MBROVERLAPS = 839; - public static readonly MBRTOUCHES = 840; - public static readonly MBRWITHIN = 841; - public static readonly MD5 = 842; - public static readonly MLINEFROMTEXT = 843; - public static readonly MLINEFROMWKB = 844; - public static readonly MONTHNAME = 845; - public static readonly MPOINTFROMTEXT = 846; - public static readonly MPOINTFROMWKB = 847; - public static readonly MPOLYFROMTEXT = 848; - public static readonly MPOLYFROMWKB = 849; - public static readonly MULTILINESTRINGFROMTEXT = 850; - public static readonly MULTILINESTRINGFROMWKB = 851; - public static readonly MULTIPOINTFROMTEXT = 852; - public static readonly MULTIPOINTFROMWKB = 853; - public static readonly MULTIPOLYGONFROMTEXT = 854; - public static readonly MULTIPOLYGONFROMWKB = 855; - public static readonly NAME_CONST = 856; - public static readonly NULLIF = 857; - public static readonly NUMGEOMETRIES = 858; - public static readonly NUMINTERIORRINGS = 859; - public static readonly NUMPOINTS = 860; - public static readonly OCT = 861; - public static readonly OCTET_LENGTH = 862; - public static readonly ORD = 863; - public static readonly OVERLAPS = 864; - public static readonly PERIOD_ADD = 865; - public static readonly PERIOD_DIFF = 866; - public static readonly PI = 867; - public static readonly POINTFROMTEXT = 868; - public static readonly POINTFROMWKB = 869; - public static readonly POINTN = 870; - public static readonly POLYFROMTEXT = 871; - public static readonly POLYFROMWKB = 872; - public static readonly POLYGONFROMTEXT = 873; - public static readonly POLYGONFROMWKB = 874; - public static readonly POW = 875; - public static readonly POWER = 876; - public static readonly QUOTE = 877; - public static readonly RADIANS = 878; - public static readonly RAND = 879; - public static readonly RANDOM_BYTES = 880; - public static readonly RELEASE_LOCK = 881; - public static readonly REVERSE = 882; - public static readonly ROUND = 883; - public static readonly ROW_COUNT = 884; - public static readonly RPAD = 885; - public static readonly RTRIM = 886; - public static readonly SEC_TO_TIME = 887; - public static readonly SESSION_USER = 888; - public static readonly SHA = 889; - public static readonly SHA1 = 890; - public static readonly SHA2 = 891; - public static readonly SCHEMA_NAME = 892; - public static readonly SIGN = 893; - public static readonly SIN = 894; - public static readonly SLEEP = 895; - public static readonly SOUNDEX = 896; - public static readonly SQL_THREAD_WAIT_AFTER_GTIDS = 897; - public static readonly SQRT = 898; - public static readonly SRID = 899; - public static readonly STARTPOINT = 900; - public static readonly STRCMP = 901; - public static readonly STR_TO_DATE = 902; - public static readonly ST_AREA = 903; - public static readonly ST_ASBINARY = 904; - public static readonly ST_ASTEXT = 905; - public static readonly ST_ASWKB = 906; - public static readonly ST_ASWKT = 907; - public static readonly ST_BUFFER = 908; - public static readonly ST_CENTROID = 909; - public static readonly ST_CONTAINS = 910; - public static readonly ST_CROSSES = 911; - public static readonly ST_DIFFERENCE = 912; - public static readonly ST_DIMENSION = 913; - public static readonly ST_DISJOINT = 914; - public static readonly ST_DISTANCE = 915; - public static readonly ST_ENDPOINT = 916; - public static readonly ST_ENVELOPE = 917; - public static readonly ST_EQUALS = 918; - public static readonly ST_EXTERIORRING = 919; - public static readonly ST_GEOMCOLLFROMTEXT = 920; - public static readonly ST_GEOMCOLLFROMTXT = 921; - public static readonly ST_GEOMCOLLFROMWKB = 922; - public static readonly ST_GEOMETRYCOLLECTIONFROMTEXT = 923; - public static readonly ST_GEOMETRYCOLLECTIONFROMWKB = 924; - public static readonly ST_GEOMETRYFROMTEXT = 925; - public static readonly ST_GEOMETRYFROMWKB = 926; - public static readonly ST_GEOMETRYN = 927; - public static readonly ST_GEOMETRYTYPE = 928; - public static readonly ST_GEOMFROMTEXT = 929; - public static readonly ST_GEOMFROMWKB = 930; - public static readonly ST_INTERIORRINGN = 931; - public static readonly ST_INTERSECTION = 932; - public static readonly ST_INTERSECTS = 933; - public static readonly ST_ISCLOSED = 934; - public static readonly ST_ISEMPTY = 935; - public static readonly ST_ISSIMPLE = 936; - public static readonly ST_LINEFROMTEXT = 937; - public static readonly ST_LINEFROMWKB = 938; - public static readonly ST_LINESTRINGFROMTEXT = 939; - public static readonly ST_LINESTRINGFROMWKB = 940; - public static readonly ST_NUMGEOMETRIES = 941; - public static readonly ST_NUMINTERIORRING = 942; - public static readonly ST_NUMINTERIORRINGS = 943; - public static readonly ST_NUMPOINTS = 944; - public static readonly ST_OVERLAPS = 945; - public static readonly ST_POINTFROMTEXT = 946; - public static readonly ST_POINTFROMWKB = 947; - public static readonly ST_POINTN = 948; - public static readonly ST_POLYFROMTEXT = 949; - public static readonly ST_POLYFROMWKB = 950; - public static readonly ST_POLYGONFROMTEXT = 951; - public static readonly ST_POLYGONFROMWKB = 952; - public static readonly ST_SRID = 953; - public static readonly ST_STARTPOINT = 954; - public static readonly ST_SYMDIFFERENCE = 955; - public static readonly ST_TOUCHES = 956; - public static readonly ST_UNION = 957; - public static readonly ST_WITHIN = 958; - public static readonly ST_X = 959; - public static readonly ST_Y = 960; - public static readonly SUBDATE = 961; - public static readonly SUBSTRING_INDEX = 962; - public static readonly SUBTIME = 963; - public static readonly SYSTEM_USER = 964; - public static readonly TAN = 965; - public static readonly TIMEDIFF = 966; - public static readonly TIMESTAMPADD = 967; - public static readonly TIMESTAMPDIFF = 968; - public static readonly TIME_FORMAT = 969; - public static readonly TIME_TO_SEC = 970; - public static readonly TOUCHES = 971; - public static readonly TO_BASE64 = 972; - public static readonly TO_DAYS = 973; - public static readonly TO_SECONDS = 974; - public static readonly UCASE = 975; - public static readonly UNCOMPRESS = 976; - public static readonly UNCOMPRESSED_LENGTH = 977; - public static readonly UNHEX = 978; - public static readonly UNIX_TIMESTAMP = 979; - public static readonly UPDATEXML = 980; - public static readonly UPPER = 981; - public static readonly UUID = 982; - public static readonly UUID_SHORT = 983; - public static readonly VALIDATE_PASSWORD_STRENGTH = 984; - public static readonly VERSION = 985; - public static readonly WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 986; - public static readonly WEEKDAY = 987; - public static readonly WEEKOFYEAR = 988; - public static readonly WEIGHT_STRING = 989; - public static readonly WITHIN = 990; - public static readonly YEARWEEK = 991; - public static readonly Y_FUNCTION = 992; - public static readonly X_FUNCTION = 993; - public static readonly VAR_ASSIGN = 994; - public static readonly PLUS_ASSIGN = 995; - public static readonly MINUS_ASSIGN = 996; - public static readonly MULT_ASSIGN = 997; - public static readonly DIV_ASSIGN = 998; - public static readonly MOD_ASSIGN = 999; - public static readonly AND_ASSIGN = 1000; - public static readonly XOR_ASSIGN = 1001; - public static readonly OR_ASSIGN = 1002; - public static readonly STAR = 1003; - public static readonly DIVIDE = 1004; - public static readonly MODULE = 1005; - public static readonly PLUS = 1006; - public static readonly MINUSMINUS = 1007; - public static readonly MINUS = 1008; - public static readonly DIV = 1009; - public static readonly MOD = 1010; - public static readonly EQUAL_SYMBOL = 1011; - public static readonly GREATER_SYMBOL = 1012; - public static readonly LESS_SYMBOL = 1013; - public static readonly EXCLAMATION_SYMBOL = 1014; - public static readonly BIT_NOT_OP = 1015; - public static readonly BIT_OR_OP = 1016; - public static readonly BIT_AND_OP = 1017; - public static readonly BIT_XOR_OP = 1018; - public static readonly DOT = 1019; - public static readonly LR_BRACKET = 1020; - public static readonly RR_BRACKET = 1021; - public static readonly COMMA = 1022; - public static readonly SEMI = 1023; - public static readonly AT_SIGN = 1024; - public static readonly ZERO_DECIMAL = 1025; - public static readonly ONE_DECIMAL = 1026; - public static readonly TWO_DECIMAL = 1027; - public static readonly SINGLE_QUOTE_SYMB = 1028; - public static readonly DOUBLE_QUOTE_SYMB = 1029; - public static readonly REVERSE_QUOTE_SYMB = 1030; - public static readonly COLON_SYMB = 1031; - public static readonly CHARSET_REVERSE_QOUTE_STRING = 1032; - public static readonly FILESIZE_LITERAL = 1033; - public static readonly START_NATIONAL_STRING_LITERAL = 1034; - public static readonly STRING_LITERAL = 1035; - public static readonly DECIMAL_LITERAL = 1036; - public static readonly HEXADECIMAL_LITERAL = 1037; - public static readonly REAL_LITERAL = 1038; - public static readonly NULL_SPEC_LITERAL = 1039; - public static readonly BIT_STRING = 1040; - public static readonly STRING_CHARSET_NAME = 1041; - public static readonly DOT_ID = 1042; - public static readonly ID = 1043; - public static readonly REVERSE_QUOTE_ID = 1044; - public static readonly STRING_USER_NAME = 1045; - public static readonly LOCAL_ID = 1046; - public static readonly GLOBAL_ID = 1047; - public static readonly ERROR_RECONGNIGION = 1048; - public static readonly MYSQLCOMMENT = 2; - public static readonly ERRORCHANNEL = 3; - - // tslint:disable:no-trailing-whitespace - public static readonly channelNames: string[] = [ - "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "MYSQLCOMMENT", "ERRORCHANNEL", - ]; - - // tslint:disable:no-trailing-whitespace - public static readonly modeNames: string[] = [ - "DEFAULT_MODE", - ]; - - public static readonly ruleNames: string[] = [ - "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", "ADD", - "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "AS", "ASC", "BEFORE", "BETWEEN", - "BOTH", "BY", "CALL", "CASCADE", "CASE", "CAST", "CHANGE", "CHARACTER", - "CHECK", "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", "CONTINUE", "CONVERT", - "CREATE", "CROSS", "CURRENT", "CURRENT_USER", "CURSOR", "DATABASE", "DATABASES", - "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", "DESCRIBE", "DETERMINISTIC", - "DIAGNOSTICS", "DISTINCT", "DISTINCTROW", "DROP", "EACH", "ELSE", "ELSEIF", - "ENCLOSED", "ESCAPED", "EXISTS", "EXIT", "EXPLAIN", "FALSE", "FETCH", - "FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", "GENERATED", "GET", "GRANT", - "GROUP", "HAVING", "HIGH_PRIORITY", "IF", "IGNORE", "IN", "INDEX", "INFILE", - "INNER", "INOUT", "INSERT", "INTERVAL", "INTO", "IS", "ITERATE", "JOIN", - "KEY", "KEYS", "KILL", "LEADING", "LEAVE", "LEFT", "LIKE", "LIMIT", "LINEAR", - "LINES", "LOAD", "LOCK", "LOOP", "LOW_PRIORITY", "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", - "MATCH", "MAXVALUE", "MODIFIES", "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", - "NULL_LITERAL", "NUMBER", "ON", "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", - "ORDER", "OUT", "OUTER", "OUTFILE", "PARTITION", "PRIMARY", "PROCEDURE", - "PURGE", "RANGE", "READ", "READS", "REFERENCES", "REGEXP", "RELEASE", - "RENAME", "REPEAT", "REPLACE", "REQUIRE", "RESIGNAL", "RESTRICT", "RETURN", - "REVOKE", "RIGHT", "RLIKE", "SCHEMA", "SCHEMAS", "SELECT", "SET", "SEPARATOR", - "SHOW", "SIGNAL", "SPATIAL", "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", - "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SSL", "STACKED", - "STARTING", "STRAIGHT_JOIN", "TABLE", "TERMINATED", "THEN", "TO", "TRAILING", - "TRIGGER", "TRUE", "UNDO", "UNION", "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", - "USAGE", "USE", "USING", "VALUES", "WHEN", "WHERE", "WHILE", "WITH", "WRITE", - "XOR", "ZEROFILL", "TINYINT", "SMALLINT", "MEDIUMINT", "MIDDLEINT", "INT", - "INT1", "INT2", "INT3", "INT4", "INT8", "INTEGER", "BIGINT", "REAL", "DOUBLE", - "PRECISION", "FLOAT", "FLOAT4", "FLOAT8", "DECIMAL", "DEC", "NUMERIC", - "DATE", "TIME", "TIMESTAMP", "DATETIME", "YEAR", "CHAR", "VARCHAR", "NVARCHAR", - "NATIONAL", "BINARY", "VARBINARY", "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONG", - "LONGBLOB", "TINYTEXT", "TEXT", "MEDIUMTEXT", "LONGTEXT", "ENUM", "VARYING", - "SERIAL", "YEAR_MONTH", "DAY_HOUR", "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", - "HOUR_SECOND", "MINUTE_SECOND", "SECOND_MICROSECOND", "MINUTE_MICROSECOND", - "HOUR_MICROSECOND", "DAY_MICROSECOND", "JSON_VALID", "JSON_SCHEMA_VALID", - "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", "COUNT", "GROUP_CONCAT", "MAX", - "MIN", "STD", "STDDEV", "STDDEV_POP", "STDDEV_SAMP", "SUM", "VAR_POP", - "VAR_SAMP", "VARIANCE", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", - "LOCALTIME", "CURDATE", "CURTIME", "DATE_ADD", "DATE_SUB", "EXTRACT", - "LOCALTIMESTAMP", "NOW", "POSITION", "SUBSTR", "SUBSTRING", "SYSDATE", - "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", "ACCOUNT", "ACTION", - "AFTER", "AGGREGATE", "ALGORITHM", "ANY", "AT", "AUTHORS", "AUTOCOMMIT", - "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", "BINLOG", - "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", "CASCADED", "CHAIN", - "CHANGED", "CHANNEL", "CHECKSUM", "PAGE_CHECKSUM", "CIPHER", "CLASS_ORIGIN", - "CLIENT", "CLOSE", "COALESCE", "CODE", "COLUMNS", "COLUMN_FORMAT", "COLUMN_NAME", - "COMMENT", "COMMIT", "COMPACT", "COMPLETION", "COMPRESSED", "COMPRESSION", - "CONCURRENT", "CONNECTION", "CONSISTENT", "CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", - "CONSTRAINT_NAME", "CONTAINS", "CONTEXT", "CONTRIBUTORS", "COPY", "CPU", - "CURSOR_NAME", "DATA", "DATAFILE", "DEALLOCATE", "DEFAULT_AUTH", "DEFINER", - "DELAY_KEY_WRITE", "DES_KEY_FILE", "DIRECTORY", "DISABLE", "DISCARD", - "DISK", "DO", "DUMPFILE", "DUPLICATE", "DYNAMIC", "ENABLE", "ENCRYPTION", - "END", "ENDS", "ENGINE", "ENGINES", "ERROR", "ERRORS", "ESCAPE", "EVEN", - "EVENT", "EVENTS", "EVERY", "EXCHANGE", "EXCLUSIVE", "EXPIRE", "EXPORT", - "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", "FIELDS", "FILE_BLOCK_SIZE", - "FILTER", "FIRST", "FIXED", "FLUSH", "FOLLOWS", "FOUND", "FULL", "FUNCTION", - "GENERAL", "GLOBAL", "GRANTS", "GROUP_REPLICATION", "HANDLER", "HASH", - "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", "IMPORT", - "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", "INSTALL", "INSTANCE", - "INVISIBLE", "INVOKER", "IO", "IO_THREAD", "IPC", "ISOLATION", "ISSUER", - "JSON", "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", "LEVEL", - "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", "MASTER_AUTO_POSITION", - "MASTER_CONNECT_RETRY", "MASTER_DELAY", "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", - "MASTER_LOG_FILE", "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", - "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", - "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", - "MASTER_SSL_KEY", "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", - "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", - "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MESSAGE_TEXT", "MID", "MIGRATE", - "MIN_ROWS", "MODE", "MODIFY", "MUTEX", "MYSQL", "MYSQL_ERRNO", "NAME", - "NAMES", "NCHAR", "NEVER", "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", - "OFFSET", "OJ", "OLD_PASSWORD", "ONE", "ONLINE", "ONLY", "OPEN", "OPTIMIZER_COSTS", - "OPTIONS", "OWNER", "PACK_KEYS", "PAGE", "PARSER", "PARTIAL", "PARTITIONING", - "PARTITIONS", "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", - "PORT", "PRECEDES", "PREPARE", "PRESERVE", "PREV", "PROCESSLIST", "PROFILE", - "PROFILES", "PROXY", "QUERY", "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", - "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", "RELAYLOG", "REMOVE", - "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", "REPLICATE_IGNORE_DB", - "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", "REPLICATE_WILD_DO_TABLE", - "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", "RESET", "RESUME", "RETURNED_SQLSTATE", - "RETURNS", "ROLE", "ROLLBACK", "ROLLUP", "ROTATE", "ROW", "ROWS", "ROW_FORMAT", - "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", "SESSION", "SHARE", "SHARED", - "SIGNED", "SIMPLE", "SLAVE", "SLOW", "SNAPSHOT", "SOCKET", "SOME", "SONAME", - "SOUNDS", "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", "SQL_BEFORE_GTIDS", - "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_NO_CACHE", "SQL_THREAD", "START", - "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT", "STATS_SAMPLE_PAGES", - "STATUS", "STOP", "STORAGE", "STORED", "STRING", "SUBCLASS_ORIGIN", "SUBJECT", - "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", "SWAPS", "SWITCHES", "TABLE_NAME", - "TABLESPACE", "TEMPORARY", "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", - "TRANSACTIONAL", "TRIGGERS", "TRUNCATE", "UNDEFINED", "UNDOFILE", "UNDO_BUFFER_SIZE", - "UNINSTALL", "UNKNOWN", "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", - "VALIDATION", "VALUE", "VARIABLES", "VIEW", "VIRTUAL", "VISIBLE", "WAIT", - "WARNINGS", "WITHOUT", "WORK", "WRAPPER", "X509", "XA", "XML", "EUR", - "USA", "JIS", "ISO", "INTERNAL", "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", - "WEEK", "SECOND", "MICROSECOND", "TABLES", "ROUTINE", "EXECUTE", "FILE", - "PROCESS", "RELOAD", "SHUTDOWN", "SUPER", "PRIVILEGES", "APPLICATION_PASSWORD_ADMIN", - "AUDIT_ADMIN", "BACKUP_ADMIN", "BINLOG_ADMIN", "BINLOG_ENCRYPTION_ADMIN", - "CLONE_ADMIN", "CONNECTION_ADMIN", "ENCRYPTION_KEY_ADMIN", "FIREWALL_ADMIN", - "FIREWALL_USER", "GROUP_REPLICATION_ADMIN", "INNODB_REDO_LOG_ARCHIVE", - "NDB_STORED_USER", "PERSIST_RO_VARIABLES_ADMIN", "REPLICATION_APPLIER", - "REPLICATION_SLAVE_ADMIN", "RESOURCE_GROUP_ADMIN", "RESOURCE_GROUP_USER", - "ROLE_ADMIN", "SESSION_VARIABLES_ADMIN", "SET_USER_ID", "SHOW_ROUTINE", - "SYSTEM_VARIABLES_ADMIN", "TABLE_ENCRYPTION_ADMIN", "VERSION_TOKEN_ADMIN", - "XA_RECOVER_ADMIN", "ARMSCII8", "ASCII", "BIG5", "CP1250", "CP1251", "CP1256", - "CP1257", "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", "EUCKR", - "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", "HP8", "KEYBCS2", "KOI8R", - "KOI8U", "LATIN1", "LATIN2", "LATIN5", "LATIN7", "MACCE", "MACROMAN", - "SJIS", "SWE7", "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", - "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", "CSV", "FEDERATED", - "INNODB", "MEMORY", "MRG_MYISAM", "MYISAM", "NDB", "NDBCLUSTER", "PERFORMANCE_SCHEMA", - "TOKUDB", "REPEATABLE", "COMMITTED", "UNCOMMITTED", "SERIALIZABLE", "GEOMETRYCOLLECTION", - "GEOMCOLLECTION", "GEOMETRY", "LINESTRING", "MULTILINESTRING", "MULTIPOINT", - "MULTIPOLYGON", "POINT", "POLYGON", "ABS", "ACOS", "ADDDATE", "ADDTIME", - "AES_DECRYPT", "AES_ENCRYPT", "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", - "ASWKT", "ASYMMETRIC_DECRYPT", "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", - "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", "ATAN", "ATAN2", "BENCHMARK", - "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", "CATALOG_NAME", "CEIL", "CEILING", - "CENTROID", "CHARACTER_LENGTH", "CHARSET", "CHAR_LENGTH", "COERCIBILITY", - "COLLATION", "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", "CONV", - "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", "CREATE_ASYMMETRIC_PUB_KEY", - "CREATE_DH_PARAMETERS", "CREATE_DIGEST", "CROSSES", "DATEDIFF", "DATE_FORMAT", - "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", "DECODE", "DEGREES", - "DES_DECRYPT", "DES_ENCRYPT", "DIMENSION", "DISJOINT", "ELT", "ENCODE", - "ENCRYPT", "ENDPOINT", "ENVELOPE", "EQUALS", "EXP", "EXPORT_SET", "EXTERIORRING", - "EXTRACTVALUE", "FIELD", "FIND_IN_SET", "FLOOR", "FORMAT", "FOUND_ROWS", - "FROM_BASE64", "FROM_DAYS", "FROM_UNIXTIME", "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", - "GEOMETRYCOLLECTIONFROMTEXT", "GEOMETRYCOLLECTIONFROMWKB", "GEOMETRYFROMTEXT", - "GEOMETRYFROMWKB", "GEOMETRYN", "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", - "GET_FORMAT", "GET_LOCK", "GLENGTH", "GREATEST", "GTID_SUBSET", "GTID_SUBTRACT", - "HEX", "IFNULL", "INET6_ATON", "INET6_NTOA", "INET_ATON", "INET_NTOA", - "INSTR", "INTERIORRINGN", "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", - "ISSIMPLE", "IS_FREE_LOCK", "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", - "IS_IPV6", "IS_USED_LOCK", "LAST_INSERT_ID", "LCASE", "LEAST", "LENGTH", - "LINEFROMTEXT", "LINEFROMWKB", "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", - "LN", "LOAD_FILE", "LOCATE", "LOG", "LOG10", "LOG2", "LOWER", "LPAD", - "LTRIM", "MAKEDATE", "MAKETIME", "MAKE_SET", "MASTER_POS_WAIT", "MBRCONTAINS", - "MBRDISJOINT", "MBREQUAL", "MBRINTERSECTS", "MBROVERLAPS", "MBRTOUCHES", - "MBRWITHIN", "MD5", "MLINEFROMTEXT", "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", - "MPOINTFROMWKB", "MPOLYFROMTEXT", "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", - "MULTILINESTRINGFROMWKB", "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", "MULTIPOLYGONFROMTEXT", - "MULTIPOLYGONFROMWKB", "NAME_CONST", "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", - "NUMPOINTS", "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", "PERIOD_DIFF", - "PI", "POINTFROMTEXT", "POINTFROMWKB", "POINTN", "POLYFROMTEXT", "POLYFROMWKB", - "POLYGONFROMTEXT", "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", - "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", "ROUND", "ROW_COUNT", - "RPAD", "RTRIM", "SEC_TO_TIME", "SESSION_USER", "SHA", "SHA1", "SHA2", - "SCHEMA_NAME", "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", - "SQRT", "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", "ST_AREA", "ST_ASBINARY", - "ST_ASTEXT", "ST_ASWKB", "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", - "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", "ST_DISTANCE", - "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", - "ST_GEOMCOLLFROMTXT", "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", - "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", "ST_GEOMETRYFROMWKB", - "ST_GEOMETRYN", "ST_GEOMETRYTYPE", "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", - "ST_INTERIORRINGN", "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", - "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", "ST_LINESTRINGFROMTEXT", - "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", - "ST_NUMPOINTS", "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", - "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", "ST_POLYGONFROMTEXT", - "ST_POLYGONFROMWKB", "ST_SRID", "ST_STARTPOINT", "ST_SYMDIFFERENCE", "ST_TOUCHES", - "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", "SUBSTRING_INDEX", - "SUBTIME", "SYSTEM_USER", "TAN", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", - "TIME_FORMAT", "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", "TO_SECONDS", - "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNHEX", "UNIX_TIMESTAMP", - "UPDATEXML", "UPPER", "UUID", "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", - "VERSION", "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", - "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", "X_FUNCTION", "VAR_ASSIGN", - "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", "PLUS", - "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", - "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", - "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", - "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", - "REVERSE_QUOTE_SYMB", "COLON_SYMB", "QUOTE_SYMB", "CHARSET_REVERSE_QOUTE_STRING", - "FILESIZE_LITERAL", "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", - "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", - "BIT_STRING", "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", - "STRING_USER_NAME", "LOCAL_ID", "GLOBAL_ID", "CHARSET_NAME", "EXPONENT_NUM_PART", - "ID_LITERAL", "DQUOTA_STRING", "SQUOTA_STRING", "BQUOTA_STRING", "HEX_DIGIT", - "DEC_DIGIT", "BIT_STRING_L", "ERROR_RECONGNIGION", - ]; - - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, undefined, undefined, "'ADD'", "'ALL'", - "'ALTER'", "'ALWAYS'", "'ANALYZE'", "'AND'", "'AS'", "'ASC'", "'BEFORE'", - "'BETWEEN'", "'BOTH'", "'BY'", "'CALL'", "'CASCADE'", "'CASE'", "'CAST'", - "'CHANGE'", "'CHARACTER'", "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", - "'CONSTRAINT'", "'CONTINUE'", "'CONVERT'", "'CREATE'", "'CROSS'", "'CURRENT'", - "'CURRENT_USER'", "'CURSOR'", "'DATABASE'", "'DATABASES'", "'DECLARE'", - "'DEFAULT'", "'DELAYED'", "'DELETE'", "'DESC'", "'DESCRIBE'", "'DETERMINISTIC'", - "'DIAGNOSTICS'", "'DISTINCT'", "'DISTINCTROW'", "'DROP'", "'EACH'", "'ELSE'", - "'ELSEIF'", "'ENCLOSED'", "'ESCAPED'", "'EXISTS'", "'EXIT'", "'EXPLAIN'", - "'FALSE'", "'FETCH'", "'FOR'", "'FORCE'", "'FOREIGN'", "'FROM'", "'FULLTEXT'", - "'GENERATED'", "'GET'", "'GRANT'", "'GROUP'", "'HAVING'", "'HIGH_PRIORITY'", - "'IF'", "'IGNORE'", "'IN'", "'INDEX'", "'INFILE'", "'INNER'", "'INOUT'", - "'INSERT'", "'INTERVAL'", "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", - "'KEYS'", "'KILL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", "'LIMIT'", - "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", "'LOOP'", "'LOW_PRIORITY'", - "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", "'MATCH'", "'MAXVALUE'", - "'MODIFIES'", "'NATURAL'", "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", - "'NUMBER'", "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONALLY'", "'OR'", - "'ORDER'", "'OUT'", "'OUTER'", "'OUTFILE'", "'PARTITION'", "'PRIMARY'", - "'PROCEDURE'", "'PURGE'", "'RANGE'", "'READ'", "'READS'", "'REFERENCES'", - "'REGEXP'", "'RELEASE'", "'RENAME'", "'REPEAT'", "'REPLACE'", "'REQUIRE'", - "'RESIGNAL'", "'RESTRICT'", "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", - "'SCHEMA'", "'SCHEMAS'", "'SELECT'", "'SET'", "'SEPARATOR'", "'SHOW'", - "'SIGNAL'", "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", "'SQLSTATE'", "'SQLWARNING'", - "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", "'SQL_SMALL_RESULT'", "'SSL'", - "'STACKED'", "'STARTING'", "'STRAIGHT_JOIN'", "'TABLE'", "'TERMINATED'", - "'THEN'", "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", "'UNDO'", "'UNION'", - "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", "'USAGE'", "'USE'", - "'USING'", "'VALUES'", "'WHEN'", "'WHERE'", "'WHILE'", "'WITH'", "'WRITE'", - "'XOR'", "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", "'MEDIUMINT'", "'MIDDLEINT'", - "'INT'", "'INT1'", "'INT2'", "'INT3'", "'INT4'", "'INT8'", "'INTEGER'", - "'BIGINT'", "'REAL'", "'DOUBLE'", "'PRECISION'", "'FLOAT'", "'FLOAT4'", - "'FLOAT8'", "'DECIMAL'", "'DEC'", "'NUMERIC'", "'DATE'", "'TIME'", "'TIMESTAMP'", - "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", "'NVARCHAR'", "'NATIONAL'", - "'BINARY'", "'VARBINARY'", "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", "'LONG'", - "'LONGBLOB'", "'TINYTEXT'", "'TEXT'", "'MEDIUMTEXT'", "'LONGTEXT'", "'ENUM'", - "'VARYING'", "'SERIAL'", "'YEAR_MONTH'", "'DAY_HOUR'", "'DAY_MINUTE'", - "'DAY_SECOND'", "'HOUR_MINUTE'", "'HOUR_SECOND'", "'MINUTE_SECOND'", "'SECOND_MICROSECOND'", - "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", "'DAY_MICROSECOND'", "'JSON_VALID'", - "'JSON_SCHEMA_VALID'", "'AVG'", "'BIT_AND'", "'BIT_OR'", "'BIT_XOR'", - "'COUNT'", "'GROUP_CONCAT'", "'MAX'", "'MIN'", "'STD'", "'STDDEV'", "'STDDEV_POP'", - "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", "'VAR_SAMP'", "'VARIANCE'", "'CURRENT_DATE'", - "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'LOCALTIME'", "'CURDATE'", "'CURTIME'", - "'DATE_ADD'", "'DATE_SUB'", "'EXTRACT'", "'LOCALTIMESTAMP'", "'NOW'", - "'POSITION'", "'SUBSTR'", "'SUBSTRING'", "'SYSDATE'", "'TRIM'", "'UTC_DATE'", - "'UTC_TIME'", "'UTC_TIMESTAMP'", "'ACCOUNT'", "'ACTION'", "'AFTER'", "'AGGREGATE'", - "'ALGORITHM'", "'ANY'", "'AT'", "'AUTHORS'", "'AUTOCOMMIT'", "'AUTOEXTEND_SIZE'", - "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", "'BEGIN'", "'BINLOG'", "'BIT'", - "'BLOCK'", "'BOOL'", "'BOOLEAN'", "'BTREE'", "'CACHE'", "'CASCADED'", - "'CHAIN'", "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", "'PAGE_CHECKSUM'", - "'CIPHER'", "'CLASS_ORIGIN'", "'CLIENT'", "'CLOSE'", "'COALESCE'", "'CODE'", - "'COLUMNS'", "'COLUMN_FORMAT'", "'COLUMN_NAME'", "'COMMENT'", "'COMMIT'", - "'COMPACT'", "'COMPLETION'", "'COMPRESSED'", "'COMPRESSION'", "'CONCURRENT'", - "'CONNECTION'", "'CONSISTENT'", "'CONSTRAINT_CATALOG'", "'CONSTRAINT_SCHEMA'", - "'CONSTRAINT_NAME'", "'CONTAINS'", "'CONTEXT'", "'CONTRIBUTORS'", "'COPY'", - "'CPU'", "'CURSOR_NAME'", "'DATA'", "'DATAFILE'", "'DEALLOCATE'", "'DEFAULT_AUTH'", - "'DEFINER'", "'DELAY_KEY_WRITE'", "'DES_KEY_FILE'", "'DIRECTORY'", "'DISABLE'", - "'DISCARD'", "'DISK'", "'DO'", "'DUMPFILE'", "'DUPLICATE'", "'DYNAMIC'", - "'ENABLE'", "'ENCRYPTION'", "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", - "'ERROR'", "'ERRORS'", "'ESCAPE'", "'EVEN'", "'EVENT'", "'EVENTS'", "'EVERY'", - "'EXCHANGE'", "'EXCLUSIVE'", "'EXPIRE'", "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", - "'FAST'", "'FAULTS'", "'FIELDS'", "'FILE_BLOCK_SIZE'", "'FILTER'", "'FIRST'", - "'FIXED'", "'FLUSH'", "'FOLLOWS'", "'FOUND'", "'FULL'", "'FUNCTION'", - "'GENERAL'", "'GLOBAL'", "'GRANTS'", "'GROUP_REPLICATION'", "'HANDLER'", - "'HASH'", "'HELP'", "'HOST'", "'HOSTS'", "'IDENTIFIED'", "'IGNORE_SERVER_IDS'", - "'IMPORT'", "'INDEXES'", "'INITIAL_SIZE'", "'INPLACE'", "'INSERT_METHOD'", - "'INSTALL'", "'INSTANCE'", "'INVISIBLE'", "'INVOKER'", "'IO'", "'IO_THREAD'", - "'IPC'", "'ISOLATION'", "'ISSUER'", "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", - "'LAST'", "'LEAVES'", "'LESS'", "'LEVEL'", "'LIST'", "'LOCAL'", "'LOGFILE'", - "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", "'MASTER_CONNECT_RETRY'", - "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", "'MASTER_HOST'", "'MASTER_LOG_FILE'", - "'MASTER_LOG_POS'", "'MASTER_PASSWORD'", "'MASTER_PORT'", "'MASTER_RETRY_COUNT'", - "'MASTER_SSL'", "'MASTER_SSL_CA'", "'MASTER_SSL_CAPATH'", "'MASTER_SSL_CERT'", - "'MASTER_SSL_CIPHER'", "'MASTER_SSL_CRL'", "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", - "'MASTER_TLS_VERSION'", "'MASTER_USER'", "'MAX_CONNECTIONS_PER_HOUR'", - "'MAX_QUERIES_PER_HOUR'", "'MAX_ROWS'", "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", - "'MAX_USER_CONNECTIONS'", "'MEDIUM'", "'MERGE'", "'MESSAGE_TEXT'", "'MID'", - "'MIGRATE'", "'MIN_ROWS'", "'MODE'", "'MODIFY'", "'MUTEX'", "'MYSQL'", - "'MYSQL_ERRNO'", "'NAME'", "'NAMES'", "'NCHAR'", "'NEVER'", "'NEXT'", - "'NO'", "'NODEGROUP'", "'NONE'", "'OFFLINE'", "'OFFSET'", "'OJ'", "'OLD_PASSWORD'", - "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", "'OPTIMIZER_COSTS'", "'OPTIONS'", - "'OWNER'", "'PACK_KEYS'", "'PAGE'", "'PARSER'", "'PARTIAL'", "'PARTITIONING'", - "'PARTITIONS'", "'PASSWORD'", "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", "'PLUGINS'", - "'PORT'", "'PRECEDES'", "'PREPARE'", "'PRESERVE'", "'PREV'", "'PROCESSLIST'", - "'PROFILE'", "'PROFILES'", "'PROXY'", "'QUERY'", "'QUICK'", "'REBUILD'", - "'RECOVER'", "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'RELAY'", "'RELAY_LOG_FILE'", - "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", "'REPAIR'", - "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", "'REPLICATE_IGNORE_DB'", - "'REPLICATE_IGNORE_TABLE'", "'REPLICATE_REWRITE_DB'", "'REPLICATE_WILD_DO_TABLE'", - "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", "'RESET'", "'RESUME'", - "'RETURNED_SQLSTATE'", "'RETURNS'", "'ROLE'", "'ROLLBACK'", "'ROLLUP'", - "'ROTATE'", "'ROW'", "'ROWS'", "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", - "'SECURITY'", "'SERVER'", "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", - "'SIMPLE'", "'SLAVE'", "'SLOW'", "'SNAPSHOT'", "'SOCKET'", "'SOME'", "'SONAME'", - "'SOUNDS'", "'SOURCE'", "'SQL_AFTER_GTIDS'", "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", - "'SQL_BUFFER_RESULT'", "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", - "'START'", "'STARTS'", "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", "'STATS_SAMPLE_PAGES'", - "'STATUS'", "'STOP'", "'STORAGE'", "'STORED'", "'STRING'", "'SUBCLASS_ORIGIN'", - "'SUBJECT'", "'SUBPARTITION'", "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", - "'SWITCHES'", "'TABLE_NAME'", "'TABLESPACE'", "'TEMPORARY'", "'TEMPTABLE'", - "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", "'TRANSACTIONAL'", "'TRIGGERS'", - "'TRUNCATE'", "'UNDEFINED'", "'UNDOFILE'", "'UNDO_BUFFER_SIZE'", "'UNINSTALL'", - "'UNKNOWN'", "'UNTIL'", "'UPGRADE'", "'USER'", "'USE_FRM'", "'USER_RESOURCES'", - "'VALIDATION'", "'VALUE'", "'VARIABLES'", "'VIEW'", "'VIRTUAL'", "'VISIBLE'", - "'WAIT'", "'WARNINGS'", "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", - "'XA'", "'XML'", "'EUR'", "'USA'", "'JIS'", "'ISO'", "'INTERNAL'", "'QUARTER'", - "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", "'WEEK'", "'SECOND'", "'MICROSECOND'", - "'TABLES'", "'ROUTINE'", "'EXECUTE'", "'FILE'", "'PROCESS'", "'RELOAD'", - "'SHUTDOWN'", "'SUPER'", "'PRIVILEGES'", "'APPLICATION_PASSWORD_ADMIN'", - "'AUDIT_ADMIN'", "'BACKUP_ADMIN'", "'BINLOG_ADMIN'", "'BINLOG_ENCRYPTION_ADMIN'", - "'CLONE_ADMIN'", "'CONNECTION_ADMIN'", "'ENCRYPTION_KEY_ADMIN'", "'FIREWALL_ADMIN'", - "'FIREWALL_USER'", "'GROUP_REPLICATION_ADMIN'", "'INNODB_REDO_LOG_ARCHIVE'", - "'NDB_STORED_USER'", "'PERSIST_RO_VARIABLES_ADMIN'", "'REPLICATION_APPLIER'", - "'REPLICATION_SLAVE_ADMIN'", "'RESOURCE_GROUP_ADMIN'", "'RESOURCE_GROUP_USER'", - "'ROLE_ADMIN'", undefined, "'SET_USER_ID'", "'SHOW_ROUTINE'", "'SYSTEM_VARIABLES_ADMIN'", - "'TABLE_ENCRYPTION_ADMIN'", "'VERSION_TOKEN_ADMIN'", "'XA_RECOVER_ADMIN'", - "'ARMSCII8'", "'ASCII'", "'BIG5'", "'CP1250'", "'CP1251'", "'CP1256'", - "'CP1257'", "'CP850'", "'CP852'", "'CP866'", "'CP932'", "'DEC8'", "'EUCJPMS'", - "'EUCKR'", "'GB2312'", "'GBK'", "'GEOSTD8'", "'GREEK'", "'HEBREW'", "'HP8'", - "'KEYBCS2'", "'KOI8R'", "'KOI8U'", "'LATIN1'", "'LATIN2'", "'LATIN5'", - "'LATIN7'", "'MACCE'", "'MACROMAN'", "'SJIS'", "'SWE7'", "'TIS620'", "'UCS2'", - "'UJIS'", "'UTF16'", "'UTF16LE'", "'UTF32'", "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", - "'ARCHIVE'", "'BLACKHOLE'", "'CSV'", "'FEDERATED'", "'INNODB'", "'MEMORY'", - "'MRG_MYISAM'", "'MYISAM'", "'NDB'", "'NDBCLUSTER'", "'PERFORMANCE_SCHEMA'", - "'TOKUDB'", "'REPEATABLE'", "'COMMITTED'", "'UNCOMMITTED'", "'SERIALIZABLE'", - "'GEOMETRYCOLLECTION'", "'GEOMCOLLECTION'", "'GEOMETRY'", "'LINESTRING'", - "'MULTILINESTRING'", "'MULTIPOINT'", "'MULTIPOLYGON'", "'POINT'", "'POLYGON'", - "'ABS'", "'ACOS'", "'ADDDATE'", "'ADDTIME'", "'AES_DECRYPT'", "'AES_ENCRYPT'", - "'AREA'", "'ASBINARY'", "'ASIN'", "'ASTEXT'", "'ASWKB'", "'ASWKT'", "'ASYMMETRIC_DECRYPT'", - "'ASYMMETRIC_DERIVE'", "'ASYMMETRIC_ENCRYPT'", "'ASYMMETRIC_SIGN'", "'ASYMMETRIC_VERIFY'", - "'ATAN'", "'ATAN2'", "'BENCHMARK'", "'BIN'", "'BIT_COUNT'", "'BIT_LENGTH'", - "'BUFFER'", "'CATALOG_NAME'", "'CEIL'", "'CEILING'", "'CENTROID'", "'CHARACTER_LENGTH'", - "'CHARSET'", "'CHAR_LENGTH'", "'COERCIBILITY'", "'COLLATION'", "'COMPRESS'", - "'CONCAT'", "'CONCAT_WS'", "'CONNECTION_ID'", "'CONV'", "'CONVERT_TZ'", - "'COS'", "'COT'", "'CRC32'", "'CREATE_ASYMMETRIC_PRIV_KEY'", "'CREATE_ASYMMETRIC_PUB_KEY'", - "'CREATE_DH_PARAMETERS'", "'CREATE_DIGEST'", "'CROSSES'", "'DATEDIFF'", - "'DATE_FORMAT'", "'DAYNAME'", "'DAYOFMONTH'", "'DAYOFWEEK'", "'DAYOFYEAR'", - "'DECODE'", "'DEGREES'", "'DES_DECRYPT'", "'DES_ENCRYPT'", "'DIMENSION'", - "'DISJOINT'", "'ELT'", "'ENCODE'", "'ENCRYPT'", "'ENDPOINT'", "'ENVELOPE'", - "'EQUALS'", "'EXP'", "'EXPORT_SET'", "'EXTERIORRING'", "'EXTRACTVALUE'", - "'FIELD'", "'FIND_IN_SET'", "'FLOOR'", "'FORMAT'", "'FOUND_ROWS'", "'FROM_BASE64'", - "'FROM_DAYS'", "'FROM_UNIXTIME'", "'GEOMCOLLFROMTEXT'", "'GEOMCOLLFROMWKB'", - "'GEOMETRYCOLLECTIONFROMTEXT'", "'GEOMETRYCOLLECTIONFROMWKB'", "'GEOMETRYFROMTEXT'", - "'GEOMETRYFROMWKB'", "'GEOMETRYN'", "'GEOMETRYTYPE'", "'GEOMFROMTEXT'", - "'GEOMFROMWKB'", "'GET_FORMAT'", "'GET_LOCK'", "'GLENGTH'", "'GREATEST'", - "'GTID_SUBSET'", "'GTID_SUBTRACT'", "'HEX'", "'IFNULL'", "'INET6_ATON'", - "'INET6_NTOA'", "'INET_ATON'", "'INET_NTOA'", "'INSTR'", "'INTERIORRINGN'", - "'INTERSECTS'", "'ISCLOSED'", "'ISEMPTY'", "'ISNULL'", "'ISSIMPLE'", "'IS_FREE_LOCK'", - "'IS_IPV4'", "'IS_IPV4_COMPAT'", "'IS_IPV4_MAPPED'", "'IS_IPV6'", "'IS_USED_LOCK'", - "'LAST_INSERT_ID'", "'LCASE'", "'LEAST'", "'LENGTH'", "'LINEFROMTEXT'", - "'LINEFROMWKB'", "'LINESTRINGFROMTEXT'", "'LINESTRINGFROMWKB'", "'LN'", - "'LOAD_FILE'", "'LOCATE'", "'LOG'", "'LOG10'", "'LOG2'", "'LOWER'", "'LPAD'", - "'LTRIM'", "'MAKEDATE'", "'MAKETIME'", "'MAKE_SET'", "'MASTER_POS_WAIT'", - "'MBRCONTAINS'", "'MBRDISJOINT'", "'MBREQUAL'", "'MBRINTERSECTS'", "'MBROVERLAPS'", - "'MBRTOUCHES'", "'MBRWITHIN'", "'MD5'", "'MLINEFROMTEXT'", "'MLINEFROMWKB'", - "'MONTHNAME'", "'MPOINTFROMTEXT'", "'MPOINTFROMWKB'", "'MPOLYFROMTEXT'", - "'MPOLYFROMWKB'", "'MULTILINESTRINGFROMTEXT'", "'MULTILINESTRINGFROMWKB'", - "'MULTIPOINTFROMTEXT'", "'MULTIPOINTFROMWKB'", "'MULTIPOLYGONFROMTEXT'", - "'MULTIPOLYGONFROMWKB'", "'NAME_CONST'", "'NULLIF'", "'NUMGEOMETRIES'", - "'NUMINTERIORRINGS'", "'NUMPOINTS'", "'OCT'", "'OCTET_LENGTH'", "'ORD'", - "'OVERLAPS'", "'PERIOD_ADD'", "'PERIOD_DIFF'", "'PI'", "'POINTFROMTEXT'", - "'POINTFROMWKB'", "'POINTN'", "'POLYFROMTEXT'", "'POLYFROMWKB'", "'POLYGONFROMTEXT'", - "'POLYGONFROMWKB'", "'POW'", "'POWER'", "'QUOTE'", "'RADIANS'", "'RAND'", - "'RANDOM_BYTES'", "'RELEASE_LOCK'", "'REVERSE'", "'ROUND'", "'ROW_COUNT'", - "'RPAD'", "'RTRIM'", "'SEC_TO_TIME'", "'SESSION_USER'", "'SHA'", "'SHA1'", - "'SHA2'", "'SCHEMA_NAME'", "'SIGN'", "'SIN'", "'SLEEP'", "'SOUNDEX'", - "'SQL_THREAD_WAIT_AFTER_GTIDS'", "'SQRT'", "'SRID'", "'STARTPOINT'", "'STRCMP'", - "'STR_TO_DATE'", "'ST_AREA'", "'ST_ASBINARY'", "'ST_ASTEXT'", "'ST_ASWKB'", - "'ST_ASWKT'", "'ST_BUFFER'", "'ST_CENTROID'", "'ST_CONTAINS'", "'ST_CROSSES'", - "'ST_DIFFERENCE'", "'ST_DIMENSION'", "'ST_DISJOINT'", "'ST_DISTANCE'", - "'ST_ENDPOINT'", "'ST_ENVELOPE'", "'ST_EQUALS'", "'ST_EXTERIORRING'", - "'ST_GEOMCOLLFROMTEXT'", "'ST_GEOMCOLLFROMTXT'", "'ST_GEOMCOLLFROMWKB'", - "'ST_GEOMETRYCOLLECTIONFROMTEXT'", "'ST_GEOMETRYCOLLECTIONFROMWKB'", "'ST_GEOMETRYFROMTEXT'", - "'ST_GEOMETRYFROMWKB'", "'ST_GEOMETRYN'", "'ST_GEOMETRYTYPE'", "'ST_GEOMFROMTEXT'", - "'ST_GEOMFROMWKB'", "'ST_INTERIORRINGN'", "'ST_INTERSECTION'", "'ST_INTERSECTS'", - "'ST_ISCLOSED'", "'ST_ISEMPTY'", "'ST_ISSIMPLE'", "'ST_LINEFROMTEXT'", - "'ST_LINEFROMWKB'", "'ST_LINESTRINGFROMTEXT'", "'ST_LINESTRINGFROMWKB'", - "'ST_NUMGEOMETRIES'", "'ST_NUMINTERIORRING'", "'ST_NUMINTERIORRINGS'", - "'ST_NUMPOINTS'", "'ST_OVERLAPS'", "'ST_POINTFROMTEXT'", "'ST_POINTFROMWKB'", - "'ST_POINTN'", "'ST_POLYFROMTEXT'", "'ST_POLYFROMWKB'", "'ST_POLYGONFROMTEXT'", - "'ST_POLYGONFROMWKB'", "'ST_SRID'", "'ST_STARTPOINT'", "'ST_SYMDIFFERENCE'", - "'ST_TOUCHES'", "'ST_UNION'", "'ST_WITHIN'", "'ST_X'", "'ST_Y'", "'SUBDATE'", - "'SUBSTRING_INDEX'", "'SUBTIME'", "'SYSTEM_USER'", "'TAN'", "'TIMEDIFF'", - "'TIMESTAMPADD'", "'TIMESTAMPDIFF'", "'TIME_FORMAT'", "'TIME_TO_SEC'", - "'TOUCHES'", "'TO_BASE64'", "'TO_DAYS'", "'TO_SECONDS'", "'UCASE'", "'UNCOMPRESS'", - "'UNCOMPRESSED_LENGTH'", "'UNHEX'", "'UNIX_TIMESTAMP'", "'UPDATEXML'", - "'UPPER'", "'UUID'", "'UUID_SHORT'", "'VALIDATE_PASSWORD_STRENGTH'", "'VERSION'", - "'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'", "'WEEKDAY'", "'WEEKOFYEAR'", "'WEIGHT_STRING'", - "'WITHIN'", "'YEARWEEK'", "'Y'", "'X'", "':='", "'+='", "'-='", "'*='", - "'/='", "'%='", "'&='", "'^='", "'|='", "'*'", "'/'", "'%'", "'+'", "'--'", - "'-'", "'DIV'", "'MOD'", "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", - "'^'", "'.'", "'('", "')'", "','", "';'", "'@'", "'0'", "'1'", "'2'", - "'''", "'\"'", "'`'", "':'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", - "ADD", "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "AS", "ASC", "BEFORE", - "BETWEEN", "BOTH", "BY", "CALL", "CASCADE", "CASE", "CAST", "CHANGE", - "CHARACTER", "CHECK", "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", - "CONTINUE", "CONVERT", "CREATE", "CROSS", "CURRENT", "CURRENT_USER", "CURSOR", - "DATABASE", "DATABASES", "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", - "DESCRIBE", "DETERMINISTIC", "DIAGNOSTICS", "DISTINCT", "DISTINCTROW", - "DROP", "EACH", "ELSE", "ELSEIF", "ENCLOSED", "ESCAPED", "EXISTS", "EXIT", - "EXPLAIN", "FALSE", "FETCH", "FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", - "GENERATED", "GET", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", "IF", - "IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSERT", "INTERVAL", - "INTO", "IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE", - "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCK", "LOOP", "LOW_PRIORITY", - "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", "MATCH", "MAXVALUE", "MODIFIES", - "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", "NULL_LITERAL", "NUMBER", "ON", - "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER", "OUTFILE", - "PARTITION", "PRIMARY", "PROCEDURE", "PURGE", "RANGE", "READ", "READS", - "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT", "REPLACE", "REQUIRE", - "RESIGNAL", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE", "SCHEMA", - "SCHEMAS", "SELECT", "SET", "SEPARATOR", "SHOW", "SIGNAL", "SPATIAL", - "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", - "SQL_SMALL_RESULT", "SSL", "STACKED", "STARTING", "STRAIGHT_JOIN", "TABLE", - "TERMINATED", "THEN", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", - "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "VALUES", - "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "XOR", "ZEROFILL", "TINYINT", - "SMALLINT", "MEDIUMINT", "MIDDLEINT", "INT", "INT1", "INT2", "INT3", "INT4", - "INT8", "INTEGER", "BIGINT", "REAL", "DOUBLE", "PRECISION", "FLOAT", "FLOAT4", - "FLOAT8", "DECIMAL", "DEC", "NUMERIC", "DATE", "TIME", "TIMESTAMP", "DATETIME", - "YEAR", "CHAR", "VARCHAR", "NVARCHAR", "NATIONAL", "BINARY", "VARBINARY", - "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONG", "LONGBLOB", "TINYTEXT", "TEXT", - "MEDIUMTEXT", "LONGTEXT", "ENUM", "VARYING", "SERIAL", "YEAR_MONTH", "DAY_HOUR", - "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND", - "SECOND_MICROSECOND", "MINUTE_MICROSECOND", "HOUR_MICROSECOND", "DAY_MICROSECOND", - "JSON_VALID", "JSON_SCHEMA_VALID", "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", - "COUNT", "GROUP_CONCAT", "MAX", "MIN", "STD", "STDDEV", "STDDEV_POP", - "STDDEV_SAMP", "SUM", "VAR_POP", "VAR_SAMP", "VARIANCE", "CURRENT_DATE", - "CURRENT_TIME", "CURRENT_TIMESTAMP", "LOCALTIME", "CURDATE", "CURTIME", - "DATE_ADD", "DATE_SUB", "EXTRACT", "LOCALTIMESTAMP", "NOW", "POSITION", - "SUBSTR", "SUBSTRING", "SYSDATE", "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", - "ACCOUNT", "ACTION", "AFTER", "AGGREGATE", "ALGORITHM", "ANY", "AT", "AUTHORS", - "AUTOCOMMIT", "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", - "BINLOG", "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", "CASCADED", - "CHAIN", "CHANGED", "CHANNEL", "CHECKSUM", "PAGE_CHECKSUM", "CIPHER", - "CLASS_ORIGIN", "CLIENT", "CLOSE", "COALESCE", "CODE", "COLUMNS", "COLUMN_FORMAT", - "COLUMN_NAME", "COMMENT", "COMMIT", "COMPACT", "COMPLETION", "COMPRESSED", - "COMPRESSION", "CONCURRENT", "CONNECTION", "CONSISTENT", "CONSTRAINT_CATALOG", - "CONSTRAINT_SCHEMA", "CONSTRAINT_NAME", "CONTAINS", "CONTEXT", "CONTRIBUTORS", - "COPY", "CPU", "CURSOR_NAME", "DATA", "DATAFILE", "DEALLOCATE", "DEFAULT_AUTH", - "DEFINER", "DELAY_KEY_WRITE", "DES_KEY_FILE", "DIRECTORY", "DISABLE", - "DISCARD", "DISK", "DO", "DUMPFILE", "DUPLICATE", "DYNAMIC", "ENABLE", - "ENCRYPTION", "END", "ENDS", "ENGINE", "ENGINES", "ERROR", "ERRORS", "ESCAPE", - "EVEN", "EVENT", "EVENTS", "EVERY", "EXCHANGE", "EXCLUSIVE", "EXPIRE", - "EXPORT", "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", "FIELDS", "FILE_BLOCK_SIZE", - "FILTER", "FIRST", "FIXED", "FLUSH", "FOLLOWS", "FOUND", "FULL", "FUNCTION", - "GENERAL", "GLOBAL", "GRANTS", "GROUP_REPLICATION", "HANDLER", "HASH", - "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", "IMPORT", - "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", "INSTALL", "INSTANCE", - "INVISIBLE", "INVOKER", "IO", "IO_THREAD", "IPC", "ISOLATION", "ISSUER", - "JSON", "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", "LEVEL", - "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", "MASTER_AUTO_POSITION", - "MASTER_CONNECT_RETRY", "MASTER_DELAY", "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", - "MASTER_LOG_FILE", "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", - "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", - "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", - "MASTER_SSL_KEY", "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", - "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", - "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MESSAGE_TEXT", "MID", "MIGRATE", - "MIN_ROWS", "MODE", "MODIFY", "MUTEX", "MYSQL", "MYSQL_ERRNO", "NAME", - "NAMES", "NCHAR", "NEVER", "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", - "OFFSET", "OJ", "OLD_PASSWORD", "ONE", "ONLINE", "ONLY", "OPEN", "OPTIMIZER_COSTS", - "OPTIONS", "OWNER", "PACK_KEYS", "PAGE", "PARSER", "PARTIAL", "PARTITIONING", - "PARTITIONS", "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", - "PORT", "PRECEDES", "PREPARE", "PRESERVE", "PREV", "PROCESSLIST", "PROFILE", - "PROFILES", "PROXY", "QUERY", "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", - "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", "RELAYLOG", "REMOVE", - "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", "REPLICATE_IGNORE_DB", - "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", "REPLICATE_WILD_DO_TABLE", - "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", "RESET", "RESUME", "RETURNED_SQLSTATE", - "RETURNS", "ROLE", "ROLLBACK", "ROLLUP", "ROTATE", "ROW", "ROWS", "ROW_FORMAT", - "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", "SESSION", "SHARE", "SHARED", - "SIGNED", "SIMPLE", "SLAVE", "SLOW", "SNAPSHOT", "SOCKET", "SOME", "SONAME", - "SOUNDS", "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", "SQL_BEFORE_GTIDS", - "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_NO_CACHE", "SQL_THREAD", "START", - "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT", "STATS_SAMPLE_PAGES", - "STATUS", "STOP", "STORAGE", "STORED", "STRING", "SUBCLASS_ORIGIN", "SUBJECT", - "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", "SWAPS", "SWITCHES", "TABLE_NAME", - "TABLESPACE", "TEMPORARY", "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", - "TRANSACTIONAL", "TRIGGERS", "TRUNCATE", "UNDEFINED", "UNDOFILE", "UNDO_BUFFER_SIZE", - "UNINSTALL", "UNKNOWN", "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", - "VALIDATION", "VALUE", "VARIABLES", "VIEW", "VIRTUAL", "VISIBLE", "WAIT", - "WARNINGS", "WITHOUT", "WORK", "WRAPPER", "X509", "XA", "XML", "EUR", - "USA", "JIS", "ISO", "INTERNAL", "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", - "WEEK", "SECOND", "MICROSECOND", "TABLES", "ROUTINE", "EXECUTE", "FILE", - "PROCESS", "RELOAD", "SHUTDOWN", "SUPER", "PRIVILEGES", "APPLICATION_PASSWORD_ADMIN", - "AUDIT_ADMIN", "BACKUP_ADMIN", "BINLOG_ADMIN", "BINLOG_ENCRYPTION_ADMIN", - "CLONE_ADMIN", "CONNECTION_ADMIN", "ENCRYPTION_KEY_ADMIN", "FIREWALL_ADMIN", - "FIREWALL_USER", "GROUP_REPLICATION_ADMIN", "INNODB_REDO_LOG_ARCHIVE", - "NDB_STORED_USER", "PERSIST_RO_VARIABLES_ADMIN", "REPLICATION_APPLIER", - "REPLICATION_SLAVE_ADMIN", "RESOURCE_GROUP_ADMIN", "RESOURCE_GROUP_USER", - "ROLE_ADMIN", "SESSION_VARIABLES_ADMIN", "SET_USER_ID", "SHOW_ROUTINE", - "SYSTEM_VARIABLES_ADMIN", "TABLE_ENCRYPTION_ADMIN", "VERSION_TOKEN_ADMIN", - "XA_RECOVER_ADMIN", "ARMSCII8", "ASCII", "BIG5", "CP1250", "CP1251", "CP1256", - "CP1257", "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", "EUCKR", - "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", "HP8", "KEYBCS2", "KOI8R", - "KOI8U", "LATIN1", "LATIN2", "LATIN5", "LATIN7", "MACCE", "MACROMAN", - "SJIS", "SWE7", "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", - "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", "CSV", "FEDERATED", - "INNODB", "MEMORY", "MRG_MYISAM", "MYISAM", "NDB", "NDBCLUSTER", "PERFORMANCE_SCHEMA", - "TOKUDB", "REPEATABLE", "COMMITTED", "UNCOMMITTED", "SERIALIZABLE", "GEOMETRYCOLLECTION", - "GEOMCOLLECTION", "GEOMETRY", "LINESTRING", "MULTILINESTRING", "MULTIPOINT", - "MULTIPOLYGON", "POINT", "POLYGON", "ABS", "ACOS", "ADDDATE", "ADDTIME", - "AES_DECRYPT", "AES_ENCRYPT", "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", - "ASWKT", "ASYMMETRIC_DECRYPT", "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", - "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", "ATAN", "ATAN2", "BENCHMARK", - "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", "CATALOG_NAME", "CEIL", "CEILING", - "CENTROID", "CHARACTER_LENGTH", "CHARSET", "CHAR_LENGTH", "COERCIBILITY", - "COLLATION", "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", "CONV", - "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", "CREATE_ASYMMETRIC_PUB_KEY", - "CREATE_DH_PARAMETERS", "CREATE_DIGEST", "CROSSES", "DATEDIFF", "DATE_FORMAT", - "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", "DECODE", "DEGREES", - "DES_DECRYPT", "DES_ENCRYPT", "DIMENSION", "DISJOINT", "ELT", "ENCODE", - "ENCRYPT", "ENDPOINT", "ENVELOPE", "EQUALS", "EXP", "EXPORT_SET", "EXTERIORRING", - "EXTRACTVALUE", "FIELD", "FIND_IN_SET", "FLOOR", "FORMAT", "FOUND_ROWS", - "FROM_BASE64", "FROM_DAYS", "FROM_UNIXTIME", "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", - "GEOMETRYCOLLECTIONFROMTEXT", "GEOMETRYCOLLECTIONFROMWKB", "GEOMETRYFROMTEXT", - "GEOMETRYFROMWKB", "GEOMETRYN", "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", - "GET_FORMAT", "GET_LOCK", "GLENGTH", "GREATEST", "GTID_SUBSET", "GTID_SUBTRACT", - "HEX", "IFNULL", "INET6_ATON", "INET6_NTOA", "INET_ATON", "INET_NTOA", - "INSTR", "INTERIORRINGN", "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", - "ISSIMPLE", "IS_FREE_LOCK", "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", - "IS_IPV6", "IS_USED_LOCK", "LAST_INSERT_ID", "LCASE", "LEAST", "LENGTH", - "LINEFROMTEXT", "LINEFROMWKB", "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", - "LN", "LOAD_FILE", "LOCATE", "LOG", "LOG10", "LOG2", "LOWER", "LPAD", - "LTRIM", "MAKEDATE", "MAKETIME", "MAKE_SET", "MASTER_POS_WAIT", "MBRCONTAINS", - "MBRDISJOINT", "MBREQUAL", "MBRINTERSECTS", "MBROVERLAPS", "MBRTOUCHES", - "MBRWITHIN", "MD5", "MLINEFROMTEXT", "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", - "MPOINTFROMWKB", "MPOLYFROMTEXT", "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", - "MULTILINESTRINGFROMWKB", "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", "MULTIPOLYGONFROMTEXT", - "MULTIPOLYGONFROMWKB", "NAME_CONST", "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", - "NUMPOINTS", "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", "PERIOD_DIFF", - "PI", "POINTFROMTEXT", "POINTFROMWKB", "POINTN", "POLYFROMTEXT", "POLYFROMWKB", - "POLYGONFROMTEXT", "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", - "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", "ROUND", "ROW_COUNT", - "RPAD", "RTRIM", "SEC_TO_TIME", "SESSION_USER", "SHA", "SHA1", "SHA2", - "SCHEMA_NAME", "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", - "SQRT", "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", "ST_AREA", "ST_ASBINARY", - "ST_ASTEXT", "ST_ASWKB", "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", - "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", "ST_DISTANCE", - "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", - "ST_GEOMCOLLFROMTXT", "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", - "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", "ST_GEOMETRYFROMWKB", - "ST_GEOMETRYN", "ST_GEOMETRYTYPE", "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", - "ST_INTERIORRINGN", "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", - "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", "ST_LINESTRINGFROMTEXT", - "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", - "ST_NUMPOINTS", "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", - "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", "ST_POLYGONFROMTEXT", - "ST_POLYGONFROMWKB", "ST_SRID", "ST_STARTPOINT", "ST_SYMDIFFERENCE", "ST_TOUCHES", - "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", "SUBSTRING_INDEX", - "SUBTIME", "SYSTEM_USER", "TAN", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", - "TIME_FORMAT", "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", "TO_SECONDS", - "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNHEX", "UNIX_TIMESTAMP", - "UPDATEXML", "UPPER", "UUID", "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", - "VERSION", "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", - "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", "X_FUNCTION", "VAR_ASSIGN", - "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", "PLUS", - "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", - "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", - "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", - "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", - "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", - "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL", - "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", "BIT_STRING", - "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", "STRING_USER_NAME", - "LOCAL_ID", "GLOBAL_ID", "ERROR_RECONGNIGION", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(SqlLexer._LITERAL_NAMES, SqlLexer._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return SqlLexer.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - - - constructor(input: CharStream) { - super(input); - this._interp = new LexerATNSimulator(SqlLexer._ATN, this); - } - - // @Override - public get grammarFileName(): string { return "SqlLexer.g4"; } - - // @Override - public get ruleNames(): string[] { return SqlLexer.ruleNames; } - - // @Override - public get serializedATN(): string { return SqlLexer._serializedATN; } - - // @Override - public get channelNames(): string[] { return SqlLexer.channelNames; } - - // @Override - public get modeNames(): string[] { return SqlLexer.modeNames; } - - private static readonly _serializedATNSegments: number = 21; - private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\u041A\u2F64\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\x04\u0259\t\u0259\x04\u025A\t\u025A" + - "\x04\u025B\t\u025B\x04\u025C\t\u025C\x04\u025D\t\u025D\x04\u025E\t\u025E" + - "\x04\u025F\t\u025F\x04\u0260\t\u0260\x04\u0261\t\u0261\x04\u0262\t\u0262" + - "\x04\u0263\t\u0263\x04\u0264\t\u0264\x04\u0265\t\u0265\x04\u0266\t\u0266" + - "\x04\u0267\t\u0267\x04\u0268\t\u0268\x04\u0269\t\u0269\x04\u026A\t\u026A" + - "\x04\u026B\t\u026B\x04\u026C\t\u026C\x04\u026D\t\u026D\x04\u026E\t\u026E" + - "\x04\u026F\t\u026F\x04\u0270\t\u0270\x04\u0271\t\u0271\x04\u0272\t\u0272" + - "\x04\u0273\t\u0273\x04\u0274\t\u0274\x04\u0275\t\u0275\x04\u0276\t\u0276" + - "\x04\u0277\t\u0277\x04\u0278\t\u0278\x04\u0279\t\u0279\x04\u027A\t\u027A" + - "\x04\u027B\t\u027B\x04\u027C\t\u027C\x04\u027D\t\u027D\x04\u027E\t\u027E" + - "\x04\u027F\t\u027F\x04\u0280\t\u0280\x04\u0281\t\u0281\x04\u0282\t\u0282" + - "\x04\u0283\t\u0283\x04\u0284\t\u0284\x04\u0285\t\u0285\x04\u0286\t\u0286" + - "\x04\u0287\t\u0287\x04\u0288\t\u0288\x04\u0289\t\u0289\x04\u028A\t\u028A" + - "\x04\u028B\t\u028B\x04\u028C\t\u028C\x04\u028D\t\u028D\x04\u028E\t\u028E" + - "\x04\u028F\t\u028F\x04\u0290\t\u0290\x04\u0291\t\u0291\x04\u0292\t\u0292" + - "\x04\u0293\t\u0293\x04\u0294\t\u0294\x04\u0295\t\u0295\x04\u0296\t\u0296" + - "\x04\u0297\t\u0297\x04\u0298\t\u0298\x04\u0299\t\u0299\x04\u029A\t\u029A" + - "\x04\u029B\t\u029B\x04\u029C\t\u029C\x04\u029D\t\u029D\x04\u029E\t\u029E" + - "\x04\u029F\t\u029F\x04\u02A0\t\u02A0\x04\u02A1\t\u02A1\x04\u02A2\t\u02A2" + - "\x04\u02A3\t\u02A3\x04\u02A4\t\u02A4\x04\u02A5\t\u02A5\x04\u02A6\t\u02A6" + - "\x04\u02A7\t\u02A7\x04\u02A8\t\u02A8\x04\u02A9\t\u02A9\x04\u02AA\t\u02AA" + - "\x04\u02AB\t\u02AB\x04\u02AC\t\u02AC\x04\u02AD\t\u02AD\x04\u02AE\t\u02AE" + - "\x04\u02AF\t\u02AF\x04\u02B0\t\u02B0\x04\u02B1\t\u02B1\x04\u02B2\t\u02B2" + - "\x04\u02B3\t\u02B3\x04\u02B4\t\u02B4\x04\u02B5\t\u02B5\x04\u02B6\t\u02B6" + - "\x04\u02B7\t\u02B7\x04\u02B8\t\u02B8\x04\u02B9\t\u02B9\x04\u02BA\t\u02BA" + - "\x04\u02BB\t\u02BB\x04\u02BC\t\u02BC\x04\u02BD\t\u02BD\x04\u02BE\t\u02BE" + - "\x04\u02BF\t\u02BF\x04\u02C0\t\u02C0\x04\u02C1\t\u02C1\x04\u02C2\t\u02C2" + - "\x04\u02C3\t\u02C3\x04\u02C4\t\u02C4\x04\u02C5\t\u02C5\x04\u02C6\t\u02C6" + - "\x04\u02C7\t\u02C7\x04\u02C8\t\u02C8\x04\u02C9\t\u02C9\x04\u02CA\t\u02CA" + - "\x04\u02CB\t\u02CB\x04\u02CC\t\u02CC\x04\u02CD\t\u02CD\x04\u02CE\t\u02CE" + - "\x04\u02CF\t\u02CF\x04\u02D0\t\u02D0\x04\u02D1\t\u02D1\x04\u02D2\t\u02D2" + - "\x04\u02D3\t\u02D3\x04\u02D4\t\u02D4\x04\u02D5\t\u02D5\x04\u02D6\t\u02D6" + - "\x04\u02D7\t\u02D7\x04\u02D8\t\u02D8\x04\u02D9\t\u02D9\x04\u02DA\t\u02DA" + - "\x04\u02DB\t\u02DB\x04\u02DC\t\u02DC\x04\u02DD\t\u02DD\x04\u02DE\t\u02DE" + - "\x04\u02DF\t\u02DF\x04\u02E0\t\u02E0\x04\u02E1\t\u02E1\x04\u02E2\t\u02E2" + - "\x04\u02E3\t\u02E3\x04\u02E4\t\u02E4\x04\u02E5\t\u02E5\x04\u02E6\t\u02E6" + - "\x04\u02E7\t\u02E7\x04\u02E8\t\u02E8\x04\u02E9\t\u02E9\x04\u02EA\t\u02EA" + - "\x04\u02EB\t\u02EB\x04\u02EC\t\u02EC\x04\u02ED\t\u02ED\x04\u02EE\t\u02EE" + - "\x04\u02EF\t\u02EF\x04\u02F0\t\u02F0\x04\u02F1\t\u02F1\x04\u02F2\t\u02F2" + - "\x04\u02F3\t\u02F3\x04\u02F4\t\u02F4\x04\u02F5\t\u02F5\x04\u02F6\t\u02F6" + - "\x04\u02F7\t\u02F7\x04\u02F8\t\u02F8\x04\u02F9\t\u02F9\x04\u02FA\t\u02FA" + - "\x04\u02FB\t\u02FB\x04\u02FC\t\u02FC\x04\u02FD\t\u02FD\x04\u02FE\t\u02FE" + - "\x04\u02FF\t\u02FF\x04\u0300\t\u0300\x04\u0301\t\u0301\x04\u0302\t\u0302" + - "\x04\u0303\t\u0303\x04\u0304\t\u0304\x04\u0305\t\u0305\x04\u0306\t\u0306" + - "\x04\u0307\t\u0307\x04\u0308\t\u0308\x04\u0309\t\u0309\x04\u030A\t\u030A" + - "\x04\u030B\t\u030B\x04\u030C\t\u030C\x04\u030D\t\u030D\x04\u030E\t\u030E" + - "\x04\u030F\t\u030F\x04\u0310\t\u0310\x04\u0311\t\u0311\x04\u0312\t\u0312" + - "\x04\u0313\t\u0313\x04\u0314\t\u0314\x04\u0315\t\u0315\x04\u0316\t\u0316" + - "\x04\u0317\t\u0317\x04\u0318\t\u0318\x04\u0319\t\u0319\x04\u031A\t\u031A" + - "\x04\u031B\t\u031B\x04\u031C\t\u031C\x04\u031D\t\u031D\x04\u031E\t\u031E" + - "\x04\u031F\t\u031F\x04\u0320\t\u0320\x04\u0321\t\u0321\x04\u0322\t\u0322" + - "\x04\u0323\t\u0323\x04\u0324\t\u0324\x04\u0325\t\u0325\x04\u0326\t\u0326" + - "\x04\u0327\t\u0327\x04\u0328\t\u0328\x04\u0329\t\u0329\x04\u032A\t\u032A" + - "\x04\u032B\t\u032B\x04\u032C\t\u032C\x04\u032D\t\u032D\x04\u032E\t\u032E" + - "\x04\u032F\t\u032F\x04\u0330\t\u0330\x04\u0331\t\u0331\x04\u0332\t\u0332" + - "\x04\u0333\t\u0333\x04\u0334\t\u0334\x04\u0335\t\u0335\x04\u0336\t\u0336" + - "\x04\u0337\t\u0337\x04\u0338\t\u0338\x04\u0339\t\u0339\x04\u033A\t\u033A" + - "\x04\u033B\t\u033B\x04\u033C\t\u033C\x04\u033D\t\u033D\x04\u033E\t\u033E" + - "\x04\u033F\t\u033F\x04\u0340\t\u0340\x04\u0341\t\u0341\x04\u0342\t\u0342" + - "\x04\u0343\t\u0343\x04\u0344\t\u0344\x04\u0345\t\u0345\x04\u0346\t\u0346" + - "\x04\u0347\t\u0347\x04\u0348\t\u0348\x04\u0349\t\u0349\x04\u034A\t\u034A" + - "\x04\u034B\t\u034B\x04\u034C\t\u034C\x04\u034D\t\u034D\x04\u034E\t\u034E" + - "\x04\u034F\t\u034F\x04\u0350\t\u0350\x04\u0351\t\u0351\x04\u0352\t\u0352" + - "\x04\u0353\t\u0353\x04\u0354\t\u0354\x04\u0355\t\u0355\x04\u0356\t\u0356" + - "\x04\u0357\t\u0357\x04\u0358\t\u0358\x04\u0359\t\u0359\x04\u035A\t\u035A" + - "\x04\u035B\t\u035B\x04\u035C\t\u035C\x04\u035D\t\u035D\x04\u035E\t\u035E" + - "\x04\u035F\t\u035F\x04\u0360\t\u0360\x04\u0361\t\u0361\x04\u0362\t\u0362" + - "\x04\u0363\t\u0363\x04\u0364\t\u0364\x04\u0365\t\u0365\x04\u0366\t\u0366" + - "\x04\u0367\t\u0367\x04\u0368\t\u0368\x04\u0369\t\u0369\x04\u036A\t\u036A" + - "\x04\u036B\t\u036B\x04\u036C\t\u036C\x04\u036D\t\u036D\x04\u036E\t\u036E" + - "\x04\u036F\t\u036F\x04\u0370\t\u0370\x04\u0371\t\u0371\x04\u0372\t\u0372" + - "\x04\u0373\t\u0373\x04\u0374\t\u0374\x04\u0375\t\u0375\x04\u0376\t\u0376" + - "\x04\u0377\t\u0377\x04\u0378\t\u0378\x04\u0379\t\u0379\x04\u037A\t\u037A" + - "\x04\u037B\t\u037B\x04\u037C\t\u037C\x04\u037D\t\u037D\x04\u037E\t\u037E" + - "\x04\u037F\t\u037F\x04\u0380\t\u0380\x04\u0381\t\u0381\x04\u0382\t\u0382" + - "\x04\u0383\t\u0383\x04\u0384\t\u0384\x04\u0385\t\u0385\x04\u0386\t\u0386" + - "\x04\u0387\t\u0387\x04\u0388\t\u0388\x04\u0389\t\u0389\x04\u038A\t\u038A" + - "\x04\u038B\t\u038B\x04\u038C\t\u038C\x04\u038D\t\u038D\x04\u038E\t\u038E" + - "\x04\u038F\t\u038F\x04\u0390\t\u0390\x04\u0391\t\u0391\x04\u0392\t\u0392" + - "\x04\u0393\t\u0393\x04\u0394\t\u0394\x04\u0395\t\u0395\x04\u0396\t\u0396" + - "\x04\u0397\t\u0397\x04\u0398\t\u0398\x04\u0399\t\u0399\x04\u039A\t\u039A" + - "\x04\u039B\t\u039B\x04\u039C\t\u039C\x04\u039D\t\u039D\x04\u039E\t\u039E" + - "\x04\u039F\t\u039F\x04\u03A0\t\u03A0\x04\u03A1\t\u03A1\x04\u03A2\t\u03A2" + - "\x04\u03A3\t\u03A3\x04\u03A4\t\u03A4\x04\u03A5\t\u03A5\x04\u03A6\t\u03A6" + - "\x04\u03A7\t\u03A7\x04\u03A8\t\u03A8\x04\u03A9\t\u03A9\x04\u03AA\t\u03AA" + - "\x04\u03AB\t\u03AB\x04\u03AC\t\u03AC\x04\u03AD\t\u03AD\x04\u03AE\t\u03AE" + - "\x04\u03AF\t\u03AF\x04\u03B0\t\u03B0\x04\u03B1\t\u03B1\x04\u03B2\t\u03B2" + - "\x04\u03B3\t\u03B3\x04\u03B4\t\u03B4\x04\u03B5\t\u03B5\x04\u03B6\t\u03B6" + - "\x04\u03B7\t\u03B7\x04\u03B8\t\u03B8\x04\u03B9\t\u03B9\x04\u03BA\t\u03BA" + - "\x04\u03BB\t\u03BB\x04\u03BC\t\u03BC\x04\u03BD\t\u03BD\x04\u03BE\t\u03BE" + - "\x04\u03BF\t\u03BF\x04\u03C0\t\u03C0\x04\u03C1\t\u03C1\x04\u03C2\t\u03C2" + - "\x04\u03C3\t\u03C3\x04\u03C4\t\u03C4\x04\u03C5\t\u03C5\x04\u03C6\t\u03C6" + - "\x04\u03C7\t\u03C7\x04\u03C8\t\u03C8\x04\u03C9\t\u03C9\x04\u03CA\t\u03CA" + - "\x04\u03CB\t\u03CB\x04\u03CC\t\u03CC\x04\u03CD\t\u03CD\x04\u03CE\t\u03CE" + - "\x04\u03CF\t\u03CF\x04\u03D0\t\u03D0\x04\u03D1\t\u03D1\x04\u03D2\t\u03D2" + - "\x04\u03D3\t\u03D3\x04\u03D4\t\u03D4\x04\u03D5\t\u03D5\x04\u03D6\t\u03D6" + - "\x04\u03D7\t\u03D7\x04\u03D8\t\u03D8\x04\u03D9\t\u03D9\x04\u03DA\t\u03DA" + - "\x04\u03DB\t\u03DB\x04\u03DC\t\u03DC\x04\u03DD\t\u03DD\x04\u03DE\t\u03DE" + - "\x04\u03DF\t\u03DF\x04\u03E0\t\u03E0\x04\u03E1\t\u03E1\x04\u03E2\t\u03E2" + - "\x04\u03E3\t\u03E3\x04\u03E4\t\u03E4\x04\u03E5\t\u03E5\x04\u03E6\t\u03E6" + - "\x04\u03E7\t\u03E7\x04\u03E8\t\u03E8\x04\u03E9\t\u03E9\x04\u03EA\t\u03EA" + - "\x04\u03EB\t\u03EB\x04\u03EC\t\u03EC\x04\u03ED\t\u03ED\x04\u03EE\t\u03EE" + - "\x04\u03EF\t\u03EF\x04\u03F0\t\u03F0\x04\u03F1\t\u03F1\x04\u03F2\t\u03F2" + - "\x04\u03F3\t\u03F3\x04\u03F4\t\u03F4\x04\u03F5\t\u03F5\x04\u03F6\t\u03F6" + - "\x04\u03F7\t\u03F7\x04\u03F8\t\u03F8\x04\u03F9\t\u03F9\x04\u03FA\t\u03FA" + - "\x04\u03FB\t\u03FB\x04\u03FC\t\u03FC\x04\u03FD\t\u03FD\x04\u03FE\t\u03FE" + - "\x04\u03FF\t\u03FF\x04\u0400\t\u0400\x04\u0401\t\u0401\x04\u0402\t\u0402" + - "\x04\u0403\t\u0403\x04\u0404\t\u0404\x04\u0405\t\u0405\x04\u0406\t\u0406" + - "\x04\u0407\t\u0407\x04\u0408\t\u0408\x04\u0409\t\u0409\x04\u040A\t\u040A" + - "\x04\u040B\t\u040B\x04\u040C\t\u040C\x04\u040D\t\u040D\x04\u040E\t\u040E" + - "\x04\u040F\t\u040F\x04\u0410\t\u0410\x04\u0411\t\u0411\x04\u0412\t\u0412" + - "\x04\u0413\t\u0413\x04\u0414\t\u0414\x04\u0415\t\u0415\x04\u0416\t\u0416" + - "\x04\u0417\t\u0417\x04\u0418\t\u0418\x04\u0419\t\u0419\x04\u041A\t\u041A" + - "\x04\u041B\t\u041B\x04\u041C\t\u041C\x04\u041D\t\u041D\x04\u041E\t\u041E" + - "\x04\u041F\t\u041F\x04\u0420\t\u0420\x04\u0421\t\u0421\x04\u0422\t\u0422" + - "\x04\u0423\t\u0423\x03\x02\x06\x02\u0849\n\x02\r\x02\x0E\x02\u084A\x03" + - "\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x06\x03\u0854\n\x03" + - "\r\x03\x0E\x03\u0855\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03" + - "\x04\x03\x04\x03\x04\x07\x04\u0861\n\x04\f\x04\x0E\x04\u0864\v\x04\x03" + - "\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03\x05\x03\x05\x05\x05\u086E" + - "\n\x05\x03\x05\x07\x05\u0871\n\x05\f\x05\x0E\x05\u0874\v\x05\x03\x05\x05" + - "\x05\u0877\n\x05\x03\x05\x03\x05\x05\x05\u087B\n\x05\x03\x05\x03\x05\x03" + - "\x05\x03\x05\x05\x05\u0881\n\x05\x03\x05\x03\x05\x05\x05\u0885\n\x05\x05" + - "\x05\u0887\n\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\t\x03" + - "\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03" + - "\n\x03\n\x03\v\x03\v\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\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03" + - "\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x10\x03\x10\x03" + - "\x10\x03\x10\x03\x10\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03" + - "\x13\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03" + - "\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03" + - "\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03" + - "\x17\x03\x18\x03\x18\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\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" + - "\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03" + - "\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03" + - "\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\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 \x03 \x03 \x03 \x03 \x03 \x03!\x03!\x03" + - "!\x03!\x03!\x03!\x03!\x03!\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03" + - "\"\x03\"\x03\"\x03\"\x03\"\x03\"\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03" + - "$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03$\x03%\x03%\x03%\x03%\x03%\x03" + - "%\x03%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03\'\x03" + - "\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03(\x03(\x03(\x03(\x03(\x03(\x03" + - "(\x03(\x03)\x03)\x03)\x03)\x03)\x03)\x03)\x03*\x03*\x03*\x03*\x03*\x03" + - "+\x03+\x03+\x03+\x03+\x03+\x03+\x03+\x03+\x03,\x03,\x03,\x03,\x03,\x03" + - ",\x03,\x03,\x03,\x03,\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03-\x03" + - "-\x03-\x03-\x03-\x03-\x03-\x03-\x03.\x03.\x03.\x03.\x03.\x03.\x03.\x03" + - ".\x03.\x03/"; - private static readonly _serializedATNSegment1: string = - "\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x030\x030\x03" + - "0\x030\x030\x031\x031\x031\x031\x031\x032\x032\x032\x032\x032\x033\x03" + - "3\x033\x033\x033\x033\x033\x034\x034\x034\x034\x034\x034\x034\x034\x03" + - "4\x035\x035\x035\x035\x035\x035\x035\x035\x036\x036\x036\x036\x036\x03" + - "6\x036\x037\x037\x037\x037\x037\x038\x038\x038\x038\x038\x038\x038\x03" + - "8\x039\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@\x03A\x03" + - "A\x03A\x03A\x03B\x03B\x03B\x03B\x03B\x03B\x03C\x03C\x03C\x03C\x03C\x03" + - "C\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03E\x03E\x03E\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03F\x03F\x03F\x03G\x03G\x03G\x03" + - "G\x03G\x03G\x03G\x03H\x03H\x03H\x03I\x03I\x03I\x03I\x03I\x03I\x03J\x03" + - "J\x03J\x03J\x03J\x03J\x03J\x03K\x03K\x03K\x03K\x03K\x03K\x03L\x03L\x03" + - "L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x03N\x03" + - "N\x03N\x03N\x03N\x03N\x03N\x03O\x03O\x03O\x03O\x03O\x03P\x03P\x03P\x03" + - "Q\x03Q\x03Q\x03Q\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03R\x03S\x03" + - "S\x03S\x03S\x03T\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03U\x03V\x03" + - "V\x03V\x03V\x03V\x03V\x03V\x03V\x03W\x03W\x03W\x03W\x03W\x03W\x03X\x03" + - "X\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03Z\x03Z\x03" + - "Z\x03[\x03[\x03[\x03[\x03[\x03[\x03[\x03\\\x03\\\x03\\\x03\\\x03\\\x03" + - "\\\x03]\x03]\x03]\x03]\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\x03a\x03a\x03a\x03a\x03a\x03b\x03" + - "b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03" + - "b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x03" + - "b\x03c\x03c\x03c\x03c\x03c\x03c\x03d\x03d\x03d\x03d\x03d\x03d\x03d\x03" + - "d\x03d\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03f\x03f\x03f\x03" + - "f\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03h\x03" + - "h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03" + - "i\x03i\x03i\x03i\x03i\x03j\x03j\x03j\x03j\x03j\x03j\x03j\x03k\x03k\x03" + - "k\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03m\x03m\x03m\x03m\x03" + - "m\x03m\x03m\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + - "o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x03p\x03q\x03q\x03q\x03q\x03r\x03" + - "r\x03r\x03r\x03r\x03r\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x03t\x03" + - "t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03" + - "u\x03u\x03u\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03w\x03" + - "w\x03w\x03w\x03w\x03w\x03x\x03x\x03x\x03x\x03x\x03x\x03y\x03y\x03y\x03" + - "y\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\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\x80\x03\x80\x03\x81\x03\x81\x03\x81\x03\x81" + - "\x03\x81\x03\x81\x03\x81\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x82" + - "\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\x84\x03\x84\x03\x84\x03\x84\x03\x84" + - "\x03\x84\x03\x84\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\x03\x87\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\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89" + - "\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8B\x03\x8B" + - "\x03\x8B\x03\x8B\x03\x8C\x03\x8C\x03\x8C\x03\x8C\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\x8E\x03\x8E\x03\x8F\x03\x8F\x03\x8F" + - "\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x90\x03\x90\x03\x90\x03\x90" + - "\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91" + - "\x03\x91\x03\x91\x03\x91\x03\x91\x03\x92\x03\x92\x03\x92\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\x93\x03\x93\x03\x93\x03\x94\x03\x94\x03\x94" + - "\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94" + - "\x03\x94\x03\x94\x03\x94\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95" + - "\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95" + - "\x03\x95\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\x96\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\x98" + - "\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\x99\x03\x99\x03\x99\x03\x9A\x03\x9A" + - "\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A" + - "\x03\x9A\x03\x9A\x03\x9A\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\x9E\x03\x9E" + - "\x03\x9E\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F" + - "\x03\x9F\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA2\x03\xA2" + - "\x03\xA2\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA4\x03\xA4" + - "\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\xA6\x03\xA7\x03\xA7\x03\xA7\x03\xA7\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\xAC\x03\xAC\x03\xAC" + - "\x03\xAC\x03\xAC\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\xAF\x03\xAF\x03\xAF\x03\xAF" + - "\x03\xAF\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\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\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\xB4\x03\xB4" + - "\x03\xB4\x03\xB5\x03\xB5\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\xB6\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03\xB8\x03\xB8" + - "\x03\xB8\x03\xB8\x03\xB8\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xBA" + - "\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB" + - "\x03\xBC\x03\xBC\x03\xBC\x03\xBC\x03\xBC\x03\xBD\x03\xBD\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\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF\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\xC1\x03\xC1\x03\xC1\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\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\xC5\x03\xC6\x03\xC6" + - "\x03\xC6\x03\xC6\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7" + - "\x03\xC7\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\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\xCA\x03\xCA\x03\xCA\x03\xCB\x03\xCB\x03\xCB\x03\xCB\x03\xCB\x03\xCB" + - "\x03\xCB\x03\xCB\x03\xCB\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCD" + - "\x03\xCD\x03\xCD\x03\xCD\x03\xCD\x03\xCE\x03\xCE\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\xD0\x03\xD0\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03\xD1" + - "\x03\xD1\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\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\xD3\x03\xD3\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\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\xD8\x03\xD8\x03\xD8\x03\xD8" + - "\x03\xD8\x03\xD8\x03\xD8\x03\xD8\x03\xD8\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\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB" + - "\x03\xDB\x03\xDB\x03\xDB\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x03\xDD" + - "\x03\xDD\x03\xDD\x03\xDD\x03\xDD\x03\xDD\x03\xDD\x03\xDD\x03\xDE\x03\xDE" + - "\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\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xE0\x03\xE0" + - "\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x03\xE1\x03\xE1" + - "\x03\xE1\x03\xE1\x03\xE1\x03\xE1\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\xE2\x03\xE2" + - "\x03\xE2\x03\xE2\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\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\xE4\x03\xE5" + - "\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\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\xE6\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\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\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\xE8\x03\xE8\x03\xE8\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\xE9\x03\xE9\x03\xE9" + - "\x03\xE9\x03\xE9\x03\xE9\x03\xEA\x03\xEA\x03\xEA\x03\xEA\x03\xEA\x03\xEA" + - "\x03\xEA\x03\xEA\x03\xEA\x03\xEA\x03\xEA\x03\xEB\x03\xEB\x03\xEB\x03\xEB" + - "\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB" + - "\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\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\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\xF0\x03\xF0\x03\xF0\x03\xF0" + - "\x03\xF0\x03\xF0\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1" + - "\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF2\x03\xF2\x03\xF2" + - "\x03\xF2\x03\xF3\x03\xF3\x03\xF3\x03\xF3\x03\xF4\x03\xF4\x03\xF4\x03\xF4" + - "\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\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\xF9\x03\xF9" + - "\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xFA\x03\xFA\x03\xFA" + - "\x03\xFA\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\xFC\x03\xFC\x03\xFC" + - "\x03\xFC\x03\xFD\x03\xFD\x03\xFD\x03\xFD\x03\xFD\x03\xFD\x03\xFD\x03\xFD" + - "\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\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\u0101\x03\u0101\x03" + - "\u0102\x03\u0102\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\u0103\x03\u0104\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\u0105\x03\u0105\x03\u0105\x03" + - "\u0105\x03\u0105\x03\u0105\x03\u0105\x03\u0105\x03\u0105\x03\u0106\x03" + - "\u0106\x03\u0106\x03\u0106\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + - "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0108\x03\u0108\x03" + - "\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0109\x03\u0109\x03" + - "\u0109\x03\u0109\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\u010A\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03" + - "\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03" + - "\u010C\x03\u010C\x03\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010D\x03" + - "\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010E\x03\u010E\x03\u010E\x03" + - "\u010E\x03\u010E\x03\u010E\x03\u010E\x03\u010E\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\u010F\x03\u0110\x03\u0110\x03" + - "\u0110\x03\u0110\x03\u0110\x03\u0110\x03\u0110\x03\u0111\x03\u0111\x03" + - "\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0112\x03\u0112\x03\u0112\x03" + - "\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03" + - "\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03" + - "\u0113\x03\u0113\x03\u0113\x03\u0114\x03\u0114\x03\u0114\x03\u0114\x03" + - "\u0115\x03\u0115\x03\u0115\x03\u0116\x03\u0116\x03\u0116\x03\u0116\x03" + - "\u0116\x03\u0116\x03\u0116\x03\u0116\x03\u0117\x03\u0117\x03\u0117\x03" + - "\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03" + - "\u0117\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03" + - "\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03" + - "\u0118\x03\u0118\x03\u0118\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03" + - "\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03" + - "\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u011A\x03\u011A\x03\u011A\x03" + - "\u011A\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x03" + - "\u011A\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x03\u011B\x03\u011B\x03" + - "\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011C\x03\u011C\x03\u011C\x03" + - "\u011C\x03\u011C\x03\u011C\x03\u011C\x03\u011D\x03\u011D\x03\u011D\x03" + - "\u011D\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03" + - "\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u0120\x03\u0120\x03" + - "\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0121\x03" + - "\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0122\x03\u0122\x03" + - "\u0122\x03\u0122\x03\u0122\x03\u0122\x03\u0123\x03\u0123\x03\u0123\x03" + - "\u0123\x03\u0123\x03\u0123\x03\u0123\x03\u0123\x03\u0123\x03\u0124\x03" + - "\u0124\x03\u0124\x03\u0124\x03\u0124\x03\u0124\x03\u0125\x03\u0125\x03" + - "\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0126\x03" + - "\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03" + - "\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03" + - "\u0127\x03\u0127\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03" + - "\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03" + - "\u0128\x03\u0128\x03\u0129\x03\u0129\x03\u0129\x03\u0129\x03\u0129\x03" + - "\u0129\x03\u0129\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03" + - "\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03" + - "\u012A\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03" + - "\u012B\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03" + - "\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x03" + - "\u012D\x03\u012D\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03" + - "\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03" + - "\u012F\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03" + - "\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03" + - "\u0130\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03" + - "\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0132\x03" + - "\u0132\x03\u0132\x03\u0132\x03\u0132\x03\u0132\x03\u0132\x03\u0132\x03" + - "\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03" + - "\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03" + - "\u0134\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03" + - "\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0136\x03\u0136\x03" + - "\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03" + - "\u0136\x03\u0136\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + - "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + - "\u0138\x03\u0138\x03\u0138\x03\u0138\x03\u0138\x03\u0138\x03\u0138\x03" + - "\u0138\x03\u0138\x03\u0138\x03\u0138\x03\u0139\x03\u0139\x03\u0139\x03" + - "\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03" + - "\u0139\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03" + - "\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013B\x03\u013B\x03" + - "\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03" + - "\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03" + - "\u013B\x03\u013B\x03\u013B\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03" + - "\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03" + - "\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03" + - "\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03" + - "\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03" + - "\u013D\x03\u013D\x03\u013E\x03\u013E\x03\u013E\x03\u013E\x03\u013E\x03" + - "\u013E\x03\u013E\x03\u013E\x03\u013E\x03\u013F\x03\u013F\x03\u013F\x03" + - "\u013F\x03\u013F\x03\u013F\x03\u013F\x03\u013F\x03\u0140\x03\u0140\x03" + - "\u0140\x03\u0140\x03\u0140\x03\u0140\x03\u0140\x03\u0140\x03\u0140\x03" + - "\u0140\x03\u0140\x03\u0140\x03\u0140\x03\u0141\x03\u0141\x03\u0141\x03" + - "\u0141\x03\u0141\x03\u0142\x03\u0142\x03\u0142\x03\u0142\x03\u0143\x03" + - "\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03" + - "\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0144\x03\u0144\x03\u0144\x03" + - "\u0144\x03\u0144\x03\u0145\x03\u0145\x03\u0145\x03\u0145\x03\u0145\x03" + - "\u0145\x03\u0145\x03\u0145\x03\u0145\x03\u0146\x03\u0146\x03\u0146\x03" + - "\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03" + - "\u0146\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03" + - "\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03" + - "\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03" + - "\u0148\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03" + - "\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03" + - "\u0149\x03\u0149\x03\u0149\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03" + - "\u014A\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03" + - "\u014A\x03\u014A\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03" + - "\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014C\x03\u014C\x03" + - "\u014C\x03\u014C\x03\u014C\x03\u014C\x03\u014C\x03\u014C\x03\u014D\x03" + - "\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03" + - "\u014E\x03\u014E\x03\u014E\x03\u014E\x03\u014E\x03\u014F\x03\u014F\x03" + - "\u014F\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03" + - "\u0150\x03\u0150\x03\u0150\x03\u0151\x03\u0151\x03\u0151\x03\u0151\x03" + - "\u0151\x03\u0151\x03\u0151\x03\u0151\x03\u0151\x03\u0151\x03\u0152\x03" + - "\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03" + - "\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03" + - "\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03" + - "\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0155\x03\u0155\x03\u0155\x03" + - "\u0155\x03\u0156\x03\u0156\x03\u0156\x03\u0156\x03\u0156\x03\u0157\x03" + - "\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0158\x03" + - "\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03" + - "\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u015A\x03" + - "\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015B\x03" + - "\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015C\x03" + - "\u015C\x03\u015C\x03\u015C\x03\u015C\x03\u015D\x03\u015D\x03\u015D\x03" + - "\u015D\x03\u015D\x03\u015D\x03\u015E\x03\u015E\x03\u015E\x03\u015E\x03" + - "\u015E\x03\u015E\x03\u015E\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03" + - "\u015F\x03\u015F\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03" + - "\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0161\x03\u0161\x03\u0161\x03" + - "\u0161\x03\u0161\x03\u0161\x03\u0161"; - private static readonly _serializedATNSegment2: string = - "\x03\u0161\x03\u0161\x03\u0161\x03\u0162\x03\u0162\x03\u0162\x03\u0162" + - "\x03\u0162\x03\u0162\x03\u0162\x03\u0163\x03\u0163\x03\u0163\x03\u0163" + - "\x03\u0163\x03\u0163\x03\u0163\x03\u0164\x03\u0164\x03\u0164\x03\u0164" + - "\x03\u0164\x03\u0164\x03\u0164\x03\u0164\x03\u0164\x03\u0165\x03\u0165" + - "\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165" + - "\x03\u0165\x03\u0165\x03\u0165\x03\u0166\x03\u0166\x03\u0166\x03\u0166" + - "\x03\u0166\x03\u0167\x03\u0167\x03\u0167\x03\u0167\x03\u0167\x03\u0167" + - "\x03\u0167\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03\u0168" + - "\x03\u0168\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169" + - "\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169" + - "\x03\u0169\x03\u0169\x03\u0169\x03\u016A\x03\u016A\x03\u016A\x03\u016A" + - "\x03\u016A\x03\u016A\x03\u016A\x03\u016B\x03\u016B\x03\u016B\x03\u016B" + - "\x03\u016B\x03\u016B\x03\u016C\x03\u016C\x03\u016C\x03\u016C\x03\u016C" + - "\x03\u016C\x03\u016D\x03\u016D\x03\u016D\x03\u016D\x03\u016D\x03\u016D" + - "\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E" + - "\x03\u016E\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F" + - "\x03\u0170\x03\u0170\x03\u0170\x03\u0170\x03\u0170\x03\u0171\x03\u0171" + - "\x03\u0171\x03\u0171\x03\u0171\x03\u0171\x03\u0171\x03\u0171\x03\u0171" + - "\x03\u0172\x03\u0172\x03\u0172\x03\u0172\x03\u0172\x03\u0172\x03\u0172" + - "\x03\u0172\x03\u0173\x03\u0173\x03\u0173\x03\u0173\x03\u0173\x03\u0173" + - "\x03\u0173\x03\u0174\x03\u0174\x03\u0174\x03\u0174\x03\u0174\x03\u0174" + - "\x03\u0174\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175" + - "\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175" + - "\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0176\x03\u0176" + - "\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0177" + - "\x03\u0177\x03\u0177\x03\u0177\x03\u0177\x03\u0178\x03\u0178\x03\u0178" + - "\x03\u0178\x03\u0178\x03\u0179\x03\u0179\x03\u0179\x03\u0179\x03\u0179" + - "\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017B" + - "\x03\u017B\x03\u017B\x03\u017B\x03\u017B\x03\u017B\x03\u017B\x03\u017B" + - "\x03\u017B\x03\u017B\x03\u017B\x03\u017C\x03\u017C\x03\u017C\x03\u017C" + - "\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C" + - "\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C" + - "\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D" + - "\x03\u017E\x03\u017E\x03\u017E\x03\u017E\x03\u017E\x03\u017E\x03\u017E" + - "\x03\u017E\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u017F" + - "\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u017F" + - "\x03\u0180\x03\u0180\x03\u0180\x03\u0180\x03\u0180\x03\u0180\x03\u0180" + - "\x03\u0180\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181" + - "\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181" + - "\x03\u0181\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + - "\x03\u0182\x03\u0182\x03\u0183\x03\u0183\x03\u0183\x03\u0183\x03\u0183" + - "\x03\u0183\x03\u0183\x03\u0183\x03\u0183\x03\u0184\x03\u0184\x03\u0184" + - "\x03\u0184\x03\u0184\x03\u0184\x03\u0184\x03\u0184\x03\u0184\x03\u0184" + - "\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185" + - "\x03\u0185\x03\u0186\x03\u0186\x03\u0186\x03\u0187\x03\u0187\x03\u0187" + - "\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187" + - "\x03\u0188\x03\u0188\x03\u0188\x03\u0188\x03\u0189\x03\u0189\x03\u0189" + - "\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189" + - "\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A" + - "\x03\u018B\x03\u018B\x03\u018B\x03\u018B\x03\u018B\x03\u018C\x03\u018C" + - "\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C" + - "\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018D" + - "\x03\u018D\x03\u018D\x03\u018D\x03\u018D\x03\u018D\x03\u018D\x03\u018D" + - "\x03\u018D\x03\u018E\x03\u018E\x03\u018E\x03\u018E\x03\u018E\x03\u018F" + - "\x03\u018F\x03\u018F\x03\u018F\x03\u018F\x03\u018F\x03\u018F\x03\u0190" + - "\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0191\x03\u0191\x03\u0191" + - "\x03\u0191\x03\u0191\x03\u0191\x03\u0192\x03\u0192\x03\u0192\x03\u0192" + - "\x03\u0192\x03\u0193\x03\u0193\x03\u0193\x03\u0193\x03\u0193\x03\u0193" + - "\x03\u0194\x03\u0194\x03\u0194\x03\u0194\x03\u0194\x03\u0194\x03\u0194" + - "\x03\u0194\x03\u0195\x03\u0195\x03\u0195\x03\u0195\x03\u0195\x03\u0196" + - "\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0197" + - "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + - "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + - "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0198" + - "\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198" + - "\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198" + - "\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0199" + - "\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u0199" + - "\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u019A\x03\u019A" + - "\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A" + - "\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A" + - "\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A" + - "\x03\u019A\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B" + - "\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019C" + - "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C" + - "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C" + - "\x03\u019C\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D" + - "\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D" + - "\x03\u019D\x03\u019D\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E" + - "\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E" + - "\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019F\x03\u019F\x03\u019F" + - "\x03\u019F\x03\u019F\x03\u019F\x03\u019F\x03\u019F\x03\u019F\x03\u019F" + - "\x03\u019F\x03\u019F\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0" + - "\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0" + - "\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0" + - "\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1" + - "\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A2\x03\u01A2\x03\u01A2" + - "\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2" + - "\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A3\x03\u01A3\x03\u01A3" + - "\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3" + - "\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3" + - "\x03\u01A3\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4" + - "\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4" + - "\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5" + - "\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5" + - "\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5" + - "\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6" + - "\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6" + - "\x03\u01A6\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7" + - "\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7" + - "\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A8" + - "\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8" + - "\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8" + - "\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9" + - "\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9" + - "\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01AA\x03\u01AA" + - "\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA" + - "\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB" + - "\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB" + - "\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB" + - "\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB" + - "\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC" + - "\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC" + - "\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC" + - "\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD" + - "\x03\u01AD\x03\u01AD\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE" + - "\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AF\x03\u01AF\x03\u01AF" + - "\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF" + - "\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF" + - "\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01B0\x03\u01B0\x03\u01B0" + - "\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0" + - "\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0" + - "\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B1\x03\u01B1\x03\u01B1" + - "\x03\u01B1\x03\u01B1\x03\u01B1\x03\u01B1\x03\u01B2\x03\u01B2\x03\u01B2" + - "\x03\u01B2\x03\u01B2\x03\u01B2\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3" + - "\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3" + - "\x03\u01B3\x03\u01B3\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B5" + - "\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5" + - "\x03\u01B6\x03\u01B6\x03\u01B6\x03\u01B6\x03\u01B6\x03\u01B6\x03\u01B6" + - "\x03\u01B6\x03\u01B6\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7" + - "\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B8" + - "\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01BA" + - "\x03\u01BA\x03\u01BA\x03\u01BA\x03\u01BA\x03\u01BA\x03\u01BB\x03\u01BB" + - "\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB" + - "\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC" + - "\x03\u01BC\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD" + - "\x03\u01BE\x03\u01BE\x03\u01BE\x03\u01BE\x03\u01BE\x03\u01BE\x03\u01BF" + - "\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01C0\x03\u01C0" + - "\x03\u01C0\x03\u01C0\x03\u01C0\x03\u01C1\x03\u01C1\x03\u01C1\x03\u01C2" + - "\x03\u01C2\x03\u01C2\x03\u01C2\x03\u01C2\x03\u01C2\x03\u01C2\x03\u01C2" + - "\x03\u01C2\x03\u01C2\x03\u01C3\x03\u01C3\x03\u01C3\x03\u01C3\x03\u01C3" + - "\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4" + - "\x03\u01C4\x03\u01C5\x03\u01C5\x03\u01C5\x03\u01C5\x03\u01C5\x03\u01C5" + - "\x03\u01C5\x03\u01C6\x03\u01C6\x03\u01C6\x03\u01C7\x03\u01C7\x03\u01C7" + - "\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7" + - "\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8" + - "\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9" + - "\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CB\x03\u01CB" + - "\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC" + - "\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC" + - "\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CD\x03\u01CD" + - "\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CE" + - "\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CF\x03\u01CF" + - "\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF" + - "\x03\u01CF\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D1" + - "\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D2" + - "\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2" + - "\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3" + - "\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D4" + - "\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4" + - "\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5" + - "\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D6\x03\u01D6" + - "\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D7\x03\u01D7\x03\u01D7" + - "\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D8\x03\u01D8\x03\u01D8" + - "\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8" + - "\x03\u01D8\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9" + - "\x03\u01D9\x03\u01D9\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA" + - "\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB" + - "\x03\u01DB\x03\u01DB\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC" + - "\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD" + - "\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DE\x03\u01DE" + - "\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF" + - "\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF" + - "\x03\u01DF\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0" + - "\x03\u01E0\x03\u01E0\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1" + - "\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E2\x03\u01E2\x03\u01E2" + - "\x03\u01E2\x03\u01E2\x03\u01E2\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3" + - "\x03\u01E3\x03\u01E3\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4" + - "\x03\u01E4\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5" + - "\x03\u01E5\x03\u01E5\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E6" + - "\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7" + - "\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7" + - "\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E8" + - "\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8" + - "\x03\u01E8\x03\u01E8\x03\u01E9\x03\u01E9\x03\u01E9\x03\u01E9\x03\u01E9" + - "\x03\u01E9\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA" + - "\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA" + - "\x03\u01EA\x03\u01EA\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB" + - "\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB" + - "\x03\u01EB\x03\u01EB\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01EC" + - "\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01ED\x03\u01ED\x03\u01ED" + - "\x03\u01ED\x03\u01ED\x03\u01ED\x03\u01ED\x03\u01EE\x03\u01EE\x03\u01EE" + - "\x03\u01EE\x03\u01EE\x03\u01EE\x03\u01EE\x03\u01EE\x03\u01EE\x03\u01EE" + - "\x03\u01EE\x03\u01EF\x03\u01EF\x03\u01EF\x03\u01EF\x03\u01EF\x03\u01EF" + - "\x03\u01EF\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0" + - "\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0" + - "\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1" + - "\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1" + - "\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1" + - "\x03\u01F1\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2" + - "\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2" + - "\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2" + - "\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3" + - "\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3" + - "\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F3" + - "\x03\u01F3\x03\u01F3\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + - "\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + - "\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + - "\x03\u01F4\x03\u01F4\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5" + - "\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5" + - "\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5" + - "\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F6\x03\u01F6" + - "\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6" + - "\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6" + - "\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6" + - "\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F7\x03\u01F7" + - "\x03\u01F7\x03\u01F7\x03\u01F7\x03\u01F7\x03\u01F7\x03\u01F7\x03\u01F7" + - "\x03\u01F7\x03\u01F7\x03\u01F7\x03\u01F8\x03\u01F8\x03\u01F8\x03\u01F8" + - "\x03\u01F8\x03\u01F8\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9" + - "\x03\u01F9\x03\u01F9\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA" + - "\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA" + - "\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FB" + - "\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB" + - "\x03\u01FC\x03\u01FC\x03\u01FC\x03\u01FC\x03\u01FC\x03\u01FD\x03\u01FD" + - "\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD" + - "\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FE" + - "\x03\u01FF\x03\u01FF\x03\u01FF\x03\u01FF\x03\u01FF\x03\u01FF\x03\u01FF" + - "\x03\u0200\x03\u0200\x03\u0200\x03\u0200\x03\u0201\x03\u0201\x03\u0201" + - "\x03\u0201\x03\u0201\x03\u0202\x03\u0202\x03\u0202\x03\u0202\x03\u0202" + - "\x03\u0202\x03\u0202\x03\u0202\x03\u0202\x03\u0202\x03\u0202\x03\u0203" + - "\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203" + - "\x03\u0203\x03\u0203\x03\u0204\x03\u0204\x03\u0204\x03\u0204\x03\u0204" + - "\x03\u0204\x03\u0204\x03\u0204\x03\u0204\x03\u0205\x03\u0205\x03\u0205" + - "\x03\u0205\x03\u0205\x03\u0205\x03\u0205\x03\u0205\x03\u0205\x03\u0206" + - "\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0207" + - "\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0207" + - "\x03\u0208\x03\u0208\x03\u0208\x03\u0208\x03\u0208\x03\u0208\x03\u0209" + - "\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u020A" + - "\x03\u020A\x03\u020A\x03\u020A\x03\u020A\x03\u020A\x03\u020A\x03\u020B" + - "\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020C" + - "\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020D\x03\u020D" + - "\x03\u020D\x03\u020D\x03\u020D\x03\u020E\x03\u020E\x03\u020E\x03\u020E" + - "\x03\u020E\x03\u020E\x03\u020E\x03\u020E\x03\u020E\x03\u020F\x03\u020F" + - "\x03\u020F\x03\u020F\x03\u020F\x03\u020F\x03\u020F\x03\u0210\x03\u0210" + - "\x03\u0210\x03\u0210\x03\u0210\x03\u0211\x03\u0211\x03\u0211\x03\u0211" + - "\x03\u0211\x03\u0211\x03\u0211\x03\u0212\x03\u0212\x03\u0212\x03\u0212" + - "\x03\u0212\x03\u0212\x03\u0212\x03\u0213\x03\u0213\x03\u0213\x03\u0213" + - "\x03\u0213\x03\u0213\x03\u0213\x03\u0214\x03\u0214\x03\u0214\x03\u0214" + - "\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214" + - "\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0215\x03\u0215" + - "\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215" + - "\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215" + - "\x03\u0215\x03\u0215\x03\u0215\x03\u0216\x03\u0216\x03\u0216\x03\u0216" + - "\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216" + - "\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0217" + - "\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217" + - "\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217" + - "\x03\u0217\x03\u0217\x03\u0217\x03\u0218\x03\u0218\x03\u0218\x03\u0218" + - "\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0219" + - "\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u0219" + - "\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u021A\x03\u021A" + - "\x03\u021A\x03\u021A\x03\u021A\x03\u021A\x03\u021A\x03\u021A\x03\u021A" + - "\x03\u021A\x03\u021A\x03\u021B\x03\u021B\x03\u021B\x03\u021B\x03\u021B" + - "\x03\u021B\x03\u021C\x03\u021C\x03\u021C\x03\u021C\x03\u021C\x03\u021C" + - "\x03\u021C\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D" + - "\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D" + - "\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021E\x03\u021E" + - "\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E" + - "\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E" + - "\x03\u021E\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F" + - "\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F" + - "\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u021F\x03\u0220" + - "\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0221" + - "\x03\u0221\x03\u0221\x03\u0221\x03\u0221\x03\u0222\x03\u0222\x03\u0222" + - "\x03\u0222\x03\u0222\x03\u0222\x03\u0222\x03\u0222\x03\u0223\x03\u0223" + - "\x03\u0223\x03\u0223\x03\u0223\x03\u0223\x03\u0223\x03\u0224\x03\u0224" + - "\x03\u0224\x03\u0224\x03\u0224\x03\u0224\x03\u0224\x03\u0225\x03\u0225" + - "\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225" + - "\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225" + - "\x03\u0226\x03\u0226\x03\u0226\x03\u0226\x03\u0226\x03\u0226\x03\u0226" + - "\x03\u0226\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227" + - "\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227" + - "\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228" + - "\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228" + - "\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u0229" + - "\x03\u0229\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A" + - "\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022B" + - "\x03\u022B\x03\u022B\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C" + - "\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022D" + - "\x03\u022D\x03\u022D\x03\u022D\x03\u022D\x03\u022D\x03\u022D\x03\u022D" + - "\x03\u022D\x03\u022D\x03\u022D\x03\u022E\x03\u022E\x03\u022E\x03\u022E" + - "\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022F" + - "\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F" + - "\x03\u022F\x03\u022F\x03\u0230\x03\u0230\x03\u0230\x03\u0230\x03\u0230" + - "\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0231" + - "\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0232\x03\u0232" + - "\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232" + - "\x03\u0232\x03\u0232\x03\u0232\x03\u0233\x03\u0233\x03\u0233\x03\u0233" + - "\x03\u0233\x03\u0233\x03\u0233\x03\u0233\x03\u0233\x03\u0233\x03\u0233" + - "\x03\u0233\x03\u0233\x03\u0233\x03\u0234\x03\u0234\x03\u0234\x03\u0234" + - "\x03\u0234\x03\u0234\x03\u0234\x03\u0234\x03\u0234\x03\u0235\x03\u0235" + - "\x03\u0235\x03\u0235\x03\u0235\x03\u0235\x03\u0235\x03\u0235\x03\u0235" + - "\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236" + - "\x03\u0236\x03\u0236\x03\u0236\x03\u0237\x03\u0237\x03\u0237\x03\u0237" + - "\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0238\x03\u0238" + - "\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238" + - "\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238" + - "\x03\u0238\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239" + - "\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u023A\x03\u023A\x03\u023A" + - "\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023B\x03\u023B" + - "\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023C\x03\u023C\x03\u023C" + - "\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023D\x03\u023D" + - "\x03\u023D\x03\u023D\x03\u023D\x03\u023E\x03\u023E\x03\u023E\x03\u023E" + - "\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023F\x03\u023F\x03\u023F" + - "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F" + - "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u0240\x03\u0240" + - "\x03\u0240\x03\u0240\x03\u0240\x03\u0240\x03\u0240\x03\u0240\x03\u0240" + - "\x03\u0240\x03\u0240\x03\u0241\x03\u0241\x03\u0241\x03\u0241\x03\u0241" + - "\x03\u0241\x03\u0242\x03\u0242\x03\u0242\x03\u0242\x03\u0242\x03\u0242" + - "\x03\u0242\x03\u0242\x03\u0242\x03\u0242\x03\u0243\x03\u0243\x03\u0243" + - "\x03\u0243\x03\u0243\x03\u0244\x03\u0244\x03\u0244\x03\u0244\x03\u0244" + - "\x03\u0244\x03\u0244\x03\u0244\x03\u0245\x03\u0245\x03\u0245\x03\u0245" + - "\x03\u0245\x03\u0245\x03\u0245\x03\u0245\x03\u0246\x03\u0246\x03\u0246" + - "\x03\u0246\x03\u0246\x03\u0247\x03\u0247\x03\u0247\x03\u0247\x03\u0247" + - "\x03\u0247\x03\u0247\x03\u0247\x03\u0247\x03\u0248\x03\u0248\x03\u0248" + - "\x03\u0248\x03\u0248\x03\u0248\x03\u0248\x03\u0248\x03\u0249\x03\u0249" + - "\x03\u0249\x03\u0249\x03\u0249\x03\u024A\x03\u024A\x03\u024A\x03\u024A" + - "\x03\u024A\x03\u024A\x03\u024A\x03\u024A\x03\u024B\x03\u024B\x03\u024B" + - "\x03\u024B\x03\u024B\x03\u024C\x03\u024C\x03\u024C\x03\u024D\x03\u024D" + - "\x03\u024D\x03\u024D\x03\u024E\x03\u024E\x03\u024E\x03\u024E\x03\u024F" + - "\x03\u024F\x03\u024F\x03\u024F\x03\u0250\x03\u0250\x03\u0250\x03\u0250" + - "\x03\u0251\x03\u0251\x03\u0251\x03\u0251\x03\u0252\x03\u0252\x03\u0252" + - "\x03\u0252\x03\u0252\x03\u0252\x03\u0252\x03\u0252\x03\u0252\x03\u0253" + - "\x03\u0253\x03\u0253\x03\u0253\x03\u0253\x03\u0253\x03\u0253\x03\u0253" + - "\x03\u0254\x03\u0254\x03\u0254\x03\u0254\x03\u0254\x03\u0254\x03\u0255" + - "\x03\u0255\x03\u0255\x03\u0255\x03\u0256\x03\u0256\x03\u0256\x03\u0256" + - "\x03\u0256\x03\u0257\x03\u0257\x03\u0257\x03\u0257\x03\u0257\x03\u0257" + - "\x03\u0257\x03\u0258\x03\u0258\x03\u0258\x03\u0258\x03\u0258\x03\u0259" + - "\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u025A" + - "\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A" + - "\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025B\x03\u025B\x03\u025B" + - "\x03\u025B\x03\u025B\x03\u025B\x03\u025B\x03\u025C\x03\u025C\x03\u025C" + - "\x03\u025C\x03\u025C\x03\u025C\x03\u025C\x03\u025C\x03\u025D\x03\u025D" + - "\x03\u025D\x03\u025D\x03\u025D\x03\u025D\x03\u025D\x03\u025D\x03\u025E" + - "\x03\u025E\x03\u025E\x03\u025E\x03\u025E\x03\u025F\x03\u025F\x03\u025F" + - "\x03\u025F\x03\u025F\x03\u025F\x03\u025F\x03\u025F\x03\u0260\x03\u0260" + - "\x03\u0260\x03\u0260\x03\u0260\x03\u0260\x03\u0260\x03\u0261\x03\u0261" + - "\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261" + - "\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0263" + - "\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263" + - "\x03\u0263\x03\u0263\x03\u0263\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + - "\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + - "\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + - "\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + - "\x03\u0264\x03\u0264\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265" + - "\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265" + - "\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266" + - "\x03\u0266"; - private static readonly _serializedATNSegment3: string = - "\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0267\x03\u0267" + - "\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267" + - "\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0268\x03\u0268\x03\u0268" + - "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268" + - "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268" + - "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268" + - "\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269" + - "\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u026A\x03\u026A" + - "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + - "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + - "\x03\u026A\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B" + - "\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B" + - "\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B" + - "\x03\u026B\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + - "\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + - "\x03\u026C\x03\u026C\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + - "\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + - "\x03\u026D\x03\u026D\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E" + - "\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E" + - "\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E" + - "\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026F\x03\u026F" + - "\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F" + - "\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F" + - "\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F" + - "\x03\u026F\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270" + - "\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270" + - "\x03\u0270\x03\u0270\x03\u0270\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + - "\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + - "\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + - "\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + - "\x03\u0271\x03\u0271\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272" + - "\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272" + - "\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272" + - "\x03\u0272\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273" + - "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273" + - "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273" + - "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0274\x03\u0274\x03\u0274" + - "\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274" + - "\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274" + - "\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0275\x03\u0275\x03\u0275" + - "\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275" + - "\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275" + - "\x03\u0275\x03\u0275\x03\u0275\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + - "\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + - "\x03\u0277\x05\u0277\u1E77\n\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + - "\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + - "\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + - "\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + - "\x05\u0277\u1E92\n\u0277\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278" + - "\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278" + - "\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279" + - "\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u027A" + - "\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A" + - "\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A" + - "\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A" + - "\x03\u027A\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + - "\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + - "\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + - "\x03\u027B\x03\u027B\x03\u027B\x03\u027C\x03\u027C\x03\u027C\x03\u027C" + - "\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C" + - "\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C" + - "\x03\u027C\x03\u027C\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D" + - "\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D" + - "\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027E\x03\u027E" + - "\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E" + - "\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u0280" + - "\x03\u0280\x03\u0280\x03\u0280\x03\u0280\x03\u0281\x03\u0281\x03\u0281" + - "\x03\u0281\x03\u0281\x03\u0281\x03\u0281\x03\u0282\x03\u0282\x03\u0282" + - "\x03\u0282\x03\u0282\x03\u0282\x03\u0282\x03\u0283\x03\u0283\x03\u0283" + - "\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0284\x03\u0284\x03\u0284" + - "\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0285\x03\u0285\x03\u0285" + - "\x03\u0285\x03\u0285\x03\u0285\x03\u0286\x03\u0286\x03\u0286\x03\u0286" + - "\x03\u0286\x03\u0286\x03\u0287\x03\u0287\x03\u0287\x03\u0287\x03\u0287" + - "\x03\u0287\x03\u0288\x03\u0288\x03\u0288\x03\u0288\x03\u0288\x03\u0288" + - "\x03\u0289\x03\u0289\x03\u0289\x03\u0289\x03\u0289\x03\u028A\x03\u028A" + - "\x03\u028A\x03\u028A\x03\u028A\x03\u028A\x03\u028A\x03\u028A\x03\u028B" + - "\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028C\x03\u028C" + - "\x03\u028C\x03\u028C\x03\u028C\x03\u028C\x03\u028C\x03\u028D\x03\u028D" + - "\x03\u028D\x03\u028D\x03\u028E\x03\u028E\x03\u028E\x03\u028E\x03\u028E" + - "\x03\u028E\x03\u028E\x03\u028E\x03\u028F\x03\u028F\x03\u028F\x03\u028F" + - "\x03\u028F\x03\u028F\x03\u0290\x03\u0290\x03\u0290\x03\u0290\x03\u0290" + - "\x03\u0290\x03\u0290\x03\u0291\x03\u0291\x03\u0291\x03\u0291\x03\u0292" + - "\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292" + - "\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0294" + - "\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0295\x03\u0295" + - "\x03\u0295\x03\u0295\x03\u0295\x03\u0295\x03\u0295\x03\u0296\x03\u0296" + - "\x03\u0296\x03\u0296\x03\u0296\x03\u0296\x03\u0296\x03\u0297\x03\u0297" + - "\x03\u0297\x03\u0297\x03\u0297\x03\u0297\x03\u0297\x03\u0298\x03\u0298" + - "\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0299\x03\u0299" + - "\x03\u0299\x03\u0299\x03\u0299\x03\u0299\x03\u029A\x03\u029A\x03\u029A" + - "\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029B" + - "\x03\u029B\x03\u029B\x03\u029B\x03\u029B\x03\u029C\x03\u029C\x03\u029C" + - "\x03\u029C\x03\u029C\x03\u029D\x03\u029D\x03\u029D\x03\u029D\x03\u029D" + - "\x03\u029D\x03\u029D\x03\u029E\x03\u029E\x03\u029E\x03\u029E\x03\u029E" + - "\x03\u029F\x03\u029F\x03\u029F\x03\u029F\x03\u029F\x03\u02A0\x03\u02A0" + - "\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A1\x03\u02A1\x03\u02A1" + - "\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A2\x03\u02A2" + - "\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A3\x03\u02A3\x03\u02A3" + - "\x03\u02A3\x03\u02A3\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4" + - "\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A5\x03\u02A5\x03\u02A5\x03\u02A5" + - "\x03\u02A5\x03\u02A5\x03\u02A5\x03\u02A5\x03\u02A6\x03\u02A6\x03\u02A6" + - "\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A7\x03\u02A7" + - "\x03\u02A7\x03\u02A7\x03\u02A7\x03\u02A7\x03\u02A7\x03\u02A7\x03\u02A7" + - "\x03\u02A7\x03\u02A8\x03\u02A8\x03\u02A8\x03\u02A8\x03\u02A9\x03\u02A9" + - "\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9" + - "\x03\u02A9\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA" + - "\x03\u02AA\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB" + - "\x03\u02AB\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC" + - "\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AD\x03\u02AD" + - "\x03\u02AD\x03\u02AD\x03\u02AD\x03\u02AD\x03\u02AD\x03\u02AE\x03\u02AE" + - "\x03\u02AE\x03\u02AE\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF" + - "\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02B0" + - "\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0" + - "\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0" + - "\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B1\x03\u02B1\x03\u02B1" + - "\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B2\x03\u02B2\x03\u02B2" + - "\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B2" + - "\x03\u02B2\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3" + - "\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B4\x03\u02B4\x03\u02B4" + - "\x03\u02B4\x03\u02B4\x03\u02B4\x03\u02B4\x03\u02B4\x03\u02B4\x03\u02B4" + - "\x03\u02B4\x03\u02B4\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5" + - "\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5" + - "\x03\u02B5\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6" + - "\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6" + - "\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B7" + - "\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7" + - "\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B7" + - "\x03\u02B8\x03\u02B8\x03\u02B8\x03\u02B8\x03\u02B8\x03\u02B8\x03\u02B8" + - "\x03\u02B8\x03\u02B8\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9" + - "\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02BA" + - "\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA" + - "\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA" + - "\x03\u02BA\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB" + - "\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BC\x03\u02BC" + - "\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BC" + - "\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BD\x03\u02BD\x03\u02BD" + - "\x03\u02BD\x03\u02BD\x03\u02BD\x03\u02BE\x03\u02BE\x03\u02BE\x03\u02BE" + - "\x03\u02BE\x03\u02BE\x03\u02BE\x03\u02BE\x03\u02BF\x03\u02BF\x03\u02BF" + - "\x03\u02BF\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C1" + - "\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1" + - "\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2" + - "\x03\u02C2\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3" + - "\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C4" + - "\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4" + - "\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C5\x03\u02C5\x03\u02C5" + - "\x03\u02C5\x03\u02C5\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6" + - "\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C7\x03\u02C7\x03\u02C7" + - "\x03\u02C7\x03\u02C7\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8" + - "\x03\u02C8\x03\u02C8\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9" + - "\x03\u02C9\x03\u02CA\x03\u02CA\x03\u02CA\x03\u02CA\x03\u02CA\x03\u02CA" + - "\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB" + - "\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB" + - "\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CC\x03\u02CC" + - "\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC" + - "\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC" + - "\x03\u02CC\x03\u02CC\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + - "\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + - "\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + - "\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE" + - "\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE" + - "\x03\u02CE\x03\u02CE\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF" + - "\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF" + - "\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02D0" + - "\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D1\x03\u02D1\x03\u02D1" + - "\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2" + - "\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D3" + - "\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4" + - "\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D5" + - "\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5" + - "\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6" + - "\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7" + - "\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7" + - "\x03\u02D7\x03\u02D7\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8" + - "\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9" + - "\x03\u02D9\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DA" + - "\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB" + - "\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB" + - "\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DC" + - "\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC" + - "\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD" + - "\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DE\x03\u02DE" + - "\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE" + - "\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DF\x03\u02DF\x03\u02DF" + - "\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF" + - "\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0" + - "\x03\u02E0\x03\u02E0\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E1" + - "\x03\u02E1\x03\u02E1\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2" + - "\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E3\x03\u02E3" + - "\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3" + - "\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E4\x03\u02E4" + - "\x03\u02E4\x03\u02E4\x03\u02E4\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5" + - "\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5" + - "\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E7\x03\u02E7\x03\u02E7" + - "\x03\u02E7\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8" + - "\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9" + - "\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9" + - "\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9" + - "\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02EA" + - "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + - "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + - "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + - "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EB\x03\u02EB\x03\u02EB" + - "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + - "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + - "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EC\x03\u02EC\x03\u02EC" + - "\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC" + - "\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02ED\x03\u02ED\x03\u02ED" + - "\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02EE\x03\u02EE" + - "\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE" + - "\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF" + - "\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02F0\x03\u02F0" + - "\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F1" + - "\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1" + - "\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2" + - "\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F3" + - "\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3" + - "\x03\u02F3\x03\u02F3\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4" + - "\x03\u02F4\x03\u02F4\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5" + - "\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6" + - "\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6" + - "\x03\u02F6\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7" + - "\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F8" + - "\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8" + - "\x03\u02F8\x03\u02F8\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02F9" + - "\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02FA\x03\u02FA\x03\u02FA" + - "\x03\u02FA\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FB" + - "\x03\u02FB\x03\u02FC\x03\u02FC\x03\u02FC\x03\u02FC\x03\u02FC\x03\u02FC" + - "\x03\u02FC\x03\u02FC\x03\u02FD\x03\u02FD\x03\u02FD\x03\u02FD\x03\u02FD" + - "\x03\u02FD\x03\u02FD\x03\u02FD\x03\u02FD\x03\u02FE\x03\u02FE\x03\u02FE" + - "\x03\u02FE\x03\u02FE\x03\u02FE\x03\u02FE\x03\u02FE\x03\u02FE\x03\u02FF" + - "\x03\u02FF\x03\u02FF\x03\u02FF\x03\u02FF\x03\u02FF\x03\u02FF\x03\u0300" + - "\x03\u0300\x03\u0300\x03\u0300\x03\u0301\x03\u0301\x03\u0301\x03\u0301" + - "\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301" + - "\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302" + - "\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0303" + - "\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303" + - "\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0304\x03\u0304" + - "\x03\u0304\x03\u0304\x03\u0304\x03\u0304\x03\u0305\x03\u0305\x03\u0305" + - "\x03\u0305\x03\u0305\x03\u0305\x03\u0305\x03\u0305\x03\u0305\x03\u0305" + - "\x03\u0305\x03\u0305\x03\u0306\x03\u0306\x03\u0306\x03\u0306\x03\u0306" + - "\x03\u0306\x03\u0307\x03\u0307\x03\u0307\x03\u0307\x03\u0307\x03\u0307" + - "\x03\u0307\x03\u0308\x03\u0308\x03\u0308\x03\u0308\x03\u0308\x03\u0308" + - "\x03\u0308\x03\u0308\x03\u0308\x03\u0308\x03\u0308\x03\u0309\x03\u0309" + - "\x03\u0309\x03\u0309\x03\u0309\x03\u0309\x03\u0309\x03\u0309\x03\u0309" + - "\x03\u0309\x03\u0309\x03\u0309\x03\u030A\x03\u030A\x03\u030A\x03\u030A" + - "\x03\u030A\x03\u030A\x03\u030A\x03\u030A\x03\u030A\x03\u030A\x03\u030B" + - "\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B" + - "\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030C" + - "\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C" + - "\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C" + - "\x03\u030C\x03\u030C\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D" + - "\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D" + - "\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030E\x03\u030E\x03\u030E" + - "\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E" + - "\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E" + - "\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E" + - "\x03\u030E\x03\u030E\x03\u030E\x03\u030F\x03\u030F\x03\u030F\x03\u030F" + - "\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F" + - "\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F" + - "\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F" + - "\x03\u030F\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310" + - "\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310" + - "\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0311\x03\u0311\x03\u0311" + - "\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311" + - "\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0312" + - "\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312" + - "\x03\u0312\x03\u0312\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0313" + - "\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0313" + - "\x03\u0313\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0314" + - "\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0314" + - "\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0315" + - "\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0316\x03\u0316" + - "\x03\u0316\x03\u0316\x03\u0316\x03\u0316\x03\u0316\x03\u0316\x03\u0316" + - "\x03\u0316\x03\u0316\x03\u0317\x03\u0317\x03\u0317\x03\u0317\x03\u0317" + - "\x03\u0317\x03\u0317\x03\u0317\x03\u0317\x03\u0318\x03\u0318\x03\u0318" + - "\x03\u0318\x03\u0318\x03\u0318\x03\u0318\x03\u0318\x03\u0319\x03\u0319" + - "\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319" + - "\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A" + - "\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031B\x03\u031B" + - "\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031B" + - "\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031C\x03\u031C" + - "\x03\u031C\x03\u031C\x03\u031D\x03\u031D\x03\u031D\x03\u031D\x03\u031D" + - "\x03\u031D\x03\u031D\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E" + - "\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031F" + - "\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F" + - "\x03\u031F\x03\u031F\x03\u031F\x03\u0320\x03\u0320\x03\u0320\x03\u0320" + - "\x03\u0320\x03\u0320\x03\u0320\x03\u0320\x03\u0320\x03\u0320\x03\u0321" + - "\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321" + - "\x03\u0321\x03\u0321\x03\u0322\x03\u0322\x03\u0322\x03\u0322\x03\u0322" + - "\x03\u0322\x03\u0323\x03\u0323\x03\u0323\x03\u0323\x03\u0323\x03\u0323" + - "\x03\u0323\x03\u0323\x03\u0323\x03\u0323\x03\u0323\x03\u0323\x03\u0323" + - "\x03\u0323\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324" + - "\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0325\x03\u0325" + - "\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325" + - "\x03\u0326\x03\u0326\x03\u0326\x03\u0326\x03\u0326\x03\u0326\x03\u0326" + - "\x03\u0326\x03\u0327\x03\u0327\x03\u0327\x03\u0327\x03\u0327\x03\u0327" + - "\x03\u0327\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328" + - "\x03\u0328\x03\u0328\x03\u0328\x03\u0329\x03\u0329\x03\u0329\x03\u0329" + - "\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u0329" + - "\x03\u0329\x03\u0329\x03\u032A\x03\u032A\x03\u032A\x03\u032A\x03\u032A" + - "\x03\u032A\x03\u032A\x03\u032A\x03\u032B\x03\u032B\x03\u032B\x03\u032B" + - "\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032B" + - "\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032C\x03\u032C\x03\u032C" + - "\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C" + - "\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032D\x03\u032D" + - "\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032E" + - "\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E" + - "\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032F\x03\u032F" + - "\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F" + - "\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u0330" + - "\x03\u0330\x03\u0330\x03\u0330\x03\u0330\x03\u0330\x03\u0331\x03\u0331" + - "\x03\u0331\x03\u0331\x03\u0331\x03\u0331\x03\u0332\x03\u0332\x03\u0332" + - "\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0333\x03\u0333\x03\u0333" + - "\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333" + - "\x03\u0333\x03\u0333\x03\u0333\x03\u0334\x03\u0334\x03\u0334\x03\u0334" + - "\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334" + - "\x03\u0334\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335" + - "\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335" + - "\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0336" + - "\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336" + - "\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336" + - "\x03\u0336\x03\u0336\x03\u0336\x03\u0337\x03\u0337\x03\u0337\x03\u0338" + - "\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0338" + - "\x03\u0338\x03\u0338\x03\u0339\x03\u0339\x03\u0339\x03\u0339\x03\u0339" + - "\x03\u0339\x03\u0339\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033B" + - "\x03\u033B\x03\u033B\x03\u033B\x03\u033B\x03\u033B\x03\u033C\x03\u033C" + - "\x03\u033C\x03\u033C\x03\u033C\x03\u033D\x03\u033D\x03\u033D\x03\u033D" + - "\x03\u033D\x03\u033D\x03\u033E\x03\u033E\x03\u033E\x03\u033E\x03\u033E" + - "\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u0340" + - "\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340" + - "\x03\u0340\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341" + - "\x03\u0341\x03\u0341\x03\u0341\x03\u0342\x03\u0342\x03\u0342\x03\u0342" + - "\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0343\x03\u0343" + - "\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343" + - "\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0343" + - "\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0344" + - "\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0345\x03\u0345" + - "\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345" + - "\x03\u0345\x03\u0345\x03\u0345\x03\u0346\x03\u0346\x03\u0346\x03\u0346" + - "\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0347\x03\u0347" + - "\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347" + - "\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0348\x03\u0348" + - "\x03\u0348\x03\u0348\x03\u0348\x03\u0348\x03\u0348\x03\u0348\x03\u0348" + - "\x03\u0348\x03\u0348\x03\u0348\x03\u0349\x03\u0349\x03\u0349\x03\u0349" + - "\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349" + - "\x03\u034A\x03\u034A\x03\u034A\x03\u034A\x03\u034A\x03\u034A\x03\u034A" + - "\x03\u034A\x03\u034A\x03\u034A\x03\u034B\x03\u034B\x03\u034B\x03\u034B" + - "\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C" + - "\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C\x03\u034C" + - "\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034D" + - "\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034D\x03\u034E" + - "\x03\u034E\x03\u034E\x03\u034E\x03\u034E\x03\u034E\x03\u034E\x03\u034E" + - "\x03\u034E\x03\u034E\x03\u034F\x03\u034F\x03\u034F\x03\u034F\x03\u034F" + - "\x03\u034F\x03\u034F\x03\u034F\x03\u034F\x03\u034F\x03\u034F\x03\u034F" + - "\x03\u034F\x03\u034F\x03\u034F\x03\u0350\x03\u0350\x03\u0350\x03\u0350" + - "\x03\u0350\x03\u0350\x03\u0350\x03\u0350\x03\u0350\x03\u0350\x03\u0350" + - "\x03\u0350\x03\u0350\x03\u0350\x03\u0351\x03\u0351\x03\u0351\x03\u0351"; - private static readonly _serializedATNSegment4: string = - "\x03\u0351\x03\u0351\x03\u0351\x03\u0351\x03\u0351\x03\u0351\x03\u0351" + - "\x03\u0351\x03\u0351\x03\u0351\x03\u0352\x03\u0352\x03\u0352\x03\u0352" + - "\x03\u0352\x03\u0352\x03\u0352\x03\u0352\x03\u0352\x03\u0352\x03\u0352" + - "\x03\u0352\x03\u0352\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353" + - "\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353" + - "\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353" + - "\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0353\x03\u0354\x03\u0354" + - "\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354" + - "\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354" + - "\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354\x03\u0354" + - "\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355" + - "\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355" + - "\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0355\x03\u0356\x03\u0356" + - "\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356" + - "\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356\x03\u0356" + - "\x03\u0356\x03\u0356\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357" + - "\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357" + - "\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357\x03\u0357" + - "\x03\u0357\x03\u0357\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358" + - "\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358" + - "\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358\x03\u0358" + - "\x03\u0358\x03\u0359\x03\u0359\x03\u0359\x03\u0359\x03\u0359\x03\u0359" + - "\x03\u0359\x03\u0359\x03\u0359\x03\u0359\x03\u0359\x03\u035A\x03\u035A" + - "\x03\u035A\x03\u035A\x03\u035A\x03\u035A\x03\u035A\x03\u035B\x03\u035B" + - "\x03\u035B\x03\u035B\x03\u035B\x03\u035B\x03\u035B\x03\u035B\x03\u035B" + - "\x03\u035B\x03\u035B\x03\u035B\x03\u035B\x03\u035B\x03\u035C\x03\u035C" + - "\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C" + - "\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C\x03\u035C" + - "\x03\u035C\x03\u035D\x03\u035D\x03\u035D\x03\u035D\x03\u035D\x03\u035D" + - "\x03\u035D\x03\u035D\x03\u035D\x03\u035D\x03\u035E\x03\u035E\x03\u035E" + - "\x03\u035E\x03\u035F\x03\u035F\x03\u035F\x03\u035F\x03\u035F\x03\u035F" + - "\x03\u035F\x03\u035F\x03\u035F\x03\u035F\x03\u035F\x03\u035F\x03\u035F" + - "\x03\u0360\x03\u0360\x03\u0360\x03\u0360\x03\u0361\x03\u0361\x03\u0361" + - "\x03\u0361\x03\u0361\x03\u0361\x03\u0361\x03\u0361\x03\u0361\x03\u0362" + - "\x03\u0362\x03\u0362\x03\u0362\x03\u0362\x03\u0362\x03\u0362\x03\u0362" + - "\x03\u0362\x03\u0362\x03\u0362\x03\u0363\x03\u0363\x03\u0363\x03\u0363" + - "\x03\u0363\x03\u0363\x03\u0363\x03\u0363\x03\u0363\x03\u0363\x03\u0363" + - "\x03\u0363\x03\u0364\x03\u0364\x03\u0364\x03\u0365\x03\u0365\x03\u0365" + - "\x03\u0365\x03\u0365\x03\u0365\x03\u0365\x03\u0365\x03\u0365\x03\u0365" + - "\x03\u0365\x03\u0365\x03\u0365\x03\u0365\x03\u0366\x03\u0366\x03\u0366" + - "\x03\u0366\x03\u0366\x03\u0366\x03\u0366\x03\u0366\x03\u0366\x03\u0366" + - "\x03\u0366\x03\u0366\x03\u0366\x03\u0367\x03\u0367\x03\u0367\x03\u0367" + - "\x03\u0367\x03\u0367\x03\u0367\x03\u0368\x03\u0368\x03\u0368\x03\u0368" + - "\x03\u0368\x03\u0368\x03\u0368\x03\u0368\x03\u0368\x03\u0368\x03\u0368" + - "\x03\u0368\x03\u0368\x03\u0369\x03\u0369\x03\u0369\x03\u0369\x03\u0369" + - "\x03\u0369\x03\u0369\x03\u0369\x03\u0369\x03\u0369\x03\u0369\x03\u0369" + - "\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A" + - "\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A\x03\u036A" + - "\x03\u036A\x03\u036A\x03\u036B\x03\u036B\x03\u036B\x03\u036B\x03\u036B" + - "\x03\u036B\x03\u036B\x03\u036B\x03\u036B\x03\u036B\x03\u036B\x03\u036B" + - "\x03\u036B\x03\u036B\x03\u036B\x03\u036C\x03\u036C\x03\u036C\x03\u036C" + - "\x03\u036D\x03\u036D\x03\u036D\x03\u036D\x03\u036D\x03\u036D\x03\u036E" + - "\x03\u036E\x03\u036E\x03\u036E\x03\u036E\x03\u036E\x03\u036F\x03\u036F" + - "\x03\u036F\x03\u036F\x03\u036F\x03\u036F\x03\u036F\x03\u036F\x03\u0370" + - "\x03\u0370\x03\u0370\x03\u0370\x03\u0370\x03\u0371\x03\u0371\x03\u0371" + - "\x03\u0371\x03\u0371\x03\u0371\x03\u0371\x03\u0371\x03\u0371\x03\u0371" + - "\x03\u0371\x03\u0371\x03\u0371\x03\u0372\x03\u0372\x03\u0372\x03\u0372" + - "\x03\u0372\x03\u0372\x03\u0372\x03\u0372\x03\u0372\x03\u0372\x03\u0372" + - "\x03\u0372\x03\u0372\x03\u0373\x03\u0373\x03\u0373\x03\u0373\x03\u0373" + - "\x03\u0373\x03\u0373\x03\u0373\x03\u0374\x03\u0374\x03\u0374\x03\u0374" + - "\x03\u0374\x03\u0374\x03\u0375\x03\u0375\x03\u0375\x03\u0375\x03\u0375" + - "\x03\u0375\x03\u0375\x03\u0375\x03\u0375\x03\u0375\x03\u0376\x03\u0376" + - "\x03\u0376\x03\u0376\x03\u0376\x03\u0377\x03\u0377\x03\u0377\x03\u0377" + - "\x03\u0377\x03\u0377\x03\u0378\x03\u0378\x03\u0378\x03\u0378\x03\u0378" + - "\x03\u0378\x03\u0378\x03\u0378\x03\u0378\x03\u0378\x03\u0378\x03\u0378" + - "\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u0379" + - "\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u0379\x03\u037A" + - "\x03\u037A\x03\u037A\x03\u037A\x03\u037B\x03\u037B\x03\u037B\x03\u037B" + - "\x03\u037B\x03\u037C\x03\u037C\x03\u037C\x03\u037C\x03\u037C\x03\u037D" + - "\x03\u037D\x03\u037D\x03\u037D\x03\u037D\x03\u037D\x03\u037D\x03\u037D" + - "\x03\u037D\x03\u037D\x03\u037D\x03\u037D\x03\u037E\x03\u037E\x03\u037E" + - "\x03\u037E\x03\u037E\x03\u037F\x03\u037F\x03\u037F\x03\u037F\x03\u0380" + - "\x03\u0380\x03\u0380\x03\u0380\x03\u0380\x03\u0380\x03\u0381\x03\u0381" + - "\x03\u0381\x03\u0381\x03\u0381\x03\u0381\x03\u0381\x03\u0381\x03\u0382" + - "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + - "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + - "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + - "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0383" + - "\x03\u0383\x03\u0383\x03\u0383\x03\u0383\x03\u0384\x03\u0384\x03\u0384" + - "\x03\u0384\x03\u0384\x03\u0385\x03\u0385\x03\u0385\x03\u0385\x03\u0385" + - "\x03\u0385\x03\u0385\x03\u0385\x03\u0385\x03\u0385\x03\u0385\x03\u0386" + - "\x03\u0386\x03\u0386\x03\u0386\x03\u0386\x03\u0386\x03\u0386\x03\u0387" + - "\x03\u0387\x03\u0387\x03\u0387\x03\u0387\x03\u0387\x03\u0387\x03\u0387" + - "\x03\u0387\x03\u0387\x03\u0387\x03\u0387\x03\u0388\x03\u0388\x03\u0388" + - "\x03\u0388\x03\u0388\x03\u0388\x03\u0388\x03\u0388\x03\u0389\x03\u0389" + - "\x03\u0389\x03\u0389\x03\u0389\x03\u0389\x03\u0389\x03\u0389\x03\u0389" + - "\x03\u0389\x03\u0389\x03\u0389\x03\u038A\x03\u038A\x03\u038A\x03\u038A" + - "\x03\u038A\x03\u038A\x03\u038A\x03\u038A\x03\u038A\x03\u038A\x03\u038B" + - "\x03\u038B\x03\u038B\x03\u038B\x03\u038B\x03\u038B\x03\u038B\x03\u038B" + - "\x03\u038B\x03\u038C\x03\u038C\x03\u038C\x03\u038C\x03\u038C\x03\u038C" + - "\x03\u038C\x03\u038C\x03\u038C\x03\u038D\x03\u038D\x03\u038D\x03\u038D" + - "\x03\u038D\x03\u038D\x03\u038D\x03\u038D\x03\u038D\x03\u038D\x03\u038E" + - "\x03\u038E\x03\u038E\x03\u038E\x03\u038E\x03\u038E\x03\u038E\x03\u038E" + - "\x03\u038E\x03\u038E\x03\u038E\x03\u038E\x03\u038F\x03\u038F\x03\u038F" + - "\x03\u038F\x03\u038F\x03\u038F\x03\u038F\x03\u038F\x03\u038F\x03\u038F" + - "\x03\u038F\x03\u038F\x03\u0390\x03\u0390\x03\u0390\x03\u0390\x03\u0390" + - "\x03\u0390\x03\u0390\x03\u0390\x03\u0390\x03\u0390\x03\u0390\x03\u0391" + - "\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0391" + - "\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0391\x03\u0392" + - "\x03\u0392\x03\u0392\x03\u0392\x03\u0392\x03\u0392\x03\u0392\x03\u0392" + - "\x03\u0392\x03\u0392\x03\u0392\x03\u0392\x03\u0392\x03\u0393\x03\u0393" + - "\x03\u0393\x03\u0393\x03\u0393\x03\u0393\x03\u0393\x03\u0393\x03\u0393" + - "\x03\u0393\x03\u0393\x03\u0393\x03\u0394\x03\u0394\x03\u0394\x03\u0394" + - "\x03\u0394\x03\u0394\x03\u0394\x03\u0394\x03\u0394\x03\u0394\x03\u0394" + - "\x03\u0394\x03\u0395\x03\u0395\x03\u0395\x03\u0395\x03\u0395\x03\u0395" + - "\x03\u0395\x03\u0395\x03\u0395\x03\u0395\x03\u0395\x03\u0395\x03\u0396" + - "\x03\u0396\x03\u0396\x03\u0396\x03\u0396\x03\u0396\x03\u0396\x03\u0396" + - "\x03\u0396\x03\u0396\x03\u0396\x03\u0396\x03\u0397\x03\u0397\x03\u0397" + - "\x03\u0397\x03\u0397\x03\u0397\x03\u0397\x03\u0397\x03\u0397\x03\u0397" + - "\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398" + - "\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398\x03\u0398" + - "\x03\u0398\x03\u0398\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399" + - "\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399" + - "\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399\x03\u0399" + - "\x03\u0399\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A" + - "\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A" + - "\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039A\x03\u039B" + - "\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B" + - "\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039B" + - "\x03\u039B\x03\u039B\x03\u039B\x03\u039B\x03\u039C\x03\u039C\x03\u039C" + - "\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C" + - "\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C" + - "\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C" + - "\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039C\x03\u039D" + - "\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D" + - "\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D" + - "\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D" + - "\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D\x03\u039D" + - "\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E" + - "\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E" + - "\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039E\x03\u039F" + - "\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F" + - "\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u039F" + - "\x03\u039F\x03\u039F\x03\u039F\x03\u039F\x03\u03A0\x03\u03A0\x03\u03A0" + - "\x03\u03A0\x03\u03A0\x03\u03A0\x03\u03A0\x03\u03A0\x03\u03A0\x03\u03A0" + - "\x03\u03A0\x03\u03A0\x03\u03A0\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1" + - "\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1" + - "\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A1\x03\u03A2\x03\u03A2" + - "\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2" + - "\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2\x03\u03A2" + - "\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3" + - "\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3\x03\u03A3" + - "\x03\u03A3\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4" + - "\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4" + - "\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A4\x03\u03A5\x03\u03A5\x03\u03A5" + - "\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5" + - "\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A5\x03\u03A6" + - "\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6" + - "\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A6\x03\u03A7" + - "\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A7" + - "\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A7\x03\u03A8\x03\u03A8\x03\u03A8" + - "\x03\u03A8\x03\u03A8\x03\u03A8\x03\u03A8\x03\u03A8\x03\u03A8\x03\u03A8" + - "\x03\u03A8\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9" + - "\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03A9\x03\u03AA" + - "\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA" + - "\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA\x03\u03AA" + - "\x03\u03AA\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB" + - "\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB\x03\u03AB" + - "\x03\u03AB\x03\u03AB\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC" + - "\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC" + - "\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AC" + - "\x03\u03AC\x03\u03AC\x03\u03AC\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD" + - "\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD" + - "\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AD" + - "\x03\u03AD\x03\u03AD\x03\u03AD\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE" + - "\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE" + - "\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AE\x03\u03AF" + - "\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF" + - "\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF" + - "\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03AF\x03\u03B0\x03\u03B0\x03\u03B0" + - "\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0" + - "\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B0" + - "\x03\u03B0\x03\u03B0\x03\u03B0\x03\u03B1\x03\u03B1\x03\u03B1\x03\u03B1" + - "\x03\u03B1\x03\u03B1\x03\u03B1\x03\u03B1\x03\u03B1\x03\u03B1\x03\u03B1" + - "\x03\u03B1\x03\u03B1\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2" + - "\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2\x03\u03B2" + - "\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3" + - "\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B3" + - "\x03\u03B3\x03\u03B3\x03\u03B3\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4" + - "\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4" + - "\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B4\x03\u03B5\x03\u03B5" + - "\x03\u03B5\x03\u03B5\x03\u03B5\x03\u03B5\x03\u03B5\x03\u03B5\x03\u03B5" + - "\x03\u03B5\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6" + - "\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B6" + - "\x03\u03B6\x03\u03B6\x03\u03B6\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7" + - "\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7" + - "\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B7\x03\u03B8\x03\u03B8\x03\u03B8" + - "\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8" + - "\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8\x03\u03B8" + - "\x03\u03B8\x03\u03B8\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9" + - "\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9" + - "\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03B9\x03\u03BA" + - "\x03\u03BA\x03\u03BA\x03\u03BA\x03\u03BA\x03\u03BA\x03\u03BA\x03\u03BA" + - "\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB" + - "\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB\x03\u03BB" + - "\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC" + - "\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BC" + - "\x03\u03BC\x03\u03BC\x03\u03BC\x03\u03BD\x03\u03BD\x03\u03BD\x03\u03BD" + - "\x03\u03BD\x03\u03BD\x03\u03BD\x03\u03BD\x03\u03BD\x03\u03BD\x03\u03BD" + - "\x03\u03BE\x03\u03BE\x03\u03BE\x03\u03BE\x03\u03BE\x03\u03BE\x03\u03BE" + - "\x03\u03BE\x03\u03BE\x03\u03BF\x03\u03BF\x03\u03BF\x03\u03BF\x03\u03BF" + - "\x03\u03BF\x03\u03BF\x03\u03BF\x03\u03BF\x03\u03BF\x03\u03C0\x03\u03C0" + - "\x03\u03C0\x03\u03C0\x03\u03C0\x03\u03C1\x03\u03C1\x03\u03C1\x03\u03C1" + - "\x03\u03C1\x03\u03C2\x03\u03C2\x03\u03C2\x03\u03C2\x03\u03C2\x03\u03C2" + - "\x03\u03C2\x03\u03C2\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3" + - "\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3" + - "\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C3\x03\u03C4\x03\u03C4\x03\u03C4" + - "\x03\u03C4\x03\u03C4\x03\u03C4\x03\u03C4\x03\u03C4\x03\u03C5\x03\u03C5" + - "\x03\u03C5\x03\u03C5\x03\u03C5\x03\u03C5\x03\u03C5\x03\u03C5\x03\u03C5" + - "\x03\u03C5\x03\u03C5\x03\u03C5\x03\u03C6\x03\u03C6\x03\u03C6\x03\u03C6" + - "\x03\u03C7\x03\u03C7\x03\u03C7\x03\u03C7\x03\u03C7\x03\u03C7\x03\u03C7" + - "\x03\u03C7\x03\u03C7\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8" + - "\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8\x03\u03C8" + - "\x03\u03C8\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9" + - "\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9\x03\u03C9" + - "\x03\u03C9\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA" + - "\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CA\x03\u03CB" + - "\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CB" + - "\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CB\x03\u03CC\x03\u03CC\x03\u03CC" + - "\x03\u03CC\x03\u03CC\x03\u03CC\x03\u03CC\x03\u03CC\x03\u03CD\x03\u03CD" + - "\x03\u03CD\x03\u03CD\x03\u03CD\x03\u03CD\x03\u03CD\x03\u03CD\x03\u03CD" + - "\x03\u03CD\x03\u03CE\x03\u03CE\x03\u03CE\x03\u03CE\x03\u03CE\x03\u03CE" + - "\x03\u03CE\x03\u03CE\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03CF" + - "\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03CF\x03\u03D0" + - "\x03\u03D0\x03\u03D0\x03\u03D0\x03\u03D0\x03\u03D0\x03\u03D1\x03\u03D1" + - "\x03\u03D1\x03\u03D1\x03\u03D1\x03\u03D1\x03\u03D1\x03\u03D1\x03\u03D1" + - "\x03\u03D1\x03\u03D1\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2" + - "\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2" + - "\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2\x03\u03D2" + - "\x03\u03D2\x03\u03D3\x03\u03D3\x03\u03D3\x03\u03D3\x03\u03D3\x03\u03D3" + - "\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4" + - "\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4\x03\u03D4" + - "\x03\u03D4\x03\u03D5\x03\u03D5\x03\u03D5\x03\u03D5\x03\u03D5\x03\u03D5" + - "\x03\u03D5\x03\u03D5\x03\u03D5\x03\u03D5\x03\u03D6\x03\u03D6\x03\u03D6" + - "\x03\u03D6\x03\u03D6\x03\u03D6\x03\u03D7\x03\u03D7\x03\u03D7\x03\u03D7" + - "\x03\u03D7\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D8" + - "\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D8\x03\u03D9\x03\u03D9" + - "\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9" + - "\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9" + - "\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9" + - "\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03D9\x03\u03DA\x03\u03DA\x03\u03DA" + - "\x03\u03DA\x03\u03DA\x03\u03DA\x03\u03DA\x03\u03DA\x03\u03DB\x03\u03DB" + - "\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB" + - "\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB" + - "\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB" + - "\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB" + - "\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DB\x03\u03DC\x03\u03DC\x03\u03DC" + - "\x03\u03DC\x03\u03DC\x03\u03DC\x03\u03DC\x03\u03DC\x03\u03DD\x03\u03DD" + - "\x03\u03DD\x03\u03DD\x03\u03DD\x03\u03DD\x03\u03DD\x03\u03DD\x03\u03DD" + - "\x03\u03DD\x03\u03DD\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE" + - "\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE\x03\u03DE" + - "\x03\u03DE\x03\u03DE\x03\u03DF\x03\u03DF\x03\u03DF\x03\u03DF\x03\u03DF" + - "\x03\u03DF\x03\u03DF\x03\u03E0\x03\u03E0\x03\u03E0\x03\u03E0\x03\u03E0" + - "\x03\u03E0\x03\u03E0\x03\u03E0\x03\u03E0\x03\u03E1\x03\u03E1\x03\u03E2" + - "\x03\u03E2\x03\u03E3\x03\u03E3\x03\u03E3\x03\u03E4\x03\u03E4\x03\u03E4" + - "\x03\u03E5\x03\u03E5\x03\u03E5\x03\u03E6\x03\u03E6\x03\u03E6\x03\u03E7" + - "\x03\u03E7\x03\u03E7\x03\u03E8\x03\u03E8\x03\u03E8\x03\u03E9\x03\u03E9" + - "\x03\u03E9\x03\u03EA\x03\u03EA\x03\u03EA\x03\u03EB\x03\u03EB\x03\u03EB" + - "\x03\u03EC\x03\u03EC\x03\u03ED\x03\u03ED\x03\u03EE\x03\u03EE\x03\u03EF" + - "\x03\u03EF\x03\u03F0\x03\u03F0\x03\u03F0\x03\u03F1\x03\u03F1\x03\u03F2" + - "\x03\u03F2\x03\u03F2\x03\u03F2\x03\u03F3\x03\u03F3\x03\u03F3\x03\u03F3" + - "\x03\u03F4\x03\u03F4\x03\u03F5\x03\u03F5\x03\u03F6\x03\u03F6\x03\u03F7" + - "\x03\u03F7\x03\u03F8\x03\u03F8\x03\u03F9\x03\u03F9\x03\u03FA\x03\u03FA" + - "\x03\u03FB\x03\u03FB\x03\u03FC\x03\u03FC\x03\u03FD\x03\u03FD\x03\u03FE" + - "\x03\u03FE\x03\u03FF\x03\u03FF\x03\u0400\x03\u0400\x03\u0401\x03\u0401" + - "\x03\u0402\x03\u0402\x03\u0403\x03\u0403\x03\u0404\x03\u0404\x03\u0405" + - "\x03\u0405\x03\u0406\x03\u0406\x03\u0407\x03\u0407\x03\u0408\x03\u0408" + - "\x03\u0409\x03\u0409\x03\u0409\x05\u0409\u2E55\n\u0409\x03\u040A\x03\u040A" + - "\x03\u040A\x03\u040A\x03\u040B\x06\u040B\u2E5C\n\u040B\r\u040B\x0E\u040B" + - "\u2E5D\x03\u040B\x03\u040B\x03\u040C\x03\u040C\x03\u040C\x03\u040D\x03" + - "\u040D\x03\u040D\x05\u040D\u2E68\n\u040D\x03\u040E\x06\u040E\u2E6B\n\u040E" + - "\r\u040E\x0E\u040E\u2E6C\x03\u040F\x03\u040F\x03\u040F\x03\u040F\x03\u040F" + - "\x06\u040F\u2E74\n\u040F\r\u040F\x0E\u040F\u2E75\x03\u040F\x03\u040F\x03" + - "\u040F\x03\u040F\x03\u040F\x03\u040F\x06\u040F\u2E7E\n\u040F\r\u040F\x0E" + - "\u040F\u2E7F\x05\u040F\u2E82\n\u040F\x03\u0410\x06\u0410\u2E85\n\u0410" + - "\r\u0410\x0E\u0410\u2E86\x05\u0410\u2E89\n\u0410\x03\u0410\x03\u0410\x06" + - "\u0410\u2E8D\n\u0410\r\u0410\x0E\u0410\u2E8E\x03\u0410\x06\u0410\u2E92" + - "\n\u0410\r\u0410\x0E\u0410\u2E93\x03\u0410\x03\u0410\x03\u0410\x03\u0410" + - "\x06\u0410\u2E9A\n\u0410\r\u0410\x0E\u0410\u2E9B\x05\u0410\u2E9E\n\u0410" + - "\x03\u0410\x03\u0410\x06\u0410\u2EA2\n\u0410\r\u0410\x0E\u0410\u2EA3\x03" + - "\u0410\x03\u0410\x03\u0410\x06\u0410\u2EA9\n\u0410\r\u0410\x0E\u0410\u2EAA" + - "\x03\u0410\x03\u0410\x05\u0410\u2EAF\n\u0410\x03\u0411\x03\u0411\x03\u0411" + - "\x03\u0412\x03\u0412\x03\u0413\x03\u0413\x03\u0413\x03\u0414\x03\u0414" + - "\x03\u0414\x03\u0415\x03\u0415\x03\u0416\x03\u0416\x06\u0416\u2EC0\n\u0416" + - "\r\u0416\x0E\u0416\u2EC1\x03\u0416\x03\u0416\x03\u0417\x03\u0417\x03\u0417" + - "\x03\u0417\x05\u0417\u2ECA\n\u0417\x03\u0417\x03\u0417\x03\u0417\x03\u0417" + - "\x03\u0417\x05\u0417\u2ED1\n\u0417\x03\u0418\x03\u0418\x06\u0418\u2ED5" + - "\n\u0418\r\u0418\x0E\u0418\u2ED6\x03\u0418\x03\u0418\x03\u0418\x05\u0418" + - "\u2EDC\n\u0418\x03\u0419\x03\u0419\x03\u0419\x06\u0419\u2EE1\n\u0419\r" + - "\u0419\x0E\u0419\u2EE2\x03\u0419\x05\u0419\u2EE6\n\u0419\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x03" + - "\u041A\x03\u041A\x03\u041A\x03\u041A\x03\u041A\x05\u041A\u2F11\n\u041A" + - "\x03\u041B\x03\u041B\x05\u041B\u2F15\n\u041B\x03\u041B\x06\u041B\u2F18" + - "\n\u041B\r\u041B\x0E\u041B\u2F19\x03\u041C\x07\u041C\u2F1D\n\u041C\f\u041C" + - "\x0E\u041C\u2F20\v\u041C\x03\u041C\x06\u041C\u2F23\n\u041C\r\u041C\x0E" + - "\u041C\u2F24\x03\u041C\x07\u041C\u2F28\n\u041C\f\u041C\x0E\u041C\u2F2B" + - "\v\u041C\x03\u041D\x03\u041D\x03\u041D\x03\u041D\x03\u041D\x03\u041D\x07" + - "\u041D\u2F33\n\u041D\f\u041D\x0E\u041D\u2F36\v\u041D\x03\u041D\x03\u041D" + - "\x03\u041E\x03\u041E\x03\u041E\x03\u041E\x03\u041E\x03\u041E\x07\u041E" + - "\u2F40\n\u041E\f\u041E\x0E\u041E\u2F43\v\u041E\x03\u041E\x03\u041E\x03" + - "\u041F\x03\u041F\x03\u041F\x03\u041F\x03\u041F\x03\u041F\x07\u041F\u2F4D" + - "\n\u041F\f\u041F\x0E\u041F\u2F50\v\u041F\x03\u041F\x03\u041F\x03\u0420" + - "\x03\u0420\x03\u0421\x03\u0421\x03\u0422\x03\u0422\x03\u0422\x06\u0422" + - "\u2F5B\n\u0422\r\u0422\x0E\u0422\u2F5C\x03\u0422\x03\u0422\x03\u0423\x03" + - "\u0423\x03\u0423\x03\u0423\x06\u0855\u0862\u2F1E\u2F24\x02\x02\u0424\x03" + - "\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t" + - "\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02" + - "\x10\x1F\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17" + - "-\x02\x18/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02\x1E;\x02\x1F" + - "=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(O\x02)Q\x02*S" + - "\x02+U\x02,W\x02-Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x024g\x025i\x02" + - "6k\x027m\x028o\x029q\x02:s\x02;u\x02{\x02?}\x02@\x7F\x02" + - "A\x81\x02B\x83\x02C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02H\x8F\x02" + - "I\x91\x02J\x93\x02K\x95\x02L\x97\x02M\x99\x02N\x9B\x02O\x9D\x02P\x9F\x02" + - "Q\xA1\x02R\xA3\x02S\xA5\x02T\xA7\x02U\xA9\x02V\xAB\x02W\xAD\x02X\xAF\x02" + - "Y\xB1\x02Z\xB3\x02[\xB5\x02\\\xB7\x02]\xB9\x02^\xBB\x02_\xBD\x02`\xBF" + - "\x02a\xC1\x02b\xC3\x02c\xC5\x02d\xC7\x02e\xC9\x02f\xCB\x02g\xCD\x02h\xCF" + - "\x02i\xD1\x02j\xD3\x02k\xD5\x02l\xD7\x02m\xD9\x02n\xDB\x02o\xDD\x02p\xDF" + - "\x02q\xE1\x02r\xE3\x02s\xE5\x02t\xE7\x02u\xE9\x02v\xEB\x02w\xED\x02x\xEF" + - "\x02y\xF1\x02z\xF3\x02{\xF5\x02|\xF7\x02}\xF9\x02~\xFB\x02\x7F\xFD\x02" + - "\x80\xFF\x02\x81\u0101\x02\x82\u0103\x02\x83\u0105\x02\x84\u0107\x02\x85" + - "\u0109\x02\x86\u010B\x02\x87\u010D\x02\x88\u010F\x02\x89\u0111\x02\x8A" + - "\u0113\x02\x8B\u0115\x02\x8C\u0117\x02\x8D\u0119\x02\x8E\u011B\x02\x8F" + - "\u011D\x02\x90\u011F\x02\x91\u0121\x02\x92\u0123\x02\x93\u0125\x02\x94" + - "\u0127\x02\x95\u0129\x02\x96\u012B\x02\x97\u012D\x02\x98\u012F\x02\x99" + - "\u0131\x02\x9A\u0133\x02\x9B\u0135\x02\x9C\u0137\x02\x9D\u0139\x02\x9E" + - "\u013B\x02\x9F\u013D\x02\xA0\u013F\x02\xA1\u0141\x02\xA2\u0143\x02\xA3" + - "\u0145\x02\xA4\u0147\x02\xA5\u0149\x02\xA6\u014B\x02\xA7\u014D\x02\xA8" + - "\u014F\x02\xA9\u0151\x02\xAA\u0153\x02\xAB\u0155\x02\xAC\u0157\x02\xAD" + - "\u0159\x02\xAE\u015B\x02\xAF\u015D\x02\xB0\u015F\x02\xB1\u0161\x02\xB2" + - "\u0163\x02\xB3\u0165\x02\xB4\u0167\x02\xB5\u0169\x02\xB6\u016B\x02\xB7" + - "\u016D\x02\xB8\u016F\x02\xB9\u0171\x02\xBA\u0173\x02\xBB\u0175\x02\xBC" + - "\u0177\x02\xBD\u0179\x02\xBE\u017B\x02\xBF\u017D\x02\xC0\u017F\x02\xC1" + - "\u0181\x02\xC2\u0183\x02\xC3\u0185\x02\xC4\u0187\x02\xC5\u0189\x02\xC6" + - "\u018B\x02\xC7\u018D\x02\xC8\u018F\x02\xC9\u0191\x02\xCA\u0193\x02\xCB" + - "\u0195\x02\xCC\u0197\x02\xCD\u0199\x02\xCE\u019B\x02\xCF\u019D\x02\xD0" + - "\u019F\x02\xD1\u01A1\x02\xD2\u01A3\x02\xD3\u01A5\x02\xD4\u01A7\x02\xD5" + - "\u01A9\x02\xD6\u01AB\x02\xD7\u01AD\x02\xD8\u01AF\x02\xD9\u01B1\x02\xDA" + - "\u01B3\x02"; - private static readonly _serializedATNSegment5: string = - "\xDB\u01B5\x02\xDC\u01B7\x02\xDD\u01B9\x02\xDE\u01BB\x02\xDF\u01BD\x02" + - "\xE0\u01BF\x02\xE1\u01C1\x02\xE2\u01C3\x02\xE3\u01C5\x02\xE4\u01C7\x02" + - "\xE5\u01C9\x02\xE6\u01CB\x02\xE7\u01CD\x02\xE8\u01CF\x02\xE9\u01D1\x02" + - "\xEA\u01D3\x02\xEB\u01D5\x02\xEC\u01D7\x02\xED\u01D9\x02\xEE\u01DB\x02" + - "\xEF\u01DD\x02\xF0\u01DF\x02\xF1\u01E1\x02\xF2\u01E3\x02\xF3\u01E5\x02" + - "\xF4\u01E7\x02\xF5\u01E9\x02\xF6\u01EB\x02\xF7\u01ED\x02\xF8\u01EF\x02" + - "\xF9\u01F1\x02\xFA\u01F3\x02\xFB\u01F5\x02\xFC\u01F7\x02\xFD\u01F9\x02" + - "\xFE\u01FB\x02\xFF\u01FD\x02\u0100\u01FF\x02\u0101\u0201\x02\u0102\u0203" + - "\x02\u0103\u0205\x02\u0104\u0207\x02\u0105\u0209\x02\u0106\u020B\x02\u0107" + - "\u020D\x02\u0108\u020F\x02\u0109\u0211\x02\u010A\u0213\x02\u010B\u0215" + - "\x02\u010C\u0217\x02\u010D\u0219\x02\u010E\u021B\x02\u010F\u021D\x02\u0110" + - "\u021F\x02\u0111\u0221\x02\u0112\u0223\x02\u0113\u0225\x02\u0114\u0227" + - "\x02\u0115\u0229\x02\u0116\u022B\x02\u0117\u022D\x02\u0118\u022F\x02\u0119" + - "\u0231\x02\u011A\u0233\x02\u011B\u0235\x02\u011C\u0237\x02\u011D\u0239" + - "\x02\u011E\u023B\x02\u011F\u023D\x02\u0120\u023F\x02\u0121\u0241\x02\u0122" + - "\u0243\x02\u0123\u0245\x02\u0124\u0247\x02\u0125\u0249\x02\u0126\u024B" + - "\x02\u0127\u024D\x02\u0128\u024F\x02\u0129\u0251\x02\u012A\u0253\x02\u012B" + - "\u0255\x02\u012C\u0257\x02\u012D\u0259\x02\u012E\u025B\x02\u012F\u025D" + - "\x02\u0130\u025F\x02\u0131\u0261\x02\u0132\u0263\x02\u0133\u0265\x02\u0134" + - "\u0267\x02\u0135\u0269\x02\u0136\u026B\x02\u0137\u026D\x02\u0138\u026F" + - "\x02\u0139\u0271\x02\u013A\u0273\x02\u013B\u0275\x02\u013C\u0277\x02\u013D" + - "\u0279\x02\u013E\u027B\x02\u013F\u027D\x02\u0140\u027F\x02\u0141\u0281" + - "\x02\u0142\u0283\x02\u0143\u0285\x02\u0144\u0287\x02\u0145\u0289\x02\u0146" + - "\u028B\x02\u0147\u028D\x02\u0148\u028F\x02\u0149\u0291\x02\u014A\u0293" + - "\x02\u014B\u0295\x02\u014C\u0297\x02\u014D\u0299\x02\u014E\u029B\x02\u014F" + - "\u029D\x02\u0150\u029F\x02\u0151\u02A1\x02\u0152\u02A3\x02\u0153\u02A5" + - "\x02\u0154\u02A7\x02\u0155\u02A9\x02\u0156\u02AB\x02\u0157\u02AD\x02\u0158" + - "\u02AF\x02\u0159\u02B1\x02\u015A\u02B3\x02\u015B\u02B5\x02\u015C\u02B7" + - "\x02\u015D\u02B9\x02\u015E\u02BB\x02\u015F\u02BD\x02\u0160\u02BF\x02\u0161" + - "\u02C1\x02\u0162\u02C3\x02\u0163\u02C5\x02\u0164\u02C7\x02\u0165\u02C9" + - "\x02\u0166\u02CB\x02\u0167\u02CD\x02\u0168\u02CF\x02\u0169\u02D1\x02\u016A" + - "\u02D3\x02\u016B\u02D5\x02\u016C\u02D7\x02\u016D\u02D9\x02\u016E\u02DB" + - "\x02\u016F\u02DD\x02\u0170\u02DF\x02\u0171\u02E1\x02\u0172\u02E3\x02\u0173" + - "\u02E5\x02\u0174\u02E7\x02\u0175\u02E9\x02\u0176\u02EB\x02\u0177\u02ED" + - "\x02\u0178\u02EF\x02\u0179\u02F1\x02\u017A\u02F3\x02\u017B\u02F5\x02\u017C" + - "\u02F7\x02\u017D\u02F9\x02\u017E\u02FB\x02\u017F\u02FD\x02\u0180\u02FF" + - "\x02\u0181\u0301\x02\u0182\u0303\x02\u0183\u0305\x02\u0184\u0307\x02\u0185" + - "\u0309\x02\u0186\u030B\x02\u0187\u030D\x02\u0188\u030F\x02\u0189\u0311" + - "\x02\u018A\u0313\x02\u018B\u0315\x02\u018C\u0317\x02\u018D\u0319\x02\u018E" + - "\u031B\x02\u018F\u031D\x02\u0190\u031F\x02\u0191\u0321\x02\u0192\u0323" + - "\x02\u0193\u0325\x02\u0194\u0327\x02\u0195\u0329\x02\u0196\u032B\x02\u0197" + - "\u032D\x02\u0198\u032F\x02\u0199\u0331\x02\u019A\u0333\x02\u019B\u0335" + - "\x02\u019C\u0337\x02\u019D\u0339\x02\u019E\u033B\x02\u019F\u033D\x02\u01A0" + - "\u033F\x02\u01A1\u0341\x02\u01A2\u0343\x02\u01A3\u0345\x02\u01A4\u0347" + - "\x02\u01A5\u0349\x02\u01A6\u034B\x02\u01A7\u034D\x02\u01A8\u034F\x02\u01A9" + - "\u0351\x02\u01AA\u0353\x02\u01AB\u0355\x02\u01AC\u0357\x02\u01AD\u0359" + - "\x02\u01AE\u035B\x02\u01AF\u035D\x02\u01B0\u035F\x02\u01B1\u0361\x02\u01B2" + - "\u0363\x02\u01B3\u0365\x02\u01B4\u0367\x02\u01B5\u0369\x02\u01B6\u036B" + - "\x02\u01B7\u036D\x02\u01B8\u036F\x02\u01B9\u0371\x02\u01BA\u0373\x02\u01BB" + - "\u0375\x02\u01BC\u0377\x02\u01BD\u0379\x02\u01BE\u037B\x02\u01BF\u037D" + - "\x02\u01C0\u037F\x02\u01C1\u0381\x02\u01C2\u0383\x02\u01C3\u0385\x02\u01C4" + - "\u0387\x02\u01C5\u0389\x02\u01C6\u038B\x02\u01C7\u038D\x02\u01C8\u038F" + - "\x02\u01C9\u0391\x02\u01CA\u0393\x02\u01CB\u0395\x02\u01CC\u0397\x02\u01CD" + - "\u0399\x02\u01CE\u039B\x02\u01CF\u039D\x02\u01D0\u039F\x02\u01D1\u03A1" + - "\x02\u01D2\u03A3\x02\u01D3\u03A5\x02\u01D4\u03A7\x02\u01D5\u03A9\x02\u01D6" + - "\u03AB\x02\u01D7\u03AD\x02\u01D8\u03AF\x02\u01D9\u03B1\x02\u01DA\u03B3" + - "\x02\u01DB\u03B5\x02\u01DC\u03B7\x02\u01DD\u03B9\x02\u01DE\u03BB\x02\u01DF" + - "\u03BD\x02\u01E0\u03BF\x02\u01E1\u03C1\x02\u01E2\u03C3\x02\u01E3\u03C5" + - "\x02\u01E4\u03C7\x02\u01E5\u03C9\x02\u01E6\u03CB\x02\u01E7\u03CD\x02\u01E8" + - "\u03CF\x02\u01E9\u03D1\x02\u01EA\u03D3\x02\u01EB\u03D5\x02\u01EC\u03D7" + - "\x02\u01ED\u03D9\x02\u01EE\u03DB\x02\u01EF\u03DD\x02\u01F0\u03DF\x02\u01F1" + - "\u03E1\x02\u01F2\u03E3\x02\u01F3\u03E5\x02\u01F4\u03E7\x02\u01F5\u03E9" + - "\x02\u01F6\u03EB\x02\u01F7\u03ED\x02\u01F8\u03EF\x02\u01F9\u03F1\x02\u01FA" + - "\u03F3\x02\u01FB\u03F5\x02\u01FC\u03F7\x02\u01FD\u03F9\x02\u01FE\u03FB" + - "\x02\u01FF\u03FD\x02\u0200\u03FF\x02\u0201\u0401\x02\u0202\u0403\x02\u0203" + - "\u0405\x02\u0204\u0407\x02\u0205\u0409\x02\u0206\u040B\x02\u0207\u040D" + - "\x02\u0208\u040F\x02\u0209\u0411\x02\u020A\u0413\x02\u020B\u0415\x02\u020C" + - "\u0417\x02\u020D\u0419\x02\u020E\u041B\x02\u020F\u041D\x02\u0210\u041F" + - "\x02\u0211\u0421\x02\u0212\u0423\x02\u0213\u0425\x02\u0214\u0427\x02\u0215" + - "\u0429\x02\u0216\u042B\x02\u0217\u042D\x02\u0218\u042F\x02\u0219\u0431" + - "\x02\u021A\u0433\x02\u021B\u0435\x02\u021C\u0437\x02\u021D\u0439\x02\u021E" + - "\u043B\x02\u021F\u043D\x02\u0220\u043F\x02\u0221\u0441\x02\u0222\u0443" + - "\x02\u0223\u0445\x02\u0224\u0447\x02\u0225\u0449\x02\u0226\u044B\x02\u0227" + - "\u044D\x02\u0228\u044F\x02\u0229\u0451\x02\u022A\u0453\x02\u022B\u0455" + - "\x02\u022C\u0457\x02\u022D\u0459\x02\u022E\u045B\x02\u022F\u045D\x02\u0230" + - "\u045F\x02\u0231\u0461\x02\u0232\u0463\x02\u0233\u0465\x02\u0234\u0467" + - "\x02\u0235\u0469\x02\u0236\u046B\x02\u0237\u046D\x02\u0238\u046F\x02\u0239" + - "\u0471\x02\u023A\u0473\x02\u023B\u0475\x02\u023C\u0477\x02\u023D\u0479" + - "\x02\u023E\u047B\x02\u023F\u047D\x02\u0240\u047F\x02\u0241\u0481\x02\u0242" + - "\u0483\x02\u0243\u0485\x02\u0244\u0487\x02\u0245\u0489\x02\u0246\u048B" + - "\x02\u0247\u048D\x02\u0248\u048F\x02\u0249\u0491\x02\u024A\u0493\x02\u024B" + - "\u0495\x02\u024C\u0497\x02\u024D\u0499\x02\u024E\u049B\x02\u024F\u049D" + - "\x02\u0250\u049F\x02\u0251\u04A1\x02\u0252\u04A3\x02\u0253\u04A5\x02\u0254" + - "\u04A7\x02\u0255\u04A9\x02\u0256\u04AB\x02\u0257\u04AD\x02\u0258\u04AF" + - "\x02\u0259\u04B1\x02\u025A\u04B3\x02\u025B\u04B5\x02\u025C\u04B7\x02\u025D" + - "\u04B9\x02\u025E\u04BB\x02\u025F\u04BD\x02\u0260\u04BF\x02\u0261\u04C1" + - "\x02\u0262\u04C3\x02\u0263\u04C5\x02\u0264\u04C7\x02\u0265\u04C9\x02\u0266" + - "\u04CB\x02\u0267\u04CD\x02\u0268\u04CF\x02\u0269\u04D1\x02\u026A\u04D3" + - "\x02\u026B\u04D5\x02\u026C\u04D7\x02\u026D\u04D9\x02\u026E\u04DB\x02\u026F" + - "\u04DD\x02\u0270\u04DF\x02\u0271\u04E1\x02\u0272\u04E3\x02\u0273\u04E5" + - "\x02\u0274\u04E7\x02\u0275\u04E9\x02\u0276\u04EB\x02\u0277\u04ED\x02\u0278" + - "\u04EF\x02\u0279\u04F1\x02\u027A\u04F3\x02\u027B\u04F5\x02\u027C\u04F7" + - "\x02\u027D\u04F9\x02\u027E\u04FB\x02\u027F\u04FD\x02\u0280\u04FF\x02\u0281" + - "\u0501\x02\u0282\u0503\x02\u0283\u0505\x02\u0284\u0507\x02\u0285\u0509" + - "\x02\u0286\u050B\x02\u0287\u050D\x02\u0288\u050F\x02\u0289\u0511\x02\u028A" + - "\u0513\x02\u028B\u0515\x02\u028C\u0517\x02\u028D\u0519\x02\u028E\u051B" + - "\x02\u028F\u051D\x02\u0290\u051F\x02\u0291\u0521\x02\u0292\u0523\x02\u0293" + - "\u0525\x02\u0294\u0527\x02\u0295\u0529\x02\u0296\u052B\x02\u0297\u052D" + - "\x02\u0298\u052F\x02\u0299\u0531\x02\u029A\u0533\x02\u029B\u0535\x02\u029C" + - "\u0537\x02\u029D\u0539\x02\u029E\u053B\x02\u029F\u053D\x02\u02A0\u053F" + - "\x02\u02A1\u0541\x02\u02A2\u0543\x02\u02A3\u0545\x02\u02A4\u0547\x02\u02A5" + - "\u0549\x02\u02A6\u054B\x02\u02A7\u054D\x02\u02A8\u054F\x02\u02A9\u0551" + - "\x02\u02AA\u0553\x02\u02AB\u0555\x02\u02AC\u0557\x02\u02AD\u0559\x02\u02AE" + - "\u055B\x02\u02AF\u055D\x02\u02B0\u055F\x02\u02B1\u0561\x02\u02B2\u0563" + - "\x02\u02B3\u0565\x02\u02B4\u0567\x02\u02B5\u0569\x02\u02B6\u056B\x02\u02B7" + - "\u056D\x02\u02B8\u056F\x02\u02B9\u0571\x02\u02BA\u0573\x02\u02BB\u0575" + - "\x02\u02BC\u0577\x02\u02BD\u0579\x02\u02BE\u057B\x02\u02BF\u057D\x02\u02C0" + - "\u057F\x02\u02C1\u0581\x02\u02C2\u0583\x02\u02C3\u0585\x02\u02C4\u0587" + - "\x02\u02C5\u0589\x02\u02C6\u058B\x02\u02C7\u058D\x02\u02C8\u058F\x02\u02C9" + - "\u0591\x02\u02CA\u0593\x02\u02CB\u0595\x02\u02CC\u0597\x02\u02CD\u0599" + - "\x02\u02CE\u059B\x02\u02CF\u059D\x02\u02D0\u059F\x02\u02D1\u05A1\x02\u02D2" + - "\u05A3\x02\u02D3\u05A5\x02\u02D4\u05A7\x02\u02D5\u05A9\x02\u02D6\u05AB" + - "\x02\u02D7\u05AD\x02\u02D8\u05AF\x02\u02D9\u05B1\x02\u02DA\u05B3\x02\u02DB" + - "\u05B5\x02\u02DC\u05B7\x02\u02DD\u05B9\x02\u02DE\u05BB\x02\u02DF\u05BD" + - "\x02\u02E0\u05BF\x02\u02E1\u05C1\x02\u02E2\u05C3\x02\u02E3\u05C5\x02\u02E4" + - "\u05C7\x02\u02E5\u05C9\x02\u02E6\u05CB\x02\u02E7\u05CD\x02\u02E8\u05CF" + - "\x02\u02E9\u05D1\x02\u02EA\u05D3\x02\u02EB\u05D5\x02\u02EC\u05D7\x02\u02ED" + - "\u05D9\x02\u02EE\u05DB\x02\u02EF\u05DD\x02\u02F0\u05DF\x02\u02F1\u05E1" + - "\x02\u02F2\u05E3\x02\u02F3\u05E5\x02\u02F4\u05E7\x02\u02F5\u05E9\x02\u02F6" + - "\u05EB\x02\u02F7\u05ED\x02\u02F8\u05EF\x02\u02F9\u05F1\x02\u02FA\u05F3" + - "\x02\u02FB\u05F5\x02\u02FC\u05F7\x02\u02FD\u05F9\x02\u02FE\u05FB\x02\u02FF" + - "\u05FD\x02\u0300\u05FF\x02\u0301\u0601\x02\u0302\u0603\x02\u0303\u0605" + - "\x02\u0304\u0607\x02\u0305\u0609\x02\u0306\u060B\x02\u0307\u060D\x02\u0308" + - "\u060F\x02\u0309\u0611\x02\u030A\u0613\x02\u030B\u0615\x02\u030C\u0617" + - "\x02\u030D\u0619\x02\u030E\u061B\x02\u030F\u061D\x02\u0310\u061F\x02\u0311" + - "\u0621\x02\u0312\u0623\x02\u0313\u0625\x02\u0314\u0627\x02\u0315\u0629" + - "\x02\u0316\u062B\x02\u0317\u062D\x02\u0318\u062F\x02\u0319\u0631\x02\u031A" + - "\u0633\x02\u031B\u0635\x02\u031C\u0637\x02\u031D\u0639\x02\u031E\u063B" + - "\x02\u031F\u063D\x02\u0320\u063F\x02\u0321\u0641\x02\u0322\u0643\x02\u0323" + - "\u0645\x02\u0324\u0647\x02\u0325\u0649\x02\u0326\u064B\x02\u0327\u064D" + - "\x02\u0328\u064F\x02\u0329\u0651\x02\u032A\u0653\x02\u032B\u0655\x02\u032C" + - "\u0657\x02\u032D\u0659\x02\u032E\u065B\x02\u032F\u065D\x02\u0330\u065F" + - "\x02\u0331\u0661\x02\u0332\u0663\x02\u0333\u0665\x02\u0334\u0667\x02\u0335" + - "\u0669\x02\u0336\u066B\x02\u0337\u066D\x02\u0338\u066F\x02\u0339\u0671" + - "\x02\u033A\u0673\x02\u033B\u0675\x02\u033C\u0677\x02\u033D\u0679\x02\u033E" + - "\u067B\x02\u033F\u067D\x02\u0340\u067F\x02\u0341\u0681\x02\u0342\u0683" + - "\x02\u0343\u0685\x02\u0344\u0687\x02\u0345\u0689\x02\u0346\u068B\x02\u0347" + - "\u068D\x02\u0348\u068F\x02\u0349\u0691\x02\u034A\u0693\x02\u034B\u0695" + - "\x02\u034C\u0697\x02\u034D\u0699\x02\u034E\u069B\x02\u034F\u069D\x02\u0350" + - "\u069F\x02\u0351\u06A1\x02\u0352\u06A3\x02\u0353\u06A5\x02\u0354\u06A7" + - "\x02\u0355\u06A9\x02\u0356\u06AB\x02\u0357\u06AD\x02\u0358\u06AF\x02\u0359" + - "\u06B1\x02\u035A\u06B3\x02\u035B\u06B5\x02\u035C\u06B7\x02\u035D\u06B9" + - "\x02\u035E\u06BB\x02\u035F\u06BD\x02\u0360\u06BF\x02\u0361\u06C1\x02\u0362" + - "\u06C3\x02\u0363\u06C5\x02\u0364\u06C7\x02\u0365\u06C9\x02\u0366\u06CB" + - "\x02\u0367\u06CD\x02\u0368\u06CF\x02\u0369\u06D1\x02\u036A\u06D3\x02\u036B" + - "\u06D5\x02\u036C\u06D7\x02\u036D\u06D9\x02\u036E\u06DB\x02\u036F\u06DD" + - "\x02\u0370\u06DF\x02\u0371\u06E1\x02\u0372\u06E3\x02\u0373\u06E5\x02\u0374" + - "\u06E7\x02\u0375\u06E9\x02\u0376\u06EB\x02\u0377\u06ED\x02\u0378\u06EF" + - "\x02\u0379\u06F1\x02\u037A\u06F3\x02\u037B\u06F5\x02\u037C\u06F7\x02\u037D" + - "\u06F9\x02\u037E\u06FB\x02\u037F\u06FD\x02\u0380\u06FF\x02\u0381\u0701" + - "\x02\u0382\u0703\x02\u0383\u0705\x02\u0384\u0707\x02\u0385\u0709\x02\u0386" + - "\u070B\x02\u0387\u070D\x02\u0388\u070F\x02\u0389\u0711\x02\u038A\u0713" + - "\x02\u038B\u0715\x02\u038C\u0717\x02\u038D\u0719\x02\u038E\u071B\x02\u038F" + - "\u071D\x02\u0390\u071F\x02\u0391\u0721\x02\u0392\u0723\x02\u0393\u0725" + - "\x02\u0394\u0727\x02\u0395\u0729\x02\u0396\u072B\x02\u0397\u072D\x02\u0398" + - "\u072F\x02\u0399\u0731\x02\u039A\u0733\x02\u039B\u0735\x02\u039C\u0737" + - "\x02\u039D\u0739\x02\u039E\u073B\x02\u039F\u073D\x02\u03A0\u073F\x02\u03A1" + - "\u0741\x02\u03A2\u0743\x02\u03A3\u0745\x02\u03A4\u0747\x02\u03A5\u0749" + - "\x02\u03A6\u074B\x02\u03A7\u074D\x02\u03A8\u074F\x02\u03A9\u0751\x02\u03AA" + - "\u0753\x02\u03AB\u0755\x02\u03AC\u0757\x02\u03AD\u0759\x02\u03AE\u075B" + - "\x02\u03AF\u075D\x02\u03B0\u075F\x02\u03B1\u0761\x02\u03B2\u0763\x02\u03B3" + - "\u0765\x02\u03B4\u0767\x02\u03B5\u0769\x02\u03B6\u076B\x02\u03B7\u076D" + - "\x02\u03B8\u076F\x02\u03B9\u0771\x02\u03BA\u0773\x02\u03BB\u0775\x02\u03BC" + - "\u0777\x02\u03BD\u0779\x02\u03BE\u077B\x02\u03BF\u077D\x02\u03C0\u077F" + - "\x02\u03C1\u0781\x02\u03C2\u0783\x02\u03C3\u0785\x02\u03C4\u0787\x02\u03C5" + - "\u0789\x02\u03C6\u078B\x02\u03C7\u078D\x02\u03C8\u078F\x02\u03C9\u0791" + - "\x02\u03CA\u0793\x02\u03CB\u0795\x02\u03CC\u0797\x02\u03CD\u0799\x02\u03CE" + - "\u079B\x02\u03CF\u079D\x02\u03D0\u079F\x02\u03D1\u07A1\x02\u03D2\u07A3" + - "\x02\u03D3\u07A5\x02\u03D4\u07A7\x02\u03D5\u07A9\x02\u03D6\u07AB\x02\u03D7" + - "\u07AD\x02\u03D8\u07AF\x02\u03D9\u07B1\x02\u03DA\u07B3\x02\u03DB\u07B5" + - "\x02\u03DC\u07B7\x02\u03DD\u07B9\x02\u03DE\u07BB\x02\u03DF\u07BD\x02\u03E0" + - "\u07BF\x02\u03E1\u07C1\x02\u03E2\u07C3\x02\u03E3\u07C5\x02\u03E4\u07C7" + - "\x02\u03E5\u07C9\x02\u03E6\u07CB\x02\u03E7\u07CD\x02\u03E8\u07CF\x02\u03E9" + - "\u07D1\x02\u03EA\u07D3\x02\u03EB\u07D5\x02\u03EC\u07D7\x02\u03ED\u07D9" + - "\x02\u03EE\u07DB\x02\u03EF\u07DD\x02\u03F0\u07DF\x02\u03F1\u07E1\x02\u03F2" + - "\u07E3\x02\u03F3\u07E5\x02\u03F4\u07E7\x02\u03F5\u07E9\x02\u03F6\u07EB" + - "\x02\u03F7\u07ED\x02\u03F8\u07EF\x02\u03F9\u07F1\x02\u03FA\u07F3\x02\u03FB" + - "\u07F5\x02\u03FC\u07F7\x02\u03FD\u07F9\x02\u03FE\u07FB\x02\u03FF\u07FD" + - "\x02\u0400\u07FF\x02\u0401\u0801\x02\u0402\u0803\x02\u0403\u0805\x02\u0404" + - "\u0807\x02\u0405\u0809\x02\u0406\u080B\x02\u0407\u080D\x02\u0408\u080F" + - "\x02\u0409\u0811\x02\x02\u0813\x02\u040A\u0815\x02\u040B\u0817\x02\u040C" + - "\u0819\x02\u040D\u081B\x02\u040E\u081D\x02\u040F\u081F\x02\u0410\u0821" + - "\x02\u0411\u0823\x02\u0412\u0825\x02\u0413\u0827\x02\u0414\u0829\x02\u0415" + - "\u082B\x02\u0416\u082D\x02\u0417\u082F\x02\u0418\u0831\x02\u0419\u0833" + - "\x02\x02\u0835\x02\x02\u0837\x02\x02\u0839\x02\x02\u083B\x02\x02\u083D" + - "\x02\x02\u083F\x02\x02\u0841\x02\x02\u0843\x02\x02\u0845\x02\u041A\x03" + - "\x02\x10\x05\x02\v\f\x0F\x0F\"\"\x04\x02\f\f\x0F\x0F\x06\x02IIMMOOVV\x03" + - "\x02bb\x07\x02&&002;C\\aa\x04\x02--//\x06\x02&&2;C\\aa\x05\x02&&C\\aa" + - "\x04\x02$$^^\x04\x02))^^\x04\x02^^bb\x04\x022;CH\x03\x022;\x03\x0223\x02" + - "\u2FBD\x02\x03\x03\x02\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02" + - "\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02" + - "\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02" + - "\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02" + - "\x02\x02\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02" + - "\x02\x02!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02" + - "\'\x03\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03" + - "\x02\x02\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02" + - "\x02\x025\x03\x02\x02\x02\x027\x03\x02\x02\x02\x029\x03\x02\x02\x02\x02" + - ";\x03\x02\x02\x02\x02=\x03\x02\x02\x02\x02?\x03\x02\x02\x02\x02A\x03\x02" + - "\x02\x02\x02C\x03\x02\x02\x02\x02E\x03\x02\x02\x02\x02G\x03\x02\x02\x02" + - "\x02I\x03\x02\x02\x02\x02K\x03\x02\x02\x02\x02M\x03\x02\x02\x02\x02O\x03" + - "\x02\x02\x02\x02Q\x03\x02\x02\x02\x02S\x03\x02\x02\x02\x02U\x03\x02\x02" + - "\x02\x02W\x03\x02\x02\x02\x02Y\x03\x02\x02\x02\x02[\x03\x02\x02\x02\x02" + - "]\x03\x02\x02\x02\x02_\x03\x02\x02\x02\x02a\x03\x02\x02\x02\x02c\x03\x02" + - "\x02\x02\x02e\x03\x02\x02\x02\x02g\x03\x02\x02\x02\x02i\x03\x02\x02\x02" + - "\x02k\x03\x02\x02\x02\x02m\x03\x02\x02\x02\x02o\x03\x02\x02\x02\x02q\x03" + - "\x02\x02\x02\x02s\x03\x02\x02\x02\x02u\x03\x02\x02\x02\x02w\x03\x02\x02" + - "\x02\x02y\x03\x02\x02\x02\x02{\x03\x02\x02\x02\x02}\x03\x02\x02\x02\x02" + - "\x7F\x03\x02\x02\x02\x02\x81\x03\x02\x02\x02\x02\x83\x03\x02\x02\x02\x02" + - "\x85\x03\x02\x02\x02\x02\x87\x03\x02\x02\x02\x02\x89\x03\x02\x02\x02\x02" + - "\x8B\x03\x02\x02\x02\x02\x8D\x03\x02\x02\x02\x02\x8F\x03\x02\x02\x02\x02" + - "\x91\x03\x02\x02\x02\x02\x93\x03\x02\x02\x02\x02\x95\x03\x02\x02\x02\x02" + - "\x97\x03\x02\x02\x02\x02\x99\x03\x02\x02\x02\x02\x9B\x03\x02\x02\x02\x02" + - "\x9D\x03\x02\x02\x02\x02\x9F\x03\x02\x02\x02\x02\xA1\x03\x02\x02\x02\x02" + - "\xA3\x03\x02\x02\x02\x02\xA5\x03\x02\x02\x02\x02\xA7\x03\x02\x02\x02\x02" + - "\xA9\x03\x02\x02\x02\x02\xAB\x03\x02\x02\x02\x02\xAD\x03\x02\x02\x02\x02" + - "\xAF\x03\x02\x02\x02\x02\xB1\x03\x02\x02\x02\x02\xB3\x03\x02\x02\x02\x02" + - "\xB5\x03\x02\x02\x02\x02\xB7\x03\x02\x02\x02\x02\xB9\x03\x02\x02\x02\x02" + - "\xBB\x03\x02\x02\x02\x02\xBD\x03\x02\x02\x02\x02\xBF\x03\x02\x02\x02\x02" + - "\xC1\x03\x02\x02\x02\x02\xC3\x03\x02\x02\x02\x02\xC5\x03\x02\x02\x02\x02" + - "\xC7\x03\x02\x02\x02\x02\xC9\x03\x02\x02\x02\x02\xCB\x03\x02\x02\x02\x02" + - "\xCD\x03\x02\x02\x02\x02\xCF\x03\x02\x02\x02\x02\xD1\x03\x02\x02\x02\x02" + - "\xD3\x03\x02\x02\x02\x02\xD5\x03\x02\x02\x02\x02\xD7\x03\x02\x02\x02\x02" + - "\xD9\x03\x02\x02\x02\x02\xDB\x03\x02\x02\x02\x02\xDD\x03\x02\x02\x02\x02" + - "\xDF\x03\x02\x02\x02\x02\xE1\x03\x02\x02\x02\x02\xE3\x03\x02\x02\x02\x02" + - "\xE5\x03\x02\x02\x02\x02\xE7\x03\x02\x02\x02\x02\xE9\x03\x02\x02\x02\x02" + - "\xEB\x03\x02\x02\x02\x02\xED\x03\x02\x02\x02\x02\xEF\x03\x02\x02\x02\x02" + - "\xF1\x03\x02\x02\x02\x02\xF3\x03\x02\x02\x02\x02\xF5\x03\x02\x02\x02\x02" + - "\xF7\x03\x02\x02\x02\x02\xF9\x03\x02\x02\x02\x02\xFB\x03\x02\x02\x02\x02" + - "\xFD\x03\x02\x02\x02\x02\xFF\x03\x02\x02\x02\x02\u0101\x03\x02\x02\x02" + - "\x02\u0103\x03\x02\x02\x02\x02\u0105\x03\x02\x02\x02\x02\u0107\x03\x02" + - "\x02\x02\x02\u0109\x03\x02\x02\x02\x02\u010B\x03\x02\x02\x02\x02\u010D" + - "\x03\x02\x02\x02\x02\u010F\x03\x02\x02\x02\x02\u0111\x03\x02\x02\x02\x02" + - "\u0113\x03\x02\x02\x02\x02\u0115\x03\x02\x02\x02\x02\u0117\x03\x02\x02" + - "\x02\x02\u0119\x03\x02\x02\x02\x02\u011B\x03\x02\x02\x02\x02\u011D\x03" + - "\x02\x02\x02\x02\u011F\x03\x02\x02\x02\x02\u0121\x03\x02\x02\x02\x02\u0123" + - "\x03\x02\x02\x02\x02\u0125\x03\x02\x02\x02\x02\u0127\x03\x02\x02\x02\x02" + - "\u0129\x03\x02\x02\x02\x02\u012B\x03\x02\x02\x02\x02\u012D\x03\x02\x02" + - "\x02\x02\u012F\x03\x02\x02\x02\x02\u0131\x03\x02\x02\x02\x02\u0133\x03" + - "\x02\x02\x02\x02\u0135\x03\x02\x02\x02\x02\u0137\x03\x02\x02\x02\x02\u0139" + - "\x03\x02\x02\x02\x02\u013B\x03\x02\x02\x02\x02\u013D\x03\x02\x02\x02\x02" + - "\u013F\x03\x02\x02\x02\x02\u0141\x03\x02\x02\x02\x02\u0143\x03\x02\x02" + - "\x02\x02\u0145\x03\x02\x02\x02\x02\u0147\x03\x02\x02\x02\x02\u0149\x03" + - "\x02\x02\x02\x02\u014B\x03\x02\x02\x02\x02\u014D\x03\x02\x02\x02\x02\u014F" + - "\x03\x02\x02\x02\x02\u0151\x03\x02\x02\x02\x02\u0153\x03\x02\x02\x02\x02" + - "\u0155\x03\x02\x02\x02\x02\u0157\x03\x02\x02\x02\x02\u0159\x03\x02\x02" + - "\x02\x02\u015B\x03\x02\x02\x02\x02\u015D\x03\x02\x02\x02\x02\u015F\x03" + - "\x02\x02\x02\x02\u0161\x03\x02\x02\x02\x02\u0163\x03\x02\x02\x02\x02\u0165" + - "\x03\x02\x02\x02\x02\u0167\x03\x02\x02\x02\x02\u0169\x03\x02\x02\x02\x02" + - "\u016B\x03\x02\x02\x02\x02\u016D\x03\x02\x02\x02\x02\u016F\x03\x02\x02" + - "\x02\x02\u0171\x03\x02\x02\x02\x02\u0173\x03\x02\x02\x02\x02\u0175\x03" + - "\x02\x02\x02\x02\u0177\x03\x02\x02\x02\x02\u0179\x03\x02\x02\x02\x02\u017B" + - "\x03\x02\x02\x02\x02\u017D\x03\x02\x02\x02\x02\u017F\x03\x02\x02\x02\x02" + - "\u0181\x03\x02\x02\x02\x02\u0183\x03\x02\x02\x02\x02\u0185\x03\x02\x02" + - "\x02\x02\u0187\x03\x02\x02\x02\x02\u0189\x03\x02\x02\x02\x02\u018B\x03" + - "\x02\x02\x02\x02\u018D\x03\x02\x02\x02\x02\u018F\x03\x02\x02\x02\x02\u0191" + - "\x03\x02\x02\x02\x02\u0193\x03\x02\x02\x02\x02\u0195\x03\x02\x02\x02\x02" + - "\u0197\x03\x02\x02\x02\x02\u0199\x03\x02\x02\x02\x02\u019B\x03\x02\x02" + - "\x02\x02\u019D\x03\x02\x02\x02\x02\u019F\x03\x02\x02\x02\x02\u01A1\x03" + - "\x02\x02\x02\x02\u01A3\x03\x02\x02\x02\x02\u01A5\x03\x02\x02\x02\x02\u01A7" + - "\x03\x02\x02\x02\x02\u01A9\x03\x02\x02\x02\x02\u01AB\x03\x02\x02\x02\x02" + - "\u01AD\x03\x02\x02\x02\x02\u01AF\x03\x02\x02\x02\x02\u01B1\x03\x02\x02" + - "\x02\x02\u01B3\x03\x02\x02\x02\x02\u01B5\x03\x02\x02\x02\x02\u01B7\x03" + - "\x02\x02\x02\x02\u01B9\x03\x02\x02\x02\x02\u01BB\x03\x02\x02\x02\x02\u01BD" + - "\x03\x02\x02\x02\x02\u01BF\x03\x02\x02\x02\x02\u01C1\x03\x02\x02\x02\x02" + - "\u01C3\x03\x02\x02\x02\x02\u01C5\x03\x02\x02\x02\x02\u01C7\x03\x02\x02" + - "\x02\x02\u01C9\x03\x02\x02\x02\x02\u01CB\x03\x02\x02\x02\x02\u01CD\x03" + - "\x02\x02\x02\x02\u01CF\x03\x02\x02\x02\x02\u01D1\x03\x02\x02\x02\x02\u01D3" + - "\x03\x02\x02\x02\x02\u01D5\x03\x02\x02\x02\x02\u01D7\x03\x02\x02\x02\x02" + - "\u01D9\x03\x02\x02\x02\x02\u01DB\x03\x02\x02\x02\x02\u01DD\x03\x02\x02" + - "\x02\x02\u01DF\x03\x02\x02\x02\x02\u01E1\x03\x02\x02\x02\x02\u01E3\x03" + - "\x02\x02\x02\x02\u01E5\x03\x02\x02\x02\x02\u01E7\x03\x02\x02\x02\x02\u01E9" + - "\x03\x02\x02\x02\x02\u01EB\x03\x02\x02\x02\x02\u01ED\x03\x02\x02\x02\x02" + - "\u01EF\x03\x02\x02\x02\x02\u01F1\x03\x02\x02\x02\x02\u01F3\x03\x02\x02" + - "\x02\x02\u01F5\x03\x02\x02\x02\x02\u01F7\x03\x02\x02\x02\x02\u01F9\x03" + - "\x02\x02\x02\x02\u01FB\x03\x02\x02\x02\x02\u01FD\x03\x02\x02\x02\x02\u01FF" + - "\x03\x02\x02\x02\x02\u0201\x03\x02\x02\x02\x02\u0203\x03\x02\x02\x02\x02" + - "\u0205\x03\x02\x02\x02\x02\u0207\x03\x02\x02\x02\x02\u0209\x03\x02\x02" + - "\x02\x02\u020B\x03\x02\x02\x02\x02\u020D\x03\x02\x02\x02\x02\u020F\x03" + - "\x02\x02\x02\x02\u0211\x03\x02\x02\x02\x02\u0213\x03\x02\x02\x02\x02\u0215" + - "\x03\x02\x02\x02\x02\u0217\x03\x02\x02\x02\x02\u0219\x03\x02\x02\x02\x02" + - "\u021B\x03\x02\x02\x02\x02\u021D\x03\x02\x02\x02\x02\u021F\x03\x02\x02" + - "\x02\x02\u0221\x03\x02\x02\x02\x02\u0223\x03\x02\x02\x02\x02\u0225\x03" + - "\x02\x02\x02\x02\u0227\x03\x02\x02\x02\x02\u0229\x03\x02\x02\x02\x02\u022B" + - "\x03\x02\x02\x02\x02\u022D\x03\x02\x02\x02\x02\u022F\x03\x02\x02\x02\x02" + - "\u0231\x03\x02\x02\x02\x02\u0233\x03\x02\x02\x02\x02\u0235\x03\x02\x02" + - "\x02\x02\u0237\x03\x02\x02\x02\x02\u0239\x03\x02\x02\x02\x02\u023B\x03" + - "\x02\x02\x02\x02\u023D\x03\x02\x02\x02\x02\u023F\x03\x02\x02\x02\x02\u0241" + - "\x03\x02\x02\x02\x02\u0243\x03\x02\x02\x02\x02\u0245\x03\x02\x02\x02\x02" + - "\u0247\x03\x02\x02\x02\x02\u0249\x03\x02\x02\x02\x02\u024B\x03\x02\x02" + - "\x02\x02\u024D\x03\x02\x02\x02\x02\u024F\x03\x02\x02\x02\x02\u0251\x03" + - "\x02\x02\x02\x02\u0253\x03\x02\x02\x02\x02\u0255\x03\x02\x02\x02\x02\u0257" + - "\x03\x02\x02\x02\x02\u0259\x03\x02\x02\x02\x02\u025B\x03\x02\x02\x02\x02" + - "\u025D\x03\x02\x02\x02\x02\u025F\x03\x02\x02\x02\x02\u0261\x03\x02\x02" + - "\x02\x02\u0263\x03\x02\x02\x02\x02\u0265\x03\x02\x02\x02\x02\u0267\x03" + - "\x02\x02\x02\x02\u0269\x03\x02\x02\x02\x02\u026B\x03\x02\x02\x02\x02\u026D" + - "\x03\x02\x02\x02\x02\u026F\x03\x02\x02\x02\x02\u0271\x03\x02\x02\x02\x02" + - "\u0273\x03\x02\x02\x02\x02\u0275\x03\x02\x02\x02\x02\u0277\x03\x02\x02" + - "\x02\x02\u0279\x03\x02\x02\x02\x02\u027B\x03\x02\x02\x02\x02\u027D\x03" + - "\x02\x02\x02\x02\u027F\x03\x02\x02\x02\x02\u0281\x03\x02\x02\x02\x02\u0283" + - "\x03\x02\x02\x02\x02\u0285\x03\x02\x02\x02\x02\u0287\x03\x02\x02\x02\x02" + - "\u0289\x03\x02\x02\x02\x02\u028B\x03\x02\x02\x02\x02\u028D\x03\x02\x02" + - "\x02\x02\u028F\x03\x02\x02\x02\x02\u0291\x03\x02\x02\x02\x02\u0293\x03" + - "\x02\x02\x02\x02\u0295\x03\x02\x02\x02\x02\u0297\x03\x02\x02\x02\x02\u0299" + - "\x03\x02\x02\x02\x02\u029B\x03\x02\x02\x02\x02\u029D\x03\x02\x02\x02\x02" + - "\u029F\x03\x02\x02\x02\x02\u02A1\x03\x02\x02\x02\x02\u02A3\x03\x02\x02" + - "\x02\x02\u02A5\x03\x02\x02\x02\x02\u02A7\x03\x02\x02\x02\x02\u02A9\x03" + - "\x02\x02\x02\x02\u02AB\x03\x02\x02\x02\x02\u02AD\x03\x02\x02\x02\x02\u02AF" + - "\x03\x02\x02\x02\x02\u02B1\x03\x02\x02\x02\x02\u02B3\x03\x02\x02\x02\x02" + - "\u02B5\x03\x02\x02\x02\x02\u02B7\x03\x02\x02\x02\x02\u02B9\x03\x02\x02" + - "\x02\x02\u02BB\x03\x02\x02\x02\x02\u02BD\x03\x02\x02\x02\x02\u02BF\x03" + - "\x02\x02\x02\x02\u02C1\x03\x02\x02\x02\x02\u02C3\x03\x02\x02\x02\x02\u02C5" + - "\x03\x02\x02\x02\x02\u02C7\x03\x02\x02\x02\x02\u02C9\x03\x02\x02\x02\x02" + - "\u02CB\x03\x02\x02\x02\x02\u02CD\x03\x02\x02\x02\x02\u02CF\x03\x02\x02" + - "\x02\x02\u02D1\x03\x02\x02\x02\x02\u02D3\x03\x02\x02\x02\x02\u02D5\x03" + - "\x02\x02\x02\x02\u02D7\x03\x02\x02\x02\x02\u02D9\x03\x02\x02\x02\x02\u02DB" + - "\x03\x02\x02\x02\x02\u02DD\x03\x02\x02\x02\x02\u02DF\x03\x02\x02\x02\x02" + - "\u02E1\x03\x02\x02\x02\x02\u02E3\x03\x02\x02\x02\x02\u02E5\x03\x02\x02" + - "\x02\x02\u02E7\x03\x02\x02\x02\x02\u02E9\x03\x02\x02\x02\x02\u02EB\x03" + - "\x02\x02\x02\x02\u02ED\x03\x02\x02\x02\x02\u02EF\x03\x02\x02\x02\x02\u02F1" + - "\x03\x02\x02\x02\x02\u02F3\x03\x02\x02\x02\x02\u02F5\x03\x02\x02\x02\x02" + - "\u02F7\x03\x02\x02\x02\x02\u02F9\x03\x02\x02\x02\x02\u02FB\x03\x02\x02" + - "\x02\x02\u02FD\x03\x02\x02\x02\x02\u02FF\x03\x02\x02\x02\x02\u0301\x03" + - "\x02\x02\x02\x02\u0303\x03\x02\x02\x02\x02\u0305\x03\x02\x02\x02\x02\u0307" + - "\x03\x02\x02\x02\x02\u0309\x03\x02\x02\x02\x02\u030B\x03\x02\x02\x02\x02" + - "\u030D\x03\x02\x02\x02\x02\u030F\x03\x02\x02\x02\x02\u0311\x03\x02\x02" + - "\x02\x02\u0313\x03\x02\x02\x02\x02\u0315\x03\x02\x02\x02\x02\u0317\x03" + - "\x02\x02\x02\x02\u0319\x03\x02\x02"; - private static readonly _serializedATNSegment6: string = - "\x02\x02\u031B\x03\x02\x02\x02\x02\u031D\x03\x02\x02\x02\x02\u031F\x03" + - "\x02\x02\x02\x02\u0321\x03\x02\x02\x02\x02\u0323\x03\x02\x02\x02\x02\u0325" + - "\x03\x02\x02\x02\x02\u0327\x03\x02\x02\x02\x02\u0329\x03\x02\x02\x02\x02" + - "\u032B\x03\x02\x02\x02\x02\u032D\x03\x02\x02\x02\x02\u032F\x03\x02\x02" + - "\x02\x02\u0331\x03\x02\x02\x02\x02\u0333\x03\x02\x02\x02\x02\u0335\x03" + - "\x02\x02\x02\x02\u0337\x03\x02\x02\x02\x02\u0339\x03\x02\x02\x02\x02\u033B" + - "\x03\x02\x02\x02\x02\u033D\x03\x02\x02\x02\x02\u033F\x03\x02\x02\x02\x02" + - "\u0341\x03\x02\x02\x02\x02\u0343\x03\x02\x02\x02\x02\u0345\x03\x02\x02" + - "\x02\x02\u0347\x03\x02\x02\x02\x02\u0349\x03\x02\x02\x02\x02\u034B\x03" + - "\x02\x02\x02\x02\u034D\x03\x02\x02\x02\x02\u034F\x03\x02\x02\x02\x02\u0351" + - "\x03\x02\x02\x02\x02\u0353\x03\x02\x02\x02\x02\u0355\x03\x02\x02\x02\x02" + - "\u0357\x03\x02\x02\x02\x02\u0359\x03\x02\x02\x02\x02\u035B\x03\x02\x02" + - "\x02\x02\u035D\x03\x02\x02\x02\x02\u035F\x03\x02\x02\x02\x02\u0361\x03" + - "\x02\x02\x02\x02\u0363\x03\x02\x02\x02\x02\u0365\x03\x02\x02\x02\x02\u0367" + - "\x03\x02\x02\x02\x02\u0369\x03\x02\x02\x02\x02\u036B\x03\x02\x02\x02\x02" + - "\u036D\x03\x02\x02\x02\x02\u036F\x03\x02\x02\x02\x02\u0371\x03\x02\x02" + - "\x02\x02\u0373\x03\x02\x02\x02\x02\u0375\x03\x02\x02\x02\x02\u0377\x03" + - "\x02\x02\x02\x02\u0379\x03\x02\x02\x02\x02\u037B\x03\x02\x02\x02\x02\u037D" + - "\x03\x02\x02\x02\x02\u037F\x03\x02\x02\x02\x02\u0381\x03\x02\x02\x02\x02" + - "\u0383\x03\x02\x02\x02\x02\u0385\x03\x02\x02\x02\x02\u0387\x03\x02\x02" + - "\x02\x02\u0389\x03\x02\x02\x02\x02\u038B\x03\x02\x02\x02\x02\u038D\x03" + - "\x02\x02\x02\x02\u038F\x03\x02\x02\x02\x02\u0391\x03\x02\x02\x02\x02\u0393" + - "\x03\x02\x02\x02\x02\u0395\x03\x02\x02\x02\x02\u0397\x03\x02\x02\x02\x02" + - "\u0399\x03\x02\x02\x02\x02\u039B\x03\x02\x02\x02\x02\u039D\x03\x02\x02" + - "\x02\x02\u039F\x03\x02\x02\x02\x02\u03A1\x03\x02\x02\x02\x02\u03A3\x03" + - "\x02\x02\x02\x02\u03A5\x03\x02\x02\x02\x02\u03A7\x03\x02\x02\x02\x02\u03A9" + - "\x03\x02\x02\x02\x02\u03AB\x03\x02\x02\x02\x02\u03AD\x03\x02\x02\x02\x02" + - "\u03AF\x03\x02\x02\x02\x02\u03B1\x03\x02\x02\x02\x02\u03B3\x03\x02\x02" + - "\x02\x02\u03B5\x03\x02\x02\x02\x02\u03B7\x03\x02\x02\x02\x02\u03B9\x03" + - "\x02\x02\x02\x02\u03BB\x03\x02\x02\x02\x02\u03BD\x03\x02\x02\x02\x02\u03BF" + - "\x03\x02\x02\x02\x02\u03C1\x03\x02\x02\x02\x02\u03C3\x03\x02\x02\x02\x02" + - "\u03C5\x03\x02\x02\x02\x02\u03C7\x03\x02\x02\x02\x02\u03C9\x03\x02\x02" + - "\x02\x02\u03CB\x03\x02\x02\x02\x02\u03CD\x03\x02\x02\x02\x02\u03CF\x03" + - "\x02\x02\x02\x02\u03D1\x03\x02\x02\x02\x02\u03D3\x03\x02\x02\x02\x02\u03D5" + - "\x03\x02\x02\x02\x02\u03D7\x03\x02\x02\x02\x02\u03D9\x03\x02\x02\x02\x02" + - "\u03DB\x03\x02\x02\x02\x02\u03DD\x03\x02\x02\x02\x02\u03DF\x03\x02\x02" + - "\x02\x02\u03E1\x03\x02\x02\x02\x02\u03E3\x03\x02\x02\x02\x02\u03E5\x03" + - "\x02\x02\x02\x02\u03E7\x03\x02\x02\x02\x02\u03E9\x03\x02\x02\x02\x02\u03EB" + - "\x03\x02\x02\x02\x02\u03ED\x03\x02\x02\x02\x02\u03EF\x03\x02\x02\x02\x02" + - "\u03F1\x03\x02\x02\x02\x02\u03F3\x03\x02\x02\x02\x02\u03F5\x03\x02\x02" + - "\x02\x02\u03F7\x03\x02\x02\x02\x02\u03F9\x03\x02\x02\x02\x02\u03FB\x03" + - "\x02\x02\x02\x02\u03FD\x03\x02\x02\x02\x02\u03FF\x03\x02\x02\x02\x02\u0401" + - "\x03\x02\x02\x02\x02\u0403\x03\x02\x02\x02\x02\u0405\x03\x02\x02\x02\x02" + - "\u0407\x03\x02\x02\x02\x02\u0409\x03\x02\x02\x02\x02\u040B\x03\x02\x02" + - "\x02\x02\u040D\x03\x02\x02\x02\x02\u040F\x03\x02\x02\x02\x02\u0411\x03" + - "\x02\x02\x02\x02\u0413\x03\x02\x02\x02\x02\u0415\x03\x02\x02\x02\x02\u0417" + - "\x03\x02\x02\x02\x02\u0419\x03\x02\x02\x02\x02\u041B\x03\x02\x02\x02\x02" + - "\u041D\x03\x02\x02\x02\x02\u041F\x03\x02\x02\x02\x02\u0421\x03\x02\x02" + - "\x02\x02\u0423\x03\x02\x02\x02\x02\u0425\x03\x02\x02\x02\x02\u0427\x03" + - "\x02\x02\x02\x02\u0429\x03\x02\x02\x02\x02\u042B\x03\x02\x02\x02\x02\u042D" + - "\x03\x02\x02\x02\x02\u042F\x03\x02\x02\x02\x02\u0431\x03\x02\x02\x02\x02" + - "\u0433\x03\x02\x02\x02\x02\u0435\x03\x02\x02\x02\x02\u0437\x03\x02\x02" + - "\x02\x02\u0439\x03\x02\x02\x02\x02\u043B\x03\x02\x02\x02\x02\u043D\x03" + - "\x02\x02\x02\x02\u043F\x03\x02\x02\x02\x02\u0441\x03\x02\x02\x02\x02\u0443" + - "\x03\x02\x02\x02\x02\u0445\x03\x02\x02\x02\x02\u0447\x03\x02\x02\x02\x02" + - "\u0449\x03\x02\x02\x02\x02\u044B\x03\x02\x02\x02\x02\u044D\x03\x02\x02" + - "\x02\x02\u044F\x03\x02\x02\x02\x02\u0451\x03\x02\x02\x02\x02\u0453\x03" + - "\x02\x02\x02\x02\u0455\x03\x02\x02\x02\x02\u0457\x03\x02\x02\x02\x02\u0459" + - "\x03\x02\x02\x02\x02\u045B\x03\x02\x02\x02\x02\u045D\x03\x02\x02\x02\x02" + - "\u045F\x03\x02\x02\x02\x02\u0461\x03\x02\x02\x02\x02\u0463\x03\x02\x02" + - "\x02\x02\u0465\x03\x02\x02\x02\x02\u0467\x03\x02\x02\x02\x02\u0469\x03" + - "\x02\x02\x02\x02\u046B\x03\x02\x02\x02\x02\u046D\x03\x02\x02\x02\x02\u046F" + - "\x03\x02\x02\x02\x02\u0471\x03\x02\x02\x02\x02\u0473\x03\x02\x02\x02\x02" + - "\u0475\x03\x02\x02\x02\x02\u0477\x03\x02\x02\x02\x02\u0479\x03\x02\x02" + - "\x02\x02\u047B\x03\x02\x02\x02\x02\u047D\x03\x02\x02\x02\x02\u047F\x03" + - "\x02\x02\x02\x02\u0481\x03\x02\x02\x02\x02\u0483\x03\x02\x02\x02\x02\u0485" + - "\x03\x02\x02\x02\x02\u0487\x03\x02\x02\x02\x02\u0489\x03\x02\x02\x02\x02" + - "\u048B\x03\x02\x02\x02\x02\u048D\x03\x02\x02\x02\x02\u048F\x03\x02\x02" + - "\x02\x02\u0491\x03\x02\x02\x02\x02\u0493\x03\x02\x02\x02\x02\u0495\x03" + - "\x02\x02\x02\x02\u0497\x03\x02\x02\x02\x02\u0499\x03\x02\x02\x02\x02\u049B" + - "\x03\x02\x02\x02\x02\u049D\x03\x02\x02\x02\x02\u049F\x03\x02\x02\x02\x02" + - "\u04A1\x03\x02\x02\x02\x02\u04A3\x03\x02\x02\x02\x02\u04A5\x03\x02\x02" + - "\x02\x02\u04A7\x03\x02\x02\x02\x02\u04A9\x03\x02\x02\x02\x02\u04AB\x03" + - "\x02\x02\x02\x02\u04AD\x03\x02\x02\x02\x02\u04AF\x03\x02\x02\x02\x02\u04B1" + - "\x03\x02\x02\x02\x02\u04B3\x03\x02\x02\x02\x02\u04B5\x03\x02\x02\x02\x02" + - "\u04B7\x03\x02\x02\x02\x02\u04B9\x03\x02\x02\x02\x02\u04BB\x03\x02\x02" + - "\x02\x02\u04BD\x03\x02\x02\x02\x02\u04BF\x03\x02\x02\x02\x02\u04C1\x03" + - "\x02\x02\x02\x02\u04C3\x03\x02\x02\x02\x02\u04C5\x03\x02\x02\x02\x02\u04C7" + - "\x03\x02\x02\x02\x02\u04C9\x03\x02\x02\x02\x02\u04CB\x03\x02\x02\x02\x02" + - "\u04CD\x03\x02\x02\x02\x02\u04CF\x03\x02\x02\x02\x02\u04D1\x03\x02\x02" + - "\x02\x02\u04D3\x03\x02\x02\x02\x02\u04D5\x03\x02\x02\x02\x02\u04D7\x03" + - "\x02\x02\x02\x02\u04D9\x03\x02\x02\x02\x02\u04DB\x03\x02\x02\x02\x02\u04DD" + - "\x03\x02\x02\x02\x02\u04DF\x03\x02\x02\x02\x02\u04E1\x03\x02\x02\x02\x02" + - "\u04E3\x03\x02\x02\x02\x02\u04E5\x03\x02\x02\x02\x02\u04E7\x03\x02\x02" + - "\x02\x02\u04E9\x03\x02\x02\x02\x02\u04EB\x03\x02\x02\x02\x02\u04ED\x03" + - "\x02\x02\x02\x02\u04EF\x03\x02\x02\x02\x02\u04F1\x03\x02\x02\x02\x02\u04F3" + - "\x03\x02\x02\x02\x02\u04F5\x03\x02\x02\x02\x02\u04F7\x03\x02\x02\x02\x02" + - "\u04F9\x03\x02\x02\x02\x02\u04FB\x03\x02\x02\x02\x02\u04FD\x03\x02\x02" + - "\x02\x02\u04FF\x03\x02\x02\x02\x02\u0501\x03\x02\x02\x02\x02\u0503\x03" + - "\x02\x02\x02\x02\u0505\x03\x02\x02\x02\x02\u0507\x03\x02\x02\x02\x02\u0509" + - "\x03\x02\x02\x02\x02\u050B\x03\x02\x02\x02\x02\u050D\x03\x02\x02\x02\x02" + - "\u050F\x03\x02\x02\x02\x02\u0511\x03\x02\x02\x02\x02\u0513\x03\x02\x02" + - "\x02\x02\u0515\x03\x02\x02\x02\x02\u0517\x03\x02\x02\x02\x02\u0519\x03" + - "\x02\x02\x02\x02\u051B\x03\x02\x02\x02\x02\u051D\x03\x02\x02\x02\x02\u051F" + - "\x03\x02\x02\x02\x02\u0521\x03\x02\x02\x02\x02\u0523\x03\x02\x02\x02\x02" + - "\u0525\x03\x02\x02\x02\x02\u0527\x03\x02\x02\x02\x02\u0529\x03\x02\x02" + - "\x02\x02\u052B\x03\x02\x02\x02\x02\u052D\x03\x02\x02\x02\x02\u052F\x03" + - "\x02\x02\x02\x02\u0531\x03\x02\x02\x02\x02\u0533\x03\x02\x02\x02\x02\u0535" + - "\x03\x02\x02\x02\x02\u0537\x03\x02\x02\x02\x02\u0539\x03\x02\x02\x02\x02" + - "\u053B\x03\x02\x02\x02\x02\u053D\x03\x02\x02\x02\x02\u053F\x03\x02\x02" + - "\x02\x02\u0541\x03\x02\x02\x02\x02\u0543\x03\x02\x02\x02\x02\u0545\x03" + - "\x02\x02\x02\x02\u0547\x03\x02\x02\x02\x02\u0549\x03\x02\x02\x02\x02\u054B" + - "\x03\x02\x02\x02\x02\u054D\x03\x02\x02\x02\x02\u054F\x03\x02\x02\x02\x02" + - "\u0551\x03\x02\x02\x02\x02\u0553\x03\x02\x02\x02\x02\u0555\x03\x02\x02" + - "\x02\x02\u0557\x03\x02\x02\x02\x02\u0559\x03\x02\x02\x02\x02\u055B\x03" + - "\x02\x02\x02\x02\u055D\x03\x02\x02\x02\x02\u055F\x03\x02\x02\x02\x02\u0561" + - "\x03\x02\x02\x02\x02\u0563\x03\x02\x02\x02\x02\u0565\x03\x02\x02\x02\x02" + - "\u0567\x03\x02\x02\x02\x02\u0569\x03\x02\x02\x02\x02\u056B\x03\x02\x02" + - "\x02\x02\u056D\x03\x02\x02\x02\x02\u056F\x03\x02\x02\x02\x02\u0571\x03" + - "\x02\x02\x02\x02\u0573\x03\x02\x02\x02\x02\u0575\x03\x02\x02\x02\x02\u0577" + - "\x03\x02\x02\x02\x02\u0579\x03\x02\x02\x02\x02\u057B\x03\x02\x02\x02\x02" + - "\u057D\x03\x02\x02\x02\x02\u057F\x03\x02\x02\x02\x02\u0581\x03\x02\x02" + - "\x02\x02\u0583\x03\x02\x02\x02\x02\u0585\x03\x02\x02\x02\x02\u0587\x03" + - "\x02\x02\x02\x02\u0589\x03\x02\x02\x02\x02\u058B\x03\x02\x02\x02\x02\u058D" + - "\x03\x02\x02\x02\x02\u058F\x03\x02\x02\x02\x02\u0591\x03\x02\x02\x02\x02" + - "\u0593\x03\x02\x02\x02\x02\u0595\x03\x02\x02\x02\x02\u0597\x03\x02\x02" + - "\x02\x02\u0599\x03\x02\x02\x02\x02\u059B\x03\x02\x02\x02\x02\u059D\x03" + - "\x02\x02\x02\x02\u059F\x03\x02\x02\x02\x02\u05A1\x03\x02\x02\x02\x02\u05A3" + - "\x03\x02\x02\x02\x02\u05A5\x03\x02\x02\x02\x02\u05A7\x03\x02\x02\x02\x02" + - "\u05A9\x03\x02\x02\x02\x02\u05AB\x03\x02\x02\x02\x02\u05AD\x03\x02\x02" + - "\x02\x02\u05AF\x03\x02\x02\x02\x02\u05B1\x03\x02\x02\x02\x02\u05B3\x03" + - "\x02\x02\x02\x02\u05B5\x03\x02\x02\x02\x02\u05B7\x03\x02\x02\x02\x02\u05B9" + - "\x03\x02\x02\x02\x02\u05BB\x03\x02\x02\x02\x02\u05BD\x03\x02\x02\x02\x02" + - "\u05BF\x03\x02\x02\x02\x02\u05C1\x03\x02\x02\x02\x02\u05C3\x03\x02\x02" + - "\x02\x02\u05C5\x03\x02\x02\x02\x02\u05C7\x03\x02\x02\x02\x02\u05C9\x03" + - "\x02\x02\x02\x02\u05CB\x03\x02\x02\x02\x02\u05CD\x03\x02\x02\x02\x02\u05CF" + - "\x03\x02\x02\x02\x02\u05D1\x03\x02\x02\x02\x02\u05D3\x03\x02\x02\x02\x02" + - "\u05D5\x03\x02\x02\x02\x02\u05D7\x03\x02\x02\x02\x02\u05D9\x03\x02\x02" + - "\x02\x02\u05DB\x03\x02\x02\x02\x02\u05DD\x03\x02\x02\x02\x02\u05DF\x03" + - "\x02\x02\x02\x02\u05E1\x03\x02\x02\x02\x02\u05E3\x03\x02\x02\x02\x02\u05E5" + - "\x03\x02\x02\x02\x02\u05E7\x03\x02\x02\x02\x02\u05E9\x03\x02\x02\x02\x02" + - "\u05EB\x03\x02\x02\x02\x02\u05ED\x03\x02\x02\x02\x02\u05EF\x03\x02\x02" + - "\x02\x02\u05F1\x03\x02\x02\x02\x02\u05F3\x03\x02\x02\x02\x02\u05F5\x03" + - "\x02\x02\x02\x02\u05F7\x03\x02\x02\x02\x02\u05F9\x03\x02\x02\x02\x02\u05FB" + - "\x03\x02\x02\x02\x02\u05FD\x03\x02\x02\x02\x02\u05FF\x03\x02\x02\x02\x02" + - "\u0601\x03\x02\x02\x02\x02\u0603\x03\x02\x02\x02\x02\u0605\x03\x02\x02" + - "\x02\x02\u0607\x03\x02\x02\x02\x02\u0609\x03\x02\x02\x02\x02\u060B\x03" + - "\x02\x02\x02\x02\u060D\x03\x02\x02\x02\x02\u060F\x03\x02\x02\x02\x02\u0611" + - "\x03\x02\x02\x02\x02\u0613\x03\x02\x02\x02\x02\u0615\x03\x02\x02\x02\x02" + - "\u0617\x03\x02\x02\x02\x02\u0619\x03\x02\x02\x02\x02\u061B\x03\x02\x02" + - "\x02\x02\u061D\x03\x02\x02\x02\x02\u061F\x03\x02\x02\x02\x02\u0621\x03" + - "\x02\x02\x02\x02\u0623\x03\x02\x02\x02\x02\u0625\x03\x02\x02\x02\x02\u0627" + - "\x03\x02\x02\x02\x02\u0629\x03\x02\x02\x02\x02\u062B\x03\x02\x02\x02\x02" + - "\u062D\x03\x02\x02\x02\x02\u062F\x03\x02\x02\x02\x02\u0631\x03\x02\x02" + - "\x02\x02\u0633\x03\x02\x02\x02\x02\u0635\x03\x02\x02\x02\x02\u0637\x03" + - "\x02\x02\x02\x02\u0639\x03\x02\x02\x02\x02\u063B\x03\x02\x02\x02\x02\u063D" + - "\x03\x02\x02\x02\x02\u063F\x03\x02\x02\x02\x02\u0641\x03\x02\x02\x02\x02" + - "\u0643\x03\x02\x02\x02\x02\u0645\x03\x02\x02\x02\x02\u0647\x03\x02\x02" + - "\x02\x02\u0649\x03\x02\x02\x02\x02\u064B\x03\x02\x02\x02\x02\u064D\x03" + - "\x02\x02\x02\x02\u064F\x03\x02\x02\x02\x02\u0651\x03\x02\x02\x02\x02\u0653" + - "\x03\x02\x02\x02\x02\u0655\x03\x02\x02\x02\x02\u0657\x03\x02\x02\x02\x02" + - "\u0659\x03\x02\x02\x02\x02\u065B\x03\x02\x02\x02\x02\u065D\x03\x02\x02" + - "\x02\x02\u065F\x03\x02\x02\x02\x02\u0661\x03\x02\x02\x02\x02\u0663\x03" + - "\x02\x02\x02\x02\u0665\x03\x02\x02\x02\x02\u0667\x03\x02\x02\x02\x02\u0669" + - "\x03\x02\x02\x02\x02\u066B\x03\x02\x02\x02\x02\u066D\x03\x02\x02\x02\x02" + - "\u066F\x03\x02\x02\x02\x02\u0671\x03\x02\x02\x02\x02\u0673\x03\x02\x02" + - "\x02\x02\u0675\x03\x02\x02\x02\x02\u0677\x03\x02\x02\x02\x02\u0679\x03" + - "\x02\x02\x02\x02\u067B\x03\x02\x02\x02\x02\u067D\x03\x02\x02\x02\x02\u067F" + - "\x03\x02\x02\x02\x02\u0681\x03\x02\x02\x02\x02\u0683\x03\x02\x02\x02\x02" + - "\u0685\x03\x02\x02\x02\x02\u0687\x03\x02\x02\x02\x02\u0689\x03\x02\x02" + - "\x02\x02\u068B\x03\x02\x02\x02\x02\u068D\x03\x02\x02\x02\x02\u068F\x03" + - "\x02\x02\x02\x02\u0691\x03\x02\x02\x02\x02\u0693\x03\x02\x02\x02\x02\u0695" + - "\x03\x02\x02\x02\x02\u0697\x03\x02\x02\x02\x02\u0699\x03\x02\x02\x02\x02" + - "\u069B\x03\x02\x02\x02\x02\u069D\x03\x02\x02\x02\x02\u069F\x03\x02\x02" + - "\x02\x02\u06A1\x03\x02\x02\x02\x02\u06A3\x03\x02\x02\x02\x02\u06A5\x03" + - "\x02\x02\x02\x02\u06A7\x03\x02\x02\x02\x02\u06A9\x03\x02\x02\x02\x02\u06AB" + - "\x03\x02\x02\x02\x02\u06AD\x03\x02\x02\x02\x02\u06AF\x03\x02\x02\x02\x02" + - "\u06B1\x03\x02\x02\x02\x02\u06B3\x03\x02\x02\x02\x02\u06B5\x03\x02\x02" + - "\x02\x02\u06B7\x03\x02\x02\x02\x02\u06B9\x03\x02\x02\x02\x02\u06BB\x03" + - "\x02\x02\x02\x02\u06BD\x03\x02\x02\x02\x02\u06BF\x03\x02\x02\x02\x02\u06C1" + - "\x03\x02\x02\x02\x02\u06C3\x03\x02\x02\x02\x02\u06C5\x03\x02\x02\x02\x02" + - "\u06C7\x03\x02\x02\x02\x02\u06C9\x03\x02\x02\x02\x02\u06CB\x03\x02\x02" + - "\x02\x02\u06CD\x03\x02\x02\x02\x02\u06CF\x03\x02\x02\x02\x02\u06D1\x03" + - "\x02\x02\x02\x02\u06D3\x03\x02\x02\x02\x02\u06D5\x03\x02\x02\x02\x02\u06D7" + - "\x03\x02\x02\x02\x02\u06D9\x03\x02\x02\x02\x02\u06DB\x03\x02\x02\x02\x02" + - "\u06DD\x03\x02\x02\x02\x02\u06DF\x03\x02\x02\x02\x02\u06E1\x03\x02\x02" + - "\x02\x02\u06E3\x03\x02\x02\x02\x02\u06E5\x03\x02\x02\x02\x02\u06E7\x03" + - "\x02\x02\x02\x02\u06E9\x03\x02\x02\x02\x02\u06EB\x03\x02\x02\x02\x02\u06ED" + - "\x03\x02\x02\x02\x02\u06EF\x03\x02\x02\x02\x02\u06F1\x03\x02\x02\x02\x02" + - "\u06F3\x03\x02\x02\x02\x02\u06F5\x03\x02\x02\x02\x02\u06F7\x03\x02\x02" + - "\x02\x02\u06F9\x03\x02\x02\x02\x02\u06FB\x03\x02\x02\x02\x02\u06FD\x03" + - "\x02\x02\x02\x02\u06FF\x03\x02\x02\x02\x02\u0701\x03\x02\x02\x02\x02\u0703" + - "\x03\x02\x02\x02\x02\u0705\x03\x02\x02\x02\x02\u0707\x03\x02\x02\x02\x02" + - "\u0709\x03\x02\x02\x02\x02\u070B\x03\x02\x02\x02\x02\u070D\x03\x02\x02" + - "\x02\x02\u070F\x03\x02\x02\x02\x02\u0711\x03\x02\x02\x02\x02\u0713\x03" + - "\x02\x02\x02\x02\u0715\x03\x02\x02\x02\x02\u0717\x03\x02\x02\x02\x02\u0719" + - "\x03\x02\x02\x02\x02\u071B\x03\x02\x02\x02\x02\u071D\x03\x02\x02\x02\x02" + - "\u071F\x03\x02\x02\x02\x02\u0721\x03\x02\x02\x02\x02\u0723\x03\x02\x02" + - "\x02\x02\u0725\x03\x02\x02\x02\x02\u0727\x03\x02\x02\x02\x02\u0729\x03" + - "\x02\x02\x02\x02\u072B\x03\x02\x02\x02\x02\u072D\x03\x02\x02\x02\x02\u072F" + - "\x03\x02\x02\x02\x02\u0731\x03\x02\x02\x02\x02\u0733\x03\x02\x02\x02\x02" + - "\u0735\x03\x02\x02\x02\x02\u0737\x03\x02\x02\x02\x02\u0739\x03\x02\x02" + - "\x02\x02\u073B\x03\x02\x02\x02\x02\u073D\x03\x02\x02\x02\x02\u073F\x03" + - "\x02\x02\x02\x02\u0741\x03\x02\x02\x02\x02\u0743\x03\x02\x02\x02\x02\u0745" + - "\x03\x02\x02\x02\x02\u0747\x03\x02\x02\x02\x02\u0749\x03\x02\x02\x02\x02" + - "\u074B\x03\x02\x02\x02\x02\u074D\x03\x02\x02\x02\x02\u074F\x03\x02\x02" + - "\x02\x02\u0751\x03\x02\x02\x02\x02\u0753\x03\x02\x02\x02\x02\u0755\x03" + - "\x02\x02\x02\x02\u0757\x03\x02\x02\x02\x02\u0759\x03\x02\x02\x02\x02\u075B" + - "\x03\x02\x02\x02\x02\u075D\x03\x02\x02\x02\x02\u075F\x03\x02\x02\x02\x02" + - "\u0761\x03\x02\x02\x02\x02\u0763\x03\x02\x02\x02\x02\u0765\x03\x02\x02" + - "\x02\x02\u0767\x03\x02\x02\x02\x02\u0769\x03\x02\x02\x02\x02\u076B\x03" + - "\x02\x02\x02\x02\u076D\x03\x02\x02\x02\x02\u076F\x03\x02\x02\x02\x02\u0771" + - "\x03\x02\x02\x02\x02\u0773\x03\x02\x02\x02\x02\u0775\x03\x02\x02\x02\x02" + - "\u0777\x03\x02\x02\x02\x02\u0779\x03\x02\x02\x02\x02\u077B\x03\x02\x02" + - "\x02\x02\u077D\x03\x02\x02\x02\x02\u077F\x03\x02\x02\x02\x02\u0781\x03" + - "\x02\x02\x02\x02\u0783\x03\x02\x02\x02\x02\u0785\x03\x02\x02\x02\x02\u0787" + - "\x03\x02\x02\x02\x02\u0789\x03\x02\x02\x02\x02\u078B\x03\x02\x02\x02\x02" + - "\u078D\x03\x02\x02\x02\x02\u078F\x03\x02\x02\x02\x02\u0791\x03\x02\x02" + - "\x02\x02\u0793\x03\x02\x02\x02\x02\u0795\x03\x02\x02\x02\x02\u0797\x03" + - "\x02\x02\x02\x02\u0799\x03\x02\x02\x02\x02\u079B\x03\x02\x02\x02\x02\u079D" + - "\x03\x02\x02\x02\x02\u079F\x03\x02\x02\x02\x02\u07A1\x03\x02\x02\x02\x02" + - "\u07A3\x03\x02\x02\x02\x02\u07A5\x03\x02\x02\x02\x02\u07A7\x03\x02\x02" + - "\x02\x02\u07A9\x03\x02\x02\x02\x02\u07AB\x03\x02\x02\x02\x02\u07AD\x03" + - "\x02\x02\x02\x02\u07AF\x03\x02\x02\x02\x02\u07B1\x03\x02\x02\x02\x02\u07B3" + - "\x03\x02\x02\x02\x02\u07B5\x03\x02\x02\x02\x02\u07B7\x03\x02\x02\x02\x02" + - "\u07B9\x03\x02\x02\x02\x02\u07BB\x03\x02\x02\x02\x02\u07BD\x03\x02\x02" + - "\x02\x02\u07BF\x03\x02\x02\x02\x02\u07C1\x03\x02\x02\x02\x02\u07C3\x03" + - "\x02\x02\x02\x02\u07C5\x03\x02\x02\x02\x02\u07C7\x03\x02\x02\x02\x02\u07C9" + - "\x03\x02\x02\x02\x02\u07CB\x03\x02\x02\x02\x02\u07CD\x03\x02\x02\x02\x02" + - "\u07CF\x03\x02\x02\x02\x02\u07D1\x03\x02\x02\x02\x02\u07D3\x03\x02\x02" + - "\x02\x02\u07D5\x03\x02\x02\x02\x02\u07D7\x03\x02\x02\x02\x02\u07D9\x03" + - "\x02\x02\x02\x02\u07DB\x03\x02\x02\x02\x02\u07DD\x03\x02\x02\x02\x02\u07DF" + - "\x03\x02\x02\x02\x02\u07E1\x03\x02\x02\x02\x02\u07E3\x03\x02\x02\x02\x02" + - "\u07E5\x03\x02\x02\x02\x02\u07E7\x03\x02\x02\x02\x02\u07E9\x03\x02\x02" + - "\x02\x02\u07EB\x03\x02\x02\x02\x02\u07ED\x03\x02\x02\x02\x02\u07EF\x03" + - "\x02\x02\x02\x02\u07F1\x03\x02\x02\x02\x02\u07F3\x03\x02\x02\x02\x02\u07F5" + - "\x03\x02\x02\x02\x02\u07F7\x03\x02\x02\x02\x02\u07F9\x03\x02\x02\x02\x02" + - "\u07FB\x03\x02\x02\x02\x02\u07FD\x03\x02\x02\x02\x02\u07FF\x03\x02\x02" + - "\x02\x02\u0801\x03\x02\x02\x02\x02\u0803\x03\x02\x02\x02\x02\u0805\x03" + - "\x02\x02\x02\x02\u0807\x03\x02\x02\x02\x02\u0809\x03\x02\x02\x02\x02\u080B" + - "\x03\x02\x02\x02\x02\u080D\x03\x02\x02\x02\x02\u080F\x03\x02\x02\x02\x02" + - "\u0813\x03\x02\x02\x02\x02\u0815\x03\x02\x02\x02\x02\u0817\x03\x02\x02" + - "\x02\x02\u0819\x03\x02\x02\x02\x02\u081B\x03\x02\x02\x02\x02\u081D\x03" + - "\x02\x02\x02\x02\u081F\x03\x02\x02\x02\x02\u0821\x03\x02\x02\x02\x02\u0823" + - "\x03\x02\x02\x02\x02\u0825\x03\x02\x02\x02\x02\u0827\x03\x02\x02\x02\x02" + - "\u0829\x03\x02\x02\x02\x02\u082B\x03\x02\x02\x02\x02\u082D\x03\x02\x02" + - "\x02\x02\u082F\x03\x02\x02\x02\x02\u0831\x03\x02\x02\x02\x02\u0845\x03" + - "\x02\x02\x02\x03\u0848\x03\x02\x02\x02\x05\u084E\x03\x02\x02\x02\x07\u085C" + - "\x03\x02\x02\x02\t\u0886\x03\x02\x02\x02\v\u088A\x03\x02\x02\x02\r\u088E" + - "\x03\x02\x02\x02\x0F\u0892\x03\x02\x02\x02\x11\u0898\x03\x02\x02\x02\x13" + - "\u089F\x03\x02\x02\x02\x15\u08A7\x03\x02\x02\x02\x17\u08AB\x03\x02\x02" + - "\x02\x19\u08AE\x03\x02\x02\x02\x1B\u08B2\x03\x02\x02\x02\x1D\u08B9\x03" + - "\x02\x02\x02\x1F\u08C1\x03\x02\x02\x02!\u08C6\x03\x02\x02\x02#\u08C9\x03" + - "\x02\x02\x02%\u08CE\x03\x02\x02\x02\'\u08D6\x03\x02\x02\x02)\u08DB\x03" + - "\x02\x02\x02+\u08E0\x03\x02\x02\x02-\u08E7\x03\x02\x02\x02/\u08F1\x03" + - "\x02\x02\x021\u08F7\x03\x02\x02\x023\u08FF\x03\x02\x02\x025\u0906\x03" + - "\x02\x02\x027\u0910\x03\x02\x02\x029\u091B\x03\x02\x02\x02;\u0924\x03" + - "\x02\x02\x02=\u092C\x03\x02\x02\x02?\u0933\x03\x02\x02\x02A\u0939\x03" + - "\x02\x02\x02C\u0941\x03\x02\x02\x02E\u094E\x03\x02\x02\x02G\u0955\x03" + - "\x02\x02\x02I\u095E\x03\x02\x02\x02K\u0968\x03\x02\x02\x02M\u0970\x03" + - "\x02\x02\x02O\u0978\x03\x02\x02\x02Q\u0980\x03\x02\x02\x02S\u0987\x03" + - "\x02\x02\x02U\u098C\x03\x02\x02\x02W\u0995\x03\x02\x02\x02Y\u09A3\x03" + - "\x02\x02\x02[\u09AF\x03\x02\x02\x02]\u09B8\x03\x02\x02\x02_\u09C4\x03" + - "\x02\x02\x02a\u09C9\x03\x02\x02\x02c\u09CE\x03\x02\x02\x02e\u09D3\x03" + - "\x02\x02\x02g\u09DA\x03\x02\x02\x02i\u09E3\x03\x02\x02\x02k\u09EB\x03" + - "\x02\x02\x02m\u09F2\x03\x02\x02\x02o\u09F7\x03\x02\x02\x02q\u09FF\x03" + - "\x02\x02\x02s\u0A05\x03\x02\x02\x02u\u0A0B\x03\x02\x02\x02w\u0A0F\x03" + - "\x02\x02\x02y\u0A15\x03\x02\x02\x02{\u0A1D\x03\x02\x02\x02}\u0A22\x03" + - "\x02\x02\x02\x7F\u0A2B\x03\x02\x02\x02\x81\u0A35\x03\x02\x02\x02\x83\u0A39" + - "\x03\x02\x02\x02\x85\u0A3F\x03\x02\x02\x02\x87\u0A45\x03\x02\x02\x02\x89" + - "\u0A4C\x03\x02\x02\x02\x8B\u0A5A\x03\x02\x02\x02\x8D\u0A5D\x03\x02\x02" + - "\x02\x8F\u0A64\x03\x02\x02\x02\x91\u0A67\x03\x02\x02\x02\x93\u0A6D\x03" + - "\x02\x02\x02\x95\u0A74\x03\x02\x02\x02\x97\u0A7A\x03\x02\x02\x02\x99\u0A80" + - "\x03\x02\x02\x02\x9B\u0A87\x03\x02\x02\x02\x9D\u0A90\x03\x02\x02\x02\x9F" + - "\u0A95\x03\x02\x02\x02\xA1\u0A98\x03\x02\x02\x02\xA3\u0AA0\x03\x02\x02" + - "\x02\xA5\u0AA5\x03\x02\x02\x02\xA7\u0AA9\x03\x02\x02\x02\xA9\u0AAE\x03" + - "\x02\x02\x02\xAB\u0AB3\x03\x02\x02\x02\xAD\u0ABB\x03\x02\x02\x02\xAF\u0AC1" + - "\x03\x02\x02\x02\xB1\u0AC6\x03\x02\x02\x02\xB3\u0ACB\x03\x02\x02\x02\xB5" + - "\u0AD1\x03\x02\x02\x02\xB7\u0AD8\x03\x02\x02\x02\xB9\u0ADE\x03\x02\x02" + - "\x02\xBB\u0AE3\x03\x02\x02\x02\xBD\u0AE8\x03\x02\x02\x02\xBF\u0AED\x03" + - "\x02\x02\x02\xC1\u0AFA\x03\x02\x02\x02\xC3\u0B06\x03\x02\x02\x02\xC5\u0B24" + - "\x03\x02\x02\x02\xC7\u0B2A\x03\x02\x02\x02\xC9\u0B33\x03\x02\x02\x02\xCB" + - "\u0B3C\x03\x02\x02\x02\xCD\u0B44\x03\x02\x02\x02\xCF\u0B48\x03\x02\x02" + - "\x02\xD1\u0B5B\x03\x02\x02\x02\xD3\u0B60\x03\x02\x02\x02\xD5\u0B67\x03" + - "\x02\x02\x02\xD7\u0B6A\x03\x02\x02\x02\xD9\u0B73\x03\x02\x02\x02\xDB\u0B7A" + - "\x03\x02\x02\x02\xDD\u0B85\x03\x02\x02\x02\xDF\u0B88\x03\x02\x02\x02\xE1" + - "\u0B8E\x03\x02\x02\x02\xE3\u0B92\x03\x02\x02\x02\xE5\u0B98\x03\x02\x02" + - "\x02\xE7\u0BA0\x03\x02\x02\x02\xE9\u0BAA\x03\x02\x02\x02\xEB\u0BB2\x03" + - "\x02\x02\x02\xED\u0BBC\x03\x02\x02\x02\xEF\u0BC2\x03\x02\x02\x02\xF1\u0BC8" + - "\x03\x02\x02\x02\xF3\u0BCD\x03\x02\x02\x02\xF5\u0BD3\x03\x02\x02\x02\xF7" + - "\u0BDE\x03\x02\x02\x02\xF9\u0BE5\x03\x02\x02\x02\xFB\u0BED\x03\x02\x02" + - "\x02\xFD\u0BF4\x03\x02\x02\x02\xFF\u0BFB\x03\x02\x02\x02\u0101\u0C03\x03" + - "\x02\x02\x02\u0103\u0C0B\x03\x02\x02\x02\u0105\u0C14\x03\x02\x02\x02\u0107" + - "\u0C1D\x03\x02\x02\x02\u0109\u0C24\x03\x02\x02\x02\u010B\u0C2B\x03\x02" + - "\x02\x02\u010D\u0C31\x03\x02\x02\x02\u010F\u0C37\x03\x02\x02\x02\u0111" + - "\u0C3E\x03\x02\x02\x02\u0113\u0C46\x03\x02\x02\x02\u0115\u0C4D\x03\x02" + - "\x02\x02\u0117\u0C51\x03\x02\x02\x02\u0119\u0C5B\x03\x02\x02\x02\u011B" + - "\u0C60\x03\x02\x02\x02\u011D\u0C67\x03\x02\x02\x02\u011F\u0C6F\x03\x02" + - "\x02\x02\u0121\u0C73\x03\x02\x02\x02\u0123\u0C80\x03\x02\x02\x02\u0125" + - "\u0C89\x03\x02\x02\x02\u0127\u0C94\x03\x02\x02\x02\u0129\u0CA3\x03\x02" + - "\x02\x02\u012B\u0CB7\x03\x02\x02\x02\u012D\u0CC8\x03\x02\x02\x02\u012F" + - "\u0CCC\x03\x02\x02\x02\u0131\u0CD4\x03\x02\x02\x02\u0133\u0CDD\x03\x02" + - "\x02\x02\u0135\u0CEB\x03\x02\x02\x02\u0137\u0CF1\x03\x02\x02\x02\u0139" + - "\u0CFC\x03\x02\x02\x02\u013B\u0D01\x03\x02\x02\x02\u013D\u0D04\x03\x02" + - "\x02\x02\u013F\u0D0D\x03\x02\x02\x02\u0141\u0D15\x03\x02\x02\x02\u0143" + - "\u0D1A\x03\x02\x02\x02\u0145\u0D1F\x03\x02\x02\x02\u0147\u0D25\x03\x02" + - "\x02\x02\u0149\u0D2C\x03\x02\x02\x02\u014B\u0D33\x03\x02\x02\x02\u014D" + - "\u0D3C\x03\x02\x02\x02\u014F\u0D43\x03\x02\x02\x02\u0151\u0D49\x03\x02" + - "\x02\x02\u0153\u0D4D\x03\x02\x02\x02\u0155\u0D53\x03\x02\x02\x02\u0157" + - "\u0D5A\x03\x02\x02\x02\u0159\u0D5F\x03\x02\x02\x02\u015B\u0D65\x03\x02" + - "\x02\x02\u015D\u0D6B\x03\x02\x02\x02\u015F\u0D70\x03\x02\x02\x02\u0161" + - "\u0D76\x03\x02\x02\x02\u0163\u0D7A\x03\x02\x02\x02\u0165\u0D83\x03\x02" + - "\x02\x02\u0167\u0D8B\x03\x02\x02\x02\u0169\u0D94\x03\x02\x02\x02\u016B" + - "\u0D9E\x03\x02\x02\x02\u016D"; - private static readonly _serializedATNSegment7: string = - "\u0DA8\x03\x02\x02\x02\u016F\u0DAC\x03\x02\x02\x02\u0171\u0DB1\x03\x02" + - "\x02\x02\u0173\u0DB6\x03\x02\x02\x02\u0175\u0DBB\x03\x02\x02\x02\u0177" + - "\u0DC0\x03\x02\x02\x02\u0179\u0DC5\x03\x02\x02\x02\u017B\u0DCD\x03\x02" + - "\x02\x02\u017D\u0DD4\x03\x02\x02\x02\u017F\u0DD9\x03\x02\x02\x02\u0181" + - "\u0DE0\x03\x02\x02\x02\u0183\u0DEA\x03\x02\x02\x02\u0185\u0DF0\x03\x02" + - "\x02\x02\u0187\u0DF7\x03\x02\x02\x02\u0189\u0DFE\x03\x02\x02\x02\u018B" + - "\u0E06\x03\x02\x02\x02\u018D\u0E0A\x03\x02\x02\x02\u018F\u0E12\x03\x02" + - "\x02\x02\u0191\u0E17\x03\x02\x02\x02\u0193\u0E1C\x03\x02\x02\x02\u0195" + - "\u0E26\x03\x02\x02\x02\u0197\u0E2F\x03\x02\x02\x02\u0199\u0E34\x03\x02" + - "\x02\x02\u019B\u0E39\x03\x02\x02\x02\u019D\u0E41\x03\x02\x02\x02\u019F" + - "\u0E4A\x03\x02\x02\x02\u01A1\u0E53\x03\x02\x02\x02\u01A3\u0E5A\x03\x02" + - "\x02\x02\u01A5\u0E64\x03\x02\x02\x02\u01A7\u0E6D\x03\x02\x02\x02\u01A9" + - "\u0E72\x03\x02\x02\x02\u01AB\u0E7D\x03\x02\x02\x02\u01AD\u0E82\x03\x02" + - "\x02\x02\u01AF\u0E8B\x03\x02\x02\x02\u01B1\u0E94\x03\x02\x02\x02\u01B3" + - "\u0E99\x03\x02\x02\x02\u01B5\u0EA4\x03\x02\x02\x02\u01B7\u0EAD\x03\x02" + - "\x02\x02\u01B9\u0EB2\x03\x02\x02\x02\u01BB\u0EBA\x03\x02\x02\x02\u01BD" + - "\u0EC1\x03\x02\x02\x02\u01BF\u0ECC\x03\x02\x02\x02\u01C1\u0ED5\x03\x02" + - "\x02\x02\u01C3\u0EE0\x03\x02\x02\x02\u01C5\u0EEB\x03\x02\x02\x02\u01C7" + - "\u0EF7\x03\x02\x02\x02\u01C9\u0F03\x03\x02\x02\x02\u01CB\u0F11\x03\x02" + - "\x02\x02\u01CD\u0F24\x03\x02\x02\x02\u01CF\u0F37\x03\x02\x02\x02\u01D1" + - "\u0F48\x03\x02\x02\x02\u01D3\u0F58\x03\x02\x02\x02\u01D5\u0F63\x03\x02" + - "\x02\x02\u01D7\u0F75\x03\x02\x02\x02\u01D9\u0F79\x03\x02\x02\x02\u01DB" + - "\u0F81\x03\x02\x02\x02\u01DD\u0F88\x03\x02\x02\x02\u01DF\u0F90\x03\x02" + - "\x02\x02\u01E1\u0F96\x03\x02\x02\x02\u01E3\u0FA3\x03\x02\x02\x02\u01E5" + - "\u0FA7\x03\x02\x02\x02\u01E7\u0FAB\x03\x02\x02\x02\u01E9\u0FAF\x03\x02" + - "\x02\x02\u01EB\u0FB6\x03\x02\x02\x02\u01ED\u0FC1\x03\x02\x02\x02\u01EF" + - "\u0FCD\x03\x02\x02\x02\u01F1\u0FD1\x03\x02\x02\x02\u01F3\u0FD9\x03\x02" + - "\x02\x02\u01F5\u0FE2\x03\x02\x02\x02\u01F7\u0FEB\x03\x02\x02\x02\u01F9" + - "\u0FF8\x03\x02\x02\x02\u01FB\u1005\x03\x02\x02\x02\u01FD\u1017\x03\x02" + - "\x02\x02\u01FF\u1021\x03\x02\x02\x02\u0201\u1029\x03\x02\x02\x02\u0203" + - "\u1031\x03\x02\x02\x02\u0205\u103A\x03\x02\x02\x02\u0207\u1043\x03\x02" + - "\x02\x02\u0209\u104B\x03\x02\x02\x02\u020B\u105A\x03\x02\x02\x02\u020D" + - "\u105E\x03\x02\x02\x02\u020F\u1067\x03\x02\x02\x02\u0211\u106E\x03\x02" + - "\x02\x02\u0213\u1078\x03\x02\x02\x02\u0215\u1080\x03\x02\x02\x02\u0217" + - "\u1085\x03\x02\x02\x02\u0219\u108E\x03\x02\x02\x02\u021B\u1097\x03\x02" + - "\x02\x02\u021D\u10A5\x03\x02\x02\x02\u021F\u10AD\x03\x02\x02\x02\u0221" + - "\u10B4\x03\x02\x02\x02\u0223\u10BA\x03\x02\x02\x02\u0225\u10C4\x03\x02" + - "\x02\x02\u0227\u10CE\x03\x02\x02\x02\u0229\u10D2\x03\x02\x02\x02\u022B" + - "\u10D5\x03\x02\x02\x02\u022D\u10DD\x03\x02\x02\x02\u022F\u10E8\x03\x02" + - "\x02\x02\u0231\u10F8\x03\x02\x02\x02\u0233\u1107\x03\x02\x02\x02\u0235" + - "\u1116\x03\x02\x02\x02\u0237\u111C\x03\x02\x02\x02\u0239\u1123\x03\x02" + - "\x02\x02\u023B\u1127\x03\x02\x02\x02\u023D\u112D\x03\x02\x02\x02\u023F" + - "\u1132\x03\x02\x02\x02\u0241\u113A\x03\x02\x02\x02\u0243\u1140\x03\x02" + - "\x02\x02\u0245\u1146\x03\x02\x02\x02\u0247\u114F\x03\x02\x02\x02\u0249" + - "\u1155\x03\x02\x02\x02\u024B\u115D\x03\x02\x02\x02\u024D\u1165\x03\x02" + - "\x02\x02\u024F\u116E\x03\x02\x02\x02\u0251\u117C\x03\x02\x02\x02\u0253" + - "\u1183\x03\x02\x02\x02\u0255\u1190\x03\x02\x02\x02\u0257\u1197\x03\x02" + - "\x02\x02\u0259\u119D\x03\x02\x02\x02\u025B\u11A6\x03\x02\x02\x02\u025D" + - "\u11AB\x03\x02\x02\x02\u025F\u11B3\x03\x02\x02\x02\u0261\u11C1\x03\x02" + - "\x02\x02\u0263\u11CD\x03\x02\x02\x02\u0265\u11D5\x03\x02\x02\x02\u0267" + - "\u11DC\x03\x02\x02\x02\u0269\u11E4\x03\x02\x02\x02\u026B\u11EF\x03\x02" + - "\x02\x02\u026D\u11FA\x03\x02\x02\x02\u026F\u1206\x03\x02\x02\x02\u0271" + - "\u1211\x03\x02\x02\x02\u0273\u121C\x03\x02\x02\x02\u0275\u1227\x03\x02" + - "\x02\x02\u0277\u123A\x03\x02\x02\x02\u0279\u124C\x03\x02\x02\x02\u027B" + - "\u125C\x03\x02\x02\x02\u027D\u1265\x03\x02\x02\x02\u027F\u126D\x03\x02" + - "\x02\x02\u0281\u127A\x03\x02\x02\x02\u0283\u127F\x03\x02\x02\x02\u0285" + - "\u1283\x03\x02\x02\x02\u0287\u128F\x03\x02\x02\x02\u0289\u1294\x03\x02" + - "\x02\x02\u028B\u129D\x03\x02\x02\x02\u028D\u12A8\x03\x02\x02\x02\u028F" + - "\u12B5\x03\x02\x02\x02\u0291\u12BD\x03\x02\x02\x02\u0293\u12CD\x03\x02" + - "\x02\x02\u0295\u12DA\x03\x02\x02\x02\u0297\u12E4\x03\x02\x02\x02\u0299" + - "\u12EC\x03\x02\x02\x02\u029B\u12F4\x03\x02\x02\x02\u029D\u12F9\x03\x02" + - "\x02\x02\u029F\u12FC\x03\x02\x02\x02\u02A1\u1305\x03\x02\x02\x02\u02A3" + - "\u130F\x03\x02\x02\x02\u02A5\u1317\x03\x02\x02\x02\u02A7\u131E\x03\x02" + - "\x02\x02\u02A9\u1329\x03\x02\x02\x02\u02AB\u132D\x03\x02\x02\x02\u02AD" + - "\u1332\x03\x02\x02\x02\u02AF\u1339\x03\x02\x02\x02\u02B1\u1341\x03\x02" + - "\x02\x02\u02B3\u1347\x03\x02\x02\x02\u02B5\u134E\x03\x02\x02\x02\u02B7" + - "\u1355\x03\x02\x02\x02\u02B9\u135A\x03\x02\x02\x02\u02BB\u1360\x03\x02" + - "\x02\x02\u02BD\u1367\x03\x02\x02\x02\u02BF\u136D\x03\x02\x02\x02\u02C1" + - "\u1376\x03\x02\x02\x02\u02C3\u1380\x03\x02\x02\x02\u02C5\u1387\x03\x02" + - "\x02\x02\u02C7\u138E\x03\x02\x02\x02\u02C9\u1397\x03\x02\x02\x02\u02CB" + - "\u13A3\x03\x02\x02\x02\u02CD\u13A8\x03\x02\x02\x02\u02CF\u13AF\x03\x02" + - "\x02\x02\u02D1\u13B6\x03\x02\x02\x02\u02D3\u13C6\x03\x02\x02\x02\u02D5" + - "\u13CD\x03\x02\x02\x02\u02D7\u13D3\x03\x02\x02\x02\u02D9\u13D9\x03\x02" + - "\x02\x02\u02DB\u13DF\x03\x02\x02\x02\u02DD\u13E7\x03\x02\x02\x02\u02DF" + - "\u13ED\x03\x02\x02\x02\u02E1\u13F2\x03\x02\x02\x02\u02E3\u13FB\x03\x02" + - "\x02\x02\u02E5\u1403\x03\x02\x02\x02\u02E7\u140A\x03\x02\x02\x02\u02E9" + - "\u1411\x03\x02\x02\x02\u02EB\u1423\x03\x02\x02\x02\u02ED\u142B\x03\x02" + - "\x02\x02\u02EF\u1430\x03\x02\x02\x02\u02F1\u1435\x03\x02\x02\x02\u02F3" + - "\u143A\x03\x02\x02\x02\u02F5\u1440\x03\x02\x02\x02\u02F7\u144B\x03\x02" + - "\x02\x02\u02F9\u145D\x03\x02\x02\x02\u02FB\u1464\x03\x02\x02\x02\u02FD" + - "\u146C\x03\x02\x02\x02\u02FF\u1479\x03\x02\x02\x02\u0301\u1481\x03\x02" + - "\x02\x02\u0303\u148F\x03\x02\x02\x02\u0305\u1497\x03\x02\x02\x02\u0307" + - "\u14A0\x03\x02\x02\x02\u0309\u14AA\x03\x02\x02\x02\u030B\u14B2\x03\x02" + - "\x02\x02\u030D\u14B5\x03\x02\x02\x02\u030F\u14BF\x03\x02\x02\x02\u0311" + - "\u14C3\x03\x02\x02\x02\u0313\u14CD\x03\x02\x02\x02\u0315\u14D4\x03\x02" + - "\x02\x02\u0317\u14D9\x03\x02\x02\x02\u0319\u14E8\x03\x02\x02\x02\u031B" + - "\u14F1\x03\x02\x02\x02\u031D\u14F6\x03\x02\x02\x02\u031F\u14FD\x03\x02" + - "\x02\x02\u0321\u1502\x03\x02\x02\x02\u0323\u1508\x03\x02\x02\x02\u0325" + - "\u150D\x03\x02\x02\x02\u0327\u1513\x03\x02\x02\x02\u0329\u151B\x03\x02" + - "\x02\x02\u032B\u1520\x03\x02\x02\x02\u032D\u1527\x03\x02\x02\x02\u032F" + - "\u153C\x03\x02\x02\x02\u0331\u1551\x03\x02\x02\x02\u0333\u155E\x03\x02" + - "\x02\x02\u0335\u1576\x03\x02\x02\x02\u0337\u1582\x03\x02\x02\x02\u0339" + - "\u1592\x03\x02\x02\x02\u033B\u15A1\x03\x02\x02\x02\u033D\u15B1\x03\x02" + - "\x02\x02\u033F\u15BD\x03\x02\x02\x02\u0341\u15D0\x03\x02\x02\x02\u0343" + - "\u15DB\x03\x02\x02\x02\u0345\u15E9\x03\x02\x02\x02\u0347\u15FB\x03\x02" + - "\x02\x02\u0349\u160B\x03\x02\x02\x02\u034B\u161D\x03\x02\x02\x02\u034D" + - "\u162C\x03\x02\x02\x02\u034F\u163F\x03\x02\x02\x02\u0351\u164E\x03\x02" + - "\x02\x02\u0353\u1661\x03\x02\x02\x02\u0355\u166D\x03\x02\x02\x02\u0357" + - "\u1686\x03\x02\x02\x02\u0359\u169B\x03\x02\x02\x02\u035B\u16A4\x03\x02" + - "\x02\x02\u035D\u16AD\x03\x02\x02\x02\u035F\u16C2\x03\x02\x02\x02\u0361" + - "\u16D7\x03\x02\x02\x02\u0363\u16DE\x03\x02\x02\x02\u0365\u16E4\x03\x02" + - "\x02\x02\u0367\u16F1\x03\x02\x02\x02\u0369\u16F5\x03\x02\x02\x02\u036B" + - "\u16FD\x03\x02\x02\x02\u036D\u1706\x03\x02\x02\x02\u036F\u170B\x03\x02" + - "\x02\x02\u0371\u1712\x03\x02\x02\x02\u0373\u1718\x03\x02\x02\x02\u0375" + - "\u171E\x03\x02\x02\x02\u0377\u172A\x03\x02\x02\x02\u0379\u172F\x03\x02" + - "\x02\x02\u037B\u1735\x03\x02\x02\x02\u037D\u173B\x03\x02\x02\x02\u037F" + - "\u1741\x03\x02\x02\x02\u0381\u1746\x03\x02\x02\x02\u0383\u1749\x03\x02" + - "\x02\x02\u0385\u1753\x03\x02\x02\x02\u0387\u1758\x03\x02\x02\x02\u0389" + - "\u1760\x03\x02\x02\x02\u038B\u1767\x03\x02\x02\x02\u038D\u176A\x03\x02" + - "\x02\x02\u038F\u1777\x03\x02\x02\x02\u0391\u177B\x03\x02\x02\x02\u0393" + - "\u1782\x03\x02\x02\x02\u0395\u1787\x03\x02\x02\x02\u0397\u178C\x03\x02" + - "\x02\x02\u0399\u179C\x03\x02\x02\x02\u039B\u17A4\x03\x02\x02\x02\u039D" + - "\u17AA\x03\x02\x02\x02\u039F\u17B4\x03\x02\x02\x02\u03A1\u17B9\x03\x02" + - "\x02\x02\u03A3\u17C0\x03\x02\x02\x02\u03A5\u17C8\x03\x02\x02\x02\u03A7" + - "\u17D5\x03\x02\x02\x02\u03A9\u17E0\x03\x02\x02\x02\u03AB\u17E9\x03\x02" + - "\x02\x02\u03AD\u17EF\x03\x02\x02\x02\u03AF\u17F6\x03\x02\x02\x02\u03B1" + - "\u1801\x03\x02\x02\x02\u03B3\u1809\x03\x02\x02\x02\u03B5\u180E\x03\x02" + - "\x02\x02\u03B7\u1817\x03\x02\x02\x02\u03B9\u181F\x03\x02\x02\x02\u03BB" + - "\u1828\x03\x02\x02\x02\u03BD\u182D\x03\x02\x02\x02\u03BF\u1839\x03\x02" + - "\x02\x02\u03C1\u1841\x03\x02\x02\x02\u03C3\u184A\x03\x02\x02\x02\u03C5" + - "\u1850\x03\x02\x02\x02\u03C7\u1856\x03\x02\x02\x02\u03C9\u185C\x03\x02" + - "\x02\x02\u03CB\u1864\x03\x02\x02\x02\u03CD\u186C\x03\x02\x02\x02\u03CF" + - "\u187D\x03\x02\x02\x02\u03D1\u1887\x03\x02\x02\x02\u03D3\u188D\x03\x02" + - "\x02\x02\u03D5\u189C\x03\x02\x02\x02\u03D7\u18AA\x03\x02\x02\x02\u03D9" + - "\u18B3\x03\x02\x02\x02\u03DB\u18BA\x03\x02\x02\x02\u03DD\u18C5\x03\x02" + - "\x02\x02\u03DF\u18CC\x03\x02\x02\x02\u03E1\u18DC\x03\x02\x02\x02\u03E3" + - "\u18EF\x03\x02\x02\x02\u03E5\u1903\x03\x02\x02\x02\u03E7\u191A\x03\x02" + - "\x02\x02\u03E9\u192F\x03\x02\x02\x02\u03EB\u1947\x03\x02\x02\x02\u03ED" + - "\u1963\x03\x02\x02\x02\u03EF\u196F\x03\x02\x02\x02\u03F1\u1975\x03\x02" + - "\x02\x02\u03F3\u197C\x03\x02\x02\x02\u03F5\u198E\x03\x02\x02\x02\u03F7" + - "\u1996\x03\x02\x02\x02\u03F9\u199B\x03\x02\x02\x02\u03FB\u19A4\x03\x02" + - "\x02\x02\u03FD\u19AB\x03\x02\x02\x02\u03FF\u19B2\x03\x02\x02\x02\u0401" + - "\u19B6\x03\x02\x02\x02\u0403\u19BB\x03\x02\x02\x02\u0405\u19C6\x03\x02" + - "\x02\x02\u0407\u19D0\x03\x02\x02\x02\u0409\u19D9\x03\x02\x02\x02\u040B" + - "\u19E2\x03\x02\x02\x02\u040D\u19E9\x03\x02\x02\x02\u040F\u19F1\x03\x02" + - "\x02\x02\u0411\u19F7\x03\x02\x02\x02\u0413\u19FE\x03\x02\x02\x02\u0415" + - "\u1A05\x03\x02\x02\x02\u0417\u1A0C\x03\x02\x02\x02\u0419\u1A12\x03\x02" + - "\x02\x02\u041B\u1A17\x03\x02\x02\x02\u041D\u1A20\x03\x02\x02\x02\u041F" + - "\u1A27\x03\x02\x02\x02\u0421\u1A2C\x03\x02\x02\x02\u0423\u1A33\x03\x02" + - "\x02\x02\u0425\u1A3A\x03\x02\x02\x02\u0427\u1A41\x03\x02\x02\x02\u0429" + - "\u1A51\x03\x02\x02\x02\u042B\u1A64\x03\x02\x02\x02\u042D\u1A75\x03\x02" + - "\x02\x02\u042F\u1A87\x03\x02\x02\x02\u0431\u1A91\x03\x02\x02\x02\u0433" + - "\u1A9E\x03\x02\x02\x02\u0435\u1AA9\x03\x02\x02\x02\u0437\u1AAF\x03\x02" + - "\x02\x02\u0439\u1AB6\x03\x02\x02\x02\u043B\u1AC8\x03\x02\x02\x02\u043D" + - "\u1AD9\x03\x02\x02\x02\u043F\u1AEC\x03\x02\x02\x02\u0441\u1AF3\x03\x02" + - "\x02\x02\u0443\u1AF8\x03\x02\x02\x02\u0445\u1B00\x03\x02\x02\x02\u0447" + - "\u1B07\x03\x02\x02\x02\u0449\u1B0E\x03\x02\x02\x02\u044B\u1B1E\x03\x02" + - "\x02\x02\u044D\u1B26\x03\x02\x02\x02\u044F\u1B33\x03\x02\x02\x02\u0451" + - "\u1B41\x03\x02\x02\x02\u0453\u1B49\x03\x02\x02\x02\u0455\u1B4F\x03\x02" + - "\x02\x02\u0457\u1B58\x03\x02\x02\x02\u0459\u1B63\x03\x02\x02\x02\u045B" + - "\u1B6E\x03\x02\x02\x02\u045D\u1B78\x03\x02\x02\x02\u045F\u1B82\x03\x02" + - "\x02\x02\u0461\u1B87\x03\x02\x02\x02\u0463\u1B93\x03\x02\x02\x02\u0465" + - "\u1B9F\x03\x02\x02\x02\u0467\u1BAD\x03\x02\x02\x02\u0469\u1BB6\x03\x02" + - "\x02\x02\u046B\u1BBF\x03\x02\x02\x02\u046D\u1BC9\x03\x02\x02\x02\u046F" + - "\u1BD2\x03\x02\x02\x02\u0471\u1BE3\x03\x02\x02\x02\u0473\u1BED\x03\x02" + - "\x02\x02\u0475\u1BF5\x03\x02\x02\x02\u0477\u1BFB\x03\x02\x02\x02\u0479" + - "\u1C03\x03\x02\x02\x02\u047B\u1C08\x03\x02\x02\x02\u047D\u1C10\x03\x02" + - "\x02\x02\u047F\u1C1F\x03\x02\x02\x02\u0481\u1C2A\x03\x02\x02\x02\u0483" + - "\u1C30\x03\x02\x02\x02\u0485\u1C3A\x03\x02\x02\x02\u0487\u1C3F\x03\x02" + - "\x02\x02\u0489\u1C47\x03\x02\x02\x02\u048B\u1C4F\x03\x02\x02\x02\u048D" + - "\u1C54\x03\x02\x02\x02\u048F\u1C5D\x03\x02\x02\x02\u0491\u1C65\x03\x02" + - "\x02\x02\u0493\u1C6A\x03\x02\x02\x02\u0495\u1C72\x03\x02\x02\x02\u0497" + - "\u1C77\x03\x02\x02\x02\u0499\u1C7A\x03\x02\x02\x02\u049B\u1C7E\x03\x02" + - "\x02\x02\u049D\u1C82\x03\x02\x02\x02\u049F\u1C86\x03\x02\x02\x02\u04A1" + - "\u1C8A\x03\x02\x02\x02\u04A3\u1C8E\x03\x02\x02\x02\u04A5\u1C97\x03\x02" + - "\x02\x02\u04A7\u1C9F\x03\x02\x02\x02\u04A9\u1CA5\x03\x02\x02\x02\u04AB" + - "\u1CA9\x03\x02\x02\x02\u04AD\u1CAE\x03\x02\x02\x02\u04AF\u1CB5\x03\x02" + - "\x02\x02\u04B1\u1CBA\x03\x02\x02\x02\u04B3\u1CC1\x03\x02\x02\x02\u04B5" + - "\u1CCD\x03\x02\x02\x02\u04B7\u1CD4\x03\x02\x02\x02\u04B9\u1CDC\x03\x02" + - "\x02\x02\u04BB\u1CE4\x03\x02\x02\x02\u04BD\u1CE9\x03\x02\x02\x02\u04BF" + - "\u1CF1\x03\x02\x02\x02\u04C1\u1CF8\x03\x02\x02\x02\u04C3\u1D01\x03\x02" + - "\x02\x02\u04C5\u1D07\x03\x02\x02\x02\u04C7\u1D12\x03\x02\x02\x02\u04C9" + - "\u1D2D\x03\x02\x02\x02\u04CB\u1D39\x03\x02\x02\x02\u04CD\u1D46\x03\x02" + - "\x02\x02\u04CF\u1D53\x03\x02\x02\x02\u04D1\u1D6B\x03\x02\x02\x02\u04D3" + - "\u1D77\x03\x02\x02\x02\u04D5\u1D88\x03\x02\x02\x02\u04D7\u1D9D\x03\x02" + - "\x02\x02\u04D9\u1DAC\x03\x02\x02\x02\u04DB\u1DBA\x03\x02\x02\x02\u04DD" + - "\u1DD2\x03\x02\x02\x02\u04DF\u1DEA\x03\x02\x02\x02\u04E1\u1DFA\x03\x02" + - "\x02\x02\u04E3\u1E15\x03\x02\x02\x02\u04E5\u1E29\x03\x02\x02\x02\u04E7" + - "\u1E41\x03\x02\x02\x02\u04E9\u1E56\x03\x02\x02\x02\u04EB\u1E6A\x03\x02" + - "\x02\x02\u04ED\u1E76\x03\x02\x02\x02\u04EF\u1E93\x03\x02\x02\x02\u04F1" + - "\u1E9F\x03\x02\x02\x02\u04F3\u1EAC\x03\x02\x02\x02\u04F5\u1EC3\x03\x02" + - "\x02\x02\u04F7\u1EDA\x03\x02\x02\x02\u04F9\u1EEE\x03\x02\x02\x02\u04FB" + - "\u1EFF\x03\x02\x02\x02\u04FD\u1F08\x03\x02\x02\x02\u04FF\u1F0E\x03\x02" + - "\x02\x02\u0501\u1F13\x03\x02\x02\x02\u0503\u1F1A\x03\x02\x02\x02\u0505" + - "\u1F21\x03\x02\x02\x02\u0507\u1F28\x03\x02\x02\x02\u0509\u1F2F\x03\x02" + - "\x02\x02\u050B\u1F35\x03\x02\x02\x02\u050D\u1F3B\x03\x02\x02\x02\u050F" + - "\u1F41\x03\x02\x02\x02\u0511\u1F47\x03\x02\x02\x02\u0513\u1F4C\x03\x02" + - "\x02\x02\u0515\u1F54\x03\x02\x02\x02\u0517\u1F5A\x03\x02\x02\x02\u0519" + - "\u1F61\x03\x02\x02\x02\u051B\u1F65\x03\x02\x02\x02\u051D\u1F6D\x03\x02" + - "\x02\x02\u051F\u1F73\x03\x02\x02\x02\u0521\u1F7A\x03\x02\x02\x02\u0523" + - "\u1F7E\x03\x02\x02\x02\u0525\u1F86\x03\x02\x02\x02\u0527\u1F8C\x03\x02" + - "\x02\x02\u0529\u1F92\x03\x02\x02\x02\u052B\u1F99\x03\x02\x02\x02\u052D" + - "\u1FA0\x03\x02\x02\x02\u052F\u1FA7\x03\x02\x02\x02\u0531\u1FAE\x03\x02" + - "\x02\x02\u0533\u1FB4\x03\x02\x02\x02\u0535\u1FBD\x03\x02\x02\x02\u0537" + - "\u1FC2\x03\x02\x02\x02\u0539\u1FC7\x03\x02\x02\x02\u053B\u1FCE\x03\x02" + - "\x02\x02\u053D\u1FD3\x03\x02\x02\x02\u053F\u1FD8\x03\x02\x02\x02\u0541" + - "\u1FDE\x03\x02\x02\x02\u0543\u1FE6\x03\x02\x02\x02\u0545\u1FEC\x03\x02" + - "\x02\x02\u0547\u1FF1\x03\x02\x02\x02\u0549\u1FF9\x03\x02\x02\x02\u054B" + - "\u2001\x03\x02\x02\x02\u054D\u2009\x03\x02\x02\x02\u054F\u2013\x03\x02" + - "\x02\x02\u0551\u2017\x03\x02\x02\x02\u0553\u2021\x03\x02\x02\x02\u0555" + - "\u2028\x03\x02\x02\x02\u0557\u202F\x03\x02\x02\x02\u0559\u203A\x03\x02" + - "\x02\x02\u055B\u2041\x03\x02\x02\x02\u055D\u2045\x03\x02\x02\x02\u055F" + - "\u2050\x03\x02\x02\x02\u0561\u2063\x03\x02\x02\x02\u0563\u206A\x03\x02" + - "\x02\x02\u0565\u2075\x03\x02\x02\x02\u0567\u207F\x03\x02\x02\x02\u0569" + - "\u208B\x03\x02\x02\x02\u056B\u2098\x03\x02\x02\x02\u056D\u20AB\x03\x02" + - "\x02\x02\u056F\u20BA\x03\x02\x02\x02\u0571\u20C3\x03\x02\x02\x02\u0573" + - "\u20CE\x03\x02\x02\x02\u0575\u20DE\x03\x02\x02\x02\u0577\u20E9\x03\x02" + - "\x02\x02\u0579\u20F6\x03\x02\x02\x02\u057B\u20FC\x03\x02\x02\x02\u057D" + - "\u2104\x03\x02\x02\x02\u057F\u2108\x03\x02\x02\x02\u0581\u210D\x03\x02" + - "\x02\x02\u0583\u2115\x03\x02\x02\x02\u0585\u211D\x03\x02\x02\x02\u0587" + - "\u2129\x03\x02\x02\x02\u0589\u2135\x03\x02\x02\x02\u058B\u213A\x03\x02" + - "\x02\x02\u058D\u2143\x03\x02\x02\x02\u058F\u2148\x03\x02\x02\x02\u0591" + - "\u214F\x03\x02\x02\x02\u0593\u2155\x03\x02\x02\x02\u0595\u215B\x03\x02" + - "\x02\x02\u0597\u216E\x03\x02\x02\x02\u0599\u2180\x03\x02\x02\x02\u059B" + - "\u2193\x03\x02\x02\x02\u059D\u21A3\x03\x02\x02\x02\u059F\u21B5\x03\x02" + - "\x02\x02\u05A1\u21BA\x03\x02\x02\x02\u05A3\u21C0\x03\x02\x02\x02\u05A5" + - "\u21CA\x03\x02\x02\x02\u05A7\u21CE\x03\x02\x02\x02\u05A9\u21D8\x03\x02" + - "\x02\x02\u05AB\u21E3\x03\x02\x02\x02\u05AD\u21EA\x03\x02\x02\x02\u05AF" + - "\u21F7\x03\x02\x02\x02\u05B1\u21FC\x03\x02\x02\x02\u05B3\u2204\x03\x02" + - "\x02\x02\u05B5\u220D\x03\x02\x02\x02\u05B7\u221E\x03\x02\x02\x02\u05B9" + - "\u2226\x03\x02\x02\x02\u05BB\u2232\x03\x02\x02\x02\u05BD\u223F\x03\x02" + - "\x02\x02\u05BF\u2249\x03\x02\x02\x02\u05C1\u2252\x03\x02\x02\x02\u05C3" + - "\u2259\x03\x02\x02\x02\u05C5\u2263\x03\x02\x02\x02\u05C7\u2271\x03\x02" + - "\x02\x02\u05C9\u2276\x03\x02\x02\x02\u05CB\u2281\x03\x02\x02\x02\u05CD" + - "\u2285\x03\x02\x02\x02\u05CF\u2289\x03\x02\x02\x02\u05D1\u228F\x03\x02" + - "\x02\x02\u05D3\u22AA\x03\x02\x02\x02\u05D5\u22C4\x03\x02\x02\x02\u05D7" + - "\u22D9\x03\x02\x02\x02\u05D9\u22E7\x03\x02\x02\x02\u05DB\u22EF\x03\x02" + - "\x02\x02\u05DD\u22F8\x03\x02\x02\x02\u05DF\u2304\x03\x02\x02\x02\u05E1" + - "\u230C\x03\x02\x02\x02\u05E3\u2317\x03\x02\x02\x02\u05E5\u2321\x03\x02" + - "\x02\x02\u05E7\u232B\x03\x02\x02\x02\u05E9\u2332\x03\x02\x02\x02\u05EB" + - "\u233A\x03\x02\x02\x02\u05ED\u2346\x03\x02\x02\x02\u05EF\u2352\x03\x02" + - "\x02\x02\u05F1\u235C\x03\x02\x02\x02\u05F3\u2365\x03\x02\x02\x02\u05F5" + - "\u2369\x03\x02\x02\x02\u05F7\u2370\x03\x02\x02\x02\u05F9\u2378\x03\x02" + - "\x02\x02\u05FB\u2381\x03\x02\x02\x02\u05FD\u238A\x03\x02\x02\x02\u05FF" + - "\u2391\x03\x02\x02\x02\u0601\u2395\x03\x02\x02\x02\u0603\u23A0\x03\x02" + - "\x02\x02\u0605\u23AD\x03\x02\x02\x02\u0607\u23BA\x03\x02\x02\x02\u0609" + - "\u23C0\x03\x02\x02\x02\u060B\u23CC\x03\x02\x02\x02\u060D\u23D2\x03\x02" + - "\x02\x02\u060F\u23D9\x03\x02\x02\x02\u0611\u23E4\x03\x02\x02\x02\u0613" + - "\u23F0\x03\x02\x02\x02\u0615\u23FA\x03\x02\x02\x02\u0617\u2408\x03\x02" + - "\x02\x02\u0619\u2419\x03\x02\x02\x02\u061B\u2429\x03\x02\x02\x02\u061D" + - "\u2444\x03\x02\x02\x02\u061F\u245E\x03\x02\x02\x02\u0621\u246F\x03\x02" + - "\x02\x02\u0623\u247F\x03\x02\x02\x02\u0625\u2489\x03\x02\x02\x02\u0627" + - "\u2496\x03\x02\x02\x02\u0629\u24A3\x03\x02\x02\x02\u062B\u24AF\x03\x02" + - "\x02\x02\u062D\u24BA\x03\x02\x02\x02\u062F\u24C3\x03\x02\x02\x02\u0631" + - "\u24CB\x03\x02\x02\x02\u0633\u24D4\x03\x02\x02\x02\u0635\u24E0\x03\x02" + - "\x02\x02\u0637\u24EE\x03\x02\x02\x02\u0639\u24F2\x03\x02\x02\x02\u063B" + - "\u24F9\x03\x02\x02\x02\u063D\u2504\x03\x02\x02\x02\u063F\u250F\x03\x02" + - "\x02\x02\u0641\u2519\x03\x02\x02\x02\u0643\u2523\x03\x02\x02\x02\u0645" + - "\u2529\x03\x02\x02\x02\u0647\u2537\x03\x02\x02\x02\u0649\u2542\x03\x02" + - "\x02\x02\u064B\u254B\x03\x02\x02\x02\u064D\u2553\x03\x02\x02\x02\u064F" + - "\u255A\x03\x02\x02\x02\u0651\u2563\x03\x02\x02\x02\u0653\u2570\x03\x02" + - "\x02\x02\u0655\u2578\x03\x02\x02\x02\u0657\u2587\x03\x02\x02\x02\u0659" + - "\u2596\x03\x02\x02\x02\u065B\u259E\x03\x02\x02\x02\u065D\u25AB\x03\x02" + - "\x02\x02\u065F\u25BA\x03\x02\x02\x02\u0661\u25C0\x03\x02\x02\x02\u0663" + - "\u25C6\x03\x02\x02\x02\u0665\u25CD\x03\x02\x02\x02\u0667\u25DA\x03\x02" + - "\x02\x02\u0669\u25E6\x03\x02\x02\x02\u066B\u25F9\x03\x02\x02\x02\u066D" + - "\u260B\x03\x02\x02\x02\u066F\u260E\x03\x02\x02\x02\u0671\u2618\x03\x02" + - "\x02\x02\u0673\u261F\x03\x02\x02\x02\u0675\u2623\x03\x02\x02\x02\u0677" + - "\u2629\x03\x02\x02\x02\u0679\u262E\x03\x02\x02\x02\u067B\u2634\x03\x02" + - "\x02\x02\u067D\u2639\x03\x02\x02\x02\u067F\u263F\x03\x02\x02\x02\u0681" + - "\u2648\x03\x02\x02\x02\u0683\u2651\x03\x02\x02\x02\u0685\u265A\x03\x02" + - "\x02\x02\u0687\u266A\x03\x02\x02\x02\u0689\u2676\x03\x02\x02\x02\u068B" + - "\u2682\x03\x02\x02\x02\u068D\u268B\x03\x02\x02\x02\u068F\u2699\x03\x02" + - "\x02\x02\u0691\u26A5\x03\x02\x02\x02\u0693\u26B0\x03\x02\x02\x02\u0695" + - "\u26BA\x03\x02\x02\x02\u0697\u26BE\x03\x02\x02\x02\u0699\u26CC\x03\x02" + - "\x02\x02\u069B\u26D9\x03\x02\x02\x02\u069D\u26E3\x03\x02\x02\x02\u069F" + - "\u26F2\x03\x02\x02\x02\u06A1\u2700\x03\x02\x02\x02\u06A3\u270E\x03\x02" + - "\x02\x02\u06A5\u271B\x03\x02\x02\x02\u06A7\u2733\x03\x02\x02\x02\u06A9" + - "\u274A\x03\x02\x02\x02\u06AB\u275D\x03\x02\x02\x02\u06AD\u276F\x03\x02" + - "\x02\x02\u06AF\u2784\x03\x02\x02\x02\u06B1\u2798\x03\x02\x02\x02\u06B3" + - "\u27A3\x03\x02\x02\x02\u06B5\u27AA\x03\x02\x02\x02\u06B7\u27B8\x03\x02" + - "\x02\x02\u06B9\u27C9\x03\x02\x02\x02\u06BB\u27D3\x03\x02\x02\x02\u06BD" + - "\u27D7\x03\x02\x02\x02\u06BF\u27E4\x03\x02\x02\x02\u06C1\u27E8\x03\x02" + - "\x02\x02\u06C3\u27F1\x03\x02\x02\x02\u06C5\u27FC\x03\x02\x02\x02\u06C7" + - "\u2808\x03\x02\x02\x02\u06C9\u280B\x03\x02\x02\x02\u06CB\u2819\x03\x02" + - "\x02\x02\u06CD\u2826\x03\x02\x02\x02\u06CF\u282D\x03\x02\x02\x02\u06D1" + - "\u283A\x03\x02\x02\x02\u06D3\u2846\x03\x02\x02\x02\u06D5\u2856\x03\x02" + - "\x02\x02\u06D7\u2865\x03\x02\x02\x02\u06D9\u2869\x03\x02\x02\x02\u06DB" + - "\u286F\x03\x02\x02\x02\u06DD\u2875\x03\x02\x02\x02\u06DF\u287D\x03\x02" + - "\x02\x02\u06E1\u2882\x03\x02\x02\x02\u06E3\u288F\x03\x02\x02\x02\u06E5" + - "\u289C\x03\x02\x02\x02\u06E7\u28A4\x03\x02\x02\x02\u06E9\u28AA\x03\x02" + - "\x02\x02\u06EB\u28B4\x03\x02\x02\x02\u06ED\u28B9\x03\x02\x02\x02\u06EF" + - "\u28BF\x03\x02\x02\x02\u06F1\u28CB\x03\x02\x02\x02\u06F3\u28D8\x03\x02" + - "\x02\x02\u06F5\u28DC\x03\x02\x02\x02\u06F7\u28E1\x03\x02\x02\x02\u06F9" + - "\u28E6\x03\x02\x02\x02\u06FB\u28F2\x03\x02\x02\x02\u06FD\u28F7\x03\x02" + - "\x02\x02\u06FF\u28FB\x03\x02\x02\x02\u0701\u2901\x03\x02\x02\x02\u0703" + - "\u2909\x03\x02\x02\x02\u0705\u2925\x03\x02\x02\x02\u0707\u292A\x03\x02" + - "\x02\x02\u0709\u292F\x03\x02\x02\x02\u070B\u293A\x03\x02\x02\x02\u070D" + - "\u2941\x03\x02\x02\x02\u070F\u294D\x03\x02\x02\x02\u0711\u2955\x03\x02" + - "\x02\x02\u0713\u2961\x03\x02\x02\x02\u0715\u296B\x03\x02\x02\x02\u0717" + - "\u2974\x03\x02\x02\x02\u0719\u297D\x03\x02\x02\x02\u071B\u2987\x03\x02" + - "\x02\x02\u071D\u2993\x03\x02\x02\x02\u071F\u299F\x03\x02\x02\x02\u0721" + - "\u29AA\x03\x02\x02\x02\u0723\u29B8\x03\x02\x02\x02\u0725\u29C5\x03\x02" + - "\x02\x02\u0727\u29D1\x03\x02\x02\x02\u0729\u29DD\x03\x02\x02\x02\u072B" + - "\u29E9\x03\x02\x02\x02\u072D\u29F5\x03\x02\x02\x02\u072F\u29FF\x03\x02" + - "\x02\x02\u0731\u2A0F\x03\x02\x02\x02\u0733\u2A23\x03\x02\x02\x02\u0735" + - "\u2A36\x03\x02\x02\x02\u0737\u2A49\x03\x02\x02\x02\u0739\u2A67\x03\x02" + - "\x02\x02\u073B\u2A84\x03\x02\x02\x02\u073D\u2A98\x03\x02\x02\x02\u073F" + - "\u2AAB\x03\x02\x02\x02\u0741\u2AB8\x03\x02\x02\x02\u0743\u2AC8\x03\x02" + - "\x02\x02\u0745\u2AD8\x03\x02\x02\x02\u0747\u2AE7\x03\x02\x02\x02\u0749" + - "\u2AF8\x03\x02\x02\x02\u074B\u2B08\x03\x02\x02\x02\u074D\u2B16\x03\x02" + - "\x02\x02\u074F\u2B22\x03\x02\x02\x02\u0751\u2B2D\x03\x02\x02\x02\u0753" + - "\u2B39\x03\x02\x02\x02\u0755\u2B49\x03\x02\x02\x02\u0757\u2B58\x03\x02" + - "\x02\x02\u0759\u2B6E\x03\x02\x02\x02\u075B\u2B83\x03\x02\x02\x02\u075D" + - "\u2B94\x03\x02\x02\x02\u075F\u2BA7\x03\x02\x02\x02\u0761\u2BBB\x03\x02" + - "\x02\x02\u0763\u2BC8\x03\x02\x02\x02\u0765\u2BD4\x03\x02\x02\x02\u0767" + - "\u2BE5\x03\x02\x02\x02\u0769\u2BF5\x03\x02\x02\x02\u076B\u2BFF\x03\x02" + - "\x02\x02\u076D\u2C0F\x03\x02\x02\x02\u076F\u2C1E\x03\x02\x02\x02\u0771" + - "\u2C31\x03\x02\x02\x02\u0773\u2C43\x03\x02\x02\x02\u0775\u2C4B\x03\x02" + - "\x02\x02\u0777\u2C59\x03\x02\x02\x02\u0779\u2C6A\x03\x02\x02\x02\u077B" + - "\u2C75\x03\x02\x02\x02\u077D\u2C7E\x03\x02\x02\x02\u077F\u2C88\x03\x02" + - "\x02\x02\u0781\u2C8D\x03\x02\x02\x02\u0783\u2C92\x03\x02\x02\x02\u0785" + - "\u2C9A\x03\x02\x02\x02\u0787\u2CAA\x03\x02\x02\x02\u0789\u2CB2\x03\x02" + - "\x02\x02\u078B\u2CBE\x03\x02\x02\x02\u078D\u2CC2\x03\x02\x02\x02\u078F" + - "\u2CCB\x03\x02\x02\x02\u0791\u2CD8\x03\x02\x02\x02\u0793\u2CE6\x03\x02" + - "\x02\x02\u0795\u2CF2\x03\x02\x02\x02\u0797\u2CFE\x03\x02\x02\x02\u0799" + - "\u2D06\x03\x02\x02\x02\u079B\u2D10\x03\x02\x02\x02\u079D\u2D18\x03\x02" + - "\x02\x02\u079F\u2D23\x03\x02\x02\x02\u07A1\u2D29\x03\x02\x02\x02\u07A3" + - "\u2D34\x03\x02\x02\x02\u07A5\u2D48\x03\x02\x02\x02\u07A7\u2D4E\x03\x02" + - "\x02\x02\u07A9\u2D5D\x03\x02\x02\x02\u07AB\u2D67\x03\x02\x02\x02\u07AD" + - "\u2D6D\x03\x02\x02\x02\u07AF\u2D72\x03\x02\x02\x02\u07B1\u2D7D\x03\x02" + - "\x02\x02\u07B3\u2D98\x03\x02\x02\x02\u07B5\u2DA0\x03\x02\x02\x02\u07B7" + - "\u2DC2\x03\x02\x02\x02\u07B9\u2DCA\x03\x02\x02\x02\u07BB\u2DD5\x03\x02" + - "\x02\x02\u07BD\u2DE3\x03\x02\x02\x02\u07BF\u2DEA\x03\x02\x02\x02\u07C1" + - "\u2DF3\x03\x02\x02\x02\u07C3\u2DF5\x03\x02\x02\x02\u07C5\u2DF7\x03\x02" + - "\x02\x02\u07C7\u2DFA\x03\x02\x02\x02\u07C9\u2DFD\x03\x02\x02\x02\u07CB" + - "\u2E00\x03\x02\x02\x02\u07CD\u2E03\x03\x02\x02\x02\u07CF\u2E06\x03\x02" + - "\x02\x02\u07D1\u2E09\x03\x02\x02\x02\u07D3\u2E0C\x03\x02\x02\x02\u07D5" + - "\u2E0F\x03\x02\x02\x02\u07D7\u2E12\x03\x02\x02\x02\u07D9\u2E14\x03\x02" + - "\x02\x02\u07DB\u2E16\x03\x02\x02\x02\u07DD\u2E18\x03\x02\x02\x02\u07DF" + - "\u2E1A\x03\x02\x02\x02\u07E1\u2E1D\x03\x02\x02\x02\u07E3\u2E1F\x03\x02" + - "\x02\x02\u07E5\u2E23\x03\x02\x02\x02\u07E7\u2E27\x03\x02\x02\x02\u07E9" + - "\u2E29\x03\x02\x02\x02\u07EB\u2E2B\x03\x02\x02\x02\u07ED\u2E2D\x03\x02" + - "\x02\x02\u07EF\u2E2F\x03"; - private static readonly _serializedATNSegment8: string = - "\x02\x02\x02\u07F1\u2E31\x03\x02\x02\x02\u07F3\u2E33\x03\x02\x02\x02\u07F5" + - "\u2E35\x03\x02\x02\x02\u07F7\u2E37\x03\x02\x02\x02\u07F9\u2E39\x03\x02" + - "\x02\x02\u07FB\u2E3B\x03\x02\x02\x02\u07FD\u2E3D\x03\x02\x02\x02\u07FF" + - "\u2E3F\x03\x02\x02\x02\u0801\u2E41\x03\x02\x02\x02\u0803\u2E43\x03\x02" + - "\x02\x02\u0805\u2E45\x03\x02\x02\x02\u0807\u2E47\x03\x02\x02\x02\u0809" + - "\u2E49\x03\x02\x02\x02\u080B\u2E4B\x03\x02\x02\x02\u080D\u2E4D\x03\x02" + - "\x02\x02\u080F\u2E4F\x03\x02\x02\x02\u0811\u2E54\x03\x02\x02\x02\u0813" + - "\u2E56\x03\x02\x02\x02\u0815\u2E5B\x03\x02\x02\x02\u0817\u2E61\x03\x02" + - "\x02\x02\u0819\u2E67\x03\x02\x02\x02\u081B\u2E6A\x03\x02\x02\x02\u081D" + - "\u2E81\x03\x02\x02\x02\u081F\u2EAE\x03\x02\x02\x02\u0821\u2EB0\x03\x02" + - "\x02\x02\u0823\u2EB3\x03\x02\x02\x02\u0825\u2EB5\x03\x02\x02\x02\u0827" + - "\u2EB8\x03\x02\x02\x02\u0829\u2EBB\x03\x02\x02\x02\u082B\u2EBD\x03\x02" + - "\x02\x02\u082D\u2EC9\x03\x02\x02\x02\u082F\u2ED2\x03\x02\x02\x02\u0831" + - "\u2EDD\x03\x02\x02\x02\u0833\u2F10\x03\x02\x02\x02\u0835\u2F12\x03\x02" + - "\x02\x02\u0837\u2F1E\x03\x02\x02\x02\u0839\u2F2C\x03\x02\x02\x02\u083B" + - "\u2F39\x03\x02\x02\x02\u083D\u2F46\x03\x02\x02\x02\u083F\u2F53\x03\x02" + - "\x02\x02\u0841\u2F55\x03\x02\x02\x02\u0843\u2F57\x03\x02\x02\x02\u0845" + - "\u2F60\x03\x02\x02\x02\u0847\u0849\t\x02\x02\x02\u0848\u0847\x03\x02\x02" + - "\x02\u0849\u084A\x03\x02\x02\x02\u084A\u0848\x03\x02\x02\x02\u084A\u084B" + - "\x03\x02\x02\x02\u084B\u084C\x03\x02\x02\x02\u084C\u084D\b\x02\x02\x02" + - "\u084D\x04\x03\x02\x02\x02\u084E\u084F\x071\x02\x02\u084F\u0850\x07,\x02" + - "\x02\u0850\u0851\x07#\x02\x02\u0851\u0853\x03\x02\x02\x02\u0852\u0854" + - "\v\x02\x02\x02\u0853\u0852\x03\x02\x02\x02\u0854\u0855\x03\x02\x02\x02" + - "\u0855\u0856\x03\x02\x02\x02\u0855\u0853\x03\x02\x02\x02\u0856\u0857\x03" + - "\x02\x02\x02\u0857\u0858\x07,\x02\x02\u0858\u0859\x071\x02\x02\u0859\u085A" + - "\x03\x02\x02\x02\u085A\u085B\b\x03\x03\x02\u085B\x06\x03\x02\x02\x02\u085C" + - "\u085D\x071\x02\x02\u085D\u085E\x07,\x02\x02\u085E\u0862\x03\x02\x02\x02" + - "\u085F\u0861\v\x02\x02\x02\u0860\u085F\x03\x02\x02\x02\u0861\u0864\x03" + - "\x02\x02\x02\u0862\u0863\x03\x02\x02\x02\u0862\u0860\x03\x02\x02\x02\u0863" + - "\u0865\x03\x02\x02\x02\u0864\u0862\x03\x02\x02\x02\u0865\u0866\x07,\x02" + - "\x02\u0866\u0867\x071\x02\x02\u0867\u0868\x03\x02\x02\x02\u0868\u0869" + - "\b\x04\x02\x02\u0869\b\x03\x02\x02\x02\u086A\u086B\x07/\x02\x02\u086B" + - "\u086E\x07/\x02\x02\u086C\u086E\x07%\x02\x02\u086D\u086A\x03\x02\x02\x02" + - "\u086D\u086C\x03\x02\x02\x02\u086E\u0872\x03\x02\x02\x02\u086F\u0871\n" + - "\x03\x02\x02\u0870\u086F\x03\x02\x02\x02\u0871\u0874\x03\x02\x02\x02\u0872" + - "\u0870\x03\x02\x02\x02\u0872\u0873\x03\x02\x02\x02\u0873\u087A\x03\x02" + - "\x02\x02\u0874\u0872\x03\x02\x02\x02\u0875\u0877\x07\x0F\x02\x02\u0876" + - "\u0875\x03\x02\x02\x02\u0876\u0877\x03\x02\x02\x02\u0877\u0878\x03\x02" + - "\x02\x02\u0878\u087B\x07\f\x02\x02\u0879\u087B\x07\x02\x02\x03\u087A\u0876" + - "\x03\x02\x02\x02\u087A\u0879\x03\x02\x02\x02\u087B\u0887\x03\x02\x02\x02" + - "\u087C\u087D\x07/\x02\x02\u087D\u087E\x07/\x02\x02\u087E\u0884\x03\x02" + - "\x02\x02\u087F\u0881\x07\x0F\x02\x02\u0880\u087F\x03\x02\x02\x02\u0880" + - "\u0881\x03\x02\x02\x02\u0881\u0882\x03\x02\x02\x02\u0882\u0885\x07\f\x02" + - "\x02\u0883\u0885\x07\x02\x02\x03\u0884\u0880\x03\x02\x02\x02\u0884\u0883" + - "\x03\x02\x02\x02\u0885\u0887\x03\x02\x02\x02\u0886\u086D\x03\x02\x02\x02" + - "\u0886\u087C\x03\x02\x02\x02\u0887\u0888\x03\x02\x02\x02\u0888\u0889\b" + - "\x05\x02\x02\u0889\n\x03\x02\x02\x02\u088A\u088B\x07C\x02\x02\u088B\u088C" + - "\x07F\x02\x02\u088C\u088D\x07F\x02\x02\u088D\f\x03\x02\x02\x02\u088E\u088F" + - "\x07C\x02\x02\u088F\u0890\x07N\x02\x02\u0890\u0891\x07N\x02\x02\u0891" + - "\x0E\x03\x02\x02\x02\u0892\u0893\x07C\x02\x02\u0893\u0894\x07N\x02\x02" + - "\u0894\u0895\x07V\x02\x02\u0895\u0896\x07G\x02\x02\u0896\u0897\x07T\x02" + - "\x02\u0897\x10\x03\x02\x02\x02\u0898\u0899\x07C\x02\x02\u0899\u089A\x07" + - "N\x02\x02\u089A\u089B\x07Y\x02\x02\u089B\u089C\x07C\x02\x02\u089C\u089D" + - "\x07[\x02\x02\u089D\u089E\x07U\x02\x02\u089E\x12\x03\x02\x02\x02\u089F" + - "\u08A0\x07C\x02\x02\u08A0\u08A1\x07P\x02\x02\u08A1\u08A2\x07C\x02\x02" + - "\u08A2\u08A3\x07N\x02\x02\u08A3\u08A4\x07[\x02\x02\u08A4\u08A5\x07\\\x02" + - "\x02\u08A5\u08A6\x07G\x02\x02\u08A6\x14\x03\x02\x02\x02\u08A7\u08A8\x07" + - "C\x02\x02\u08A8\u08A9\x07P\x02\x02\u08A9\u08AA\x07F\x02\x02\u08AA\x16" + - "\x03\x02\x02\x02\u08AB\u08AC\x07C\x02\x02\u08AC\u08AD\x07U\x02\x02\u08AD" + - "\x18\x03\x02\x02\x02\u08AE\u08AF\x07C\x02\x02\u08AF\u08B0\x07U\x02\x02" + - "\u08B0\u08B1\x07E\x02\x02\u08B1\x1A\x03\x02\x02\x02\u08B2\u08B3\x07D\x02" + - "\x02\u08B3\u08B4\x07G\x02\x02\u08B4\u08B5\x07H\x02\x02\u08B5\u08B6\x07" + - "Q\x02\x02\u08B6\u08B7\x07T\x02\x02\u08B7\u08B8\x07G\x02\x02\u08B8\x1C" + - "\x03\x02\x02\x02\u08B9\u08BA\x07D\x02\x02\u08BA\u08BB\x07G\x02\x02\u08BB" + - "\u08BC\x07V\x02\x02\u08BC\u08BD\x07Y\x02\x02\u08BD\u08BE\x07G\x02\x02" + - "\u08BE\u08BF\x07G\x02\x02\u08BF\u08C0\x07P\x02\x02\u08C0\x1E\x03\x02\x02" + - "\x02\u08C1\u08C2\x07D\x02\x02\u08C2\u08C3\x07Q\x02\x02\u08C3\u08C4\x07" + - "V\x02\x02\u08C4\u08C5\x07J\x02\x02\u08C5 \x03\x02\x02\x02\u08C6\u08C7" + - "\x07D\x02\x02\u08C7\u08C8\x07[\x02\x02\u08C8\"\x03\x02\x02\x02\u08C9\u08CA" + - "\x07E\x02\x02\u08CA\u08CB\x07C\x02\x02\u08CB\u08CC\x07N\x02\x02\u08CC" + - "\u08CD\x07N\x02\x02\u08CD$\x03\x02\x02\x02\u08CE\u08CF\x07E\x02\x02\u08CF" + - "\u08D0\x07C\x02\x02\u08D0\u08D1\x07U\x02\x02\u08D1\u08D2\x07E\x02\x02" + - "\u08D2\u08D3\x07C\x02\x02\u08D3\u08D4\x07F\x02\x02\u08D4\u08D5\x07G\x02" + - "\x02\u08D5&\x03\x02\x02\x02\u08D6\u08D7\x07E\x02\x02\u08D7\u08D8\x07C" + - "\x02\x02\u08D8\u08D9\x07U\x02\x02\u08D9\u08DA\x07G\x02\x02\u08DA(\x03" + - "\x02\x02\x02\u08DB\u08DC\x07E\x02\x02\u08DC\u08DD\x07C\x02\x02\u08DD\u08DE" + - "\x07U\x02\x02\u08DE\u08DF\x07V\x02\x02\u08DF*\x03\x02\x02\x02\u08E0\u08E1" + - "\x07E\x02\x02\u08E1\u08E2\x07J\x02\x02\u08E2\u08E3\x07C\x02\x02\u08E3" + - "\u08E4\x07P\x02\x02\u08E4\u08E5\x07I\x02\x02\u08E5\u08E6\x07G\x02\x02" + - "\u08E6,\x03\x02\x02\x02\u08E7\u08E8\x07E\x02\x02\u08E8\u08E9\x07J\x02" + - "\x02\u08E9\u08EA\x07C\x02\x02\u08EA\u08EB\x07T\x02\x02\u08EB\u08EC\x07" + - "C\x02\x02\u08EC\u08ED\x07E\x02\x02\u08ED\u08EE\x07V\x02\x02\u08EE\u08EF" + - "\x07G\x02\x02\u08EF\u08F0\x07T\x02\x02\u08F0.\x03\x02\x02\x02\u08F1\u08F2" + - "\x07E\x02\x02\u08F2\u08F3\x07J\x02\x02\u08F3\u08F4\x07G\x02\x02\u08F4" + - "\u08F5\x07E\x02\x02\u08F5\u08F6\x07M\x02\x02\u08F60\x03\x02\x02\x02\u08F7" + - "\u08F8\x07E\x02\x02\u08F8\u08F9\x07Q\x02\x02\u08F9\u08FA\x07N\x02\x02" + - "\u08FA\u08FB\x07N\x02\x02\u08FB\u08FC\x07C\x02\x02\u08FC\u08FD\x07V\x02" + - "\x02\u08FD\u08FE\x07G\x02\x02\u08FE2\x03\x02\x02\x02\u08FF\u0900\x07E" + - "\x02\x02\u0900\u0901\x07Q\x02\x02\u0901\u0902\x07N\x02\x02\u0902\u0903" + - "\x07W\x02\x02\u0903\u0904\x07O\x02\x02\u0904\u0905\x07P\x02\x02\u0905" + - "4\x03\x02\x02\x02\u0906\u0907\x07E\x02\x02\u0907\u0908\x07Q\x02\x02\u0908" + - "\u0909\x07P\x02\x02\u0909\u090A\x07F\x02\x02\u090A\u090B\x07K\x02\x02" + - "\u090B\u090C\x07V\x02\x02\u090C\u090D\x07K\x02\x02\u090D\u090E\x07Q\x02" + - "\x02\u090E\u090F\x07P\x02\x02\u090F6\x03\x02\x02\x02\u0910\u0911\x07E" + - "\x02\x02\u0911\u0912\x07Q\x02\x02\u0912\u0913\x07P\x02\x02\u0913\u0914" + - "\x07U\x02\x02\u0914\u0915\x07V\x02\x02\u0915\u0916\x07T\x02\x02\u0916" + - "\u0917\x07C\x02\x02\u0917\u0918\x07K\x02\x02\u0918\u0919\x07P\x02\x02" + - "\u0919\u091A\x07V\x02\x02\u091A8\x03\x02\x02\x02\u091B\u091C\x07E\x02" + - "\x02\u091C\u091D\x07Q\x02\x02\u091D\u091E\x07P\x02\x02\u091E\u091F\x07" + - "V\x02\x02\u091F\u0920\x07K\x02\x02\u0920\u0921\x07P\x02\x02\u0921\u0922" + - "\x07W\x02\x02\u0922\u0923\x07G\x02\x02\u0923:\x03\x02\x02\x02\u0924\u0925" + - "\x07E\x02\x02\u0925\u0926\x07Q\x02\x02\u0926\u0927\x07P\x02\x02\u0927" + - "\u0928\x07X\x02\x02\u0928\u0929\x07G\x02\x02\u0929\u092A\x07T\x02\x02" + - "\u092A\u092B\x07V\x02\x02\u092B<\x03\x02\x02\x02\u092C\u092D\x07E\x02" + - "\x02\u092D\u092E\x07T\x02\x02\u092E\u092F\x07G\x02\x02\u092F\u0930\x07" + - "C\x02\x02\u0930\u0931\x07V\x02\x02\u0931\u0932\x07G\x02\x02\u0932>\x03" + - "\x02\x02\x02\u0933\u0934\x07E\x02\x02\u0934\u0935\x07T\x02\x02\u0935\u0936" + - "\x07Q\x02\x02\u0936\u0937\x07U\x02\x02\u0937\u0938\x07U\x02\x02\u0938" + - "@\x03\x02\x02\x02\u0939\u093A\x07E\x02\x02\u093A\u093B\x07W\x02\x02\u093B" + - "\u093C\x07T\x02\x02\u093C\u093D\x07T\x02\x02\u093D\u093E\x07G\x02\x02" + - "\u093E\u093F\x07P\x02\x02\u093F\u0940\x07V\x02\x02\u0940B\x03\x02\x02" + - "\x02\u0941\u0942\x07E\x02\x02\u0942\u0943\x07W\x02\x02\u0943\u0944\x07" + - "T\x02\x02\u0944\u0945\x07T\x02\x02\u0945\u0946\x07G\x02\x02\u0946\u0947" + - "\x07P\x02\x02\u0947\u0948\x07V\x02\x02\u0948\u0949\x07a\x02\x02\u0949" + - "\u094A\x07W\x02\x02\u094A\u094B\x07U\x02\x02\u094B\u094C\x07G\x02\x02" + - "\u094C\u094D\x07T\x02\x02\u094DD\x03\x02\x02\x02\u094E\u094F\x07E\x02" + - "\x02\u094F\u0950\x07W\x02\x02\u0950\u0951\x07T\x02\x02\u0951\u0952\x07" + - "U\x02\x02\u0952\u0953\x07Q\x02\x02\u0953\u0954\x07T\x02\x02\u0954F\x03" + - "\x02\x02\x02\u0955\u0956\x07F\x02\x02\u0956\u0957\x07C\x02\x02\u0957\u0958" + - "\x07V\x02\x02\u0958\u0959\x07C\x02\x02\u0959\u095A\x07D\x02\x02\u095A" + - "\u095B\x07C\x02\x02\u095B\u095C\x07U\x02\x02\u095C\u095D\x07G\x02\x02" + - "\u095DH\x03\x02\x02\x02\u095E\u095F\x07F\x02\x02\u095F\u0960\x07C\x02" + - "\x02\u0960\u0961\x07V\x02\x02\u0961\u0962\x07C\x02\x02\u0962\u0963\x07" + - "D\x02\x02\u0963\u0964\x07C\x02\x02\u0964\u0965\x07U\x02\x02\u0965\u0966" + - "\x07G\x02\x02\u0966\u0967\x07U\x02\x02\u0967J\x03\x02\x02\x02\u0968\u0969" + - "\x07F\x02\x02\u0969\u096A\x07G\x02\x02\u096A\u096B\x07E\x02\x02\u096B" + - "\u096C\x07N\x02\x02\u096C\u096D\x07C\x02\x02\u096D\u096E\x07T\x02\x02" + - "\u096E\u096F\x07G\x02\x02\u096FL\x03\x02\x02\x02\u0970\u0971\x07F\x02" + - "\x02\u0971\u0972\x07G\x02\x02\u0972\u0973\x07H\x02\x02\u0973\u0974\x07" + - "C\x02\x02\u0974\u0975\x07W\x02\x02\u0975\u0976\x07N\x02\x02\u0976\u0977" + - "\x07V\x02\x02\u0977N\x03\x02\x02\x02\u0978\u0979\x07F\x02\x02\u0979\u097A" + - "\x07G\x02\x02\u097A\u097B\x07N\x02\x02\u097B\u097C\x07C\x02\x02\u097C" + - "\u097D\x07[\x02\x02\u097D\u097E\x07G\x02\x02\u097E\u097F\x07F\x02\x02" + - "\u097FP\x03\x02\x02\x02\u0980\u0981\x07F\x02\x02\u0981\u0982\x07G\x02" + - "\x02\u0982\u0983\x07N\x02\x02\u0983\u0984\x07G\x02\x02\u0984\u0985\x07" + - "V\x02\x02\u0985\u0986\x07G\x02\x02\u0986R\x03\x02\x02\x02\u0987\u0988" + - "\x07F\x02\x02\u0988\u0989\x07G\x02\x02\u0989\u098A\x07U\x02\x02\u098A" + - "\u098B\x07E\x02\x02\u098BT\x03\x02\x02\x02\u098C\u098D\x07F\x02\x02\u098D" + - "\u098E\x07G\x02\x02\u098E\u098F\x07U\x02\x02\u098F\u0990\x07E\x02\x02" + - "\u0990\u0991\x07T\x02\x02\u0991\u0992\x07K\x02\x02\u0992\u0993\x07D\x02" + - "\x02\u0993\u0994\x07G\x02\x02\u0994V\x03\x02\x02\x02\u0995\u0996\x07F" + - "\x02\x02\u0996\u0997\x07G\x02\x02\u0997\u0998\x07V\x02\x02\u0998\u0999" + - "\x07G\x02\x02\u0999\u099A\x07T\x02\x02\u099A\u099B\x07O\x02\x02\u099B" + - "\u099C\x07K\x02\x02\u099C\u099D\x07P\x02\x02\u099D\u099E\x07K\x02\x02" + - "\u099E\u099F\x07U\x02\x02\u099F\u09A0\x07V\x02\x02\u09A0\u09A1\x07K\x02" + - "\x02\u09A1\u09A2\x07E\x02\x02\u09A2X\x03\x02\x02\x02\u09A3\u09A4\x07F" + - "\x02\x02\u09A4\u09A5\x07K\x02\x02\u09A5\u09A6\x07C\x02\x02\u09A6\u09A7" + - "\x07I\x02\x02\u09A7\u09A8\x07P\x02\x02\u09A8\u09A9\x07Q\x02\x02\u09A9" + - "\u09AA\x07U\x02\x02\u09AA\u09AB\x07V\x02\x02\u09AB\u09AC\x07K\x02\x02" + - "\u09AC\u09AD\x07E\x02\x02\u09AD\u09AE\x07U\x02\x02\u09AEZ\x03\x02\x02" + - "\x02\u09AF\u09B0\x07F\x02\x02\u09B0\u09B1\x07K\x02\x02\u09B1\u09B2\x07" + - "U\x02\x02\u09B2\u09B3\x07V\x02\x02\u09B3\u09B4\x07K\x02\x02\u09B4\u09B5" + - "\x07P\x02\x02\u09B5\u09B6\x07E\x02\x02\u09B6\u09B7\x07V\x02\x02\u09B7" + - "\\\x03\x02\x02\x02\u09B8\u09B9\x07F\x02\x02\u09B9\u09BA\x07K\x02\x02\u09BA" + - "\u09BB\x07U\x02\x02\u09BB\u09BC\x07V\x02\x02\u09BC\u09BD\x07K\x02\x02" + - "\u09BD\u09BE\x07P\x02\x02\u09BE\u09BF\x07E\x02\x02\u09BF\u09C0\x07V\x02" + - "\x02\u09C0\u09C1\x07T\x02\x02\u09C1\u09C2\x07Q\x02\x02\u09C2\u09C3\x07" + - "Y\x02\x02\u09C3^\x03\x02\x02\x02\u09C4\u09C5\x07F\x02\x02\u09C5\u09C6" + - "\x07T\x02\x02\u09C6\u09C7\x07Q\x02\x02\u09C7\u09C8\x07R\x02\x02\u09C8" + - "`\x03\x02\x02\x02\u09C9\u09CA\x07G\x02\x02\u09CA\u09CB\x07C\x02\x02\u09CB" + - "\u09CC\x07E\x02\x02\u09CC\u09CD\x07J\x02\x02\u09CDb\x03\x02\x02\x02\u09CE" + - "\u09CF\x07G\x02\x02\u09CF\u09D0\x07N\x02\x02\u09D0\u09D1\x07U\x02\x02" + - "\u09D1\u09D2\x07G\x02\x02\u09D2d\x03\x02\x02\x02\u09D3\u09D4\x07G\x02" + - "\x02\u09D4\u09D5\x07N\x02\x02\u09D5\u09D6\x07U\x02\x02\u09D6\u09D7\x07" + - "G\x02\x02\u09D7\u09D8\x07K\x02\x02\u09D8\u09D9\x07H\x02\x02\u09D9f\x03" + - "\x02\x02\x02\u09DA\u09DB\x07G\x02\x02\u09DB\u09DC\x07P\x02\x02\u09DC\u09DD" + - "\x07E\x02\x02\u09DD\u09DE\x07N\x02\x02\u09DE\u09DF\x07Q\x02\x02\u09DF" + - "\u09E0\x07U\x02\x02\u09E0\u09E1\x07G\x02\x02\u09E1\u09E2\x07F\x02\x02" + - "\u09E2h\x03\x02\x02\x02\u09E3\u09E4\x07G\x02\x02\u09E4\u09E5\x07U\x02" + - "\x02\u09E5\u09E6\x07E\x02\x02\u09E6\u09E7\x07C\x02\x02\u09E7\u09E8\x07" + - "R\x02\x02\u09E8\u09E9\x07G\x02\x02\u09E9\u09EA\x07F\x02\x02\u09EAj\x03" + - "\x02\x02\x02\u09EB\u09EC\x07G\x02\x02\u09EC\u09ED\x07Z\x02\x02\u09ED\u09EE" + - "\x07K\x02\x02\u09EE\u09EF\x07U\x02\x02\u09EF\u09F0\x07V\x02\x02\u09F0" + - "\u09F1\x07U\x02\x02\u09F1l\x03\x02\x02\x02\u09F2\u09F3\x07G\x02\x02\u09F3" + - "\u09F4\x07Z\x02\x02\u09F4\u09F5\x07K\x02\x02\u09F5\u09F6\x07V\x02\x02" + - "\u09F6n\x03\x02\x02\x02\u09F7\u09F8\x07G\x02\x02\u09F8\u09F9\x07Z\x02" + - "\x02\u09F9\u09FA\x07R\x02\x02\u09FA\u09FB\x07N\x02\x02\u09FB\u09FC\x07" + - "C\x02\x02\u09FC\u09FD\x07K\x02\x02\u09FD\u09FE\x07P\x02\x02\u09FEp\x03" + - "\x02\x02\x02\u09FF\u0A00\x07H\x02\x02\u0A00\u0A01\x07C\x02\x02\u0A01\u0A02" + - "\x07N\x02\x02\u0A02\u0A03\x07U\x02\x02\u0A03\u0A04\x07G\x02\x02\u0A04" + - "r\x03\x02\x02\x02\u0A05\u0A06\x07H\x02\x02\u0A06\u0A07\x07G\x02\x02\u0A07" + - "\u0A08\x07V\x02\x02\u0A08\u0A09\x07E\x02\x02\u0A09\u0A0A\x07J\x02\x02" + - "\u0A0At\x03\x02\x02\x02\u0A0B\u0A0C\x07H\x02\x02\u0A0C\u0A0D\x07Q\x02" + - "\x02\u0A0D\u0A0E\x07T\x02\x02\u0A0Ev\x03\x02\x02\x02\u0A0F\u0A10\x07H" + - "\x02\x02\u0A10\u0A11\x07Q\x02\x02\u0A11\u0A12\x07T\x02\x02\u0A12\u0A13" + - "\x07E\x02\x02\u0A13\u0A14\x07G\x02\x02\u0A14x\x03\x02\x02\x02\u0A15\u0A16" + - "\x07H\x02\x02\u0A16\u0A17\x07Q\x02\x02\u0A17\u0A18\x07T\x02\x02\u0A18" + - "\u0A19\x07G\x02\x02\u0A19\u0A1A\x07K\x02\x02\u0A1A\u0A1B\x07I\x02\x02" + - "\u0A1B\u0A1C\x07P\x02\x02\u0A1Cz\x03\x02\x02\x02\u0A1D\u0A1E\x07H\x02" + - "\x02\u0A1E\u0A1F\x07T\x02\x02\u0A1F\u0A20\x07Q\x02\x02\u0A20\u0A21\x07" + - "O\x02\x02\u0A21|\x03\x02\x02\x02\u0A22\u0A23\x07H\x02\x02\u0A23\u0A24" + - "\x07W\x02\x02\u0A24\u0A25\x07N\x02\x02\u0A25\u0A26\x07N\x02\x02\u0A26" + - "\u0A27\x07V\x02\x02\u0A27\u0A28\x07G\x02\x02\u0A28\u0A29\x07Z\x02\x02" + - "\u0A29\u0A2A\x07V\x02\x02\u0A2A~\x03\x02\x02\x02\u0A2B\u0A2C\x07I\x02" + - "\x02\u0A2C\u0A2D\x07G\x02\x02\u0A2D\u0A2E\x07P\x02\x02\u0A2E\u0A2F\x07" + - "G\x02\x02\u0A2F\u0A30\x07T\x02\x02\u0A30\u0A31\x07C\x02\x02\u0A31\u0A32" + - "\x07V\x02\x02\u0A32\u0A33\x07G\x02\x02\u0A33\u0A34\x07F\x02\x02\u0A34" + - "\x80\x03\x02\x02\x02\u0A35\u0A36\x07I\x02\x02\u0A36\u0A37\x07G\x02\x02" + - "\u0A37\u0A38\x07V\x02\x02\u0A38\x82\x03\x02\x02\x02\u0A39\u0A3A\x07I\x02" + - "\x02\u0A3A\u0A3B\x07T\x02\x02\u0A3B\u0A3C\x07C\x02\x02\u0A3C\u0A3D\x07" + - "P\x02\x02\u0A3D\u0A3E\x07V\x02\x02\u0A3E\x84\x03\x02\x02\x02\u0A3F\u0A40" + - "\x07I\x02\x02\u0A40\u0A41\x07T\x02\x02\u0A41\u0A42\x07Q\x02\x02\u0A42" + - "\u0A43\x07W\x02\x02\u0A43\u0A44\x07R\x02\x02\u0A44\x86\x03\x02\x02\x02" + - "\u0A45\u0A46\x07J\x02\x02\u0A46\u0A47\x07C\x02\x02\u0A47\u0A48\x07X\x02" + - "\x02\u0A48\u0A49\x07K\x02\x02\u0A49\u0A4A\x07P\x02\x02\u0A4A\u0A4B\x07" + - "I\x02\x02\u0A4B\x88\x03\x02\x02\x02\u0A4C\u0A4D\x07J\x02\x02\u0A4D\u0A4E" + - "\x07K\x02\x02\u0A4E\u0A4F\x07I\x02\x02\u0A4F\u0A50\x07J\x02\x02\u0A50" + - "\u0A51\x07a\x02\x02\u0A51\u0A52\x07R\x02\x02\u0A52\u0A53\x07T\x02\x02" + - "\u0A53\u0A54\x07K\x02\x02\u0A54\u0A55\x07Q\x02\x02\u0A55\u0A56\x07T\x02" + - "\x02\u0A56\u0A57\x07K\x02\x02\u0A57\u0A58\x07V\x02\x02\u0A58\u0A59\x07" + - "[\x02\x02\u0A59\x8A\x03\x02\x02\x02\u0A5A\u0A5B\x07K\x02\x02\u0A5B\u0A5C" + - "\x07H\x02\x02\u0A5C\x8C\x03\x02\x02\x02\u0A5D\u0A5E\x07K\x02\x02\u0A5E" + - "\u0A5F\x07I\x02\x02\u0A5F\u0A60\x07P\x02\x02\u0A60\u0A61\x07Q\x02\x02" + - "\u0A61\u0A62\x07T\x02\x02\u0A62\u0A63\x07G\x02\x02\u0A63\x8E\x03\x02\x02" + - "\x02\u0A64\u0A65\x07K\x02\x02\u0A65\u0A66\x07P\x02\x02\u0A66\x90\x03\x02" + - "\x02\x02\u0A67\u0A68\x07K\x02\x02\u0A68\u0A69\x07P\x02\x02\u0A69\u0A6A" + - "\x07F\x02\x02\u0A6A\u0A6B\x07G\x02\x02\u0A6B\u0A6C\x07Z\x02\x02\u0A6C" + - "\x92\x03\x02\x02\x02\u0A6D\u0A6E\x07K\x02\x02\u0A6E\u0A6F\x07P\x02\x02" + - "\u0A6F\u0A70\x07H\x02\x02\u0A70\u0A71\x07K\x02\x02\u0A71\u0A72\x07N\x02" + - "\x02\u0A72\u0A73\x07G\x02\x02\u0A73\x94\x03\x02\x02\x02\u0A74\u0A75\x07" + - "K\x02\x02\u0A75\u0A76\x07P\x02\x02\u0A76\u0A77\x07P\x02\x02\u0A77\u0A78" + - "\x07G\x02\x02\u0A78\u0A79\x07T\x02\x02\u0A79\x96\x03\x02\x02\x02\u0A7A" + - "\u0A7B\x07K\x02\x02\u0A7B\u0A7C\x07P\x02\x02\u0A7C\u0A7D\x07Q\x02\x02" + - "\u0A7D\u0A7E\x07W\x02\x02\u0A7E\u0A7F\x07V\x02\x02\u0A7F\x98\x03\x02\x02" + - "\x02\u0A80\u0A81\x07K\x02\x02\u0A81\u0A82\x07P\x02\x02\u0A82\u0A83\x07" + - "U\x02\x02\u0A83\u0A84\x07G\x02\x02\u0A84\u0A85\x07T\x02\x02\u0A85\u0A86" + - "\x07V\x02\x02\u0A86\x9A\x03\x02\x02\x02\u0A87\u0A88\x07K\x02\x02\u0A88" + - "\u0A89\x07P\x02\x02\u0A89\u0A8A\x07V\x02\x02\u0A8A\u0A8B\x07G\x02\x02" + - "\u0A8B\u0A8C\x07T\x02\x02\u0A8C\u0A8D\x07X\x02\x02\u0A8D\u0A8E\x07C\x02" + - "\x02\u0A8E\u0A8F\x07N\x02\x02\u0A8F\x9C\x03\x02\x02\x02\u0A90\u0A91\x07" + - "K\x02\x02\u0A91\u0A92\x07P\x02\x02\u0A92\u0A93\x07V\x02\x02\u0A93\u0A94" + - "\x07Q\x02\x02\u0A94\x9E\x03\x02\x02\x02\u0A95\u0A96\x07K\x02\x02\u0A96" + - "\u0A97\x07U\x02\x02\u0A97\xA0\x03\x02\x02\x02\u0A98\u0A99\x07K\x02\x02" + - "\u0A99\u0A9A\x07V\x02\x02\u0A9A\u0A9B\x07G\x02\x02\u0A9B\u0A9C\x07T\x02" + - "\x02\u0A9C\u0A9D\x07C\x02\x02\u0A9D\u0A9E\x07V\x02\x02\u0A9E\u0A9F\x07" + - "G\x02\x02\u0A9F\xA2\x03\x02\x02\x02\u0AA0\u0AA1\x07L\x02\x02\u0AA1\u0AA2" + - "\x07Q\x02\x02\u0AA2\u0AA3\x07K\x02\x02\u0AA3\u0AA4\x07P\x02\x02\u0AA4" + - "\xA4\x03\x02\x02\x02\u0AA5\u0AA6\x07M\x02\x02\u0AA6\u0AA7\x07G\x02\x02" + - "\u0AA7\u0AA8\x07[\x02\x02\u0AA8\xA6\x03\x02\x02\x02\u0AA9\u0AAA\x07M\x02" + - "\x02\u0AAA\u0AAB\x07G\x02\x02\u0AAB\u0AAC\x07[\x02\x02\u0AAC\u0AAD\x07" + - "U\x02\x02\u0AAD\xA8\x03\x02\x02\x02\u0AAE\u0AAF\x07M\x02\x02\u0AAF\u0AB0" + - "\x07K\x02\x02\u0AB0\u0AB1\x07N\x02\x02\u0AB1\u0AB2\x07N\x02\x02\u0AB2" + - "\xAA\x03\x02\x02\x02\u0AB3\u0AB4\x07N\x02\x02\u0AB4\u0AB5\x07G\x02\x02" + - "\u0AB5\u0AB6\x07C\x02\x02\u0AB6\u0AB7\x07F\x02\x02\u0AB7\u0AB8\x07K\x02" + - "\x02\u0AB8\u0AB9\x07P\x02\x02\u0AB9\u0ABA\x07I\x02\x02\u0ABA\xAC\x03\x02" + - "\x02\x02\u0ABB\u0ABC\x07N\x02\x02\u0ABC\u0ABD\x07G\x02\x02\u0ABD\u0ABE" + - "\x07C\x02\x02\u0ABE\u0ABF\x07X\x02\x02\u0ABF\u0AC0\x07G\x02\x02\u0AC0" + - "\xAE\x03\x02\x02\x02\u0AC1\u0AC2\x07N\x02\x02\u0AC2\u0AC3\x07G\x02\x02" + - "\u0AC3\u0AC4\x07H\x02\x02\u0AC4\u0AC5\x07V\x02\x02\u0AC5\xB0\x03\x02\x02" + - "\x02\u0AC6\u0AC7\x07N\x02\x02\u0AC7\u0AC8\x07K\x02\x02\u0AC8\u0AC9\x07" + - "M\x02\x02\u0AC9\u0ACA\x07G\x02\x02\u0ACA\xB2\x03\x02\x02\x02\u0ACB\u0ACC" + - "\x07N\x02\x02\u0ACC\u0ACD\x07K\x02\x02\u0ACD\u0ACE\x07O\x02\x02\u0ACE" + - "\u0ACF\x07K\x02\x02\u0ACF\u0AD0\x07V\x02\x02\u0AD0\xB4\x03\x02\x02\x02" + - "\u0AD1\u0AD2\x07N\x02\x02\u0AD2\u0AD3\x07K\x02\x02\u0AD3\u0AD4\x07P\x02" + - "\x02\u0AD4\u0AD5\x07G\x02\x02\u0AD5\u0AD6\x07C\x02\x02\u0AD6\u0AD7\x07" + - "T\x02\x02\u0AD7\xB6\x03\x02\x02\x02\u0AD8\u0AD9\x07N\x02\x02\u0AD9\u0ADA" + - "\x07K\x02\x02\u0ADA\u0ADB\x07P\x02\x02\u0ADB\u0ADC\x07G\x02\x02\u0ADC" + - "\u0ADD\x07U\x02\x02\u0ADD\xB8\x03\x02\x02\x02\u0ADE\u0ADF\x07N\x02\x02" + - "\u0ADF\u0AE0\x07Q\x02\x02\u0AE0\u0AE1\x07C\x02\x02\u0AE1\u0AE2\x07F\x02" + - "\x02\u0AE2\xBA\x03\x02\x02\x02\u0AE3\u0AE4\x07N\x02\x02\u0AE4\u0AE5\x07" + - "Q\x02\x02\u0AE5\u0AE6\x07E\x02\x02\u0AE6\u0AE7\x07M\x02\x02\u0AE7\xBC" + - "\x03\x02\x02\x02\u0AE8\u0AE9\x07N\x02\x02\u0AE9\u0AEA\x07Q\x02\x02\u0AEA" + - "\u0AEB\x07Q\x02\x02\u0AEB\u0AEC\x07R\x02\x02\u0AEC\xBE\x03\x02\x02\x02" + - "\u0AED\u0AEE\x07N\x02\x02\u0AEE\u0AEF\x07Q\x02\x02\u0AEF\u0AF0\x07Y\x02" + - "\x02\u0AF0\u0AF1\x07a\x02\x02\u0AF1\u0AF2\x07R\x02\x02\u0AF2\u0AF3\x07" + - "T\x02\x02\u0AF3\u0AF4\x07K\x02\x02\u0AF4\u0AF5\x07Q\x02\x02\u0AF5\u0AF6" + - "\x07T\x02\x02\u0AF6\u0AF7\x07K\x02\x02\u0AF7\u0AF8\x07V\x02\x02\u0AF8" + - "\u0AF9\x07[\x02\x02\u0AF9\xC0\x03\x02\x02\x02\u0AFA\u0AFB\x07O\x02\x02" + - "\u0AFB\u0AFC\x07C\x02\x02\u0AFC\u0AFD\x07U\x02\x02\u0AFD\u0AFE\x07V\x02" + - "\x02\u0AFE\u0AFF\x07G\x02\x02\u0AFF\u0B00\x07T\x02\x02\u0B00\u0B01\x07" + - "a\x02\x02\u0B01\u0B02\x07D\x02\x02\u0B02\u0B03\x07K\x02\x02\u0B03\u0B04" + - "\x07P\x02\x02\u0B04\u0B05\x07F\x02\x02\u0B05\xC2\x03\x02\x02\x02\u0B06" + - "\u0B07\x07O\x02\x02\u0B07\u0B08\x07C\x02\x02\u0B08\u0B09\x07U\x02\x02" + - "\u0B09\u0B0A\x07V\x02\x02\u0B0A\u0B0B\x07G\x02\x02\u0B0B\u0B0C\x07T\x02" + - "\x02\u0B0C\u0B0D\x07a\x02\x02\u0B0D\u0B0E\x07U\x02\x02\u0B0E\u0B0F\x07" + - "U\x02\x02\u0B0F\u0B10\x07N\x02\x02\u0B10\u0B11\x07a\x02\x02\u0B11\u0B12" + - "\x07X\x02\x02\u0B12\u0B13\x07G\x02\x02\u0B13\u0B14\x07T\x02\x02\u0B14" + - "\u0B15\x07K\x02\x02\u0B15\u0B16\x07H\x02\x02\u0B16\u0B17\x07[\x02\x02" + - "\u0B17\u0B18\x07a\x02\x02\u0B18\u0B19\x07U\x02\x02\u0B19\u0B1A\x07G\x02" + - "\x02\u0B1A\u0B1B\x07T\x02\x02\u0B1B\u0B1C\x07X\x02\x02\u0B1C\u0B1D\x07" + - "G\x02\x02\u0B1D\u0B1E\x07T\x02\x02\u0B1E\u0B1F\x07a\x02\x02\u0B1F\u0B20" + - "\x07E\x02\x02\u0B20\u0B21\x07G\x02\x02\u0B21\u0B22\x07T\x02\x02\u0B22" + - "\u0B23\x07V\x02\x02\u0B23\xC4\x03\x02\x02\x02\u0B24\u0B25\x07O\x02\x02" + - "\u0B25\u0B26\x07C\x02\x02\u0B26\u0B27\x07V\x02\x02\u0B27\u0B28\x07E\x02" + - "\x02\u0B28\u0B29\x07J\x02\x02\u0B29\xC6\x03\x02\x02\x02\u0B2A\u0B2B\x07" + - "O\x02\x02\u0B2B\u0B2C\x07C\x02\x02\u0B2C\u0B2D\x07Z\x02\x02\u0B2D\u0B2E" + - "\x07X\x02\x02\u0B2E\u0B2F\x07C\x02\x02\u0B2F\u0B30\x07N\x02\x02\u0B30" + - "\u0B31\x07W\x02\x02\u0B31\u0B32\x07G\x02\x02\u0B32\xC8\x03\x02\x02\x02" + - "\u0B33\u0B34\x07O\x02\x02\u0B34\u0B35\x07Q\x02\x02\u0B35\u0B36\x07F\x02" + - "\x02\u0B36\u0B37\x07K\x02\x02\u0B37\u0B38\x07H\x02\x02\u0B38\u0B39\x07" + - "K\x02\x02\u0B39\u0B3A\x07G\x02\x02\u0B3A\u0B3B\x07U\x02\x02\u0B3B\xCA" + - "\x03\x02\x02\x02\u0B3C\u0B3D\x07P\x02\x02\u0B3D\u0B3E\x07C\x02\x02\u0B3E" + - "\u0B3F\x07V\x02\x02\u0B3F\u0B40\x07W\x02\x02\u0B40\u0B41\x07T\x02\x02" + - "\u0B41\u0B42\x07C\x02\x02\u0B42\u0B43\x07N\x02\x02\u0B43\xCC\x03\x02\x02" + - "\x02\u0B44\u0B45\x07P\x02\x02\u0B45\u0B46\x07Q\x02\x02\u0B46\u0B47\x07" + - "V\x02\x02\u0B47\xCE\x03\x02\x02\x02\u0B48\u0B49\x07P\x02\x02\u0B49\u0B4A" + - "\x07Q\x02\x02\u0B4A\u0B4B\x07a\x02\x02\u0B4B\u0B4C\x07Y\x02\x02\u0B4C" + - "\u0B4D\x07T\x02\x02\u0B4D\u0B4E\x07K\x02\x02\u0B4E\u0B4F\x07V\x02\x02" + - "\u0B4F\u0B50\x07G\x02\x02\u0B50\u0B51\x07a\x02\x02\u0B51\u0B52\x07V\x02" + - "\x02\u0B52\u0B53\x07Q\x02"; - private static readonly _serializedATNSegment9: string = - "\x02\u0B53\u0B54\x07a\x02\x02\u0B54\u0B55\x07D\x02\x02\u0B55\u0B56\x07" + - "K\x02\x02\u0B56\u0B57\x07P\x02\x02\u0B57\u0B58\x07N\x02\x02\u0B58\u0B59" + - "\x07Q\x02\x02\u0B59\u0B5A\x07I\x02\x02\u0B5A\xD0\x03\x02\x02\x02\u0B5B" + - "\u0B5C\x07P\x02\x02\u0B5C\u0B5D\x07W\x02\x02\u0B5D\u0B5E\x07N\x02\x02" + - "\u0B5E\u0B5F\x07N\x02\x02\u0B5F\xD2\x03\x02\x02\x02\u0B60\u0B61\x07P\x02" + - "\x02\u0B61\u0B62\x07W\x02\x02\u0B62\u0B63\x07O\x02\x02\u0B63\u0B64\x07" + - "D\x02\x02\u0B64\u0B65\x07G\x02\x02\u0B65\u0B66\x07T\x02\x02\u0B66\xD4" + - "\x03\x02\x02\x02\u0B67\u0B68\x07Q\x02\x02\u0B68\u0B69\x07P\x02\x02\u0B69" + - "\xD6\x03\x02\x02\x02\u0B6A\u0B6B\x07Q\x02\x02\u0B6B\u0B6C\x07R\x02\x02" + - "\u0B6C\u0B6D\x07V\x02\x02\u0B6D\u0B6E\x07K\x02\x02\u0B6E\u0B6F\x07O\x02" + - "\x02\u0B6F\u0B70\x07K\x02\x02\u0B70\u0B71\x07\\\x02\x02\u0B71\u0B72\x07" + - "G\x02\x02\u0B72\xD8\x03\x02\x02\x02\u0B73\u0B74\x07Q\x02\x02\u0B74\u0B75" + - "\x07R\x02\x02\u0B75\u0B76\x07V\x02\x02\u0B76\u0B77\x07K\x02\x02\u0B77" + - "\u0B78\x07Q\x02\x02\u0B78\u0B79\x07P\x02\x02\u0B79\xDA\x03\x02\x02\x02" + - "\u0B7A\u0B7B\x07Q\x02\x02\u0B7B\u0B7C\x07R\x02\x02\u0B7C\u0B7D\x07V\x02" + - "\x02\u0B7D\u0B7E\x07K\x02\x02\u0B7E\u0B7F\x07Q\x02\x02\u0B7F\u0B80\x07" + - "P\x02\x02\u0B80\u0B81\x07C\x02\x02\u0B81\u0B82\x07N\x02\x02\u0B82\u0B83" + - "\x07N\x02\x02\u0B83\u0B84\x07[\x02\x02\u0B84\xDC\x03\x02\x02\x02\u0B85" + - "\u0B86\x07Q\x02\x02\u0B86\u0B87\x07T\x02\x02\u0B87\xDE\x03\x02\x02\x02" + - "\u0B88\u0B89\x07Q\x02\x02\u0B89\u0B8A\x07T\x02\x02\u0B8A\u0B8B\x07F\x02" + - "\x02\u0B8B\u0B8C\x07G\x02\x02\u0B8C\u0B8D\x07T\x02\x02\u0B8D\xE0\x03\x02" + - "\x02\x02\u0B8E\u0B8F\x07Q\x02\x02\u0B8F\u0B90\x07W\x02\x02\u0B90\u0B91" + - "\x07V\x02\x02\u0B91\xE2\x03\x02\x02\x02\u0B92\u0B93\x07Q\x02\x02\u0B93" + - "\u0B94\x07W\x02\x02\u0B94\u0B95\x07V\x02\x02\u0B95\u0B96\x07G\x02\x02" + - "\u0B96\u0B97\x07T\x02\x02\u0B97\xE4\x03\x02\x02\x02\u0B98\u0B99\x07Q\x02" + - "\x02\u0B99\u0B9A\x07W\x02\x02\u0B9A\u0B9B\x07V\x02\x02\u0B9B\u0B9C\x07" + - "H\x02\x02\u0B9C\u0B9D\x07K\x02\x02\u0B9D\u0B9E\x07N\x02\x02\u0B9E\u0B9F" + - "\x07G\x02\x02\u0B9F\xE6\x03\x02\x02\x02\u0BA0\u0BA1\x07R\x02\x02\u0BA1" + - "\u0BA2\x07C\x02\x02\u0BA2\u0BA3\x07T\x02\x02\u0BA3\u0BA4\x07V\x02\x02" + - "\u0BA4\u0BA5\x07K\x02\x02\u0BA5\u0BA6\x07V\x02\x02\u0BA6\u0BA7\x07K\x02" + - "\x02\u0BA7\u0BA8\x07Q\x02\x02\u0BA8\u0BA9\x07P\x02\x02\u0BA9\xE8\x03\x02" + - "\x02\x02\u0BAA\u0BAB\x07R\x02\x02\u0BAB\u0BAC\x07T\x02\x02\u0BAC\u0BAD" + - "\x07K\x02\x02\u0BAD\u0BAE\x07O\x02\x02\u0BAE\u0BAF\x07C\x02\x02\u0BAF" + - "\u0BB0\x07T\x02\x02\u0BB0\u0BB1\x07[\x02\x02\u0BB1\xEA\x03\x02\x02\x02" + - "\u0BB2\u0BB3\x07R\x02\x02\u0BB3\u0BB4\x07T\x02\x02\u0BB4\u0BB5\x07Q\x02" + - "\x02\u0BB5\u0BB6\x07E\x02\x02\u0BB6\u0BB7\x07G\x02\x02\u0BB7\u0BB8\x07" + - "F\x02\x02\u0BB8\u0BB9\x07W\x02\x02\u0BB9\u0BBA\x07T\x02\x02\u0BBA\u0BBB" + - "\x07G\x02\x02\u0BBB\xEC\x03\x02\x02\x02\u0BBC\u0BBD\x07R\x02\x02\u0BBD" + - "\u0BBE\x07W\x02\x02\u0BBE\u0BBF\x07T\x02\x02\u0BBF\u0BC0\x07I\x02\x02" + - "\u0BC0\u0BC1\x07G\x02\x02\u0BC1\xEE\x03\x02\x02\x02\u0BC2\u0BC3\x07T\x02" + - "\x02\u0BC3\u0BC4\x07C\x02\x02\u0BC4\u0BC5\x07P\x02\x02\u0BC5\u0BC6\x07" + - "I\x02\x02\u0BC6\u0BC7\x07G\x02\x02\u0BC7\xF0\x03\x02\x02\x02\u0BC8\u0BC9" + - "\x07T\x02\x02\u0BC9\u0BCA\x07G\x02\x02\u0BCA\u0BCB\x07C\x02\x02\u0BCB" + - "\u0BCC\x07F\x02\x02\u0BCC\xF2\x03\x02\x02\x02\u0BCD\u0BCE\x07T\x02\x02" + - "\u0BCE\u0BCF\x07G\x02\x02\u0BCF\u0BD0\x07C\x02\x02\u0BD0\u0BD1\x07F\x02" + - "\x02\u0BD1\u0BD2\x07U\x02\x02\u0BD2\xF4\x03\x02\x02\x02\u0BD3\u0BD4\x07" + - "T\x02\x02\u0BD4\u0BD5\x07G\x02\x02\u0BD5\u0BD6\x07H\x02\x02\u0BD6\u0BD7" + - "\x07G\x02\x02\u0BD7\u0BD8\x07T\x02\x02\u0BD8\u0BD9\x07G\x02\x02\u0BD9" + - "\u0BDA\x07P\x02\x02\u0BDA\u0BDB\x07E\x02\x02\u0BDB\u0BDC\x07G\x02\x02" + - "\u0BDC\u0BDD\x07U\x02\x02\u0BDD\xF6\x03\x02\x02\x02\u0BDE\u0BDF\x07T\x02" + - "\x02\u0BDF\u0BE0\x07G\x02\x02\u0BE0\u0BE1\x07I\x02\x02\u0BE1\u0BE2\x07" + - "G\x02\x02\u0BE2\u0BE3\x07Z\x02\x02\u0BE3\u0BE4\x07R\x02\x02\u0BE4\xF8" + - "\x03\x02\x02\x02\u0BE5\u0BE6\x07T\x02\x02\u0BE6\u0BE7\x07G\x02\x02\u0BE7" + - "\u0BE8\x07N\x02\x02\u0BE8\u0BE9\x07G\x02\x02\u0BE9\u0BEA\x07C\x02\x02" + - "\u0BEA\u0BEB\x07U\x02\x02\u0BEB\u0BEC\x07G\x02\x02\u0BEC\xFA\x03\x02\x02" + - "\x02\u0BED\u0BEE\x07T\x02\x02\u0BEE\u0BEF\x07G\x02\x02\u0BEF\u0BF0\x07" + - "P\x02\x02\u0BF0\u0BF1\x07C\x02\x02\u0BF1\u0BF2\x07O\x02\x02\u0BF2\u0BF3" + - "\x07G\x02\x02\u0BF3\xFC\x03\x02\x02\x02\u0BF4\u0BF5\x07T\x02\x02\u0BF5" + - "\u0BF6\x07G\x02\x02\u0BF6\u0BF7\x07R\x02\x02\u0BF7\u0BF8\x07G\x02\x02" + - "\u0BF8\u0BF9\x07C\x02\x02\u0BF9\u0BFA\x07V\x02\x02\u0BFA\xFE\x03\x02\x02" + - "\x02\u0BFB\u0BFC\x07T\x02\x02\u0BFC\u0BFD\x07G\x02\x02\u0BFD\u0BFE\x07" + - "R\x02\x02\u0BFE\u0BFF\x07N\x02\x02\u0BFF\u0C00\x07C\x02\x02\u0C00\u0C01" + - "\x07E\x02\x02\u0C01\u0C02\x07G\x02\x02\u0C02\u0100\x03\x02\x02\x02\u0C03" + - "\u0C04\x07T\x02\x02\u0C04\u0C05\x07G\x02\x02\u0C05\u0C06\x07S\x02\x02" + - "\u0C06\u0C07\x07W\x02\x02\u0C07\u0C08\x07K\x02\x02\u0C08\u0C09\x07T\x02" + - "\x02\u0C09\u0C0A\x07G\x02\x02\u0C0A\u0102\x03\x02\x02\x02\u0C0B\u0C0C" + - "\x07T\x02\x02\u0C0C\u0C0D\x07G\x02\x02\u0C0D\u0C0E\x07U\x02\x02\u0C0E" + - "\u0C0F\x07K\x02\x02\u0C0F\u0C10\x07I\x02\x02\u0C10\u0C11\x07P\x02\x02" + - "\u0C11\u0C12\x07C\x02\x02\u0C12\u0C13\x07N\x02\x02\u0C13\u0104\x03\x02" + - "\x02\x02\u0C14\u0C15\x07T\x02\x02\u0C15\u0C16\x07G\x02\x02\u0C16\u0C17" + - "\x07U\x02\x02\u0C17\u0C18\x07V\x02\x02\u0C18\u0C19\x07T\x02\x02\u0C19" + - "\u0C1A\x07K\x02\x02\u0C1A\u0C1B\x07E\x02\x02\u0C1B\u0C1C\x07V\x02\x02" + - "\u0C1C\u0106\x03\x02\x02\x02\u0C1D\u0C1E\x07T\x02\x02\u0C1E\u0C1F\x07" + - "G\x02\x02\u0C1F\u0C20\x07V\x02\x02\u0C20\u0C21\x07W\x02\x02\u0C21\u0C22" + - "\x07T\x02\x02\u0C22\u0C23\x07P\x02\x02\u0C23\u0108\x03\x02\x02\x02\u0C24" + - "\u0C25\x07T\x02\x02\u0C25\u0C26\x07G\x02\x02\u0C26\u0C27\x07X\x02\x02" + - "\u0C27\u0C28\x07Q\x02\x02\u0C28\u0C29\x07M\x02\x02\u0C29\u0C2A\x07G\x02" + - "\x02\u0C2A\u010A\x03\x02\x02\x02\u0C2B\u0C2C\x07T\x02\x02\u0C2C\u0C2D" + - "\x07K\x02\x02\u0C2D\u0C2E\x07I\x02\x02\u0C2E\u0C2F\x07J\x02\x02\u0C2F" + - "\u0C30\x07V\x02\x02\u0C30\u010C\x03\x02\x02\x02\u0C31\u0C32\x07T\x02\x02" + - "\u0C32\u0C33\x07N\x02\x02\u0C33\u0C34\x07K\x02\x02\u0C34\u0C35\x07M\x02" + - "\x02\u0C35\u0C36\x07G\x02\x02\u0C36\u010E\x03\x02\x02\x02\u0C37\u0C38" + - "\x07U\x02\x02\u0C38\u0C39\x07E\x02\x02\u0C39\u0C3A\x07J\x02\x02\u0C3A" + - "\u0C3B\x07G\x02\x02\u0C3B\u0C3C\x07O\x02\x02\u0C3C\u0C3D\x07C\x02\x02" + - "\u0C3D\u0110\x03\x02\x02\x02\u0C3E\u0C3F\x07U\x02\x02\u0C3F\u0C40\x07" + - "E\x02\x02\u0C40\u0C41\x07J\x02\x02\u0C41\u0C42\x07G\x02\x02\u0C42\u0C43" + - "\x07O\x02\x02\u0C43\u0C44\x07C\x02\x02\u0C44\u0C45\x07U\x02\x02\u0C45" + - "\u0112\x03\x02\x02\x02\u0C46\u0C47\x07U\x02\x02\u0C47\u0C48\x07G\x02\x02" + - "\u0C48\u0C49\x07N\x02\x02\u0C49\u0C4A\x07G\x02\x02\u0C4A\u0C4B\x07E\x02" + - "\x02\u0C4B\u0C4C\x07V\x02\x02\u0C4C\u0114\x03\x02\x02\x02\u0C4D\u0C4E" + - "\x07U\x02\x02\u0C4E\u0C4F\x07G\x02\x02\u0C4F\u0C50\x07V\x02\x02\u0C50" + - "\u0116\x03\x02\x02\x02\u0C51\u0C52\x07U\x02\x02\u0C52\u0C53\x07G\x02\x02" + - "\u0C53\u0C54\x07R\x02\x02\u0C54\u0C55\x07C\x02\x02\u0C55\u0C56\x07T\x02" + - "\x02\u0C56\u0C57\x07C\x02\x02\u0C57\u0C58\x07V\x02\x02\u0C58\u0C59\x07" + - "Q\x02\x02\u0C59\u0C5A\x07T\x02\x02\u0C5A\u0118\x03\x02\x02\x02\u0C5B\u0C5C" + - "\x07U\x02\x02\u0C5C\u0C5D\x07J\x02\x02\u0C5D\u0C5E\x07Q\x02\x02\u0C5E" + - "\u0C5F\x07Y\x02\x02\u0C5F\u011A\x03\x02\x02\x02\u0C60\u0C61\x07U\x02\x02" + - "\u0C61\u0C62\x07K\x02\x02\u0C62\u0C63\x07I\x02\x02\u0C63\u0C64\x07P\x02" + - "\x02\u0C64\u0C65\x07C\x02\x02\u0C65\u0C66\x07N\x02\x02\u0C66\u011C\x03" + - "\x02\x02\x02\u0C67\u0C68\x07U\x02\x02\u0C68\u0C69\x07R\x02\x02\u0C69\u0C6A" + - "\x07C\x02\x02\u0C6A\u0C6B\x07V\x02\x02\u0C6B\u0C6C\x07K\x02\x02\u0C6C" + - "\u0C6D\x07C\x02\x02\u0C6D\u0C6E\x07N\x02\x02\u0C6E\u011E\x03\x02\x02\x02" + - "\u0C6F\u0C70\x07U\x02\x02\u0C70\u0C71\x07S\x02\x02\u0C71\u0C72\x07N\x02" + - "\x02\u0C72\u0120\x03\x02\x02\x02\u0C73\u0C74\x07U\x02\x02\u0C74\u0C75" + - "\x07S\x02\x02\u0C75\u0C76\x07N\x02\x02\u0C76\u0C77\x07G\x02\x02\u0C77" + - "\u0C78\x07Z\x02\x02\u0C78\u0C79\x07E\x02\x02\u0C79\u0C7A\x07G\x02\x02" + - "\u0C7A\u0C7B\x07R\x02\x02\u0C7B\u0C7C\x07V\x02\x02\u0C7C\u0C7D\x07K\x02" + - "\x02\u0C7D\u0C7E\x07Q\x02\x02\u0C7E\u0C7F\x07P\x02\x02\u0C7F\u0122\x03" + - "\x02\x02\x02\u0C80\u0C81\x07U\x02\x02\u0C81\u0C82\x07S\x02\x02\u0C82\u0C83" + - "\x07N\x02\x02\u0C83\u0C84\x07U\x02\x02\u0C84\u0C85\x07V\x02\x02\u0C85" + - "\u0C86\x07C\x02\x02\u0C86\u0C87\x07V\x02\x02\u0C87\u0C88\x07G\x02\x02" + - "\u0C88\u0124\x03\x02\x02\x02\u0C89\u0C8A\x07U\x02\x02\u0C8A\u0C8B\x07" + - "S\x02\x02\u0C8B\u0C8C\x07N\x02\x02\u0C8C\u0C8D\x07Y\x02\x02\u0C8D\u0C8E" + - "\x07C\x02\x02\u0C8E\u0C8F\x07T\x02\x02\u0C8F\u0C90\x07P\x02\x02\u0C90" + - "\u0C91\x07K\x02\x02\u0C91\u0C92\x07P\x02\x02\u0C92\u0C93\x07I\x02\x02" + - "\u0C93\u0126\x03\x02\x02\x02\u0C94\u0C95\x07U\x02\x02\u0C95\u0C96\x07" + - "S\x02\x02\u0C96\u0C97\x07N\x02\x02\u0C97\u0C98\x07a\x02\x02\u0C98\u0C99" + - "\x07D\x02\x02\u0C99\u0C9A\x07K\x02\x02\u0C9A\u0C9B\x07I\x02\x02\u0C9B" + - "\u0C9C\x07a\x02\x02\u0C9C\u0C9D\x07T\x02\x02\u0C9D\u0C9E\x07G\x02\x02" + - "\u0C9E\u0C9F\x07U\x02\x02\u0C9F\u0CA0\x07W\x02\x02\u0CA0\u0CA1\x07N\x02" + - "\x02\u0CA1\u0CA2\x07V\x02\x02\u0CA2\u0128\x03\x02\x02\x02\u0CA3\u0CA4" + - "\x07U\x02\x02\u0CA4\u0CA5\x07S\x02\x02\u0CA5\u0CA6\x07N\x02\x02\u0CA6" + - "\u0CA7\x07a\x02\x02\u0CA7\u0CA8\x07E\x02\x02\u0CA8\u0CA9\x07C\x02\x02" + - "\u0CA9\u0CAA\x07N\x02\x02\u0CAA\u0CAB\x07E\x02\x02\u0CAB\u0CAC\x07a\x02" + - "\x02\u0CAC\u0CAD\x07H\x02\x02\u0CAD\u0CAE\x07Q\x02\x02\u0CAE\u0CAF\x07" + - "W\x02\x02\u0CAF\u0CB0\x07P\x02\x02\u0CB0\u0CB1\x07F\x02\x02\u0CB1\u0CB2" + - "\x07a\x02\x02\u0CB2\u0CB3\x07T\x02\x02\u0CB3\u0CB4\x07Q\x02\x02\u0CB4" + - "\u0CB5\x07Y\x02\x02\u0CB5\u0CB6\x07U\x02\x02\u0CB6\u012A\x03\x02\x02\x02" + - "\u0CB7\u0CB8\x07U\x02\x02\u0CB8\u0CB9\x07S\x02\x02\u0CB9\u0CBA\x07N\x02" + - "\x02\u0CBA\u0CBB\x07a\x02\x02\u0CBB\u0CBC\x07U\x02\x02\u0CBC\u0CBD\x07" + - "O\x02\x02\u0CBD\u0CBE\x07C\x02\x02\u0CBE\u0CBF\x07N\x02\x02\u0CBF\u0CC0" + - "\x07N\x02\x02\u0CC0\u0CC1\x07a\x02\x02\u0CC1\u0CC2\x07T\x02\x02\u0CC2" + - "\u0CC3\x07G\x02\x02\u0CC3\u0CC4\x07U\x02\x02\u0CC4\u0CC5\x07W\x02\x02" + - "\u0CC5\u0CC6\x07N\x02\x02\u0CC6\u0CC7\x07V\x02\x02\u0CC7\u012C\x03\x02" + - "\x02\x02\u0CC8\u0CC9\x07U\x02\x02\u0CC9\u0CCA\x07U\x02\x02\u0CCA\u0CCB" + - "\x07N\x02\x02\u0CCB\u012E\x03\x02\x02\x02\u0CCC\u0CCD\x07U\x02\x02\u0CCD" + - "\u0CCE\x07V\x02\x02\u0CCE\u0CCF\x07C\x02\x02\u0CCF\u0CD0\x07E\x02\x02" + - "\u0CD0\u0CD1\x07M\x02\x02\u0CD1\u0CD2\x07G\x02\x02\u0CD2\u0CD3\x07F\x02" + - "\x02\u0CD3\u0130\x03\x02\x02\x02\u0CD4\u0CD5\x07U\x02\x02\u0CD5\u0CD6" + - "\x07V\x02\x02\u0CD6\u0CD7\x07C\x02\x02\u0CD7\u0CD8\x07T\x02\x02\u0CD8" + - "\u0CD9\x07V\x02\x02\u0CD9\u0CDA\x07K\x02\x02\u0CDA\u0CDB\x07P\x02\x02" + - "\u0CDB\u0CDC\x07I\x02\x02\u0CDC\u0132\x03\x02\x02\x02\u0CDD\u0CDE\x07" + - "U\x02\x02\u0CDE\u0CDF\x07V\x02\x02\u0CDF\u0CE0\x07T\x02\x02\u0CE0\u0CE1" + - "\x07C\x02\x02\u0CE1\u0CE2\x07K\x02\x02\u0CE2\u0CE3\x07I\x02\x02\u0CE3" + - "\u0CE4\x07J\x02\x02\u0CE4\u0CE5\x07V\x02\x02\u0CE5\u0CE6\x07a\x02\x02" + - "\u0CE6\u0CE7\x07L\x02\x02\u0CE7\u0CE8\x07Q\x02\x02\u0CE8\u0CE9\x07K\x02" + - "\x02\u0CE9\u0CEA\x07P\x02\x02\u0CEA\u0134\x03\x02\x02\x02\u0CEB\u0CEC" + - "\x07V\x02\x02\u0CEC\u0CED\x07C\x02\x02\u0CED\u0CEE\x07D\x02\x02\u0CEE" + - "\u0CEF\x07N\x02\x02\u0CEF\u0CF0\x07G\x02\x02\u0CF0\u0136\x03\x02\x02\x02" + - "\u0CF1\u0CF2\x07V\x02\x02\u0CF2\u0CF3\x07G\x02\x02\u0CF3\u0CF4\x07T\x02" + - "\x02\u0CF4\u0CF5\x07O\x02\x02\u0CF5\u0CF6\x07K\x02\x02\u0CF6\u0CF7\x07" + - "P\x02\x02\u0CF7\u0CF8\x07C\x02\x02\u0CF8\u0CF9\x07V\x02\x02\u0CF9\u0CFA" + - "\x07G\x02\x02\u0CFA\u0CFB\x07F\x02\x02\u0CFB\u0138\x03\x02\x02\x02\u0CFC" + - "\u0CFD\x07V\x02\x02\u0CFD\u0CFE\x07J\x02\x02\u0CFE\u0CFF\x07G\x02\x02" + - "\u0CFF\u0D00\x07P\x02\x02\u0D00\u013A\x03\x02\x02\x02\u0D01\u0D02\x07" + - "V\x02\x02\u0D02\u0D03\x07Q\x02\x02\u0D03\u013C\x03\x02\x02\x02\u0D04\u0D05" + - "\x07V\x02\x02\u0D05\u0D06\x07T\x02\x02\u0D06\u0D07\x07C\x02\x02\u0D07" + - "\u0D08\x07K\x02\x02\u0D08\u0D09\x07N\x02\x02\u0D09\u0D0A\x07K\x02\x02" + - "\u0D0A\u0D0B\x07P\x02\x02\u0D0B\u0D0C\x07I\x02\x02\u0D0C\u013E\x03\x02" + - "\x02\x02\u0D0D\u0D0E\x07V\x02\x02\u0D0E\u0D0F\x07T\x02\x02\u0D0F\u0D10" + - "\x07K\x02\x02\u0D10\u0D11\x07I\x02\x02\u0D11\u0D12\x07I\x02\x02\u0D12" + - "\u0D13\x07G\x02\x02\u0D13\u0D14\x07T\x02\x02\u0D14\u0140\x03\x02\x02\x02" + - "\u0D15\u0D16\x07V\x02\x02\u0D16\u0D17\x07T\x02\x02\u0D17\u0D18\x07W\x02" + - "\x02\u0D18\u0D19\x07G\x02\x02\u0D19\u0142\x03\x02\x02\x02\u0D1A\u0D1B" + - "\x07W\x02\x02\u0D1B\u0D1C\x07P\x02\x02\u0D1C\u0D1D\x07F\x02\x02\u0D1D" + - "\u0D1E\x07Q\x02\x02\u0D1E\u0144\x03\x02\x02\x02\u0D1F\u0D20\x07W\x02\x02" + - "\u0D20\u0D21\x07P\x02\x02\u0D21\u0D22\x07K\x02\x02\u0D22\u0D23\x07Q\x02" + - "\x02\u0D23\u0D24\x07P\x02\x02\u0D24\u0146\x03\x02\x02\x02\u0D25\u0D26" + - "\x07W\x02\x02\u0D26\u0D27\x07P\x02\x02\u0D27\u0D28\x07K\x02\x02\u0D28" + - "\u0D29\x07S\x02\x02\u0D29\u0D2A\x07W\x02\x02\u0D2A\u0D2B\x07G\x02\x02" + - "\u0D2B\u0148\x03\x02\x02\x02\u0D2C\u0D2D\x07W\x02\x02\u0D2D\u0D2E\x07" + - "P\x02\x02\u0D2E\u0D2F\x07N\x02\x02\u0D2F\u0D30\x07Q\x02\x02\u0D30\u0D31" + - "\x07E\x02\x02\u0D31\u0D32\x07M\x02\x02\u0D32\u014A\x03\x02\x02\x02\u0D33" + - "\u0D34\x07W\x02\x02\u0D34\u0D35\x07P\x02\x02\u0D35\u0D36\x07U\x02\x02" + - "\u0D36\u0D37\x07K\x02\x02\u0D37\u0D38\x07I\x02\x02\u0D38\u0D39\x07P\x02" + - "\x02\u0D39\u0D3A\x07G\x02\x02\u0D3A\u0D3B\x07F\x02\x02\u0D3B\u014C\x03" + - "\x02\x02\x02\u0D3C\u0D3D\x07W\x02\x02\u0D3D\u0D3E\x07R\x02\x02\u0D3E\u0D3F" + - "\x07F\x02\x02\u0D3F\u0D40\x07C\x02\x02\u0D40\u0D41\x07V\x02\x02\u0D41" + - "\u0D42\x07G\x02\x02\u0D42\u014E\x03\x02\x02\x02\u0D43\u0D44\x07W\x02\x02" + - "\u0D44\u0D45\x07U\x02\x02\u0D45\u0D46\x07C\x02\x02\u0D46\u0D47\x07I\x02" + - "\x02\u0D47\u0D48\x07G\x02\x02\u0D48\u0150\x03\x02\x02\x02\u0D49\u0D4A" + - "\x07W\x02\x02\u0D4A\u0D4B\x07U\x02\x02\u0D4B\u0D4C\x07G\x02\x02\u0D4C" + - "\u0152\x03\x02\x02\x02\u0D4D\u0D4E\x07W\x02\x02\u0D4E\u0D4F\x07U\x02\x02" + - "\u0D4F\u0D50\x07K\x02\x02\u0D50\u0D51\x07P\x02\x02\u0D51\u0D52\x07I\x02" + - "\x02\u0D52\u0154\x03\x02\x02\x02\u0D53\u0D54\x07X\x02\x02\u0D54\u0D55" + - "\x07C\x02\x02\u0D55\u0D56\x07N\x02\x02\u0D56\u0D57\x07W\x02\x02\u0D57" + - "\u0D58\x07G\x02\x02\u0D58\u0D59\x07U\x02\x02\u0D59\u0156\x03\x02\x02\x02" + - "\u0D5A\u0D5B\x07Y\x02\x02\u0D5B\u0D5C\x07J\x02\x02\u0D5C\u0D5D\x07G\x02" + - "\x02\u0D5D\u0D5E\x07P\x02\x02\u0D5E\u0158\x03\x02\x02\x02\u0D5F\u0D60" + - "\x07Y\x02\x02\u0D60\u0D61\x07J\x02\x02\u0D61\u0D62\x07G\x02\x02\u0D62" + - "\u0D63\x07T\x02\x02\u0D63\u0D64\x07G\x02\x02\u0D64\u015A\x03\x02\x02\x02" + - "\u0D65\u0D66\x07Y\x02\x02\u0D66\u0D67\x07J\x02\x02\u0D67\u0D68\x07K\x02" + - "\x02\u0D68\u0D69\x07N\x02\x02\u0D69\u0D6A\x07G\x02\x02\u0D6A\u015C\x03" + - "\x02\x02\x02\u0D6B\u0D6C\x07Y\x02\x02\u0D6C\u0D6D\x07K\x02\x02\u0D6D\u0D6E" + - "\x07V\x02\x02\u0D6E\u0D6F\x07J\x02\x02\u0D6F\u015E\x03\x02\x02\x02\u0D70" + - "\u0D71\x07Y\x02\x02\u0D71\u0D72\x07T\x02\x02\u0D72\u0D73\x07K\x02\x02" + - "\u0D73\u0D74\x07V\x02\x02\u0D74\u0D75\x07G\x02\x02\u0D75\u0160\x03\x02" + - "\x02\x02\u0D76\u0D77\x07Z\x02\x02\u0D77\u0D78\x07Q\x02\x02\u0D78\u0D79" + - "\x07T\x02\x02\u0D79\u0162\x03\x02\x02\x02\u0D7A\u0D7B\x07\\\x02\x02\u0D7B" + - "\u0D7C\x07G\x02\x02\u0D7C\u0D7D\x07T\x02\x02\u0D7D\u0D7E\x07Q\x02\x02" + - "\u0D7E\u0D7F\x07H\x02\x02\u0D7F\u0D80\x07K\x02\x02\u0D80\u0D81\x07N\x02" + - "\x02\u0D81\u0D82\x07N\x02\x02\u0D82\u0164\x03\x02\x02\x02\u0D83\u0D84" + - "\x07V\x02\x02\u0D84\u0D85\x07K\x02\x02\u0D85\u0D86\x07P\x02\x02\u0D86" + - "\u0D87\x07[\x02\x02\u0D87\u0D88\x07K\x02\x02\u0D88\u0D89\x07P\x02\x02" + - "\u0D89\u0D8A\x07V\x02\x02\u0D8A\u0166\x03\x02\x02\x02\u0D8B\u0D8C\x07" + - "U\x02\x02\u0D8C\u0D8D\x07O\x02\x02\u0D8D\u0D8E\x07C\x02\x02\u0D8E\u0D8F" + - "\x07N\x02\x02\u0D8F\u0D90\x07N\x02\x02\u0D90\u0D91\x07K\x02\x02\u0D91" + - "\u0D92\x07P\x02\x02\u0D92\u0D93\x07V\x02\x02\u0D93\u0168\x03\x02\x02\x02" + - "\u0D94\u0D95\x07O\x02\x02\u0D95\u0D96\x07G\x02\x02\u0D96\u0D97\x07F\x02" + - "\x02\u0D97\u0D98\x07K\x02\x02\u0D98\u0D99\x07W\x02\x02\u0D99\u0D9A\x07" + - "O\x02\x02\u0D9A\u0D9B\x07K\x02\x02\u0D9B\u0D9C\x07P\x02\x02\u0D9C\u0D9D" + - "\x07V\x02\x02\u0D9D\u016A\x03\x02\x02\x02\u0D9E\u0D9F\x07O\x02\x02\u0D9F" + - "\u0DA0\x07K\x02\x02\u0DA0\u0DA1\x07F\x02\x02\u0DA1\u0DA2\x07F\x02\x02" + - "\u0DA2\u0DA3\x07N\x02\x02\u0DA3\u0DA4\x07G\x02\x02\u0DA4\u0DA5\x07K\x02" + - "\x02\u0DA5\u0DA6\x07P\x02\x02\u0DA6\u0DA7\x07V\x02\x02\u0DA7\u016C\x03" + - "\x02\x02\x02\u0DA8\u0DA9\x07K\x02\x02\u0DA9\u0DAA\x07P\x02\x02\u0DAA\u0DAB" + - "\x07V\x02\x02\u0DAB\u016E\x03\x02\x02\x02\u0DAC\u0DAD\x07K\x02\x02\u0DAD" + - "\u0DAE\x07P\x02\x02\u0DAE\u0DAF\x07V\x02\x02\u0DAF\u0DB0\x073\x02\x02" + - "\u0DB0\u0170\x03\x02\x02\x02\u0DB1\u0DB2\x07K\x02\x02\u0DB2\u0DB3\x07" + - "P\x02\x02\u0DB3\u0DB4\x07V\x02\x02\u0DB4\u0DB5\x074\x02\x02\u0DB5\u0172" + - "\x03\x02\x02\x02\u0DB6\u0DB7\x07K\x02\x02\u0DB7\u0DB8\x07P\x02\x02\u0DB8" + - "\u0DB9\x07V\x02\x02\u0DB9\u0DBA\x075\x02\x02\u0DBA\u0174\x03\x02\x02\x02" + - "\u0DBB\u0DBC\x07K\x02\x02\u0DBC\u0DBD\x07P\x02\x02\u0DBD\u0DBE\x07V\x02" + - "\x02\u0DBE\u0DBF\x076\x02\x02\u0DBF\u0176\x03\x02\x02\x02\u0DC0\u0DC1" + - "\x07K\x02\x02\u0DC1\u0DC2\x07P\x02\x02\u0DC2\u0DC3\x07V\x02\x02\u0DC3" + - "\u0DC4\x07:\x02\x02\u0DC4\u0178\x03\x02\x02\x02\u0DC5\u0DC6\x07K\x02\x02" + - "\u0DC6\u0DC7\x07P\x02\x02\u0DC7\u0DC8\x07V\x02\x02\u0DC8\u0DC9\x07G\x02" + - "\x02\u0DC9\u0DCA\x07I\x02\x02\u0DCA\u0DCB\x07G\x02\x02\u0DCB\u0DCC\x07" + - "T\x02\x02\u0DCC\u017A\x03\x02\x02\x02\u0DCD\u0DCE\x07D\x02\x02\u0DCE\u0DCF" + - "\x07K\x02\x02\u0DCF\u0DD0\x07I\x02\x02\u0DD0\u0DD1\x07K\x02\x02\u0DD1" + - "\u0DD2\x07P\x02\x02\u0DD2\u0DD3\x07V\x02\x02\u0DD3\u017C\x03\x02\x02\x02" + - "\u0DD4\u0DD5\x07T\x02\x02\u0DD5\u0DD6\x07G\x02\x02\u0DD6\u0DD7\x07C\x02" + - "\x02\u0DD7\u0DD8\x07N\x02\x02\u0DD8\u017E\x03\x02\x02\x02\u0DD9\u0DDA" + - "\x07F\x02\x02\u0DDA\u0DDB\x07Q\x02\x02\u0DDB\u0DDC\x07W\x02\x02\u0DDC" + - "\u0DDD\x07D\x02\x02\u0DDD\u0DDE\x07N\x02\x02\u0DDE\u0DDF\x07G\x02\x02" + - "\u0DDF\u0180\x03\x02\x02\x02\u0DE0\u0DE1\x07R\x02\x02\u0DE1\u0DE2\x07" + - "T\x02\x02\u0DE2\u0DE3\x07G\x02\x02\u0DE3\u0DE4\x07E\x02\x02\u0DE4\u0DE5" + - "\x07K\x02\x02\u0DE5\u0DE6\x07U\x02\x02\u0DE6\u0DE7\x07K\x02\x02\u0DE7" + - "\u0DE8\x07Q\x02\x02\u0DE8\u0DE9\x07P\x02\x02\u0DE9\u0182\x03\x02\x02\x02" + - "\u0DEA\u0DEB\x07H\x02\x02\u0DEB\u0DEC\x07N\x02\x02\u0DEC\u0DED\x07Q\x02" + - "\x02\u0DED\u0DEE\x07C\x02\x02\u0DEE\u0DEF\x07V\x02\x02\u0DEF\u0184\x03" + - "\x02\x02\x02\u0DF0\u0DF1\x07H\x02\x02\u0DF1\u0DF2\x07N\x02\x02\u0DF2\u0DF3" + - "\x07Q\x02\x02\u0DF3\u0DF4\x07C\x02\x02\u0DF4\u0DF5\x07V\x02\x02\u0DF5" + - "\u0DF6\x076\x02\x02\u0DF6\u0186\x03\x02\x02\x02\u0DF7\u0DF8\x07H\x02\x02" + - "\u0DF8\u0DF9\x07N\x02\x02\u0DF9\u0DFA\x07Q\x02\x02\u0DFA\u0DFB\x07C\x02" + - "\x02\u0DFB\u0DFC\x07V\x02\x02\u0DFC\u0DFD\x07:\x02\x02\u0DFD\u0188\x03" + - "\x02\x02\x02\u0DFE\u0DFF\x07F\x02\x02\u0DFF\u0E00\x07G\x02\x02\u0E00\u0E01" + - "\x07E\x02\x02\u0E01\u0E02\x07K\x02\x02\u0E02\u0E03\x07O\x02\x02\u0E03" + - "\u0E04\x07C\x02\x02\u0E04\u0E05\x07N\x02\x02\u0E05\u018A\x03\x02\x02\x02" + - "\u0E06\u0E07\x07F\x02\x02\u0E07\u0E08\x07G\x02\x02\u0E08\u0E09\x07E\x02" + - "\x02\u0E09\u018C\x03\x02\x02\x02\u0E0A\u0E0B\x07P\x02\x02\u0E0B\u0E0C" + - "\x07W\x02\x02\u0E0C\u0E0D\x07O\x02\x02\u0E0D\u0E0E\x07G\x02\x02\u0E0E" + - "\u0E0F\x07T\x02\x02\u0E0F\u0E10\x07K\x02\x02\u0E10\u0E11\x07E\x02\x02" + - "\u0E11\u018E\x03\x02\x02\x02\u0E12\u0E13\x07F\x02\x02\u0E13\u0E14\x07" + - "C\x02\x02\u0E14\u0E15\x07V\x02\x02\u0E15\u0E16\x07G\x02\x02\u0E16\u0190" + - "\x03\x02\x02\x02\u0E17\u0E18\x07V\x02\x02\u0E18\u0E19\x07K\x02\x02\u0E19" + - "\u0E1A\x07O\x02\x02\u0E1A\u0E1B\x07G\x02\x02\u0E1B\u0192\x03\x02\x02\x02" + - "\u0E1C\u0E1D\x07V\x02\x02\u0E1D\u0E1E\x07K\x02\x02\u0E1E\u0E1F\x07O\x02" + - "\x02\u0E1F\u0E20\x07G\x02\x02\u0E20\u0E21\x07U\x02\x02\u0E21\u0E22\x07" + - "V\x02\x02\u0E22\u0E23\x07C\x02\x02\u0E23\u0E24\x07O\x02\x02\u0E24\u0E25" + - "\x07R\x02\x02\u0E25\u0194\x03\x02\x02\x02\u0E26\u0E27\x07F\x02\x02\u0E27" + - "\u0E28\x07C\x02\x02\u0E28\u0E29\x07V\x02\x02\u0E29\u0E2A\x07G\x02\x02" + - "\u0E2A\u0E2B\x07V\x02\x02\u0E2B\u0E2C\x07K\x02\x02\u0E2C\u0E2D\x07O\x02" + - "\x02\u0E2D\u0E2E\x07G\x02\x02\u0E2E\u0196\x03\x02\x02\x02\u0E2F\u0E30" + - "\x07[\x02\x02\u0E30\u0E31\x07G\x02\x02\u0E31\u0E32\x07C\x02\x02\u0E32" + - "\u0E33\x07T\x02\x02\u0E33\u0198\x03\x02\x02\x02\u0E34\u0E35\x07E\x02\x02" + - "\u0E35\u0E36\x07J\x02\x02\u0E36\u0E37\x07C\x02\x02\u0E37\u0E38\x07T\x02" + - "\x02\u0E38\u019A\x03\x02\x02\x02\u0E39\u0E3A\x07X\x02\x02\u0E3A\u0E3B" + - "\x07C\x02\x02\u0E3B\u0E3C\x07T\x02\x02\u0E3C\u0E3D\x07E\x02\x02\u0E3D" + - "\u0E3E\x07J\x02\x02\u0E3E\u0E3F\x07C\x02\x02\u0E3F\u0E40\x07T\x02\x02" + - "\u0E40\u019C\x03\x02\x02\x02\u0E41\u0E42\x07P\x02\x02\u0E42\u0E43\x07" + - "X\x02\x02\u0E43\u0E44\x07C\x02\x02\u0E44\u0E45\x07T\x02\x02\u0E45\u0E46" + - "\x07E\x02\x02\u0E46\u0E47\x07J\x02\x02\u0E47\u0E48\x07C\x02\x02\u0E48" + - "\u0E49\x07T\x02\x02\u0E49\u019E\x03\x02\x02\x02\u0E4A\u0E4B\x07P\x02\x02" + - "\u0E4B\u0E4C\x07C\x02\x02\u0E4C\u0E4D\x07V\x02\x02\u0E4D\u0E4E\x07K\x02" + - "\x02\u0E4E\u0E4F\x07Q\x02\x02\u0E4F\u0E50\x07P\x02\x02\u0E50\u0E51\x07" + - "C\x02\x02\u0E51\u0E52\x07N\x02\x02\u0E52\u01A0\x03\x02\x02\x02\u0E53\u0E54" + - "\x07D\x02\x02\u0E54\u0E55\x07K\x02\x02\u0E55\u0E56\x07P\x02\x02\u0E56" + - "\u0E57\x07C\x02\x02\u0E57\u0E58\x07T\x02\x02\u0E58\u0E59\x07[\x02\x02" + - "\u0E59\u01A2\x03\x02\x02\x02\u0E5A\u0E5B\x07X\x02\x02\u0E5B\u0E5C\x07" + - "C\x02\x02\u0E5C\u0E5D\x07T\x02\x02\u0E5D\u0E5E\x07D\x02\x02\u0E5E\u0E5F" + - "\x07K\x02\x02\u0E5F\u0E60\x07P\x02\x02\u0E60\u0E61\x07C\x02\x02\u0E61" + - "\u0E62\x07T\x02\x02\u0E62\u0E63\x07[\x02\x02\u0E63\u01A4\x03\x02\x02\x02" + - "\u0E64\u0E65\x07V\x02\x02\u0E65\u0E66\x07K\x02\x02\u0E66\u0E67\x07P\x02" + - "\x02\u0E67\u0E68\x07[\x02\x02\u0E68\u0E69\x07D\x02\x02\u0E69\u0E6A\x07" + - "N\x02\x02\u0E6A\u0E6B\x07Q\x02\x02\u0E6B\u0E6C\x07D\x02\x02\u0E6C\u01A6" + - "\x03\x02\x02\x02\u0E6D\u0E6E\x07D\x02\x02\u0E6E\u0E6F\x07N\x02\x02\u0E6F" + - "\u0E70\x07Q\x02\x02\u0E70\u0E71\x07D\x02\x02\u0E71\u01A8\x03\x02\x02\x02" + - "\u0E72\u0E73\x07O\x02\x02\u0E73\u0E74\x07G\x02\x02\u0E74\u0E75\x07F\x02" + - "\x02\u0E75\u0E76\x07K\x02\x02\u0E76\u0E77\x07W\x02\x02\u0E77\u0E78\x07" + - "O\x02\x02\u0E78\u0E79\x07D\x02\x02\u0E79\u0E7A\x07N\x02\x02\u0E7A\u0E7B" + - "\x07Q\x02\x02\u0E7B\u0E7C\x07D\x02\x02\u0E7C\u01AA\x03\x02\x02\x02\u0E7D" + - "\u0E7E\x07N\x02\x02\u0E7E\u0E7F\x07Q\x02\x02\u0E7F\u0E80\x07P\x02\x02" + - "\u0E80\u0E81\x07I\x02\x02\u0E81\u01AC\x03\x02\x02\x02\u0E82\u0E83\x07" + - "N\x02\x02\u0E83\u0E84\x07Q\x02\x02\u0E84\u0E85\x07P\x02\x02\u0E85\u0E86" + - "\x07I\x02\x02\u0E86\u0E87\x07D\x02\x02\u0E87\u0E88\x07N\x02\x02\u0E88" + - "\u0E89\x07Q\x02\x02\u0E89\u0E8A\x07D\x02\x02\u0E8A\u01AE\x03\x02\x02\x02" + - "\u0E8B\u0E8C\x07V\x02\x02\u0E8C\u0E8D\x07K\x02\x02\u0E8D\u0E8E\x07P\x02" + - "\x02\u0E8E\u0E8F\x07[\x02\x02\u0E8F\u0E90\x07V\x02\x02\u0E90\u0E91\x07" + - "G\x02\x02\u0E91\u0E92\x07Z\x02\x02\u0E92\u0E93\x07V\x02\x02\u0E93\u01B0" + - "\x03\x02\x02\x02\u0E94"; - private static readonly _serializedATNSegment10: string = - "\u0E95\x07V\x02\x02\u0E95\u0E96\x07G\x02\x02\u0E96\u0E97\x07Z\x02\x02" + - "\u0E97\u0E98\x07V\x02\x02\u0E98\u01B2\x03\x02\x02\x02\u0E99\u0E9A\x07" + - "O\x02\x02\u0E9A\u0E9B\x07G\x02\x02\u0E9B\u0E9C\x07F\x02\x02\u0E9C\u0E9D" + - "\x07K\x02\x02\u0E9D\u0E9E\x07W\x02\x02\u0E9E\u0E9F\x07O\x02\x02\u0E9F" + - "\u0EA0\x07V\x02\x02\u0EA0\u0EA1\x07G\x02\x02\u0EA1\u0EA2\x07Z\x02\x02" + - "\u0EA2\u0EA3\x07V\x02\x02\u0EA3\u01B4\x03\x02\x02\x02\u0EA4\u0EA5\x07" + - "N\x02\x02\u0EA5\u0EA6\x07Q\x02\x02\u0EA6\u0EA7\x07P\x02\x02\u0EA7\u0EA8" + - "\x07I\x02\x02\u0EA8\u0EA9\x07V\x02\x02\u0EA9\u0EAA\x07G\x02\x02\u0EAA" + - "\u0EAB\x07Z\x02\x02\u0EAB\u0EAC\x07V\x02\x02\u0EAC\u01B6\x03\x02\x02\x02" + - "\u0EAD\u0EAE\x07G\x02\x02\u0EAE\u0EAF\x07P\x02\x02\u0EAF\u0EB0\x07W\x02" + - "\x02\u0EB0\u0EB1\x07O\x02\x02\u0EB1\u01B8\x03\x02\x02\x02\u0EB2\u0EB3" + - "\x07X\x02\x02\u0EB3\u0EB4\x07C\x02\x02\u0EB4\u0EB5\x07T\x02\x02\u0EB5" + - "\u0EB6\x07[\x02\x02\u0EB6\u0EB7\x07K\x02\x02\u0EB7\u0EB8\x07P\x02\x02" + - "\u0EB8\u0EB9\x07I\x02\x02\u0EB9\u01BA\x03\x02\x02\x02\u0EBA\u0EBB\x07" + - "U\x02\x02\u0EBB\u0EBC\x07G\x02\x02\u0EBC\u0EBD\x07T\x02\x02\u0EBD\u0EBE" + - "\x07K\x02\x02\u0EBE\u0EBF\x07C\x02\x02\u0EBF\u0EC0\x07N\x02\x02\u0EC0" + - "\u01BC\x03\x02\x02\x02\u0EC1\u0EC2\x07[\x02\x02\u0EC2\u0EC3\x07G\x02\x02" + - "\u0EC3\u0EC4\x07C\x02\x02\u0EC4\u0EC5\x07T\x02\x02\u0EC5\u0EC6\x07a\x02" + - "\x02\u0EC6\u0EC7\x07O\x02\x02\u0EC7\u0EC8\x07Q\x02\x02\u0EC8\u0EC9\x07" + - "P\x02\x02\u0EC9\u0ECA\x07V\x02\x02\u0ECA\u0ECB\x07J\x02\x02\u0ECB\u01BE" + - "\x03\x02\x02\x02\u0ECC\u0ECD\x07F\x02\x02\u0ECD\u0ECE\x07C\x02\x02\u0ECE" + - "\u0ECF\x07[\x02\x02\u0ECF\u0ED0\x07a\x02\x02\u0ED0\u0ED1\x07J\x02\x02" + - "\u0ED1\u0ED2\x07Q\x02\x02\u0ED2\u0ED3\x07W\x02\x02\u0ED3\u0ED4\x07T\x02" + - "\x02\u0ED4\u01C0\x03\x02\x02\x02\u0ED5\u0ED6\x07F\x02\x02\u0ED6\u0ED7" + - "\x07C\x02\x02\u0ED7\u0ED8\x07[\x02\x02\u0ED8\u0ED9\x07a\x02\x02\u0ED9" + - "\u0EDA\x07O\x02\x02\u0EDA\u0EDB\x07K\x02\x02\u0EDB\u0EDC\x07P\x02\x02" + - "\u0EDC\u0EDD\x07W\x02\x02\u0EDD\u0EDE\x07V\x02\x02\u0EDE\u0EDF\x07G\x02" + - "\x02\u0EDF\u01C2\x03\x02\x02\x02\u0EE0\u0EE1\x07F\x02\x02\u0EE1\u0EE2" + - "\x07C\x02\x02\u0EE2\u0EE3\x07[\x02\x02\u0EE3\u0EE4\x07a\x02\x02\u0EE4" + - "\u0EE5\x07U\x02\x02\u0EE5\u0EE6\x07G\x02\x02\u0EE6\u0EE7\x07E\x02\x02" + - "\u0EE7\u0EE8\x07Q\x02\x02\u0EE8\u0EE9\x07P\x02\x02\u0EE9\u0EEA\x07F\x02" + - "\x02\u0EEA\u01C4\x03\x02\x02\x02\u0EEB\u0EEC\x07J\x02\x02\u0EEC\u0EED" + - "\x07Q\x02\x02\u0EED\u0EEE\x07W\x02\x02\u0EEE\u0EEF\x07T\x02\x02\u0EEF" + - "\u0EF0\x07a\x02\x02\u0EF0\u0EF1\x07O\x02\x02\u0EF1\u0EF2\x07K\x02\x02" + - "\u0EF2\u0EF3\x07P\x02\x02\u0EF3\u0EF4\x07W\x02\x02\u0EF4\u0EF5\x07V\x02" + - "\x02\u0EF5\u0EF6\x07G\x02\x02\u0EF6\u01C6\x03\x02\x02\x02\u0EF7\u0EF8" + - "\x07J\x02\x02\u0EF8\u0EF9\x07Q\x02\x02\u0EF9\u0EFA\x07W\x02\x02\u0EFA" + - "\u0EFB\x07T\x02\x02\u0EFB\u0EFC\x07a\x02\x02\u0EFC\u0EFD\x07U\x02\x02" + - "\u0EFD\u0EFE\x07G\x02\x02\u0EFE\u0EFF\x07E\x02\x02\u0EFF\u0F00\x07Q\x02" + - "\x02\u0F00\u0F01\x07P\x02\x02\u0F01\u0F02\x07F\x02\x02\u0F02\u01C8\x03" + - "\x02\x02\x02\u0F03\u0F04\x07O\x02\x02\u0F04\u0F05\x07K\x02\x02\u0F05\u0F06" + - "\x07P\x02\x02\u0F06\u0F07\x07W\x02\x02\u0F07\u0F08\x07V\x02\x02\u0F08" + - "\u0F09\x07G\x02\x02\u0F09\u0F0A\x07a\x02\x02\u0F0A\u0F0B\x07U\x02\x02" + - "\u0F0B\u0F0C\x07G\x02\x02\u0F0C\u0F0D\x07E\x02\x02\u0F0D\u0F0E\x07Q\x02" + - "\x02\u0F0E\u0F0F\x07P\x02\x02\u0F0F\u0F10\x07F\x02\x02\u0F10\u01CA\x03" + - "\x02\x02\x02\u0F11\u0F12\x07U\x02\x02\u0F12\u0F13\x07G\x02\x02\u0F13\u0F14" + - "\x07E\x02\x02\u0F14\u0F15\x07Q\x02\x02\u0F15\u0F16\x07P\x02\x02\u0F16" + - "\u0F17\x07F\x02\x02\u0F17\u0F18\x07a\x02\x02\u0F18\u0F19\x07O\x02\x02" + - "\u0F19\u0F1A\x07K\x02\x02\u0F1A\u0F1B\x07E\x02\x02\u0F1B\u0F1C\x07T\x02" + - "\x02\u0F1C\u0F1D\x07Q\x02\x02\u0F1D\u0F1E\x07U\x02\x02\u0F1E\u0F1F\x07" + - "G\x02\x02\u0F1F\u0F20\x07E\x02\x02\u0F20\u0F21\x07Q\x02\x02\u0F21\u0F22" + - "\x07P\x02\x02\u0F22\u0F23\x07F\x02\x02\u0F23\u01CC\x03\x02\x02\x02\u0F24" + - "\u0F25\x07O\x02\x02\u0F25\u0F26\x07K\x02\x02\u0F26\u0F27\x07P\x02\x02" + - "\u0F27\u0F28\x07W\x02\x02\u0F28\u0F29\x07V\x02\x02\u0F29\u0F2A\x07G\x02" + - "\x02\u0F2A\u0F2B\x07a\x02\x02\u0F2B\u0F2C\x07O\x02\x02\u0F2C\u0F2D\x07" + - "K\x02\x02\u0F2D\u0F2E\x07E\x02\x02\u0F2E\u0F2F\x07T\x02\x02\u0F2F\u0F30" + - "\x07Q\x02\x02\u0F30\u0F31\x07U\x02\x02\u0F31\u0F32\x07G\x02\x02\u0F32" + - "\u0F33\x07E\x02\x02\u0F33\u0F34\x07Q\x02\x02\u0F34\u0F35\x07P\x02\x02" + - "\u0F35\u0F36\x07F\x02\x02\u0F36\u01CE\x03\x02\x02\x02\u0F37\u0F38\x07" + - "J\x02\x02\u0F38\u0F39\x07Q\x02\x02\u0F39\u0F3A\x07W\x02\x02\u0F3A\u0F3B" + - "\x07T\x02\x02\u0F3B\u0F3C\x07a\x02\x02\u0F3C\u0F3D\x07O\x02\x02\u0F3D" + - "\u0F3E\x07K\x02\x02\u0F3E\u0F3F\x07E\x02\x02\u0F3F\u0F40\x07T\x02\x02" + - "\u0F40\u0F41\x07Q\x02\x02\u0F41\u0F42\x07U\x02\x02\u0F42\u0F43\x07G\x02" + - "\x02\u0F43\u0F44\x07E\x02\x02\u0F44\u0F45\x07Q\x02\x02\u0F45\u0F46\x07" + - "P\x02\x02\u0F46\u0F47\x07F\x02\x02\u0F47\u01D0\x03\x02\x02\x02\u0F48\u0F49" + - "\x07F\x02\x02\u0F49\u0F4A\x07C\x02\x02\u0F4A\u0F4B\x07[\x02\x02\u0F4B" + - "\u0F4C\x07a\x02\x02\u0F4C\u0F4D\x07O\x02\x02\u0F4D\u0F4E\x07K\x02\x02" + - "\u0F4E\u0F4F\x07E\x02\x02\u0F4F\u0F50\x07T\x02\x02\u0F50\u0F51\x07Q\x02" + - "\x02\u0F51\u0F52\x07U\x02\x02\u0F52\u0F53\x07G\x02\x02\u0F53\u0F54\x07" + - "E\x02\x02\u0F54\u0F55\x07Q\x02\x02\u0F55\u0F56\x07P\x02\x02\u0F56\u0F57" + - "\x07F\x02\x02\u0F57\u01D2\x03\x02\x02\x02\u0F58\u0F59\x07L\x02\x02\u0F59" + - "\u0F5A\x07U\x02\x02\u0F5A\u0F5B\x07Q\x02\x02\u0F5B\u0F5C\x07P\x02\x02" + - "\u0F5C\u0F5D\x07a\x02\x02\u0F5D\u0F5E\x07X\x02\x02\u0F5E\u0F5F\x07C\x02" + - "\x02\u0F5F\u0F60\x07N\x02\x02\u0F60\u0F61\x07K\x02\x02\u0F61\u0F62\x07" + - "F\x02\x02\u0F62\u01D4\x03\x02\x02\x02\u0F63\u0F64\x07L\x02\x02\u0F64\u0F65" + - "\x07U\x02\x02\u0F65\u0F66\x07Q\x02\x02\u0F66\u0F67\x07P\x02\x02\u0F67" + - "\u0F68\x07a\x02\x02\u0F68\u0F69\x07U\x02\x02\u0F69\u0F6A\x07E\x02\x02" + - "\u0F6A\u0F6B\x07J\x02\x02\u0F6B\u0F6C\x07G\x02\x02\u0F6C\u0F6D\x07O\x02" + - "\x02\u0F6D\u0F6E\x07C\x02\x02\u0F6E\u0F6F\x07a\x02\x02\u0F6F\u0F70\x07" + - "X\x02\x02\u0F70\u0F71\x07C\x02\x02\u0F71\u0F72\x07N\x02\x02\u0F72\u0F73" + - "\x07K\x02\x02\u0F73\u0F74\x07F\x02\x02\u0F74\u01D6\x03\x02\x02\x02\u0F75" + - "\u0F76\x07C\x02\x02\u0F76\u0F77\x07X\x02\x02\u0F77\u0F78\x07I\x02\x02" + - "\u0F78\u01D8\x03\x02\x02\x02\u0F79\u0F7A\x07D\x02\x02\u0F7A\u0F7B\x07" + - "K\x02\x02\u0F7B\u0F7C\x07V\x02\x02\u0F7C\u0F7D\x07a\x02\x02\u0F7D\u0F7E" + - "\x07C\x02\x02\u0F7E\u0F7F\x07P\x02\x02\u0F7F\u0F80\x07F\x02\x02\u0F80" + - "\u01DA\x03\x02\x02\x02\u0F81\u0F82\x07D\x02\x02\u0F82\u0F83\x07K\x02\x02" + - "\u0F83\u0F84\x07V\x02\x02\u0F84\u0F85\x07a\x02\x02\u0F85\u0F86\x07Q\x02" + - "\x02\u0F86\u0F87\x07T\x02\x02\u0F87\u01DC\x03\x02\x02\x02\u0F88\u0F89" + - "\x07D\x02\x02\u0F89\u0F8A\x07K\x02\x02\u0F8A\u0F8B\x07V\x02\x02\u0F8B" + - "\u0F8C\x07a\x02\x02\u0F8C\u0F8D\x07Z\x02\x02\u0F8D\u0F8E\x07Q\x02\x02" + - "\u0F8E\u0F8F\x07T\x02\x02\u0F8F\u01DE\x03\x02\x02\x02\u0F90\u0F91\x07" + - "E\x02\x02\u0F91\u0F92\x07Q\x02\x02\u0F92\u0F93\x07W\x02\x02\u0F93\u0F94" + - "\x07P\x02\x02\u0F94\u0F95\x07V\x02\x02\u0F95\u01E0\x03\x02\x02\x02\u0F96" + - "\u0F97\x07I\x02\x02\u0F97\u0F98\x07T\x02\x02\u0F98\u0F99\x07Q\x02\x02" + - "\u0F99\u0F9A\x07W\x02\x02\u0F9A\u0F9B\x07R\x02\x02\u0F9B\u0F9C\x07a\x02" + - "\x02\u0F9C\u0F9D\x07E\x02\x02\u0F9D\u0F9E\x07Q\x02\x02\u0F9E\u0F9F\x07" + - "P\x02\x02\u0F9F\u0FA0\x07E\x02\x02\u0FA0\u0FA1\x07C\x02\x02\u0FA1\u0FA2" + - "\x07V\x02\x02\u0FA2\u01E2\x03\x02\x02\x02\u0FA3\u0FA4\x07O\x02\x02\u0FA4" + - "\u0FA5\x07C\x02\x02\u0FA5\u0FA6\x07Z\x02\x02\u0FA6\u01E4\x03\x02\x02\x02" + - "\u0FA7\u0FA8\x07O\x02\x02\u0FA8\u0FA9\x07K\x02\x02\u0FA9\u0FAA\x07P\x02" + - "\x02\u0FAA\u01E6\x03\x02\x02\x02\u0FAB\u0FAC\x07U\x02\x02\u0FAC\u0FAD" + - "\x07V\x02\x02\u0FAD\u0FAE\x07F\x02\x02\u0FAE\u01E8\x03\x02\x02\x02\u0FAF" + - "\u0FB0\x07U\x02\x02\u0FB0\u0FB1\x07V\x02\x02\u0FB1\u0FB2\x07F\x02\x02" + - "\u0FB2\u0FB3\x07F\x02\x02\u0FB3\u0FB4\x07G\x02\x02\u0FB4\u0FB5\x07X\x02" + - "\x02\u0FB5\u01EA\x03\x02\x02\x02\u0FB6\u0FB7\x07U\x02\x02\u0FB7\u0FB8" + - "\x07V\x02\x02\u0FB8\u0FB9\x07F\x02\x02\u0FB9\u0FBA\x07F\x02\x02\u0FBA" + - "\u0FBB\x07G\x02\x02\u0FBB\u0FBC\x07X\x02\x02\u0FBC\u0FBD\x07a\x02\x02" + - "\u0FBD\u0FBE\x07R\x02\x02\u0FBE\u0FBF\x07Q\x02\x02\u0FBF\u0FC0\x07R\x02" + - "\x02\u0FC0\u01EC\x03\x02\x02\x02\u0FC1\u0FC2\x07U\x02\x02\u0FC2\u0FC3" + - "\x07V\x02\x02\u0FC3\u0FC4\x07F\x02\x02\u0FC4\u0FC5\x07F\x02\x02\u0FC5" + - "\u0FC6\x07G\x02\x02\u0FC6\u0FC7\x07X\x02\x02\u0FC7\u0FC8\x07a\x02\x02" + - "\u0FC8\u0FC9\x07U\x02\x02\u0FC9\u0FCA\x07C\x02\x02\u0FCA\u0FCB\x07O\x02" + - "\x02\u0FCB\u0FCC\x07R\x02\x02\u0FCC\u01EE\x03\x02\x02\x02\u0FCD\u0FCE" + - "\x07U\x02\x02\u0FCE\u0FCF\x07W\x02\x02\u0FCF\u0FD0\x07O\x02\x02\u0FD0" + - "\u01F0\x03\x02\x02\x02\u0FD1\u0FD2\x07X\x02\x02\u0FD2\u0FD3\x07C\x02\x02" + - "\u0FD3\u0FD4\x07T\x02\x02\u0FD4\u0FD5\x07a\x02\x02\u0FD5\u0FD6\x07R\x02" + - "\x02\u0FD6\u0FD7\x07Q\x02\x02\u0FD7\u0FD8\x07R\x02\x02\u0FD8\u01F2\x03" + - "\x02\x02\x02\u0FD9\u0FDA\x07X\x02\x02\u0FDA\u0FDB\x07C\x02\x02\u0FDB\u0FDC" + - "\x07T\x02\x02\u0FDC\u0FDD\x07a\x02\x02\u0FDD\u0FDE\x07U\x02\x02\u0FDE" + - "\u0FDF\x07C\x02\x02\u0FDF\u0FE0\x07O\x02\x02\u0FE0\u0FE1\x07R\x02\x02" + - "\u0FE1\u01F4\x03\x02\x02\x02\u0FE2\u0FE3\x07X\x02\x02\u0FE3\u0FE4\x07" + - "C\x02\x02\u0FE4\u0FE5\x07T\x02\x02\u0FE5\u0FE6\x07K\x02\x02\u0FE6\u0FE7" + - "\x07C\x02\x02\u0FE7\u0FE8\x07P\x02\x02\u0FE8\u0FE9\x07E\x02\x02\u0FE9" + - "\u0FEA\x07G\x02\x02\u0FEA\u01F6\x03\x02\x02\x02\u0FEB\u0FEC\x07E\x02\x02" + - "\u0FEC\u0FED\x07W\x02\x02\u0FED\u0FEE\x07T\x02\x02\u0FEE\u0FEF\x07T\x02" + - "\x02\u0FEF\u0FF0\x07G\x02\x02\u0FF0\u0FF1\x07P\x02\x02\u0FF1\u0FF2\x07" + - "V\x02\x02\u0FF2\u0FF3\x07a\x02\x02\u0FF3\u0FF4\x07F\x02\x02\u0FF4\u0FF5" + - "\x07C\x02\x02\u0FF5\u0FF6\x07V\x02\x02\u0FF6\u0FF7\x07G\x02\x02\u0FF7" + - "\u01F8\x03\x02\x02\x02\u0FF8\u0FF9\x07E\x02\x02\u0FF9\u0FFA\x07W\x02\x02" + - "\u0FFA\u0FFB\x07T\x02\x02\u0FFB\u0FFC\x07T\x02\x02\u0FFC\u0FFD\x07G\x02" + - "\x02\u0FFD\u0FFE\x07P\x02\x02\u0FFE\u0FFF\x07V\x02\x02\u0FFF\u1000\x07" + - "a\x02\x02\u1000\u1001\x07V\x02\x02\u1001\u1002\x07K\x02\x02\u1002\u1003" + - "\x07O\x02\x02\u1003\u1004\x07G\x02\x02\u1004\u01FA\x03\x02\x02\x02\u1005" + - "\u1006\x07E\x02\x02\u1006\u1007\x07W\x02\x02\u1007\u1008\x07T\x02\x02" + - "\u1008\u1009\x07T\x02\x02\u1009\u100A\x07G\x02\x02\u100A\u100B\x07P\x02" + - "\x02\u100B\u100C\x07V\x02\x02\u100C\u100D\x07a\x02\x02\u100D\u100E\x07" + - "V\x02\x02\u100E\u100F\x07K\x02\x02\u100F\u1010\x07O\x02\x02\u1010\u1011" + - "\x07G\x02\x02\u1011\u1012\x07U\x02\x02\u1012\u1013\x07V\x02\x02\u1013" + - "\u1014\x07C\x02\x02\u1014\u1015\x07O\x02\x02\u1015\u1016\x07R\x02\x02" + - "\u1016\u01FC\x03\x02\x02\x02\u1017\u1018\x07N\x02\x02\u1018\u1019\x07" + - "Q\x02\x02\u1019\u101A\x07E\x02\x02\u101A\u101B\x07C\x02\x02\u101B\u101C" + - "\x07N\x02\x02\u101C\u101D\x07V\x02\x02\u101D\u101E\x07K\x02\x02\u101E" + - "\u101F\x07O\x02\x02\u101F\u1020\x07G\x02\x02\u1020\u01FE\x03\x02\x02\x02" + - "\u1021\u1022\x07E\x02\x02\u1022\u1023\x07W\x02\x02\u1023\u1024\x07T\x02" + - "\x02\u1024\u1025\x07F\x02\x02\u1025\u1026\x07C\x02\x02\u1026\u1027\x07" + - "V\x02\x02\u1027\u1028\x07G\x02\x02\u1028\u0200\x03\x02\x02\x02\u1029\u102A" + - "\x07E\x02\x02\u102A\u102B\x07W\x02\x02\u102B\u102C\x07T\x02\x02\u102C" + - "\u102D\x07V\x02\x02\u102D\u102E\x07K\x02\x02\u102E\u102F\x07O\x02\x02" + - "\u102F\u1030\x07G\x02\x02\u1030\u0202\x03\x02\x02\x02\u1031\u1032\x07" + - "F\x02\x02\u1032\u1033\x07C\x02\x02\u1033\u1034\x07V\x02\x02\u1034\u1035" + - "\x07G\x02\x02\u1035\u1036\x07a\x02\x02\u1036\u1037\x07C\x02\x02\u1037" + - "\u1038\x07F\x02\x02\u1038\u1039\x07F\x02\x02\u1039\u0204\x03\x02\x02\x02" + - "\u103A\u103B\x07F\x02\x02\u103B\u103C\x07C\x02\x02\u103C\u103D\x07V\x02" + - "\x02\u103D\u103E\x07G\x02\x02\u103E\u103F\x07a\x02\x02\u103F\u1040\x07" + - "U\x02\x02\u1040\u1041\x07W\x02\x02\u1041\u1042\x07D\x02\x02\u1042\u0206" + - "\x03\x02\x02\x02\u1043\u1044\x07G\x02\x02\u1044\u1045\x07Z\x02\x02\u1045" + - "\u1046\x07V\x02\x02\u1046\u1047\x07T\x02\x02\u1047\u1048\x07C\x02\x02" + - "\u1048\u1049\x07E\x02\x02\u1049\u104A\x07V\x02\x02\u104A\u0208\x03\x02" + - "\x02\x02\u104B\u104C\x07N\x02\x02\u104C\u104D\x07Q\x02\x02\u104D\u104E" + - "\x07E\x02\x02\u104E\u104F\x07C\x02\x02\u104F\u1050\x07N\x02\x02\u1050" + - "\u1051\x07V\x02\x02\u1051\u1052\x07K\x02\x02\u1052\u1053\x07O\x02\x02" + - "\u1053\u1054\x07G\x02\x02\u1054\u1055\x07U\x02\x02\u1055\u1056\x07V\x02" + - "\x02\u1056\u1057\x07C\x02\x02\u1057\u1058\x07O\x02\x02\u1058\u1059\x07" + - "R\x02\x02\u1059\u020A\x03\x02\x02\x02\u105A\u105B\x07P\x02\x02\u105B\u105C" + - "\x07Q\x02\x02\u105C\u105D\x07Y\x02\x02\u105D\u020C\x03\x02\x02\x02\u105E" + - "\u105F\x07R\x02\x02\u105F\u1060\x07Q\x02\x02\u1060\u1061\x07U\x02\x02" + - "\u1061\u1062\x07K\x02\x02\u1062\u1063\x07V\x02\x02\u1063\u1064\x07K\x02" + - "\x02\u1064\u1065\x07Q\x02\x02\u1065\u1066\x07P\x02\x02\u1066\u020E\x03" + - "\x02\x02\x02\u1067\u1068\x07U\x02\x02\u1068\u1069\x07W\x02\x02\u1069\u106A" + - "\x07D\x02\x02\u106A\u106B\x07U\x02\x02\u106B\u106C\x07V\x02\x02\u106C" + - "\u106D\x07T\x02\x02\u106D\u0210\x03\x02\x02\x02\u106E\u106F\x07U\x02\x02" + - "\u106F\u1070\x07W\x02\x02\u1070\u1071\x07D\x02\x02\u1071\u1072\x07U\x02" + - "\x02\u1072\u1073\x07V\x02\x02\u1073\u1074\x07T\x02\x02\u1074\u1075\x07" + - "K\x02\x02\u1075\u1076\x07P\x02\x02\u1076\u1077\x07I\x02\x02\u1077\u0212" + - "\x03\x02\x02\x02\u1078\u1079\x07U\x02\x02\u1079\u107A\x07[\x02\x02\u107A" + - "\u107B\x07U\x02\x02\u107B\u107C\x07F\x02\x02\u107C\u107D\x07C\x02\x02" + - "\u107D\u107E\x07V\x02\x02\u107E\u107F\x07G\x02\x02\u107F\u0214\x03\x02" + - "\x02\x02\u1080\u1081\x07V\x02\x02\u1081\u1082\x07T\x02\x02\u1082\u1083" + - "\x07K\x02\x02\u1083\u1084\x07O\x02\x02\u1084\u0216\x03\x02\x02\x02\u1085" + - "\u1086\x07W\x02\x02\u1086\u1087\x07V\x02\x02\u1087\u1088\x07E\x02\x02" + - "\u1088\u1089\x07a\x02\x02\u1089\u108A\x07F\x02\x02\u108A\u108B\x07C\x02" + - "\x02\u108B\u108C\x07V\x02\x02\u108C\u108D\x07G\x02\x02\u108D\u0218\x03" + - "\x02\x02\x02\u108E\u108F\x07W\x02\x02\u108F\u1090\x07V\x02\x02\u1090\u1091" + - "\x07E\x02\x02\u1091\u1092\x07a\x02\x02\u1092\u1093\x07V\x02\x02\u1093" + - "\u1094\x07K\x02\x02\u1094\u1095\x07O\x02\x02\u1095\u1096\x07G\x02\x02" + - "\u1096\u021A\x03\x02\x02\x02\u1097\u1098\x07W\x02\x02\u1098\u1099\x07" + - "V\x02\x02\u1099\u109A\x07E\x02\x02\u109A\u109B\x07a\x02\x02\u109B\u109C" + - "\x07V\x02\x02\u109C\u109D\x07K\x02\x02\u109D\u109E\x07O\x02\x02\u109E" + - "\u109F\x07G\x02\x02\u109F\u10A0\x07U\x02\x02\u10A0\u10A1\x07V\x02\x02" + - "\u10A1\u10A2\x07C\x02\x02\u10A2\u10A3\x07O\x02\x02\u10A3\u10A4\x07R\x02" + - "\x02\u10A4\u021C\x03\x02\x02\x02\u10A5\u10A6\x07C\x02\x02\u10A6\u10A7" + - "\x07E\x02\x02\u10A7\u10A8\x07E\x02\x02\u10A8\u10A9\x07Q\x02\x02\u10A9" + - "\u10AA\x07W\x02\x02\u10AA\u10AB\x07P\x02\x02\u10AB\u10AC\x07V\x02\x02" + - "\u10AC\u021E\x03\x02\x02\x02\u10AD\u10AE\x07C\x02\x02\u10AE\u10AF\x07" + - "E\x02\x02\u10AF\u10B0\x07V\x02\x02\u10B0\u10B1\x07K\x02\x02\u10B1\u10B2" + - "\x07Q\x02\x02\u10B2\u10B3\x07P\x02\x02\u10B3\u0220\x03\x02\x02\x02\u10B4" + - "\u10B5\x07C\x02\x02\u10B5\u10B6\x07H\x02\x02\u10B6\u10B7\x07V\x02\x02" + - "\u10B7\u10B8\x07G\x02\x02\u10B8\u10B9\x07T\x02\x02\u10B9\u0222\x03\x02" + - "\x02\x02\u10BA\u10BB\x07C\x02\x02\u10BB\u10BC\x07I\x02\x02\u10BC\u10BD" + - "\x07I\x02\x02\u10BD\u10BE\x07T\x02\x02\u10BE\u10BF\x07G\x02\x02\u10BF" + - "\u10C0\x07I\x02\x02\u10C0\u10C1\x07C\x02\x02\u10C1\u10C2\x07V\x02\x02" + - "\u10C2\u10C3\x07G\x02\x02\u10C3\u0224\x03\x02\x02\x02\u10C4\u10C5\x07" + - "C\x02\x02\u10C5\u10C6\x07N\x02\x02\u10C6\u10C7\x07I\x02\x02\u10C7\u10C8" + - "\x07Q\x02\x02\u10C8\u10C9\x07T\x02\x02\u10C9\u10CA\x07K\x02\x02\u10CA" + - "\u10CB\x07V\x02\x02\u10CB\u10CC\x07J\x02\x02\u10CC\u10CD\x07O\x02\x02" + - "\u10CD\u0226\x03\x02\x02\x02\u10CE\u10CF\x07C\x02\x02\u10CF\u10D0\x07" + - "P\x02\x02\u10D0\u10D1\x07[\x02\x02\u10D1\u0228\x03\x02\x02\x02\u10D2\u10D3" + - "\x07C\x02\x02\u10D3\u10D4\x07V\x02\x02\u10D4\u022A\x03\x02\x02\x02\u10D5" + - "\u10D6\x07C\x02\x02\u10D6\u10D7\x07W\x02\x02\u10D7\u10D8\x07V\x02\x02" + - "\u10D8\u10D9\x07J\x02\x02\u10D9\u10DA\x07Q\x02\x02\u10DA\u10DB\x07T\x02" + - "\x02\u10DB\u10DC\x07U\x02\x02\u10DC\u022C\x03\x02\x02\x02\u10DD\u10DE" + - "\x07C\x02\x02\u10DE\u10DF\x07W\x02\x02\u10DF\u10E0\x07V\x02\x02\u10E0" + - "\u10E1\x07Q\x02\x02\u10E1\u10E2\x07E\x02\x02\u10E2\u10E3\x07Q\x02\x02" + - "\u10E3\u10E4\x07O\x02\x02\u10E4\u10E5\x07O\x02\x02\u10E5\u10E6\x07K\x02" + - "\x02\u10E6\u10E7\x07V\x02\x02\u10E7\u022E\x03\x02\x02\x02\u10E8\u10E9" + - "\x07C\x02\x02\u10E9\u10EA\x07W\x02\x02\u10EA\u10EB\x07V\x02\x02\u10EB" + - "\u10EC\x07Q\x02\x02\u10EC\u10ED\x07G\x02\x02\u10ED\u10EE\x07Z\x02\x02" + - "\u10EE\u10EF\x07V\x02\x02\u10EF\u10F0\x07G\x02\x02\u10F0\u10F1\x07P\x02" + - "\x02\u10F1\u10F2\x07F\x02\x02\u10F2\u10F3\x07a\x02\x02\u10F3\u10F4\x07" + - "U\x02\x02\u10F4\u10F5\x07K\x02\x02\u10F5\u10F6\x07\\\x02\x02\u10F6\u10F7" + - "\x07G\x02\x02\u10F7\u0230\x03\x02\x02\x02\u10F8\u10F9\x07C\x02\x02\u10F9" + - "\u10FA\x07W\x02\x02\u10FA\u10FB\x07V\x02\x02\u10FB\u10FC\x07Q\x02\x02" + - "\u10FC\u10FD\x07a\x02\x02\u10FD\u10FE\x07K\x02\x02\u10FE\u10FF\x07P\x02" + - "\x02\u10FF\u1100\x07E\x02\x02\u1100\u1101\x07T\x02\x02\u1101\u1102\x07" + - "G\x02\x02\u1102\u1103\x07O\x02\x02\u1103\u1104\x07G\x02\x02\u1104\u1105" + - "\x07P\x02\x02\u1105\u1106\x07V\x02\x02\u1106\u0232\x03\x02\x02\x02\u1107" + - "\u1108\x07C\x02\x02\u1108\u1109\x07X\x02\x02\u1109\u110A\x07I\x02\x02" + - "\u110A\u110B\x07a\x02\x02\u110B\u110C\x07T\x02\x02\u110C\u110D\x07Q\x02" + - "\x02\u110D\u110E\x07Y\x02\x02\u110E\u110F\x07a\x02\x02\u110F\u1110\x07" + - "N\x02\x02\u1110\u1111\x07G\x02\x02\u1111\u1112\x07P\x02\x02\u1112\u1113" + - "\x07I\x02\x02\u1113\u1114\x07V\x02\x02\u1114\u1115\x07J\x02\x02\u1115" + - "\u0234\x03\x02\x02\x02\u1116\u1117\x07D\x02\x02\u1117\u1118\x07G\x02\x02" + - "\u1118\u1119\x07I\x02\x02\u1119\u111A\x07K\x02\x02\u111A\u111B\x07P\x02" + - "\x02\u111B\u0236\x03\x02\x02\x02\u111C\u111D\x07D\x02\x02\u111D\u111E" + - "\x07K\x02\x02\u111E\u111F\x07P\x02\x02\u111F\u1120\x07N\x02\x02\u1120" + - "\u1121\x07Q\x02\x02\u1121\u1122\x07I\x02\x02\u1122\u0238\x03\x02\x02\x02" + - "\u1123\u1124\x07D\x02\x02\u1124\u1125\x07K\x02\x02\u1125\u1126\x07V\x02" + - "\x02\u1126\u023A\x03\x02\x02\x02\u1127\u1128\x07D\x02\x02\u1128\u1129" + - "\x07N\x02\x02\u1129\u112A\x07Q\x02\x02\u112A\u112B\x07E\x02\x02\u112B" + - "\u112C\x07M\x02\x02\u112C\u023C\x03\x02\x02\x02\u112D\u112E\x07D\x02\x02" + - "\u112E\u112F\x07Q\x02\x02\u112F\u1130\x07Q\x02\x02\u1130\u1131\x07N\x02" + - "\x02\u1131\u023E\x03\x02\x02\x02\u1132\u1133\x07D\x02\x02\u1133\u1134" + - "\x07Q\x02\x02\u1134\u1135\x07Q\x02\x02\u1135\u1136\x07N\x02\x02\u1136" + - "\u1137\x07G\x02\x02\u1137\u1138\x07C\x02\x02\u1138\u1139\x07P\x02\x02" + - "\u1139\u0240\x03\x02\x02\x02\u113A\u113B\x07D\x02\x02\u113B\u113C\x07" + - "V\x02\x02\u113C\u113D\x07T\x02\x02\u113D\u113E\x07G\x02\x02\u113E\u113F" + - "\x07G\x02\x02\u113F\u0242\x03\x02\x02\x02\u1140\u1141\x07E\x02\x02\u1141" + - "\u1142\x07C\x02\x02\u1142\u1143\x07E\x02\x02\u1143\u1144\x07J\x02\x02" + - "\u1144\u1145\x07G\x02\x02\u1145\u0244\x03\x02\x02\x02\u1146\u1147\x07" + - "E\x02\x02\u1147\u1148\x07C\x02\x02\u1148\u1149\x07U\x02\x02\u1149\u114A" + - "\x07E\x02\x02\u114A\u114B\x07C\x02\x02\u114B\u114C\x07F\x02\x02\u114C" + - "\u114D\x07G\x02\x02\u114D\u114E\x07F\x02\x02\u114E\u0246\x03\x02\x02\x02" + - "\u114F\u1150\x07E\x02\x02\u1150\u1151\x07J\x02\x02\u1151\u1152\x07C\x02" + - "\x02\u1152\u1153\x07K\x02\x02\u1153\u1154\x07P\x02\x02\u1154\u0248\x03" + - "\x02\x02\x02\u1155\u1156\x07E\x02\x02\u1156\u1157\x07J\x02\x02\u1157\u1158" + - "\x07C\x02\x02\u1158\u1159\x07P\x02\x02\u1159\u115A\x07I\x02\x02\u115A" + - "\u115B\x07G\x02\x02\u115B\u115C\x07F\x02\x02\u115C\u024A\x03\x02\x02\x02" + - "\u115D\u115E\x07E\x02\x02\u115E\u115F\x07J\x02\x02\u115F\u1160\x07C\x02" + - "\x02\u1160\u1161\x07P\x02\x02\u1161\u1162\x07P\x02\x02\u1162\u1163\x07" + - "G\x02\x02\u1163\u1164\x07N\x02\x02\u1164\u024C\x03\x02\x02\x02\u1165\u1166" + - "\x07E\x02\x02\u1166\u1167\x07J\x02\x02\u1167\u1168\x07G\x02\x02\u1168" + - "\u1169\x07E\x02\x02\u1169\u116A\x07M\x02\x02\u116A\u116B\x07U\x02\x02" + - "\u116B\u116C\x07W\x02\x02\u116C\u116D\x07O\x02\x02\u116D\u024E\x03\x02" + - "\x02\x02\u116E\u116F\x07R\x02\x02\u116F\u1170\x07C\x02\x02\u1170\u1171" + - "\x07I\x02\x02\u1171\u1172\x07G\x02\x02\u1172\u1173\x07a\x02\x02\u1173" + - "\u1174\x07E\x02\x02\u1174\u1175\x07J\x02\x02\u1175\u1176\x07G\x02\x02" + - "\u1176\u1177\x07E\x02\x02\u1177\u1178\x07M\x02\x02\u1178\u1179\x07U\x02" + - "\x02\u1179\u117A\x07W\x02\x02\u117A\u117B\x07O\x02\x02\u117B\u0250\x03" + - "\x02\x02\x02\u117C\u117D\x07E\x02\x02\u117D\u117E\x07K\x02\x02\u117E\u117F" + - "\x07R\x02\x02\u117F\u1180\x07J\x02\x02\u1180\u1181\x07G\x02\x02\u1181" + - "\u1182\x07T\x02\x02\u1182\u0252\x03\x02\x02\x02\u1183\u1184\x07E\x02\x02" + - "\u1184\u1185\x07N\x02\x02\u1185\u1186\x07C\x02\x02\u1186\u1187\x07U\x02" + - "\x02\u1187\u1188\x07U\x02\x02\u1188\u1189\x07a\x02\x02\u1189\u118A\x07" + - "Q\x02\x02\u118A\u118B\x07T\x02\x02\u118B\u118C\x07K\x02\x02\u118C\u118D" + - "\x07I\x02\x02\u118D\u118E\x07K\x02\x02\u118E\u118F\x07P\x02\x02\u118F" + - "\u0254\x03\x02\x02\x02\u1190\u1191\x07E\x02\x02\u1191\u1192\x07N\x02\x02" + - "\u1192\u1193\x07K\x02\x02\u1193\u1194\x07G\x02\x02\u1194\u1195\x07P\x02" + - "\x02\u1195\u1196\x07V\x02\x02\u1196\u0256\x03\x02\x02\x02\u1197\u1198" + - "\x07E\x02\x02\u1198\u1199\x07N\x02\x02\u1199\u119A\x07Q\x02\x02\u119A" + - "\u119B\x07U\x02\x02\u119B\u119C\x07G\x02\x02\u119C\u0258\x03\x02\x02\x02" + - "\u119D\u119E\x07E\x02\x02\u119E\u119F\x07Q\x02\x02\u119F\u11A0\x07C\x02" + - "\x02\u11A0\u11A1\x07N\x02\x02\u11A1\u11A2\x07G\x02\x02\u11A2\u11A3\x07" + - "U\x02\x02\u11A3\u11A4\x07E\x02\x02\u11A4\u11A5\x07G\x02\x02\u11A5\u025A" + - "\x03\x02\x02\x02\u11A6\u11A7\x07E\x02\x02\u11A7\u11A8\x07Q\x02\x02\u11A8" + - "\u11A9\x07F\x02\x02\u11A9\u11AA\x07G\x02\x02\u11AA\u025C\x03\x02\x02\x02" + - "\u11AB\u11AC\x07E\x02\x02\u11AC\u11AD\x07Q\x02\x02\u11AD\u11AE\x07N\x02" + - "\x02\u11AE\u11AF\x07W\x02\x02\u11AF\u11B0\x07O\x02\x02\u11B0\u11B1\x07" + - "P\x02\x02\u11B1\u11B2\x07U\x02\x02\u11B2\u025E\x03\x02\x02\x02\u11B3\u11B4" + - "\x07E\x02\x02\u11B4\u11B5\x07Q\x02\x02\u11B5\u11B6\x07N\x02\x02\u11B6" + - "\u11B7\x07W\x02\x02\u11B7\u11B8\x07O\x02\x02\u11B8\u11B9\x07P\x02\x02" + - "\u11B9\u11BA\x07a\x02\x02\u11BA\u11BB\x07H\x02\x02\u11BB\u11BC\x07Q\x02" + - "\x02\u11BC\u11BD\x07T\x02\x02\u11BD\u11BE\x07O\x02\x02\u11BE\u11BF\x07" + - "C\x02\x02\u11BF\u11C0\x07V\x02\x02\u11C0\u0260\x03\x02\x02\x02\u11C1\u11C2" + - "\x07E\x02\x02\u11C2\u11C3\x07Q\x02\x02\u11C3\u11C4\x07N\x02\x02\u11C4" + - "\u11C5\x07W\x02\x02\u11C5\u11C6\x07O\x02\x02\u11C6\u11C7\x07P\x02\x02" + - "\u11C7\u11C8\x07a\x02\x02\u11C8\u11C9\x07P\x02\x02\u11C9\u11CA\x07C\x02" + - "\x02\u11CA\u11CB\x07O\x02\x02\u11CB\u11CC\x07G\x02\x02\u11CC\u0262\x03" + - "\x02\x02\x02\u11CD\u11CE\x07E\x02\x02\u11CE\u11CF\x07Q\x02\x02\u11CF\u11D0" + - "\x07O\x02\x02\u11D0\u11D1\x07O\x02\x02\u11D1\u11D2\x07G\x02\x02\u11D2" + - "\u11D3\x07P\x02\x02\u11D3\u11D4\x07V\x02\x02\u11D4\u0264\x03\x02\x02\x02" + - "\u11D5\u11D6\x07"; - private static readonly _serializedATNSegment11: string = - "E\x02\x02\u11D6\u11D7\x07Q\x02\x02\u11D7\u11D8\x07O\x02\x02\u11D8\u11D9" + - "\x07O\x02\x02\u11D9\u11DA\x07K\x02\x02\u11DA\u11DB\x07V\x02\x02\u11DB" + - "\u0266\x03\x02\x02\x02\u11DC\u11DD\x07E\x02\x02\u11DD\u11DE\x07Q\x02\x02" + - "\u11DE\u11DF\x07O\x02\x02\u11DF\u11E0\x07R\x02\x02\u11E0\u11E1\x07C\x02" + - "\x02\u11E1\u11E2\x07E\x02\x02\u11E2\u11E3\x07V\x02\x02\u11E3\u0268\x03" + - "\x02\x02\x02\u11E4\u11E5\x07E\x02\x02\u11E5\u11E6\x07Q\x02\x02\u11E6\u11E7" + - "\x07O\x02\x02\u11E7\u11E8\x07R\x02\x02\u11E8\u11E9\x07N\x02\x02\u11E9" + - "\u11EA\x07G\x02\x02\u11EA\u11EB\x07V\x02\x02\u11EB\u11EC\x07K\x02\x02" + - "\u11EC\u11ED\x07Q\x02\x02\u11ED\u11EE\x07P\x02\x02\u11EE\u026A\x03\x02" + - "\x02\x02\u11EF\u11F0\x07E\x02\x02\u11F0\u11F1\x07Q\x02\x02\u11F1\u11F2" + - "\x07O\x02\x02\u11F2\u11F3\x07R\x02\x02\u11F3\u11F4\x07T\x02\x02\u11F4" + - "\u11F5\x07G\x02\x02\u11F5\u11F6\x07U\x02\x02\u11F6\u11F7\x07U\x02\x02" + - "\u11F7\u11F8\x07G\x02\x02\u11F8\u11F9\x07F\x02\x02\u11F9\u026C\x03\x02" + - "\x02\x02\u11FA\u11FB\x07E\x02\x02\u11FB\u11FC\x07Q\x02\x02\u11FC\u11FD" + - "\x07O\x02\x02\u11FD\u11FE\x07R\x02\x02\u11FE\u11FF\x07T\x02\x02\u11FF" + - "\u1200\x07G\x02\x02\u1200\u1201\x07U\x02\x02\u1201\u1202\x07U\x02\x02" + - "\u1202\u1203\x07K\x02\x02\u1203\u1204\x07Q\x02\x02\u1204\u1205\x07P\x02" + - "\x02\u1205\u026E\x03\x02\x02\x02\u1206\u1207\x07E\x02\x02\u1207\u1208" + - "\x07Q\x02\x02\u1208\u1209\x07P\x02\x02\u1209\u120A\x07E\x02\x02\u120A" + - "\u120B\x07W\x02\x02\u120B\u120C\x07T\x02\x02\u120C\u120D\x07T\x02\x02" + - "\u120D\u120E\x07G\x02\x02\u120E\u120F\x07P\x02\x02\u120F\u1210\x07V\x02" + - "\x02\u1210\u0270\x03\x02\x02\x02\u1211\u1212\x07E\x02\x02\u1212\u1213" + - "\x07Q\x02\x02\u1213\u1214\x07P\x02\x02\u1214\u1215\x07P\x02\x02\u1215" + - "\u1216\x07G\x02\x02\u1216\u1217\x07E\x02\x02\u1217\u1218\x07V\x02\x02" + - "\u1218\u1219\x07K\x02\x02\u1219\u121A\x07Q\x02\x02\u121A\u121B\x07P\x02" + - "\x02\u121B\u0272\x03\x02\x02\x02\u121C\u121D\x07E\x02\x02\u121D\u121E" + - "\x07Q\x02\x02\u121E\u121F\x07P\x02\x02\u121F\u1220\x07U\x02\x02\u1220" + - "\u1221\x07K\x02\x02\u1221\u1222\x07U\x02\x02\u1222\u1223\x07V\x02\x02" + - "\u1223\u1224\x07G\x02\x02\u1224\u1225\x07P\x02\x02\u1225\u1226\x07V\x02" + - "\x02\u1226\u0274\x03\x02\x02\x02\u1227\u1228\x07E\x02\x02\u1228\u1229" + - "\x07Q\x02\x02\u1229\u122A\x07P\x02\x02\u122A\u122B\x07U\x02\x02\u122B" + - "\u122C\x07V\x02\x02\u122C\u122D\x07T\x02\x02\u122D\u122E\x07C\x02\x02" + - "\u122E\u122F\x07K\x02\x02\u122F\u1230\x07P\x02\x02\u1230\u1231\x07V\x02" + - "\x02\u1231\u1232\x07a\x02\x02\u1232\u1233\x07E\x02\x02\u1233\u1234\x07" + - "C\x02\x02\u1234\u1235\x07V\x02\x02\u1235\u1236\x07C\x02\x02\u1236\u1237" + - "\x07N\x02\x02\u1237\u1238\x07Q\x02\x02\u1238\u1239\x07I\x02\x02\u1239" + - "\u0276\x03\x02\x02\x02\u123A\u123B\x07E\x02\x02\u123B\u123C\x07Q\x02\x02" + - "\u123C\u123D\x07P\x02\x02\u123D\u123E\x07U\x02\x02\u123E\u123F\x07V\x02" + - "\x02\u123F\u1240\x07T\x02\x02\u1240\u1241\x07C\x02\x02\u1241\u1242\x07" + - "K\x02\x02\u1242\u1243\x07P\x02\x02\u1243\u1244\x07V\x02\x02\u1244\u1245" + - "\x07a\x02\x02\u1245\u1246\x07U\x02\x02\u1246\u1247\x07E\x02\x02\u1247" + - "\u1248\x07J\x02\x02\u1248\u1249\x07G\x02\x02\u1249\u124A\x07O\x02\x02" + - "\u124A\u124B\x07C\x02\x02\u124B\u0278\x03\x02\x02\x02\u124C\u124D\x07" + - "E\x02\x02\u124D\u124E\x07Q\x02\x02\u124E\u124F\x07P\x02\x02\u124F\u1250" + - "\x07U\x02\x02\u1250\u1251\x07V\x02\x02\u1251\u1252\x07T\x02\x02\u1252" + - "\u1253\x07C\x02\x02\u1253\u1254\x07K\x02\x02\u1254\u1255\x07P\x02\x02" + - "\u1255\u1256\x07V\x02\x02\u1256\u1257\x07a\x02\x02\u1257\u1258\x07P\x02" + - "\x02\u1258\u1259\x07C\x02\x02\u1259\u125A\x07O\x02\x02\u125A\u125B\x07" + - "G\x02\x02\u125B\u027A\x03\x02\x02\x02\u125C\u125D\x07E\x02\x02\u125D\u125E" + - "\x07Q\x02\x02\u125E\u125F\x07P\x02\x02\u125F\u1260\x07V\x02\x02\u1260" + - "\u1261\x07C\x02\x02\u1261\u1262\x07K\x02\x02\u1262\u1263\x07P\x02\x02" + - "\u1263\u1264\x07U\x02\x02\u1264\u027C\x03\x02\x02\x02\u1265\u1266\x07" + - "E\x02\x02\u1266\u1267\x07Q\x02\x02\u1267\u1268\x07P\x02\x02\u1268\u1269" + - "\x07V\x02\x02\u1269\u126A\x07G\x02\x02\u126A\u126B\x07Z\x02\x02\u126B" + - "\u126C\x07V\x02\x02\u126C\u027E\x03\x02\x02\x02\u126D\u126E\x07E\x02\x02" + - "\u126E\u126F\x07Q\x02\x02\u126F\u1270\x07P\x02\x02\u1270\u1271\x07V\x02" + - "\x02\u1271\u1272\x07T\x02\x02\u1272\u1273\x07K\x02\x02\u1273\u1274\x07" + - "D\x02\x02\u1274\u1275\x07W\x02\x02\u1275\u1276\x07V\x02\x02\u1276\u1277" + - "\x07Q\x02\x02\u1277\u1278\x07T\x02\x02\u1278\u1279\x07U\x02\x02\u1279" + - "\u0280\x03\x02\x02\x02\u127A\u127B\x07E\x02\x02\u127B\u127C\x07Q\x02\x02" + - "\u127C\u127D\x07R\x02\x02\u127D\u127E\x07[\x02\x02\u127E\u0282\x03\x02" + - "\x02\x02\u127F\u1280\x07E\x02\x02\u1280\u1281\x07R\x02\x02\u1281\u1282" + - "\x07W\x02\x02\u1282\u0284\x03\x02\x02\x02\u1283\u1284\x07E\x02\x02\u1284" + - "\u1285\x07W\x02\x02\u1285\u1286\x07T\x02\x02\u1286\u1287\x07U\x02\x02" + - "\u1287\u1288\x07Q\x02\x02\u1288\u1289\x07T\x02\x02\u1289\u128A\x07a\x02" + - "\x02\u128A\u128B\x07P\x02\x02\u128B\u128C\x07C\x02\x02\u128C\u128D\x07" + - "O\x02\x02\u128D\u128E\x07G\x02\x02\u128E\u0286\x03\x02\x02\x02\u128F\u1290" + - "\x07F\x02\x02\u1290\u1291\x07C\x02\x02\u1291\u1292\x07V\x02\x02\u1292" + - "\u1293\x07C\x02\x02\u1293\u0288\x03\x02\x02\x02\u1294\u1295\x07F\x02\x02" + - "\u1295\u1296\x07C\x02\x02\u1296\u1297\x07V\x02\x02\u1297\u1298\x07C\x02" + - "\x02\u1298\u1299\x07H\x02\x02\u1299\u129A\x07K\x02\x02\u129A\u129B\x07" + - "N\x02\x02\u129B\u129C\x07G\x02\x02\u129C\u028A\x03\x02\x02\x02\u129D\u129E" + - "\x07F\x02\x02\u129E\u129F\x07G\x02\x02\u129F\u12A0\x07C\x02\x02\u12A0" + - "\u12A1\x07N\x02\x02\u12A1\u12A2\x07N\x02\x02\u12A2\u12A3\x07Q\x02\x02" + - "\u12A3\u12A4\x07E\x02\x02\u12A4\u12A5\x07C\x02\x02\u12A5\u12A6\x07V\x02" + - "\x02\u12A6\u12A7\x07G\x02\x02\u12A7\u028C\x03\x02\x02\x02\u12A8\u12A9" + - "\x07F\x02\x02\u12A9\u12AA\x07G\x02\x02\u12AA\u12AB\x07H\x02\x02\u12AB" + - "\u12AC\x07C\x02\x02\u12AC\u12AD\x07W\x02\x02\u12AD\u12AE\x07N\x02\x02" + - "\u12AE\u12AF\x07V\x02\x02\u12AF\u12B0\x07a\x02\x02\u12B0\u12B1\x07C\x02" + - "\x02\u12B1\u12B2\x07W\x02\x02\u12B2\u12B3\x07V\x02\x02\u12B3\u12B4\x07" + - "J\x02\x02\u12B4\u028E\x03\x02\x02\x02\u12B5\u12B6\x07F\x02\x02\u12B6\u12B7" + - "\x07G\x02\x02\u12B7\u12B8\x07H\x02\x02\u12B8\u12B9\x07K\x02\x02\u12B9" + - "\u12BA\x07P\x02\x02\u12BA\u12BB\x07G\x02\x02\u12BB\u12BC\x07T\x02\x02" + - "\u12BC\u0290\x03\x02\x02\x02\u12BD\u12BE\x07F\x02\x02\u12BE\u12BF\x07" + - "G\x02\x02\u12BF\u12C0\x07N\x02\x02\u12C0\u12C1\x07C\x02\x02\u12C1\u12C2" + - "\x07[\x02\x02\u12C2\u12C3\x07a\x02\x02\u12C3\u12C4\x07M\x02\x02\u12C4" + - "\u12C5\x07G\x02\x02\u12C5\u12C6\x07[\x02\x02\u12C6\u12C7\x07a\x02\x02" + - "\u12C7\u12C8\x07Y\x02\x02\u12C8\u12C9\x07T\x02\x02\u12C9\u12CA\x07K\x02" + - "\x02\u12CA\u12CB\x07V\x02\x02\u12CB\u12CC\x07G\x02\x02\u12CC\u0292\x03" + - "\x02\x02\x02\u12CD\u12CE\x07F\x02\x02\u12CE\u12CF\x07G\x02\x02\u12CF\u12D0" + - "\x07U\x02\x02\u12D0\u12D1\x07a\x02\x02\u12D1\u12D2\x07M\x02\x02\u12D2" + - "\u12D3\x07G\x02\x02\u12D3\u12D4\x07[\x02\x02\u12D4\u12D5\x07a\x02\x02" + - "\u12D5\u12D6\x07H\x02\x02\u12D6\u12D7\x07K\x02\x02\u12D7\u12D8\x07N\x02" + - "\x02\u12D8\u12D9\x07G\x02\x02\u12D9\u0294\x03\x02\x02\x02\u12DA\u12DB" + - "\x07F\x02\x02\u12DB\u12DC\x07K\x02\x02\u12DC\u12DD\x07T\x02\x02\u12DD" + - "\u12DE\x07G\x02\x02\u12DE\u12DF\x07E\x02\x02\u12DF\u12E0\x07V\x02\x02" + - "\u12E0\u12E1\x07Q\x02\x02\u12E1\u12E2\x07T\x02\x02\u12E2\u12E3\x07[\x02" + - "\x02\u12E3\u0296\x03\x02\x02\x02\u12E4\u12E5\x07F\x02\x02\u12E5\u12E6" + - "\x07K\x02\x02\u12E6\u12E7\x07U\x02\x02\u12E7\u12E8\x07C\x02\x02\u12E8" + - "\u12E9\x07D\x02\x02\u12E9\u12EA\x07N\x02\x02\u12EA\u12EB\x07G\x02\x02" + - "\u12EB\u0298\x03\x02\x02\x02\u12EC\u12ED\x07F\x02\x02\u12ED\u12EE\x07" + - "K\x02\x02\u12EE\u12EF\x07U\x02\x02\u12EF\u12F0\x07E\x02\x02\u12F0\u12F1" + - "\x07C\x02\x02\u12F1\u12F2\x07T\x02\x02\u12F2\u12F3\x07F\x02\x02\u12F3" + - "\u029A\x03\x02\x02\x02\u12F4\u12F5\x07F\x02\x02\u12F5\u12F6\x07K\x02\x02" + - "\u12F6\u12F7\x07U\x02\x02\u12F7\u12F8\x07M\x02\x02\u12F8\u029C\x03\x02" + - "\x02\x02\u12F9\u12FA\x07F\x02\x02\u12FA\u12FB\x07Q\x02\x02\u12FB\u029E" + - "\x03\x02\x02\x02\u12FC\u12FD\x07F\x02\x02\u12FD\u12FE\x07W\x02\x02\u12FE" + - "\u12FF\x07O\x02\x02\u12FF\u1300\x07R\x02\x02\u1300\u1301\x07H\x02\x02" + - "\u1301\u1302\x07K\x02\x02\u1302\u1303\x07N\x02\x02\u1303\u1304\x07G\x02" + - "\x02\u1304\u02A0\x03\x02\x02\x02\u1305\u1306\x07F\x02\x02\u1306\u1307" + - "\x07W\x02\x02\u1307\u1308\x07R\x02\x02\u1308\u1309\x07N\x02\x02\u1309" + - "\u130A\x07K\x02\x02\u130A\u130B\x07E\x02\x02\u130B\u130C\x07C\x02\x02" + - "\u130C\u130D\x07V\x02\x02\u130D\u130E\x07G\x02\x02\u130E\u02A2\x03\x02" + - "\x02\x02\u130F\u1310\x07F\x02\x02\u1310\u1311\x07[\x02\x02\u1311\u1312" + - "\x07P\x02\x02\u1312\u1313\x07C\x02\x02\u1313\u1314\x07O\x02\x02\u1314" + - "\u1315\x07K\x02\x02\u1315\u1316\x07E\x02\x02\u1316\u02A4\x03\x02\x02\x02" + - "\u1317\u1318\x07G\x02\x02\u1318\u1319\x07P\x02\x02\u1319\u131A\x07C\x02" + - "\x02\u131A\u131B\x07D\x02\x02\u131B\u131C\x07N\x02\x02\u131C\u131D\x07" + - "G\x02\x02\u131D\u02A6\x03\x02\x02\x02\u131E\u131F\x07G\x02\x02\u131F\u1320" + - "\x07P\x02\x02\u1320\u1321\x07E\x02\x02\u1321\u1322\x07T\x02\x02\u1322" + - "\u1323\x07[\x02\x02\u1323\u1324\x07R\x02\x02\u1324\u1325\x07V\x02\x02" + - "\u1325\u1326\x07K\x02\x02\u1326\u1327\x07Q\x02\x02\u1327\u1328\x07P\x02" + - "\x02\u1328\u02A8\x03\x02\x02\x02\u1329\u132A\x07G\x02\x02\u132A\u132B" + - "\x07P\x02\x02\u132B\u132C\x07F\x02\x02\u132C\u02AA\x03\x02\x02\x02\u132D" + - "\u132E\x07G\x02\x02\u132E\u132F\x07P\x02\x02\u132F\u1330\x07F\x02\x02" + - "\u1330\u1331\x07U\x02\x02\u1331\u02AC\x03\x02\x02\x02\u1332\u1333\x07" + - "G\x02\x02\u1333\u1334\x07P\x02\x02\u1334\u1335\x07I\x02\x02\u1335\u1336" + - "\x07K\x02\x02\u1336\u1337\x07P\x02\x02\u1337\u1338\x07G\x02\x02\u1338" + - "\u02AE\x03\x02\x02\x02\u1339\u133A\x07G\x02\x02\u133A\u133B\x07P\x02\x02" + - "\u133B\u133C\x07I\x02\x02\u133C\u133D\x07K\x02\x02\u133D\u133E\x07P\x02" + - "\x02\u133E\u133F\x07G\x02\x02\u133F\u1340\x07U\x02\x02\u1340\u02B0\x03" + - "\x02\x02\x02\u1341\u1342\x07G\x02\x02\u1342\u1343\x07T\x02\x02\u1343\u1344" + - "\x07T\x02\x02\u1344\u1345\x07Q\x02\x02\u1345\u1346\x07T\x02\x02\u1346" + - "\u02B2\x03\x02\x02\x02\u1347\u1348\x07G\x02\x02\u1348\u1349\x07T\x02\x02" + - "\u1349\u134A\x07T\x02\x02\u134A\u134B\x07Q\x02\x02\u134B\u134C\x07T\x02" + - "\x02\u134C\u134D\x07U\x02\x02\u134D\u02B4\x03\x02\x02\x02\u134E\u134F" + - "\x07G\x02\x02\u134F\u1350\x07U\x02\x02\u1350\u1351\x07E\x02\x02\u1351" + - "\u1352\x07C\x02\x02\u1352\u1353\x07R\x02\x02\u1353\u1354\x07G\x02\x02" + - "\u1354\u02B6\x03\x02\x02\x02\u1355\u1356\x07G\x02\x02\u1356\u1357\x07" + - "X\x02\x02\u1357\u1358\x07G\x02\x02\u1358\u1359\x07P\x02\x02\u1359\u02B8" + - "\x03\x02\x02\x02\u135A\u135B\x07G\x02\x02\u135B\u135C\x07X\x02\x02\u135C" + - "\u135D\x07G\x02\x02\u135D\u135E\x07P\x02\x02\u135E\u135F\x07V\x02\x02" + - "\u135F\u02BA\x03\x02\x02\x02\u1360\u1361\x07G\x02\x02\u1361\u1362\x07" + - "X\x02\x02\u1362\u1363\x07G\x02\x02\u1363\u1364\x07P\x02\x02\u1364\u1365" + - "\x07V\x02\x02\u1365\u1366\x07U\x02\x02\u1366\u02BC\x03\x02\x02\x02\u1367" + - "\u1368\x07G\x02\x02\u1368\u1369\x07X\x02\x02\u1369\u136A\x07G\x02\x02" + - "\u136A\u136B\x07T\x02\x02\u136B\u136C\x07[\x02\x02\u136C\u02BE\x03\x02" + - "\x02\x02\u136D\u136E\x07G\x02\x02\u136E\u136F\x07Z\x02\x02\u136F\u1370" + - "\x07E\x02\x02\u1370\u1371\x07J\x02\x02\u1371\u1372\x07C\x02\x02\u1372" + - "\u1373\x07P\x02\x02\u1373\u1374\x07I\x02\x02\u1374\u1375\x07G\x02\x02" + - "\u1375\u02C0\x03\x02\x02\x02\u1376\u1377\x07G\x02\x02\u1377\u1378\x07" + - "Z\x02\x02\u1378\u1379\x07E\x02\x02\u1379\u137A\x07N\x02\x02\u137A\u137B" + - "\x07W\x02\x02\u137B\u137C\x07U\x02\x02\u137C\u137D\x07K\x02\x02\u137D" + - "\u137E\x07X\x02\x02\u137E\u137F\x07G\x02\x02\u137F\u02C2\x03\x02\x02\x02" + - "\u1380\u1381\x07G\x02\x02\u1381\u1382\x07Z\x02\x02\u1382\u1383\x07R\x02" + - "\x02\u1383\u1384\x07K\x02\x02\u1384\u1385\x07T\x02\x02\u1385\u1386\x07" + - "G\x02\x02\u1386\u02C4\x03\x02\x02\x02\u1387\u1388\x07G\x02\x02\u1388\u1389" + - "\x07Z\x02\x02\u1389\u138A\x07R\x02\x02\u138A\u138B\x07Q\x02\x02\u138B" + - "\u138C\x07T\x02\x02\u138C\u138D\x07V\x02\x02\u138D\u02C6\x03\x02\x02\x02" + - "\u138E\u138F\x07G\x02\x02\u138F\u1390\x07Z\x02\x02\u1390\u1391\x07V\x02" + - "\x02\u1391\u1392\x07G\x02\x02\u1392\u1393\x07P\x02\x02\u1393\u1394\x07" + - "F\x02\x02\u1394\u1395\x07G\x02\x02\u1395\u1396\x07F\x02\x02\u1396\u02C8" + - "\x03\x02\x02\x02\u1397\u1398\x07G\x02\x02\u1398\u1399\x07Z\x02\x02\u1399" + - "\u139A\x07V\x02\x02\u139A\u139B\x07G\x02\x02\u139B\u139C\x07P\x02\x02" + - "\u139C\u139D\x07V\x02\x02\u139D\u139E\x07a\x02\x02\u139E\u139F\x07U\x02" + - "\x02\u139F\u13A0\x07K\x02\x02\u13A0\u13A1\x07\\\x02\x02\u13A1\u13A2\x07" + - "G\x02\x02\u13A2\u02CA\x03\x02\x02\x02\u13A3\u13A4\x07H\x02\x02\u13A4\u13A5" + - "\x07C\x02\x02\u13A5\u13A6\x07U\x02\x02\u13A6\u13A7\x07V\x02\x02\u13A7" + - "\u02CC\x03\x02\x02\x02\u13A8\u13A9\x07H\x02\x02\u13A9\u13AA\x07C\x02\x02" + - "\u13AA\u13AB\x07W\x02\x02\u13AB\u13AC\x07N\x02\x02\u13AC\u13AD\x07V\x02" + - "\x02\u13AD\u13AE\x07U\x02\x02\u13AE\u02CE\x03\x02\x02\x02\u13AF\u13B0" + - "\x07H\x02\x02\u13B0\u13B1\x07K\x02\x02\u13B1\u13B2\x07G\x02\x02\u13B2" + - "\u13B3\x07N\x02\x02\u13B3\u13B4\x07F\x02\x02\u13B4\u13B5\x07U\x02\x02" + - "\u13B5\u02D0\x03\x02\x02\x02\u13B6\u13B7\x07H\x02\x02\u13B7\u13B8\x07" + - "K\x02\x02\u13B8\u13B9\x07N\x02\x02\u13B9\u13BA\x07G\x02\x02\u13BA\u13BB" + - "\x07a\x02\x02\u13BB\u13BC\x07D\x02\x02\u13BC\u13BD\x07N\x02\x02\u13BD" + - "\u13BE\x07Q\x02\x02\u13BE\u13BF\x07E\x02\x02\u13BF\u13C0\x07M\x02\x02" + - "\u13C0\u13C1\x07a\x02\x02\u13C1\u13C2\x07U\x02\x02\u13C2\u13C3\x07K\x02" + - "\x02\u13C3\u13C4\x07\\\x02\x02\u13C4\u13C5\x07G\x02\x02\u13C5\u02D2\x03" + - "\x02\x02\x02\u13C6\u13C7\x07H\x02\x02\u13C7\u13C8\x07K\x02\x02\u13C8\u13C9" + - "\x07N\x02\x02\u13C9\u13CA\x07V\x02\x02\u13CA\u13CB\x07G\x02\x02\u13CB" + - "\u13CC\x07T\x02\x02\u13CC\u02D4\x03\x02\x02\x02\u13CD\u13CE\x07H\x02\x02" + - "\u13CE\u13CF\x07K\x02\x02\u13CF\u13D0\x07T\x02\x02\u13D0\u13D1\x07U\x02" + - "\x02\u13D1\u13D2\x07V\x02\x02\u13D2\u02D6\x03\x02\x02\x02\u13D3\u13D4" + - "\x07H\x02\x02\u13D4\u13D5\x07K\x02\x02\u13D5\u13D6\x07Z\x02\x02\u13D6" + - "\u13D7\x07G\x02\x02\u13D7\u13D8\x07F\x02\x02\u13D8\u02D8\x03\x02\x02\x02" + - "\u13D9\u13DA\x07H\x02\x02\u13DA\u13DB\x07N\x02\x02\u13DB\u13DC\x07W\x02" + - "\x02\u13DC\u13DD\x07U\x02\x02\u13DD\u13DE\x07J\x02\x02\u13DE\u02DA\x03" + - "\x02\x02\x02\u13DF\u13E0\x07H\x02\x02\u13E0\u13E1\x07Q\x02\x02\u13E1\u13E2" + - "\x07N\x02\x02\u13E2\u13E3\x07N\x02\x02\u13E3\u13E4\x07Q\x02\x02\u13E4" + - "\u13E5\x07Y\x02\x02\u13E5\u13E6\x07U\x02\x02\u13E6\u02DC\x03\x02\x02\x02" + - "\u13E7\u13E8\x07H\x02\x02\u13E8\u13E9\x07Q\x02\x02\u13E9\u13EA\x07W\x02" + - "\x02\u13EA\u13EB\x07P\x02\x02\u13EB\u13EC\x07F\x02\x02\u13EC\u02DE\x03" + - "\x02\x02\x02\u13ED\u13EE\x07H\x02\x02\u13EE\u13EF\x07W\x02\x02\u13EF\u13F0" + - "\x07N\x02\x02\u13F0\u13F1\x07N\x02\x02\u13F1\u02E0\x03\x02\x02\x02\u13F2" + - "\u13F3\x07H\x02\x02\u13F3\u13F4\x07W\x02\x02\u13F4\u13F5\x07P\x02\x02" + - "\u13F5\u13F6\x07E\x02\x02\u13F6\u13F7\x07V\x02\x02\u13F7\u13F8\x07K\x02" + - "\x02\u13F8\u13F9\x07Q\x02\x02\u13F9\u13FA\x07P\x02\x02\u13FA\u02E2\x03" + - "\x02\x02\x02\u13FB\u13FC\x07I\x02\x02\u13FC\u13FD\x07G\x02\x02\u13FD\u13FE" + - "\x07P\x02\x02\u13FE\u13FF\x07G\x02\x02\u13FF\u1400\x07T\x02\x02\u1400" + - "\u1401\x07C\x02\x02\u1401\u1402\x07N\x02\x02\u1402\u02E4\x03\x02\x02\x02" + - "\u1403\u1404\x07I\x02\x02\u1404\u1405\x07N\x02\x02\u1405\u1406\x07Q\x02" + - "\x02\u1406\u1407\x07D\x02\x02\u1407\u1408\x07C\x02\x02\u1408\u1409\x07" + - "N\x02\x02\u1409\u02E6\x03\x02\x02\x02\u140A\u140B\x07I\x02\x02\u140B\u140C" + - "\x07T\x02\x02\u140C\u140D\x07C\x02\x02\u140D\u140E\x07P\x02\x02\u140E" + - "\u140F\x07V\x02\x02\u140F\u1410\x07U\x02\x02\u1410\u02E8\x03\x02\x02\x02" + - "\u1411\u1412\x07I\x02\x02\u1412\u1413\x07T\x02\x02\u1413\u1414\x07Q\x02" + - "\x02\u1414\u1415\x07W\x02\x02\u1415\u1416\x07R\x02\x02\u1416\u1417\x07" + - "a\x02\x02\u1417\u1418\x07T\x02\x02\u1418\u1419\x07G\x02\x02\u1419\u141A" + - "\x07R\x02\x02\u141A\u141B\x07N\x02\x02\u141B\u141C\x07K\x02\x02\u141C" + - "\u141D\x07E\x02\x02\u141D\u141E\x07C\x02\x02\u141E\u141F\x07V\x02\x02" + - "\u141F\u1420\x07K\x02\x02\u1420\u1421\x07Q\x02\x02\u1421\u1422\x07P\x02" + - "\x02\u1422\u02EA\x03\x02\x02\x02\u1423\u1424\x07J\x02\x02\u1424\u1425" + - "\x07C\x02\x02\u1425\u1426\x07P\x02\x02\u1426\u1427\x07F\x02\x02\u1427" + - "\u1428\x07N\x02\x02\u1428\u1429\x07G\x02\x02\u1429\u142A\x07T\x02\x02" + - "\u142A\u02EC\x03\x02\x02\x02\u142B\u142C\x07J\x02\x02\u142C\u142D\x07" + - "C\x02\x02\u142D\u142E\x07U\x02\x02\u142E\u142F\x07J\x02\x02\u142F\u02EE" + - "\x03\x02\x02\x02\u1430\u1431\x07J\x02\x02\u1431\u1432\x07G\x02\x02\u1432" + - "\u1433\x07N\x02\x02\u1433\u1434\x07R\x02\x02\u1434\u02F0\x03\x02\x02\x02" + - "\u1435\u1436\x07J\x02\x02\u1436\u1437\x07Q\x02\x02\u1437\u1438\x07U\x02" + - "\x02\u1438\u1439\x07V\x02\x02\u1439\u02F2\x03\x02\x02\x02\u143A\u143B" + - "\x07J\x02\x02\u143B\u143C\x07Q\x02\x02\u143C\u143D\x07U\x02\x02\u143D" + - "\u143E\x07V\x02\x02\u143E\u143F\x07U\x02\x02\u143F\u02F4\x03\x02\x02\x02" + - "\u1440\u1441\x07K\x02\x02\u1441\u1442\x07F\x02\x02\u1442\u1443\x07G\x02" + - "\x02\u1443\u1444\x07P\x02\x02\u1444\u1445\x07V\x02\x02\u1445\u1446\x07" + - "K\x02\x02\u1446\u1447\x07H\x02\x02\u1447\u1448\x07K\x02\x02\u1448\u1449" + - "\x07G\x02\x02\u1449\u144A\x07F\x02\x02\u144A\u02F6\x03\x02\x02\x02\u144B" + - "\u144C\x07K\x02\x02\u144C\u144D\x07I\x02\x02\u144D\u144E\x07P\x02\x02" + - "\u144E\u144F\x07Q\x02\x02\u144F\u1450\x07T\x02\x02\u1450\u1451\x07G\x02" + - "\x02\u1451\u1452\x07a\x02\x02\u1452\u1453\x07U\x02\x02\u1453\u1454\x07" + - "G\x02\x02\u1454\u1455\x07T\x02\x02\u1455\u1456\x07X\x02\x02\u1456\u1457" + - "\x07G\x02\x02\u1457\u1458\x07T\x02\x02\u1458\u1459\x07a\x02\x02\u1459" + - "\u145A\x07K\x02\x02\u145A\u145B\x07F\x02\x02\u145B\u145C\x07U\x02\x02" + - "\u145C\u02F8\x03\x02\x02\x02\u145D\u145E\x07K\x02\x02\u145E\u145F\x07" + - "O\x02\x02\u145F\u1460\x07R\x02\x02\u1460\u1461\x07Q\x02\x02\u1461\u1462" + - "\x07T\x02\x02\u1462\u1463\x07V\x02\x02\u1463\u02FA\x03\x02\x02\x02\u1464" + - "\u1465\x07K\x02\x02\u1465\u1466\x07P\x02\x02\u1466\u1467\x07F\x02\x02" + - "\u1467\u1468\x07G\x02\x02\u1468\u1469\x07Z\x02\x02\u1469\u146A\x07G\x02" + - "\x02\u146A\u146B\x07U\x02\x02\u146B\u02FC\x03\x02\x02\x02\u146C\u146D" + - "\x07K\x02\x02\u146D\u146E\x07P\x02\x02\u146E\u146F\x07K\x02\x02\u146F" + - "\u1470\x07V\x02\x02\u1470\u1471\x07K\x02\x02\u1471\u1472\x07C\x02\x02" + - "\u1472\u1473\x07N\x02\x02\u1473\u1474\x07a\x02\x02\u1474\u1475\x07U\x02" + - "\x02\u1475\u1476\x07K\x02\x02\u1476\u1477\x07\\\x02\x02\u1477\u1478\x07" + - "G\x02\x02\u1478\u02FE\x03\x02\x02\x02\u1479\u147A\x07K\x02\x02\u147A\u147B" + - "\x07P\x02\x02\u147B\u147C\x07R\x02\x02\u147C\u147D\x07N\x02\x02\u147D" + - "\u147E\x07C\x02\x02\u147E\u147F\x07E\x02\x02\u147F\u1480\x07G\x02\x02" + - "\u1480\u0300\x03\x02\x02\x02\u1481\u1482\x07K\x02\x02\u1482\u1483\x07" + - "P\x02\x02\u1483\u1484\x07U\x02\x02\u1484\u1485\x07G\x02\x02\u1485\u1486" + - "\x07T\x02\x02\u1486\u1487\x07V\x02\x02\u1487\u1488\x07a\x02\x02\u1488" + - "\u1489\x07O\x02\x02\u1489\u148A\x07G\x02\x02\u148A\u148B\x07V\x02\x02" + - "\u148B\u148C\x07J\x02\x02\u148C\u148D\x07Q\x02\x02\u148D\u148E\x07F\x02" + - "\x02\u148E\u0302\x03\x02\x02\x02\u148F\u1490\x07K\x02\x02\u1490\u1491" + - "\x07P\x02\x02\u1491\u1492\x07U\x02\x02\u1492\u1493\x07V\x02\x02\u1493" + - "\u1494\x07C\x02\x02\u1494\u1495\x07N\x02\x02\u1495\u1496\x07N\x02\x02" + - "\u1496\u0304\x03\x02\x02\x02\u1497\u1498\x07K\x02\x02\u1498\u1499\x07" + - "P\x02\x02\u1499\u149A\x07U\x02\x02\u149A\u149B\x07V\x02\x02\u149B\u149C" + - "\x07C\x02\x02\u149C\u149D\x07P\x02\x02\u149D\u149E\x07E\x02\x02\u149E" + - "\u149F\x07G\x02\x02\u149F\u0306\x03\x02\x02\x02\u14A0\u14A1\x07K\x02\x02" + - "\u14A1\u14A2\x07P\x02\x02\u14A2\u14A3\x07X\x02\x02\u14A3\u14A4\x07K\x02" + - "\x02\u14A4\u14A5\x07U\x02\x02\u14A5\u14A6\x07K\x02\x02\u14A6\u14A7\x07" + - "D\x02\x02\u14A7\u14A8\x07N\x02\x02\u14A8\u14A9\x07G\x02\x02\u14A9\u0308" + - "\x03\x02\x02\x02\u14AA\u14AB\x07K\x02\x02\u14AB\u14AC\x07P\x02\x02\u14AC" + - "\u14AD\x07X\x02\x02\u14AD\u14AE\x07Q\x02\x02\u14AE\u14AF\x07M\x02\x02" + - "\u14AF\u14B0\x07G\x02\x02\u14B0\u14B1\x07T\x02\x02\u14B1\u030A\x03\x02" + - "\x02\x02\u14B2\u14B3\x07K\x02\x02\u14B3\u14B4\x07Q\x02\x02\u14B4\u030C" + - "\x03\x02\x02\x02\u14B5\u14B6\x07K\x02\x02\u14B6\u14B7\x07Q\x02\x02\u14B7" + - "\u14B8\x07a\x02\x02\u14B8\u14B9\x07V\x02\x02\u14B9\u14BA\x07J\x02\x02" + - "\u14BA\u14BB\x07T\x02\x02\u14BB\u14BC\x07G\x02\x02\u14BC\u14BD\x07C\x02" + - "\x02\u14BD\u14BE\x07F\x02\x02\u14BE\u030E\x03\x02\x02\x02\u14BF\u14C0" + - "\x07K\x02\x02\u14C0\u14C1\x07R\x02\x02\u14C1\u14C2\x07E\x02\x02\u14C2" + - "\u0310\x03\x02\x02\x02\u14C3\u14C4\x07K\x02\x02\u14C4\u14C5\x07U\x02\x02" + - "\u14C5\u14C6\x07Q\x02\x02\u14C6\u14C7\x07N\x02\x02\u14C7\u14C8\x07C\x02" + - "\x02\u14C8\u14C9\x07V\x02\x02\u14C9\u14CA\x07K\x02\x02\u14CA\u14CB\x07" + - "Q\x02\x02\u14CB\u14CC\x07P\x02\x02\u14CC\u0312\x03\x02\x02\x02\u14CD\u14CE" + - "\x07K\x02\x02\u14CE\u14CF\x07U\x02\x02\u14CF\u14D0\x07U\x02\x02\u14D0" + - "\u14D1\x07W\x02\x02\u14D1\u14D2\x07G\x02\x02\u14D2\u14D3\x07T\x02\x02" + - "\u14D3\u0314\x03\x02\x02\x02\u14D4\u14D5\x07L\x02\x02\u14D5\u14D6\x07" + - "U\x02\x02\u14D6\u14D7\x07Q\x02\x02\u14D7\u14D8\x07P\x02\x02\u14D8\u0316" + - "\x03\x02\x02\x02\u14D9\u14DA\x07M\x02\x02\u14DA\u14DB\x07G\x02\x02\u14DB" + - "\u14DC\x07[\x02\x02\u14DC\u14DD\x07a\x02\x02\u14DD\u14DE\x07D\x02\x02" + - "\u14DE\u14DF\x07N\x02\x02\u14DF\u14E0\x07Q\x02\x02\u14E0\u14E1\x07E\x02" + - "\x02\u14E1\u14E2\x07M\x02\x02\u14E2\u14E3\x07a\x02\x02\u14E3\u14E4\x07" + - "U\x02\x02\u14E4\u14E5\x07K\x02\x02\u14E5\u14E6\x07\\\x02\x02\u14E6\u14E7" + - "\x07G\x02\x02\u14E7\u0318\x03\x02\x02\x02\u14E8\u14E9\x07N\x02\x02\u14E9" + - "\u14EA\x07C\x02\x02\u14EA\u14EB\x07P\x02\x02\u14EB\u14EC\x07I\x02\x02" + - "\u14EC\u14ED\x07W\x02\x02\u14ED\u14EE\x07C\x02\x02\u14EE\u14EF\x07I\x02" + - "\x02\u14EF\u14F0\x07G\x02\x02\u14F0\u031A\x03\x02\x02\x02\u14F1\u14F2" + - "\x07N\x02\x02\u14F2\u14F3\x07C\x02\x02\u14F3\u14F4\x07U\x02\x02\u14F4" + - "\u14F5\x07V\x02\x02\u14F5\u031C\x03\x02\x02\x02\u14F6\u14F7\x07N\x02\x02" + - "\u14F7\u14F8\x07G\x02\x02\u14F8\u14F9\x07C\x02\x02\u14F9\u14FA\x07X\x02" + - "\x02\u14FA\u14FB\x07G\x02\x02\u14FB\u14FC\x07U\x02\x02\u14FC\u031E\x03" + - "\x02\x02\x02\u14FD\u14FE\x07N\x02\x02\u14FE\u14FF\x07G\x02\x02\u14FF\u1500" + - "\x07U\x02\x02\u1500\u1501\x07U\x02\x02\u1501\u0320\x03\x02\x02\x02\u1502" + - "\u1503\x07N\x02\x02\u1503\u1504\x07G\x02\x02\u1504\u1505\x07X\x02\x02" + - "\u1505\u1506\x07G\x02\x02\u1506\u1507\x07N\x02\x02\u1507\u0322\x03\x02" + - "\x02\x02\u1508\u1509\x07N\x02\x02\u1509\u150A\x07K\x02\x02\u150A\u150B" + - "\x07U\x02\x02\u150B\u150C\x07V\x02\x02\u150C\u0324\x03\x02\x02\x02\u150D" + - "\u150E\x07N\x02\x02\u150E\u150F\x07Q\x02\x02\u150F\u1510\x07E\x02\x02" + - "\u1510\u1511\x07C\x02\x02\u1511\u1512\x07N\x02\x02\u1512\u0326\x03\x02" + - "\x02\x02\u1513\u1514\x07N\x02\x02\u1514\u1515\x07Q\x02\x02\u1515\u1516" + - "\x07I\x02\x02\u1516\u1517\x07H\x02"; - private static readonly _serializedATNSegment12: string = - "\x02\u1517\u1518\x07K\x02\x02\u1518\u1519\x07N\x02\x02\u1519\u151A\x07" + - "G\x02\x02\u151A\u0328\x03\x02\x02\x02\u151B\u151C\x07N\x02\x02\u151C\u151D" + - "\x07Q\x02\x02\u151D\u151E\x07I\x02\x02\u151E\u151F\x07U\x02\x02\u151F" + - "\u032A\x03\x02\x02\x02\u1520\u1521\x07O\x02\x02\u1521\u1522\x07C\x02\x02" + - "\u1522\u1523\x07U\x02\x02\u1523\u1524\x07V\x02\x02\u1524\u1525\x07G\x02" + - "\x02\u1525\u1526\x07T\x02\x02\u1526\u032C\x03\x02\x02\x02\u1527\u1528" + - "\x07O\x02\x02\u1528\u1529\x07C\x02\x02\u1529\u152A\x07U\x02\x02\u152A" + - "\u152B\x07V\x02\x02\u152B\u152C\x07G\x02\x02\u152C\u152D\x07T\x02\x02" + - "\u152D\u152E\x07a\x02\x02\u152E\u152F\x07C\x02\x02\u152F\u1530\x07W\x02" + - "\x02\u1530\u1531\x07V\x02\x02\u1531\u1532\x07Q\x02\x02\u1532\u1533\x07" + - "a\x02\x02\u1533\u1534\x07R\x02\x02\u1534\u1535\x07Q\x02\x02\u1535\u1536" + - "\x07U\x02\x02\u1536\u1537\x07K\x02\x02\u1537\u1538\x07V\x02\x02\u1538" + - "\u1539\x07K\x02\x02\u1539\u153A\x07Q\x02\x02\u153A\u153B\x07P\x02\x02" + - "\u153B\u032E\x03\x02\x02\x02\u153C\u153D\x07O\x02\x02\u153D\u153E\x07" + - "C\x02\x02\u153E\u153F\x07U\x02\x02\u153F\u1540\x07V\x02\x02\u1540\u1541" + - "\x07G\x02\x02\u1541\u1542\x07T\x02\x02\u1542\u1543\x07a\x02\x02\u1543" + - "\u1544\x07E\x02\x02\u1544\u1545\x07Q\x02\x02\u1545\u1546\x07P\x02\x02" + - "\u1546\u1547\x07P\x02\x02\u1547\u1548\x07G\x02\x02\u1548\u1549\x07E\x02" + - "\x02\u1549\u154A\x07V\x02\x02\u154A\u154B\x07a\x02\x02\u154B\u154C\x07" + - "T\x02\x02\u154C\u154D\x07G\x02\x02\u154D\u154E\x07V\x02\x02\u154E\u154F" + - "\x07T\x02\x02\u154F\u1550\x07[\x02\x02\u1550\u0330\x03\x02\x02\x02\u1551" + - "\u1552\x07O\x02\x02\u1552\u1553\x07C\x02\x02\u1553\u1554\x07U\x02\x02" + - "\u1554\u1555\x07V\x02\x02\u1555\u1556\x07G\x02\x02\u1556\u1557\x07T\x02" + - "\x02\u1557\u1558\x07a\x02\x02\u1558\u1559\x07F\x02\x02\u1559\u155A\x07" + - "G\x02\x02\u155A\u155B\x07N\x02\x02\u155B\u155C\x07C\x02\x02\u155C\u155D" + - "\x07[\x02\x02\u155D\u0332\x03\x02\x02\x02\u155E\u155F\x07O\x02\x02\u155F" + - "\u1560\x07C\x02\x02\u1560\u1561\x07U\x02\x02\u1561\u1562\x07V\x02\x02" + - "\u1562\u1563\x07G\x02\x02\u1563\u1564\x07T\x02\x02\u1564\u1565\x07a\x02" + - "\x02\u1565\u1566\x07J\x02\x02\u1566\u1567\x07G\x02\x02\u1567\u1568\x07" + - "C\x02\x02\u1568\u1569\x07T\x02\x02\u1569\u156A\x07V\x02\x02\u156A\u156B" + - "\x07D\x02\x02\u156B\u156C\x07G\x02\x02\u156C\u156D\x07C\x02\x02\u156D" + - "\u156E\x07V\x02\x02\u156E\u156F\x07a\x02\x02\u156F\u1570\x07R\x02\x02" + - "\u1570\u1571\x07G\x02\x02\u1571\u1572\x07T\x02\x02\u1572\u1573\x07K\x02" + - "\x02\u1573\u1574\x07Q\x02\x02\u1574\u1575\x07F\x02\x02\u1575\u0334\x03" + - "\x02\x02\x02\u1576\u1577\x07O\x02\x02\u1577\u1578\x07C\x02\x02\u1578\u1579" + - "\x07U\x02\x02\u1579\u157A\x07V\x02\x02\u157A\u157B\x07G\x02\x02\u157B" + - "\u157C\x07T\x02\x02\u157C\u157D\x07a\x02\x02\u157D\u157E\x07J\x02\x02" + - "\u157E\u157F\x07Q\x02\x02\u157F\u1580\x07U\x02\x02\u1580\u1581\x07V\x02" + - "\x02\u1581\u0336\x03\x02\x02\x02\u1582\u1583\x07O\x02\x02\u1583\u1584" + - "\x07C\x02\x02\u1584\u1585\x07U\x02\x02\u1585\u1586\x07V\x02\x02\u1586" + - "\u1587\x07G\x02\x02\u1587\u1588\x07T\x02\x02\u1588\u1589\x07a\x02\x02" + - "\u1589\u158A\x07N\x02\x02\u158A\u158B\x07Q\x02\x02\u158B\u158C\x07I\x02" + - "\x02\u158C\u158D\x07a\x02\x02\u158D\u158E\x07H\x02\x02\u158E\u158F\x07" + - "K\x02\x02\u158F\u1590\x07N\x02\x02\u1590\u1591\x07G\x02\x02\u1591\u0338" + - "\x03\x02\x02\x02\u1592\u1593\x07O\x02\x02\u1593\u1594\x07C\x02\x02\u1594" + - "\u1595\x07U\x02\x02\u1595\u1596\x07V\x02\x02\u1596\u1597\x07G\x02\x02" + - "\u1597\u1598\x07T\x02\x02\u1598\u1599\x07a\x02\x02\u1599\u159A\x07N\x02" + - "\x02\u159A\u159B\x07Q\x02\x02\u159B\u159C\x07I\x02\x02\u159C\u159D\x07" + - "a\x02\x02\u159D\u159E\x07R\x02\x02\u159E\u159F\x07Q\x02\x02\u159F\u15A0" + - "\x07U\x02\x02\u15A0\u033A\x03\x02\x02\x02\u15A1\u15A2\x07O\x02\x02\u15A2" + - "\u15A3\x07C\x02\x02\u15A3\u15A4\x07U\x02\x02\u15A4\u15A5\x07V\x02\x02" + - "\u15A5\u15A6\x07G\x02\x02\u15A6\u15A7\x07T\x02\x02\u15A7\u15A8\x07a\x02" + - "\x02\u15A8\u15A9\x07R\x02\x02\u15A9\u15AA\x07C\x02\x02\u15AA\u15AB\x07" + - "U\x02\x02\u15AB\u15AC\x07U\x02\x02\u15AC\u15AD\x07Y\x02\x02\u15AD\u15AE" + - "\x07Q\x02\x02\u15AE\u15AF\x07T\x02\x02\u15AF\u15B0\x07F\x02\x02\u15B0" + - "\u033C\x03\x02\x02\x02\u15B1\u15B2\x07O\x02\x02\u15B2\u15B3\x07C\x02\x02" + - "\u15B3\u15B4\x07U\x02\x02\u15B4\u15B5\x07V\x02\x02\u15B5\u15B6\x07G\x02" + - "\x02\u15B6\u15B7\x07T\x02\x02\u15B7\u15B8\x07a\x02\x02\u15B8\u15B9\x07" + - "R\x02\x02\u15B9\u15BA\x07Q\x02\x02\u15BA\u15BB\x07T\x02\x02\u15BB\u15BC" + - "\x07V\x02\x02\u15BC\u033E\x03\x02\x02\x02\u15BD\u15BE\x07O\x02\x02\u15BE" + - "\u15BF\x07C\x02\x02\u15BF\u15C0\x07U\x02\x02\u15C0\u15C1\x07V\x02\x02" + - "\u15C1\u15C2\x07G\x02\x02\u15C2\u15C3\x07T\x02\x02\u15C3\u15C4\x07a\x02" + - "\x02\u15C4\u15C5\x07T\x02\x02\u15C5\u15C6\x07G\x02\x02\u15C6\u15C7\x07" + - "V\x02\x02\u15C7\u15C8\x07T\x02\x02\u15C8\u15C9\x07[\x02\x02\u15C9\u15CA" + - "\x07a\x02\x02\u15CA\u15CB\x07E\x02\x02\u15CB\u15CC\x07Q\x02\x02\u15CC" + - "\u15CD\x07W\x02\x02\u15CD\u15CE\x07P\x02\x02\u15CE\u15CF\x07V\x02\x02" + - "\u15CF\u0340\x03\x02\x02\x02\u15D0\u15D1\x07O\x02\x02\u15D1\u15D2\x07" + - "C\x02\x02\u15D2\u15D3\x07U\x02\x02\u15D3\u15D4\x07V\x02\x02\u15D4\u15D5" + - "\x07G\x02\x02\u15D5\u15D6\x07T\x02\x02\u15D6\u15D7\x07a\x02\x02\u15D7" + - "\u15D8\x07U\x02\x02\u15D8\u15D9\x07U\x02\x02\u15D9\u15DA\x07N\x02\x02" + - "\u15DA\u0342\x03\x02\x02\x02\u15DB\u15DC\x07O\x02\x02\u15DC\u15DD\x07" + - "C\x02\x02\u15DD\u15DE\x07U\x02\x02\u15DE\u15DF\x07V\x02\x02\u15DF\u15E0" + - "\x07G\x02\x02\u15E0\u15E1\x07T\x02\x02\u15E1\u15E2\x07a\x02\x02\u15E2" + - "\u15E3\x07U\x02\x02\u15E3\u15E4\x07U\x02\x02\u15E4\u15E5\x07N\x02\x02" + - "\u15E5\u15E6\x07a\x02\x02\u15E6\u15E7\x07E\x02\x02\u15E7\u15E8\x07C\x02" + - "\x02\u15E8\u0344\x03\x02\x02\x02\u15E9\u15EA\x07O\x02\x02\u15EA\u15EB" + - "\x07C\x02\x02\u15EB\u15EC\x07U\x02\x02\u15EC\u15ED\x07V\x02\x02\u15ED" + - "\u15EE\x07G\x02\x02\u15EE\u15EF\x07T\x02\x02\u15EF\u15F0\x07a\x02\x02" + - "\u15F0\u15F1\x07U\x02\x02\u15F1\u15F2\x07U\x02\x02\u15F2\u15F3\x07N\x02" + - "\x02\u15F3\u15F4\x07a\x02\x02\u15F4\u15F5\x07E\x02\x02\u15F5\u15F6\x07" + - "C\x02\x02\u15F6\u15F7\x07R\x02\x02\u15F7\u15F8\x07C\x02\x02\u15F8\u15F9" + - "\x07V\x02\x02\u15F9\u15FA\x07J\x02\x02\u15FA\u0346\x03\x02\x02\x02\u15FB" + - "\u15FC\x07O\x02\x02\u15FC\u15FD\x07C\x02\x02\u15FD\u15FE\x07U\x02\x02" + - "\u15FE\u15FF\x07V\x02\x02\u15FF\u1600\x07G\x02\x02\u1600\u1601\x07T\x02" + - "\x02\u1601\u1602\x07a\x02\x02\u1602\u1603\x07U\x02\x02\u1603\u1604\x07" + - "U\x02\x02\u1604\u1605\x07N\x02\x02\u1605\u1606\x07a\x02\x02\u1606\u1607" + - "\x07E\x02\x02\u1607\u1608\x07G\x02\x02\u1608\u1609\x07T\x02\x02\u1609" + - "\u160A\x07V\x02\x02\u160A\u0348\x03\x02\x02\x02\u160B\u160C\x07O\x02\x02" + - "\u160C\u160D\x07C\x02\x02\u160D\u160E\x07U\x02\x02\u160E\u160F\x07V\x02" + - "\x02\u160F\u1610\x07G\x02\x02\u1610\u1611\x07T\x02\x02\u1611\u1612\x07" + - "a\x02\x02\u1612\u1613\x07U\x02\x02\u1613\u1614\x07U\x02\x02\u1614\u1615" + - "\x07N\x02\x02\u1615\u1616\x07a\x02\x02\u1616\u1617\x07E\x02\x02\u1617" + - "\u1618\x07K\x02\x02\u1618\u1619\x07R\x02\x02\u1619\u161A\x07J\x02\x02" + - "\u161A\u161B\x07G\x02\x02\u161B\u161C\x07T\x02\x02\u161C\u034A\x03\x02" + - "\x02\x02\u161D\u161E\x07O\x02\x02\u161E\u161F\x07C\x02\x02\u161F\u1620" + - "\x07U\x02\x02\u1620\u1621\x07V\x02\x02\u1621\u1622\x07G\x02\x02\u1622" + - "\u1623\x07T\x02\x02\u1623\u1624\x07a\x02\x02\u1624\u1625\x07U\x02\x02" + - "\u1625\u1626\x07U\x02\x02\u1626\u1627\x07N\x02\x02\u1627\u1628\x07a\x02" + - "\x02\u1628\u1629\x07E\x02\x02\u1629\u162A\x07T\x02\x02\u162A\u162B\x07" + - "N\x02\x02\u162B\u034C\x03\x02\x02\x02\u162C\u162D\x07O\x02\x02\u162D\u162E" + - "\x07C\x02\x02\u162E\u162F\x07U\x02\x02\u162F\u1630\x07V\x02\x02\u1630" + - "\u1631\x07G\x02\x02\u1631\u1632\x07T\x02\x02\u1632\u1633\x07a\x02\x02" + - "\u1633\u1634\x07U\x02\x02\u1634\u1635\x07U\x02\x02\u1635\u1636\x07N\x02" + - "\x02\u1636\u1637\x07a\x02\x02\u1637\u1638\x07E\x02\x02\u1638\u1639\x07" + - "T\x02\x02\u1639\u163A\x07N\x02\x02\u163A\u163B\x07R\x02\x02\u163B\u163C" + - "\x07C\x02\x02\u163C\u163D\x07V\x02\x02\u163D\u163E\x07J\x02\x02\u163E" + - "\u034E\x03\x02\x02\x02\u163F\u1640\x07O\x02\x02\u1640\u1641\x07C\x02\x02" + - "\u1641\u1642\x07U\x02\x02\u1642\u1643\x07V\x02\x02\u1643\u1644\x07G\x02" + - "\x02\u1644\u1645\x07T\x02\x02\u1645\u1646\x07a\x02\x02\u1646\u1647\x07" + - "U\x02\x02\u1647\u1648\x07U\x02\x02\u1648\u1649\x07N\x02\x02\u1649\u164A" + - "\x07a\x02\x02\u164A\u164B\x07M\x02\x02\u164B\u164C\x07G\x02\x02\u164C" + - "\u164D\x07[\x02\x02\u164D\u0350\x03\x02\x02\x02\u164E\u164F\x07O\x02\x02" + - "\u164F\u1650\x07C\x02\x02\u1650\u1651\x07U\x02\x02\u1651\u1652\x07V\x02" + - "\x02\u1652\u1653\x07G\x02\x02\u1653\u1654\x07T\x02\x02\u1654\u1655\x07" + - "a\x02\x02\u1655\u1656\x07V\x02\x02\u1656\u1657\x07N\x02\x02\u1657\u1658" + - "\x07U\x02\x02\u1658\u1659\x07a\x02\x02\u1659\u165A\x07X\x02\x02\u165A" + - "\u165B\x07G\x02\x02\u165B\u165C\x07T\x02\x02\u165C\u165D\x07U\x02\x02" + - "\u165D\u165E\x07K\x02\x02\u165E\u165F\x07Q\x02\x02\u165F\u1660\x07P\x02" + - "\x02\u1660\u0352\x03\x02\x02\x02\u1661\u1662\x07O\x02\x02\u1662\u1663" + - "\x07C\x02\x02\u1663\u1664\x07U\x02\x02\u1664\u1665\x07V\x02\x02\u1665" + - "\u1666\x07G\x02\x02\u1666\u1667\x07T\x02\x02\u1667\u1668\x07a\x02\x02" + - "\u1668\u1669\x07W\x02\x02\u1669\u166A\x07U\x02\x02\u166A\u166B\x07G\x02" + - "\x02\u166B\u166C\x07T\x02\x02\u166C\u0354\x03\x02\x02\x02\u166D\u166E" + - "\x07O\x02\x02\u166E\u166F\x07C\x02\x02\u166F\u1670\x07Z\x02\x02\u1670" + - "\u1671\x07a\x02\x02\u1671\u1672\x07E\x02\x02\u1672\u1673\x07Q\x02\x02" + - "\u1673\u1674\x07P\x02\x02\u1674\u1675\x07P\x02\x02\u1675\u1676\x07G\x02" + - "\x02\u1676\u1677\x07E\x02\x02\u1677\u1678\x07V\x02\x02\u1678\u1679\x07" + - "K\x02\x02\u1679\u167A\x07Q\x02\x02\u167A\u167B\x07P\x02\x02\u167B\u167C" + - "\x07U\x02\x02\u167C\u167D\x07a\x02\x02\u167D\u167E\x07R\x02\x02\u167E" + - "\u167F\x07G\x02\x02\u167F\u1680\x07T\x02\x02\u1680\u1681\x07a\x02\x02" + - "\u1681\u1682\x07J\x02\x02\u1682\u1683\x07Q\x02\x02\u1683\u1684\x07W\x02" + - "\x02\u1684\u1685\x07T\x02\x02\u1685\u0356\x03\x02\x02\x02\u1686\u1687" + - "\x07O\x02\x02\u1687\u1688\x07C\x02\x02\u1688\u1689\x07Z\x02\x02\u1689" + - "\u168A\x07a\x02\x02\u168A\u168B\x07S\x02\x02\u168B\u168C\x07W\x02\x02" + - "\u168C\u168D\x07G\x02\x02\u168D\u168E\x07T\x02\x02\u168E\u168F\x07K\x02" + - "\x02\u168F\u1690\x07G\x02\x02\u1690\u1691\x07U\x02\x02\u1691\u1692\x07" + - "a\x02\x02\u1692\u1693\x07R\x02\x02\u1693\u1694\x07G\x02\x02\u1694\u1695" + - "\x07T\x02\x02\u1695\u1696\x07a\x02\x02\u1696\u1697\x07J\x02\x02\u1697" + - "\u1698\x07Q\x02\x02\u1698\u1699\x07W\x02\x02\u1699\u169A\x07T\x02\x02" + - "\u169A\u0358\x03\x02\x02\x02\u169B\u169C\x07O\x02\x02\u169C\u169D\x07" + - "C\x02\x02\u169D\u169E\x07Z\x02\x02\u169E\u169F\x07a\x02\x02\u169F\u16A0" + - "\x07T\x02\x02\u16A0\u16A1\x07Q\x02\x02\u16A1\u16A2\x07Y\x02\x02\u16A2" + - "\u16A3\x07U\x02\x02\u16A3\u035A\x03\x02\x02\x02\u16A4\u16A5\x07O\x02\x02" + - "\u16A5\u16A6\x07C\x02\x02\u16A6\u16A7\x07Z\x02\x02\u16A7\u16A8\x07a\x02" + - "\x02\u16A8\u16A9\x07U\x02\x02\u16A9\u16AA\x07K\x02\x02\u16AA\u16AB\x07" + - "\\\x02\x02\u16AB\u16AC\x07G\x02\x02\u16AC\u035C\x03\x02\x02\x02\u16AD" + - "\u16AE\x07O\x02\x02\u16AE\u16AF\x07C\x02\x02\u16AF\u16B0\x07Z\x02\x02" + - "\u16B0\u16B1\x07a\x02\x02\u16B1\u16B2\x07W\x02\x02\u16B2\u16B3\x07R\x02" + - "\x02\u16B3\u16B4\x07F\x02\x02\u16B4\u16B5\x07C\x02\x02\u16B5\u16B6\x07" + - "V\x02\x02\u16B6\u16B7\x07G\x02\x02\u16B7\u16B8\x07U\x02\x02\u16B8\u16B9" + - "\x07a\x02\x02\u16B9\u16BA\x07R\x02\x02\u16BA\u16BB\x07G\x02\x02\u16BB" + - "\u16BC\x07T\x02\x02\u16BC\u16BD\x07a\x02\x02\u16BD\u16BE\x07J\x02\x02" + - "\u16BE\u16BF\x07Q\x02\x02\u16BF\u16C0\x07W\x02\x02\u16C0\u16C1\x07T\x02" + - "\x02\u16C1\u035E\x03\x02\x02\x02\u16C2\u16C3\x07O\x02\x02\u16C3\u16C4" + - "\x07C\x02\x02\u16C4\u16C5\x07Z\x02\x02\u16C5\u16C6\x07a\x02\x02\u16C6" + - "\u16C7\x07W\x02\x02\u16C7\u16C8\x07U\x02\x02\u16C8\u16C9\x07G\x02\x02" + - "\u16C9\u16CA\x07T\x02\x02\u16CA\u16CB\x07a\x02\x02\u16CB\u16CC\x07E\x02" + - "\x02\u16CC\u16CD\x07Q\x02\x02\u16CD\u16CE\x07P\x02\x02\u16CE\u16CF\x07" + - "P\x02\x02\u16CF\u16D0\x07G\x02\x02\u16D0\u16D1\x07E\x02\x02\u16D1\u16D2" + - "\x07V\x02\x02\u16D2\u16D3\x07K\x02\x02\u16D3\u16D4\x07Q\x02\x02\u16D4" + - "\u16D5\x07P\x02\x02\u16D5\u16D6\x07U\x02\x02\u16D6\u0360\x03\x02\x02\x02" + - "\u16D7\u16D8\x07O\x02\x02\u16D8\u16D9\x07G\x02\x02\u16D9\u16DA\x07F\x02" + - "\x02\u16DA\u16DB\x07K\x02\x02\u16DB\u16DC\x07W\x02\x02\u16DC\u16DD\x07" + - "O\x02\x02\u16DD\u0362\x03\x02\x02\x02\u16DE\u16DF\x07O\x02\x02\u16DF\u16E0" + - "\x07G\x02\x02\u16E0\u16E1\x07T\x02\x02\u16E1\u16E2\x07I\x02\x02\u16E2" + - "\u16E3\x07G\x02\x02\u16E3\u0364\x03\x02\x02\x02\u16E4\u16E5\x07O\x02\x02" + - "\u16E5\u16E6\x07G\x02\x02\u16E6\u16E7\x07U\x02\x02\u16E7\u16E8\x07U\x02" + - "\x02\u16E8\u16E9\x07C\x02\x02\u16E9\u16EA\x07I\x02\x02\u16EA\u16EB\x07" + - "G\x02\x02\u16EB\u16EC\x07a\x02\x02\u16EC\u16ED\x07V\x02\x02\u16ED\u16EE" + - "\x07G\x02\x02\u16EE\u16EF\x07Z\x02\x02\u16EF\u16F0\x07V\x02\x02\u16F0" + - "\u0366\x03\x02\x02\x02\u16F1\u16F2\x07O\x02\x02\u16F2\u16F3\x07K\x02\x02" + - "\u16F3\u16F4\x07F\x02\x02\u16F4\u0368\x03\x02\x02\x02\u16F5\u16F6\x07" + - "O\x02\x02\u16F6\u16F7\x07K\x02\x02\u16F7\u16F8\x07I\x02\x02\u16F8\u16F9" + - "\x07T\x02\x02\u16F9\u16FA\x07C\x02\x02\u16FA\u16FB\x07V\x02\x02\u16FB" + - "\u16FC\x07G\x02\x02\u16FC\u036A\x03\x02\x02\x02\u16FD\u16FE\x07O\x02\x02" + - "\u16FE\u16FF\x07K\x02\x02\u16FF\u1700\x07P\x02\x02\u1700\u1701\x07a\x02" + - "\x02\u1701\u1702\x07T\x02\x02\u1702\u1703\x07Q\x02\x02\u1703\u1704\x07" + - "Y\x02\x02\u1704\u1705\x07U\x02\x02\u1705\u036C\x03\x02\x02\x02\u1706\u1707" + - "\x07O\x02\x02\u1707\u1708\x07Q\x02\x02\u1708\u1709\x07F\x02\x02\u1709" + - "\u170A\x07G\x02\x02\u170A\u036E\x03\x02\x02\x02\u170B\u170C\x07O\x02\x02" + - "\u170C\u170D\x07Q\x02\x02\u170D\u170E\x07F\x02\x02\u170E\u170F\x07K\x02" + - "\x02\u170F\u1710\x07H\x02\x02\u1710\u1711\x07[\x02\x02\u1711\u0370\x03" + - "\x02\x02\x02\u1712\u1713\x07O\x02\x02\u1713\u1714\x07W\x02\x02\u1714\u1715" + - "\x07V\x02\x02\u1715\u1716\x07G\x02\x02\u1716\u1717\x07Z\x02\x02\u1717" + - "\u0372\x03\x02\x02\x02\u1718\u1719\x07O\x02\x02\u1719\u171A\x07[\x02\x02" + - "\u171A\u171B\x07U\x02\x02\u171B\u171C\x07S\x02\x02\u171C\u171D\x07N\x02" + - "\x02\u171D\u0374\x03\x02\x02\x02\u171E\u171F\x07O\x02\x02\u171F\u1720" + - "\x07[\x02\x02\u1720\u1721\x07U\x02\x02\u1721\u1722\x07S\x02\x02\u1722" + - "\u1723\x07N\x02\x02\u1723\u1724\x07a\x02\x02\u1724\u1725\x07G\x02\x02" + - "\u1725\u1726\x07T\x02\x02\u1726\u1727\x07T\x02\x02\u1727\u1728\x07P\x02" + - "\x02\u1728\u1729\x07Q\x02\x02\u1729\u0376\x03\x02\x02\x02\u172A\u172B" + - "\x07P\x02\x02\u172B\u172C\x07C\x02\x02\u172C\u172D\x07O\x02\x02\u172D" + - "\u172E\x07G\x02\x02\u172E\u0378\x03\x02\x02\x02\u172F\u1730\x07P\x02\x02" + - "\u1730\u1731\x07C\x02\x02\u1731\u1732\x07O\x02\x02\u1732\u1733\x07G\x02" + - "\x02\u1733\u1734\x07U\x02\x02\u1734\u037A\x03\x02\x02\x02\u1735\u1736" + - "\x07P\x02\x02\u1736\u1737\x07E\x02\x02\u1737\u1738\x07J\x02\x02\u1738" + - "\u1739\x07C\x02\x02\u1739\u173A\x07T\x02\x02\u173A\u037C\x03\x02\x02\x02" + - "\u173B\u173C\x07P\x02\x02\u173C\u173D\x07G\x02\x02\u173D\u173E\x07X\x02" + - "\x02\u173E\u173F\x07G\x02\x02\u173F\u1740\x07T\x02\x02\u1740\u037E\x03" + - "\x02\x02\x02\u1741\u1742\x07P\x02\x02\u1742\u1743\x07G\x02\x02\u1743\u1744" + - "\x07Z\x02\x02\u1744\u1745\x07V\x02\x02\u1745\u0380\x03\x02\x02\x02\u1746" + - "\u1747\x07P\x02\x02\u1747\u1748\x07Q\x02\x02\u1748\u0382\x03\x02\x02\x02" + - "\u1749\u174A\x07P\x02\x02\u174A\u174B\x07Q\x02\x02\u174B\u174C\x07F\x02" + - "\x02\u174C\u174D\x07G\x02\x02\u174D\u174E\x07I\x02\x02\u174E\u174F\x07" + - "T\x02\x02\u174F\u1750\x07Q\x02\x02\u1750\u1751\x07W\x02\x02\u1751\u1752" + - "\x07R\x02\x02\u1752\u0384\x03\x02\x02\x02\u1753\u1754\x07P\x02\x02\u1754" + - "\u1755\x07Q\x02\x02\u1755\u1756\x07P\x02\x02\u1756\u1757\x07G\x02\x02" + - "\u1757\u0386\x03\x02\x02\x02\u1758\u1759\x07Q\x02\x02\u1759\u175A\x07" + - "H\x02\x02\u175A\u175B\x07H\x02\x02\u175B\u175C\x07N\x02\x02\u175C\u175D" + - "\x07K\x02\x02\u175D\u175E\x07P\x02\x02\u175E\u175F\x07G\x02\x02\u175F" + - "\u0388\x03\x02\x02\x02\u1760\u1761\x07Q\x02\x02\u1761\u1762\x07H\x02\x02" + - "\u1762\u1763\x07H\x02\x02\u1763\u1764\x07U\x02\x02\u1764\u1765\x07G\x02" + - "\x02\u1765\u1766\x07V\x02\x02\u1766\u038A\x03\x02\x02\x02\u1767\u1768" + - "\x07Q\x02\x02\u1768\u1769\x07L\x02\x02\u1769\u038C\x03\x02\x02\x02\u176A" + - "\u176B\x07Q\x02\x02\u176B\u176C\x07N\x02\x02\u176C\u176D\x07F\x02\x02" + - "\u176D\u176E\x07a\x02\x02\u176E\u176F\x07R\x02\x02\u176F\u1770\x07C\x02" + - "\x02\u1770\u1771\x07U\x02\x02\u1771\u1772\x07U\x02\x02\u1772\u1773\x07" + - "Y\x02\x02\u1773\u1774\x07Q\x02\x02\u1774\u1775\x07T\x02\x02\u1775\u1776" + - "\x07F\x02\x02\u1776\u038E\x03\x02\x02\x02\u1777\u1778\x07Q\x02\x02\u1778" + - "\u1779\x07P\x02\x02\u1779\u177A\x07G\x02\x02\u177A\u0390\x03\x02\x02\x02" + - "\u177B\u177C\x07Q\x02\x02\u177C\u177D\x07P\x02\x02\u177D\u177E\x07N\x02" + - "\x02\u177E\u177F\x07K\x02\x02\u177F\u1780\x07P\x02\x02\u1780\u1781\x07" + - "G\x02\x02\u1781\u0392\x03\x02\x02\x02\u1782\u1783\x07Q\x02\x02\u1783\u1784" + - "\x07P\x02\x02\u1784\u1785\x07N\x02\x02\u1785\u1786\x07[\x02\x02\u1786" + - "\u0394\x03\x02\x02\x02\u1787\u1788\x07Q\x02\x02\u1788\u1789\x07R\x02\x02" + - "\u1789\u178A\x07G\x02\x02\u178A\u178B\x07P\x02\x02\u178B\u0396\x03\x02" + - "\x02\x02\u178C\u178D\x07Q\x02\x02\u178D\u178E\x07R\x02\x02\u178E\u178F" + - "\x07V\x02\x02\u178F\u1790\x07K\x02\x02\u1790\u1791\x07O\x02\x02\u1791" + - "\u1792\x07K\x02\x02\u1792\u1793\x07\\\x02\x02\u1793\u1794\x07G\x02\x02" + - "\u1794\u1795\x07T\x02\x02\u1795\u1796\x07a\x02\x02\u1796\u1797\x07E\x02" + - "\x02\u1797\u1798\x07Q\x02\x02\u1798\u1799\x07U\x02\x02\u1799\u179A\x07" + - "V\x02\x02\u179A\u179B\x07U\x02\x02\u179B\u0398\x03\x02\x02\x02\u179C\u179D" + - "\x07Q\x02\x02\u179D\u179E\x07R\x02\x02\u179E\u179F\x07V\x02\x02\u179F" + - "\u17A0\x07K\x02\x02\u17A0\u17A1\x07Q\x02\x02\u17A1\u17A2\x07P\x02\x02" + - "\u17A2\u17A3\x07U\x02\x02\u17A3\u039A\x03\x02\x02\x02\u17A4\u17A5\x07" + - "Q\x02\x02\u17A5\u17A6\x07Y\x02\x02\u17A6\u17A7\x07P\x02\x02\u17A7\u17A8" + - "\x07G\x02\x02\u17A8\u17A9\x07T\x02\x02\u17A9\u039C\x03\x02\x02\x02\u17AA" + - "\u17AB\x07R\x02\x02\u17AB\u17AC\x07C\x02\x02\u17AC\u17AD\x07E\x02\x02" + - "\u17AD\u17AE\x07M\x02\x02\u17AE\u17AF\x07a\x02\x02\u17AF\u17B0\x07M\x02" + - "\x02\u17B0\u17B1\x07G\x02\x02\u17B1\u17B2\x07[\x02\x02\u17B2\u17B3\x07" + - "U\x02\x02\u17B3\u039E\x03\x02\x02\x02\u17B4\u17B5\x07R\x02\x02\u17B5\u17B6" + - "\x07C\x02\x02\u17B6\u17B7\x07I\x02\x02\u17B7\u17B8\x07G\x02\x02\u17B8" + - "\u03A0\x03\x02\x02\x02\u17B9\u17BA\x07R\x02\x02\u17BA\u17BB\x07C\x02\x02" + - "\u17BB\u17BC\x07T\x02\x02\u17BC\u17BD\x07U\x02\x02\u17BD\u17BE\x07G\x02" + - "\x02\u17BE\u17BF\x07T\x02\x02\u17BF\u03A2\x03\x02\x02\x02\u17C0\u17C1" + - "\x07R\x02\x02\u17C1\u17C2\x07C\x02\x02\u17C2\u17C3\x07T\x02\x02\u17C3" + - "\u17C4\x07V\x02\x02\u17C4\u17C5\x07K\x02\x02\u17C5\u17C6\x07C\x02\x02" + - "\u17C6\u17C7\x07N\x02\x02\u17C7\u03A4\x03\x02\x02\x02\u17C8\u17C9\x07" + - "R\x02\x02\u17C9\u17CA\x07C\x02\x02\u17CA\u17CB\x07T\x02\x02\u17CB\u17CC" + - "\x07V\x02\x02\u17CC\u17CD\x07K\x02\x02\u17CD\u17CE\x07V\x02\x02\u17CE" + - "\u17CF\x07K\x02\x02\u17CF\u17D0\x07Q\x02\x02\u17D0\u17D1\x07P\x02\x02" + - "\u17D1\u17D2\x07K\x02\x02\u17D2\u17D3\x07P\x02\x02\u17D3\u17D4\x07I\x02" + - "\x02\u17D4\u03A6\x03\x02\x02\x02\u17D5\u17D6\x07R\x02\x02\u17D6\u17D7" + - "\x07C\x02\x02\u17D7\u17D8\x07T\x02\x02\u17D8\u17D9\x07V\x02\x02\u17D9" + - "\u17DA\x07K\x02\x02\u17DA\u17DB\x07V\x02\x02\u17DB\u17DC\x07K\x02\x02" + - "\u17DC\u17DD\x07Q\x02\x02\u17DD\u17DE\x07P\x02\x02\u17DE\u17DF\x07U\x02" + - "\x02\u17DF\u03A8\x03\x02\x02\x02\u17E0\u17E1\x07R\x02\x02\u17E1\u17E2" + - "\x07C\x02\x02\u17E2\u17E3\x07U\x02\x02\u17E3\u17E4\x07U\x02\x02\u17E4" + - "\u17E5\x07Y\x02\x02\u17E5\u17E6\x07Q\x02\x02\u17E6\u17E7\x07T\x02\x02" + - "\u17E7\u17E8\x07F\x02\x02\u17E8\u03AA\x03\x02\x02\x02\u17E9\u17EA\x07" + - "R\x02\x02\u17EA\u17EB\x07J\x02\x02\u17EB\u17EC\x07C\x02\x02\u17EC\u17ED" + - "\x07U\x02\x02\u17ED\u17EE\x07G\x02\x02\u17EE\u03AC\x03\x02\x02\x02\u17EF" + - "\u17F0\x07R\x02\x02\u17F0\u17F1\x07N\x02\x02\u17F1\u17F2\x07W\x02\x02" + - "\u17F2\u17F3\x07I\x02\x02\u17F3\u17F4\x07K\x02\x02\u17F4\u17F5\x07P\x02" + - "\x02\u17F5\u03AE\x03\x02\x02\x02\u17F6\u17F7\x07R\x02\x02\u17F7\u17F8" + - "\x07N\x02\x02\u17F8\u17F9\x07W\x02\x02\u17F9\u17FA\x07I\x02\x02\u17FA" + - "\u17FB\x07K\x02\x02\u17FB\u17FC\x07P\x02\x02\u17FC\u17FD\x07a\x02\x02" + - "\u17FD\u17FE\x07F\x02\x02\u17FE\u17FF\x07K\x02\x02\u17FF\u1800\x07T\x02" + - "\x02\u1800\u03B0\x03\x02\x02\x02\u1801\u1802\x07R\x02\x02\u1802\u1803" + - "\x07N\x02\x02\u1803\u1804\x07W\x02\x02\u1804\u1805\x07I\x02\x02\u1805" + - "\u1806\x07K\x02\x02\u1806\u1807\x07P\x02\x02\u1807\u1808\x07U\x02\x02" + - "\u1808\u03B2\x03\x02\x02\x02\u1809\u180A\x07R\x02\x02\u180A\u180B\x07" + - "Q\x02\x02\u180B\u180C\x07T\x02\x02\u180C\u180D\x07V\x02\x02\u180D\u03B4" + - "\x03\x02\x02\x02\u180E\u180F\x07R\x02\x02\u180F\u1810\x07T\x02\x02\u1810" + - "\u1811\x07G\x02\x02\u1811\u1812\x07E\x02\x02\u1812\u1813\x07G\x02\x02" + - "\u1813\u1814\x07F\x02\x02\u1814\u1815\x07G\x02\x02\u1815\u1816\x07U\x02" + - "\x02\u1816\u03B6\x03\x02\x02\x02\u1817\u1818\x07R\x02\x02\u1818\u1819" + - "\x07T\x02\x02\u1819\u181A\x07G\x02\x02\u181A\u181B\x07R\x02\x02\u181B" + - "\u181C\x07C\x02\x02\u181C\u181D\x07T\x02\x02\u181D\u181E\x07G\x02\x02" + - "\u181E\u03B8\x03\x02\x02\x02\u181F\u1820\x07R\x02\x02\u1820\u1821\x07" + - "T\x02\x02\u1821\u1822\x07G\x02\x02\u1822\u1823\x07U\x02\x02\u1823\u1824" + - "\x07G\x02\x02\u1824\u1825\x07T\x02\x02\u1825\u1826\x07X\x02\x02\u1826" + - "\u1827\x07G\x02\x02\u1827\u03BA\x03\x02\x02\x02\u1828\u1829\x07R\x02\x02" + - "\u1829\u182A\x07T\x02\x02\u182A\u182B\x07G\x02\x02\u182B\u182C\x07X\x02" + - "\x02\u182C\u03BC\x03\x02\x02\x02\u182D\u182E\x07R\x02\x02\u182E\u182F" + - "\x07T\x02\x02\u182F\u1830\x07Q\x02\x02\u1830\u1831\x07E\x02\x02\u1831" + - "\u1832\x07G\x02\x02\u1832\u1833\x07U\x02\x02\u1833\u1834\x07U\x02\x02" + - "\u1834\u1835\x07N\x02\x02\u1835\u1836\x07K\x02\x02\u1836\u1837\x07U\x02" + - "\x02\u1837\u1838\x07V\x02\x02\u1838\u03BE\x03\x02\x02\x02\u1839\u183A" + - "\x07R\x02\x02\u183A\u183B\x07T\x02\x02\u183B\u183C\x07Q\x02\x02\u183C" + - "\u183D\x07H\x02\x02\u183D\u183E\x07K\x02\x02\u183E\u183F\x07N\x02\x02" + - "\u183F\u1840\x07G\x02\x02\u1840\u03C0\x03\x02\x02\x02\u1841\u1842\x07" + - "R\x02\x02\u1842\u1843\x07T\x02\x02\u1843\u1844\x07Q\x02\x02\u1844\u1845" + - "\x07H\x02\x02\u1845\u1846\x07K\x02\x02\u1846\u1847\x07N\x02\x02\u1847" + - "\u1848\x07G\x02\x02\u1848\u1849\x07U\x02\x02\u1849\u03C2\x03\x02\x02\x02" + - "\u184A\u184B\x07R\x02\x02\u184B\u184C\x07T\x02\x02\u184C\u184D\x07Q\x02" + - "\x02\u184D\u184E\x07Z\x02\x02\u184E\u184F\x07[\x02\x02\u184F\u03C4\x03" + - "\x02\x02\x02\u1850\u1851\x07S\x02\x02\u1851\u1852\x07W\x02\x02\u1852\u1853" + - "\x07G\x02\x02\u1853\u1854\x07T\x02\x02\u1854\u1855\x07[\x02\x02\u1855" + - "\u03C6\x03\x02\x02\x02\u1856\u1857\x07S\x02\x02\u1857\u1858\x07W\x02\x02" + - "\u1858"; - private static readonly _serializedATNSegment13: string = - "\u1859\x07K\x02\x02\u1859\u185A\x07E\x02\x02\u185A\u185B\x07M\x02\x02" + - "\u185B\u03C8\x03\x02\x02\x02\u185C\u185D\x07T\x02\x02\u185D\u185E\x07" + - "G\x02\x02\u185E\u185F\x07D\x02\x02\u185F\u1860\x07W\x02\x02\u1860\u1861" + - "\x07K\x02\x02\u1861\u1862\x07N\x02\x02\u1862\u1863\x07F\x02\x02\u1863" + - "\u03CA\x03\x02\x02\x02\u1864\u1865\x07T\x02\x02\u1865\u1866\x07G\x02\x02" + - "\u1866\u1867\x07E\x02\x02\u1867\u1868\x07Q\x02\x02\u1868\u1869\x07X\x02" + - "\x02\u1869\u186A\x07G\x02\x02\u186A\u186B\x07T\x02\x02\u186B\u03CC\x03" + - "\x02\x02\x02\u186C\u186D\x07T\x02\x02\u186D\u186E\x07G\x02\x02\u186E\u186F" + - "\x07F\x02\x02\u186F\u1870\x07Q\x02\x02\u1870\u1871\x07a\x02\x02\u1871" + - "\u1872\x07D\x02\x02\u1872\u1873\x07W\x02\x02\u1873\u1874\x07H\x02\x02" + - "\u1874\u1875\x07H\x02\x02\u1875\u1876\x07G\x02\x02\u1876\u1877\x07T\x02" + - "\x02\u1877\u1878\x07a\x02\x02\u1878\u1879\x07U\x02\x02\u1879\u187A\x07" + - "K\x02\x02\u187A\u187B\x07\\\x02\x02\u187B\u187C\x07G\x02\x02\u187C\u03CE" + - "\x03\x02\x02\x02\u187D\u187E\x07T\x02\x02\u187E\u187F\x07G\x02\x02\u187F" + - "\u1880\x07F\x02\x02\u1880\u1881\x07W\x02\x02\u1881\u1882\x07P\x02\x02" + - "\u1882\u1883\x07F\x02\x02\u1883\u1884\x07C\x02\x02\u1884\u1885\x07P\x02" + - "\x02\u1885\u1886\x07V\x02\x02\u1886\u03D0\x03\x02\x02\x02\u1887\u1888" + - "\x07T\x02\x02\u1888\u1889\x07G\x02\x02\u1889\u188A\x07N\x02\x02\u188A" + - "\u188B\x07C\x02\x02\u188B\u188C\x07[\x02\x02\u188C\u03D2\x03\x02\x02\x02" + - "\u188D\u188E\x07T\x02\x02\u188E\u188F\x07G\x02\x02\u188F\u1890\x07N\x02" + - "\x02\u1890\u1891\x07C\x02\x02\u1891\u1892\x07[\x02\x02\u1892\u1893\x07" + - "a\x02\x02\u1893\u1894\x07N\x02\x02\u1894\u1895\x07Q\x02\x02\u1895\u1896" + - "\x07I\x02\x02\u1896\u1897\x07a\x02\x02\u1897\u1898\x07H\x02\x02\u1898" + - "\u1899\x07K\x02\x02\u1899\u189A\x07N\x02\x02\u189A\u189B\x07G\x02\x02" + - "\u189B\u03D4\x03\x02\x02\x02\u189C\u189D\x07T\x02\x02\u189D\u189E\x07" + - "G\x02\x02\u189E\u189F\x07N\x02\x02\u189F\u18A0\x07C\x02\x02\u18A0\u18A1" + - "\x07[\x02\x02\u18A1\u18A2\x07a\x02\x02\u18A2\u18A3\x07N\x02\x02\u18A3" + - "\u18A4\x07Q\x02\x02\u18A4\u18A5\x07I\x02\x02\u18A5\u18A6\x07a\x02\x02" + - "\u18A6\u18A7\x07R\x02\x02\u18A7\u18A8\x07Q\x02\x02\u18A8\u18A9\x07U\x02" + - "\x02\u18A9\u03D6\x03\x02\x02\x02\u18AA\u18AB\x07T\x02\x02\u18AB\u18AC" + - "\x07G\x02\x02\u18AC\u18AD\x07N\x02\x02\u18AD\u18AE\x07C\x02\x02\u18AE" + - "\u18AF\x07[\x02\x02\u18AF\u18B0\x07N\x02\x02\u18B0\u18B1\x07Q\x02\x02" + - "\u18B1\u18B2\x07I\x02\x02\u18B2\u03D8\x03\x02\x02\x02\u18B3\u18B4\x07" + - "T\x02\x02\u18B4\u18B5\x07G\x02\x02\u18B5\u18B6\x07O\x02\x02\u18B6\u18B7" + - "\x07Q\x02\x02\u18B7\u18B8\x07X\x02\x02\u18B8\u18B9\x07G\x02\x02\u18B9" + - "\u03DA\x03\x02\x02\x02\u18BA\u18BB\x07T\x02\x02\u18BB\u18BC\x07G\x02\x02" + - "\u18BC\u18BD\x07Q\x02\x02\u18BD\u18BE\x07T\x02\x02\u18BE\u18BF\x07I\x02" + - "\x02\u18BF\u18C0\x07C\x02\x02\u18C0\u18C1\x07P\x02\x02\u18C1\u18C2\x07" + - "K\x02\x02\u18C2\u18C3\x07\\\x02\x02\u18C3\u18C4\x07G\x02\x02\u18C4\u03DC" + - "\x03\x02\x02\x02\u18C5\u18C6\x07T\x02\x02\u18C6\u18C7\x07G\x02\x02\u18C7" + - "\u18C8\x07R\x02\x02\u18C8\u18C9\x07C\x02\x02\u18C9\u18CA\x07K\x02\x02" + - "\u18CA\u18CB\x07T\x02\x02\u18CB\u03DE\x03\x02\x02\x02\u18CC\u18CD\x07" + - "T\x02\x02\u18CD\u18CE\x07G\x02\x02\u18CE\u18CF\x07R\x02\x02\u18CF\u18D0" + - "\x07N\x02\x02\u18D0\u18D1\x07K\x02\x02\u18D1\u18D2\x07E\x02\x02\u18D2" + - "\u18D3\x07C\x02\x02\u18D3\u18D4\x07V\x02\x02\u18D4\u18D5\x07G\x02\x02" + - "\u18D5\u18D6\x07a\x02\x02\u18D6\u18D7\x07F\x02\x02\u18D7\u18D8\x07Q\x02" + - "\x02\u18D8\u18D9\x07a\x02\x02\u18D9\u18DA\x07F\x02\x02\u18DA\u18DB\x07" + - "D\x02\x02\u18DB\u03E0\x03\x02\x02\x02\u18DC\u18DD\x07T\x02\x02\u18DD\u18DE" + - "\x07G\x02\x02\u18DE\u18DF\x07R\x02\x02\u18DF\u18E0\x07N\x02\x02\u18E0" + - "\u18E1\x07K\x02\x02\u18E1\u18E2\x07E\x02\x02\u18E2\u18E3\x07C\x02\x02" + - "\u18E3\u18E4\x07V\x02\x02\u18E4\u18E5\x07G\x02\x02\u18E5\u18E6\x07a\x02" + - "\x02\u18E6\u18E7\x07F\x02\x02\u18E7\u18E8\x07Q\x02\x02\u18E8\u18E9\x07" + - "a\x02\x02\u18E9\u18EA\x07V\x02\x02\u18EA\u18EB\x07C\x02\x02\u18EB\u18EC" + - "\x07D\x02\x02\u18EC\u18ED\x07N\x02\x02\u18ED\u18EE\x07G\x02\x02\u18EE" + - "\u03E2\x03\x02\x02\x02\u18EF\u18F0\x07T\x02\x02\u18F0\u18F1\x07G\x02\x02" + - "\u18F1\u18F2\x07R\x02\x02\u18F2\u18F3\x07N\x02\x02\u18F3\u18F4\x07K\x02" + - "\x02\u18F4\u18F5\x07E\x02\x02\u18F5\u18F6\x07C\x02\x02\u18F6\u18F7\x07" + - "V\x02\x02\u18F7\u18F8\x07G\x02\x02\u18F8\u18F9\x07a\x02\x02\u18F9\u18FA" + - "\x07K\x02\x02\u18FA\u18FB\x07I\x02\x02\u18FB\u18FC\x07P\x02\x02\u18FC" + - "\u18FD\x07Q\x02\x02\u18FD\u18FE\x07T\x02\x02\u18FE\u18FF\x07G\x02\x02" + - "\u18FF\u1900\x07a\x02\x02\u1900\u1901\x07F\x02\x02\u1901\u1902\x07D\x02" + - "\x02\u1902\u03E4\x03\x02\x02\x02\u1903\u1904\x07T\x02\x02\u1904\u1905" + - "\x07G\x02\x02\u1905\u1906\x07R\x02\x02\u1906\u1907\x07N\x02\x02\u1907" + - "\u1908\x07K\x02\x02\u1908\u1909\x07E\x02\x02\u1909\u190A\x07C\x02\x02" + - "\u190A\u190B\x07V\x02\x02\u190B\u190C\x07G\x02\x02\u190C\u190D\x07a\x02" + - "\x02\u190D\u190E\x07K\x02\x02\u190E\u190F\x07I\x02\x02\u190F\u1910\x07" + - "P\x02\x02\u1910\u1911\x07Q\x02\x02\u1911\u1912\x07T\x02\x02\u1912\u1913" + - "\x07G\x02\x02\u1913\u1914\x07a\x02\x02\u1914\u1915\x07V\x02\x02\u1915" + - "\u1916\x07C\x02\x02\u1916\u1917\x07D\x02\x02\u1917\u1918\x07N\x02\x02" + - "\u1918\u1919\x07G\x02\x02\u1919\u03E6\x03\x02\x02\x02\u191A\u191B\x07" + - "T\x02\x02\u191B\u191C\x07G\x02\x02\u191C\u191D\x07R\x02\x02\u191D\u191E" + - "\x07N\x02\x02\u191E\u191F\x07K\x02\x02\u191F\u1920\x07E\x02\x02\u1920" + - "\u1921\x07C\x02\x02\u1921\u1922\x07V\x02\x02\u1922\u1923\x07G\x02\x02" + - "\u1923\u1924\x07a\x02\x02\u1924\u1925\x07T\x02\x02\u1925\u1926\x07G\x02" + - "\x02\u1926\u1927\x07Y\x02\x02\u1927\u1928\x07T\x02\x02\u1928\u1929\x07" + - "K\x02\x02\u1929\u192A\x07V\x02\x02\u192A\u192B\x07G\x02\x02\u192B\u192C" + - "\x07a\x02\x02\u192C\u192D\x07F\x02\x02\u192D\u192E\x07D\x02\x02\u192E" + - "\u03E8\x03\x02\x02\x02\u192F\u1930\x07T\x02\x02\u1930\u1931\x07G\x02\x02" + - "\u1931\u1932\x07R\x02\x02\u1932\u1933\x07N\x02\x02\u1933\u1934\x07K\x02" + - "\x02\u1934\u1935\x07E\x02\x02\u1935\u1936\x07C\x02\x02\u1936\u1937\x07" + - "V\x02\x02\u1937\u1938\x07G\x02\x02\u1938\u1939\x07a\x02\x02\u1939\u193A" + - "\x07Y\x02\x02\u193A\u193B\x07K\x02\x02\u193B\u193C\x07N\x02\x02\u193C" + - "\u193D\x07F\x02\x02\u193D\u193E\x07a\x02\x02\u193E\u193F\x07F\x02\x02" + - "\u193F\u1940\x07Q\x02\x02\u1940\u1941\x07a\x02\x02\u1941\u1942\x07V\x02" + - "\x02\u1942\u1943\x07C\x02\x02\u1943\u1944\x07D\x02\x02\u1944\u1945\x07" + - "N\x02\x02\u1945\u1946\x07G\x02\x02\u1946\u03EA\x03\x02\x02\x02\u1947\u1948" + - "\x07T\x02\x02\u1948\u1949\x07G\x02\x02\u1949\u194A\x07R\x02\x02\u194A" + - "\u194B\x07N\x02\x02\u194B\u194C\x07K\x02\x02\u194C\u194D\x07E\x02\x02" + - "\u194D\u194E\x07C\x02\x02\u194E\u194F\x07V\x02\x02\u194F\u1950\x07G\x02" + - "\x02\u1950\u1951\x07a\x02\x02\u1951\u1952\x07Y\x02\x02\u1952\u1953\x07" + - "K\x02\x02\u1953\u1954\x07N\x02\x02\u1954\u1955\x07F\x02\x02\u1955\u1956" + - "\x07a\x02\x02\u1956\u1957\x07K\x02\x02\u1957\u1958\x07I\x02\x02\u1958" + - "\u1959\x07P\x02\x02\u1959\u195A\x07Q\x02\x02\u195A\u195B\x07T\x02\x02" + - "\u195B\u195C\x07G\x02\x02\u195C\u195D\x07a\x02\x02\u195D\u195E\x07V\x02" + - "\x02\u195E\u195F\x07C\x02\x02\u195F\u1960\x07D\x02\x02\u1960\u1961\x07" + - "N\x02\x02\u1961\u1962\x07G\x02\x02\u1962\u03EC\x03\x02\x02\x02\u1963\u1964" + - "\x07T\x02\x02\u1964\u1965\x07G\x02\x02\u1965\u1966\x07R\x02\x02\u1966" + - "\u1967\x07N\x02\x02\u1967\u1968\x07K\x02\x02\u1968\u1969\x07E\x02\x02" + - "\u1969\u196A\x07C\x02\x02\u196A\u196B\x07V\x02\x02\u196B\u196C\x07K\x02" + - "\x02\u196C\u196D\x07Q\x02\x02\u196D\u196E\x07P\x02\x02\u196E\u03EE\x03" + - "\x02\x02\x02\u196F\u1970\x07T\x02\x02\u1970\u1971\x07G\x02\x02\u1971\u1972" + - "\x07U\x02\x02\u1972\u1973\x07G\x02\x02\u1973\u1974\x07V\x02\x02\u1974" + - "\u03F0\x03\x02\x02\x02\u1975\u1976\x07T\x02\x02\u1976\u1977\x07G\x02\x02" + - "\u1977\u1978\x07U\x02\x02\u1978\u1979\x07W\x02\x02\u1979\u197A\x07O\x02" + - "\x02\u197A\u197B\x07G\x02\x02\u197B\u03F2\x03\x02\x02\x02\u197C\u197D" + - "\x07T\x02\x02\u197D\u197E\x07G\x02\x02\u197E\u197F\x07V\x02\x02\u197F" + - "\u1980\x07W\x02\x02\u1980\u1981\x07T\x02\x02\u1981\u1982\x07P\x02\x02" + - "\u1982\u1983\x07G\x02\x02\u1983\u1984\x07F\x02\x02\u1984\u1985\x07a\x02" + - "\x02\u1985\u1986\x07U\x02\x02\u1986\u1987\x07S\x02\x02\u1987\u1988\x07" + - "N\x02\x02\u1988\u1989\x07U\x02\x02\u1989\u198A\x07V\x02\x02\u198A\u198B" + - "\x07C\x02\x02\u198B\u198C\x07V\x02\x02\u198C\u198D\x07G\x02\x02\u198D" + - "\u03F4\x03\x02\x02\x02\u198E\u198F\x07T\x02\x02\u198F\u1990\x07G\x02\x02" + - "\u1990\u1991\x07V\x02\x02\u1991\u1992\x07W\x02\x02\u1992\u1993\x07T\x02" + - "\x02\u1993\u1994\x07P\x02\x02\u1994\u1995\x07U\x02\x02\u1995\u03F6\x03" + - "\x02\x02\x02\u1996\u1997\x07T\x02\x02\u1997\u1998\x07Q\x02\x02\u1998\u1999" + - "\x07N\x02\x02\u1999\u199A\x07G\x02\x02\u199A\u03F8\x03\x02\x02\x02\u199B" + - "\u199C\x07T\x02\x02\u199C\u199D\x07Q\x02\x02\u199D\u199E\x07N\x02\x02" + - "\u199E\u199F\x07N\x02\x02\u199F\u19A0\x07D\x02\x02\u19A0\u19A1\x07C\x02" + - "\x02\u19A1\u19A2\x07E\x02\x02\u19A2\u19A3\x07M\x02\x02\u19A3\u03FA\x03" + - "\x02\x02\x02\u19A4\u19A5\x07T\x02\x02\u19A5\u19A6\x07Q\x02\x02\u19A6\u19A7" + - "\x07N\x02\x02\u19A7\u19A8\x07N\x02\x02\u19A8\u19A9\x07W\x02\x02\u19A9" + - "\u19AA\x07R\x02\x02\u19AA\u03FC\x03\x02\x02\x02\u19AB\u19AC\x07T\x02\x02" + - "\u19AC\u19AD\x07Q\x02\x02\u19AD\u19AE\x07V\x02\x02\u19AE\u19AF\x07C\x02" + - "\x02\u19AF\u19B0\x07V\x02\x02\u19B0\u19B1\x07G\x02\x02\u19B1\u03FE\x03" + - "\x02\x02\x02\u19B2\u19B3\x07T\x02\x02\u19B3\u19B4\x07Q\x02\x02\u19B4\u19B5" + - "\x07Y\x02\x02\u19B5\u0400\x03\x02\x02\x02\u19B6\u19B7\x07T\x02\x02\u19B7" + - "\u19B8\x07Q\x02\x02\u19B8\u19B9\x07Y\x02\x02\u19B9\u19BA\x07U\x02\x02" + - "\u19BA\u0402\x03\x02\x02\x02\u19BB\u19BC\x07T\x02\x02\u19BC\u19BD\x07" + - "Q\x02\x02\u19BD\u19BE\x07Y\x02\x02\u19BE\u19BF\x07a\x02\x02\u19BF\u19C0" + - "\x07H\x02\x02\u19C0\u19C1\x07Q\x02\x02\u19C1\u19C2\x07T\x02\x02\u19C2" + - "\u19C3\x07O\x02\x02\u19C3\u19C4\x07C\x02\x02\u19C4\u19C5\x07V\x02\x02" + - "\u19C5\u0404\x03\x02\x02\x02\u19C6\u19C7\x07U\x02\x02\u19C7\u19C8\x07" + - "C\x02\x02\u19C8\u19C9\x07X\x02\x02\u19C9\u19CA\x07G\x02\x02\u19CA\u19CB" + - "\x07R\x02\x02\u19CB\u19CC\x07Q\x02\x02\u19CC\u19CD\x07K\x02\x02\u19CD" + - "\u19CE\x07P\x02\x02\u19CE\u19CF\x07V\x02\x02\u19CF\u0406\x03\x02\x02\x02" + - "\u19D0\u19D1\x07U\x02\x02\u19D1\u19D2\x07E\x02\x02\u19D2\u19D3\x07J\x02" + - "\x02\u19D3\u19D4\x07G\x02\x02\u19D4\u19D5\x07F\x02\x02\u19D5\u19D6\x07" + - "W\x02\x02\u19D6\u19D7\x07N\x02\x02\u19D7\u19D8\x07G\x02\x02\u19D8\u0408" + - "\x03\x02\x02\x02\u19D9\u19DA\x07U\x02\x02\u19DA\u19DB\x07G\x02\x02\u19DB" + - "\u19DC\x07E\x02\x02\u19DC\u19DD\x07W\x02\x02\u19DD\u19DE\x07T\x02\x02" + - "\u19DE\u19DF\x07K\x02\x02\u19DF\u19E0\x07V\x02\x02\u19E0\u19E1\x07[\x02" + - "\x02\u19E1\u040A\x03\x02\x02\x02\u19E2\u19E3\x07U\x02\x02\u19E3\u19E4" + - "\x07G\x02\x02\u19E4\u19E5\x07T\x02\x02\u19E5\u19E6\x07X\x02\x02\u19E6" + - "\u19E7\x07G\x02\x02\u19E7\u19E8\x07T\x02\x02\u19E8\u040C\x03\x02\x02\x02" + - "\u19E9\u19EA\x07U\x02\x02\u19EA\u19EB\x07G\x02\x02\u19EB\u19EC\x07U\x02" + - "\x02\u19EC\u19ED\x07U\x02\x02\u19ED\u19EE\x07K\x02\x02\u19EE\u19EF\x07" + - "Q\x02\x02\u19EF\u19F0\x07P\x02\x02\u19F0\u040E\x03\x02\x02\x02\u19F1\u19F2" + - "\x07U\x02\x02\u19F2\u19F3\x07J\x02\x02\u19F3\u19F4\x07C\x02\x02\u19F4" + - "\u19F5\x07T\x02\x02\u19F5\u19F6\x07G\x02\x02\u19F6\u0410\x03\x02\x02\x02" + - "\u19F7\u19F8\x07U\x02\x02\u19F8\u19F9\x07J\x02\x02\u19F9\u19FA\x07C\x02" + - "\x02\u19FA\u19FB\x07T\x02\x02\u19FB\u19FC\x07G\x02\x02\u19FC\u19FD\x07" + - "F\x02\x02\u19FD\u0412\x03\x02\x02\x02\u19FE\u19FF\x07U\x02\x02\u19FF\u1A00" + - "\x07K\x02\x02\u1A00\u1A01\x07I\x02\x02\u1A01\u1A02\x07P\x02\x02\u1A02" + - "\u1A03\x07G\x02\x02\u1A03\u1A04\x07F\x02\x02\u1A04\u0414\x03\x02\x02\x02" + - "\u1A05\u1A06\x07U\x02\x02\u1A06\u1A07\x07K\x02\x02\u1A07\u1A08\x07O\x02" + - "\x02\u1A08\u1A09\x07R\x02\x02\u1A09\u1A0A\x07N\x02\x02\u1A0A\u1A0B\x07" + - "G\x02\x02\u1A0B\u0416\x03\x02\x02\x02\u1A0C\u1A0D\x07U\x02\x02\u1A0D\u1A0E" + - "\x07N\x02\x02\u1A0E\u1A0F\x07C\x02\x02\u1A0F\u1A10\x07X\x02\x02\u1A10" + - "\u1A11\x07G\x02\x02\u1A11\u0418\x03\x02\x02\x02\u1A12\u1A13\x07U\x02\x02" + - "\u1A13\u1A14\x07N\x02\x02\u1A14\u1A15\x07Q\x02\x02\u1A15\u1A16\x07Y\x02" + - "\x02\u1A16\u041A\x03\x02\x02\x02\u1A17\u1A18\x07U\x02\x02\u1A18\u1A19" + - "\x07P\x02\x02\u1A19\u1A1A\x07C\x02\x02\u1A1A\u1A1B\x07R\x02\x02\u1A1B" + - "\u1A1C\x07U\x02\x02\u1A1C\u1A1D\x07J\x02\x02\u1A1D\u1A1E\x07Q\x02\x02" + - "\u1A1E\u1A1F\x07V\x02\x02\u1A1F\u041C\x03\x02\x02\x02\u1A20\u1A21\x07" + - "U\x02\x02\u1A21\u1A22\x07Q\x02\x02\u1A22\u1A23\x07E\x02\x02\u1A23\u1A24" + - "\x07M\x02\x02\u1A24\u1A25\x07G\x02\x02\u1A25\u1A26\x07V\x02\x02\u1A26" + - "\u041E\x03\x02\x02\x02\u1A27\u1A28\x07U\x02\x02\u1A28\u1A29\x07Q\x02\x02" + - "\u1A29\u1A2A\x07O\x02\x02\u1A2A\u1A2B\x07G\x02\x02\u1A2B\u0420\x03\x02" + - "\x02\x02\u1A2C\u1A2D\x07U\x02\x02\u1A2D\u1A2E\x07Q\x02\x02\u1A2E\u1A2F" + - "\x07P\x02\x02\u1A2F\u1A30\x07C\x02\x02\u1A30\u1A31\x07O\x02\x02\u1A31" + - "\u1A32\x07G\x02\x02\u1A32\u0422\x03\x02\x02\x02\u1A33\u1A34\x07U\x02\x02" + - "\u1A34\u1A35\x07Q\x02\x02\u1A35\u1A36\x07W\x02\x02\u1A36\u1A37\x07P\x02" + - "\x02\u1A37\u1A38\x07F\x02\x02\u1A38\u1A39\x07U\x02\x02\u1A39\u0424\x03" + - "\x02\x02\x02\u1A3A\u1A3B\x07U\x02\x02\u1A3B\u1A3C\x07Q\x02\x02\u1A3C\u1A3D" + - "\x07W\x02\x02\u1A3D\u1A3E\x07T\x02\x02\u1A3E\u1A3F\x07E\x02\x02\u1A3F" + - "\u1A40\x07G\x02\x02\u1A40\u0426\x03\x02\x02\x02\u1A41\u1A42\x07U\x02\x02" + - "\u1A42\u1A43\x07S\x02\x02\u1A43\u1A44\x07N\x02\x02\u1A44\u1A45\x07a\x02" + - "\x02\u1A45\u1A46\x07C\x02\x02\u1A46\u1A47\x07H\x02\x02\u1A47\u1A48\x07" + - "V\x02\x02\u1A48\u1A49\x07G\x02\x02\u1A49\u1A4A\x07T\x02\x02\u1A4A\u1A4B" + - "\x07a\x02\x02\u1A4B\u1A4C\x07I\x02\x02\u1A4C\u1A4D\x07V\x02\x02\u1A4D" + - "\u1A4E\x07K\x02\x02\u1A4E\u1A4F\x07F\x02\x02\u1A4F\u1A50\x07U\x02\x02" + - "\u1A50\u0428\x03\x02\x02\x02\u1A51\u1A52\x07U\x02\x02\u1A52\u1A53\x07" + - "S\x02\x02\u1A53\u1A54\x07N\x02\x02\u1A54\u1A55\x07a\x02\x02\u1A55\u1A56" + - "\x07C\x02\x02\u1A56\u1A57\x07H\x02\x02\u1A57\u1A58\x07V\x02\x02\u1A58" + - "\u1A59\x07G\x02\x02\u1A59\u1A5A\x07T\x02\x02\u1A5A\u1A5B\x07a\x02\x02" + - "\u1A5B\u1A5C\x07O\x02\x02\u1A5C\u1A5D\x07V\x02\x02\u1A5D\u1A5E\x07U\x02" + - "\x02\u1A5E\u1A5F\x07a\x02\x02\u1A5F\u1A60\x07I\x02\x02\u1A60\u1A61\x07" + - "C\x02\x02\u1A61\u1A62\x07R\x02\x02\u1A62\u1A63\x07U\x02\x02\u1A63\u042A" + - "\x03\x02\x02\x02\u1A64\u1A65\x07U\x02\x02\u1A65\u1A66\x07S\x02\x02\u1A66" + - "\u1A67\x07N\x02\x02\u1A67\u1A68\x07a\x02\x02\u1A68\u1A69\x07D\x02\x02" + - "\u1A69\u1A6A\x07G\x02\x02\u1A6A\u1A6B\x07H\x02\x02\u1A6B\u1A6C\x07Q\x02" + - "\x02\u1A6C\u1A6D\x07T\x02\x02\u1A6D\u1A6E\x07G\x02\x02\u1A6E\u1A6F\x07" + - "a\x02\x02\u1A6F\u1A70\x07I\x02\x02\u1A70\u1A71\x07V\x02\x02\u1A71\u1A72" + - "\x07K\x02\x02\u1A72\u1A73\x07F\x02\x02\u1A73\u1A74\x07U\x02\x02\u1A74" + - "\u042C\x03\x02\x02\x02\u1A75\u1A76\x07U\x02\x02\u1A76\u1A77\x07S\x02\x02" + - "\u1A77\u1A78\x07N\x02\x02\u1A78\u1A79\x07a\x02\x02\u1A79\u1A7A\x07D\x02" + - "\x02\u1A7A\u1A7B\x07W\x02\x02\u1A7B\u1A7C\x07H\x02\x02\u1A7C\u1A7D\x07" + - "H\x02\x02\u1A7D\u1A7E\x07G\x02\x02\u1A7E\u1A7F\x07T\x02\x02\u1A7F\u1A80" + - "\x07a\x02\x02\u1A80\u1A81\x07T\x02\x02\u1A81\u1A82\x07G\x02\x02\u1A82" + - "\u1A83\x07U\x02\x02\u1A83\u1A84\x07W\x02\x02\u1A84\u1A85\x07N\x02\x02" + - "\u1A85\u1A86\x07V\x02\x02\u1A86\u042E\x03\x02\x02\x02\u1A87\u1A88\x07" + - "U\x02\x02\u1A88\u1A89\x07S\x02\x02\u1A89\u1A8A\x07N\x02\x02\u1A8A\u1A8B" + - "\x07a\x02\x02\u1A8B\u1A8C\x07E\x02\x02\u1A8C\u1A8D\x07C\x02\x02\u1A8D" + - "\u1A8E\x07E\x02\x02\u1A8E\u1A8F\x07J\x02\x02\u1A8F\u1A90\x07G\x02\x02" + - "\u1A90\u0430\x03\x02\x02\x02\u1A91\u1A92\x07U\x02\x02\u1A92\u1A93\x07" + - "S\x02\x02\u1A93\u1A94\x07N\x02\x02\u1A94\u1A95\x07a\x02\x02\u1A95\u1A96" + - "\x07P\x02\x02\u1A96\u1A97\x07Q\x02\x02\u1A97\u1A98\x07a\x02\x02\u1A98" + - "\u1A99\x07E\x02\x02\u1A99\u1A9A\x07C\x02\x02\u1A9A\u1A9B\x07E\x02\x02" + - "\u1A9B\u1A9C\x07J\x02\x02\u1A9C\u1A9D\x07G\x02\x02\u1A9D\u0432\x03\x02" + - "\x02\x02\u1A9E\u1A9F\x07U\x02\x02\u1A9F\u1AA0\x07S\x02\x02\u1AA0\u1AA1" + - "\x07N\x02\x02\u1AA1\u1AA2\x07a\x02\x02\u1AA2\u1AA3\x07V\x02\x02\u1AA3" + - "\u1AA4\x07J\x02\x02\u1AA4\u1AA5\x07T\x02\x02\u1AA5\u1AA6\x07G\x02\x02" + - "\u1AA6\u1AA7\x07C\x02\x02\u1AA7\u1AA8\x07F\x02\x02\u1AA8\u0434\x03\x02" + - "\x02\x02\u1AA9\u1AAA\x07U\x02\x02\u1AAA\u1AAB\x07V\x02\x02\u1AAB\u1AAC" + - "\x07C\x02\x02\u1AAC\u1AAD\x07T\x02\x02\u1AAD\u1AAE\x07V\x02\x02\u1AAE" + - "\u0436\x03\x02\x02\x02\u1AAF\u1AB0\x07U\x02\x02\u1AB0\u1AB1\x07V\x02\x02" + - "\u1AB1\u1AB2\x07C\x02\x02\u1AB2\u1AB3\x07T\x02\x02\u1AB3\u1AB4\x07V\x02" + - "\x02\u1AB4\u1AB5\x07U\x02\x02\u1AB5\u0438\x03\x02\x02\x02\u1AB6\u1AB7" + - "\x07U\x02\x02\u1AB7\u1AB8\x07V\x02\x02\u1AB8\u1AB9\x07C\x02\x02\u1AB9" + - "\u1ABA\x07V\x02\x02\u1ABA\u1ABB\x07U\x02\x02\u1ABB\u1ABC\x07a\x02\x02" + - "\u1ABC\u1ABD\x07C\x02\x02\u1ABD\u1ABE\x07W\x02\x02\u1ABE\u1ABF\x07V\x02" + - "\x02\u1ABF\u1AC0\x07Q\x02\x02\u1AC0\u1AC1\x07a\x02\x02\u1AC1\u1AC2\x07" + - "T\x02\x02\u1AC2\u1AC3\x07G\x02\x02\u1AC3\u1AC4\x07E\x02\x02\u1AC4\u1AC5" + - "\x07C\x02\x02\u1AC5\u1AC6\x07N\x02\x02\u1AC6\u1AC7\x07E\x02\x02\u1AC7" + - "\u043A\x03\x02\x02\x02\u1AC8\u1AC9\x07U\x02\x02\u1AC9\u1ACA\x07V\x02\x02" + - "\u1ACA\u1ACB\x07C\x02\x02\u1ACB\u1ACC\x07V\x02\x02\u1ACC\u1ACD\x07U\x02" + - "\x02\u1ACD\u1ACE\x07a\x02\x02\u1ACE\u1ACF\x07R\x02\x02\u1ACF\u1AD0\x07" + - "G\x02\x02\u1AD0\u1AD1\x07T\x02\x02\u1AD1\u1AD2\x07U\x02\x02\u1AD2\u1AD3" + - "\x07K\x02\x02\u1AD3\u1AD4\x07U\x02\x02\u1AD4\u1AD5\x07V\x02\x02\u1AD5" + - "\u1AD6\x07G\x02\x02\u1AD6\u1AD7\x07P\x02\x02\u1AD7\u1AD8\x07V\x02\x02" + - "\u1AD8\u043C\x03\x02\x02\x02\u1AD9\u1ADA\x07U\x02\x02\u1ADA\u1ADB\x07" + - "V\x02\x02\u1ADB\u1ADC\x07C\x02\x02\u1ADC\u1ADD\x07V\x02\x02\u1ADD\u1ADE" + - "\x07U\x02\x02\u1ADE\u1ADF\x07a\x02\x02\u1ADF\u1AE0\x07U\x02\x02\u1AE0" + - "\u1AE1\x07C\x02\x02\u1AE1\u1AE2\x07O\x02\x02\u1AE2\u1AE3\x07R\x02\x02" + - "\u1AE3\u1AE4\x07N\x02\x02\u1AE4\u1AE5\x07G\x02\x02\u1AE5\u1AE6\x07a\x02" + - "\x02\u1AE6\u1AE7\x07R\x02\x02\u1AE7\u1AE8\x07C\x02\x02\u1AE8\u1AE9\x07" + - "I\x02\x02\u1AE9\u1AEA\x07G\x02\x02\u1AEA\u1AEB\x07U\x02\x02\u1AEB\u043E" + - "\x03\x02\x02\x02\u1AEC\u1AED\x07U\x02\x02\u1AED\u1AEE\x07V\x02\x02\u1AEE" + - "\u1AEF\x07C\x02\x02\u1AEF\u1AF0\x07V\x02\x02\u1AF0\u1AF1\x07W\x02\x02" + - "\u1AF1\u1AF2\x07U\x02\x02\u1AF2\u0440\x03\x02\x02\x02\u1AF3\u1AF4\x07" + - "U\x02\x02\u1AF4\u1AF5\x07V\x02\x02\u1AF5\u1AF6\x07Q\x02\x02\u1AF6\u1AF7" + - "\x07R\x02\x02\u1AF7\u0442\x03\x02\x02\x02\u1AF8\u1AF9\x07U\x02\x02\u1AF9" + - "\u1AFA\x07V\x02\x02\u1AFA\u1AFB\x07Q\x02\x02\u1AFB\u1AFC\x07T\x02\x02" + - "\u1AFC\u1AFD\x07C\x02\x02\u1AFD\u1AFE\x07I\x02\x02\u1AFE\u1AFF\x07G\x02" + - "\x02\u1AFF\u0444\x03\x02\x02\x02\u1B00\u1B01\x07U\x02\x02\u1B01\u1B02" + - "\x07V\x02\x02\u1B02\u1B03\x07Q\x02\x02\u1B03\u1B04\x07T\x02\x02\u1B04" + - "\u1B05\x07G\x02\x02\u1B05\u1B06\x07F\x02\x02\u1B06\u0446\x03\x02\x02\x02" + - "\u1B07\u1B08\x07U\x02\x02\u1B08\u1B09\x07V\x02\x02\u1B09\u1B0A\x07T\x02" + - "\x02\u1B0A\u1B0B\x07K\x02\x02\u1B0B\u1B0C\x07P\x02\x02\u1B0C\u1B0D\x07" + - "I\x02\x02\u1B0D\u0448\x03\x02\x02\x02\u1B0E\u1B0F\x07U\x02\x02\u1B0F\u1B10" + - "\x07W\x02\x02\u1B10\u1B11\x07D\x02\x02\u1B11\u1B12\x07E\x02\x02\u1B12" + - "\u1B13\x07N\x02\x02\u1B13\u1B14\x07C\x02\x02\u1B14\u1B15\x07U\x02\x02" + - "\u1B15\u1B16\x07U\x02\x02\u1B16\u1B17\x07a\x02\x02\u1B17\u1B18\x07Q\x02" + - "\x02\u1B18\u1B19\x07T\x02\x02\u1B19\u1B1A\x07K\x02\x02\u1B1A\u1B1B\x07" + - "I\x02\x02\u1B1B\u1B1C\x07K\x02\x02\u1B1C\u1B1D\x07P\x02\x02\u1B1D\u044A" + - "\x03\x02\x02\x02\u1B1E\u1B1F\x07U\x02\x02\u1B1F\u1B20\x07W\x02\x02\u1B20" + - "\u1B21\x07D\x02\x02\u1B21\u1B22\x07L\x02\x02\u1B22\u1B23\x07G\x02\x02" + - "\u1B23\u1B24\x07E\x02\x02\u1B24\u1B25\x07V\x02\x02\u1B25\u044C\x03\x02" + - "\x02\x02\u1B26\u1B27\x07U\x02\x02\u1B27\u1B28\x07W\x02\x02\u1B28\u1B29" + - "\x07D\x02\x02\u1B29\u1B2A\x07R\x02\x02\u1B2A\u1B2B\x07C\x02\x02\u1B2B" + - "\u1B2C\x07T\x02\x02\u1B2C\u1B2D\x07V\x02\x02\u1B2D\u1B2E\x07K\x02\x02" + - "\u1B2E\u1B2F\x07V\x02\x02\u1B2F\u1B30\x07K\x02\x02\u1B30\u1B31\x07Q\x02" + - "\x02\u1B31\u1B32\x07P\x02\x02\u1B32\u044E\x03\x02\x02\x02\u1B33\u1B34" + - "\x07U\x02\x02\u1B34\u1B35\x07W\x02\x02\u1B35\u1B36\x07D\x02\x02\u1B36" + - "\u1B37\x07R\x02\x02\u1B37\u1B38\x07C\x02\x02\u1B38\u1B39\x07T\x02\x02" + - "\u1B39\u1B3A\x07V\x02\x02\u1B3A\u1B3B\x07K\x02\x02\u1B3B\u1B3C\x07V\x02" + - "\x02\u1B3C\u1B3D\x07K\x02\x02\u1B3D\u1B3E\x07Q\x02\x02\u1B3E\u1B3F\x07" + - "P\x02\x02\u1B3F\u1B40\x07U\x02\x02\u1B40\u0450\x03\x02\x02\x02\u1B41\u1B42" + - "\x07U\x02\x02\u1B42\u1B43\x07W\x02\x02\u1B43\u1B44\x07U\x02\x02\u1B44" + - "\u1B45\x07R\x02\x02\u1B45\u1B46\x07G\x02\x02\u1B46\u1B47\x07P\x02\x02" + - "\u1B47\u1B48\x07F\x02\x02\u1B48\u0452\x03\x02\x02\x02\u1B49\u1B4A\x07" + - "U\x02\x02\u1B4A\u1B4B\x07Y\x02\x02\u1B4B\u1B4C\x07C\x02\x02\u1B4C\u1B4D" + - "\x07R\x02\x02\u1B4D\u1B4E\x07U\x02\x02\u1B4E\u0454\x03\x02\x02\x02\u1B4F" + - "\u1B50\x07U\x02\x02\u1B50\u1B51\x07Y\x02\x02\u1B51\u1B52\x07K\x02\x02" + - "\u1B52\u1B53\x07V\x02\x02\u1B53\u1B54\x07E\x02\x02\u1B54\u1B55\x07J\x02" + - "\x02\u1B55\u1B56\x07G\x02\x02\u1B56\u1B57\x07U\x02\x02\u1B57\u0456\x03" + - "\x02\x02\x02\u1B58\u1B59\x07V\x02\x02\u1B59\u1B5A\x07C\x02\x02\u1B5A\u1B5B" + - "\x07D\x02\x02\u1B5B\u1B5C\x07N\x02\x02\u1B5C\u1B5D\x07G\x02\x02\u1B5D" + - "\u1B5E\x07a\x02\x02\u1B5E\u1B5F\x07P\x02\x02\u1B5F\u1B60\x07C\x02\x02" + - "\u1B60\u1B61\x07O\x02\x02\u1B61\u1B62\x07G\x02\x02\u1B62\u0458\x03\x02" + - "\x02\x02\u1B63\u1B64\x07V\x02\x02\u1B64\u1B65\x07C\x02\x02\u1B65\u1B66" + - "\x07D\x02\x02\u1B66\u1B67\x07N\x02\x02\u1B67\u1B68\x07G\x02\x02\u1B68" + - "\u1B69\x07U\x02\x02\u1B69\u1B6A\x07R\x02\x02\u1B6A\u1B6B\x07C\x02\x02" + - "\u1B6B\u1B6C\x07E\x02\x02\u1B6C\u1B6D\x07G\x02\x02\u1B6D\u045A\x03\x02" + - "\x02\x02\u1B6E\u1B6F\x07V\x02\x02\u1B6F\u1B70\x07G\x02\x02\u1B70\u1B71" + - "\x07O\x02\x02\u1B71\u1B72\x07R\x02\x02\u1B72\u1B73\x07Q\x02\x02\u1B73" + - "\u1B74\x07T\x02\x02\u1B74\u1B75\x07C\x02\x02\u1B75\u1B76\x07T\x02\x02" + - "\u1B76\u1B77\x07[\x02\x02\u1B77\u045C\x03\x02\x02\x02\u1B78\u1B79\x07" + - "V\x02\x02\u1B79\u1B7A\x07G\x02\x02\u1B7A\u1B7B\x07O\x02\x02\u1B7B\u1B7C" + - "\x07R\x02\x02\u1B7C\u1B7D\x07V\x02\x02\u1B7D\u1B7E\x07C\x02\x02\u1B7E" + - "\u1B7F\x07D\x02\x02\u1B7F\u1B80\x07N\x02\x02\u1B80\u1B81\x07G\x02\x02" + - "\u1B81\u045E\x03\x02\x02\x02\u1B82\u1B83\x07V\x02\x02\u1B83\u1B84\x07" + - "J\x02\x02\u1B84\u1B85\x07C\x02\x02\u1B85\u1B86\x07P\x02\x02\u1B86\u0460" + - "\x03\x02\x02\x02\u1B87\u1B88\x07V\x02\x02\u1B88\u1B89\x07T\x02\x02\u1B89" + - "\u1B8A\x07C\x02\x02\u1B8A\u1B8B\x07F\x02\x02\u1B8B\u1B8C\x07K\x02\x02" + - "\u1B8C\u1B8D\x07V\x02\x02\u1B8D\u1B8E\x07K\x02\x02\u1B8E\u1B8F\x07Q\x02" + - "\x02\u1B8F\u1B90\x07P\x02\x02\u1B90\u1B91\x07C\x02\x02\u1B91\u1B92\x07" + - "N\x02\x02\u1B92\u0462\x03\x02\x02\x02\u1B93\u1B94\x07V\x02\x02\u1B94\u1B95" + - "\x07T\x02\x02\u1B95\u1B96\x07C\x02\x02\u1B96\u1B97\x07P\x02\x02\u1B97" + - "\u1B98\x07U\x02\x02\u1B98\u1B99\x07C\x02\x02\u1B99\u1B9A\x07"; - private static readonly _serializedATNSegment14: string = - "E\x02\x02\u1B9A\u1B9B\x07V\x02\x02\u1B9B\u1B9C\x07K\x02\x02\u1B9C\u1B9D" + - "\x07Q\x02\x02\u1B9D\u1B9E\x07P\x02\x02\u1B9E\u0464\x03\x02\x02\x02\u1B9F" + - "\u1BA0\x07V\x02\x02\u1BA0\u1BA1\x07T\x02\x02\u1BA1\u1BA2\x07C\x02\x02" + - "\u1BA2\u1BA3\x07P\x02\x02\u1BA3\u1BA4\x07U\x02\x02\u1BA4\u1BA5\x07C\x02" + - "\x02\u1BA5\u1BA6\x07E\x02\x02\u1BA6\u1BA7\x07V\x02\x02\u1BA7\u1BA8\x07" + - "K\x02\x02\u1BA8\u1BA9\x07Q\x02\x02\u1BA9\u1BAA\x07P\x02\x02\u1BAA\u1BAB" + - "\x07C\x02\x02\u1BAB\u1BAC\x07N\x02\x02\u1BAC\u0466\x03\x02\x02\x02\u1BAD" + - "\u1BAE\x07V\x02\x02\u1BAE\u1BAF\x07T\x02\x02\u1BAF\u1BB0\x07K\x02\x02" + - "\u1BB0\u1BB1\x07I\x02\x02\u1BB1\u1BB2\x07I\x02\x02\u1BB2\u1BB3\x07G\x02" + - "\x02\u1BB3\u1BB4\x07T\x02\x02\u1BB4\u1BB5\x07U\x02\x02\u1BB5\u0468\x03" + - "\x02\x02\x02\u1BB6\u1BB7\x07V\x02\x02\u1BB7\u1BB8\x07T\x02\x02\u1BB8\u1BB9" + - "\x07W\x02\x02\u1BB9\u1BBA\x07P\x02\x02\u1BBA\u1BBB\x07E\x02\x02\u1BBB" + - "\u1BBC\x07C\x02\x02\u1BBC\u1BBD\x07V\x02\x02\u1BBD\u1BBE\x07G\x02\x02" + - "\u1BBE\u046A\x03\x02\x02\x02\u1BBF\u1BC0\x07W\x02\x02\u1BC0\u1BC1\x07" + - "P\x02\x02\u1BC1\u1BC2\x07F\x02\x02\u1BC2\u1BC3\x07G\x02\x02\u1BC3\u1BC4" + - "\x07H\x02\x02\u1BC4\u1BC5\x07K\x02\x02\u1BC5\u1BC6\x07P\x02\x02\u1BC6" + - "\u1BC7\x07G\x02\x02\u1BC7\u1BC8\x07F\x02\x02\u1BC8\u046C\x03\x02\x02\x02" + - "\u1BC9\u1BCA\x07W\x02\x02\u1BCA\u1BCB\x07P\x02\x02\u1BCB\u1BCC\x07F\x02" + - "\x02\u1BCC\u1BCD\x07Q\x02\x02\u1BCD\u1BCE\x07H\x02\x02\u1BCE\u1BCF\x07" + - "K\x02\x02\u1BCF\u1BD0\x07N\x02\x02\u1BD0\u1BD1\x07G\x02\x02\u1BD1\u046E" + - "\x03\x02\x02\x02\u1BD2\u1BD3\x07W\x02\x02\u1BD3\u1BD4\x07P\x02\x02\u1BD4" + - "\u1BD5\x07F\x02\x02\u1BD5\u1BD6\x07Q\x02\x02\u1BD6\u1BD7\x07a\x02\x02" + - "\u1BD7\u1BD8\x07D\x02\x02\u1BD8\u1BD9\x07W\x02\x02\u1BD9\u1BDA\x07H\x02" + - "\x02\u1BDA\u1BDB\x07H\x02\x02\u1BDB\u1BDC\x07G\x02\x02\u1BDC\u1BDD\x07" + - "T\x02\x02\u1BDD\u1BDE\x07a\x02\x02\u1BDE\u1BDF\x07U\x02\x02\u1BDF\u1BE0" + - "\x07K\x02\x02\u1BE0\u1BE1\x07\\\x02\x02\u1BE1\u1BE2\x07G\x02\x02\u1BE2" + - "\u0470\x03\x02\x02\x02\u1BE3\u1BE4\x07W\x02\x02\u1BE4\u1BE5\x07P\x02\x02" + - "\u1BE5\u1BE6\x07K\x02\x02\u1BE6\u1BE7\x07P\x02\x02\u1BE7\u1BE8\x07U\x02" + - "\x02\u1BE8\u1BE9\x07V\x02\x02\u1BE9\u1BEA\x07C\x02\x02\u1BEA\u1BEB\x07" + - "N\x02\x02\u1BEB\u1BEC\x07N\x02\x02\u1BEC\u0472\x03\x02\x02\x02\u1BED\u1BEE" + - "\x07W\x02\x02\u1BEE\u1BEF\x07P\x02\x02\u1BEF\u1BF0\x07M\x02\x02\u1BF0" + - "\u1BF1\x07P\x02\x02\u1BF1\u1BF2\x07Q\x02\x02\u1BF2\u1BF3\x07Y\x02\x02" + - "\u1BF3\u1BF4\x07P\x02\x02\u1BF4\u0474\x03\x02\x02\x02\u1BF5\u1BF6\x07" + - "W\x02\x02\u1BF6\u1BF7\x07P\x02\x02\u1BF7\u1BF8\x07V\x02\x02\u1BF8\u1BF9" + - "\x07K\x02\x02\u1BF9\u1BFA\x07N\x02\x02\u1BFA\u0476\x03\x02\x02\x02\u1BFB" + - "\u1BFC\x07W\x02\x02\u1BFC\u1BFD\x07R\x02\x02\u1BFD\u1BFE\x07I\x02\x02" + - "\u1BFE\u1BFF\x07T\x02\x02\u1BFF\u1C00\x07C\x02\x02\u1C00\u1C01\x07F\x02" + - "\x02\u1C01\u1C02\x07G\x02\x02\u1C02\u0478\x03\x02\x02\x02\u1C03\u1C04" + - "\x07W\x02\x02\u1C04\u1C05\x07U\x02\x02\u1C05\u1C06\x07G\x02\x02\u1C06" + - "\u1C07\x07T\x02\x02\u1C07\u047A\x03\x02\x02\x02\u1C08\u1C09\x07W\x02\x02" + - "\u1C09\u1C0A\x07U\x02\x02\u1C0A\u1C0B\x07G\x02\x02\u1C0B\u1C0C\x07a\x02" + - "\x02\u1C0C\u1C0D\x07H\x02\x02\u1C0D\u1C0E\x07T\x02\x02\u1C0E\u1C0F\x07" + - "O\x02\x02\u1C0F\u047C\x03\x02\x02\x02\u1C10\u1C11\x07W\x02\x02\u1C11\u1C12" + - "\x07U\x02\x02\u1C12\u1C13\x07G\x02\x02\u1C13\u1C14\x07T\x02\x02\u1C14" + - "\u1C15\x07a\x02\x02\u1C15\u1C16\x07T\x02\x02\u1C16\u1C17\x07G\x02\x02" + - "\u1C17\u1C18\x07U\x02\x02\u1C18\u1C19\x07Q\x02\x02\u1C19\u1C1A\x07W\x02" + - "\x02\u1C1A\u1C1B\x07T\x02\x02\u1C1B\u1C1C\x07E\x02\x02\u1C1C\u1C1D\x07" + - "G\x02\x02\u1C1D\u1C1E\x07U\x02\x02\u1C1E\u047E\x03\x02\x02\x02\u1C1F\u1C20" + - "\x07X\x02\x02\u1C20\u1C21\x07C\x02\x02\u1C21\u1C22\x07N\x02\x02\u1C22" + - "\u1C23\x07K\x02\x02\u1C23\u1C24\x07F\x02\x02\u1C24\u1C25\x07C\x02\x02" + - "\u1C25\u1C26\x07V\x02\x02\u1C26\u1C27\x07K\x02\x02\u1C27\u1C28\x07Q\x02" + - "\x02\u1C28\u1C29\x07P\x02\x02\u1C29\u0480\x03\x02\x02\x02\u1C2A\u1C2B" + - "\x07X\x02\x02\u1C2B\u1C2C\x07C\x02\x02\u1C2C\u1C2D\x07N\x02\x02\u1C2D" + - "\u1C2E\x07W\x02\x02\u1C2E\u1C2F\x07G\x02\x02\u1C2F\u0482\x03\x02\x02\x02" + - "\u1C30\u1C31\x07X\x02\x02\u1C31\u1C32\x07C\x02\x02\u1C32\u1C33\x07T\x02" + - "\x02\u1C33\u1C34\x07K\x02\x02\u1C34\u1C35\x07C\x02\x02\u1C35\u1C36\x07" + - "D\x02\x02\u1C36\u1C37\x07N\x02\x02\u1C37\u1C38\x07G\x02\x02\u1C38\u1C39" + - "\x07U\x02\x02\u1C39\u0484\x03\x02\x02\x02\u1C3A\u1C3B\x07X\x02\x02\u1C3B" + - "\u1C3C\x07K\x02\x02\u1C3C\u1C3D\x07G\x02\x02\u1C3D\u1C3E\x07Y\x02\x02" + - "\u1C3E\u0486\x03\x02\x02\x02\u1C3F\u1C40\x07X\x02\x02\u1C40\u1C41\x07" + - "K\x02\x02\u1C41\u1C42\x07T\x02\x02\u1C42\u1C43\x07V\x02\x02\u1C43\u1C44" + - "\x07W\x02\x02\u1C44\u1C45\x07C\x02\x02\u1C45\u1C46\x07N\x02\x02\u1C46" + - "\u0488\x03\x02\x02\x02\u1C47\u1C48\x07X\x02\x02\u1C48\u1C49\x07K\x02\x02" + - "\u1C49\u1C4A\x07U\x02\x02\u1C4A\u1C4B\x07K\x02\x02\u1C4B\u1C4C\x07D\x02" + - "\x02\u1C4C\u1C4D\x07N\x02\x02\u1C4D\u1C4E\x07G\x02\x02\u1C4E\u048A\x03" + - "\x02\x02\x02\u1C4F\u1C50\x07Y\x02\x02\u1C50\u1C51\x07C\x02\x02\u1C51\u1C52" + - "\x07K\x02\x02\u1C52\u1C53\x07V\x02\x02\u1C53\u048C\x03\x02\x02\x02\u1C54" + - "\u1C55\x07Y\x02\x02\u1C55\u1C56\x07C\x02\x02\u1C56\u1C57\x07T\x02\x02" + - "\u1C57\u1C58\x07P\x02\x02\u1C58\u1C59\x07K\x02\x02\u1C59\u1C5A\x07P\x02" + - "\x02\u1C5A\u1C5B\x07I\x02\x02\u1C5B\u1C5C\x07U\x02\x02\u1C5C\u048E\x03" + - "\x02\x02\x02\u1C5D\u1C5E\x07Y\x02\x02\u1C5E\u1C5F\x07K\x02\x02\u1C5F\u1C60" + - "\x07V\x02\x02\u1C60\u1C61\x07J\x02\x02\u1C61\u1C62\x07Q\x02\x02\u1C62" + - "\u1C63\x07W\x02\x02\u1C63\u1C64\x07V\x02\x02\u1C64\u0490\x03\x02\x02\x02" + - "\u1C65\u1C66\x07Y\x02\x02\u1C66\u1C67\x07Q\x02\x02\u1C67\u1C68\x07T\x02" + - "\x02\u1C68\u1C69\x07M\x02\x02\u1C69\u0492\x03\x02\x02\x02\u1C6A\u1C6B" + - "\x07Y\x02\x02\u1C6B\u1C6C\x07T\x02\x02\u1C6C\u1C6D\x07C\x02\x02\u1C6D" + - "\u1C6E\x07R\x02\x02\u1C6E\u1C6F\x07R\x02\x02\u1C6F\u1C70\x07G\x02\x02" + - "\u1C70\u1C71\x07T\x02\x02\u1C71\u0494\x03\x02\x02\x02\u1C72\u1C73\x07" + - "Z\x02\x02\u1C73\u1C74\x077\x02\x02\u1C74\u1C75\x072\x02\x02\u1C75\u1C76" + - "\x07;\x02\x02\u1C76\u0496\x03\x02\x02\x02\u1C77\u1C78\x07Z\x02\x02\u1C78" + - "\u1C79\x07C\x02\x02\u1C79\u0498\x03\x02\x02\x02\u1C7A\u1C7B\x07Z\x02\x02" + - "\u1C7B\u1C7C\x07O\x02\x02\u1C7C\u1C7D\x07N\x02\x02\u1C7D\u049A\x03\x02" + - "\x02\x02\u1C7E\u1C7F\x07G\x02\x02\u1C7F\u1C80\x07W\x02\x02\u1C80\u1C81" + - "\x07T\x02\x02\u1C81\u049C\x03\x02\x02\x02\u1C82\u1C83\x07W\x02\x02\u1C83" + - "\u1C84\x07U\x02\x02\u1C84\u1C85\x07C\x02\x02\u1C85\u049E\x03\x02\x02\x02" + - "\u1C86\u1C87\x07L\x02\x02\u1C87\u1C88\x07K\x02\x02\u1C88\u1C89\x07U\x02" + - "\x02\u1C89\u04A0\x03\x02\x02\x02\u1C8A\u1C8B\x07K\x02\x02\u1C8B\u1C8C" + - "\x07U\x02\x02\u1C8C\u1C8D\x07Q\x02\x02\u1C8D\u04A2\x03\x02\x02\x02\u1C8E" + - "\u1C8F\x07K\x02\x02\u1C8F\u1C90\x07P\x02\x02\u1C90\u1C91\x07V\x02\x02" + - "\u1C91\u1C92\x07G\x02\x02\u1C92\u1C93\x07T\x02\x02\u1C93\u1C94\x07P\x02" + - "\x02\u1C94\u1C95\x07C\x02\x02\u1C95\u1C96\x07N\x02\x02\u1C96\u04A4\x03" + - "\x02\x02\x02\u1C97\u1C98\x07S\x02\x02\u1C98\u1C99\x07W\x02\x02\u1C99\u1C9A" + - "\x07C\x02\x02\u1C9A\u1C9B\x07T\x02\x02\u1C9B\u1C9C\x07V\x02\x02\u1C9C" + - "\u1C9D\x07G\x02\x02\u1C9D\u1C9E\x07T\x02\x02\u1C9E\u04A6\x03\x02\x02\x02" + - "\u1C9F\u1CA0\x07O\x02\x02\u1CA0\u1CA1\x07Q\x02\x02\u1CA1\u1CA2\x07P\x02" + - "\x02\u1CA2\u1CA3\x07V\x02\x02\u1CA3\u1CA4\x07J\x02\x02\u1CA4\u04A8\x03" + - "\x02\x02\x02\u1CA5\u1CA6\x07F\x02\x02\u1CA6\u1CA7\x07C\x02\x02\u1CA7\u1CA8" + - "\x07[\x02\x02\u1CA8\u04AA\x03\x02\x02\x02\u1CA9\u1CAA\x07J\x02\x02\u1CAA" + - "\u1CAB\x07Q\x02\x02\u1CAB\u1CAC\x07W\x02\x02\u1CAC\u1CAD\x07T\x02\x02" + - "\u1CAD\u04AC\x03\x02\x02\x02\u1CAE\u1CAF\x07O\x02\x02\u1CAF\u1CB0\x07" + - "K\x02\x02\u1CB0\u1CB1\x07P\x02\x02\u1CB1\u1CB2\x07W\x02\x02\u1CB2\u1CB3" + - "\x07V\x02\x02\u1CB3\u1CB4\x07G\x02\x02\u1CB4\u04AE\x03\x02\x02\x02\u1CB5" + - "\u1CB6\x07Y\x02\x02\u1CB6\u1CB7\x07G\x02\x02\u1CB7\u1CB8\x07G\x02\x02" + - "\u1CB8\u1CB9\x07M\x02\x02\u1CB9\u04B0\x03\x02\x02\x02\u1CBA\u1CBB\x07" + - "U\x02\x02\u1CBB\u1CBC\x07G\x02\x02\u1CBC\u1CBD\x07E\x02\x02\u1CBD\u1CBE" + - "\x07Q\x02\x02\u1CBE\u1CBF\x07P\x02\x02\u1CBF\u1CC0\x07F\x02\x02\u1CC0" + - "\u04B2\x03\x02\x02\x02\u1CC1\u1CC2\x07O\x02\x02\u1CC2\u1CC3\x07K\x02\x02" + - "\u1CC3\u1CC4\x07E\x02\x02\u1CC4\u1CC5\x07T\x02\x02\u1CC5\u1CC6\x07Q\x02" + - "\x02\u1CC6\u1CC7\x07U\x02\x02\u1CC7\u1CC8\x07G\x02\x02\u1CC8\u1CC9\x07" + - "E\x02\x02\u1CC9\u1CCA\x07Q\x02\x02\u1CCA\u1CCB\x07P\x02\x02\u1CCB\u1CCC" + - "\x07F\x02\x02\u1CCC\u04B4\x03\x02\x02\x02\u1CCD\u1CCE\x07V\x02\x02\u1CCE" + - "\u1CCF\x07C\x02\x02\u1CCF\u1CD0\x07D\x02\x02\u1CD0\u1CD1\x07N\x02\x02" + - "\u1CD1\u1CD2\x07G\x02\x02\u1CD2\u1CD3\x07U\x02\x02\u1CD3\u04B6\x03\x02" + - "\x02\x02\u1CD4\u1CD5\x07T\x02\x02\u1CD5\u1CD6\x07Q\x02\x02\u1CD6\u1CD7" + - "\x07W\x02\x02\u1CD7\u1CD8\x07V\x02\x02\u1CD8\u1CD9\x07K\x02\x02\u1CD9" + - "\u1CDA\x07P\x02\x02\u1CDA\u1CDB\x07G\x02\x02\u1CDB\u04B8\x03\x02\x02\x02" + - "\u1CDC\u1CDD\x07G\x02\x02\u1CDD\u1CDE\x07Z\x02\x02\u1CDE\u1CDF\x07G\x02" + - "\x02\u1CDF\u1CE0\x07E\x02\x02\u1CE0\u1CE1\x07W\x02\x02\u1CE1\u1CE2\x07" + - "V\x02\x02\u1CE2\u1CE3\x07G\x02\x02\u1CE3\u04BA\x03\x02\x02\x02\u1CE4\u1CE5" + - "\x07H\x02\x02\u1CE5\u1CE6\x07K\x02\x02\u1CE6\u1CE7\x07N\x02\x02\u1CE7" + - "\u1CE8\x07G\x02\x02\u1CE8\u04BC\x03\x02\x02\x02\u1CE9\u1CEA\x07R\x02\x02" + - "\u1CEA\u1CEB\x07T\x02\x02\u1CEB\u1CEC\x07Q\x02\x02\u1CEC\u1CED\x07E\x02" + - "\x02\u1CED\u1CEE\x07G\x02\x02\u1CEE\u1CEF\x07U\x02\x02\u1CEF\u1CF0\x07" + - "U\x02\x02\u1CF0\u04BE\x03\x02\x02\x02\u1CF1\u1CF2\x07T\x02\x02\u1CF2\u1CF3" + - "\x07G\x02\x02\u1CF3\u1CF4\x07N\x02\x02\u1CF4\u1CF5\x07Q\x02\x02\u1CF5" + - "\u1CF6\x07C\x02\x02\u1CF6\u1CF7\x07F\x02\x02\u1CF7\u04C0\x03\x02\x02\x02" + - "\u1CF8\u1CF9\x07U\x02\x02\u1CF9\u1CFA\x07J\x02\x02\u1CFA\u1CFB\x07W\x02" + - "\x02\u1CFB\u1CFC\x07V\x02\x02\u1CFC\u1CFD\x07F\x02\x02\u1CFD\u1CFE\x07" + - "Q\x02\x02\u1CFE\u1CFF\x07Y\x02\x02\u1CFF\u1D00\x07P\x02\x02\u1D00\u04C2" + - "\x03\x02\x02\x02\u1D01\u1D02\x07U\x02\x02\u1D02\u1D03\x07W\x02\x02\u1D03" + - "\u1D04\x07R\x02\x02\u1D04\u1D05\x07G\x02\x02\u1D05\u1D06\x07T\x02\x02" + - "\u1D06\u04C4\x03\x02\x02\x02\u1D07\u1D08\x07R\x02\x02\u1D08\u1D09\x07" + - "T\x02\x02\u1D09\u1D0A\x07K\x02\x02\u1D0A\u1D0B\x07X\x02\x02\u1D0B\u1D0C" + - "\x07K\x02\x02\u1D0C\u1D0D\x07N\x02\x02\u1D0D\u1D0E\x07G\x02\x02\u1D0E" + - "\u1D0F\x07I\x02\x02\u1D0F\u1D10\x07G\x02\x02\u1D10\u1D11\x07U\x02\x02" + - "\u1D11\u04C6\x03\x02\x02\x02\u1D12\u1D13\x07C\x02\x02\u1D13\u1D14\x07" + - "R\x02\x02\u1D14\u1D15\x07R\x02\x02\u1D15\u1D16\x07N\x02\x02\u1D16\u1D17" + - "\x07K\x02\x02\u1D17\u1D18\x07E\x02\x02\u1D18\u1D19\x07C\x02\x02\u1D19" + - "\u1D1A\x07V\x02\x02\u1D1A\u1D1B\x07K\x02\x02\u1D1B\u1D1C\x07Q\x02\x02" + - "\u1D1C\u1D1D\x07P\x02\x02\u1D1D\u1D1E\x07a\x02\x02\u1D1E\u1D1F\x07R\x02" + - "\x02\u1D1F\u1D20\x07C\x02\x02\u1D20\u1D21\x07U\x02\x02\u1D21\u1D22\x07" + - "U\x02\x02\u1D22\u1D23\x07Y\x02\x02\u1D23\u1D24\x07Q\x02\x02\u1D24\u1D25" + - "\x07T\x02\x02\u1D25\u1D26\x07F\x02\x02\u1D26\u1D27\x07a\x02\x02\u1D27" + - "\u1D28\x07C\x02\x02\u1D28\u1D29\x07F\x02\x02\u1D29\u1D2A\x07O\x02\x02" + - "\u1D2A\u1D2B\x07K\x02\x02\u1D2B\u1D2C\x07P\x02\x02\u1D2C\u04C8\x03\x02" + - "\x02\x02\u1D2D\u1D2E\x07C\x02\x02\u1D2E\u1D2F\x07W\x02\x02\u1D2F\u1D30" + - "\x07F\x02\x02\u1D30\u1D31\x07K\x02\x02\u1D31\u1D32\x07V\x02\x02\u1D32" + - "\u1D33\x07a\x02\x02\u1D33\u1D34\x07C\x02\x02\u1D34\u1D35\x07F\x02\x02" + - "\u1D35\u1D36\x07O\x02\x02\u1D36\u1D37\x07K\x02\x02\u1D37\u1D38\x07P\x02" + - "\x02\u1D38\u04CA\x03\x02\x02\x02\u1D39\u1D3A\x07D\x02\x02\u1D3A\u1D3B" + - "\x07C\x02\x02\u1D3B\u1D3C\x07E\x02\x02\u1D3C\u1D3D\x07M\x02\x02\u1D3D" + - "\u1D3E\x07W\x02\x02\u1D3E\u1D3F\x07R\x02\x02\u1D3F\u1D40\x07a\x02\x02" + - "\u1D40\u1D41\x07C\x02\x02\u1D41\u1D42\x07F\x02\x02\u1D42\u1D43\x07O\x02" + - "\x02\u1D43\u1D44\x07K\x02\x02\u1D44\u1D45\x07P\x02\x02\u1D45\u04CC\x03" + - "\x02\x02\x02\u1D46\u1D47\x07D\x02\x02\u1D47\u1D48\x07K\x02\x02\u1D48\u1D49" + - "\x07P\x02\x02\u1D49\u1D4A\x07N\x02\x02\u1D4A\u1D4B\x07Q\x02\x02\u1D4B" + - "\u1D4C\x07I\x02\x02\u1D4C\u1D4D\x07a\x02\x02\u1D4D\u1D4E\x07C\x02\x02" + - "\u1D4E\u1D4F\x07F\x02\x02\u1D4F\u1D50\x07O\x02\x02\u1D50\u1D51\x07K\x02" + - "\x02\u1D51\u1D52\x07P\x02\x02\u1D52\u04CE\x03\x02\x02\x02\u1D53\u1D54" + - "\x07D\x02\x02\u1D54\u1D55\x07K\x02\x02\u1D55\u1D56\x07P\x02\x02\u1D56" + - "\u1D57\x07N\x02\x02\u1D57\u1D58\x07Q\x02\x02\u1D58\u1D59\x07I\x02\x02" + - "\u1D59\u1D5A\x07a\x02\x02\u1D5A\u1D5B\x07G\x02\x02\u1D5B\u1D5C\x07P\x02" + - "\x02\u1D5C\u1D5D\x07E\x02\x02\u1D5D\u1D5E\x07T\x02\x02\u1D5E\u1D5F\x07" + - "[\x02\x02\u1D5F\u1D60\x07R\x02\x02\u1D60\u1D61\x07V\x02\x02\u1D61\u1D62" + - "\x07K\x02\x02\u1D62\u1D63\x07Q\x02\x02\u1D63\u1D64\x07P\x02\x02\u1D64" + - "\u1D65\x07a\x02\x02\u1D65\u1D66\x07C\x02\x02\u1D66\u1D67\x07F\x02\x02" + - "\u1D67\u1D68\x07O\x02\x02\u1D68\u1D69\x07K\x02\x02\u1D69\u1D6A\x07P\x02" + - "\x02\u1D6A\u04D0\x03\x02\x02\x02\u1D6B\u1D6C\x07E\x02\x02\u1D6C\u1D6D" + - "\x07N\x02\x02\u1D6D\u1D6E\x07Q\x02\x02\u1D6E\u1D6F\x07P\x02\x02\u1D6F" + - "\u1D70\x07G\x02\x02\u1D70\u1D71\x07a\x02\x02\u1D71\u1D72\x07C\x02\x02" + - "\u1D72\u1D73\x07F\x02\x02\u1D73\u1D74\x07O\x02\x02\u1D74\u1D75\x07K\x02" + - "\x02\u1D75\u1D76\x07P\x02\x02\u1D76\u04D2\x03\x02\x02\x02\u1D77\u1D78" + - "\x07E\x02\x02\u1D78\u1D79\x07Q\x02\x02\u1D79\u1D7A\x07P\x02\x02\u1D7A" + - "\u1D7B\x07P\x02\x02\u1D7B\u1D7C\x07G\x02\x02\u1D7C\u1D7D\x07E\x02\x02" + - "\u1D7D\u1D7E\x07V\x02\x02\u1D7E\u1D7F\x07K\x02\x02\u1D7F\u1D80\x07Q\x02" + - "\x02\u1D80\u1D81\x07P\x02\x02\u1D81\u1D82\x07a\x02\x02\u1D82\u1D83\x07" + - "C\x02\x02\u1D83\u1D84\x07F\x02\x02\u1D84\u1D85\x07O\x02\x02\u1D85\u1D86" + - "\x07K\x02\x02\u1D86\u1D87\x07P\x02\x02\u1D87\u04D4\x03\x02\x02\x02\u1D88" + - "\u1D89\x07G\x02\x02\u1D89\u1D8A\x07P\x02\x02\u1D8A\u1D8B\x07E\x02\x02" + - "\u1D8B\u1D8C\x07T\x02\x02\u1D8C\u1D8D\x07[\x02\x02\u1D8D\u1D8E\x07R\x02" + - "\x02\u1D8E\u1D8F\x07V\x02\x02\u1D8F\u1D90\x07K\x02\x02\u1D90\u1D91\x07" + - "Q\x02\x02\u1D91\u1D92\x07P\x02\x02\u1D92\u1D93\x07a\x02\x02\u1D93\u1D94" + - "\x07M\x02\x02\u1D94\u1D95\x07G\x02\x02\u1D95\u1D96\x07[\x02\x02\u1D96" + - "\u1D97\x07a\x02\x02\u1D97\u1D98\x07C\x02\x02\u1D98\u1D99\x07F\x02\x02" + - "\u1D99\u1D9A\x07O\x02\x02\u1D9A\u1D9B\x07K\x02\x02\u1D9B\u1D9C\x07P\x02" + - "\x02\u1D9C\u04D6\x03\x02\x02\x02\u1D9D\u1D9E\x07H\x02\x02\u1D9E\u1D9F" + - "\x07K\x02\x02\u1D9F\u1DA0\x07T\x02\x02\u1DA0\u1DA1\x07G\x02\x02\u1DA1" + - "\u1DA2\x07Y\x02\x02\u1DA2\u1DA3\x07C\x02\x02\u1DA3\u1DA4\x07N\x02\x02" + - "\u1DA4\u1DA5\x07N\x02\x02\u1DA5\u1DA6\x07a\x02\x02\u1DA6\u1DA7\x07C\x02" + - "\x02\u1DA7\u1DA8\x07F\x02\x02\u1DA8\u1DA9\x07O\x02\x02\u1DA9\u1DAA\x07" + - "K\x02\x02\u1DAA\u1DAB\x07P\x02\x02\u1DAB\u04D8\x03\x02\x02\x02\u1DAC\u1DAD" + - "\x07H\x02\x02\u1DAD\u1DAE\x07K\x02\x02\u1DAE\u1DAF\x07T\x02\x02\u1DAF" + - "\u1DB0\x07G\x02\x02\u1DB0\u1DB1\x07Y\x02\x02\u1DB1\u1DB2\x07C\x02\x02" + - "\u1DB2\u1DB3\x07N\x02\x02\u1DB3\u1DB4\x07N\x02\x02\u1DB4\u1DB5\x07a\x02" + - "\x02\u1DB5\u1DB6\x07W\x02\x02\u1DB6\u1DB7\x07U\x02\x02\u1DB7\u1DB8\x07" + - "G\x02\x02\u1DB8\u1DB9\x07T\x02\x02\u1DB9\u04DA\x03\x02\x02\x02\u1DBA\u1DBB" + - "\x07I\x02\x02\u1DBB\u1DBC\x07T\x02\x02\u1DBC\u1DBD\x07Q\x02\x02\u1DBD" + - "\u1DBE\x07W\x02\x02\u1DBE\u1DBF\x07R\x02\x02\u1DBF\u1DC0\x07a\x02\x02" + - "\u1DC0\u1DC1\x07T\x02\x02\u1DC1\u1DC2\x07G\x02\x02\u1DC2\u1DC3\x07R\x02" + - "\x02\u1DC3\u1DC4\x07N\x02\x02\u1DC4\u1DC5\x07K\x02\x02\u1DC5\u1DC6\x07" + - "E\x02\x02\u1DC6\u1DC7\x07C\x02\x02\u1DC7\u1DC8\x07V\x02\x02\u1DC8\u1DC9" + - "\x07K\x02\x02\u1DC9\u1DCA\x07Q\x02\x02\u1DCA\u1DCB\x07P\x02\x02\u1DCB" + - "\u1DCC\x07a\x02\x02\u1DCC\u1DCD\x07C\x02\x02\u1DCD\u1DCE\x07F\x02\x02" + - "\u1DCE\u1DCF\x07O\x02\x02\u1DCF\u1DD0\x07K\x02\x02\u1DD0\u1DD1\x07P\x02" + - "\x02\u1DD1\u04DC\x03\x02\x02\x02\u1DD2\u1DD3\x07K\x02\x02\u1DD3\u1DD4" + - "\x07P\x02\x02\u1DD4\u1DD5\x07P\x02\x02\u1DD5\u1DD6\x07Q\x02\x02\u1DD6" + - "\u1DD7\x07F\x02\x02\u1DD7\u1DD8\x07D\x02\x02\u1DD8\u1DD9\x07a\x02\x02" + - "\u1DD9\u1DDA\x07T\x02\x02\u1DDA\u1DDB\x07G\x02\x02\u1DDB\u1DDC\x07F\x02" + - "\x02\u1DDC\u1DDD\x07Q\x02\x02\u1DDD\u1DDE\x07a\x02\x02\u1DDE\u1DDF\x07" + - "N\x02\x02\u1DDF\u1DE0\x07Q\x02\x02\u1DE0\u1DE1\x07I\x02\x02\u1DE1\u1DE2" + - "\x07a\x02\x02\u1DE2\u1DE3\x07C\x02\x02\u1DE3\u1DE4\x07T\x02\x02\u1DE4" + - "\u1DE5\x07E\x02\x02\u1DE5\u1DE6\x07J\x02\x02\u1DE6\u1DE7\x07K\x02\x02" + - "\u1DE7\u1DE8\x07X\x02\x02\u1DE8\u1DE9\x07G\x02\x02\u1DE9\u04DE\x03\x02" + - "\x02\x02\u1DEA\u1DEB\x07P\x02\x02\u1DEB\u1DEC\x07F\x02\x02\u1DEC\u1DED" + - "\x07D\x02\x02\u1DED\u1DEE\x07a\x02\x02\u1DEE\u1DEF\x07U\x02\x02\u1DEF" + - "\u1DF0\x07V\x02\x02\u1DF0\u1DF1\x07Q\x02\x02\u1DF1\u1DF2\x07T\x02\x02" + - "\u1DF2\u1DF3\x07G\x02\x02\u1DF3\u1DF4\x07F\x02\x02\u1DF4\u1DF5\x07a\x02" + - "\x02\u1DF5\u1DF6\x07W\x02\x02\u1DF6\u1DF7\x07U\x02\x02\u1DF7\u1DF8\x07" + - "G\x02\x02\u1DF8\u1DF9\x07T\x02\x02\u1DF9\u04E0\x03\x02\x02\x02\u1DFA\u1DFB" + - "\x07R\x02\x02\u1DFB\u1DFC\x07G\x02\x02\u1DFC\u1DFD\x07T\x02\x02\u1DFD" + - "\u1DFE\x07U\x02\x02\u1DFE\u1DFF\x07K\x02\x02\u1DFF\u1E00\x07U\x02\x02" + - "\u1E00\u1E01\x07V\x02\x02\u1E01\u1E02\x07a\x02\x02\u1E02\u1E03\x07T\x02" + - "\x02\u1E03\u1E04\x07Q\x02\x02\u1E04\u1E05\x07a\x02\x02\u1E05\u1E06\x07" + - "X\x02\x02\u1E06\u1E07\x07C\x02\x02\u1E07\u1E08\x07T\x02\x02\u1E08\u1E09" + - "\x07K\x02\x02\u1E09\u1E0A\x07C\x02\x02\u1E0A\u1E0B\x07D\x02\x02\u1E0B" + - "\u1E0C\x07N\x02\x02\u1E0C\u1E0D\x07G\x02\x02\u1E0D\u1E0E\x07U\x02\x02" + - "\u1E0E\u1E0F\x07a\x02\x02\u1E0F\u1E10\x07C\x02\x02\u1E10\u1E11\x07F\x02" + - "\x02\u1E11\u1E12\x07O\x02\x02\u1E12\u1E13\x07K\x02\x02\u1E13\u1E14\x07" + - "P\x02\x02\u1E14\u04E2\x03\x02\x02\x02\u1E15\u1E16\x07T\x02\x02\u1E16\u1E17" + - "\x07G\x02\x02\u1E17\u1E18\x07R\x02\x02\u1E18\u1E19\x07N\x02\x02\u1E19" + - "\u1E1A\x07K\x02\x02\u1E1A\u1E1B\x07E\x02\x02\u1E1B\u1E1C\x07C\x02\x02" + - "\u1E1C\u1E1D\x07V\x02\x02\u1E1D\u1E1E\x07K\x02\x02\u1E1E\u1E1F\x07Q\x02" + - "\x02\u1E1F\u1E20\x07P\x02\x02\u1E20\u1E21\x07a\x02\x02\u1E21\u1E22\x07" + - "C\x02\x02\u1E22\u1E23\x07R\x02\x02\u1E23\u1E24\x07R\x02\x02\u1E24\u1E25" + - "\x07N\x02\x02\u1E25\u1E26\x07K\x02\x02\u1E26\u1E27\x07G\x02\x02\u1E27" + - "\u1E28\x07T\x02\x02\u1E28\u04E4\x03\x02\x02\x02\u1E29\u1E2A\x07T\x02\x02" + - "\u1E2A\u1E2B\x07G\x02\x02\u1E2B\u1E2C\x07R\x02\x02\u1E2C\u1E2D\x07N\x02" + - "\x02\u1E2D\u1E2E\x07K\x02\x02\u1E2E\u1E2F\x07E\x02\x02\u1E2F\u1E30\x07" + - "C\x02\x02\u1E30\u1E31\x07V\x02\x02\u1E31\u1E32\x07K\x02\x02\u1E32\u1E33" + - "\x07Q\x02\x02\u1E33\u1E34\x07P\x02\x02\u1E34\u1E35\x07a\x02\x02\u1E35" + - "\u1E36\x07U\x02\x02\u1E36\u1E37\x07N\x02\x02\u1E37\u1E38\x07C\x02\x02" + - "\u1E38\u1E39\x07X\x02\x02\u1E39\u1E3A\x07G\x02\x02\u1E3A\u1E3B\x07a\x02" + - "\x02\u1E3B\u1E3C\x07C\x02\x02\u1E3C\u1E3D\x07F\x02\x02\u1E3D\u1E3E\x07" + - "O\x02\x02\u1E3E\u1E3F\x07K\x02\x02\u1E3F\u1E40\x07P\x02\x02\u1E40\u04E6" + - "\x03\x02\x02\x02\u1E41\u1E42\x07T\x02\x02\u1E42\u1E43\x07G\x02\x02\u1E43" + - "\u1E44\x07U\x02\x02\u1E44\u1E45\x07Q\x02\x02\u1E45\u1E46\x07W\x02\x02" + - "\u1E46\u1E47\x07T\x02\x02\u1E47\u1E48\x07E\x02\x02\u1E48\u1E49\x07G\x02" + - "\x02\u1E49\u1E4A\x07a\x02\x02\u1E4A\u1E4B\x07I\x02\x02\u1E4B\u1E4C\x07" + - "T\x02\x02\u1E4C\u1E4D\x07Q\x02\x02\u1E4D\u1E4E\x07W\x02\x02\u1E4E\u1E4F" + - "\x07R\x02\x02\u1E4F\u1E50\x07a\x02\x02\u1E50\u1E51\x07C\x02\x02\u1E51" + - "\u1E52\x07F\x02\x02\u1E52\u1E53\x07O\x02\x02\u1E53\u1E54\x07K\x02\x02" + - "\u1E54\u1E55\x07P\x02\x02\u1E55\u04E8\x03\x02\x02\x02\u1E56\u1E57\x07" + - "T\x02\x02\u1E57\u1E58\x07G\x02\x02\u1E58\u1E59\x07U\x02\x02\u1E59\u1E5A" + - "\x07Q\x02\x02\u1E5A\u1E5B\x07W\x02\x02\u1E5B\u1E5C\x07T\x02\x02\u1E5C" + - "\u1E5D\x07E\x02\x02\u1E5D\u1E5E\x07G\x02\x02\u1E5E\u1E5F\x07a\x02\x02" + - "\u1E5F\u1E60\x07I\x02\x02\u1E60\u1E61\x07T\x02\x02\u1E61\u1E62\x07Q\x02" + - "\x02\u1E62\u1E63\x07W\x02\x02\u1E63\u1E64\x07R\x02\x02\u1E64\u1E65\x07" + - "a\x02\x02\u1E65\u1E66\x07W\x02\x02\u1E66\u1E67\x07U\x02\x02\u1E67\u1E68" + - "\x07G\x02\x02\u1E68\u1E69\x07T\x02\x02\u1E69\u04EA\x03\x02\x02\x02\u1E6A" + - "\u1E6B\x07T\x02\x02\u1E6B\u1E6C\x07Q\x02\x02\u1E6C\u1E6D\x07N\x02\x02" + - "\u1E6D\u1E6E\x07G\x02\x02\u1E6E\u1E6F\x07a\x02\x02\u1E6F\u1E70\x07C\x02" + - "\x02\u1E70\u1E71\x07F\x02\x02\u1E71\u1E72\x07O\x02\x02\u1E72\u1E73\x07" + - "K\x02\x02\u1E73\u1E74\x07P\x02\x02\u1E74\u04EC\x03\x02\x02\x02\u1E75\u1E77" + - "\x05\u0811\u0409\x02\u1E76\u1E75\x03\x02\x02\x02\u1E76\u1E77\x03\x02\x02" + - "\x02\u1E77\u1E78\x03\x02\x02\x02\u1E78\u1E79\x07U\x02\x02\u1E79\u1E7A" + - "\x07G\x02\x02\u1E7A\u1E7B\x07U\x02\x02\u1E7B\u1E7C\x07U\x02\x02\u1E7C" + - "\u1E7D\x07K\x02\x02\u1E7D\u1E7E\x07Q\x02\x02\u1E7E\u1E7F\x07P\x02\x02" + - "\u1E7F\u1E80\x07a\x02\x02\u1E80\u1E81\x07X\x02\x02\u1E81\u1E82\x07C\x02" + - "\x02\u1E82\u1E83\x07T\x02\x02\u1E83\u1E84\x07K\x02\x02\u1E84\u1E85\x07" + - "C\x02\x02\u1E85\u1E86\x07D\x02\x02\u1E86\u1E87\x07N\x02\x02\u1E87\u1E88" + - "\x07G\x02\x02\u1E88\u1E89\x07U\x02\x02\u1E89\u1E8A\x07a\x02\x02\u1E8A" + - "\u1E8B\x07C\x02\x02\u1E8B\u1E8C\x07F\x02\x02\u1E8C\u1E8D\x07O\x02\x02" + - "\u1E8D\u1E8E\x07K\x02\x02\u1E8E\u1E8F\x07P\x02\x02\u1E8F\u1E91\x03\x02" + - "\x02\x02\u1E90\u1E92\x05\u0811\u0409\x02\u1E91\u1E90\x03\x02\x02\x02\u1E91" + - "\u1E92\x03\x02\x02\x02\u1E92\u04EE\x03\x02\x02\x02\u1E93\u1E94\x07U\x02" + - "\x02\u1E94\u1E95\x07G\x02\x02\u1E95\u1E96\x07V\x02\x02\u1E96\u1E97\x07" + - "a\x02\x02\u1E97\u1E98\x07W\x02\x02\u1E98\u1E99\x07U\x02\x02\u1E99\u1E9A" + - "\x07G\x02\x02\u1E9A\u1E9B\x07T\x02\x02\u1E9B\u1E9C\x07a\x02\x02\u1E9C" + - "\u1E9D\x07K\x02\x02\u1E9D\u1E9E\x07F\x02\x02\u1E9E\u04F0\x03\x02\x02\x02" + - "\u1E9F\u1EA0\x07U\x02\x02\u1EA0\u1EA1\x07J\x02\x02\u1EA1\u1EA2\x07Q\x02" + - "\x02\u1EA2\u1EA3\x07Y\x02\x02\u1EA3\u1EA4\x07a\x02\x02\u1EA4\u1EA5\x07" + - "T\x02\x02\u1EA5\u1EA6\x07Q\x02\x02\u1EA6\u1EA7\x07W\x02\x02\u1EA7\u1EA8" + - "\x07V\x02\x02\u1EA8\u1EA9\x07K\x02\x02\u1EA9\u1EAA\x07P\x02\x02\u1EAA" + - "\u1EAB\x07G\x02\x02\u1EAB\u04F2\x03\x02\x02\x02\u1EAC\u1EAD\x07U\x02\x02" + - "\u1EAD\u1EAE\x07[\x02\x02\u1EAE\u1EAF\x07U\x02\x02\u1EAF\u1EB0\x07V\x02" + - "\x02\u1EB0\u1EB1\x07G\x02\x02\u1EB1\u1EB2\x07O\x02\x02\u1EB2\u1EB3\x07" + - "a\x02\x02\u1EB3\u1EB4\x07X\x02\x02\u1EB4\u1EB5\x07C\x02\x02\u1EB5\u1EB6" + - "\x07T\x02\x02\u1EB6\u1EB7\x07K\x02\x02\u1EB7\u1EB8\x07C\x02\x02\u1EB8" + - "\u1EB9\x07D\x02\x02\u1EB9\u1EBA\x07N\x02\x02\u1EBA\u1EBB\x07G\x02\x02" + - "\u1EBB\u1EBC\x07U\x02\x02\u1EBC\u1EBD\x07a\x02\x02\u1EBD\u1EBE\x07C\x02" + - "\x02\u1EBE\u1EBF\x07F\x02\x02\u1EBF\u1EC0\x07O\x02\x02\u1EC0\u1EC1\x07" + - "K\x02\x02\u1EC1\u1EC2\x07P\x02\x02\u1EC2\u04F4\x03\x02\x02\x02\u1EC3\u1EC4" + - "\x07V\x02\x02\u1EC4\u1EC5\x07C\x02\x02\u1EC5\u1EC6\x07D\x02\x02\u1EC6" + - "\u1EC7\x07N\x02\x02\u1EC7\u1EC8\x07G\x02\x02\u1EC8\u1EC9\x07a\x02\x02" + - "\u1EC9\u1ECA\x07G\x02\x02\u1ECA\u1ECB\x07P\x02\x02\u1ECB\u1ECC\x07E\x02" + - "\x02\u1ECC\u1ECD\x07T\x02\x02\u1ECD\u1ECE\x07[\x02\x02\u1ECE\u1ECF\x07" + - "R\x02\x02\u1ECF\u1ED0\x07V\x02\x02\u1ED0\u1ED1\x07K\x02\x02\u1ED1\u1ED2" + - "\x07Q\x02\x02\u1ED2\u1ED3\x07P\x02\x02\u1ED3\u1ED4\x07a\x02\x02\u1ED4" + - "\u1ED5\x07C\x02\x02\u1ED5\u1ED6\x07F\x02\x02\u1ED6\u1ED7\x07O\x02\x02" + - "\u1ED7\u1ED8\x07K\x02\x02\u1ED8\u1ED9\x07P\x02"; - private static readonly _serializedATNSegment15: string = - "\x02\u1ED9\u04F6\x03\x02\x02\x02\u1EDA\u1EDB\x07X\x02\x02\u1EDB\u1EDC" + - "\x07G\x02\x02\u1EDC\u1EDD\x07T\x02\x02\u1EDD\u1EDE\x07U\x02\x02\u1EDE" + - "\u1EDF\x07K\x02\x02\u1EDF\u1EE0\x07Q\x02\x02\u1EE0\u1EE1\x07P\x02\x02" + - "\u1EE1\u1EE2\x07a\x02\x02\u1EE2\u1EE3\x07V\x02\x02\u1EE3\u1EE4\x07Q\x02" + - "\x02\u1EE4\u1EE5\x07M\x02\x02\u1EE5\u1EE6\x07G\x02\x02\u1EE6\u1EE7\x07" + - "P\x02\x02\u1EE7\u1EE8\x07a\x02\x02\u1EE8\u1EE9\x07C\x02\x02\u1EE9\u1EEA" + - "\x07F\x02\x02\u1EEA\u1EEB\x07O\x02\x02\u1EEB\u1EEC\x07K\x02\x02\u1EEC" + - "\u1EED\x07P\x02\x02\u1EED\u04F8\x03\x02\x02\x02\u1EEE\u1EEF\x07Z\x02\x02" + - "\u1EEF\u1EF0\x07C\x02\x02\u1EF0\u1EF1\x07a\x02\x02\u1EF1\u1EF2\x07T\x02" + - "\x02\u1EF2\u1EF3\x07G\x02\x02\u1EF3\u1EF4\x07E\x02\x02\u1EF4\u1EF5\x07" + - "Q\x02\x02\u1EF5\u1EF6\x07X\x02\x02\u1EF6\u1EF7\x07G\x02\x02\u1EF7\u1EF8" + - "\x07T\x02\x02\u1EF8\u1EF9\x07a\x02\x02\u1EF9\u1EFA\x07C\x02\x02\u1EFA" + - "\u1EFB\x07F\x02\x02\u1EFB\u1EFC\x07O\x02\x02\u1EFC\u1EFD\x07K\x02\x02" + - "\u1EFD\u1EFE\x07P\x02\x02\u1EFE\u04FA\x03\x02\x02\x02\u1EFF\u1F00\x07" + - "C\x02\x02\u1F00\u1F01\x07T\x02\x02\u1F01\u1F02\x07O\x02\x02\u1F02\u1F03" + - "\x07U\x02\x02\u1F03\u1F04\x07E\x02\x02\u1F04\u1F05\x07K\x02\x02\u1F05" + - "\u1F06\x07K\x02\x02\u1F06\u1F07\x07:\x02\x02\u1F07\u04FC\x03\x02\x02\x02" + - "\u1F08\u1F09\x07C\x02\x02\u1F09\u1F0A\x07U\x02\x02\u1F0A\u1F0B\x07E\x02" + - "\x02\u1F0B\u1F0C\x07K\x02\x02\u1F0C\u1F0D\x07K\x02\x02\u1F0D\u04FE\x03" + - "\x02\x02\x02\u1F0E\u1F0F\x07D\x02\x02\u1F0F\u1F10\x07K\x02\x02\u1F10\u1F11" + - "\x07I\x02\x02\u1F11\u1F12\x077\x02\x02\u1F12\u0500\x03\x02\x02\x02\u1F13" + - "\u1F14\x07E\x02\x02\u1F14\u1F15\x07R\x02\x02\u1F15\u1F16\x073\x02\x02" + - "\u1F16\u1F17\x074\x02\x02\u1F17\u1F18\x077\x02\x02\u1F18\u1F19\x072\x02" + - "\x02\u1F19\u0502\x03\x02\x02\x02\u1F1A\u1F1B\x07E\x02\x02\u1F1B\u1F1C" + - "\x07R\x02\x02\u1F1C\u1F1D\x073\x02\x02\u1F1D\u1F1E\x074\x02\x02\u1F1E" + - "\u1F1F\x077\x02\x02\u1F1F\u1F20\x073\x02\x02\u1F20\u0504\x03\x02\x02\x02" + - "\u1F21\u1F22\x07E\x02\x02\u1F22\u1F23\x07R\x02\x02\u1F23\u1F24\x073\x02" + - "\x02\u1F24\u1F25\x074\x02\x02\u1F25\u1F26\x077\x02\x02\u1F26\u1F27\x07" + - "8\x02\x02\u1F27\u0506\x03\x02\x02\x02\u1F28\u1F29\x07E\x02\x02\u1F29\u1F2A" + - "\x07R\x02\x02\u1F2A\u1F2B\x073\x02\x02\u1F2B\u1F2C\x074\x02\x02\u1F2C" + - "\u1F2D\x077\x02\x02\u1F2D\u1F2E\x079\x02\x02\u1F2E\u0508\x03\x02\x02\x02" + - "\u1F2F\u1F30\x07E\x02\x02\u1F30\u1F31\x07R\x02\x02\u1F31\u1F32\x07:\x02" + - "\x02\u1F32\u1F33\x077\x02\x02\u1F33\u1F34\x072\x02\x02\u1F34\u050A\x03" + - "\x02\x02\x02\u1F35\u1F36\x07E\x02\x02\u1F36\u1F37\x07R\x02\x02\u1F37\u1F38" + - "\x07:\x02\x02\u1F38\u1F39\x077\x02\x02\u1F39\u1F3A\x074\x02\x02\u1F3A" + - "\u050C\x03\x02\x02\x02\u1F3B\u1F3C\x07E\x02\x02\u1F3C\u1F3D\x07R\x02\x02" + - "\u1F3D\u1F3E\x07:\x02\x02\u1F3E\u1F3F\x078\x02\x02\u1F3F\u1F40\x078\x02" + - "\x02\u1F40\u050E\x03\x02\x02\x02\u1F41\u1F42\x07E\x02\x02\u1F42\u1F43" + - "\x07R\x02\x02\u1F43\u1F44\x07;\x02\x02\u1F44\u1F45\x075\x02\x02\u1F45" + - "\u1F46\x074\x02\x02\u1F46\u0510\x03\x02\x02\x02\u1F47\u1F48\x07F\x02\x02" + - "\u1F48\u1F49\x07G\x02\x02\u1F49\u1F4A\x07E\x02\x02\u1F4A\u1F4B\x07:\x02" + - "\x02\u1F4B\u0512\x03\x02\x02\x02\u1F4C\u1F4D\x07G\x02\x02\u1F4D\u1F4E" + - "\x07W\x02\x02\u1F4E\u1F4F\x07E\x02\x02\u1F4F\u1F50\x07L\x02\x02\u1F50" + - "\u1F51\x07R\x02\x02\u1F51\u1F52\x07O\x02\x02\u1F52\u1F53\x07U\x02\x02" + - "\u1F53\u0514\x03\x02\x02\x02\u1F54\u1F55\x07G\x02\x02\u1F55\u1F56\x07" + - "W\x02\x02\u1F56\u1F57\x07E\x02\x02\u1F57\u1F58\x07M\x02\x02\u1F58\u1F59" + - "\x07T\x02\x02\u1F59\u0516\x03\x02\x02\x02\u1F5A\u1F5B\x07I\x02\x02\u1F5B" + - "\u1F5C\x07D\x02\x02\u1F5C\u1F5D\x074\x02\x02\u1F5D\u1F5E\x075\x02\x02" + - "\u1F5E\u1F5F\x073\x02\x02\u1F5F\u1F60\x074\x02\x02\u1F60\u0518\x03\x02" + - "\x02\x02\u1F61\u1F62\x07I\x02\x02\u1F62\u1F63\x07D\x02\x02\u1F63\u1F64" + - "\x07M\x02\x02\u1F64\u051A\x03\x02\x02\x02\u1F65\u1F66\x07I\x02\x02\u1F66" + - "\u1F67\x07G\x02\x02\u1F67\u1F68\x07Q\x02\x02\u1F68\u1F69\x07U\x02\x02" + - "\u1F69\u1F6A\x07V\x02\x02\u1F6A\u1F6B\x07F\x02\x02\u1F6B\u1F6C\x07:\x02" + - "\x02\u1F6C\u051C\x03\x02\x02\x02\u1F6D\u1F6E\x07I\x02\x02\u1F6E\u1F6F" + - "\x07T\x02\x02\u1F6F\u1F70\x07G\x02\x02\u1F70\u1F71\x07G\x02\x02\u1F71" + - "\u1F72\x07M\x02\x02\u1F72\u051E\x03\x02\x02\x02\u1F73\u1F74\x07J\x02\x02" + - "\u1F74\u1F75\x07G\x02\x02\u1F75\u1F76\x07D\x02\x02\u1F76\u1F77\x07T\x02" + - "\x02\u1F77\u1F78\x07G\x02\x02\u1F78\u1F79\x07Y\x02\x02\u1F79\u0520\x03" + - "\x02\x02\x02\u1F7A\u1F7B\x07J\x02\x02\u1F7B\u1F7C\x07R\x02\x02\u1F7C\u1F7D" + - "\x07:\x02\x02\u1F7D\u0522\x03\x02\x02\x02\u1F7E\u1F7F\x07M\x02\x02\u1F7F" + - "\u1F80\x07G\x02\x02\u1F80\u1F81\x07[\x02\x02\u1F81\u1F82\x07D\x02\x02" + - "\u1F82\u1F83\x07E\x02\x02\u1F83\u1F84\x07U\x02\x02\u1F84\u1F85\x074\x02" + - "\x02\u1F85\u0524\x03\x02\x02\x02\u1F86\u1F87\x07M\x02\x02\u1F87\u1F88" + - "\x07Q\x02\x02\u1F88\u1F89\x07K\x02\x02\u1F89\u1F8A\x07:\x02\x02\u1F8A" + - "\u1F8B\x07T\x02\x02\u1F8B\u0526\x03\x02\x02\x02\u1F8C\u1F8D\x07M\x02\x02" + - "\u1F8D\u1F8E\x07Q\x02\x02\u1F8E\u1F8F\x07K\x02\x02\u1F8F\u1F90\x07:\x02" + - "\x02\u1F90\u1F91\x07W\x02\x02\u1F91\u0528\x03\x02\x02\x02\u1F92\u1F93" + - "\x07N\x02\x02\u1F93\u1F94\x07C\x02\x02\u1F94\u1F95\x07V\x02\x02\u1F95" + - "\u1F96\x07K\x02\x02\u1F96\u1F97\x07P\x02\x02\u1F97\u1F98\x073\x02\x02" + - "\u1F98\u052A\x03\x02\x02\x02\u1F99\u1F9A\x07N\x02\x02\u1F9A\u1F9B\x07" + - "C\x02\x02\u1F9B\u1F9C\x07V\x02\x02\u1F9C\u1F9D\x07K\x02\x02\u1F9D\u1F9E" + - "\x07P\x02\x02\u1F9E\u1F9F\x074\x02\x02\u1F9F\u052C\x03\x02\x02\x02\u1FA0" + - "\u1FA1\x07N\x02\x02\u1FA1\u1FA2\x07C\x02\x02\u1FA2\u1FA3\x07V\x02\x02" + - "\u1FA3\u1FA4\x07K\x02\x02\u1FA4\u1FA5\x07P\x02\x02\u1FA5\u1FA6\x077\x02" + - "\x02\u1FA6\u052E\x03\x02\x02\x02\u1FA7\u1FA8\x07N\x02\x02\u1FA8\u1FA9" + - "\x07C\x02\x02\u1FA9\u1FAA\x07V\x02\x02\u1FAA\u1FAB\x07K\x02\x02\u1FAB" + - "\u1FAC\x07P\x02\x02\u1FAC\u1FAD\x079\x02\x02\u1FAD\u0530\x03\x02\x02\x02" + - "\u1FAE\u1FAF\x07O\x02\x02\u1FAF\u1FB0\x07C\x02\x02\u1FB0\u1FB1\x07E\x02" + - "\x02\u1FB1\u1FB2\x07E\x02\x02\u1FB2\u1FB3\x07G\x02\x02\u1FB3\u0532\x03" + - "\x02\x02\x02\u1FB4\u1FB5\x07O\x02\x02\u1FB5\u1FB6\x07C\x02\x02\u1FB6\u1FB7" + - "\x07E\x02\x02\u1FB7\u1FB8\x07T\x02\x02\u1FB8\u1FB9\x07Q\x02\x02\u1FB9" + - "\u1FBA\x07O\x02\x02\u1FBA\u1FBB\x07C\x02\x02\u1FBB\u1FBC\x07P\x02\x02" + - "\u1FBC\u0534\x03\x02\x02\x02\u1FBD\u1FBE\x07U\x02\x02\u1FBE\u1FBF\x07" + - "L\x02\x02\u1FBF\u1FC0\x07K\x02\x02\u1FC0\u1FC1\x07U\x02\x02\u1FC1\u0536" + - "\x03\x02\x02\x02\u1FC2\u1FC3\x07U\x02\x02\u1FC3\u1FC4\x07Y\x02\x02\u1FC4" + - "\u1FC5\x07G\x02\x02\u1FC5\u1FC6\x079\x02\x02\u1FC6\u0538\x03\x02\x02\x02" + - "\u1FC7\u1FC8\x07V\x02\x02\u1FC8\u1FC9\x07K\x02\x02\u1FC9\u1FCA\x07U\x02" + - "\x02\u1FCA\u1FCB\x078\x02\x02\u1FCB\u1FCC\x074\x02\x02\u1FCC\u1FCD\x07" + - "2\x02\x02\u1FCD\u053A\x03\x02\x02\x02\u1FCE\u1FCF\x07W\x02\x02\u1FCF\u1FD0" + - "\x07E\x02\x02\u1FD0\u1FD1\x07U\x02\x02\u1FD1\u1FD2\x074\x02\x02\u1FD2" + - "\u053C\x03\x02\x02\x02\u1FD3\u1FD4\x07W\x02\x02\u1FD4\u1FD5\x07L\x02\x02" + - "\u1FD5\u1FD6\x07K\x02\x02\u1FD6\u1FD7\x07U\x02\x02\u1FD7\u053E\x03\x02" + - "\x02\x02\u1FD8\u1FD9\x07W\x02\x02\u1FD9\u1FDA\x07V\x02\x02\u1FDA\u1FDB" + - "\x07H\x02\x02\u1FDB\u1FDC\x073\x02\x02\u1FDC\u1FDD\x078\x02\x02\u1FDD" + - "\u0540\x03\x02\x02\x02\u1FDE\u1FDF\x07W\x02\x02\u1FDF\u1FE0\x07V\x02\x02" + - "\u1FE0\u1FE1\x07H\x02\x02\u1FE1\u1FE2\x073\x02\x02\u1FE2\u1FE3\x078\x02" + - "\x02\u1FE3\u1FE4\x07N\x02\x02\u1FE4\u1FE5\x07G\x02\x02\u1FE5\u0542\x03" + - "\x02\x02\x02\u1FE6\u1FE7\x07W\x02\x02\u1FE7\u1FE8\x07V\x02\x02\u1FE8\u1FE9" + - "\x07H\x02\x02\u1FE9\u1FEA\x075\x02\x02\u1FEA\u1FEB\x074\x02\x02\u1FEB" + - "\u0544\x03\x02\x02\x02\u1FEC\u1FED\x07W\x02\x02\u1FED\u1FEE\x07V\x02\x02" + - "\u1FEE\u1FEF\x07H\x02\x02\u1FEF\u1FF0\x07:\x02\x02\u1FF0\u0546\x03\x02" + - "\x02\x02\u1FF1\u1FF2\x07W\x02\x02\u1FF2\u1FF3\x07V\x02\x02\u1FF3\u1FF4" + - "\x07H\x02\x02\u1FF4\u1FF5\x07:\x02\x02\u1FF5\u1FF6\x07O\x02\x02\u1FF6" + - "\u1FF7\x07D\x02\x02\u1FF7\u1FF8\x075\x02\x02\u1FF8\u0548\x03\x02\x02\x02" + - "\u1FF9\u1FFA\x07W\x02\x02\u1FFA\u1FFB\x07V\x02\x02\u1FFB\u1FFC\x07H\x02" + - "\x02\u1FFC\u1FFD\x07:\x02\x02\u1FFD\u1FFE\x07O\x02\x02\u1FFE\u1FFF\x07" + - "D\x02\x02\u1FFF\u2000\x076\x02\x02\u2000\u054A\x03\x02\x02\x02\u2001\u2002" + - "\x07C\x02\x02\u2002\u2003\x07T\x02\x02\u2003\u2004\x07E\x02\x02\u2004" + - "\u2005\x07J\x02\x02\u2005\u2006\x07K\x02\x02\u2006\u2007\x07X\x02\x02" + - "\u2007\u2008\x07G\x02\x02\u2008\u054C\x03\x02\x02\x02\u2009\u200A\x07" + - "D\x02\x02\u200A\u200B\x07N\x02\x02\u200B\u200C\x07C\x02\x02\u200C\u200D" + - "\x07E\x02\x02\u200D\u200E\x07M\x02\x02\u200E\u200F\x07J\x02\x02\u200F" + - "\u2010\x07Q\x02\x02\u2010\u2011\x07N\x02\x02\u2011\u2012\x07G\x02\x02" + - "\u2012\u054E\x03\x02\x02\x02\u2013\u2014\x07E\x02\x02\u2014\u2015\x07" + - "U\x02\x02\u2015\u2016\x07X\x02\x02\u2016\u0550\x03\x02\x02\x02\u2017\u2018" + - "\x07H\x02\x02\u2018\u2019\x07G\x02\x02\u2019\u201A\x07F\x02\x02\u201A" + - "\u201B\x07G\x02\x02\u201B\u201C\x07T\x02\x02\u201C\u201D\x07C\x02\x02" + - "\u201D\u201E\x07V\x02\x02\u201E\u201F\x07G\x02\x02\u201F\u2020\x07F\x02" + - "\x02\u2020\u0552\x03\x02\x02\x02\u2021\u2022\x07K\x02\x02\u2022\u2023" + - "\x07P\x02\x02\u2023\u2024\x07P\x02\x02\u2024\u2025\x07Q\x02\x02\u2025" + - "\u2026\x07F\x02\x02\u2026\u2027\x07D\x02\x02\u2027\u0554\x03\x02\x02\x02" + - "\u2028\u2029\x07O\x02\x02\u2029\u202A\x07G\x02\x02\u202A\u202B\x07O\x02" + - "\x02\u202B\u202C\x07Q\x02\x02\u202C\u202D\x07T\x02\x02\u202D\u202E\x07" + - "[\x02\x02\u202E\u0556\x03\x02\x02\x02\u202F\u2030\x07O\x02\x02\u2030\u2031" + - "\x07T\x02\x02\u2031\u2032\x07I\x02\x02\u2032\u2033\x07a\x02\x02\u2033" + - "\u2034\x07O\x02\x02\u2034\u2035\x07[\x02\x02\u2035\u2036\x07K\x02\x02" + - "\u2036\u2037\x07U\x02\x02\u2037\u2038\x07C\x02\x02\u2038\u2039\x07O\x02" + - "\x02\u2039\u0558\x03\x02\x02\x02\u203A\u203B\x07O\x02\x02\u203B\u203C" + - "\x07[\x02\x02\u203C\u203D\x07K\x02\x02\u203D\u203E\x07U\x02\x02\u203E" + - "\u203F\x07C\x02\x02\u203F\u2040\x07O\x02\x02\u2040\u055A\x03\x02\x02\x02" + - "\u2041\u2042\x07P\x02\x02\u2042\u2043\x07F\x02\x02\u2043\u2044\x07D\x02" + - "\x02\u2044\u055C\x03\x02\x02\x02\u2045\u2046\x07P\x02\x02\u2046\u2047" + - "\x07F\x02\x02\u2047\u2048\x07D\x02\x02\u2048\u2049\x07E\x02\x02\u2049" + - "\u204A\x07N\x02\x02\u204A\u204B\x07W\x02\x02\u204B\u204C\x07U\x02\x02" + - "\u204C\u204D\x07V\x02\x02\u204D\u204E\x07G\x02\x02\u204E\u204F\x07T\x02" + - "\x02\u204F\u055E\x03\x02\x02\x02\u2050\u2051\x07R\x02\x02\u2051\u2052" + - "\x07G\x02\x02\u2052\u2053\x07T\x02\x02\u2053\u2054\x07H\x02\x02\u2054" + - "\u2055\x07Q\x02\x02\u2055\u2056\x07T\x02\x02\u2056\u2057\x07O\x02\x02" + - "\u2057\u2058\x07C\x02\x02\u2058\u2059\x07P\x02\x02\u2059\u205A\x07E\x02" + - "\x02\u205A\u205B\x07G\x02\x02\u205B\u205C\x07a\x02\x02\u205C\u205D\x07" + - "U\x02\x02\u205D\u205E\x07E\x02\x02\u205E\u205F\x07J\x02\x02\u205F\u2060" + - "\x07G\x02\x02\u2060\u2061\x07O\x02\x02\u2061\u2062\x07C\x02\x02\u2062" + - "\u0560\x03\x02\x02\x02\u2063\u2064\x07V\x02\x02\u2064\u2065\x07Q\x02\x02" + - "\u2065\u2066\x07M\x02\x02\u2066\u2067\x07W\x02\x02\u2067\u2068\x07F\x02" + - "\x02\u2068\u2069\x07D\x02\x02\u2069\u0562\x03\x02\x02\x02\u206A\u206B" + - "\x07T\x02\x02\u206B\u206C\x07G\x02\x02\u206C\u206D\x07R\x02\x02\u206D" + - "\u206E\x07G\x02\x02\u206E\u206F\x07C\x02\x02\u206F\u2070\x07V\x02\x02" + - "\u2070\u2071\x07C\x02\x02\u2071\u2072\x07D\x02\x02\u2072\u2073\x07N\x02" + - "\x02\u2073\u2074\x07G\x02\x02\u2074\u0564\x03\x02\x02\x02\u2075\u2076" + - "\x07E\x02\x02\u2076\u2077\x07Q\x02\x02\u2077\u2078\x07O\x02\x02\u2078" + - "\u2079\x07O\x02\x02\u2079\u207A\x07K\x02\x02\u207A\u207B\x07V\x02\x02" + - "\u207B\u207C\x07V\x02\x02\u207C\u207D\x07G\x02\x02\u207D\u207E\x07F\x02" + - "\x02\u207E\u0566\x03\x02\x02\x02\u207F\u2080\x07W\x02\x02\u2080\u2081" + - "\x07P\x02\x02\u2081\u2082\x07E\x02\x02\u2082\u2083\x07Q\x02\x02\u2083" + - "\u2084\x07O\x02\x02\u2084\u2085\x07O\x02\x02\u2085\u2086\x07K\x02\x02" + - "\u2086\u2087\x07V\x02\x02\u2087\u2088\x07V\x02\x02\u2088\u2089\x07G\x02" + - "\x02\u2089\u208A\x07F\x02\x02\u208A\u0568\x03\x02\x02\x02\u208B\u208C" + - "\x07U\x02\x02\u208C\u208D\x07G\x02\x02\u208D\u208E\x07T\x02\x02\u208E" + - "\u208F\x07K\x02\x02\u208F\u2090\x07C\x02\x02\u2090\u2091\x07N\x02\x02" + - "\u2091\u2092\x07K\x02\x02\u2092\u2093\x07\\\x02\x02\u2093\u2094\x07C\x02" + - "\x02\u2094\u2095\x07D\x02\x02\u2095\u2096\x07N\x02\x02\u2096\u2097\x07" + - "G\x02\x02\u2097\u056A\x03\x02\x02\x02\u2098\u2099\x07I\x02\x02\u2099\u209A" + - "\x07G\x02\x02\u209A\u209B\x07Q\x02\x02\u209B\u209C\x07O\x02\x02\u209C" + - "\u209D\x07G\x02\x02\u209D\u209E\x07V\x02\x02\u209E\u209F\x07T\x02\x02" + - "\u209F\u20A0\x07[\x02\x02\u20A0\u20A1\x07E\x02\x02\u20A1\u20A2\x07Q\x02" + - "\x02\u20A2\u20A3\x07N\x02\x02\u20A3\u20A4\x07N\x02\x02\u20A4\u20A5\x07" + - "G\x02\x02\u20A5\u20A6\x07E\x02\x02\u20A6\u20A7\x07V\x02\x02\u20A7\u20A8" + - "\x07K\x02\x02\u20A8\u20A9\x07Q\x02\x02\u20A9\u20AA\x07P\x02\x02\u20AA" + - "\u056C\x03\x02\x02\x02\u20AB\u20AC\x07I\x02\x02\u20AC\u20AD\x07G\x02\x02" + - "\u20AD\u20AE\x07Q\x02\x02\u20AE\u20AF\x07O\x02\x02\u20AF\u20B0\x07E\x02" + - "\x02\u20B0\u20B1\x07Q\x02\x02\u20B1\u20B2\x07N\x02\x02\u20B2\u20B3\x07" + - "N\x02\x02\u20B3\u20B4\x07G\x02\x02\u20B4\u20B5\x07E\x02\x02\u20B5\u20B6" + - "\x07V\x02\x02\u20B6\u20B7\x07K\x02\x02\u20B7\u20B8\x07Q\x02\x02\u20B8" + - "\u20B9\x07P\x02\x02\u20B9\u056E\x03\x02\x02\x02\u20BA\u20BB\x07I\x02\x02" + - "\u20BB\u20BC\x07G\x02\x02\u20BC\u20BD\x07Q\x02\x02\u20BD\u20BE\x07O\x02" + - "\x02\u20BE\u20BF\x07G\x02\x02\u20BF\u20C0\x07V\x02\x02\u20C0\u20C1\x07" + - "T\x02\x02\u20C1\u20C2\x07[\x02\x02\u20C2\u0570\x03\x02\x02\x02\u20C3\u20C4" + - "\x07N\x02\x02\u20C4\u20C5\x07K\x02\x02\u20C5\u20C6\x07P\x02\x02\u20C6" + - "\u20C7\x07G\x02\x02\u20C7\u20C8\x07U\x02\x02\u20C8\u20C9\x07V\x02\x02" + - "\u20C9\u20CA\x07T\x02\x02\u20CA\u20CB\x07K\x02\x02\u20CB\u20CC\x07P\x02" + - "\x02\u20CC\u20CD\x07I\x02\x02\u20CD\u0572\x03\x02\x02\x02\u20CE\u20CF" + - "\x07O\x02\x02\u20CF\u20D0\x07W\x02\x02\u20D0\u20D1\x07N\x02\x02\u20D1" + - "\u20D2\x07V\x02\x02\u20D2\u20D3\x07K\x02\x02\u20D3\u20D4\x07N\x02\x02" + - "\u20D4\u20D5\x07K\x02\x02\u20D5\u20D6\x07P\x02\x02\u20D6\u20D7\x07G\x02" + - "\x02\u20D7\u20D8\x07U\x02\x02\u20D8\u20D9\x07V\x02\x02\u20D9\u20DA\x07" + - "T\x02\x02\u20DA\u20DB\x07K\x02\x02\u20DB\u20DC\x07P\x02\x02\u20DC\u20DD" + - "\x07I\x02\x02\u20DD\u0574\x03\x02\x02\x02\u20DE\u20DF\x07O\x02\x02\u20DF" + - "\u20E0\x07W\x02\x02\u20E0\u20E1\x07N\x02\x02\u20E1\u20E2\x07V\x02\x02" + - "\u20E2\u20E3\x07K\x02\x02\u20E3\u20E4\x07R\x02\x02\u20E4\u20E5\x07Q\x02" + - "\x02\u20E5\u20E6\x07K\x02\x02\u20E6\u20E7\x07P\x02\x02\u20E7\u20E8\x07" + - "V\x02\x02\u20E8\u0576\x03\x02\x02\x02\u20E9\u20EA\x07O\x02\x02\u20EA\u20EB" + - "\x07W\x02\x02\u20EB\u20EC\x07N\x02\x02\u20EC\u20ED\x07V\x02\x02\u20ED" + - "\u20EE\x07K\x02\x02\u20EE\u20EF\x07R\x02\x02\u20EF\u20F0\x07Q\x02\x02" + - "\u20F0\u20F1\x07N\x02\x02\u20F1\u20F2\x07[\x02\x02\u20F2\u20F3\x07I\x02" + - "\x02\u20F3\u20F4\x07Q\x02\x02\u20F4\u20F5\x07P\x02\x02\u20F5\u0578\x03" + - "\x02\x02\x02\u20F6\u20F7\x07R\x02\x02\u20F7\u20F8\x07Q\x02\x02\u20F8\u20F9" + - "\x07K\x02\x02\u20F9\u20FA\x07P\x02\x02\u20FA\u20FB\x07V\x02\x02\u20FB" + - "\u057A\x03\x02\x02\x02\u20FC\u20FD\x07R\x02\x02\u20FD\u20FE\x07Q\x02\x02" + - "\u20FE\u20FF\x07N\x02\x02\u20FF\u2100\x07[\x02\x02\u2100\u2101\x07I\x02" + - "\x02\u2101\u2102\x07Q\x02\x02\u2102\u2103\x07P\x02\x02\u2103\u057C\x03" + - "\x02\x02\x02\u2104\u2105\x07C\x02\x02\u2105\u2106\x07D\x02\x02\u2106\u2107" + - "\x07U\x02\x02\u2107\u057E\x03\x02\x02\x02\u2108\u2109\x07C\x02\x02\u2109" + - "\u210A\x07E\x02\x02\u210A\u210B\x07Q\x02\x02\u210B\u210C\x07U\x02\x02" + - "\u210C\u0580\x03\x02\x02\x02\u210D\u210E\x07C\x02\x02\u210E\u210F\x07" + - "F\x02\x02\u210F\u2110\x07F\x02\x02\u2110\u2111\x07F\x02\x02\u2111\u2112" + - "\x07C\x02\x02\u2112\u2113\x07V\x02\x02\u2113\u2114\x07G\x02\x02\u2114" + - "\u0582\x03\x02\x02\x02\u2115\u2116\x07C\x02\x02\u2116\u2117\x07F\x02\x02" + - "\u2117\u2118\x07F\x02\x02\u2118\u2119\x07V\x02\x02\u2119\u211A\x07K\x02" + - "\x02\u211A\u211B\x07O\x02\x02\u211B\u211C\x07G\x02\x02\u211C\u0584\x03" + - "\x02\x02\x02\u211D\u211E\x07C\x02\x02\u211E\u211F\x07G\x02\x02\u211F\u2120" + - "\x07U\x02\x02\u2120\u2121\x07a\x02\x02\u2121\u2122\x07F\x02\x02\u2122" + - "\u2123\x07G\x02\x02\u2123\u2124\x07E\x02\x02\u2124\u2125\x07T\x02\x02" + - "\u2125\u2126\x07[\x02\x02\u2126\u2127\x07R\x02\x02\u2127\u2128\x07V\x02" + - "\x02\u2128\u0586\x03\x02\x02\x02\u2129\u212A\x07C\x02\x02\u212A\u212B" + - "\x07G\x02\x02\u212B\u212C\x07U\x02\x02\u212C\u212D\x07a\x02\x02\u212D" + - "\u212E\x07G\x02\x02\u212E\u212F\x07P\x02\x02\u212F\u2130\x07E\x02\x02" + - "\u2130\u2131\x07T\x02\x02\u2131\u2132\x07[\x02\x02\u2132\u2133\x07R\x02" + - "\x02\u2133\u2134\x07V\x02\x02\u2134\u0588\x03\x02\x02\x02\u2135\u2136" + - "\x07C\x02\x02\u2136\u2137\x07T\x02\x02\u2137\u2138\x07G\x02\x02\u2138" + - "\u2139\x07C\x02\x02\u2139\u058A\x03\x02\x02\x02\u213A\u213B\x07C\x02\x02" + - "\u213B\u213C\x07U\x02\x02\u213C\u213D\x07D\x02\x02\u213D\u213E\x07K\x02" + - "\x02\u213E\u213F\x07P\x02\x02\u213F\u2140\x07C\x02\x02\u2140\u2141\x07" + - "T\x02\x02\u2141\u2142\x07[\x02\x02\u2142\u058C\x03\x02\x02\x02\u2143\u2144" + - "\x07C\x02\x02\u2144\u2145\x07U\x02\x02\u2145\u2146\x07K\x02\x02\u2146" + - "\u2147\x07P\x02\x02\u2147\u058E\x03\x02\x02\x02\u2148\u2149\x07C\x02\x02" + - "\u2149\u214A\x07U\x02\x02\u214A\u214B\x07V\x02\x02\u214B\u214C\x07G\x02" + - "\x02\u214C\u214D\x07Z\x02\x02\u214D\u214E\x07V\x02\x02\u214E\u0590\x03" + - "\x02\x02\x02\u214F\u2150\x07C\x02\x02\u2150\u2151\x07U\x02\x02\u2151\u2152" + - "\x07Y\x02\x02\u2152\u2153\x07M\x02\x02\u2153\u2154\x07D\x02\x02\u2154" + - "\u0592\x03\x02\x02\x02\u2155\u2156\x07C\x02\x02\u2156\u2157\x07U\x02\x02" + - "\u2157\u2158\x07Y\x02\x02\u2158\u2159\x07M\x02\x02\u2159\u215A\x07V\x02" + - "\x02\u215A\u0594\x03\x02\x02\x02\u215B\u215C\x07C\x02\x02\u215C\u215D" + - "\x07U\x02\x02\u215D\u215E\x07[\x02\x02\u215E\u215F\x07O\x02\x02\u215F" + - "\u2160\x07O\x02\x02\u2160\u2161\x07G\x02\x02\u2161\u2162\x07V\x02\x02" + - "\u2162\u2163\x07T\x02\x02\u2163\u2164\x07K\x02\x02\u2164\u2165\x07E\x02" + - "\x02\u2165\u2166\x07a\x02\x02\u2166\u2167\x07F\x02\x02\u2167\u2168\x07" + - "G\x02\x02\u2168\u2169\x07E\x02\x02\u2169\u216A\x07T\x02\x02\u216A\u216B" + - "\x07[\x02\x02\u216B\u216C\x07R\x02\x02\u216C\u216D\x07V\x02\x02\u216D" + - "\u0596\x03\x02\x02\x02\u216E\u216F\x07C\x02\x02\u216F\u2170\x07U\x02\x02" + - "\u2170\u2171\x07[\x02\x02\u2171\u2172\x07O\x02\x02\u2172\u2173\x07O\x02" + - "\x02\u2173\u2174\x07G\x02\x02\u2174\u2175\x07V\x02\x02\u2175\u2176\x07" + - "T\x02\x02\u2176\u2177\x07K\x02\x02\u2177\u2178\x07E\x02\x02\u2178\u2179" + - "\x07a\x02\x02\u2179\u217A\x07F\x02\x02\u217A\u217B\x07G\x02\x02\u217B" + - "\u217C\x07T\x02\x02\u217C\u217D\x07K\x02\x02\u217D\u217E\x07X\x02\x02" + - "\u217E\u217F\x07G\x02\x02\u217F\u0598\x03\x02\x02\x02\u2180\u2181\x07" + - "C\x02\x02\u2181\u2182\x07U\x02\x02\u2182\u2183\x07[\x02\x02\u2183\u2184" + - "\x07O\x02\x02\u2184\u2185\x07O\x02\x02\u2185\u2186\x07G\x02\x02\u2186" + - "\u2187\x07V\x02\x02\u2187\u2188\x07T\x02\x02\u2188\u2189\x07K\x02\x02" + - "\u2189\u218A\x07E\x02\x02\u218A\u218B\x07a\x02\x02\u218B\u218C\x07G\x02" + - "\x02\u218C\u218D\x07P\x02\x02\u218D\u218E\x07E\x02\x02\u218E\u218F\x07" + - "T\x02\x02\u218F\u2190\x07[\x02\x02\u2190\u2191\x07R\x02\x02\u2191\u2192" + - "\x07V\x02\x02\u2192\u059A\x03\x02\x02\x02\u2193\u2194\x07C\x02\x02\u2194" + - "\u2195\x07U\x02\x02\u2195\u2196\x07[\x02\x02\u2196\u2197\x07O\x02\x02" + - "\u2197\u2198\x07O\x02\x02\u2198\u2199\x07G\x02\x02\u2199\u219A\x07V\x02" + - "\x02\u219A\u219B\x07T\x02\x02\u219B\u219C\x07K\x02\x02\u219C\u219D\x07" + - "E\x02\x02\u219D\u219E\x07a\x02\x02\u219E\u219F\x07U\x02\x02\u219F\u21A0" + - "\x07K\x02\x02\u21A0\u21A1\x07I\x02\x02\u21A1\u21A2\x07P\x02\x02\u21A2" + - "\u059C\x03\x02\x02\x02\u21A3\u21A4\x07C\x02\x02\u21A4\u21A5\x07U\x02\x02" + - "\u21A5\u21A6\x07[\x02\x02\u21A6\u21A7\x07O\x02\x02\u21A7\u21A8\x07O\x02" + - "\x02\u21A8\u21A9\x07G\x02\x02\u21A9\u21AA\x07V\x02\x02\u21AA\u21AB\x07" + - "T\x02\x02\u21AB\u21AC\x07K\x02\x02\u21AC\u21AD\x07E\x02\x02\u21AD\u21AE" + - "\x07a\x02\x02\u21AE\u21AF\x07X\x02\x02\u21AF\u21B0\x07G\x02\x02\u21B0" + - "\u21B1\x07T\x02\x02\u21B1\u21B2\x07K\x02\x02\u21B2\u21B3\x07H\x02\x02" + - "\u21B3\u21B4\x07[\x02\x02\u21B4\u059E\x03\x02\x02\x02\u21B5\u21B6\x07" + - "C\x02\x02\u21B6\u21B7\x07V\x02\x02\u21B7\u21B8\x07C\x02\x02\u21B8\u21B9" + - "\x07P\x02\x02\u21B9\u05A0\x03\x02\x02\x02\u21BA\u21BB\x07C\x02\x02\u21BB" + - "\u21BC\x07V\x02\x02\u21BC\u21BD\x07C\x02\x02\u21BD\u21BE\x07P\x02\x02" + - "\u21BE\u21BF\x074\x02\x02\u21BF\u05A2\x03\x02\x02\x02\u21C0\u21C1\x07" + - "D\x02\x02\u21C1\u21C2\x07G\x02\x02\u21C2\u21C3\x07P\x02\x02\u21C3\u21C4" + - "\x07E\x02\x02\u21C4\u21C5\x07J\x02\x02\u21C5\u21C6\x07O\x02\x02\u21C6" + - "\u21C7\x07C\x02\x02\u21C7\u21C8\x07T\x02\x02\u21C8\u21C9\x07M\x02\x02" + - "\u21C9\u05A4\x03\x02\x02\x02\u21CA\u21CB\x07D\x02\x02\u21CB\u21CC\x07" + - "K\x02\x02\u21CC\u21CD\x07P\x02\x02\u21CD\u05A6\x03\x02\x02\x02\u21CE\u21CF" + - "\x07D\x02\x02\u21CF\u21D0\x07K\x02\x02\u21D0\u21D1\x07V\x02\x02\u21D1" + - "\u21D2\x07a\x02\x02\u21D2\u21D3\x07E\x02\x02\u21D3\u21D4\x07Q\x02\x02" + - "\u21D4\u21D5\x07W\x02\x02\u21D5\u21D6\x07P\x02\x02\u21D6\u21D7\x07V\x02" + - "\x02\u21D7\u05A8\x03\x02\x02\x02\u21D8\u21D9\x07D\x02\x02\u21D9\u21DA" + - "\x07K\x02\x02\u21DA\u21DB\x07V\x02\x02\u21DB\u21DC\x07a\x02\x02\u21DC" + - "\u21DD\x07N\x02\x02\u21DD\u21DE\x07G\x02\x02\u21DE\u21DF\x07P\x02\x02" + - "\u21DF\u21E0\x07I\x02\x02\u21E0\u21E1\x07V\x02\x02\u21E1\u21E2\x07J\x02" + - "\x02\u21E2\u05AA\x03\x02\x02\x02\u21E3\u21E4\x07D\x02\x02\u21E4\u21E5" + - "\x07W\x02\x02\u21E5\u21E6\x07H\x02\x02\u21E6\u21E7\x07H\x02\x02\u21E7" + - "\u21E8\x07G\x02\x02\u21E8\u21E9\x07T\x02\x02\u21E9\u05AC\x03\x02\x02\x02" + - "\u21EA\u21EB\x07E\x02\x02\u21EB\u21EC\x07C\x02\x02\u21EC\u21ED\x07V\x02" + - "\x02\u21ED\u21EE\x07C\x02\x02\u21EE\u21EF\x07N\x02\x02\u21EF\u21F0\x07" + - "Q\x02\x02\u21F0\u21F1\x07I\x02\x02\u21F1\u21F2\x07a\x02\x02\u21F2\u21F3" + - "\x07P\x02\x02\u21F3\u21F4\x07C\x02\x02\u21F4\u21F5\x07O\x02\x02\u21F5" + - "\u21F6\x07G\x02\x02\u21F6\u05AE\x03\x02\x02\x02\u21F7\u21F8\x07E\x02\x02" + - "\u21F8\u21F9\x07G\x02\x02\u21F9\u21FA\x07K\x02\x02\u21FA\u21FB\x07N\x02" + - "\x02\u21FB\u05B0\x03\x02\x02\x02\u21FC\u21FD\x07E\x02\x02\u21FD\u21FE" + - "\x07G\x02\x02\u21FE\u21FF\x07K\x02\x02\u21FF\u2200\x07N\x02\x02\u2200" + - "\u2201\x07K\x02\x02\u2201\u2202\x07P\x02\x02\u2202\u2203\x07I\x02\x02" + - "\u2203\u05B2\x03\x02\x02\x02\u2204\u2205\x07E\x02\x02\u2205\u2206\x07" + - "G\x02\x02\u2206\u2207\x07P\x02\x02\u2207\u2208\x07V\x02\x02\u2208\u2209" + - "\x07T\x02\x02\u2209\u220A\x07Q\x02\x02\u220A\u220B\x07K\x02\x02\u220B" + - "\u220C\x07F\x02\x02\u220C\u05B4\x03\x02\x02\x02\u220D\u220E\x07E\x02\x02" + - "\u220E\u220F\x07J\x02\x02\u220F\u2210\x07C\x02\x02\u2210\u2211\x07T\x02" + - "\x02\u2211\u2212\x07C\x02\x02\u2212\u2213\x07E\x02\x02\u2213\u2214\x07" + - "V\x02\x02\u2214\u2215\x07G\x02\x02\u2215\u2216\x07T\x02\x02\u2216\u2217" + - "\x07a\x02\x02\u2217\u2218\x07N\x02\x02\u2218\u2219\x07G\x02\x02\u2219" + - "\u221A\x07P\x02\x02\u221A"; - private static readonly _serializedATNSegment16: string = - "\u221B\x07I\x02\x02\u221B\u221C\x07V\x02\x02\u221C\u221D\x07J\x02\x02" + - "\u221D\u05B6\x03\x02\x02\x02\u221E\u221F\x07E\x02\x02\u221F\u2220\x07" + - "J\x02\x02\u2220\u2221\x07C\x02\x02\u2221\u2222\x07T\x02\x02\u2222\u2223" + - "\x07U\x02\x02\u2223\u2224\x07G\x02\x02\u2224\u2225\x07V\x02\x02\u2225" + - "\u05B8\x03\x02\x02\x02\u2226\u2227\x07E\x02\x02\u2227\u2228\x07J\x02\x02" + - "\u2228\u2229\x07C\x02\x02\u2229\u222A\x07T\x02\x02\u222A\u222B\x07a\x02" + - "\x02\u222B\u222C\x07N\x02\x02\u222C\u222D\x07G\x02\x02\u222D\u222E\x07" + - "P\x02\x02\u222E\u222F\x07I\x02\x02\u222F\u2230\x07V\x02\x02\u2230\u2231" + - "\x07J\x02\x02\u2231\u05BA\x03\x02\x02\x02\u2232\u2233\x07E\x02\x02\u2233" + - "\u2234\x07Q\x02\x02\u2234\u2235\x07G\x02\x02\u2235\u2236\x07T\x02\x02" + - "\u2236\u2237\x07E\x02\x02\u2237\u2238\x07K\x02\x02\u2238\u2239\x07D\x02" + - "\x02\u2239\u223A\x07K\x02\x02\u223A\u223B\x07N\x02\x02\u223B\u223C\x07" + - "K\x02\x02\u223C\u223D\x07V\x02\x02\u223D\u223E\x07[\x02\x02\u223E\u05BC" + - "\x03\x02\x02\x02\u223F\u2240\x07E\x02\x02\u2240\u2241\x07Q\x02\x02\u2241" + - "\u2242\x07N\x02\x02\u2242\u2243\x07N\x02\x02\u2243\u2244\x07C\x02\x02" + - "\u2244\u2245\x07V\x02\x02\u2245\u2246\x07K\x02\x02\u2246\u2247\x07Q\x02" + - "\x02\u2247\u2248\x07P\x02\x02\u2248\u05BE\x03\x02\x02\x02\u2249\u224A" + - "\x07E\x02\x02\u224A\u224B\x07Q\x02\x02\u224B\u224C\x07O\x02\x02\u224C" + - "\u224D\x07R\x02\x02\u224D\u224E\x07T\x02\x02\u224E\u224F\x07G\x02\x02" + - "\u224F\u2250\x07U\x02\x02\u2250\u2251\x07U\x02\x02\u2251\u05C0\x03\x02" + - "\x02\x02\u2252\u2253\x07E\x02\x02\u2253\u2254\x07Q\x02\x02\u2254\u2255" + - "\x07P\x02\x02\u2255\u2256\x07E\x02\x02\u2256\u2257\x07C\x02\x02\u2257" + - "\u2258\x07V\x02\x02\u2258\u05C2\x03\x02\x02\x02\u2259\u225A\x07E\x02\x02" + - "\u225A\u225B\x07Q\x02\x02\u225B\u225C\x07P\x02\x02\u225C\u225D\x07E\x02" + - "\x02\u225D\u225E\x07C\x02\x02\u225E\u225F\x07V\x02\x02\u225F\u2260\x07" + - "a\x02\x02\u2260\u2261\x07Y\x02\x02\u2261\u2262\x07U\x02\x02\u2262\u05C4" + - "\x03\x02\x02\x02\u2263\u2264\x07E\x02\x02\u2264\u2265\x07Q\x02\x02\u2265" + - "\u2266\x07P\x02\x02\u2266\u2267\x07P\x02\x02\u2267\u2268\x07G\x02\x02" + - "\u2268\u2269\x07E\x02\x02\u2269\u226A\x07V\x02\x02\u226A\u226B\x07K\x02" + - "\x02\u226B\u226C\x07Q\x02\x02\u226C\u226D\x07P\x02\x02\u226D\u226E\x07" + - "a\x02\x02\u226E\u226F\x07K\x02\x02\u226F\u2270\x07F\x02\x02\u2270\u05C6" + - "\x03\x02\x02\x02\u2271\u2272\x07E\x02\x02\u2272\u2273\x07Q\x02\x02\u2273" + - "\u2274\x07P\x02\x02\u2274\u2275\x07X\x02\x02\u2275\u05C8\x03\x02\x02\x02" + - "\u2276\u2277\x07E\x02\x02\u2277\u2278\x07Q\x02\x02\u2278\u2279\x07P\x02" + - "\x02\u2279\u227A\x07X\x02\x02\u227A\u227B\x07G\x02\x02\u227B\u227C\x07" + - "T\x02\x02\u227C\u227D\x07V\x02\x02\u227D\u227E\x07a\x02\x02\u227E\u227F" + - "\x07V\x02\x02\u227F\u2280\x07\\\x02\x02\u2280\u05CA\x03\x02\x02\x02\u2281" + - "\u2282\x07E\x02\x02\u2282\u2283\x07Q\x02\x02\u2283\u2284\x07U\x02\x02" + - "\u2284\u05CC\x03\x02\x02\x02\u2285\u2286\x07E\x02\x02\u2286\u2287\x07" + - "Q\x02\x02\u2287\u2288\x07V\x02\x02\u2288\u05CE\x03\x02\x02\x02\u2289\u228A" + - "\x07E\x02\x02\u228A\u228B\x07T\x02\x02\u228B\u228C\x07E\x02\x02\u228C" + - "\u228D\x075\x02\x02\u228D\u228E\x074\x02\x02\u228E\u05D0\x03\x02\x02\x02" + - "\u228F\u2290\x07E\x02\x02\u2290\u2291\x07T\x02\x02\u2291\u2292\x07G\x02" + - "\x02\u2292\u2293\x07C\x02\x02\u2293\u2294\x07V\x02\x02\u2294\u2295\x07" + - "G\x02\x02\u2295\u2296\x07a\x02\x02\u2296\u2297\x07C\x02\x02\u2297\u2298" + - "\x07U\x02\x02\u2298\u2299\x07[\x02\x02\u2299\u229A\x07O\x02\x02\u229A" + - "\u229B\x07O\x02\x02\u229B\u229C\x07G\x02\x02\u229C\u229D\x07V\x02\x02" + - "\u229D\u229E\x07T\x02\x02\u229E\u229F\x07K\x02\x02\u229F\u22A0\x07E\x02" + - "\x02\u22A0\u22A1\x07a\x02\x02\u22A1\u22A2\x07R\x02\x02\u22A2\u22A3\x07" + - "T\x02\x02\u22A3\u22A4\x07K\x02\x02\u22A4\u22A5\x07X\x02\x02\u22A5\u22A6" + - "\x07a\x02\x02\u22A6\u22A7\x07M\x02\x02\u22A7\u22A8\x07G\x02\x02\u22A8" + - "\u22A9\x07[\x02\x02\u22A9\u05D2\x03\x02\x02\x02\u22AA\u22AB\x07E\x02\x02" + - "\u22AB\u22AC\x07T\x02\x02\u22AC\u22AD\x07G\x02\x02\u22AD\u22AE\x07C\x02" + - "\x02\u22AE\u22AF\x07V\x02\x02\u22AF\u22B0\x07G\x02\x02\u22B0\u22B1\x07" + - "a\x02\x02\u22B1\u22B2\x07C\x02\x02\u22B2\u22B3\x07U\x02\x02\u22B3\u22B4" + - "\x07[\x02\x02\u22B4\u22B5\x07O\x02\x02\u22B5\u22B6\x07O\x02\x02\u22B6" + - "\u22B7\x07G\x02\x02\u22B7\u22B8\x07V\x02\x02\u22B8\u22B9\x07T\x02\x02" + - "\u22B9\u22BA\x07K\x02\x02\u22BA\u22BB\x07E\x02\x02\u22BB\u22BC\x07a\x02" + - "\x02\u22BC\u22BD\x07R\x02\x02\u22BD\u22BE\x07W\x02\x02\u22BE\u22BF\x07" + - "D\x02\x02\u22BF\u22C0\x07a\x02\x02\u22C0\u22C1\x07M\x02\x02\u22C1\u22C2" + - "\x07G\x02\x02\u22C2\u22C3\x07[\x02\x02\u22C3\u05D4\x03\x02\x02\x02\u22C4" + - "\u22C5\x07E\x02\x02\u22C5\u22C6\x07T\x02\x02\u22C6\u22C7\x07G\x02\x02" + - "\u22C7\u22C8\x07C\x02\x02\u22C8\u22C9\x07V\x02\x02\u22C9\u22CA\x07G\x02" + - "\x02\u22CA\u22CB\x07a\x02\x02\u22CB\u22CC\x07F\x02\x02\u22CC\u22CD\x07" + - "J\x02\x02\u22CD\u22CE\x07a\x02\x02\u22CE\u22CF\x07R\x02\x02\u22CF\u22D0" + - "\x07C\x02\x02\u22D0\u22D1\x07T\x02\x02\u22D1\u22D2\x07C\x02\x02\u22D2" + - "\u22D3\x07O\x02\x02\u22D3\u22D4\x07G\x02\x02\u22D4\u22D5\x07V\x02\x02" + - "\u22D5\u22D6\x07G\x02\x02\u22D6\u22D7\x07T\x02\x02\u22D7\u22D8\x07U\x02" + - "\x02\u22D8\u05D6\x03\x02\x02\x02\u22D9\u22DA\x07E\x02\x02\u22DA\u22DB" + - "\x07T\x02\x02\u22DB\u22DC\x07G\x02\x02\u22DC\u22DD\x07C\x02\x02\u22DD" + - "\u22DE\x07V\x02\x02\u22DE\u22DF\x07G\x02\x02\u22DF\u22E0\x07a\x02\x02" + - "\u22E0\u22E1\x07F\x02\x02\u22E1\u22E2\x07K\x02\x02\u22E2\u22E3\x07I\x02" + - "\x02\u22E3\u22E4\x07G\x02\x02\u22E4\u22E5\x07U\x02\x02\u22E5\u22E6\x07" + - "V\x02\x02\u22E6\u05D8\x03\x02\x02\x02\u22E7\u22E8\x07E\x02\x02\u22E8\u22E9" + - "\x07T\x02\x02\u22E9\u22EA\x07Q\x02\x02\u22EA\u22EB\x07U\x02\x02\u22EB" + - "\u22EC\x07U\x02\x02\u22EC\u22ED\x07G\x02\x02\u22ED\u22EE\x07U\x02\x02" + - "\u22EE\u05DA\x03\x02\x02\x02\u22EF\u22F0\x07F\x02\x02\u22F0\u22F1\x07" + - "C\x02\x02\u22F1\u22F2\x07V\x02\x02\u22F2\u22F3\x07G\x02\x02\u22F3\u22F4" + - "\x07F\x02\x02\u22F4\u22F5\x07K\x02\x02\u22F5\u22F6\x07H\x02\x02\u22F6" + - "\u22F7\x07H\x02\x02\u22F7\u05DC\x03\x02\x02\x02\u22F8\u22F9\x07F\x02\x02" + - "\u22F9\u22FA\x07C\x02\x02\u22FA\u22FB\x07V\x02\x02\u22FB\u22FC\x07G\x02" + - "\x02\u22FC\u22FD\x07a\x02\x02\u22FD\u22FE\x07H\x02\x02\u22FE\u22FF\x07" + - "Q\x02\x02\u22FF\u2300\x07T\x02\x02\u2300\u2301\x07O\x02\x02\u2301\u2302" + - "\x07C\x02\x02\u2302\u2303\x07V\x02\x02\u2303\u05DE\x03\x02\x02\x02\u2304" + - "\u2305\x07F\x02\x02\u2305\u2306\x07C\x02\x02\u2306\u2307\x07[\x02\x02" + - "\u2307\u2308\x07P\x02\x02\u2308\u2309\x07C\x02\x02\u2309\u230A\x07O\x02" + - "\x02\u230A\u230B\x07G\x02\x02\u230B\u05E0\x03\x02\x02\x02\u230C\u230D" + - "\x07F\x02\x02\u230D\u230E\x07C\x02\x02\u230E\u230F\x07[\x02\x02\u230F" + - "\u2310\x07Q\x02\x02\u2310\u2311\x07H\x02\x02\u2311\u2312\x07O\x02\x02" + - "\u2312\u2313\x07Q\x02\x02\u2313\u2314\x07P\x02\x02\u2314\u2315\x07V\x02" + - "\x02\u2315\u2316\x07J\x02\x02\u2316\u05E2\x03\x02\x02\x02\u2317\u2318" + - "\x07F\x02\x02\u2318\u2319\x07C\x02\x02\u2319\u231A\x07[\x02\x02\u231A" + - "\u231B\x07Q\x02\x02\u231B\u231C\x07H\x02\x02\u231C\u231D\x07Y\x02\x02" + - "\u231D\u231E\x07G\x02\x02\u231E\u231F\x07G\x02\x02\u231F\u2320\x07M\x02" + - "\x02\u2320\u05E4\x03\x02\x02\x02\u2321\u2322\x07F\x02\x02\u2322\u2323" + - "\x07C\x02\x02\u2323\u2324\x07[\x02\x02\u2324\u2325\x07Q\x02\x02\u2325" + - "\u2326\x07H\x02\x02\u2326\u2327\x07[\x02\x02\u2327\u2328\x07G\x02\x02" + - "\u2328\u2329\x07C\x02\x02\u2329\u232A\x07T\x02\x02\u232A\u05E6\x03\x02" + - "\x02\x02\u232B\u232C\x07F\x02\x02\u232C\u232D\x07G\x02\x02\u232D\u232E" + - "\x07E\x02\x02\u232E\u232F\x07Q\x02\x02\u232F\u2330\x07F\x02\x02\u2330" + - "\u2331\x07G\x02\x02\u2331\u05E8\x03\x02\x02\x02\u2332\u2333\x07F\x02\x02" + - "\u2333\u2334\x07G\x02\x02\u2334\u2335\x07I\x02\x02\u2335\u2336\x07T\x02" + - "\x02\u2336\u2337\x07G\x02\x02\u2337\u2338\x07G\x02\x02\u2338\u2339\x07" + - "U\x02\x02\u2339\u05EA\x03\x02\x02\x02\u233A\u233B\x07F\x02\x02\u233B\u233C" + - "\x07G\x02\x02\u233C\u233D\x07U\x02\x02\u233D\u233E\x07a\x02\x02\u233E" + - "\u233F\x07F\x02\x02\u233F\u2340\x07G\x02\x02\u2340\u2341\x07E\x02\x02" + - "\u2341\u2342\x07T\x02\x02\u2342\u2343\x07[\x02\x02\u2343\u2344\x07R\x02" + - "\x02\u2344\u2345\x07V\x02\x02\u2345\u05EC\x03\x02\x02\x02\u2346\u2347" + - "\x07F\x02\x02\u2347\u2348\x07G\x02\x02\u2348\u2349\x07U\x02\x02\u2349" + - "\u234A\x07a\x02\x02\u234A\u234B\x07G\x02\x02\u234B\u234C\x07P\x02\x02" + - "\u234C\u234D\x07E\x02\x02\u234D\u234E\x07T\x02\x02\u234E\u234F\x07[\x02" + - "\x02\u234F\u2350\x07R\x02\x02\u2350\u2351\x07V\x02\x02\u2351\u05EE\x03" + - "\x02\x02\x02\u2352\u2353\x07F\x02\x02\u2353\u2354\x07K\x02\x02\u2354\u2355" + - "\x07O\x02\x02\u2355\u2356\x07G\x02\x02\u2356\u2357\x07P\x02\x02\u2357" + - "\u2358\x07U\x02\x02\u2358\u2359\x07K\x02\x02\u2359\u235A\x07Q\x02\x02" + - "\u235A\u235B\x07P\x02\x02\u235B\u05F0\x03\x02\x02\x02\u235C\u235D\x07" + - "F\x02\x02\u235D\u235E\x07K\x02\x02\u235E\u235F\x07U\x02\x02\u235F\u2360" + - "\x07L\x02\x02\u2360\u2361\x07Q\x02\x02\u2361\u2362\x07K\x02\x02\u2362" + - "\u2363\x07P\x02\x02\u2363\u2364\x07V\x02\x02\u2364\u05F2\x03\x02\x02\x02" + - "\u2365\u2366\x07G\x02\x02\u2366\u2367\x07N\x02\x02\u2367\u2368\x07V\x02" + - "\x02\u2368\u05F4\x03\x02\x02\x02\u2369\u236A\x07G\x02\x02\u236A\u236B" + - "\x07P\x02\x02\u236B\u236C\x07E\x02\x02\u236C\u236D\x07Q\x02\x02\u236D" + - "\u236E\x07F\x02\x02\u236E\u236F\x07G\x02\x02\u236F\u05F6\x03\x02\x02\x02" + - "\u2370\u2371\x07G\x02\x02\u2371\u2372\x07P\x02\x02\u2372\u2373\x07E\x02" + - "\x02\u2373\u2374\x07T\x02\x02\u2374\u2375\x07[\x02\x02\u2375\u2376\x07" + - "R\x02\x02\u2376\u2377\x07V\x02\x02\u2377\u05F8\x03\x02\x02\x02\u2378\u2379" + - "\x07G\x02\x02\u2379\u237A\x07P\x02\x02\u237A\u237B\x07F\x02\x02\u237B" + - "\u237C\x07R\x02\x02\u237C\u237D\x07Q\x02\x02\u237D\u237E\x07K\x02\x02" + - "\u237E\u237F\x07P\x02\x02\u237F\u2380\x07V\x02\x02\u2380\u05FA\x03\x02" + - "\x02\x02\u2381\u2382\x07G\x02\x02\u2382\u2383\x07P\x02\x02\u2383\u2384" + - "\x07X\x02\x02\u2384\u2385\x07G\x02\x02\u2385\u2386\x07N\x02\x02\u2386" + - "\u2387\x07Q\x02\x02\u2387\u2388\x07R\x02\x02\u2388\u2389\x07G\x02\x02" + - "\u2389\u05FC\x03\x02\x02\x02\u238A\u238B\x07G\x02\x02\u238B\u238C\x07" + - "S\x02\x02\u238C\u238D\x07W\x02\x02\u238D\u238E\x07C\x02\x02\u238E\u238F" + - "\x07N\x02\x02\u238F\u2390\x07U\x02\x02\u2390\u05FE\x03\x02\x02\x02\u2391" + - "\u2392\x07G\x02\x02\u2392\u2393\x07Z\x02\x02\u2393\u2394\x07R\x02\x02" + - "\u2394\u0600\x03\x02\x02\x02\u2395\u2396\x07G\x02\x02\u2396\u2397\x07" + - "Z\x02\x02\u2397\u2398\x07R\x02\x02\u2398\u2399\x07Q\x02\x02\u2399\u239A" + - "\x07T\x02\x02\u239A\u239B\x07V\x02\x02\u239B\u239C\x07a\x02\x02\u239C" + - "\u239D\x07U\x02\x02\u239D\u239E\x07G\x02\x02\u239E\u239F\x07V\x02\x02" + - "\u239F\u0602\x03\x02\x02\x02\u23A0\u23A1\x07G\x02\x02\u23A1\u23A2\x07" + - "Z\x02\x02\u23A2\u23A3\x07V\x02\x02\u23A3\u23A4\x07G\x02\x02\u23A4\u23A5" + - "\x07T\x02\x02\u23A5\u23A6\x07K\x02\x02\u23A6\u23A7\x07Q\x02\x02\u23A7" + - "\u23A8\x07T\x02\x02\u23A8\u23A9\x07T\x02\x02\u23A9\u23AA\x07K\x02\x02" + - "\u23AA\u23AB\x07P\x02\x02\u23AB\u23AC\x07I\x02\x02\u23AC\u0604\x03\x02" + - "\x02\x02\u23AD\u23AE\x07G\x02\x02\u23AE\u23AF\x07Z\x02\x02\u23AF\u23B0" + - "\x07V\x02\x02\u23B0\u23B1\x07T\x02\x02\u23B1\u23B2\x07C\x02\x02\u23B2" + - "\u23B3\x07E\x02\x02\u23B3\u23B4\x07V\x02\x02\u23B4\u23B5\x07X\x02\x02" + - "\u23B5\u23B6\x07C\x02\x02\u23B6\u23B7\x07N\x02\x02\u23B7\u23B8\x07W\x02" + - "\x02\u23B8\u23B9\x07G\x02\x02\u23B9\u0606\x03\x02\x02\x02\u23BA\u23BB" + - "\x07H\x02\x02\u23BB\u23BC\x07K\x02\x02\u23BC\u23BD\x07G\x02\x02\u23BD" + - "\u23BE\x07N\x02\x02\u23BE\u23BF\x07F\x02\x02\u23BF\u0608\x03\x02\x02\x02" + - "\u23C0\u23C1\x07H\x02\x02\u23C1\u23C2\x07K\x02\x02\u23C2\u23C3\x07P\x02" + - "\x02\u23C3\u23C4\x07F\x02\x02\u23C4\u23C5\x07a\x02\x02\u23C5\u23C6\x07" + - "K\x02\x02\u23C6\u23C7\x07P\x02\x02\u23C7\u23C8\x07a\x02\x02\u23C8\u23C9" + - "\x07U\x02\x02\u23C9\u23CA\x07G\x02\x02\u23CA\u23CB\x07V\x02\x02\u23CB" + - "\u060A\x03\x02\x02\x02\u23CC\u23CD\x07H\x02\x02\u23CD\u23CE\x07N\x02\x02" + - "\u23CE\u23CF\x07Q\x02\x02\u23CF\u23D0\x07Q\x02\x02\u23D0\u23D1\x07T\x02" + - "\x02\u23D1\u060C\x03\x02\x02\x02\u23D2\u23D3\x07H\x02\x02\u23D3\u23D4" + - "\x07Q\x02\x02\u23D4\u23D5\x07T\x02\x02\u23D5\u23D6\x07O\x02\x02\u23D6" + - "\u23D7\x07C\x02\x02\u23D7\u23D8\x07V\x02\x02\u23D8\u060E\x03\x02\x02\x02" + - "\u23D9\u23DA\x07H\x02\x02\u23DA\u23DB\x07Q\x02\x02\u23DB\u23DC\x07W\x02" + - "\x02\u23DC\u23DD\x07P\x02\x02\u23DD\u23DE\x07F\x02\x02\u23DE\u23DF\x07" + - "a\x02\x02\u23DF\u23E0\x07T\x02\x02\u23E0\u23E1\x07Q\x02\x02\u23E1\u23E2" + - "\x07Y\x02\x02\u23E2\u23E3\x07U\x02\x02\u23E3\u0610\x03\x02\x02\x02\u23E4" + - "\u23E5\x07H\x02\x02\u23E5\u23E6\x07T\x02\x02\u23E6\u23E7\x07Q\x02\x02" + - "\u23E7\u23E8\x07O\x02\x02\u23E8\u23E9\x07a\x02\x02\u23E9\u23EA\x07D\x02" + - "\x02\u23EA\u23EB\x07C\x02\x02\u23EB\u23EC\x07U\x02\x02\u23EC\u23ED\x07" + - "G\x02\x02\u23ED\u23EE\x078\x02\x02\u23EE\u23EF\x076\x02\x02\u23EF\u0612" + - "\x03\x02\x02\x02\u23F0\u23F1\x07H\x02\x02\u23F1\u23F2\x07T\x02\x02\u23F2" + - "\u23F3\x07Q\x02\x02\u23F3\u23F4\x07O\x02\x02\u23F4\u23F5\x07a\x02\x02" + - "\u23F5\u23F6\x07F\x02\x02\u23F6\u23F7\x07C\x02\x02\u23F7\u23F8\x07[\x02" + - "\x02\u23F8\u23F9\x07U\x02\x02\u23F9\u0614\x03\x02\x02\x02\u23FA\u23FB" + - "\x07H\x02\x02\u23FB\u23FC\x07T\x02\x02\u23FC\u23FD\x07Q\x02\x02\u23FD" + - "\u23FE\x07O\x02\x02\u23FE\u23FF\x07a\x02\x02\u23FF\u2400\x07W\x02\x02" + - "\u2400\u2401\x07P\x02\x02\u2401\u2402\x07K\x02\x02\u2402\u2403\x07Z\x02" + - "\x02\u2403\u2404\x07V\x02\x02\u2404\u2405\x07K\x02\x02\u2405\u2406\x07" + - "O\x02\x02\u2406\u2407\x07G\x02\x02\u2407\u0616\x03\x02\x02\x02\u2408\u2409" + - "\x07I\x02\x02\u2409\u240A\x07G\x02\x02\u240A\u240B\x07Q\x02\x02\u240B" + - "\u240C\x07O\x02\x02\u240C\u240D\x07E\x02\x02\u240D\u240E\x07Q\x02\x02" + - "\u240E\u240F\x07N\x02\x02\u240F\u2410\x07N\x02\x02\u2410\u2411\x07H\x02" + - "\x02\u2411\u2412\x07T\x02\x02\u2412\u2413\x07Q\x02\x02\u2413\u2414\x07" + - "O\x02\x02\u2414\u2415\x07V\x02\x02\u2415\u2416\x07G\x02\x02\u2416\u2417" + - "\x07Z\x02\x02\u2417\u2418\x07V\x02\x02\u2418\u0618\x03\x02\x02\x02\u2419" + - "\u241A\x07I\x02\x02\u241A\u241B\x07G\x02\x02\u241B\u241C\x07Q\x02\x02" + - "\u241C\u241D\x07O\x02\x02\u241D\u241E\x07E\x02\x02\u241E\u241F\x07Q\x02" + - "\x02\u241F\u2420\x07N\x02\x02\u2420\u2421\x07N\x02\x02\u2421\u2422\x07" + - "H\x02\x02\u2422\u2423\x07T\x02\x02\u2423\u2424\x07Q\x02\x02\u2424\u2425" + - "\x07O\x02\x02\u2425\u2426\x07Y\x02\x02\u2426\u2427\x07M\x02\x02\u2427" + - "\u2428\x07D\x02\x02\u2428\u061A\x03\x02\x02\x02\u2429\u242A\x07I\x02\x02" + - "\u242A\u242B\x07G\x02\x02\u242B\u242C\x07Q\x02\x02\u242C\u242D\x07O\x02" + - "\x02\u242D\u242E\x07G\x02\x02\u242E\u242F\x07V\x02\x02\u242F\u2430\x07" + - "T\x02\x02\u2430\u2431\x07[\x02\x02\u2431\u2432\x07E\x02\x02\u2432\u2433" + - "\x07Q\x02\x02\u2433\u2434\x07N\x02\x02\u2434\u2435\x07N\x02\x02\u2435" + - "\u2436\x07G\x02\x02\u2436\u2437\x07E\x02\x02\u2437\u2438\x07V\x02\x02" + - "\u2438\u2439\x07K\x02\x02\u2439\u243A\x07Q\x02\x02\u243A\u243B\x07P\x02" + - "\x02\u243B\u243C\x07H\x02\x02\u243C\u243D\x07T\x02\x02\u243D\u243E\x07" + - "Q\x02\x02\u243E\u243F\x07O\x02\x02\u243F\u2440\x07V\x02\x02\u2440\u2441" + - "\x07G\x02\x02\u2441\u2442\x07Z\x02\x02\u2442\u2443\x07V\x02\x02\u2443" + - "\u061C\x03\x02\x02\x02\u2444\u2445\x07I\x02\x02\u2445\u2446\x07G\x02\x02" + - "\u2446\u2447\x07Q\x02\x02\u2447\u2448\x07O\x02\x02\u2448\u2449\x07G\x02" + - "\x02\u2449\u244A\x07V\x02\x02\u244A\u244B\x07T\x02\x02\u244B\u244C\x07" + - "[\x02\x02\u244C\u244D\x07E\x02\x02\u244D\u244E\x07Q\x02\x02\u244E\u244F" + - "\x07N\x02\x02\u244F\u2450\x07N\x02\x02\u2450\u2451\x07G\x02\x02\u2451" + - "\u2452\x07E\x02\x02\u2452\u2453\x07V\x02\x02\u2453\u2454\x07K\x02\x02" + - "\u2454\u2455\x07Q\x02\x02\u2455\u2456\x07P\x02\x02\u2456\u2457\x07H\x02" + - "\x02\u2457\u2458\x07T\x02\x02\u2458\u2459\x07Q\x02\x02\u2459\u245A\x07" + - "O\x02\x02\u245A\u245B\x07Y\x02\x02\u245B\u245C\x07M\x02\x02\u245C\u245D" + - "\x07D\x02\x02\u245D\u061E\x03\x02\x02\x02\u245E\u245F\x07I\x02\x02\u245F" + - "\u2460\x07G\x02\x02\u2460\u2461\x07Q\x02\x02\u2461\u2462\x07O\x02\x02" + - "\u2462\u2463\x07G\x02\x02\u2463\u2464\x07V\x02\x02\u2464\u2465\x07T\x02" + - "\x02\u2465\u2466\x07[\x02\x02\u2466\u2467\x07H\x02\x02\u2467\u2468\x07" + - "T\x02\x02\u2468\u2469\x07Q\x02\x02\u2469\u246A\x07O\x02\x02\u246A\u246B" + - "\x07V\x02\x02\u246B\u246C\x07G\x02\x02\u246C\u246D\x07Z\x02\x02\u246D" + - "\u246E\x07V\x02\x02\u246E\u0620\x03\x02\x02\x02\u246F\u2470\x07I\x02\x02" + - "\u2470\u2471\x07G\x02\x02\u2471\u2472\x07Q\x02\x02\u2472\u2473\x07O\x02" + - "\x02\u2473\u2474\x07G\x02\x02\u2474\u2475\x07V\x02\x02\u2475\u2476\x07" + - "T\x02\x02\u2476\u2477\x07[\x02\x02\u2477\u2478\x07H\x02\x02\u2478\u2479" + - "\x07T\x02\x02\u2479\u247A\x07Q\x02\x02\u247A\u247B\x07O\x02\x02\u247B" + - "\u247C\x07Y\x02\x02\u247C\u247D\x07M\x02\x02\u247D\u247E\x07D\x02\x02" + - "\u247E\u0622\x03\x02\x02\x02\u247F\u2480\x07I\x02\x02\u2480\u2481\x07" + - "G\x02\x02\u2481\u2482\x07Q\x02\x02\u2482\u2483\x07O\x02\x02\u2483\u2484" + - "\x07G\x02\x02\u2484\u2485\x07V\x02\x02\u2485\u2486\x07T\x02\x02\u2486" + - "\u2487\x07[\x02\x02\u2487\u2488\x07P\x02\x02\u2488\u0624\x03\x02\x02\x02" + - "\u2489\u248A\x07I\x02\x02\u248A\u248B\x07G\x02\x02\u248B\u248C\x07Q\x02" + - "\x02\u248C\u248D\x07O\x02\x02\u248D\u248E\x07G\x02\x02\u248E\u248F\x07" + - "V\x02\x02\u248F\u2490\x07T\x02\x02\u2490\u2491\x07[\x02\x02\u2491\u2492" + - "\x07V\x02\x02\u2492\u2493\x07[\x02\x02\u2493\u2494\x07R\x02\x02\u2494" + - "\u2495\x07G\x02\x02\u2495\u0626\x03\x02\x02\x02\u2496\u2497\x07I\x02\x02" + - "\u2497\u2498\x07G\x02\x02\u2498\u2499\x07Q\x02\x02\u2499\u249A\x07O\x02" + - "\x02\u249A\u249B\x07H\x02\x02\u249B\u249C\x07T\x02\x02\u249C\u249D\x07" + - "Q\x02\x02\u249D\u249E\x07O\x02\x02\u249E\u249F\x07V\x02\x02\u249F\u24A0" + - "\x07G\x02\x02\u24A0\u24A1\x07Z\x02\x02\u24A1\u24A2\x07V\x02\x02\u24A2" + - "\u0628\x03\x02\x02\x02\u24A3\u24A4\x07I\x02\x02\u24A4\u24A5\x07G\x02\x02" + - "\u24A5\u24A6\x07Q\x02\x02\u24A6\u24A7\x07O\x02\x02\u24A7\u24A8\x07H\x02" + - "\x02\u24A8\u24A9\x07T\x02\x02\u24A9\u24AA\x07Q\x02\x02\u24AA\u24AB\x07" + - "O\x02\x02\u24AB\u24AC\x07Y\x02\x02\u24AC\u24AD\x07M\x02\x02\u24AD\u24AE" + - "\x07D\x02\x02\u24AE\u062A\x03\x02\x02\x02\u24AF\u24B0\x07I\x02\x02\u24B0" + - "\u24B1\x07G\x02\x02\u24B1\u24B2\x07V\x02\x02\u24B2\u24B3\x07a\x02\x02" + - "\u24B3\u24B4\x07H\x02\x02\u24B4\u24B5\x07Q\x02\x02\u24B5\u24B6\x07T\x02" + - "\x02\u24B6\u24B7\x07O\x02\x02\u24B7\u24B8\x07C\x02\x02\u24B8\u24B9\x07" + - "V\x02\x02\u24B9\u062C\x03\x02\x02\x02\u24BA\u24BB\x07I\x02\x02\u24BB\u24BC" + - "\x07G\x02\x02\u24BC\u24BD\x07V\x02\x02\u24BD\u24BE\x07a\x02\x02\u24BE" + - "\u24BF\x07N\x02\x02\u24BF\u24C0\x07Q\x02\x02\u24C0\u24C1\x07E\x02\x02" + - "\u24C1\u24C2\x07M\x02\x02\u24C2\u062E\x03\x02\x02\x02\u24C3\u24C4\x07" + - "I\x02\x02\u24C4\u24C5\x07N\x02\x02\u24C5\u24C6\x07G\x02\x02\u24C6\u24C7" + - "\x07P\x02\x02\u24C7\u24C8\x07I\x02\x02\u24C8\u24C9\x07V\x02\x02\u24C9" + - "\u24CA\x07J\x02\x02\u24CA\u0630\x03\x02\x02\x02\u24CB\u24CC\x07I\x02\x02" + - "\u24CC\u24CD\x07T\x02\x02\u24CD\u24CE\x07G\x02\x02\u24CE\u24CF\x07C\x02" + - "\x02\u24CF\u24D0\x07V\x02\x02\u24D0\u24D1\x07G\x02\x02\u24D1\u24D2\x07" + - "U\x02\x02\u24D2\u24D3\x07V\x02\x02\u24D3\u0632\x03\x02\x02\x02\u24D4\u24D5" + - "\x07I\x02\x02\u24D5\u24D6\x07V\x02\x02\u24D6\u24D7\x07K\x02\x02\u24D7" + - "\u24D8\x07F\x02\x02\u24D8\u24D9\x07a\x02\x02\u24D9\u24DA\x07U\x02\x02" + - "\u24DA\u24DB\x07W\x02\x02\u24DB\u24DC\x07D\x02\x02\u24DC\u24DD\x07U\x02" + - "\x02\u24DD\u24DE\x07G\x02\x02\u24DE\u24DF\x07V\x02\x02\u24DF\u0634\x03" + - "\x02\x02\x02\u24E0\u24E1\x07I\x02\x02\u24E1\u24E2\x07V\x02\x02\u24E2\u24E3" + - "\x07K\x02\x02\u24E3\u24E4\x07F\x02\x02\u24E4\u24E5\x07a\x02\x02\u24E5" + - "\u24E6\x07U\x02\x02\u24E6\u24E7\x07W\x02\x02\u24E7\u24E8\x07D\x02\x02" + - "\u24E8\u24E9\x07V\x02\x02\u24E9\u24EA\x07T\x02\x02\u24EA\u24EB\x07C\x02" + - "\x02\u24EB\u24EC\x07E\x02\x02\u24EC\u24ED\x07V\x02\x02\u24ED\u0636\x03" + - "\x02\x02\x02\u24EE\u24EF\x07J\x02\x02\u24EF\u24F0\x07G\x02\x02\u24F0\u24F1" + - "\x07Z\x02\x02\u24F1\u0638\x03\x02\x02\x02\u24F2\u24F3\x07K\x02\x02\u24F3" + - "\u24F4\x07H\x02\x02\u24F4\u24F5\x07P\x02\x02\u24F5\u24F6\x07W\x02\x02" + - "\u24F6\u24F7\x07N\x02\x02\u24F7\u24F8\x07N\x02\x02\u24F8\u063A\x03\x02" + - "\x02\x02\u24F9\u24FA\x07K\x02\x02\u24FA\u24FB\x07P\x02\x02\u24FB\u24FC" + - "\x07G\x02\x02\u24FC\u24FD\x07V\x02\x02\u24FD\u24FE\x078\x02\x02\u24FE" + - "\u24FF\x07a\x02\x02\u24FF\u2500\x07C\x02\x02\u2500\u2501\x07V\x02\x02" + - "\u2501\u2502\x07Q\x02\x02\u2502\u2503\x07P\x02\x02\u2503\u063C\x03\x02" + - "\x02\x02\u2504\u2505\x07K\x02\x02\u2505\u2506\x07P\x02\x02\u2506\u2507" + - "\x07G\x02\x02\u2507\u2508\x07V\x02\x02\u2508\u2509\x078\x02\x02\u2509" + - "\u250A\x07a\x02\x02\u250A\u250B\x07P\x02\x02\u250B\u250C\x07V\x02\x02" + - "\u250C\u250D\x07Q\x02\x02\u250D\u250E\x07C\x02\x02\u250E\u063E\x03\x02" + - "\x02\x02\u250F\u2510\x07K\x02\x02\u2510\u2511\x07P\x02\x02\u2511\u2512" + - "\x07G\x02\x02\u2512\u2513\x07V\x02\x02\u2513\u2514\x07a\x02\x02\u2514" + - "\u2515\x07C\x02\x02\u2515\u2516\x07V\x02\x02\u2516\u2517\x07Q\x02\x02" + - "\u2517\u2518\x07P\x02\x02\u2518\u0640\x03\x02\x02\x02\u2519\u251A\x07" + - "K\x02\x02\u251A\u251B\x07P\x02\x02\u251B\u251C\x07G\x02\x02\u251C\u251D" + - "\x07V\x02\x02\u251D\u251E\x07a\x02\x02\u251E\u251F\x07P\x02\x02\u251F" + - "\u2520\x07V\x02\x02\u2520\u2521\x07Q\x02\x02\u2521\u2522\x07C\x02\x02" + - "\u2522\u0642\x03\x02\x02\x02\u2523\u2524\x07K\x02\x02\u2524\u2525\x07" + - "P\x02\x02\u2525\u2526\x07U\x02\x02\u2526\u2527\x07V\x02\x02\u2527\u2528" + - "\x07T\x02\x02\u2528\u0644\x03\x02\x02\x02\u2529\u252A\x07K\x02\x02\u252A" + - "\u252B\x07P\x02\x02\u252B\u252C\x07V\x02\x02\u252C\u252D\x07G\x02\x02" + - "\u252D\u252E\x07T\x02\x02\u252E\u252F\x07K\x02\x02\u252F\u2530\x07Q\x02" + - "\x02\u2530\u2531\x07T\x02\x02\u2531\u2532\x07T\x02\x02\u2532\u2533\x07" + - "K\x02\x02\u2533\u2534\x07P\x02\x02\u2534\u2535\x07I\x02\x02\u2535\u2536" + - "\x07P\x02\x02\u2536\u0646\x03\x02\x02\x02\u2537\u2538\x07K\x02\x02\u2538" + - "\u2539\x07P\x02\x02\u2539\u253A\x07V\x02\x02\u253A\u253B\x07G\x02\x02" + - "\u253B\u253C\x07T\x02\x02\u253C\u253D\x07U\x02\x02\u253D\u253E\x07G\x02" + - "\x02\u253E\u253F\x07E\x02\x02\u253F\u2540\x07V\x02\x02\u2540\u2541\x07" + - "U\x02\x02\u2541\u0648\x03\x02\x02\x02\u2542\u2543\x07K\x02\x02\u2543\u2544" + - "\x07U\x02\x02\u2544\u2545\x07E\x02\x02\u2545\u2546\x07N\x02\x02\u2546" + - "\u2547\x07Q\x02\x02\u2547\u2548\x07U\x02\x02\u2548\u2549\x07G\x02\x02" + - "\u2549\u254A\x07F\x02\x02\u254A\u064A\x03\x02\x02\x02\u254B\u254C\x07" + - "K\x02\x02\u254C\u254D\x07U\x02\x02\u254D\u254E\x07G\x02\x02\u254E\u254F" + - "\x07O\x02\x02\u254F\u2550\x07R\x02\x02\u2550\u2551\x07V\x02\x02\u2551" + - "\u2552\x07[\x02\x02\u2552\u064C\x03\x02\x02\x02\u2553\u2554\x07K\x02\x02" + - "\u2554\u2555\x07U\x02\x02\u2555\u2556\x07P\x02\x02\u2556\u2557\x07W\x02" + - "\x02\u2557\u2558\x07N\x02\x02\u2558\u2559\x07N\x02\x02\u2559\u064E\x03" + - "\x02\x02\x02\u255A\u255B\x07K\x02\x02\u255B\u255C\x07"; - private static readonly _serializedATNSegment17: string = - "U\x02\x02\u255C\u255D\x07U\x02\x02\u255D\u255E\x07K\x02\x02\u255E\u255F" + - "\x07O\x02\x02\u255F\u2560\x07R\x02\x02\u2560\u2561\x07N\x02\x02\u2561" + - "\u2562\x07G\x02\x02\u2562\u0650\x03\x02\x02\x02\u2563\u2564\x07K\x02\x02" + - "\u2564\u2565\x07U\x02\x02\u2565\u2566\x07a\x02\x02\u2566\u2567\x07H\x02" + - "\x02\u2567\u2568\x07T\x02\x02\u2568\u2569\x07G\x02\x02\u2569\u256A\x07" + - "G\x02\x02\u256A\u256B\x07a\x02\x02\u256B\u256C\x07N\x02\x02\u256C\u256D" + - "\x07Q\x02\x02\u256D\u256E\x07E\x02\x02\u256E\u256F\x07M\x02\x02\u256F" + - "\u0652\x03\x02\x02\x02\u2570\u2571\x07K\x02\x02\u2571\u2572\x07U\x02\x02" + - "\u2572\u2573\x07a\x02\x02\u2573\u2574\x07K\x02\x02\u2574\u2575\x07R\x02" + - "\x02\u2575\u2576\x07X\x02\x02\u2576\u2577\x076\x02\x02\u2577\u0654\x03" + - "\x02\x02\x02\u2578\u2579\x07K\x02\x02\u2579\u257A\x07U\x02\x02\u257A\u257B" + - "\x07a\x02\x02\u257B\u257C\x07K\x02\x02\u257C\u257D\x07R\x02\x02\u257D" + - "\u257E\x07X\x02\x02\u257E\u257F\x076\x02\x02\u257F\u2580\x07a\x02\x02" + - "\u2580\u2581\x07E\x02\x02\u2581\u2582\x07Q\x02\x02\u2582\u2583\x07O\x02" + - "\x02\u2583\u2584\x07R\x02\x02\u2584\u2585\x07C\x02\x02\u2585\u2586\x07" + - "V\x02\x02\u2586\u0656\x03\x02\x02\x02\u2587\u2588\x07K\x02\x02\u2588\u2589" + - "\x07U\x02\x02\u2589\u258A\x07a\x02\x02\u258A\u258B\x07K\x02\x02\u258B" + - "\u258C\x07R\x02\x02\u258C\u258D\x07X\x02\x02\u258D\u258E\x076\x02\x02" + - "\u258E\u258F\x07a\x02\x02\u258F\u2590\x07O\x02\x02\u2590\u2591\x07C\x02" + - "\x02\u2591\u2592\x07R\x02\x02\u2592\u2593\x07R\x02\x02\u2593\u2594\x07" + - "G\x02\x02\u2594\u2595\x07F\x02\x02\u2595\u0658\x03\x02\x02\x02\u2596\u2597" + - "\x07K\x02\x02\u2597\u2598\x07U\x02\x02\u2598\u2599\x07a\x02\x02\u2599" + - "\u259A\x07K\x02\x02\u259A\u259B\x07R\x02\x02\u259B\u259C\x07X\x02\x02" + - "\u259C\u259D\x078\x02\x02\u259D\u065A\x03\x02\x02\x02\u259E\u259F\x07" + - "K\x02\x02\u259F\u25A0\x07U\x02\x02\u25A0\u25A1\x07a\x02\x02\u25A1\u25A2" + - "\x07W\x02\x02\u25A2\u25A3\x07U\x02\x02\u25A3\u25A4\x07G\x02\x02\u25A4" + - "\u25A5\x07F\x02\x02\u25A5\u25A6\x07a\x02\x02\u25A6\u25A7\x07N\x02\x02" + - "\u25A7\u25A8\x07Q\x02\x02\u25A8\u25A9\x07E\x02\x02\u25A9\u25AA\x07M\x02" + - "\x02\u25AA\u065C\x03\x02\x02\x02\u25AB\u25AC\x07N\x02\x02\u25AC\u25AD" + - "\x07C\x02\x02\u25AD\u25AE\x07U\x02\x02\u25AE\u25AF\x07V\x02\x02\u25AF" + - "\u25B0\x07a\x02\x02\u25B0\u25B1\x07K\x02\x02\u25B1\u25B2\x07P\x02\x02" + - "\u25B2\u25B3\x07U\x02\x02\u25B3\u25B4\x07G\x02\x02\u25B4\u25B5\x07T\x02" + - "\x02\u25B5\u25B6\x07V\x02\x02\u25B6\u25B7\x07a\x02\x02\u25B7\u25B8\x07" + - "K\x02\x02\u25B8\u25B9\x07F\x02\x02\u25B9\u065E\x03\x02\x02\x02\u25BA\u25BB" + - "\x07N\x02\x02\u25BB\u25BC\x07E\x02\x02\u25BC\u25BD\x07C\x02\x02\u25BD" + - "\u25BE\x07U\x02\x02\u25BE\u25BF\x07G\x02\x02\u25BF\u0660\x03\x02\x02\x02" + - "\u25C0\u25C1\x07N\x02\x02\u25C1\u25C2\x07G\x02\x02\u25C2\u25C3\x07C\x02" + - "\x02\u25C3\u25C4\x07U\x02\x02\u25C4\u25C5\x07V\x02\x02\u25C5\u0662\x03" + - "\x02\x02\x02\u25C6\u25C7\x07N\x02\x02\u25C7\u25C8\x07G\x02\x02\u25C8\u25C9" + - "\x07P\x02\x02\u25C9\u25CA\x07I\x02\x02\u25CA\u25CB\x07V\x02\x02\u25CB" + - "\u25CC\x07J\x02\x02\u25CC\u0664\x03\x02\x02\x02\u25CD\u25CE\x07N\x02\x02" + - "\u25CE\u25CF\x07K\x02\x02\u25CF\u25D0\x07P\x02\x02\u25D0\u25D1\x07G\x02" + - "\x02\u25D1\u25D2\x07H\x02\x02\u25D2\u25D3\x07T\x02\x02\u25D3\u25D4\x07" + - "Q\x02\x02\u25D4\u25D5\x07O\x02\x02\u25D5\u25D6\x07V\x02\x02\u25D6\u25D7" + - "\x07G\x02\x02\u25D7\u25D8\x07Z\x02\x02\u25D8\u25D9\x07V\x02\x02\u25D9" + - "\u0666\x03\x02\x02\x02\u25DA\u25DB\x07N\x02\x02\u25DB\u25DC\x07K\x02\x02" + - "\u25DC\u25DD\x07P\x02\x02\u25DD\u25DE\x07G\x02\x02\u25DE\u25DF\x07H\x02" + - "\x02\u25DF\u25E0\x07T\x02\x02\u25E0\u25E1\x07Q\x02\x02\u25E1\u25E2\x07" + - "O\x02\x02\u25E2\u25E3\x07Y\x02\x02\u25E3\u25E4\x07M\x02\x02\u25E4\u25E5" + - "\x07D\x02\x02\u25E5\u0668\x03\x02\x02\x02\u25E6\u25E7\x07N\x02\x02\u25E7" + - "\u25E8\x07K\x02\x02\u25E8\u25E9\x07P\x02\x02\u25E9\u25EA\x07G\x02\x02" + - "\u25EA\u25EB\x07U\x02\x02\u25EB\u25EC\x07V\x02\x02\u25EC\u25ED\x07T\x02" + - "\x02\u25ED\u25EE\x07K\x02\x02\u25EE\u25EF\x07P\x02\x02\u25EF\u25F0\x07" + - "I\x02\x02\u25F0\u25F1\x07H\x02\x02\u25F1\u25F2\x07T\x02\x02\u25F2\u25F3" + - "\x07Q\x02\x02\u25F3\u25F4\x07O\x02\x02\u25F4\u25F5\x07V\x02\x02\u25F5" + - "\u25F6\x07G\x02\x02\u25F6\u25F7\x07Z\x02\x02\u25F7\u25F8\x07V\x02\x02" + - "\u25F8\u066A\x03\x02\x02\x02\u25F9\u25FA\x07N\x02\x02\u25FA\u25FB\x07" + - "K\x02\x02\u25FB\u25FC\x07P\x02\x02\u25FC\u25FD\x07G\x02\x02\u25FD\u25FE" + - "\x07U\x02\x02\u25FE\u25FF\x07V\x02\x02\u25FF\u2600\x07T\x02\x02\u2600" + - "\u2601\x07K\x02\x02\u2601\u2602\x07P\x02\x02\u2602\u2603\x07I\x02\x02" + - "\u2603\u2604\x07H\x02\x02\u2604\u2605\x07T\x02\x02\u2605\u2606\x07Q\x02" + - "\x02\u2606\u2607\x07O\x02\x02\u2607\u2608\x07Y\x02\x02\u2608\u2609\x07" + - "M\x02\x02\u2609\u260A\x07D\x02\x02\u260A\u066C\x03\x02\x02\x02\u260B\u260C" + - "\x07N\x02\x02\u260C\u260D\x07P\x02\x02\u260D\u066E\x03\x02\x02\x02\u260E" + - "\u260F\x07N\x02\x02\u260F\u2610\x07Q\x02\x02\u2610\u2611\x07C\x02\x02" + - "\u2611\u2612\x07F\x02\x02\u2612\u2613\x07a\x02\x02\u2613\u2614\x07H\x02" + - "\x02\u2614\u2615\x07K\x02\x02\u2615\u2616\x07N\x02\x02\u2616\u2617\x07" + - "G\x02\x02\u2617\u0670\x03\x02\x02\x02\u2618\u2619\x07N\x02\x02\u2619\u261A" + - "\x07Q\x02\x02\u261A\u261B\x07E\x02\x02\u261B\u261C\x07C\x02\x02\u261C" + - "\u261D\x07V\x02\x02\u261D\u261E\x07G\x02\x02\u261E\u0672\x03\x02\x02\x02" + - "\u261F\u2620\x07N\x02\x02\u2620\u2621\x07Q\x02\x02\u2621\u2622\x07I\x02" + - "\x02\u2622\u0674\x03\x02\x02\x02\u2623\u2624\x07N\x02\x02\u2624\u2625" + - "\x07Q\x02\x02\u2625\u2626\x07I\x02\x02\u2626\u2627\x073\x02\x02\u2627" + - "\u2628\x072\x02\x02\u2628\u0676\x03\x02\x02\x02\u2629\u262A\x07N\x02\x02" + - "\u262A\u262B\x07Q\x02\x02\u262B\u262C\x07I\x02\x02\u262C\u262D\x074\x02" + - "\x02\u262D\u0678\x03\x02\x02\x02\u262E\u262F\x07N\x02\x02\u262F\u2630" + - "\x07Q\x02\x02\u2630\u2631\x07Y\x02\x02\u2631\u2632\x07G\x02\x02\u2632" + - "\u2633\x07T\x02\x02\u2633\u067A\x03\x02\x02\x02\u2634\u2635\x07N\x02\x02" + - "\u2635\u2636\x07R\x02\x02\u2636\u2637\x07C\x02\x02\u2637\u2638\x07F\x02" + - "\x02\u2638\u067C\x03\x02\x02\x02\u2639\u263A\x07N\x02\x02\u263A\u263B" + - "\x07V\x02\x02\u263B\u263C\x07T\x02\x02\u263C\u263D\x07K\x02\x02\u263D" + - "\u263E\x07O\x02\x02\u263E\u067E\x03\x02\x02\x02\u263F\u2640\x07O\x02\x02" + - "\u2640\u2641\x07C\x02\x02\u2641\u2642\x07M\x02\x02\u2642\u2643\x07G\x02" + - "\x02\u2643\u2644\x07F\x02\x02\u2644\u2645\x07C\x02\x02\u2645\u2646\x07" + - "V\x02\x02\u2646\u2647\x07G\x02\x02\u2647\u0680\x03\x02\x02\x02\u2648\u2649" + - "\x07O\x02\x02\u2649\u264A\x07C\x02\x02\u264A\u264B\x07M\x02\x02\u264B" + - "\u264C\x07G\x02\x02\u264C\u264D\x07V\x02\x02\u264D\u264E\x07K\x02\x02" + - "\u264E\u264F\x07O\x02\x02\u264F\u2650\x07G\x02\x02\u2650\u0682\x03\x02" + - "\x02\x02\u2651\u2652\x07O\x02\x02\u2652\u2653\x07C\x02\x02\u2653\u2654" + - "\x07M\x02\x02\u2654\u2655\x07G\x02\x02\u2655\u2656\x07a\x02\x02\u2656" + - "\u2657\x07U\x02\x02\u2657\u2658\x07G\x02\x02\u2658\u2659\x07V\x02\x02" + - "\u2659\u0684\x03\x02\x02\x02\u265A\u265B\x07O\x02\x02\u265B\u265C\x07" + - "C\x02\x02\u265C\u265D\x07U\x02\x02\u265D\u265E\x07V\x02\x02\u265E\u265F" + - "\x07G\x02\x02\u265F\u2660\x07T\x02\x02\u2660\u2661\x07a\x02\x02\u2661" + - "\u2662\x07R\x02\x02\u2662\u2663\x07Q\x02\x02\u2663\u2664\x07U\x02\x02" + - "\u2664\u2665\x07a\x02\x02\u2665\u2666\x07Y\x02\x02\u2666\u2667\x07C\x02" + - "\x02\u2667\u2668\x07K\x02\x02\u2668\u2669\x07V\x02\x02\u2669\u0686\x03" + - "\x02\x02\x02\u266A\u266B\x07O\x02\x02\u266B\u266C\x07D\x02\x02\u266C\u266D" + - "\x07T\x02\x02\u266D\u266E\x07E\x02\x02\u266E\u266F\x07Q\x02\x02\u266F" + - "\u2670\x07P\x02\x02\u2670\u2671\x07V\x02\x02\u2671\u2672\x07C\x02\x02" + - "\u2672\u2673\x07K\x02\x02\u2673\u2674\x07P\x02\x02\u2674\u2675\x07U\x02" + - "\x02\u2675\u0688\x03\x02\x02\x02\u2676\u2677\x07O\x02\x02\u2677\u2678" + - "\x07D\x02\x02\u2678\u2679\x07T\x02\x02\u2679\u267A\x07F\x02\x02\u267A" + - "\u267B\x07K\x02\x02\u267B\u267C\x07U\x02\x02\u267C\u267D\x07L\x02\x02" + - "\u267D\u267E\x07Q\x02\x02\u267E\u267F\x07K\x02\x02\u267F\u2680\x07P\x02" + - "\x02\u2680\u2681\x07V\x02\x02\u2681\u068A\x03\x02\x02\x02\u2682\u2683" + - "\x07O\x02\x02\u2683\u2684\x07D\x02\x02\u2684\u2685\x07T\x02\x02\u2685" + - "\u2686\x07G\x02\x02\u2686\u2687\x07S\x02\x02\u2687\u2688\x07W\x02\x02" + - "\u2688\u2689\x07C\x02\x02\u2689\u268A\x07N\x02\x02\u268A\u068C\x03\x02" + - "\x02\x02\u268B\u268C\x07O\x02\x02\u268C\u268D\x07D\x02\x02\u268D\u268E" + - "\x07T\x02\x02\u268E\u268F\x07K\x02\x02\u268F\u2690\x07P\x02\x02\u2690" + - "\u2691\x07V\x02\x02\u2691\u2692\x07G\x02\x02\u2692\u2693\x07T\x02\x02" + - "\u2693\u2694\x07U\x02\x02\u2694\u2695\x07G\x02\x02\u2695\u2696\x07E\x02" + - "\x02\u2696\u2697\x07V\x02\x02\u2697\u2698\x07U\x02\x02\u2698\u068E\x03" + - "\x02\x02\x02\u2699\u269A\x07O\x02\x02\u269A\u269B\x07D\x02\x02\u269B\u269C" + - "\x07T\x02\x02\u269C\u269D\x07Q\x02\x02\u269D\u269E\x07X\x02\x02\u269E" + - "\u269F\x07G\x02\x02\u269F\u26A0\x07T\x02\x02\u26A0\u26A1\x07N\x02\x02" + - "\u26A1\u26A2\x07C\x02\x02\u26A2\u26A3\x07R\x02\x02\u26A3\u26A4\x07U\x02" + - "\x02\u26A4\u0690\x03\x02\x02\x02\u26A5\u26A6\x07O\x02\x02\u26A6\u26A7" + - "\x07D\x02\x02\u26A7\u26A8\x07T\x02\x02\u26A8\u26A9\x07V\x02\x02\u26A9" + - "\u26AA\x07Q\x02\x02\u26AA\u26AB\x07W\x02\x02\u26AB\u26AC\x07E\x02\x02" + - "\u26AC\u26AD\x07J\x02\x02\u26AD\u26AE\x07G\x02\x02\u26AE\u26AF\x07U\x02" + - "\x02\u26AF\u0692\x03\x02\x02\x02\u26B0\u26B1\x07O\x02\x02\u26B1\u26B2" + - "\x07D\x02\x02\u26B2\u26B3\x07T\x02\x02\u26B3\u26B4\x07Y\x02\x02\u26B4" + - "\u26B5\x07K\x02\x02\u26B5\u26B6\x07V\x02\x02\u26B6\u26B7\x07J\x02\x02" + - "\u26B7\u26B8\x07K\x02\x02\u26B8\u26B9\x07P\x02\x02\u26B9\u0694\x03\x02" + - "\x02\x02\u26BA\u26BB\x07O\x02\x02\u26BB\u26BC\x07F\x02\x02\u26BC\u26BD" + - "\x077\x02\x02\u26BD\u0696\x03\x02\x02\x02\u26BE\u26BF\x07O\x02\x02\u26BF" + - "\u26C0\x07N\x02\x02\u26C0\u26C1\x07K\x02\x02\u26C1\u26C2\x07P\x02\x02" + - "\u26C2\u26C3\x07G\x02\x02\u26C3\u26C4\x07H\x02\x02\u26C4\u26C5\x07T\x02" + - "\x02\u26C5\u26C6\x07Q\x02\x02\u26C6\u26C7\x07O\x02\x02\u26C7\u26C8\x07" + - "V\x02\x02\u26C8\u26C9\x07G\x02\x02\u26C9\u26CA\x07Z\x02\x02\u26CA\u26CB" + - "\x07V\x02\x02\u26CB\u0698\x03\x02\x02\x02\u26CC\u26CD\x07O\x02\x02\u26CD" + - "\u26CE\x07N\x02\x02\u26CE\u26CF\x07K\x02\x02\u26CF\u26D0\x07P\x02\x02" + - "\u26D0\u26D1\x07G\x02\x02\u26D1\u26D2\x07H\x02\x02\u26D2\u26D3\x07T\x02" + - "\x02\u26D3\u26D4\x07Q\x02\x02\u26D4\u26D5\x07O\x02\x02\u26D5\u26D6\x07" + - "Y\x02\x02\u26D6\u26D7\x07M\x02\x02\u26D7\u26D8\x07D\x02\x02\u26D8\u069A" + - "\x03\x02\x02\x02\u26D9\u26DA\x07O\x02\x02\u26DA\u26DB\x07Q\x02\x02\u26DB" + - "\u26DC\x07P\x02\x02\u26DC\u26DD\x07V\x02\x02\u26DD\u26DE\x07J\x02\x02" + - "\u26DE\u26DF\x07P\x02\x02\u26DF\u26E0\x07C\x02\x02\u26E0\u26E1\x07O\x02" + - "\x02\u26E1\u26E2\x07G\x02\x02\u26E2\u069C\x03\x02\x02\x02\u26E3\u26E4" + - "\x07O\x02\x02\u26E4\u26E5\x07R\x02\x02\u26E5\u26E6\x07Q\x02\x02\u26E6" + - "\u26E7\x07K\x02\x02\u26E7\u26E8\x07P\x02\x02\u26E8\u26E9\x07V\x02\x02" + - "\u26E9\u26EA\x07H\x02\x02\u26EA\u26EB\x07T\x02\x02\u26EB\u26EC\x07Q\x02" + - "\x02\u26EC\u26ED\x07O\x02\x02\u26ED\u26EE\x07V\x02\x02\u26EE\u26EF\x07" + - "G\x02\x02\u26EF\u26F0\x07Z\x02\x02\u26F0\u26F1\x07V\x02\x02\u26F1\u069E" + - "\x03\x02\x02\x02\u26F2\u26F3\x07O\x02\x02\u26F3\u26F4\x07R\x02\x02\u26F4" + - "\u26F5\x07Q\x02\x02\u26F5\u26F6\x07K\x02\x02\u26F6\u26F7\x07P\x02\x02" + - "\u26F7\u26F8\x07V\x02\x02\u26F8\u26F9\x07H\x02\x02\u26F9\u26FA\x07T\x02" + - "\x02\u26FA\u26FB\x07Q\x02\x02\u26FB\u26FC\x07O\x02\x02\u26FC\u26FD\x07" + - "Y\x02\x02\u26FD\u26FE\x07M\x02\x02\u26FE\u26FF\x07D\x02\x02\u26FF\u06A0" + - "\x03\x02\x02\x02\u2700\u2701\x07O\x02\x02\u2701\u2702\x07R\x02\x02\u2702" + - "\u2703\x07Q\x02\x02\u2703\u2704\x07N\x02\x02\u2704\u2705\x07[\x02\x02" + - "\u2705\u2706\x07H\x02\x02\u2706\u2707\x07T\x02\x02\u2707\u2708\x07Q\x02" + - "\x02\u2708\u2709\x07O\x02\x02\u2709\u270A\x07V\x02\x02\u270A\u270B\x07" + - "G\x02\x02\u270B\u270C\x07Z\x02\x02\u270C\u270D\x07V\x02\x02\u270D\u06A2" + - "\x03\x02\x02\x02\u270E\u270F\x07O\x02\x02\u270F\u2710\x07R\x02\x02\u2710" + - "\u2711\x07Q\x02\x02\u2711\u2712\x07N\x02\x02\u2712\u2713\x07[\x02\x02" + - "\u2713\u2714\x07H\x02\x02\u2714\u2715\x07T\x02\x02\u2715\u2716\x07Q\x02" + - "\x02\u2716\u2717\x07O\x02\x02\u2717\u2718\x07Y\x02\x02\u2718\u2719\x07" + - "M\x02\x02\u2719\u271A\x07D\x02\x02\u271A\u06A4\x03\x02\x02\x02\u271B\u271C" + - "\x07O\x02\x02\u271C\u271D\x07W\x02\x02\u271D\u271E\x07N\x02\x02\u271E" + - "\u271F\x07V\x02\x02\u271F\u2720\x07K\x02\x02\u2720\u2721\x07N\x02\x02" + - "\u2721\u2722\x07K\x02\x02\u2722\u2723\x07P\x02\x02\u2723\u2724\x07G\x02" + - "\x02\u2724\u2725\x07U\x02\x02\u2725\u2726\x07V\x02\x02\u2726\u2727\x07" + - "T\x02\x02\u2727\u2728\x07K\x02\x02\u2728\u2729\x07P\x02\x02\u2729\u272A" + - "\x07I\x02\x02\u272A\u272B\x07H\x02\x02\u272B\u272C\x07T\x02\x02\u272C" + - "\u272D\x07Q\x02\x02\u272D\u272E\x07O\x02\x02\u272E\u272F\x07V\x02\x02" + - "\u272F\u2730\x07G\x02\x02\u2730\u2731\x07Z\x02\x02\u2731\u2732\x07V\x02" + - "\x02\u2732\u06A6\x03\x02\x02\x02\u2733\u2734\x07O\x02\x02\u2734\u2735" + - "\x07W\x02\x02\u2735\u2736\x07N\x02\x02\u2736\u2737\x07V\x02\x02\u2737" + - "\u2738\x07K\x02\x02\u2738\u2739\x07N\x02\x02\u2739\u273A\x07K\x02\x02" + - "\u273A\u273B\x07P\x02\x02\u273B\u273C\x07G\x02\x02\u273C\u273D\x07U\x02" + - "\x02\u273D\u273E\x07V\x02\x02\u273E\u273F\x07T\x02\x02\u273F\u2740\x07" + - "K\x02\x02\u2740\u2741\x07P\x02\x02\u2741\u2742\x07I\x02\x02\u2742\u2743" + - "\x07H\x02\x02\u2743\u2744\x07T\x02\x02\u2744\u2745\x07Q\x02\x02\u2745" + - "\u2746\x07O\x02\x02\u2746\u2747\x07Y\x02\x02\u2747\u2748\x07M\x02\x02" + - "\u2748\u2749\x07D\x02\x02\u2749\u06A8\x03\x02\x02\x02\u274A\u274B\x07" + - "O\x02\x02\u274B\u274C\x07W\x02\x02\u274C\u274D\x07N\x02\x02\u274D\u274E" + - "\x07V\x02\x02\u274E\u274F\x07K\x02\x02\u274F\u2750\x07R\x02\x02\u2750" + - "\u2751\x07Q\x02\x02\u2751\u2752\x07K\x02\x02\u2752\u2753\x07P\x02\x02" + - "\u2753\u2754\x07V\x02\x02\u2754\u2755\x07H\x02\x02\u2755\u2756\x07T\x02" + - "\x02\u2756\u2757\x07Q\x02\x02\u2757\u2758\x07O\x02\x02\u2758\u2759\x07" + - "V\x02\x02\u2759\u275A\x07G\x02\x02\u275A\u275B\x07Z\x02\x02\u275B\u275C" + - "\x07V\x02\x02\u275C\u06AA\x03\x02\x02\x02\u275D\u275E\x07O\x02\x02\u275E" + - "\u275F\x07W\x02\x02\u275F\u2760\x07N\x02\x02\u2760\u2761\x07V\x02\x02" + - "\u2761\u2762\x07K\x02\x02\u2762\u2763\x07R\x02\x02\u2763\u2764\x07Q\x02" + - "\x02\u2764\u2765\x07K\x02\x02\u2765\u2766\x07P\x02\x02\u2766\u2767\x07" + - "V\x02\x02\u2767\u2768\x07H\x02\x02\u2768\u2769\x07T\x02\x02\u2769\u276A" + - "\x07Q\x02\x02\u276A\u276B\x07O\x02\x02\u276B\u276C\x07Y\x02\x02\u276C" + - "\u276D\x07M\x02\x02\u276D\u276E\x07D\x02\x02\u276E\u06AC\x03\x02\x02\x02" + - "\u276F\u2770\x07O\x02\x02\u2770\u2771\x07W\x02\x02\u2771\u2772\x07N\x02" + - "\x02\u2772\u2773\x07V\x02\x02\u2773\u2774\x07K\x02\x02\u2774\u2775\x07" + - "R\x02\x02\u2775\u2776\x07Q\x02\x02\u2776\u2777\x07N\x02\x02\u2777\u2778" + - "\x07[\x02\x02\u2778\u2779\x07I\x02\x02\u2779\u277A\x07Q\x02\x02\u277A" + - "\u277B\x07P\x02\x02\u277B\u277C\x07H\x02\x02\u277C\u277D\x07T\x02\x02" + - "\u277D\u277E\x07Q\x02\x02\u277E\u277F\x07O\x02\x02\u277F\u2780\x07V\x02" + - "\x02\u2780\u2781\x07G\x02\x02\u2781\u2782\x07Z\x02\x02\u2782\u2783\x07" + - "V\x02\x02\u2783\u06AE\x03\x02\x02\x02\u2784\u2785\x07O\x02\x02\u2785\u2786" + - "\x07W\x02\x02\u2786\u2787\x07N\x02\x02\u2787\u2788\x07V\x02\x02\u2788" + - "\u2789\x07K\x02\x02\u2789\u278A\x07R\x02\x02\u278A\u278B\x07Q\x02\x02" + - "\u278B\u278C\x07N\x02\x02\u278C\u278D\x07[\x02\x02\u278D\u278E\x07I\x02" + - "\x02\u278E\u278F\x07Q\x02\x02\u278F\u2790\x07P\x02\x02\u2790\u2791\x07" + - "H\x02\x02\u2791\u2792\x07T\x02\x02\u2792\u2793\x07Q\x02\x02\u2793\u2794" + - "\x07O\x02\x02\u2794\u2795\x07Y\x02\x02\u2795\u2796\x07M\x02\x02\u2796" + - "\u2797\x07D\x02\x02\u2797\u06B0\x03\x02\x02\x02\u2798\u2799\x07P\x02\x02" + - "\u2799\u279A\x07C\x02\x02\u279A\u279B\x07O\x02\x02\u279B\u279C\x07G\x02" + - "\x02\u279C\u279D\x07a\x02\x02\u279D\u279E\x07E\x02\x02\u279E\u279F\x07" + - "Q\x02\x02\u279F\u27A0\x07P\x02\x02\u27A0\u27A1\x07U\x02\x02\u27A1\u27A2" + - "\x07V\x02\x02\u27A2\u06B2\x03\x02\x02\x02\u27A3\u27A4\x07P\x02\x02\u27A4" + - "\u27A5\x07W\x02\x02\u27A5\u27A6\x07N\x02\x02\u27A6\u27A7\x07N\x02\x02" + - "\u27A7\u27A8\x07K\x02\x02\u27A8\u27A9\x07H\x02\x02\u27A9\u06B4\x03\x02" + - "\x02\x02\u27AA\u27AB\x07P\x02\x02\u27AB\u27AC\x07W\x02\x02\u27AC\u27AD" + - "\x07O\x02\x02\u27AD\u27AE\x07I\x02\x02\u27AE\u27AF\x07G\x02\x02\u27AF" + - "\u27B0\x07Q\x02\x02\u27B0\u27B1\x07O\x02\x02\u27B1\u27B2\x07G\x02\x02" + - "\u27B2\u27B3\x07V\x02\x02\u27B3\u27B4\x07T\x02\x02\u27B4\u27B5\x07K\x02" + - "\x02\u27B5\u27B6\x07G\x02\x02\u27B6\u27B7\x07U\x02\x02\u27B7\u06B6\x03" + - "\x02\x02\x02\u27B8\u27B9\x07P\x02\x02\u27B9\u27BA\x07W\x02\x02\u27BA\u27BB" + - "\x07O\x02\x02\u27BB\u27BC\x07K\x02\x02\u27BC\u27BD\x07P\x02\x02\u27BD" + - "\u27BE\x07V\x02\x02\u27BE\u27BF\x07G\x02\x02\u27BF\u27C0\x07T\x02\x02" + - "\u27C0\u27C1\x07K\x02\x02\u27C1\u27C2\x07Q\x02\x02\u27C2\u27C3\x07T\x02" + - "\x02\u27C3\u27C4\x07T\x02\x02\u27C4\u27C5\x07K\x02\x02\u27C5\u27C6\x07" + - "P\x02\x02\u27C6\u27C7\x07I\x02\x02\u27C7\u27C8\x07U\x02\x02\u27C8\u06B8" + - "\x03\x02\x02\x02\u27C9\u27CA\x07P\x02\x02\u27CA\u27CB\x07W\x02\x02\u27CB" + - "\u27CC\x07O\x02\x02\u27CC\u27CD\x07R\x02\x02\u27CD\u27CE\x07Q\x02\x02" + - "\u27CE\u27CF\x07K\x02\x02\u27CF\u27D0\x07P\x02\x02\u27D0\u27D1\x07V\x02" + - "\x02\u27D1\u27D2\x07U\x02\x02\u27D2\u06BA\x03\x02\x02\x02\u27D3\u27D4" + - "\x07Q\x02\x02\u27D4\u27D5\x07E\x02\x02\u27D5\u27D6\x07V\x02\x02\u27D6" + - "\u06BC\x03\x02\x02\x02\u27D7\u27D8\x07Q\x02\x02\u27D8\u27D9\x07E\x02\x02" + - "\u27D9\u27DA\x07V\x02\x02\u27DA\u27DB\x07G\x02\x02\u27DB\u27DC\x07V\x02" + - "\x02\u27DC\u27DD\x07a\x02\x02\u27DD\u27DE\x07N\x02\x02\u27DE\u27DF\x07" + - "G\x02\x02\u27DF\u27E0\x07P\x02\x02\u27E0\u27E1\x07I\x02\x02\u27E1\u27E2" + - "\x07V\x02\x02\u27E2\u27E3\x07J\x02\x02\u27E3\u06BE\x03\x02\x02\x02\u27E4" + - "\u27E5\x07Q\x02\x02\u27E5\u27E6\x07T\x02\x02\u27E6\u27E7\x07F\x02\x02" + - "\u27E7\u06C0\x03\x02\x02\x02\u27E8\u27E9\x07Q\x02\x02\u27E9\u27EA\x07" + - "X\x02\x02\u27EA\u27EB\x07G\x02\x02\u27EB\u27EC\x07T\x02\x02\u27EC\u27ED" + - "\x07N\x02\x02\u27ED\u27EE\x07C\x02\x02\u27EE\u27EF\x07R\x02\x02\u27EF" + - "\u27F0\x07U\x02\x02\u27F0\u06C2\x03\x02\x02\x02\u27F1\u27F2\x07R\x02\x02" + - "\u27F2\u27F3\x07G\x02\x02\u27F3\u27F4\x07T\x02\x02\u27F4\u27F5\x07K\x02" + - "\x02\u27F5\u27F6\x07Q\x02\x02\u27F6\u27F7\x07F\x02\x02\u27F7\u27F8\x07" + - "a\x02\x02\u27F8\u27F9\x07C\x02\x02\u27F9\u27FA\x07F\x02\x02\u27FA\u27FB" + - "\x07F\x02\x02\u27FB\u06C4\x03\x02\x02\x02\u27FC\u27FD\x07R\x02\x02\u27FD" + - "\u27FE\x07G\x02\x02\u27FE\u27FF\x07T\x02\x02\u27FF\u2800\x07K\x02\x02" + - "\u2800\u2801\x07Q\x02\x02\u2801\u2802\x07F\x02\x02\u2802\u2803\x07a\x02" + - "\x02\u2803\u2804\x07F\x02\x02\u2804\u2805\x07K\x02\x02\u2805\u2806\x07" + - "H\x02\x02\u2806\u2807\x07H\x02\x02\u2807\u06C6\x03\x02\x02\x02\u2808\u2809" + - "\x07R\x02\x02\u2809\u280A\x07K\x02\x02\u280A\u06C8\x03\x02\x02\x02\u280B" + - "\u280C\x07R\x02\x02\u280C\u280D\x07Q\x02\x02\u280D\u280E\x07K\x02\x02" + - "\u280E\u280F\x07P\x02\x02\u280F\u2810\x07V\x02\x02\u2810\u2811\x07H\x02" + - "\x02\u2811\u2812\x07T\x02\x02\u2812\u2813\x07Q\x02\x02\u2813\u2814\x07" + - "O\x02\x02\u2814\u2815\x07V\x02\x02\u2815\u2816\x07G\x02\x02\u2816\u2817" + - "\x07Z\x02\x02\u2817\u2818\x07V\x02\x02\u2818\u06CA\x03\x02\x02\x02\u2819" + - "\u281A\x07R\x02\x02\u281A\u281B\x07Q\x02\x02\u281B\u281C\x07K\x02\x02" + - "\u281C\u281D\x07P\x02\x02\u281D\u281E\x07V\x02\x02\u281E\u281F\x07H\x02" + - "\x02\u281F\u2820\x07T\x02\x02\u2820\u2821\x07Q\x02\x02\u2821\u2822\x07" + - "O\x02\x02\u2822\u2823\x07Y\x02\x02\u2823\u2824\x07M\x02\x02\u2824\u2825" + - "\x07D\x02\x02\u2825\u06CC\x03\x02\x02\x02\u2826\u2827\x07R\x02\x02\u2827" + - "\u2828\x07Q\x02\x02\u2828\u2829\x07K\x02\x02\u2829\u282A\x07P\x02\x02" + - "\u282A\u282B\x07V\x02\x02\u282B\u282C\x07P\x02\x02\u282C\u06CE\x03\x02" + - "\x02\x02\u282D\u282E\x07R\x02\x02\u282E\u282F\x07Q\x02\x02\u282F\u2830" + - "\x07N\x02\x02\u2830\u2831\x07[\x02\x02\u2831\u2832\x07H\x02\x02\u2832" + - "\u2833\x07T\x02\x02\u2833\u2834\x07Q\x02\x02\u2834\u2835\x07O\x02\x02" + - "\u2835\u2836\x07V\x02\x02\u2836\u2837\x07G\x02\x02\u2837\u2838\x07Z\x02" + - "\x02\u2838\u2839\x07V\x02\x02\u2839\u06D0\x03\x02\x02\x02\u283A\u283B" + - "\x07R\x02\x02\u283B\u283C\x07Q\x02\x02\u283C\u283D\x07N\x02\x02\u283D" + - "\u283E\x07[\x02\x02\u283E\u283F\x07H\x02\x02\u283F\u2840\x07T\x02\x02" + - "\u2840\u2841\x07Q\x02\x02\u2841\u2842\x07O\x02\x02\u2842\u2843\x07Y\x02" + - "\x02\u2843\u2844\x07M\x02\x02\u2844\u2845\x07D\x02\x02\u2845\u06D2\x03" + - "\x02\x02\x02\u2846\u2847\x07R\x02\x02\u2847\u2848\x07Q\x02\x02\u2848\u2849" + - "\x07N\x02\x02\u2849\u284A\x07[\x02\x02\u284A\u284B\x07I\x02\x02\u284B" + - "\u284C\x07Q\x02\x02\u284C\u284D\x07P\x02\x02\u284D\u284E\x07H\x02\x02" + - "\u284E\u284F\x07T\x02\x02\u284F\u2850\x07Q\x02\x02\u2850\u2851\x07O\x02" + - "\x02\u2851\u2852\x07V\x02\x02\u2852\u2853\x07G\x02\x02\u2853\u2854\x07" + - "Z\x02\x02\u2854\u2855\x07V\x02\x02\u2855\u06D4\x03\x02\x02\x02\u2856\u2857" + - "\x07R\x02\x02\u2857\u2858\x07Q\x02\x02\u2858\u2859\x07N\x02\x02\u2859" + - "\u285A\x07[\x02\x02\u285A\u285B\x07I\x02\x02\u285B\u285C\x07Q\x02\x02" + - "\u285C\u285D\x07P\x02\x02\u285D\u285E\x07H\x02\x02\u285E\u285F\x07T\x02" + - "\x02\u285F\u2860\x07Q\x02\x02\u2860\u2861\x07O\x02\x02\u2861\u2862\x07" + - "Y\x02\x02\u2862\u2863\x07M\x02\x02\u2863\u2864\x07D\x02\x02\u2864\u06D6" + - "\x03\x02\x02\x02\u2865\u2866\x07R\x02\x02\u2866\u2867\x07Q\x02\x02\u2867" + - "\u2868\x07Y\x02\x02\u2868\u06D8\x03\x02\x02\x02\u2869\u286A\x07R\x02\x02" + - "\u286A\u286B\x07Q\x02\x02\u286B\u286C\x07Y\x02\x02\u286C\u286D\x07G\x02" + - "\x02\u286D\u286E\x07T\x02\x02\u286E\u06DA\x03\x02\x02\x02\u286F\u2870" + - "\x07S\x02\x02\u2870\u2871\x07W\x02\x02\u2871\u2872\x07Q\x02\x02\u2872" + - "\u2873\x07V\x02\x02\u2873\u2874\x07G\x02\x02\u2874\u06DC\x03\x02\x02\x02" + - "\u2875\u2876\x07T\x02\x02\u2876\u2877\x07C\x02\x02\u2877\u2878\x07F\x02" + - "\x02\u2878\u2879\x07K\x02\x02\u2879\u287A\x07C\x02\x02\u287A\u287B\x07" + - "P\x02\x02\u287B\u287C\x07U\x02\x02\u287C\u06DE\x03\x02\x02\x02\u287D\u287E" + - "\x07T\x02\x02\u287E\u287F\x07C\x02\x02\u287F\u2880\x07P\x02\x02\u2880" + - "\u2881\x07F\x02\x02\u2881\u06E0\x03\x02\x02\x02\u2882\u2883\x07T\x02\x02" + - "\u2883\u2884\x07C\x02\x02\u2884\u2885\x07P\x02\x02\u2885\u2886\x07F\x02" + - "\x02\u2886\u2887\x07Q\x02\x02\u2887\u2888\x07O\x02\x02\u2888\u2889\x07" + - "a\x02\x02\u2889\u288A\x07D\x02\x02\u288A\u288B\x07[\x02\x02\u288B\u288C" + - "\x07V\x02\x02\u288C\u288D\x07G\x02\x02\u288D\u288E\x07U\x02\x02\u288E" + - "\u06E2\x03\x02\x02\x02\u288F\u2890\x07T\x02\x02\u2890\u2891\x07G\x02\x02" + - "\u2891\u2892\x07N\x02\x02\u2892\u2893\x07G\x02\x02\u2893\u2894\x07C\x02" + - "\x02\u2894\u2895\x07U\x02\x02\u2895\u2896\x07G\x02\x02\u2896\u2897\x07" + - "a\x02\x02\u2897\u2898\x07N\x02\x02\u2898\u2899\x07Q\x02\x02\u2899\u289A" + - "\x07E\x02\x02\u289A\u289B\x07M\x02\x02\u289B\u06E4\x03\x02\x02\x02\u289C" + - "\u289D\x07T\x02"; - private static readonly _serializedATNSegment18: string = - "\x02\u289D\u289E\x07G\x02\x02\u289E\u289F\x07X\x02\x02\u289F\u28A0\x07" + - "G\x02\x02\u28A0\u28A1\x07T\x02\x02\u28A1\u28A2\x07U\x02\x02\u28A2\u28A3" + - "\x07G\x02\x02\u28A3\u06E6\x03\x02\x02\x02\u28A4\u28A5\x07T\x02\x02\u28A5" + - "\u28A6\x07Q\x02\x02\u28A6\u28A7\x07W\x02\x02\u28A7\u28A8\x07P\x02\x02" + - "\u28A8\u28A9\x07F\x02\x02\u28A9\u06E8\x03\x02\x02\x02\u28AA\u28AB\x07" + - "T\x02\x02\u28AB\u28AC\x07Q\x02\x02\u28AC\u28AD\x07Y\x02\x02\u28AD\u28AE" + - "\x07a\x02\x02\u28AE\u28AF\x07E\x02\x02\u28AF\u28B0\x07Q\x02\x02\u28B0" + - "\u28B1\x07W\x02\x02\u28B1\u28B2\x07P\x02\x02\u28B2\u28B3\x07V\x02\x02" + - "\u28B3\u06EA\x03\x02\x02\x02\u28B4\u28B5\x07T\x02\x02\u28B5\u28B6\x07" + - "R\x02\x02\u28B6\u28B7\x07C\x02\x02\u28B7\u28B8\x07F\x02\x02\u28B8\u06EC" + - "\x03\x02\x02\x02\u28B9\u28BA\x07T\x02\x02\u28BA\u28BB\x07V\x02\x02\u28BB" + - "\u28BC\x07T\x02\x02\u28BC\u28BD\x07K\x02\x02\u28BD\u28BE\x07O\x02\x02" + - "\u28BE\u06EE\x03\x02\x02\x02\u28BF\u28C0\x07U\x02\x02\u28C0\u28C1\x07" + - "G\x02\x02\u28C1\u28C2\x07E\x02\x02\u28C2\u28C3\x07a\x02\x02\u28C3\u28C4" + - "\x07V\x02\x02\u28C4\u28C5\x07Q\x02\x02\u28C5\u28C6\x07a\x02\x02\u28C6" + - "\u28C7\x07V\x02\x02\u28C7\u28C8\x07K\x02\x02\u28C8\u28C9\x07O\x02\x02" + - "\u28C9\u28CA\x07G\x02\x02\u28CA\u06F0\x03\x02\x02\x02\u28CB\u28CC\x07" + - "U\x02\x02\u28CC\u28CD\x07G\x02\x02\u28CD\u28CE\x07U\x02\x02\u28CE\u28CF" + - "\x07U\x02\x02\u28CF\u28D0\x07K\x02\x02\u28D0\u28D1\x07Q\x02\x02\u28D1" + - "\u28D2\x07P\x02\x02\u28D2\u28D3\x07a\x02\x02\u28D3\u28D4\x07W\x02\x02" + - "\u28D4\u28D5\x07U\x02\x02\u28D5\u28D6\x07G\x02\x02\u28D6\u28D7\x07T\x02" + - "\x02\u28D7\u06F2\x03\x02\x02\x02\u28D8\u28D9\x07U\x02\x02\u28D9\u28DA" + - "\x07J\x02\x02\u28DA\u28DB\x07C\x02\x02\u28DB\u06F4\x03\x02\x02\x02\u28DC" + - "\u28DD\x07U\x02\x02\u28DD\u28DE\x07J\x02\x02\u28DE\u28DF\x07C\x02\x02" + - "\u28DF\u28E0\x073\x02\x02\u28E0\u06F6\x03\x02\x02\x02\u28E1\u28E2\x07" + - "U\x02\x02\u28E2\u28E3\x07J\x02\x02\u28E3\u28E4\x07C\x02\x02\u28E4\u28E5" + - "\x074\x02\x02\u28E5\u06F8\x03\x02\x02\x02\u28E6\u28E7\x07U\x02\x02\u28E7" + - "\u28E8\x07E\x02\x02\u28E8\u28E9\x07J\x02\x02\u28E9\u28EA\x07G\x02\x02" + - "\u28EA\u28EB\x07O\x02\x02\u28EB\u28EC\x07C\x02\x02\u28EC\u28ED\x07a\x02" + - "\x02\u28ED\u28EE\x07P\x02\x02\u28EE\u28EF\x07C\x02\x02\u28EF\u28F0\x07" + - "O\x02\x02\u28F0\u28F1\x07G\x02\x02\u28F1\u06FA\x03\x02\x02\x02\u28F2\u28F3" + - "\x07U\x02\x02\u28F3\u28F4\x07K\x02\x02\u28F4\u28F5\x07I\x02\x02\u28F5" + - "\u28F6\x07P\x02\x02\u28F6\u06FC\x03\x02\x02\x02\u28F7\u28F8\x07U\x02\x02" + - "\u28F8\u28F9\x07K\x02\x02\u28F9\u28FA\x07P\x02\x02\u28FA\u06FE\x03\x02" + - "\x02\x02\u28FB\u28FC\x07U\x02\x02\u28FC\u28FD\x07N\x02\x02\u28FD\u28FE" + - "\x07G\x02\x02\u28FE\u28FF\x07G\x02\x02\u28FF\u2900\x07R\x02\x02\u2900" + - "\u0700\x03\x02\x02\x02\u2901\u2902\x07U\x02\x02\u2902\u2903\x07Q\x02\x02" + - "\u2903\u2904\x07W\x02\x02\u2904\u2905\x07P\x02\x02\u2905\u2906\x07F\x02" + - "\x02\u2906\u2907\x07G\x02\x02\u2907\u2908\x07Z\x02\x02\u2908\u0702\x03" + - "\x02\x02\x02\u2909\u290A\x07U\x02\x02\u290A\u290B\x07S\x02\x02\u290B\u290C" + - "\x07N\x02\x02\u290C\u290D\x07a\x02\x02\u290D\u290E\x07V\x02\x02\u290E" + - "\u290F\x07J\x02\x02\u290F\u2910\x07T\x02\x02\u2910\u2911\x07G\x02\x02" + - "\u2911\u2912\x07C\x02\x02\u2912\u2913\x07F\x02\x02\u2913\u2914\x07a\x02" + - "\x02\u2914\u2915\x07Y\x02\x02\u2915\u2916\x07C\x02\x02\u2916\u2917\x07" + - "K\x02\x02\u2917\u2918\x07V\x02\x02\u2918\u2919\x07a\x02\x02\u2919\u291A" + - "\x07C\x02\x02\u291A\u291B\x07H\x02\x02\u291B\u291C\x07V\x02\x02\u291C" + - "\u291D\x07G\x02\x02\u291D\u291E\x07T\x02\x02\u291E\u291F\x07a\x02\x02" + - "\u291F\u2920\x07I\x02\x02\u2920\u2921\x07V\x02\x02\u2921\u2922\x07K\x02" + - "\x02\u2922\u2923\x07F\x02\x02\u2923\u2924\x07U\x02\x02\u2924\u0704\x03" + - "\x02\x02\x02\u2925\u2926\x07U\x02\x02\u2926\u2927\x07S\x02\x02\u2927\u2928" + - "\x07T\x02\x02\u2928\u2929\x07V\x02\x02\u2929\u0706\x03\x02\x02\x02\u292A" + - "\u292B\x07U\x02\x02\u292B\u292C\x07T\x02\x02\u292C\u292D\x07K\x02\x02" + - "\u292D\u292E\x07F\x02\x02\u292E\u0708\x03\x02\x02\x02\u292F\u2930\x07" + - "U\x02\x02\u2930\u2931\x07V\x02\x02\u2931\u2932\x07C\x02\x02\u2932\u2933" + - "\x07T\x02\x02\u2933\u2934\x07V\x02\x02\u2934\u2935\x07R\x02\x02\u2935" + - "\u2936\x07Q\x02\x02\u2936\u2937\x07K\x02\x02\u2937\u2938\x07P\x02\x02" + - "\u2938\u2939\x07V\x02\x02\u2939\u070A\x03\x02\x02\x02\u293A\u293B\x07" + - "U\x02\x02\u293B\u293C\x07V\x02\x02\u293C\u293D\x07T\x02\x02\u293D\u293E" + - "\x07E\x02\x02\u293E\u293F\x07O\x02\x02\u293F\u2940\x07R\x02\x02\u2940" + - "\u070C\x03\x02\x02\x02\u2941\u2942\x07U\x02\x02\u2942\u2943\x07V\x02\x02" + - "\u2943\u2944\x07T\x02\x02\u2944\u2945\x07a\x02\x02\u2945\u2946\x07V\x02" + - "\x02\u2946\u2947\x07Q\x02\x02\u2947\u2948\x07a\x02\x02\u2948\u2949\x07" + - "F\x02\x02\u2949\u294A\x07C\x02\x02\u294A\u294B\x07V\x02\x02\u294B\u294C" + - "\x07G\x02\x02\u294C\u070E\x03\x02\x02\x02\u294D\u294E\x07U\x02\x02\u294E" + - "\u294F\x07V\x02\x02\u294F\u2950\x07a\x02\x02\u2950\u2951\x07C\x02\x02" + - "\u2951\u2952\x07T\x02\x02\u2952\u2953\x07G\x02\x02\u2953\u2954\x07C\x02" + - "\x02\u2954\u0710\x03\x02\x02\x02\u2955\u2956\x07U\x02\x02\u2956\u2957" + - "\x07V\x02\x02\u2957\u2958\x07a\x02\x02\u2958\u2959\x07C\x02\x02\u2959" + - "\u295A\x07U\x02\x02\u295A\u295B\x07D\x02\x02\u295B\u295C\x07K\x02\x02" + - "\u295C\u295D\x07P\x02\x02\u295D\u295E\x07C\x02\x02\u295E\u295F\x07T\x02" + - "\x02\u295F\u2960\x07[\x02\x02\u2960\u0712\x03\x02\x02\x02\u2961\u2962" + - "\x07U\x02\x02\u2962\u2963\x07V\x02\x02\u2963\u2964\x07a\x02\x02\u2964" + - "\u2965\x07C\x02\x02\u2965\u2966\x07U\x02\x02\u2966\u2967\x07V\x02\x02" + - "\u2967\u2968\x07G\x02\x02\u2968\u2969\x07Z\x02\x02\u2969\u296A\x07V\x02" + - "\x02\u296A\u0714\x03\x02\x02\x02\u296B\u296C\x07U\x02\x02\u296C\u296D" + - "\x07V\x02\x02\u296D\u296E\x07a\x02\x02\u296E\u296F\x07C\x02\x02\u296F" + - "\u2970\x07U\x02\x02\u2970\u2971\x07Y\x02\x02\u2971\u2972\x07M\x02\x02" + - "\u2972\u2973\x07D\x02\x02\u2973\u0716\x03\x02\x02\x02\u2974\u2975\x07" + - "U\x02\x02\u2975\u2976\x07V\x02\x02\u2976\u2977\x07a\x02\x02\u2977\u2978" + - "\x07C\x02\x02\u2978\u2979\x07U\x02\x02\u2979\u297A\x07Y\x02\x02\u297A" + - "\u297B\x07M\x02\x02\u297B\u297C\x07V\x02\x02\u297C\u0718\x03\x02\x02\x02" + - "\u297D\u297E\x07U\x02\x02\u297E\u297F\x07V\x02\x02\u297F\u2980\x07a\x02" + - "\x02\u2980\u2981\x07D\x02\x02\u2981\u2982\x07W\x02\x02\u2982\u2983\x07" + - "H\x02\x02\u2983\u2984\x07H\x02\x02\u2984\u2985\x07G\x02\x02\u2985\u2986" + - "\x07T\x02\x02\u2986\u071A\x03\x02\x02\x02\u2987\u2988\x07U\x02\x02\u2988" + - "\u2989\x07V\x02\x02\u2989\u298A\x07a\x02\x02\u298A\u298B\x07E\x02\x02" + - "\u298B\u298C\x07G\x02\x02\u298C\u298D\x07P\x02\x02\u298D\u298E\x07V\x02" + - "\x02\u298E\u298F\x07T\x02\x02\u298F\u2990\x07Q\x02\x02\u2990\u2991\x07" + - "K\x02\x02\u2991\u2992\x07F\x02\x02\u2992\u071C\x03\x02\x02\x02\u2993\u2994" + - "\x07U\x02\x02\u2994\u2995\x07V\x02\x02\u2995\u2996\x07a\x02\x02\u2996" + - "\u2997\x07E\x02\x02\u2997\u2998\x07Q\x02\x02\u2998\u2999\x07P\x02\x02" + - "\u2999\u299A\x07V\x02\x02\u299A\u299B\x07C\x02\x02\u299B\u299C\x07K\x02" + - "\x02\u299C\u299D\x07P\x02\x02\u299D\u299E\x07U\x02\x02\u299E\u071E\x03" + - "\x02\x02\x02\u299F\u29A0\x07U\x02\x02\u29A0\u29A1\x07V\x02\x02\u29A1\u29A2" + - "\x07a\x02\x02\u29A2\u29A3\x07E\x02\x02\u29A3\u29A4\x07T\x02\x02\u29A4" + - "\u29A5\x07Q\x02\x02\u29A5\u29A6\x07U\x02\x02\u29A6\u29A7\x07U\x02\x02" + - "\u29A7\u29A8\x07G\x02\x02\u29A8\u29A9\x07U\x02\x02\u29A9\u0720\x03\x02" + - "\x02\x02\u29AA\u29AB\x07U\x02\x02\u29AB\u29AC\x07V\x02\x02\u29AC\u29AD" + - "\x07a\x02\x02\u29AD\u29AE\x07F\x02\x02\u29AE\u29AF\x07K\x02\x02\u29AF" + - "\u29B0\x07H\x02\x02\u29B0\u29B1\x07H\x02\x02\u29B1\u29B2\x07G\x02\x02" + - "\u29B2\u29B3\x07T\x02\x02\u29B3\u29B4\x07G\x02\x02\u29B4\u29B5\x07P\x02" + - "\x02\u29B5\u29B6\x07E\x02\x02\u29B6\u29B7\x07G\x02\x02\u29B7\u0722\x03" + - "\x02\x02\x02\u29B8\u29B9\x07U\x02\x02\u29B9\u29BA\x07V\x02\x02\u29BA\u29BB" + - "\x07a\x02\x02\u29BB\u29BC\x07F\x02\x02\u29BC\u29BD\x07K\x02\x02\u29BD" + - "\u29BE\x07O\x02\x02\u29BE\u29BF\x07G\x02\x02\u29BF\u29C0\x07P\x02\x02" + - "\u29C0\u29C1\x07U\x02\x02\u29C1\u29C2\x07K\x02\x02\u29C2\u29C3\x07Q\x02" + - "\x02\u29C3\u29C4\x07P\x02\x02\u29C4\u0724\x03\x02\x02\x02\u29C5\u29C6" + - "\x07U\x02\x02\u29C6\u29C7\x07V\x02\x02\u29C7\u29C8\x07a\x02\x02\u29C8" + - "\u29C9\x07F\x02\x02\u29C9\u29CA\x07K\x02\x02\u29CA\u29CB\x07U\x02\x02" + - "\u29CB\u29CC\x07L\x02\x02\u29CC\u29CD\x07Q\x02\x02\u29CD\u29CE\x07K\x02" + - "\x02\u29CE\u29CF\x07P\x02\x02\u29CF\u29D0\x07V\x02\x02\u29D0\u0726\x03" + - "\x02\x02\x02\u29D1\u29D2\x07U\x02\x02\u29D2\u29D3\x07V\x02\x02\u29D3\u29D4" + - "\x07a\x02\x02\u29D4\u29D5\x07F\x02\x02\u29D5\u29D6\x07K\x02\x02\u29D6" + - "\u29D7\x07U\x02\x02\u29D7\u29D8\x07V\x02\x02\u29D8\u29D9\x07C\x02\x02" + - "\u29D9\u29DA\x07P\x02\x02\u29DA\u29DB\x07E\x02\x02\u29DB\u29DC\x07G\x02" + - "\x02\u29DC\u0728\x03\x02\x02\x02\u29DD\u29DE\x07U\x02\x02\u29DE\u29DF" + - "\x07V\x02\x02\u29DF\u29E0\x07a\x02\x02\u29E0\u29E1\x07G\x02\x02\u29E1" + - "\u29E2\x07P\x02\x02\u29E2\u29E3\x07F\x02\x02\u29E3\u29E4\x07R\x02\x02" + - "\u29E4\u29E5\x07Q\x02\x02\u29E5\u29E6\x07K\x02\x02\u29E6\u29E7\x07P\x02" + - "\x02\u29E7\u29E8\x07V\x02\x02\u29E8\u072A\x03\x02\x02\x02\u29E9\u29EA" + - "\x07U\x02\x02\u29EA\u29EB\x07V\x02\x02\u29EB\u29EC\x07a\x02\x02\u29EC" + - "\u29ED\x07G\x02\x02\u29ED\u29EE\x07P\x02\x02\u29EE\u29EF\x07X\x02\x02" + - "\u29EF\u29F0\x07G\x02\x02\u29F0\u29F1\x07N\x02\x02\u29F1\u29F2\x07Q\x02" + - "\x02\u29F2\u29F3\x07R\x02\x02\u29F3\u29F4\x07G\x02\x02\u29F4\u072C\x03" + - "\x02\x02\x02\u29F5\u29F6\x07U\x02\x02\u29F6\u29F7\x07V\x02\x02\u29F7\u29F8" + - "\x07a\x02\x02\u29F8\u29F9\x07G\x02\x02\u29F9\u29FA\x07S\x02\x02\u29FA" + - "\u29FB\x07W\x02\x02\u29FB\u29FC\x07C\x02\x02\u29FC\u29FD\x07N\x02\x02" + - "\u29FD\u29FE\x07U\x02\x02\u29FE\u072E\x03\x02\x02\x02\u29FF\u2A00\x07" + - "U\x02\x02\u2A00\u2A01\x07V\x02\x02\u2A01\u2A02\x07a\x02\x02\u2A02\u2A03" + - "\x07G\x02\x02\u2A03\u2A04\x07Z\x02\x02\u2A04\u2A05\x07V\x02\x02\u2A05" + - "\u2A06\x07G\x02\x02\u2A06\u2A07\x07T\x02\x02\u2A07\u2A08\x07K\x02\x02" + - "\u2A08\u2A09\x07Q\x02\x02\u2A09\u2A0A\x07T\x02\x02\u2A0A\u2A0B\x07T\x02" + - "\x02\u2A0B\u2A0C\x07K\x02\x02\u2A0C\u2A0D\x07P\x02\x02\u2A0D\u2A0E\x07" + - "I\x02\x02\u2A0E\u0730\x03\x02\x02\x02\u2A0F\u2A10\x07U\x02\x02\u2A10\u2A11" + - "\x07V\x02\x02\u2A11\u2A12\x07a\x02\x02\u2A12\u2A13\x07I\x02\x02\u2A13" + - "\u2A14\x07G\x02\x02\u2A14\u2A15\x07Q\x02\x02\u2A15\u2A16\x07O\x02\x02" + - "\u2A16\u2A17\x07E\x02\x02\u2A17\u2A18\x07Q\x02\x02\u2A18\u2A19\x07N\x02" + - "\x02\u2A19\u2A1A\x07N\x02\x02\u2A1A\u2A1B\x07H\x02\x02\u2A1B\u2A1C\x07" + - "T\x02\x02\u2A1C\u2A1D\x07Q\x02\x02\u2A1D\u2A1E\x07O\x02\x02\u2A1E\u2A1F" + - "\x07V\x02\x02\u2A1F\u2A20\x07G\x02\x02\u2A20\u2A21\x07Z\x02\x02\u2A21" + - "\u2A22\x07V\x02\x02\u2A22\u0732\x03\x02\x02\x02\u2A23\u2A24\x07U\x02\x02" + - "\u2A24\u2A25\x07V\x02\x02\u2A25\u2A26\x07a\x02\x02\u2A26\u2A27\x07I\x02" + - "\x02\u2A27\u2A28\x07G\x02\x02\u2A28\u2A29\x07Q\x02\x02\u2A29\u2A2A\x07" + - "O\x02\x02\u2A2A\u2A2B\x07E\x02\x02\u2A2B\u2A2C\x07Q\x02\x02\u2A2C\u2A2D" + - "\x07N\x02\x02\u2A2D\u2A2E\x07N\x02\x02\u2A2E\u2A2F\x07H\x02\x02\u2A2F" + - "\u2A30\x07T\x02\x02\u2A30\u2A31\x07Q\x02\x02\u2A31\u2A32\x07O\x02\x02" + - "\u2A32\u2A33\x07V\x02\x02\u2A33\u2A34\x07Z\x02\x02\u2A34\u2A35\x07V\x02" + - "\x02\u2A35\u0734\x03\x02\x02\x02\u2A36\u2A37\x07U\x02\x02\u2A37\u2A38" + - "\x07V\x02\x02\u2A38\u2A39\x07a\x02\x02\u2A39\u2A3A\x07I\x02\x02\u2A3A" + - "\u2A3B\x07G\x02\x02\u2A3B\u2A3C\x07Q\x02\x02\u2A3C\u2A3D\x07O\x02\x02" + - "\u2A3D\u2A3E\x07E\x02\x02\u2A3E\u2A3F\x07Q\x02\x02\u2A3F\u2A40\x07N\x02" + - "\x02\u2A40\u2A41\x07N\x02\x02\u2A41\u2A42\x07H\x02\x02\u2A42\u2A43\x07" + - "T\x02\x02\u2A43\u2A44\x07Q\x02\x02\u2A44\u2A45\x07O\x02\x02\u2A45\u2A46" + - "\x07Y\x02\x02\u2A46\u2A47\x07M\x02\x02\u2A47\u2A48\x07D\x02\x02\u2A48" + - "\u0736\x03\x02\x02\x02\u2A49\u2A4A\x07U\x02\x02\u2A4A\u2A4B\x07V\x02\x02" + - "\u2A4B\u2A4C\x07a\x02\x02\u2A4C\u2A4D\x07I\x02\x02\u2A4D\u2A4E\x07G\x02" + - "\x02\u2A4E\u2A4F\x07Q\x02\x02\u2A4F\u2A50\x07O\x02\x02\u2A50\u2A51\x07" + - "G\x02\x02\u2A51\u2A52\x07V\x02\x02\u2A52\u2A53\x07T\x02\x02\u2A53\u2A54" + - "\x07[\x02\x02\u2A54\u2A55\x07E\x02\x02\u2A55\u2A56\x07Q\x02\x02\u2A56" + - "\u2A57\x07N\x02\x02\u2A57\u2A58\x07N\x02\x02\u2A58\u2A59\x07G\x02\x02" + - "\u2A59\u2A5A\x07E\x02\x02\u2A5A\u2A5B\x07V\x02\x02\u2A5B\u2A5C\x07K\x02" + - "\x02\u2A5C\u2A5D\x07Q\x02\x02\u2A5D\u2A5E\x07P\x02\x02\u2A5E\u2A5F\x07" + - "H\x02\x02\u2A5F\u2A60\x07T\x02\x02\u2A60\u2A61\x07Q\x02\x02\u2A61\u2A62" + - "\x07O\x02\x02\u2A62\u2A63\x07V\x02\x02\u2A63\u2A64\x07G\x02\x02\u2A64" + - "\u2A65\x07Z\x02\x02\u2A65\u2A66\x07V\x02\x02\u2A66\u0738\x03\x02\x02\x02" + - "\u2A67\u2A68\x07U\x02\x02\u2A68\u2A69\x07V\x02\x02\u2A69\u2A6A\x07a\x02" + - "\x02\u2A6A\u2A6B\x07I\x02\x02\u2A6B\u2A6C\x07G\x02\x02\u2A6C\u2A6D\x07" + - "Q\x02\x02\u2A6D\u2A6E\x07O\x02\x02\u2A6E\u2A6F\x07G\x02\x02\u2A6F\u2A70" + - "\x07V\x02\x02\u2A70\u2A71\x07T\x02\x02\u2A71\u2A72\x07[\x02\x02\u2A72" + - "\u2A73\x07E\x02\x02\u2A73\u2A74\x07Q\x02\x02\u2A74\u2A75\x07N\x02\x02" + - "\u2A75\u2A76\x07N\x02\x02\u2A76\u2A77\x07G\x02\x02\u2A77\u2A78\x07E\x02" + - "\x02\u2A78\u2A79\x07V\x02\x02\u2A79\u2A7A\x07K\x02\x02\u2A7A\u2A7B\x07" + - "Q\x02\x02\u2A7B\u2A7C\x07P\x02\x02\u2A7C\u2A7D\x07H\x02\x02\u2A7D\u2A7E" + - "\x07T\x02\x02\u2A7E\u2A7F\x07Q\x02\x02\u2A7F\u2A80\x07O\x02\x02\u2A80" + - "\u2A81\x07Y\x02\x02\u2A81\u2A82\x07M\x02\x02\u2A82\u2A83\x07D\x02\x02" + - "\u2A83\u073A\x03\x02\x02\x02\u2A84\u2A85\x07U\x02\x02\u2A85\u2A86\x07" + - "V\x02\x02\u2A86\u2A87\x07a\x02\x02\u2A87\u2A88\x07I\x02\x02\u2A88\u2A89" + - "\x07G\x02\x02\u2A89\u2A8A\x07Q\x02\x02\u2A8A\u2A8B\x07O\x02\x02\u2A8B" + - "\u2A8C\x07G\x02\x02\u2A8C\u2A8D\x07V\x02\x02\u2A8D\u2A8E\x07T\x02\x02" + - "\u2A8E\u2A8F\x07[\x02\x02\u2A8F\u2A90\x07H\x02\x02\u2A90\u2A91\x07T\x02" + - "\x02\u2A91\u2A92\x07Q\x02\x02\u2A92\u2A93\x07O\x02\x02\u2A93\u2A94\x07" + - "V\x02\x02\u2A94\u2A95\x07G\x02\x02\u2A95\u2A96\x07Z\x02\x02\u2A96\u2A97" + - "\x07V\x02\x02\u2A97\u073C\x03\x02\x02\x02\u2A98\u2A99\x07U\x02\x02\u2A99" + - "\u2A9A\x07V\x02\x02\u2A9A\u2A9B\x07a\x02\x02\u2A9B\u2A9C\x07I\x02\x02" + - "\u2A9C\u2A9D\x07G\x02\x02\u2A9D\u2A9E\x07Q\x02\x02\u2A9E\u2A9F\x07O\x02" + - "\x02\u2A9F\u2AA0\x07G\x02\x02\u2AA0\u2AA1\x07V\x02\x02\u2AA1\u2AA2\x07" + - "T\x02\x02\u2AA2\u2AA3\x07[\x02\x02\u2AA3\u2AA4\x07H\x02\x02\u2AA4\u2AA5" + - "\x07T\x02\x02\u2AA5\u2AA6\x07Q\x02\x02\u2AA6\u2AA7\x07O\x02\x02\u2AA7" + - "\u2AA8\x07Y\x02\x02\u2AA8\u2AA9\x07M\x02\x02\u2AA9\u2AAA\x07D\x02\x02" + - "\u2AAA\u073E\x03\x02\x02\x02\u2AAB\u2AAC\x07U\x02\x02\u2AAC\u2AAD\x07" + - "V\x02\x02\u2AAD\u2AAE\x07a\x02\x02\u2AAE\u2AAF\x07I\x02\x02\u2AAF\u2AB0" + - "\x07G\x02\x02\u2AB0\u2AB1\x07Q\x02\x02\u2AB1\u2AB2\x07O\x02\x02\u2AB2" + - "\u2AB3\x07G\x02\x02\u2AB3\u2AB4\x07V\x02\x02\u2AB4\u2AB5\x07T\x02\x02" + - "\u2AB5\u2AB6\x07[\x02\x02\u2AB6\u2AB7\x07P\x02\x02\u2AB7\u0740\x03\x02" + - "\x02\x02\u2AB8\u2AB9\x07U\x02\x02\u2AB9\u2ABA\x07V\x02\x02\u2ABA\u2ABB" + - "\x07a\x02\x02\u2ABB\u2ABC\x07I\x02\x02\u2ABC\u2ABD\x07G\x02\x02\u2ABD" + - "\u2ABE\x07Q\x02\x02\u2ABE\u2ABF\x07O\x02\x02\u2ABF\u2AC0\x07G\x02\x02" + - "\u2AC0\u2AC1\x07V\x02\x02\u2AC1\u2AC2\x07T\x02\x02\u2AC2\u2AC3\x07[\x02" + - "\x02\u2AC3\u2AC4\x07V\x02\x02\u2AC4\u2AC5\x07[\x02\x02\u2AC5\u2AC6\x07" + - "R\x02\x02\u2AC6\u2AC7\x07G\x02\x02\u2AC7\u0742\x03\x02\x02\x02\u2AC8\u2AC9" + - "\x07U\x02\x02\u2AC9\u2ACA\x07V\x02\x02\u2ACA\u2ACB\x07a\x02\x02\u2ACB" + - "\u2ACC\x07I\x02\x02\u2ACC\u2ACD\x07G\x02\x02\u2ACD\u2ACE\x07Q\x02\x02" + - "\u2ACE\u2ACF\x07O\x02\x02\u2ACF\u2AD0\x07H\x02\x02\u2AD0\u2AD1\x07T\x02" + - "\x02\u2AD1\u2AD2\x07Q\x02\x02\u2AD2\u2AD3\x07O\x02\x02\u2AD3\u2AD4\x07" + - "V\x02\x02\u2AD4\u2AD5\x07G\x02\x02\u2AD5\u2AD6\x07Z\x02\x02\u2AD6\u2AD7" + - "\x07V\x02\x02\u2AD7\u0744\x03\x02\x02\x02\u2AD8\u2AD9\x07U\x02\x02\u2AD9" + - "\u2ADA\x07V\x02\x02\u2ADA\u2ADB\x07a\x02\x02\u2ADB\u2ADC\x07I\x02\x02" + - "\u2ADC\u2ADD\x07G\x02\x02\u2ADD\u2ADE\x07Q\x02\x02\u2ADE\u2ADF\x07O\x02" + - "\x02\u2ADF\u2AE0\x07H\x02\x02\u2AE0\u2AE1\x07T\x02\x02\u2AE1\u2AE2\x07" + - "Q\x02\x02\u2AE2\u2AE3\x07O\x02\x02\u2AE3\u2AE4\x07Y\x02\x02\u2AE4\u2AE5" + - "\x07M\x02\x02\u2AE5\u2AE6\x07D\x02\x02\u2AE6\u0746\x03\x02\x02\x02\u2AE7" + - "\u2AE8\x07U\x02\x02\u2AE8\u2AE9\x07V\x02\x02\u2AE9\u2AEA\x07a\x02\x02" + - "\u2AEA\u2AEB\x07K\x02\x02\u2AEB\u2AEC\x07P\x02\x02\u2AEC\u2AED\x07V\x02" + - "\x02\u2AED\u2AEE\x07G\x02\x02\u2AEE\u2AEF\x07T\x02\x02\u2AEF\u2AF0\x07" + - "K\x02\x02\u2AF0\u2AF1\x07Q\x02\x02\u2AF1\u2AF2\x07T\x02\x02\u2AF2\u2AF3" + - "\x07T\x02\x02\u2AF3\u2AF4\x07K\x02\x02\u2AF4\u2AF5\x07P\x02\x02\u2AF5" + - "\u2AF6\x07I\x02\x02\u2AF6\u2AF7\x07P\x02\x02\u2AF7\u0748\x03\x02\x02\x02" + - "\u2AF8\u2AF9\x07U\x02\x02\u2AF9\u2AFA\x07V\x02\x02\u2AFA\u2AFB\x07a\x02" + - "\x02\u2AFB\u2AFC\x07K\x02\x02\u2AFC\u2AFD\x07P\x02\x02\u2AFD\u2AFE\x07" + - "V\x02\x02\u2AFE\u2AFF\x07G\x02\x02\u2AFF\u2B00\x07T\x02\x02\u2B00\u2B01" + - "\x07U\x02\x02\u2B01\u2B02\x07G\x02\x02\u2B02\u2B03\x07E\x02\x02\u2B03" + - "\u2B04\x07V\x02\x02\u2B04\u2B05\x07K\x02\x02\u2B05\u2B06\x07Q\x02\x02" + - "\u2B06\u2B07\x07P\x02\x02\u2B07\u074A\x03\x02\x02\x02\u2B08\u2B09\x07" + - "U\x02\x02\u2B09\u2B0A\x07V\x02\x02\u2B0A\u2B0B\x07a\x02\x02\u2B0B\u2B0C" + - "\x07K\x02\x02\u2B0C\u2B0D\x07P\x02\x02\u2B0D\u2B0E\x07V\x02\x02\u2B0E" + - "\u2B0F\x07G\x02\x02\u2B0F\u2B10\x07T\x02\x02\u2B10\u2B11\x07U\x02\x02" + - "\u2B11\u2B12\x07G\x02\x02\u2B12\u2B13\x07E\x02\x02\u2B13\u2B14\x07V\x02" + - "\x02\u2B14\u2B15\x07U\x02\x02\u2B15\u074C\x03\x02\x02\x02\u2B16\u2B17" + - "\x07U\x02\x02\u2B17\u2B18\x07V\x02\x02\u2B18\u2B19\x07a\x02\x02\u2B19" + - "\u2B1A\x07K\x02\x02\u2B1A\u2B1B\x07U\x02\x02\u2B1B\u2B1C\x07E\x02\x02" + - "\u2B1C\u2B1D\x07N\x02\x02\u2B1D\u2B1E\x07Q\x02\x02\u2B1E\u2B1F\x07U\x02" + - "\x02\u2B1F\u2B20\x07G\x02\x02\u2B20\u2B21\x07F\x02\x02\u2B21\u074E\x03" + - "\x02\x02\x02\u2B22\u2B23\x07U\x02\x02\u2B23\u2B24\x07V\x02\x02\u2B24\u2B25" + - "\x07a\x02\x02\u2B25\u2B26\x07K\x02\x02\u2B26\u2B27\x07U\x02\x02\u2B27" + - "\u2B28\x07G\x02\x02\u2B28\u2B29\x07O\x02\x02\u2B29\u2B2A\x07R\x02\x02" + - "\u2B2A\u2B2B\x07V\x02\x02\u2B2B\u2B2C\x07[\x02\x02\u2B2C\u0750\x03\x02" + - "\x02\x02\u2B2D\u2B2E\x07U\x02\x02\u2B2E\u2B2F\x07V\x02\x02\u2B2F\u2B30" + - "\x07a\x02\x02\u2B30\u2B31\x07K\x02\x02\u2B31\u2B32\x07U\x02\x02\u2B32" + - "\u2B33\x07U\x02\x02\u2B33\u2B34\x07K\x02\x02\u2B34\u2B35\x07O\x02\x02" + - "\u2B35\u2B36\x07R\x02\x02\u2B36\u2B37\x07N\x02\x02\u2B37\u2B38\x07G\x02" + - "\x02\u2B38\u0752\x03\x02\x02\x02\u2B39\u2B3A\x07U\x02\x02\u2B3A\u2B3B" + - "\x07V\x02\x02\u2B3B\u2B3C\x07a\x02\x02\u2B3C\u2B3D\x07N\x02\x02\u2B3D" + - "\u2B3E\x07K\x02\x02\u2B3E\u2B3F\x07P\x02\x02\u2B3F\u2B40\x07G\x02\x02" + - "\u2B40\u2B41\x07H\x02\x02\u2B41\u2B42\x07T\x02\x02\u2B42\u2B43\x07Q\x02" + - "\x02\u2B43\u2B44\x07O\x02\x02\u2B44\u2B45\x07V\x02\x02\u2B45\u2B46\x07" + - "G\x02\x02\u2B46\u2B47\x07Z\x02\x02\u2B47\u2B48\x07V\x02\x02\u2B48\u0754" + - "\x03\x02\x02\x02\u2B49\u2B4A\x07U\x02\x02\u2B4A\u2B4B\x07V\x02\x02\u2B4B" + - "\u2B4C\x07a\x02\x02\u2B4C\u2B4D\x07N\x02\x02\u2B4D\u2B4E\x07K\x02\x02" + - "\u2B4E\u2B4F\x07P\x02\x02\u2B4F\u2B50\x07G\x02\x02\u2B50\u2B51\x07H\x02" + - "\x02\u2B51\u2B52\x07T\x02\x02\u2B52\u2B53\x07Q\x02\x02\u2B53\u2B54\x07" + - "O\x02\x02\u2B54\u2B55\x07Y\x02\x02\u2B55\u2B56\x07M\x02\x02\u2B56\u2B57" + - "\x07D\x02\x02\u2B57\u0756\x03\x02\x02\x02\u2B58\u2B59\x07U\x02\x02\u2B59" + - "\u2B5A\x07V\x02\x02\u2B5A\u2B5B\x07a\x02\x02\u2B5B\u2B5C\x07N\x02\x02" + - "\u2B5C\u2B5D\x07K\x02\x02\u2B5D\u2B5E\x07P\x02\x02\u2B5E\u2B5F\x07G\x02" + - "\x02\u2B5F\u2B60\x07U\x02\x02\u2B60\u2B61\x07V\x02\x02\u2B61\u2B62\x07" + - "T\x02\x02\u2B62\u2B63\x07K\x02\x02\u2B63\u2B64\x07P\x02\x02\u2B64\u2B65" + - "\x07I\x02\x02\u2B65\u2B66\x07H\x02\x02\u2B66\u2B67\x07T\x02\x02\u2B67" + - "\u2B68\x07Q\x02\x02\u2B68\u2B69\x07O\x02\x02\u2B69\u2B6A\x07V\x02\x02" + - "\u2B6A\u2B6B\x07G\x02\x02\u2B6B\u2B6C\x07Z\x02\x02\u2B6C\u2B6D\x07V\x02" + - "\x02\u2B6D\u0758\x03\x02\x02\x02\u2B6E\u2B6F\x07U\x02\x02\u2B6F\u2B70" + - "\x07V\x02\x02\u2B70\u2B71\x07a\x02\x02\u2B71\u2B72\x07N\x02\x02\u2B72" + - "\u2B73\x07K\x02\x02\u2B73\u2B74\x07P\x02\x02\u2B74\u2B75\x07G\x02\x02" + - "\u2B75\u2B76\x07U\x02\x02\u2B76\u2B77\x07V\x02\x02\u2B77\u2B78\x07T\x02" + - "\x02\u2B78\u2B79\x07K\x02\x02\u2B79\u2B7A\x07P\x02\x02\u2B7A\u2B7B\x07" + - "I\x02\x02\u2B7B\u2B7C\x07H\x02\x02\u2B7C\u2B7D\x07T\x02\x02\u2B7D\u2B7E" + - "\x07Q\x02\x02\u2B7E\u2B7F\x07O\x02\x02\u2B7F\u2B80\x07Y\x02\x02\u2B80" + - "\u2B81\x07M\x02\x02\u2B81\u2B82\x07D\x02\x02\u2B82\u075A\x03\x02\x02\x02" + - "\u2B83\u2B84\x07U\x02\x02\u2B84\u2B85\x07V\x02\x02\u2B85\u2B86\x07a\x02" + - "\x02\u2B86\u2B87\x07P\x02\x02\u2B87\u2B88\x07W\x02\x02\u2B88\u2B89\x07" + - "O\x02\x02\u2B89\u2B8A\x07I\x02\x02\u2B8A\u2B8B\x07G\x02\x02\u2B8B\u2B8C" + - "\x07Q\x02\x02\u2B8C\u2B8D\x07O\x02\x02\u2B8D\u2B8E\x07G\x02\x02\u2B8E" + - "\u2B8F\x07V\x02\x02\u2B8F\u2B90\x07T\x02\x02\u2B90\u2B91\x07K\x02\x02" + - "\u2B91\u2B92\x07G\x02\x02\u2B92\u2B93\x07U\x02\x02\u2B93\u075C\x03\x02" + - "\x02\x02\u2B94\u2B95\x07U\x02\x02\u2B95\u2B96\x07V\x02\x02\u2B96\u2B97" + - "\x07a\x02\x02\u2B97\u2B98\x07P\x02\x02\u2B98\u2B99\x07W\x02\x02\u2B99" + - "\u2B9A\x07O\x02\x02\u2B9A\u2B9B\x07K\x02\x02\u2B9B\u2B9C\x07P\x02\x02" + - "\u2B9C\u2B9D\x07V\x02\x02\u2B9D\u2B9E\x07G\x02\x02\u2B9E\u2B9F\x07T\x02" + - "\x02\u2B9F\u2BA0\x07K\x02\x02\u2BA0\u2BA1\x07Q\x02\x02\u2BA1\u2BA2\x07" + - "T\x02\x02\u2BA2\u2BA3\x07T\x02\x02\u2BA3\u2BA4\x07K\x02\x02\u2BA4\u2BA5" + - "\x07P\x02\x02\u2BA5\u2BA6\x07I\x02\x02\u2BA6\u075E\x03\x02\x02\x02\u2BA7" + - "\u2BA8\x07U\x02\x02\u2BA8\u2BA9\x07V\x02\x02\u2BA9\u2BAA\x07a\x02\x02" + - "\u2BAA\u2BAB\x07P\x02\x02\u2BAB\u2BAC\x07W\x02\x02\u2BAC\u2BAD\x07O\x02" + - "\x02\u2BAD\u2BAE\x07K\x02\x02\u2BAE\u2BAF\x07P\x02\x02\u2BAF\u2BB0\x07" + - "V\x02\x02\u2BB0\u2BB1\x07G\x02\x02\u2BB1\u2BB2\x07T\x02\x02\u2BB2\u2BB3" + - "\x07K\x02\x02\u2BB3\u2BB4\x07Q\x02\x02\u2BB4\u2BB5\x07T\x02\x02\u2BB5" + - "\u2BB6\x07T\x02\x02\u2BB6\u2BB7\x07K\x02\x02\u2BB7\u2BB8\x07P\x02\x02" + - "\u2BB8\u2BB9\x07I\x02\x02\u2BB9\u2BBA\x07U\x02\x02\u2BBA\u0760\x03\x02" + - "\x02\x02\u2BBB\u2BBC\x07U\x02\x02\u2BBC\u2BBD\x07V\x02\x02\u2BBD\u2BBE" + - "\x07a\x02\x02\u2BBE\u2BBF\x07P\x02\x02\u2BBF\u2BC0\x07W\x02\x02\u2BC0" + - "\u2BC1\x07O\x02\x02\u2BC1\u2BC2\x07R\x02\x02\u2BC2\u2BC3\x07Q\x02\x02" + - "\u2BC3\u2BC4\x07K\x02\x02\u2BC4\u2BC5\x07P\x02\x02\u2BC5\u2BC6\x07V\x02" + - "\x02\u2BC6\u2BC7\x07U\x02\x02\u2BC7\u0762\x03\x02\x02\x02\u2BC8\u2BC9" + - "\x07U\x02\x02\u2BC9\u2BCA\x07V\x02\x02\u2BCA\u2BCB\x07a\x02\x02\u2BCB" + - "\u2BCC\x07Q\x02\x02\u2BCC\u2BCD\x07X\x02\x02\u2BCD\u2BCE\x07G\x02\x02" + - "\u2BCE\u2BCF\x07T\x02\x02\u2BCF\u2BD0\x07N\x02\x02\u2BD0\u2BD1\x07C\x02" + - "\x02\u2BD1\u2BD2\x07R\x02\x02\u2BD2\u2BD3\x07U\x02\x02\u2BD3\u0764\x03" + - "\x02\x02\x02\u2BD4\u2BD5\x07U\x02\x02\u2BD5\u2BD6\x07V\x02\x02\u2BD6\u2BD7" + - "\x07a\x02\x02\u2BD7\u2BD8\x07R\x02\x02\u2BD8\u2BD9\x07Q\x02\x02\u2BD9" + - "\u2BDA\x07K\x02\x02\u2BDA\u2BDB\x07P\x02\x02\u2BDB\u2BDC\x07V\x02\x02" + - "\u2BDC\u2BDD\x07H\x02\x02\u2BDD\u2BDE\x07T\x02\x02\u2BDE"; - private static readonly _serializedATNSegment19: string = - "\u2BDF\x07Q\x02\x02\u2BDF\u2BE0\x07O\x02\x02\u2BE0\u2BE1\x07V\x02\x02" + - "\u2BE1\u2BE2\x07G\x02\x02\u2BE2\u2BE3\x07Z\x02\x02\u2BE3\u2BE4\x07V\x02" + - "\x02\u2BE4\u0766\x03\x02\x02\x02\u2BE5\u2BE6\x07U\x02\x02\u2BE6\u2BE7" + - "\x07V\x02\x02\u2BE7\u2BE8\x07a\x02\x02\u2BE8\u2BE9\x07R\x02\x02\u2BE9" + - "\u2BEA\x07Q\x02\x02\u2BEA\u2BEB\x07K\x02\x02\u2BEB\u2BEC\x07P\x02\x02" + - "\u2BEC\u2BED\x07V\x02\x02\u2BED\u2BEE\x07H\x02\x02\u2BEE\u2BEF\x07T\x02" + - "\x02\u2BEF\u2BF0\x07Q\x02\x02\u2BF0\u2BF1\x07O\x02\x02\u2BF1\u2BF2\x07" + - "Y\x02\x02\u2BF2\u2BF3\x07M\x02\x02\u2BF3\u2BF4\x07D\x02\x02\u2BF4\u0768" + - "\x03\x02\x02\x02\u2BF5\u2BF6\x07U\x02\x02\u2BF6\u2BF7\x07V\x02\x02\u2BF7" + - "\u2BF8\x07a\x02\x02\u2BF8\u2BF9\x07R\x02\x02\u2BF9\u2BFA\x07Q\x02\x02" + - "\u2BFA\u2BFB\x07K\x02\x02\u2BFB\u2BFC\x07P\x02\x02\u2BFC\u2BFD\x07V\x02" + - "\x02\u2BFD\u2BFE\x07P\x02\x02\u2BFE\u076A\x03\x02\x02\x02\u2BFF\u2C00" + - "\x07U\x02\x02\u2C00\u2C01\x07V\x02\x02\u2C01\u2C02\x07a\x02\x02\u2C02" + - "\u2C03\x07R\x02\x02\u2C03\u2C04\x07Q\x02\x02\u2C04\u2C05\x07N\x02\x02" + - "\u2C05\u2C06\x07[\x02\x02\u2C06\u2C07\x07H\x02\x02\u2C07\u2C08\x07T\x02" + - "\x02\u2C08\u2C09\x07Q\x02\x02\u2C09\u2C0A\x07O\x02\x02\u2C0A\u2C0B\x07" + - "V\x02\x02\u2C0B\u2C0C\x07G\x02\x02\u2C0C\u2C0D\x07Z\x02\x02\u2C0D\u2C0E" + - "\x07V\x02\x02\u2C0E\u076C\x03\x02\x02\x02\u2C0F\u2C10\x07U\x02\x02\u2C10" + - "\u2C11\x07V\x02\x02\u2C11\u2C12\x07a\x02\x02\u2C12\u2C13\x07R\x02\x02" + - "\u2C13\u2C14\x07Q\x02\x02\u2C14\u2C15\x07N\x02\x02\u2C15\u2C16\x07[\x02" + - "\x02\u2C16\u2C17\x07H\x02\x02\u2C17\u2C18\x07T\x02\x02\u2C18\u2C19\x07" + - "Q\x02\x02\u2C19\u2C1A\x07O\x02\x02\u2C1A\u2C1B\x07Y\x02\x02\u2C1B\u2C1C" + - "\x07M\x02\x02\u2C1C\u2C1D\x07D\x02\x02\u2C1D\u076E\x03\x02\x02\x02\u2C1E" + - "\u2C1F\x07U\x02\x02\u2C1F\u2C20\x07V\x02\x02\u2C20\u2C21\x07a\x02\x02" + - "\u2C21\u2C22\x07R\x02\x02\u2C22\u2C23\x07Q\x02\x02\u2C23\u2C24\x07N\x02" + - "\x02\u2C24\u2C25\x07[\x02\x02\u2C25\u2C26\x07I\x02\x02\u2C26\u2C27\x07" + - "Q\x02\x02\u2C27\u2C28\x07P\x02\x02\u2C28\u2C29\x07H\x02\x02\u2C29\u2C2A" + - "\x07T\x02\x02\u2C2A\u2C2B\x07Q\x02\x02\u2C2B\u2C2C\x07O\x02\x02\u2C2C" + - "\u2C2D\x07V\x02\x02\u2C2D\u2C2E\x07G\x02\x02\u2C2E\u2C2F\x07Z\x02\x02" + - "\u2C2F\u2C30\x07V\x02\x02\u2C30\u0770\x03\x02\x02\x02\u2C31\u2C32\x07" + - "U\x02\x02\u2C32\u2C33\x07V\x02\x02\u2C33\u2C34\x07a\x02\x02\u2C34\u2C35" + - "\x07R\x02\x02\u2C35\u2C36\x07Q\x02\x02\u2C36\u2C37\x07N\x02\x02\u2C37" + - "\u2C38\x07[\x02\x02\u2C38\u2C39\x07I\x02\x02\u2C39\u2C3A\x07Q\x02\x02" + - "\u2C3A\u2C3B\x07P\x02\x02\u2C3B\u2C3C\x07H\x02\x02\u2C3C\u2C3D\x07T\x02" + - "\x02\u2C3D\u2C3E\x07Q\x02\x02\u2C3E\u2C3F\x07O\x02\x02\u2C3F\u2C40\x07" + - "Y\x02\x02\u2C40\u2C41\x07M\x02\x02\u2C41\u2C42\x07D\x02\x02\u2C42\u0772" + - "\x03\x02\x02\x02\u2C43\u2C44\x07U\x02\x02\u2C44\u2C45\x07V\x02\x02\u2C45" + - "\u2C46\x07a\x02\x02\u2C46\u2C47\x07U\x02\x02\u2C47\u2C48\x07T\x02\x02" + - "\u2C48\u2C49\x07K\x02\x02\u2C49\u2C4A\x07F\x02\x02\u2C4A\u0774\x03\x02" + - "\x02\x02\u2C4B\u2C4C\x07U\x02\x02\u2C4C\u2C4D\x07V\x02\x02\u2C4D\u2C4E" + - "\x07a\x02\x02\u2C4E\u2C4F\x07U\x02\x02\u2C4F\u2C50\x07V\x02\x02\u2C50" + - "\u2C51\x07C\x02\x02\u2C51\u2C52\x07T\x02\x02\u2C52\u2C53\x07V\x02\x02" + - "\u2C53\u2C54\x07R\x02\x02\u2C54\u2C55\x07Q\x02\x02\u2C55\u2C56\x07K\x02" + - "\x02\u2C56\u2C57\x07P\x02\x02\u2C57\u2C58\x07V\x02\x02\u2C58\u0776\x03" + - "\x02\x02\x02\u2C59\u2C5A\x07U\x02\x02\u2C5A\u2C5B\x07V\x02\x02\u2C5B\u2C5C" + - "\x07a\x02\x02\u2C5C\u2C5D\x07U\x02\x02\u2C5D\u2C5E\x07[\x02\x02\u2C5E" + - "\u2C5F\x07O\x02\x02\u2C5F\u2C60\x07F\x02\x02\u2C60\u2C61\x07K\x02\x02" + - "\u2C61\u2C62\x07H\x02\x02\u2C62\u2C63\x07H\x02\x02\u2C63\u2C64\x07G\x02" + - "\x02\u2C64\u2C65\x07T\x02\x02\u2C65\u2C66\x07G\x02\x02\u2C66\u2C67\x07" + - "P\x02\x02\u2C67\u2C68\x07E\x02\x02\u2C68\u2C69\x07G\x02\x02\u2C69\u0778" + - "\x03\x02\x02\x02\u2C6A\u2C6B\x07U\x02\x02\u2C6B\u2C6C\x07V\x02\x02\u2C6C" + - "\u2C6D\x07a\x02\x02\u2C6D\u2C6E\x07V\x02\x02\u2C6E\u2C6F\x07Q\x02\x02" + - "\u2C6F\u2C70\x07W\x02\x02\u2C70\u2C71\x07E\x02\x02\u2C71\u2C72\x07J\x02" + - "\x02\u2C72\u2C73\x07G\x02\x02\u2C73\u2C74\x07U\x02\x02\u2C74\u077A\x03" + - "\x02\x02\x02\u2C75\u2C76\x07U\x02\x02\u2C76\u2C77\x07V\x02\x02\u2C77\u2C78" + - "\x07a\x02\x02\u2C78\u2C79\x07W\x02\x02\u2C79\u2C7A\x07P\x02\x02\u2C7A" + - "\u2C7B\x07K\x02\x02\u2C7B\u2C7C\x07Q\x02\x02\u2C7C\u2C7D\x07P\x02\x02" + - "\u2C7D\u077C\x03\x02\x02\x02\u2C7E\u2C7F\x07U\x02\x02\u2C7F\u2C80\x07" + - "V\x02\x02\u2C80\u2C81\x07a\x02\x02\u2C81\u2C82\x07Y\x02\x02\u2C82\u2C83" + - "\x07K\x02\x02\u2C83\u2C84\x07V\x02\x02\u2C84\u2C85\x07J\x02\x02\u2C85" + - "\u2C86\x07K\x02\x02\u2C86\u2C87\x07P\x02\x02\u2C87\u077E\x03\x02\x02\x02" + - "\u2C88\u2C89\x07U\x02\x02\u2C89\u2C8A\x07V\x02\x02\u2C8A\u2C8B\x07a\x02" + - "\x02\u2C8B\u2C8C\x07Z\x02\x02\u2C8C\u0780\x03\x02\x02\x02\u2C8D\u2C8E" + - "\x07U\x02\x02\u2C8E\u2C8F\x07V\x02\x02\u2C8F\u2C90\x07a\x02\x02\u2C90" + - "\u2C91\x07[\x02\x02\u2C91\u0782\x03\x02\x02\x02\u2C92\u2C93\x07U\x02\x02" + - "\u2C93\u2C94\x07W\x02\x02\u2C94\u2C95\x07D\x02\x02\u2C95\u2C96\x07F\x02" + - "\x02\u2C96\u2C97\x07C\x02\x02\u2C97\u2C98\x07V\x02\x02\u2C98\u2C99\x07" + - "G\x02\x02\u2C99\u0784\x03\x02\x02\x02\u2C9A\u2C9B\x07U\x02\x02\u2C9B\u2C9C" + - "\x07W\x02\x02\u2C9C\u2C9D\x07D\x02\x02\u2C9D\u2C9E\x07U\x02\x02\u2C9E" + - "\u2C9F\x07V\x02\x02\u2C9F\u2CA0\x07T\x02\x02\u2CA0\u2CA1\x07K\x02\x02" + - "\u2CA1\u2CA2\x07P\x02\x02\u2CA2\u2CA3\x07I\x02\x02\u2CA3\u2CA4\x07a\x02" + - "\x02\u2CA4\u2CA5\x07K\x02\x02\u2CA5\u2CA6\x07P\x02\x02\u2CA6\u2CA7\x07" + - "F\x02\x02\u2CA7\u2CA8\x07G\x02\x02\u2CA8\u2CA9\x07Z\x02\x02\u2CA9\u0786" + - "\x03\x02\x02\x02\u2CAA\u2CAB\x07U\x02\x02\u2CAB\u2CAC\x07W\x02\x02\u2CAC" + - "\u2CAD\x07D\x02\x02\u2CAD\u2CAE\x07V\x02\x02\u2CAE\u2CAF\x07K\x02\x02" + - "\u2CAF\u2CB0\x07O\x02\x02\u2CB0\u2CB1\x07G\x02\x02\u2CB1\u0788\x03\x02" + - "\x02\x02\u2CB2\u2CB3\x07U\x02\x02\u2CB3\u2CB4\x07[\x02\x02\u2CB4\u2CB5" + - "\x07U\x02\x02\u2CB5\u2CB6\x07V\x02\x02\u2CB6\u2CB7\x07G\x02\x02\u2CB7" + - "\u2CB8\x07O\x02\x02\u2CB8\u2CB9\x07a\x02\x02\u2CB9\u2CBA\x07W\x02\x02" + - "\u2CBA\u2CBB\x07U\x02\x02\u2CBB\u2CBC\x07G\x02\x02\u2CBC\u2CBD\x07T\x02" + - "\x02\u2CBD\u078A\x03\x02\x02\x02\u2CBE\u2CBF\x07V\x02\x02\u2CBF\u2CC0" + - "\x07C\x02\x02\u2CC0\u2CC1\x07P\x02\x02\u2CC1\u078C\x03\x02\x02\x02\u2CC2" + - "\u2CC3\x07V\x02\x02\u2CC3\u2CC4\x07K\x02\x02\u2CC4\u2CC5\x07O\x02\x02" + - "\u2CC5\u2CC6\x07G\x02\x02\u2CC6\u2CC7\x07F\x02\x02\u2CC7\u2CC8\x07K\x02" + - "\x02\u2CC8\u2CC9\x07H\x02\x02\u2CC9\u2CCA\x07H\x02\x02\u2CCA\u078E\x03" + - "\x02\x02\x02\u2CCB\u2CCC\x07V\x02\x02\u2CCC\u2CCD\x07K\x02\x02\u2CCD\u2CCE" + - "\x07O\x02\x02\u2CCE\u2CCF\x07G\x02\x02\u2CCF\u2CD0\x07U\x02\x02\u2CD0" + - "\u2CD1\x07V\x02\x02\u2CD1\u2CD2\x07C\x02\x02\u2CD2\u2CD3\x07O\x02\x02" + - "\u2CD3\u2CD4\x07R\x02\x02\u2CD4\u2CD5\x07C\x02\x02\u2CD5\u2CD6\x07F\x02" + - "\x02\u2CD6\u2CD7\x07F\x02\x02\u2CD7\u0790\x03\x02\x02\x02\u2CD8\u2CD9" + - "\x07V\x02\x02\u2CD9\u2CDA\x07K\x02\x02\u2CDA\u2CDB\x07O\x02\x02\u2CDB" + - "\u2CDC\x07G\x02\x02\u2CDC\u2CDD\x07U\x02\x02\u2CDD\u2CDE\x07V\x02\x02" + - "\u2CDE\u2CDF\x07C\x02\x02\u2CDF\u2CE0\x07O\x02\x02\u2CE0\u2CE1\x07R\x02" + - "\x02\u2CE1\u2CE2\x07F\x02\x02\u2CE2\u2CE3\x07K\x02\x02\u2CE3\u2CE4\x07" + - "H\x02\x02\u2CE4\u2CE5\x07H\x02\x02\u2CE5\u0792\x03\x02\x02\x02\u2CE6\u2CE7" + - "\x07V\x02\x02\u2CE7\u2CE8\x07K\x02\x02\u2CE8\u2CE9\x07O\x02\x02\u2CE9" + - "\u2CEA\x07G\x02\x02\u2CEA\u2CEB\x07a\x02\x02\u2CEB\u2CEC\x07H\x02\x02" + - "\u2CEC\u2CED\x07Q\x02\x02\u2CED\u2CEE\x07T\x02\x02\u2CEE\u2CEF\x07O\x02" + - "\x02\u2CEF\u2CF0\x07C\x02\x02\u2CF0\u2CF1\x07V\x02\x02\u2CF1\u0794\x03" + - "\x02\x02\x02\u2CF2\u2CF3\x07V\x02\x02\u2CF3\u2CF4\x07K\x02\x02\u2CF4\u2CF5" + - "\x07O\x02\x02\u2CF5\u2CF6\x07G\x02\x02\u2CF6\u2CF7\x07a\x02\x02\u2CF7" + - "\u2CF8\x07V\x02\x02\u2CF8\u2CF9\x07Q\x02\x02\u2CF9\u2CFA\x07a\x02\x02" + - "\u2CFA\u2CFB\x07U\x02\x02\u2CFB\u2CFC\x07G\x02\x02\u2CFC\u2CFD\x07E\x02" + - "\x02\u2CFD\u0796\x03\x02\x02\x02\u2CFE\u2CFF\x07V\x02\x02\u2CFF\u2D00" + - "\x07Q\x02\x02\u2D00\u2D01\x07W\x02\x02\u2D01\u2D02\x07E\x02\x02\u2D02" + - "\u2D03\x07J\x02\x02\u2D03\u2D04\x07G\x02\x02\u2D04\u2D05\x07U\x02\x02" + - "\u2D05\u0798\x03\x02\x02\x02\u2D06\u2D07\x07V\x02\x02\u2D07\u2D08\x07" + - "Q\x02\x02\u2D08\u2D09\x07a\x02\x02\u2D09\u2D0A\x07D\x02\x02\u2D0A\u2D0B" + - "\x07C\x02\x02\u2D0B\u2D0C\x07U\x02\x02\u2D0C\u2D0D\x07G\x02\x02\u2D0D" + - "\u2D0E\x078\x02\x02\u2D0E\u2D0F\x076\x02\x02\u2D0F\u079A\x03\x02\x02\x02" + - "\u2D10\u2D11\x07V\x02\x02\u2D11\u2D12\x07Q\x02\x02\u2D12\u2D13\x07a\x02" + - "\x02\u2D13\u2D14\x07F\x02\x02\u2D14\u2D15\x07C\x02\x02\u2D15\u2D16\x07" + - "[\x02\x02\u2D16\u2D17\x07U\x02\x02\u2D17\u079C\x03\x02\x02\x02\u2D18\u2D19" + - "\x07V\x02\x02\u2D19\u2D1A\x07Q\x02\x02\u2D1A\u2D1B\x07a\x02\x02\u2D1B" + - "\u2D1C\x07U\x02\x02\u2D1C\u2D1D\x07G\x02\x02\u2D1D\u2D1E\x07E\x02\x02" + - "\u2D1E\u2D1F\x07Q\x02\x02\u2D1F\u2D20\x07P\x02\x02\u2D20\u2D21\x07F\x02" + - "\x02\u2D21\u2D22\x07U\x02\x02\u2D22\u079E\x03\x02\x02\x02\u2D23\u2D24" + - "\x07W\x02\x02\u2D24\u2D25\x07E\x02\x02\u2D25\u2D26\x07C\x02\x02\u2D26" + - "\u2D27\x07U\x02\x02\u2D27\u2D28\x07G\x02\x02\u2D28\u07A0\x03\x02\x02\x02" + - "\u2D29\u2D2A\x07W\x02\x02\u2D2A\u2D2B\x07P\x02\x02\u2D2B\u2D2C\x07E\x02" + - "\x02\u2D2C\u2D2D\x07Q\x02\x02\u2D2D\u2D2E\x07O\x02\x02\u2D2E\u2D2F\x07" + - "R\x02\x02\u2D2F\u2D30\x07T\x02\x02\u2D30\u2D31\x07G\x02\x02\u2D31\u2D32" + - "\x07U\x02\x02\u2D32\u2D33\x07U\x02\x02\u2D33\u07A2\x03\x02\x02\x02\u2D34" + - "\u2D35\x07W\x02\x02\u2D35\u2D36\x07P\x02\x02\u2D36\u2D37\x07E\x02\x02" + - "\u2D37\u2D38\x07Q\x02\x02\u2D38\u2D39\x07O\x02\x02\u2D39\u2D3A\x07R\x02" + - "\x02\u2D3A\u2D3B\x07T\x02\x02\u2D3B\u2D3C\x07G\x02\x02\u2D3C\u2D3D\x07" + - "U\x02\x02\u2D3D\u2D3E\x07U\x02\x02\u2D3E\u2D3F\x07G\x02\x02\u2D3F\u2D40" + - "\x07F\x02\x02\u2D40\u2D41\x07a\x02\x02\u2D41\u2D42\x07N\x02\x02\u2D42" + - "\u2D43\x07G\x02\x02\u2D43\u2D44\x07P\x02\x02\u2D44\u2D45\x07I\x02\x02" + - "\u2D45\u2D46\x07V\x02\x02\u2D46\u2D47\x07J\x02\x02\u2D47\u07A4\x03\x02" + - "\x02\x02\u2D48\u2D49\x07W\x02\x02\u2D49\u2D4A\x07P\x02\x02\u2D4A\u2D4B" + - "\x07J\x02\x02\u2D4B\u2D4C\x07G\x02\x02\u2D4C\u2D4D\x07Z\x02\x02\u2D4D" + - "\u07A6\x03\x02\x02\x02\u2D4E\u2D4F\x07W\x02\x02\u2D4F\u2D50\x07P\x02\x02" + - "\u2D50\u2D51\x07K\x02\x02\u2D51\u2D52\x07Z\x02\x02\u2D52\u2D53\x07a\x02" + - "\x02\u2D53\u2D54\x07V\x02\x02\u2D54\u2D55\x07K\x02\x02\u2D55\u2D56\x07" + - "O\x02\x02\u2D56\u2D57\x07G\x02\x02\u2D57\u2D58\x07U\x02\x02\u2D58\u2D59" + - "\x07V\x02\x02\u2D59\u2D5A\x07C\x02\x02\u2D5A\u2D5B\x07O\x02\x02\u2D5B" + - "\u2D5C\x07R\x02\x02\u2D5C\u07A8\x03\x02\x02\x02\u2D5D\u2D5E\x07W\x02\x02" + - "\u2D5E\u2D5F\x07R\x02\x02\u2D5F\u2D60\x07F\x02\x02\u2D60\u2D61\x07C\x02" + - "\x02\u2D61\u2D62\x07V\x02\x02\u2D62\u2D63\x07G\x02\x02\u2D63\u2D64\x07" + - "Z\x02\x02\u2D64\u2D65\x07O\x02\x02\u2D65\u2D66\x07N\x02\x02\u2D66\u07AA" + - "\x03\x02\x02\x02\u2D67\u2D68\x07W\x02\x02\u2D68\u2D69\x07R\x02\x02\u2D69" + - "\u2D6A\x07R\x02\x02\u2D6A\u2D6B\x07G\x02\x02\u2D6B\u2D6C\x07T\x02\x02" + - "\u2D6C\u07AC\x03\x02\x02\x02\u2D6D\u2D6E\x07W\x02\x02\u2D6E\u2D6F\x07" + - "W\x02\x02\u2D6F\u2D70\x07K\x02\x02\u2D70\u2D71\x07F\x02\x02\u2D71\u07AE" + - "\x03\x02\x02\x02\u2D72\u2D73\x07W\x02\x02\u2D73\u2D74\x07W\x02\x02\u2D74" + - "\u2D75\x07K\x02\x02\u2D75\u2D76\x07F\x02\x02\u2D76\u2D77\x07a\x02\x02" + - "\u2D77\u2D78\x07U\x02\x02\u2D78\u2D79\x07J\x02\x02\u2D79\u2D7A\x07Q\x02" + - "\x02\u2D7A\u2D7B\x07T\x02\x02\u2D7B\u2D7C\x07V\x02\x02\u2D7C\u07B0\x03" + - "\x02\x02\x02\u2D7D\u2D7E\x07X\x02\x02\u2D7E\u2D7F\x07C\x02\x02\u2D7F\u2D80" + - "\x07N\x02\x02\u2D80\u2D81\x07K\x02\x02\u2D81\u2D82\x07F\x02\x02\u2D82" + - "\u2D83\x07C\x02\x02\u2D83\u2D84\x07V\x02\x02\u2D84\u2D85\x07G\x02\x02" + - "\u2D85\u2D86\x07a\x02\x02\u2D86\u2D87\x07R\x02\x02\u2D87\u2D88\x07C\x02" + - "\x02\u2D88\u2D89\x07U\x02\x02\u2D89\u2D8A\x07U\x02\x02\u2D8A\u2D8B\x07" + - "Y\x02\x02\u2D8B\u2D8C\x07Q\x02\x02\u2D8C\u2D8D\x07T\x02\x02\u2D8D\u2D8E" + - "\x07F\x02\x02\u2D8E\u2D8F\x07a\x02\x02\u2D8F\u2D90\x07U\x02\x02\u2D90" + - "\u2D91\x07V\x02\x02\u2D91\u2D92\x07T\x02\x02\u2D92\u2D93\x07G\x02\x02" + - "\u2D93\u2D94\x07P\x02\x02\u2D94\u2D95\x07I\x02\x02\u2D95\u2D96\x07V\x02" + - "\x02\u2D96\u2D97\x07J\x02\x02\u2D97\u07B2\x03\x02\x02\x02\u2D98\u2D99" + - "\x07X\x02\x02\u2D99\u2D9A\x07G\x02\x02\u2D9A\u2D9B\x07T\x02\x02\u2D9B" + - "\u2D9C\x07U\x02\x02\u2D9C\u2D9D\x07K\x02\x02\u2D9D\u2D9E\x07Q\x02\x02" + - "\u2D9E\u2D9F\x07P\x02\x02\u2D9F\u07B4\x03\x02\x02\x02\u2DA0\u2DA1\x07" + - "Y\x02\x02\u2DA1\u2DA2\x07C\x02\x02\u2DA2\u2DA3\x07K\x02\x02\u2DA3\u2DA4" + - "\x07V\x02\x02\u2DA4\u2DA5\x07a\x02\x02\u2DA5\u2DA6\x07W\x02\x02\u2DA6" + - "\u2DA7\x07P\x02\x02\u2DA7\u2DA8\x07V\x02\x02\u2DA8\u2DA9\x07K\x02\x02" + - "\u2DA9\u2DAA\x07N\x02\x02\u2DAA\u2DAB\x07a\x02\x02\u2DAB\u2DAC\x07U\x02" + - "\x02\u2DAC\u2DAD\x07S\x02\x02\u2DAD\u2DAE\x07N\x02\x02\u2DAE\u2DAF\x07" + - "a\x02\x02\u2DAF\u2DB0\x07V\x02\x02\u2DB0\u2DB1\x07J\x02\x02\u2DB1\u2DB2" + - "\x07T\x02\x02\u2DB2\u2DB3\x07G\x02\x02\u2DB3\u2DB4\x07C\x02\x02\u2DB4" + - "\u2DB5\x07F\x02\x02\u2DB5\u2DB6\x07a\x02\x02\u2DB6\u2DB7\x07C\x02\x02" + - "\u2DB7\u2DB8\x07H\x02\x02\u2DB8\u2DB9\x07V\x02\x02\u2DB9\u2DBA\x07G\x02" + - "\x02\u2DBA\u2DBB\x07T\x02\x02\u2DBB\u2DBC\x07a\x02\x02\u2DBC\u2DBD\x07" + - "I\x02\x02\u2DBD\u2DBE\x07V\x02\x02\u2DBE\u2DBF\x07K\x02\x02\u2DBF\u2DC0" + - "\x07F\x02\x02\u2DC0\u2DC1\x07U\x02\x02\u2DC1\u07B6\x03\x02\x02\x02\u2DC2" + - "\u2DC3\x07Y\x02\x02\u2DC3\u2DC4\x07G\x02\x02\u2DC4\u2DC5\x07G\x02\x02" + - "\u2DC5\u2DC6\x07M\x02\x02\u2DC6\u2DC7\x07F\x02\x02\u2DC7\u2DC8\x07C\x02" + - "\x02\u2DC8\u2DC9\x07[\x02\x02\u2DC9\u07B8\x03\x02\x02\x02\u2DCA\u2DCB" + - "\x07Y\x02\x02\u2DCB\u2DCC\x07G\x02\x02\u2DCC\u2DCD\x07G\x02\x02\u2DCD" + - "\u2DCE\x07M\x02\x02\u2DCE\u2DCF\x07Q\x02\x02\u2DCF\u2DD0\x07H\x02\x02" + - "\u2DD0\u2DD1\x07[\x02\x02\u2DD1\u2DD2\x07G\x02\x02\u2DD2\u2DD3\x07C\x02" + - "\x02\u2DD3\u2DD4\x07T\x02\x02\u2DD4\u07BA\x03\x02\x02\x02\u2DD5\u2DD6" + - "\x07Y\x02\x02\u2DD6\u2DD7\x07G\x02\x02\u2DD7\u2DD8\x07K\x02\x02\u2DD8" + - "\u2DD9\x07I\x02\x02\u2DD9\u2DDA\x07J\x02\x02\u2DDA\u2DDB\x07V\x02\x02" + - "\u2DDB\u2DDC\x07a\x02\x02\u2DDC\u2DDD\x07U\x02\x02\u2DDD\u2DDE\x07V\x02" + - "\x02\u2DDE\u2DDF\x07T\x02\x02\u2DDF\u2DE0\x07K\x02\x02\u2DE0\u2DE1\x07" + - "P\x02\x02\u2DE1\u2DE2\x07I\x02\x02\u2DE2\u07BC\x03\x02\x02\x02\u2DE3\u2DE4" + - "\x07Y\x02\x02\u2DE4\u2DE5\x07K\x02\x02\u2DE5\u2DE6\x07V\x02\x02\u2DE6" + - "\u2DE7\x07J\x02\x02\u2DE7\u2DE8\x07K\x02\x02\u2DE8\u2DE9\x07P\x02\x02" + - "\u2DE9\u07BE\x03\x02\x02\x02\u2DEA\u2DEB\x07[\x02\x02\u2DEB\u2DEC\x07" + - "G\x02\x02\u2DEC\u2DED\x07C\x02\x02\u2DED\u2DEE\x07T\x02\x02\u2DEE\u2DEF" + - "\x07Y\x02\x02\u2DEF\u2DF0\x07G\x02\x02\u2DF0\u2DF1\x07G\x02\x02\u2DF1" + - "\u2DF2\x07M\x02\x02\u2DF2\u07C0\x03\x02\x02\x02\u2DF3\u2DF4\x07[\x02\x02" + - "\u2DF4\u07C2\x03\x02\x02\x02\u2DF5\u2DF6\x07Z\x02\x02\u2DF6\u07C4\x03" + - "\x02\x02\x02\u2DF7\u2DF8\x07<\x02\x02\u2DF8\u2DF9\x07?\x02\x02\u2DF9\u07C6" + - "\x03\x02\x02\x02\u2DFA\u2DFB\x07-\x02\x02\u2DFB\u2DFC\x07?\x02\x02\u2DFC" + - "\u07C8\x03\x02\x02\x02\u2DFD\u2DFE\x07/\x02\x02\u2DFE\u2DFF\x07?\x02\x02" + - "\u2DFF\u07CA\x03\x02\x02\x02\u2E00\u2E01\x07,\x02\x02\u2E01\u2E02\x07" + - "?\x02\x02\u2E02\u07CC\x03\x02\x02\x02\u2E03\u2E04\x071\x02\x02\u2E04\u2E05" + - "\x07?\x02\x02\u2E05\u07CE\x03\x02\x02\x02\u2E06\u2E07\x07\'\x02\x02\u2E07" + - "\u2E08\x07?\x02\x02\u2E08\u07D0\x03\x02\x02\x02\u2E09\u2E0A\x07(\x02\x02" + - "\u2E0A\u2E0B\x07?\x02\x02\u2E0B\u07D2\x03\x02\x02\x02\u2E0C\u2E0D\x07" + - "`\x02\x02\u2E0D\u2E0E\x07?\x02\x02\u2E0E\u07D4\x03\x02\x02\x02\u2E0F\u2E10" + - "\x07~\x02\x02\u2E10\u2E11\x07?\x02\x02\u2E11\u07D6\x03\x02\x02\x02\u2E12" + - "\u2E13\x07,\x02\x02\u2E13\u07D8\x03\x02\x02\x02\u2E14\u2E15\x071\x02\x02" + - "\u2E15\u07DA\x03\x02\x02\x02\u2E16\u2E17\x07\'\x02\x02\u2E17\u07DC\x03" + - "\x02\x02\x02\u2E18\u2E19\x07-\x02\x02\u2E19\u07DE\x03\x02\x02\x02\u2E1A" + - "\u2E1B\x07/\x02\x02\u2E1B\u2E1C\x07/\x02\x02\u2E1C\u07E0\x03\x02\x02\x02" + - "\u2E1D\u2E1E\x07/\x02\x02\u2E1E\u07E2\x03\x02\x02\x02\u2E1F\u2E20\x07" + - "F\x02\x02\u2E20\u2E21\x07K\x02\x02\u2E21\u2E22\x07X\x02\x02\u2E22\u07E4" + - "\x03\x02\x02\x02\u2E23\u2E24\x07O\x02\x02\u2E24\u2E25\x07Q\x02\x02\u2E25" + - "\u2E26\x07F\x02\x02\u2E26\u07E6\x03\x02\x02\x02\u2E27\u2E28\x07?\x02\x02" + - "\u2E28\u07E8\x03\x02\x02\x02\u2E29\u2E2A\x07@\x02\x02\u2E2A\u07EA\x03" + - "\x02\x02\x02\u2E2B\u2E2C\x07>\x02\x02\u2E2C\u07EC\x03\x02\x02\x02\u2E2D" + - "\u2E2E\x07#\x02\x02\u2E2E\u07EE\x03\x02\x02\x02\u2E2F\u2E30\x07\x80\x02" + - "\x02\u2E30\u07F0\x03\x02\x02\x02\u2E31\u2E32\x07~\x02\x02\u2E32\u07F2" + - "\x03\x02\x02\x02\u2E33\u2E34\x07(\x02\x02\u2E34\u07F4\x03\x02\x02\x02" + - "\u2E35\u2E36\x07`\x02\x02\u2E36\u07F6\x03\x02\x02\x02\u2E37\u2E38\x07" + - "0\x02\x02\u2E38\u07F8\x03\x02\x02\x02\u2E39\u2E3A\x07*\x02\x02\u2E3A\u07FA" + - "\x03\x02\x02\x02\u2E3B\u2E3C\x07+\x02\x02\u2E3C\u07FC\x03\x02\x02\x02" + - "\u2E3D\u2E3E\x07.\x02\x02\u2E3E\u07FE\x03\x02\x02\x02\u2E3F\u2E40\x07" + - "=\x02\x02\u2E40\u0800\x03\x02\x02\x02\u2E41\u2E42\x07B\x02\x02\u2E42\u0802" + - "\x03\x02\x02\x02\u2E43\u2E44\x072\x02\x02\u2E44\u0804\x03\x02\x02\x02" + - "\u2E45\u2E46\x073\x02\x02\u2E46\u0806\x03\x02\x02\x02\u2E47\u2E48\x07" + - "4\x02\x02\u2E48\u0808\x03\x02\x02\x02\u2E49\u2E4A\x07)\x02\x02\u2E4A\u080A" + - "\x03\x02\x02\x02\u2E4B\u2E4C\x07$\x02\x02\u2E4C\u080C\x03\x02\x02\x02" + - "\u2E4D\u2E4E\x07b\x02\x02\u2E4E\u080E\x03\x02\x02\x02\u2E4F\u2E50\x07" + - "<\x02\x02\u2E50\u0810\x03\x02\x02\x02\u2E51\u2E55\x05\u0809\u0405\x02" + - "\u2E52\u2E55\x05\u080B\u0406\x02\u2E53\u2E55\x05\u080D\u0407\x02\u2E54" + - "\u2E51\x03\x02\x02\x02\u2E54\u2E52\x03\x02\x02\x02\u2E54\u2E53\x03\x02" + - "\x02\x02\u2E55\u0812\x03\x02\x02\x02\u2E56\u2E57\x07b\x02\x02\u2E57\u2E58" + - "\x05\u0833\u041A\x02\u2E58\u2E59\x07b\x02\x02\u2E59\u0814\x03\x02\x02" + - "\x02\u2E5A\u2E5C\x05\u0841\u0421\x02\u2E5B\u2E5A\x03\x02\x02\x02\u2E5C" + - "\u2E5D\x03\x02\x02\x02\u2E5D\u2E5B\x03\x02\x02\x02\u2E5D\u2E5E\x03\x02" + - "\x02\x02\u2E5E\u2E5F\x03\x02\x02\x02\u2E5F\u2E60\t\x04\x02\x02\u2E60\u0816" + - "\x03\x02\x02\x02\u2E61\u2E62\x07P\x02\x02\u2E62\u2E63\x05\u083B\u041E" + - "\x02\u2E63\u0818\x03\x02\x02\x02\u2E64\u2E68\x05\u0839\u041D\x02\u2E65" + - "\u2E68\x05\u083B\u041E\x02\u2E66\u2E68\x05\u083D\u041F\x02\u2E67\u2E64" + - "\x03\x02\x02\x02\u2E67\u2E65\x03\x02\x02\x02\u2E67\u2E66\x03\x02\x02\x02" + - "\u2E68\u081A\x03\x02\x02\x02\u2E69\u2E6B\x05\u0841\u0421\x02\u2E6A\u2E69" + - "\x03\x02\x02\x02\u2E6B\u2E6C\x03\x02\x02\x02\u2E6C\u2E6A\x03\x02\x02\x02" + - "\u2E6C\u2E6D\x03\x02\x02\x02\u2E6D\u081C\x03\x02\x02\x02\u2E6E\u2E6F\x07" + - "Z\x02\x02\u2E6F\u2E73\x07)\x02\x02\u2E70\u2E71\x05\u083F\u0420\x02\u2E71" + - "\u2E72\x05\u083F\u0420\x02\u2E72\u2E74\x03\x02\x02\x02\u2E73\u2E70\x03" + - "\x02\x02\x02\u2E74\u2E75\x03\x02\x02\x02\u2E75\u2E73\x03\x02\x02\x02\u2E75" + - "\u2E76\x03\x02\x02\x02\u2E76\u2E77\x03\x02\x02\x02\u2E77\u2E78\x07)\x02" + - "\x02\u2E78\u2E82\x03\x02\x02\x02\u2E79\u2E7A\x072\x02\x02\u2E7A\u2E7B" + - "\x07Z\x02\x02\u2E7B\u2E7D\x03\x02\x02\x02\u2E7C\u2E7E\x05\u083F\u0420" + - "\x02\u2E7D\u2E7C\x03\x02\x02\x02\u2E7E\u2E7F\x03\x02\x02\x02\u2E7F\u2E7D" + - "\x03\x02\x02\x02\u2E7F\u2E80\x03\x02\x02\x02\u2E80\u2E82\x03\x02\x02\x02" + - "\u2E81\u2E6E\x03\x02\x02\x02\u2E81\u2E79\x03\x02\x02\x02\u2E82\u081E\x03" + - "\x02\x02\x02\u2E83\u2E85\x05\u0841\u0421\x02\u2E84\u2E83\x03\x02\x02\x02" + - "\u2E85\u2E86\x03\x02\x02\x02\u2E86\u2E84\x03\x02\x02\x02\u2E86\u2E87\x03" + - "\x02\x02\x02\u2E87\u2E89\x03\x02\x02\x02\u2E88\u2E84\x03\x02\x02\x02\u2E88" + - "\u2E89\x03\x02\x02\x02\u2E89\u2E8A\x03\x02\x02\x02\u2E8A\u2E8C\x070\x02" + - "\x02\u2E8B\u2E8D\x05\u0841\u0421\x02\u2E8C\u2E8B\x03\x02\x02\x02\u2E8D" + - "\u2E8E\x03\x02\x02\x02\u2E8E\u2E8C\x03\x02\x02\x02\u2E8E\u2E8F\x03\x02" + - "\x02\x02\u2E8F\u2EAF\x03\x02\x02\x02\u2E90\u2E92\x05\u0841\u0421\x02\u2E91" + - "\u2E90\x03\x02\x02\x02\u2E92\u2E93\x03\x02\x02\x02\u2E93\u2E91\x03\x02" + - "\x02\x02\u2E93\u2E94\x03\x02\x02\x02\u2E94\u2E95\x03\x02\x02\x02\u2E95" + - "\u2E96\x070\x02\x02\u2E96\u2E97\x05\u0835\u041B\x02\u2E97\u2EAF\x03\x02" + - "\x02\x02\u2E98\u2E9A\x05\u0841\u0421\x02\u2E99\u2E98\x03\x02\x02\x02\u2E9A" + - "\u2E9B\x03\x02\x02\x02\u2E9B\u2E99\x03\x02\x02\x02\u2E9B\u2E9C\x03\x02" + - "\x02\x02\u2E9C\u2E9E\x03\x02\x02\x02\u2E9D\u2E99\x03\x02\x02\x02\u2E9D" + - "\u2E9E\x03\x02\x02\x02\u2E9E\u2E9F\x03\x02\x02\x02\u2E9F\u2EA1\x070\x02" + - "\x02\u2EA0\u2EA2\x05\u0841\u0421\x02\u2EA1\u2EA0\x03\x02\x02\x02\u2EA2" + - "\u2EA3\x03\x02\x02\x02\u2EA3\u2EA1\x03\x02\x02\x02\u2EA3\u2EA4\x03\x02" + - "\x02\x02\u2EA4\u2EA5\x03\x02\x02\x02\u2EA5\u2EA6\x05\u0835\u041B\x02\u2EA6" + - "\u2EAF\x03\x02\x02\x02\u2EA7\u2EA9\x05\u0841\u0421\x02\u2EA8\u2EA7\x03" + - "\x02\x02\x02\u2EA9\u2EAA\x03\x02\x02\x02\u2EAA\u2EA8\x03\x02\x02\x02\u2EAA" + - "\u2EAB\x03\x02\x02\x02\u2EAB\u2EAC\x03\x02\x02\x02\u2EAC\u2EAD\x05\u0835" + - "\u041B\x02\u2EAD\u2EAF\x03\x02\x02\x02\u2EAE\u2E88\x03\x02\x02\x02\u2EAE" + - "\u2E91\x03\x02\x02\x02\u2EAE\u2E9D\x03\x02\x02\x02\u2EAE\u2EA8\x03\x02" + - "\x02\x02\u2EAF\u0820\x03\x02\x02\x02\u2EB0\u2EB1\x07^\x02\x02\u2EB1\u2EB2" + - "\x07P\x02\x02\u2EB2\u0822\x03\x02\x02\x02\u2EB3\u2EB4\x05\u0843\u0422" + - "\x02\u2EB4\u0824\x03\x02\x02\x02\u2EB5\u2EB6\x07a\x02\x02\u2EB6\u2EB7" + - "\x05\u0833\u041A\x02\u2EB7\u0826\x03\x02\x02\x02\u2EB8\u2EB9\x070\x02" + - "\x02\u2EB9\u2EBA\x05\u0837\u041C\x02\u2EBA\u0828\x03\x02\x02\x02\u2EBB" + - "\u2EBC\x05\u0837\u041C\x02\u2EBC\u082A\x03\x02\x02\x02\u2EBD\u2EBF\x07" + - "b\x02\x02\u2EBE\u2EC0\n\x05\x02\x02\u2EBF\u2EBE\x03\x02\x02\x02\u2EC0" + - "\u2EC1\x03\x02\x02\x02\u2EC1\u2EBF\x03\x02\x02\x02\u2EC1\u2EC2\x03\x02" + - "\x02\x02\u2EC2\u2EC3\x03\x02\x02\x02\u2EC3\u2EC4\x07b\x02\x02\u2EC4\u082C" + - "\x03\x02\x02\x02\u2EC5\u2ECA\x05\u083B\u041E\x02\u2EC6\u2ECA\x05\u0839" + - "\u041D\x02\u2EC7\u2ECA\x05\u083D\u041F\x02\u2EC8\u2ECA\x05\u0837\u041C" + - "\x02\u2EC9\u2EC5\x03\x02\x02\x02\u2EC9\u2EC6\x03\x02\x02\x02\u2EC9\u2EC7" + - "\x03\x02\x02\x02\u2EC9\u2EC8\x03\x02\x02\x02\u2ECA\u2ECB\x03\x02\x02\x02" + - "\u2ECB\u2ED0\x07B\x02\x02\u2ECC\u2ED1\x05\u083B\u041E\x02\u2ECD\u2ED1" + - "\x05\u0839\u041D\x02\u2ECE\u2ED1\x05\u083D\u041F\x02\u2ECF\u2ED1\x05\u0837" + - "\u041C\x02\u2ED0\u2ECC\x03\x02\x02\x02\u2ED0\u2ECD\x03\x02\x02\x02\u2ED0" + - "\u2ECE\x03\x02\x02\x02\u2ED0\u2ECF\x03\x02\x02\x02\u2ED1\u082E\x03\x02" + - "\x02\x02\u2ED2\u2EDB\x07B\x02\x02\u2ED3\u2ED5\t\x06\x02\x02\u2ED4\u2ED3" + - "\x03\x02\x02\x02\u2ED5\u2ED6\x03\x02\x02\x02\u2ED6\u2ED4\x03\x02\x02\x02" + - "\u2ED6\u2ED7\x03\x02\x02\x02\u2ED7\u2EDC\x03\x02\x02\x02\u2ED8\u2EDC\x05" + - "\u083B\u041E\x02\u2ED9\u2EDC\x05\u0839\u041D\x02\u2EDA\u2EDC\x05\u083D" + - "\u041F\x02\u2EDB\u2ED4\x03\x02\x02\x02\u2EDB\u2ED8\x03\x02\x02\x02\u2EDB" + - "\u2ED9\x03\x02\x02\x02\u2EDB\u2EDA\x03\x02\x02\x02\u2EDC\u0830\x03\x02" + - "\x02\x02\u2EDD\u2EDE\x07B\x02\x02\u2EDE\u2EE5\x07B\x02\x02\u2EDF\u2EE1" + - "\t\x06\x02\x02\u2EE0\u2EDF\x03\x02\x02\x02\u2EE1\u2EE2\x03\x02\x02\x02" + - "\u2EE2\u2EE0\x03\x02\x02\x02\u2EE2\u2EE3\x03\x02\x02\x02\u2EE3\u2EE6\x03" + - "\x02\x02\x02\u2EE4\u2EE6\x05\u083D\u041F\x02\u2EE5\u2EE0\x03\x02\x02\x02" + - "\u2EE5\u2EE4\x03\x02\x02\x02\u2EE6\u0832\x03\x02\x02\x02\u2EE7\u2F11\x05" + - "\u04FB\u027E\x02\u2EE8\u2F11\x05\u04FD\u027F\x02\u2EE9\u2F11\x05\u04FF" + - "\u0280\x02\u2EEA\u2F11\x05\u01A1\xD1\x02\u2EEB\u2F11\x05\u0501\u0281\x02" + - "\u2EEC\u2F11\x05\u0503\u0282\x02\u2EED\u2F11\x05\u0505\u0283\x02\u2EEE" + - "\u2F11\x05\u0507\u0284\x02\u2EEF\u2F11\x05\u0509\u0285\x02\u2EF0\u2F11" + - "\x05\u050B\u0286\x02\u2EF1\u2F11\x05\u050D\u0287\x02\u2EF2\u2F11\x05\u050F" + - "\u0288\x02\u2EF3\u2F11\x05\u0511\u0289\x02\u2EF4\u2F11\x05\u0513\u028A" + - "\x02\u2EF5\u2F11\x05\u0515\u028B\x02\u2EF6\u2F11\x05\u0517\u028C\x02\u2EF7" + - "\u2F11\x05\u0519\u028D\x02\u2EF8\u2F11\x05\u051B\u028E\x02\u2EF9\u2F11" + - "\x05\u051D\u028F\x02\u2EFA\u2F11\x05\u051F\u0290\x02\u2EFB\u2F11\x05\u0521" + - "\u0291\x02\u2EFC\u2F11\x05\u0523\u0292\x02\u2EFD\u2F11\x05\u0525\u0293" + - "\x02\u2EFE\u2F11\x05"; - private static readonly _serializedATNSegment20: string = - "\u0527\u0294\x02\u2EFF\u2F11\x05\u0529\u0295\x02\u2F00\u2F11\x05\u052B" + - "\u0296\x02\u2F01\u2F11\x05\u052D\u0297\x02\u2F02\u2F11\x05\u052F\u0298" + - "\x02\u2F03\u2F11\x05\u0531\u0299\x02\u2F04\u2F11\x05\u0533\u029A\x02\u2F05" + - "\u2F11\x05\u0535\u029B\x02\u2F06\u2F11\x05\u0537\u029C\x02\u2F07\u2F11" + - "\x05\u0539\u029D\x02\u2F08\u2F11\x05\u053B\u029E\x02\u2F09\u2F11\x05\u053D" + - "\u029F\x02\u2F0A\u2F11\x05\u053F\u02A0\x02\u2F0B\u2F11\x05\u0541\u02A1" + - "\x02\u2F0C\u2F11\x05\u0543\u02A2\x02\u2F0D\u2F11\x05\u0545\u02A3\x02\u2F0E" + - "\u2F11\x05\u0547\u02A4\x02\u2F0F\u2F11\x05\u0549\u02A5\x02\u2F10\u2EE7" + - "\x03\x02\x02\x02\u2F10\u2EE8\x03\x02\x02\x02\u2F10\u2EE9\x03\x02\x02\x02" + - "\u2F10\u2EEA\x03\x02\x02\x02\u2F10\u2EEB\x03\x02\x02\x02\u2F10\u2EEC\x03" + - "\x02\x02\x02\u2F10\u2EED\x03\x02\x02\x02\u2F10\u2EEE\x03\x02\x02\x02\u2F10" + - "\u2EEF\x03\x02\x02\x02\u2F10\u2EF0\x03\x02\x02\x02\u2F10\u2EF1\x03\x02" + - "\x02\x02\u2F10\u2EF2\x03\x02\x02\x02\u2F10\u2EF3\x03\x02\x02\x02\u2F10" + - "\u2EF4\x03\x02\x02\x02\u2F10\u2EF5\x03\x02\x02\x02\u2F10\u2EF6\x03\x02" + - "\x02\x02\u2F10\u2EF7\x03\x02\x02\x02\u2F10\u2EF8\x03\x02\x02\x02\u2F10" + - "\u2EF9\x03\x02\x02\x02\u2F10\u2EFA\x03\x02\x02\x02\u2F10\u2EFB\x03\x02" + - "\x02\x02\u2F10\u2EFC\x03\x02\x02\x02\u2F10\u2EFD\x03\x02\x02\x02\u2F10" + - "\u2EFE\x03\x02\x02\x02\u2F10\u2EFF\x03\x02\x02\x02\u2F10\u2F00\x03\x02" + - "\x02\x02\u2F10\u2F01\x03\x02\x02\x02\u2F10\u2F02\x03\x02\x02\x02\u2F10" + - "\u2F03\x03\x02\x02\x02\u2F10\u2F04\x03\x02\x02\x02\u2F10\u2F05\x03\x02" + - "\x02\x02\u2F10\u2F06\x03\x02\x02\x02\u2F10\u2F07\x03\x02\x02\x02\u2F10" + - "\u2F08\x03\x02\x02\x02\u2F10\u2F09\x03\x02\x02\x02\u2F10\u2F0A\x03\x02" + - "\x02\x02\u2F10\u2F0B\x03\x02\x02\x02\u2F10\u2F0C\x03\x02\x02\x02\u2F10" + - "\u2F0D\x03\x02\x02\x02\u2F10\u2F0E\x03\x02\x02\x02\u2F10\u2F0F\x03\x02" + - "\x02\x02\u2F11\u0834\x03\x02\x02\x02\u2F12\u2F14\x07G\x02\x02\u2F13\u2F15" + - "\t\x07\x02\x02\u2F14\u2F13\x03\x02\x02\x02\u2F14\u2F15\x03\x02\x02\x02" + - "\u2F15\u2F17\x03\x02\x02\x02\u2F16\u2F18\x05\u0841\u0421\x02\u2F17\u2F16" + - "\x03\x02\x02\x02\u2F18\u2F19\x03\x02\x02\x02\u2F19\u2F17\x03\x02\x02\x02" + - "\u2F19\u2F1A\x03\x02\x02\x02\u2F1A\u0836\x03\x02\x02\x02\u2F1B\u2F1D\t" + - "\b\x02\x02\u2F1C\u2F1B\x03\x02\x02\x02\u2F1D\u2F20\x03\x02\x02\x02\u2F1E" + - "\u2F1F\x03\x02\x02\x02\u2F1E\u2F1C\x03\x02\x02\x02\u2F1F\u2F22\x03\x02" + - "\x02\x02\u2F20\u2F1E\x03\x02\x02\x02\u2F21\u2F23\t\t\x02\x02\u2F22\u2F21" + - "\x03\x02\x02\x02\u2F23\u2F24\x03\x02\x02\x02\u2F24\u2F25\x03\x02\x02\x02" + - "\u2F24\u2F22\x03\x02\x02\x02\u2F25\u2F29\x03\x02\x02\x02\u2F26\u2F28\t" + - "\b\x02\x02\u2F27\u2F26\x03\x02\x02\x02\u2F28\u2F2B\x03\x02\x02\x02\u2F29" + - "\u2F27\x03\x02\x02\x02\u2F29\u2F2A\x03\x02\x02\x02\u2F2A\u0838\x03\x02" + - "\x02\x02\u2F2B\u2F29\x03\x02\x02\x02\u2F2C\u2F34\x07$\x02\x02\u2F2D\u2F2E" + - "\x07^\x02\x02\u2F2E\u2F33\v\x02\x02\x02\u2F2F\u2F30\x07$\x02\x02\u2F30" + - "\u2F33\x07$\x02\x02\u2F31\u2F33\n\n\x02\x02\u2F32\u2F2D\x03\x02\x02\x02" + - "\u2F32\u2F2F\x03\x02\x02\x02\u2F32\u2F31\x03\x02\x02\x02\u2F33\u2F36\x03" + - "\x02\x02\x02\u2F34\u2F32\x03\x02\x02\x02\u2F34\u2F35\x03\x02\x02\x02\u2F35" + - "\u2F37\x03\x02\x02\x02\u2F36\u2F34\x03\x02\x02\x02\u2F37\u2F38\x07$\x02" + - "\x02\u2F38\u083A\x03\x02\x02\x02\u2F39\u2F41\x07)\x02\x02\u2F3A\u2F3B" + - "\x07^\x02\x02\u2F3B\u2F40\v\x02\x02\x02\u2F3C\u2F3D\x07)\x02\x02\u2F3D" + - "\u2F40\x07)\x02\x02\u2F3E\u2F40\n\v\x02\x02\u2F3F\u2F3A\x03\x02\x02\x02" + - "\u2F3F\u2F3C\x03\x02\x02\x02\u2F3F\u2F3E\x03\x02\x02\x02\u2F40\u2F43\x03" + - "\x02\x02\x02\u2F41\u2F3F\x03\x02\x02\x02\u2F41\u2F42\x03\x02\x02\x02\u2F42" + - "\u2F44\x03\x02\x02\x02\u2F43\u2F41\x03\x02\x02\x02\u2F44\u2F45\x07)\x02" + - "\x02\u2F45\u083C\x03\x02\x02\x02\u2F46\u2F4E\x07b\x02\x02\u2F47\u2F48" + - "\x07^\x02\x02\u2F48\u2F4D\v\x02\x02\x02\u2F49\u2F4A\x07b\x02\x02\u2F4A" + - "\u2F4D\x07b\x02\x02\u2F4B\u2F4D\n\f\x02\x02\u2F4C\u2F47\x03\x02\x02\x02" + - "\u2F4C\u2F49\x03\x02\x02\x02\u2F4C\u2F4B\x03\x02\x02\x02\u2F4D\u2F50\x03" + - "\x02\x02\x02\u2F4E\u2F4C\x03\x02\x02\x02\u2F4E\u2F4F\x03\x02\x02\x02\u2F4F" + - "\u2F51\x03\x02\x02\x02\u2F50\u2F4E\x03\x02\x02\x02\u2F51\u2F52\x07b\x02" + - "\x02\u2F52\u083E\x03\x02\x02\x02\u2F53\u2F54\t\r\x02\x02\u2F54\u0840\x03" + - "\x02\x02\x02\u2F55\u2F56\t\x0E\x02\x02\u2F56\u0842\x03\x02\x02\x02\u2F57" + - "\u2F58\x07D\x02\x02\u2F58\u2F5A\x07)\x02\x02\u2F59\u2F5B\t\x0F\x02\x02" + - "\u2F5A\u2F59\x03\x02\x02\x02\u2F5B\u2F5C\x03\x02\x02\x02\u2F5C\u2F5A\x03" + - "\x02\x02\x02\u2F5C\u2F5D\x03\x02\x02\x02\u2F5D\u2F5E\x03\x02\x02\x02\u2F5E" + - "\u2F5F\x07)\x02\x02\u2F5F\u0844\x03\x02\x02\x02\u2F60\u2F61\v\x02\x02" + - "\x02\u2F61\u2F62\x03\x02\x02\x02\u2F62\u2F63\b\u0423\x04\x02\u2F63\u0846" + - "\x03\x02\x02\x023\x02\u084A\u0855\u0862\u086D\u0872\u0876\u087A\u0880" + - "\u0884\u0886\u1E76\u1E91\u2E54\u2E5D\u2E67\u2E6C\u2E75\u2E7F\u2E81\u2E86" + - "\u2E88\u2E8E\u2E93\u2E9B\u2E9D\u2EA3\u2EAA\u2EAE\u2EC1\u2EC9\u2ED0\u2ED6" + - "\u2EDB\u2EE2\u2EE5\u2F10\u2F14\u2F19\u2F1E\u2F24\u2F29\u2F32\u2F34\u2F3F" + - "\u2F41\u2F4C\u2F4E\u2F5C\x05\x02\x03\x02\x02\x04\x02\x02\x05\x02"; - public static readonly _serializedATN: string = Utils.join( - [ - SqlLexer._serializedATNSegment0, - SqlLexer._serializedATNSegment1, - SqlLexer._serializedATNSegment2, - SqlLexer._serializedATNSegment3, - SqlLexer._serializedATNSegment4, - SqlLexer._serializedATNSegment5, - SqlLexer._serializedATNSegment6, - SqlLexer._serializedATNSegment7, - SqlLexer._serializedATNSegment8, - SqlLexer._serializedATNSegment9, - SqlLexer._serializedATNSegment10, - SqlLexer._serializedATNSegment11, - SqlLexer._serializedATNSegment12, - SqlLexer._serializedATNSegment13, - SqlLexer._serializedATNSegment14, - SqlLexer._serializedATNSegment15, - SqlLexer._serializedATNSegment16, - SqlLexer._serializedATNSegment17, - SqlLexer._serializedATNSegment18, - SqlLexer._serializedATNSegment19, - SqlLexer._serializedATNSegment20, - ], - "", - ); - public static __ATN: ATN; - public static get _ATN(): ATN { - if (!SqlLexer.__ATN) { - SqlLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(SqlLexer._serializedATN)); - } - - return SqlLexer.__ATN; - } - -} - diff --git a/src/lib/generic/SqlParser.interp b/src/lib/generic/SqlParser.interp deleted file mode 100644 index d28b77e..0000000 --- a/src/lib/generic/SqlParser.interp +++ /dev/null @@ -1,2423 +0,0 @@ -token literal names: -null -null -null -null -null -'ADD' -'ALL' -'ALTER' -'ALWAYS' -'ANALYZE' -'AND' -'AS' -'ASC' -'BEFORE' -'BETWEEN' -'BOTH' -'BY' -'CALL' -'CASCADE' -'CASE' -'CAST' -'CHANGE' -'CHARACTER' -'CHECK' -'COLLATE' -'COLUMN' -'CONDITION' -'CONSTRAINT' -'CONTINUE' -'CONVERT' -'CREATE' -'CROSS' -'CURRENT' -'CURRENT_USER' -'CURSOR' -'DATABASE' -'DATABASES' -'DECLARE' -'DEFAULT' -'DELAYED' -'DELETE' -'DESC' -'DESCRIBE' -'DETERMINISTIC' -'DIAGNOSTICS' -'DISTINCT' -'DISTINCTROW' -'DROP' -'EACH' -'ELSE' -'ELSEIF' -'ENCLOSED' -'ESCAPED' -'EXISTS' -'EXIT' -'EXPLAIN' -'FALSE' -'FETCH' -'FOR' -'FORCE' -'FOREIGN' -'FROM' -'FULLTEXT' -'GENERATED' -'GET' -'GRANT' -'GROUP' -'HAVING' -'HIGH_PRIORITY' -'IF' -'IGNORE' -'IN' -'INDEX' -'INFILE' -'INNER' -'INOUT' -'INSERT' -'INTERVAL' -'INTO' -'IS' -'ITERATE' -'JOIN' -'KEY' -'KEYS' -'KILL' -'LEADING' -'LEAVE' -'LEFT' -'LIKE' -'LIMIT' -'LINEAR' -'LINES' -'LOAD' -'LOCK' -'LOOP' -'LOW_PRIORITY' -'MASTER_BIND' -'MASTER_SSL_VERIFY_SERVER_CERT' -'MATCH' -'MAXVALUE' -'MODIFIES' -'NATURAL' -'NOT' -'NO_WRITE_TO_BINLOG' -'NULL' -'NUMBER' -'ON' -'OPTIMIZE' -'OPTION' -'OPTIONALLY' -'OR' -'ORDER' -'OUT' -'OUTER' -'OUTFILE' -'PARTITION' -'PRIMARY' -'PROCEDURE' -'PURGE' -'RANGE' -'READ' -'READS' -'REFERENCES' -'REGEXP' -'RELEASE' -'RENAME' -'REPEAT' -'REPLACE' -'REQUIRE' -'RESIGNAL' -'RESTRICT' -'RETURN' -'REVOKE' -'RIGHT' -'RLIKE' -'SCHEMA' -'SCHEMAS' -'SELECT' -'SET' -'SEPARATOR' -'SHOW' -'SIGNAL' -'SPATIAL' -'SQL' -'SQLEXCEPTION' -'SQLSTATE' -'SQLWARNING' -'SQL_BIG_RESULT' -'SQL_CALC_FOUND_ROWS' -'SQL_SMALL_RESULT' -'SSL' -'STACKED' -'STARTING' -'STRAIGHT_JOIN' -'TABLE' -'TERMINATED' -'THEN' -'TO' -'TRAILING' -'TRIGGER' -'TRUE' -'UNDO' -'UNION' -'UNIQUE' -'UNLOCK' -'UNSIGNED' -'UPDATE' -'USAGE' -'USE' -'USING' -'VALUES' -'WHEN' -'WHERE' -'WHILE' -'WITH' -'WRITE' -'XOR' -'ZEROFILL' -'TINYINT' -'SMALLINT' -'MEDIUMINT' -'MIDDLEINT' -'INT' -'INT1' -'INT2' -'INT3' -'INT4' -'INT8' -'INTEGER' -'BIGINT' -'REAL' -'DOUBLE' -'PRECISION' -'FLOAT' -'FLOAT4' -'FLOAT8' -'DECIMAL' -'DEC' -'NUMERIC' -'DATE' -'TIME' -'TIMESTAMP' -'DATETIME' -'YEAR' -'CHAR' -'VARCHAR' -'NVARCHAR' -'NATIONAL' -'BINARY' -'VARBINARY' -'TINYBLOB' -'BLOB' -'MEDIUMBLOB' -'LONG' -'LONGBLOB' -'TINYTEXT' -'TEXT' -'MEDIUMTEXT' -'LONGTEXT' -'ENUM' -'VARYING' -'SERIAL' -'YEAR_MONTH' -'DAY_HOUR' -'DAY_MINUTE' -'DAY_SECOND' -'HOUR_MINUTE' -'HOUR_SECOND' -'MINUTE_SECOND' -'SECOND_MICROSECOND' -'MINUTE_MICROSECOND' -'HOUR_MICROSECOND' -'DAY_MICROSECOND' -'JSON_VALID' -'JSON_SCHEMA_VALID' -'AVG' -'BIT_AND' -'BIT_OR' -'BIT_XOR' -'COUNT' -'GROUP_CONCAT' -'MAX' -'MIN' -'STD' -'STDDEV' -'STDDEV_POP' -'STDDEV_SAMP' -'SUM' -'VAR_POP' -'VAR_SAMP' -'VARIANCE' -'CURRENT_DATE' -'CURRENT_TIME' -'CURRENT_TIMESTAMP' -'LOCALTIME' -'CURDATE' -'CURTIME' -'DATE_ADD' -'DATE_SUB' -'EXTRACT' -'LOCALTIMESTAMP' -'NOW' -'POSITION' -'SUBSTR' -'SUBSTRING' -'SYSDATE' -'TRIM' -'UTC_DATE' -'UTC_TIME' -'UTC_TIMESTAMP' -'ACCOUNT' -'ACTION' -'AFTER' -'AGGREGATE' -'ALGORITHM' -'ANY' -'AT' -'AUTHORS' -'AUTOCOMMIT' -'AUTOEXTEND_SIZE' -'AUTO_INCREMENT' -'AVG_ROW_LENGTH' -'BEGIN' -'BINLOG' -'BIT' -'BLOCK' -'BOOL' -'BOOLEAN' -'BTREE' -'CACHE' -'CASCADED' -'CHAIN' -'CHANGED' -'CHANNEL' -'CHECKSUM' -'PAGE_CHECKSUM' -'CIPHER' -'CLASS_ORIGIN' -'CLIENT' -'CLOSE' -'COALESCE' -'CODE' -'COLUMNS' -'COLUMN_FORMAT' -'COLUMN_NAME' -'COMMENT' -'COMMIT' -'COMPACT' -'COMPLETION' -'COMPRESSED' -'COMPRESSION' -'CONCURRENT' -'CONNECTION' -'CONSISTENT' -'CONSTRAINT_CATALOG' -'CONSTRAINT_SCHEMA' -'CONSTRAINT_NAME' -'CONTAINS' -'CONTEXT' -'CONTRIBUTORS' -'COPY' -'CPU' -'CURSOR_NAME' -'DATA' -'DATAFILE' -'DEALLOCATE' -'DEFAULT_AUTH' -'DEFINER' -'DELAY_KEY_WRITE' -'DES_KEY_FILE' -'DIRECTORY' -'DISABLE' -'DISCARD' -'DISK' -'DO' -'DUMPFILE' -'DUPLICATE' -'DYNAMIC' -'ENABLE' -'ENCRYPTION' -'END' -'ENDS' -'ENGINE' -'ENGINES' -'ERROR' -'ERRORS' -'ESCAPE' -'EVEN' -'EVENT' -'EVENTS' -'EVERY' -'EXCHANGE' -'EXCLUSIVE' -'EXPIRE' -'EXPORT' -'EXTENDED' -'EXTENT_SIZE' -'FAST' -'FAULTS' -'FIELDS' -'FILE_BLOCK_SIZE' -'FILTER' -'FIRST' -'FIXED' -'FLUSH' -'FOLLOWS' -'FOUND' -'FULL' -'FUNCTION' -'GENERAL' -'GLOBAL' -'GRANTS' -'GROUP_REPLICATION' -'HANDLER' -'HASH' -'HELP' -'HOST' -'HOSTS' -'IDENTIFIED' -'IGNORE_SERVER_IDS' -'IMPORT' -'INDEXES' -'INITIAL_SIZE' -'INPLACE' -'INSERT_METHOD' -'INSTALL' -'INSTANCE' -'INVISIBLE' -'INVOKER' -'IO' -'IO_THREAD' -'IPC' -'ISOLATION' -'ISSUER' -'JSON' -'KEY_BLOCK_SIZE' -'LANGUAGE' -'LAST' -'LEAVES' -'LESS' -'LEVEL' -'LIST' -'LOCAL' -'LOGFILE' -'LOGS' -'MASTER' -'MASTER_AUTO_POSITION' -'MASTER_CONNECT_RETRY' -'MASTER_DELAY' -'MASTER_HEARTBEAT_PERIOD' -'MASTER_HOST' -'MASTER_LOG_FILE' -'MASTER_LOG_POS' -'MASTER_PASSWORD' -'MASTER_PORT' -'MASTER_RETRY_COUNT' -'MASTER_SSL' -'MASTER_SSL_CA' -'MASTER_SSL_CAPATH' -'MASTER_SSL_CERT' -'MASTER_SSL_CIPHER' -'MASTER_SSL_CRL' -'MASTER_SSL_CRLPATH' -'MASTER_SSL_KEY' -'MASTER_TLS_VERSION' -'MASTER_USER' -'MAX_CONNECTIONS_PER_HOUR' -'MAX_QUERIES_PER_HOUR' -'MAX_ROWS' -'MAX_SIZE' -'MAX_UPDATES_PER_HOUR' -'MAX_USER_CONNECTIONS' -'MEDIUM' -'MERGE' -'MESSAGE_TEXT' -'MID' -'MIGRATE' -'MIN_ROWS' -'MODE' -'MODIFY' -'MUTEX' -'MYSQL' -'MYSQL_ERRNO' -'NAME' -'NAMES' -'NCHAR' -'NEVER' -'NEXT' -'NO' -'NODEGROUP' -'NONE' -'OFFLINE' -'OFFSET' -'OJ' -'OLD_PASSWORD' -'ONE' -'ONLINE' -'ONLY' -'OPEN' -'OPTIMIZER_COSTS' -'OPTIONS' -'OWNER' -'PACK_KEYS' -'PAGE' -'PARSER' -'PARTIAL' -'PARTITIONING' -'PARTITIONS' -'PASSWORD' -'PHASE' -'PLUGIN' -'PLUGIN_DIR' -'PLUGINS' -'PORT' -'PRECEDES' -'PREPARE' -'PRESERVE' -'PREV' -'PROCESSLIST' -'PROFILE' -'PROFILES' -'PROXY' -'QUERY' -'QUICK' -'REBUILD' -'RECOVER' -'REDO_BUFFER_SIZE' -'REDUNDANT' -'RELAY' -'RELAY_LOG_FILE' -'RELAY_LOG_POS' -'RELAYLOG' -'REMOVE' -'REORGANIZE' -'REPAIR' -'REPLICATE_DO_DB' -'REPLICATE_DO_TABLE' -'REPLICATE_IGNORE_DB' -'REPLICATE_IGNORE_TABLE' -'REPLICATE_REWRITE_DB' -'REPLICATE_WILD_DO_TABLE' -'REPLICATE_WILD_IGNORE_TABLE' -'REPLICATION' -'RESET' -'RESUME' -'RETURNED_SQLSTATE' -'RETURNS' -'ROLE' -'ROLLBACK' -'ROLLUP' -'ROTATE' -'ROW' -'ROWS' -'ROW_FORMAT' -'SAVEPOINT' -'SCHEDULE' -'SECURITY' -'SERVER' -'SESSION' -'SHARE' -'SHARED' -'SIGNED' -'SIMPLE' -'SLAVE' -'SLOW' -'SNAPSHOT' -'SOCKET' -'SOME' -'SONAME' -'SOUNDS' -'SOURCE' -'SQL_AFTER_GTIDS' -'SQL_AFTER_MTS_GAPS' -'SQL_BEFORE_GTIDS' -'SQL_BUFFER_RESULT' -'SQL_CACHE' -'SQL_NO_CACHE' -'SQL_THREAD' -'START' -'STARTS' -'STATS_AUTO_RECALC' -'STATS_PERSISTENT' -'STATS_SAMPLE_PAGES' -'STATUS' -'STOP' -'STORAGE' -'STORED' -'STRING' -'SUBCLASS_ORIGIN' -'SUBJECT' -'SUBPARTITION' -'SUBPARTITIONS' -'SUSPEND' -'SWAPS' -'SWITCHES' -'TABLE_NAME' -'TABLESPACE' -'TEMPORARY' -'TEMPTABLE' -'THAN' -'TRADITIONAL' -'TRANSACTION' -'TRANSACTIONAL' -'TRIGGERS' -'TRUNCATE' -'UNDEFINED' -'UNDOFILE' -'UNDO_BUFFER_SIZE' -'UNINSTALL' -'UNKNOWN' -'UNTIL' -'UPGRADE' -'USER' -'USE_FRM' -'USER_RESOURCES' -'VALIDATION' -'VALUE' -'VARIABLES' -'VIEW' -'VIRTUAL' -'VISIBLE' -'WAIT' -'WARNINGS' -'WITHOUT' -'WORK' -'WRAPPER' -'X509' -'XA' -'XML' -'EUR' -'USA' -'JIS' -'ISO' -'INTERNAL' -'QUARTER' -'MONTH' -'DAY' -'HOUR' -'MINUTE' -'WEEK' -'SECOND' -'MICROSECOND' -'TABLES' -'ROUTINE' -'EXECUTE' -'FILE' -'PROCESS' -'RELOAD' -'SHUTDOWN' -'SUPER' -'PRIVILEGES' -'APPLICATION_PASSWORD_ADMIN' -'AUDIT_ADMIN' -'BACKUP_ADMIN' -'BINLOG_ADMIN' -'BINLOG_ENCRYPTION_ADMIN' -'CLONE_ADMIN' -'CONNECTION_ADMIN' -'ENCRYPTION_KEY_ADMIN' -'FIREWALL_ADMIN' -'FIREWALL_USER' -'GROUP_REPLICATION_ADMIN' -'INNODB_REDO_LOG_ARCHIVE' -'NDB_STORED_USER' -'PERSIST_RO_VARIABLES_ADMIN' -'REPLICATION_APPLIER' -'REPLICATION_SLAVE_ADMIN' -'RESOURCE_GROUP_ADMIN' -'RESOURCE_GROUP_USER' -'ROLE_ADMIN' -null -'SET_USER_ID' -'SHOW_ROUTINE' -'SYSTEM_VARIABLES_ADMIN' -'TABLE_ENCRYPTION_ADMIN' -'VERSION_TOKEN_ADMIN' -'XA_RECOVER_ADMIN' -'ARMSCII8' -'ASCII' -'BIG5' -'CP1250' -'CP1251' -'CP1256' -'CP1257' -'CP850' -'CP852' -'CP866' -'CP932' -'DEC8' -'EUCJPMS' -'EUCKR' -'GB2312' -'GBK' -'GEOSTD8' -'GREEK' -'HEBREW' -'HP8' -'KEYBCS2' -'KOI8R' -'KOI8U' -'LATIN1' -'LATIN2' -'LATIN5' -'LATIN7' -'MACCE' -'MACROMAN' -'SJIS' -'SWE7' -'TIS620' -'UCS2' -'UJIS' -'UTF16' -'UTF16LE' -'UTF32' -'UTF8' -'UTF8MB3' -'UTF8MB4' -'ARCHIVE' -'BLACKHOLE' -'CSV' -'FEDERATED' -'INNODB' -'MEMORY' -'MRG_MYISAM' -'MYISAM' -'NDB' -'NDBCLUSTER' -'PERFORMANCE_SCHEMA' -'TOKUDB' -'REPEATABLE' -'COMMITTED' -'UNCOMMITTED' -'SERIALIZABLE' -'GEOMETRYCOLLECTION' -'GEOMCOLLECTION' -'GEOMETRY' -'LINESTRING' -'MULTILINESTRING' -'MULTIPOINT' -'MULTIPOLYGON' -'POINT' -'POLYGON' -'ABS' -'ACOS' -'ADDDATE' -'ADDTIME' -'AES_DECRYPT' -'AES_ENCRYPT' -'AREA' -'ASBINARY' -'ASIN' -'ASTEXT' -'ASWKB' -'ASWKT' -'ASYMMETRIC_DECRYPT' -'ASYMMETRIC_DERIVE' -'ASYMMETRIC_ENCRYPT' -'ASYMMETRIC_SIGN' -'ASYMMETRIC_VERIFY' -'ATAN' -'ATAN2' -'BENCHMARK' -'BIN' -'BIT_COUNT' -'BIT_LENGTH' -'BUFFER' -'CATALOG_NAME' -'CEIL' -'CEILING' -'CENTROID' -'CHARACTER_LENGTH' -'CHARSET' -'CHAR_LENGTH' -'COERCIBILITY' -'COLLATION' -'COMPRESS' -'CONCAT' -'CONCAT_WS' -'CONNECTION_ID' -'CONV' -'CONVERT_TZ' -'COS' -'COT' -'CRC32' -'CREATE_ASYMMETRIC_PRIV_KEY' -'CREATE_ASYMMETRIC_PUB_KEY' -'CREATE_DH_PARAMETERS' -'CREATE_DIGEST' -'CROSSES' -'DATEDIFF' -'DATE_FORMAT' -'DAYNAME' -'DAYOFMONTH' -'DAYOFWEEK' -'DAYOFYEAR' -'DECODE' -'DEGREES' -'DES_DECRYPT' -'DES_ENCRYPT' -'DIMENSION' -'DISJOINT' -'ELT' -'ENCODE' -'ENCRYPT' -'ENDPOINT' -'ENVELOPE' -'EQUALS' -'EXP' -'EXPORT_SET' -'EXTERIORRING' -'EXTRACTVALUE' -'FIELD' -'FIND_IN_SET' -'FLOOR' -'FORMAT' -'FOUND_ROWS' -'FROM_BASE64' -'FROM_DAYS' -'FROM_UNIXTIME' -'GEOMCOLLFROMTEXT' -'GEOMCOLLFROMWKB' -'GEOMETRYCOLLECTIONFROMTEXT' -'GEOMETRYCOLLECTIONFROMWKB' -'GEOMETRYFROMTEXT' -'GEOMETRYFROMWKB' -'GEOMETRYN' -'GEOMETRYTYPE' -'GEOMFROMTEXT' -'GEOMFROMWKB' -'GET_FORMAT' -'GET_LOCK' -'GLENGTH' -'GREATEST' -'GTID_SUBSET' -'GTID_SUBTRACT' -'HEX' -'IFNULL' -'INET6_ATON' -'INET6_NTOA' -'INET_ATON' -'INET_NTOA' -'INSTR' -'INTERIORRINGN' -'INTERSECTS' -'ISCLOSED' -'ISEMPTY' -'ISNULL' -'ISSIMPLE' -'IS_FREE_LOCK' -'IS_IPV4' -'IS_IPV4_COMPAT' -'IS_IPV4_MAPPED' -'IS_IPV6' -'IS_USED_LOCK' -'LAST_INSERT_ID' -'LCASE' -'LEAST' -'LENGTH' -'LINEFROMTEXT' -'LINEFROMWKB' -'LINESTRINGFROMTEXT' -'LINESTRINGFROMWKB' -'LN' -'LOAD_FILE' -'LOCATE' -'LOG' -'LOG10' -'LOG2' -'LOWER' -'LPAD' -'LTRIM' -'MAKEDATE' -'MAKETIME' -'MAKE_SET' -'MASTER_POS_WAIT' -'MBRCONTAINS' -'MBRDISJOINT' -'MBREQUAL' -'MBRINTERSECTS' -'MBROVERLAPS' -'MBRTOUCHES' -'MBRWITHIN' -'MD5' -'MLINEFROMTEXT' -'MLINEFROMWKB' -'MONTHNAME' -'MPOINTFROMTEXT' -'MPOINTFROMWKB' -'MPOLYFROMTEXT' -'MPOLYFROMWKB' -'MULTILINESTRINGFROMTEXT' -'MULTILINESTRINGFROMWKB' -'MULTIPOINTFROMTEXT' -'MULTIPOINTFROMWKB' -'MULTIPOLYGONFROMTEXT' -'MULTIPOLYGONFROMWKB' -'NAME_CONST' -'NULLIF' -'NUMGEOMETRIES' -'NUMINTERIORRINGS' -'NUMPOINTS' -'OCT' -'OCTET_LENGTH' -'ORD' -'OVERLAPS' -'PERIOD_ADD' -'PERIOD_DIFF' -'PI' -'POINTFROMTEXT' -'POINTFROMWKB' -'POINTN' -'POLYFROMTEXT' -'POLYFROMWKB' -'POLYGONFROMTEXT' -'POLYGONFROMWKB' -'POW' -'POWER' -'QUOTE' -'RADIANS' -'RAND' -'RANDOM_BYTES' -'RELEASE_LOCK' -'REVERSE' -'ROUND' -'ROW_COUNT' -'RPAD' -'RTRIM' -'SEC_TO_TIME' -'SESSION_USER' -'SHA' -'SHA1' -'SHA2' -'SCHEMA_NAME' -'SIGN' -'SIN' -'SLEEP' -'SOUNDEX' -'SQL_THREAD_WAIT_AFTER_GTIDS' -'SQRT' -'SRID' -'STARTPOINT' -'STRCMP' -'STR_TO_DATE' -'ST_AREA' -'ST_ASBINARY' -'ST_ASTEXT' -'ST_ASWKB' -'ST_ASWKT' -'ST_BUFFER' -'ST_CENTROID' -'ST_CONTAINS' -'ST_CROSSES' -'ST_DIFFERENCE' -'ST_DIMENSION' -'ST_DISJOINT' -'ST_DISTANCE' -'ST_ENDPOINT' -'ST_ENVELOPE' -'ST_EQUALS' -'ST_EXTERIORRING' -'ST_GEOMCOLLFROMTEXT' -'ST_GEOMCOLLFROMTXT' -'ST_GEOMCOLLFROMWKB' -'ST_GEOMETRYCOLLECTIONFROMTEXT' -'ST_GEOMETRYCOLLECTIONFROMWKB' -'ST_GEOMETRYFROMTEXT' -'ST_GEOMETRYFROMWKB' -'ST_GEOMETRYN' -'ST_GEOMETRYTYPE' -'ST_GEOMFROMTEXT' -'ST_GEOMFROMWKB' -'ST_INTERIORRINGN' -'ST_INTERSECTION' -'ST_INTERSECTS' -'ST_ISCLOSED' -'ST_ISEMPTY' -'ST_ISSIMPLE' -'ST_LINEFROMTEXT' -'ST_LINEFROMWKB' -'ST_LINESTRINGFROMTEXT' -'ST_LINESTRINGFROMWKB' -'ST_NUMGEOMETRIES' -'ST_NUMINTERIORRING' -'ST_NUMINTERIORRINGS' -'ST_NUMPOINTS' -'ST_OVERLAPS' -'ST_POINTFROMTEXT' -'ST_POINTFROMWKB' -'ST_POINTN' -'ST_POLYFROMTEXT' -'ST_POLYFROMWKB' -'ST_POLYGONFROMTEXT' -'ST_POLYGONFROMWKB' -'ST_SRID' -'ST_STARTPOINT' -'ST_SYMDIFFERENCE' -'ST_TOUCHES' -'ST_UNION' -'ST_WITHIN' -'ST_X' -'ST_Y' -'SUBDATE' -'SUBSTRING_INDEX' -'SUBTIME' -'SYSTEM_USER' -'TAN' -'TIMEDIFF' -'TIMESTAMPADD' -'TIMESTAMPDIFF' -'TIME_FORMAT' -'TIME_TO_SEC' -'TOUCHES' -'TO_BASE64' -'TO_DAYS' -'TO_SECONDS' -'UCASE' -'UNCOMPRESS' -'UNCOMPRESSED_LENGTH' -'UNHEX' -'UNIX_TIMESTAMP' -'UPDATEXML' -'UPPER' -'UUID' -'UUID_SHORT' -'VALIDATE_PASSWORD_STRENGTH' -'VERSION' -'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' -'WEEKDAY' -'WEEKOFYEAR' -'WEIGHT_STRING' -'WITHIN' -'YEARWEEK' -'Y' -'X' -':=' -'+=' -'-=' -'*=' -'/=' -'%=' -'&=' -'^=' -'|=' -'*' -'/' -'%' -'+' -'--' -'-' -'DIV' -'MOD' -'=' -'>' -'<' -'!' -'~' -'|' -'&' -'^' -'.' -'(' -')' -',' -';' -'@' -'0' -'1' -'2' -'\'' -'"' -'`' -':' -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -SPACE -SPEC_MYSQL_COMMENT -COMMENT_INPUT -LINE_COMMENT -ADD -ALL -ALTER -ALWAYS -ANALYZE -AND -AS -ASC -BEFORE -BETWEEN -BOTH -BY -CALL -CASCADE -CASE -CAST -CHANGE -CHARACTER -CHECK -COLLATE -COLUMN -CONDITION -CONSTRAINT -CONTINUE -CONVERT -CREATE -CROSS -CURRENT -CURRENT_USER -CURSOR -DATABASE -DATABASES -DECLARE -DEFAULT -DELAYED -DELETE -DESC -DESCRIBE -DETERMINISTIC -DIAGNOSTICS -DISTINCT -DISTINCTROW -DROP -EACH -ELSE -ELSEIF -ENCLOSED -ESCAPED -EXISTS -EXIT -EXPLAIN -FALSE -FETCH -FOR -FORCE -FOREIGN -FROM -FULLTEXT -GENERATED -GET -GRANT -GROUP -HAVING -HIGH_PRIORITY -IF -IGNORE -IN -INDEX -INFILE -INNER -INOUT -INSERT -INTERVAL -INTO -IS -ITERATE -JOIN -KEY -KEYS -KILL -LEADING -LEAVE -LEFT -LIKE -LIMIT -LINEAR -LINES -LOAD -LOCK -LOOP -LOW_PRIORITY -MASTER_BIND -MASTER_SSL_VERIFY_SERVER_CERT -MATCH -MAXVALUE -MODIFIES -NATURAL -NOT -NO_WRITE_TO_BINLOG -NULL_LITERAL -NUMBER -ON -OPTIMIZE -OPTION -OPTIONALLY -OR -ORDER -OUT -OUTER -OUTFILE -PARTITION -PRIMARY -PROCEDURE -PURGE -RANGE -READ -READS -REFERENCES -REGEXP -RELEASE -RENAME -REPEAT -REPLACE -REQUIRE -RESIGNAL -RESTRICT -RETURN -REVOKE -RIGHT -RLIKE -SCHEMA -SCHEMAS -SELECT -SET -SEPARATOR -SHOW -SIGNAL -SPATIAL -SQL -SQLEXCEPTION -SQLSTATE -SQLWARNING -SQL_BIG_RESULT -SQL_CALC_FOUND_ROWS -SQL_SMALL_RESULT -SSL -STACKED -STARTING -STRAIGHT_JOIN -TABLE -TERMINATED -THEN -TO -TRAILING -TRIGGER -TRUE -UNDO -UNION -UNIQUE -UNLOCK -UNSIGNED -UPDATE -USAGE -USE -USING -VALUES -WHEN -WHERE -WHILE -WITH -WRITE -XOR -ZEROFILL -TINYINT -SMALLINT -MEDIUMINT -MIDDLEINT -INT -INT1 -INT2 -INT3 -INT4 -INT8 -INTEGER -BIGINT -REAL -DOUBLE -PRECISION -FLOAT -FLOAT4 -FLOAT8 -DECIMAL -DEC -NUMERIC -DATE -TIME -TIMESTAMP -DATETIME -YEAR -CHAR -VARCHAR -NVARCHAR -NATIONAL -BINARY -VARBINARY -TINYBLOB -BLOB -MEDIUMBLOB -LONG -LONGBLOB -TINYTEXT -TEXT -MEDIUMTEXT -LONGTEXT -ENUM -VARYING -SERIAL -YEAR_MONTH -DAY_HOUR -DAY_MINUTE -DAY_SECOND -HOUR_MINUTE -HOUR_SECOND -MINUTE_SECOND -SECOND_MICROSECOND -MINUTE_MICROSECOND -HOUR_MICROSECOND -DAY_MICROSECOND -JSON_VALID -JSON_SCHEMA_VALID -AVG -BIT_AND -BIT_OR -BIT_XOR -COUNT -GROUP_CONCAT -MAX -MIN -STD -STDDEV -STDDEV_POP -STDDEV_SAMP -SUM -VAR_POP -VAR_SAMP -VARIANCE -CURRENT_DATE -CURRENT_TIME -CURRENT_TIMESTAMP -LOCALTIME -CURDATE -CURTIME -DATE_ADD -DATE_SUB -EXTRACT -LOCALTIMESTAMP -NOW -POSITION -SUBSTR -SUBSTRING -SYSDATE -TRIM -UTC_DATE -UTC_TIME -UTC_TIMESTAMP -ACCOUNT -ACTION -AFTER -AGGREGATE -ALGORITHM -ANY -AT -AUTHORS -AUTOCOMMIT -AUTOEXTEND_SIZE -AUTO_INCREMENT -AVG_ROW_LENGTH -BEGIN -BINLOG -BIT -BLOCK -BOOL -BOOLEAN -BTREE -CACHE -CASCADED -CHAIN -CHANGED -CHANNEL -CHECKSUM -PAGE_CHECKSUM -CIPHER -CLASS_ORIGIN -CLIENT -CLOSE -COALESCE -CODE -COLUMNS -COLUMN_FORMAT -COLUMN_NAME -COMMENT -COMMIT -COMPACT -COMPLETION -COMPRESSED -COMPRESSION -CONCURRENT -CONNECTION -CONSISTENT -CONSTRAINT_CATALOG -CONSTRAINT_SCHEMA -CONSTRAINT_NAME -CONTAINS -CONTEXT -CONTRIBUTORS -COPY -CPU -CURSOR_NAME -DATA -DATAFILE -DEALLOCATE -DEFAULT_AUTH -DEFINER -DELAY_KEY_WRITE -DES_KEY_FILE -DIRECTORY -DISABLE -DISCARD -DISK -DO -DUMPFILE -DUPLICATE -DYNAMIC -ENABLE -ENCRYPTION -END -ENDS -ENGINE -ENGINES -ERROR -ERRORS -ESCAPE -EVEN -EVENT -EVENTS -EVERY -EXCHANGE -EXCLUSIVE -EXPIRE -EXPORT -EXTENDED -EXTENT_SIZE -FAST -FAULTS -FIELDS -FILE_BLOCK_SIZE -FILTER -FIRST -FIXED -FLUSH -FOLLOWS -FOUND -FULL -FUNCTION -GENERAL -GLOBAL -GRANTS -GROUP_REPLICATION -HANDLER -HASH -HELP -HOST -HOSTS -IDENTIFIED -IGNORE_SERVER_IDS -IMPORT -INDEXES -INITIAL_SIZE -INPLACE -INSERT_METHOD -INSTALL -INSTANCE -INVISIBLE -INVOKER -IO -IO_THREAD -IPC -ISOLATION -ISSUER -JSON -KEY_BLOCK_SIZE -LANGUAGE -LAST -LEAVES -LESS -LEVEL -LIST -LOCAL -LOGFILE -LOGS -MASTER -MASTER_AUTO_POSITION -MASTER_CONNECT_RETRY -MASTER_DELAY -MASTER_HEARTBEAT_PERIOD -MASTER_HOST -MASTER_LOG_FILE -MASTER_LOG_POS -MASTER_PASSWORD -MASTER_PORT -MASTER_RETRY_COUNT -MASTER_SSL -MASTER_SSL_CA -MASTER_SSL_CAPATH -MASTER_SSL_CERT -MASTER_SSL_CIPHER -MASTER_SSL_CRL -MASTER_SSL_CRLPATH -MASTER_SSL_KEY -MASTER_TLS_VERSION -MASTER_USER -MAX_CONNECTIONS_PER_HOUR -MAX_QUERIES_PER_HOUR -MAX_ROWS -MAX_SIZE -MAX_UPDATES_PER_HOUR -MAX_USER_CONNECTIONS -MEDIUM -MERGE -MESSAGE_TEXT -MID -MIGRATE -MIN_ROWS -MODE -MODIFY -MUTEX -MYSQL -MYSQL_ERRNO -NAME -NAMES -NCHAR -NEVER -NEXT -NO -NODEGROUP -NONE -OFFLINE -OFFSET -OJ -OLD_PASSWORD -ONE -ONLINE -ONLY -OPEN -OPTIMIZER_COSTS -OPTIONS -OWNER -PACK_KEYS -PAGE -PARSER -PARTIAL -PARTITIONING -PARTITIONS -PASSWORD -PHASE -PLUGIN -PLUGIN_DIR -PLUGINS -PORT -PRECEDES -PREPARE -PRESERVE -PREV -PROCESSLIST -PROFILE -PROFILES -PROXY -QUERY -QUICK -REBUILD -RECOVER -REDO_BUFFER_SIZE -REDUNDANT -RELAY -RELAY_LOG_FILE -RELAY_LOG_POS -RELAYLOG -REMOVE -REORGANIZE -REPAIR -REPLICATE_DO_DB -REPLICATE_DO_TABLE -REPLICATE_IGNORE_DB -REPLICATE_IGNORE_TABLE -REPLICATE_REWRITE_DB -REPLICATE_WILD_DO_TABLE -REPLICATE_WILD_IGNORE_TABLE -REPLICATION -RESET -RESUME -RETURNED_SQLSTATE -RETURNS -ROLE -ROLLBACK -ROLLUP -ROTATE -ROW -ROWS -ROW_FORMAT -SAVEPOINT -SCHEDULE -SECURITY -SERVER -SESSION -SHARE -SHARED -SIGNED -SIMPLE -SLAVE -SLOW -SNAPSHOT -SOCKET -SOME -SONAME -SOUNDS -SOURCE -SQL_AFTER_GTIDS -SQL_AFTER_MTS_GAPS -SQL_BEFORE_GTIDS -SQL_BUFFER_RESULT -SQL_CACHE -SQL_NO_CACHE -SQL_THREAD -START -STARTS -STATS_AUTO_RECALC -STATS_PERSISTENT -STATS_SAMPLE_PAGES -STATUS -STOP -STORAGE -STORED -STRING -SUBCLASS_ORIGIN -SUBJECT -SUBPARTITION -SUBPARTITIONS -SUSPEND -SWAPS -SWITCHES -TABLE_NAME -TABLESPACE -TEMPORARY -TEMPTABLE -THAN -TRADITIONAL -TRANSACTION -TRANSACTIONAL -TRIGGERS -TRUNCATE -UNDEFINED -UNDOFILE -UNDO_BUFFER_SIZE -UNINSTALL -UNKNOWN -UNTIL -UPGRADE -USER -USE_FRM -USER_RESOURCES -VALIDATION -VALUE -VARIABLES -VIEW -VIRTUAL -VISIBLE -WAIT -WARNINGS -WITHOUT -WORK -WRAPPER -X509 -XA -XML -EUR -USA -JIS -ISO -INTERNAL -QUARTER -MONTH -DAY -HOUR -MINUTE -WEEK -SECOND -MICROSECOND -TABLES -ROUTINE -EXECUTE -FILE -PROCESS -RELOAD -SHUTDOWN -SUPER -PRIVILEGES -APPLICATION_PASSWORD_ADMIN -AUDIT_ADMIN -BACKUP_ADMIN -BINLOG_ADMIN -BINLOG_ENCRYPTION_ADMIN -CLONE_ADMIN -CONNECTION_ADMIN -ENCRYPTION_KEY_ADMIN -FIREWALL_ADMIN -FIREWALL_USER -GROUP_REPLICATION_ADMIN -INNODB_REDO_LOG_ARCHIVE -NDB_STORED_USER -PERSIST_RO_VARIABLES_ADMIN -REPLICATION_APPLIER -REPLICATION_SLAVE_ADMIN -RESOURCE_GROUP_ADMIN -RESOURCE_GROUP_USER -ROLE_ADMIN -SESSION_VARIABLES_ADMIN -SET_USER_ID -SHOW_ROUTINE -SYSTEM_VARIABLES_ADMIN -TABLE_ENCRYPTION_ADMIN -VERSION_TOKEN_ADMIN -XA_RECOVER_ADMIN -ARMSCII8 -ASCII -BIG5 -CP1250 -CP1251 -CP1256 -CP1257 -CP850 -CP852 -CP866 -CP932 -DEC8 -EUCJPMS -EUCKR -GB2312 -GBK -GEOSTD8 -GREEK -HEBREW -HP8 -KEYBCS2 -KOI8R -KOI8U -LATIN1 -LATIN2 -LATIN5 -LATIN7 -MACCE -MACROMAN -SJIS -SWE7 -TIS620 -UCS2 -UJIS -UTF16 -UTF16LE -UTF32 -UTF8 -UTF8MB3 -UTF8MB4 -ARCHIVE -BLACKHOLE -CSV -FEDERATED -INNODB -MEMORY -MRG_MYISAM -MYISAM -NDB -NDBCLUSTER -PERFORMANCE_SCHEMA -TOKUDB -REPEATABLE -COMMITTED -UNCOMMITTED -SERIALIZABLE -GEOMETRYCOLLECTION -GEOMCOLLECTION -GEOMETRY -LINESTRING -MULTILINESTRING -MULTIPOINT -MULTIPOLYGON -POINT -POLYGON -ABS -ACOS -ADDDATE -ADDTIME -AES_DECRYPT -AES_ENCRYPT -AREA -ASBINARY -ASIN -ASTEXT -ASWKB -ASWKT -ASYMMETRIC_DECRYPT -ASYMMETRIC_DERIVE -ASYMMETRIC_ENCRYPT -ASYMMETRIC_SIGN -ASYMMETRIC_VERIFY -ATAN -ATAN2 -BENCHMARK -BIN -BIT_COUNT -BIT_LENGTH -BUFFER -CATALOG_NAME -CEIL -CEILING -CENTROID -CHARACTER_LENGTH -CHARSET -CHAR_LENGTH -COERCIBILITY -COLLATION -COMPRESS -CONCAT -CONCAT_WS -CONNECTION_ID -CONV -CONVERT_TZ -COS -COT -CRC32 -CREATE_ASYMMETRIC_PRIV_KEY -CREATE_ASYMMETRIC_PUB_KEY -CREATE_DH_PARAMETERS -CREATE_DIGEST -CROSSES -DATEDIFF -DATE_FORMAT -DAYNAME -DAYOFMONTH -DAYOFWEEK -DAYOFYEAR -DECODE -DEGREES -DES_DECRYPT -DES_ENCRYPT -DIMENSION -DISJOINT -ELT -ENCODE -ENCRYPT -ENDPOINT -ENVELOPE -EQUALS -EXP -EXPORT_SET -EXTERIORRING -EXTRACTVALUE -FIELD -FIND_IN_SET -FLOOR -FORMAT -FOUND_ROWS -FROM_BASE64 -FROM_DAYS -FROM_UNIXTIME -GEOMCOLLFROMTEXT -GEOMCOLLFROMWKB -GEOMETRYCOLLECTIONFROMTEXT -GEOMETRYCOLLECTIONFROMWKB -GEOMETRYFROMTEXT -GEOMETRYFROMWKB -GEOMETRYN -GEOMETRYTYPE -GEOMFROMTEXT -GEOMFROMWKB -GET_FORMAT -GET_LOCK -GLENGTH -GREATEST -GTID_SUBSET -GTID_SUBTRACT -HEX -IFNULL -INET6_ATON -INET6_NTOA -INET_ATON -INET_NTOA -INSTR -INTERIORRINGN -INTERSECTS -ISCLOSED -ISEMPTY -ISNULL -ISSIMPLE -IS_FREE_LOCK -IS_IPV4 -IS_IPV4_COMPAT -IS_IPV4_MAPPED -IS_IPV6 -IS_USED_LOCK -LAST_INSERT_ID -LCASE -LEAST -LENGTH -LINEFROMTEXT -LINEFROMWKB -LINESTRINGFROMTEXT -LINESTRINGFROMWKB -LN -LOAD_FILE -LOCATE -LOG -LOG10 -LOG2 -LOWER -LPAD -LTRIM -MAKEDATE -MAKETIME -MAKE_SET -MASTER_POS_WAIT -MBRCONTAINS -MBRDISJOINT -MBREQUAL -MBRINTERSECTS -MBROVERLAPS -MBRTOUCHES -MBRWITHIN -MD5 -MLINEFROMTEXT -MLINEFROMWKB -MONTHNAME -MPOINTFROMTEXT -MPOINTFROMWKB -MPOLYFROMTEXT -MPOLYFROMWKB -MULTILINESTRINGFROMTEXT -MULTILINESTRINGFROMWKB -MULTIPOINTFROMTEXT -MULTIPOINTFROMWKB -MULTIPOLYGONFROMTEXT -MULTIPOLYGONFROMWKB -NAME_CONST -NULLIF -NUMGEOMETRIES -NUMINTERIORRINGS -NUMPOINTS -OCT -OCTET_LENGTH -ORD -OVERLAPS -PERIOD_ADD -PERIOD_DIFF -PI -POINTFROMTEXT -POINTFROMWKB -POINTN -POLYFROMTEXT -POLYFROMWKB -POLYGONFROMTEXT -POLYGONFROMWKB -POW -POWER -QUOTE -RADIANS -RAND -RANDOM_BYTES -RELEASE_LOCK -REVERSE -ROUND -ROW_COUNT -RPAD -RTRIM -SEC_TO_TIME -SESSION_USER -SHA -SHA1 -SHA2 -SCHEMA_NAME -SIGN -SIN -SLEEP -SOUNDEX -SQL_THREAD_WAIT_AFTER_GTIDS -SQRT -SRID -STARTPOINT -STRCMP -STR_TO_DATE -ST_AREA -ST_ASBINARY -ST_ASTEXT -ST_ASWKB -ST_ASWKT -ST_BUFFER -ST_CENTROID -ST_CONTAINS -ST_CROSSES -ST_DIFFERENCE -ST_DIMENSION -ST_DISJOINT -ST_DISTANCE -ST_ENDPOINT -ST_ENVELOPE -ST_EQUALS -ST_EXTERIORRING -ST_GEOMCOLLFROMTEXT -ST_GEOMCOLLFROMTXT -ST_GEOMCOLLFROMWKB -ST_GEOMETRYCOLLECTIONFROMTEXT -ST_GEOMETRYCOLLECTIONFROMWKB -ST_GEOMETRYFROMTEXT -ST_GEOMETRYFROMWKB -ST_GEOMETRYN -ST_GEOMETRYTYPE -ST_GEOMFROMTEXT -ST_GEOMFROMWKB -ST_INTERIORRINGN -ST_INTERSECTION -ST_INTERSECTS -ST_ISCLOSED -ST_ISEMPTY -ST_ISSIMPLE -ST_LINEFROMTEXT -ST_LINEFROMWKB -ST_LINESTRINGFROMTEXT -ST_LINESTRINGFROMWKB -ST_NUMGEOMETRIES -ST_NUMINTERIORRING -ST_NUMINTERIORRINGS -ST_NUMPOINTS -ST_OVERLAPS -ST_POINTFROMTEXT -ST_POINTFROMWKB -ST_POINTN -ST_POLYFROMTEXT -ST_POLYFROMWKB -ST_POLYGONFROMTEXT -ST_POLYGONFROMWKB -ST_SRID -ST_STARTPOINT -ST_SYMDIFFERENCE -ST_TOUCHES -ST_UNION -ST_WITHIN -ST_X -ST_Y -SUBDATE -SUBSTRING_INDEX -SUBTIME -SYSTEM_USER -TAN -TIMEDIFF -TIMESTAMPADD -TIMESTAMPDIFF -TIME_FORMAT -TIME_TO_SEC -TOUCHES -TO_BASE64 -TO_DAYS -TO_SECONDS -UCASE -UNCOMPRESS -UNCOMPRESSED_LENGTH -UNHEX -UNIX_TIMESTAMP -UPDATEXML -UPPER -UUID -UUID_SHORT -VALIDATE_PASSWORD_STRENGTH -VERSION -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS -WEEKDAY -WEEKOFYEAR -WEIGHT_STRING -WITHIN -YEARWEEK -Y_FUNCTION -X_FUNCTION -VAR_ASSIGN -PLUS_ASSIGN -MINUS_ASSIGN -MULT_ASSIGN -DIV_ASSIGN -MOD_ASSIGN -AND_ASSIGN -XOR_ASSIGN -OR_ASSIGN -STAR -DIVIDE -MODULE -PLUS -MINUSMINUS -MINUS -DIV -MOD -EQUAL_SYMBOL -GREATER_SYMBOL -LESS_SYMBOL -EXCLAMATION_SYMBOL -BIT_NOT_OP -BIT_OR_OP -BIT_AND_OP -BIT_XOR_OP -DOT -LR_BRACKET -RR_BRACKET -COMMA -SEMI -AT_SIGN -ZERO_DECIMAL -ONE_DECIMAL -TWO_DECIMAL -SINGLE_QUOTE_SYMB -DOUBLE_QUOTE_SYMB -REVERSE_QUOTE_SYMB -COLON_SYMB -CHARSET_REVERSE_QOUTE_STRING -FILESIZE_LITERAL -START_NATIONAL_STRING_LITERAL -STRING_LITERAL -DECIMAL_LITERAL -HEXADECIMAL_LITERAL -REAL_LITERAL -NULL_SPEC_LITERAL -BIT_STRING -STRING_CHARSET_NAME -DOT_ID -ID -REVERSE_QUOTE_ID -STRING_USER_NAME -LOCAL_ID -GLOBAL_ID -ERROR_RECONGNIGION - -rule names: -program -statement -sqlStatements -sqlStatement -emptyStatement -ddlStatement -dmlStatement -transactionStatement -replicationStatement -preparedStatement -compoundStatement -administrationStatement -utilityStatement -createDatabase -createEvent -createIndex -createLogfileGroup -createProcedure -createFunction -createServer -createTable -createTablespaceInnodb -createTablespaceNdb -createTrigger -createView -createDatabaseOption -ownerStatement -scheduleExpression -timestampValue -intervalExpr -intervalType -enableType -indexType -indexOption -procedureParameter -functionParameter -routineOption -serverOption -createDefinitions -createDefinition -columnDefinition -columnConstraint -tableConstraint -referenceDefinition -referenceAction -referenceControlType -indexColumnDefinition -tableOption -tablespaceStorage -partitionDefinitions -partitionFunctionDefinition -subpartitionFunctionDefinition -partitionDefinition -partitionDefinerAtom -partitionDefinerVector -subpartitionDefinition -partitionOption -alterDatabase -alterEvent -alterFunction -alterInstance -alterLogfileGroup -alterProcedure -alterServer -alterTable -alterTablespace -alterView -alterSpecification -dropDatabase -dropEvent -dropIndex -dropLogfileGroup -dropProcedure -dropFunction -dropServer -dropTable -dropTablespace -dropTrigger -dropView -renameTable -renameTableClause -truncateTable -callStatement -deleteStatement -doStatement -handlerStatement -insertStatement -loadDataStatement -loadXmlStatement -replaceStatement -selectStatement -updateStatement -insertStatementValue -updatedElement -assignmentField -lockClause -singleDeleteStatement -multipleDeleteStatement -handlerOpenStatement -handlerReadIndexStatement -handlerReadStatement -handlerCloseStatement -singleUpdateStatement -multipleUpdateStatement -orderByClause -orderByExpression -tableSources -tableSource -tableSourceItem -indexHint -indexHintType -joinPart -queryExpression -queryExpressionNointo -querySpecification -querySpecificationNointo -unionParenthesis -unionStatement -selectSpec -selectElements -selectElement -selectIntoExpression -selectFieldsInto -selectLinesInto -fromClause -groupByItem -limitClause -limitClauseAtom -startTransaction -beginWork -commitWork -rollbackWork -savepointStatement -rollbackStatement -releaseStatement -lockTables -unlockTables -setAutocommitStatement -setTransactionStatement -transactionMode -lockTableElement -lockAction -transactionOption -transactionLevel -changeMaster -changeReplicationFilter -purgeBinaryLogs -resetMaster -resetSlave -startSlave -stopSlave -startGroupReplication -stopGroupReplication -masterOption -stringMasterOption -decimalMasterOption -boolMasterOption -channelOption -replicationFilter -tablePair -threadType -untilOption -connectionOption -gtuidSet -xaStartTransaction -xaEndTransaction -xaPrepareStatement -xaCommitWork -xaRollbackWork -xaRecoverWork -prepareStatement -executeStatement -deallocatePrepare -routineBody -blockStatement -caseStatement -ifStatement -iterateStatement -leaveStatement -loopStatement -repeatStatement -returnStatement -whileStatement -cursorStatement -declareVariable -declareCondition -declareCursor -declareHandler -handlerConditionValue -procedureSqlStatement -caseAlternative -elifAlternative -alterUser -createUser -dropUser -grantStatement -grantProxy -renameUser -revokeStatement -revokeProxy -setPasswordStatement -userSpecification -userAuthOption -tlsOption -userResourceOption -userPasswordOption -userLockOption -privelegeClause -privilege -privilegeLevel -renameUserClause -analyzeTable -checkTable -checksumTable -optimizeTable -repairTable -checkTableOption -createUdfunction -installPlugin -uninstallPlugin -setStatement -showStatement -variableClause -showCommonEntity -showFilter -showGlobalInfoClause -showSchemaEntity -showProfileType -binlogStatement -cacheIndexStatement -flushStatement -killStatement -loadIndexIntoCache -resetStatement -shutdownStatement -tableIndexes -flushOption -flushTableOption -loadedTableIndexes -simpleDescribeStatement -fullDescribeStatement -helpStatement -useStatement -signalStatement -resignalStatement -signalConditionInformation -diagnosticsStatement -diagnosticsConditionInformationName -describeObjectClause -fullId -tableName -fullColumnName -indexColumnName -userName -mysqlVariable -charsetName -collationName -engineName -uuidSet -xid -xuidStringId -authPlugin -uid -simpleId -dottedId -decimalLiteral -fileSizeLiteral -stringLiteral -booleanLiteral -hexadecimalLiteral -nullNotnull -constant -dataType -collectionOptions -convertedDataType -lengthOneDimension -lengthTwoDimension -lengthTwoOptionalDimension -uidList -tables -indexColumnNames -expressions -expressionsWithDefaults -constants -simpleStrings -userVariables -defaultValue -currentTimestamp -expressionOrDefault -ifExists -ifNotExists -functionCall -specificFunction -caseFuncAlternative -levelsInWeightString -levelInWeightListElement -aggregateWindowedFunction -scalarFunctionName -passwordFunctionClause -functionArgs -functionArg -expression -predicate -expressionAtom -unaryOperator -comparisonOperator -logicalOperator -bitOperator -mathOperator -charsetNameBase -transactionLevelBase -privilegesBase -intervalTypeBase -dataTypeBase -keywordsCanBeId -functionNameBase - - -atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 1050, 6384, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 3, 2, 3, 2, 3, 2, 3, 3, 5, 3, 639, 10, 3, 3, 3, 5, 3, 642, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, 648, 10, 4, 3, 4, 5, 4, 651, 10, 4, 3, 4, 7, 4, 654, 10, 4, 12, 4, 14, 4, 657, 11, 4, 3, 4, 3, 4, 5, 4, 661, 10, 4, 3, 4, 5, 4, 664, 10, 4, 3, 4, 5, 4, 667, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 676, 10, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 715, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 727, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 738, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 755, 10, 10, 3, 11, 3, 11, 3, 11, 5, 11, 760, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 772, 10, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 799, 10, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 5, 14, 808, 10, 14, 3, 15, 3, 15, 3, 15, 5, 15, 813, 10, 15, 3, 15, 3, 15, 7, 15, 817, 10, 15, 12, 15, 14, 15, 820, 11, 15, 3, 16, 3, 16, 5, 16, 824, 10, 16, 3, 16, 3, 16, 5, 16, 828, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 837, 10, 16, 3, 16, 5, 16, 840, 10, 16, 3, 16, 5, 16, 843, 10, 16, 3, 16, 3, 16, 5, 16, 847, 10, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 5, 17, 854, 10, 17, 3, 17, 5, 17, 857, 10, 17, 3, 17, 3, 17, 3, 17, 5, 17, 862, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 868, 10, 17, 12, 17, 14, 17, 871, 11, 17, 3, 17, 3, 17, 5, 17, 875, 10, 17, 3, 17, 3, 17, 3, 17, 5, 17, 880, 10, 17, 3, 17, 7, 17, 883, 10, 17, 12, 17, 14, 17, 886, 11, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 5, 18, 897, 10, 18, 3, 18, 5, 18, 900, 10, 18, 3, 18, 3, 18, 5, 18, 904, 10, 18, 3, 18, 5, 18, 907, 10, 18, 3, 18, 3, 18, 5, 18, 911, 10, 18, 3, 18, 5, 18, 914, 10, 18, 3, 18, 3, 18, 5, 18, 918, 10, 18, 3, 18, 5, 18, 921, 10, 18, 3, 18, 5, 18, 924, 10, 18, 3, 18, 3, 18, 5, 18, 928, 10, 18, 3, 18, 5, 18, 931, 10, 18, 3, 18, 3, 18, 5, 18, 935, 10, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 941, 10, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 947, 10, 19, 3, 19, 3, 19, 7, 19, 951, 10, 19, 12, 19, 14, 19, 954, 11, 19, 3, 19, 3, 19, 7, 19, 958, 10, 19, 12, 19, 14, 19, 961, 11, 19, 3, 19, 3, 19, 3, 20, 3, 20, 5, 20, 967, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 973, 10, 20, 3, 20, 3, 20, 7, 20, 977, 10, 20, 12, 20, 14, 20, 980, 11, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 986, 10, 20, 12, 20, 14, 20, 989, 11, 20, 3, 20, 3, 20, 5, 20, 993, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 1007, 10, 21, 12, 21, 14, 21, 1010, 11, 21, 3, 21, 3, 21, 3, 22, 3, 22, 5, 22, 1016, 10, 22, 3, 22, 3, 22, 5, 22, 1020, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1030, 10, 22, 3, 22, 3, 22, 5, 22, 1034, 10, 22, 3, 22, 3, 22, 5, 22, 1038, 10, 22, 3, 22, 3, 22, 5, 22, 1042, 10, 22, 3, 22, 3, 22, 5, 22, 1046, 10, 22, 3, 22, 7, 22, 1049, 10, 22, 12, 22, 14, 22, 1052, 11, 22, 5, 22, 1054, 10, 22, 3, 22, 5, 22, 1057, 10, 22, 3, 22, 5, 22, 1060, 10, 22, 3, 22, 5, 22, 1063, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1069, 10, 22, 3, 22, 3, 22, 5, 22, 1073, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1079, 10, 22, 3, 22, 7, 22, 1082, 10, 22, 12, 22, 14, 22, 1085, 11, 22, 5, 22, 1087, 10, 22, 3, 22, 5, 22, 1090, 10, 22, 5, 22, 1092, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 1103, 10, 23, 3, 23, 3, 23, 5, 23, 1107, 10, 23, 3, 23, 5, 23, 1110, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 5, 24, 1124, 10, 24, 3, 24, 5, 24, 1127, 10, 24, 3, 24, 3, 24, 5, 24, 1131, 10, 24, 3, 24, 5, 24, 1134, 10, 24, 3, 24, 3, 24, 5, 24, 1138, 10, 24, 3, 24, 5, 24, 1141, 10, 24, 3, 24, 3, 24, 5, 24, 1145, 10, 24, 3, 24, 5, 24, 1148, 10, 24, 3, 24, 3, 24, 5, 24, 1152, 10, 24, 3, 24, 5, 24, 1155, 10, 24, 3, 24, 5, 24, 1158, 10, 24, 3, 24, 3, 24, 5, 24, 1162, 10, 24, 3, 24, 5, 24, 1165, 10, 24, 3, 24, 3, 24, 5, 24, 1169, 10, 24, 3, 24, 3, 24, 3, 25, 3, 25, 5, 25, 1175, 10, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 5, 25, 1188, 10, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 5, 26, 1195, 10, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1200, 10, 26, 3, 26, 5, 26, 1203, 10, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1208, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1216, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1222, 10, 26, 3, 26, 3, 26, 5, 26, 1226, 10, 26, 3, 27, 5, 27, 1229, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1234, 10, 27, 3, 27, 5, 27, 1237, 10, 27, 3, 27, 3, 27, 5, 27, 1241, 10, 27, 3, 27, 5, 27, 1244, 10, 27, 3, 27, 3, 27, 5, 27, 1248, 10, 27, 3, 27, 5, 27, 1251, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1259, 10, 28, 5, 28, 1261, 10, 28, 3, 29, 3, 29, 3, 29, 7, 29, 1266, 10, 29, 12, 29, 14, 29, 1269, 11, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1274, 10, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 1280, 10, 29, 12, 29, 14, 29, 1283, 11, 29, 5, 29, 1285, 10, 29, 3, 29, 3, 29, 3, 29, 7, 29, 1290, 10, 29, 12, 29, 14, 29, 1293, 11, 29, 5, 29, 1295, 10, 29, 5, 29, 1297, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 1303, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 1309, 10, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1326, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 1333, 10, 33, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 5, 35, 1340, 10, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 1351, 10, 35, 3, 36, 5, 36, 1354, 10, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 1367, 10, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 1380, 10, 38, 3, 38, 3, 38, 3, 38, 5, 38, 1385, 10, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 1401, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 1407, 10, 40, 12, 40, 14, 40, 1410, 11, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 1419, 10, 41, 3, 42, 3, 42, 7, 42, 1423, 10, 42, 12, 42, 14, 42, 1426, 11, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1435, 10, 43, 3, 43, 5, 43, 1438, 10, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1443, 10, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1456, 10, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1463, 10, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1470, 10, 43, 5, 43, 1472, 10, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1479, 10, 43, 3, 44, 3, 44, 5, 44, 1483, 10, 44, 5, 44, 1485, 10, 44, 3, 44, 3, 44, 3, 44, 5, 44, 1490, 10, 44, 3, 44, 5, 44, 1493, 10, 44, 3, 44, 3, 44, 7, 44, 1497, 10, 44, 12, 44, 14, 44, 1500, 11, 44, 3, 44, 3, 44, 5, 44, 1504, 10, 44, 5, 44, 1506, 10, 44, 3, 44, 3, 44, 5, 44, 1510, 10, 44, 3, 44, 5, 44, 1513, 10, 44, 3, 44, 5, 44, 1516, 10, 44, 3, 44, 3, 44, 7, 44, 1520, 10, 44, 12, 44, 14, 44, 1523, 11, 44, 3, 44, 3, 44, 5, 44, 1527, 10, 44, 5, 44, 1529, 10, 44, 3, 44, 3, 44, 3, 44, 5, 44, 1534, 10, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 5, 44, 1541, 10, 44, 5, 44, 1543, 10, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 5, 44, 1550, 10, 44, 3, 45, 3, 45, 3, 45, 5, 45, 1555, 10, 45, 3, 45, 3, 45, 5, 45, 1559, 10, 45, 3, 45, 5, 45, 1562, 10, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 5, 46, 1570, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 5, 46, 1578, 10, 46, 5, 46, 1580, 10, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1588, 10, 47, 3, 48, 3, 48, 5, 48, 1592, 10, 48, 3, 48, 5, 48, 1595, 10, 48, 3, 48, 3, 48, 7, 48, 1599, 10, 48, 12, 48, 14, 48, 1602, 11, 48, 3, 48, 3, 48, 5, 48, 1606, 10, 48, 3, 48, 5, 48, 1609, 10, 48, 3, 48, 3, 48, 7, 48, 1613, 10, 48, 12, 48, 14, 48, 1616, 11, 48, 5, 48, 1618, 10, 48, 3, 49, 3, 49, 5, 49, 1622, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1627, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1632, 10, 49, 3, 49, 3, 49, 5, 49, 1636, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1641, 10, 49, 3, 49, 5, 49, 1644, 10, 49, 3, 49, 3, 49, 5, 49, 1648, 10, 49, 3, 49, 3, 49, 5, 49, 1652, 10, 49, 3, 49, 3, 49, 5, 49, 1656, 10, 49, 3, 49, 3, 49, 5, 49, 1660, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1665, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1670, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1675, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1681, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1686, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1691, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1697, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1702, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1707, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1712, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1717, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1722, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1727, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1732, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1737, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1742, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1747, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1753, 10, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1758, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1764, 10, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1774, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1781, 10, 51, 5, 51, 1783, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 1789, 10, 51, 12, 51, 14, 51, 1792, 11, 51, 3, 51, 3, 51, 5, 51, 1796, 10, 51, 3, 52, 5, 52, 1799, 10, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1807, 10, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1813, 10, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1829, 10, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1841, 10, 52, 5, 52, 1843, 10, 52, 3, 53, 5, 53, 1846, 10, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 5, 53, 1854, 10, 53, 3, 53, 3, 53, 3, 53, 3, 53, 5, 53, 1860, 10, 53, 3, 53, 3, 53, 3, 53, 3, 53, 5, 53, 1866, 10, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1877, 10, 54, 12, 54, 14, 54, 1880, 11, 54, 3, 54, 3, 54, 7, 54, 1884, 10, 54, 12, 54, 14, 54, 1887, 11, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1892, 10, 54, 12, 54, 14, 54, 1895, 11, 54, 5, 54, 1897, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1906, 10, 54, 12, 54, 14, 54, 1909, 11, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1914, 10, 54, 12, 54, 14, 54, 1917, 11, 54, 5, 54, 1919, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1929, 10, 54, 12, 54, 14, 54, 1932, 11, 54, 3, 54, 3, 54, 7, 54, 1936, 10, 54, 12, 54, 14, 54, 1939, 11, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1944, 10, 54, 12, 54, 14, 54, 1947, 11, 54, 5, 54, 1949, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1959, 10, 54, 12, 54, 14, 54, 1962, 11, 54, 3, 54, 3, 54, 7, 54, 1966, 10, 54, 12, 54, 14, 54, 1969, 11, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1974, 10, 54, 12, 54, 14, 54, 1977, 11, 54, 5, 54, 1979, 10, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1984, 10, 54, 12, 54, 14, 54, 1987, 11, 54, 3, 54, 3, 54, 3, 54, 7, 54, 1992, 10, 54, 12, 54, 14, 54, 1995, 11, 54, 5, 54, 1997, 10, 54, 5, 54, 1999, 10, 54, 3, 55, 3, 55, 3, 55, 5, 55, 2004, 10, 55, 3, 56, 3, 56, 3, 56, 3, 56, 6, 56, 2010, 10, 56, 13, 56, 14, 56, 2011, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 7, 57, 2019, 10, 57, 12, 57, 14, 57, 2022, 11, 57, 3, 58, 5, 58, 2025, 10, 58, 3, 58, 3, 58, 5, 58, 2029, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2034, 10, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2040, 10, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2046, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2051, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2056, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2061, 10, 58, 3, 58, 3, 58, 3, 58, 5, 58, 2066, 10, 58, 3, 58, 5, 58, 2069, 10, 58, 3, 59, 3, 59, 3, 59, 5, 59, 2074, 10, 59, 3, 59, 6, 59, 2077, 10, 59, 13, 59, 14, 59, 2078, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 5, 59, 2089, 10, 59, 3, 60, 3, 60, 5, 60, 2093, 10, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 2100, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 2105, 10, 60, 3, 60, 5, 60, 2108, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 2113, 10, 60, 3, 60, 5, 60, 2116, 10, 60, 3, 60, 3, 60, 5, 60, 2120, 10, 60, 3, 60, 3, 60, 5, 60, 2124, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 7, 61, 2130, 10, 61, 12, 61, 14, 61, 2133, 11, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 2151, 10, 63, 3, 63, 5, 63, 2154, 10, 63, 3, 63, 5, 63, 2157, 10, 63, 3, 63, 3, 63, 5, 63, 2161, 10, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 7, 64, 2169, 10, 64, 12, 64, 14, 64, 2172, 11, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 7, 65, 2182, 10, 65, 12, 65, 14, 65, 2185, 11, 65, 3, 65, 3, 65, 3, 66, 3, 66, 5, 66, 2191, 10, 66, 3, 66, 5, 66, 2194, 10, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 7, 66, 2201, 10, 66, 12, 66, 14, 66, 2204, 11, 66, 5, 66, 2206, 10, 66, 3, 66, 5, 66, 2209, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 2220, 10, 67, 3, 67, 5, 67, 2223, 10, 67, 3, 67, 3, 67, 5, 67, 2227, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 5, 68, 2235, 10, 68, 3, 68, 5, 68, 2238, 10, 68, 3, 68, 3, 68, 3, 68, 5, 68, 2243, 10, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 5, 68, 2251, 10, 68, 3, 68, 3, 68, 3, 68, 3, 68, 5, 68, 2257, 10, 68, 3, 68, 3, 68, 5, 68, 2261, 10, 68, 3, 69, 3, 69, 5, 69, 2265, 10, 69, 3, 69, 7, 69, 2268, 10, 69, 12, 69, 14, 69, 2271, 11, 69, 3, 69, 3, 69, 5, 69, 2275, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2282, 10, 69, 3, 69, 3, 69, 5, 69, 2286, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 7, 69, 2295, 10, 69, 12, 69, 14, 69, 2298, 11, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2305, 10, 69, 3, 69, 5, 69, 2308, 10, 69, 3, 69, 3, 69, 7, 69, 2312, 10, 69, 12, 69, 14, 69, 2315, 11, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2320, 10, 69, 5, 69, 2322, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2327, 10, 69, 3, 69, 5, 69, 2330, 10, 69, 3, 69, 3, 69, 7, 69, 2334, 10, 69, 12, 69, 14, 69, 2337, 11, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2342, 10, 69, 5, 69, 2344, 10, 69, 3, 69, 3, 69, 5, 69, 2348, 10, 69, 3, 69, 5, 69, 2351, 10, 69, 3, 69, 5, 69, 2354, 10, 69, 3, 69, 3, 69, 7, 69, 2358, 10, 69, 12, 69, 14, 69, 2361, 11, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2366, 10, 69, 3, 69, 5, 69, 2369, 10, 69, 3, 69, 3, 69, 7, 69, 2373, 10, 69, 12, 69, 14, 69, 2376, 11, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2381, 10, 69, 5, 69, 2383, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2388, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2396, 10, 69, 5, 69, 2398, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2407, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2412, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2420, 10, 69, 3, 69, 3, 69, 5, 69, 2424, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2432, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2442, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2447, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2454, 10, 69, 3, 69, 3, 69, 5, 69, 2458, 10, 69, 3, 69, 3, 69, 5, 69, 2462, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2491, 10, 69, 3, 69, 3, 69, 5, 69, 2495, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2507, 10, 69, 3, 69, 5, 69, 2510, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2519, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 7, 69, 2534, 10, 69, 12, 69, 14, 69, 2537, 11, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2548, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2555, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2562, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 7, 69, 2575, 10, 69, 12, 69, 14, 69, 2578, 11, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2590, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2596, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2602, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2608, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2614, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2620, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 2626, 10, 69, 3, 70, 3, 70, 3, 70, 5, 70, 2631, 10, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 5, 71, 2638, 10, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 5, 72, 2645, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2652, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2657, 10, 72, 3, 72, 7, 72, 2660, 10, 72, 12, 72, 14, 72, 2663, 11, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 5, 74, 2676, 10, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 5, 75, 2683, 10, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 5, 76, 2690, 10, 76, 3, 76, 3, 76, 3, 77, 3, 77, 5, 77, 2696, 10, 77, 3, 77, 3, 77, 5, 77, 2700, 10, 77, 3, 77, 3, 77, 5, 77, 2704, 10, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 2711, 10, 78, 3, 78, 5, 78, 2714, 10, 78, 3, 79, 3, 79, 3, 79, 5, 79, 2719, 10, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 5, 80, 2726, 10, 80, 3, 80, 3, 80, 3, 80, 7, 80, 2731, 10, 80, 12, 80, 14, 80, 2734, 11, 80, 3, 80, 5, 80, 2737, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 7, 81, 2744, 10, 81, 12, 81, 14, 81, 2747, 11, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 5, 83, 2755, 10, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 2764, 10, 84, 3, 84, 5, 84, 2767, 10, 84, 3, 85, 3, 85, 5, 85, 2771, 10, 85, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 2780, 10, 87, 3, 88, 3, 88, 5, 88, 2784, 10, 88, 3, 88, 5, 88, 2787, 10, 88, 3, 88, 5, 88, 2790, 10, 88, 3, 88, 3, 88, 3, 88, 3, 88, 5, 88, 2796, 10, 88, 3, 88, 5, 88, 2799, 10, 88, 3, 88, 3, 88, 3, 88, 3, 88, 5, 88, 2805, 10, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 7, 88, 2812, 10, 88, 12, 88, 14, 88, 2815, 11, 88, 5, 88, 2817, 10, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 7, 88, 2826, 10, 88, 12, 88, 14, 88, 2829, 11, 88, 5, 88, 2831, 10, 88, 3, 89, 3, 89, 3, 89, 5, 89, 2836, 10, 89, 3, 89, 5, 89, 2839, 10, 89, 3, 89, 3, 89, 3, 89, 5, 89, 2844, 10, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 5, 89, 2854, 10, 89, 3, 89, 3, 89, 3, 89, 5, 89, 2859, 10, 89, 3, 89, 3, 89, 6, 89, 2863, 10, 89, 13, 89, 14, 89, 2864, 5, 89, 2867, 10, 89, 3, 89, 3, 89, 6, 89, 2871, 10, 89, 13, 89, 14, 89, 2872, 5, 89, 2875, 10, 89, 3, 89, 3, 89, 3, 89, 3, 89, 5, 89, 2881, 10, 89, 3, 89, 3, 89, 3, 89, 3, 89, 7, 89, 2887, 10, 89, 12, 89, 14, 89, 2890, 11, 89, 3, 89, 3, 89, 5, 89, 2894, 10, 89, 3, 89, 3, 89, 3, 89, 3, 89, 7, 89, 2900, 10, 89, 12, 89, 14, 89, 2903, 11, 89, 5, 89, 2905, 10, 89, 3, 90, 3, 90, 3, 90, 5, 90, 2910, 10, 90, 3, 90, 5, 90, 2913, 10, 90, 3, 90, 3, 90, 3, 90, 5, 90, 2918, 10, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 2926, 10, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 2934, 10, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 2940, 10, 90, 3, 90, 3, 90, 3, 90, 3, 90, 7, 90, 2946, 10, 90, 12, 90, 14, 90, 2949, 11, 90, 3, 90, 3, 90, 5, 90, 2953, 10, 90, 3, 90, 3, 90, 3, 90, 3, 90, 7, 90, 2959, 10, 90, 12, 90, 14, 90, 2962, 11, 90, 5, 90, 2964, 10, 90, 3, 91, 3, 91, 5, 91, 2968, 10, 91, 3, 91, 5, 91, 2971, 10, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 5, 91, 2979, 10, 91, 3, 91, 3, 91, 3, 91, 3, 91, 5, 91, 2985, 10, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 7, 91, 2992, 10, 91, 12, 91, 14, 91, 2995, 11, 91, 5, 91, 2997, 10, 91, 3, 92, 3, 92, 5, 92, 3001, 10, 92, 3, 92, 3, 92, 5, 92, 3005, 10, 92, 3, 92, 3, 92, 6, 92, 3009, 10, 92, 13, 92, 14, 92, 3010, 3, 92, 3, 92, 5, 92, 3015, 10, 92, 3, 92, 3, 92, 5, 92, 3019, 10, 92, 5, 92, 3021, 10, 92, 3, 92, 5, 92, 3024, 10, 92, 3, 92, 5, 92, 3027, 10, 92, 3, 92, 5, 92, 3030, 10, 92, 3, 92, 3, 92, 6, 92, 3034, 10, 92, 13, 92, 14, 92, 3035, 3, 92, 3, 92, 5, 92, 3040, 10, 92, 3, 92, 5, 92, 3043, 10, 92, 3, 92, 5, 92, 3046, 10, 92, 3, 92, 5, 92, 3049, 10, 92, 3, 92, 5, 92, 3052, 10, 92, 5, 92, 3054, 10, 92, 3, 93, 3, 93, 5, 93, 3058, 10, 93, 3, 94, 3, 94, 3, 94, 3, 94, 5, 94, 3064, 10, 94, 3, 94, 3, 94, 3, 94, 3, 94, 5, 94, 3070, 10, 94, 3, 94, 7, 94, 3073, 10, 94, 12, 94, 14, 94, 3076, 11, 94, 5, 94, 3078, 10, 94, 3, 95, 3, 95, 3, 95, 3, 95, 5, 95, 3084, 10, 95, 3, 96, 3, 96, 5, 96, 3088, 10, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 3096, 10, 97, 3, 98, 3, 98, 5, 98, 3100, 10, 98, 3, 98, 5, 98, 3103, 10, 98, 3, 98, 5, 98, 3106, 10, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 3115, 10, 98, 3, 98, 3, 98, 5, 98, 3119, 10, 98, 3, 98, 5, 98, 3122, 10, 98, 3, 98, 3, 98, 5, 98, 3126, 10, 98, 3, 99, 3, 99, 5, 99, 3130, 10, 99, 3, 99, 5, 99, 3133, 10, 99, 3, 99, 5, 99, 3136, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 3141, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 3147, 10, 99, 7, 99, 3149, 10, 99, 12, 99, 14, 99, 3152, 11, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 3161, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 3167, 10, 99, 7, 99, 3169, 10, 99, 12, 99, 14, 99, 3172, 11, 99, 3, 99, 3, 99, 3, 99, 5, 99, 3177, 10, 99, 3, 99, 3, 99, 5, 99, 3181, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 5, 100, 3187, 10, 100, 3, 100, 5, 100, 3190, 10, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 3202, 10, 101, 3, 101, 3, 101, 5, 101, 3206, 10, 101, 3, 101, 3, 101, 5, 101, 3210, 10, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 5, 102, 3218, 10, 102, 3, 102, 3, 102, 5, 102, 3222, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 5, 104, 3230, 10, 104, 3, 104, 5, 104, 3233, 10, 104, 3, 104, 3, 104, 5, 104, 3237, 10, 104, 3, 104, 5, 104, 3240, 10, 104, 3, 104, 3, 104, 3, 104, 3, 104, 7, 104, 3246, 10, 104, 12, 104, 14, 104, 3249, 11, 104, 3, 104, 3, 104, 5, 104, 3253, 10, 104, 3, 104, 5, 104, 3256, 10, 104, 3, 104, 5, 104, 3259, 10, 104, 3, 105, 3, 105, 5, 105, 3263, 10, 105, 3, 105, 5, 105, 3266, 10, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 7, 105, 3273, 10, 105, 12, 105, 14, 105, 3276, 11, 105, 3, 105, 3, 105, 5, 105, 3280, 10, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 7, 106, 3287, 10, 106, 12, 106, 14, 106, 3290, 11, 106, 3, 107, 3, 107, 5, 107, 3294, 10, 107, 3, 108, 3, 108, 3, 108, 7, 108, 3299, 10, 108, 12, 108, 14, 108, 3302, 11, 108, 3, 109, 3, 109, 7, 109, 3306, 10, 109, 12, 109, 14, 109, 3309, 11, 109, 3, 109, 3, 109, 3, 109, 7, 109, 3314, 10, 109, 12, 109, 14, 109, 3317, 11, 109, 3, 109, 3, 109, 5, 109, 3321, 10, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 3329, 10, 110, 3, 110, 5, 110, 3332, 10, 110, 3, 110, 5, 110, 3335, 10, 110, 3, 110, 3, 110, 3, 110, 7, 110, 3340, 10, 110, 12, 110, 14, 110, 3343, 11, 110, 5, 110, 3345, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 3352, 10, 110, 3, 110, 5, 110, 3355, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 3363, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 5, 111, 3369, 10, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 5, 112, 3380, 10, 112, 3, 113, 5, 113, 3383, 10, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 3394, 10, 113, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 3400, 10, 113, 3, 113, 3, 113, 5, 113, 3404, 10, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 3415, 10, 113, 3, 113, 3, 113, 3, 113, 5, 113, 3420, 10, 113, 5, 113, 3422, 10, 113, 3, 113, 3, 113, 5, 113, 3426, 10, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 3436, 10, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 3446, 10, 115, 3, 116, 3, 116, 7, 116, 3450, 10, 116, 12, 116, 14, 116, 3453, 11, 116, 3, 116, 3, 116, 5, 116, 3457, 10, 116, 3, 116, 5, 116, 3460, 10, 116, 3, 116, 5, 116, 3463, 10, 116, 3, 116, 5, 116, 3466, 10, 116, 3, 116, 3, 116, 7, 116, 3470, 10, 116, 12, 116, 14, 116, 3473, 11, 116, 3, 116, 3, 116, 5, 116, 3477, 10, 116, 3, 116, 5, 116, 3480, 10, 116, 3, 116, 5, 116, 3483, 10, 116, 3, 116, 5, 116, 3486, 10, 116, 5, 116, 3488, 10, 116, 3, 117, 3, 117, 7, 117, 3492, 10, 117, 12, 117, 14, 117, 3495, 11, 117, 3, 117, 3, 117, 5, 117, 3499, 10, 117, 3, 117, 5, 117, 3502, 10, 117, 3, 117, 5, 117, 3505, 10, 117, 3, 118, 3, 118, 5, 118, 3509, 10, 118, 3, 118, 3, 118, 3, 119, 3, 119, 5, 119, 3515, 10, 119, 3, 119, 3, 119, 5, 119, 3519, 10, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3529, 10, 120, 3, 121, 3, 121, 5, 121, 3533, 10, 121, 3, 121, 3, 121, 7, 121, 3537, 10, 121, 12, 121, 14, 121, 3540, 11, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 3548, 10, 122, 3, 122, 5, 122, 3551, 10, 122, 3, 122, 3, 122, 5, 122, 3555, 10, 122, 3, 122, 5, 122, 3558, 10, 122, 3, 122, 3, 122, 5, 122, 3562, 10, 122, 3, 122, 3, 122, 5, 122, 3566, 10, 122, 3, 122, 5, 122, 3569, 10, 122, 5, 122, 3571, 10, 122, 3, 123, 3, 123, 3, 123, 3, 123, 7, 123, 3577, 10, 123, 12, 123, 14, 123, 3580, 11, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 3591, 10, 123, 3, 123, 3, 123, 6, 123, 3595, 10, 123, 13, 123, 14, 123, 3596, 5, 123, 3599, 10, 123, 3, 123, 3, 123, 6, 123, 3603, 10, 123, 13, 123, 14, 123, 3604, 5, 123, 3607, 10, 123, 5, 123, 3609, 10, 123, 3, 124, 3, 124, 3, 124, 3, 124, 5, 124, 3615, 10, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 5, 124, 3623, 10, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 3631, 10, 125, 3, 126, 3, 126, 3, 126, 3, 126, 5, 126, 3637, 10, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 7, 126, 3644, 10, 126, 12, 126, 14, 126, 3647, 11, 126, 3, 126, 3, 126, 5, 126, 3651, 10, 126, 5, 126, 3653, 10, 126, 3, 126, 3, 126, 5, 126, 3657, 10, 126, 3, 127, 3, 127, 5, 127, 3661, 10, 127, 3, 128, 3, 128, 3, 128, 3, 128, 5, 128, 3667, 10, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 5, 128, 3674, 10, 128, 3, 129, 3, 129, 5, 129, 3678, 10, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 7, 130, 3685, 10, 130, 12, 130, 14, 130, 3688, 11, 130, 5, 130, 3690, 10, 130, 3, 131, 3, 131, 5, 131, 3694, 10, 131, 3, 132, 3, 132, 5, 132, 3698, 10, 132, 3, 132, 3, 132, 5, 132, 3702, 10, 132, 3, 132, 5, 132, 3705, 10, 132, 3, 132, 5, 132, 3708, 10, 132, 3, 132, 5, 132, 3711, 10, 132, 3, 133, 3, 133, 5, 133, 3715, 10, 133, 3, 133, 3, 133, 5, 133, 3719, 10, 133, 3, 133, 5, 133, 3722, 10, 133, 3, 133, 5, 133, 3725, 10, 133, 3, 133, 5, 133, 3728, 10, 133, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 5, 135, 3735, 10, 135, 3, 135, 3, 135, 5, 135, 3739, 10, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 7, 137, 3752, 10, 137, 12, 137, 14, 137, 3755, 11, 137, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 5, 140, 3767, 10, 140, 3, 140, 3, 140, 3, 140, 3, 140, 7, 140, 3773, 10, 140, 12, 140, 14, 140, 3776, 11, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 5, 141, 3785, 10, 141, 3, 142, 3, 142, 5, 142, 3789, 10, 142, 3, 142, 5, 142, 3792, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 5, 143, 3798, 10, 143, 3, 143, 5, 143, 3801, 10, 143, 3, 143, 5, 143, 3804, 10, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 5, 144, 3813, 10, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 3822, 10, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 7, 146, 3830, 10, 146, 12, 146, 14, 146, 3833, 11, 146, 3, 146, 5, 146, 3836, 10, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 7, 147, 3844, 10, 147, 12, 147, 14, 147, 3847, 11, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 3856, 10, 148, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 5, 150, 3864, 10, 150, 3, 150, 5, 150, 3867, 10, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 7, 151, 3874, 10, 151, 12, 151, 14, 151, 3877, 11, 151, 5, 151, 3879, 10, 151, 3, 151, 3, 151, 5, 151, 3883, 10, 151, 3, 151, 7, 151, 3886, 10, 151, 12, 151, 14, 151, 3889, 11, 151, 3, 151, 5, 151, 3892, 10, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 7, 152, 3899, 10, 152, 12, 152, 14, 152, 3902, 11, 152, 5, 152, 3904, 10, 152, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 7, 155, 3933, 10, 155, 12, 155, 14, 155, 3936, 11, 155, 5, 155, 3938, 10, 155, 3, 155, 5, 155, 3941, 10, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 7, 160, 3995, 10, 160, 12, 160, 14, 160, 3998, 11, 160, 3, 160, 3, 160, 5, 160, 4002, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 5, 163, 4030, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 5, 164, 4044, 10, 164, 3, 165, 3, 165, 3, 165, 7, 165, 4049, 10, 165, 12, 165, 14, 165, 4052, 11, 165, 3, 165, 5, 165, 4055, 10, 165, 3, 166, 3, 166, 3, 166, 3, 166, 5, 166, 4061, 10, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 5, 167, 4069, 10, 167, 5, 167, 4071, 10, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 5, 169, 4082, 10, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 4092, 10, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 5, 172, 4099, 10, 172, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 4105, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 5, 175, 4113, 10, 175, 3, 176, 3, 176, 3, 176, 5, 176, 4118, 10, 176, 3, 176, 3, 176, 3, 176, 3, 176, 7, 176, 4124, 10, 176, 12, 176, 14, 176, 4127, 11, 176, 3, 176, 3, 176, 3, 176, 7, 176, 4132, 10, 176, 12, 176, 14, 176, 4135, 11, 176, 3, 176, 3, 176, 3, 176, 7, 176, 4140, 10, 176, 12, 176, 14, 176, 4143, 11, 176, 3, 176, 3, 176, 3, 176, 7, 176, 4148, 10, 176, 12, 176, 14, 176, 4151, 11, 176, 3, 176, 7, 176, 4154, 10, 176, 12, 176, 14, 176, 4157, 11, 176, 5, 176, 4159, 10, 176, 3, 176, 3, 176, 5, 176, 4163, 10, 176, 3, 177, 3, 177, 3, 177, 5, 177, 4168, 10, 177, 3, 177, 6, 177, 4171, 10, 177, 13, 177, 14, 177, 4172, 3, 177, 3, 177, 6, 177, 4177, 10, 177, 13, 177, 14, 177, 4178, 5, 177, 4181, 10, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 6, 178, 4190, 10, 178, 13, 178, 14, 178, 4191, 3, 178, 7, 178, 4195, 10, 178, 12, 178, 14, 178, 4198, 11, 178, 3, 178, 3, 178, 6, 178, 4202, 10, 178, 13, 178, 14, 178, 4203, 5, 178, 4206, 10, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 5, 181, 4220, 10, 181, 3, 181, 3, 181, 6, 181, 4224, 10, 181, 13, 181, 14, 181, 4225, 3, 181, 3, 181, 3, 181, 5, 181, 4231, 10, 181, 3, 182, 3, 182, 3, 182, 5, 182, 4236, 10, 182, 3, 182, 3, 182, 6, 182, 4240, 10, 182, 13, 182, 14, 182, 4241, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 4249, 10, 182, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 5, 184, 4257, 10, 184, 3, 184, 3, 184, 3, 184, 3, 184, 6, 184, 4263, 10, 184, 13, 184, 14, 184, 4264, 3, 184, 3, 184, 3, 184, 5, 184, 4270, 10, 184, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4276, 10, 185, 3, 185, 5, 185, 4279, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4287, 10, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 5, 186, 4294, 10, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 4303, 10, 187, 3, 187, 5, 187, 4306, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 4321, 10, 189, 12, 189, 14, 189, 4324, 11, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 5, 190, 4331, 10, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 4339, 10, 190, 3, 191, 3, 191, 5, 191, 4343, 10, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 5, 192, 4350, 10, 192, 3, 192, 3, 192, 6, 192, 4354, 10, 192, 13, 192, 14, 192, 4355, 3, 193, 3, 193, 3, 193, 3, 193, 6, 193, 4362, 10, 193, 13, 193, 14, 193, 4363, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 7, 194, 4371, 10, 194, 12, 194, 14, 194, 4374, 11, 194, 3, 194, 3, 194, 3, 194, 5, 194, 4379, 10, 194, 3, 194, 3, 194, 3, 194, 7, 194, 4384, 10, 194, 12, 194, 14, 194, 4387, 11, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 4393, 10, 194, 3, 194, 7, 194, 4396, 10, 194, 12, 194, 14, 194, 4399, 11, 194, 5, 194, 4401, 10, 194, 5, 194, 4403, 10, 194, 3, 194, 3, 194, 6, 194, 4407, 10, 194, 13, 194, 14, 194, 4408, 5, 194, 4411, 10, 194, 3, 194, 3, 194, 7, 194, 4415, 10, 194, 12, 194, 14, 194, 4418, 11, 194, 5, 194, 4420, 10, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 7, 195, 4427, 10, 195, 12, 195, 14, 195, 4430, 11, 195, 3, 195, 3, 195, 3, 195, 5, 195, 4435, 10, 195, 3, 195, 3, 195, 3, 195, 7, 195, 4440, 10, 195, 12, 195, 14, 195, 4443, 11, 195, 3, 195, 3, 195, 3, 195, 3, 195, 5, 195, 4449, 10, 195, 3, 195, 7, 195, 4452, 10, 195, 12, 195, 14, 195, 4455, 11, 195, 5, 195, 4457, 10, 195, 5, 195, 4459, 10, 195, 3, 195, 3, 195, 6, 195, 4463, 10, 195, 13, 195, 14, 195, 4464, 5, 195, 4467, 10, 195, 3, 195, 3, 195, 7, 195, 4471, 10, 195, 12, 195, 14, 195, 4474, 11, 195, 5, 195, 4476, 10, 195, 3, 196, 3, 196, 3, 196, 5, 196, 4481, 10, 196, 3, 196, 3, 196, 3, 196, 7, 196, 4486, 10, 196, 12, 196, 14, 196, 4489, 11, 196, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 4495, 10, 197, 12, 197, 14, 197, 4498, 11, 197, 3, 197, 3, 197, 5, 197, 4502, 10, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 4509, 10, 197, 12, 197, 14, 197, 4512, 11, 197, 3, 197, 3, 197, 3, 197, 3, 197, 5, 197, 4518, 10, 197, 3, 197, 7, 197, 4521, 10, 197, 12, 197, 14, 197, 4524, 11, 197, 5, 197, 4526, 10, 197, 5, 197, 4528, 10, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 4534, 10, 197, 12, 197, 14, 197, 4537, 11, 197, 5, 197, 4539, 10, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 7, 198, 4549, 10, 198, 12, 198, 14, 198, 4552, 11, 198, 3, 198, 3, 198, 3, 198, 5, 198, 4557, 10, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 7, 199, 4564, 10, 199, 12, 199, 14, 199, 4567, 11, 199, 3, 200, 3, 200, 3, 200, 3, 200, 7, 200, 4573, 10, 200, 12, 200, 14, 200, 4576, 11, 200, 3, 200, 3, 200, 5, 200, 4580, 10, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 7, 200, 4587, 10, 200, 12, 200, 14, 200, 4590, 11, 200, 3, 200, 3, 200, 3, 200, 5, 200, 4595, 10, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 7, 200, 4604, 10, 200, 12, 200, 14, 200, 4607, 11, 200, 5, 200, 4609, 10, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 7, 201, 4619, 10, 201, 12, 201, 14, 201, 4622, 11, 201, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 4628, 10, 202, 3, 202, 3, 202, 3, 202, 5, 202, 4633, 10, 202, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 4648, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 4659, 10, 204, 3, 204, 5, 204, 4662, 10, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 4672, 10, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 5, 206, 4682, 10, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 4692, 10, 207, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 4702, 10, 209, 3, 210, 3, 210, 5, 210, 4706, 10, 210, 3, 210, 3, 210, 5, 210, 4710, 10, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 4720, 10, 210, 3, 210, 3, 210, 3, 210, 5, 210, 4725, 10, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 4775, 10, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 4793, 10, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 5, 213, 4801, 10, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 7, 214, 4810, 10, 214, 12, 214, 14, 214, 4813, 11, 214, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 4819, 10, 215, 3, 216, 3, 216, 5, 216, 4823, 10, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 5, 217, 4830, 10, 217, 3, 217, 3, 217, 3, 217, 5, 217, 4835, 10, 217, 3, 217, 5, 217, 4838, 10, 217, 3, 217, 5, 217, 4841, 10, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 4850, 10, 218, 3, 219, 3, 219, 5, 219, 4854, 10, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 7, 222, 4882, 10, 222, 12, 222, 14, 222, 4885, 11, 222, 3, 222, 3, 222, 3, 222, 3, 222, 5, 222, 4891, 10, 222, 3, 222, 3, 222, 5, 222, 4895, 10, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 5, 222, 4902, 10, 222, 3, 222, 5, 222, 4905, 10, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 7, 222, 4919, 10, 222, 12, 222, 14, 222, 4922, 11, 222, 5, 222, 4924, 10, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4934, 10, 223, 3, 223, 3, 223, 5, 223, 4938, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4944, 10, 223, 3, 223, 5, 223, 4947, 10, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4952, 10, 223, 3, 223, 3, 223, 5, 223, 4956, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4963, 10, 223, 3, 223, 5, 223, 4966, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4972, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 4996, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5009, 10, 223, 3, 223, 5, 223, 5012, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5022, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5030, 10, 223, 3, 223, 3, 223, 5, 223, 5034, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5041, 10, 223, 3, 223, 5, 223, 5044, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 7, 223, 5051, 10, 223, 12, 223, 14, 223, 5054, 11, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5059, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5065, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5075, 10, 223, 5, 223, 5077, 10, 223, 3, 224, 3, 224, 3, 224, 3, 224, 5, 224, 5083, 10, 224, 3, 224, 5, 224, 5086, 10, 224, 3, 224, 5, 224, 5089, 10, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 5, 225, 5101, 10, 225, 3, 225, 5, 225, 5104, 10, 225, 3, 226, 3, 226, 3, 226, 3, 226, 5, 226, 5110, 10, 226, 3, 227, 5, 227, 5113, 10, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 5, 227, 5121, 10, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 5, 227, 5129, 10, 227, 3, 228, 3, 228, 3, 228, 3, 228, 5, 228, 5135, 10, 228, 3, 228, 3, 228, 5, 228, 5139, 10, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 5, 229, 5153, 10, 229, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 7, 231, 5163, 10, 231, 12, 231, 14, 231, 5166, 11, 231, 3, 231, 3, 231, 3, 231, 3, 231, 5, 231, 5172, 10, 231, 3, 231, 5, 231, 5175, 10, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 5, 232, 5182, 10, 232, 3, 232, 3, 232, 3, 232, 7, 232, 5187, 10, 232, 12, 232, 14, 232, 5190, 11, 232, 3, 233, 3, 233, 5, 233, 5194, 10, 233, 3, 233, 6, 233, 5197, 10, 233, 13, 233, 14, 233, 5198, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 7, 234, 5208, 10, 234, 12, 234, 14, 234, 5211, 11, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 237, 3, 237, 5, 237, 5221, 10, 237, 3, 237, 3, 237, 3, 237, 3, 237, 5, 237, 5227, 10, 237, 3, 238, 3, 238, 3, 238, 5, 238, 5232, 10, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 5, 238, 5245, 10, 238, 5, 238, 5247, 10, 238, 3, 238, 3, 238, 3, 238, 5, 238, 5252, 10, 238, 3, 238, 3, 238, 3, 238, 5, 238, 5257, 10, 238, 5, 238, 5259, 10, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 5266, 10, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 5, 240, 5273, 10, 240, 3, 240, 5, 240, 5276, 10, 240, 3, 240, 5, 240, 5279, 10, 240, 3, 240, 3, 240, 3, 240, 3, 240, 5, 240, 5285, 10, 240, 3, 240, 3, 240, 5, 240, 5289, 10, 240, 3, 241, 3, 241, 3, 241, 3, 241, 5, 241, 5295, 10, 241, 3, 242, 3, 242, 3, 242, 3, 242, 5, 242, 5301, 10, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 5, 245, 5314, 10, 245, 3, 245, 3, 245, 3, 245, 5, 245, 5319, 10, 245, 3, 245, 3, 245, 3, 245, 3, 245, 7, 245, 5325, 10, 245, 12, 245, 14, 245, 5328, 11, 245, 5, 245, 5330, 10, 245, 3, 246, 3, 246, 3, 246, 5, 246, 5335, 10, 246, 3, 246, 3, 246, 3, 246, 5, 246, 5340, 10, 246, 3, 246, 3, 246, 3, 246, 3, 246, 7, 246, 5346, 10, 246, 12, 246, 14, 246, 5349, 11, 246, 5, 246, 5351, 10, 246, 3, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5357, 10, 247, 3, 248, 3, 248, 5, 248, 5361, 10, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 7, 248, 5372, 10, 248, 12, 248, 14, 248, 5375, 11, 248, 3, 248, 3, 248, 3, 248, 5, 248, 5380, 10, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 7, 248, 5390, 10, 248, 12, 248, 14, 248, 5393, 11, 248, 5, 248, 5395, 10, 248, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 5404, 10, 250, 3, 250, 3, 250, 3, 250, 5, 250, 5409, 10, 250, 3, 251, 3, 251, 3, 251, 3, 251, 5, 251, 5415, 10, 251, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 5, 253, 5422, 10, 253, 5, 253, 5424, 10, 253, 3, 254, 3, 254, 5, 254, 5428, 10, 254, 3, 254, 3, 254, 3, 254, 3, 254, 5, 254, 5434, 10, 254, 3, 254, 5, 254, 5437, 10, 254, 3, 255, 3, 255, 3, 256, 3, 256, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5447, 10, 257, 3, 258, 3, 258, 5, 258, 5451, 10, 258, 3, 259, 3, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 6, 260, 5469, 10, 260, 13, 260, 14, 260, 5470, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 5, 261, 5478, 10, 261, 5, 261, 5480, 10, 261, 3, 262, 3, 262, 3, 262, 6, 262, 5485, 10, 262, 13, 262, 14, 262, 5486, 5, 262, 5489, 10, 262, 3, 263, 3, 263, 5, 263, 5493, 10, 263, 3, 264, 3, 264, 3, 264, 5, 264, 5498, 10, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 5, 265, 5509, 10, 265, 3, 266, 3, 266, 3, 266, 5, 266, 5514, 10, 266, 3, 267, 3, 267, 3, 268, 3, 268, 5, 268, 5520, 10, 268, 3, 269, 5, 269, 5523, 10, 269, 3, 269, 3, 269, 5, 269, 5527, 10, 269, 3, 269, 6, 269, 5530, 10, 269, 13, 269, 14, 269, 5531, 3, 269, 5, 269, 5535, 10, 269, 3, 269, 3, 269, 5, 269, 5539, 10, 269, 3, 269, 3, 269, 5, 269, 5543, 10, 269, 5, 269, 5545, 10, 269, 3, 270, 3, 270, 3, 271, 5, 271, 5550, 10, 271, 3, 271, 3, 271, 3, 272, 5, 272, 5555, 10, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 5, 273, 5568, 10, 273, 3, 273, 5, 273, 5571, 10, 273, 3, 274, 3, 274, 5, 274, 5575, 10, 274, 3, 274, 5, 274, 5578, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5583, 10, 274, 3, 274, 5, 274, 5586, 10, 274, 3, 274, 3, 274, 5, 274, 5590, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5595, 10, 274, 3, 274, 5, 274, 5598, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5603, 10, 274, 3, 274, 5, 274, 5606, 10, 274, 3, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5612, 10, 274, 3, 274, 5, 274, 5615, 10, 274, 3, 274, 3, 274, 5, 274, 5619, 10, 274, 3, 274, 5, 274, 5622, 10, 274, 3, 274, 5, 274, 5625, 10, 274, 3, 274, 3, 274, 5, 274, 5629, 10, 274, 3, 274, 5, 274, 5632, 10, 274, 3, 274, 5, 274, 5635, 10, 274, 3, 274, 3, 274, 5, 274, 5639, 10, 274, 3, 274, 5, 274, 5642, 10, 274, 3, 274, 5, 274, 5645, 10, 274, 3, 274, 5, 274, 5648, 10, 274, 3, 274, 3, 274, 5, 274, 5652, 10, 274, 3, 274, 5, 274, 5655, 10, 274, 3, 274, 5, 274, 5658, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5663, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5668, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5673, 10, 274, 3, 274, 5, 274, 5676, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5681, 10, 274, 3, 274, 5, 274, 5684, 10, 274, 3, 274, 3, 274, 3, 274, 5, 274, 5689, 10, 274, 3, 274, 5, 274, 5692, 10, 274, 3, 274, 3, 274, 5, 274, 5696, 10, 274, 3, 274, 3, 274, 5, 274, 5700, 10, 274, 3, 275, 3, 275, 3, 275, 3, 275, 7, 275, 5706, 10, 275, 12, 275, 14, 275, 5709, 11, 275, 3, 275, 3, 275, 3, 276, 3, 276, 5, 276, 5715, 10, 276, 3, 276, 3, 276, 5, 276, 5719, 10, 276, 3, 276, 3, 276, 3, 276, 5, 276, 5724, 10, 276, 3, 276, 5, 276, 5727, 10, 276, 3, 276, 3, 276, 3, 276, 5, 276, 5732, 10, 276, 3, 276, 3, 276, 5, 276, 5736, 10, 276, 5, 276, 5738, 10, 276, 3, 277, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 5, 279, 5754, 10, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 7, 280, 5761, 10, 280, 12, 280, 14, 280, 5764, 11, 280, 3, 281, 3, 281, 3, 281, 7, 281, 5769, 10, 281, 12, 281, 14, 281, 5772, 11, 281, 3, 282, 3, 282, 3, 282, 3, 282, 7, 282, 5778, 10, 282, 12, 282, 14, 282, 5781, 11, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 7, 283, 5788, 10, 283, 12, 283, 14, 283, 5791, 11, 283, 3, 284, 3, 284, 3, 284, 7, 284, 5796, 10, 284, 12, 284, 14, 284, 5799, 11, 284, 3, 285, 3, 285, 3, 285, 7, 285, 5804, 10, 285, 12, 285, 14, 285, 5807, 11, 285, 3, 286, 3, 286, 3, 286, 7, 286, 5812, 10, 286, 12, 286, 14, 286, 5815, 11, 286, 3, 287, 3, 287, 3, 287, 7, 287, 5820, 10, 287, 12, 287, 14, 287, 5823, 11, 287, 3, 288, 3, 288, 5, 288, 5827, 10, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 5, 288, 5834, 10, 288, 5, 288, 5836, 10, 288, 3, 289, 3, 289, 3, 289, 5, 289, 5841, 10, 289, 3, 289, 5, 289, 5844, 10, 289, 3, 289, 3, 289, 3, 289, 5, 289, 5849, 10, 289, 3, 289, 5, 289, 5852, 10, 289, 3, 290, 3, 290, 5, 290, 5856, 10, 290, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 5, 293, 5870, 10, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 5, 293, 5877, 10, 293, 3, 293, 3, 293, 3, 293, 5, 293, 5882, 10, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 6, 294, 5914, 10, 294, 13, 294, 14, 294, 5915, 3, 294, 3, 294, 5, 294, 5920, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 6, 294, 5926, 10, 294, 13, 294, 14, 294, 5927, 3, 294, 3, 294, 5, 294, 5932, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5941, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5949, 10, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5954, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5962, 10, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5967, 10, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5972, 10, 294, 5, 294, 5974, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5983, 10, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5988, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 5996, 10, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6001, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6009, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6017, 10, 294, 3, 294, 5, 294, 6020, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6030, 10, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6041, 10, 294, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 296, 3, 296, 3, 296, 3, 296, 7, 296, 6052, 10, 296, 12, 296, 14, 296, 6055, 11, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 5, 296, 6062, 10, 296, 3, 297, 3, 297, 5, 297, 6066, 10, 297, 3, 298, 3, 298, 3, 298, 5, 298, 6071, 10, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 5, 298, 6080, 10, 298, 3, 298, 5, 298, 6083, 10, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 5, 298, 6095, 10, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 5, 298, 6103, 10, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 7, 298, 6111, 10, 298, 12, 298, 14, 298, 6114, 11, 298, 5, 298, 6116, 10, 298, 3, 298, 3, 298, 5, 298, 6120, 10, 298, 3, 298, 3, 298, 5, 298, 6124, 10, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 5, 299, 6149, 10, 299, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 5, 301, 6160, 10, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 5, 301, 6167, 10, 301, 7, 301, 6169, 10, 301, 12, 301, 14, 301, 6172, 11, 301, 3, 302, 3, 302, 3, 302, 3, 302, 5, 302, 6178, 10, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 5, 303, 6186, 10, 303, 3, 303, 3, 303, 3, 303, 5, 303, 6191, 10, 303, 3, 303, 3, 303, 3, 303, 3, 303, 7, 303, 6197, 10, 303, 12, 303, 14, 303, 6200, 11, 303, 3, 304, 3, 304, 3, 304, 5, 304, 6205, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6215, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6228, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6234, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6240, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6256, 10, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6262, 10, 304, 7, 304, 6264, 10, 304, 12, 304, 14, 304, 6267, 11, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 7, 305, 6283, 10, 305, 12, 305, 14, 305, 6286, 11, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 6, 305, 6295, 10, 305, 13, 305, 14, 305, 6296, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 5, 305, 6314, 10, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 7, 305, 6327, 10, 305, 12, 305, 14, 305, 6330, 11, 305, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 5, 307, 6348, 10, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 5, 308, 6357, 10, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 5, 309, 6366, 10, 309, 3, 310, 3, 310, 3, 311, 3, 311, 3, 312, 3, 312, 3, 313, 3, 313, 3, 314, 3, 314, 3, 315, 3, 315, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 2, 2, 5, 604, 606, 608, 318, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 100, 2, 102, 2, 104, 2, 106, 2, 108, 2, 110, 2, 112, 2, 114, 2, 116, 2, 118, 2, 120, 2, 122, 2, 124, 2, 126, 2, 128, 2, 130, 2, 132, 2, 134, 2, 136, 2, 138, 2, 140, 2, 142, 2, 144, 2, 146, 2, 148, 2, 150, 2, 152, 2, 154, 2, 156, 2, 158, 2, 160, 2, 162, 2, 164, 2, 166, 2, 168, 2, 170, 2, 172, 2, 174, 2, 176, 2, 178, 2, 180, 2, 182, 2, 184, 2, 186, 2, 188, 2, 190, 2, 192, 2, 194, 2, 196, 2, 198, 2, 200, 2, 202, 2, 204, 2, 206, 2, 208, 2, 210, 2, 212, 2, 214, 2, 216, 2, 218, 2, 220, 2, 222, 2, 224, 2, 226, 2, 228, 2, 230, 2, 232, 2, 234, 2, 236, 2, 238, 2, 240, 2, 242, 2, 244, 2, 246, 2, 248, 2, 250, 2, 252, 2, 254, 2, 256, 2, 258, 2, 260, 2, 262, 2, 264, 2, 266, 2, 268, 2, 270, 2, 272, 2, 274, 2, 276, 2, 278, 2, 280, 2, 282, 2, 284, 2, 286, 2, 288, 2, 290, 2, 292, 2, 294, 2, 296, 2, 298, 2, 300, 2, 302, 2, 304, 2, 306, 2, 308, 2, 310, 2, 312, 2, 314, 2, 316, 2, 318, 2, 320, 2, 322, 2, 324, 2, 326, 2, 328, 2, 330, 2, 332, 2, 334, 2, 336, 2, 338, 2, 340, 2, 342, 2, 344, 2, 346, 2, 348, 2, 350, 2, 352, 2, 354, 2, 356, 2, 358, 2, 360, 2, 362, 2, 364, 2, 366, 2, 368, 2, 370, 2, 372, 2, 374, 2, 376, 2, 378, 2, 380, 2, 382, 2, 384, 2, 386, 2, 388, 2, 390, 2, 392, 2, 394, 2, 396, 2, 398, 2, 400, 2, 402, 2, 404, 2, 406, 2, 408, 2, 410, 2, 412, 2, 414, 2, 416, 2, 418, 2, 420, 2, 422, 2, 424, 2, 426, 2, 428, 2, 430, 2, 432, 2, 434, 2, 436, 2, 438, 2, 440, 2, 442, 2, 444, 2, 446, 2, 448, 2, 450, 2, 452, 2, 454, 2, 456, 2, 458, 2, 460, 2, 462, 2, 464, 2, 466, 2, 468, 2, 470, 2, 472, 2, 474, 2, 476, 2, 478, 2, 480, 2, 482, 2, 484, 2, 486, 2, 488, 2, 490, 2, 492, 2, 494, 2, 496, 2, 498, 2, 500, 2, 502, 2, 504, 2, 506, 2, 508, 2, 510, 2, 512, 2, 514, 2, 516, 2, 518, 2, 520, 2, 522, 2, 524, 2, 526, 2, 528, 2, 530, 2, 532, 2, 534, 2, 536, 2, 538, 2, 540, 2, 542, 2, 544, 2, 546, 2, 548, 2, 550, 2, 552, 2, 554, 2, 556, 2, 558, 2, 560, 2, 562, 2, 564, 2, 566, 2, 568, 2, 570, 2, 572, 2, 574, 2, 576, 2, 578, 2, 580, 2, 582, 2, 584, 2, 586, 2, 588, 2, 590, 2, 592, 2, 594, 2, 596, 2, 598, 2, 600, 2, 602, 2, 604, 2, 606, 2, 608, 2, 610, 2, 612, 2, 614, 2, 616, 2, 618, 2, 620, 2, 622, 2, 624, 2, 626, 2, 628, 2, 630, 2, 632, 2, 2, 128, 4, 2, 37, 37, 137, 137, 4, 2, 453, 453, 458, 458, 5, 2, 64, 64, 144, 144, 165, 165, 5, 2, 40, 40, 322, 322, 385, 385, 6, 2, 40, 40, 354, 354, 452, 452, 522, 522, 4, 2, 443, 443, 1037, 1037, 4, 2, 72, 72, 129, 129, 4, 2, 15, 15, 274, 274, 5, 2, 42, 42, 78, 78, 168, 168, 4, 2, 367, 367, 476, 476, 5, 2, 435, 435, 560, 560, 567, 567, 4, 2, 329, 329, 390, 390, 4, 2, 292, 292, 404, 404, 4, 2, 290, 290, 376, 376, 5, 2, 73, 73, 77, 77, 114, 114, 5, 2, 40, 40, 339, 339, 365, 365, 5, 2, 40, 40, 335, 335, 684, 684, 4, 2, 548, 548, 581, 581, 4, 2, 74, 74, 84, 84, 5, 2, 369, 369, 467, 467, 524, 524, 4, 2, 64, 64, 144, 144, 3, 2, 296, 297, 3, 2, 1027, 1028, 4, 2, 1037, 1037, 1045, 1045, 5, 2, 364, 364, 399, 399, 450, 450, 4, 2, 40, 40, 1027, 1028, 8, 2, 40, 40, 309, 309, 311, 311, 339, 339, 365, 365, 489, 489, 3, 2, 1028, 1029, 4, 2, 7, 7, 49, 49, 4, 2, 389, 389, 582, 582, 4, 2, 13, 13, 159, 159, 4, 2, 176, 176, 585, 585, 4, 2, 20, 20, 132, 132, 5, 2, 41, 41, 70, 70, 97, 97, 4, 2, 97, 97, 313, 313, 4, 2, 304, 304, 361, 361, 4, 2, 93, 93, 514, 514, 4, 2, 41, 41, 97, 97, 4, 2, 8, 8, 47, 47, 4, 2, 172, 172, 578, 578, 6, 2, 364, 364, 399, 399, 449, 449, 479, 479, 4, 2, 364, 364, 449, 449, 4, 2, 14, 14, 43, 43, 5, 2, 61, 61, 72, 72, 170, 170, 4, 2, 33, 33, 76, 76, 4, 2, 89, 89, 135, 135, 4, 2, 8, 8, 47, 48, 3, 2, 537, 538, 4, 2, 372, 372, 520, 520, 4, 2, 210, 210, 407, 407, 7, 2, 98, 98, 412, 413, 415, 415, 419, 427, 491, 491, 6, 2, 409, 410, 414, 414, 416, 417, 492, 492, 5, 2, 99, 99, 408, 408, 418, 418, 4, 2, 392, 392, 539, 539, 4, 2, 533, 533, 535, 535, 4, 2, 284, 284, 540, 540, 4, 2, 83, 83, 506, 506, 4, 2, 49, 49, 327, 327, 5, 2, 30, 30, 56, 56, 163, 163, 5, 2, 119, 119, 156, 156, 370, 370, 4, 2, 95, 95, 166, 166, 4, 2, 300, 300, 525, 525, 4, 2, 38, 38, 580, 580, 4, 2, 105, 105, 404, 404, 4, 2, 357, 357, 485, 485, 6, 2, 190, 190, 192, 192, 198, 198, 549, 549, 4, 2, 996, 996, 1013, 1013, 4, 2, 285, 285, 493, 493, 4, 2, 63, 63, 73, 73, 8, 2, 119, 119, 156, 156, 161, 161, 350, 350, 370, 370, 580, 580, 4, 2, 442, 442, 545, 545, 4, 2, 347, 347, 584, 584, 4, 2, 119, 119, 370, 370, 5, 2, 74, 74, 85, 85, 383, 383, 5, 2, 372, 372, 404, 404, 520, 520, 4, 2, 545, 545, 579, 579, 4, 2, 314, 314, 484, 484, 8, 2, 210, 210, 344, 344, 346, 346, 371, 371, 490, 490, 526, 526, 4, 2, 43, 44, 57, 57, 5, 2, 357, 357, 469, 469, 776, 776, 4, 2, 396, 396, 562, 562, 12, 2, 299, 299, 306, 306, 316, 318, 324, 324, 436, 436, 444, 444, 550, 550, 557, 557, 728, 728, 894, 894, 4, 2, 34, 34, 153, 153, 4, 2, 107, 107, 886, 886, 13, 2, 299, 299, 306, 306, 316, 318, 324, 324, 436, 436, 444, 444, 507, 507, 550, 550, 557, 557, 728, 728, 894, 894, 5, 2, 1037, 1037, 1045, 1045, 1047, 1047, 3, 2, 1048, 1049, 5, 2, 679, 690, 1037, 1037, 1045, 1046, 4, 2, 1027, 1029, 1038, 1038, 4, 2, 58, 58, 162, 162, 4, 2, 106, 106, 1041, 1041, 7, 2, 24, 24, 206, 208, 215, 215, 217, 220, 447, 447, 4, 2, 24, 24, 207, 207, 4, 2, 24, 24, 206, 206, 3, 2, 180, 191, 4, 2, 167, 167, 523, 523, 4, 2, 195, 200, 365, 365, 7, 2, 201, 201, 212, 214, 216, 216, 223, 223, 288, 289, 5, 2, 202, 205, 210, 211, 286, 286, 4, 2, 140, 140, 221, 221, 4, 2, 396, 396, 695, 703, 4, 2, 210, 210, 447, 447, 5, 2, 201, 202, 204, 204, 396, 396, 4, 2, 255, 256, 262, 262, 4, 2, 35, 35, 253, 256, 3, 2, 265, 266, 5, 2, 17, 17, 87, 87, 160, 160, 4, 2, 206, 206, 210, 210, 4, 2, 201, 202, 204, 204, 5, 2, 14, 14, 43, 43, 884, 884, 5, 2, 237, 237, 243, 244, 249, 249, 5, 2, 238, 240, 245, 248, 250, 252, 4, 2, 456, 456, 470, 470, 4, 2, 104, 104, 1016, 1016, 5, 2, 58, 58, 162, 162, 571, 571, 4, 2, 125, 125, 136, 136, 5, 2, 8, 8, 277, 277, 529, 529, 6, 2, 104, 104, 1008, 1008, 1010, 1010, 1016, 1017, 3, 2, 1005, 1012, 3, 2, 639, 678, 3, 2, 691, 694, 3, 2, 604, 612, 3, 2, 596, 603, 5, 2, 201, 205, 218, 218, 221, 221, 16, 2, 34, 34, 46, 46, 107, 107, 153, 153, 223, 223, 272, 388, 390, 547, 549, 580, 583, 590, 595, 595, 614, 638, 684, 684, 728, 728, 894, 894, 18, 2, 37, 37, 89, 89, 135, 135, 201, 203, 205, 205, 235, 236, 241, 241, 264, 264, 389, 389, 582, 582, 596, 603, 632, 632, 695, 695, 698, 727, 729, 893, 895, 995, 2, 7505, 2, 634, 3, 2, 2, 2, 4, 638, 3, 2, 2, 2, 6, 655, 3, 2, 2, 2, 8, 675, 3, 2, 2, 2, 10, 677, 3, 2, 2, 2, 12, 714, 3, 2, 2, 2, 14, 726, 3, 2, 2, 2, 16, 737, 3, 2, 2, 2, 18, 754, 3, 2, 2, 2, 20, 759, 3, 2, 2, 2, 22, 771, 3, 2, 2, 2, 24, 798, 3, 2, 2, 2, 26, 807, 3, 2, 2, 2, 28, 809, 3, 2, 2, 2, 30, 821, 3, 2, 2, 2, 32, 851, 3, 2, 2, 2, 34, 887, 3, 2, 2, 2, 36, 938, 3, 2, 2, 2, 38, 964, 3, 2, 2, 2, 40, 994, 3, 2, 2, 2, 42, 1091, 3, 2, 2, 2, 44, 1093, 3, 2, 2, 2, 46, 1111, 3, 2, 2, 2, 48, 1172, 3, 2, 2, 2, 50, 1191, 3, 2, 2, 2, 52, 1250, 3, 2, 2, 2, 54, 1252, 3, 2, 2, 2, 56, 1296, 3, 2, 2, 2, 58, 1302, 3, 2, 2, 2, 60, 1304, 3, 2, 2, 2, 62, 1325, 3, 2, 2, 2, 64, 1332, 3, 2, 2, 2, 66, 1334, 3, 2, 2, 2, 68, 1350, 3, 2, 2, 2, 70, 1353, 3, 2, 2, 2, 72, 1358, 3, 2, 2, 2, 74, 1384, 3, 2, 2, 2, 76, 1400, 3, 2, 2, 2, 78, 1402, 3, 2, 2, 2, 80, 1418, 3, 2, 2, 2, 82, 1420, 3, 2, 2, 2, 84, 1478, 3, 2, 2, 2, 86, 1549, 3, 2, 2, 2, 88, 1551, 3, 2, 2, 2, 90, 1579, 3, 2, 2, 2, 92, 1587, 3, 2, 2, 2, 94, 1617, 3, 2, 2, 2, 96, 1763, 3, 2, 2, 2, 98, 1765, 3, 2, 2, 2, 100, 1768, 3, 2, 2, 2, 102, 1842, 3, 2, 2, 2, 104, 1865, 3, 2, 2, 2, 106, 1998, 3, 2, 2, 2, 108, 2003, 3, 2, 2, 2, 110, 2005, 3, 2, 2, 2, 112, 2015, 3, 2, 2, 2, 114, 2068, 3, 2, 2, 2, 116, 2088, 3, 2, 2, 2, 118, 2090, 3, 2, 2, 2, 120, 2125, 3, 2, 2, 2, 122, 2134, 3, 2, 2, 2, 124, 2141, 3, 2, 2, 2, 126, 2164, 3, 2, 2, 2, 128, 2173, 3, 2, 2, 2, 130, 2188, 3, 2, 2, 2, 132, 2210, 3, 2, 2, 2, 134, 2230, 3, 2, 2, 2, 136, 2625, 3, 2, 2, 2, 138, 2627, 3, 2, 2, 2, 140, 2634, 3, 2, 2, 2, 142, 2641, 3, 2, 2, 2, 144, 2664, 3, 2, 2, 2, 146, 2672, 3, 2, 2, 2, 148, 2679, 3, 2, 2, 2, 150, 2686, 3, 2, 2, 2, 152, 2693, 3, 2, 2, 2, 154, 2705, 3, 2, 2, 2, 156, 2715, 3, 2, 2, 2, 158, 2722, 3, 2, 2, 2, 160, 2738, 3, 2, 2, 2, 162, 2748, 3, 2, 2, 2, 164, 2752, 3, 2, 2, 2, 166, 2758, 3, 2, 2, 2, 168, 2770, 3, 2, 2, 2, 170, 2772, 3, 2, 2, 2, 172, 2779, 3, 2, 2, 2, 174, 2781, 3, 2, 2, 2, 176, 2832, 3, 2, 2, 2, 178, 2906, 3, 2, 2, 2, 180, 2965, 3, 2, 2, 2, 182, 3053, 3, 2, 2, 2, 184, 3057, 3, 2, 2, 2, 186, 3077, 3, 2, 2, 2, 188, 3079, 3, 2, 2, 2, 190, 3087, 3, 2, 2, 2, 192, 3095, 3, 2, 2, 2, 194, 3097, 3, 2, 2, 2, 196, 3127, 3, 2, 2, 2, 198, 3182, 3, 2, 2, 2, 200, 3191, 3, 2, 2, 2, 202, 3211, 3, 2, 2, 2, 204, 3223, 3, 2, 2, 2, 206, 3227, 3, 2, 2, 2, 208, 3260, 3, 2, 2, 2, 210, 3281, 3, 2, 2, 2, 212, 3291, 3, 2, 2, 2, 214, 3295, 3, 2, 2, 2, 216, 3320, 3, 2, 2, 2, 218, 3362, 3, 2, 2, 2, 220, 3364, 3, 2, 2, 2, 222, 3379, 3, 2, 2, 2, 224, 3425, 3, 2, 2, 2, 226, 3435, 3, 2, 2, 2, 228, 3445, 3, 2, 2, 2, 230, 3487, 3, 2, 2, 2, 232, 3489, 3, 2, 2, 2, 234, 3506, 3, 2, 2, 2, 236, 3512, 3, 2, 2, 2, 238, 3528, 3, 2, 2, 2, 240, 3532, 3, 2, 2, 2, 242, 3570, 3, 2, 2, 2, 244, 3608, 3, 2, 2, 2, 246, 3622, 3, 2, 2, 2, 248, 3630, 3, 2, 2, 2, 250, 3632, 3, 2, 2, 2, 252, 3658, 3, 2, 2, 2, 254, 3662, 3, 2, 2, 2, 256, 3677, 3, 2, 2, 2, 258, 3679, 3, 2, 2, 2, 260, 3691, 3, 2, 2, 2, 262, 3695, 3, 2, 2, 2, 264, 3712, 3, 2, 2, 2, 266, 3729, 3, 2, 2, 2, 268, 3732, 3, 2, 2, 2, 270, 3742, 3, 2, 2, 2, 272, 3746, 3, 2, 2, 2, 274, 3756, 3, 2, 2, 2, 276, 3759, 3, 2, 2, 2, 278, 3764, 3, 2, 2, 2, 280, 3784, 3, 2, 2, 2, 282, 3786, 3, 2, 2, 2, 284, 3803, 3, 2, 2, 2, 286, 3812, 3, 2, 2, 2, 288, 3821, 3, 2, 2, 2, 290, 3823, 3, 2, 2, 2, 292, 3837, 3, 2, 2, 2, 294, 3848, 3, 2, 2, 2, 296, 3857, 3, 2, 2, 2, 298, 3860, 3, 2, 2, 2, 300, 3868, 3, 2, 2, 2, 302, 3893, 3, 2, 2, 2, 304, 3905, 3, 2, 2, 2, 306, 3908, 3, 2, 2, 2, 308, 3940, 3, 2, 2, 2, 310, 3942, 3, 2, 2, 2, 312, 3944, 3, 2, 2, 2, 314, 3946, 3, 2, 2, 2, 316, 3948, 3, 2, 2, 2, 318, 4001, 3, 2, 2, 2, 320, 4003, 3, 2, 2, 2, 322, 4009, 3, 2, 2, 2, 324, 4029, 3, 2, 2, 2, 326, 4043, 3, 2, 2, 2, 328, 4054, 3, 2, 2, 2, 330, 4056, 3, 2, 2, 2, 332, 4062, 3, 2, 2, 2, 334, 4072, 3, 2, 2, 2, 336, 4076, 3, 2, 2, 2, 338, 4083, 3, 2, 2, 2, 340, 4087, 3, 2, 2, 2, 342, 4093, 3, 2, 2, 2, 344, 4100, 3, 2, 2, 2, 346, 4106, 3, 2, 2, 2, 348, 4112, 3, 2, 2, 2, 350, 4117, 3, 2, 2, 2, 352, 4164, 3, 2, 2, 2, 354, 4185, 3, 2, 2, 2, 356, 4210, 3, 2, 2, 2, 358, 4213, 3, 2, 2, 2, 360, 4219, 3, 2, 2, 2, 362, 4235, 3, 2, 2, 2, 364, 4250, 3, 2, 2, 2, 366, 4256, 3, 2, 2, 2, 368, 4286, 3, 2, 2, 2, 370, 4288, 3, 2, 2, 2, 372, 4295, 3, 2, 2, 2, 374, 4307, 3, 2, 2, 2, 376, 4313, 3, 2, 2, 2, 378, 4338, 3, 2, 2, 2, 380, 4342, 3, 2, 2, 2, 382, 4346, 3, 2, 2, 2, 384, 4357, 3, 2, 2, 2, 386, 4419, 3, 2, 2, 2, 388, 4475, 3, 2, 2, 2, 390, 4477, 3, 2, 2, 2, 392, 4490, 3, 2, 2, 2, 394, 4540, 3, 2, 2, 2, 396, 4558, 3, 2, 2, 2, 398, 4608, 3, 2, 2, 2, 400, 4610, 3, 2, 2, 2, 402, 4623, 3, 2, 2, 2, 404, 4634, 3, 2, 2, 2, 406, 4661, 3, 2, 2, 2, 408, 4671, 3, 2, 2, 2, 410, 4681, 3, 2, 2, 2, 412, 4683, 3, 2, 2, 2, 414, 4693, 3, 2, 2, 2, 416, 4696, 3, 2, 2, 2, 418, 4774, 3, 2, 2, 2, 420, 4792, 3, 2, 2, 2, 422, 4794, 3, 2, 2, 2, 424, 4798, 3, 2, 2, 2, 426, 4805, 3, 2, 2, 2, 428, 4814, 3, 2, 2, 2, 430, 4820, 3, 2, 2, 2, 432, 4827, 3, 2, 2, 2, 434, 4849, 3, 2, 2, 2, 436, 4851, 3, 2, 2, 2, 438, 4862, 3, 2, 2, 2, 440, 4868, 3, 2, 2, 2, 442, 4923, 3, 2, 2, 2, 444, 5076, 3, 2, 2, 2, 446, 5088, 3, 2, 2, 2, 448, 5103, 3, 2, 2, 2, 450, 5109, 3, 2, 2, 2, 452, 5128, 3, 2, 2, 2, 454, 5138, 3, 2, 2, 2, 456, 5152, 3, 2, 2, 2, 458, 5154, 3, 2, 2, 2, 460, 5157, 3, 2, 2, 2, 462, 5179, 3, 2, 2, 2, 464, 5191, 3, 2, 2, 2, 466, 5200, 3, 2, 2, 2, 468, 5212, 3, 2, 2, 2, 470, 5216, 3, 2, 2, 2, 472, 5218, 3, 2, 2, 2, 474, 5258, 3, 2, 2, 2, 476, 5265, 3, 2, 2, 2, 478, 5267, 3, 2, 2, 2, 480, 5290, 3, 2, 2, 2, 482, 5296, 3, 2, 2, 2, 484, 5304, 3, 2, 2, 2, 486, 5307, 3, 2, 2, 2, 488, 5310, 3, 2, 2, 2, 490, 5331, 3, 2, 2, 2, 492, 5352, 3, 2, 2, 2, 494, 5358, 3, 2, 2, 2, 496, 5396, 3, 2, 2, 2, 498, 5408, 3, 2, 2, 2, 500, 5410, 3, 2, 2, 2, 502, 5416, 3, 2, 2, 2, 504, 5418, 3, 2, 2, 2, 506, 5427, 3, 2, 2, 2, 508, 5438, 3, 2, 2, 2, 510, 5440, 3, 2, 2, 2, 512, 5446, 3, 2, 2, 2, 514, 5450, 3, 2, 2, 2, 516, 5452, 3, 2, 2, 2, 518, 5454, 3, 2, 2, 2, 520, 5472, 3, 2, 2, 2, 522, 5488, 3, 2, 2, 2, 524, 5492, 3, 2, 2, 2, 526, 5497, 3, 2, 2, 2, 528, 5508, 3, 2, 2, 2, 530, 5513, 3, 2, 2, 2, 532, 5515, 3, 2, 2, 2, 534, 5519, 3, 2, 2, 2, 536, 5544, 3, 2, 2, 2, 538, 5546, 3, 2, 2, 2, 540, 5549, 3, 2, 2, 2, 542, 5554, 3, 2, 2, 2, 544, 5570, 3, 2, 2, 2, 546, 5699, 3, 2, 2, 2, 548, 5701, 3, 2, 2, 2, 550, 5737, 3, 2, 2, 2, 552, 5739, 3, 2, 2, 2, 554, 5743, 3, 2, 2, 2, 556, 5749, 3, 2, 2, 2, 558, 5757, 3, 2, 2, 2, 560, 5765, 3, 2, 2, 2, 562, 5773, 3, 2, 2, 2, 564, 5784, 3, 2, 2, 2, 566, 5792, 3, 2, 2, 2, 568, 5800, 3, 2, 2, 2, 570, 5808, 3, 2, 2, 2, 572, 5816, 3, 2, 2, 2, 574, 5835, 3, 2, 2, 2, 576, 5851, 3, 2, 2, 2, 578, 5855, 3, 2, 2, 2, 580, 5857, 3, 2, 2, 2, 582, 5860, 3, 2, 2, 2, 584, 5881, 3, 2, 2, 2, 586, 6040, 3, 2, 2, 2, 588, 6042, 3, 2, 2, 2, 590, 6061, 3, 2, 2, 2, 592, 6063, 3, 2, 2, 2, 594, 6123, 3, 2, 2, 2, 596, 6148, 3, 2, 2, 2, 598, 6150, 3, 2, 2, 2, 600, 6159, 3, 2, 2, 2, 602, 6177, 3, 2, 2, 2, 604, 6190, 3, 2, 2, 2, 606, 6201, 3, 2, 2, 2, 608, 6313, 3, 2, 2, 2, 610, 6331, 3, 2, 2, 2, 612, 6347, 3, 2, 2, 2, 614, 6356, 3, 2, 2, 2, 616, 6365, 3, 2, 2, 2, 618, 6367, 3, 2, 2, 2, 620, 6369, 3, 2, 2, 2, 622, 6371, 3, 2, 2, 2, 624, 6373, 3, 2, 2, 2, 626, 6375, 3, 2, 2, 2, 628, 6377, 3, 2, 2, 2, 630, 6379, 3, 2, 2, 2, 632, 6381, 3, 2, 2, 2, 634, 635, 5, 4, 3, 2, 635, 636, 7, 2, 2, 3, 636, 3, 3, 2, 2, 2, 637, 639, 5, 6, 4, 2, 638, 637, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 641, 3, 2, 2, 2, 640, 642, 7, 1009, 2, 2, 641, 640, 3, 2, 2, 2, 641, 642, 3, 2, 2, 2, 642, 643, 3, 2, 2, 2, 643, 644, 7, 2, 2, 3, 644, 5, 3, 2, 2, 2, 645, 647, 5, 8, 5, 2, 646, 648, 7, 1009, 2, 2, 647, 646, 3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 650, 3, 2, 2, 2, 649, 651, 7, 1025, 2, 2, 650, 649, 3, 2, 2, 2, 650, 651, 3, 2, 2, 2, 651, 654, 3, 2, 2, 2, 652, 654, 5, 10, 6, 2, 653, 645, 3, 2, 2, 2, 653, 652, 3, 2, 2, 2, 654, 657, 3, 2, 2, 2, 655, 653, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 666, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 658, 663, 5, 8, 5, 2, 659, 661, 7, 1009, 2, 2, 660, 659, 3, 2, 2, 2, 660, 661, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 664, 7, 1025, 2, 2, 663, 660, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 667, 3, 2, 2, 2, 665, 667, 5, 10, 6, 2, 666, 658, 3, 2, 2, 2, 666, 665, 3, 2, 2, 2, 667, 7, 3, 2, 2, 2, 668, 676, 5, 12, 7, 2, 669, 676, 5, 14, 8, 2, 670, 676, 5, 16, 9, 2, 671, 676, 5, 18, 10, 2, 672, 676, 5, 20, 11, 2, 673, 676, 5, 24, 13, 2, 674, 676, 5, 26, 14, 2, 675, 668, 3, 2, 2, 2, 675, 669, 3, 2, 2, 2, 675, 670, 3, 2, 2, 2, 675, 671, 3, 2, 2, 2, 675, 672, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 675, 674, 3, 2, 2, 2, 676, 9, 3, 2, 2, 2, 677, 678, 7, 1025, 2, 2, 678, 11, 3, 2, 2, 2, 679, 715, 5, 28, 15, 2, 680, 715, 5, 30, 16, 2, 681, 715, 5, 32, 17, 2, 682, 715, 5, 34, 18, 2, 683, 715, 5, 36, 19, 2, 684, 715, 5, 38, 20, 2, 685, 715, 5, 40, 21, 2, 686, 715, 5, 42, 22, 2, 687, 715, 5, 44, 23, 2, 688, 715, 5, 46, 24, 2, 689, 715, 5, 48, 25, 2, 690, 715, 5, 50, 26, 2, 691, 715, 5, 116, 59, 2, 692, 715, 5, 118, 60, 2, 693, 715, 5, 120, 61, 2, 694, 715, 5, 122, 62, 2, 695, 715, 5, 124, 63, 2, 696, 715, 5, 126, 64, 2, 697, 715, 5, 128, 65, 2, 698, 715, 5, 130, 66, 2, 699, 715, 5, 132, 67, 2, 700, 715, 5, 134, 68, 2, 701, 715, 5, 138, 70, 2, 702, 715, 5, 140, 71, 2, 703, 715, 5, 142, 72, 2, 704, 715, 5, 144, 73, 2, 705, 715, 5, 146, 74, 2, 706, 715, 5, 148, 75, 2, 707, 715, 5, 150, 76, 2, 708, 715, 5, 152, 77, 2, 709, 715, 5, 154, 78, 2, 710, 715, 5, 156, 79, 2, 711, 715, 5, 158, 80, 2, 712, 715, 5, 160, 81, 2, 713, 715, 5, 164, 83, 2, 714, 679, 3, 2, 2, 2, 714, 680, 3, 2, 2, 2, 714, 681, 3, 2, 2, 2, 714, 682, 3, 2, 2, 2, 714, 683, 3, 2, 2, 2, 714, 684, 3, 2, 2, 2, 714, 685, 3, 2, 2, 2, 714, 686, 3, 2, 2, 2, 714, 687, 3, 2, 2, 2, 714, 688, 3, 2, 2, 2, 714, 689, 3, 2, 2, 2, 714, 690, 3, 2, 2, 2, 714, 691, 3, 2, 2, 2, 714, 692, 3, 2, 2, 2, 714, 693, 3, 2, 2, 2, 714, 694, 3, 2, 2, 2, 714, 695, 3, 2, 2, 2, 714, 696, 3, 2, 2, 2, 714, 697, 3, 2, 2, 2, 714, 698, 3, 2, 2, 2, 714, 699, 3, 2, 2, 2, 714, 700, 3, 2, 2, 2, 714, 701, 3, 2, 2, 2, 714, 702, 3, 2, 2, 2, 714, 703, 3, 2, 2, 2, 714, 704, 3, 2, 2, 2, 714, 705, 3, 2, 2, 2, 714, 706, 3, 2, 2, 2, 714, 707, 3, 2, 2, 2, 714, 708, 3, 2, 2, 2, 714, 709, 3, 2, 2, 2, 714, 710, 3, 2, 2, 2, 714, 711, 3, 2, 2, 2, 714, 712, 3, 2, 2, 2, 714, 713, 3, 2, 2, 2, 715, 13, 3, 2, 2, 2, 716, 727, 5, 182, 92, 2, 717, 727, 5, 174, 88, 2, 718, 727, 5, 184, 93, 2, 719, 727, 5, 168, 85, 2, 720, 727, 5, 180, 91, 2, 721, 727, 5, 166, 84, 2, 722, 727, 5, 176, 89, 2, 723, 727, 5, 178, 90, 2, 724, 727, 5, 170, 86, 2, 725, 727, 5, 172, 87, 2, 726, 716, 3, 2, 2, 2, 726, 717, 3, 2, 2, 2, 726, 718, 3, 2, 2, 2, 726, 719, 3, 2, 2, 2, 726, 720, 3, 2, 2, 2, 726, 721, 3, 2, 2, 2, 726, 722, 3, 2, 2, 2, 726, 723, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 726, 725, 3, 2, 2, 2, 727, 15, 3, 2, 2, 2, 728, 738, 5, 258, 130, 2, 729, 738, 5, 260, 131, 2, 730, 738, 5, 262, 132, 2, 731, 738, 5, 264, 133, 2, 732, 738, 5, 266, 134, 2, 733, 738, 5, 268, 135, 2, 734, 738, 5, 270, 136, 2, 735, 738, 5, 272, 137, 2, 736, 738, 5, 274, 138, 2, 737, 728, 3, 2, 2, 2, 737, 729, 3, 2, 2, 2, 737, 730, 3, 2, 2, 2, 737, 731, 3, 2, 2, 2, 737, 732, 3, 2, 2, 2, 737, 733, 3, 2, 2, 2, 737, 734, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 737, 736, 3, 2, 2, 2, 738, 17, 3, 2, 2, 2, 739, 755, 5, 290, 146, 2, 740, 755, 5, 292, 147, 2, 741, 755, 5, 294, 148, 2, 742, 755, 5, 296, 149, 2, 743, 755, 5, 298, 150, 2, 744, 755, 5, 300, 151, 2, 745, 755, 5, 302, 152, 2, 746, 755, 5, 304, 153, 2, 747, 755, 5, 306, 154, 2, 748, 755, 5, 330, 166, 2, 749, 755, 5, 332, 167, 2, 750, 755, 5, 334, 168, 2, 751, 755, 5, 336, 169, 2, 752, 755, 5, 338, 170, 2, 753, 755, 5, 340, 171, 2, 754, 739, 3, 2, 2, 2, 754, 740, 3, 2, 2, 2, 754, 741, 3, 2, 2, 2, 754, 742, 3, 2, 2, 2, 754, 743, 3, 2, 2, 2, 754, 744, 3, 2, 2, 2, 754, 745, 3, 2, 2, 2, 754, 746, 3, 2, 2, 2, 754, 747, 3, 2, 2, 2, 754, 748, 3, 2, 2, 2, 754, 749, 3, 2, 2, 2, 754, 750, 3, 2, 2, 2, 754, 751, 3, 2, 2, 2, 754, 752, 3, 2, 2, 2, 754, 753, 3, 2, 2, 2, 755, 19, 3, 2, 2, 2, 756, 760, 5, 342, 172, 2, 757, 760, 5, 344, 173, 2, 758, 760, 5, 346, 174, 2, 759, 756, 3, 2, 2, 2, 759, 757, 3, 2, 2, 2, 759, 758, 3, 2, 2, 2, 760, 21, 3, 2, 2, 2, 761, 772, 5, 350, 176, 2, 762, 772, 5, 352, 177, 2, 763, 772, 5, 354, 178, 2, 764, 772, 5, 358, 180, 2, 765, 772, 5, 360, 181, 2, 766, 772, 5, 362, 182, 2, 767, 772, 5, 366, 184, 2, 768, 772, 5, 356, 179, 2, 769, 772, 5, 364, 183, 2, 770, 772, 5, 368, 185, 2, 771, 761, 3, 2, 2, 2, 771, 762, 3, 2, 2, 2, 771, 763, 3, 2, 2, 2, 771, 764, 3, 2, 2, 2, 771, 765, 3, 2, 2, 2, 771, 766, 3, 2, 2, 2, 771, 767, 3, 2, 2, 2, 771, 768, 3, 2, 2, 2, 771, 769, 3, 2, 2, 2, 771, 770, 3, 2, 2, 2, 772, 23, 3, 2, 2, 2, 773, 799, 5, 386, 194, 2, 774, 799, 5, 388, 195, 2, 775, 799, 5, 390, 196, 2, 776, 799, 5, 392, 197, 2, 777, 799, 5, 394, 198, 2, 778, 799, 5, 396, 199, 2, 779, 799, 5, 398, 200, 2, 780, 799, 5, 400, 201, 2, 781, 799, 5, 424, 213, 2, 782, 799, 5, 426, 214, 2, 783, 799, 5, 428, 215, 2, 784, 799, 5, 430, 216, 2, 785, 799, 5, 432, 217, 2, 786, 799, 5, 436, 219, 2, 787, 799, 5, 438, 220, 2, 788, 799, 5, 440, 221, 2, 789, 799, 5, 442, 222, 2, 790, 799, 5, 444, 223, 2, 791, 799, 5, 458, 230, 2, 792, 799, 5, 460, 231, 2, 793, 799, 5, 462, 232, 2, 794, 799, 5, 464, 233, 2, 795, 799, 5, 466, 234, 2, 796, 799, 5, 468, 235, 2, 797, 799, 5, 470, 236, 2, 798, 773, 3, 2, 2, 2, 798, 774, 3, 2, 2, 2, 798, 775, 3, 2, 2, 2, 798, 776, 3, 2, 2, 2, 798, 777, 3, 2, 2, 2, 798, 778, 3, 2, 2, 2, 798, 779, 3, 2, 2, 2, 798, 780, 3, 2, 2, 2, 798, 781, 3, 2, 2, 2, 798, 782, 3, 2, 2, 2, 798, 783, 3, 2, 2, 2, 798, 784, 3, 2, 2, 2, 798, 785, 3, 2, 2, 2, 798, 786, 3, 2, 2, 2, 798, 787, 3, 2, 2, 2, 798, 788, 3, 2, 2, 2, 798, 789, 3, 2, 2, 2, 798, 790, 3, 2, 2, 2, 798, 791, 3, 2, 2, 2, 798, 792, 3, 2, 2, 2, 798, 793, 3, 2, 2, 2, 798, 794, 3, 2, 2, 2, 798, 795, 3, 2, 2, 2, 798, 796, 3, 2, 2, 2, 798, 797, 3, 2, 2, 2, 799, 25, 3, 2, 2, 2, 800, 808, 5, 480, 241, 2, 801, 808, 5, 482, 242, 2, 802, 808, 5, 484, 243, 2, 803, 808, 5, 486, 244, 2, 804, 808, 5, 488, 245, 2, 805, 808, 5, 490, 246, 2, 806, 808, 5, 494, 248, 2, 807, 800, 3, 2, 2, 2, 807, 801, 3, 2, 2, 2, 807, 802, 3, 2, 2, 2, 807, 803, 3, 2, 2, 2, 807, 804, 3, 2, 2, 2, 807, 805, 3, 2, 2, 2, 807, 806, 3, 2, 2, 2, 808, 27, 3, 2, 2, 2, 809, 810, 7, 32, 2, 2, 810, 812, 9, 2, 2, 2, 811, 813, 5, 582, 292, 2, 812, 811, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 814, 3, 2, 2, 2, 814, 818, 5, 526, 264, 2, 815, 817, 5, 52, 27, 2, 816, 815, 3, 2, 2, 2, 817, 820, 3, 2, 2, 2, 818, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 29, 3, 2, 2, 2, 820, 818, 3, 2, 2, 2, 821, 823, 7, 32, 2, 2, 822, 824, 5, 54, 28, 2, 823, 822, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 825, 3, 2, 2, 2, 825, 827, 7, 350, 2, 2, 826, 828, 5, 582, 292, 2, 827, 826, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 830, 5, 500, 251, 2, 830, 831, 7, 108, 2, 2, 831, 832, 7, 517, 2, 2, 832, 839, 5, 56, 29, 2, 833, 834, 7, 108, 2, 2, 834, 836, 7, 310, 2, 2, 835, 837, 7, 104, 2, 2, 836, 835, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 838, 3, 2, 2, 2, 838, 840, 7, 478, 2, 2, 839, 833, 3, 2, 2, 2, 839, 840, 3, 2, 2, 2, 840, 842, 3, 2, 2, 2, 841, 843, 5, 64, 33, 2, 842, 841, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 846, 3, 2, 2, 2, 844, 845, 7, 307, 2, 2, 845, 847, 7, 1037, 2, 2, 846, 844, 3, 2, 2, 2, 846, 847, 3, 2, 2, 2, 847, 848, 3, 2, 2, 2, 848, 849, 7, 336, 2, 2, 849, 850, 5, 348, 175, 2, 850, 31, 3, 2, 2, 2, 851, 853, 7, 32, 2, 2, 852, 854, 9, 3, 2, 2, 853, 852, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854, 856, 3, 2, 2, 2, 855, 857, 9, 4, 2, 2, 856, 855, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 858, 3, 2, 2, 2, 858, 859, 7, 74, 2, 2, 859, 861, 5, 526, 264, 2, 860, 862, 5, 66, 34, 2, 861, 860, 3, 2, 2, 2, 861, 862, 3, 2, 2, 2, 862, 863, 3, 2, 2, 2, 863, 864, 7, 108, 2, 2, 864, 865, 5, 502, 252, 2, 865, 869, 5, 562, 282, 2, 866, 868, 5, 68, 35, 2, 867, 866, 3, 2, 2, 2, 868, 871, 3, 2, 2, 2, 869, 867, 3, 2, 2, 2, 869, 870, 3, 2, 2, 2, 870, 884, 3, 2, 2, 2, 871, 869, 3, 2, 2, 2, 872, 874, 7, 276, 2, 2, 873, 875, 7, 1013, 2, 2, 874, 873, 3, 2, 2, 2, 874, 875, 3, 2, 2, 2, 875, 876, 3, 2, 2, 2, 876, 883, 9, 5, 2, 2, 877, 879, 7, 95, 2, 2, 878, 880, 7, 1013, 2, 2, 879, 878, 3, 2, 2, 2, 879, 880, 3, 2, 2, 2, 880, 881, 3, 2, 2, 2, 881, 883, 9, 6, 2, 2, 882, 872, 3, 2, 2, 2, 882, 877, 3, 2, 2, 2, 883, 886, 3, 2, 2, 2, 884, 882, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 33, 3, 2, 2, 2, 886, 884, 3, 2, 2, 2, 887, 888, 7, 32, 2, 2, 888, 889, 7, 405, 2, 2, 889, 890, 7, 68, 2, 2, 890, 891, 5, 526, 264, 2, 891, 892, 7, 7, 2, 2, 892, 893, 7, 568, 2, 2, 893, 899, 7, 1037, 2, 2, 894, 896, 7, 384, 2, 2, 895, 897, 7, 1013, 2, 2, 896, 895, 3, 2, 2, 2, 896, 897, 3, 2, 2, 2, 897, 898, 3, 2, 2, 2, 898, 900, 5, 534, 268, 2, 899, 894, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 906, 3, 2, 2, 2, 901, 903, 7, 569, 2, 2, 902, 904, 7, 1013, 2, 2, 903, 902, 3, 2, 2, 2, 903, 904, 3, 2, 2, 2, 904, 905, 3, 2, 2, 2, 905, 907, 5, 534, 268, 2, 906, 901, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 913, 3, 2, 2, 2, 908, 910, 7, 488, 2, 2, 909, 911, 7, 1013, 2, 2, 910, 909, 3, 2, 2, 2, 910, 911, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 914, 5, 534, 268, 2, 913, 908, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 920, 3, 2, 2, 2, 915, 917, 7, 451, 2, 2, 916, 918, 7, 1013, 2, 2, 917, 916, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 919, 3, 2, 2, 2, 919, 921, 5, 526, 264, 2, 920, 915, 3, 2, 2, 2, 920, 921, 3, 2, 2, 2, 921, 923, 3, 2, 2, 2, 922, 924, 7, 583, 2, 2, 923, 922, 3, 2, 2, 2, 923, 924, 3, 2, 2, 2, 924, 930, 3, 2, 2, 2, 925, 927, 7, 307, 2, 2, 926, 928, 7, 1013, 2, 2, 927, 926, 3, 2, 2, 2, 927, 928, 3, 2, 2, 2, 928, 929, 3, 2, 2, 2, 929, 931, 7, 1037, 2, 2, 930, 925, 3, 2, 2, 2, 930, 931, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 934, 7, 344, 2, 2, 933, 935, 7, 1013, 2, 2, 934, 933, 3, 2, 2, 2, 934, 935, 3, 2, 2, 2, 935, 936, 3, 2, 2, 2, 936, 937, 5, 516, 259, 2, 937, 35, 3, 2, 2, 2, 938, 940, 7, 32, 2, 2, 939, 941, 5, 54, 28, 2, 940, 939, 3, 2, 2, 2, 940, 941, 3, 2, 2, 2, 941, 942, 3, 2, 2, 2, 942, 943, 7, 119, 2, 2, 943, 944, 5, 500, 251, 2, 944, 946, 7, 1022, 2, 2, 945, 947, 5, 70, 36, 2, 946, 945, 3, 2, 2, 2, 946, 947, 3, 2, 2, 2, 947, 952, 3, 2, 2, 2, 948, 949, 7, 1024, 2, 2, 949, 951, 5, 70, 36, 2, 950, 948, 3, 2, 2, 2, 951, 954, 3, 2, 2, 2, 952, 950, 3, 2, 2, 2, 952, 953, 3, 2, 2, 2, 953, 955, 3, 2, 2, 2, 954, 952, 3, 2, 2, 2, 955, 959, 7, 1023, 2, 2, 956, 958, 5, 74, 38, 2, 957, 956, 3, 2, 2, 2, 958, 961, 3, 2, 2, 2, 959, 957, 3, 2, 2, 2, 959, 960, 3, 2, 2, 2, 960, 962, 3, 2, 2, 2, 961, 959, 3, 2, 2, 2, 962, 963, 5, 348, 175, 2, 963, 37, 3, 2, 2, 2, 964, 966, 7, 32, 2, 2, 965, 967, 5, 54, 28, 2, 966, 965, 3, 2, 2, 2, 966, 967, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 7, 370, 2, 2, 969, 970, 5, 500, 251, 2, 970, 972, 7, 1022, 2, 2, 971, 973, 5, 72, 37, 2, 972, 971, 3, 2, 2, 2, 972, 973, 3, 2, 2, 2, 973, 978, 3, 2, 2, 2, 974, 975, 7, 1024, 2, 2, 975, 977, 5, 72, 37, 2, 976, 974, 3, 2, 2, 2, 977, 980, 3, 2, 2, 2, 978, 976, 3, 2, 2, 2, 978, 979, 3, 2, 2, 2, 979, 981, 3, 2, 2, 2, 980, 978, 3, 2, 2, 2, 981, 982, 7, 1023, 2, 2, 982, 983, 7, 508, 2, 2, 983, 987, 5, 546, 274, 2, 984, 986, 5, 74, 38, 2, 985, 984, 3, 2, 2, 2, 986, 989, 3, 2, 2, 2, 987, 985, 3, 2, 2, 2, 987, 988, 3, 2, 2, 2, 988, 992, 3, 2, 2, 2, 989, 987, 3, 2, 2, 2, 990, 993, 5, 348, 175, 2, 991, 993, 5, 364, 183, 2, 992, 990, 3, 2, 2, 2, 992, 991, 3, 2, 2, 2, 993, 39, 3, 2, 2, 2, 994, 995, 7, 32, 2, 2, 995, 996, 7, 519, 2, 2, 996, 997, 5, 526, 264, 2, 997, 998, 7, 62, 2, 2, 998, 999, 7, 325, 2, 2, 999, 1000, 7, 587, 2, 2, 1000, 1001, 9, 7, 2, 2, 1001, 1002, 7, 462, 2, 2, 1002, 1003, 7, 1022, 2, 2, 1003, 1008, 5, 76, 39, 2, 1004, 1005, 7, 1024, 2, 2, 1005, 1007, 5, 76, 39, 2, 1006, 1004, 3, 2, 2, 2, 1007, 1010, 3, 2, 2, 2, 1008, 1006, 3, 2, 2, 2, 1008, 1009, 3, 2, 2, 2, 1009, 1011, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1011, 1012, 7, 1023, 2, 2, 1012, 41, 3, 2, 2, 2, 1013, 1015, 7, 32, 2, 2, 1014, 1016, 7, 559, 2, 2, 1015, 1014, 3, 2, 2, 2, 1015, 1016, 3, 2, 2, 2, 1016, 1017, 3, 2, 2, 2, 1017, 1019, 7, 156, 2, 2, 1018, 1020, 5, 582, 292, 2, 1019, 1018, 3, 2, 2, 2, 1019, 1020, 3, 2, 2, 2, 1020, 1021, 3, 2, 2, 2, 1021, 1029, 5, 502, 252, 2, 1022, 1023, 7, 90, 2, 2, 1023, 1030, 5, 502, 252, 2, 1024, 1025, 7, 1022, 2, 2, 1025, 1026, 7, 90, 2, 2, 1026, 1027, 5, 502, 252, 2, 1027, 1028, 7, 1023, 2, 2, 1028, 1030, 3, 2, 2, 2, 1029, 1022, 3, 2, 2, 2, 1029, 1024, 3, 2, 2, 2, 1030, 1092, 3, 2, 2, 2, 1031, 1033, 7, 32, 2, 2, 1032, 1034, 7, 559, 2, 2, 1033, 1032, 3, 2, 2, 2, 1033, 1034, 3, 2, 2, 2, 1034, 1035, 3, 2, 2, 2, 1035, 1037, 7, 156, 2, 2, 1036, 1038, 5, 582, 292, 2, 1037, 1036, 3, 2, 2, 2, 1037, 1038, 3, 2, 2, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1041, 5, 502, 252, 2, 1040, 1042, 5, 78, 40, 2, 1041, 1040, 3, 2, 2, 2, 1041, 1042, 3, 2, 2, 2, 1042, 1053, 3, 2, 2, 2, 1043, 1050, 5, 96, 49, 2, 1044, 1046, 7, 1024, 2, 2, 1045, 1044, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1047, 3, 2, 2, 2, 1047, 1049, 5, 96, 49, 2, 1048, 1045, 3, 2, 2, 2, 1049, 1052, 3, 2, 2, 2, 1050, 1048, 3, 2, 2, 2, 1050, 1051, 3, 2, 2, 2, 1051, 1054, 3, 2, 2, 2, 1052, 1050, 3, 2, 2, 2, 1053, 1043, 3, 2, 2, 2, 1053, 1054, 3, 2, 2, 2, 1054, 1056, 3, 2, 2, 2, 1055, 1057, 5, 100, 51, 2, 1056, 1055, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1059, 3, 2, 2, 2, 1058, 1060, 9, 8, 2, 2, 1059, 1058, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1062, 3, 2, 2, 2, 1061, 1063, 7, 13, 2, 2, 1062, 1061, 3, 2, 2, 2, 1062, 1063, 3, 2, 2, 2, 1063, 1064, 3, 2, 2, 2, 1064, 1065, 5, 182, 92, 2, 1065, 1092, 3, 2, 2, 2, 1066, 1068, 7, 32, 2, 2, 1067, 1069, 7, 559, 2, 2, 1068, 1067, 3, 2, 2, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 3, 2, 2, 2, 1070, 1072, 7, 156, 2, 2, 1071, 1073, 5, 582, 292, 2, 1072, 1071, 3, 2, 2, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 3, 2, 2, 2, 1074, 1075, 5, 502, 252, 2, 1075, 1086, 5, 78, 40, 2, 1076, 1083, 5, 96, 49, 2, 1077, 1079, 7, 1024, 2, 2, 1078, 1077, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 1080, 3, 2, 2, 2, 1080, 1082, 5, 96, 49, 2, 1081, 1078, 3, 2, 2, 2, 1082, 1085, 3, 2, 2, 2, 1083, 1081, 3, 2, 2, 2, 1083, 1084, 3, 2, 2, 2, 1084, 1087, 3, 2, 2, 2, 1085, 1083, 3, 2, 2, 2, 1086, 1076, 3, 2, 2, 2, 1086, 1087, 3, 2, 2, 2, 1087, 1089, 3, 2, 2, 2, 1088, 1090, 5, 100, 51, 2, 1089, 1088, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1092, 3, 2, 2, 2, 1091, 1013, 3, 2, 2, 2, 1091, 1031, 3, 2, 2, 2, 1091, 1066, 3, 2, 2, 2, 1092, 43, 3, 2, 2, 2, 1093, 1094, 7, 32, 2, 2, 1094, 1095, 7, 558, 2, 2, 1095, 1096, 5, 526, 264, 2, 1096, 1097, 7, 7, 2, 2, 1097, 1098, 7, 326, 2, 2, 1098, 1102, 7, 1037, 2, 2, 1099, 1100, 7, 362, 2, 2, 1100, 1101, 7, 1013, 2, 2, 1101, 1103, 5, 534, 268, 2, 1102, 1099, 3, 2, 2, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1109, 3, 2, 2, 2, 1104, 1106, 7, 344, 2, 2, 1105, 1107, 7, 1013, 2, 2, 1106, 1105, 3, 2, 2, 2, 1106, 1107, 3, 2, 2, 2, 1107, 1108, 3, 2, 2, 2, 1108, 1110, 5, 516, 259, 2, 1109, 1104, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 45, 3, 2, 2, 2, 1111, 1112, 7, 32, 2, 2, 1112, 1113, 7, 558, 2, 2, 1113, 1114, 5, 526, 264, 2, 1114, 1115, 7, 7, 2, 2, 1115, 1116, 7, 326, 2, 2, 1116, 1117, 7, 1037, 2, 2, 1117, 1118, 7, 170, 2, 2, 1118, 1119, 7, 405, 2, 2, 1119, 1120, 7, 68, 2, 2, 1120, 1126, 5, 526, 264, 2, 1121, 1123, 7, 358, 2, 2, 1122, 1124, 7, 1013, 2, 2, 1123, 1122, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1125, 3, 2, 2, 2, 1125, 1127, 5, 534, 268, 2, 1126, 1121, 3, 2, 2, 2, 1126, 1127, 3, 2, 2, 2, 1127, 1133, 3, 2, 2, 2, 1128, 1130, 7, 384, 2, 2, 1129, 1131, 7, 1013, 2, 2, 1130, 1129, 3, 2, 2, 2, 1130, 1131, 3, 2, 2, 2, 1131, 1132, 3, 2, 2, 2, 1132, 1134, 5, 534, 268, 2, 1133, 1128, 3, 2, 2, 2, 1133, 1134, 3, 2, 2, 2, 1134, 1140, 3, 2, 2, 2, 1135, 1137, 7, 281, 2, 2, 1136, 1138, 7, 1013, 2, 2, 1137, 1136, 3, 2, 2, 2, 1137, 1138, 3, 2, 2, 2, 1138, 1139, 3, 2, 2, 2, 1139, 1141, 5, 534, 268, 2, 1140, 1135, 3, 2, 2, 2, 1140, 1141, 3, 2, 2, 2, 1141, 1147, 3, 2, 2, 2, 1142, 1144, 7, 431, 2, 2, 1143, 1145, 7, 1013, 2, 2, 1144, 1143, 3, 2, 2, 2, 1144, 1145, 3, 2, 2, 2, 1145, 1146, 3, 2, 2, 2, 1146, 1148, 5, 534, 268, 2, 1147, 1142, 3, 2, 2, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1154, 3, 2, 2, 2, 1149, 1151, 7, 451, 2, 2, 1150, 1152, 7, 1013, 2, 2, 1151, 1150, 3, 2, 2, 2, 1151, 1152, 3, 2, 2, 2, 1152, 1153, 3, 2, 2, 2, 1153, 1155, 5, 526, 264, 2, 1154, 1149, 3, 2, 2, 2, 1154, 1155, 3, 2, 2, 2, 1155, 1157, 3, 2, 2, 2, 1156, 1158, 7, 583, 2, 2, 1157, 1156, 3, 2, 2, 2, 1157, 1158, 3, 2, 2, 2, 1158, 1164, 3, 2, 2, 2, 1159, 1161, 7, 307, 2, 2, 1160, 1162, 7, 1013, 2, 2, 1161, 1160, 3, 2, 2, 2, 1161, 1162, 3, 2, 2, 2, 1162, 1163, 3, 2, 2, 2, 1163, 1165, 7, 1037, 2, 2, 1164, 1159, 3, 2, 2, 2, 1164, 1165, 3, 2, 2, 2, 1165, 1166, 3, 2, 2, 2, 1166, 1168, 7, 344, 2, 2, 1167, 1169, 7, 1013, 2, 2, 1168, 1167, 3, 2, 2, 2, 1168, 1169, 3, 2, 2, 2, 1169, 1170, 3, 2, 2, 2, 1170, 1171, 5, 516, 259, 2, 1171, 47, 3, 2, 2, 2, 1172, 1174, 7, 32, 2, 2, 1173, 1175, 5, 54, 28, 2, 1174, 1173, 3, 2, 2, 2, 1174, 1175, 3, 2, 2, 2, 1175, 1176, 3, 2, 2, 2, 1176, 1177, 7, 161, 2, 2, 1177, 1178, 5, 500, 251, 2, 1178, 1179, 9, 9, 2, 2, 1179, 1180, 9, 10, 2, 2, 1180, 1181, 7, 108, 2, 2, 1181, 1182, 5, 502, 252, 2, 1182, 1183, 7, 60, 2, 2, 1183, 1184, 7, 50, 2, 2, 1184, 1187, 7, 513, 2, 2, 1185, 1186, 9, 11, 2, 2, 1186, 1188, 5, 500, 251, 2, 1187, 1185, 3, 2, 2, 2, 1187, 1188, 3, 2, 2, 2, 1188, 1189, 3, 2, 2, 2, 1189, 1190, 5, 348, 175, 2, 1190, 49, 3, 2, 2, 2, 1191, 1194, 7, 32, 2, 2, 1192, 1193, 7, 112, 2, 2, 1193, 1195, 7, 129, 2, 2, 1194, 1192, 3, 2, 2, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1199, 3, 2, 2, 2, 1196, 1197, 7, 276, 2, 2, 1197, 1198, 7, 1013, 2, 2, 1198, 1200, 9, 12, 2, 2, 1199, 1196, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1202, 3, 2, 2, 2, 1201, 1203, 5, 54, 28, 2, 1202, 1201, 3, 2, 2, 2, 1202, 1203, 3, 2, 2, 2, 1203, 1207, 3, 2, 2, 2, 1204, 1205, 7, 145, 2, 2, 1205, 1206, 7, 518, 2, 2, 1206, 1208, 9, 13, 2, 2, 1207, 1204, 3, 2, 2, 2, 1207, 1208, 3, 2, 2, 2, 1208, 1209, 3, 2, 2, 2, 1209, 1210, 7, 580, 2, 2, 1210, 1215, 5, 500, 251, 2, 1211, 1212, 7, 1022, 2, 2, 1212, 1213, 5, 558, 280, 2, 1213, 1214, 7, 1023, 2, 2, 1214, 1216, 3, 2, 2, 2, 1215, 1211, 3, 2, 2, 2, 1215, 1216, 3, 2, 2, 2, 1216, 1217, 3, 2, 2, 2, 1217, 1218, 7, 13, 2, 2, 1218, 1225, 5, 182, 92, 2, 1219, 1221, 7, 176, 2, 2, 1220, 1222, 9, 14, 2, 2, 1221, 1220, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1223, 3, 2, 2, 2, 1223, 1224, 7, 25, 2, 2, 1224, 1226, 7, 110, 2, 2, 1225, 1219, 3, 2, 2, 2, 1225, 1226, 3, 2, 2, 2, 1226, 51, 3, 2, 2, 2, 1227, 1229, 7, 40, 2, 2, 1228, 1227, 3, 2, 2, 2, 1228, 1229, 3, 2, 2, 2, 1229, 1233, 3, 2, 2, 2, 1230, 1231, 7, 24, 2, 2, 1231, 1234, 7, 140, 2, 2, 1232, 1234, 7, 733, 2, 2, 1233, 1230, 3, 2, 2, 2, 1233, 1232, 3, 2, 2, 2, 1234, 1236, 3, 2, 2, 2, 1235, 1237, 7, 1013, 2, 2, 1236, 1235, 3, 2, 2, 2, 1236, 1237, 3, 2, 2, 2, 1237, 1240, 3, 2, 2, 2, 1238, 1241, 5, 512, 257, 2, 1239, 1241, 7, 40, 2, 2, 1240, 1238, 3, 2, 2, 2, 1240, 1239, 3, 2, 2, 2, 1241, 1251, 3, 2, 2, 2, 1242, 1244, 7, 40, 2, 2, 1243, 1242, 3, 2, 2, 2, 1243, 1244, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1247, 7, 26, 2, 2, 1246, 1248, 7, 1013, 2, 2, 1247, 1246, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1248, 1249, 3, 2, 2, 2, 1249, 1251, 5, 514, 258, 2, 1250, 1228, 3, 2, 2, 2, 1250, 1243, 3, 2, 2, 2, 1251, 53, 3, 2, 2, 2, 1252, 1253, 7, 329, 2, 2, 1253, 1260, 7, 1013, 2, 2, 1254, 1261, 5, 508, 255, 2, 1255, 1258, 7, 35, 2, 2, 1256, 1257, 7, 1022, 2, 2, 1257, 1259, 7, 1023, 2, 2, 1258, 1256, 3, 2, 2, 2, 1258, 1259, 3, 2, 2, 2, 1259, 1261, 3, 2, 2, 2, 1260, 1254, 3, 2, 2, 2, 1260, 1255, 3, 2, 2, 2, 1261, 55, 3, 2, 2, 2, 1262, 1263, 7, 278, 2, 2, 1263, 1267, 5, 58, 30, 2, 1264, 1266, 5, 60, 31, 2, 1265, 1264, 3, 2, 2, 2, 1266, 1269, 3, 2, 2, 2, 1267, 1265, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 1297, 3, 2, 2, 2, 1269, 1267, 3, 2, 2, 2, 1270, 1273, 7, 352, 2, 2, 1271, 1274, 5, 532, 267, 2, 1272, 1274, 5, 604, 303, 2, 1273, 1271, 3, 2, 2, 2, 1273, 1272, 3, 2, 2, 2, 1274, 1275, 3, 2, 2, 2, 1275, 1284, 5, 62, 32, 2, 1276, 1277, 7, 541, 2, 2, 1277, 1281, 5, 58, 30, 2, 1278, 1280, 5, 60, 31, 2, 1279, 1278, 3, 2, 2, 2, 1280, 1283, 3, 2, 2, 2, 1281, 1279, 3, 2, 2, 2, 1281, 1282, 3, 2, 2, 2, 1282, 1285, 3, 2, 2, 2, 1283, 1281, 3, 2, 2, 2, 1284, 1276, 3, 2, 2, 2, 1284, 1285, 3, 2, 2, 2, 1285, 1294, 3, 2, 2, 2, 1286, 1287, 7, 343, 2, 2, 1287, 1291, 5, 58, 30, 2, 1288, 1290, 5, 60, 31, 2, 1289, 1288, 3, 2, 2, 2, 1290, 1293, 3, 2, 2, 2, 1291, 1289, 3, 2, 2, 2, 1291, 1292, 3, 2, 2, 2, 1292, 1295, 3, 2, 2, 2, 1293, 1291, 3, 2, 2, 2, 1294, 1286, 3, 2, 2, 2, 1294, 1295, 3, 2, 2, 2, 1295, 1297, 3, 2, 2, 2, 1296, 1262, 3, 2, 2, 2, 1296, 1270, 3, 2, 2, 2, 1297, 57, 3, 2, 2, 2, 1298, 1303, 7, 255, 2, 2, 1299, 1303, 5, 536, 269, 2, 1300, 1303, 5, 532, 267, 2, 1301, 1303, 5, 604, 303, 2, 1302, 1298, 3, 2, 2, 2, 1302, 1299, 3, 2, 2, 2, 1302, 1300, 3, 2, 2, 2, 1302, 1301, 3, 2, 2, 2, 1303, 59, 3, 2, 2, 2, 1304, 1305, 7, 1008, 2, 2, 1305, 1308, 7, 79, 2, 2, 1306, 1309, 5, 532, 267, 2, 1307, 1309, 5, 604, 303, 2, 1308, 1306, 3, 2, 2, 2, 1308, 1307, 3, 2, 2, 2, 1309, 1310, 3, 2, 2, 2, 1310, 1311, 5, 62, 32, 2, 1311, 61, 3, 2, 2, 2, 1312, 1326, 5, 626, 314, 2, 1313, 1326, 7, 205, 2, 2, 1314, 1326, 7, 224, 2, 2, 1315, 1326, 7, 225, 2, 2, 1316, 1326, 7, 226, 2, 2, 1317, 1326, 7, 227, 2, 2, 1318, 1326, 7, 228, 2, 2, 1319, 1326, 7, 229, 2, 2, 1320, 1326, 7, 230, 2, 2, 1321, 1326, 7, 231, 2, 2, 1322, 1326, 7, 232, 2, 2, 1323, 1326, 7, 233, 2, 2, 1324, 1326, 7, 234, 2, 2, 1325, 1312, 3, 2, 2, 2, 1325, 1313, 3, 2, 2, 2, 1325, 1314, 3, 2, 2, 2, 1325, 1315, 3, 2, 2, 2, 1325, 1316, 3, 2, 2, 2, 1325, 1317, 3, 2, 2, 2, 1325, 1318, 3, 2, 2, 2, 1325, 1319, 3, 2, 2, 2, 1325, 1320, 3, 2, 2, 2, 1325, 1321, 3, 2, 2, 2, 1325, 1322, 3, 2, 2, 2, 1325, 1323, 3, 2, 2, 2, 1325, 1324, 3, 2, 2, 2, 1326, 63, 3, 2, 2, 2, 1327, 1333, 7, 340, 2, 2, 1328, 1333, 7, 333, 2, 2, 1329, 1330, 7, 333, 2, 2, 1330, 1331, 7, 108, 2, 2, 1331, 1333, 7, 525, 2, 2, 1332, 1327, 3, 2, 2, 2, 1332, 1328, 3, 2, 2, 2, 1332, 1329, 3, 2, 2, 2, 1333, 65, 3, 2, 2, 2, 1334, 1335, 7, 171, 2, 2, 1335, 1336, 9, 15, 2, 2, 1336, 67, 3, 2, 2, 2, 1337, 1339, 7, 397, 2, 2, 1338, 1340, 7, 1013, 2, 2, 1339, 1338, 3, 2, 2, 2, 1339, 1340, 3, 2, 2, 2, 1340, 1341, 3, 2, 2, 2, 1341, 1351, 5, 534, 268, 2, 1342, 1351, 5, 66, 34, 2, 1343, 1344, 7, 176, 2, 2, 1344, 1345, 7, 466, 2, 2, 1345, 1351, 5, 526, 264, 2, 1346, 1347, 7, 307, 2, 2, 1347, 1351, 7, 1037, 2, 2, 1348, 1351, 7, 389, 2, 2, 1349, 1351, 7, 582, 2, 2, 1350, 1337, 3, 2, 2, 2, 1350, 1342, 3, 2, 2, 2, 1350, 1343, 3, 2, 2, 2, 1350, 1346, 3, 2, 2, 2, 1350, 1348, 3, 2, 2, 2, 1350, 1349, 3, 2, 2, 2, 1351, 69, 3, 2, 2, 2, 1352, 1354, 9, 16, 2, 2, 1353, 1352, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 3, 2, 2, 2, 1355, 1356, 5, 526, 264, 2, 1356, 1357, 5, 546, 274, 2, 1357, 71, 3, 2, 2, 2, 1358, 1359, 5, 526, 264, 2, 1359, 1360, 5, 546, 274, 2, 1360, 73, 3, 2, 2, 2, 1361, 1362, 7, 307, 2, 2, 1362, 1385, 7, 1037, 2, 2, 1363, 1364, 7, 398, 2, 2, 1364, 1385, 7, 145, 2, 2, 1365, 1367, 7, 104, 2, 2, 1366, 1365, 3, 2, 2, 2, 1366, 1367, 3, 2, 2, 2, 1367, 1368, 3, 2, 2, 2, 1368, 1385, 7, 45, 2, 2, 1369, 1370, 7, 319, 2, 2, 1370, 1380, 7, 145, 2, 2, 1371, 1372, 7, 450, 2, 2, 1372, 1380, 7, 145, 2, 2, 1373, 1374, 7, 123, 2, 2, 1374, 1375, 7, 145, 2, 2, 1375, 1380, 7, 325, 2, 2, 1376, 1377, 7, 102, 2, 2, 1377, 1378, 7, 145, 2, 2, 1378, 1380, 7, 325, 2, 2, 1379, 1369, 3, 2, 2, 2, 1379, 1371, 3, 2, 2, 2, 1379, 1373, 3, 2, 2, 2, 1379, 1376, 3, 2, 2, 2, 1380, 1385, 3, 2, 2, 2, 1381, 1382, 7, 145, 2, 2, 1382, 1383, 7, 518, 2, 2, 1383, 1385, 9, 13, 2, 2, 1384, 1361, 3, 2, 2, 2, 1384, 1363, 3, 2, 2, 2, 1384, 1366, 3, 2, 2, 2, 1384, 1379, 3, 2, 2, 2, 1384, 1381, 3, 2, 2, 2, 1385, 75, 3, 2, 2, 2, 1386, 1387, 7, 378, 2, 2, 1387, 1401, 7, 1037, 2, 2, 1388, 1389, 7, 37, 2, 2, 1389, 1401, 7, 1037, 2, 2, 1390, 1391, 7, 574, 2, 2, 1391, 1401, 7, 1037, 2, 2, 1392, 1393, 7, 470, 2, 2, 1393, 1401, 7, 1037, 2, 2, 1394, 1395, 7, 528, 2, 2, 1395, 1401, 7, 1037, 2, 2, 1396, 1397, 7, 463, 2, 2, 1397, 1401, 7, 1037, 2, 2, 1398, 1399, 7, 475, 2, 2, 1399, 1401, 5, 532, 267, 2, 1400, 1386, 3, 2, 2, 2, 1400, 1388, 3, 2, 2, 2, 1400, 1390, 3, 2, 2, 2, 1400, 1392, 3, 2, 2, 2, 1400, 1394, 3, 2, 2, 2, 1400, 1396, 3, 2, 2, 2, 1400, 1398, 3, 2, 2, 2, 1401, 77, 3, 2, 2, 2, 1402, 1403, 7, 1022, 2, 2, 1403, 1408, 5, 80, 41, 2, 1404, 1405, 7, 1024, 2, 2, 1405, 1407, 5, 80, 41, 2, 1406, 1404, 3, 2, 2, 2, 1407, 1410, 3, 2, 2, 2, 1408, 1406, 3, 2, 2, 2, 1408, 1409, 3, 2, 2, 2, 1409, 1411, 3, 2, 2, 2, 1410, 1408, 3, 2, 2, 2, 1411, 1412, 7, 1023, 2, 2, 1412, 79, 3, 2, 2, 2, 1413, 1414, 5, 526, 264, 2, 1414, 1415, 5, 82, 42, 2, 1415, 1419, 3, 2, 2, 2, 1416, 1419, 5, 86, 44, 2, 1417, 1419, 5, 94, 48, 2, 1418, 1413, 3, 2, 2, 2, 1418, 1416, 3, 2, 2, 2, 1418, 1417, 3, 2, 2, 2, 1419, 81, 3, 2, 2, 2, 1420, 1424, 5, 546, 274, 2, 1421, 1423, 5, 84, 43, 2, 1422, 1421, 3, 2, 2, 2, 1423, 1426, 3, 2, 2, 2, 1424, 1422, 3, 2, 2, 2, 1424, 1425, 3, 2, 2, 2, 1425, 83, 3, 2, 2, 2, 1426, 1424, 3, 2, 2, 2, 1427, 1479, 5, 542, 272, 2, 1428, 1429, 7, 40, 2, 2, 1429, 1479, 5, 574, 288, 2, 1430, 1435, 7, 282, 2, 2, 1431, 1432, 7, 108, 2, 2, 1432, 1433, 7, 168, 2, 2, 1433, 1435, 5, 576, 289, 2, 1434, 1430, 3, 2, 2, 2, 1434, 1431, 3, 2, 2, 2, 1435, 1479, 3, 2, 2, 2, 1436, 1438, 7, 118, 2, 2, 1437, 1436, 3, 2, 2, 2, 1437, 1438, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1479, 7, 84, 2, 2, 1440, 1442, 7, 165, 2, 2, 1441, 1443, 7, 84, 2, 2, 1442, 1441, 3, 2, 2, 2, 1442, 1443, 3, 2, 2, 2, 1443, 1479, 3, 2, 2, 2, 1444, 1445, 7, 307, 2, 2, 1445, 1479, 7, 1037, 2, 2, 1446, 1447, 7, 305, 2, 2, 1447, 1479, 9, 17, 2, 2, 1448, 1449, 7, 547, 2, 2, 1449, 1479, 9, 18, 2, 2, 1450, 1479, 5, 88, 45, 2, 1451, 1452, 7, 26, 2, 2, 1452, 1479, 5, 514, 258, 2, 1453, 1454, 7, 65, 2, 2, 1454, 1456, 7, 10, 2, 2, 1455, 1453, 3, 2, 2, 2, 1455, 1456, 3, 2, 2, 2, 1456, 1457, 3, 2, 2, 2, 1457, 1458, 7, 13, 2, 2, 1458, 1459, 7, 1022, 2, 2, 1459, 1460, 5, 604, 303, 2, 1460, 1462, 7, 1023, 2, 2, 1461, 1463, 9, 19, 2, 2, 1462, 1461, 3, 2, 2, 2, 1462, 1463, 3, 2, 2, 2, 1463, 1479, 3, 2, 2, 2, 1464, 1465, 7, 223, 2, 2, 1465, 1466, 7, 40, 2, 2, 1466, 1479, 7, 578, 2, 2, 1467, 1469, 7, 29, 2, 2, 1468, 1470, 5, 526, 264, 2, 1469, 1468, 3, 2, 2, 2, 1469, 1470, 3, 2, 2, 2, 1470, 1472, 3, 2, 2, 2, 1471, 1467, 3, 2, 2, 2, 1471, 1472, 3, 2, 2, 2, 1472, 1473, 3, 2, 2, 2, 1473, 1474, 7, 25, 2, 2, 1474, 1475, 7, 1022, 2, 2, 1475, 1476, 5, 604, 303, 2, 1476, 1477, 7, 1023, 2, 2, 1477, 1479, 3, 2, 2, 2, 1478, 1427, 3, 2, 2, 2, 1478, 1428, 3, 2, 2, 2, 1478, 1434, 3, 2, 2, 2, 1478, 1437, 3, 2, 2, 2, 1478, 1440, 3, 2, 2, 2, 1478, 1444, 3, 2, 2, 2, 1478, 1446, 3, 2, 2, 2, 1478, 1448, 3, 2, 2, 2, 1478, 1450, 3, 2, 2, 2, 1478, 1451, 3, 2, 2, 2, 1478, 1455, 3, 2, 2, 2, 1478, 1464, 3, 2, 2, 2, 1478, 1471, 3, 2, 2, 2, 1479, 85, 3, 2, 2, 2, 1480, 1482, 7, 29, 2, 2, 1481, 1483, 5, 526, 264, 2, 1482, 1481, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1485, 3, 2, 2, 2, 1484, 1480, 3, 2, 2, 2, 1484, 1485, 3, 2, 2, 2, 1485, 1486, 3, 2, 2, 2, 1486, 1487, 7, 118, 2, 2, 1487, 1489, 7, 84, 2, 2, 1488, 1490, 5, 526, 264, 2, 1489, 1488, 3, 2, 2, 2, 1489, 1490, 3, 2, 2, 2, 1490, 1492, 3, 2, 2, 2, 1491, 1493, 5, 66, 34, 2, 1492, 1491, 3, 2, 2, 2, 1492, 1493, 3, 2, 2, 2, 1493, 1494, 3, 2, 2, 2, 1494, 1498, 5, 562, 282, 2, 1495, 1497, 5, 68, 35, 2, 1496, 1495, 3, 2, 2, 2, 1497, 1500, 3, 2, 2, 2, 1498, 1496, 3, 2, 2, 2, 1498, 1499, 3, 2, 2, 2, 1499, 1550, 3, 2, 2, 2, 1500, 1498, 3, 2, 2, 2, 1501, 1503, 7, 29, 2, 2, 1502, 1504, 5, 526, 264, 2, 1503, 1502, 3, 2, 2, 2, 1503, 1504, 3, 2, 2, 2, 1504, 1506, 3, 2, 2, 2, 1505, 1501, 3, 2, 2, 2, 1505, 1506, 3, 2, 2, 2, 1506, 1507, 3, 2, 2, 2, 1507, 1509, 7, 165, 2, 2, 1508, 1510, 9, 20, 2, 2, 1509, 1508, 3, 2, 2, 2, 1509, 1510, 3, 2, 2, 2, 1510, 1512, 3, 2, 2, 2, 1511, 1513, 5, 526, 264, 2, 1512, 1511, 3, 2, 2, 2, 1512, 1513, 3, 2, 2, 2, 1513, 1515, 3, 2, 2, 2, 1514, 1516, 5, 66, 34, 2, 1515, 1514, 3, 2, 2, 2, 1515, 1516, 3, 2, 2, 2, 1516, 1517, 3, 2, 2, 2, 1517, 1521, 5, 562, 282, 2, 1518, 1520, 5, 68, 35, 2, 1519, 1518, 3, 2, 2, 2, 1520, 1523, 3, 2, 2, 2, 1521, 1519, 3, 2, 2, 2, 1521, 1522, 3, 2, 2, 2, 1522, 1550, 3, 2, 2, 2, 1523, 1521, 3, 2, 2, 2, 1524, 1526, 7, 29, 2, 2, 1525, 1527, 5, 526, 264, 2, 1526, 1525, 3, 2, 2, 2, 1526, 1527, 3, 2, 2, 2, 1527, 1529, 3, 2, 2, 2, 1528, 1524, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 1530, 3, 2, 2, 2, 1530, 1531, 7, 62, 2, 2, 1531, 1533, 7, 84, 2, 2, 1532, 1534, 5, 526, 264, 2, 1533, 1532, 3, 2, 2, 2, 1533, 1534, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1536, 5, 562, 282, 2, 1536, 1537, 5, 88, 45, 2, 1537, 1550, 3, 2, 2, 2, 1538, 1540, 7, 29, 2, 2, 1539, 1541, 5, 526, 264, 2, 1540, 1539, 3, 2, 2, 2, 1540, 1541, 3, 2, 2, 2, 1541, 1543, 3, 2, 2, 2, 1542, 1538, 3, 2, 2, 2, 1542, 1543, 3, 2, 2, 2, 1543, 1544, 3, 2, 2, 2, 1544, 1545, 7, 25, 2, 2, 1545, 1546, 7, 1022, 2, 2, 1546, 1547, 5, 604, 303, 2, 1547, 1548, 7, 1023, 2, 2, 1548, 1550, 3, 2, 2, 2, 1549, 1484, 3, 2, 2, 2, 1549, 1505, 3, 2, 2, 2, 1549, 1528, 3, 2, 2, 2, 1549, 1542, 3, 2, 2, 2, 1550, 87, 3, 2, 2, 2, 1551, 1552, 7, 124, 2, 2, 1552, 1554, 5, 502, 252, 2, 1553, 1555, 5, 562, 282, 2, 1554, 1553, 3, 2, 2, 2, 1554, 1555, 3, 2, 2, 2, 1555, 1558, 3, 2, 2, 2, 1556, 1557, 7, 100, 2, 2, 1557, 1559, 9, 21, 2, 2, 1558, 1556, 3, 2, 2, 2, 1558, 1559, 3, 2, 2, 2, 1559, 1561, 3, 2, 2, 2, 1560, 1562, 5, 90, 46, 2, 1561, 1560, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 89, 3, 2, 2, 2, 1563, 1564, 7, 108, 2, 2, 1564, 1565, 7, 42, 2, 2, 1565, 1569, 5, 92, 47, 2, 1566, 1567, 7, 108, 2, 2, 1567, 1568, 7, 168, 2, 2, 1568, 1570, 5, 92, 47, 2, 1569, 1566, 3, 2, 2, 2, 1569, 1570, 3, 2, 2, 2, 1570, 1580, 3, 2, 2, 2, 1571, 1572, 7, 108, 2, 2, 1572, 1573, 7, 168, 2, 2, 1573, 1577, 5, 92, 47, 2, 1574, 1575, 7, 108, 2, 2, 1575, 1576, 7, 42, 2, 2, 1576, 1578, 5, 92, 47, 2, 1577, 1574, 3, 2, 2, 2, 1577, 1578, 3, 2, 2, 2, 1578, 1580, 3, 2, 2, 2, 1579, 1563, 3, 2, 2, 2, 1579, 1571, 3, 2, 2, 2, 1580, 91, 3, 2, 2, 2, 1581, 1588, 7, 132, 2, 2, 1582, 1588, 7, 20, 2, 2, 1583, 1584, 7, 140, 2, 2, 1584, 1588, 7, 106, 2, 2, 1585, 1586, 7, 450, 2, 2, 1586, 1588, 7, 273, 2, 2, 1587, 1581, 3, 2, 2, 2, 1587, 1582, 3, 2, 2, 2, 1587, 1583, 3, 2, 2, 2, 1587, 1585, 3, 2, 2, 2, 1588, 93, 3, 2, 2, 2, 1589, 1591, 9, 20, 2, 2, 1590, 1592, 5, 526, 264, 2, 1591, 1590, 3, 2, 2, 2, 1591, 1592, 3, 2, 2, 2, 1592, 1594, 3, 2, 2, 2, 1593, 1595, 5, 66, 34, 2, 1594, 1593, 3, 2, 2, 2, 1594, 1595, 3, 2, 2, 2, 1595, 1596, 3, 2, 2, 2, 1596, 1600, 5, 562, 282, 2, 1597, 1599, 5, 68, 35, 2, 1598, 1597, 3, 2, 2, 2, 1599, 1602, 3, 2, 2, 2, 1600, 1598, 3, 2, 2, 2, 1600, 1601, 3, 2, 2, 2, 1601, 1618, 3, 2, 2, 2, 1602, 1600, 3, 2, 2, 2, 1603, 1605, 9, 22, 2, 2, 1604, 1606, 9, 20, 2, 2, 1605, 1604, 3, 2, 2, 2, 1605, 1606, 3, 2, 2, 2, 1606, 1608, 3, 2, 2, 2, 1607, 1609, 5, 526, 264, 2, 1608, 1607, 3, 2, 2, 2, 1608, 1609, 3, 2, 2, 2, 1609, 1610, 3, 2, 2, 2, 1610, 1614, 5, 562, 282, 2, 1611, 1613, 5, 68, 35, 2, 1612, 1611, 3, 2, 2, 2, 1613, 1616, 3, 2, 2, 2, 1614, 1612, 3, 2, 2, 2, 1614, 1615, 3, 2, 2, 2, 1615, 1618, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1617, 1589, 3, 2, 2, 2, 1617, 1603, 3, 2, 2, 2, 1618, 95, 3, 2, 2, 2, 1619, 1621, 7, 344, 2, 2, 1620, 1622, 7, 1013, 2, 2, 1621, 1620, 3, 2, 2, 2, 1621, 1622, 3, 2, 2, 2, 1622, 1623, 3, 2, 2, 2, 1623, 1764, 5, 516, 259, 2, 1624, 1626, 7, 282, 2, 2, 1625, 1627, 7, 1013, 2, 2, 1626, 1625, 3, 2, 2, 2, 1626, 1627, 3, 2, 2, 2, 1627, 1628, 3, 2, 2, 2, 1628, 1764, 5, 532, 267, 2, 1629, 1631, 7, 283, 2, 2, 1630, 1632, 7, 1013, 2, 2, 1631, 1630, 3, 2, 2, 2, 1631, 1632, 3, 2, 2, 2, 1632, 1633, 3, 2, 2, 2, 1633, 1764, 5, 532, 267, 2, 1634, 1636, 7, 40, 2, 2, 1635, 1634, 3, 2, 2, 2, 1635, 1636, 3, 2, 2, 2, 1636, 1640, 3, 2, 2, 2, 1637, 1638, 7, 24, 2, 2, 1638, 1641, 7, 140, 2, 2, 1639, 1641, 7, 733, 2, 2, 1640, 1637, 3, 2, 2, 2, 1640, 1639, 3, 2, 2, 2, 1641, 1643, 3, 2, 2, 2, 1642, 1644, 7, 1013, 2, 2, 1643, 1642, 3, 2, 2, 2, 1643, 1644, 3, 2, 2, 2, 1644, 1647, 3, 2, 2, 2, 1645, 1648, 5, 512, 257, 2, 1646, 1648, 7, 40, 2, 2, 1647, 1645, 3, 2, 2, 2, 1647, 1646, 3, 2, 2, 2, 1648, 1764, 3, 2, 2, 2, 1649, 1651, 9, 23, 2, 2, 1650, 1652, 7, 1013, 2, 2, 1651, 1650, 3, 2, 2, 2, 1651, 1652, 3, 2, 2, 2, 1652, 1653, 3, 2, 2, 2, 1653, 1764, 9, 24, 2, 2, 1654, 1656, 7, 40, 2, 2, 1655, 1654, 3, 2, 2, 2, 1655, 1656, 3, 2, 2, 2, 1656, 1657, 3, 2, 2, 2, 1657, 1659, 7, 26, 2, 2, 1658, 1660, 7, 1013, 2, 2, 1659, 1658, 3, 2, 2, 2, 1659, 1660, 3, 2, 2, 2, 1660, 1661, 3, 2, 2, 2, 1661, 1764, 5, 514, 258, 2, 1662, 1664, 7, 307, 2, 2, 1663, 1665, 7, 1013, 2, 2, 1664, 1663, 3, 2, 2, 2, 1664, 1665, 3, 2, 2, 2, 1665, 1666, 3, 2, 2, 2, 1666, 1764, 7, 1037, 2, 2, 1667, 1669, 7, 312, 2, 2, 1668, 1670, 7, 1013, 2, 2, 1669, 1668, 3, 2, 2, 2, 1669, 1670, 3, 2, 2, 2, 1670, 1671, 3, 2, 2, 2, 1671, 1764, 9, 25, 2, 2, 1672, 1674, 7, 314, 2, 2, 1673, 1675, 7, 1013, 2, 2, 1674, 1673, 3, 2, 2, 2, 1674, 1675, 3, 2, 2, 2, 1675, 1676, 3, 2, 2, 2, 1676, 1764, 7, 1037, 2, 2, 1677, 1678, 7, 325, 2, 2, 1678, 1680, 7, 332, 2, 2, 1679, 1681, 7, 1013, 2, 2, 1680, 1679, 3, 2, 2, 2, 1680, 1681, 3, 2, 2, 2, 1681, 1682, 3, 2, 2, 2, 1682, 1764, 7, 1037, 2, 2, 1683, 1685, 7, 330, 2, 2, 1684, 1686, 7, 1013, 2, 2, 1685, 1684, 3, 2, 2, 2, 1685, 1686, 3, 2, 2, 2, 1686, 1687, 3, 2, 2, 2, 1687, 1764, 9, 24, 2, 2, 1688, 1690, 7, 341, 2, 2, 1689, 1691, 7, 1013, 2, 2, 1690, 1689, 3, 2, 2, 2, 1690, 1691, 3, 2, 2, 2, 1691, 1692, 3, 2, 2, 2, 1692, 1764, 7, 1037, 2, 2, 1693, 1694, 7, 74, 2, 2, 1694, 1696, 7, 332, 2, 2, 1695, 1697, 7, 1013, 2, 2, 1696, 1695, 3, 2, 2, 2, 1696, 1697, 3, 2, 2, 2, 1697, 1698, 3, 2, 2, 2, 1698, 1764, 7, 1037, 2, 2, 1699, 1701, 7, 386, 2, 2, 1700, 1702, 7, 1013, 2, 2, 1701, 1700, 3, 2, 2, 2, 1701, 1702, 3, 2, 2, 2, 1702, 1703, 3, 2, 2, 2, 1703, 1764, 9, 26, 2, 2, 1704, 1706, 7, 397, 2, 2, 1705, 1707, 7, 1013, 2, 2, 1706, 1705, 3, 2, 2, 2, 1706, 1707, 3, 2, 2, 2, 1707, 1708, 3, 2, 2, 2, 1708, 1764, 5, 534, 268, 2, 1709, 1711, 7, 430, 2, 2, 1710, 1712, 7, 1013, 2, 2, 1711, 1710, 3, 2, 2, 2, 1711, 1712, 3, 2, 2, 2, 1712, 1713, 3, 2, 2, 2, 1713, 1764, 5, 532, 267, 2, 1714, 1716, 7, 439, 2, 2, 1715, 1717, 7, 1013, 2, 2, 1716, 1715, 3, 2, 2, 2, 1716, 1717, 3, 2, 2, 2, 1717, 1718, 3, 2, 2, 2, 1718, 1764, 5, 532, 267, 2, 1719, 1721, 7, 464, 2, 2, 1720, 1722, 7, 1013, 2, 2, 1721, 1720, 3, 2, 2, 2, 1721, 1722, 3, 2, 2, 2, 1722, 1723, 3, 2, 2, 2, 1723, 1764, 9, 27, 2, 2, 1724, 1726, 7, 470, 2, 2, 1725, 1727, 7, 1013, 2, 2, 1726, 1725, 3, 2, 2, 2, 1726, 1727, 3, 2, 2, 2, 1727, 1728, 3, 2, 2, 2, 1728, 1764, 7, 1037, 2, 2, 1729, 1731, 7, 515, 2, 2, 1730, 1732, 7, 1013, 2, 2, 1731, 1730, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1733, 3, 2, 2, 2, 1733, 1764, 9, 28, 2, 2, 1734, 1736, 7, 542, 2, 2, 1735, 1737, 7, 1013, 2, 2, 1736, 1735, 3, 2, 2, 2, 1736, 1737, 3, 2, 2, 2, 1737, 1738, 3, 2, 2, 2, 1738, 1764, 9, 27, 2, 2, 1739, 1741, 7, 543, 2, 2, 1740, 1742, 7, 1013, 2, 2, 1741, 1740, 3, 2, 2, 2, 1741, 1742, 3, 2, 2, 2, 1742, 1743, 3, 2, 2, 2, 1743, 1764, 9, 27, 2, 2, 1744, 1746, 7, 544, 2, 2, 1745, 1747, 7, 1013, 2, 2, 1746, 1745, 3, 2, 2, 2, 1746, 1747, 3, 2, 2, 2, 1747, 1748, 3, 2, 2, 2, 1748, 1764, 5, 532, 267, 2, 1749, 1750, 7, 558, 2, 2, 1750, 1752, 5, 526, 264, 2, 1751, 1753, 5, 98, 50, 2, 1752, 1751, 3, 2, 2, 2, 1752, 1753, 3, 2, 2, 2, 1753, 1764, 3, 2, 2, 2, 1754, 1764, 5, 98, 50, 2, 1755, 1757, 7, 164, 2, 2, 1756, 1758, 7, 1013, 2, 2, 1757, 1756, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 1759, 3, 2, 2, 2, 1759, 1760, 7, 1022, 2, 2, 1760, 1761, 5, 560, 281, 2, 1761, 1762, 7, 1023, 2, 2, 1762, 1764, 3, 2, 2, 2, 1763, 1619, 3, 2, 2, 2, 1763, 1624, 3, 2, 2, 2, 1763, 1629, 3, 2, 2, 2, 1763, 1635, 3, 2, 2, 2, 1763, 1649, 3, 2, 2, 2, 1763, 1655, 3, 2, 2, 2, 1763, 1662, 3, 2, 2, 2, 1763, 1667, 3, 2, 2, 2, 1763, 1672, 3, 2, 2, 2, 1763, 1677, 3, 2, 2, 2, 1763, 1683, 3, 2, 2, 2, 1763, 1688, 3, 2, 2, 2, 1763, 1693, 3, 2, 2, 2, 1763, 1699, 3, 2, 2, 2, 1763, 1704, 3, 2, 2, 2, 1763, 1709, 3, 2, 2, 2, 1763, 1714, 3, 2, 2, 2, 1763, 1719, 3, 2, 2, 2, 1763, 1724, 3, 2, 2, 2, 1763, 1729, 3, 2, 2, 2, 1763, 1734, 3, 2, 2, 2, 1763, 1739, 3, 2, 2, 2, 1763, 1744, 3, 2, 2, 2, 1763, 1749, 3, 2, 2, 2, 1763, 1754, 3, 2, 2, 2, 1763, 1755, 3, 2, 2, 2, 1764, 97, 3, 2, 2, 2, 1765, 1766, 7, 547, 2, 2, 1766, 1767, 9, 18, 2, 2, 1767, 99, 3, 2, 2, 2, 1768, 1769, 7, 117, 2, 2, 1769, 1770, 7, 18, 2, 2, 1770, 1773, 5, 102, 52, 2, 1771, 1772, 7, 469, 2, 2, 1772, 1774, 5, 532, 267, 2, 1773, 1771, 3, 2, 2, 2, 1773, 1774, 3, 2, 2, 2, 1774, 1782, 3, 2, 2, 2, 1775, 1776, 7, 552, 2, 2, 1776, 1777, 7, 18, 2, 2, 1777, 1780, 5, 104, 53, 2, 1778, 1779, 7, 553, 2, 2, 1779, 1781, 5, 532, 267, 2, 1780, 1778, 3, 2, 2, 2, 1780, 1781, 3, 2, 2, 2, 1781, 1783, 3, 2, 2, 2, 1782, 1775, 3, 2, 2, 2, 1782, 1783, 3, 2, 2, 2, 1783, 1795, 3, 2, 2, 2, 1784, 1785, 7, 1022, 2, 2, 1785, 1790, 5, 106, 54, 2, 1786, 1787, 7, 1024, 2, 2, 1787, 1789, 5, 106, 54, 2, 1788, 1786, 3, 2, 2, 2, 1789, 1792, 3, 2, 2, 2, 1790, 1788, 3, 2, 2, 2, 1790, 1791, 3, 2, 2, 2, 1791, 1793, 3, 2, 2, 2, 1792, 1790, 3, 2, 2, 2, 1793, 1794, 7, 1023, 2, 2, 1794, 1796, 3, 2, 2, 2, 1795, 1784, 3, 2, 2, 2, 1795, 1796, 3, 2, 2, 2, 1796, 101, 3, 2, 2, 2, 1797, 1799, 7, 92, 2, 2, 1798, 1797, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1800, 3, 2, 2, 2, 1800, 1801, 7, 376, 2, 2, 1801, 1802, 7, 1022, 2, 2, 1802, 1803, 5, 604, 303, 2, 1803, 1804, 7, 1023, 2, 2, 1804, 1843, 3, 2, 2, 2, 1805, 1807, 7, 92, 2, 2, 1806, 1805, 3, 2, 2, 2, 1806, 1807, 3, 2, 2, 2, 1807, 1808, 3, 2, 2, 2, 1808, 1812, 7, 84, 2, 2, 1809, 1810, 7, 276, 2, 2, 1810, 1811, 7, 1013, 2, 2, 1811, 1813, 9, 29, 2, 2, 1812, 1809, 3, 2, 2, 2, 1812, 1813, 3, 2, 2, 2, 1813, 1814, 3, 2, 2, 2, 1814, 1815, 7, 1022, 2, 2, 1815, 1816, 5, 558, 280, 2, 1816, 1817, 7, 1023, 2, 2, 1817, 1843, 3, 2, 2, 2, 1818, 1828, 7, 121, 2, 2, 1819, 1820, 7, 1022, 2, 2, 1820, 1821, 5, 604, 303, 2, 1821, 1822, 7, 1023, 2, 2, 1822, 1829, 3, 2, 2, 2, 1823, 1824, 7, 304, 2, 2, 1824, 1825, 7, 1022, 2, 2, 1825, 1826, 5, 558, 280, 2, 1826, 1827, 7, 1023, 2, 2, 1827, 1829, 3, 2, 2, 2, 1828, 1819, 3, 2, 2, 2, 1828, 1823, 3, 2, 2, 2, 1829, 1843, 3, 2, 2, 2, 1830, 1840, 7, 403, 2, 2, 1831, 1832, 7, 1022, 2, 2, 1832, 1833, 5, 604, 303, 2, 1833, 1834, 7, 1023, 2, 2, 1834, 1841, 3, 2, 2, 2, 1835, 1836, 7, 304, 2, 2, 1836, 1837, 7, 1022, 2, 2, 1837, 1838, 5, 558, 280, 2, 1838, 1839, 7, 1023, 2, 2, 1839, 1841, 3, 2, 2, 2, 1840, 1831, 3, 2, 2, 2, 1840, 1835, 3, 2, 2, 2, 1841, 1843, 3, 2, 2, 2, 1842, 1798, 3, 2, 2, 2, 1842, 1806, 3, 2, 2, 2, 1842, 1818, 3, 2, 2, 2, 1842, 1830, 3, 2, 2, 2, 1843, 103, 3, 2, 2, 2, 1844, 1846, 7, 92, 2, 2, 1845, 1844, 3, 2, 2, 2, 1845, 1846, 3, 2, 2, 2, 1846, 1847, 3, 2, 2, 2, 1847, 1848, 7, 376, 2, 2, 1848, 1849, 7, 1022, 2, 2, 1849, 1850, 5, 604, 303, 2, 1850, 1851, 7, 1023, 2, 2, 1851, 1866, 3, 2, 2, 2, 1852, 1854, 7, 92, 2, 2, 1853, 1852, 3, 2, 2, 2, 1853, 1854, 3, 2, 2, 2, 1854, 1855, 3, 2, 2, 2, 1855, 1859, 7, 84, 2, 2, 1856, 1857, 7, 276, 2, 2, 1857, 1858, 7, 1013, 2, 2, 1858, 1860, 9, 29, 2, 2, 1859, 1856, 3, 2, 2, 2, 1859, 1860, 3, 2, 2, 2, 1860, 1861, 3, 2, 2, 2, 1861, 1862, 7, 1022, 2, 2, 1862, 1863, 5, 558, 280, 2, 1863, 1864, 7, 1023, 2, 2, 1864, 1866, 3, 2, 2, 2, 1865, 1845, 3, 2, 2, 2, 1865, 1853, 3, 2, 2, 2, 1866, 105, 3, 2, 2, 2, 1867, 1868, 7, 117, 2, 2, 1868, 1869, 5, 526, 264, 2, 1869, 1870, 7, 172, 2, 2, 1870, 1871, 7, 401, 2, 2, 1871, 1872, 7, 561, 2, 2, 1872, 1873, 7, 1022, 2, 2, 1873, 1878, 5, 108, 55, 2, 1874, 1875, 7, 1024, 2, 2, 1875, 1877, 5, 108, 55, 2, 1876, 1874, 3, 2, 2, 2, 1877, 1880, 3, 2, 2, 2, 1878, 1876, 3, 2, 2, 2, 1878, 1879, 3, 2, 2, 2, 1879, 1881, 3, 2, 2, 2, 1880, 1878, 3, 2, 2, 2, 1881, 1885, 7, 1023, 2, 2, 1882, 1884, 5, 114, 58, 2, 1883, 1882, 3, 2, 2, 2, 1884, 1887, 3, 2, 2, 2, 1885, 1883, 3, 2, 2, 2, 1885, 1886, 3, 2, 2, 2, 1886, 1896, 3, 2, 2, 2, 1887, 1885, 3, 2, 2, 2, 1888, 1893, 5, 112, 57, 2, 1889, 1890, 7, 1024, 2, 2, 1890, 1892, 5, 112, 57, 2, 1891, 1889, 3, 2, 2, 2, 1892, 1895, 3, 2, 2, 2, 1893, 1891, 3, 2, 2, 2, 1893, 1894, 3, 2, 2, 2, 1894, 1897, 3, 2, 2, 2, 1895, 1893, 3, 2, 2, 2, 1896, 1888, 3, 2, 2, 2, 1896, 1897, 3, 2, 2, 2, 1897, 1999, 3, 2, 2, 2, 1898, 1899, 7, 117, 2, 2, 1899, 1900, 5, 526, 264, 2, 1900, 1901, 7, 172, 2, 2, 1901, 1902, 7, 401, 2, 2, 1902, 1903, 7, 561, 2, 2, 1903, 1907, 5, 108, 55, 2, 1904, 1906, 5, 114, 58, 2, 1905, 1904, 3, 2, 2, 2, 1906, 1909, 3, 2, 2, 2, 1907, 1905, 3, 2, 2, 2, 1907, 1908, 3, 2, 2, 2, 1908, 1918, 3, 2, 2, 2, 1909, 1907, 3, 2, 2, 2, 1910, 1915, 5, 112, 57, 2, 1911, 1912, 7, 1024, 2, 2, 1912, 1914, 5, 112, 57, 2, 1913, 1911, 3, 2, 2, 2, 1914, 1917, 3, 2, 2, 2, 1915, 1913, 3, 2, 2, 2, 1915, 1916, 3, 2, 2, 2, 1916, 1919, 3, 2, 2, 2, 1917, 1915, 3, 2, 2, 2, 1918, 1910, 3, 2, 2, 2, 1918, 1919, 3, 2, 2, 2, 1919, 1999, 3, 2, 2, 2, 1920, 1921, 7, 117, 2, 2, 1921, 1922, 5, 526, 264, 2, 1922, 1923, 7, 172, 2, 2, 1923, 1924, 7, 73, 2, 2, 1924, 1925, 7, 1022, 2, 2, 1925, 1930, 5, 108, 55, 2, 1926, 1927, 7, 1024, 2, 2, 1927, 1929, 5, 108, 55, 2, 1928, 1926, 3, 2, 2, 2, 1929, 1932, 3, 2, 2, 2, 1930, 1928, 3, 2, 2, 2, 1930, 1931, 3, 2, 2, 2, 1931, 1933, 3, 2, 2, 2, 1932, 1930, 3, 2, 2, 2, 1933, 1937, 7, 1023, 2, 2, 1934, 1936, 5, 114, 58, 2, 1935, 1934, 3, 2, 2, 2, 1936, 1939, 3, 2, 2, 2, 1937, 1935, 3, 2, 2, 2, 1937, 1938, 3, 2, 2, 2, 1938, 1948, 3, 2, 2, 2, 1939, 1937, 3, 2, 2, 2, 1940, 1945, 5, 112, 57, 2, 1941, 1942, 7, 1024, 2, 2, 1942, 1944, 5, 112, 57, 2, 1943, 1941, 3, 2, 2, 2, 1944, 1947, 3, 2, 2, 2, 1945, 1943, 3, 2, 2, 2, 1945, 1946, 3, 2, 2, 2, 1946, 1949, 3, 2, 2, 2, 1947, 1945, 3, 2, 2, 2, 1948, 1940, 3, 2, 2, 2, 1948, 1949, 3, 2, 2, 2, 1949, 1999, 3, 2, 2, 2, 1950, 1951, 7, 117, 2, 2, 1951, 1952, 5, 526, 264, 2, 1952, 1953, 7, 172, 2, 2, 1953, 1954, 7, 73, 2, 2, 1954, 1955, 7, 1022, 2, 2, 1955, 1960, 5, 110, 56, 2, 1956, 1957, 7, 1024, 2, 2, 1957, 1959, 5, 110, 56, 2, 1958, 1956, 3, 2, 2, 2, 1959, 1962, 3, 2, 2, 2, 1960, 1958, 3, 2, 2, 2, 1960, 1961, 3, 2, 2, 2, 1961, 1963, 3, 2, 2, 2, 1962, 1960, 3, 2, 2, 2, 1963, 1967, 7, 1023, 2, 2, 1964, 1966, 5, 114, 58, 2, 1965, 1964, 3, 2, 2, 2, 1966, 1969, 3, 2, 2, 2, 1967, 1965, 3, 2, 2, 2, 1967, 1968, 3, 2, 2, 2, 1968, 1978, 3, 2, 2, 2, 1969, 1967, 3, 2, 2, 2, 1970, 1975, 5, 112, 57, 2, 1971, 1972, 7, 1024, 2, 2, 1972, 1974, 5, 112, 57, 2, 1973, 1971, 3, 2, 2, 2, 1974, 1977, 3, 2, 2, 2, 1975, 1973, 3, 2, 2, 2, 1975, 1976, 3, 2, 2, 2, 1976, 1979, 3, 2, 2, 2, 1977, 1975, 3, 2, 2, 2, 1978, 1970, 3, 2, 2, 2, 1978, 1979, 3, 2, 2, 2, 1979, 1999, 3, 2, 2, 2, 1980, 1981, 7, 117, 2, 2, 1981, 1985, 5, 526, 264, 2, 1982, 1984, 5, 114, 58, 2, 1983, 1982, 3, 2, 2, 2, 1984, 1987, 3, 2, 2, 2, 1985, 1983, 3, 2, 2, 2, 1985, 1986, 3, 2, 2, 2, 1986, 1996, 3, 2, 2, 2, 1987, 1985, 3, 2, 2, 2, 1988, 1993, 5, 112, 57, 2, 1989, 1990, 7, 1024, 2, 2, 1990, 1992, 5, 112, 57, 2, 1991, 1989, 3, 2, 2, 2, 1992, 1995, 3, 2, 2, 2, 1993, 1991, 3, 2, 2, 2, 1993, 1994, 3, 2, 2, 2, 1994, 1997, 3, 2, 2, 2, 1995, 1993, 3, 2, 2, 2, 1996, 1988, 3, 2, 2, 2, 1996, 1997, 3, 2, 2, 2, 1997, 1999, 3, 2, 2, 2, 1998, 1867, 3, 2, 2, 2, 1998, 1898, 3, 2, 2, 2, 1998, 1920, 3, 2, 2, 2, 1998, 1950, 3, 2, 2, 2, 1998, 1980, 3, 2, 2, 2, 1999, 107, 3, 2, 2, 2, 2000, 2004, 5, 544, 273, 2, 2001, 2004, 5, 604, 303, 2, 2002, 2004, 7, 101, 2, 2, 2003, 2000, 3, 2, 2, 2, 2003, 2001, 3, 2, 2, 2, 2003, 2002, 3, 2, 2, 2, 2004, 109, 3, 2, 2, 2, 2005, 2006, 7, 1022, 2, 2, 2006, 2009, 5, 108, 55, 2, 2007, 2008, 7, 1024, 2, 2, 2008, 2010, 5, 108, 55, 2, 2009, 2007, 3, 2, 2, 2, 2010, 2011, 3, 2, 2, 2, 2011, 2009, 3, 2, 2, 2, 2011, 2012, 3, 2, 2, 2, 2012, 2013, 3, 2, 2, 2, 2013, 2014, 7, 1023, 2, 2, 2014, 111, 3, 2, 2, 2, 2015, 2016, 7, 552, 2, 2, 2016, 2020, 5, 526, 264, 2, 2017, 2019, 5, 114, 58, 2, 2018, 2017, 3, 2, 2, 2, 2019, 2022, 3, 2, 2, 2, 2020, 2018, 3, 2, 2, 2, 2020, 2021, 3, 2, 2, 2, 2021, 113, 3, 2, 2, 2, 2022, 2020, 3, 2, 2, 2, 2023, 2025, 7, 547, 2, 2, 2024, 2023, 3, 2, 2, 2, 2024, 2025, 3, 2, 2, 2, 2025, 2026, 3, 2, 2, 2, 2026, 2028, 7, 344, 2, 2, 2027, 2029, 7, 1013, 2, 2, 2028, 2027, 3, 2, 2, 2, 2028, 2029, 3, 2, 2, 2, 2029, 2030, 3, 2, 2, 2, 2030, 2069, 5, 516, 259, 2, 2031, 2033, 7, 307, 2, 2, 2032, 2034, 7, 1013, 2, 2, 2033, 2032, 3, 2, 2, 2, 2033, 2034, 3, 2, 2, 2, 2034, 2035, 3, 2, 2, 2, 2035, 2069, 7, 1037, 2, 2, 2036, 2037, 7, 325, 2, 2, 2037, 2039, 7, 332, 2, 2, 2038, 2040, 7, 1013, 2, 2, 2039, 2038, 3, 2, 2, 2, 2039, 2040, 3, 2, 2, 2, 2040, 2041, 3, 2, 2, 2, 2041, 2069, 7, 1037, 2, 2, 2042, 2043, 7, 74, 2, 2, 2043, 2045, 7, 332, 2, 2, 2044, 2046, 7, 1013, 2, 2, 2045, 2044, 3, 2, 2, 2, 2045, 2046, 3, 2, 2, 2, 2046, 2047, 3, 2, 2, 2, 2047, 2069, 7, 1037, 2, 2, 2048, 2050, 7, 430, 2, 2, 2049, 2051, 7, 1013, 2, 2, 2050, 2049, 3, 2, 2, 2, 2050, 2051, 3, 2, 2, 2, 2051, 2052, 3, 2, 2, 2, 2052, 2069, 5, 532, 267, 2, 2053, 2055, 7, 439, 2, 2, 2054, 2056, 7, 1013, 2, 2, 2055, 2054, 3, 2, 2, 2, 2055, 2056, 3, 2, 2, 2, 2056, 2057, 3, 2, 2, 2, 2057, 2069, 5, 532, 267, 2, 2058, 2060, 7, 558, 2, 2, 2059, 2061, 7, 1013, 2, 2, 2060, 2059, 3, 2, 2, 2, 2060, 2061, 3, 2, 2, 2, 2061, 2062, 3, 2, 2, 2, 2062, 2069, 5, 526, 264, 2, 2063, 2065, 7, 451, 2, 2, 2064, 2066, 7, 1013, 2, 2, 2065, 2064, 3, 2, 2, 2, 2065, 2066, 3, 2, 2, 2, 2066, 2067, 3, 2, 2, 2, 2067, 2069, 5, 526, 264, 2, 2068, 2024, 3, 2, 2, 2, 2068, 2031, 3, 2, 2, 2, 2068, 2036, 3, 2, 2, 2, 2068, 2042, 3, 2, 2, 2, 2068, 2048, 3, 2, 2, 2, 2068, 2053, 3, 2, 2, 2, 2068, 2058, 3, 2, 2, 2, 2068, 2063, 3, 2, 2, 2, 2069, 115, 3, 2, 2, 2, 2070, 2071, 7, 9, 2, 2, 2071, 2073, 9, 2, 2, 2, 2072, 2074, 5, 526, 264, 2, 2073, 2072, 3, 2, 2, 2, 2073, 2074, 3, 2, 2, 2, 2074, 2076, 3, 2, 2, 2, 2075, 2077, 5, 52, 27, 2, 2076, 2075, 3, 2, 2, 2, 2077, 2078, 3, 2, 2, 2, 2078, 2076, 3, 2, 2, 2, 2078, 2079, 3, 2, 2, 2, 2079, 2089, 3, 2, 2, 2, 2080, 2081, 7, 9, 2, 2, 2081, 2082, 9, 2, 2, 2, 2082, 2083, 5, 526, 264, 2, 2083, 2084, 7, 573, 2, 2, 2084, 2085, 7, 325, 2, 2, 2085, 2086, 7, 332, 2, 2, 2086, 2087, 7, 445, 2, 2, 2087, 2089, 3, 2, 2, 2, 2088, 2070, 3, 2, 2, 2, 2088, 2080, 3, 2, 2, 2, 2089, 117, 3, 2, 2, 2, 2090, 2092, 7, 9, 2, 2, 2091, 2093, 5, 54, 28, 2, 2092, 2091, 3, 2, 2, 2, 2092, 2093, 3, 2, 2, 2, 2093, 2094, 3, 2, 2, 2, 2094, 2095, 7, 350, 2, 2, 2095, 2099, 5, 500, 251, 2, 2096, 2097, 7, 108, 2, 2, 2097, 2098, 7, 517, 2, 2, 2098, 2100, 5, 56, 29, 2, 2099, 2096, 3, 2, 2, 2, 2099, 2100, 3, 2, 2, 2, 2100, 2107, 3, 2, 2, 2, 2101, 2102, 7, 108, 2, 2, 2102, 2104, 7, 310, 2, 2, 2103, 2105, 7, 104, 2, 2, 2104, 2103, 3, 2, 2, 2, 2104, 2105, 3, 2, 2, 2, 2105, 2106, 3, 2, 2, 2, 2106, 2108, 7, 478, 2, 2, 2107, 2101, 3, 2, 2, 2, 2107, 2108, 3, 2, 2, 2, 2108, 2112, 3, 2, 2, 2, 2109, 2110, 7, 127, 2, 2, 2110, 2111, 7, 159, 2, 2, 2111, 2113, 5, 500, 251, 2, 2112, 2109, 3, 2, 2, 2, 2112, 2113, 3, 2, 2, 2, 2113, 2115, 3, 2, 2, 2, 2114, 2116, 5, 64, 33, 2, 2115, 2114, 3, 2, 2, 2, 2115, 2116, 3, 2, 2, 2, 2116, 2119, 3, 2, 2, 2, 2117, 2118, 7, 307, 2, 2, 2118, 2120, 7, 1037, 2, 2, 2119, 2117, 3, 2, 2, 2, 2119, 2120, 3, 2, 2, 2, 2120, 2123, 3, 2, 2, 2, 2121, 2122, 7, 336, 2, 2, 2122, 2124, 5, 348, 175, 2, 2123, 2121, 3, 2, 2, 2, 2123, 2124, 3, 2, 2, 2, 2124, 119, 3, 2, 2, 2, 2125, 2126, 7, 9, 2, 2, 2126, 2127, 7, 370, 2, 2, 2127, 2131, 5, 500, 251, 2, 2128, 2130, 5, 74, 38, 2, 2129, 2128, 3, 2, 2, 2, 2130, 2133, 3, 2, 2, 2, 2131, 2129, 3, 2, 2, 2, 2131, 2132, 3, 2, 2, 2, 2132, 121, 3, 2, 2, 2, 2133, 2131, 3, 2, 2, 2, 2134, 2135, 7, 9, 2, 2, 2135, 2136, 7, 388, 2, 2, 2136, 2137, 7, 512, 2, 2, 2137, 2138, 7, 683, 2, 2, 2138, 2139, 7, 407, 2, 2, 2139, 2140, 7, 84, 2, 2, 2140, 123, 3, 2, 2, 2, 2141, 2142, 7, 9, 2, 2, 2142, 2143, 7, 405, 2, 2, 2143, 2144, 7, 68, 2, 2, 2144, 2145, 5, 526, 264, 2, 2145, 2146, 7, 7, 2, 2, 2146, 2147, 7, 568, 2, 2, 2147, 2153, 7, 1037, 2, 2, 2148, 2150, 7, 384, 2, 2, 2149, 2151, 7, 1013, 2, 2, 2150, 2149, 3, 2, 2, 2, 2150, 2151, 3, 2, 2, 2, 2151, 2152, 3, 2, 2, 2, 2152, 2154, 5, 534, 268, 2, 2153, 2148, 3, 2, 2, 2, 2153, 2154, 3, 2, 2, 2, 2154, 2156, 3, 2, 2, 2, 2155, 2157, 7, 583, 2, 2, 2156, 2155, 3, 2, 2, 2, 2156, 2157, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2160, 7, 344, 2, 2, 2159, 2161, 7, 1013, 2, 2, 2160, 2159, 3, 2, 2, 2, 2160, 2161, 3, 2, 2, 2, 2161, 2162, 3, 2, 2, 2, 2162, 2163, 5, 516, 259, 2, 2163, 125, 3, 2, 2, 2, 2164, 2165, 7, 9, 2, 2, 2165, 2166, 7, 119, 2, 2, 2166, 2170, 5, 500, 251, 2, 2167, 2169, 5, 74, 38, 2, 2168, 2167, 3, 2, 2, 2, 2169, 2172, 3, 2, 2, 2, 2170, 2168, 3, 2, 2, 2, 2170, 2171, 3, 2, 2, 2, 2171, 127, 3, 2, 2, 2, 2172, 2170, 3, 2, 2, 2, 2173, 2174, 7, 9, 2, 2, 2174, 2175, 7, 519, 2, 2, 2175, 2176, 5, 526, 264, 2, 2176, 2177, 7, 462, 2, 2, 2177, 2178, 7, 1022, 2, 2, 2178, 2183, 5, 76, 39, 2, 2179, 2180, 7, 1024, 2, 2, 2180, 2182, 5, 76, 39, 2, 2181, 2179, 3, 2, 2, 2, 2182, 2185, 3, 2, 2, 2, 2183, 2181, 3, 2, 2, 2, 2183, 2184, 3, 2, 2, 2, 2184, 2186, 3, 2, 2, 2, 2185, 2183, 3, 2, 2, 2, 2186, 2187, 7, 1023, 2, 2, 2187, 129, 3, 2, 2, 2, 2188, 2190, 7, 9, 2, 2, 2189, 2191, 9, 3, 2, 2, 2190, 2189, 3, 2, 2, 2, 2190, 2191, 3, 2, 2, 2, 2191, 2193, 3, 2, 2, 2, 2192, 2194, 7, 72, 2, 2, 2193, 2192, 3, 2, 2, 2, 2193, 2194, 3, 2, 2, 2, 2194, 2195, 3, 2, 2, 2, 2195, 2196, 7, 156, 2, 2, 2196, 2205, 5, 502, 252, 2, 2197, 2202, 5, 136, 69, 2, 2198, 2199, 7, 1024, 2, 2, 2199, 2201, 5, 136, 69, 2, 2200, 2198, 3, 2, 2, 2, 2201, 2204, 3, 2, 2, 2, 2202, 2200, 3, 2, 2, 2, 2202, 2203, 3, 2, 2, 2, 2203, 2206, 3, 2, 2, 2, 2204, 2202, 3, 2, 2, 2, 2205, 2197, 3, 2, 2, 2, 2205, 2206, 3, 2, 2, 2, 2206, 2208, 3, 2, 2, 2, 2207, 2209, 5, 100, 51, 2, 2208, 2207, 3, 2, 2, 2, 2208, 2209, 3, 2, 2, 2, 2209, 131, 3, 2, 2, 2, 2210, 2211, 7, 9, 2, 2, 2211, 2212, 7, 558, 2, 2, 2212, 2213, 5, 526, 264, 2, 2213, 2214, 9, 30, 2, 2, 2214, 2215, 7, 326, 2, 2, 2215, 2219, 7, 1037, 2, 2, 2216, 2217, 7, 384, 2, 2, 2217, 2218, 7, 1013, 2, 2, 2218, 2220, 5, 534, 268, 2, 2219, 2216, 3, 2, 2, 2, 2219, 2220, 3, 2, 2, 2, 2220, 2222, 3, 2, 2, 2, 2221, 2223, 7, 583, 2, 2, 2222, 2221, 3, 2, 2, 2, 2222, 2223, 3, 2, 2, 2, 2223, 2224, 3, 2, 2, 2, 2224, 2226, 7, 344, 2, 2, 2225, 2227, 7, 1013, 2, 2, 2226, 2225, 3, 2, 2, 2, 2226, 2227, 3, 2, 2, 2, 2227, 2228, 3, 2, 2, 2, 2228, 2229, 5, 516, 259, 2, 2229, 133, 3, 2, 2, 2, 2230, 2234, 7, 9, 2, 2, 2231, 2232, 7, 276, 2, 2, 2232, 2233, 7, 1013, 2, 2, 2233, 2235, 9, 12, 2, 2, 2234, 2231, 3, 2, 2, 2, 2234, 2235, 3, 2, 2, 2, 2235, 2237, 3, 2, 2, 2, 2236, 2238, 5, 54, 28, 2, 2237, 2236, 3, 2, 2, 2, 2237, 2238, 3, 2, 2, 2, 2238, 2242, 3, 2, 2, 2, 2239, 2240, 7, 145, 2, 2, 2240, 2241, 7, 518, 2, 2, 2241, 2243, 9, 13, 2, 2, 2242, 2239, 3, 2, 2, 2, 2242, 2243, 3, 2, 2, 2, 2243, 2244, 3, 2, 2, 2, 2244, 2245, 7, 580, 2, 2, 2245, 2250, 5, 500, 251, 2, 2246, 2247, 7, 1022, 2, 2, 2247, 2248, 5, 558, 280, 2, 2248, 2249, 7, 1023, 2, 2, 2249, 2251, 3, 2, 2, 2, 2250, 2246, 3, 2, 2, 2, 2250, 2251, 3, 2, 2, 2, 2251, 2252, 3, 2, 2, 2, 2252, 2253, 7, 13, 2, 2, 2253, 2260, 5, 182, 92, 2, 2254, 2256, 7, 176, 2, 2, 2255, 2257, 9, 14, 2, 2, 2256, 2255, 3, 2, 2, 2, 2256, 2257, 3, 2, 2, 2, 2257, 2258, 3, 2, 2, 2, 2258, 2259, 7, 25, 2, 2, 2259, 2261, 7, 110, 2, 2, 2260, 2254, 3, 2, 2, 2, 2260, 2261, 3, 2, 2, 2, 2261, 135, 3, 2, 2, 2, 2262, 2269, 5, 96, 49, 2, 2263, 2265, 7, 1024, 2, 2, 2264, 2263, 3, 2, 2, 2, 2264, 2265, 3, 2, 2, 2, 2265, 2266, 3, 2, 2, 2, 2266, 2268, 5, 96, 49, 2, 2267, 2264, 3, 2, 2, 2, 2268, 2271, 3, 2, 2, 2, 2269, 2267, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2626, 3, 2, 2, 2, 2271, 2269, 3, 2, 2, 2, 2272, 2274, 7, 7, 2, 2, 2273, 2275, 7, 27, 2, 2, 2274, 2273, 3, 2, 2, 2, 2274, 2275, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2277, 5, 526, 264, 2, 2277, 2281, 5, 82, 42, 2, 2278, 2282, 7, 364, 2, 2, 2279, 2280, 7, 274, 2, 2, 2280, 2282, 5, 526, 264, 2, 2281, 2278, 3, 2, 2, 2, 2281, 2279, 3, 2, 2, 2, 2281, 2282, 3, 2, 2, 2, 2282, 2626, 3, 2, 2, 2, 2283, 2285, 7, 7, 2, 2, 2284, 2286, 7, 27, 2, 2, 2285, 2284, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 2287, 3, 2, 2, 2, 2287, 2288, 7, 1022, 2, 2, 2288, 2289, 5, 526, 264, 2, 2289, 2296, 5, 82, 42, 2, 2290, 2291, 7, 1024, 2, 2, 2291, 2292, 5, 526, 264, 2, 2292, 2293, 5, 82, 42, 2, 2293, 2295, 3, 2, 2, 2, 2294, 2290, 3, 2, 2, 2, 2295, 2298, 3, 2, 2, 2, 2296, 2294, 3, 2, 2, 2, 2296, 2297, 3, 2, 2, 2, 2297, 2299, 3, 2, 2, 2, 2298, 2296, 3, 2, 2, 2, 2299, 2300, 7, 1023, 2, 2, 2300, 2626, 3, 2, 2, 2, 2301, 2302, 7, 7, 2, 2, 2302, 2304, 9, 20, 2, 2, 2303, 2305, 5, 526, 264, 2, 2304, 2303, 3, 2, 2, 2, 2304, 2305, 3, 2, 2, 2, 2305, 2307, 3, 2, 2, 2, 2306, 2308, 5, 66, 34, 2, 2307, 2306, 3, 2, 2, 2, 2307, 2308, 3, 2, 2, 2, 2308, 2309, 3, 2, 2, 2, 2309, 2313, 5, 562, 282, 2, 2310, 2312, 5, 68, 35, 2, 2311, 2310, 3, 2, 2, 2, 2312, 2315, 3, 2, 2, 2, 2313, 2311, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2626, 3, 2, 2, 2, 2315, 2313, 3, 2, 2, 2, 2316, 2321, 7, 7, 2, 2, 2317, 2319, 7, 29, 2, 2, 2318, 2320, 5, 526, 264, 2, 2319, 2318, 3, 2, 2, 2, 2319, 2320, 3, 2, 2, 2, 2320, 2322, 3, 2, 2, 2, 2321, 2317, 3, 2, 2, 2, 2321, 2322, 3, 2, 2, 2, 2322, 2323, 3, 2, 2, 2, 2323, 2324, 7, 118, 2, 2, 2324, 2326, 7, 84, 2, 2, 2325, 2327, 5, 526, 264, 2, 2326, 2325, 3, 2, 2, 2, 2326, 2327, 3, 2, 2, 2, 2327, 2329, 3, 2, 2, 2, 2328, 2330, 5, 66, 34, 2, 2329, 2328, 3, 2, 2, 2, 2329, 2330, 3, 2, 2, 2, 2330, 2331, 3, 2, 2, 2, 2331, 2335, 5, 562, 282, 2, 2332, 2334, 5, 68, 35, 2, 2333, 2332, 3, 2, 2, 2, 2334, 2337, 3, 2, 2, 2, 2335, 2333, 3, 2, 2, 2, 2335, 2336, 3, 2, 2, 2, 2336, 2626, 3, 2, 2, 2, 2337, 2335, 3, 2, 2, 2, 2338, 2343, 7, 7, 2, 2, 2339, 2341, 7, 29, 2, 2, 2340, 2342, 5, 526, 264, 2, 2341, 2340, 3, 2, 2, 2, 2341, 2342, 3, 2, 2, 2, 2342, 2344, 3, 2, 2, 2, 2343, 2339, 3, 2, 2, 2, 2343, 2344, 3, 2, 2, 2, 2344, 2345, 3, 2, 2, 2, 2345, 2347, 7, 165, 2, 2, 2346, 2348, 9, 20, 2, 2, 2347, 2346, 3, 2, 2, 2, 2347, 2348, 3, 2, 2, 2, 2348, 2350, 3, 2, 2, 2, 2349, 2351, 5, 526, 264, 2, 2350, 2349, 3, 2, 2, 2, 2350, 2351, 3, 2, 2, 2, 2351, 2353, 3, 2, 2, 2, 2352, 2354, 5, 66, 34, 2, 2353, 2352, 3, 2, 2, 2, 2353, 2354, 3, 2, 2, 2, 2354, 2355, 3, 2, 2, 2, 2355, 2359, 5, 562, 282, 2, 2356, 2358, 5, 68, 35, 2, 2357, 2356, 3, 2, 2, 2, 2358, 2361, 3, 2, 2, 2, 2359, 2357, 3, 2, 2, 2, 2359, 2360, 3, 2, 2, 2, 2360, 2626, 3, 2, 2, 2, 2361, 2359, 3, 2, 2, 2, 2362, 2363, 7, 7, 2, 2, 2363, 2365, 9, 22, 2, 2, 2364, 2366, 9, 20, 2, 2, 2365, 2364, 3, 2, 2, 2, 2365, 2366, 3, 2, 2, 2, 2366, 2368, 3, 2, 2, 2, 2367, 2369, 5, 526, 264, 2, 2368, 2367, 3, 2, 2, 2, 2368, 2369, 3, 2, 2, 2, 2369, 2370, 3, 2, 2, 2, 2370, 2374, 5, 562, 282, 2, 2371, 2373, 5, 68, 35, 2, 2372, 2371, 3, 2, 2, 2, 2373, 2376, 3, 2, 2, 2, 2374, 2372, 3, 2, 2, 2, 2374, 2375, 3, 2, 2, 2, 2375, 2626, 3, 2, 2, 2, 2376, 2374, 3, 2, 2, 2, 2377, 2382, 7, 7, 2, 2, 2378, 2380, 7, 29, 2, 2, 2379, 2381, 5, 526, 264, 2, 2380, 2379, 3, 2, 2, 2, 2380, 2381, 3, 2, 2, 2, 2381, 2383, 3, 2, 2, 2, 2382, 2378, 3, 2, 2, 2, 2382, 2383, 3, 2, 2, 2, 2383, 2384, 3, 2, 2, 2, 2384, 2385, 7, 62, 2, 2, 2385, 2387, 7, 84, 2, 2, 2386, 2388, 5, 526, 264, 2, 2387, 2386, 3, 2, 2, 2, 2387, 2388, 3, 2, 2, 2, 2388, 2389, 3, 2, 2, 2, 2389, 2390, 5, 562, 282, 2, 2390, 2391, 5, 88, 45, 2, 2391, 2626, 3, 2, 2, 2, 2392, 2397, 7, 7, 2, 2, 2393, 2395, 7, 29, 2, 2, 2394, 2396, 5, 526, 264, 2, 2395, 2394, 3, 2, 2, 2, 2395, 2396, 3, 2, 2, 2, 2396, 2398, 3, 2, 2, 2, 2397, 2393, 3, 2, 2, 2, 2397, 2398, 3, 2, 2, 2, 2398, 2399, 3, 2, 2, 2, 2399, 2400, 7, 25, 2, 2, 2400, 2401, 7, 1022, 2, 2, 2401, 2402, 5, 604, 303, 2, 2402, 2403, 7, 1023, 2, 2, 2403, 2626, 3, 2, 2, 2, 2404, 2406, 7, 276, 2, 2, 2405, 2407, 7, 1013, 2, 2, 2406, 2405, 3, 2, 2, 2, 2406, 2407, 3, 2, 2, 2, 2407, 2408, 3, 2, 2, 2, 2408, 2626, 9, 5, 2, 2, 2409, 2411, 7, 9, 2, 2, 2410, 2412, 7, 27, 2, 2, 2411, 2410, 3, 2, 2, 2, 2411, 2412, 3, 2, 2, 2, 2412, 2413, 3, 2, 2, 2, 2413, 2419, 5, 526, 264, 2, 2414, 2415, 7, 140, 2, 2, 2415, 2416, 7, 40, 2, 2, 2416, 2420, 5, 574, 288, 2, 2417, 2418, 7, 49, 2, 2, 2418, 2420, 7, 40, 2, 2, 2419, 2414, 3, 2, 2, 2, 2419, 2417, 3, 2, 2, 2, 2420, 2626, 3, 2, 2, 2, 2421, 2423, 7, 23, 2, 2, 2422, 2424, 7, 27, 2, 2, 2423, 2422, 3, 2, 2, 2, 2423, 2424, 3, 2, 2, 2, 2424, 2425, 3, 2, 2, 2, 2425, 2426, 5, 526, 264, 2, 2426, 2427, 5, 526, 264, 2, 2427, 2431, 5, 82, 42, 2, 2428, 2432, 7, 364, 2, 2, 2429, 2430, 7, 274, 2, 2, 2430, 2432, 5, 526, 264, 2, 2431, 2428, 3, 2, 2, 2, 2431, 2429, 3, 2, 2, 2, 2431, 2432, 3, 2, 2, 2, 2432, 2626, 3, 2, 2, 2, 2433, 2434, 7, 127, 2, 2, 2434, 2435, 7, 27, 2, 2, 2435, 2436, 5, 526, 264, 2, 2436, 2437, 7, 159, 2, 2, 2437, 2438, 5, 526, 264, 2, 2438, 2626, 3, 2, 2, 2, 2439, 2441, 7, 95, 2, 2, 2440, 2442, 7, 1013, 2, 2, 2441, 2440, 3, 2, 2, 2, 2441, 2442, 3, 2, 2, 2, 2442, 2443, 3, 2, 2, 2, 2443, 2626, 9, 6, 2, 2, 2444, 2446, 7, 441, 2, 2, 2445, 2447, 7, 27, 2, 2, 2446, 2445, 3, 2, 2, 2, 2446, 2447, 3, 2, 2, 2, 2447, 2448, 3, 2, 2, 2, 2448, 2449, 5, 526, 264, 2, 2449, 2453, 5, 82, 42, 2, 2450, 2454, 7, 364, 2, 2, 2451, 2452, 7, 274, 2, 2, 2452, 2454, 5, 526, 264, 2, 2453, 2450, 3, 2, 2, 2, 2453, 2451, 3, 2, 2, 2, 2453, 2454, 3, 2, 2, 2, 2454, 2626, 3, 2, 2, 2, 2455, 2457, 7, 49, 2, 2, 2456, 2458, 7, 27, 2, 2, 2457, 2456, 3, 2, 2, 2, 2457, 2458, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2461, 5, 526, 264, 2, 2460, 2462, 7, 132, 2, 2, 2461, 2460, 3, 2, 2, 2, 2461, 2462, 3, 2, 2, 2, 2462, 2626, 3, 2, 2, 2, 2463, 2464, 7, 49, 2, 2, 2464, 2465, 7, 118, 2, 2, 2465, 2626, 7, 84, 2, 2, 2466, 2467, 7, 127, 2, 2, 2467, 2468, 9, 20, 2, 2, 2468, 2469, 5, 526, 264, 2, 2469, 2470, 7, 159, 2, 2, 2470, 2471, 5, 526, 264, 2, 2471, 2626, 3, 2, 2, 2, 2472, 2473, 7, 9, 2, 2, 2473, 2474, 7, 74, 2, 2, 2474, 2475, 5, 526, 264, 2, 2475, 2476, 9, 31, 2, 2, 2476, 2626, 3, 2, 2, 2, 2477, 2478, 7, 49, 2, 2, 2478, 2479, 9, 20, 2, 2, 2479, 2626, 5, 526, 264, 2, 2480, 2481, 7, 49, 2, 2, 2481, 2482, 7, 62, 2, 2, 2482, 2483, 7, 84, 2, 2, 2483, 2626, 5, 526, 264, 2, 2484, 2485, 7, 333, 2, 2, 2485, 2626, 7, 85, 2, 2, 2486, 2487, 7, 340, 2, 2, 2487, 2626, 7, 85, 2, 2, 2488, 2490, 7, 127, 2, 2, 2489, 2491, 9, 32, 2, 2, 2490, 2489, 3, 2, 2, 2, 2490, 2491, 3, 2, 2, 2, 2491, 2494, 3, 2, 2, 2, 2492, 2495, 5, 526, 264, 2, 2493, 2495, 5, 500, 251, 2, 2494, 2492, 3, 2, 2, 2, 2494, 2493, 3, 2, 2, 2, 2495, 2626, 3, 2, 2, 2, 2496, 2497, 7, 113, 2, 2, 2497, 2498, 7, 18, 2, 2, 2498, 2626, 5, 558, 280, 2, 2499, 2500, 7, 31, 2, 2, 2500, 2501, 7, 159, 2, 2, 2501, 2502, 7, 24, 2, 2, 2502, 2503, 7, 140, 2, 2, 2503, 2506, 5, 512, 257, 2, 2504, 2505, 7, 26, 2, 2, 2505, 2507, 5, 514, 258, 2, 2506, 2504, 3, 2, 2, 2, 2506, 2507, 3, 2, 2, 2, 2507, 2626, 3, 2, 2, 2, 2508, 2510, 7, 40, 2, 2, 2509, 2508, 3, 2, 2, 2, 2509, 2510, 3, 2, 2, 2, 2510, 2511, 3, 2, 2, 2, 2511, 2512, 7, 24, 2, 2, 2512, 2513, 7, 140, 2, 2, 2513, 2514, 7, 1013, 2, 2, 2514, 2518, 5, 512, 257, 2, 2515, 2516, 7, 26, 2, 2, 2516, 2517, 7, 1013, 2, 2, 2517, 2519, 5, 514, 258, 2, 2518, 2515, 3, 2, 2, 2, 2518, 2519, 3, 2, 2, 2, 2519, 2626, 3, 2, 2, 2, 2520, 2521, 7, 334, 2, 2, 2521, 2626, 7, 558, 2, 2, 2522, 2523, 7, 382, 2, 2, 2523, 2626, 7, 558, 2, 2, 2524, 2626, 7, 61, 2, 2, 2525, 2526, 9, 33, 2, 2, 2526, 2626, 7, 577, 2, 2, 2527, 2528, 7, 7, 2, 2, 2528, 2529, 7, 117, 2, 2, 2529, 2530, 7, 1022, 2, 2, 2530, 2535, 5, 106, 54, 2, 2531, 2532, 7, 1024, 2, 2, 2532, 2534, 5, 106, 54, 2, 2533, 2531, 3, 2, 2, 2, 2534, 2537, 3, 2, 2, 2, 2535, 2533, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 2538, 3, 2, 2, 2, 2537, 2535, 3, 2, 2, 2, 2538, 2539, 7, 1023, 2, 2, 2539, 2626, 3, 2, 2, 2, 2540, 2541, 7, 49, 2, 2, 2541, 2542, 7, 117, 2, 2, 2542, 2626, 5, 558, 280, 2, 2543, 2544, 7, 334, 2, 2, 2544, 2547, 7, 117, 2, 2, 2545, 2548, 5, 558, 280, 2, 2546, 2548, 7, 8, 2, 2, 2547, 2545, 3, 2, 2, 2, 2547, 2546, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 2626, 7, 558, 2, 2, 2550, 2551, 7, 382, 2, 2, 2551, 2554, 7, 117, 2, 2, 2552, 2555, 5, 558, 280, 2, 2553, 2555, 7, 8, 2, 2, 2554, 2552, 3, 2, 2, 2, 2554, 2553, 3, 2, 2, 2, 2555, 2556, 3, 2, 2, 2, 2556, 2626, 7, 558, 2, 2, 2557, 2558, 7, 566, 2, 2, 2558, 2561, 7, 117, 2, 2, 2559, 2562, 5, 558, 280, 2, 2560, 2562, 7, 8, 2, 2, 2561, 2559, 3, 2, 2, 2, 2561, 2560, 3, 2, 2, 2, 2562, 2626, 3, 2, 2, 2, 2563, 2564, 7, 302, 2, 2, 2564, 2565, 7, 117, 2, 2, 2565, 2626, 5, 532, 267, 2, 2566, 2567, 7, 495, 2, 2, 2567, 2568, 7, 117, 2, 2, 2568, 2569, 5, 558, 280, 2, 2569, 2570, 7, 80, 2, 2, 2570, 2571, 7, 1022, 2, 2, 2571, 2576, 5, 106, 54, 2, 2572, 2573, 7, 1024, 2, 2, 2573, 2575, 5, 106, 54, 2, 2574, 2572, 3, 2, 2, 2, 2575, 2578, 3, 2, 2, 2, 2576, 2574, 3, 2, 2, 2, 2576, 2577, 3, 2, 2, 2, 2577, 2579, 3, 2, 2, 2, 2578, 2576, 3, 2, 2, 2, 2579, 2580, 7, 1023, 2, 2, 2580, 2626, 3, 2, 2, 2, 2581, 2582, 7, 353, 2, 2, 2582, 2583, 7, 117, 2, 2, 2583, 2584, 5, 526, 264, 2, 2584, 2585, 7, 176, 2, 2, 2585, 2586, 7, 156, 2, 2, 2586, 2589, 5, 502, 252, 2, 2587, 2588, 9, 33, 2, 2, 2588, 2590, 7, 577, 2, 2, 2589, 2587, 3, 2, 2, 2, 2589, 2590, 3, 2, 2, 2, 2590, 2626, 3, 2, 2, 2, 2591, 2592, 7, 11, 2, 2, 2592, 2595, 7, 117, 2, 2, 2593, 2596, 5, 558, 280, 2, 2594, 2596, 7, 8, 2, 2, 2595, 2593, 3, 2, 2, 2, 2595, 2594, 3, 2, 2, 2, 2596, 2626, 3, 2, 2, 2, 2597, 2598, 7, 25, 2, 2, 2598, 2601, 7, 117, 2, 2, 2599, 2602, 5, 558, 280, 2, 2600, 2602, 7, 8, 2, 2, 2601, 2599, 3, 2, 2, 2, 2601, 2600, 3, 2, 2, 2, 2602, 2626, 3, 2, 2, 2, 2603, 2604, 7, 109, 2, 2, 2604, 2607, 7, 117, 2, 2, 2605, 2608, 5, 558, 280, 2, 2606, 2608, 7, 8, 2, 2, 2607, 2605, 3, 2, 2, 2, 2607, 2606, 3, 2, 2, 2, 2608, 2626, 3, 2, 2, 2, 2609, 2610, 7, 486, 2, 2, 2610, 2613, 7, 117, 2, 2, 2611, 2614, 5, 558, 280, 2, 2612, 2614, 7, 8, 2, 2, 2613, 2611, 3, 2, 2, 2, 2613, 2612, 3, 2, 2, 2, 2614, 2626, 3, 2, 2, 2, 2615, 2616, 7, 496, 2, 2, 2616, 2619, 7, 117, 2, 2, 2617, 2620, 5, 558, 280, 2, 2618, 2620, 7, 8, 2, 2, 2619, 2617, 3, 2, 2, 2, 2619, 2618, 3, 2, 2, 2, 2620, 2626, 3, 2, 2, 2, 2621, 2622, 7, 494, 2, 2, 2622, 2626, 7, 468, 2, 2, 2623, 2624, 7, 573, 2, 2, 2624, 2626, 7, 468, 2, 2, 2625, 2262, 3, 2, 2, 2, 2625, 2272, 3, 2, 2, 2, 2625, 2283, 3, 2, 2, 2, 2625, 2301, 3, 2, 2, 2, 2625, 2316, 3, 2, 2, 2, 2625, 2338, 3, 2, 2, 2, 2625, 2362, 3, 2, 2, 2, 2625, 2377, 3, 2, 2, 2, 2625, 2392, 3, 2, 2, 2, 2625, 2404, 3, 2, 2, 2, 2625, 2409, 3, 2, 2, 2, 2625, 2421, 3, 2, 2, 2, 2625, 2433, 3, 2, 2, 2, 2625, 2439, 3, 2, 2, 2, 2625, 2444, 3, 2, 2, 2, 2625, 2455, 3, 2, 2, 2, 2625, 2463, 3, 2, 2, 2, 2625, 2466, 3, 2, 2, 2, 2625, 2472, 3, 2, 2, 2, 2625, 2477, 3, 2, 2, 2, 2625, 2480, 3, 2, 2, 2, 2625, 2484, 3, 2, 2, 2, 2625, 2486, 3, 2, 2, 2, 2625, 2488, 3, 2, 2, 2, 2625, 2496, 3, 2, 2, 2, 2625, 2499, 3, 2, 2, 2, 2625, 2509, 3, 2, 2, 2, 2625, 2520, 3, 2, 2, 2, 2625, 2522, 3, 2, 2, 2, 2625, 2524, 3, 2, 2, 2, 2625, 2525, 3, 2, 2, 2, 2625, 2527, 3, 2, 2, 2, 2625, 2540, 3, 2, 2, 2, 2625, 2543, 3, 2, 2, 2, 2625, 2550, 3, 2, 2, 2, 2625, 2557, 3, 2, 2, 2, 2625, 2563, 3, 2, 2, 2, 2625, 2566, 3, 2, 2, 2, 2625, 2581, 3, 2, 2, 2, 2625, 2591, 3, 2, 2, 2, 2625, 2597, 3, 2, 2, 2, 2625, 2603, 3, 2, 2, 2, 2625, 2609, 3, 2, 2, 2, 2625, 2615, 3, 2, 2, 2, 2625, 2621, 3, 2, 2, 2, 2625, 2623, 3, 2, 2, 2, 2626, 137, 3, 2, 2, 2, 2627, 2628, 7, 49, 2, 2, 2628, 2630, 9, 2, 2, 2, 2629, 2631, 5, 580, 291, 2, 2630, 2629, 3, 2, 2, 2, 2630, 2631, 3, 2, 2, 2, 2631, 2632, 3, 2, 2, 2, 2632, 2633, 5, 526, 264, 2, 2633, 139, 3, 2, 2, 2, 2634, 2635, 7, 49, 2, 2, 2635, 2637, 7, 350, 2, 2, 2636, 2638, 5, 580, 291, 2, 2637, 2636, 3, 2, 2, 2, 2637, 2638, 3, 2, 2, 2, 2638, 2639, 3, 2, 2, 2, 2639, 2640, 5, 500, 251, 2, 2640, 141, 3, 2, 2, 2, 2641, 2642, 7, 49, 2, 2, 2642, 2644, 7, 74, 2, 2, 2643, 2645, 9, 3, 2, 2, 2644, 2643, 3, 2, 2, 2, 2644, 2645, 3, 2, 2, 2, 2645, 2646, 3, 2, 2, 2, 2646, 2647, 5, 526, 264, 2, 2647, 2648, 7, 108, 2, 2, 2648, 2661, 5, 502, 252, 2, 2649, 2651, 7, 276, 2, 2, 2650, 2652, 7, 1013, 2, 2, 2651, 2650, 3, 2, 2, 2, 2651, 2652, 3, 2, 2, 2, 2652, 2653, 3, 2, 2, 2, 2653, 2660, 9, 5, 2, 2, 2654, 2656, 7, 95, 2, 2, 2655, 2657, 7, 1013, 2, 2, 2656, 2655, 3, 2, 2, 2, 2656, 2657, 3, 2, 2, 2, 2657, 2658, 3, 2, 2, 2, 2658, 2660, 9, 6, 2, 2, 2659, 2649, 3, 2, 2, 2, 2659, 2654, 3, 2, 2, 2, 2660, 2663, 3, 2, 2, 2, 2661, 2659, 3, 2, 2, 2, 2661, 2662, 3, 2, 2, 2, 2662, 143, 3, 2, 2, 2, 2663, 2661, 3, 2, 2, 2, 2664, 2665, 7, 49, 2, 2, 2665, 2666, 7, 405, 2, 2, 2666, 2667, 7, 68, 2, 2, 2667, 2668, 5, 526, 264, 2, 2668, 2669, 7, 344, 2, 2, 2669, 2670, 7, 1013, 2, 2, 2670, 2671, 5, 516, 259, 2, 2671, 145, 3, 2, 2, 2, 2672, 2673, 7, 49, 2, 2, 2673, 2675, 7, 119, 2, 2, 2674, 2676, 5, 580, 291, 2, 2675, 2674, 3, 2, 2, 2, 2675, 2676, 3, 2, 2, 2, 2676, 2677, 3, 2, 2, 2, 2677, 2678, 5, 500, 251, 2, 2678, 147, 3, 2, 2, 2, 2679, 2680, 7, 49, 2, 2, 2680, 2682, 7, 370, 2, 2, 2681, 2683, 5, 580, 291, 2, 2682, 2681, 3, 2, 2, 2, 2682, 2683, 3, 2, 2, 2, 2683, 2684, 3, 2, 2, 2, 2684, 2685, 5, 500, 251, 2, 2685, 149, 3, 2, 2, 2, 2686, 2687, 7, 49, 2, 2, 2687, 2689, 7, 519, 2, 2, 2688, 2690, 5, 580, 291, 2, 2689, 2688, 3, 2, 2, 2, 2689, 2690, 3, 2, 2, 2, 2690, 2691, 3, 2, 2, 2, 2691, 2692, 5, 526, 264, 2, 2692, 151, 3, 2, 2, 2, 2693, 2695, 7, 49, 2, 2, 2694, 2696, 7, 559, 2, 2, 2695, 2694, 3, 2, 2, 2, 2695, 2696, 3, 2, 2, 2, 2696, 2697, 3, 2, 2, 2, 2697, 2699, 7, 156, 2, 2, 2698, 2700, 5, 580, 291, 2, 2699, 2698, 3, 2, 2, 2, 2699, 2700, 3, 2, 2, 2, 2700, 2701, 3, 2, 2, 2, 2701, 2703, 5, 560, 281, 2, 2702, 2704, 9, 34, 2, 2, 2703, 2702, 3, 2, 2, 2, 2703, 2704, 3, 2, 2, 2, 2704, 153, 3, 2, 2, 2, 2705, 2706, 7, 49, 2, 2, 2706, 2707, 7, 558, 2, 2, 2707, 2713, 5, 526, 264, 2, 2708, 2710, 7, 344, 2, 2, 2709, 2711, 7, 1013, 2, 2, 2710, 2709, 3, 2, 2, 2, 2710, 2711, 3, 2, 2, 2, 2711, 2712, 3, 2, 2, 2, 2712, 2714, 5, 516, 259, 2, 2713, 2708, 3, 2, 2, 2, 2713, 2714, 3, 2, 2, 2, 2714, 155, 3, 2, 2, 2, 2715, 2716, 7, 49, 2, 2, 2716, 2718, 7, 161, 2, 2, 2717, 2719, 5, 580, 291, 2, 2718, 2717, 3, 2, 2, 2, 2718, 2719, 3, 2, 2, 2, 2719, 2720, 3, 2, 2, 2, 2720, 2721, 5, 500, 251, 2, 2721, 157, 3, 2, 2, 2, 2722, 2723, 7, 49, 2, 2, 2723, 2725, 7, 580, 2, 2, 2724, 2726, 5, 580, 291, 2, 2725, 2724, 3, 2, 2, 2, 2725, 2726, 3, 2, 2, 2, 2726, 2727, 3, 2, 2, 2, 2727, 2732, 5, 500, 251, 2, 2728, 2729, 7, 1024, 2, 2, 2729, 2731, 5, 500, 251, 2, 2730, 2728, 3, 2, 2, 2, 2731, 2734, 3, 2, 2, 2, 2732, 2730, 3, 2, 2, 2, 2732, 2733, 3, 2, 2, 2, 2733, 2736, 3, 2, 2, 2, 2734, 2732, 3, 2, 2, 2, 2735, 2737, 9, 34, 2, 2, 2736, 2735, 3, 2, 2, 2, 2736, 2737, 3, 2, 2, 2, 2737, 159, 3, 2, 2, 2, 2738, 2739, 7, 127, 2, 2, 2739, 2740, 7, 156, 2, 2, 2740, 2745, 5, 162, 82, 2, 2741, 2742, 7, 1024, 2, 2, 2742, 2744, 5, 162, 82, 2, 2743, 2741, 3, 2, 2, 2, 2744, 2747, 3, 2, 2, 2, 2745, 2743, 3, 2, 2, 2, 2745, 2746, 3, 2, 2, 2, 2746, 161, 3, 2, 2, 2, 2747, 2745, 3, 2, 2, 2, 2748, 2749, 5, 502, 252, 2, 2749, 2750, 7, 159, 2, 2, 2750, 2751, 5, 502, 252, 2, 2751, 163, 3, 2, 2, 2, 2752, 2754, 7, 566, 2, 2, 2753, 2755, 7, 156, 2, 2, 2754, 2753, 3, 2, 2, 2, 2754, 2755, 3, 2, 2, 2, 2755, 2756, 3, 2, 2, 2, 2756, 2757, 5, 502, 252, 2, 2757, 165, 3, 2, 2, 2, 2758, 2759, 7, 19, 2, 2, 2759, 2766, 5, 500, 251, 2, 2760, 2763, 7, 1022, 2, 2, 2761, 2764, 5, 568, 285, 2, 2762, 2764, 5, 564, 283, 2, 2763, 2761, 3, 2, 2, 2, 2763, 2762, 3, 2, 2, 2, 2763, 2764, 3, 2, 2, 2, 2764, 2765, 3, 2, 2, 2, 2765, 2767, 7, 1023, 2, 2, 2766, 2760, 3, 2, 2, 2, 2766, 2767, 3, 2, 2, 2, 2767, 167, 3, 2, 2, 2, 2768, 2771, 5, 194, 98, 2, 2769, 2771, 5, 196, 99, 2, 2770, 2768, 3, 2, 2, 2, 2770, 2769, 3, 2, 2, 2, 2771, 169, 3, 2, 2, 2, 2772, 2773, 7, 336, 2, 2, 2773, 2774, 5, 564, 283, 2, 2774, 171, 3, 2, 2, 2, 2775, 2780, 5, 198, 100, 2, 2776, 2780, 5, 200, 101, 2, 2777, 2780, 5, 202, 102, 2, 2778, 2780, 5, 204, 103, 2, 2779, 2775, 3, 2, 2, 2, 2779, 2776, 3, 2, 2, 2, 2779, 2777, 3, 2, 2, 2, 2779, 2778, 3, 2, 2, 2, 2780, 173, 3, 2, 2, 2, 2781, 2783, 7, 78, 2, 2, 2782, 2784, 9, 35, 2, 2, 2783, 2782, 3, 2, 2, 2, 2783, 2784, 3, 2, 2, 2, 2784, 2786, 3, 2, 2, 2, 2785, 2787, 7, 72, 2, 2, 2786, 2785, 3, 2, 2, 2, 2786, 2787, 3, 2, 2, 2, 2787, 2789, 3, 2, 2, 2, 2788, 2790, 7, 80, 2, 2, 2789, 2788, 3, 2, 2, 2, 2789, 2790, 3, 2, 2, 2, 2790, 2791, 3, 2, 2, 2, 2791, 2798, 5, 502, 252, 2, 2792, 2793, 7, 117, 2, 2, 2793, 2795, 7, 1022, 2, 2, 2794, 2796, 5, 558, 280, 2, 2795, 2794, 3, 2, 2, 2, 2795, 2796, 3, 2, 2, 2, 2796, 2797, 3, 2, 2, 2, 2797, 2799, 7, 1023, 2, 2, 2798, 2792, 3, 2, 2, 2, 2798, 2799, 3, 2, 2, 2, 2799, 2816, 3, 2, 2, 2, 2800, 2801, 7, 1022, 2, 2, 2801, 2802, 5, 558, 280, 2, 2802, 2803, 7, 1023, 2, 2, 2803, 2805, 3, 2, 2, 2, 2804, 2800, 3, 2, 2, 2, 2804, 2805, 3, 2, 2, 2, 2805, 2806, 3, 2, 2, 2, 2806, 2817, 5, 186, 94, 2, 2807, 2808, 7, 140, 2, 2, 2808, 2813, 5, 188, 95, 2, 2809, 2810, 7, 1024, 2, 2, 2810, 2812, 5, 188, 95, 2, 2811, 2809, 3, 2, 2, 2, 2812, 2815, 3, 2, 2, 2, 2813, 2811, 3, 2, 2, 2, 2813, 2814, 3, 2, 2, 2, 2814, 2817, 3, 2, 2, 2, 2815, 2813, 3, 2, 2, 2, 2816, 2804, 3, 2, 2, 2, 2816, 2807, 3, 2, 2, 2, 2817, 2830, 3, 2, 2, 2, 2818, 2819, 7, 108, 2, 2, 2819, 2820, 7, 338, 2, 2, 2820, 2821, 7, 84, 2, 2, 2821, 2822, 7, 168, 2, 2, 2822, 2827, 5, 188, 95, 2, 2823, 2824, 7, 1024, 2, 2, 2824, 2826, 5, 188, 95, 2, 2825, 2823, 3, 2, 2, 2, 2826, 2829, 3, 2, 2, 2, 2827, 2825, 3, 2, 2, 2, 2827, 2828, 3, 2, 2, 2, 2828, 2831, 3, 2, 2, 2, 2829, 2827, 3, 2, 2, 2, 2830, 2818, 3, 2, 2, 2, 2830, 2831, 3, 2, 2, 2, 2831, 175, 3, 2, 2, 2, 2832, 2833, 7, 94, 2, 2, 2833, 2835, 7, 325, 2, 2, 2834, 2836, 9, 36, 2, 2, 2835, 2834, 3, 2, 2, 2, 2835, 2836, 3, 2, 2, 2, 2836, 2838, 3, 2, 2, 2, 2837, 2839, 7, 404, 2, 2, 2838, 2837, 3, 2, 2, 2, 2838, 2839, 3, 2, 2, 2, 2839, 2840, 3, 2, 2, 2, 2840, 2841, 7, 75, 2, 2, 2841, 2843, 7, 1037, 2, 2, 2842, 2844, 9, 8, 2, 2, 2843, 2842, 3, 2, 2, 2, 2843, 2844, 3, 2, 2, 2, 2844, 2845, 3, 2, 2, 2, 2845, 2846, 7, 80, 2, 2, 2846, 2847, 7, 156, 2, 2, 2847, 2853, 5, 502, 252, 2, 2848, 2849, 7, 117, 2, 2, 2849, 2850, 7, 1022, 2, 2, 2850, 2851, 5, 558, 280, 2, 2851, 2852, 7, 1023, 2, 2, 2852, 2854, 3, 2, 2, 2, 2853, 2848, 3, 2, 2, 2, 2853, 2854, 3, 2, 2, 2, 2854, 2858, 3, 2, 2, 2, 2855, 2856, 7, 24, 2, 2, 2856, 2857, 7, 140, 2, 2, 2857, 2859, 5, 512, 257, 2, 2858, 2855, 3, 2, 2, 2, 2858, 2859, 3, 2, 2, 2, 2859, 2866, 3, 2, 2, 2, 2860, 2862, 9, 37, 2, 2, 2861, 2863, 5, 246, 124, 2, 2862, 2861, 3, 2, 2, 2, 2863, 2864, 3, 2, 2, 2, 2864, 2862, 3, 2, 2, 2, 2864, 2865, 3, 2, 2, 2, 2865, 2867, 3, 2, 2, 2, 2866, 2860, 3, 2, 2, 2, 2866, 2867, 3, 2, 2, 2, 2867, 2874, 3, 2, 2, 2, 2868, 2870, 7, 93, 2, 2, 2869, 2871, 5, 248, 125, 2, 2870, 2869, 3, 2, 2, 2, 2871, 2872, 3, 2, 2, 2, 2872, 2870, 3, 2, 2, 2, 2872, 2873, 3, 2, 2, 2, 2873, 2875, 3, 2, 2, 2, 2874, 2868, 3, 2, 2, 2, 2874, 2875, 3, 2, 2, 2, 2875, 2880, 3, 2, 2, 2, 2876, 2877, 7, 72, 2, 2, 2877, 2878, 5, 532, 267, 2, 2878, 2879, 9, 38, 2, 2, 2879, 2881, 3, 2, 2, 2, 2880, 2876, 3, 2, 2, 2, 2880, 2881, 3, 2, 2, 2, 2881, 2893, 3, 2, 2, 2, 2882, 2883, 7, 1022, 2, 2, 2883, 2888, 5, 190, 96, 2, 2884, 2885, 7, 1024, 2, 2, 2885, 2887, 5, 190, 96, 2, 2886, 2884, 3, 2, 2, 2, 2887, 2890, 3, 2, 2, 2, 2888, 2886, 3, 2, 2, 2, 2888, 2889, 3, 2, 2, 2, 2889, 2891, 3, 2, 2, 2, 2890, 2888, 3, 2, 2, 2, 2891, 2892, 7, 1023, 2, 2, 2892, 2894, 3, 2, 2, 2, 2893, 2882, 3, 2, 2, 2, 2893, 2894, 3, 2, 2, 2, 2894, 2904, 3, 2, 2, 2, 2895, 2896, 7, 140, 2, 2, 2896, 2901, 5, 188, 95, 2, 2897, 2898, 7, 1024, 2, 2, 2898, 2900, 5, 188, 95, 2, 2899, 2897, 3, 2, 2, 2, 2900, 2903, 3, 2, 2, 2, 2901, 2899, 3, 2, 2, 2, 2901, 2902, 3, 2, 2, 2, 2902, 2905, 3, 2, 2, 2, 2903, 2901, 3, 2, 2, 2, 2904, 2895, 3, 2, 2, 2, 2904, 2905, 3, 2, 2, 2, 2905, 177, 3, 2, 2, 2, 2906, 2907, 7, 94, 2, 2, 2907, 2909, 7, 590, 2, 2, 2908, 2910, 9, 36, 2, 2, 2909, 2908, 3, 2, 2, 2, 2909, 2910, 3, 2, 2, 2, 2910, 2912, 3, 2, 2, 2, 2911, 2913, 7, 404, 2, 2, 2912, 2911, 3, 2, 2, 2, 2912, 2913, 3, 2, 2, 2, 2913, 2914, 3, 2, 2, 2, 2914, 2915, 7, 75, 2, 2, 2915, 2917, 7, 1037, 2, 2, 2916, 2918, 9, 8, 2, 2, 2917, 2916, 3, 2, 2, 2, 2917, 2918, 3, 2, 2, 2, 2918, 2919, 3, 2, 2, 2, 2919, 2920, 7, 80, 2, 2, 2920, 2921, 7, 156, 2, 2, 2921, 2925, 5, 502, 252, 2, 2922, 2923, 7, 24, 2, 2, 2923, 2924, 7, 140, 2, 2, 2924, 2926, 5, 512, 257, 2, 2925, 2922, 3, 2, 2, 2, 2925, 2926, 3, 2, 2, 2, 2926, 2933, 3, 2, 2, 2, 2927, 2928, 7, 514, 2, 2, 2928, 2929, 7, 380, 2, 2, 2929, 2930, 7, 18, 2, 2, 2930, 2931, 7, 1015, 2, 2, 2931, 2932, 7, 1037, 2, 2, 2932, 2934, 7, 1014, 2, 2, 2933, 2927, 3, 2, 2, 2, 2933, 2934, 3, 2, 2, 2, 2934, 2939, 3, 2, 2, 2, 2935, 2936, 7, 72, 2, 2, 2936, 2937, 5, 532, 267, 2, 2937, 2938, 9, 38, 2, 2, 2938, 2940, 3, 2, 2, 2, 2939, 2935, 3, 2, 2, 2, 2939, 2940, 3, 2, 2, 2, 2940, 2952, 3, 2, 2, 2, 2941, 2942, 7, 1022, 2, 2, 2942, 2947, 5, 190, 96, 2, 2943, 2944, 7, 1024, 2, 2, 2944, 2946, 5, 190, 96, 2, 2945, 2943, 3, 2, 2, 2, 2946, 2949, 3, 2, 2, 2, 2947, 2945, 3, 2, 2, 2, 2947, 2948, 3, 2, 2, 2, 2948, 2950, 3, 2, 2, 2, 2949, 2947, 3, 2, 2, 2, 2950, 2951, 7, 1023, 2, 2, 2951, 2953, 3, 2, 2, 2, 2952, 2941, 3, 2, 2, 2, 2952, 2953, 3, 2, 2, 2, 2953, 2963, 3, 2, 2, 2, 2954, 2955, 7, 140, 2, 2, 2955, 2960, 5, 188, 95, 2, 2956, 2957, 7, 1024, 2, 2, 2957, 2959, 5, 188, 95, 2, 2958, 2956, 3, 2, 2, 2, 2959, 2962, 3, 2, 2, 2, 2960, 2958, 3, 2, 2, 2, 2960, 2961, 3, 2, 2, 2, 2961, 2964, 3, 2, 2, 2, 2962, 2960, 3, 2, 2, 2, 2963, 2954, 3, 2, 2, 2, 2963, 2964, 3, 2, 2, 2, 2964, 179, 3, 2, 2, 2, 2965, 2967, 7, 129, 2, 2, 2966, 2968, 9, 39, 2, 2, 2967, 2966, 3, 2, 2, 2, 2967, 2968, 3, 2, 2, 2, 2968, 2970, 3, 2, 2, 2, 2969, 2971, 7, 80, 2, 2, 2970, 2969, 3, 2, 2, 2, 2970, 2971, 3, 2, 2, 2, 2971, 2972, 3, 2, 2, 2, 2972, 2978, 5, 502, 252, 2, 2973, 2974, 7, 117, 2, 2, 2974, 2975, 7, 1022, 2, 2, 2975, 2976, 5, 558, 280, 2, 2976, 2977, 7, 1023, 2, 2, 2977, 2979, 3, 2, 2, 2, 2978, 2973, 3, 2, 2, 2, 2978, 2979, 3, 2, 2, 2, 2979, 2996, 3, 2, 2, 2, 2980, 2981, 7, 1022, 2, 2, 2981, 2982, 5, 558, 280, 2, 2982, 2983, 7, 1023, 2, 2, 2983, 2985, 3, 2, 2, 2, 2984, 2980, 3, 2, 2, 2, 2984, 2985, 3, 2, 2, 2, 2985, 2986, 3, 2, 2, 2, 2986, 2997, 5, 186, 94, 2, 2987, 2988, 7, 140, 2, 2, 2988, 2993, 5, 188, 95, 2, 2989, 2990, 7, 1024, 2, 2, 2990, 2992, 5, 188, 95, 2, 2991, 2989, 3, 2, 2, 2, 2992, 2995, 3, 2, 2, 2, 2993, 2991, 3, 2, 2, 2, 2993, 2994, 3, 2, 2, 2, 2994, 2997, 3, 2, 2, 2, 2995, 2993, 3, 2, 2, 2, 2996, 2984, 3, 2, 2, 2, 2996, 2987, 3, 2, 2, 2, 2997, 181, 3, 2, 2, 2, 2998, 3000, 5, 230, 116, 2, 2999, 3001, 5, 192, 97, 2, 3000, 2999, 3, 2, 2, 2, 3000, 3001, 3, 2, 2, 2, 3001, 3054, 3, 2, 2, 2, 3002, 3004, 5, 226, 114, 2, 3003, 3005, 5, 192, 97, 2, 3004, 3003, 3, 2, 2, 2, 3004, 3005, 3, 2, 2, 2, 3005, 3054, 3, 2, 2, 2, 3006, 3008, 5, 232, 117, 2, 3007, 3009, 5, 236, 119, 2, 3008, 3007, 3, 2, 2, 2, 3009, 3010, 3, 2, 2, 2, 3010, 3008, 3, 2, 2, 2, 3010, 3011, 3, 2, 2, 2, 3011, 3020, 3, 2, 2, 2, 3012, 3014, 7, 164, 2, 2, 3013, 3015, 9, 40, 2, 2, 3014, 3013, 3, 2, 2, 2, 3014, 3015, 3, 2, 2, 2, 3015, 3018, 3, 2, 2, 2, 3016, 3019, 5, 230, 116, 2, 3017, 3019, 5, 226, 114, 2, 3018, 3016, 3, 2, 2, 2, 3018, 3017, 3, 2, 2, 2, 3019, 3021, 3, 2, 2, 2, 3020, 3012, 3, 2, 2, 2, 3020, 3021, 3, 2, 2, 2, 3021, 3023, 3, 2, 2, 2, 3022, 3024, 5, 210, 106, 2, 3023, 3022, 3, 2, 2, 2, 3023, 3024, 3, 2, 2, 2, 3024, 3026, 3, 2, 2, 2, 3025, 3027, 5, 254, 128, 2, 3026, 3025, 3, 2, 2, 2, 3026, 3027, 3, 2, 2, 2, 3027, 3029, 3, 2, 2, 2, 3028, 3030, 5, 192, 97, 2, 3029, 3028, 3, 2, 2, 2, 3029, 3030, 3, 2, 2, 2, 3030, 3054, 3, 2, 2, 2, 3031, 3033, 5, 228, 115, 2, 3032, 3034, 5, 234, 118, 2, 3033, 3032, 3, 2, 2, 2, 3034, 3035, 3, 2, 2, 2, 3035, 3033, 3, 2, 2, 2, 3035, 3036, 3, 2, 2, 2, 3036, 3042, 3, 2, 2, 2, 3037, 3039, 7, 164, 2, 2, 3038, 3040, 9, 40, 2, 2, 3039, 3038, 3, 2, 2, 2, 3039, 3040, 3, 2, 2, 2, 3040, 3041, 3, 2, 2, 2, 3041, 3043, 5, 226, 114, 2, 3042, 3037, 3, 2, 2, 2, 3042, 3043, 3, 2, 2, 2, 3043, 3045, 3, 2, 2, 2, 3044, 3046, 5, 210, 106, 2, 3045, 3044, 3, 2, 2, 2, 3045, 3046, 3, 2, 2, 2, 3046, 3048, 3, 2, 2, 2, 3047, 3049, 5, 254, 128, 2, 3048, 3047, 3, 2, 2, 2, 3048, 3049, 3, 2, 2, 2, 3049, 3051, 3, 2, 2, 2, 3050, 3052, 5, 192, 97, 2, 3051, 3050, 3, 2, 2, 2, 3051, 3052, 3, 2, 2, 2, 3052, 3054, 3, 2, 2, 2, 3053, 2998, 3, 2, 2, 2, 3053, 3002, 3, 2, 2, 2, 3053, 3006, 3, 2, 2, 2, 3053, 3031, 3, 2, 2, 2, 3054, 183, 3, 2, 2, 2, 3055, 3058, 5, 206, 104, 2, 3056, 3058, 5, 208, 105, 2, 3057, 3055, 3, 2, 2, 2, 3057, 3056, 3, 2, 2, 2, 3058, 185, 3, 2, 2, 2, 3059, 3078, 5, 182, 92, 2, 3060, 3061, 9, 41, 2, 2, 3061, 3063, 7, 1022, 2, 2, 3062, 3064, 5, 566, 284, 2, 3063, 3062, 3, 2, 2, 2, 3063, 3064, 3, 2, 2, 2, 3064, 3065, 3, 2, 2, 2, 3065, 3074, 7, 1023, 2, 2, 3066, 3067, 7, 1024, 2, 2, 3067, 3069, 7, 1022, 2, 2, 3068, 3070, 5, 566, 284, 2, 3069, 3068, 3, 2, 2, 2, 3069, 3070, 3, 2, 2, 2, 3070, 3071, 3, 2, 2, 2, 3071, 3073, 7, 1023, 2, 2, 3072, 3066, 3, 2, 2, 2, 3073, 3076, 3, 2, 2, 2, 3074, 3072, 3, 2, 2, 2, 3074, 3075, 3, 2, 2, 2, 3075, 3078, 3, 2, 2, 2, 3076, 3074, 3, 2, 2, 2, 3077, 3059, 3, 2, 2, 2, 3077, 3060, 3, 2, 2, 2, 3078, 187, 3, 2, 2, 2, 3079, 3080, 5, 504, 253, 2, 3080, 3083, 7, 1013, 2, 2, 3081, 3084, 5, 604, 303, 2, 3082, 3084, 7, 40, 2, 2, 3083, 3081, 3, 2, 2, 2, 3083, 3082, 3, 2, 2, 2, 3084, 189, 3, 2, 2, 2, 3085, 3088, 5, 526, 264, 2, 3086, 3088, 7, 1048, 2, 2, 3087, 3085, 3, 2, 2, 2, 3087, 3086, 3, 2, 2, 2, 3088, 191, 3, 2, 2, 2, 3089, 3090, 7, 60, 2, 2, 3090, 3096, 7, 168, 2, 2, 3091, 3092, 7, 95, 2, 2, 3092, 3093, 7, 73, 2, 2, 3093, 3094, 7, 521, 2, 2, 3094, 3096, 7, 440, 2, 2, 3095, 3089, 3, 2, 2, 2, 3095, 3091, 3, 2, 2, 2, 3096, 193, 3, 2, 2, 2, 3097, 3099, 7, 42, 2, 2, 3098, 3100, 7, 97, 2, 2, 3099, 3098, 3, 2, 2, 2, 3099, 3100, 3, 2, 2, 2, 3100, 3102, 3, 2, 2, 2, 3101, 3103, 7, 485, 2, 2, 3102, 3101, 3, 2, 2, 2, 3102, 3103, 3, 2, 2, 2, 3103, 3105, 3, 2, 2, 2, 3104, 3106, 7, 72, 2, 2, 3105, 3104, 3, 2, 2, 2, 3105, 3106, 3, 2, 2, 2, 3106, 3107, 3, 2, 2, 2, 3107, 3108, 7, 63, 2, 2, 3108, 3114, 5, 502, 252, 2, 3109, 3110, 7, 117, 2, 2, 3110, 3111, 7, 1022, 2, 2, 3111, 3112, 5, 558, 280, 2, 3112, 3113, 7, 1023, 2, 2, 3113, 3115, 3, 2, 2, 2, 3114, 3109, 3, 2, 2, 2, 3114, 3115, 3, 2, 2, 2, 3115, 3118, 3, 2, 2, 2, 3116, 3117, 7, 174, 2, 2, 3117, 3119, 5, 604, 303, 2, 3118, 3116, 3, 2, 2, 2, 3118, 3119, 3, 2, 2, 2, 3119, 3121, 3, 2, 2, 2, 3120, 3122, 5, 210, 106, 2, 3121, 3120, 3, 2, 2, 2, 3121, 3122, 3, 2, 2, 2, 3122, 3125, 3, 2, 2, 2, 3123, 3124, 7, 91, 2, 2, 3124, 3126, 5, 256, 129, 2, 3125, 3123, 3, 2, 2, 2, 3125, 3126, 3, 2, 2, 2, 3126, 195, 3, 2, 2, 2, 3127, 3129, 7, 42, 2, 2, 3128, 3130, 7, 97, 2, 2, 3129, 3128, 3, 2, 2, 2, 3129, 3130, 3, 2, 2, 2, 3130, 3132, 3, 2, 2, 2, 3131, 3133, 7, 485, 2, 2, 3132, 3131, 3, 2, 2, 2, 3132, 3133, 3, 2, 2, 2, 3133, 3135, 3, 2, 2, 2, 3134, 3136, 7, 72, 2, 2, 3135, 3134, 3, 2, 2, 2, 3135, 3136, 3, 2, 2, 2, 3136, 3176, 3, 2, 2, 2, 3137, 3140, 5, 502, 252, 2, 3138, 3139, 7, 1021, 2, 2, 3139, 3141, 7, 1005, 2, 2, 3140, 3138, 3, 2, 2, 2, 3140, 3141, 3, 2, 2, 2, 3141, 3150, 3, 2, 2, 2, 3142, 3143, 7, 1024, 2, 2, 3143, 3146, 5, 502, 252, 2, 3144, 3145, 7, 1021, 2, 2, 3145, 3147, 7, 1005, 2, 2, 3146, 3144, 3, 2, 2, 2, 3146, 3147, 3, 2, 2, 2, 3147, 3149, 3, 2, 2, 2, 3148, 3142, 3, 2, 2, 2, 3149, 3152, 3, 2, 2, 2, 3150, 3148, 3, 2, 2, 2, 3150, 3151, 3, 2, 2, 2, 3151, 3153, 3, 2, 2, 2, 3152, 3150, 3, 2, 2, 2, 3153, 3154, 7, 63, 2, 2, 3154, 3155, 5, 214, 108, 2, 3155, 3177, 3, 2, 2, 2, 3156, 3157, 7, 63, 2, 2, 3157, 3160, 5, 502, 252, 2, 3158, 3159, 7, 1021, 2, 2, 3159, 3161, 7, 1005, 2, 2, 3160, 3158, 3, 2, 2, 2, 3160, 3161, 3, 2, 2, 2, 3161, 3170, 3, 2, 2, 2, 3162, 3163, 7, 1024, 2, 2, 3163, 3166, 5, 502, 252, 2, 3164, 3165, 7, 1021, 2, 2, 3165, 3167, 7, 1005, 2, 2, 3166, 3164, 3, 2, 2, 2, 3166, 3167, 3, 2, 2, 2, 3167, 3169, 3, 2, 2, 2, 3168, 3162, 3, 2, 2, 2, 3169, 3172, 3, 2, 2, 2, 3170, 3168, 3, 2, 2, 2, 3170, 3171, 3, 2, 2, 2, 3171, 3173, 3, 2, 2, 2, 3172, 3170, 3, 2, 2, 2, 3173, 3174, 7, 171, 2, 2, 3174, 3175, 5, 214, 108, 2, 3175, 3177, 3, 2, 2, 2, 3176, 3137, 3, 2, 2, 2, 3176, 3156, 3, 2, 2, 2, 3177, 3180, 3, 2, 2, 2, 3178, 3179, 7, 174, 2, 2, 3179, 3181, 5, 604, 303, 2, 3180, 3178, 3, 2, 2, 2, 3180, 3181, 3, 2, 2, 2, 3181, 197, 3, 2, 2, 2, 3182, 3183, 7, 375, 2, 2, 3183, 3184, 5, 502, 252, 2, 3184, 3189, 7, 460, 2, 2, 3185, 3187, 7, 13, 2, 2, 3186, 3185, 3, 2, 2, 2, 3186, 3187, 3, 2, 2, 2, 3187, 3188, 3, 2, 2, 2, 3188, 3190, 5, 526, 264, 2, 3189, 3186, 3, 2, 2, 2, 3189, 3190, 3, 2, 2, 2, 3190, 199, 3, 2, 2, 2, 3191, 3192, 7, 375, 2, 2, 3192, 3193, 5, 502, 252, 2, 3193, 3194, 7, 122, 2, 2, 3194, 3201, 5, 526, 264, 2, 3195, 3196, 5, 612, 307, 2, 3196, 3197, 7, 1022, 2, 2, 3197, 3198, 5, 568, 285, 2, 3198, 3199, 7, 1023, 2, 2, 3199, 3202, 3, 2, 2, 2, 3200, 3202, 9, 42, 2, 2, 3201, 3195, 3, 2, 2, 2, 3201, 3200, 3, 2, 2, 2, 3202, 3205, 3, 2, 2, 2, 3203, 3204, 7, 174, 2, 2, 3204, 3206, 5, 604, 303, 2, 3205, 3203, 3, 2, 2, 2, 3205, 3206, 3, 2, 2, 2, 3206, 3209, 3, 2, 2, 2, 3207, 3208, 7, 91, 2, 2, 3208, 3210, 5, 256, 129, 2, 3209, 3207, 3, 2, 2, 2, 3209, 3210, 3, 2, 2, 2, 3210, 201, 3, 2, 2, 2, 3211, 3212, 7, 375, 2, 2, 3212, 3213, 5, 502, 252, 2, 3213, 3214, 7, 122, 2, 2, 3214, 3217, 9, 43, 2, 2, 3215, 3216, 7, 174, 2, 2, 3216, 3218, 5, 604, 303, 2, 3217, 3215, 3, 2, 2, 2, 3217, 3218, 3, 2, 2, 2, 3218, 3221, 3, 2, 2, 2, 3219, 3220, 7, 91, 2, 2, 3220, 3222, 5, 256, 129, 2, 3221, 3219, 3, 2, 2, 2, 3221, 3222, 3, 2, 2, 2, 3222, 203, 3, 2, 2, 2, 3223, 3224, 7, 375, 2, 2, 3224, 3225, 5, 502, 252, 2, 3225, 3226, 7, 301, 2, 2, 3226, 205, 3, 2, 2, 2, 3227, 3229, 7, 168, 2, 2, 3228, 3230, 7, 97, 2, 2, 3229, 3228, 3, 2, 2, 2, 3229, 3230, 3, 2, 2, 2, 3230, 3232, 3, 2, 2, 2, 3231, 3233, 7, 72, 2, 2, 3232, 3231, 3, 2, 2, 2, 3232, 3233, 3, 2, 2, 2, 3233, 3234, 3, 2, 2, 2, 3234, 3239, 5, 502, 252, 2, 3235, 3237, 7, 13, 2, 2, 3236, 3235, 3, 2, 2, 2, 3236, 3237, 3, 2, 2, 2, 3237, 3238, 3, 2, 2, 2, 3238, 3240, 5, 526, 264, 2, 3239, 3236, 3, 2, 2, 2, 3239, 3240, 3, 2, 2, 2, 3240, 3241, 3, 2, 2, 2, 3241, 3242, 7, 140, 2, 2, 3242, 3247, 5, 188, 95, 2, 3243, 3244, 7, 1024, 2, 2, 3244, 3246, 5, 188, 95, 2, 3245, 3243, 3, 2, 2, 2, 3246, 3249, 3, 2, 2, 2, 3247, 3245, 3, 2, 2, 2, 3247, 3248, 3, 2, 2, 2, 3248, 3252, 3, 2, 2, 2, 3249, 3247, 3, 2, 2, 2, 3250, 3251, 7, 174, 2, 2, 3251, 3253, 5, 604, 303, 2, 3252, 3250, 3, 2, 2, 2, 3252, 3253, 3, 2, 2, 2, 3253, 3255, 3, 2, 2, 2, 3254, 3256, 5, 210, 106, 2, 3255, 3254, 3, 2, 2, 2, 3255, 3256, 3, 2, 2, 2, 3256, 3258, 3, 2, 2, 2, 3257, 3259, 5, 254, 128, 2, 3258, 3257, 3, 2, 2, 2, 3258, 3259, 3, 2, 2, 2, 3259, 207, 3, 2, 2, 2, 3260, 3262, 7, 168, 2, 2, 3261, 3263, 7, 97, 2, 2, 3262, 3261, 3, 2, 2, 2, 3262, 3263, 3, 2, 2, 2, 3263, 3265, 3, 2, 2, 2, 3264, 3266, 7, 72, 2, 2, 3265, 3264, 3, 2, 2, 2, 3265, 3266, 3, 2, 2, 2, 3266, 3267, 3, 2, 2, 2, 3267, 3268, 5, 214, 108, 2, 3268, 3269, 7, 140, 2, 2, 3269, 3274, 5, 188, 95, 2, 3270, 3271, 7, 1024, 2, 2, 3271, 3273, 5, 188, 95, 2, 3272, 3270, 3, 2, 2, 2, 3273, 3276, 3, 2, 2, 2, 3274, 3272, 3, 2, 2, 2, 3274, 3275, 3, 2, 2, 2, 3275, 3279, 3, 2, 2, 2, 3276, 3274, 3, 2, 2, 2, 3277, 3278, 7, 174, 2, 2, 3278, 3280, 5, 604, 303, 2, 3279, 3277, 3, 2, 2, 2, 3279, 3280, 3, 2, 2, 2, 3280, 209, 3, 2, 2, 2, 3281, 3282, 7, 113, 2, 2, 3282, 3283, 7, 18, 2, 2, 3283, 3288, 5, 212, 107, 2, 3284, 3285, 7, 1024, 2, 2, 3285, 3287, 5, 212, 107, 2, 3286, 3284, 3, 2, 2, 2, 3287, 3290, 3, 2, 2, 2, 3288, 3286, 3, 2, 2, 2, 3288, 3289, 3, 2, 2, 2, 3289, 211, 3, 2, 2, 2, 3290, 3288, 3, 2, 2, 2, 3291, 3293, 5, 604, 303, 2, 3292, 3294, 9, 44, 2, 2, 3293, 3292, 3, 2, 2, 2, 3293, 3294, 3, 2, 2, 2, 3294, 213, 3, 2, 2, 2, 3295, 3300, 5, 216, 109, 2, 3296, 3297, 7, 1024, 2, 2, 3297, 3299, 5, 216, 109, 2, 3298, 3296, 3, 2, 2, 2, 3299, 3302, 3, 2, 2, 2, 3300, 3298, 3, 2, 2, 2, 3300, 3301, 3, 2, 2, 2, 3301, 215, 3, 2, 2, 2, 3302, 3300, 3, 2, 2, 2, 3303, 3307, 5, 218, 110, 2, 3304, 3306, 5, 224, 113, 2, 3305, 3304, 3, 2, 2, 2, 3306, 3309, 3, 2, 2, 2, 3307, 3305, 3, 2, 2, 2, 3307, 3308, 3, 2, 2, 2, 3308, 3321, 3, 2, 2, 2, 3309, 3307, 3, 2, 2, 2, 3310, 3311, 7, 1022, 2, 2, 3311, 3315, 5, 218, 110, 2, 3312, 3314, 5, 224, 113, 2, 3313, 3312, 3, 2, 2, 2, 3314, 3317, 3, 2, 2, 2, 3315, 3313, 3, 2, 2, 2, 3315, 3316, 3, 2, 2, 2, 3316, 3318, 3, 2, 2, 2, 3317, 3315, 3, 2, 2, 2, 3318, 3319, 7, 1023, 2, 2, 3319, 3321, 3, 2, 2, 2, 3320, 3303, 3, 2, 2, 2, 3320, 3310, 3, 2, 2, 2, 3321, 217, 3, 2, 2, 2, 3322, 3328, 5, 502, 252, 2, 3323, 3324, 7, 117, 2, 2, 3324, 3325, 7, 1022, 2, 2, 3325, 3326, 5, 558, 280, 2, 3326, 3327, 7, 1023, 2, 2, 3327, 3329, 3, 2, 2, 2, 3328, 3323, 3, 2, 2, 2, 3328, 3329, 3, 2, 2, 2, 3329, 3334, 3, 2, 2, 2, 3330, 3332, 7, 13, 2, 2, 3331, 3330, 3, 2, 2, 2, 3331, 3332, 3, 2, 2, 2, 3332, 3333, 3, 2, 2, 2, 3333, 3335, 5, 526, 264, 2, 3334, 3331, 3, 2, 2, 2, 3334, 3335, 3, 2, 2, 2, 3335, 3344, 3, 2, 2, 2, 3336, 3341, 5, 220, 111, 2, 3337, 3338, 7, 1024, 2, 2, 3338, 3340, 5, 220, 111, 2, 3339, 3337, 3, 2, 2, 2, 3340, 3343, 3, 2, 2, 2, 3341, 3339, 3, 2, 2, 2, 3341, 3342, 3, 2, 2, 2, 3342, 3345, 3, 2, 2, 2, 3343, 3341, 3, 2, 2, 2, 3344, 3336, 3, 2, 2, 2, 3344, 3345, 3, 2, 2, 2, 3345, 3363, 3, 2, 2, 2, 3346, 3352, 5, 182, 92, 2, 3347, 3348, 7, 1022, 2, 2, 3348, 3349, 5, 182, 92, 2, 3349, 3350, 7, 1023, 2, 2, 3350, 3352, 3, 2, 2, 2, 3351, 3346, 3, 2, 2, 2, 3351, 3347, 3, 2, 2, 2, 3352, 3354, 3, 2, 2, 2, 3353, 3355, 7, 13, 2, 2, 3354, 3353, 3, 2, 2, 2, 3354, 3355, 3, 2, 2, 2, 3355, 3356, 3, 2, 2, 2, 3356, 3357, 5, 526, 264, 2, 3357, 3363, 3, 2, 2, 2, 3358, 3359, 7, 1022, 2, 2, 3359, 3360, 5, 214, 108, 2, 3360, 3361, 7, 1023, 2, 2, 3361, 3363, 3, 2, 2, 2, 3362, 3322, 3, 2, 2, 2, 3362, 3351, 3, 2, 2, 2, 3362, 3358, 3, 2, 2, 2, 3363, 219, 3, 2, 2, 2, 3364, 3365, 9, 45, 2, 2, 3365, 3368, 9, 20, 2, 2, 3366, 3367, 7, 60, 2, 2, 3367, 3369, 5, 222, 112, 2, 3368, 3366, 3, 2, 2, 2, 3368, 3369, 3, 2, 2, 2, 3369, 3370, 3, 2, 2, 2, 3370, 3371, 7, 1022, 2, 2, 3371, 3372, 5, 558, 280, 2, 3372, 3373, 7, 1023, 2, 2, 3373, 221, 3, 2, 2, 2, 3374, 3380, 7, 83, 2, 2, 3375, 3376, 7, 113, 2, 2, 3376, 3380, 7, 18, 2, 2, 3377, 3378, 7, 68, 2, 2, 3378, 3380, 7, 18, 2, 2, 3379, 3374, 3, 2, 2, 2, 3379, 3375, 3, 2, 2, 2, 3379, 3377, 3, 2, 2, 2, 3380, 223, 3, 2, 2, 2, 3381, 3383, 9, 46, 2, 2, 3382, 3381, 3, 2, 2, 2, 3382, 3383, 3, 2, 2, 2, 3383, 3384, 3, 2, 2, 2, 3384, 3385, 7, 83, 2, 2, 3385, 3393, 5, 218, 110, 2, 3386, 3387, 7, 108, 2, 2, 3387, 3394, 5, 604, 303, 2, 3388, 3389, 7, 171, 2, 2, 3389, 3390, 7, 1022, 2, 2, 3390, 3391, 5, 558, 280, 2, 3391, 3392, 7, 1023, 2, 2, 3392, 3394, 3, 2, 2, 2, 3393, 3386, 3, 2, 2, 2, 3393, 3388, 3, 2, 2, 2, 3393, 3394, 3, 2, 2, 2, 3394, 3426, 3, 2, 2, 2, 3395, 3396, 7, 155, 2, 2, 3396, 3399, 5, 218, 110, 2, 3397, 3398, 7, 108, 2, 2, 3398, 3400, 5, 604, 303, 2, 3399, 3397, 3, 2, 2, 2, 3399, 3400, 3, 2, 2, 2, 3400, 3426, 3, 2, 2, 2, 3401, 3403, 9, 47, 2, 2, 3402, 3404, 7, 115, 2, 2, 3403, 3402, 3, 2, 2, 2, 3403, 3404, 3, 2, 2, 2, 3404, 3405, 3, 2, 2, 2, 3405, 3406, 7, 83, 2, 2, 3406, 3414, 5, 218, 110, 2, 3407, 3408, 7, 108, 2, 2, 3408, 3415, 5, 604, 303, 2, 3409, 3410, 7, 171, 2, 2, 3410, 3411, 7, 1022, 2, 2, 3411, 3412, 5, 558, 280, 2, 3412, 3413, 7, 1023, 2, 2, 3413, 3415, 3, 2, 2, 2, 3414, 3407, 3, 2, 2, 2, 3414, 3409, 3, 2, 2, 2, 3415, 3426, 3, 2, 2, 2, 3416, 3421, 7, 103, 2, 2, 3417, 3419, 9, 47, 2, 2, 3418, 3420, 7, 115, 2, 2, 3419, 3418, 3, 2, 2, 2, 3419, 3420, 3, 2, 2, 2, 3420, 3422, 3, 2, 2, 2, 3421, 3417, 3, 2, 2, 2, 3421, 3422, 3, 2, 2, 2, 3422, 3423, 3, 2, 2, 2, 3423, 3424, 7, 83, 2, 2, 3424, 3426, 5, 218, 110, 2, 3425, 3382, 3, 2, 2, 2, 3425, 3395, 3, 2, 2, 2, 3425, 3401, 3, 2, 2, 2, 3425, 3416, 3, 2, 2, 2, 3426, 225, 3, 2, 2, 2, 3427, 3428, 7, 1022, 2, 2, 3428, 3429, 5, 230, 116, 2, 3429, 3430, 7, 1023, 2, 2, 3430, 3436, 3, 2, 2, 2, 3431, 3432, 7, 1022, 2, 2, 3432, 3433, 5, 226, 114, 2, 3433, 3434, 7, 1023, 2, 2, 3434, 3436, 3, 2, 2, 2, 3435, 3427, 3, 2, 2, 2, 3435, 3431, 3, 2, 2, 2, 3436, 227, 3, 2, 2, 2, 3437, 3438, 7, 1022, 2, 2, 3438, 3439, 5, 232, 117, 2, 3439, 3440, 7, 1023, 2, 2, 3440, 3446, 3, 2, 2, 2, 3441, 3442, 7, 1022, 2, 2, 3442, 3443, 5, 228, 115, 2, 3443, 3444, 7, 1023, 2, 2, 3444, 3446, 3, 2, 2, 2, 3445, 3437, 3, 2, 2, 2, 3445, 3441, 3, 2, 2, 2, 3446, 229, 3, 2, 2, 2, 3447, 3451, 7, 139, 2, 2, 3448, 3450, 5, 238, 120, 2, 3449, 3448, 3, 2, 2, 2, 3450, 3453, 3, 2, 2, 2, 3451, 3449, 3, 2, 2, 2, 3451, 3452, 3, 2, 2, 2, 3452, 3454, 3, 2, 2, 2, 3453, 3451, 3, 2, 2, 2, 3454, 3456, 5, 240, 121, 2, 3455, 3457, 5, 244, 123, 2, 3456, 3455, 3, 2, 2, 2, 3456, 3457, 3, 2, 2, 2, 3457, 3459, 3, 2, 2, 2, 3458, 3460, 5, 250, 126, 2, 3459, 3458, 3, 2, 2, 2, 3459, 3460, 3, 2, 2, 2, 3460, 3462, 3, 2, 2, 2, 3461, 3463, 5, 210, 106, 2, 3462, 3461, 3, 2, 2, 2, 3462, 3463, 3, 2, 2, 2, 3463, 3465, 3, 2, 2, 2, 3464, 3466, 5, 254, 128, 2, 3465, 3464, 3, 2, 2, 2, 3465, 3466, 3, 2, 2, 2, 3466, 3488, 3, 2, 2, 2, 3467, 3471, 7, 139, 2, 2, 3468, 3470, 5, 238, 120, 2, 3469, 3468, 3, 2, 2, 2, 3470, 3473, 3, 2, 2, 2, 3471, 3469, 3, 2, 2, 2, 3471, 3472, 3, 2, 2, 2, 3472, 3474, 3, 2, 2, 2, 3473, 3471, 3, 2, 2, 2, 3474, 3476, 5, 240, 121, 2, 3475, 3477, 5, 250, 126, 2, 3476, 3475, 3, 2, 2, 2, 3476, 3477, 3, 2, 2, 2, 3477, 3479, 3, 2, 2, 2, 3478, 3480, 5, 210, 106, 2, 3479, 3478, 3, 2, 2, 2, 3479, 3480, 3, 2, 2, 2, 3480, 3482, 3, 2, 2, 2, 3481, 3483, 5, 254, 128, 2, 3482, 3481, 3, 2, 2, 2, 3482, 3483, 3, 2, 2, 2, 3483, 3485, 3, 2, 2, 2, 3484, 3486, 5, 244, 123, 2, 3485, 3484, 3, 2, 2, 2, 3485, 3486, 3, 2, 2, 2, 3486, 3488, 3, 2, 2, 2, 3487, 3447, 3, 2, 2, 2, 3487, 3467, 3, 2, 2, 2, 3488, 231, 3, 2, 2, 2, 3489, 3493, 7, 139, 2, 2, 3490, 3492, 5, 238, 120, 2, 3491, 3490, 3, 2, 2, 2, 3492, 3495, 3, 2, 2, 2, 3493, 3491, 3, 2, 2, 2, 3493, 3494, 3, 2, 2, 2, 3494, 3496, 3, 2, 2, 2, 3495, 3493, 3, 2, 2, 2, 3496, 3498, 5, 240, 121, 2, 3497, 3499, 5, 250, 126, 2, 3498, 3497, 3, 2, 2, 2, 3498, 3499, 3, 2, 2, 2, 3499, 3501, 3, 2, 2, 2, 3500, 3502, 5, 210, 106, 2, 3501, 3500, 3, 2, 2, 2, 3501, 3502, 3, 2, 2, 2, 3502, 3504, 3, 2, 2, 2, 3503, 3505, 5, 254, 128, 2, 3504, 3503, 3, 2, 2, 2, 3504, 3505, 3, 2, 2, 2, 3505, 233, 3, 2, 2, 2, 3506, 3508, 7, 164, 2, 2, 3507, 3509, 9, 40, 2, 2, 3508, 3507, 3, 2, 2, 2, 3508, 3509, 3, 2, 2, 2, 3509, 3510, 3, 2, 2, 2, 3510, 3511, 5, 228, 115, 2, 3511, 235, 3, 2, 2, 2, 3512, 3514, 7, 164, 2, 2, 3513, 3515, 9, 40, 2, 2, 3514, 3513, 3, 2, 2, 2, 3514, 3515, 3, 2, 2, 2, 3515, 3518, 3, 2, 2, 2, 3516, 3519, 5, 232, 117, 2, 3517, 3519, 5, 228, 115, 2, 3518, 3516, 3, 2, 2, 2, 3518, 3517, 3, 2, 2, 2, 3519, 237, 3, 2, 2, 2, 3520, 3529, 9, 48, 2, 2, 3521, 3529, 7, 70, 2, 2, 3522, 3529, 7, 155, 2, 2, 3523, 3529, 7, 151, 2, 2, 3524, 3529, 7, 149, 2, 2, 3525, 3529, 7, 536, 2, 2, 3526, 3529, 9, 49, 2, 2, 3527, 3529, 7, 150, 2, 2, 3528, 3520, 3, 2, 2, 2, 3528, 3521, 3, 2, 2, 2, 3528, 3522, 3, 2, 2, 2, 3528, 3523, 3, 2, 2, 2, 3528, 3524, 3, 2, 2, 2, 3528, 3525, 3, 2, 2, 2, 3528, 3526, 3, 2, 2, 2, 3528, 3527, 3, 2, 2, 2, 3529, 239, 3, 2, 2, 2, 3530, 3533, 7, 1005, 2, 2, 3531, 3533, 5, 242, 122, 2, 3532, 3530, 3, 2, 2, 2, 3532, 3531, 3, 2, 2, 2, 3533, 3538, 3, 2, 2, 2, 3534, 3535, 7, 1024, 2, 2, 3535, 3537, 5, 242, 122, 2, 3536, 3534, 3, 2, 2, 2, 3537, 3540, 3, 2, 2, 2, 3538, 3536, 3, 2, 2, 2, 3538, 3539, 3, 2, 2, 2, 3539, 241, 3, 2, 2, 2, 3540, 3538, 3, 2, 2, 2, 3541, 3542, 5, 500, 251, 2, 3542, 3543, 7, 1021, 2, 2, 3543, 3544, 7, 1005, 2, 2, 3544, 3571, 3, 2, 2, 2, 3545, 3550, 5, 504, 253, 2, 3546, 3548, 7, 13, 2, 2, 3547, 3546, 3, 2, 2, 2, 3547, 3548, 3, 2, 2, 2, 3548, 3549, 3, 2, 2, 2, 3549, 3551, 5, 526, 264, 2, 3550, 3547, 3, 2, 2, 2, 3550, 3551, 3, 2, 2, 2, 3551, 3571, 3, 2, 2, 2, 3552, 3557, 5, 584, 293, 2, 3553, 3555, 7, 13, 2, 2, 3554, 3553, 3, 2, 2, 2, 3554, 3555, 3, 2, 2, 2, 3555, 3556, 3, 2, 2, 2, 3556, 3558, 5, 526, 264, 2, 3557, 3554, 3, 2, 2, 2, 3557, 3558, 3, 2, 2, 2, 3558, 3571, 3, 2, 2, 2, 3559, 3560, 7, 1048, 2, 2, 3560, 3562, 7, 996, 2, 2, 3561, 3559, 3, 2, 2, 2, 3561, 3562, 3, 2, 2, 2, 3562, 3563, 3, 2, 2, 2, 3563, 3568, 5, 604, 303, 2, 3564, 3566, 7, 13, 2, 2, 3565, 3564, 3, 2, 2, 2, 3565, 3566, 3, 2, 2, 2, 3566, 3567, 3, 2, 2, 2, 3567, 3569, 5, 526, 264, 2, 3568, 3565, 3, 2, 2, 2, 3568, 3569, 3, 2, 2, 2, 3569, 3571, 3, 2, 2, 2, 3570, 3541, 3, 2, 2, 2, 3570, 3545, 3, 2, 2, 2, 3570, 3552, 3, 2, 2, 2, 3570, 3561, 3, 2, 2, 2, 3571, 243, 3, 2, 2, 2, 3572, 3573, 7, 80, 2, 2, 3573, 3578, 5, 190, 96, 2, 3574, 3575, 7, 1024, 2, 2, 3575, 3577, 5, 190, 96, 2, 3576, 3574, 3, 2, 2, 2, 3577, 3580, 3, 2, 2, 2, 3578, 3576, 3, 2, 2, 2, 3578, 3579, 3, 2, 2, 2, 3579, 3609, 3, 2, 2, 2, 3580, 3578, 3, 2, 2, 2, 3581, 3582, 7, 80, 2, 2, 3582, 3583, 7, 337, 2, 2, 3583, 3609, 7, 1037, 2, 2, 3584, 3585, 7, 80, 2, 2, 3585, 3586, 7, 116, 2, 2, 3586, 3590, 7, 1037, 2, 2, 3587, 3588, 7, 24, 2, 2, 3588, 3589, 7, 140, 2, 2, 3589, 3591, 5, 512, 257, 2, 3590, 3587, 3, 2, 2, 2, 3590, 3591, 3, 2, 2, 2, 3591, 3598, 3, 2, 2, 2, 3592, 3594, 9, 37, 2, 2, 3593, 3595, 5, 246, 124, 2, 3594, 3593, 3, 2, 2, 2, 3595, 3596, 3, 2, 2, 2, 3596, 3594, 3, 2, 2, 2, 3596, 3597, 3, 2, 2, 2, 3597, 3599, 3, 2, 2, 2, 3598, 3592, 3, 2, 2, 2, 3598, 3599, 3, 2, 2, 2, 3599, 3606, 3, 2, 2, 2, 3600, 3602, 7, 93, 2, 2, 3601, 3603, 5, 248, 125, 2, 3602, 3601, 3, 2, 2, 2, 3603, 3604, 3, 2, 2, 2, 3604, 3602, 3, 2, 2, 2, 3604, 3605, 3, 2, 2, 2, 3605, 3607, 3, 2, 2, 2, 3606, 3600, 3, 2, 2, 2, 3606, 3607, 3, 2, 2, 2, 3607, 3609, 3, 2, 2, 2, 3608, 3572, 3, 2, 2, 2, 3608, 3581, 3, 2, 2, 2, 3608, 3584, 3, 2, 2, 2, 3609, 245, 3, 2, 2, 2, 3610, 3611, 7, 157, 2, 2, 3611, 3612, 7, 18, 2, 2, 3612, 3623, 7, 1037, 2, 2, 3613, 3615, 7, 111, 2, 2, 3614, 3613, 3, 2, 2, 2, 3614, 3615, 3, 2, 2, 2, 3615, 3616, 3, 2, 2, 2, 3616, 3617, 7, 53, 2, 2, 3617, 3618, 7, 18, 2, 2, 3618, 3623, 7, 1037, 2, 2, 3619, 3620, 7, 54, 2, 2, 3620, 3621, 7, 18, 2, 2, 3621, 3623, 7, 1037, 2, 2, 3622, 3610, 3, 2, 2, 2, 3622, 3614, 3, 2, 2, 2, 3622, 3619, 3, 2, 2, 2, 3623, 247, 3, 2, 2, 2, 3624, 3625, 7, 154, 2, 2, 3625, 3626, 7, 18, 2, 2, 3626, 3631, 7, 1037, 2, 2, 3627, 3628, 7, 157, 2, 2, 3628, 3629, 7, 18, 2, 2, 3629, 3631, 7, 1037, 2, 2, 3630, 3624, 3, 2, 2, 2, 3630, 3627, 3, 2, 2, 2, 3631, 249, 3, 2, 2, 2, 3632, 3633, 7, 63, 2, 2, 3633, 3636, 5, 214, 108, 2, 3634, 3635, 7, 174, 2, 2, 3635, 3637, 5, 604, 303, 2, 3636, 3634, 3, 2, 2, 2, 3636, 3637, 3, 2, 2, 2, 3637, 3652, 3, 2, 2, 2, 3638, 3639, 7, 68, 2, 2, 3639, 3640, 7, 18, 2, 2, 3640, 3645, 5, 252, 127, 2, 3641, 3642, 7, 1024, 2, 2, 3642, 3644, 5, 252, 127, 2, 3643, 3641, 3, 2, 2, 2, 3644, 3647, 3, 2, 2, 2, 3645, 3643, 3, 2, 2, 2, 3645, 3646, 3, 2, 2, 2, 3646, 3650, 3, 2, 2, 2, 3647, 3645, 3, 2, 2, 2, 3648, 3649, 7, 176, 2, 2, 3649, 3651, 7, 511, 2, 2, 3650, 3648, 3, 2, 2, 2, 3650, 3651, 3, 2, 2, 2, 3651, 3653, 3, 2, 2, 2, 3652, 3638, 3, 2, 2, 2, 3652, 3653, 3, 2, 2, 2, 3653, 3656, 3, 2, 2, 2, 3654, 3655, 7, 69, 2, 2, 3655, 3657, 5, 604, 303, 2, 3656, 3654, 3, 2, 2, 2, 3656, 3657, 3, 2, 2, 2, 3657, 251, 3, 2, 2, 2, 3658, 3660, 5, 604, 303, 2, 3659, 3661, 9, 44, 2, 2, 3660, 3659, 3, 2, 2, 2, 3660, 3661, 3, 2, 2, 2, 3661, 253, 3, 2, 2, 2, 3662, 3673, 7, 91, 2, 2, 3663, 3664, 5, 256, 129, 2, 3664, 3665, 7, 1024, 2, 2, 3665, 3667, 3, 2, 2, 2, 3666, 3663, 3, 2, 2, 2, 3666, 3667, 3, 2, 2, 2, 3667, 3668, 3, 2, 2, 2, 3668, 3674, 5, 256, 129, 2, 3669, 3670, 5, 256, 129, 2, 3670, 3671, 7, 454, 2, 2, 3671, 3672, 5, 256, 129, 2, 3672, 3674, 3, 2, 2, 2, 3673, 3666, 3, 2, 2, 2, 3673, 3669, 3, 2, 2, 2, 3674, 255, 3, 2, 2, 2, 3675, 3678, 5, 532, 267, 2, 3676, 3678, 5, 510, 256, 2, 3677, 3675, 3, 2, 2, 2, 3677, 3676, 3, 2, 2, 2, 3678, 257, 3, 2, 2, 2, 3679, 3680, 7, 540, 2, 2, 3680, 3689, 7, 563, 2, 2, 3681, 3686, 5, 280, 141, 2, 3682, 3683, 7, 1024, 2, 2, 3683, 3685, 5, 280, 141, 2, 3684, 3682, 3, 2, 2, 2, 3685, 3688, 3, 2, 2, 2, 3686, 3684, 3, 2, 2, 2, 3686, 3687, 3, 2, 2, 2, 3687, 3690, 3, 2, 2, 2, 3688, 3686, 3, 2, 2, 2, 3689, 3681, 3, 2, 2, 2, 3689, 3690, 3, 2, 2, 2, 3690, 259, 3, 2, 2, 2, 3691, 3693, 7, 284, 2, 2, 3692, 3694, 7, 586, 2, 2, 3693, 3692, 3, 2, 2, 2, 3693, 3694, 3, 2, 2, 2, 3694, 261, 3, 2, 2, 2, 3695, 3697, 7, 308, 2, 2, 3696, 3698, 7, 586, 2, 2, 3697, 3696, 3, 2, 2, 2, 3697, 3698, 3, 2, 2, 2, 3698, 3704, 3, 2, 2, 2, 3699, 3701, 7, 12, 2, 2, 3700, 3702, 7, 450, 2, 2, 3701, 3700, 3, 2, 2, 2, 3701, 3702, 3, 2, 2, 2, 3702, 3703, 3, 2, 2, 2, 3703, 3705, 7, 293, 2, 2, 3704, 3699, 3, 2, 2, 2, 3704, 3705, 3, 2, 2, 2, 3705, 3710, 3, 2, 2, 2, 3706, 3708, 7, 450, 2, 2, 3707, 3706, 3, 2, 2, 2, 3707, 3708, 3, 2, 2, 2, 3708, 3709, 3, 2, 2, 2, 3709, 3711, 7, 126, 2, 2, 3710, 3707, 3, 2, 2, 2, 3710, 3711, 3, 2, 2, 2, 3711, 263, 3, 2, 2, 2, 3712, 3714, 7, 510, 2, 2, 3713, 3715, 7, 586, 2, 2, 3714, 3713, 3, 2, 2, 2, 3714, 3715, 3, 2, 2, 2, 3715, 3721, 3, 2, 2, 2, 3716, 3718, 7, 12, 2, 2, 3717, 3719, 7, 450, 2, 2, 3718, 3717, 3, 2, 2, 2, 3718, 3719, 3, 2, 2, 2, 3719, 3720, 3, 2, 2, 2, 3720, 3722, 7, 293, 2, 2, 3721, 3716, 3, 2, 2, 2, 3721, 3722, 3, 2, 2, 2, 3722, 3727, 3, 2, 2, 2, 3723, 3725, 7, 450, 2, 2, 3724, 3723, 3, 2, 2, 2, 3724, 3725, 3, 2, 2, 2, 3725, 3726, 3, 2, 2, 2, 3726, 3728, 7, 126, 2, 2, 3727, 3724, 3, 2, 2, 2, 3727, 3728, 3, 2, 2, 2, 3728, 265, 3, 2, 2, 2, 3729, 3730, 7, 516, 2, 2, 3730, 3731, 5, 526, 264, 2, 3731, 267, 3, 2, 2, 2, 3732, 3734, 7, 510, 2, 2, 3733, 3735, 7, 586, 2, 2, 3734, 3733, 3, 2, 2, 2, 3734, 3735, 3, 2, 2, 2, 3735, 3736, 3, 2, 2, 2, 3736, 3738, 7, 159, 2, 2, 3737, 3739, 7, 516, 2, 2, 3738, 3737, 3, 2, 2, 2, 3738, 3739, 3, 2, 2, 2, 3739, 3740, 3, 2, 2, 2, 3740, 3741, 5, 526, 264, 2, 3741, 269, 3, 2, 2, 2, 3742, 3743, 7, 126, 2, 2, 3743, 3744, 7, 516, 2, 2, 3744, 3745, 5, 526, 264, 2, 3745, 271, 3, 2, 2, 2, 3746, 3747, 7, 95, 2, 2, 3747, 3748, 7, 604, 2, 2, 3748, 3753, 5, 282, 142, 2, 3749, 3750, 7, 1024, 2, 2, 3750, 3752, 5, 282, 142, 2, 3751, 3749, 3, 2, 2, 2, 3752, 3755, 3, 2, 2, 2, 3753, 3751, 3, 2, 2, 2, 3753, 3754, 3, 2, 2, 2, 3754, 273, 3, 2, 2, 2, 3755, 3753, 3, 2, 2, 2, 3756, 3757, 7, 166, 2, 2, 3757, 3758, 7, 604, 2, 2, 3758, 275, 3, 2, 2, 2, 3759, 3760, 7, 140, 2, 2, 3760, 3761, 7, 280, 2, 2, 3761, 3762, 7, 1013, 2, 2, 3762, 3763, 9, 24, 2, 2, 3763, 277, 3, 2, 2, 2, 3764, 3766, 7, 140, 2, 2, 3765, 3767, 9, 50, 2, 2, 3766, 3765, 3, 2, 2, 2, 3766, 3767, 3, 2, 2, 2, 3767, 3768, 3, 2, 2, 2, 3768, 3769, 7, 563, 2, 2, 3769, 3774, 5, 286, 144, 2, 3770, 3771, 7, 1024, 2, 2, 3771, 3773, 5, 286, 144, 2, 3772, 3770, 3, 2, 2, 2, 3773, 3776, 3, 2, 2, 2, 3774, 3772, 3, 2, 2, 2, 3774, 3775, 3, 2, 2, 2, 3775, 279, 3, 2, 2, 2, 3776, 3774, 3, 2, 2, 2, 3777, 3778, 7, 176, 2, 2, 3778, 3779, 7, 315, 2, 2, 3779, 3785, 7, 527, 2, 2, 3780, 3781, 7, 122, 2, 2, 3781, 3785, 7, 177, 2, 2, 3782, 3783, 7, 122, 2, 2, 3783, 3785, 7, 459, 2, 2, 3784, 3777, 3, 2, 2, 2, 3784, 3780, 3, 2, 2, 2, 3784, 3782, 3, 2, 2, 2, 3785, 281, 3, 2, 2, 2, 3786, 3791, 5, 502, 252, 2, 3787, 3789, 7, 13, 2, 2, 3788, 3787, 3, 2, 2, 2, 3788, 3789, 3, 2, 2, 2, 3789, 3790, 3, 2, 2, 2, 3790, 3792, 5, 526, 264, 2, 3791, 3788, 3, 2, 2, 2, 3791, 3792, 3, 2, 2, 2, 3792, 3793, 3, 2, 2, 2, 3793, 3794, 5, 284, 143, 2, 3794, 283, 3, 2, 2, 2, 3795, 3797, 7, 122, 2, 2, 3796, 3798, 7, 404, 2, 2, 3797, 3796, 3, 2, 2, 2, 3797, 3798, 3, 2, 2, 2, 3798, 3804, 3, 2, 2, 2, 3799, 3801, 7, 97, 2, 2, 3800, 3799, 3, 2, 2, 2, 3800, 3801, 3, 2, 2, 2, 3801, 3802, 3, 2, 2, 2, 3802, 3804, 7, 177, 2, 2, 3803, 3795, 3, 2, 2, 2, 3803, 3800, 3, 2, 2, 2, 3804, 285, 3, 2, 2, 2, 3805, 3806, 7, 394, 2, 2, 3806, 3807, 7, 402, 2, 2, 3807, 3813, 5, 288, 145, 2, 3808, 3809, 7, 122, 2, 2, 3809, 3813, 7, 177, 2, 2, 3810, 3811, 7, 122, 2, 2, 3811, 3813, 7, 459, 2, 2, 3812, 3805, 3, 2, 2, 2, 3812, 3808, 3, 2, 2, 2, 3812, 3810, 3, 2, 2, 2, 3813, 287, 3, 2, 2, 2, 3814, 3815, 7, 691, 2, 2, 3815, 3822, 7, 122, 2, 2, 3816, 3817, 7, 122, 2, 2, 3817, 3822, 7, 692, 2, 2, 3818, 3819, 7, 122, 2, 2, 3819, 3822, 7, 693, 2, 2, 3820, 3822, 7, 694, 2, 2, 3821, 3814, 3, 2, 2, 2, 3821, 3816, 3, 2, 2, 2, 3821, 3818, 3, 2, 2, 2, 3821, 3820, 3, 2, 2, 2, 3822, 289, 3, 2, 2, 2, 3823, 3824, 7, 23, 2, 2, 3824, 3825, 7, 407, 2, 2, 3825, 3826, 7, 159, 2, 2, 3826, 3831, 5, 308, 155, 2, 3827, 3828, 7, 1024, 2, 2, 3828, 3830, 5, 308, 155, 2, 3829, 3827, 3, 2, 2, 2, 3830, 3833, 3, 2, 2, 2, 3831, 3829, 3, 2, 2, 2, 3831, 3832, 3, 2, 2, 2, 3832, 3835, 3, 2, 2, 2, 3833, 3831, 3, 2, 2, 2, 3834, 3836, 5, 316, 159, 2, 3835, 3834, 3, 2, 2, 2, 3835, 3836, 3, 2, 2, 2, 3836, 291, 3, 2, 2, 2, 3837, 3838, 7, 23, 2, 2, 3838, 3839, 7, 504, 2, 2, 3839, 3840, 7, 363, 2, 2, 3840, 3845, 5, 318, 160, 2, 3841, 3842, 7, 1024, 2, 2, 3842, 3844, 5, 318, 160, 2, 3843, 3841, 3, 2, 2, 2, 3844, 3847, 3, 2, 2, 2, 3845, 3843, 3, 2, 2, 2, 3845, 3846, 3, 2, 2, 2, 3846, 293, 3, 2, 2, 2, 3847, 3845, 3, 2, 2, 2, 3848, 3849, 7, 120, 2, 2, 3849, 3850, 9, 51, 2, 2, 3850, 3855, 7, 406, 2, 2, 3851, 3852, 7, 159, 2, 2, 3852, 3856, 7, 1037, 2, 2, 3853, 3854, 7, 15, 2, 2, 3854, 3856, 7, 1037, 2, 2, 3855, 3851, 3, 2, 2, 2, 3855, 3853, 3, 2, 2, 2, 3856, 295, 3, 2, 2, 2, 3857, 3858, 7, 505, 2, 2, 3858, 3859, 7, 407, 2, 2, 3859, 297, 3, 2, 2, 2, 3860, 3861, 7, 505, 2, 2, 3861, 3863, 7, 525, 2, 2, 3862, 3864, 7, 8, 2, 2, 3863, 3862, 3, 2, 2, 2, 3863, 3864, 3, 2, 2, 2, 3864, 3866, 3, 2, 2, 2, 3865, 3867, 5, 316, 159, 2, 3866, 3865, 3, 2, 2, 2, 3866, 3867, 3, 2, 2, 2, 3867, 299, 3, 2, 2, 2, 3868, 3869, 7, 540, 2, 2, 3869, 3878, 7, 525, 2, 2, 3870, 3875, 5, 322, 162, 2, 3871, 3872, 7, 1024, 2, 2, 3872, 3874, 5, 322, 162, 2, 3873, 3871, 3, 2, 2, 2, 3874, 3877, 3, 2, 2, 2, 3875, 3873, 3, 2, 2, 2, 3875, 3876, 3, 2, 2, 2, 3876, 3879, 3, 2, 2, 2, 3877, 3875, 3, 2, 2, 2, 3878, 3870, 3, 2, 2, 2, 3878, 3879, 3, 2, 2, 2, 3879, 3882, 3, 2, 2, 2, 3880, 3881, 7, 572, 2, 2, 3881, 3883, 5, 324, 163, 2, 3882, 3880, 3, 2, 2, 2, 3882, 3883, 3, 2, 2, 2, 3883, 3887, 3, 2, 2, 2, 3884, 3886, 5, 326, 164, 2, 3885, 3884, 3, 2, 2, 2, 3886, 3889, 3, 2, 2, 2, 3887, 3885, 3, 2, 2, 2, 3887, 3888, 3, 2, 2, 2, 3888, 3891, 3, 2, 2, 2, 3889, 3887, 3, 2, 2, 2, 3890, 3892, 5, 316, 159, 2, 3891, 3890, 3, 2, 2, 2, 3891, 3892, 3, 2, 2, 2, 3892, 301, 3, 2, 2, 2, 3893, 3894, 7, 546, 2, 2, 3894, 3903, 7, 525, 2, 2, 3895, 3900, 5, 322, 162, 2, 3896, 3897, 7, 1024, 2, 2, 3897, 3899, 5, 322, 162, 2, 3898, 3896, 3, 2, 2, 2, 3899, 3902, 3, 2, 2, 2, 3900, 3898, 3, 2, 2, 2, 3900, 3901, 3, 2, 2, 2, 3901, 3904, 3, 2, 2, 2, 3902, 3900, 3, 2, 2, 2, 3903, 3895, 3, 2, 2, 2, 3903, 3904, 3, 2, 2, 2, 3904, 303, 3, 2, 2, 2, 3905, 3906, 7, 540, 2, 2, 3906, 3907, 7, 374, 2, 2, 3907, 305, 3, 2, 2, 2, 3908, 3909, 7, 546, 2, 2, 3909, 3910, 7, 374, 2, 2, 3910, 307, 3, 2, 2, 2, 3911, 3912, 5, 310, 156, 2, 3912, 3913, 7, 1013, 2, 2, 3913, 3914, 7, 1037, 2, 2, 3914, 3941, 3, 2, 2, 2, 3915, 3916, 5, 312, 157, 2, 3916, 3917, 7, 1013, 2, 2, 3917, 3918, 5, 532, 267, 2, 3918, 3941, 3, 2, 2, 2, 3919, 3920, 5, 314, 158, 2, 3920, 3921, 7, 1013, 2, 2, 3921, 3922, 9, 24, 2, 2, 3922, 3941, 3, 2, 2, 2, 3923, 3924, 7, 411, 2, 2, 3924, 3925, 7, 1013, 2, 2, 3925, 3941, 7, 1040, 2, 2, 3926, 3927, 7, 381, 2, 2, 3927, 3928, 7, 1013, 2, 2, 3928, 3937, 7, 1022, 2, 2, 3929, 3934, 5, 526, 264, 2, 3930, 3931, 7, 1024, 2, 2, 3931, 3933, 5, 526, 264, 2, 3932, 3930, 3, 2, 2, 2, 3933, 3936, 3, 2, 2, 2, 3934, 3932, 3, 2, 2, 2, 3934, 3935, 3, 2, 2, 2, 3935, 3938, 3, 2, 2, 2, 3936, 3934, 3, 2, 2, 2, 3937, 3929, 3, 2, 2, 2, 3937, 3938, 3, 2, 2, 2, 3938, 3939, 3, 2, 2, 2, 3939, 3941, 7, 1023, 2, 2, 3940, 3911, 3, 2, 2, 2, 3940, 3915, 3, 2, 2, 2, 3940, 3919, 3, 2, 2, 2, 3940, 3923, 3, 2, 2, 2, 3940, 3926, 3, 2, 2, 2, 3941, 309, 3, 2, 2, 2, 3942, 3943, 9, 52, 2, 2, 3943, 311, 3, 2, 2, 2, 3944, 3945, 9, 53, 2, 2, 3945, 313, 3, 2, 2, 2, 3946, 3947, 9, 54, 2, 2, 3947, 315, 3, 2, 2, 2, 3948, 3949, 7, 60, 2, 2, 3949, 3950, 7, 295, 2, 2, 3950, 3951, 7, 1037, 2, 2, 3951, 317, 3, 2, 2, 2, 3952, 3953, 7, 497, 2, 2, 3953, 3954, 7, 1013, 2, 2, 3954, 3955, 7, 1022, 2, 2, 3955, 3956, 5, 558, 280, 2, 3956, 3957, 7, 1023, 2, 2, 3957, 4002, 3, 2, 2, 2, 3958, 3959, 7, 499, 2, 2, 3959, 3960, 7, 1013, 2, 2, 3960, 3961, 7, 1022, 2, 2, 3961, 3962, 5, 558, 280, 2, 3962, 3963, 7, 1023, 2, 2, 3963, 4002, 3, 2, 2, 2, 3964, 3965, 7, 498, 2, 2, 3965, 3966, 7, 1013, 2, 2, 3966, 3967, 7, 1022, 2, 2, 3967, 3968, 5, 560, 281, 2, 3968, 3969, 7, 1023, 2, 2, 3969, 4002, 3, 2, 2, 2, 3970, 3971, 7, 500, 2, 2, 3971, 3972, 7, 1013, 2, 2, 3972, 3973, 7, 1022, 2, 2, 3973, 3974, 5, 560, 281, 2, 3974, 3975, 7, 1023, 2, 2, 3975, 4002, 3, 2, 2, 2, 3976, 3977, 7, 502, 2, 2, 3977, 3978, 7, 1013, 2, 2, 3978, 3979, 7, 1022, 2, 2, 3979, 3980, 5, 570, 286, 2, 3980, 3981, 7, 1023, 2, 2, 3981, 4002, 3, 2, 2, 2, 3982, 3983, 7, 503, 2, 2, 3983, 3984, 7, 1013, 2, 2, 3984, 3985, 7, 1022, 2, 2, 3985, 3986, 5, 570, 286, 2, 3986, 3987, 7, 1023, 2, 2, 3987, 4002, 3, 2, 2, 2, 3988, 3989, 7, 501, 2, 2, 3989, 3990, 7, 1013, 2, 2, 3990, 3991, 7, 1022, 2, 2, 3991, 3996, 5, 320, 161, 2, 3992, 3993, 7, 1024, 2, 2, 3993, 3995, 5, 320, 161, 2, 3994, 3992, 3, 2, 2, 2, 3995, 3998, 3, 2, 2, 2, 3996, 3994, 3, 2, 2, 2, 3996, 3997, 3, 2, 2, 2, 3997, 3999, 3, 2, 2, 2, 3998, 3996, 3, 2, 2, 2, 3999, 4000, 7, 1023, 2, 2, 4000, 4002, 3, 2, 2, 2, 4001, 3952, 3, 2, 2, 2, 4001, 3958, 3, 2, 2, 2, 4001, 3964, 3, 2, 2, 2, 4001, 3970, 3, 2, 2, 2, 4001, 3976, 3, 2, 2, 2, 4001, 3982, 3, 2, 2, 2, 4001, 3988, 3, 2, 2, 2, 4002, 319, 3, 2, 2, 2, 4003, 4004, 7, 1022, 2, 2, 4004, 4005, 5, 502, 252, 2, 4005, 4006, 7, 1024, 2, 2, 4006, 4007, 5, 502, 252, 2, 4007, 4008, 7, 1023, 2, 2, 4008, 321, 3, 2, 2, 2, 4009, 4010, 9, 55, 2, 2, 4010, 323, 3, 2, 2, 2, 4011, 4012, 9, 56, 2, 2, 4012, 4013, 7, 1013, 2, 2, 4013, 4030, 5, 328, 165, 2, 4014, 4015, 7, 413, 2, 2, 4015, 4016, 7, 1013, 2, 2, 4016, 4017, 7, 1037, 2, 2, 4017, 4018, 7, 1024, 2, 2, 4018, 4019, 7, 414, 2, 2, 4019, 4020, 7, 1013, 2, 2, 4020, 4030, 5, 532, 267, 2, 4021, 4022, 7, 491, 2, 2, 4022, 4023, 7, 1013, 2, 2, 4023, 4024, 7, 1037, 2, 2, 4024, 4025, 7, 1024, 2, 2, 4025, 4026, 7, 492, 2, 2, 4026, 4027, 7, 1013, 2, 2, 4027, 4030, 5, 532, 267, 2, 4028, 4030, 7, 534, 2, 2, 4029, 4011, 3, 2, 2, 2, 4029, 4014, 3, 2, 2, 2, 4029, 4021, 3, 2, 2, 2, 4029, 4028, 3, 2, 2, 2, 4030, 325, 3, 2, 2, 2, 4031, 4032, 7, 574, 2, 2, 4032, 4033, 7, 1013, 2, 2, 4033, 4044, 7, 1037, 2, 2, 4034, 4035, 7, 470, 2, 2, 4035, 4036, 7, 1013, 2, 2, 4036, 4044, 7, 1037, 2, 2, 4037, 4038, 7, 328, 2, 2, 4038, 4039, 7, 1013, 2, 2, 4039, 4044, 7, 1037, 2, 2, 4040, 4041, 7, 473, 2, 2, 4041, 4042, 7, 1013, 2, 2, 4042, 4044, 7, 1037, 2, 2, 4043, 4031, 3, 2, 2, 2, 4043, 4034, 3, 2, 2, 2, 4043, 4037, 3, 2, 2, 2, 4043, 4040, 3, 2, 2, 2, 4044, 327, 3, 2, 2, 2, 4045, 4050, 5, 518, 260, 2, 4046, 4047, 7, 1024, 2, 2, 4047, 4049, 5, 518, 260, 2, 4048, 4046, 3, 2, 2, 2, 4049, 4052, 3, 2, 2, 2, 4050, 4048, 3, 2, 2, 2, 4050, 4051, 3, 2, 2, 2, 4051, 4055, 3, 2, 2, 2, 4052, 4050, 3, 2, 2, 2, 4053, 4055, 7, 1037, 2, 2, 4054, 4045, 3, 2, 2, 2, 4054, 4053, 3, 2, 2, 2, 4055, 329, 3, 2, 2, 2, 4056, 4057, 7, 589, 2, 2, 4057, 4058, 9, 57, 2, 2, 4058, 4060, 5, 520, 261, 2, 4059, 4061, 9, 58, 2, 2, 4060, 4059, 3, 2, 2, 2, 4060, 4061, 3, 2, 2, 2, 4061, 331, 3, 2, 2, 2, 4062, 4063, 7, 589, 2, 2, 4063, 4064, 7, 342, 2, 2, 4064, 4070, 5, 520, 261, 2, 4065, 4068, 7, 554, 2, 2, 4066, 4067, 7, 60, 2, 2, 4067, 4069, 7, 438, 2, 2, 4068, 4066, 3, 2, 2, 2, 4068, 4069, 3, 2, 2, 2, 4069, 4071, 3, 2, 2, 2, 4070, 4065, 3, 2, 2, 2, 4070, 4071, 3, 2, 2, 2, 4071, 333, 3, 2, 2, 2, 4072, 4073, 7, 589, 2, 2, 4073, 4074, 7, 477, 2, 2, 4074, 4075, 5, 520, 261, 2, 4075, 335, 3, 2, 2, 2, 4076, 4077, 7, 589, 2, 2, 4077, 4078, 7, 308, 2, 2, 4078, 4081, 5, 520, 261, 2, 4079, 4080, 7, 457, 2, 2, 4080, 4082, 7, 471, 2, 2, 4081, 4079, 3, 2, 2, 2, 4081, 4082, 3, 2, 2, 2, 4082, 337, 3, 2, 2, 2, 4083, 4084, 7, 589, 2, 2, 4084, 4085, 7, 510, 2, 2, 4085, 4086, 5, 520, 261, 2, 4086, 339, 3, 2, 2, 2, 4087, 4088, 7, 589, 2, 2, 4088, 4091, 7, 487, 2, 2, 4089, 4090, 7, 31, 2, 2, 4090, 4092, 5, 520, 261, 2, 4091, 4089, 3, 2, 2, 2, 4091, 4092, 3, 2, 2, 2, 4092, 341, 3, 2, 2, 2, 4093, 4094, 7, 477, 2, 2, 4094, 4095, 5, 526, 264, 2, 4095, 4098, 7, 63, 2, 2, 4096, 4099, 7, 1037, 2, 2, 4097, 4099, 7, 1048, 2, 2, 4098, 4096, 3, 2, 2, 2, 4098, 4097, 3, 2, 2, 2, 4099, 343, 3, 2, 2, 2, 4100, 4101, 7, 606, 2, 2, 4101, 4104, 5, 526, 264, 2, 4102, 4103, 7, 171, 2, 2, 4103, 4105, 5, 572, 287, 2, 4104, 4102, 3, 2, 2, 2, 4104, 4105, 3, 2, 2, 2, 4105, 345, 3, 2, 2, 2, 4106, 4107, 9, 59, 2, 2, 4107, 4108, 7, 477, 2, 2, 4108, 4109, 5, 526, 264, 2, 4109, 347, 3, 2, 2, 2, 4110, 4113, 5, 350, 176, 2, 4111, 4113, 5, 8, 5, 2, 4112, 4110, 3, 2, 2, 2, 4112, 4111, 3, 2, 2, 2, 4113, 349, 3, 2, 2, 2, 4114, 4115, 5, 526, 264, 2, 4115, 4116, 7, 1033, 2, 2, 4116, 4118, 3, 2, 2, 2, 4117, 4114, 3, 2, 2, 2, 4117, 4118, 3, 2, 2, 2, 4118, 4119, 3, 2, 2, 2, 4119, 4158, 7, 284, 2, 2, 4120, 4121, 5, 370, 186, 2, 4121, 4122, 7, 1025, 2, 2, 4122, 4124, 3, 2, 2, 2, 4123, 4120, 3, 2, 2, 2, 4124, 4127, 3, 2, 2, 2, 4125, 4123, 3, 2, 2, 2, 4125, 4126, 3, 2, 2, 2, 4126, 4133, 3, 2, 2, 2, 4127, 4125, 3, 2, 2, 2, 4128, 4129, 5, 372, 187, 2, 4129, 4130, 7, 1025, 2, 2, 4130, 4132, 3, 2, 2, 2, 4131, 4128, 3, 2, 2, 2, 4132, 4135, 3, 2, 2, 2, 4133, 4131, 3, 2, 2, 2, 4133, 4134, 3, 2, 2, 2, 4134, 4141, 3, 2, 2, 2, 4135, 4133, 3, 2, 2, 2, 4136, 4137, 5, 374, 188, 2, 4137, 4138, 7, 1025, 2, 2, 4138, 4140, 3, 2, 2, 2, 4139, 4136, 3, 2, 2, 2, 4140, 4143, 3, 2, 2, 2, 4141, 4139, 3, 2, 2, 2, 4141, 4142, 3, 2, 2, 2, 4142, 4149, 3, 2, 2, 2, 4143, 4141, 3, 2, 2, 2, 4144, 4145, 5, 376, 189, 2, 4145, 4146, 7, 1025, 2, 2, 4146, 4148, 3, 2, 2, 2, 4147, 4144, 3, 2, 2, 2, 4148, 4151, 3, 2, 2, 2, 4149, 4147, 3, 2, 2, 2, 4149, 4150, 3, 2, 2, 2, 4150, 4155, 3, 2, 2, 2, 4151, 4149, 3, 2, 2, 2, 4152, 4154, 5, 380, 191, 2, 4153, 4152, 3, 2, 2, 2, 4154, 4157, 3, 2, 2, 2, 4155, 4153, 3, 2, 2, 2, 4155, 4156, 3, 2, 2, 2, 4156, 4159, 3, 2, 2, 2, 4157, 4155, 3, 2, 2, 2, 4158, 4125, 3, 2, 2, 2, 4158, 4159, 3, 2, 2, 2, 4159, 4160, 3, 2, 2, 2, 4160, 4162, 7, 342, 2, 2, 4161, 4163, 5, 526, 264, 2, 4162, 4161, 3, 2, 2, 2, 4162, 4163, 3, 2, 2, 2, 4163, 351, 3, 2, 2, 2, 4164, 4167, 7, 21, 2, 2, 4165, 4168, 5, 526, 264, 2, 4166, 4168, 5, 604, 303, 2, 4167, 4165, 3, 2, 2, 2, 4167, 4166, 3, 2, 2, 2, 4167, 4168, 3, 2, 2, 2, 4168, 4170, 3, 2, 2, 2, 4169, 4171, 5, 382, 192, 2, 4170, 4169, 3, 2, 2, 2, 4171, 4172, 3, 2, 2, 2, 4172, 4170, 3, 2, 2, 2, 4172, 4173, 3, 2, 2, 2, 4173, 4180, 3, 2, 2, 2, 4174, 4176, 7, 51, 2, 2, 4175, 4177, 5, 380, 191, 2, 4176, 4175, 3, 2, 2, 2, 4177, 4178, 3, 2, 2, 2, 4178, 4176, 3, 2, 2, 2, 4178, 4179, 3, 2, 2, 2, 4179, 4181, 3, 2, 2, 2, 4180, 4174, 3, 2, 2, 2, 4180, 4181, 3, 2, 2, 2, 4181, 4182, 3, 2, 2, 2, 4182, 4183, 7, 342, 2, 2, 4183, 4184, 7, 21, 2, 2, 4184, 353, 3, 2, 2, 2, 4185, 4186, 7, 71, 2, 2, 4186, 4187, 5, 604, 303, 2, 4187, 4189, 7, 158, 2, 2, 4188, 4190, 5, 380, 191, 2, 4189, 4188, 3, 2, 2, 2, 4190, 4191, 3, 2, 2, 2, 4191, 4189, 3, 2, 2, 2, 4191, 4192, 3, 2, 2, 2, 4192, 4196, 3, 2, 2, 2, 4193, 4195, 5, 384, 193, 2, 4194, 4193, 3, 2, 2, 2, 4195, 4198, 3, 2, 2, 2, 4196, 4194, 3, 2, 2, 2, 4196, 4197, 3, 2, 2, 2, 4197, 4205, 3, 2, 2, 2, 4198, 4196, 3, 2, 2, 2, 4199, 4201, 7, 51, 2, 2, 4200, 4202, 5, 380, 191, 2, 4201, 4200, 3, 2, 2, 2, 4202, 4203, 3, 2, 2, 2, 4203, 4201, 3, 2, 2, 2, 4203, 4204, 3, 2, 2, 2, 4204, 4206, 3, 2, 2, 2, 4205, 4199, 3, 2, 2, 2, 4205, 4206, 3, 2, 2, 2, 4206, 4207, 3, 2, 2, 2, 4207, 4208, 7, 342, 2, 2, 4208, 4209, 7, 71, 2, 2, 4209, 355, 3, 2, 2, 2, 4210, 4211, 7, 82, 2, 2, 4211, 4212, 5, 526, 264, 2, 4212, 357, 3, 2, 2, 2, 4213, 4214, 7, 88, 2, 2, 4214, 4215, 5, 526, 264, 2, 4215, 359, 3, 2, 2, 2, 4216, 4217, 5, 526, 264, 2, 4217, 4218, 7, 1033, 2, 2, 4218, 4220, 3, 2, 2, 2, 4219, 4216, 3, 2, 2, 2, 4219, 4220, 3, 2, 2, 2, 4220, 4221, 3, 2, 2, 2, 4221, 4223, 7, 96, 2, 2, 4222, 4224, 5, 380, 191, 2, 4223, 4222, 3, 2, 2, 2, 4224, 4225, 3, 2, 2, 2, 4225, 4223, 3, 2, 2, 2, 4225, 4226, 3, 2, 2, 2, 4226, 4227, 3, 2, 2, 2, 4227, 4228, 7, 342, 2, 2, 4228, 4230, 7, 96, 2, 2, 4229, 4231, 5, 526, 264, 2, 4230, 4229, 3, 2, 2, 2, 4230, 4231, 3, 2, 2, 2, 4231, 361, 3, 2, 2, 2, 4232, 4233, 5, 526, 264, 2, 4233, 4234, 7, 1033, 2, 2, 4234, 4236, 3, 2, 2, 2, 4235, 4232, 3, 2, 2, 2, 4235, 4236, 3, 2, 2, 2, 4236, 4237, 3, 2, 2, 2, 4237, 4239, 7, 128, 2, 2, 4238, 4240, 5, 380, 191, 2, 4239, 4238, 3, 2, 2, 2, 4240, 4241, 3, 2, 2, 2, 4241, 4239, 3, 2, 2, 2, 4241, 4242, 3, 2, 2, 2, 4242, 4243, 3, 2, 2, 2, 4243, 4244, 7, 572, 2, 2, 4244, 4245, 5, 604, 303, 2, 4245, 4246, 7, 342, 2, 2, 4246, 4248, 7, 128, 2, 2, 4247, 4249, 5, 526, 264, 2, 4248, 4247, 3, 2, 2, 2, 4248, 4249, 3, 2, 2, 2, 4249, 363, 3, 2, 2, 2, 4250, 4251, 7, 133, 2, 2, 4251, 4252, 5, 604, 303, 2, 4252, 365, 3, 2, 2, 2, 4253, 4254, 5, 526, 264, 2, 4254, 4255, 7, 1033, 2, 2, 4255, 4257, 3, 2, 2, 2, 4256, 4253, 3, 2, 2, 2, 4256, 4257, 3, 2, 2, 2, 4257, 4258, 3, 2, 2, 2, 4258, 4259, 7, 175, 2, 2, 4259, 4260, 5, 604, 303, 2, 4260, 4262, 7, 336, 2, 2, 4261, 4263, 5, 380, 191, 2, 4262, 4261, 3, 2, 2, 2, 4263, 4264, 3, 2, 2, 2, 4264, 4262, 3, 2, 2, 2, 4264, 4265, 3, 2, 2, 2, 4265, 4266, 3, 2, 2, 2, 4266, 4267, 7, 342, 2, 2, 4267, 4269, 7, 175, 2, 2, 4268, 4270, 5, 526, 264, 2, 4269, 4268, 3, 2, 2, 2, 4269, 4270, 3, 2, 2, 2, 4270, 367, 3, 2, 2, 2, 4271, 4272, 7, 301, 2, 2, 4272, 4287, 5, 526, 264, 2, 4273, 4278, 7, 59, 2, 2, 4274, 4276, 7, 449, 2, 2, 4275, 4274, 3, 2, 2, 2, 4275, 4276, 3, 2, 2, 2, 4276, 4277, 3, 2, 2, 2, 4277, 4279, 7, 63, 2, 2, 4278, 4275, 3, 2, 2, 2, 4278, 4279, 3, 2, 2, 2, 4279, 4280, 3, 2, 2, 2, 4280, 4281, 5, 526, 264, 2, 4281, 4282, 7, 80, 2, 2, 4282, 4283, 5, 558, 280, 2, 4283, 4287, 3, 2, 2, 2, 4284, 4285, 7, 460, 2, 2, 4285, 4287, 5, 526, 264, 2, 4286, 4271, 3, 2, 2, 2, 4286, 4273, 3, 2, 2, 2, 4286, 4284, 3, 2, 2, 2, 4287, 369, 3, 2, 2, 2, 4288, 4289, 7, 39, 2, 2, 4289, 4290, 5, 558, 280, 2, 4290, 4293, 5, 546, 274, 2, 4291, 4292, 7, 40, 2, 2, 4292, 4294, 5, 574, 288, 2, 4293, 4291, 3, 2, 2, 2, 4293, 4294, 3, 2, 2, 2, 4294, 371, 3, 2, 2, 2, 4295, 4296, 7, 39, 2, 2, 4296, 4297, 5, 526, 264, 2, 4297, 4298, 7, 28, 2, 2, 4298, 4305, 7, 60, 2, 2, 4299, 4306, 5, 532, 267, 2, 4300, 4302, 7, 147, 2, 2, 4301, 4303, 7, 578, 2, 2, 4302, 4301, 3, 2, 2, 2, 4302, 4303, 3, 2, 2, 2, 4303, 4304, 3, 2, 2, 2, 4304, 4306, 7, 1037, 2, 2, 4305, 4299, 3, 2, 2, 2, 4305, 4300, 3, 2, 2, 2, 4306, 373, 3, 2, 2, 2, 4307, 4308, 7, 39, 2, 2, 4308, 4309, 5, 526, 264, 2, 4309, 4310, 7, 36, 2, 2, 4310, 4311, 7, 60, 2, 2, 4311, 4312, 5, 182, 92, 2, 4312, 375, 3, 2, 2, 2, 4313, 4314, 7, 39, 2, 2, 4314, 4315, 9, 60, 2, 2, 4315, 4316, 7, 375, 2, 2, 4316, 4317, 7, 60, 2, 2, 4317, 4322, 5, 378, 190, 2, 4318, 4319, 7, 1024, 2, 2, 4319, 4321, 5, 378, 190, 2, 4320, 4318, 3, 2, 2, 2, 4321, 4324, 3, 2, 2, 2, 4322, 4320, 3, 2, 2, 2, 4322, 4323, 3, 2, 2, 2, 4323, 4325, 3, 2, 2, 2, 4324, 4322, 3, 2, 2, 2, 4325, 4326, 5, 348, 175, 2, 4326, 377, 3, 2, 2, 2, 4327, 4339, 5, 532, 267, 2, 4328, 4330, 7, 147, 2, 2, 4329, 4331, 7, 578, 2, 2, 4330, 4329, 3, 2, 2, 2, 4330, 4331, 3, 2, 2, 2, 4331, 4332, 3, 2, 2, 2, 4332, 4339, 7, 1037, 2, 2, 4333, 4339, 5, 526, 264, 2, 4334, 4339, 7, 148, 2, 2, 4335, 4336, 7, 104, 2, 2, 4336, 4339, 7, 368, 2, 2, 4337, 4339, 7, 146, 2, 2, 4338, 4327, 3, 2, 2, 2, 4338, 4328, 3, 2, 2, 2, 4338, 4333, 3, 2, 2, 2, 4338, 4334, 3, 2, 2, 2, 4338, 4335, 3, 2, 2, 2, 4338, 4337, 3, 2, 2, 2, 4339, 379, 3, 2, 2, 2, 4340, 4343, 5, 22, 12, 2, 4341, 4343, 5, 8, 5, 2, 4342, 4340, 3, 2, 2, 2, 4342, 4341, 3, 2, 2, 2, 4343, 4344, 3, 2, 2, 2, 4344, 4345, 7, 1025, 2, 2, 4345, 381, 3, 2, 2, 2, 4346, 4349, 7, 173, 2, 2, 4347, 4350, 5, 544, 273, 2, 4348, 4350, 5, 604, 303, 2, 4349, 4347, 3, 2, 2, 2, 4349, 4348, 3, 2, 2, 2, 4350, 4351, 3, 2, 2, 2, 4351, 4353, 7, 158, 2, 2, 4352, 4354, 5, 380, 191, 2, 4353, 4352, 3, 2, 2, 2, 4354, 4355, 3, 2, 2, 2, 4355, 4353, 3, 2, 2, 2, 4355, 4356, 3, 2, 2, 2, 4356, 383, 3, 2, 2, 2, 4357, 4358, 7, 52, 2, 2, 4358, 4359, 5, 604, 303, 2, 4359, 4361, 7, 158, 2, 2, 4360, 4362, 5, 380, 191, 2, 4361, 4360, 3, 2, 2, 2, 4362, 4363, 3, 2, 2, 2, 4363, 4361, 3, 2, 2, 2, 4363, 4364, 3, 2, 2, 2, 4364, 385, 3, 2, 2, 2, 4365, 4366, 7, 9, 2, 2, 4366, 4367, 7, 574, 2, 2, 4367, 4372, 5, 404, 203, 2, 4368, 4369, 7, 1024, 2, 2, 4369, 4371, 5, 404, 203, 2, 4370, 4368, 3, 2, 2, 2, 4371, 4374, 3, 2, 2, 2, 4372, 4370, 3, 2, 2, 2, 4372, 4373, 3, 2, 2, 2, 4373, 4420, 3, 2, 2, 2, 4374, 4372, 3, 2, 2, 2, 4375, 4376, 7, 9, 2, 2, 4376, 4378, 7, 574, 2, 2, 4377, 4379, 5, 580, 291, 2, 4378, 4377, 3, 2, 2, 2, 4378, 4379, 3, 2, 2, 2, 4379, 4380, 3, 2, 2, 2, 4380, 4385, 5, 406, 204, 2, 4381, 4382, 7, 1024, 2, 2, 4382, 4384, 5, 406, 204, 2, 4383, 4381, 3, 2, 2, 2, 4384, 4387, 3, 2, 2, 2, 4385, 4383, 3, 2, 2, 2, 4385, 4386, 3, 2, 2, 2, 4386, 4402, 3, 2, 2, 2, 4387, 4385, 3, 2, 2, 2, 4388, 4400, 7, 130, 2, 2, 4389, 4401, 7, 452, 2, 2, 4390, 4397, 5, 408, 205, 2, 4391, 4393, 7, 12, 2, 2, 4392, 4391, 3, 2, 2, 2, 4392, 4393, 3, 2, 2, 2, 4393, 4394, 3, 2, 2, 2, 4394, 4396, 5, 408, 205, 2, 4395, 4392, 3, 2, 2, 2, 4396, 4399, 3, 2, 2, 2, 4397, 4395, 3, 2, 2, 2, 4397, 4398, 3, 2, 2, 2, 4398, 4401, 3, 2, 2, 2, 4399, 4397, 3, 2, 2, 2, 4400, 4389, 3, 2, 2, 2, 4400, 4390, 3, 2, 2, 2, 4401, 4403, 3, 2, 2, 2, 4402, 4388, 3, 2, 2, 2, 4402, 4403, 3, 2, 2, 2, 4403, 4410, 3, 2, 2, 2, 4404, 4406, 7, 176, 2, 2, 4405, 4407, 5, 410, 206, 2, 4406, 4405, 3, 2, 2, 2, 4407, 4408, 3, 2, 2, 2, 4408, 4406, 3, 2, 2, 2, 4408, 4409, 3, 2, 2, 2, 4409, 4411, 3, 2, 2, 2, 4410, 4404, 3, 2, 2, 2, 4410, 4411, 3, 2, 2, 2, 4411, 4416, 3, 2, 2, 2, 4412, 4415, 5, 412, 207, 2, 4413, 4415, 5, 414, 208, 2, 4414, 4412, 3, 2, 2, 2, 4414, 4413, 3, 2, 2, 2, 4415, 4418, 3, 2, 2, 2, 4416, 4414, 3, 2, 2, 2, 4416, 4417, 3, 2, 2, 2, 4417, 4420, 3, 2, 2, 2, 4418, 4416, 3, 2, 2, 2, 4419, 4365, 3, 2, 2, 2, 4419, 4375, 3, 2, 2, 2, 4420, 387, 3, 2, 2, 2, 4421, 4422, 7, 32, 2, 2, 4422, 4423, 7, 574, 2, 2, 4423, 4428, 5, 406, 204, 2, 4424, 4425, 7, 1024, 2, 2, 4425, 4427, 5, 406, 204, 2, 4426, 4424, 3, 2, 2, 2, 4427, 4430, 3, 2, 2, 2, 4428, 4426, 3, 2, 2, 2, 4428, 4429, 3, 2, 2, 2, 4429, 4476, 3, 2, 2, 2, 4430, 4428, 3, 2, 2, 2, 4431, 4432, 7, 32, 2, 2, 4432, 4434, 7, 574, 2, 2, 4433, 4435, 5, 582, 292, 2, 4434, 4433, 3, 2, 2, 2, 4434, 4435, 3, 2, 2, 2, 4435, 4436, 3, 2, 2, 2, 4436, 4441, 5, 406, 204, 2, 4437, 4438, 7, 1024, 2, 2, 4438, 4440, 5, 406, 204, 2, 4439, 4437, 3, 2, 2, 2, 4440, 4443, 3, 2, 2, 2, 4441, 4439, 3, 2, 2, 2, 4441, 4442, 3, 2, 2, 2, 4442, 4458, 3, 2, 2, 2, 4443, 4441, 3, 2, 2, 2, 4444, 4456, 7, 130, 2, 2, 4445, 4457, 7, 452, 2, 2, 4446, 4453, 5, 408, 205, 2, 4447, 4449, 7, 12, 2, 2, 4448, 4447, 3, 2, 2, 2, 4448, 4449, 3, 2, 2, 2, 4449, 4450, 3, 2, 2, 2, 4450, 4452, 5, 408, 205, 2, 4451, 4448, 3, 2, 2, 2, 4452, 4455, 3, 2, 2, 2, 4453, 4451, 3, 2, 2, 2, 4453, 4454, 3, 2, 2, 2, 4454, 4457, 3, 2, 2, 2, 4455, 4453, 3, 2, 2, 2, 4456, 4445, 3, 2, 2, 2, 4456, 4446, 3, 2, 2, 2, 4457, 4459, 3, 2, 2, 2, 4458, 4444, 3, 2, 2, 2, 4458, 4459, 3, 2, 2, 2, 4459, 4466, 3, 2, 2, 2, 4460, 4462, 7, 176, 2, 2, 4461, 4463, 5, 410, 206, 2, 4462, 4461, 3, 2, 2, 2, 4463, 4464, 3, 2, 2, 2, 4464, 4462, 3, 2, 2, 2, 4464, 4465, 3, 2, 2, 2, 4465, 4467, 3, 2, 2, 2, 4466, 4460, 3, 2, 2, 2, 4466, 4467, 3, 2, 2, 2, 4467, 4472, 3, 2, 2, 2, 4468, 4471, 5, 412, 207, 2, 4469, 4471, 5, 414, 208, 2, 4470, 4468, 3, 2, 2, 2, 4470, 4469, 3, 2, 2, 2, 4471, 4474, 3, 2, 2, 2, 4472, 4470, 3, 2, 2, 2, 4472, 4473, 3, 2, 2, 2, 4473, 4476, 3, 2, 2, 2, 4474, 4472, 3, 2, 2, 2, 4475, 4421, 3, 2, 2, 2, 4475, 4431, 3, 2, 2, 2, 4476, 389, 3, 2, 2, 2, 4477, 4478, 7, 49, 2, 2, 4478, 4480, 7, 574, 2, 2, 4479, 4481, 5, 580, 291, 2, 4480, 4479, 3, 2, 2, 2, 4480, 4481, 3, 2, 2, 2, 4481, 4482, 3, 2, 2, 2, 4482, 4487, 5, 508, 255, 2, 4483, 4484, 7, 1024, 2, 2, 4484, 4486, 5, 508, 255, 2, 4485, 4483, 3, 2, 2, 2, 4486, 4489, 3, 2, 2, 2, 4487, 4485, 3, 2, 2, 2, 4487, 4488, 3, 2, 2, 2, 4488, 391, 3, 2, 2, 2, 4489, 4487, 3, 2, 2, 2, 4490, 4491, 7, 67, 2, 2, 4491, 4496, 5, 416, 209, 2, 4492, 4493, 7, 1024, 2, 2, 4493, 4495, 5, 416, 209, 2, 4494, 4492, 3, 2, 2, 2, 4495, 4498, 3, 2, 2, 2, 4496, 4494, 3, 2, 2, 2, 4496, 4497, 3, 2, 2, 2, 4497, 4499, 3, 2, 2, 2, 4498, 4496, 3, 2, 2, 2, 4499, 4501, 7, 108, 2, 2, 4500, 4502, 9, 61, 2, 2, 4501, 4500, 3, 2, 2, 2, 4501, 4502, 3, 2, 2, 2, 4502, 4503, 3, 2, 2, 2, 4503, 4504, 5, 420, 211, 2, 4504, 4505, 7, 159, 2, 2, 4505, 4510, 5, 406, 204, 2, 4506, 4507, 7, 1024, 2, 2, 4507, 4509, 5, 406, 204, 2, 4508, 4506, 3, 2, 2, 2, 4509, 4512, 3, 2, 2, 2, 4510, 4508, 3, 2, 2, 2, 4510, 4511, 3, 2, 2, 2, 4511, 4527, 3, 2, 2, 2, 4512, 4510, 3, 2, 2, 2, 4513, 4525, 7, 130, 2, 2, 4514, 4526, 7, 452, 2, 2, 4515, 4522, 5, 408, 205, 2, 4516, 4518, 7, 12, 2, 2, 4517, 4516, 3, 2, 2, 2, 4517, 4518, 3, 2, 2, 2, 4518, 4519, 3, 2, 2, 2, 4519, 4521, 5, 408, 205, 2, 4520, 4517, 3, 2, 2, 2, 4521, 4524, 3, 2, 2, 2, 4522, 4520, 3, 2, 2, 2, 4522, 4523, 3, 2, 2, 2, 4523, 4526, 3, 2, 2, 2, 4524, 4522, 3, 2, 2, 2, 4525, 4514, 3, 2, 2, 2, 4525, 4515, 3, 2, 2, 2, 4526, 4528, 3, 2, 2, 2, 4527, 4513, 3, 2, 2, 2, 4527, 4528, 3, 2, 2, 2, 4528, 4538, 3, 2, 2, 2, 4529, 4535, 7, 176, 2, 2, 4530, 4531, 7, 67, 2, 2, 4531, 4534, 7, 110, 2, 2, 4532, 4534, 5, 410, 206, 2, 4533, 4530, 3, 2, 2, 2, 4533, 4532, 3, 2, 2, 2, 4534, 4537, 3, 2, 2, 2, 4535, 4533, 3, 2, 2, 2, 4535, 4536, 3, 2, 2, 2, 4536, 4539, 3, 2, 2, 2, 4537, 4535, 3, 2, 2, 2, 4538, 4529, 3, 2, 2, 2, 4538, 4539, 3, 2, 2, 2, 4539, 393, 3, 2, 2, 2, 4540, 4541, 7, 67, 2, 2, 4541, 4542, 7, 483, 2, 2, 4542, 4543, 7, 108, 2, 2, 4543, 4544, 5, 508, 255, 2, 4544, 4545, 7, 159, 2, 2, 4545, 4550, 5, 508, 255, 2, 4546, 4547, 7, 1024, 2, 2, 4547, 4549, 5, 508, 255, 2, 4548, 4546, 3, 2, 2, 2, 4549, 4552, 3, 2, 2, 2, 4550, 4548, 3, 2, 2, 2, 4550, 4551, 3, 2, 2, 2, 4551, 4556, 3, 2, 2, 2, 4552, 4550, 3, 2, 2, 2, 4553, 4554, 7, 176, 2, 2, 4554, 4555, 7, 67, 2, 2, 4555, 4557, 7, 110, 2, 2, 4556, 4553, 3, 2, 2, 2, 4556, 4557, 3, 2, 2, 2, 4557, 395, 3, 2, 2, 2, 4558, 4559, 7, 127, 2, 2, 4559, 4560, 7, 574, 2, 2, 4560, 4565, 5, 422, 212, 2, 4561, 4562, 7, 1024, 2, 2, 4562, 4564, 5, 422, 212, 2, 4563, 4561, 3, 2, 2, 2, 4564, 4567, 3, 2, 2, 2, 4565, 4563, 3, 2, 2, 2, 4565, 4566, 3, 2, 2, 2, 4566, 397, 3, 2, 2, 2, 4567, 4565, 3, 2, 2, 2, 4568, 4569, 7, 134, 2, 2, 4569, 4574, 5, 416, 209, 2, 4570, 4571, 7, 1024, 2, 2, 4571, 4573, 5, 416, 209, 2, 4572, 4570, 3, 2, 2, 2, 4573, 4576, 3, 2, 2, 2, 4574, 4572, 3, 2, 2, 2, 4574, 4575, 3, 2, 2, 2, 4575, 4577, 3, 2, 2, 2, 4576, 4574, 3, 2, 2, 2, 4577, 4579, 7, 108, 2, 2, 4578, 4580, 9, 61, 2, 2, 4579, 4578, 3, 2, 2, 2, 4579, 4580, 3, 2, 2, 2, 4580, 4581, 3, 2, 2, 2, 4581, 4582, 5, 420, 211, 2, 4582, 4583, 7, 63, 2, 2, 4583, 4588, 5, 508, 255, 2, 4584, 4585, 7, 1024, 2, 2, 4585, 4587, 5, 508, 255, 2, 4586, 4584, 3, 2, 2, 2, 4587, 4590, 3, 2, 2, 2, 4588, 4586, 3, 2, 2, 2, 4588, 4589, 3, 2, 2, 2, 4589, 4609, 3, 2, 2, 2, 4590, 4588, 3, 2, 2, 2, 4591, 4592, 7, 134, 2, 2, 4592, 4594, 7, 8, 2, 2, 4593, 4595, 7, 612, 2, 2, 4594, 4593, 3, 2, 2, 2, 4594, 4595, 3, 2, 2, 2, 4595, 4596, 3, 2, 2, 2, 4596, 4597, 7, 1024, 2, 2, 4597, 4598, 7, 67, 2, 2, 4598, 4599, 7, 110, 2, 2, 4599, 4600, 7, 63, 2, 2, 4600, 4605, 5, 508, 255, 2, 4601, 4602, 7, 1024, 2, 2, 4602, 4604, 5, 508, 255, 2, 4603, 4601, 3, 2, 2, 2, 4604, 4607, 3, 2, 2, 2, 4605, 4603, 3, 2, 2, 2, 4605, 4606, 3, 2, 2, 2, 4606, 4609, 3, 2, 2, 2, 4607, 4605, 3, 2, 2, 2, 4608, 4568, 3, 2, 2, 2, 4608, 4591, 3, 2, 2, 2, 4609, 399, 3, 2, 2, 2, 4610, 4611, 7, 134, 2, 2, 4611, 4612, 7, 483, 2, 2, 4612, 4613, 7, 108, 2, 2, 4613, 4614, 5, 508, 255, 2, 4614, 4615, 7, 63, 2, 2, 4615, 4620, 5, 508, 255, 2, 4616, 4617, 7, 1024, 2, 2, 4617, 4619, 5, 508, 255, 2, 4618, 4616, 3, 2, 2, 2, 4619, 4622, 3, 2, 2, 2, 4620, 4618, 3, 2, 2, 2, 4620, 4621, 3, 2, 2, 2, 4621, 401, 3, 2, 2, 2, 4622, 4620, 3, 2, 2, 2, 4623, 4624, 7, 140, 2, 2, 4624, 4627, 7, 470, 2, 2, 4625, 4626, 7, 60, 2, 2, 4626, 4628, 5, 508, 255, 2, 4627, 4625, 3, 2, 2, 2, 4627, 4628, 3, 2, 2, 2, 4628, 4629, 3, 2, 2, 2, 4629, 4632, 7, 1013, 2, 2, 4630, 4633, 5, 598, 300, 2, 4631, 4633, 7, 1037, 2, 2, 4632, 4630, 3, 2, 2, 2, 4632, 4631, 3, 2, 2, 2, 4633, 403, 3, 2, 2, 2, 4634, 4635, 5, 508, 255, 2, 4635, 4636, 5, 412, 207, 2, 4636, 405, 3, 2, 2, 2, 4637, 4638, 5, 508, 255, 2, 4638, 4639, 7, 380, 2, 2, 4639, 4640, 7, 18, 2, 2, 4640, 4641, 7, 470, 2, 2, 4641, 4642, 7, 1037, 2, 2, 4642, 4662, 3, 2, 2, 2, 4643, 4644, 5, 508, 255, 2, 4644, 4647, 7, 380, 2, 2, 4645, 4646, 7, 176, 2, 2, 4646, 4648, 5, 524, 263, 2, 4647, 4645, 3, 2, 2, 2, 4647, 4648, 3, 2, 2, 2, 4648, 4649, 3, 2, 2, 2, 4649, 4650, 7, 18, 2, 2, 4650, 4651, 7, 1037, 2, 2, 4651, 4662, 3, 2, 2, 2, 4652, 4653, 5, 508, 255, 2, 4653, 4654, 7, 380, 2, 2, 4654, 4655, 7, 176, 2, 2, 4655, 4658, 5, 524, 263, 2, 4656, 4657, 7, 13, 2, 2, 4657, 4659, 7, 1037, 2, 2, 4658, 4656, 3, 2, 2, 2, 4658, 4659, 3, 2, 2, 2, 4659, 4662, 3, 2, 2, 2, 4660, 4662, 5, 508, 255, 2, 4661, 4637, 3, 2, 2, 2, 4661, 4643, 3, 2, 2, 2, 4661, 4652, 3, 2, 2, 2, 4661, 4660, 3, 2, 2, 2, 4662, 407, 3, 2, 2, 2, 4663, 4672, 7, 152, 2, 2, 4664, 4672, 7, 588, 2, 2, 4665, 4666, 7, 298, 2, 2, 4666, 4672, 7, 1037, 2, 2, 4667, 4668, 7, 395, 2, 2, 4668, 4672, 7, 1037, 2, 2, 4669, 4670, 7, 551, 2, 2, 4670, 4672, 7, 1037, 2, 2, 4671, 4663, 3, 2, 2, 2, 4671, 4664, 3, 2, 2, 2, 4671, 4665, 3, 2, 2, 2, 4671, 4667, 3, 2, 2, 2, 4671, 4669, 3, 2, 2, 2, 4672, 409, 3, 2, 2, 2, 4673, 4674, 7, 429, 2, 2, 4674, 4682, 5, 532, 267, 2, 4675, 4676, 7, 432, 2, 2, 4676, 4682, 5, 532, 267, 2, 4677, 4678, 7, 428, 2, 2, 4678, 4682, 5, 532, 267, 2, 4679, 4680, 7, 433, 2, 2, 4680, 4682, 5, 532, 267, 2, 4681, 4673, 3, 2, 2, 2, 4681, 4675, 3, 2, 2, 2, 4681, 4677, 3, 2, 2, 2, 4681, 4679, 3, 2, 2, 2, 4682, 411, 3, 2, 2, 2, 4683, 4684, 7, 470, 2, 2, 4684, 4691, 7, 355, 2, 2, 4685, 4692, 7, 40, 2, 2, 4686, 4692, 7, 448, 2, 2, 4687, 4688, 7, 79, 2, 2, 4688, 4689, 5, 532, 267, 2, 4689, 4690, 7, 598, 2, 2, 4690, 4692, 3, 2, 2, 2, 4691, 4685, 3, 2, 2, 2, 4691, 4686, 3, 2, 2, 2, 4691, 4687, 3, 2, 2, 2, 4691, 4692, 3, 2, 2, 2, 4692, 413, 3, 2, 2, 2, 4693, 4694, 7, 272, 2, 2, 4694, 4695, 9, 62, 2, 2, 4695, 415, 3, 2, 2, 2, 4696, 4701, 5, 418, 210, 2, 4697, 4698, 7, 1022, 2, 2, 4698, 4699, 5, 558, 280, 2, 4699, 4700, 7, 1023, 2, 2, 4700, 4702, 3, 2, 2, 2, 4701, 4697, 3, 2, 2, 2, 4701, 4702, 3, 2, 2, 2, 4702, 417, 3, 2, 2, 2, 4703, 4705, 7, 8, 2, 2, 4704, 4706, 7, 612, 2, 2, 4705, 4704, 3, 2, 2, 2, 4705, 4706, 3, 2, 2, 2, 4706, 4775, 3, 2, 2, 2, 4707, 4709, 7, 9, 2, 2, 4708, 4710, 7, 605, 2, 2, 4709, 4708, 3, 2, 2, 2, 4709, 4710, 3, 2, 2, 2, 4710, 4775, 3, 2, 2, 2, 4711, 4719, 7, 32, 2, 2, 4712, 4713, 7, 559, 2, 2, 4713, 4720, 7, 604, 2, 2, 4714, 4720, 7, 605, 2, 2, 4715, 4720, 7, 580, 2, 2, 4716, 4720, 7, 574, 2, 2, 4717, 4720, 7, 558, 2, 2, 4718, 4720, 7, 509, 2, 2, 4719, 4712, 3, 2, 2, 2, 4719, 4714, 3, 2, 2, 2, 4719, 4715, 3, 2, 2, 2, 4719, 4716, 3, 2, 2, 2, 4719, 4717, 3, 2, 2, 2, 4719, 4718, 3, 2, 2, 2, 4719, 4720, 3, 2, 2, 2, 4720, 4775, 3, 2, 2, 2, 4721, 4775, 7, 42, 2, 2, 4722, 4724, 7, 49, 2, 2, 4723, 4725, 7, 509, 2, 2, 4724, 4723, 3, 2, 2, 2, 4724, 4725, 3, 2, 2, 2, 4725, 4775, 3, 2, 2, 2, 4726, 4775, 7, 350, 2, 2, 4727, 4775, 7, 606, 2, 2, 4728, 4775, 7, 607, 2, 2, 4729, 4730, 7, 67, 2, 2, 4730, 4775, 7, 110, 2, 2, 4731, 4775, 7, 74, 2, 2, 4732, 4775, 7, 78, 2, 2, 4733, 4734, 7, 95, 2, 2, 4734, 4775, 7, 604, 2, 2, 4735, 4775, 7, 608, 2, 2, 4736, 4775, 7, 483, 2, 2, 4737, 4775, 7, 124, 2, 2, 4738, 4775, 7, 609, 2, 2, 4739, 4740, 7, 504, 2, 2, 4740, 4775, 9, 63, 2, 2, 4741, 4775, 7, 139, 2, 2, 4742, 4743, 7, 142, 2, 2, 4743, 4775, 9, 64, 2, 2, 4744, 4775, 7, 610, 2, 2, 4745, 4775, 7, 611, 2, 2, 4746, 4775, 7, 161, 2, 2, 4747, 4775, 7, 168, 2, 2, 4748, 4775, 7, 169, 2, 2, 4749, 4775, 7, 614, 2, 2, 4750, 4775, 7, 615, 2, 2, 4751, 4775, 7, 616, 2, 2, 4752, 4775, 7, 617, 2, 2, 4753, 4775, 7, 618, 2, 2, 4754, 4775, 7, 619, 2, 2, 4755, 4775, 7, 620, 2, 2, 4756, 4775, 7, 621, 2, 2, 4757, 4775, 7, 622, 2, 2, 4758, 4775, 7, 623, 2, 2, 4759, 4775, 7, 624, 2, 2, 4760, 4775, 7, 625, 2, 2, 4761, 4775, 7, 626, 2, 2, 4762, 4775, 7, 627, 2, 2, 4763, 4775, 7, 628, 2, 2, 4764, 4775, 7, 629, 2, 2, 4765, 4775, 7, 630, 2, 2, 4766, 4775, 7, 631, 2, 2, 4767, 4775, 7, 632, 2, 2, 4768, 4775, 7, 633, 2, 2, 4769, 4775, 7, 634, 2, 2, 4770, 4775, 7, 635, 2, 2, 4771, 4775, 7, 636, 2, 2, 4772, 4775, 7, 637, 2, 2, 4773, 4775, 7, 638, 2, 2, 4774, 4703, 3, 2, 2, 2, 4774, 4707, 3, 2, 2, 2, 4774, 4711, 3, 2, 2, 2, 4774, 4721, 3, 2, 2, 2, 4774, 4722, 3, 2, 2, 2, 4774, 4726, 3, 2, 2, 2, 4774, 4727, 3, 2, 2, 2, 4774, 4728, 3, 2, 2, 2, 4774, 4729, 3, 2, 2, 2, 4774, 4731, 3, 2, 2, 2, 4774, 4732, 3, 2, 2, 2, 4774, 4733, 3, 2, 2, 2, 4774, 4735, 3, 2, 2, 2, 4774, 4736, 3, 2, 2, 2, 4774, 4737, 3, 2, 2, 2, 4774, 4738, 3, 2, 2, 2, 4774, 4739, 3, 2, 2, 2, 4774, 4741, 3, 2, 2, 2, 4774, 4742, 3, 2, 2, 2, 4774, 4744, 3, 2, 2, 2, 4774, 4745, 3, 2, 2, 2, 4774, 4746, 3, 2, 2, 2, 4774, 4747, 3, 2, 2, 2, 4774, 4748, 3, 2, 2, 2, 4774, 4749, 3, 2, 2, 2, 4774, 4750, 3, 2, 2, 2, 4774, 4751, 3, 2, 2, 2, 4774, 4752, 3, 2, 2, 2, 4774, 4753, 3, 2, 2, 2, 4774, 4754, 3, 2, 2, 2, 4774, 4755, 3, 2, 2, 2, 4774, 4756, 3, 2, 2, 2, 4774, 4757, 3, 2, 2, 2, 4774, 4758, 3, 2, 2, 2, 4774, 4759, 3, 2, 2, 2, 4774, 4760, 3, 2, 2, 2, 4774, 4761, 3, 2, 2, 2, 4774, 4762, 3, 2, 2, 2, 4774, 4763, 3, 2, 2, 2, 4774, 4764, 3, 2, 2, 2, 4774, 4765, 3, 2, 2, 2, 4774, 4766, 3, 2, 2, 2, 4774, 4767, 3, 2, 2, 2, 4774, 4768, 3, 2, 2, 2, 4774, 4769, 3, 2, 2, 2, 4774, 4770, 3, 2, 2, 2, 4774, 4771, 3, 2, 2, 2, 4774, 4772, 3, 2, 2, 2, 4774, 4773, 3, 2, 2, 2, 4775, 419, 3, 2, 2, 2, 4776, 4793, 7, 1005, 2, 2, 4777, 4778, 7, 1005, 2, 2, 4778, 4779, 7, 1021, 2, 2, 4779, 4793, 7, 1005, 2, 2, 4780, 4781, 5, 526, 264, 2, 4781, 4782, 7, 1021, 2, 2, 4782, 4783, 7, 1005, 2, 2, 4783, 4793, 3, 2, 2, 2, 4784, 4785, 5, 526, 264, 2, 4785, 4786, 7, 1021, 2, 2, 4786, 4787, 5, 526, 264, 2, 4787, 4793, 3, 2, 2, 2, 4788, 4789, 5, 526, 264, 2, 4789, 4790, 5, 530, 266, 2, 4790, 4793, 3, 2, 2, 2, 4791, 4793, 5, 526, 264, 2, 4792, 4776, 3, 2, 2, 2, 4792, 4777, 3, 2, 2, 2, 4792, 4780, 3, 2, 2, 2, 4792, 4784, 3, 2, 2, 2, 4792, 4788, 3, 2, 2, 2, 4792, 4791, 3, 2, 2, 2, 4793, 421, 3, 2, 2, 2, 4794, 4795, 5, 508, 255, 2, 4795, 4796, 7, 159, 2, 2, 4796, 4797, 5, 508, 255, 2, 4797, 423, 3, 2, 2, 2, 4798, 4800, 7, 11, 2, 2, 4799, 4801, 9, 65, 2, 2, 4800, 4799, 3, 2, 2, 2, 4800, 4801, 3, 2, 2, 2, 4801, 4802, 3, 2, 2, 2, 4802, 4803, 7, 156, 2, 2, 4803, 4804, 5, 560, 281, 2, 4804, 425, 3, 2, 2, 2, 4805, 4806, 7, 25, 2, 2, 4806, 4807, 7, 156, 2, 2, 4807, 4811, 5, 560, 281, 2, 4808, 4810, 5, 434, 218, 2, 4809, 4808, 3, 2, 2, 2, 4810, 4813, 3, 2, 2, 2, 4811, 4809, 3, 2, 2, 2, 4811, 4812, 3, 2, 2, 2, 4812, 427, 3, 2, 2, 2, 4813, 4811, 3, 2, 2, 2, 4814, 4815, 7, 296, 2, 2, 4815, 4816, 7, 156, 2, 2, 4816, 4818, 5, 560, 281, 2, 4817, 4819, 9, 66, 2, 2, 4818, 4817, 3, 2, 2, 2, 4818, 4819, 3, 2, 2, 2, 4819, 429, 3, 2, 2, 2, 4820, 4822, 7, 109, 2, 2, 4821, 4823, 9, 65, 2, 2, 4822, 4821, 3, 2, 2, 2, 4822, 4823, 3, 2, 2, 2, 4823, 4824, 3, 2, 2, 2, 4824, 4825, 7, 156, 2, 2, 4825, 4826, 5, 560, 281, 2, 4826, 431, 3, 2, 2, 2, 4827, 4829, 7, 496, 2, 2, 4828, 4830, 9, 65, 2, 2, 4829, 4828, 3, 2, 2, 2, 4829, 4830, 3, 2, 2, 2, 4830, 4831, 3, 2, 2, 2, 4831, 4832, 7, 156, 2, 2, 4832, 4834, 5, 560, 281, 2, 4833, 4835, 7, 485, 2, 2, 4834, 4833, 3, 2, 2, 2, 4834, 4835, 3, 2, 2, 2, 4835, 4837, 3, 2, 2, 2, 4836, 4838, 7, 357, 2, 2, 4837, 4836, 3, 2, 2, 2, 4837, 4838, 3, 2, 2, 2, 4838, 4840, 3, 2, 2, 2, 4839, 4841, 7, 575, 2, 2, 4840, 4839, 3, 2, 2, 2, 4840, 4841, 3, 2, 2, 2, 4841, 433, 3, 2, 2, 2, 4842, 4843, 7, 60, 2, 2, 4843, 4850, 7, 573, 2, 2, 4844, 4850, 7, 485, 2, 2, 4845, 4850, 7, 359, 2, 2, 4846, 4850, 7, 434, 2, 2, 4847, 4850, 7, 357, 2, 2, 4848, 4850, 7, 294, 2, 2, 4849, 4842, 3, 2, 2, 2, 4849, 4844, 3, 2, 2, 2, 4849, 4845, 3, 2, 2, 2, 4849, 4846, 3, 2, 2, 2, 4849, 4847, 3, 2, 2, 2, 4849, 4848, 3, 2, 2, 2, 4850, 435, 3, 2, 2, 2, 4851, 4853, 7, 32, 2, 2, 4852, 4854, 7, 275, 2, 2, 4853, 4852, 3, 2, 2, 2, 4853, 4854, 3, 2, 2, 2, 4854, 4855, 3, 2, 2, 2, 4855, 4856, 7, 370, 2, 2, 4856, 4857, 5, 526, 264, 2, 4857, 4858, 7, 508, 2, 2, 4858, 4859, 9, 67, 2, 2, 4859, 4860, 7, 530, 2, 2, 4860, 4861, 7, 1037, 2, 2, 4861, 437, 3, 2, 2, 2, 4862, 4863, 7, 387, 2, 2, 4863, 4864, 7, 472, 2, 2, 4864, 4865, 5, 526, 264, 2, 4865, 4866, 7, 530, 2, 2, 4866, 4867, 7, 1037, 2, 2, 4867, 439, 3, 2, 2, 2, 4868, 4869, 7, 570, 2, 2, 4869, 4870, 7, 472, 2, 2, 4870, 4871, 5, 526, 264, 2, 4871, 441, 3, 2, 2, 2, 4872, 4873, 7, 140, 2, 2, 4873, 4874, 5, 446, 224, 2, 4874, 4875, 9, 68, 2, 2, 4875, 4883, 5, 604, 303, 2, 4876, 4877, 7, 1024, 2, 2, 4877, 4878, 5, 446, 224, 2, 4878, 4879, 9, 68, 2, 2, 4879, 4880, 5, 604, 303, 2, 4880, 4882, 3, 2, 2, 2, 4881, 4876, 3, 2, 2, 2, 4882, 4885, 3, 2, 2, 2, 4883, 4881, 3, 2, 2, 2, 4883, 4884, 3, 2, 2, 2, 4884, 4924, 3, 2, 2, 2, 4885, 4883, 3, 2, 2, 2, 4886, 4890, 7, 140, 2, 2, 4887, 4888, 7, 24, 2, 2, 4888, 4891, 7, 140, 2, 2, 4889, 4891, 7, 733, 2, 2, 4890, 4887, 3, 2, 2, 2, 4890, 4889, 3, 2, 2, 2, 4891, 4894, 3, 2, 2, 2, 4892, 4895, 5, 512, 257, 2, 4893, 4895, 7, 40, 2, 2, 4894, 4892, 3, 2, 2, 2, 4894, 4893, 3, 2, 2, 2, 4895, 4924, 3, 2, 2, 2, 4896, 4897, 7, 140, 2, 2, 4897, 4904, 7, 446, 2, 2, 4898, 4901, 5, 512, 257, 2, 4899, 4900, 7, 26, 2, 2, 4900, 4902, 5, 514, 258, 2, 4901, 4899, 3, 2, 2, 2, 4901, 4902, 3, 2, 2, 2, 4902, 4905, 3, 2, 2, 2, 4903, 4905, 7, 40, 2, 2, 4904, 4898, 3, 2, 2, 2, 4904, 4903, 3, 2, 2, 2, 4905, 4924, 3, 2, 2, 2, 4906, 4924, 5, 402, 202, 2, 4907, 4924, 5, 278, 140, 2, 4908, 4924, 5, 276, 139, 2, 4909, 4910, 7, 140, 2, 2, 4910, 4911, 5, 500, 251, 2, 4911, 4912, 9, 68, 2, 2, 4912, 4920, 5, 604, 303, 2, 4913, 4914, 7, 1024, 2, 2, 4914, 4915, 5, 500, 251, 2, 4915, 4916, 9, 68, 2, 2, 4916, 4917, 5, 604, 303, 2, 4917, 4919, 3, 2, 2, 2, 4918, 4913, 3, 2, 2, 2, 4919, 4922, 3, 2, 2, 2, 4920, 4918, 3, 2, 2, 2, 4920, 4921, 3, 2, 2, 2, 4921, 4924, 3, 2, 2, 2, 4922, 4920, 3, 2, 2, 2, 4923, 4872, 3, 2, 2, 2, 4923, 4886, 3, 2, 2, 2, 4923, 4896, 3, 2, 2, 2, 4923, 4906, 3, 2, 2, 2, 4923, 4907, 3, 2, 2, 2, 4923, 4908, 3, 2, 2, 2, 4923, 4909, 3, 2, 2, 2, 4924, 443, 3, 2, 2, 2, 4925, 4926, 7, 142, 2, 2, 4926, 4927, 9, 51, 2, 2, 4927, 5077, 7, 406, 2, 2, 4928, 4929, 7, 142, 2, 2, 4929, 4930, 9, 69, 2, 2, 4930, 4933, 7, 351, 2, 2, 4931, 4932, 7, 73, 2, 2, 4932, 4934, 7, 1037, 2, 2, 4933, 4931, 3, 2, 2, 2, 4933, 4934, 3, 2, 2, 2, 4934, 4937, 3, 2, 2, 2, 4935, 4936, 7, 63, 2, 2, 4936, 4938, 5, 532, 267, 2, 4937, 4935, 3, 2, 2, 2, 4937, 4938, 3, 2, 2, 2, 4938, 4946, 3, 2, 2, 2, 4939, 4943, 7, 91, 2, 2, 4940, 4941, 5, 532, 267, 2, 4941, 4942, 7, 1024, 2, 2, 4942, 4944, 3, 2, 2, 2, 4943, 4940, 3, 2, 2, 2, 4943, 4944, 3, 2, 2, 2, 4944, 4945, 3, 2, 2, 2, 4945, 4947, 5, 532, 267, 2, 4946, 4939, 3, 2, 2, 2, 4946, 4947, 3, 2, 2, 2, 4947, 5077, 3, 2, 2, 2, 4948, 4949, 7, 142, 2, 2, 4949, 4951, 5, 448, 225, 2, 4950, 4952, 5, 450, 226, 2, 4951, 4950, 3, 2, 2, 2, 4951, 4952, 3, 2, 2, 2, 4952, 5077, 3, 2, 2, 2, 4953, 4955, 7, 142, 2, 2, 4954, 4956, 7, 369, 2, 2, 4955, 4954, 3, 2, 2, 2, 4955, 4956, 3, 2, 2, 2, 4956, 4957, 3, 2, 2, 2, 4957, 4958, 9, 37, 2, 2, 4958, 4959, 9, 70, 2, 2, 4959, 4962, 5, 502, 252, 2, 4960, 4961, 9, 70, 2, 2, 4961, 4963, 5, 526, 264, 2, 4962, 4960, 3, 2, 2, 2, 4962, 4963, 3, 2, 2, 2, 4963, 4965, 3, 2, 2, 2, 4964, 4966, 5, 450, 226, 2, 4965, 4964, 3, 2, 2, 2, 4965, 4966, 3, 2, 2, 2, 4966, 5077, 3, 2, 2, 2, 4967, 4968, 7, 142, 2, 2, 4968, 4969, 7, 32, 2, 2, 4969, 4971, 9, 2, 2, 2, 4970, 4972, 5, 582, 292, 2, 4971, 4970, 3, 2, 2, 2, 4971, 4972, 3, 2, 2, 2, 4972, 4973, 3, 2, 2, 2, 4973, 5077, 5, 526, 264, 2, 4974, 4975, 7, 142, 2, 2, 4975, 4976, 7, 32, 2, 2, 4976, 4977, 9, 71, 2, 2, 4977, 5077, 5, 500, 251, 2, 4978, 4979, 7, 142, 2, 2, 4979, 4980, 7, 32, 2, 2, 4980, 4981, 7, 574, 2, 2, 4981, 5077, 5, 508, 255, 2, 4982, 4983, 7, 142, 2, 2, 4983, 4984, 7, 344, 2, 2, 4984, 4985, 5, 516, 259, 2, 4985, 4986, 9, 72, 2, 2, 4986, 5077, 3, 2, 2, 2, 4987, 4988, 7, 142, 2, 2, 4988, 5077, 5, 452, 227, 2, 4989, 4990, 7, 142, 2, 2, 4990, 4991, 9, 73, 2, 2, 4991, 4995, 7, 91, 2, 2, 4992, 4993, 5, 532, 267, 2, 4993, 4994, 7, 1024, 2, 2, 4994, 4996, 3, 2, 2, 2, 4995, 4992, 3, 2, 2, 2, 4995, 4996, 3, 2, 2, 2, 4996, 4997, 3, 2, 2, 2, 4997, 5077, 5, 532, 267, 2, 4998, 4999, 7, 142, 2, 2, 4999, 5000, 7, 241, 2, 2, 5000, 5001, 7, 1022, 2, 2, 5001, 5002, 7, 1005, 2, 2, 5002, 5003, 7, 1023, 2, 2, 5003, 5077, 9, 73, 2, 2, 5004, 5005, 7, 142, 2, 2, 5005, 5008, 5, 454, 228, 2, 5006, 5007, 9, 70, 2, 2, 5007, 5009, 5, 526, 264, 2, 5008, 5006, 3, 2, 2, 2, 5008, 5009, 3, 2, 2, 2, 5009, 5011, 3, 2, 2, 2, 5010, 5012, 5, 450, 226, 2, 5011, 5010, 3, 2, 2, 2, 5011, 5012, 3, 2, 2, 2, 5012, 5077, 3, 2, 2, 2, 5013, 5014, 7, 142, 2, 2, 5014, 5015, 9, 74, 2, 2, 5015, 5016, 7, 303, 2, 2, 5016, 5077, 5, 500, 251, 2, 5017, 5018, 7, 142, 2, 2, 5018, 5021, 7, 373, 2, 2, 5019, 5020, 7, 60, 2, 2, 5020, 5022, 5, 508, 255, 2, 5021, 5019, 3, 2, 2, 2, 5021, 5022, 3, 2, 2, 2, 5022, 5077, 3, 2, 2, 2, 5023, 5024, 7, 142, 2, 2, 5024, 5025, 9, 75, 2, 2, 5025, 5026, 9, 70, 2, 2, 5026, 5029, 5, 502, 252, 2, 5027, 5028, 9, 70, 2, 2, 5028, 5030, 5, 526, 264, 2, 5029, 5027, 3, 2, 2, 2, 5029, 5030, 3, 2, 2, 2, 5030, 5033, 3, 2, 2, 2, 5031, 5032, 7, 174, 2, 2, 5032, 5034, 5, 604, 303, 2, 5033, 5031, 3, 2, 2, 2, 5033, 5034, 3, 2, 2, 2, 5034, 5077, 3, 2, 2, 2, 5035, 5036, 7, 142, 2, 2, 5036, 5037, 7, 460, 2, 2, 5037, 5040, 7, 604, 2, 2, 5038, 5039, 9, 70, 2, 2, 5039, 5041, 5, 526, 264, 2, 5040, 5038, 3, 2, 2, 2, 5040, 5041, 3, 2, 2, 2, 5041, 5043, 3, 2, 2, 2, 5042, 5044, 5, 450, 226, 2, 5043, 5042, 3, 2, 2, 2, 5043, 5044, 3, 2, 2, 2, 5044, 5077, 3, 2, 2, 2, 5045, 5046, 7, 142, 2, 2, 5046, 5047, 7, 481, 2, 2, 5047, 5052, 5, 456, 229, 2, 5048, 5049, 7, 1024, 2, 2, 5049, 5051, 5, 456, 229, 2, 5050, 5048, 3, 2, 2, 2, 5051, 5054, 3, 2, 2, 2, 5052, 5050, 3, 2, 2, 2, 5052, 5053, 3, 2, 2, 2, 5053, 5058, 3, 2, 2, 2, 5054, 5052, 3, 2, 2, 2, 5055, 5056, 7, 60, 2, 2, 5056, 5057, 7, 484, 2, 2, 5057, 5059, 5, 532, 267, 2, 5058, 5055, 3, 2, 2, 2, 5058, 5059, 3, 2, 2, 2, 5059, 5060, 3, 2, 2, 2, 5060, 5064, 7, 91, 2, 2, 5061, 5062, 5, 532, 267, 2, 5062, 5063, 7, 1024, 2, 2, 5063, 5065, 3, 2, 2, 2, 5064, 5061, 3, 2, 2, 2, 5064, 5065, 3, 2, 2, 2, 5065, 5066, 3, 2, 2, 2, 5066, 5067, 5, 532, 267, 2, 5067, 5077, 3, 2, 2, 2, 5068, 5069, 7, 142, 2, 2, 5069, 5070, 7, 525, 2, 2, 5070, 5074, 7, 545, 2, 2, 5071, 5072, 7, 60, 2, 2, 5072, 5073, 7, 295, 2, 2, 5073, 5075, 7, 1037, 2, 2, 5074, 5071, 3, 2, 2, 2, 5074, 5075, 3, 2, 2, 2, 5075, 5077, 3, 2, 2, 2, 5076, 4925, 3, 2, 2, 2, 5076, 4928, 3, 2, 2, 2, 5076, 4948, 3, 2, 2, 2, 5076, 4953, 3, 2, 2, 2, 5076, 4967, 3, 2, 2, 2, 5076, 4974, 3, 2, 2, 2, 5076, 4978, 3, 2, 2, 2, 5076, 4982, 3, 2, 2, 2, 5076, 4987, 3, 2, 2, 2, 5076, 4989, 3, 2, 2, 2, 5076, 4998, 3, 2, 2, 2, 5076, 5004, 3, 2, 2, 2, 5076, 5013, 3, 2, 2, 2, 5076, 5017, 3, 2, 2, 2, 5076, 5023, 3, 2, 2, 2, 5076, 5035, 3, 2, 2, 2, 5076, 5045, 3, 2, 2, 2, 5076, 5068, 3, 2, 2, 2, 5077, 445, 3, 2, 2, 2, 5078, 5089, 7, 1048, 2, 2, 5079, 5089, 7, 1049, 2, 2, 5080, 5081, 7, 1026, 2, 2, 5081, 5083, 7, 1026, 2, 2, 5082, 5080, 3, 2, 2, 2, 5082, 5083, 3, 2, 2, 2, 5083, 5084, 3, 2, 2, 2, 5084, 5086, 9, 76, 2, 2, 5085, 5082, 3, 2, 2, 2, 5085, 5086, 3, 2, 2, 2, 5086, 5087, 3, 2, 2, 2, 5087, 5089, 5, 526, 264, 2, 5088, 5078, 3, 2, 2, 2, 5088, 5079, 3, 2, 2, 2, 5088, 5085, 3, 2, 2, 2, 5089, 447, 3, 2, 2, 2, 5090, 5091, 7, 24, 2, 2, 5091, 5104, 7, 140, 2, 2, 5092, 5104, 7, 736, 2, 2, 5093, 5104, 7, 38, 2, 2, 5094, 5104, 7, 138, 2, 2, 5095, 5096, 7, 370, 2, 2, 5096, 5104, 7, 545, 2, 2, 5097, 5098, 7, 119, 2, 2, 5098, 5104, 7, 545, 2, 2, 5099, 5101, 9, 50, 2, 2, 5100, 5099, 3, 2, 2, 2, 5100, 5101, 3, 2, 2, 2, 5101, 5102, 3, 2, 2, 2, 5102, 5104, 9, 77, 2, 2, 5103, 5090, 3, 2, 2, 2, 5103, 5092, 3, 2, 2, 2, 5103, 5093, 3, 2, 2, 2, 5103, 5094, 3, 2, 2, 2, 5103, 5095, 3, 2, 2, 2, 5103, 5097, 3, 2, 2, 2, 5103, 5100, 3, 2, 2, 2, 5104, 449, 3, 2, 2, 2, 5105, 5106, 7, 90, 2, 2, 5106, 5110, 7, 1037, 2, 2, 5107, 5108, 7, 174, 2, 2, 5108, 5110, 5, 604, 303, 2, 5109, 5105, 3, 2, 2, 2, 5109, 5107, 3, 2, 2, 2, 5110, 451, 3, 2, 2, 2, 5111, 5113, 7, 547, 2, 2, 5112, 5111, 3, 2, 2, 2, 5112, 5113, 3, 2, 2, 2, 5113, 5114, 3, 2, 2, 2, 5114, 5129, 7, 345, 2, 2, 5115, 5116, 7, 407, 2, 2, 5116, 5129, 7, 545, 2, 2, 5117, 5129, 7, 474, 2, 2, 5118, 5129, 7, 612, 2, 2, 5119, 5121, 7, 369, 2, 2, 5120, 5119, 3, 2, 2, 2, 5120, 5121, 3, 2, 2, 2, 5121, 5122, 3, 2, 2, 2, 5122, 5129, 7, 480, 2, 2, 5123, 5129, 7, 482, 2, 2, 5124, 5125, 7, 525, 2, 2, 5125, 5129, 7, 379, 2, 2, 5126, 5129, 7, 279, 2, 2, 5127, 5129, 7, 321, 2, 2, 5128, 5112, 3, 2, 2, 2, 5128, 5115, 3, 2, 2, 2, 5128, 5117, 3, 2, 2, 2, 5128, 5118, 3, 2, 2, 2, 5128, 5120, 3, 2, 2, 2, 5128, 5123, 3, 2, 2, 2, 5128, 5124, 3, 2, 2, 2, 5128, 5126, 3, 2, 2, 2, 5128, 5127, 3, 2, 2, 2, 5129, 453, 3, 2, 2, 2, 5130, 5139, 7, 351, 2, 2, 5131, 5132, 7, 156, 2, 2, 5132, 5139, 7, 545, 2, 2, 5133, 5135, 7, 369, 2, 2, 5134, 5133, 3, 2, 2, 2, 5134, 5135, 3, 2, 2, 2, 5135, 5136, 3, 2, 2, 2, 5136, 5139, 7, 604, 2, 2, 5137, 5139, 7, 565, 2, 2, 5138, 5130, 3, 2, 2, 2, 5138, 5131, 3, 2, 2, 2, 5138, 5134, 3, 2, 2, 2, 5138, 5137, 3, 2, 2, 2, 5139, 455, 3, 2, 2, 2, 5140, 5153, 7, 8, 2, 2, 5141, 5142, 7, 287, 2, 2, 5142, 5153, 7, 391, 2, 2, 5143, 5144, 7, 320, 2, 2, 5144, 5153, 7, 556, 2, 2, 5145, 5153, 7, 323, 2, 2, 5146, 5153, 7, 393, 2, 2, 5147, 5153, 7, 684, 2, 2, 5148, 5149, 7, 465, 2, 2, 5149, 5153, 7, 360, 2, 2, 5150, 5153, 7, 532, 2, 2, 5151, 5153, 7, 555, 2, 2, 5152, 5140, 3, 2, 2, 2, 5152, 5141, 3, 2, 2, 2, 5152, 5143, 3, 2, 2, 2, 5152, 5145, 3, 2, 2, 2, 5152, 5146, 3, 2, 2, 2, 5152, 5147, 3, 2, 2, 2, 5152, 5148, 3, 2, 2, 2, 5152, 5150, 3, 2, 2, 2, 5152, 5151, 3, 2, 2, 2, 5153, 457, 3, 2, 2, 2, 5154, 5155, 7, 285, 2, 2, 5155, 5156, 7, 1037, 2, 2, 5156, 459, 3, 2, 2, 2, 5157, 5158, 7, 291, 2, 2, 5158, 5159, 7, 74, 2, 2, 5159, 5164, 5, 472, 237, 2, 5160, 5161, 7, 1024, 2, 2, 5161, 5163, 5, 472, 237, 2, 5162, 5160, 3, 2, 2, 2, 5163, 5166, 3, 2, 2, 2, 5164, 5162, 3, 2, 2, 2, 5164, 5165, 3, 2, 2, 2, 5165, 5174, 3, 2, 2, 2, 5166, 5164, 3, 2, 2, 2, 5167, 5168, 7, 117, 2, 2, 5168, 5171, 7, 1022, 2, 2, 5169, 5172, 5, 558, 280, 2, 5170, 5172, 7, 8, 2, 2, 5171, 5169, 3, 2, 2, 2, 5171, 5170, 3, 2, 2, 2, 5172, 5173, 3, 2, 2, 2, 5173, 5175, 7, 1023, 2, 2, 5174, 5167, 3, 2, 2, 2, 5174, 5175, 3, 2, 2, 2, 5175, 5176, 3, 2, 2, 2, 5176, 5177, 7, 73, 2, 2, 5177, 5178, 5, 526, 264, 2, 5178, 461, 3, 2, 2, 2, 5179, 5181, 7, 366, 2, 2, 5180, 5182, 9, 65, 2, 2, 5181, 5180, 3, 2, 2, 2, 5181, 5182, 3, 2, 2, 2, 5182, 5183, 3, 2, 2, 2, 5183, 5188, 5, 474, 238, 2, 5184, 5185, 7, 1024, 2, 2, 5185, 5187, 5, 474, 238, 2, 5186, 5184, 3, 2, 2, 2, 5187, 5190, 3, 2, 2, 2, 5188, 5186, 3, 2, 2, 2, 5188, 5189, 3, 2, 2, 2, 5189, 463, 3, 2, 2, 2, 5190, 5188, 3, 2, 2, 2, 5191, 5193, 7, 86, 2, 2, 5192, 5194, 9, 78, 2, 2, 5193, 5192, 3, 2, 2, 2, 5193, 5194, 3, 2, 2, 2, 5194, 5196, 3, 2, 2, 2, 5195, 5197, 5, 532, 267, 2, 5196, 5195, 3, 2, 2, 2, 5197, 5198, 3, 2, 2, 2, 5198, 5196, 3, 2, 2, 2, 5198, 5199, 3, 2, 2, 2, 5199, 465, 3, 2, 2, 2, 5200, 5201, 7, 94, 2, 2, 5201, 5202, 7, 74, 2, 2, 5202, 5203, 7, 80, 2, 2, 5203, 5204, 7, 291, 2, 2, 5204, 5209, 5, 478, 240, 2, 5205, 5206, 7, 1024, 2, 2, 5206, 5208, 5, 478, 240, 2, 5207, 5205, 3, 2, 2, 2, 5208, 5211, 3, 2, 2, 2, 5209, 5207, 3, 2, 2, 2, 5209, 5210, 3, 2, 2, 2, 5210, 467, 3, 2, 2, 2, 5211, 5209, 3, 2, 2, 2, 5212, 5213, 7, 505, 2, 2, 5213, 5214, 7, 484, 2, 2, 5214, 5215, 7, 291, 2, 2, 5215, 469, 3, 2, 2, 2, 5216, 5217, 7, 610, 2, 2, 5217, 471, 3, 2, 2, 2, 5218, 5226, 5, 502, 252, 2, 5219, 5221, 9, 20, 2, 2, 5220, 5219, 3, 2, 2, 2, 5220, 5221, 3, 2, 2, 2, 5221, 5222, 3, 2, 2, 2, 5222, 5223, 7, 1022, 2, 2, 5223, 5224, 5, 558, 280, 2, 5224, 5225, 7, 1023, 2, 2, 5225, 5227, 3, 2, 2, 2, 5226, 5220, 3, 2, 2, 2, 5226, 5227, 3, 2, 2, 2, 5227, 473, 3, 2, 2, 2, 5228, 5247, 7, 331, 2, 2, 5229, 5247, 7, 379, 2, 2, 5230, 5232, 9, 79, 2, 2, 5231, 5230, 3, 2, 2, 2, 5231, 5232, 3, 2, 2, 2, 5232, 5233, 3, 2, 2, 2, 5233, 5247, 7, 406, 2, 2, 5234, 5247, 7, 461, 2, 2, 5235, 5247, 7, 612, 2, 2, 5236, 5237, 7, 484, 2, 2, 5237, 5247, 7, 291, 2, 2, 5238, 5247, 7, 545, 2, 2, 5239, 5247, 7, 576, 2, 2, 5240, 5244, 7, 604, 2, 2, 5241, 5242, 7, 176, 2, 2, 5242, 5243, 7, 122, 2, 2, 5243, 5245, 7, 95, 2, 2, 5244, 5241, 3, 2, 2, 2, 5244, 5245, 3, 2, 2, 2, 5245, 5247, 3, 2, 2, 2, 5246, 5228, 3, 2, 2, 2, 5246, 5229, 3, 2, 2, 2, 5246, 5231, 3, 2, 2, 2, 5246, 5234, 3, 2, 2, 2, 5246, 5235, 3, 2, 2, 2, 5246, 5236, 3, 2, 2, 2, 5246, 5238, 3, 2, 2, 2, 5246, 5239, 3, 2, 2, 2, 5246, 5240, 3, 2, 2, 2, 5247, 5259, 3, 2, 2, 2, 5248, 5249, 7, 490, 2, 2, 5249, 5251, 7, 406, 2, 2, 5250, 5252, 5, 316, 159, 2, 5251, 5250, 3, 2, 2, 2, 5251, 5252, 3, 2, 2, 2, 5252, 5259, 3, 2, 2, 2, 5253, 5254, 7, 604, 2, 2, 5254, 5256, 5, 560, 281, 2, 5255, 5257, 5, 476, 239, 2, 5256, 5255, 3, 2, 2, 2, 5256, 5257, 3, 2, 2, 2, 5257, 5259, 3, 2, 2, 2, 5258, 5246, 3, 2, 2, 2, 5258, 5248, 3, 2, 2, 2, 5258, 5253, 3, 2, 2, 2, 5259, 475, 3, 2, 2, 2, 5260, 5261, 7, 176, 2, 2, 5261, 5262, 7, 122, 2, 2, 5262, 5266, 7, 95, 2, 2, 5263, 5264, 7, 60, 2, 2, 5264, 5266, 7, 356, 2, 2, 5265, 5260, 3, 2, 2, 2, 5265, 5263, 3, 2, 2, 2, 5266, 477, 3, 2, 2, 2, 5267, 5275, 5, 502, 252, 2, 5268, 5269, 7, 117, 2, 2, 5269, 5272, 7, 1022, 2, 2, 5270, 5273, 5, 558, 280, 2, 5271, 5273, 7, 8, 2, 2, 5272, 5270, 3, 2, 2, 2, 5272, 5271, 3, 2, 2, 2, 5273, 5274, 3, 2, 2, 2, 5274, 5276, 7, 1023, 2, 2, 5275, 5268, 3, 2, 2, 2, 5275, 5276, 3, 2, 2, 2, 5276, 5284, 3, 2, 2, 2, 5277, 5279, 9, 20, 2, 2, 5278, 5277, 3, 2, 2, 2, 5278, 5279, 3, 2, 2, 2, 5279, 5280, 3, 2, 2, 2, 5280, 5281, 7, 1022, 2, 2, 5281, 5282, 5, 558, 280, 2, 5282, 5283, 7, 1023, 2, 2, 5283, 5285, 3, 2, 2, 2, 5284, 5278, 3, 2, 2, 2, 5284, 5285, 3, 2, 2, 2, 5285, 5288, 3, 2, 2, 2, 5286, 5287, 7, 72, 2, 2, 5287, 5289, 7, 400, 2, 2, 5288, 5286, 3, 2, 2, 2, 5288, 5289, 3, 2, 2, 2, 5289, 479, 3, 2, 2, 2, 5290, 5291, 9, 80, 2, 2, 5291, 5294, 5, 502, 252, 2, 5292, 5295, 5, 526, 264, 2, 5293, 5295, 7, 1037, 2, 2, 5294, 5292, 3, 2, 2, 2, 5294, 5293, 3, 2, 2, 2, 5294, 5295, 3, 2, 2, 2, 5295, 481, 3, 2, 2, 2, 5296, 5300, 9, 80, 2, 2, 5297, 5298, 9, 81, 2, 2, 5298, 5299, 7, 1013, 2, 2, 5299, 5301, 9, 82, 2, 2, 5300, 5297, 3, 2, 2, 2, 5300, 5301, 3, 2, 2, 2, 5301, 5302, 3, 2, 2, 2, 5302, 5303, 5, 498, 250, 2, 5303, 483, 3, 2, 2, 2, 5304, 5305, 7, 377, 2, 2, 5305, 5306, 7, 1037, 2, 2, 5306, 485, 3, 2, 2, 2, 5307, 5308, 7, 170, 2, 2, 5308, 5309, 5, 526, 264, 2, 5309, 487, 3, 2, 2, 2, 5310, 5318, 7, 143, 2, 2, 5311, 5313, 7, 147, 2, 2, 5312, 5314, 7, 578, 2, 2, 5313, 5312, 3, 2, 2, 2, 5313, 5314, 3, 2, 2, 2, 5314, 5315, 3, 2, 2, 2, 5315, 5319, 5, 536, 269, 2, 5316, 5319, 7, 1045, 2, 2, 5317, 5319, 7, 1046, 2, 2, 5318, 5311, 3, 2, 2, 2, 5318, 5316, 3, 2, 2, 2, 5318, 5317, 3, 2, 2, 2, 5319, 5329, 3, 2, 2, 2, 5320, 5321, 7, 140, 2, 2, 5321, 5326, 5, 492, 247, 2, 5322, 5323, 7, 1024, 2, 2, 5323, 5325, 5, 492, 247, 2, 5324, 5322, 3, 2, 2, 2, 5325, 5328, 3, 2, 2, 2, 5326, 5324, 3, 2, 2, 2, 5326, 5327, 3, 2, 2, 2, 5327, 5330, 3, 2, 2, 2, 5328, 5326, 3, 2, 2, 2, 5329, 5320, 3, 2, 2, 2, 5329, 5330, 3, 2, 2, 2, 5330, 489, 3, 2, 2, 2, 5331, 5339, 7, 131, 2, 2, 5332, 5334, 7, 147, 2, 2, 5333, 5335, 7, 578, 2, 2, 5334, 5333, 3, 2, 2, 2, 5334, 5335, 3, 2, 2, 2, 5335, 5336, 3, 2, 2, 2, 5336, 5340, 5, 536, 269, 2, 5337, 5340, 7, 1045, 2, 2, 5338, 5340, 7, 1046, 2, 2, 5339, 5332, 3, 2, 2, 2, 5339, 5337, 3, 2, 2, 2, 5339, 5338, 3, 2, 2, 2, 5339, 5340, 3, 2, 2, 2, 5340, 5350, 3, 2, 2, 2, 5341, 5342, 7, 140, 2, 2, 5342, 5347, 5, 492, 247, 2, 5343, 5344, 7, 1024, 2, 2, 5344, 5346, 5, 492, 247, 2, 5345, 5343, 3, 2, 2, 2, 5346, 5349, 3, 2, 2, 2, 5347, 5345, 3, 2, 2, 2, 5347, 5348, 3, 2, 2, 2, 5348, 5351, 3, 2, 2, 2, 5349, 5347, 3, 2, 2, 2, 5350, 5341, 3, 2, 2, 2, 5350, 5351, 3, 2, 2, 2, 5351, 491, 3, 2, 2, 2, 5352, 5353, 9, 83, 2, 2, 5353, 5356, 7, 1013, 2, 2, 5354, 5357, 5, 536, 269, 2, 5355, 5357, 7, 1038, 2, 2, 5356, 5354, 3, 2, 2, 2, 5356, 5355, 3, 2, 2, 2, 5357, 493, 3, 2, 2, 2, 5358, 5360, 7, 66, 2, 2, 5359, 5361, 9, 84, 2, 2, 5360, 5359, 3, 2, 2, 2, 5360, 5361, 3, 2, 2, 2, 5361, 5362, 3, 2, 2, 2, 5362, 5394, 7, 46, 2, 2, 5363, 5364, 5, 446, 224, 2, 5364, 5365, 7, 1013, 2, 2, 5365, 5373, 9, 85, 2, 2, 5366, 5367, 7, 1024, 2, 2, 5367, 5368, 5, 446, 224, 2, 5368, 5369, 7, 1013, 2, 2, 5369, 5370, 9, 85, 2, 2, 5370, 5372, 3, 2, 2, 2, 5371, 5366, 3, 2, 2, 2, 5372, 5375, 3, 2, 2, 2, 5373, 5371, 3, 2, 2, 2, 5373, 5374, 3, 2, 2, 2, 5374, 5395, 3, 2, 2, 2, 5375, 5373, 3, 2, 2, 2, 5376, 5379, 7, 28, 2, 2, 5377, 5380, 5, 532, 267, 2, 5378, 5380, 5, 446, 224, 2, 5379, 5377, 3, 2, 2, 2, 5379, 5378, 3, 2, 2, 2, 5380, 5381, 3, 2, 2, 2, 5381, 5382, 5, 446, 224, 2, 5382, 5383, 7, 1013, 2, 2, 5383, 5391, 5, 496, 249, 2, 5384, 5385, 7, 1024, 2, 2, 5385, 5386, 5, 446, 224, 2, 5386, 5387, 7, 1013, 2, 2, 5387, 5388, 5, 496, 249, 2, 5388, 5390, 3, 2, 2, 2, 5389, 5384, 3, 2, 2, 2, 5390, 5393, 3, 2, 2, 2, 5391, 5389, 3, 2, 2, 2, 5391, 5392, 3, 2, 2, 2, 5392, 5395, 3, 2, 2, 2, 5393, 5391, 3, 2, 2, 2, 5394, 5363, 3, 2, 2, 2, 5394, 5376, 3, 2, 2, 2, 5395, 495, 3, 2, 2, 2, 5396, 5397, 9, 86, 2, 2, 5397, 497, 3, 2, 2, 2, 5398, 5404, 5, 182, 92, 2, 5399, 5404, 5, 168, 85, 2, 5400, 5404, 5, 174, 88, 2, 5401, 5404, 5, 180, 91, 2, 5402, 5404, 5, 184, 93, 2, 5403, 5398, 3, 2, 2, 2, 5403, 5399, 3, 2, 2, 2, 5403, 5400, 3, 2, 2, 2, 5403, 5401, 3, 2, 2, 2, 5403, 5402, 3, 2, 2, 2, 5404, 5409, 3, 2, 2, 2, 5405, 5406, 7, 60, 2, 2, 5406, 5407, 7, 314, 2, 2, 5407, 5409, 5, 526, 264, 2, 5408, 5403, 3, 2, 2, 2, 5408, 5405, 3, 2, 2, 2, 5409, 499, 3, 2, 2, 2, 5410, 5414, 5, 526, 264, 2, 5411, 5415, 7, 1044, 2, 2, 5412, 5413, 7, 1021, 2, 2, 5413, 5415, 5, 526, 264, 2, 5414, 5411, 3, 2, 2, 2, 5414, 5412, 3, 2, 2, 2, 5414, 5415, 3, 2, 2, 2, 5415, 501, 3, 2, 2, 2, 5416, 5417, 5, 500, 251, 2, 5417, 503, 3, 2, 2, 2, 5418, 5423, 5, 526, 264, 2, 5419, 5421, 5, 530, 266, 2, 5420, 5422, 5, 530, 266, 2, 5421, 5420, 3, 2, 2, 2, 5421, 5422, 3, 2, 2, 2, 5422, 5424, 3, 2, 2, 2, 5423, 5419, 3, 2, 2, 2, 5423, 5424, 3, 2, 2, 2, 5424, 505, 3, 2, 2, 2, 5425, 5428, 5, 526, 264, 2, 5426, 5428, 7, 1037, 2, 2, 5427, 5425, 3, 2, 2, 2, 5427, 5426, 3, 2, 2, 2, 5428, 5433, 3, 2, 2, 2, 5429, 5430, 7, 1022, 2, 2, 5430, 5431, 5, 532, 267, 2, 5431, 5432, 7, 1023, 2, 2, 5432, 5434, 3, 2, 2, 2, 5433, 5429, 3, 2, 2, 2, 5433, 5434, 3, 2, 2, 2, 5434, 5436, 3, 2, 2, 2, 5435, 5437, 9, 44, 2, 2, 5436, 5435, 3, 2, 2, 2, 5436, 5437, 3, 2, 2, 2, 5437, 507, 3, 2, 2, 2, 5438, 5439, 9, 87, 2, 2, 5439, 509, 3, 2, 2, 2, 5440, 5441, 9, 88, 2, 2, 5441, 511, 3, 2, 2, 2, 5442, 5447, 7, 210, 2, 2, 5443, 5447, 5, 620, 311, 2, 5444, 5447, 7, 1037, 2, 2, 5445, 5447, 7, 1034, 2, 2, 5446, 5442, 3, 2, 2, 2, 5446, 5443, 3, 2, 2, 2, 5446, 5444, 3, 2, 2, 2, 5446, 5445, 3, 2, 2, 2, 5447, 513, 3, 2, 2, 2, 5448, 5451, 5, 526, 264, 2, 5449, 5451, 7, 1037, 2, 2, 5450, 5448, 3, 2, 2, 2, 5450, 5449, 3, 2, 2, 2, 5451, 515, 3, 2, 2, 2, 5452, 5453, 9, 89, 2, 2, 5453, 517, 3, 2, 2, 2, 5454, 5455, 5, 532, 267, 2, 5455, 5456, 7, 1010, 2, 2, 5456, 5457, 5, 532, 267, 2, 5457, 5458, 7, 1010, 2, 2, 5458, 5459, 5, 532, 267, 2, 5459, 5460, 7, 1010, 2, 2, 5460, 5461, 5, 532, 267, 2, 5461, 5462, 7, 1010, 2, 2, 5462, 5468, 5, 532, 267, 2, 5463, 5464, 7, 1033, 2, 2, 5464, 5465, 5, 532, 267, 2, 5465, 5466, 7, 1010, 2, 2, 5466, 5467, 5, 532, 267, 2, 5467, 5469, 3, 2, 2, 2, 5468, 5463, 3, 2, 2, 2, 5469, 5470, 3, 2, 2, 2, 5470, 5468, 3, 2, 2, 2, 5470, 5471, 3, 2, 2, 2, 5471, 519, 3, 2, 2, 2, 5472, 5479, 5, 522, 262, 2, 5473, 5474, 7, 1024, 2, 2, 5474, 5477, 5, 522, 262, 2, 5475, 5476, 7, 1024, 2, 2, 5476, 5478, 5, 532, 267, 2, 5477, 5475, 3, 2, 2, 2, 5477, 5478, 3, 2, 2, 2, 5478, 5480, 3, 2, 2, 2, 5479, 5473, 3, 2, 2, 2, 5479, 5480, 3, 2, 2, 2, 5480, 521, 3, 2, 2, 2, 5481, 5489, 7, 1037, 2, 2, 5482, 5489, 7, 1042, 2, 2, 5483, 5485, 7, 1039, 2, 2, 5484, 5483, 3, 2, 2, 2, 5485, 5486, 3, 2, 2, 2, 5486, 5484, 3, 2, 2, 2, 5486, 5487, 3, 2, 2, 2, 5487, 5489, 3, 2, 2, 2, 5488, 5481, 3, 2, 2, 2, 5488, 5482, 3, 2, 2, 2, 5488, 5484, 3, 2, 2, 2, 5489, 523, 3, 2, 2, 2, 5490, 5493, 5, 526, 264, 2, 5491, 5493, 7, 1037, 2, 2, 5492, 5490, 3, 2, 2, 2, 5492, 5491, 3, 2, 2, 2, 5493, 525, 3, 2, 2, 2, 5494, 5498, 5, 528, 265, 2, 5495, 5498, 7, 1046, 2, 2, 5496, 5498, 7, 1034, 2, 2, 5497, 5494, 3, 2, 2, 2, 5497, 5495, 3, 2, 2, 2, 5497, 5496, 3, 2, 2, 2, 5498, 527, 3, 2, 2, 2, 5499, 5509, 7, 1045, 2, 2, 5500, 5509, 5, 620, 311, 2, 5501, 5509, 5, 622, 312, 2, 5502, 5509, 5, 516, 259, 2, 5503, 5509, 5, 624, 313, 2, 5504, 5509, 5, 626, 314, 2, 5505, 5509, 5, 628, 315, 2, 5506, 5509, 5, 630, 316, 2, 5507, 5509, 5, 632, 317, 2, 5508, 5499, 3, 2, 2, 2, 5508, 5500, 3, 2, 2, 2, 5508, 5501, 3, 2, 2, 2, 5508, 5502, 3, 2, 2, 2, 5508, 5503, 3, 2, 2, 2, 5508, 5504, 3, 2, 2, 2, 5508, 5505, 3, 2, 2, 2, 5508, 5506, 3, 2, 2, 2, 5508, 5507, 3, 2, 2, 2, 5509, 529, 3, 2, 2, 2, 5510, 5514, 7, 1044, 2, 2, 5511, 5512, 7, 1021, 2, 2, 5512, 5514, 5, 526, 264, 2, 5513, 5510, 3, 2, 2, 2, 5513, 5511, 3, 2, 2, 2, 5514, 531, 3, 2, 2, 2, 5515, 5516, 9, 90, 2, 2, 5516, 533, 3, 2, 2, 2, 5517, 5520, 7, 1035, 2, 2, 5518, 5520, 5, 532, 267, 2, 5519, 5517, 3, 2, 2, 2, 5519, 5518, 3, 2, 2, 2, 5520, 535, 3, 2, 2, 2, 5521, 5523, 7, 1043, 2, 2, 5522, 5521, 3, 2, 2, 2, 5522, 5523, 3, 2, 2, 2, 5523, 5524, 3, 2, 2, 2, 5524, 5527, 7, 1037, 2, 2, 5525, 5527, 7, 1036, 2, 2, 5526, 5522, 3, 2, 2, 2, 5526, 5525, 3, 2, 2, 2, 5527, 5529, 3, 2, 2, 2, 5528, 5530, 7, 1037, 2, 2, 5529, 5528, 3, 2, 2, 2, 5530, 5531, 3, 2, 2, 2, 5531, 5529, 3, 2, 2, 2, 5531, 5532, 3, 2, 2, 2, 5532, 5545, 3, 2, 2, 2, 5533, 5535, 7, 1043, 2, 2, 5534, 5533, 3, 2, 2, 2, 5534, 5535, 3, 2, 2, 2, 5535, 5536, 3, 2, 2, 2, 5536, 5539, 7, 1037, 2, 2, 5537, 5539, 7, 1036, 2, 2, 5538, 5534, 3, 2, 2, 2, 5538, 5537, 3, 2, 2, 2, 5539, 5542, 3, 2, 2, 2, 5540, 5541, 7, 26, 2, 2, 5541, 5543, 5, 514, 258, 2, 5542, 5540, 3, 2, 2, 2, 5542, 5543, 3, 2, 2, 2, 5543, 5545, 3, 2, 2, 2, 5544, 5526, 3, 2, 2, 2, 5544, 5538, 3, 2, 2, 2, 5545, 537, 3, 2, 2, 2, 5546, 5547, 9, 91, 2, 2, 5547, 539, 3, 2, 2, 2, 5548, 5550, 7, 1043, 2, 2, 5549, 5548, 3, 2, 2, 2, 5549, 5550, 3, 2, 2, 2, 5550, 5551, 3, 2, 2, 2, 5551, 5552, 7, 1039, 2, 2, 5552, 541, 3, 2, 2, 2, 5553, 5555, 7, 104, 2, 2, 5554, 5553, 3, 2, 2, 2, 5554, 5555, 3, 2, 2, 2, 5555, 5556, 3, 2, 2, 2, 5556, 5557, 9, 92, 2, 2, 5557, 543, 3, 2, 2, 2, 5558, 5571, 5, 536, 269, 2, 5559, 5571, 5, 532, 267, 2, 5560, 5561, 7, 1010, 2, 2, 5561, 5571, 5, 532, 267, 2, 5562, 5571, 5, 540, 271, 2, 5563, 5571, 5, 538, 270, 2, 5564, 5571, 7, 1040, 2, 2, 5565, 5571, 7, 1042, 2, 2, 5566, 5568, 7, 104, 2, 2, 5567, 5566, 3, 2, 2, 2, 5567, 5568, 3, 2, 2, 2, 5568, 5569, 3, 2, 2, 2, 5569, 5571, 9, 92, 2, 2, 5570, 5558, 3, 2, 2, 2, 5570, 5559, 3, 2, 2, 2, 5570, 5560, 3, 2, 2, 2, 5570, 5562, 3, 2, 2, 2, 5570, 5563, 3, 2, 2, 2, 5570, 5564, 3, 2, 2, 2, 5570, 5565, 3, 2, 2, 2, 5570, 5567, 3, 2, 2, 2, 5571, 545, 3, 2, 2, 2, 5572, 5574, 9, 93, 2, 2, 5573, 5575, 5, 552, 277, 2, 5574, 5573, 3, 2, 2, 2, 5574, 5575, 3, 2, 2, 2, 5575, 5577, 3, 2, 2, 2, 5576, 5578, 7, 210, 2, 2, 5577, 5576, 3, 2, 2, 2, 5577, 5578, 3, 2, 2, 2, 5578, 5585, 3, 2, 2, 2, 5579, 5580, 7, 24, 2, 2, 5580, 5583, 7, 140, 2, 2, 5581, 5583, 7, 733, 2, 2, 5582, 5579, 3, 2, 2, 2, 5582, 5581, 3, 2, 2, 2, 5583, 5584, 3, 2, 2, 2, 5584, 5586, 5, 512, 257, 2, 5585, 5582, 3, 2, 2, 2, 5585, 5586, 3, 2, 2, 2, 5586, 5589, 3, 2, 2, 2, 5587, 5588, 7, 26, 2, 2, 5588, 5590, 5, 514, 258, 2, 5589, 5587, 3, 2, 2, 2, 5589, 5590, 3, 2, 2, 2, 5590, 5700, 3, 2, 2, 2, 5591, 5592, 7, 209, 2, 2, 5592, 5594, 9, 94, 2, 2, 5593, 5595, 5, 552, 277, 2, 5594, 5593, 3, 2, 2, 2, 5594, 5595, 3, 2, 2, 2, 5595, 5597, 3, 2, 2, 2, 5596, 5598, 7, 210, 2, 2, 5597, 5596, 3, 2, 2, 2, 5597, 5598, 3, 2, 2, 2, 5598, 5700, 3, 2, 2, 2, 5599, 5600, 7, 447, 2, 2, 5600, 5602, 7, 207, 2, 2, 5601, 5603, 5, 552, 277, 2, 5602, 5601, 3, 2, 2, 2, 5602, 5603, 3, 2, 2, 2, 5603, 5605, 3, 2, 2, 2, 5604, 5606, 7, 210, 2, 2, 5605, 5604, 3, 2, 2, 2, 5605, 5606, 3, 2, 2, 2, 5606, 5700, 3, 2, 2, 2, 5607, 5608, 7, 209, 2, 2, 5608, 5609, 9, 95, 2, 2, 5609, 5611, 7, 222, 2, 2, 5610, 5612, 5, 552, 277, 2, 5611, 5610, 3, 2, 2, 2, 5611, 5612, 3, 2, 2, 2, 5612, 5614, 3, 2, 2, 2, 5613, 5615, 7, 210, 2, 2, 5614, 5613, 3, 2, 2, 2, 5614, 5615, 3, 2, 2, 2, 5615, 5700, 3, 2, 2, 2, 5616, 5618, 9, 96, 2, 2, 5617, 5619, 5, 552, 277, 2, 5618, 5617, 3, 2, 2, 2, 5618, 5619, 3, 2, 2, 2, 5619, 5621, 3, 2, 2, 2, 5620, 5622, 9, 97, 2, 2, 5621, 5620, 3, 2, 2, 2, 5621, 5622, 3, 2, 2, 2, 5622, 5624, 3, 2, 2, 2, 5623, 5625, 7, 179, 2, 2, 5624, 5623, 3, 2, 2, 2, 5624, 5625, 3, 2, 2, 2, 5625, 5700, 3, 2, 2, 2, 5626, 5628, 7, 192, 2, 2, 5627, 5629, 5, 554, 278, 2, 5628, 5627, 3, 2, 2, 2, 5628, 5629, 3, 2, 2, 2, 5629, 5631, 3, 2, 2, 2, 5630, 5632, 9, 97, 2, 2, 5631, 5630, 3, 2, 2, 2, 5631, 5632, 3, 2, 2, 2, 5632, 5634, 3, 2, 2, 2, 5633, 5635, 7, 179, 2, 2, 5634, 5633, 3, 2, 2, 2, 5634, 5635, 3, 2, 2, 2, 5635, 5700, 3, 2, 2, 2, 5636, 5638, 7, 193, 2, 2, 5637, 5639, 7, 194, 2, 2, 5638, 5637, 3, 2, 2, 2, 5638, 5639, 3, 2, 2, 2, 5639, 5641, 3, 2, 2, 2, 5640, 5642, 5, 554, 278, 2, 5641, 5640, 3, 2, 2, 2, 5641, 5642, 3, 2, 2, 2, 5642, 5644, 3, 2, 2, 2, 5643, 5645, 9, 97, 2, 2, 5644, 5643, 3, 2, 2, 2, 5644, 5645, 3, 2, 2, 2, 5645, 5647, 3, 2, 2, 2, 5646, 5648, 7, 179, 2, 2, 5647, 5646, 3, 2, 2, 2, 5647, 5648, 3, 2, 2, 2, 5648, 5700, 3, 2, 2, 2, 5649, 5651, 9, 98, 2, 2, 5650, 5652, 5, 556, 279, 2, 5651, 5650, 3, 2, 2, 2, 5651, 5652, 3, 2, 2, 2, 5652, 5654, 3, 2, 2, 2, 5653, 5655, 9, 97, 2, 2, 5654, 5653, 3, 2, 2, 2, 5654, 5655, 3, 2, 2, 2, 5655, 5657, 3, 2, 2, 2, 5656, 5658, 7, 179, 2, 2, 5657, 5656, 3, 2, 2, 2, 5657, 5658, 3, 2, 2, 2, 5658, 5700, 3, 2, 2, 2, 5659, 5700, 9, 99, 2, 2, 5660, 5662, 9, 100, 2, 2, 5661, 5663, 5, 552, 277, 2, 5662, 5661, 3, 2, 2, 2, 5662, 5663, 3, 2, 2, 2, 5663, 5700, 3, 2, 2, 2, 5664, 5665, 9, 101, 2, 2, 5665, 5667, 5, 548, 275, 2, 5666, 5668, 7, 210, 2, 2, 5667, 5666, 3, 2, 2, 2, 5667, 5668, 3, 2, 2, 2, 5668, 5675, 3, 2, 2, 2, 5669, 5670, 7, 24, 2, 2, 5670, 5673, 7, 140, 2, 2, 5671, 5673, 7, 733, 2, 2, 5672, 5669, 3, 2, 2, 2, 5672, 5671, 3, 2, 2, 2, 5673, 5674, 3, 2, 2, 2, 5674, 5676, 5, 512, 257, 2, 5675, 5672, 3, 2, 2, 2, 5675, 5676, 3, 2, 2, 2, 5676, 5700, 3, 2, 2, 2, 5677, 5700, 9, 102, 2, 2, 5678, 5680, 7, 215, 2, 2, 5679, 5681, 7, 207, 2, 2, 5680, 5679, 3, 2, 2, 2, 5680, 5681, 3, 2, 2, 2, 5681, 5683, 3, 2, 2, 2, 5682, 5684, 7, 210, 2, 2, 5683, 5682, 3, 2, 2, 2, 5683, 5684, 3, 2, 2, 2, 5684, 5691, 3, 2, 2, 2, 5685, 5686, 7, 24, 2, 2, 5686, 5689, 7, 140, 2, 2, 5687, 5689, 7, 733, 2, 2, 5688, 5685, 3, 2, 2, 2, 5688, 5687, 3, 2, 2, 2, 5689, 5690, 3, 2, 2, 2, 5690, 5692, 5, 512, 257, 2, 5691, 5688, 3, 2, 2, 2, 5691, 5692, 3, 2, 2, 2, 5692, 5695, 3, 2, 2, 2, 5693, 5694, 7, 26, 2, 2, 5694, 5696, 5, 514, 258, 2, 5695, 5693, 3, 2, 2, 2, 5695, 5696, 3, 2, 2, 2, 5696, 5700, 3, 2, 2, 2, 5697, 5698, 7, 215, 2, 2, 5698, 5700, 7, 211, 2, 2, 5699, 5572, 3, 2, 2, 2, 5699, 5591, 3, 2, 2, 2, 5699, 5599, 3, 2, 2, 2, 5699, 5607, 3, 2, 2, 2, 5699, 5616, 3, 2, 2, 2, 5699, 5626, 3, 2, 2, 2, 5699, 5636, 3, 2, 2, 2, 5699, 5649, 3, 2, 2, 2, 5699, 5659, 3, 2, 2, 2, 5699, 5660, 3, 2, 2, 2, 5699, 5664, 3, 2, 2, 2, 5699, 5677, 3, 2, 2, 2, 5699, 5678, 3, 2, 2, 2, 5699, 5697, 3, 2, 2, 2, 5700, 547, 3, 2, 2, 2, 5701, 5702, 7, 1022, 2, 2, 5702, 5707, 7, 1037, 2, 2, 5703, 5704, 7, 1024, 2, 2, 5704, 5706, 7, 1037, 2, 2, 5705, 5703, 3, 2, 2, 2, 5706, 5709, 3, 2, 2, 2, 5707, 5705, 3, 2, 2, 2, 5707, 5708, 3, 2, 2, 2, 5708, 5710, 3, 2, 2, 2, 5709, 5707, 3, 2, 2, 2, 5710, 5711, 7, 1023, 2, 2, 5711, 549, 3, 2, 2, 2, 5712, 5714, 9, 103, 2, 2, 5713, 5715, 5, 552, 277, 2, 5714, 5713, 3, 2, 2, 2, 5714, 5715, 3, 2, 2, 2, 5715, 5738, 3, 2, 2, 2, 5716, 5718, 7, 206, 2, 2, 5717, 5719, 5, 552, 277, 2, 5718, 5717, 3, 2, 2, 2, 5718, 5719, 3, 2, 2, 2, 5719, 5726, 3, 2, 2, 2, 5720, 5721, 7, 24, 2, 2, 5721, 5724, 7, 140, 2, 2, 5722, 5724, 7, 733, 2, 2, 5723, 5720, 3, 2, 2, 2, 5723, 5722, 3, 2, 2, 2, 5724, 5725, 3, 2, 2, 2, 5725, 5727, 5, 512, 257, 2, 5726, 5723, 3, 2, 2, 2, 5726, 5727, 3, 2, 2, 2, 5727, 5738, 3, 2, 2, 2, 5728, 5738, 9, 104, 2, 2, 5729, 5731, 7, 198, 2, 2, 5730, 5732, 5, 554, 278, 2, 5731, 5730, 3, 2, 2, 2, 5731, 5732, 3, 2, 2, 2, 5732, 5738, 3, 2, 2, 2, 5733, 5735, 9, 97, 2, 2, 5734, 5736, 7, 190, 2, 2, 5735, 5734, 3, 2, 2, 2, 5735, 5736, 3, 2, 2, 2, 5736, 5738, 3, 2, 2, 2, 5737, 5712, 3, 2, 2, 2, 5737, 5716, 3, 2, 2, 2, 5737, 5728, 3, 2, 2, 2, 5737, 5729, 3, 2, 2, 2, 5737, 5733, 3, 2, 2, 2, 5738, 551, 3, 2, 2, 2, 5739, 5740, 7, 1022, 2, 2, 5740, 5741, 5, 532, 267, 2, 5741, 5742, 7, 1023, 2, 2, 5742, 553, 3, 2, 2, 2, 5743, 5744, 7, 1022, 2, 2, 5744, 5745, 5, 532, 267, 2, 5745, 5746, 7, 1024, 2, 2, 5746, 5747, 5, 532, 267, 2, 5747, 5748, 7, 1023, 2, 2, 5748, 555, 3, 2, 2, 2, 5749, 5750, 7, 1022, 2, 2, 5750, 5753, 5, 532, 267, 2, 5751, 5752, 7, 1024, 2, 2, 5752, 5754, 5, 532, 267, 2, 5753, 5751, 3, 2, 2, 2, 5753, 5754, 3, 2, 2, 2, 5754, 5755, 3, 2, 2, 2, 5755, 5756, 7, 1023, 2, 2, 5756, 557, 3, 2, 2, 2, 5757, 5762, 5, 526, 264, 2, 5758, 5759, 7, 1024, 2, 2, 5759, 5761, 5, 526, 264, 2, 5760, 5758, 3, 2, 2, 2, 5761, 5764, 3, 2, 2, 2, 5762, 5760, 3, 2, 2, 2, 5762, 5763, 3, 2, 2, 2, 5763, 559, 3, 2, 2, 2, 5764, 5762, 3, 2, 2, 2, 5765, 5770, 5, 502, 252, 2, 5766, 5767, 7, 1024, 2, 2, 5767, 5769, 5, 502, 252, 2, 5768, 5766, 3, 2, 2, 2, 5769, 5772, 3, 2, 2, 2, 5770, 5768, 3, 2, 2, 2, 5770, 5771, 3, 2, 2, 2, 5771, 561, 3, 2, 2, 2, 5772, 5770, 3, 2, 2, 2, 5773, 5774, 7, 1022, 2, 2, 5774, 5779, 5, 506, 254, 2, 5775, 5776, 7, 1024, 2, 2, 5776, 5778, 5, 506, 254, 2, 5777, 5775, 3, 2, 2, 2, 5778, 5781, 3, 2, 2, 2, 5779, 5777, 3, 2, 2, 2, 5779, 5780, 3, 2, 2, 2, 5780, 5782, 3, 2, 2, 2, 5781, 5779, 3, 2, 2, 2, 5782, 5783, 7, 1023, 2, 2, 5783, 563, 3, 2, 2, 2, 5784, 5789, 5, 604, 303, 2, 5785, 5786, 7, 1024, 2, 2, 5786, 5788, 5, 604, 303, 2, 5787, 5785, 3, 2, 2, 2, 5788, 5791, 3, 2, 2, 2, 5789, 5787, 3, 2, 2, 2, 5789, 5790, 3, 2, 2, 2, 5790, 565, 3, 2, 2, 2, 5791, 5789, 3, 2, 2, 2, 5792, 5797, 5, 578, 290, 2, 5793, 5794, 7, 1024, 2, 2, 5794, 5796, 5, 578, 290, 2, 5795, 5793, 3, 2, 2, 2, 5796, 5799, 3, 2, 2, 2, 5797, 5795, 3, 2, 2, 2, 5797, 5798, 3, 2, 2, 2, 5798, 567, 3, 2, 2, 2, 5799, 5797, 3, 2, 2, 2, 5800, 5805, 5, 544, 273, 2, 5801, 5802, 7, 1024, 2, 2, 5802, 5804, 5, 544, 273, 2, 5803, 5801, 3, 2, 2, 2, 5804, 5807, 3, 2, 2, 2, 5805, 5803, 3, 2, 2, 2, 5805, 5806, 3, 2, 2, 2, 5806, 569, 3, 2, 2, 2, 5807, 5805, 3, 2, 2, 2, 5808, 5813, 7, 1037, 2, 2, 5809, 5810, 7, 1024, 2, 2, 5810, 5812, 7, 1037, 2, 2, 5811, 5809, 3, 2, 2, 2, 5812, 5815, 3, 2, 2, 2, 5813, 5811, 3, 2, 2, 2, 5813, 5814, 3, 2, 2, 2, 5814, 571, 3, 2, 2, 2, 5815, 5813, 3, 2, 2, 2, 5816, 5821, 7, 1048, 2, 2, 5817, 5818, 7, 1024, 2, 2, 5818, 5820, 7, 1048, 2, 2, 5819, 5817, 3, 2, 2, 2, 5820, 5823, 3, 2, 2, 2, 5821, 5819, 3, 2, 2, 2, 5821, 5822, 3, 2, 2, 2, 5822, 573, 3, 2, 2, 2, 5823, 5821, 3, 2, 2, 2, 5824, 5836, 7, 106, 2, 2, 5825, 5827, 5, 610, 306, 2, 5826, 5825, 3, 2, 2, 2, 5826, 5827, 3, 2, 2, 2, 5827, 5828, 3, 2, 2, 2, 5828, 5836, 5, 544, 273, 2, 5829, 5833, 5, 576, 289, 2, 5830, 5831, 7, 108, 2, 2, 5831, 5832, 7, 168, 2, 2, 5832, 5834, 5, 576, 289, 2, 5833, 5830, 3, 2, 2, 2, 5833, 5834, 3, 2, 2, 2, 5834, 5836, 3, 2, 2, 2, 5835, 5824, 3, 2, 2, 2, 5835, 5826, 3, 2, 2, 2, 5835, 5829, 3, 2, 2, 2, 5836, 575, 3, 2, 2, 2, 5837, 5843, 9, 105, 2, 2, 5838, 5840, 7, 1022, 2, 2, 5839, 5841, 5, 532, 267, 2, 5840, 5839, 3, 2, 2, 2, 5840, 5841, 3, 2, 2, 2, 5841, 5842, 3, 2, 2, 2, 5842, 5844, 7, 1023, 2, 2, 5843, 5838, 3, 2, 2, 2, 5843, 5844, 3, 2, 2, 2, 5844, 5852, 3, 2, 2, 2, 5845, 5846, 7, 263, 2, 2, 5846, 5848, 7, 1022, 2, 2, 5847, 5849, 5, 532, 267, 2, 5848, 5847, 3, 2, 2, 2, 5848, 5849, 3, 2, 2, 2, 5849, 5850, 3, 2, 2, 2, 5850, 5852, 7, 1023, 2, 2, 5851, 5837, 3, 2, 2, 2, 5851, 5845, 3, 2, 2, 2, 5852, 577, 3, 2, 2, 2, 5853, 5856, 5, 604, 303, 2, 5854, 5856, 7, 40, 2, 2, 5855, 5853, 3, 2, 2, 2, 5855, 5854, 3, 2, 2, 2, 5856, 579, 3, 2, 2, 2, 5857, 5858, 7, 71, 2, 2, 5858, 5859, 7, 55, 2, 2, 5859, 581, 3, 2, 2, 2, 5860, 5861, 7, 71, 2, 2, 5861, 5862, 7, 104, 2, 2, 5862, 5863, 7, 55, 2, 2, 5863, 583, 3, 2, 2, 2, 5864, 5882, 5, 586, 294, 2, 5865, 5882, 5, 594, 298, 2, 5866, 5867, 5, 596, 299, 2, 5867, 5869, 7, 1022, 2, 2, 5868, 5870, 5, 600, 301, 2, 5869, 5868, 3, 2, 2, 2, 5869, 5870, 3, 2, 2, 2, 5870, 5871, 3, 2, 2, 2, 5871, 5872, 7, 1023, 2, 2, 5872, 5882, 3, 2, 2, 2, 5873, 5874, 5, 500, 251, 2, 5874, 5876, 7, 1022, 2, 2, 5875, 5877, 5, 600, 301, 2, 5876, 5875, 3, 2, 2, 2, 5876, 5877, 3, 2, 2, 2, 5877, 5878, 3, 2, 2, 2, 5878, 5879, 7, 1023, 2, 2, 5879, 5882, 3, 2, 2, 2, 5880, 5882, 5, 598, 300, 2, 5881, 5864, 3, 2, 2, 2, 5881, 5865, 3, 2, 2, 2, 5881, 5866, 3, 2, 2, 2, 5881, 5873, 3, 2, 2, 2, 5881, 5880, 3, 2, 2, 2, 5882, 585, 3, 2, 2, 2, 5883, 6041, 9, 106, 2, 2, 5884, 5885, 7, 31, 2, 2, 5885, 5886, 7, 1022, 2, 2, 5886, 5887, 5, 604, 303, 2, 5887, 5888, 7, 1024, 2, 2, 5888, 5889, 5, 550, 276, 2, 5889, 5890, 7, 1023, 2, 2, 5890, 6041, 3, 2, 2, 2, 5891, 5892, 7, 31, 2, 2, 5892, 5893, 7, 1022, 2, 2, 5893, 5894, 5, 604, 303, 2, 5894, 5895, 7, 171, 2, 2, 5895, 5896, 5, 512, 257, 2, 5896, 5897, 7, 1023, 2, 2, 5897, 6041, 3, 2, 2, 2, 5898, 5899, 7, 22, 2, 2, 5899, 5900, 7, 1022, 2, 2, 5900, 5901, 5, 604, 303, 2, 5901, 5902, 7, 13, 2, 2, 5902, 5903, 5, 550, 276, 2, 5903, 5904, 7, 1023, 2, 2, 5904, 6041, 3, 2, 2, 2, 5905, 5906, 7, 172, 2, 2, 5906, 5907, 7, 1022, 2, 2, 5907, 5908, 5, 504, 253, 2, 5908, 5909, 7, 1023, 2, 2, 5909, 6041, 3, 2, 2, 2, 5910, 5911, 7, 21, 2, 2, 5911, 5913, 5, 604, 303, 2, 5912, 5914, 5, 588, 295, 2, 5913, 5912, 3, 2, 2, 2, 5914, 5915, 3, 2, 2, 2, 5915, 5913, 3, 2, 2, 2, 5915, 5916, 3, 2, 2, 2, 5916, 5919, 3, 2, 2, 2, 5917, 5918, 7, 51, 2, 2, 5918, 5920, 5, 602, 302, 2, 5919, 5917, 3, 2, 2, 2, 5919, 5920, 3, 2, 2, 2, 5920, 5921, 3, 2, 2, 2, 5921, 5922, 7, 342, 2, 2, 5922, 6041, 3, 2, 2, 2, 5923, 5925, 7, 21, 2, 2, 5924, 5926, 5, 588, 295, 2, 5925, 5924, 3, 2, 2, 2, 5926, 5927, 3, 2, 2, 2, 5927, 5925, 3, 2, 2, 2, 5927, 5928, 3, 2, 2, 2, 5928, 5931, 3, 2, 2, 2, 5929, 5930, 7, 51, 2, 2, 5930, 5932, 5, 602, 302, 2, 5931, 5929, 3, 2, 2, 2, 5931, 5932, 3, 2, 2, 2, 5932, 5933, 3, 2, 2, 2, 5933, 5934, 7, 342, 2, 2, 5934, 6041, 3, 2, 2, 2, 5935, 5936, 7, 206, 2, 2, 5936, 5937, 7, 1022, 2, 2, 5937, 5940, 5, 600, 301, 2, 5938, 5939, 7, 171, 2, 2, 5939, 5941, 5, 512, 257, 2, 5940, 5938, 3, 2, 2, 2, 5940, 5941, 3, 2, 2, 2, 5941, 5942, 3, 2, 2, 2, 5942, 5943, 7, 1023, 2, 2, 5943, 6041, 3, 2, 2, 2, 5944, 5945, 7, 264, 2, 2, 5945, 5948, 7, 1022, 2, 2, 5946, 5949, 5, 536, 269, 2, 5947, 5949, 5, 604, 303, 2, 5948, 5946, 3, 2, 2, 2, 5948, 5947, 3, 2, 2, 2, 5949, 5950, 3, 2, 2, 2, 5950, 5953, 7, 73, 2, 2, 5951, 5954, 5, 536, 269, 2, 5952, 5954, 5, 604, 303, 2, 5953, 5951, 3, 2, 2, 2, 5953, 5952, 3, 2, 2, 2, 5954, 5955, 3, 2, 2, 2, 5955, 5956, 7, 1023, 2, 2, 5956, 6041, 3, 2, 2, 2, 5957, 5958, 9, 107, 2, 2, 5958, 5961, 7, 1022, 2, 2, 5959, 5962, 5, 536, 269, 2, 5960, 5962, 5, 604, 303, 2, 5961, 5959, 3, 2, 2, 2, 5961, 5960, 3, 2, 2, 2, 5962, 5963, 3, 2, 2, 2, 5963, 5966, 7, 63, 2, 2, 5964, 5967, 5, 532, 267, 2, 5965, 5967, 5, 604, 303, 2, 5966, 5964, 3, 2, 2, 2, 5966, 5965, 3, 2, 2, 2, 5967, 5973, 3, 2, 2, 2, 5968, 5971, 7, 60, 2, 2, 5969, 5972, 5, 532, 267, 2, 5970, 5972, 5, 604, 303, 2, 5971, 5969, 3, 2, 2, 2, 5971, 5970, 3, 2, 2, 2, 5972, 5974, 3, 2, 2, 2, 5973, 5968, 3, 2, 2, 2, 5973, 5974, 3, 2, 2, 2, 5974, 5975, 3, 2, 2, 2, 5975, 5976, 7, 1023, 2, 2, 5976, 6041, 3, 2, 2, 2, 5977, 5978, 7, 268, 2, 2, 5978, 5979, 7, 1022, 2, 2, 5979, 5982, 9, 108, 2, 2, 5980, 5983, 5, 536, 269, 2, 5981, 5983, 5, 604, 303, 2, 5982, 5980, 3, 2, 2, 2, 5982, 5981, 3, 2, 2, 2, 5982, 5983, 3, 2, 2, 2, 5983, 5984, 3, 2, 2, 2, 5984, 5987, 7, 63, 2, 2, 5985, 5988, 5, 536, 269, 2, 5986, 5988, 5, 604, 303, 2, 5987, 5985, 3, 2, 2, 2, 5987, 5986, 3, 2, 2, 2, 5988, 5989, 3, 2, 2, 2, 5989, 5990, 7, 1023, 2, 2, 5990, 6041, 3, 2, 2, 2, 5991, 5992, 7, 268, 2, 2, 5992, 5995, 7, 1022, 2, 2, 5993, 5996, 5, 536, 269, 2, 5994, 5996, 5, 604, 303, 2, 5995, 5993, 3, 2, 2, 2, 5995, 5994, 3, 2, 2, 2, 5996, 5997, 3, 2, 2, 2, 5997, 6000, 7, 63, 2, 2, 5998, 6001, 5, 536, 269, 2, 5999, 6001, 5, 604, 303, 2, 6000, 5998, 3, 2, 2, 2, 6000, 5999, 3, 2, 2, 2, 6001, 6002, 3, 2, 2, 2, 6002, 6003, 7, 1023, 2, 2, 6003, 6041, 3, 2, 2, 2, 6004, 6005, 7, 991, 2, 2, 6005, 6008, 7, 1022, 2, 2, 6006, 6009, 5, 536, 269, 2, 6007, 6009, 5, 604, 303, 2, 6008, 6006, 3, 2, 2, 2, 6008, 6007, 3, 2, 2, 2, 6009, 6016, 3, 2, 2, 2, 6010, 6011, 7, 13, 2, 2, 6011, 6012, 9, 109, 2, 2, 6012, 6013, 7, 1022, 2, 2, 6013, 6014, 5, 532, 267, 2, 6014, 6015, 7, 1023, 2, 2, 6015, 6017, 3, 2, 2, 2, 6016, 6010, 3, 2, 2, 2, 6016, 6017, 3, 2, 2, 2, 6017, 6019, 3, 2, 2, 2, 6018, 6020, 5, 590, 296, 2, 6019, 6018, 3, 2, 2, 2, 6019, 6020, 3, 2, 2, 2, 6020, 6021, 3, 2, 2, 2, 6021, 6022, 7, 1023, 2, 2, 6022, 6041, 3, 2, 2, 2, 6023, 6024, 7, 261, 2, 2, 6024, 6025, 7, 1022, 2, 2, 6025, 6026, 5, 62, 32, 2, 6026, 6029, 7, 63, 2, 2, 6027, 6030, 5, 536, 269, 2, 6028, 6030, 5, 604, 303, 2, 6029, 6027, 3, 2, 2, 2, 6029, 6028, 3, 2, 2, 2, 6030, 6031, 3, 2, 2, 2, 6031, 6032, 7, 1023, 2, 2, 6032, 6041, 3, 2, 2, 2, 6033, 6034, 7, 791, 2, 2, 6034, 6035, 7, 1022, 2, 2, 6035, 6036, 9, 110, 2, 2, 6036, 6037, 7, 1024, 2, 2, 6037, 6038, 5, 536, 269, 2, 6038, 6039, 7, 1023, 2, 2, 6039, 6041, 3, 2, 2, 2, 6040, 5883, 3, 2, 2, 2, 6040, 5884, 3, 2, 2, 2, 6040, 5891, 3, 2, 2, 2, 6040, 5898, 3, 2, 2, 2, 6040, 5905, 3, 2, 2, 2, 6040, 5910, 3, 2, 2, 2, 6040, 5923, 3, 2, 2, 2, 6040, 5935, 3, 2, 2, 2, 6040, 5944, 3, 2, 2, 2, 6040, 5957, 3, 2, 2, 2, 6040, 5977, 3, 2, 2, 2, 6040, 5991, 3, 2, 2, 2, 6040, 6004, 3, 2, 2, 2, 6040, 6023, 3, 2, 2, 2, 6040, 6033, 3, 2, 2, 2, 6041, 587, 3, 2, 2, 2, 6042, 6043, 7, 173, 2, 2, 6043, 6044, 5, 602, 302, 2, 6044, 6045, 7, 158, 2, 2, 6045, 6046, 5, 602, 302, 2, 6046, 589, 3, 2, 2, 2, 6047, 6048, 7, 402, 2, 2, 6048, 6053, 5, 592, 297, 2, 6049, 6050, 7, 1024, 2, 2, 6050, 6052, 5, 592, 297, 2, 6051, 6049, 3, 2, 2, 2, 6052, 6055, 3, 2, 2, 2, 6053, 6051, 3, 2, 2, 2, 6053, 6054, 3, 2, 2, 2, 6054, 6062, 3, 2, 2, 2, 6055, 6053, 3, 2, 2, 2, 6056, 6057, 7, 402, 2, 2, 6057, 6058, 5, 532, 267, 2, 6058, 6059, 7, 1010, 2, 2, 6059, 6060, 5, 532, 267, 2, 6060, 6062, 3, 2, 2, 2, 6061, 6047, 3, 2, 2, 2, 6061, 6056, 3, 2, 2, 2, 6062, 591, 3, 2, 2, 2, 6063, 6065, 5, 532, 267, 2, 6064, 6066, 9, 111, 2, 2, 6065, 6064, 3, 2, 2, 2, 6065, 6066, 3, 2, 2, 2, 6066, 593, 3, 2, 2, 2, 6067, 6068, 9, 112, 2, 2, 6068, 6070, 7, 1022, 2, 2, 6069, 6071, 9, 40, 2, 2, 6070, 6069, 3, 2, 2, 2, 6070, 6071, 3, 2, 2, 2, 6071, 6072, 3, 2, 2, 2, 6072, 6073, 5, 602, 302, 2, 6073, 6074, 7, 1023, 2, 2, 6074, 6124, 3, 2, 2, 2, 6075, 6076, 7, 241, 2, 2, 6076, 6082, 7, 1022, 2, 2, 6077, 6083, 7, 1005, 2, 2, 6078, 6080, 7, 8, 2, 2, 6079, 6078, 3, 2, 2, 2, 6079, 6080, 3, 2, 2, 2, 6080, 6081, 3, 2, 2, 2, 6081, 6083, 5, 602, 302, 2, 6082, 6077, 3, 2, 2, 2, 6082, 6079, 3, 2, 2, 2, 6083, 6084, 3, 2, 2, 2, 6084, 6124, 7, 1023, 2, 2, 6085, 6086, 7, 241, 2, 2, 6086, 6087, 7, 1022, 2, 2, 6087, 6088, 7, 47, 2, 2, 6088, 6089, 5, 600, 301, 2, 6089, 6090, 7, 1023, 2, 2, 6090, 6124, 3, 2, 2, 2, 6091, 6092, 9, 113, 2, 2, 6092, 6094, 7, 1022, 2, 2, 6093, 6095, 7, 8, 2, 2, 6094, 6093, 3, 2, 2, 2, 6094, 6095, 3, 2, 2, 2, 6095, 6096, 3, 2, 2, 2, 6096, 6097, 5, 602, 302, 2, 6097, 6098, 7, 1023, 2, 2, 6098, 6124, 3, 2, 2, 2, 6099, 6100, 7, 242, 2, 2, 6100, 6102, 7, 1022, 2, 2, 6101, 6103, 7, 47, 2, 2, 6102, 6101, 3, 2, 2, 2, 6102, 6103, 3, 2, 2, 2, 6103, 6104, 3, 2, 2, 2, 6104, 6115, 5, 600, 301, 2, 6105, 6106, 7, 113, 2, 2, 6106, 6107, 7, 18, 2, 2, 6107, 6112, 5, 212, 107, 2, 6108, 6109, 7, 1024, 2, 2, 6109, 6111, 5, 212, 107, 2, 6110, 6108, 3, 2, 2, 2, 6111, 6114, 3, 2, 2, 2, 6112, 6110, 3, 2, 2, 2, 6112, 6113, 3, 2, 2, 2, 6113, 6116, 3, 2, 2, 2, 6114, 6112, 3, 2, 2, 2, 6115, 6105, 3, 2, 2, 2, 6115, 6116, 3, 2, 2, 2, 6116, 6119, 3, 2, 2, 2, 6117, 6118, 7, 141, 2, 2, 6118, 6120, 7, 1037, 2, 2, 6119, 6117, 3, 2, 2, 2, 6119, 6120, 3, 2, 2, 2, 6120, 6121, 3, 2, 2, 2, 6121, 6122, 7, 1023, 2, 2, 6122, 6124, 3, 2, 2, 2, 6123, 6067, 3, 2, 2, 2, 6123, 6075, 3, 2, 2, 2, 6123, 6085, 3, 2, 2, 2, 6123, 6091, 3, 2, 2, 2, 6123, 6099, 3, 2, 2, 2, 6124, 595, 3, 2, 2, 2, 6125, 6149, 5, 632, 317, 2, 6126, 6149, 7, 640, 2, 2, 6127, 6149, 7, 257, 2, 2, 6128, 6149, 7, 253, 2, 2, 6129, 6149, 7, 254, 2, 2, 6130, 6149, 7, 255, 2, 2, 6131, 6149, 7, 258, 2, 2, 6132, 6149, 7, 259, 2, 2, 6133, 6149, 7, 260, 2, 2, 6134, 6149, 7, 71, 2, 2, 6135, 6149, 7, 78, 2, 2, 6136, 6149, 7, 256, 2, 2, 6137, 6149, 7, 262, 2, 2, 6138, 6149, 7, 437, 2, 2, 6139, 6149, 7, 263, 2, 2, 6140, 6149, 7, 129, 2, 2, 6141, 6149, 7, 265, 2, 2, 6142, 6149, 7, 266, 2, 2, 6143, 6149, 7, 267, 2, 2, 6144, 6149, 7, 268, 2, 2, 6145, 6149, 7, 269, 2, 2, 6146, 6149, 7, 270, 2, 2, 6147, 6149, 7, 271, 2, 2, 6148, 6125, 3, 2, 2, 2, 6148, 6126, 3, 2, 2, 2, 6148, 6127, 3, 2, 2, 2, 6148, 6128, 3, 2, 2, 2, 6148, 6129, 3, 2, 2, 2, 6148, 6130, 3, 2, 2, 2, 6148, 6131, 3, 2, 2, 2, 6148, 6132, 3, 2, 2, 2, 6148, 6133, 3, 2, 2, 2, 6148, 6134, 3, 2, 2, 2, 6148, 6135, 3, 2, 2, 2, 6148, 6136, 3, 2, 2, 2, 6148, 6137, 3, 2, 2, 2, 6148, 6138, 3, 2, 2, 2, 6148, 6139, 3, 2, 2, 2, 6148, 6140, 3, 2, 2, 2, 6148, 6141, 3, 2, 2, 2, 6148, 6142, 3, 2, 2, 2, 6148, 6143, 3, 2, 2, 2, 6148, 6144, 3, 2, 2, 2, 6148, 6145, 3, 2, 2, 2, 6148, 6146, 3, 2, 2, 2, 6148, 6147, 3, 2, 2, 2, 6149, 597, 3, 2, 2, 2, 6150, 6151, 9, 114, 2, 2, 6151, 6152, 7, 1022, 2, 2, 6152, 6153, 5, 602, 302, 2, 6153, 6154, 7, 1023, 2, 2, 6154, 599, 3, 2, 2, 2, 6155, 6160, 5, 544, 273, 2, 6156, 6160, 5, 504, 253, 2, 6157, 6160, 5, 584, 293, 2, 6158, 6160, 5, 604, 303, 2, 6159, 6155, 3, 2, 2, 2, 6159, 6156, 3, 2, 2, 2, 6159, 6157, 3, 2, 2, 2, 6159, 6158, 3, 2, 2, 2, 6160, 6170, 3, 2, 2, 2, 6161, 6166, 7, 1024, 2, 2, 6162, 6167, 5, 544, 273, 2, 6163, 6167, 5, 504, 253, 2, 6164, 6167, 5, 584, 293, 2, 6165, 6167, 5, 604, 303, 2, 6166, 6162, 3, 2, 2, 2, 6166, 6163, 3, 2, 2, 2, 6166, 6164, 3, 2, 2, 2, 6166, 6165, 3, 2, 2, 2, 6167, 6169, 3, 2, 2, 2, 6168, 6161, 3, 2, 2, 2, 6169, 6172, 3, 2, 2, 2, 6170, 6168, 3, 2, 2, 2, 6170, 6171, 3, 2, 2, 2, 6171, 601, 3, 2, 2, 2, 6172, 6170, 3, 2, 2, 2, 6173, 6178, 5, 544, 273, 2, 6174, 6178, 5, 504, 253, 2, 6175, 6178, 5, 584, 293, 2, 6176, 6178, 5, 604, 303, 2, 6177, 6173, 3, 2, 2, 2, 6177, 6174, 3, 2, 2, 2, 6177, 6175, 3, 2, 2, 2, 6177, 6176, 3, 2, 2, 2, 6178, 603, 3, 2, 2, 2, 6179, 6180, 8, 303, 1, 2, 6180, 6181, 9, 115, 2, 2, 6181, 6191, 5, 604, 303, 6, 6182, 6183, 5, 606, 304, 2, 6183, 6185, 7, 81, 2, 2, 6184, 6186, 7, 104, 2, 2, 6185, 6184, 3, 2, 2, 2, 6185, 6186, 3, 2, 2, 2, 6186, 6187, 3, 2, 2, 2, 6187, 6188, 9, 116, 2, 2, 6188, 6191, 3, 2, 2, 2, 6189, 6191, 5, 606, 304, 2, 6190, 6179, 3, 2, 2, 2, 6190, 6182, 3, 2, 2, 2, 6190, 6189, 3, 2, 2, 2, 6191, 6198, 3, 2, 2, 2, 6192, 6193, 12, 5, 2, 2, 6193, 6194, 5, 614, 308, 2, 6194, 6195, 5, 604, 303, 6, 6195, 6197, 3, 2, 2, 2, 6196, 6192, 3, 2, 2, 2, 6197, 6200, 3, 2, 2, 2, 6198, 6196, 3, 2, 2, 2, 6198, 6199, 3, 2, 2, 2, 6199, 605, 3, 2, 2, 2, 6200, 6198, 3, 2, 2, 2, 6201, 6204, 8, 304, 1, 2, 6202, 6203, 7, 1048, 2, 2, 6203, 6205, 7, 996, 2, 2, 6204, 6202, 3, 2, 2, 2, 6204, 6205, 3, 2, 2, 2, 6205, 6206, 3, 2, 2, 2, 6206, 6207, 5, 608, 305, 2, 6207, 6265, 3, 2, 2, 2, 6208, 6209, 12, 9, 2, 2, 6209, 6210, 5, 612, 307, 2, 6210, 6211, 5, 606, 304, 10, 6211, 6264, 3, 2, 2, 2, 6212, 6214, 12, 7, 2, 2, 6213, 6215, 7, 104, 2, 2, 6214, 6213, 3, 2, 2, 2, 6214, 6215, 3, 2, 2, 2, 6215, 6216, 3, 2, 2, 2, 6216, 6217, 7, 16, 2, 2, 6217, 6218, 5, 606, 304, 2, 6218, 6219, 7, 12, 2, 2, 6219, 6220, 5, 606, 304, 8, 6220, 6264, 3, 2, 2, 2, 6221, 6222, 12, 6, 2, 2, 6222, 6223, 7, 531, 2, 2, 6223, 6224, 7, 90, 2, 2, 6224, 6264, 5, 606, 304, 7, 6225, 6227, 12, 4, 2, 2, 6226, 6228, 7, 104, 2, 2, 6227, 6226, 3, 2, 2, 2, 6227, 6228, 3, 2, 2, 2, 6228, 6229, 3, 2, 2, 2, 6229, 6230, 9, 117, 2, 2, 6230, 6264, 5, 606, 304, 5, 6231, 6233, 12, 11, 2, 2, 6232, 6234, 7, 104, 2, 2, 6233, 6232, 3, 2, 2, 2, 6233, 6234, 3, 2, 2, 2, 6234, 6235, 3, 2, 2, 2, 6235, 6236, 7, 73, 2, 2, 6236, 6239, 7, 1022, 2, 2, 6237, 6240, 5, 182, 92, 2, 6238, 6240, 5, 564, 283, 2, 6239, 6237, 3, 2, 2, 2, 6239, 6238, 3, 2, 2, 2, 6240, 6241, 3, 2, 2, 2, 6241, 6242, 7, 1023, 2, 2, 6242, 6264, 3, 2, 2, 2, 6243, 6244, 12, 10, 2, 2, 6244, 6245, 7, 81, 2, 2, 6245, 6264, 5, 542, 272, 2, 6246, 6247, 12, 8, 2, 2, 6247, 6248, 5, 612, 307, 2, 6248, 6249, 9, 118, 2, 2, 6249, 6250, 7, 1022, 2, 2, 6250, 6251, 5, 182, 92, 2, 6251, 6252, 7, 1023, 2, 2, 6252, 6264, 3, 2, 2, 2, 6253, 6255, 12, 5, 2, 2, 6254, 6256, 7, 104, 2, 2, 6255, 6254, 3, 2, 2, 2, 6255, 6256, 3, 2, 2, 2, 6256, 6257, 3, 2, 2, 2, 6257, 6258, 7, 90, 2, 2, 6258, 6261, 5, 606, 304, 2, 6259, 6260, 7, 348, 2, 2, 6260, 6262, 7, 1037, 2, 2, 6261, 6259, 3, 2, 2, 2, 6261, 6262, 3, 2, 2, 2, 6262, 6264, 3, 2, 2, 2, 6263, 6208, 3, 2, 2, 2, 6263, 6212, 3, 2, 2, 2, 6263, 6221, 3, 2, 2, 2, 6263, 6225, 3, 2, 2, 2, 6263, 6231, 3, 2, 2, 2, 6263, 6243, 3, 2, 2, 2, 6263, 6246, 3, 2, 2, 2, 6263, 6253, 3, 2, 2, 2, 6264, 6267, 3, 2, 2, 2, 6265, 6263, 3, 2, 2, 2, 6265, 6266, 3, 2, 2, 2, 6266, 607, 3, 2, 2, 2, 6267, 6265, 3, 2, 2, 2, 6268, 6269, 8, 305, 1, 2, 6269, 6314, 5, 544, 273, 2, 6270, 6314, 5, 504, 253, 2, 6271, 6314, 5, 584, 293, 2, 6272, 6314, 5, 510, 256, 2, 6273, 6274, 5, 610, 306, 2, 6274, 6275, 5, 608, 305, 11, 6275, 6314, 3, 2, 2, 2, 6276, 6277, 7, 210, 2, 2, 6277, 6314, 5, 608, 305, 10, 6278, 6279, 7, 1022, 2, 2, 6279, 6284, 5, 604, 303, 2, 6280, 6281, 7, 1024, 2, 2, 6281, 6283, 5, 604, 303, 2, 6282, 6280, 3, 2, 2, 2, 6283, 6286, 3, 2, 2, 2, 6284, 6282, 3, 2, 2, 2, 6284, 6285, 3, 2, 2, 2, 6285, 6287, 3, 2, 2, 2, 6286, 6284, 3, 2, 2, 2, 6287, 6288, 7, 1023, 2, 2, 6288, 6314, 3, 2, 2, 2, 6289, 6290, 7, 513, 2, 2, 6290, 6291, 7, 1022, 2, 2, 6291, 6294, 5, 604, 303, 2, 6292, 6293, 7, 1024, 2, 2, 6293, 6295, 5, 604, 303, 2, 6294, 6292, 3, 2, 2, 2, 6295, 6296, 3, 2, 2, 2, 6296, 6294, 3, 2, 2, 2, 6296, 6297, 3, 2, 2, 2, 6297, 6298, 3, 2, 2, 2, 6298, 6299, 7, 1023, 2, 2, 6299, 6314, 3, 2, 2, 2, 6300, 6301, 7, 55, 2, 2, 6301, 6302, 7, 1022, 2, 2, 6302, 6303, 5, 182, 92, 2, 6303, 6304, 7, 1023, 2, 2, 6304, 6314, 3, 2, 2, 2, 6305, 6306, 7, 1022, 2, 2, 6306, 6307, 5, 182, 92, 2, 6307, 6308, 7, 1023, 2, 2, 6308, 6314, 3, 2, 2, 2, 6309, 6310, 7, 79, 2, 2, 6310, 6311, 5, 604, 303, 2, 6311, 6312, 5, 62, 32, 2, 6312, 6314, 3, 2, 2, 2, 6313, 6268, 3, 2, 2, 2, 6313, 6270, 3, 2, 2, 2, 6313, 6271, 3, 2, 2, 2, 6313, 6272, 3, 2, 2, 2, 6313, 6273, 3, 2, 2, 2, 6313, 6276, 3, 2, 2, 2, 6313, 6278, 3, 2, 2, 2, 6313, 6289, 3, 2, 2, 2, 6313, 6300, 3, 2, 2, 2, 6313, 6305, 3, 2, 2, 2, 6313, 6309, 3, 2, 2, 2, 6314, 6328, 3, 2, 2, 2, 6315, 6316, 12, 4, 2, 2, 6316, 6317, 5, 616, 309, 2, 6317, 6318, 5, 608, 305, 5, 6318, 6327, 3, 2, 2, 2, 6319, 6320, 12, 3, 2, 2, 6320, 6321, 5, 618, 310, 2, 6321, 6322, 5, 608, 305, 4, 6322, 6327, 3, 2, 2, 2, 6323, 6324, 12, 13, 2, 2, 6324, 6325, 7, 26, 2, 2, 6325, 6327, 5, 514, 258, 2, 6326, 6315, 3, 2, 2, 2, 6326, 6319, 3, 2, 2, 2, 6326, 6323, 3, 2, 2, 2, 6327, 6330, 3, 2, 2, 2, 6328, 6326, 3, 2, 2, 2, 6328, 6329, 3, 2, 2, 2, 6329, 609, 3, 2, 2, 2, 6330, 6328, 3, 2, 2, 2, 6331, 6332, 9, 119, 2, 2, 6332, 611, 3, 2, 2, 2, 6333, 6348, 7, 1013, 2, 2, 6334, 6348, 7, 1014, 2, 2, 6335, 6348, 7, 1015, 2, 2, 6336, 6337, 7, 1015, 2, 2, 6337, 6348, 7, 1013, 2, 2, 6338, 6339, 7, 1014, 2, 2, 6339, 6348, 7, 1013, 2, 2, 6340, 6341, 7, 1015, 2, 2, 6341, 6348, 7, 1014, 2, 2, 6342, 6343, 7, 1016, 2, 2, 6343, 6348, 7, 1013, 2, 2, 6344, 6345, 7, 1015, 2, 2, 6345, 6346, 7, 1013, 2, 2, 6346, 6348, 7, 1014, 2, 2, 6347, 6333, 3, 2, 2, 2, 6347, 6334, 3, 2, 2, 2, 6347, 6335, 3, 2, 2, 2, 6347, 6336, 3, 2, 2, 2, 6347, 6338, 3, 2, 2, 2, 6347, 6340, 3, 2, 2, 2, 6347, 6342, 3, 2, 2, 2, 6347, 6344, 3, 2, 2, 2, 6348, 613, 3, 2, 2, 2, 6349, 6357, 7, 12, 2, 2, 6350, 6351, 7, 1019, 2, 2, 6351, 6357, 7, 1019, 2, 2, 6352, 6357, 7, 178, 2, 2, 6353, 6357, 7, 112, 2, 2, 6354, 6355, 7, 1018, 2, 2, 6355, 6357, 7, 1018, 2, 2, 6356, 6349, 3, 2, 2, 2, 6356, 6350, 3, 2, 2, 2, 6356, 6352, 3, 2, 2, 2, 6356, 6353, 3, 2, 2, 2, 6356, 6354, 3, 2, 2, 2, 6357, 615, 3, 2, 2, 2, 6358, 6359, 7, 1015, 2, 2, 6359, 6366, 7, 1015, 2, 2, 6360, 6361, 7, 1014, 2, 2, 6361, 6366, 7, 1014, 2, 2, 6362, 6366, 7, 1019, 2, 2, 6363, 6366, 7, 1020, 2, 2, 6364, 6366, 7, 1018, 2, 2, 6365, 6358, 3, 2, 2, 2, 6365, 6360, 3, 2, 2, 2, 6365, 6362, 3, 2, 2, 2, 6365, 6363, 3, 2, 2, 2, 6365, 6364, 3, 2, 2, 2, 6366, 617, 3, 2, 2, 2, 6367, 6368, 9, 120, 2, 2, 6368, 619, 3, 2, 2, 2, 6369, 6370, 9, 121, 2, 2, 6370, 621, 3, 2, 2, 2, 6371, 6372, 9, 122, 2, 2, 6372, 623, 3, 2, 2, 2, 6373, 6374, 9, 123, 2, 2, 6374, 625, 3, 2, 2, 2, 6375, 6376, 9, 124, 2, 2, 6376, 627, 3, 2, 2, 2, 6377, 6378, 9, 125, 2, 2, 6378, 629, 3, 2, 2, 2, 6379, 6380, 9, 126, 2, 2, 6380, 631, 3, 2, 2, 2, 6381, 6382, 9, 127, 2, 2, 6382, 633, 3, 2, 2, 2, 930, 638, 641, 647, 650, 653, 655, 660, 663, 666, 675, 714, 726, 737, 754, 759, 771, 798, 807, 812, 818, 823, 827, 836, 839, 842, 846, 853, 856, 861, 869, 874, 879, 882, 884, 896, 899, 903, 906, 910, 913, 917, 920, 923, 927, 930, 934, 940, 946, 952, 959, 966, 972, 978, 987, 992, 1008, 1015, 1019, 1029, 1033, 1037, 1041, 1045, 1050, 1053, 1056, 1059, 1062, 1068, 1072, 1078, 1083, 1086, 1089, 1091, 1102, 1106, 1109, 1123, 1126, 1130, 1133, 1137, 1140, 1144, 1147, 1151, 1154, 1157, 1161, 1164, 1168, 1174, 1187, 1194, 1199, 1202, 1207, 1215, 1221, 1225, 1228, 1233, 1236, 1240, 1243, 1247, 1250, 1258, 1260, 1267, 1273, 1281, 1284, 1291, 1294, 1296, 1302, 1308, 1325, 1332, 1339, 1350, 1353, 1366, 1379, 1384, 1400, 1408, 1418, 1424, 1434, 1437, 1442, 1455, 1462, 1469, 1471, 1478, 1482, 1484, 1489, 1492, 1498, 1503, 1505, 1509, 1512, 1515, 1521, 1526, 1528, 1533, 1540, 1542, 1549, 1554, 1558, 1561, 1569, 1577, 1579, 1587, 1591, 1594, 1600, 1605, 1608, 1614, 1617, 1621, 1626, 1631, 1635, 1640, 1643, 1647, 1651, 1655, 1659, 1664, 1669, 1674, 1680, 1685, 1690, 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1731, 1736, 1741, 1746, 1752, 1757, 1763, 1773, 1780, 1782, 1790, 1795, 1798, 1806, 1812, 1828, 1840, 1842, 1845, 1853, 1859, 1865, 1878, 1885, 1893, 1896, 1907, 1915, 1918, 1930, 1937, 1945, 1948, 1960, 1967, 1975, 1978, 1985, 1993, 1996, 1998, 2003, 2011, 2020, 2024, 2028, 2033, 2039, 2045, 2050, 2055, 2060, 2065, 2068, 2073, 2078, 2088, 2092, 2099, 2104, 2107, 2112, 2115, 2119, 2123, 2131, 2150, 2153, 2156, 2160, 2170, 2183, 2190, 2193, 2202, 2205, 2208, 2219, 2222, 2226, 2234, 2237, 2242, 2250, 2256, 2260, 2264, 2269, 2274, 2281, 2285, 2296, 2304, 2307, 2313, 2319, 2321, 2326, 2329, 2335, 2341, 2343, 2347, 2350, 2353, 2359, 2365, 2368, 2374, 2380, 2382, 2387, 2395, 2397, 2406, 2411, 2419, 2423, 2431, 2441, 2446, 2453, 2457, 2461, 2490, 2494, 2506, 2509, 2518, 2535, 2547, 2554, 2561, 2576, 2589, 2595, 2601, 2607, 2613, 2619, 2625, 2630, 2637, 2644, 2651, 2656, 2659, 2661, 2675, 2682, 2689, 2695, 2699, 2703, 2710, 2713, 2718, 2725, 2732, 2736, 2745, 2754, 2763, 2766, 2770, 2779, 2783, 2786, 2789, 2795, 2798, 2804, 2813, 2816, 2827, 2830, 2835, 2838, 2843, 2853, 2858, 2864, 2866, 2872, 2874, 2880, 2888, 2893, 2901, 2904, 2909, 2912, 2917, 2925, 2933, 2939, 2947, 2952, 2960, 2963, 2967, 2970, 2978, 2984, 2993, 2996, 3000, 3004, 3010, 3014, 3018, 3020, 3023, 3026, 3029, 3035, 3039, 3042, 3045, 3048, 3051, 3053, 3057, 3063, 3069, 3074, 3077, 3083, 3087, 3095, 3099, 3102, 3105, 3114, 3118, 3121, 3125, 3129, 3132, 3135, 3140, 3146, 3150, 3160, 3166, 3170, 3176, 3180, 3186, 3189, 3201, 3205, 3209, 3217, 3221, 3229, 3232, 3236, 3239, 3247, 3252, 3255, 3258, 3262, 3265, 3274, 3279, 3288, 3293, 3300, 3307, 3315, 3320, 3328, 3331, 3334, 3341, 3344, 3351, 3354, 3362, 3368, 3379, 3382, 3393, 3399, 3403, 3414, 3419, 3421, 3425, 3435, 3445, 3451, 3456, 3459, 3462, 3465, 3471, 3476, 3479, 3482, 3485, 3487, 3493, 3498, 3501, 3504, 3508, 3514, 3518, 3528, 3532, 3538, 3547, 3550, 3554, 3557, 3561, 3565, 3568, 3570, 3578, 3590, 3596, 3598, 3604, 3606, 3608, 3614, 3622, 3630, 3636, 3645, 3650, 3652, 3656, 3660, 3666, 3673, 3677, 3686, 3689, 3693, 3697, 3701, 3704, 3707, 3710, 3714, 3718, 3721, 3724, 3727, 3734, 3738, 3753, 3766, 3774, 3784, 3788, 3791, 3797, 3800, 3803, 3812, 3821, 3831, 3835, 3845, 3855, 3863, 3866, 3875, 3878, 3882, 3887, 3891, 3900, 3903, 3934, 3937, 3940, 3996, 4001, 4029, 4043, 4050, 4054, 4060, 4068, 4070, 4081, 4091, 4098, 4104, 4112, 4117, 4125, 4133, 4141, 4149, 4155, 4158, 4162, 4167, 4172, 4178, 4180, 4191, 4196, 4203, 4205, 4219, 4225, 4230, 4235, 4241, 4248, 4256, 4264, 4269, 4275, 4278, 4286, 4293, 4302, 4305, 4322, 4330, 4338, 4342, 4349, 4355, 4363, 4372, 4378, 4385, 4392, 4397, 4400, 4402, 4408, 4410, 4414, 4416, 4419, 4428, 4434, 4441, 4448, 4453, 4456, 4458, 4464, 4466, 4470, 4472, 4475, 4480, 4487, 4496, 4501, 4510, 4517, 4522, 4525, 4527, 4533, 4535, 4538, 4550, 4556, 4565, 4574, 4579, 4588, 4594, 4605, 4608, 4620, 4627, 4632, 4647, 4658, 4661, 4671, 4681, 4691, 4701, 4705, 4709, 4719, 4724, 4774, 4792, 4800, 4811, 4818, 4822, 4829, 4834, 4837, 4840, 4849, 4853, 4883, 4890, 4894, 4901, 4904, 4920, 4923, 4933, 4937, 4943, 4946, 4951, 4955, 4962, 4965, 4971, 4995, 5008, 5011, 5021, 5029, 5033, 5040, 5043, 5052, 5058, 5064, 5074, 5076, 5082, 5085, 5088, 5100, 5103, 5109, 5112, 5120, 5128, 5134, 5138, 5152, 5164, 5171, 5174, 5181, 5188, 5193, 5198, 5209, 5220, 5226, 5231, 5244, 5246, 5251, 5256, 5258, 5265, 5272, 5275, 5278, 5284, 5288, 5294, 5300, 5313, 5318, 5326, 5329, 5334, 5339, 5347, 5350, 5356, 5360, 5373, 5379, 5391, 5394, 5403, 5408, 5414, 5421, 5423, 5427, 5433, 5436, 5446, 5450, 5470, 5477, 5479, 5486, 5488, 5492, 5497, 5508, 5513, 5519, 5522, 5526, 5531, 5534, 5538, 5542, 5544, 5549, 5554, 5567, 5570, 5574, 5577, 5582, 5585, 5589, 5594, 5597, 5602, 5605, 5611, 5614, 5618, 5621, 5624, 5628, 5631, 5634, 5638, 5641, 5644, 5647, 5651, 5654, 5657, 5662, 5667, 5672, 5675, 5680, 5683, 5688, 5691, 5695, 5699, 5707, 5714, 5718, 5723, 5726, 5731, 5735, 5737, 5753, 5762, 5770, 5779, 5789, 5797, 5805, 5813, 5821, 5826, 5833, 5835, 5840, 5843, 5848, 5851, 5855, 5869, 5876, 5881, 5915, 5919, 5927, 5931, 5940, 5948, 5953, 5961, 5966, 5971, 5973, 5982, 5987, 5995, 6000, 6008, 6016, 6019, 6029, 6040, 6053, 6061, 6065, 6070, 6079, 6082, 6094, 6102, 6112, 6115, 6119, 6123, 6148, 6159, 6166, 6170, 6177, 6185, 6190, 6198, 6204, 6214, 6227, 6233, 6239, 6255, 6261, 6263, 6265, 6284, 6296, 6313, 6326, 6328, 6347, 6356, 6365] \ No newline at end of file diff --git a/src/lib/generic/SqlParser.tokens b/src/lib/generic/SqlParser.tokens deleted file mode 100644 index 57b4669..0000000 --- a/src/lib/generic/SqlParser.tokens +++ /dev/null @@ -1,2074 +0,0 @@ -SPACE=1 -SPEC_MYSQL_COMMENT=2 -COMMENT_INPUT=3 -LINE_COMMENT=4 -ADD=5 -ALL=6 -ALTER=7 -ALWAYS=8 -ANALYZE=9 -AND=10 -AS=11 -ASC=12 -BEFORE=13 -BETWEEN=14 -BOTH=15 -BY=16 -CALL=17 -CASCADE=18 -CASE=19 -CAST=20 -CHANGE=21 -CHARACTER=22 -CHECK=23 -COLLATE=24 -COLUMN=25 -CONDITION=26 -CONSTRAINT=27 -CONTINUE=28 -CONVERT=29 -CREATE=30 -CROSS=31 -CURRENT=32 -CURRENT_USER=33 -CURSOR=34 -DATABASE=35 -DATABASES=36 -DECLARE=37 -DEFAULT=38 -DELAYED=39 -DELETE=40 -DESC=41 -DESCRIBE=42 -DETERMINISTIC=43 -DIAGNOSTICS=44 -DISTINCT=45 -DISTINCTROW=46 -DROP=47 -EACH=48 -ELSE=49 -ELSEIF=50 -ENCLOSED=51 -ESCAPED=52 -EXISTS=53 -EXIT=54 -EXPLAIN=55 -FALSE=56 -FETCH=57 -FOR=58 -FORCE=59 -FOREIGN=60 -FROM=61 -FULLTEXT=62 -GENERATED=63 -GET=64 -GRANT=65 -GROUP=66 -HAVING=67 -HIGH_PRIORITY=68 -IF=69 -IGNORE=70 -IN=71 -INDEX=72 -INFILE=73 -INNER=74 -INOUT=75 -INSERT=76 -INTERVAL=77 -INTO=78 -IS=79 -ITERATE=80 -JOIN=81 -KEY=82 -KEYS=83 -KILL=84 -LEADING=85 -LEAVE=86 -LEFT=87 -LIKE=88 -LIMIT=89 -LINEAR=90 -LINES=91 -LOAD=92 -LOCK=93 -LOOP=94 -LOW_PRIORITY=95 -MASTER_BIND=96 -MASTER_SSL_VERIFY_SERVER_CERT=97 -MATCH=98 -MAXVALUE=99 -MODIFIES=100 -NATURAL=101 -NOT=102 -NO_WRITE_TO_BINLOG=103 -NULL_LITERAL=104 -NUMBER=105 -ON=106 -OPTIMIZE=107 -OPTION=108 -OPTIONALLY=109 -OR=110 -ORDER=111 -OUT=112 -OUTER=113 -OUTFILE=114 -PARTITION=115 -PRIMARY=116 -PROCEDURE=117 -PURGE=118 -RANGE=119 -READ=120 -READS=121 -REFERENCES=122 -REGEXP=123 -RELEASE=124 -RENAME=125 -REPEAT=126 -REPLACE=127 -REQUIRE=128 -RESIGNAL=129 -RESTRICT=130 -RETURN=131 -REVOKE=132 -RIGHT=133 -RLIKE=134 -SCHEMA=135 -SCHEMAS=136 -SELECT=137 -SET=138 -SEPARATOR=139 -SHOW=140 -SIGNAL=141 -SPATIAL=142 -SQL=143 -SQLEXCEPTION=144 -SQLSTATE=145 -SQLWARNING=146 -SQL_BIG_RESULT=147 -SQL_CALC_FOUND_ROWS=148 -SQL_SMALL_RESULT=149 -SSL=150 -STACKED=151 -STARTING=152 -STRAIGHT_JOIN=153 -TABLE=154 -TERMINATED=155 -THEN=156 -TO=157 -TRAILING=158 -TRIGGER=159 -TRUE=160 -UNDO=161 -UNION=162 -UNIQUE=163 -UNLOCK=164 -UNSIGNED=165 -UPDATE=166 -USAGE=167 -USE=168 -USING=169 -VALUES=170 -WHEN=171 -WHERE=172 -WHILE=173 -WITH=174 -WRITE=175 -XOR=176 -ZEROFILL=177 -TINYINT=178 -SMALLINT=179 -MEDIUMINT=180 -MIDDLEINT=181 -INT=182 -INT1=183 -INT2=184 -INT3=185 -INT4=186 -INT8=187 -INTEGER=188 -BIGINT=189 -REAL=190 -DOUBLE=191 -PRECISION=192 -FLOAT=193 -FLOAT4=194 -FLOAT8=195 -DECIMAL=196 -DEC=197 -NUMERIC=198 -DATE=199 -TIME=200 -TIMESTAMP=201 -DATETIME=202 -YEAR=203 -CHAR=204 -VARCHAR=205 -NVARCHAR=206 -NATIONAL=207 -BINARY=208 -VARBINARY=209 -TINYBLOB=210 -BLOB=211 -MEDIUMBLOB=212 -LONG=213 -LONGBLOB=214 -TINYTEXT=215 -TEXT=216 -MEDIUMTEXT=217 -LONGTEXT=218 -ENUM=219 -VARYING=220 -SERIAL=221 -YEAR_MONTH=222 -DAY_HOUR=223 -DAY_MINUTE=224 -DAY_SECOND=225 -HOUR_MINUTE=226 -HOUR_SECOND=227 -MINUTE_SECOND=228 -SECOND_MICROSECOND=229 -MINUTE_MICROSECOND=230 -HOUR_MICROSECOND=231 -DAY_MICROSECOND=232 -JSON_VALID=233 -JSON_SCHEMA_VALID=234 -AVG=235 -BIT_AND=236 -BIT_OR=237 -BIT_XOR=238 -COUNT=239 -GROUP_CONCAT=240 -MAX=241 -MIN=242 -STD=243 -STDDEV=244 -STDDEV_POP=245 -STDDEV_SAMP=246 -SUM=247 -VAR_POP=248 -VAR_SAMP=249 -VARIANCE=250 -CURRENT_DATE=251 -CURRENT_TIME=252 -CURRENT_TIMESTAMP=253 -LOCALTIME=254 -CURDATE=255 -CURTIME=256 -DATE_ADD=257 -DATE_SUB=258 -EXTRACT=259 -LOCALTIMESTAMP=260 -NOW=261 -POSITION=262 -SUBSTR=263 -SUBSTRING=264 -SYSDATE=265 -TRIM=266 -UTC_DATE=267 -UTC_TIME=268 -UTC_TIMESTAMP=269 -ACCOUNT=270 -ACTION=271 -AFTER=272 -AGGREGATE=273 -ALGORITHM=274 -ANY=275 -AT=276 -AUTHORS=277 -AUTOCOMMIT=278 -AUTOEXTEND_SIZE=279 -AUTO_INCREMENT=280 -AVG_ROW_LENGTH=281 -BEGIN=282 -BINLOG=283 -BIT=284 -BLOCK=285 -BOOL=286 -BOOLEAN=287 -BTREE=288 -CACHE=289 -CASCADED=290 -CHAIN=291 -CHANGED=292 -CHANNEL=293 -CHECKSUM=294 -PAGE_CHECKSUM=295 -CIPHER=296 -CLASS_ORIGIN=297 -CLIENT=298 -CLOSE=299 -COALESCE=300 -CODE=301 -COLUMNS=302 -COLUMN_FORMAT=303 -COLUMN_NAME=304 -COMMENT=305 -COMMIT=306 -COMPACT=307 -COMPLETION=308 -COMPRESSED=309 -COMPRESSION=310 -CONCURRENT=311 -CONNECTION=312 -CONSISTENT=313 -CONSTRAINT_CATALOG=314 -CONSTRAINT_SCHEMA=315 -CONSTRAINT_NAME=316 -CONTAINS=317 -CONTEXT=318 -CONTRIBUTORS=319 -COPY=320 -CPU=321 -CURSOR_NAME=322 -DATA=323 -DATAFILE=324 -DEALLOCATE=325 -DEFAULT_AUTH=326 -DEFINER=327 -DELAY_KEY_WRITE=328 -DES_KEY_FILE=329 -DIRECTORY=330 -DISABLE=331 -DISCARD=332 -DISK=333 -DO=334 -DUMPFILE=335 -DUPLICATE=336 -DYNAMIC=337 -ENABLE=338 -ENCRYPTION=339 -END=340 -ENDS=341 -ENGINE=342 -ENGINES=343 -ERROR=344 -ERRORS=345 -ESCAPE=346 -EVEN=347 -EVENT=348 -EVENTS=349 -EVERY=350 -EXCHANGE=351 -EXCLUSIVE=352 -EXPIRE=353 -EXPORT=354 -EXTENDED=355 -EXTENT_SIZE=356 -FAST=357 -FAULTS=358 -FIELDS=359 -FILE_BLOCK_SIZE=360 -FILTER=361 -FIRST=362 -FIXED=363 -FLUSH=364 -FOLLOWS=365 -FOUND=366 -FULL=367 -FUNCTION=368 -GENERAL=369 -GLOBAL=370 -GRANTS=371 -GROUP_REPLICATION=372 -HANDLER=373 -HASH=374 -HELP=375 -HOST=376 -HOSTS=377 -IDENTIFIED=378 -IGNORE_SERVER_IDS=379 -IMPORT=380 -INDEXES=381 -INITIAL_SIZE=382 -INPLACE=383 -INSERT_METHOD=384 -INSTALL=385 -INSTANCE=386 -INVISIBLE=387 -INVOKER=388 -IO=389 -IO_THREAD=390 -IPC=391 -ISOLATION=392 -ISSUER=393 -JSON=394 -KEY_BLOCK_SIZE=395 -LANGUAGE=396 -LAST=397 -LEAVES=398 -LESS=399 -LEVEL=400 -LIST=401 -LOCAL=402 -LOGFILE=403 -LOGS=404 -MASTER=405 -MASTER_AUTO_POSITION=406 -MASTER_CONNECT_RETRY=407 -MASTER_DELAY=408 -MASTER_HEARTBEAT_PERIOD=409 -MASTER_HOST=410 -MASTER_LOG_FILE=411 -MASTER_LOG_POS=412 -MASTER_PASSWORD=413 -MASTER_PORT=414 -MASTER_RETRY_COUNT=415 -MASTER_SSL=416 -MASTER_SSL_CA=417 -MASTER_SSL_CAPATH=418 -MASTER_SSL_CERT=419 -MASTER_SSL_CIPHER=420 -MASTER_SSL_CRL=421 -MASTER_SSL_CRLPATH=422 -MASTER_SSL_KEY=423 -MASTER_TLS_VERSION=424 -MASTER_USER=425 -MAX_CONNECTIONS_PER_HOUR=426 -MAX_QUERIES_PER_HOUR=427 -MAX_ROWS=428 -MAX_SIZE=429 -MAX_UPDATES_PER_HOUR=430 -MAX_USER_CONNECTIONS=431 -MEDIUM=432 -MERGE=433 -MESSAGE_TEXT=434 -MID=435 -MIGRATE=436 -MIN_ROWS=437 -MODE=438 -MODIFY=439 -MUTEX=440 -MYSQL=441 -MYSQL_ERRNO=442 -NAME=443 -NAMES=444 -NCHAR=445 -NEVER=446 -NEXT=447 -NO=448 -NODEGROUP=449 -NONE=450 -OFFLINE=451 -OFFSET=452 -OJ=453 -OLD_PASSWORD=454 -ONE=455 -ONLINE=456 -ONLY=457 -OPEN=458 -OPTIMIZER_COSTS=459 -OPTIONS=460 -OWNER=461 -PACK_KEYS=462 -PAGE=463 -PARSER=464 -PARTIAL=465 -PARTITIONING=466 -PARTITIONS=467 -PASSWORD=468 -PHASE=469 -PLUGIN=470 -PLUGIN_DIR=471 -PLUGINS=472 -PORT=473 -PRECEDES=474 -PREPARE=475 -PRESERVE=476 -PREV=477 -PROCESSLIST=478 -PROFILE=479 -PROFILES=480 -PROXY=481 -QUERY=482 -QUICK=483 -REBUILD=484 -RECOVER=485 -REDO_BUFFER_SIZE=486 -REDUNDANT=487 -RELAY=488 -RELAY_LOG_FILE=489 -RELAY_LOG_POS=490 -RELAYLOG=491 -REMOVE=492 -REORGANIZE=493 -REPAIR=494 -REPLICATE_DO_DB=495 -REPLICATE_DO_TABLE=496 -REPLICATE_IGNORE_DB=497 -REPLICATE_IGNORE_TABLE=498 -REPLICATE_REWRITE_DB=499 -REPLICATE_WILD_DO_TABLE=500 -REPLICATE_WILD_IGNORE_TABLE=501 -REPLICATION=502 -RESET=503 -RESUME=504 -RETURNED_SQLSTATE=505 -RETURNS=506 -ROLE=507 -ROLLBACK=508 -ROLLUP=509 -ROTATE=510 -ROW=511 -ROWS=512 -ROW_FORMAT=513 -SAVEPOINT=514 -SCHEDULE=515 -SECURITY=516 -SERVER=517 -SESSION=518 -SHARE=519 -SHARED=520 -SIGNED=521 -SIMPLE=522 -SLAVE=523 -SLOW=524 -SNAPSHOT=525 -SOCKET=526 -SOME=527 -SONAME=528 -SOUNDS=529 -SOURCE=530 -SQL_AFTER_GTIDS=531 -SQL_AFTER_MTS_GAPS=532 -SQL_BEFORE_GTIDS=533 -SQL_BUFFER_RESULT=534 -SQL_CACHE=535 -SQL_NO_CACHE=536 -SQL_THREAD=537 -START=538 -STARTS=539 -STATS_AUTO_RECALC=540 -STATS_PERSISTENT=541 -STATS_SAMPLE_PAGES=542 -STATUS=543 -STOP=544 -STORAGE=545 -STORED=546 -STRING=547 -SUBCLASS_ORIGIN=548 -SUBJECT=549 -SUBPARTITION=550 -SUBPARTITIONS=551 -SUSPEND=552 -SWAPS=553 -SWITCHES=554 -TABLE_NAME=555 -TABLESPACE=556 -TEMPORARY=557 -TEMPTABLE=558 -THAN=559 -TRADITIONAL=560 -TRANSACTION=561 -TRANSACTIONAL=562 -TRIGGERS=563 -TRUNCATE=564 -UNDEFINED=565 -UNDOFILE=566 -UNDO_BUFFER_SIZE=567 -UNINSTALL=568 -UNKNOWN=569 -UNTIL=570 -UPGRADE=571 -USER=572 -USE_FRM=573 -USER_RESOURCES=574 -VALIDATION=575 -VALUE=576 -VARIABLES=577 -VIEW=578 -VIRTUAL=579 -VISIBLE=580 -WAIT=581 -WARNINGS=582 -WITHOUT=583 -WORK=584 -WRAPPER=585 -X509=586 -XA=587 -XML=588 -EUR=589 -USA=590 -JIS=591 -ISO=592 -INTERNAL=593 -QUARTER=594 -MONTH=595 -DAY=596 -HOUR=597 -MINUTE=598 -WEEK=599 -SECOND=600 -MICROSECOND=601 -TABLES=602 -ROUTINE=603 -EXECUTE=604 -FILE=605 -PROCESS=606 -RELOAD=607 -SHUTDOWN=608 -SUPER=609 -PRIVILEGES=610 -APPLICATION_PASSWORD_ADMIN=611 -AUDIT_ADMIN=612 -BACKUP_ADMIN=613 -BINLOG_ADMIN=614 -BINLOG_ENCRYPTION_ADMIN=615 -CLONE_ADMIN=616 -CONNECTION_ADMIN=617 -ENCRYPTION_KEY_ADMIN=618 -FIREWALL_ADMIN=619 -FIREWALL_USER=620 -GROUP_REPLICATION_ADMIN=621 -INNODB_REDO_LOG_ARCHIVE=622 -NDB_STORED_USER=623 -PERSIST_RO_VARIABLES_ADMIN=624 -REPLICATION_APPLIER=625 -REPLICATION_SLAVE_ADMIN=626 -RESOURCE_GROUP_ADMIN=627 -RESOURCE_GROUP_USER=628 -ROLE_ADMIN=629 -SESSION_VARIABLES_ADMIN=630 -SET_USER_ID=631 -SHOW_ROUTINE=632 -SYSTEM_VARIABLES_ADMIN=633 -TABLE_ENCRYPTION_ADMIN=634 -VERSION_TOKEN_ADMIN=635 -XA_RECOVER_ADMIN=636 -ARMSCII8=637 -ASCII=638 -BIG5=639 -CP1250=640 -CP1251=641 -CP1256=642 -CP1257=643 -CP850=644 -CP852=645 -CP866=646 -CP932=647 -DEC8=648 -EUCJPMS=649 -EUCKR=650 -GB2312=651 -GBK=652 -GEOSTD8=653 -GREEK=654 -HEBREW=655 -HP8=656 -KEYBCS2=657 -KOI8R=658 -KOI8U=659 -LATIN1=660 -LATIN2=661 -LATIN5=662 -LATIN7=663 -MACCE=664 -MACROMAN=665 -SJIS=666 -SWE7=667 -TIS620=668 -UCS2=669 -UJIS=670 -UTF16=671 -UTF16LE=672 -UTF32=673 -UTF8=674 -UTF8MB3=675 -UTF8MB4=676 -ARCHIVE=677 -BLACKHOLE=678 -CSV=679 -FEDERATED=680 -INNODB=681 -MEMORY=682 -MRG_MYISAM=683 -MYISAM=684 -NDB=685 -NDBCLUSTER=686 -PERFORMANCE_SCHEMA=687 -TOKUDB=688 -REPEATABLE=689 -COMMITTED=690 -UNCOMMITTED=691 -SERIALIZABLE=692 -GEOMETRYCOLLECTION=693 -GEOMCOLLECTION=694 -GEOMETRY=695 -LINESTRING=696 -MULTILINESTRING=697 -MULTIPOINT=698 -MULTIPOLYGON=699 -POINT=700 -POLYGON=701 -ABS=702 -ACOS=703 -ADDDATE=704 -ADDTIME=705 -AES_DECRYPT=706 -AES_ENCRYPT=707 -AREA=708 -ASBINARY=709 -ASIN=710 -ASTEXT=711 -ASWKB=712 -ASWKT=713 -ASYMMETRIC_DECRYPT=714 -ASYMMETRIC_DERIVE=715 -ASYMMETRIC_ENCRYPT=716 -ASYMMETRIC_SIGN=717 -ASYMMETRIC_VERIFY=718 -ATAN=719 -ATAN2=720 -BENCHMARK=721 -BIN=722 -BIT_COUNT=723 -BIT_LENGTH=724 -BUFFER=725 -CATALOG_NAME=726 -CEIL=727 -CEILING=728 -CENTROID=729 -CHARACTER_LENGTH=730 -CHARSET=731 -CHAR_LENGTH=732 -COERCIBILITY=733 -COLLATION=734 -COMPRESS=735 -CONCAT=736 -CONCAT_WS=737 -CONNECTION_ID=738 -CONV=739 -CONVERT_TZ=740 -COS=741 -COT=742 -CRC32=743 -CREATE_ASYMMETRIC_PRIV_KEY=744 -CREATE_ASYMMETRIC_PUB_KEY=745 -CREATE_DH_PARAMETERS=746 -CREATE_DIGEST=747 -CROSSES=748 -DATEDIFF=749 -DATE_FORMAT=750 -DAYNAME=751 -DAYOFMONTH=752 -DAYOFWEEK=753 -DAYOFYEAR=754 -DECODE=755 -DEGREES=756 -DES_DECRYPT=757 -DES_ENCRYPT=758 -DIMENSION=759 -DISJOINT=760 -ELT=761 -ENCODE=762 -ENCRYPT=763 -ENDPOINT=764 -ENVELOPE=765 -EQUALS=766 -EXP=767 -EXPORT_SET=768 -EXTERIORRING=769 -EXTRACTVALUE=770 -FIELD=771 -FIND_IN_SET=772 -FLOOR=773 -FORMAT=774 -FOUND_ROWS=775 -FROM_BASE64=776 -FROM_DAYS=777 -FROM_UNIXTIME=778 -GEOMCOLLFROMTEXT=779 -GEOMCOLLFROMWKB=780 -GEOMETRYCOLLECTIONFROMTEXT=781 -GEOMETRYCOLLECTIONFROMWKB=782 -GEOMETRYFROMTEXT=783 -GEOMETRYFROMWKB=784 -GEOMETRYN=785 -GEOMETRYTYPE=786 -GEOMFROMTEXT=787 -GEOMFROMWKB=788 -GET_FORMAT=789 -GET_LOCK=790 -GLENGTH=791 -GREATEST=792 -GTID_SUBSET=793 -GTID_SUBTRACT=794 -HEX=795 -IFNULL=796 -INET6_ATON=797 -INET6_NTOA=798 -INET_ATON=799 -INET_NTOA=800 -INSTR=801 -INTERIORRINGN=802 -INTERSECTS=803 -ISCLOSED=804 -ISEMPTY=805 -ISNULL=806 -ISSIMPLE=807 -IS_FREE_LOCK=808 -IS_IPV4=809 -IS_IPV4_COMPAT=810 -IS_IPV4_MAPPED=811 -IS_IPV6=812 -IS_USED_LOCK=813 -LAST_INSERT_ID=814 -LCASE=815 -LEAST=816 -LENGTH=817 -LINEFROMTEXT=818 -LINEFROMWKB=819 -LINESTRINGFROMTEXT=820 -LINESTRINGFROMWKB=821 -LN=822 -LOAD_FILE=823 -LOCATE=824 -LOG=825 -LOG10=826 -LOG2=827 -LOWER=828 -LPAD=829 -LTRIM=830 -MAKEDATE=831 -MAKETIME=832 -MAKE_SET=833 -MASTER_POS_WAIT=834 -MBRCONTAINS=835 -MBRDISJOINT=836 -MBREQUAL=837 -MBRINTERSECTS=838 -MBROVERLAPS=839 -MBRTOUCHES=840 -MBRWITHIN=841 -MD5=842 -MLINEFROMTEXT=843 -MLINEFROMWKB=844 -MONTHNAME=845 -MPOINTFROMTEXT=846 -MPOINTFROMWKB=847 -MPOLYFROMTEXT=848 -MPOLYFROMWKB=849 -MULTILINESTRINGFROMTEXT=850 -MULTILINESTRINGFROMWKB=851 -MULTIPOINTFROMTEXT=852 -MULTIPOINTFROMWKB=853 -MULTIPOLYGONFROMTEXT=854 -MULTIPOLYGONFROMWKB=855 -NAME_CONST=856 -NULLIF=857 -NUMGEOMETRIES=858 -NUMINTERIORRINGS=859 -NUMPOINTS=860 -OCT=861 -OCTET_LENGTH=862 -ORD=863 -OVERLAPS=864 -PERIOD_ADD=865 -PERIOD_DIFF=866 -PI=867 -POINTFROMTEXT=868 -POINTFROMWKB=869 -POINTN=870 -POLYFROMTEXT=871 -POLYFROMWKB=872 -POLYGONFROMTEXT=873 -POLYGONFROMWKB=874 -POW=875 -POWER=876 -QUOTE=877 -RADIANS=878 -RAND=879 -RANDOM_BYTES=880 -RELEASE_LOCK=881 -REVERSE=882 -ROUND=883 -ROW_COUNT=884 -RPAD=885 -RTRIM=886 -SEC_TO_TIME=887 -SESSION_USER=888 -SHA=889 -SHA1=890 -SHA2=891 -SCHEMA_NAME=892 -SIGN=893 -SIN=894 -SLEEP=895 -SOUNDEX=896 -SQL_THREAD_WAIT_AFTER_GTIDS=897 -SQRT=898 -SRID=899 -STARTPOINT=900 -STRCMP=901 -STR_TO_DATE=902 -ST_AREA=903 -ST_ASBINARY=904 -ST_ASTEXT=905 -ST_ASWKB=906 -ST_ASWKT=907 -ST_BUFFER=908 -ST_CENTROID=909 -ST_CONTAINS=910 -ST_CROSSES=911 -ST_DIFFERENCE=912 -ST_DIMENSION=913 -ST_DISJOINT=914 -ST_DISTANCE=915 -ST_ENDPOINT=916 -ST_ENVELOPE=917 -ST_EQUALS=918 -ST_EXTERIORRING=919 -ST_GEOMCOLLFROMTEXT=920 -ST_GEOMCOLLFROMTXT=921 -ST_GEOMCOLLFROMWKB=922 -ST_GEOMETRYCOLLECTIONFROMTEXT=923 -ST_GEOMETRYCOLLECTIONFROMWKB=924 -ST_GEOMETRYFROMTEXT=925 -ST_GEOMETRYFROMWKB=926 -ST_GEOMETRYN=927 -ST_GEOMETRYTYPE=928 -ST_GEOMFROMTEXT=929 -ST_GEOMFROMWKB=930 -ST_INTERIORRINGN=931 -ST_INTERSECTION=932 -ST_INTERSECTS=933 -ST_ISCLOSED=934 -ST_ISEMPTY=935 -ST_ISSIMPLE=936 -ST_LINEFROMTEXT=937 -ST_LINEFROMWKB=938 -ST_LINESTRINGFROMTEXT=939 -ST_LINESTRINGFROMWKB=940 -ST_NUMGEOMETRIES=941 -ST_NUMINTERIORRING=942 -ST_NUMINTERIORRINGS=943 -ST_NUMPOINTS=944 -ST_OVERLAPS=945 -ST_POINTFROMTEXT=946 -ST_POINTFROMWKB=947 -ST_POINTN=948 -ST_POLYFROMTEXT=949 -ST_POLYFROMWKB=950 -ST_POLYGONFROMTEXT=951 -ST_POLYGONFROMWKB=952 -ST_SRID=953 -ST_STARTPOINT=954 -ST_SYMDIFFERENCE=955 -ST_TOUCHES=956 -ST_UNION=957 -ST_WITHIN=958 -ST_X=959 -ST_Y=960 -SUBDATE=961 -SUBSTRING_INDEX=962 -SUBTIME=963 -SYSTEM_USER=964 -TAN=965 -TIMEDIFF=966 -TIMESTAMPADD=967 -TIMESTAMPDIFF=968 -TIME_FORMAT=969 -TIME_TO_SEC=970 -TOUCHES=971 -TO_BASE64=972 -TO_DAYS=973 -TO_SECONDS=974 -UCASE=975 -UNCOMPRESS=976 -UNCOMPRESSED_LENGTH=977 -UNHEX=978 -UNIX_TIMESTAMP=979 -UPDATEXML=980 -UPPER=981 -UUID=982 -UUID_SHORT=983 -VALIDATE_PASSWORD_STRENGTH=984 -VERSION=985 -WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS=986 -WEEKDAY=987 -WEEKOFYEAR=988 -WEIGHT_STRING=989 -WITHIN=990 -YEARWEEK=991 -Y_FUNCTION=992 -X_FUNCTION=993 -VAR_ASSIGN=994 -PLUS_ASSIGN=995 -MINUS_ASSIGN=996 -MULT_ASSIGN=997 -DIV_ASSIGN=998 -MOD_ASSIGN=999 -AND_ASSIGN=1000 -XOR_ASSIGN=1001 -OR_ASSIGN=1002 -STAR=1003 -DIVIDE=1004 -MODULE=1005 -PLUS=1006 -MINUSMINUS=1007 -MINUS=1008 -DIV=1009 -MOD=1010 -EQUAL_SYMBOL=1011 -GREATER_SYMBOL=1012 -LESS_SYMBOL=1013 -EXCLAMATION_SYMBOL=1014 -BIT_NOT_OP=1015 -BIT_OR_OP=1016 -BIT_AND_OP=1017 -BIT_XOR_OP=1018 -DOT=1019 -LR_BRACKET=1020 -RR_BRACKET=1021 -COMMA=1022 -SEMI=1023 -AT_SIGN=1024 -ZERO_DECIMAL=1025 -ONE_DECIMAL=1026 -TWO_DECIMAL=1027 -SINGLE_QUOTE_SYMB=1028 -DOUBLE_QUOTE_SYMB=1029 -REVERSE_QUOTE_SYMB=1030 -COLON_SYMB=1031 -CHARSET_REVERSE_QOUTE_STRING=1032 -FILESIZE_LITERAL=1033 -START_NATIONAL_STRING_LITERAL=1034 -STRING_LITERAL=1035 -DECIMAL_LITERAL=1036 -HEXADECIMAL_LITERAL=1037 -REAL_LITERAL=1038 -NULL_SPEC_LITERAL=1039 -BIT_STRING=1040 -STRING_CHARSET_NAME=1041 -DOT_ID=1042 -ID=1043 -REVERSE_QUOTE_ID=1044 -STRING_USER_NAME=1045 -LOCAL_ID=1046 -GLOBAL_ID=1047 -ERROR_RECONGNIGION=1048 -'ADD'=5 -'ALL'=6 -'ALTER'=7 -'ALWAYS'=8 -'ANALYZE'=9 -'AND'=10 -'AS'=11 -'ASC'=12 -'BEFORE'=13 -'BETWEEN'=14 -'BOTH'=15 -'BY'=16 -'CALL'=17 -'CASCADE'=18 -'CASE'=19 -'CAST'=20 -'CHANGE'=21 -'CHARACTER'=22 -'CHECK'=23 -'COLLATE'=24 -'COLUMN'=25 -'CONDITION'=26 -'CONSTRAINT'=27 -'CONTINUE'=28 -'CONVERT'=29 -'CREATE'=30 -'CROSS'=31 -'CURRENT'=32 -'CURRENT_USER'=33 -'CURSOR'=34 -'DATABASE'=35 -'DATABASES'=36 -'DECLARE'=37 -'DEFAULT'=38 -'DELAYED'=39 -'DELETE'=40 -'DESC'=41 -'DESCRIBE'=42 -'DETERMINISTIC'=43 -'DIAGNOSTICS'=44 -'DISTINCT'=45 -'DISTINCTROW'=46 -'DROP'=47 -'EACH'=48 -'ELSE'=49 -'ELSEIF'=50 -'ENCLOSED'=51 -'ESCAPED'=52 -'EXISTS'=53 -'EXIT'=54 -'EXPLAIN'=55 -'FALSE'=56 -'FETCH'=57 -'FOR'=58 -'FORCE'=59 -'FOREIGN'=60 -'FROM'=61 -'FULLTEXT'=62 -'GENERATED'=63 -'GET'=64 -'GRANT'=65 -'GROUP'=66 -'HAVING'=67 -'HIGH_PRIORITY'=68 -'IF'=69 -'IGNORE'=70 -'IN'=71 -'INDEX'=72 -'INFILE'=73 -'INNER'=74 -'INOUT'=75 -'INSERT'=76 -'INTERVAL'=77 -'INTO'=78 -'IS'=79 -'ITERATE'=80 -'JOIN'=81 -'KEY'=82 -'KEYS'=83 -'KILL'=84 -'LEADING'=85 -'LEAVE'=86 -'LEFT'=87 -'LIKE'=88 -'LIMIT'=89 -'LINEAR'=90 -'LINES'=91 -'LOAD'=92 -'LOCK'=93 -'LOOP'=94 -'LOW_PRIORITY'=95 -'MASTER_BIND'=96 -'MASTER_SSL_VERIFY_SERVER_CERT'=97 -'MATCH'=98 -'MAXVALUE'=99 -'MODIFIES'=100 -'NATURAL'=101 -'NOT'=102 -'NO_WRITE_TO_BINLOG'=103 -'NULL'=104 -'NUMBER'=105 -'ON'=106 -'OPTIMIZE'=107 -'OPTION'=108 -'OPTIONALLY'=109 -'OR'=110 -'ORDER'=111 -'OUT'=112 -'OUTER'=113 -'OUTFILE'=114 -'PARTITION'=115 -'PRIMARY'=116 -'PROCEDURE'=117 -'PURGE'=118 -'RANGE'=119 -'READ'=120 -'READS'=121 -'REFERENCES'=122 -'REGEXP'=123 -'RELEASE'=124 -'RENAME'=125 -'REPEAT'=126 -'REPLACE'=127 -'REQUIRE'=128 -'RESIGNAL'=129 -'RESTRICT'=130 -'RETURN'=131 -'REVOKE'=132 -'RIGHT'=133 -'RLIKE'=134 -'SCHEMA'=135 -'SCHEMAS'=136 -'SELECT'=137 -'SET'=138 -'SEPARATOR'=139 -'SHOW'=140 -'SIGNAL'=141 -'SPATIAL'=142 -'SQL'=143 -'SQLEXCEPTION'=144 -'SQLSTATE'=145 -'SQLWARNING'=146 -'SQL_BIG_RESULT'=147 -'SQL_CALC_FOUND_ROWS'=148 -'SQL_SMALL_RESULT'=149 -'SSL'=150 -'STACKED'=151 -'STARTING'=152 -'STRAIGHT_JOIN'=153 -'TABLE'=154 -'TERMINATED'=155 -'THEN'=156 -'TO'=157 -'TRAILING'=158 -'TRIGGER'=159 -'TRUE'=160 -'UNDO'=161 -'UNION'=162 -'UNIQUE'=163 -'UNLOCK'=164 -'UNSIGNED'=165 -'UPDATE'=166 -'USAGE'=167 -'USE'=168 -'USING'=169 -'VALUES'=170 -'WHEN'=171 -'WHERE'=172 -'WHILE'=173 -'WITH'=174 -'WRITE'=175 -'XOR'=176 -'ZEROFILL'=177 -'TINYINT'=178 -'SMALLINT'=179 -'MEDIUMINT'=180 -'MIDDLEINT'=181 -'INT'=182 -'INT1'=183 -'INT2'=184 -'INT3'=185 -'INT4'=186 -'INT8'=187 -'INTEGER'=188 -'BIGINT'=189 -'REAL'=190 -'DOUBLE'=191 -'PRECISION'=192 -'FLOAT'=193 -'FLOAT4'=194 -'FLOAT8'=195 -'DECIMAL'=196 -'DEC'=197 -'NUMERIC'=198 -'DATE'=199 -'TIME'=200 -'TIMESTAMP'=201 -'DATETIME'=202 -'YEAR'=203 -'CHAR'=204 -'VARCHAR'=205 -'NVARCHAR'=206 -'NATIONAL'=207 -'BINARY'=208 -'VARBINARY'=209 -'TINYBLOB'=210 -'BLOB'=211 -'MEDIUMBLOB'=212 -'LONG'=213 -'LONGBLOB'=214 -'TINYTEXT'=215 -'TEXT'=216 -'MEDIUMTEXT'=217 -'LONGTEXT'=218 -'ENUM'=219 -'VARYING'=220 -'SERIAL'=221 -'YEAR_MONTH'=222 -'DAY_HOUR'=223 -'DAY_MINUTE'=224 -'DAY_SECOND'=225 -'HOUR_MINUTE'=226 -'HOUR_SECOND'=227 -'MINUTE_SECOND'=228 -'SECOND_MICROSECOND'=229 -'MINUTE_MICROSECOND'=230 -'HOUR_MICROSECOND'=231 -'DAY_MICROSECOND'=232 -'JSON_VALID'=233 -'JSON_SCHEMA_VALID'=234 -'AVG'=235 -'BIT_AND'=236 -'BIT_OR'=237 -'BIT_XOR'=238 -'COUNT'=239 -'GROUP_CONCAT'=240 -'MAX'=241 -'MIN'=242 -'STD'=243 -'STDDEV'=244 -'STDDEV_POP'=245 -'STDDEV_SAMP'=246 -'SUM'=247 -'VAR_POP'=248 -'VAR_SAMP'=249 -'VARIANCE'=250 -'CURRENT_DATE'=251 -'CURRENT_TIME'=252 -'CURRENT_TIMESTAMP'=253 -'LOCALTIME'=254 -'CURDATE'=255 -'CURTIME'=256 -'DATE_ADD'=257 -'DATE_SUB'=258 -'EXTRACT'=259 -'LOCALTIMESTAMP'=260 -'NOW'=261 -'POSITION'=262 -'SUBSTR'=263 -'SUBSTRING'=264 -'SYSDATE'=265 -'TRIM'=266 -'UTC_DATE'=267 -'UTC_TIME'=268 -'UTC_TIMESTAMP'=269 -'ACCOUNT'=270 -'ACTION'=271 -'AFTER'=272 -'AGGREGATE'=273 -'ALGORITHM'=274 -'ANY'=275 -'AT'=276 -'AUTHORS'=277 -'AUTOCOMMIT'=278 -'AUTOEXTEND_SIZE'=279 -'AUTO_INCREMENT'=280 -'AVG_ROW_LENGTH'=281 -'BEGIN'=282 -'BINLOG'=283 -'BIT'=284 -'BLOCK'=285 -'BOOL'=286 -'BOOLEAN'=287 -'BTREE'=288 -'CACHE'=289 -'CASCADED'=290 -'CHAIN'=291 -'CHANGED'=292 -'CHANNEL'=293 -'CHECKSUM'=294 -'PAGE_CHECKSUM'=295 -'CIPHER'=296 -'CLASS_ORIGIN'=297 -'CLIENT'=298 -'CLOSE'=299 -'COALESCE'=300 -'CODE'=301 -'COLUMNS'=302 -'COLUMN_FORMAT'=303 -'COLUMN_NAME'=304 -'COMMENT'=305 -'COMMIT'=306 -'COMPACT'=307 -'COMPLETION'=308 -'COMPRESSED'=309 -'COMPRESSION'=310 -'CONCURRENT'=311 -'CONNECTION'=312 -'CONSISTENT'=313 -'CONSTRAINT_CATALOG'=314 -'CONSTRAINT_SCHEMA'=315 -'CONSTRAINT_NAME'=316 -'CONTAINS'=317 -'CONTEXT'=318 -'CONTRIBUTORS'=319 -'COPY'=320 -'CPU'=321 -'CURSOR_NAME'=322 -'DATA'=323 -'DATAFILE'=324 -'DEALLOCATE'=325 -'DEFAULT_AUTH'=326 -'DEFINER'=327 -'DELAY_KEY_WRITE'=328 -'DES_KEY_FILE'=329 -'DIRECTORY'=330 -'DISABLE'=331 -'DISCARD'=332 -'DISK'=333 -'DO'=334 -'DUMPFILE'=335 -'DUPLICATE'=336 -'DYNAMIC'=337 -'ENABLE'=338 -'ENCRYPTION'=339 -'END'=340 -'ENDS'=341 -'ENGINE'=342 -'ENGINES'=343 -'ERROR'=344 -'ERRORS'=345 -'ESCAPE'=346 -'EVEN'=347 -'EVENT'=348 -'EVENTS'=349 -'EVERY'=350 -'EXCHANGE'=351 -'EXCLUSIVE'=352 -'EXPIRE'=353 -'EXPORT'=354 -'EXTENDED'=355 -'EXTENT_SIZE'=356 -'FAST'=357 -'FAULTS'=358 -'FIELDS'=359 -'FILE_BLOCK_SIZE'=360 -'FILTER'=361 -'FIRST'=362 -'FIXED'=363 -'FLUSH'=364 -'FOLLOWS'=365 -'FOUND'=366 -'FULL'=367 -'FUNCTION'=368 -'GENERAL'=369 -'GLOBAL'=370 -'GRANTS'=371 -'GROUP_REPLICATION'=372 -'HANDLER'=373 -'HASH'=374 -'HELP'=375 -'HOST'=376 -'HOSTS'=377 -'IDENTIFIED'=378 -'IGNORE_SERVER_IDS'=379 -'IMPORT'=380 -'INDEXES'=381 -'INITIAL_SIZE'=382 -'INPLACE'=383 -'INSERT_METHOD'=384 -'INSTALL'=385 -'INSTANCE'=386 -'INVISIBLE'=387 -'INVOKER'=388 -'IO'=389 -'IO_THREAD'=390 -'IPC'=391 -'ISOLATION'=392 -'ISSUER'=393 -'JSON'=394 -'KEY_BLOCK_SIZE'=395 -'LANGUAGE'=396 -'LAST'=397 -'LEAVES'=398 -'LESS'=399 -'LEVEL'=400 -'LIST'=401 -'LOCAL'=402 -'LOGFILE'=403 -'LOGS'=404 -'MASTER'=405 -'MASTER_AUTO_POSITION'=406 -'MASTER_CONNECT_RETRY'=407 -'MASTER_DELAY'=408 -'MASTER_HEARTBEAT_PERIOD'=409 -'MASTER_HOST'=410 -'MASTER_LOG_FILE'=411 -'MASTER_LOG_POS'=412 -'MASTER_PASSWORD'=413 -'MASTER_PORT'=414 -'MASTER_RETRY_COUNT'=415 -'MASTER_SSL'=416 -'MASTER_SSL_CA'=417 -'MASTER_SSL_CAPATH'=418 -'MASTER_SSL_CERT'=419 -'MASTER_SSL_CIPHER'=420 -'MASTER_SSL_CRL'=421 -'MASTER_SSL_CRLPATH'=422 -'MASTER_SSL_KEY'=423 -'MASTER_TLS_VERSION'=424 -'MASTER_USER'=425 -'MAX_CONNECTIONS_PER_HOUR'=426 -'MAX_QUERIES_PER_HOUR'=427 -'MAX_ROWS'=428 -'MAX_SIZE'=429 -'MAX_UPDATES_PER_HOUR'=430 -'MAX_USER_CONNECTIONS'=431 -'MEDIUM'=432 -'MERGE'=433 -'MESSAGE_TEXT'=434 -'MID'=435 -'MIGRATE'=436 -'MIN_ROWS'=437 -'MODE'=438 -'MODIFY'=439 -'MUTEX'=440 -'MYSQL'=441 -'MYSQL_ERRNO'=442 -'NAME'=443 -'NAMES'=444 -'NCHAR'=445 -'NEVER'=446 -'NEXT'=447 -'NO'=448 -'NODEGROUP'=449 -'NONE'=450 -'OFFLINE'=451 -'OFFSET'=452 -'OJ'=453 -'OLD_PASSWORD'=454 -'ONE'=455 -'ONLINE'=456 -'ONLY'=457 -'OPEN'=458 -'OPTIMIZER_COSTS'=459 -'OPTIONS'=460 -'OWNER'=461 -'PACK_KEYS'=462 -'PAGE'=463 -'PARSER'=464 -'PARTIAL'=465 -'PARTITIONING'=466 -'PARTITIONS'=467 -'PASSWORD'=468 -'PHASE'=469 -'PLUGIN'=470 -'PLUGIN_DIR'=471 -'PLUGINS'=472 -'PORT'=473 -'PRECEDES'=474 -'PREPARE'=475 -'PRESERVE'=476 -'PREV'=477 -'PROCESSLIST'=478 -'PROFILE'=479 -'PROFILES'=480 -'PROXY'=481 -'QUERY'=482 -'QUICK'=483 -'REBUILD'=484 -'RECOVER'=485 -'REDO_BUFFER_SIZE'=486 -'REDUNDANT'=487 -'RELAY'=488 -'RELAY_LOG_FILE'=489 -'RELAY_LOG_POS'=490 -'RELAYLOG'=491 -'REMOVE'=492 -'REORGANIZE'=493 -'REPAIR'=494 -'REPLICATE_DO_DB'=495 -'REPLICATE_DO_TABLE'=496 -'REPLICATE_IGNORE_DB'=497 -'REPLICATE_IGNORE_TABLE'=498 -'REPLICATE_REWRITE_DB'=499 -'REPLICATE_WILD_DO_TABLE'=500 -'REPLICATE_WILD_IGNORE_TABLE'=501 -'REPLICATION'=502 -'RESET'=503 -'RESUME'=504 -'RETURNED_SQLSTATE'=505 -'RETURNS'=506 -'ROLE'=507 -'ROLLBACK'=508 -'ROLLUP'=509 -'ROTATE'=510 -'ROW'=511 -'ROWS'=512 -'ROW_FORMAT'=513 -'SAVEPOINT'=514 -'SCHEDULE'=515 -'SECURITY'=516 -'SERVER'=517 -'SESSION'=518 -'SHARE'=519 -'SHARED'=520 -'SIGNED'=521 -'SIMPLE'=522 -'SLAVE'=523 -'SLOW'=524 -'SNAPSHOT'=525 -'SOCKET'=526 -'SOME'=527 -'SONAME'=528 -'SOUNDS'=529 -'SOURCE'=530 -'SQL_AFTER_GTIDS'=531 -'SQL_AFTER_MTS_GAPS'=532 -'SQL_BEFORE_GTIDS'=533 -'SQL_BUFFER_RESULT'=534 -'SQL_CACHE'=535 -'SQL_NO_CACHE'=536 -'SQL_THREAD'=537 -'START'=538 -'STARTS'=539 -'STATS_AUTO_RECALC'=540 -'STATS_PERSISTENT'=541 -'STATS_SAMPLE_PAGES'=542 -'STATUS'=543 -'STOP'=544 -'STORAGE'=545 -'STORED'=546 -'STRING'=547 -'SUBCLASS_ORIGIN'=548 -'SUBJECT'=549 -'SUBPARTITION'=550 -'SUBPARTITIONS'=551 -'SUSPEND'=552 -'SWAPS'=553 -'SWITCHES'=554 -'TABLE_NAME'=555 -'TABLESPACE'=556 -'TEMPORARY'=557 -'TEMPTABLE'=558 -'THAN'=559 -'TRADITIONAL'=560 -'TRANSACTION'=561 -'TRANSACTIONAL'=562 -'TRIGGERS'=563 -'TRUNCATE'=564 -'UNDEFINED'=565 -'UNDOFILE'=566 -'UNDO_BUFFER_SIZE'=567 -'UNINSTALL'=568 -'UNKNOWN'=569 -'UNTIL'=570 -'UPGRADE'=571 -'USER'=572 -'USE_FRM'=573 -'USER_RESOURCES'=574 -'VALIDATION'=575 -'VALUE'=576 -'VARIABLES'=577 -'VIEW'=578 -'VIRTUAL'=579 -'VISIBLE'=580 -'WAIT'=581 -'WARNINGS'=582 -'WITHOUT'=583 -'WORK'=584 -'WRAPPER'=585 -'X509'=586 -'XA'=587 -'XML'=588 -'EUR'=589 -'USA'=590 -'JIS'=591 -'ISO'=592 -'INTERNAL'=593 -'QUARTER'=594 -'MONTH'=595 -'DAY'=596 -'HOUR'=597 -'MINUTE'=598 -'WEEK'=599 -'SECOND'=600 -'MICROSECOND'=601 -'TABLES'=602 -'ROUTINE'=603 -'EXECUTE'=604 -'FILE'=605 -'PROCESS'=606 -'RELOAD'=607 -'SHUTDOWN'=608 -'SUPER'=609 -'PRIVILEGES'=610 -'APPLICATION_PASSWORD_ADMIN'=611 -'AUDIT_ADMIN'=612 -'BACKUP_ADMIN'=613 -'BINLOG_ADMIN'=614 -'BINLOG_ENCRYPTION_ADMIN'=615 -'CLONE_ADMIN'=616 -'CONNECTION_ADMIN'=617 -'ENCRYPTION_KEY_ADMIN'=618 -'FIREWALL_ADMIN'=619 -'FIREWALL_USER'=620 -'GROUP_REPLICATION_ADMIN'=621 -'INNODB_REDO_LOG_ARCHIVE'=622 -'NDB_STORED_USER'=623 -'PERSIST_RO_VARIABLES_ADMIN'=624 -'REPLICATION_APPLIER'=625 -'REPLICATION_SLAVE_ADMIN'=626 -'RESOURCE_GROUP_ADMIN'=627 -'RESOURCE_GROUP_USER'=628 -'ROLE_ADMIN'=629 -'SET_USER_ID'=631 -'SHOW_ROUTINE'=632 -'SYSTEM_VARIABLES_ADMIN'=633 -'TABLE_ENCRYPTION_ADMIN'=634 -'VERSION_TOKEN_ADMIN'=635 -'XA_RECOVER_ADMIN'=636 -'ARMSCII8'=637 -'ASCII'=638 -'BIG5'=639 -'CP1250'=640 -'CP1251'=641 -'CP1256'=642 -'CP1257'=643 -'CP850'=644 -'CP852'=645 -'CP866'=646 -'CP932'=647 -'DEC8'=648 -'EUCJPMS'=649 -'EUCKR'=650 -'GB2312'=651 -'GBK'=652 -'GEOSTD8'=653 -'GREEK'=654 -'HEBREW'=655 -'HP8'=656 -'KEYBCS2'=657 -'KOI8R'=658 -'KOI8U'=659 -'LATIN1'=660 -'LATIN2'=661 -'LATIN5'=662 -'LATIN7'=663 -'MACCE'=664 -'MACROMAN'=665 -'SJIS'=666 -'SWE7'=667 -'TIS620'=668 -'UCS2'=669 -'UJIS'=670 -'UTF16'=671 -'UTF16LE'=672 -'UTF32'=673 -'UTF8'=674 -'UTF8MB3'=675 -'UTF8MB4'=676 -'ARCHIVE'=677 -'BLACKHOLE'=678 -'CSV'=679 -'FEDERATED'=680 -'INNODB'=681 -'MEMORY'=682 -'MRG_MYISAM'=683 -'MYISAM'=684 -'NDB'=685 -'NDBCLUSTER'=686 -'PERFORMANCE_SCHEMA'=687 -'TOKUDB'=688 -'REPEATABLE'=689 -'COMMITTED'=690 -'UNCOMMITTED'=691 -'SERIALIZABLE'=692 -'GEOMETRYCOLLECTION'=693 -'GEOMCOLLECTION'=694 -'GEOMETRY'=695 -'LINESTRING'=696 -'MULTILINESTRING'=697 -'MULTIPOINT'=698 -'MULTIPOLYGON'=699 -'POINT'=700 -'POLYGON'=701 -'ABS'=702 -'ACOS'=703 -'ADDDATE'=704 -'ADDTIME'=705 -'AES_DECRYPT'=706 -'AES_ENCRYPT'=707 -'AREA'=708 -'ASBINARY'=709 -'ASIN'=710 -'ASTEXT'=711 -'ASWKB'=712 -'ASWKT'=713 -'ASYMMETRIC_DECRYPT'=714 -'ASYMMETRIC_DERIVE'=715 -'ASYMMETRIC_ENCRYPT'=716 -'ASYMMETRIC_SIGN'=717 -'ASYMMETRIC_VERIFY'=718 -'ATAN'=719 -'ATAN2'=720 -'BENCHMARK'=721 -'BIN'=722 -'BIT_COUNT'=723 -'BIT_LENGTH'=724 -'BUFFER'=725 -'CATALOG_NAME'=726 -'CEIL'=727 -'CEILING'=728 -'CENTROID'=729 -'CHARACTER_LENGTH'=730 -'CHARSET'=731 -'CHAR_LENGTH'=732 -'COERCIBILITY'=733 -'COLLATION'=734 -'COMPRESS'=735 -'CONCAT'=736 -'CONCAT_WS'=737 -'CONNECTION_ID'=738 -'CONV'=739 -'CONVERT_TZ'=740 -'COS'=741 -'COT'=742 -'CRC32'=743 -'CREATE_ASYMMETRIC_PRIV_KEY'=744 -'CREATE_ASYMMETRIC_PUB_KEY'=745 -'CREATE_DH_PARAMETERS'=746 -'CREATE_DIGEST'=747 -'CROSSES'=748 -'DATEDIFF'=749 -'DATE_FORMAT'=750 -'DAYNAME'=751 -'DAYOFMONTH'=752 -'DAYOFWEEK'=753 -'DAYOFYEAR'=754 -'DECODE'=755 -'DEGREES'=756 -'DES_DECRYPT'=757 -'DES_ENCRYPT'=758 -'DIMENSION'=759 -'DISJOINT'=760 -'ELT'=761 -'ENCODE'=762 -'ENCRYPT'=763 -'ENDPOINT'=764 -'ENVELOPE'=765 -'EQUALS'=766 -'EXP'=767 -'EXPORT_SET'=768 -'EXTERIORRING'=769 -'EXTRACTVALUE'=770 -'FIELD'=771 -'FIND_IN_SET'=772 -'FLOOR'=773 -'FORMAT'=774 -'FOUND_ROWS'=775 -'FROM_BASE64'=776 -'FROM_DAYS'=777 -'FROM_UNIXTIME'=778 -'GEOMCOLLFROMTEXT'=779 -'GEOMCOLLFROMWKB'=780 -'GEOMETRYCOLLECTIONFROMTEXT'=781 -'GEOMETRYCOLLECTIONFROMWKB'=782 -'GEOMETRYFROMTEXT'=783 -'GEOMETRYFROMWKB'=784 -'GEOMETRYN'=785 -'GEOMETRYTYPE'=786 -'GEOMFROMTEXT'=787 -'GEOMFROMWKB'=788 -'GET_FORMAT'=789 -'GET_LOCK'=790 -'GLENGTH'=791 -'GREATEST'=792 -'GTID_SUBSET'=793 -'GTID_SUBTRACT'=794 -'HEX'=795 -'IFNULL'=796 -'INET6_ATON'=797 -'INET6_NTOA'=798 -'INET_ATON'=799 -'INET_NTOA'=800 -'INSTR'=801 -'INTERIORRINGN'=802 -'INTERSECTS'=803 -'ISCLOSED'=804 -'ISEMPTY'=805 -'ISNULL'=806 -'ISSIMPLE'=807 -'IS_FREE_LOCK'=808 -'IS_IPV4'=809 -'IS_IPV4_COMPAT'=810 -'IS_IPV4_MAPPED'=811 -'IS_IPV6'=812 -'IS_USED_LOCK'=813 -'LAST_INSERT_ID'=814 -'LCASE'=815 -'LEAST'=816 -'LENGTH'=817 -'LINEFROMTEXT'=818 -'LINEFROMWKB'=819 -'LINESTRINGFROMTEXT'=820 -'LINESTRINGFROMWKB'=821 -'LN'=822 -'LOAD_FILE'=823 -'LOCATE'=824 -'LOG'=825 -'LOG10'=826 -'LOG2'=827 -'LOWER'=828 -'LPAD'=829 -'LTRIM'=830 -'MAKEDATE'=831 -'MAKETIME'=832 -'MAKE_SET'=833 -'MASTER_POS_WAIT'=834 -'MBRCONTAINS'=835 -'MBRDISJOINT'=836 -'MBREQUAL'=837 -'MBRINTERSECTS'=838 -'MBROVERLAPS'=839 -'MBRTOUCHES'=840 -'MBRWITHIN'=841 -'MD5'=842 -'MLINEFROMTEXT'=843 -'MLINEFROMWKB'=844 -'MONTHNAME'=845 -'MPOINTFROMTEXT'=846 -'MPOINTFROMWKB'=847 -'MPOLYFROMTEXT'=848 -'MPOLYFROMWKB'=849 -'MULTILINESTRINGFROMTEXT'=850 -'MULTILINESTRINGFROMWKB'=851 -'MULTIPOINTFROMTEXT'=852 -'MULTIPOINTFROMWKB'=853 -'MULTIPOLYGONFROMTEXT'=854 -'MULTIPOLYGONFROMWKB'=855 -'NAME_CONST'=856 -'NULLIF'=857 -'NUMGEOMETRIES'=858 -'NUMINTERIORRINGS'=859 -'NUMPOINTS'=860 -'OCT'=861 -'OCTET_LENGTH'=862 -'ORD'=863 -'OVERLAPS'=864 -'PERIOD_ADD'=865 -'PERIOD_DIFF'=866 -'PI'=867 -'POINTFROMTEXT'=868 -'POINTFROMWKB'=869 -'POINTN'=870 -'POLYFROMTEXT'=871 -'POLYFROMWKB'=872 -'POLYGONFROMTEXT'=873 -'POLYGONFROMWKB'=874 -'POW'=875 -'POWER'=876 -'QUOTE'=877 -'RADIANS'=878 -'RAND'=879 -'RANDOM_BYTES'=880 -'RELEASE_LOCK'=881 -'REVERSE'=882 -'ROUND'=883 -'ROW_COUNT'=884 -'RPAD'=885 -'RTRIM'=886 -'SEC_TO_TIME'=887 -'SESSION_USER'=888 -'SHA'=889 -'SHA1'=890 -'SHA2'=891 -'SCHEMA_NAME'=892 -'SIGN'=893 -'SIN'=894 -'SLEEP'=895 -'SOUNDEX'=896 -'SQL_THREAD_WAIT_AFTER_GTIDS'=897 -'SQRT'=898 -'SRID'=899 -'STARTPOINT'=900 -'STRCMP'=901 -'STR_TO_DATE'=902 -'ST_AREA'=903 -'ST_ASBINARY'=904 -'ST_ASTEXT'=905 -'ST_ASWKB'=906 -'ST_ASWKT'=907 -'ST_BUFFER'=908 -'ST_CENTROID'=909 -'ST_CONTAINS'=910 -'ST_CROSSES'=911 -'ST_DIFFERENCE'=912 -'ST_DIMENSION'=913 -'ST_DISJOINT'=914 -'ST_DISTANCE'=915 -'ST_ENDPOINT'=916 -'ST_ENVELOPE'=917 -'ST_EQUALS'=918 -'ST_EXTERIORRING'=919 -'ST_GEOMCOLLFROMTEXT'=920 -'ST_GEOMCOLLFROMTXT'=921 -'ST_GEOMCOLLFROMWKB'=922 -'ST_GEOMETRYCOLLECTIONFROMTEXT'=923 -'ST_GEOMETRYCOLLECTIONFROMWKB'=924 -'ST_GEOMETRYFROMTEXT'=925 -'ST_GEOMETRYFROMWKB'=926 -'ST_GEOMETRYN'=927 -'ST_GEOMETRYTYPE'=928 -'ST_GEOMFROMTEXT'=929 -'ST_GEOMFROMWKB'=930 -'ST_INTERIORRINGN'=931 -'ST_INTERSECTION'=932 -'ST_INTERSECTS'=933 -'ST_ISCLOSED'=934 -'ST_ISEMPTY'=935 -'ST_ISSIMPLE'=936 -'ST_LINEFROMTEXT'=937 -'ST_LINEFROMWKB'=938 -'ST_LINESTRINGFROMTEXT'=939 -'ST_LINESTRINGFROMWKB'=940 -'ST_NUMGEOMETRIES'=941 -'ST_NUMINTERIORRING'=942 -'ST_NUMINTERIORRINGS'=943 -'ST_NUMPOINTS'=944 -'ST_OVERLAPS'=945 -'ST_POINTFROMTEXT'=946 -'ST_POINTFROMWKB'=947 -'ST_POINTN'=948 -'ST_POLYFROMTEXT'=949 -'ST_POLYFROMWKB'=950 -'ST_POLYGONFROMTEXT'=951 -'ST_POLYGONFROMWKB'=952 -'ST_SRID'=953 -'ST_STARTPOINT'=954 -'ST_SYMDIFFERENCE'=955 -'ST_TOUCHES'=956 -'ST_UNION'=957 -'ST_WITHIN'=958 -'ST_X'=959 -'ST_Y'=960 -'SUBDATE'=961 -'SUBSTRING_INDEX'=962 -'SUBTIME'=963 -'SYSTEM_USER'=964 -'TAN'=965 -'TIMEDIFF'=966 -'TIMESTAMPADD'=967 -'TIMESTAMPDIFF'=968 -'TIME_FORMAT'=969 -'TIME_TO_SEC'=970 -'TOUCHES'=971 -'TO_BASE64'=972 -'TO_DAYS'=973 -'TO_SECONDS'=974 -'UCASE'=975 -'UNCOMPRESS'=976 -'UNCOMPRESSED_LENGTH'=977 -'UNHEX'=978 -'UNIX_TIMESTAMP'=979 -'UPDATEXML'=980 -'UPPER'=981 -'UUID'=982 -'UUID_SHORT'=983 -'VALIDATE_PASSWORD_STRENGTH'=984 -'VERSION'=985 -'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'=986 -'WEEKDAY'=987 -'WEEKOFYEAR'=988 -'WEIGHT_STRING'=989 -'WITHIN'=990 -'YEARWEEK'=991 -'Y'=992 -'X'=993 -':='=994 -'+='=995 -'-='=996 -'*='=997 -'/='=998 -'%='=999 -'&='=1000 -'^='=1001 -'|='=1002 -'*'=1003 -'/'=1004 -'%'=1005 -'+'=1006 -'--'=1007 -'-'=1008 -'DIV'=1009 -'MOD'=1010 -'='=1011 -'>'=1012 -'<'=1013 -'!'=1014 -'~'=1015 -'|'=1016 -'&'=1017 -'^'=1018 -'.'=1019 -'('=1020 -')'=1021 -','=1022 -';'=1023 -'@'=1024 -'0'=1025 -'1'=1026 -'2'=1027 -'\''=1028 -'"'=1029 -'`'=1030 -':'=1031 diff --git a/src/lib/generic/SqlParser.ts b/src/lib/generic/SqlParser.ts deleted file mode 100644 index d0e2f6b..0000000 --- a/src/lib/generic/SqlParser.ts +++ /dev/null @@ -1,76059 +0,0 @@ -// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/generic/SqlParser.g4 by ANTLR 4.9.0-SNAPSHOT - - -import { ATN } from "antlr4ts/atn/ATN"; -import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; -import { FailedPredicateException } from "antlr4ts/FailedPredicateException"; -import { NotNull } from "antlr4ts/Decorators"; -import { NoViableAltException } from "antlr4ts/NoViableAltException"; -import { Override } from "antlr4ts/Decorators"; -import { Parser } from "antlr4ts/Parser"; -import { ParserRuleContext } from "antlr4ts/ParserRuleContext"; -import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator"; -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; -import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; -import { RecognitionException } from "antlr4ts/RecognitionException"; -import { RuleContext } from "antlr4ts/RuleContext"; -//import { RuleVersion } from "antlr4ts/RuleVersion"; -import { TerminalNode } from "antlr4ts/tree/TerminalNode"; -import { Token } from "antlr4ts/Token"; -import { TokenStream } from "antlr4ts/TokenStream"; -import { Vocabulary } from "antlr4ts/Vocabulary"; -import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; - -import * as Utils from "antlr4ts/misc/Utils"; - -import { SqlParserListener } from "./SqlParserListener"; -import { SqlParserVisitor } from "./SqlParserVisitor"; - - -export class SqlParser extends Parser { - public static readonly SPACE = 1; - public static readonly SPEC_MYSQL_COMMENT = 2; - public static readonly COMMENT_INPUT = 3; - public static readonly LINE_COMMENT = 4; - public static readonly ADD = 5; - public static readonly ALL = 6; - public static readonly ALTER = 7; - public static readonly ALWAYS = 8; - public static readonly ANALYZE = 9; - public static readonly AND = 10; - public static readonly AS = 11; - public static readonly ASC = 12; - public static readonly BEFORE = 13; - public static readonly BETWEEN = 14; - public static readonly BOTH = 15; - public static readonly BY = 16; - public static readonly CALL = 17; - public static readonly CASCADE = 18; - public static readonly CASE = 19; - public static readonly CAST = 20; - public static readonly CHANGE = 21; - public static readonly CHARACTER = 22; - public static readonly CHECK = 23; - public static readonly COLLATE = 24; - public static readonly COLUMN = 25; - public static readonly CONDITION = 26; - public static readonly CONSTRAINT = 27; - public static readonly CONTINUE = 28; - public static readonly CONVERT = 29; - public static readonly CREATE = 30; - public static readonly CROSS = 31; - public static readonly CURRENT = 32; - public static readonly CURRENT_USER = 33; - public static readonly CURSOR = 34; - public static readonly DATABASE = 35; - public static readonly DATABASES = 36; - public static readonly DECLARE = 37; - public static readonly DEFAULT = 38; - public static readonly DELAYED = 39; - public static readonly DELETE = 40; - public static readonly DESC = 41; - public static readonly DESCRIBE = 42; - public static readonly DETERMINISTIC = 43; - public static readonly DIAGNOSTICS = 44; - public static readonly DISTINCT = 45; - public static readonly DISTINCTROW = 46; - public static readonly DROP = 47; - public static readonly EACH = 48; - public static readonly ELSE = 49; - public static readonly ELSEIF = 50; - public static readonly ENCLOSED = 51; - public static readonly ESCAPED = 52; - public static readonly EXISTS = 53; - public static readonly EXIT = 54; - public static readonly EXPLAIN = 55; - public static readonly FALSE = 56; - public static readonly FETCH = 57; - public static readonly FOR = 58; - public static readonly FORCE = 59; - public static readonly FOREIGN = 60; - public static readonly FROM = 61; - public static readonly FULLTEXT = 62; - public static readonly GENERATED = 63; - public static readonly GET = 64; - public static readonly GRANT = 65; - public static readonly GROUP = 66; - public static readonly HAVING = 67; - public static readonly HIGH_PRIORITY = 68; - public static readonly IF = 69; - public static readonly IGNORE = 70; - public static readonly IN = 71; - public static readonly INDEX = 72; - public static readonly INFILE = 73; - public static readonly INNER = 74; - public static readonly INOUT = 75; - public static readonly INSERT = 76; - public static readonly INTERVAL = 77; - public static readonly INTO = 78; - public static readonly IS = 79; - public static readonly ITERATE = 80; - public static readonly JOIN = 81; - public static readonly KEY = 82; - public static readonly KEYS = 83; - public static readonly KILL = 84; - public static readonly LEADING = 85; - public static readonly LEAVE = 86; - public static readonly LEFT = 87; - public static readonly LIKE = 88; - public static readonly LIMIT = 89; - public static readonly LINEAR = 90; - public static readonly LINES = 91; - public static readonly LOAD = 92; - public static readonly LOCK = 93; - public static readonly LOOP = 94; - public static readonly LOW_PRIORITY = 95; - public static readonly MASTER_BIND = 96; - public static readonly MASTER_SSL_VERIFY_SERVER_CERT = 97; - public static readonly MATCH = 98; - public static readonly MAXVALUE = 99; - public static readonly MODIFIES = 100; - public static readonly NATURAL = 101; - public static readonly NOT = 102; - public static readonly NO_WRITE_TO_BINLOG = 103; - public static readonly NULL_LITERAL = 104; - public static readonly NUMBER = 105; - public static readonly ON = 106; - public static readonly OPTIMIZE = 107; - public static readonly OPTION = 108; - public static readonly OPTIONALLY = 109; - public static readonly OR = 110; - public static readonly ORDER = 111; - public static readonly OUT = 112; - public static readonly OUTER = 113; - public static readonly OUTFILE = 114; - public static readonly PARTITION = 115; - public static readonly PRIMARY = 116; - public static readonly PROCEDURE = 117; - public static readonly PURGE = 118; - public static readonly RANGE = 119; - public static readonly READ = 120; - public static readonly READS = 121; - public static readonly REFERENCES = 122; - public static readonly REGEXP = 123; - public static readonly RELEASE = 124; - public static readonly RENAME = 125; - public static readonly REPEAT = 126; - public static readonly REPLACE = 127; - public static readonly REQUIRE = 128; - public static readonly RESIGNAL = 129; - public static readonly RESTRICT = 130; - public static readonly RETURN = 131; - public static readonly REVOKE = 132; - public static readonly RIGHT = 133; - public static readonly RLIKE = 134; - public static readonly SCHEMA = 135; - public static readonly SCHEMAS = 136; - public static readonly SELECT = 137; - public static readonly SET = 138; - public static readonly SEPARATOR = 139; - public static readonly SHOW = 140; - public static readonly SIGNAL = 141; - public static readonly SPATIAL = 142; - public static readonly SQL = 143; - public static readonly SQLEXCEPTION = 144; - public static readonly SQLSTATE = 145; - public static readonly SQLWARNING = 146; - public static readonly SQL_BIG_RESULT = 147; - public static readonly SQL_CALC_FOUND_ROWS = 148; - public static readonly SQL_SMALL_RESULT = 149; - public static readonly SSL = 150; - public static readonly STACKED = 151; - public static readonly STARTING = 152; - public static readonly STRAIGHT_JOIN = 153; - public static readonly TABLE = 154; - public static readonly TERMINATED = 155; - public static readonly THEN = 156; - public static readonly TO = 157; - public static readonly TRAILING = 158; - public static readonly TRIGGER = 159; - public static readonly TRUE = 160; - public static readonly UNDO = 161; - public static readonly UNION = 162; - public static readonly UNIQUE = 163; - public static readonly UNLOCK = 164; - public static readonly UNSIGNED = 165; - public static readonly UPDATE = 166; - public static readonly USAGE = 167; - public static readonly USE = 168; - public static readonly USING = 169; - public static readonly VALUES = 170; - public static readonly WHEN = 171; - public static readonly WHERE = 172; - public static readonly WHILE = 173; - public static readonly WITH = 174; - public static readonly WRITE = 175; - public static readonly XOR = 176; - public static readonly ZEROFILL = 177; - public static readonly TINYINT = 178; - public static readonly SMALLINT = 179; - public static readonly MEDIUMINT = 180; - public static readonly MIDDLEINT = 181; - public static readonly INT = 182; - public static readonly INT1 = 183; - public static readonly INT2 = 184; - public static readonly INT3 = 185; - public static readonly INT4 = 186; - public static readonly INT8 = 187; - public static readonly INTEGER = 188; - public static readonly BIGINT = 189; - public static readonly REAL = 190; - public static readonly DOUBLE = 191; - public static readonly PRECISION = 192; - public static readonly FLOAT = 193; - public static readonly FLOAT4 = 194; - public static readonly FLOAT8 = 195; - public static readonly DECIMAL = 196; - public static readonly DEC = 197; - public static readonly NUMERIC = 198; - public static readonly DATE = 199; - public static readonly TIME = 200; - public static readonly TIMESTAMP = 201; - public static readonly DATETIME = 202; - public static readonly YEAR = 203; - public static readonly CHAR = 204; - public static readonly VARCHAR = 205; - public static readonly NVARCHAR = 206; - public static readonly NATIONAL = 207; - public static readonly BINARY = 208; - public static readonly VARBINARY = 209; - public static readonly TINYBLOB = 210; - public static readonly BLOB = 211; - public static readonly MEDIUMBLOB = 212; - public static readonly LONG = 213; - public static readonly LONGBLOB = 214; - public static readonly TINYTEXT = 215; - public static readonly TEXT = 216; - public static readonly MEDIUMTEXT = 217; - public static readonly LONGTEXT = 218; - public static readonly ENUM = 219; - public static readonly VARYING = 220; - public static readonly SERIAL = 221; - public static readonly YEAR_MONTH = 222; - public static readonly DAY_HOUR = 223; - public static readonly DAY_MINUTE = 224; - public static readonly DAY_SECOND = 225; - public static readonly HOUR_MINUTE = 226; - public static readonly HOUR_SECOND = 227; - public static readonly MINUTE_SECOND = 228; - public static readonly SECOND_MICROSECOND = 229; - public static readonly MINUTE_MICROSECOND = 230; - public static readonly HOUR_MICROSECOND = 231; - public static readonly DAY_MICROSECOND = 232; - public static readonly JSON_VALID = 233; - public static readonly JSON_SCHEMA_VALID = 234; - public static readonly AVG = 235; - public static readonly BIT_AND = 236; - public static readonly BIT_OR = 237; - public static readonly BIT_XOR = 238; - public static readonly COUNT = 239; - public static readonly GROUP_CONCAT = 240; - public static readonly MAX = 241; - public static readonly MIN = 242; - public static readonly STD = 243; - public static readonly STDDEV = 244; - public static readonly STDDEV_POP = 245; - public static readonly STDDEV_SAMP = 246; - public static readonly SUM = 247; - public static readonly VAR_POP = 248; - public static readonly VAR_SAMP = 249; - public static readonly VARIANCE = 250; - public static readonly CURRENT_DATE = 251; - public static readonly CURRENT_TIME = 252; - public static readonly CURRENT_TIMESTAMP = 253; - public static readonly LOCALTIME = 254; - public static readonly CURDATE = 255; - public static readonly CURTIME = 256; - public static readonly DATE_ADD = 257; - public static readonly DATE_SUB = 258; - public static readonly EXTRACT = 259; - public static readonly LOCALTIMESTAMP = 260; - public static readonly NOW = 261; - public static readonly POSITION = 262; - public static readonly SUBSTR = 263; - public static readonly SUBSTRING = 264; - public static readonly SYSDATE = 265; - public static readonly TRIM = 266; - public static readonly UTC_DATE = 267; - public static readonly UTC_TIME = 268; - public static readonly UTC_TIMESTAMP = 269; - public static readonly ACCOUNT = 270; - public static readonly ACTION = 271; - public static readonly AFTER = 272; - public static readonly AGGREGATE = 273; - public static readonly ALGORITHM = 274; - public static readonly ANY = 275; - public static readonly AT = 276; - public static readonly AUTHORS = 277; - public static readonly AUTOCOMMIT = 278; - public static readonly AUTOEXTEND_SIZE = 279; - public static readonly AUTO_INCREMENT = 280; - public static readonly AVG_ROW_LENGTH = 281; - public static readonly BEGIN = 282; - public static readonly BINLOG = 283; - public static readonly BIT = 284; - public static readonly BLOCK = 285; - public static readonly BOOL = 286; - public static readonly BOOLEAN = 287; - public static readonly BTREE = 288; - public static readonly CACHE = 289; - public static readonly CASCADED = 290; - public static readonly CHAIN = 291; - public static readonly CHANGED = 292; - public static readonly CHANNEL = 293; - public static readonly CHECKSUM = 294; - public static readonly PAGE_CHECKSUM = 295; - public static readonly CIPHER = 296; - public static readonly CLASS_ORIGIN = 297; - public static readonly CLIENT = 298; - public static readonly CLOSE = 299; - public static readonly COALESCE = 300; - public static readonly CODE = 301; - public static readonly COLUMNS = 302; - public static readonly COLUMN_FORMAT = 303; - public static readonly COLUMN_NAME = 304; - public static readonly COMMENT = 305; - public static readonly COMMIT = 306; - public static readonly COMPACT = 307; - public static readonly COMPLETION = 308; - public static readonly COMPRESSED = 309; - public static readonly COMPRESSION = 310; - public static readonly CONCURRENT = 311; - public static readonly CONNECTION = 312; - public static readonly CONSISTENT = 313; - public static readonly CONSTRAINT_CATALOG = 314; - public static readonly CONSTRAINT_SCHEMA = 315; - public static readonly CONSTRAINT_NAME = 316; - public static readonly CONTAINS = 317; - public static readonly CONTEXT = 318; - public static readonly CONTRIBUTORS = 319; - public static readonly COPY = 320; - public static readonly CPU = 321; - public static readonly CURSOR_NAME = 322; - public static readonly DATA = 323; - public static readonly DATAFILE = 324; - public static readonly DEALLOCATE = 325; - public static readonly DEFAULT_AUTH = 326; - public static readonly DEFINER = 327; - public static readonly DELAY_KEY_WRITE = 328; - public static readonly DES_KEY_FILE = 329; - public static readonly DIRECTORY = 330; - public static readonly DISABLE = 331; - public static readonly DISCARD = 332; - public static readonly DISK = 333; - public static readonly DO = 334; - public static readonly DUMPFILE = 335; - public static readonly DUPLICATE = 336; - public static readonly DYNAMIC = 337; - public static readonly ENABLE = 338; - public static readonly ENCRYPTION = 339; - public static readonly END = 340; - public static readonly ENDS = 341; - public static readonly ENGINE = 342; - public static readonly ENGINES = 343; - public static readonly ERROR = 344; - public static readonly ERRORS = 345; - public static readonly ESCAPE = 346; - public static readonly EVEN = 347; - public static readonly EVENT = 348; - public static readonly EVENTS = 349; - public static readonly EVERY = 350; - public static readonly EXCHANGE = 351; - public static readonly EXCLUSIVE = 352; - public static readonly EXPIRE = 353; - public static readonly EXPORT = 354; - public static readonly EXTENDED = 355; - public static readonly EXTENT_SIZE = 356; - public static readonly FAST = 357; - public static readonly FAULTS = 358; - public static readonly FIELDS = 359; - public static readonly FILE_BLOCK_SIZE = 360; - public static readonly FILTER = 361; - public static readonly FIRST = 362; - public static readonly FIXED = 363; - public static readonly FLUSH = 364; - public static readonly FOLLOWS = 365; - public static readonly FOUND = 366; - public static readonly FULL = 367; - public static readonly FUNCTION = 368; - public static readonly GENERAL = 369; - public static readonly GLOBAL = 370; - public static readonly GRANTS = 371; - public static readonly GROUP_REPLICATION = 372; - public static readonly HANDLER = 373; - public static readonly HASH = 374; - public static readonly HELP = 375; - public static readonly HOST = 376; - public static readonly HOSTS = 377; - public static readonly IDENTIFIED = 378; - public static readonly IGNORE_SERVER_IDS = 379; - public static readonly IMPORT = 380; - public static readonly INDEXES = 381; - public static readonly INITIAL_SIZE = 382; - public static readonly INPLACE = 383; - public static readonly INSERT_METHOD = 384; - public static readonly INSTALL = 385; - public static readonly INSTANCE = 386; - public static readonly INVISIBLE = 387; - public static readonly INVOKER = 388; - public static readonly IO = 389; - public static readonly IO_THREAD = 390; - public static readonly IPC = 391; - public static readonly ISOLATION = 392; - public static readonly ISSUER = 393; - public static readonly JSON = 394; - public static readonly KEY_BLOCK_SIZE = 395; - public static readonly LANGUAGE = 396; - public static readonly LAST = 397; - public static readonly LEAVES = 398; - public static readonly LESS = 399; - public static readonly LEVEL = 400; - public static readonly LIST = 401; - public static readonly LOCAL = 402; - public static readonly LOGFILE = 403; - public static readonly LOGS = 404; - public static readonly MASTER = 405; - public static readonly MASTER_AUTO_POSITION = 406; - public static readonly MASTER_CONNECT_RETRY = 407; - public static readonly MASTER_DELAY = 408; - public static readonly MASTER_HEARTBEAT_PERIOD = 409; - public static readonly MASTER_HOST = 410; - public static readonly MASTER_LOG_FILE = 411; - public static readonly MASTER_LOG_POS = 412; - public static readonly MASTER_PASSWORD = 413; - public static readonly MASTER_PORT = 414; - public static readonly MASTER_RETRY_COUNT = 415; - public static readonly MASTER_SSL = 416; - public static readonly MASTER_SSL_CA = 417; - public static readonly MASTER_SSL_CAPATH = 418; - public static readonly MASTER_SSL_CERT = 419; - public static readonly MASTER_SSL_CIPHER = 420; - public static readonly MASTER_SSL_CRL = 421; - public static readonly MASTER_SSL_CRLPATH = 422; - public static readonly MASTER_SSL_KEY = 423; - public static readonly MASTER_TLS_VERSION = 424; - public static readonly MASTER_USER = 425; - public static readonly MAX_CONNECTIONS_PER_HOUR = 426; - public static readonly MAX_QUERIES_PER_HOUR = 427; - public static readonly MAX_ROWS = 428; - public static readonly MAX_SIZE = 429; - public static readonly MAX_UPDATES_PER_HOUR = 430; - public static readonly MAX_USER_CONNECTIONS = 431; - public static readonly MEDIUM = 432; - public static readonly MERGE = 433; - public static readonly MESSAGE_TEXT = 434; - public static readonly MID = 435; - public static readonly MIGRATE = 436; - public static readonly MIN_ROWS = 437; - public static readonly MODE = 438; - public static readonly MODIFY = 439; - public static readonly MUTEX = 440; - public static readonly MYSQL = 441; - public static readonly MYSQL_ERRNO = 442; - public static readonly NAME = 443; - public static readonly NAMES = 444; - public static readonly NCHAR = 445; - public static readonly NEVER = 446; - public static readonly NEXT = 447; - public static readonly NO = 448; - public static readonly NODEGROUP = 449; - public static readonly NONE = 450; - public static readonly OFFLINE = 451; - public static readonly OFFSET = 452; - public static readonly OJ = 453; - public static readonly OLD_PASSWORD = 454; - public static readonly ONE = 455; - public static readonly ONLINE = 456; - public static readonly ONLY = 457; - public static readonly OPEN = 458; - public static readonly OPTIMIZER_COSTS = 459; - public static readonly OPTIONS = 460; - public static readonly OWNER = 461; - public static readonly PACK_KEYS = 462; - public static readonly PAGE = 463; - public static readonly PARSER = 464; - public static readonly PARTIAL = 465; - public static readonly PARTITIONING = 466; - public static readonly PARTITIONS = 467; - public static readonly PASSWORD = 468; - public static readonly PHASE = 469; - public static readonly PLUGIN = 470; - public static readonly PLUGIN_DIR = 471; - public static readonly PLUGINS = 472; - public static readonly PORT = 473; - public static readonly PRECEDES = 474; - public static readonly PREPARE = 475; - public static readonly PRESERVE = 476; - public static readonly PREV = 477; - public static readonly PROCESSLIST = 478; - public static readonly PROFILE = 479; - public static readonly PROFILES = 480; - public static readonly PROXY = 481; - public static readonly QUERY = 482; - public static readonly QUICK = 483; - public static readonly REBUILD = 484; - public static readonly RECOVER = 485; - public static readonly REDO_BUFFER_SIZE = 486; - public static readonly REDUNDANT = 487; - public static readonly RELAY = 488; - public static readonly RELAY_LOG_FILE = 489; - public static readonly RELAY_LOG_POS = 490; - public static readonly RELAYLOG = 491; - public static readonly REMOVE = 492; - public static readonly REORGANIZE = 493; - public static readonly REPAIR = 494; - public static readonly REPLICATE_DO_DB = 495; - public static readonly REPLICATE_DO_TABLE = 496; - public static readonly REPLICATE_IGNORE_DB = 497; - public static readonly REPLICATE_IGNORE_TABLE = 498; - public static readonly REPLICATE_REWRITE_DB = 499; - public static readonly REPLICATE_WILD_DO_TABLE = 500; - public static readonly REPLICATE_WILD_IGNORE_TABLE = 501; - public static readonly REPLICATION = 502; - public static readonly RESET = 503; - public static readonly RESUME = 504; - public static readonly RETURNED_SQLSTATE = 505; - public static readonly RETURNS = 506; - public static readonly ROLE = 507; - public static readonly ROLLBACK = 508; - public static readonly ROLLUP = 509; - public static readonly ROTATE = 510; - public static readonly ROW = 511; - public static readonly ROWS = 512; - public static readonly ROW_FORMAT = 513; - public static readonly SAVEPOINT = 514; - public static readonly SCHEDULE = 515; - public static readonly SECURITY = 516; - public static readonly SERVER = 517; - public static readonly SESSION = 518; - public static readonly SHARE = 519; - public static readonly SHARED = 520; - public static readonly SIGNED = 521; - public static readonly SIMPLE = 522; - public static readonly SLAVE = 523; - public static readonly SLOW = 524; - public static readonly SNAPSHOT = 525; - public static readonly SOCKET = 526; - public static readonly SOME = 527; - public static readonly SONAME = 528; - public static readonly SOUNDS = 529; - public static readonly SOURCE = 530; - public static readonly SQL_AFTER_GTIDS = 531; - public static readonly SQL_AFTER_MTS_GAPS = 532; - public static readonly SQL_BEFORE_GTIDS = 533; - public static readonly SQL_BUFFER_RESULT = 534; - public static readonly SQL_CACHE = 535; - public static readonly SQL_NO_CACHE = 536; - public static readonly SQL_THREAD = 537; - public static readonly START = 538; - public static readonly STARTS = 539; - public static readonly STATS_AUTO_RECALC = 540; - public static readonly STATS_PERSISTENT = 541; - public static readonly STATS_SAMPLE_PAGES = 542; - public static readonly STATUS = 543; - public static readonly STOP = 544; - public static readonly STORAGE = 545; - public static readonly STORED = 546; - public static readonly STRING = 547; - public static readonly SUBCLASS_ORIGIN = 548; - public static readonly SUBJECT = 549; - public static readonly SUBPARTITION = 550; - public static readonly SUBPARTITIONS = 551; - public static readonly SUSPEND = 552; - public static readonly SWAPS = 553; - public static readonly SWITCHES = 554; - public static readonly TABLE_NAME = 555; - public static readonly TABLESPACE = 556; - public static readonly TEMPORARY = 557; - public static readonly TEMPTABLE = 558; - public static readonly THAN = 559; - public static readonly TRADITIONAL = 560; - public static readonly TRANSACTION = 561; - public static readonly TRANSACTIONAL = 562; - public static readonly TRIGGERS = 563; - public static readonly TRUNCATE = 564; - public static readonly UNDEFINED = 565; - public static readonly UNDOFILE = 566; - public static readonly UNDO_BUFFER_SIZE = 567; - public static readonly UNINSTALL = 568; - public static readonly UNKNOWN = 569; - public static readonly UNTIL = 570; - public static readonly UPGRADE = 571; - public static readonly USER = 572; - public static readonly USE_FRM = 573; - public static readonly USER_RESOURCES = 574; - public static readonly VALIDATION = 575; - public static readonly VALUE = 576; - public static readonly VARIABLES = 577; - public static readonly VIEW = 578; - public static readonly VIRTUAL = 579; - public static readonly VISIBLE = 580; - public static readonly WAIT = 581; - public static readonly WARNINGS = 582; - public static readonly WITHOUT = 583; - public static readonly WORK = 584; - public static readonly WRAPPER = 585; - public static readonly X509 = 586; - public static readonly XA = 587; - public static readonly XML = 588; - public static readonly EUR = 589; - public static readonly USA = 590; - public static readonly JIS = 591; - public static readonly ISO = 592; - public static readonly INTERNAL = 593; - public static readonly QUARTER = 594; - public static readonly MONTH = 595; - public static readonly DAY = 596; - public static readonly HOUR = 597; - public static readonly MINUTE = 598; - public static readonly WEEK = 599; - public static readonly SECOND = 600; - public static readonly MICROSECOND = 601; - public static readonly TABLES = 602; - public static readonly ROUTINE = 603; - public static readonly EXECUTE = 604; - public static readonly FILE = 605; - public static readonly PROCESS = 606; - public static readonly RELOAD = 607; - public static readonly SHUTDOWN = 608; - public static readonly SUPER = 609; - public static readonly PRIVILEGES = 610; - public static readonly APPLICATION_PASSWORD_ADMIN = 611; - public static readonly AUDIT_ADMIN = 612; - public static readonly BACKUP_ADMIN = 613; - public static readonly BINLOG_ADMIN = 614; - public static readonly BINLOG_ENCRYPTION_ADMIN = 615; - public static readonly CLONE_ADMIN = 616; - public static readonly CONNECTION_ADMIN = 617; - public static readonly ENCRYPTION_KEY_ADMIN = 618; - public static readonly FIREWALL_ADMIN = 619; - public static readonly FIREWALL_USER = 620; - public static readonly GROUP_REPLICATION_ADMIN = 621; - public static readonly INNODB_REDO_LOG_ARCHIVE = 622; - public static readonly NDB_STORED_USER = 623; - public static readonly PERSIST_RO_VARIABLES_ADMIN = 624; - public static readonly REPLICATION_APPLIER = 625; - public static readonly REPLICATION_SLAVE_ADMIN = 626; - public static readonly RESOURCE_GROUP_ADMIN = 627; - public static readonly RESOURCE_GROUP_USER = 628; - public static readonly ROLE_ADMIN = 629; - public static readonly SESSION_VARIABLES_ADMIN = 630; - public static readonly SET_USER_ID = 631; - public static readonly SHOW_ROUTINE = 632; - public static readonly SYSTEM_VARIABLES_ADMIN = 633; - public static readonly TABLE_ENCRYPTION_ADMIN = 634; - public static readonly VERSION_TOKEN_ADMIN = 635; - public static readonly XA_RECOVER_ADMIN = 636; - public static readonly ARMSCII8 = 637; - public static readonly ASCII = 638; - public static readonly BIG5 = 639; - public static readonly CP1250 = 640; - public static readonly CP1251 = 641; - public static readonly CP1256 = 642; - public static readonly CP1257 = 643; - public static readonly CP850 = 644; - public static readonly CP852 = 645; - public static readonly CP866 = 646; - public static readonly CP932 = 647; - public static readonly DEC8 = 648; - public static readonly EUCJPMS = 649; - public static readonly EUCKR = 650; - public static readonly GB2312 = 651; - public static readonly GBK = 652; - public static readonly GEOSTD8 = 653; - public static readonly GREEK = 654; - public static readonly HEBREW = 655; - public static readonly HP8 = 656; - public static readonly KEYBCS2 = 657; - public static readonly KOI8R = 658; - public static readonly KOI8U = 659; - public static readonly LATIN1 = 660; - public static readonly LATIN2 = 661; - public static readonly LATIN5 = 662; - public static readonly LATIN7 = 663; - public static readonly MACCE = 664; - public static readonly MACROMAN = 665; - public static readonly SJIS = 666; - public static readonly SWE7 = 667; - public static readonly TIS620 = 668; - public static readonly UCS2 = 669; - public static readonly UJIS = 670; - public static readonly UTF16 = 671; - public static readonly UTF16LE = 672; - public static readonly UTF32 = 673; - public static readonly UTF8 = 674; - public static readonly UTF8MB3 = 675; - public static readonly UTF8MB4 = 676; - public static readonly ARCHIVE = 677; - public static readonly BLACKHOLE = 678; - public static readonly CSV = 679; - public static readonly FEDERATED = 680; - public static readonly INNODB = 681; - public static readonly MEMORY = 682; - public static readonly MRG_MYISAM = 683; - public static readonly MYISAM = 684; - public static readonly NDB = 685; - public static readonly NDBCLUSTER = 686; - public static readonly PERFORMANCE_SCHEMA = 687; - public static readonly TOKUDB = 688; - public static readonly REPEATABLE = 689; - public static readonly COMMITTED = 690; - public static readonly UNCOMMITTED = 691; - public static readonly SERIALIZABLE = 692; - public static readonly GEOMETRYCOLLECTION = 693; - public static readonly GEOMCOLLECTION = 694; - public static readonly GEOMETRY = 695; - public static readonly LINESTRING = 696; - public static readonly MULTILINESTRING = 697; - public static readonly MULTIPOINT = 698; - public static readonly MULTIPOLYGON = 699; - public static readonly POINT = 700; - public static readonly POLYGON = 701; - public static readonly ABS = 702; - public static readonly ACOS = 703; - public static readonly ADDDATE = 704; - public static readonly ADDTIME = 705; - public static readonly AES_DECRYPT = 706; - public static readonly AES_ENCRYPT = 707; - public static readonly AREA = 708; - public static readonly ASBINARY = 709; - public static readonly ASIN = 710; - public static readonly ASTEXT = 711; - public static readonly ASWKB = 712; - public static readonly ASWKT = 713; - public static readonly ASYMMETRIC_DECRYPT = 714; - public static readonly ASYMMETRIC_DERIVE = 715; - public static readonly ASYMMETRIC_ENCRYPT = 716; - public static readonly ASYMMETRIC_SIGN = 717; - public static readonly ASYMMETRIC_VERIFY = 718; - public static readonly ATAN = 719; - public static readonly ATAN2 = 720; - public static readonly BENCHMARK = 721; - public static readonly BIN = 722; - public static readonly BIT_COUNT = 723; - public static readonly BIT_LENGTH = 724; - public static readonly BUFFER = 725; - public static readonly CATALOG_NAME = 726; - public static readonly CEIL = 727; - public static readonly CEILING = 728; - public static readonly CENTROID = 729; - public static readonly CHARACTER_LENGTH = 730; - public static readonly CHARSET = 731; - public static readonly CHAR_LENGTH = 732; - public static readonly COERCIBILITY = 733; - public static readonly COLLATION = 734; - public static readonly COMPRESS = 735; - public static readonly CONCAT = 736; - public static readonly CONCAT_WS = 737; - public static readonly CONNECTION_ID = 738; - public static readonly CONV = 739; - public static readonly CONVERT_TZ = 740; - public static readonly COS = 741; - public static readonly COT = 742; - public static readonly CRC32 = 743; - public static readonly CREATE_ASYMMETRIC_PRIV_KEY = 744; - public static readonly CREATE_ASYMMETRIC_PUB_KEY = 745; - public static readonly CREATE_DH_PARAMETERS = 746; - public static readonly CREATE_DIGEST = 747; - public static readonly CROSSES = 748; - public static readonly DATEDIFF = 749; - public static readonly DATE_FORMAT = 750; - public static readonly DAYNAME = 751; - public static readonly DAYOFMONTH = 752; - public static readonly DAYOFWEEK = 753; - public static readonly DAYOFYEAR = 754; - public static readonly DECODE = 755; - public static readonly DEGREES = 756; - public static readonly DES_DECRYPT = 757; - public static readonly DES_ENCRYPT = 758; - public static readonly DIMENSION = 759; - public static readonly DISJOINT = 760; - public static readonly ELT = 761; - public static readonly ENCODE = 762; - public static readonly ENCRYPT = 763; - public static readonly ENDPOINT = 764; - public static readonly ENVELOPE = 765; - public static readonly EQUALS = 766; - public static readonly EXP = 767; - public static readonly EXPORT_SET = 768; - public static readonly EXTERIORRING = 769; - public static readonly EXTRACTVALUE = 770; - public static readonly FIELD = 771; - public static readonly FIND_IN_SET = 772; - public static readonly FLOOR = 773; - public static readonly FORMAT = 774; - public static readonly FOUND_ROWS = 775; - public static readonly FROM_BASE64 = 776; - public static readonly FROM_DAYS = 777; - public static readonly FROM_UNIXTIME = 778; - public static readonly GEOMCOLLFROMTEXT = 779; - public static readonly GEOMCOLLFROMWKB = 780; - public static readonly GEOMETRYCOLLECTIONFROMTEXT = 781; - public static readonly GEOMETRYCOLLECTIONFROMWKB = 782; - public static readonly GEOMETRYFROMTEXT = 783; - public static readonly GEOMETRYFROMWKB = 784; - public static readonly GEOMETRYN = 785; - public static readonly GEOMETRYTYPE = 786; - public static readonly GEOMFROMTEXT = 787; - public static readonly GEOMFROMWKB = 788; - public static readonly GET_FORMAT = 789; - public static readonly GET_LOCK = 790; - public static readonly GLENGTH = 791; - public static readonly GREATEST = 792; - public static readonly GTID_SUBSET = 793; - public static readonly GTID_SUBTRACT = 794; - public static readonly HEX = 795; - public static readonly IFNULL = 796; - public static readonly INET6_ATON = 797; - public static readonly INET6_NTOA = 798; - public static readonly INET_ATON = 799; - public static readonly INET_NTOA = 800; - public static readonly INSTR = 801; - public static readonly INTERIORRINGN = 802; - public static readonly INTERSECTS = 803; - public static readonly ISCLOSED = 804; - public static readonly ISEMPTY = 805; - public static readonly ISNULL = 806; - public static readonly ISSIMPLE = 807; - public static readonly IS_FREE_LOCK = 808; - public static readonly IS_IPV4 = 809; - public static readonly IS_IPV4_COMPAT = 810; - public static readonly IS_IPV4_MAPPED = 811; - public static readonly IS_IPV6 = 812; - public static readonly IS_USED_LOCK = 813; - public static readonly LAST_INSERT_ID = 814; - public static readonly LCASE = 815; - public static readonly LEAST = 816; - public static readonly LENGTH = 817; - public static readonly LINEFROMTEXT = 818; - public static readonly LINEFROMWKB = 819; - public static readonly LINESTRINGFROMTEXT = 820; - public static readonly LINESTRINGFROMWKB = 821; - public static readonly LN = 822; - public static readonly LOAD_FILE = 823; - public static readonly LOCATE = 824; - public static readonly LOG = 825; - public static readonly LOG10 = 826; - public static readonly LOG2 = 827; - public static readonly LOWER = 828; - public static readonly LPAD = 829; - public static readonly LTRIM = 830; - public static readonly MAKEDATE = 831; - public static readonly MAKETIME = 832; - public static readonly MAKE_SET = 833; - public static readonly MASTER_POS_WAIT = 834; - public static readonly MBRCONTAINS = 835; - public static readonly MBRDISJOINT = 836; - public static readonly MBREQUAL = 837; - public static readonly MBRINTERSECTS = 838; - public static readonly MBROVERLAPS = 839; - public static readonly MBRTOUCHES = 840; - public static readonly MBRWITHIN = 841; - public static readonly MD5 = 842; - public static readonly MLINEFROMTEXT = 843; - public static readonly MLINEFROMWKB = 844; - public static readonly MONTHNAME = 845; - public static readonly MPOINTFROMTEXT = 846; - public static readonly MPOINTFROMWKB = 847; - public static readonly MPOLYFROMTEXT = 848; - public static readonly MPOLYFROMWKB = 849; - public static readonly MULTILINESTRINGFROMTEXT = 850; - public static readonly MULTILINESTRINGFROMWKB = 851; - public static readonly MULTIPOINTFROMTEXT = 852; - public static readonly MULTIPOINTFROMWKB = 853; - public static readonly MULTIPOLYGONFROMTEXT = 854; - public static readonly MULTIPOLYGONFROMWKB = 855; - public static readonly NAME_CONST = 856; - public static readonly NULLIF = 857; - public static readonly NUMGEOMETRIES = 858; - public static readonly NUMINTERIORRINGS = 859; - public static readonly NUMPOINTS = 860; - public static readonly OCT = 861; - public static readonly OCTET_LENGTH = 862; - public static readonly ORD = 863; - public static readonly OVERLAPS = 864; - public static readonly PERIOD_ADD = 865; - public static readonly PERIOD_DIFF = 866; - public static readonly PI = 867; - public static readonly POINTFROMTEXT = 868; - public static readonly POINTFROMWKB = 869; - public static readonly POINTN = 870; - public static readonly POLYFROMTEXT = 871; - public static readonly POLYFROMWKB = 872; - public static readonly POLYGONFROMTEXT = 873; - public static readonly POLYGONFROMWKB = 874; - public static readonly POW = 875; - public static readonly POWER = 876; - public static readonly QUOTE = 877; - public static readonly RADIANS = 878; - public static readonly RAND = 879; - public static readonly RANDOM_BYTES = 880; - public static readonly RELEASE_LOCK = 881; - public static readonly REVERSE = 882; - public static readonly ROUND = 883; - public static readonly ROW_COUNT = 884; - public static readonly RPAD = 885; - public static readonly RTRIM = 886; - public static readonly SEC_TO_TIME = 887; - public static readonly SESSION_USER = 888; - public static readonly SHA = 889; - public static readonly SHA1 = 890; - public static readonly SHA2 = 891; - public static readonly SCHEMA_NAME = 892; - public static readonly SIGN = 893; - public static readonly SIN = 894; - public static readonly SLEEP = 895; - public static readonly SOUNDEX = 896; - public static readonly SQL_THREAD_WAIT_AFTER_GTIDS = 897; - public static readonly SQRT = 898; - public static readonly SRID = 899; - public static readonly STARTPOINT = 900; - public static readonly STRCMP = 901; - public static readonly STR_TO_DATE = 902; - public static readonly ST_AREA = 903; - public static readonly ST_ASBINARY = 904; - public static readonly ST_ASTEXT = 905; - public static readonly ST_ASWKB = 906; - public static readonly ST_ASWKT = 907; - public static readonly ST_BUFFER = 908; - public static readonly ST_CENTROID = 909; - public static readonly ST_CONTAINS = 910; - public static readonly ST_CROSSES = 911; - public static readonly ST_DIFFERENCE = 912; - public static readonly ST_DIMENSION = 913; - public static readonly ST_DISJOINT = 914; - public static readonly ST_DISTANCE = 915; - public static readonly ST_ENDPOINT = 916; - public static readonly ST_ENVELOPE = 917; - public static readonly ST_EQUALS = 918; - public static readonly ST_EXTERIORRING = 919; - public static readonly ST_GEOMCOLLFROMTEXT = 920; - public static readonly ST_GEOMCOLLFROMTXT = 921; - public static readonly ST_GEOMCOLLFROMWKB = 922; - public static readonly ST_GEOMETRYCOLLECTIONFROMTEXT = 923; - public static readonly ST_GEOMETRYCOLLECTIONFROMWKB = 924; - public static readonly ST_GEOMETRYFROMTEXT = 925; - public static readonly ST_GEOMETRYFROMWKB = 926; - public static readonly ST_GEOMETRYN = 927; - public static readonly ST_GEOMETRYTYPE = 928; - public static readonly ST_GEOMFROMTEXT = 929; - public static readonly ST_GEOMFROMWKB = 930; - public static readonly ST_INTERIORRINGN = 931; - public static readonly ST_INTERSECTION = 932; - public static readonly ST_INTERSECTS = 933; - public static readonly ST_ISCLOSED = 934; - public static readonly ST_ISEMPTY = 935; - public static readonly ST_ISSIMPLE = 936; - public static readonly ST_LINEFROMTEXT = 937; - public static readonly ST_LINEFROMWKB = 938; - public static readonly ST_LINESTRINGFROMTEXT = 939; - public static readonly ST_LINESTRINGFROMWKB = 940; - public static readonly ST_NUMGEOMETRIES = 941; - public static readonly ST_NUMINTERIORRING = 942; - public static readonly ST_NUMINTERIORRINGS = 943; - public static readonly ST_NUMPOINTS = 944; - public static readonly ST_OVERLAPS = 945; - public static readonly ST_POINTFROMTEXT = 946; - public static readonly ST_POINTFROMWKB = 947; - public static readonly ST_POINTN = 948; - public static readonly ST_POLYFROMTEXT = 949; - public static readonly ST_POLYFROMWKB = 950; - public static readonly ST_POLYGONFROMTEXT = 951; - public static readonly ST_POLYGONFROMWKB = 952; - public static readonly ST_SRID = 953; - public static readonly ST_STARTPOINT = 954; - public static readonly ST_SYMDIFFERENCE = 955; - public static readonly ST_TOUCHES = 956; - public static readonly ST_UNION = 957; - public static readonly ST_WITHIN = 958; - public static readonly ST_X = 959; - public static readonly ST_Y = 960; - public static readonly SUBDATE = 961; - public static readonly SUBSTRING_INDEX = 962; - public static readonly SUBTIME = 963; - public static readonly SYSTEM_USER = 964; - public static readonly TAN = 965; - public static readonly TIMEDIFF = 966; - public static readonly TIMESTAMPADD = 967; - public static readonly TIMESTAMPDIFF = 968; - public static readonly TIME_FORMAT = 969; - public static readonly TIME_TO_SEC = 970; - public static readonly TOUCHES = 971; - public static readonly TO_BASE64 = 972; - public static readonly TO_DAYS = 973; - public static readonly TO_SECONDS = 974; - public static readonly UCASE = 975; - public static readonly UNCOMPRESS = 976; - public static readonly UNCOMPRESSED_LENGTH = 977; - public static readonly UNHEX = 978; - public static readonly UNIX_TIMESTAMP = 979; - public static readonly UPDATEXML = 980; - public static readonly UPPER = 981; - public static readonly UUID = 982; - public static readonly UUID_SHORT = 983; - public static readonly VALIDATE_PASSWORD_STRENGTH = 984; - public static readonly VERSION = 985; - public static readonly WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 986; - public static readonly WEEKDAY = 987; - public static readonly WEEKOFYEAR = 988; - public static readonly WEIGHT_STRING = 989; - public static readonly WITHIN = 990; - public static readonly YEARWEEK = 991; - public static readonly Y_FUNCTION = 992; - public static readonly X_FUNCTION = 993; - public static readonly VAR_ASSIGN = 994; - public static readonly PLUS_ASSIGN = 995; - public static readonly MINUS_ASSIGN = 996; - public static readonly MULT_ASSIGN = 997; - public static readonly DIV_ASSIGN = 998; - public static readonly MOD_ASSIGN = 999; - public static readonly AND_ASSIGN = 1000; - public static readonly XOR_ASSIGN = 1001; - public static readonly OR_ASSIGN = 1002; - public static readonly STAR = 1003; - public static readonly DIVIDE = 1004; - public static readonly MODULE = 1005; - public static readonly PLUS = 1006; - public static readonly MINUSMINUS = 1007; - public static readonly MINUS = 1008; - public static readonly DIV = 1009; - public static readonly MOD = 1010; - public static readonly EQUAL_SYMBOL = 1011; - public static readonly GREATER_SYMBOL = 1012; - public static readonly LESS_SYMBOL = 1013; - public static readonly EXCLAMATION_SYMBOL = 1014; - public static readonly BIT_NOT_OP = 1015; - public static readonly BIT_OR_OP = 1016; - public static readonly BIT_AND_OP = 1017; - public static readonly BIT_XOR_OP = 1018; - public static readonly DOT = 1019; - public static readonly LR_BRACKET = 1020; - public static readonly RR_BRACKET = 1021; - public static readonly COMMA = 1022; - public static readonly SEMI = 1023; - public static readonly AT_SIGN = 1024; - public static readonly ZERO_DECIMAL = 1025; - public static readonly ONE_DECIMAL = 1026; - public static readonly TWO_DECIMAL = 1027; - public static readonly SINGLE_QUOTE_SYMB = 1028; - public static readonly DOUBLE_QUOTE_SYMB = 1029; - public static readonly REVERSE_QUOTE_SYMB = 1030; - public static readonly COLON_SYMB = 1031; - public static readonly CHARSET_REVERSE_QOUTE_STRING = 1032; - public static readonly FILESIZE_LITERAL = 1033; - public static readonly START_NATIONAL_STRING_LITERAL = 1034; - public static readonly STRING_LITERAL = 1035; - public static readonly DECIMAL_LITERAL = 1036; - public static readonly HEXADECIMAL_LITERAL = 1037; - public static readonly REAL_LITERAL = 1038; - public static readonly NULL_SPEC_LITERAL = 1039; - public static readonly BIT_STRING = 1040; - public static readonly STRING_CHARSET_NAME = 1041; - public static readonly DOT_ID = 1042; - public static readonly ID = 1043; - public static readonly REVERSE_QUOTE_ID = 1044; - public static readonly STRING_USER_NAME = 1045; - public static readonly LOCAL_ID = 1046; - public static readonly GLOBAL_ID = 1047; - public static readonly ERROR_RECONGNIGION = 1048; - public static readonly RULE_program = 0; - public static readonly RULE_statement = 1; - public static readonly RULE_sqlStatements = 2; - public static readonly RULE_sqlStatement = 3; - public static readonly RULE_emptyStatement = 4; - public static readonly RULE_ddlStatement = 5; - public static readonly RULE_dmlStatement = 6; - public static readonly RULE_transactionStatement = 7; - public static readonly RULE_replicationStatement = 8; - public static readonly RULE_preparedStatement = 9; - public static readonly RULE_compoundStatement = 10; - public static readonly RULE_administrationStatement = 11; - public static readonly RULE_utilityStatement = 12; - public static readonly RULE_createDatabase = 13; - public static readonly RULE_createEvent = 14; - public static readonly RULE_createIndex = 15; - public static readonly RULE_createLogfileGroup = 16; - public static readonly RULE_createProcedure = 17; - public static readonly RULE_createFunction = 18; - public static readonly RULE_createServer = 19; - public static readonly RULE_createTable = 20; - public static readonly RULE_createTablespaceInnodb = 21; - public static readonly RULE_createTablespaceNdb = 22; - public static readonly RULE_createTrigger = 23; - public static readonly RULE_createView = 24; - public static readonly RULE_createDatabaseOption = 25; - public static readonly RULE_ownerStatement = 26; - public static readonly RULE_scheduleExpression = 27; - public static readonly RULE_timestampValue = 28; - public static readonly RULE_intervalExpr = 29; - public static readonly RULE_intervalType = 30; - public static readonly RULE_enableType = 31; - public static readonly RULE_indexType = 32; - public static readonly RULE_indexOption = 33; - public static readonly RULE_procedureParameter = 34; - public static readonly RULE_functionParameter = 35; - public static readonly RULE_routineOption = 36; - public static readonly RULE_serverOption = 37; - public static readonly RULE_createDefinitions = 38; - public static readonly RULE_createDefinition = 39; - public static readonly RULE_columnDefinition = 40; - public static readonly RULE_columnConstraint = 41; - public static readonly RULE_tableConstraint = 42; - public static readonly RULE_referenceDefinition = 43; - public static readonly RULE_referenceAction = 44; - public static readonly RULE_referenceControlType = 45; - public static readonly RULE_indexColumnDefinition = 46; - public static readonly RULE_tableOption = 47; - public static readonly RULE_tablespaceStorage = 48; - public static readonly RULE_partitionDefinitions = 49; - public static readonly RULE_partitionFunctionDefinition = 50; - public static readonly RULE_subpartitionFunctionDefinition = 51; - public static readonly RULE_partitionDefinition = 52; - public static readonly RULE_partitionDefinerAtom = 53; - public static readonly RULE_partitionDefinerVector = 54; - public static readonly RULE_subpartitionDefinition = 55; - public static readonly RULE_partitionOption = 56; - public static readonly RULE_alterDatabase = 57; - public static readonly RULE_alterEvent = 58; - public static readonly RULE_alterFunction = 59; - public static readonly RULE_alterInstance = 60; - public static readonly RULE_alterLogfileGroup = 61; - public static readonly RULE_alterProcedure = 62; - public static readonly RULE_alterServer = 63; - public static readonly RULE_alterTable = 64; - public static readonly RULE_alterTablespace = 65; - public static readonly RULE_alterView = 66; - public static readonly RULE_alterSpecification = 67; - public static readonly RULE_dropDatabase = 68; - public static readonly RULE_dropEvent = 69; - public static readonly RULE_dropIndex = 70; - public static readonly RULE_dropLogfileGroup = 71; - public static readonly RULE_dropProcedure = 72; - public static readonly RULE_dropFunction = 73; - public static readonly RULE_dropServer = 74; - public static readonly RULE_dropTable = 75; - public static readonly RULE_dropTablespace = 76; - public static readonly RULE_dropTrigger = 77; - public static readonly RULE_dropView = 78; - public static readonly RULE_renameTable = 79; - public static readonly RULE_renameTableClause = 80; - public static readonly RULE_truncateTable = 81; - public static readonly RULE_callStatement = 82; - public static readonly RULE_deleteStatement = 83; - public static readonly RULE_doStatement = 84; - public static readonly RULE_handlerStatement = 85; - public static readonly RULE_insertStatement = 86; - public static readonly RULE_loadDataStatement = 87; - public static readonly RULE_loadXmlStatement = 88; - public static readonly RULE_replaceStatement = 89; - public static readonly RULE_selectStatement = 90; - public static readonly RULE_updateStatement = 91; - public static readonly RULE_insertStatementValue = 92; - public static readonly RULE_updatedElement = 93; - public static readonly RULE_assignmentField = 94; - public static readonly RULE_lockClause = 95; - public static readonly RULE_singleDeleteStatement = 96; - public static readonly RULE_multipleDeleteStatement = 97; - public static readonly RULE_handlerOpenStatement = 98; - public static readonly RULE_handlerReadIndexStatement = 99; - public static readonly RULE_handlerReadStatement = 100; - public static readonly RULE_handlerCloseStatement = 101; - public static readonly RULE_singleUpdateStatement = 102; - public static readonly RULE_multipleUpdateStatement = 103; - public static readonly RULE_orderByClause = 104; - public static readonly RULE_orderByExpression = 105; - public static readonly RULE_tableSources = 106; - public static readonly RULE_tableSource = 107; - public static readonly RULE_tableSourceItem = 108; - public static readonly RULE_indexHint = 109; - public static readonly RULE_indexHintType = 110; - public static readonly RULE_joinPart = 111; - public static readonly RULE_queryExpression = 112; - public static readonly RULE_queryExpressionNointo = 113; - public static readonly RULE_querySpecification = 114; - public static readonly RULE_querySpecificationNointo = 115; - public static readonly RULE_unionParenthesis = 116; - public static readonly RULE_unionStatement = 117; - public static readonly RULE_selectSpec = 118; - public static readonly RULE_selectElements = 119; - public static readonly RULE_selectElement = 120; - public static readonly RULE_selectIntoExpression = 121; - public static readonly RULE_selectFieldsInto = 122; - public static readonly RULE_selectLinesInto = 123; - public static readonly RULE_fromClause = 124; - public static readonly RULE_groupByItem = 125; - public static readonly RULE_limitClause = 126; - public static readonly RULE_limitClauseAtom = 127; - public static readonly RULE_startTransaction = 128; - public static readonly RULE_beginWork = 129; - public static readonly RULE_commitWork = 130; - public static readonly RULE_rollbackWork = 131; - public static readonly RULE_savepointStatement = 132; - public static readonly RULE_rollbackStatement = 133; - public static readonly RULE_releaseStatement = 134; - public static readonly RULE_lockTables = 135; - public static readonly RULE_unlockTables = 136; - public static readonly RULE_setAutocommitStatement = 137; - public static readonly RULE_setTransactionStatement = 138; - public static readonly RULE_transactionMode = 139; - public static readonly RULE_lockTableElement = 140; - public static readonly RULE_lockAction = 141; - public static readonly RULE_transactionOption = 142; - public static readonly RULE_transactionLevel = 143; - public static readonly RULE_changeMaster = 144; - public static readonly RULE_changeReplicationFilter = 145; - public static readonly RULE_purgeBinaryLogs = 146; - public static readonly RULE_resetMaster = 147; - public static readonly RULE_resetSlave = 148; - public static readonly RULE_startSlave = 149; - public static readonly RULE_stopSlave = 150; - public static readonly RULE_startGroupReplication = 151; - public static readonly RULE_stopGroupReplication = 152; - public static readonly RULE_masterOption = 153; - public static readonly RULE_stringMasterOption = 154; - public static readonly RULE_decimalMasterOption = 155; - public static readonly RULE_boolMasterOption = 156; - public static readonly RULE_channelOption = 157; - public static readonly RULE_replicationFilter = 158; - public static readonly RULE_tablePair = 159; - public static readonly RULE_threadType = 160; - public static readonly RULE_untilOption = 161; - public static readonly RULE_connectionOption = 162; - public static readonly RULE_gtuidSet = 163; - public static readonly RULE_xaStartTransaction = 164; - public static readonly RULE_xaEndTransaction = 165; - public static readonly RULE_xaPrepareStatement = 166; - public static readonly RULE_xaCommitWork = 167; - public static readonly RULE_xaRollbackWork = 168; - public static readonly RULE_xaRecoverWork = 169; - public static readonly RULE_prepareStatement = 170; - public static readonly RULE_executeStatement = 171; - public static readonly RULE_deallocatePrepare = 172; - public static readonly RULE_routineBody = 173; - public static readonly RULE_blockStatement = 174; - public static readonly RULE_caseStatement = 175; - public static readonly RULE_ifStatement = 176; - public static readonly RULE_iterateStatement = 177; - public static readonly RULE_leaveStatement = 178; - public static readonly RULE_loopStatement = 179; - public static readonly RULE_repeatStatement = 180; - public static readonly RULE_returnStatement = 181; - public static readonly RULE_whileStatement = 182; - public static readonly RULE_cursorStatement = 183; - public static readonly RULE_declareVariable = 184; - public static readonly RULE_declareCondition = 185; - public static readonly RULE_declareCursor = 186; - public static readonly RULE_declareHandler = 187; - public static readonly RULE_handlerConditionValue = 188; - public static readonly RULE_procedureSqlStatement = 189; - public static readonly RULE_caseAlternative = 190; - public static readonly RULE_elifAlternative = 191; - public static readonly RULE_alterUser = 192; - public static readonly RULE_createUser = 193; - public static readonly RULE_dropUser = 194; - public static readonly RULE_grantStatement = 195; - public static readonly RULE_grantProxy = 196; - public static readonly RULE_renameUser = 197; - public static readonly RULE_revokeStatement = 198; - public static readonly RULE_revokeProxy = 199; - public static readonly RULE_setPasswordStatement = 200; - public static readonly RULE_userSpecification = 201; - public static readonly RULE_userAuthOption = 202; - public static readonly RULE_tlsOption = 203; - public static readonly RULE_userResourceOption = 204; - public static readonly RULE_userPasswordOption = 205; - public static readonly RULE_userLockOption = 206; - public static readonly RULE_privelegeClause = 207; - public static readonly RULE_privilege = 208; - public static readonly RULE_privilegeLevel = 209; - public static readonly RULE_renameUserClause = 210; - public static readonly RULE_analyzeTable = 211; - public static readonly RULE_checkTable = 212; - public static readonly RULE_checksumTable = 213; - public static readonly RULE_optimizeTable = 214; - public static readonly RULE_repairTable = 215; - public static readonly RULE_checkTableOption = 216; - public static readonly RULE_createUdfunction = 217; - public static readonly RULE_installPlugin = 218; - public static readonly RULE_uninstallPlugin = 219; - public static readonly RULE_setStatement = 220; - public static readonly RULE_showStatement = 221; - public static readonly RULE_variableClause = 222; - public static readonly RULE_showCommonEntity = 223; - public static readonly RULE_showFilter = 224; - public static readonly RULE_showGlobalInfoClause = 225; - public static readonly RULE_showSchemaEntity = 226; - public static readonly RULE_showProfileType = 227; - public static readonly RULE_binlogStatement = 228; - public static readonly RULE_cacheIndexStatement = 229; - public static readonly RULE_flushStatement = 230; - public static readonly RULE_killStatement = 231; - public static readonly RULE_loadIndexIntoCache = 232; - public static readonly RULE_resetStatement = 233; - public static readonly RULE_shutdownStatement = 234; - public static readonly RULE_tableIndexes = 235; - public static readonly RULE_flushOption = 236; - public static readonly RULE_flushTableOption = 237; - public static readonly RULE_loadedTableIndexes = 238; - public static readonly RULE_simpleDescribeStatement = 239; - public static readonly RULE_fullDescribeStatement = 240; - public static readonly RULE_helpStatement = 241; - public static readonly RULE_useStatement = 242; - public static readonly RULE_signalStatement = 243; - public static readonly RULE_resignalStatement = 244; - public static readonly RULE_signalConditionInformation = 245; - public static readonly RULE_diagnosticsStatement = 246; - public static readonly RULE_diagnosticsConditionInformationName = 247; - public static readonly RULE_describeObjectClause = 248; - public static readonly RULE_fullId = 249; - public static readonly RULE_tableName = 250; - public static readonly RULE_fullColumnName = 251; - public static readonly RULE_indexColumnName = 252; - public static readonly RULE_userName = 253; - public static readonly RULE_mysqlVariable = 254; - public static readonly RULE_charsetName = 255; - public static readonly RULE_collationName = 256; - public static readonly RULE_engineName = 257; - public static readonly RULE_uuidSet = 258; - public static readonly RULE_xid = 259; - public static readonly RULE_xuidStringId = 260; - public static readonly RULE_authPlugin = 261; - public static readonly RULE_uid = 262; - public static readonly RULE_simpleId = 263; - public static readonly RULE_dottedId = 264; - public static readonly RULE_decimalLiteral = 265; - public static readonly RULE_fileSizeLiteral = 266; - public static readonly RULE_stringLiteral = 267; - public static readonly RULE_booleanLiteral = 268; - public static readonly RULE_hexadecimalLiteral = 269; - public static readonly RULE_nullNotnull = 270; - public static readonly RULE_constant = 271; - public static readonly RULE_dataType = 272; - public static readonly RULE_collectionOptions = 273; - public static readonly RULE_convertedDataType = 274; - public static readonly RULE_lengthOneDimension = 275; - public static readonly RULE_lengthTwoDimension = 276; - public static readonly RULE_lengthTwoOptionalDimension = 277; - public static readonly RULE_uidList = 278; - public static readonly RULE_tables = 279; - public static readonly RULE_indexColumnNames = 280; - public static readonly RULE_expressions = 281; - public static readonly RULE_expressionsWithDefaults = 282; - public static readonly RULE_constants = 283; - public static readonly RULE_simpleStrings = 284; - public static readonly RULE_userVariables = 285; - public static readonly RULE_defaultValue = 286; - public static readonly RULE_currentTimestamp = 287; - public static readonly RULE_expressionOrDefault = 288; - public static readonly RULE_ifExists = 289; - public static readonly RULE_ifNotExists = 290; - public static readonly RULE_functionCall = 291; - public static readonly RULE_specificFunction = 292; - public static readonly RULE_caseFuncAlternative = 293; - public static readonly RULE_levelsInWeightString = 294; - public static readonly RULE_levelInWeightListElement = 295; - public static readonly RULE_aggregateWindowedFunction = 296; - public static readonly RULE_scalarFunctionName = 297; - public static readonly RULE_passwordFunctionClause = 298; - public static readonly RULE_functionArgs = 299; - public static readonly RULE_functionArg = 300; - public static readonly RULE_expression = 301; - public static readonly RULE_predicate = 302; - public static readonly RULE_expressionAtom = 303; - public static readonly RULE_unaryOperator = 304; - public static readonly RULE_comparisonOperator = 305; - public static readonly RULE_logicalOperator = 306; - public static readonly RULE_bitOperator = 307; - public static readonly RULE_mathOperator = 308; - public static readonly RULE_charsetNameBase = 309; - public static readonly RULE_transactionLevelBase = 310; - public static readonly RULE_privilegesBase = 311; - public static readonly RULE_intervalTypeBase = 312; - public static readonly RULE_dataTypeBase = 313; - public static readonly RULE_keywordsCanBeId = 314; - public static readonly RULE_functionNameBase = 315; - // tslint:disable:no-trailing-whitespace - public static readonly ruleNames: string[] = [ - "program", "statement", "sqlStatements", "sqlStatement", "emptyStatement", - "ddlStatement", "dmlStatement", "transactionStatement", "replicationStatement", - "preparedStatement", "compoundStatement", "administrationStatement", "utilityStatement", - "createDatabase", "createEvent", "createIndex", "createLogfileGroup", - "createProcedure", "createFunction", "createServer", "createTable", "createTablespaceInnodb", - "createTablespaceNdb", "createTrigger", "createView", "createDatabaseOption", - "ownerStatement", "scheduleExpression", "timestampValue", "intervalExpr", - "intervalType", "enableType", "indexType", "indexOption", "procedureParameter", - "functionParameter", "routineOption", "serverOption", "createDefinitions", - "createDefinition", "columnDefinition", "columnConstraint", "tableConstraint", - "referenceDefinition", "referenceAction", "referenceControlType", "indexColumnDefinition", - "tableOption", "tablespaceStorage", "partitionDefinitions", "partitionFunctionDefinition", - "subpartitionFunctionDefinition", "partitionDefinition", "partitionDefinerAtom", - "partitionDefinerVector", "subpartitionDefinition", "partitionOption", - "alterDatabase", "alterEvent", "alterFunction", "alterInstance", "alterLogfileGroup", - "alterProcedure", "alterServer", "alterTable", "alterTablespace", "alterView", - "alterSpecification", "dropDatabase", "dropEvent", "dropIndex", "dropLogfileGroup", - "dropProcedure", "dropFunction", "dropServer", "dropTable", "dropTablespace", - "dropTrigger", "dropView", "renameTable", "renameTableClause", "truncateTable", - "callStatement", "deleteStatement", "doStatement", "handlerStatement", - "insertStatement", "loadDataStatement", "loadXmlStatement", "replaceStatement", - "selectStatement", "updateStatement", "insertStatementValue", "updatedElement", - "assignmentField", "lockClause", "singleDeleteStatement", "multipleDeleteStatement", - "handlerOpenStatement", "handlerReadIndexStatement", "handlerReadStatement", - "handlerCloseStatement", "singleUpdateStatement", "multipleUpdateStatement", - "orderByClause", "orderByExpression", "tableSources", "tableSource", "tableSourceItem", - "indexHint", "indexHintType", "joinPart", "queryExpression", "queryExpressionNointo", - "querySpecification", "querySpecificationNointo", "unionParenthesis", - "unionStatement", "selectSpec", "selectElements", "selectElement", "selectIntoExpression", - "selectFieldsInto", "selectLinesInto", "fromClause", "groupByItem", "limitClause", - "limitClauseAtom", "startTransaction", "beginWork", "commitWork", "rollbackWork", - "savepointStatement", "rollbackStatement", "releaseStatement", "lockTables", - "unlockTables", "setAutocommitStatement", "setTransactionStatement", "transactionMode", - "lockTableElement", "lockAction", "transactionOption", "transactionLevel", - "changeMaster", "changeReplicationFilter", "purgeBinaryLogs", "resetMaster", - "resetSlave", "startSlave", "stopSlave", "startGroupReplication", "stopGroupReplication", - "masterOption", "stringMasterOption", "decimalMasterOption", "boolMasterOption", - "channelOption", "replicationFilter", "tablePair", "threadType", "untilOption", - "connectionOption", "gtuidSet", "xaStartTransaction", "xaEndTransaction", - "xaPrepareStatement", "xaCommitWork", "xaRollbackWork", "xaRecoverWork", - "prepareStatement", "executeStatement", "deallocatePrepare", "routineBody", - "blockStatement", "caseStatement", "ifStatement", "iterateStatement", - "leaveStatement", "loopStatement", "repeatStatement", "returnStatement", - "whileStatement", "cursorStatement", "declareVariable", "declareCondition", - "declareCursor", "declareHandler", "handlerConditionValue", "procedureSqlStatement", - "caseAlternative", "elifAlternative", "alterUser", "createUser", "dropUser", - "grantStatement", "grantProxy", "renameUser", "revokeStatement", "revokeProxy", - "setPasswordStatement", "userSpecification", "userAuthOption", "tlsOption", - "userResourceOption", "userPasswordOption", "userLockOption", "privelegeClause", - "privilege", "privilegeLevel", "renameUserClause", "analyzeTable", "checkTable", - "checksumTable", "optimizeTable", "repairTable", "checkTableOption", "createUdfunction", - "installPlugin", "uninstallPlugin", "setStatement", "showStatement", "variableClause", - "showCommonEntity", "showFilter", "showGlobalInfoClause", "showSchemaEntity", - "showProfileType", "binlogStatement", "cacheIndexStatement", "flushStatement", - "killStatement", "loadIndexIntoCache", "resetStatement", "shutdownStatement", - "tableIndexes", "flushOption", "flushTableOption", "loadedTableIndexes", - "simpleDescribeStatement", "fullDescribeStatement", "helpStatement", "useStatement", - "signalStatement", "resignalStatement", "signalConditionInformation", - "diagnosticsStatement", "diagnosticsConditionInformationName", "describeObjectClause", - "fullId", "tableName", "fullColumnName", "indexColumnName", "userName", - "mysqlVariable", "charsetName", "collationName", "engineName", "uuidSet", - "xid", "xuidStringId", "authPlugin", "uid", "simpleId", "dottedId", "decimalLiteral", - "fileSizeLiteral", "stringLiteral", "booleanLiteral", "hexadecimalLiteral", - "nullNotnull", "constant", "dataType", "collectionOptions", "convertedDataType", - "lengthOneDimension", "lengthTwoDimension", "lengthTwoOptionalDimension", - "uidList", "tables", "indexColumnNames", "expressions", "expressionsWithDefaults", - "constants", "simpleStrings", "userVariables", "defaultValue", "currentTimestamp", - "expressionOrDefault", "ifExists", "ifNotExists", "functionCall", "specificFunction", - "caseFuncAlternative", "levelsInWeightString", "levelInWeightListElement", - "aggregateWindowedFunction", "scalarFunctionName", "passwordFunctionClause", - "functionArgs", "functionArg", "expression", "predicate", "expressionAtom", - "unaryOperator", "comparisonOperator", "logicalOperator", "bitOperator", - "mathOperator", "charsetNameBase", "transactionLevelBase", "privilegesBase", - "intervalTypeBase", "dataTypeBase", "keywordsCanBeId", "functionNameBase", - ]; - - private static readonly _LITERAL_NAMES: Array = [ - undefined, undefined, undefined, undefined, undefined, "'ADD'", "'ALL'", - "'ALTER'", "'ALWAYS'", "'ANALYZE'", "'AND'", "'AS'", "'ASC'", "'BEFORE'", - "'BETWEEN'", "'BOTH'", "'BY'", "'CALL'", "'CASCADE'", "'CASE'", "'CAST'", - "'CHANGE'", "'CHARACTER'", "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", - "'CONSTRAINT'", "'CONTINUE'", "'CONVERT'", "'CREATE'", "'CROSS'", "'CURRENT'", - "'CURRENT_USER'", "'CURSOR'", "'DATABASE'", "'DATABASES'", "'DECLARE'", - "'DEFAULT'", "'DELAYED'", "'DELETE'", "'DESC'", "'DESCRIBE'", "'DETERMINISTIC'", - "'DIAGNOSTICS'", "'DISTINCT'", "'DISTINCTROW'", "'DROP'", "'EACH'", "'ELSE'", - "'ELSEIF'", "'ENCLOSED'", "'ESCAPED'", "'EXISTS'", "'EXIT'", "'EXPLAIN'", - "'FALSE'", "'FETCH'", "'FOR'", "'FORCE'", "'FOREIGN'", "'FROM'", "'FULLTEXT'", - "'GENERATED'", "'GET'", "'GRANT'", "'GROUP'", "'HAVING'", "'HIGH_PRIORITY'", - "'IF'", "'IGNORE'", "'IN'", "'INDEX'", "'INFILE'", "'INNER'", "'INOUT'", - "'INSERT'", "'INTERVAL'", "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", - "'KEYS'", "'KILL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", "'LIMIT'", - "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", "'LOOP'", "'LOW_PRIORITY'", - "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", "'MATCH'", "'MAXVALUE'", - "'MODIFIES'", "'NATURAL'", "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", - "'NUMBER'", "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONALLY'", "'OR'", - "'ORDER'", "'OUT'", "'OUTER'", "'OUTFILE'", "'PARTITION'", "'PRIMARY'", - "'PROCEDURE'", "'PURGE'", "'RANGE'", "'READ'", "'READS'", "'REFERENCES'", - "'REGEXP'", "'RELEASE'", "'RENAME'", "'REPEAT'", "'REPLACE'", "'REQUIRE'", - "'RESIGNAL'", "'RESTRICT'", "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", - "'SCHEMA'", "'SCHEMAS'", "'SELECT'", "'SET'", "'SEPARATOR'", "'SHOW'", - "'SIGNAL'", "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", "'SQLSTATE'", "'SQLWARNING'", - "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", "'SQL_SMALL_RESULT'", "'SSL'", - "'STACKED'", "'STARTING'", "'STRAIGHT_JOIN'", "'TABLE'", "'TERMINATED'", - "'THEN'", "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", "'UNDO'", "'UNION'", - "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", "'USAGE'", "'USE'", - "'USING'", "'VALUES'", "'WHEN'", "'WHERE'", "'WHILE'", "'WITH'", "'WRITE'", - "'XOR'", "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", "'MEDIUMINT'", "'MIDDLEINT'", - "'INT'", "'INT1'", "'INT2'", "'INT3'", "'INT4'", "'INT8'", "'INTEGER'", - "'BIGINT'", "'REAL'", "'DOUBLE'", "'PRECISION'", "'FLOAT'", "'FLOAT4'", - "'FLOAT8'", "'DECIMAL'", "'DEC'", "'NUMERIC'", "'DATE'", "'TIME'", "'TIMESTAMP'", - "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", "'NVARCHAR'", "'NATIONAL'", - "'BINARY'", "'VARBINARY'", "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", "'LONG'", - "'LONGBLOB'", "'TINYTEXT'", "'TEXT'", "'MEDIUMTEXT'", "'LONGTEXT'", "'ENUM'", - "'VARYING'", "'SERIAL'", "'YEAR_MONTH'", "'DAY_HOUR'", "'DAY_MINUTE'", - "'DAY_SECOND'", "'HOUR_MINUTE'", "'HOUR_SECOND'", "'MINUTE_SECOND'", "'SECOND_MICROSECOND'", - "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", "'DAY_MICROSECOND'", "'JSON_VALID'", - "'JSON_SCHEMA_VALID'", "'AVG'", "'BIT_AND'", "'BIT_OR'", "'BIT_XOR'", - "'COUNT'", "'GROUP_CONCAT'", "'MAX'", "'MIN'", "'STD'", "'STDDEV'", "'STDDEV_POP'", - "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", "'VAR_SAMP'", "'VARIANCE'", "'CURRENT_DATE'", - "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", "'LOCALTIME'", "'CURDATE'", "'CURTIME'", - "'DATE_ADD'", "'DATE_SUB'", "'EXTRACT'", "'LOCALTIMESTAMP'", "'NOW'", - "'POSITION'", "'SUBSTR'", "'SUBSTRING'", "'SYSDATE'", "'TRIM'", "'UTC_DATE'", - "'UTC_TIME'", "'UTC_TIMESTAMP'", "'ACCOUNT'", "'ACTION'", "'AFTER'", "'AGGREGATE'", - "'ALGORITHM'", "'ANY'", "'AT'", "'AUTHORS'", "'AUTOCOMMIT'", "'AUTOEXTEND_SIZE'", - "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", "'BEGIN'", "'BINLOG'", "'BIT'", - "'BLOCK'", "'BOOL'", "'BOOLEAN'", "'BTREE'", "'CACHE'", "'CASCADED'", - "'CHAIN'", "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", "'PAGE_CHECKSUM'", - "'CIPHER'", "'CLASS_ORIGIN'", "'CLIENT'", "'CLOSE'", "'COALESCE'", "'CODE'", - "'COLUMNS'", "'COLUMN_FORMAT'", "'COLUMN_NAME'", "'COMMENT'", "'COMMIT'", - "'COMPACT'", "'COMPLETION'", "'COMPRESSED'", "'COMPRESSION'", "'CONCURRENT'", - "'CONNECTION'", "'CONSISTENT'", "'CONSTRAINT_CATALOG'", "'CONSTRAINT_SCHEMA'", - "'CONSTRAINT_NAME'", "'CONTAINS'", "'CONTEXT'", "'CONTRIBUTORS'", "'COPY'", - "'CPU'", "'CURSOR_NAME'", "'DATA'", "'DATAFILE'", "'DEALLOCATE'", "'DEFAULT_AUTH'", - "'DEFINER'", "'DELAY_KEY_WRITE'", "'DES_KEY_FILE'", "'DIRECTORY'", "'DISABLE'", - "'DISCARD'", "'DISK'", "'DO'", "'DUMPFILE'", "'DUPLICATE'", "'DYNAMIC'", - "'ENABLE'", "'ENCRYPTION'", "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", - "'ERROR'", "'ERRORS'", "'ESCAPE'", "'EVEN'", "'EVENT'", "'EVENTS'", "'EVERY'", - "'EXCHANGE'", "'EXCLUSIVE'", "'EXPIRE'", "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", - "'FAST'", "'FAULTS'", "'FIELDS'", "'FILE_BLOCK_SIZE'", "'FILTER'", "'FIRST'", - "'FIXED'", "'FLUSH'", "'FOLLOWS'", "'FOUND'", "'FULL'", "'FUNCTION'", - "'GENERAL'", "'GLOBAL'", "'GRANTS'", "'GROUP_REPLICATION'", "'HANDLER'", - "'HASH'", "'HELP'", "'HOST'", "'HOSTS'", "'IDENTIFIED'", "'IGNORE_SERVER_IDS'", - "'IMPORT'", "'INDEXES'", "'INITIAL_SIZE'", "'INPLACE'", "'INSERT_METHOD'", - "'INSTALL'", "'INSTANCE'", "'INVISIBLE'", "'INVOKER'", "'IO'", "'IO_THREAD'", - "'IPC'", "'ISOLATION'", "'ISSUER'", "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", - "'LAST'", "'LEAVES'", "'LESS'", "'LEVEL'", "'LIST'", "'LOCAL'", "'LOGFILE'", - "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", "'MASTER_CONNECT_RETRY'", - "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", "'MASTER_HOST'", "'MASTER_LOG_FILE'", - "'MASTER_LOG_POS'", "'MASTER_PASSWORD'", "'MASTER_PORT'", "'MASTER_RETRY_COUNT'", - "'MASTER_SSL'", "'MASTER_SSL_CA'", "'MASTER_SSL_CAPATH'", "'MASTER_SSL_CERT'", - "'MASTER_SSL_CIPHER'", "'MASTER_SSL_CRL'", "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", - "'MASTER_TLS_VERSION'", "'MASTER_USER'", "'MAX_CONNECTIONS_PER_HOUR'", - "'MAX_QUERIES_PER_HOUR'", "'MAX_ROWS'", "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", - "'MAX_USER_CONNECTIONS'", "'MEDIUM'", "'MERGE'", "'MESSAGE_TEXT'", "'MID'", - "'MIGRATE'", "'MIN_ROWS'", "'MODE'", "'MODIFY'", "'MUTEX'", "'MYSQL'", - "'MYSQL_ERRNO'", "'NAME'", "'NAMES'", "'NCHAR'", "'NEVER'", "'NEXT'", - "'NO'", "'NODEGROUP'", "'NONE'", "'OFFLINE'", "'OFFSET'", "'OJ'", "'OLD_PASSWORD'", - "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", "'OPTIMIZER_COSTS'", "'OPTIONS'", - "'OWNER'", "'PACK_KEYS'", "'PAGE'", "'PARSER'", "'PARTIAL'", "'PARTITIONING'", - "'PARTITIONS'", "'PASSWORD'", "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", "'PLUGINS'", - "'PORT'", "'PRECEDES'", "'PREPARE'", "'PRESERVE'", "'PREV'", "'PROCESSLIST'", - "'PROFILE'", "'PROFILES'", "'PROXY'", "'QUERY'", "'QUICK'", "'REBUILD'", - "'RECOVER'", "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'RELAY'", "'RELAY_LOG_FILE'", - "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", "'REPAIR'", - "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", "'REPLICATE_IGNORE_DB'", - "'REPLICATE_IGNORE_TABLE'", "'REPLICATE_REWRITE_DB'", "'REPLICATE_WILD_DO_TABLE'", - "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", "'RESET'", "'RESUME'", - "'RETURNED_SQLSTATE'", "'RETURNS'", "'ROLE'", "'ROLLBACK'", "'ROLLUP'", - "'ROTATE'", "'ROW'", "'ROWS'", "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", - "'SECURITY'", "'SERVER'", "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", - "'SIMPLE'", "'SLAVE'", "'SLOW'", "'SNAPSHOT'", "'SOCKET'", "'SOME'", "'SONAME'", - "'SOUNDS'", "'SOURCE'", "'SQL_AFTER_GTIDS'", "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", - "'SQL_BUFFER_RESULT'", "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", - "'START'", "'STARTS'", "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", "'STATS_SAMPLE_PAGES'", - "'STATUS'", "'STOP'", "'STORAGE'", "'STORED'", "'STRING'", "'SUBCLASS_ORIGIN'", - "'SUBJECT'", "'SUBPARTITION'", "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", - "'SWITCHES'", "'TABLE_NAME'", "'TABLESPACE'", "'TEMPORARY'", "'TEMPTABLE'", - "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", "'TRANSACTIONAL'", "'TRIGGERS'", - "'TRUNCATE'", "'UNDEFINED'", "'UNDOFILE'", "'UNDO_BUFFER_SIZE'", "'UNINSTALL'", - "'UNKNOWN'", "'UNTIL'", "'UPGRADE'", "'USER'", "'USE_FRM'", "'USER_RESOURCES'", - "'VALIDATION'", "'VALUE'", "'VARIABLES'", "'VIEW'", "'VIRTUAL'", "'VISIBLE'", - "'WAIT'", "'WARNINGS'", "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", - "'XA'", "'XML'", "'EUR'", "'USA'", "'JIS'", "'ISO'", "'INTERNAL'", "'QUARTER'", - "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", "'WEEK'", "'SECOND'", "'MICROSECOND'", - "'TABLES'", "'ROUTINE'", "'EXECUTE'", "'FILE'", "'PROCESS'", "'RELOAD'", - "'SHUTDOWN'", "'SUPER'", "'PRIVILEGES'", "'APPLICATION_PASSWORD_ADMIN'", - "'AUDIT_ADMIN'", "'BACKUP_ADMIN'", "'BINLOG_ADMIN'", "'BINLOG_ENCRYPTION_ADMIN'", - "'CLONE_ADMIN'", "'CONNECTION_ADMIN'", "'ENCRYPTION_KEY_ADMIN'", "'FIREWALL_ADMIN'", - "'FIREWALL_USER'", "'GROUP_REPLICATION_ADMIN'", "'INNODB_REDO_LOG_ARCHIVE'", - "'NDB_STORED_USER'", "'PERSIST_RO_VARIABLES_ADMIN'", "'REPLICATION_APPLIER'", - "'REPLICATION_SLAVE_ADMIN'", "'RESOURCE_GROUP_ADMIN'", "'RESOURCE_GROUP_USER'", - "'ROLE_ADMIN'", undefined, "'SET_USER_ID'", "'SHOW_ROUTINE'", "'SYSTEM_VARIABLES_ADMIN'", - "'TABLE_ENCRYPTION_ADMIN'", "'VERSION_TOKEN_ADMIN'", "'XA_RECOVER_ADMIN'", - "'ARMSCII8'", "'ASCII'", "'BIG5'", "'CP1250'", "'CP1251'", "'CP1256'", - "'CP1257'", "'CP850'", "'CP852'", "'CP866'", "'CP932'", "'DEC8'", "'EUCJPMS'", - "'EUCKR'", "'GB2312'", "'GBK'", "'GEOSTD8'", "'GREEK'", "'HEBREW'", "'HP8'", - "'KEYBCS2'", "'KOI8R'", "'KOI8U'", "'LATIN1'", "'LATIN2'", "'LATIN5'", - "'LATIN7'", "'MACCE'", "'MACROMAN'", "'SJIS'", "'SWE7'", "'TIS620'", "'UCS2'", - "'UJIS'", "'UTF16'", "'UTF16LE'", "'UTF32'", "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", - "'ARCHIVE'", "'BLACKHOLE'", "'CSV'", "'FEDERATED'", "'INNODB'", "'MEMORY'", - "'MRG_MYISAM'", "'MYISAM'", "'NDB'", "'NDBCLUSTER'", "'PERFORMANCE_SCHEMA'", - "'TOKUDB'", "'REPEATABLE'", "'COMMITTED'", "'UNCOMMITTED'", "'SERIALIZABLE'", - "'GEOMETRYCOLLECTION'", "'GEOMCOLLECTION'", "'GEOMETRY'", "'LINESTRING'", - "'MULTILINESTRING'", "'MULTIPOINT'", "'MULTIPOLYGON'", "'POINT'", "'POLYGON'", - "'ABS'", "'ACOS'", "'ADDDATE'", "'ADDTIME'", "'AES_DECRYPT'", "'AES_ENCRYPT'", - "'AREA'", "'ASBINARY'", "'ASIN'", "'ASTEXT'", "'ASWKB'", "'ASWKT'", "'ASYMMETRIC_DECRYPT'", - "'ASYMMETRIC_DERIVE'", "'ASYMMETRIC_ENCRYPT'", "'ASYMMETRIC_SIGN'", "'ASYMMETRIC_VERIFY'", - "'ATAN'", "'ATAN2'", "'BENCHMARK'", "'BIN'", "'BIT_COUNT'", "'BIT_LENGTH'", - "'BUFFER'", "'CATALOG_NAME'", "'CEIL'", "'CEILING'", "'CENTROID'", "'CHARACTER_LENGTH'", - "'CHARSET'", "'CHAR_LENGTH'", "'COERCIBILITY'", "'COLLATION'", "'COMPRESS'", - "'CONCAT'", "'CONCAT_WS'", "'CONNECTION_ID'", "'CONV'", "'CONVERT_TZ'", - "'COS'", "'COT'", "'CRC32'", "'CREATE_ASYMMETRIC_PRIV_KEY'", "'CREATE_ASYMMETRIC_PUB_KEY'", - "'CREATE_DH_PARAMETERS'", "'CREATE_DIGEST'", "'CROSSES'", "'DATEDIFF'", - "'DATE_FORMAT'", "'DAYNAME'", "'DAYOFMONTH'", "'DAYOFWEEK'", "'DAYOFYEAR'", - "'DECODE'", "'DEGREES'", "'DES_DECRYPT'", "'DES_ENCRYPT'", "'DIMENSION'", - "'DISJOINT'", "'ELT'", "'ENCODE'", "'ENCRYPT'", "'ENDPOINT'", "'ENVELOPE'", - "'EQUALS'", "'EXP'", "'EXPORT_SET'", "'EXTERIORRING'", "'EXTRACTVALUE'", - "'FIELD'", "'FIND_IN_SET'", "'FLOOR'", "'FORMAT'", "'FOUND_ROWS'", "'FROM_BASE64'", - "'FROM_DAYS'", "'FROM_UNIXTIME'", "'GEOMCOLLFROMTEXT'", "'GEOMCOLLFROMWKB'", - "'GEOMETRYCOLLECTIONFROMTEXT'", "'GEOMETRYCOLLECTIONFROMWKB'", "'GEOMETRYFROMTEXT'", - "'GEOMETRYFROMWKB'", "'GEOMETRYN'", "'GEOMETRYTYPE'", "'GEOMFROMTEXT'", - "'GEOMFROMWKB'", "'GET_FORMAT'", "'GET_LOCK'", "'GLENGTH'", "'GREATEST'", - "'GTID_SUBSET'", "'GTID_SUBTRACT'", "'HEX'", "'IFNULL'", "'INET6_ATON'", - "'INET6_NTOA'", "'INET_ATON'", "'INET_NTOA'", "'INSTR'", "'INTERIORRINGN'", - "'INTERSECTS'", "'ISCLOSED'", "'ISEMPTY'", "'ISNULL'", "'ISSIMPLE'", "'IS_FREE_LOCK'", - "'IS_IPV4'", "'IS_IPV4_COMPAT'", "'IS_IPV4_MAPPED'", "'IS_IPV6'", "'IS_USED_LOCK'", - "'LAST_INSERT_ID'", "'LCASE'", "'LEAST'", "'LENGTH'", "'LINEFROMTEXT'", - "'LINEFROMWKB'", "'LINESTRINGFROMTEXT'", "'LINESTRINGFROMWKB'", "'LN'", - "'LOAD_FILE'", "'LOCATE'", "'LOG'", "'LOG10'", "'LOG2'", "'LOWER'", "'LPAD'", - "'LTRIM'", "'MAKEDATE'", "'MAKETIME'", "'MAKE_SET'", "'MASTER_POS_WAIT'", - "'MBRCONTAINS'", "'MBRDISJOINT'", "'MBREQUAL'", "'MBRINTERSECTS'", "'MBROVERLAPS'", - "'MBRTOUCHES'", "'MBRWITHIN'", "'MD5'", "'MLINEFROMTEXT'", "'MLINEFROMWKB'", - "'MONTHNAME'", "'MPOINTFROMTEXT'", "'MPOINTFROMWKB'", "'MPOLYFROMTEXT'", - "'MPOLYFROMWKB'", "'MULTILINESTRINGFROMTEXT'", "'MULTILINESTRINGFROMWKB'", - "'MULTIPOINTFROMTEXT'", "'MULTIPOINTFROMWKB'", "'MULTIPOLYGONFROMTEXT'", - "'MULTIPOLYGONFROMWKB'", "'NAME_CONST'", "'NULLIF'", "'NUMGEOMETRIES'", - "'NUMINTERIORRINGS'", "'NUMPOINTS'", "'OCT'", "'OCTET_LENGTH'", "'ORD'", - "'OVERLAPS'", "'PERIOD_ADD'", "'PERIOD_DIFF'", "'PI'", "'POINTFROMTEXT'", - "'POINTFROMWKB'", "'POINTN'", "'POLYFROMTEXT'", "'POLYFROMWKB'", "'POLYGONFROMTEXT'", - "'POLYGONFROMWKB'", "'POW'", "'POWER'", "'QUOTE'", "'RADIANS'", "'RAND'", - "'RANDOM_BYTES'", "'RELEASE_LOCK'", "'REVERSE'", "'ROUND'", "'ROW_COUNT'", - "'RPAD'", "'RTRIM'", "'SEC_TO_TIME'", "'SESSION_USER'", "'SHA'", "'SHA1'", - "'SHA2'", "'SCHEMA_NAME'", "'SIGN'", "'SIN'", "'SLEEP'", "'SOUNDEX'", - "'SQL_THREAD_WAIT_AFTER_GTIDS'", "'SQRT'", "'SRID'", "'STARTPOINT'", "'STRCMP'", - "'STR_TO_DATE'", "'ST_AREA'", "'ST_ASBINARY'", "'ST_ASTEXT'", "'ST_ASWKB'", - "'ST_ASWKT'", "'ST_BUFFER'", "'ST_CENTROID'", "'ST_CONTAINS'", "'ST_CROSSES'", - "'ST_DIFFERENCE'", "'ST_DIMENSION'", "'ST_DISJOINT'", "'ST_DISTANCE'", - "'ST_ENDPOINT'", "'ST_ENVELOPE'", "'ST_EQUALS'", "'ST_EXTERIORRING'", - "'ST_GEOMCOLLFROMTEXT'", "'ST_GEOMCOLLFROMTXT'", "'ST_GEOMCOLLFROMWKB'", - "'ST_GEOMETRYCOLLECTIONFROMTEXT'", "'ST_GEOMETRYCOLLECTIONFROMWKB'", "'ST_GEOMETRYFROMTEXT'", - "'ST_GEOMETRYFROMWKB'", "'ST_GEOMETRYN'", "'ST_GEOMETRYTYPE'", "'ST_GEOMFROMTEXT'", - "'ST_GEOMFROMWKB'", "'ST_INTERIORRINGN'", "'ST_INTERSECTION'", "'ST_INTERSECTS'", - "'ST_ISCLOSED'", "'ST_ISEMPTY'", "'ST_ISSIMPLE'", "'ST_LINEFROMTEXT'", - "'ST_LINEFROMWKB'", "'ST_LINESTRINGFROMTEXT'", "'ST_LINESTRINGFROMWKB'", - "'ST_NUMGEOMETRIES'", "'ST_NUMINTERIORRING'", "'ST_NUMINTERIORRINGS'", - "'ST_NUMPOINTS'", "'ST_OVERLAPS'", "'ST_POINTFROMTEXT'", "'ST_POINTFROMWKB'", - "'ST_POINTN'", "'ST_POLYFROMTEXT'", "'ST_POLYFROMWKB'", "'ST_POLYGONFROMTEXT'", - "'ST_POLYGONFROMWKB'", "'ST_SRID'", "'ST_STARTPOINT'", "'ST_SYMDIFFERENCE'", - "'ST_TOUCHES'", "'ST_UNION'", "'ST_WITHIN'", "'ST_X'", "'ST_Y'", "'SUBDATE'", - "'SUBSTRING_INDEX'", "'SUBTIME'", "'SYSTEM_USER'", "'TAN'", "'TIMEDIFF'", - "'TIMESTAMPADD'", "'TIMESTAMPDIFF'", "'TIME_FORMAT'", "'TIME_TO_SEC'", - "'TOUCHES'", "'TO_BASE64'", "'TO_DAYS'", "'TO_SECONDS'", "'UCASE'", "'UNCOMPRESS'", - "'UNCOMPRESSED_LENGTH'", "'UNHEX'", "'UNIX_TIMESTAMP'", "'UPDATEXML'", - "'UPPER'", "'UUID'", "'UUID_SHORT'", "'VALIDATE_PASSWORD_STRENGTH'", "'VERSION'", - "'WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS'", "'WEEKDAY'", "'WEEKOFYEAR'", "'WEIGHT_STRING'", - "'WITHIN'", "'YEARWEEK'", "'Y'", "'X'", "':='", "'+='", "'-='", "'*='", - "'/='", "'%='", "'&='", "'^='", "'|='", "'*'", "'/'", "'%'", "'+'", "'--'", - "'-'", "'DIV'", "'MOD'", "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", - "'^'", "'.'", "'('", "')'", "','", "';'", "'@'", "'0'", "'1'", "'2'", - "'''", "'\"'", "'`'", "':'", - ]; - private static readonly _SYMBOLIC_NAMES: Array = [ - undefined, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", - "ADD", "ALL", "ALTER", "ALWAYS", "ANALYZE", "AND", "AS", "ASC", "BEFORE", - "BETWEEN", "BOTH", "BY", "CALL", "CASCADE", "CASE", "CAST", "CHANGE", - "CHARACTER", "CHECK", "COLLATE", "COLUMN", "CONDITION", "CONSTRAINT", - "CONTINUE", "CONVERT", "CREATE", "CROSS", "CURRENT", "CURRENT_USER", "CURSOR", - "DATABASE", "DATABASES", "DECLARE", "DEFAULT", "DELAYED", "DELETE", "DESC", - "DESCRIBE", "DETERMINISTIC", "DIAGNOSTICS", "DISTINCT", "DISTINCTROW", - "DROP", "EACH", "ELSE", "ELSEIF", "ENCLOSED", "ESCAPED", "EXISTS", "EXIT", - "EXPLAIN", "FALSE", "FETCH", "FOR", "FORCE", "FOREIGN", "FROM", "FULLTEXT", - "GENERATED", "GET", "GRANT", "GROUP", "HAVING", "HIGH_PRIORITY", "IF", - "IGNORE", "IN", "INDEX", "INFILE", "INNER", "INOUT", "INSERT", "INTERVAL", - "INTO", "IS", "ITERATE", "JOIN", "KEY", "KEYS", "KILL", "LEADING", "LEAVE", - "LEFT", "LIKE", "LIMIT", "LINEAR", "LINES", "LOAD", "LOCK", "LOOP", "LOW_PRIORITY", - "MASTER_BIND", "MASTER_SSL_VERIFY_SERVER_CERT", "MATCH", "MAXVALUE", "MODIFIES", - "NATURAL", "NOT", "NO_WRITE_TO_BINLOG", "NULL_LITERAL", "NUMBER", "ON", - "OPTIMIZE", "OPTION", "OPTIONALLY", "OR", "ORDER", "OUT", "OUTER", "OUTFILE", - "PARTITION", "PRIMARY", "PROCEDURE", "PURGE", "RANGE", "READ", "READS", - "REFERENCES", "REGEXP", "RELEASE", "RENAME", "REPEAT", "REPLACE", "REQUIRE", - "RESIGNAL", "RESTRICT", "RETURN", "REVOKE", "RIGHT", "RLIKE", "SCHEMA", - "SCHEMAS", "SELECT", "SET", "SEPARATOR", "SHOW", "SIGNAL", "SPATIAL", - "SQL", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_BIG_RESULT", "SQL_CALC_FOUND_ROWS", - "SQL_SMALL_RESULT", "SSL", "STACKED", "STARTING", "STRAIGHT_JOIN", "TABLE", - "TERMINATED", "THEN", "TO", "TRAILING", "TRIGGER", "TRUE", "UNDO", "UNION", - "UNIQUE", "UNLOCK", "UNSIGNED", "UPDATE", "USAGE", "USE", "USING", "VALUES", - "WHEN", "WHERE", "WHILE", "WITH", "WRITE", "XOR", "ZEROFILL", "TINYINT", - "SMALLINT", "MEDIUMINT", "MIDDLEINT", "INT", "INT1", "INT2", "INT3", "INT4", - "INT8", "INTEGER", "BIGINT", "REAL", "DOUBLE", "PRECISION", "FLOAT", "FLOAT4", - "FLOAT8", "DECIMAL", "DEC", "NUMERIC", "DATE", "TIME", "TIMESTAMP", "DATETIME", - "YEAR", "CHAR", "VARCHAR", "NVARCHAR", "NATIONAL", "BINARY", "VARBINARY", - "TINYBLOB", "BLOB", "MEDIUMBLOB", "LONG", "LONGBLOB", "TINYTEXT", "TEXT", - "MEDIUMTEXT", "LONGTEXT", "ENUM", "VARYING", "SERIAL", "YEAR_MONTH", "DAY_HOUR", - "DAY_MINUTE", "DAY_SECOND", "HOUR_MINUTE", "HOUR_SECOND", "MINUTE_SECOND", - "SECOND_MICROSECOND", "MINUTE_MICROSECOND", "HOUR_MICROSECOND", "DAY_MICROSECOND", - "JSON_VALID", "JSON_SCHEMA_VALID", "AVG", "BIT_AND", "BIT_OR", "BIT_XOR", - "COUNT", "GROUP_CONCAT", "MAX", "MIN", "STD", "STDDEV", "STDDEV_POP", - "STDDEV_SAMP", "SUM", "VAR_POP", "VAR_SAMP", "VARIANCE", "CURRENT_DATE", - "CURRENT_TIME", "CURRENT_TIMESTAMP", "LOCALTIME", "CURDATE", "CURTIME", - "DATE_ADD", "DATE_SUB", "EXTRACT", "LOCALTIMESTAMP", "NOW", "POSITION", - "SUBSTR", "SUBSTRING", "SYSDATE", "TRIM", "UTC_DATE", "UTC_TIME", "UTC_TIMESTAMP", - "ACCOUNT", "ACTION", "AFTER", "AGGREGATE", "ALGORITHM", "ANY", "AT", "AUTHORS", - "AUTOCOMMIT", "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH", "BEGIN", - "BINLOG", "BIT", "BLOCK", "BOOL", "BOOLEAN", "BTREE", "CACHE", "CASCADED", - "CHAIN", "CHANGED", "CHANNEL", "CHECKSUM", "PAGE_CHECKSUM", "CIPHER", - "CLASS_ORIGIN", "CLIENT", "CLOSE", "COALESCE", "CODE", "COLUMNS", "COLUMN_FORMAT", - "COLUMN_NAME", "COMMENT", "COMMIT", "COMPACT", "COMPLETION", "COMPRESSED", - "COMPRESSION", "CONCURRENT", "CONNECTION", "CONSISTENT", "CONSTRAINT_CATALOG", - "CONSTRAINT_SCHEMA", "CONSTRAINT_NAME", "CONTAINS", "CONTEXT", "CONTRIBUTORS", - "COPY", "CPU", "CURSOR_NAME", "DATA", "DATAFILE", "DEALLOCATE", "DEFAULT_AUTH", - "DEFINER", "DELAY_KEY_WRITE", "DES_KEY_FILE", "DIRECTORY", "DISABLE", - "DISCARD", "DISK", "DO", "DUMPFILE", "DUPLICATE", "DYNAMIC", "ENABLE", - "ENCRYPTION", "END", "ENDS", "ENGINE", "ENGINES", "ERROR", "ERRORS", "ESCAPE", - "EVEN", "EVENT", "EVENTS", "EVERY", "EXCHANGE", "EXCLUSIVE", "EXPIRE", - "EXPORT", "EXTENDED", "EXTENT_SIZE", "FAST", "FAULTS", "FIELDS", "FILE_BLOCK_SIZE", - "FILTER", "FIRST", "FIXED", "FLUSH", "FOLLOWS", "FOUND", "FULL", "FUNCTION", - "GENERAL", "GLOBAL", "GRANTS", "GROUP_REPLICATION", "HANDLER", "HASH", - "HELP", "HOST", "HOSTS", "IDENTIFIED", "IGNORE_SERVER_IDS", "IMPORT", - "INDEXES", "INITIAL_SIZE", "INPLACE", "INSERT_METHOD", "INSTALL", "INSTANCE", - "INVISIBLE", "INVOKER", "IO", "IO_THREAD", "IPC", "ISOLATION", "ISSUER", - "JSON", "KEY_BLOCK_SIZE", "LANGUAGE", "LAST", "LEAVES", "LESS", "LEVEL", - "LIST", "LOCAL", "LOGFILE", "LOGS", "MASTER", "MASTER_AUTO_POSITION", - "MASTER_CONNECT_RETRY", "MASTER_DELAY", "MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", - "MASTER_LOG_FILE", "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT", - "MASTER_RETRY_COUNT", "MASTER_SSL", "MASTER_SSL_CA", "MASTER_SSL_CAPATH", - "MASTER_SSL_CERT", "MASTER_SSL_CIPHER", "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", - "MASTER_SSL_KEY", "MASTER_TLS_VERSION", "MASTER_USER", "MAX_CONNECTIONS_PER_HOUR", - "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_UPDATES_PER_HOUR", - "MAX_USER_CONNECTIONS", "MEDIUM", "MERGE", "MESSAGE_TEXT", "MID", "MIGRATE", - "MIN_ROWS", "MODE", "MODIFY", "MUTEX", "MYSQL", "MYSQL_ERRNO", "NAME", - "NAMES", "NCHAR", "NEVER", "NEXT", "NO", "NODEGROUP", "NONE", "OFFLINE", - "OFFSET", "OJ", "OLD_PASSWORD", "ONE", "ONLINE", "ONLY", "OPEN", "OPTIMIZER_COSTS", - "OPTIONS", "OWNER", "PACK_KEYS", "PAGE", "PARSER", "PARTIAL", "PARTITIONING", - "PARTITIONS", "PASSWORD", "PHASE", "PLUGIN", "PLUGIN_DIR", "PLUGINS", - "PORT", "PRECEDES", "PREPARE", "PRESERVE", "PREV", "PROCESSLIST", "PROFILE", - "PROFILES", "PROXY", "QUERY", "QUICK", "REBUILD", "RECOVER", "REDO_BUFFER_SIZE", - "REDUNDANT", "RELAY", "RELAY_LOG_FILE", "RELAY_LOG_POS", "RELAYLOG", "REMOVE", - "REORGANIZE", "REPAIR", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE", "REPLICATE_IGNORE_DB", - "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB", "REPLICATE_WILD_DO_TABLE", - "REPLICATE_WILD_IGNORE_TABLE", "REPLICATION", "RESET", "RESUME", "RETURNED_SQLSTATE", - "RETURNS", "ROLE", "ROLLBACK", "ROLLUP", "ROTATE", "ROW", "ROWS", "ROW_FORMAT", - "SAVEPOINT", "SCHEDULE", "SECURITY", "SERVER", "SESSION", "SHARE", "SHARED", - "SIGNED", "SIMPLE", "SLAVE", "SLOW", "SNAPSHOT", "SOCKET", "SOME", "SONAME", - "SOUNDS", "SOURCE", "SQL_AFTER_GTIDS", "SQL_AFTER_MTS_GAPS", "SQL_BEFORE_GTIDS", - "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_NO_CACHE", "SQL_THREAD", "START", - "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT", "STATS_SAMPLE_PAGES", - "STATUS", "STOP", "STORAGE", "STORED", "STRING", "SUBCLASS_ORIGIN", "SUBJECT", - "SUBPARTITION", "SUBPARTITIONS", "SUSPEND", "SWAPS", "SWITCHES", "TABLE_NAME", - "TABLESPACE", "TEMPORARY", "TEMPTABLE", "THAN", "TRADITIONAL", "TRANSACTION", - "TRANSACTIONAL", "TRIGGERS", "TRUNCATE", "UNDEFINED", "UNDOFILE", "UNDO_BUFFER_SIZE", - "UNINSTALL", "UNKNOWN", "UNTIL", "UPGRADE", "USER", "USE_FRM", "USER_RESOURCES", - "VALIDATION", "VALUE", "VARIABLES", "VIEW", "VIRTUAL", "VISIBLE", "WAIT", - "WARNINGS", "WITHOUT", "WORK", "WRAPPER", "X509", "XA", "XML", "EUR", - "USA", "JIS", "ISO", "INTERNAL", "QUARTER", "MONTH", "DAY", "HOUR", "MINUTE", - "WEEK", "SECOND", "MICROSECOND", "TABLES", "ROUTINE", "EXECUTE", "FILE", - "PROCESS", "RELOAD", "SHUTDOWN", "SUPER", "PRIVILEGES", "APPLICATION_PASSWORD_ADMIN", - "AUDIT_ADMIN", "BACKUP_ADMIN", "BINLOG_ADMIN", "BINLOG_ENCRYPTION_ADMIN", - "CLONE_ADMIN", "CONNECTION_ADMIN", "ENCRYPTION_KEY_ADMIN", "FIREWALL_ADMIN", - "FIREWALL_USER", "GROUP_REPLICATION_ADMIN", "INNODB_REDO_LOG_ARCHIVE", - "NDB_STORED_USER", "PERSIST_RO_VARIABLES_ADMIN", "REPLICATION_APPLIER", - "REPLICATION_SLAVE_ADMIN", "RESOURCE_GROUP_ADMIN", "RESOURCE_GROUP_USER", - "ROLE_ADMIN", "SESSION_VARIABLES_ADMIN", "SET_USER_ID", "SHOW_ROUTINE", - "SYSTEM_VARIABLES_ADMIN", "TABLE_ENCRYPTION_ADMIN", "VERSION_TOKEN_ADMIN", - "XA_RECOVER_ADMIN", "ARMSCII8", "ASCII", "BIG5", "CP1250", "CP1251", "CP1256", - "CP1257", "CP850", "CP852", "CP866", "CP932", "DEC8", "EUCJPMS", "EUCKR", - "GB2312", "GBK", "GEOSTD8", "GREEK", "HEBREW", "HP8", "KEYBCS2", "KOI8R", - "KOI8U", "LATIN1", "LATIN2", "LATIN5", "LATIN7", "MACCE", "MACROMAN", - "SJIS", "SWE7", "TIS620", "UCS2", "UJIS", "UTF16", "UTF16LE", "UTF32", - "UTF8", "UTF8MB3", "UTF8MB4", "ARCHIVE", "BLACKHOLE", "CSV", "FEDERATED", - "INNODB", "MEMORY", "MRG_MYISAM", "MYISAM", "NDB", "NDBCLUSTER", "PERFORMANCE_SCHEMA", - "TOKUDB", "REPEATABLE", "COMMITTED", "UNCOMMITTED", "SERIALIZABLE", "GEOMETRYCOLLECTION", - "GEOMCOLLECTION", "GEOMETRY", "LINESTRING", "MULTILINESTRING", "MULTIPOINT", - "MULTIPOLYGON", "POINT", "POLYGON", "ABS", "ACOS", "ADDDATE", "ADDTIME", - "AES_DECRYPT", "AES_ENCRYPT", "AREA", "ASBINARY", "ASIN", "ASTEXT", "ASWKB", - "ASWKT", "ASYMMETRIC_DECRYPT", "ASYMMETRIC_DERIVE", "ASYMMETRIC_ENCRYPT", - "ASYMMETRIC_SIGN", "ASYMMETRIC_VERIFY", "ATAN", "ATAN2", "BENCHMARK", - "BIN", "BIT_COUNT", "BIT_LENGTH", "BUFFER", "CATALOG_NAME", "CEIL", "CEILING", - "CENTROID", "CHARACTER_LENGTH", "CHARSET", "CHAR_LENGTH", "COERCIBILITY", - "COLLATION", "COMPRESS", "CONCAT", "CONCAT_WS", "CONNECTION_ID", "CONV", - "CONVERT_TZ", "COS", "COT", "CRC32", "CREATE_ASYMMETRIC_PRIV_KEY", "CREATE_ASYMMETRIC_PUB_KEY", - "CREATE_DH_PARAMETERS", "CREATE_DIGEST", "CROSSES", "DATEDIFF", "DATE_FORMAT", - "DAYNAME", "DAYOFMONTH", "DAYOFWEEK", "DAYOFYEAR", "DECODE", "DEGREES", - "DES_DECRYPT", "DES_ENCRYPT", "DIMENSION", "DISJOINT", "ELT", "ENCODE", - "ENCRYPT", "ENDPOINT", "ENVELOPE", "EQUALS", "EXP", "EXPORT_SET", "EXTERIORRING", - "EXTRACTVALUE", "FIELD", "FIND_IN_SET", "FLOOR", "FORMAT", "FOUND_ROWS", - "FROM_BASE64", "FROM_DAYS", "FROM_UNIXTIME", "GEOMCOLLFROMTEXT", "GEOMCOLLFROMWKB", - "GEOMETRYCOLLECTIONFROMTEXT", "GEOMETRYCOLLECTIONFROMWKB", "GEOMETRYFROMTEXT", - "GEOMETRYFROMWKB", "GEOMETRYN", "GEOMETRYTYPE", "GEOMFROMTEXT", "GEOMFROMWKB", - "GET_FORMAT", "GET_LOCK", "GLENGTH", "GREATEST", "GTID_SUBSET", "GTID_SUBTRACT", - "HEX", "IFNULL", "INET6_ATON", "INET6_NTOA", "INET_ATON", "INET_NTOA", - "INSTR", "INTERIORRINGN", "INTERSECTS", "ISCLOSED", "ISEMPTY", "ISNULL", - "ISSIMPLE", "IS_FREE_LOCK", "IS_IPV4", "IS_IPV4_COMPAT", "IS_IPV4_MAPPED", - "IS_IPV6", "IS_USED_LOCK", "LAST_INSERT_ID", "LCASE", "LEAST", "LENGTH", - "LINEFROMTEXT", "LINEFROMWKB", "LINESTRINGFROMTEXT", "LINESTRINGFROMWKB", - "LN", "LOAD_FILE", "LOCATE", "LOG", "LOG10", "LOG2", "LOWER", "LPAD", - "LTRIM", "MAKEDATE", "MAKETIME", "MAKE_SET", "MASTER_POS_WAIT", "MBRCONTAINS", - "MBRDISJOINT", "MBREQUAL", "MBRINTERSECTS", "MBROVERLAPS", "MBRTOUCHES", - "MBRWITHIN", "MD5", "MLINEFROMTEXT", "MLINEFROMWKB", "MONTHNAME", "MPOINTFROMTEXT", - "MPOINTFROMWKB", "MPOLYFROMTEXT", "MPOLYFROMWKB", "MULTILINESTRINGFROMTEXT", - "MULTILINESTRINGFROMWKB", "MULTIPOINTFROMTEXT", "MULTIPOINTFROMWKB", "MULTIPOLYGONFROMTEXT", - "MULTIPOLYGONFROMWKB", "NAME_CONST", "NULLIF", "NUMGEOMETRIES", "NUMINTERIORRINGS", - "NUMPOINTS", "OCT", "OCTET_LENGTH", "ORD", "OVERLAPS", "PERIOD_ADD", "PERIOD_DIFF", - "PI", "POINTFROMTEXT", "POINTFROMWKB", "POINTN", "POLYFROMTEXT", "POLYFROMWKB", - "POLYGONFROMTEXT", "POLYGONFROMWKB", "POW", "POWER", "QUOTE", "RADIANS", - "RAND", "RANDOM_BYTES", "RELEASE_LOCK", "REVERSE", "ROUND", "ROW_COUNT", - "RPAD", "RTRIM", "SEC_TO_TIME", "SESSION_USER", "SHA", "SHA1", "SHA2", - "SCHEMA_NAME", "SIGN", "SIN", "SLEEP", "SOUNDEX", "SQL_THREAD_WAIT_AFTER_GTIDS", - "SQRT", "SRID", "STARTPOINT", "STRCMP", "STR_TO_DATE", "ST_AREA", "ST_ASBINARY", - "ST_ASTEXT", "ST_ASWKB", "ST_ASWKT", "ST_BUFFER", "ST_CENTROID", "ST_CONTAINS", - "ST_CROSSES", "ST_DIFFERENCE", "ST_DIMENSION", "ST_DISJOINT", "ST_DISTANCE", - "ST_ENDPOINT", "ST_ENVELOPE", "ST_EQUALS", "ST_EXTERIORRING", "ST_GEOMCOLLFROMTEXT", - "ST_GEOMCOLLFROMTXT", "ST_GEOMCOLLFROMWKB", "ST_GEOMETRYCOLLECTIONFROMTEXT", - "ST_GEOMETRYCOLLECTIONFROMWKB", "ST_GEOMETRYFROMTEXT", "ST_GEOMETRYFROMWKB", - "ST_GEOMETRYN", "ST_GEOMETRYTYPE", "ST_GEOMFROMTEXT", "ST_GEOMFROMWKB", - "ST_INTERIORRINGN", "ST_INTERSECTION", "ST_INTERSECTS", "ST_ISCLOSED", - "ST_ISEMPTY", "ST_ISSIMPLE", "ST_LINEFROMTEXT", "ST_LINEFROMWKB", "ST_LINESTRINGFROMTEXT", - "ST_LINESTRINGFROMWKB", "ST_NUMGEOMETRIES", "ST_NUMINTERIORRING", "ST_NUMINTERIORRINGS", - "ST_NUMPOINTS", "ST_OVERLAPS", "ST_POINTFROMTEXT", "ST_POINTFROMWKB", - "ST_POINTN", "ST_POLYFROMTEXT", "ST_POLYFROMWKB", "ST_POLYGONFROMTEXT", - "ST_POLYGONFROMWKB", "ST_SRID", "ST_STARTPOINT", "ST_SYMDIFFERENCE", "ST_TOUCHES", - "ST_UNION", "ST_WITHIN", "ST_X", "ST_Y", "SUBDATE", "SUBSTRING_INDEX", - "SUBTIME", "SYSTEM_USER", "TAN", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPDIFF", - "TIME_FORMAT", "TIME_TO_SEC", "TOUCHES", "TO_BASE64", "TO_DAYS", "TO_SECONDS", - "UCASE", "UNCOMPRESS", "UNCOMPRESSED_LENGTH", "UNHEX", "UNIX_TIMESTAMP", - "UPDATEXML", "UPPER", "UUID", "UUID_SHORT", "VALIDATE_PASSWORD_STRENGTH", - "VERSION", "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", "WEEKDAY", "WEEKOFYEAR", - "WEIGHT_STRING", "WITHIN", "YEARWEEK", "Y_FUNCTION", "X_FUNCTION", "VAR_ASSIGN", - "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", "MODULE", "PLUS", - "MINUSMINUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", - "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", - "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", - "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "SINGLE_QUOTE_SYMB", "DOUBLE_QUOTE_SYMB", - "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", - "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", "DECIMAL_LITERAL", - "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", "BIT_STRING", - "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", "STRING_USER_NAME", - "LOCAL_ID", "GLOBAL_ID", "ERROR_RECONGNIGION", - ]; - public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(SqlParser._LITERAL_NAMES, SqlParser._SYMBOLIC_NAMES, []); - - // @Override - // @NotNull - public get vocabulary(): Vocabulary { - return SqlParser.VOCABULARY; - } - // tslint:enable:no-trailing-whitespace - - // @Override - public get grammarFileName(): string { return "SqlParser.g4"; } - - // @Override - public get ruleNames(): string[] { return SqlParser.ruleNames; } - - // @Override - public get serializedATN(): string { return SqlParser._serializedATN; } - - protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { - return new FailedPredicateException(this, predicate, message); - } - - constructor(input: TokenStream) { - super(input); - this._interp = new ParserATNSimulator(SqlParser._ATN, this); - } - // @RuleVersion(0) - public program(): ProgramContext { - let _localctx: ProgramContext = new ProgramContext(this._ctx, this.state); - this.enterRule(_localctx, 0, SqlParser.RULE_program); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 632; - this.statement(); - this.state = 633; - this.match(SqlParser.EOF); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public statement(): StatementContext { - let _localctx: StatementContext = new StatementContext(this._ctx, this.state); - this.enterRule(_localctx, 2, SqlParser.RULE_statement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 636; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SqlParser.ALTER) | (1 << SqlParser.ANALYZE) | (1 << SqlParser.CALL) | (1 << SqlParser.CHANGE) | (1 << SqlParser.CHECK) | (1 << SqlParser.CREATE))) !== 0) || ((((_la - 40)) & ~0x1F) === 0 && ((1 << (_la - 40)) & ((1 << (SqlParser.DELETE - 40)) | (1 << (SqlParser.DESC - 40)) | (1 << (SqlParser.DESCRIBE - 40)) | (1 << (SqlParser.DROP - 40)) | (1 << (SqlParser.EXPLAIN - 40)) | (1 << (SqlParser.GET - 40)) | (1 << (SqlParser.GRANT - 40)))) !== 0) || ((((_la - 76)) & ~0x1F) === 0 && ((1 << (_la - 76)) & ((1 << (SqlParser.INSERT - 76)) | (1 << (SqlParser.KILL - 76)) | (1 << (SqlParser.LOAD - 76)) | (1 << (SqlParser.LOCK - 76)) | (1 << (SqlParser.OPTIMIZE - 76)))) !== 0) || ((((_la - 118)) & ~0x1F) === 0 && ((1 << (_la - 118)) & ((1 << (SqlParser.PURGE - 118)) | (1 << (SqlParser.RELEASE - 118)) | (1 << (SqlParser.RENAME - 118)) | (1 << (SqlParser.REPLACE - 118)) | (1 << (SqlParser.RESIGNAL - 118)) | (1 << (SqlParser.REVOKE - 118)) | (1 << (SqlParser.SELECT - 118)) | (1 << (SqlParser.SET - 118)) | (1 << (SqlParser.SHOW - 118)) | (1 << (SqlParser.SIGNAL - 118)))) !== 0) || ((((_la - 164)) & ~0x1F) === 0 && ((1 << (_la - 164)) & ((1 << (SqlParser.UNLOCK - 164)) | (1 << (SqlParser.UPDATE - 164)) | (1 << (SqlParser.USE - 164)))) !== 0) || ((((_la - 282)) & ~0x1F) === 0 && ((1 << (_la - 282)) & ((1 << (SqlParser.BEGIN - 282)) | (1 << (SqlParser.BINLOG - 282)) | (1 << (SqlParser.CACHE - 282)) | (1 << (SqlParser.CHECKSUM - 282)) | (1 << (SqlParser.COMMIT - 282)))) !== 0) || _la === SqlParser.DEALLOCATE || _la === SqlParser.DO || ((((_la - 364)) & ~0x1F) === 0 && ((1 << (_la - 364)) & ((1 << (SqlParser.FLUSH - 364)) | (1 << (SqlParser.HANDLER - 364)) | (1 << (SqlParser.HELP - 364)) | (1 << (SqlParser.INSTALL - 364)))) !== 0) || ((((_la - 475)) & ~0x1F) === 0 && ((1 << (_la - 475)) & ((1 << (SqlParser.PREPARE - 475)) | (1 << (SqlParser.REPAIR - 475)) | (1 << (SqlParser.RESET - 475)))) !== 0) || ((((_la - 508)) & ~0x1F) === 0 && ((1 << (_la - 508)) & ((1 << (SqlParser.ROLLBACK - 508)) | (1 << (SqlParser.SAVEPOINT - 508)) | (1 << (SqlParser.START - 508)))) !== 0) || ((((_la - 544)) & ~0x1F) === 0 && ((1 << (_la - 544)) & ((1 << (SqlParser.STOP - 544)) | (1 << (SqlParser.TRUNCATE - 544)) | (1 << (SqlParser.UNINSTALL - 544)))) !== 0) || ((((_la - 587)) & ~0x1F) === 0 && ((1 << (_la - 587)) & ((1 << (SqlParser.XA - 587)) | (1 << (SqlParser.EXECUTE - 587)) | (1 << (SqlParser.SHUTDOWN - 587)))) !== 0) || _la === SqlParser.LR_BRACKET || _la === SqlParser.SEMI) { - { - this.state = 635; - this.sqlStatements(); - } - } - - this.state = 639; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.MINUSMINUS) { - { - this.state = 638; - this.match(SqlParser.MINUSMINUS); - } - } - - this.state = 641; - this.match(SqlParser.EOF); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public sqlStatements(): SqlStatementsContext { - let _localctx: SqlStatementsContext = new SqlStatementsContext(this._ctx, this.state); - this.enterRule(_localctx, 4, SqlParser.RULE_sqlStatements); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 653; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 5, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - this.state = 651; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.LR_BRACKET: - { - this.state = 643; - this.sqlStatement(); - this.state = 645; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.MINUSMINUS) { - { - this.state = 644; - this.match(SqlParser.MINUSMINUS); - } - } - - this.state = 648; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 3, this._ctx) ) { - case 1: - { - this.state = 647; - this.match(SqlParser.SEMI); - } - break; - } - } - break; - case SqlParser.SEMI: - { - this.state = 650; - this.emptyStatement(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - this.state = 655; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 5, this._ctx); - } - this.state = 664; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.LR_BRACKET: - { - this.state = 656; - this.sqlStatement(); - this.state = 661; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 7, this._ctx) ) { - case 1: - { - this.state = 658; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.MINUSMINUS) { - { - this.state = 657; - this.match(SqlParser.MINUSMINUS); - } - } - - this.state = 660; - this.match(SqlParser.SEMI); - } - break; - } - } - break; - case SqlParser.SEMI: - { - this.state = 663; - this.emptyStatement(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public sqlStatement(): SqlStatementContext { - let _localctx: SqlStatementContext = new SqlStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 6, SqlParser.RULE_sqlStatement); - try { - this.state = 673; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 9, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 666; - this.ddlStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 667; - this.dmlStatement(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 668; - this.transactionStatement(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 669; - this.replicationStatement(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 670; - this.preparedStatement(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 671; - this.administrationStatement(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 672; - this.utilityStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public emptyStatement(): EmptyStatementContext { - let _localctx: EmptyStatementContext = new EmptyStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 8, SqlParser.RULE_emptyStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 675; - this.match(SqlParser.SEMI); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public ddlStatement(): DdlStatementContext { - let _localctx: DdlStatementContext = new DdlStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 10, SqlParser.RULE_ddlStatement); - try { - this.state = 712; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 10, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 677; - this.createDatabase(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 678; - this.createEvent(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 679; - this.createIndex(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 680; - this.createLogfileGroup(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 681; - this.createProcedure(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 682; - this.createFunction(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 683; - this.createServer(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 684; - this.createTable(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 685; - this.createTablespaceInnodb(); - } - break; - - case 10: - this.enterOuterAlt(_localctx, 10); - { - this.state = 686; - this.createTablespaceNdb(); - } - break; - - case 11: - this.enterOuterAlt(_localctx, 11); - { - this.state = 687; - this.createTrigger(); - } - break; - - case 12: - this.enterOuterAlt(_localctx, 12); - { - this.state = 688; - this.createView(); - } - break; - - case 13: - this.enterOuterAlt(_localctx, 13); - { - this.state = 689; - this.alterDatabase(); - } - break; - - case 14: - this.enterOuterAlt(_localctx, 14); - { - this.state = 690; - this.alterEvent(); - } - break; - - case 15: - this.enterOuterAlt(_localctx, 15); - { - this.state = 691; - this.alterFunction(); - } - break; - - case 16: - this.enterOuterAlt(_localctx, 16); - { - this.state = 692; - this.alterInstance(); - } - break; - - case 17: - this.enterOuterAlt(_localctx, 17); - { - this.state = 693; - this.alterLogfileGroup(); - } - break; - - case 18: - this.enterOuterAlt(_localctx, 18); - { - this.state = 694; - this.alterProcedure(); - } - break; - - case 19: - this.enterOuterAlt(_localctx, 19); - { - this.state = 695; - this.alterServer(); - } - break; - - case 20: - this.enterOuterAlt(_localctx, 20); - { - this.state = 696; - this.alterTable(); - } - break; - - case 21: - this.enterOuterAlt(_localctx, 21); - { - this.state = 697; - this.alterTablespace(); - } - break; - - case 22: - this.enterOuterAlt(_localctx, 22); - { - this.state = 698; - this.alterView(); - } - break; - - case 23: - this.enterOuterAlt(_localctx, 23); - { - this.state = 699; - this.dropDatabase(); - } - break; - - case 24: - this.enterOuterAlt(_localctx, 24); - { - this.state = 700; - this.dropEvent(); - } - break; - - case 25: - this.enterOuterAlt(_localctx, 25); - { - this.state = 701; - this.dropIndex(); - } - break; - - case 26: - this.enterOuterAlt(_localctx, 26); - { - this.state = 702; - this.dropLogfileGroup(); - } - break; - - case 27: - this.enterOuterAlt(_localctx, 27); - { - this.state = 703; - this.dropProcedure(); - } - break; - - case 28: - this.enterOuterAlt(_localctx, 28); - { - this.state = 704; - this.dropFunction(); - } - break; - - case 29: - this.enterOuterAlt(_localctx, 29); - { - this.state = 705; - this.dropServer(); - } - break; - - case 30: - this.enterOuterAlt(_localctx, 30); - { - this.state = 706; - this.dropTable(); - } - break; - - case 31: - this.enterOuterAlt(_localctx, 31); - { - this.state = 707; - this.dropTablespace(); - } - break; - - case 32: - this.enterOuterAlt(_localctx, 32); - { - this.state = 708; - this.dropTrigger(); - } - break; - - case 33: - this.enterOuterAlt(_localctx, 33); - { - this.state = 709; - this.dropView(); - } - break; - - case 34: - this.enterOuterAlt(_localctx, 34); - { - this.state = 710; - this.renameTable(); - } - break; - - case 35: - this.enterOuterAlt(_localctx, 35); - { - this.state = 711; - this.truncateTable(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dmlStatement(): DmlStatementContext { - let _localctx: DmlStatementContext = new DmlStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 12, SqlParser.RULE_dmlStatement); - try { - this.state = 724; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 11, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 714; - this.selectStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 715; - this.insertStatement(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 716; - this.updateStatement(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 717; - this.deleteStatement(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 718; - this.replaceStatement(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 719; - this.callStatement(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 720; - this.loadDataStatement(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 721; - this.loadXmlStatement(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 722; - this.doStatement(); - } - break; - - case 10: - this.enterOuterAlt(_localctx, 10); - { - this.state = 723; - this.handlerStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public transactionStatement(): TransactionStatementContext { - let _localctx: TransactionStatementContext = new TransactionStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 14, SqlParser.RULE_transactionStatement); - try { - this.state = 735; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 12, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 726; - this.startTransaction(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 727; - this.beginWork(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 728; - this.commitWork(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 729; - this.rollbackWork(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 730; - this.savepointStatement(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 731; - this.rollbackStatement(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 732; - this.releaseStatement(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 733; - this.lockTables(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 734; - this.unlockTables(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public replicationStatement(): ReplicationStatementContext { - let _localctx: ReplicationStatementContext = new ReplicationStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 16, SqlParser.RULE_replicationStatement); - try { - this.state = 752; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 13, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 737; - this.changeMaster(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 738; - this.changeReplicationFilter(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 739; - this.purgeBinaryLogs(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 740; - this.resetMaster(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 741; - this.resetSlave(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 742; - this.startSlave(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 743; - this.stopSlave(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 744; - this.startGroupReplication(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 745; - this.stopGroupReplication(); - } - break; - - case 10: - this.enterOuterAlt(_localctx, 10); - { - this.state = 746; - this.xaStartTransaction(); - } - break; - - case 11: - this.enterOuterAlt(_localctx, 11); - { - this.state = 747; - this.xaEndTransaction(); - } - break; - - case 12: - this.enterOuterAlt(_localctx, 12); - { - this.state = 748; - this.xaPrepareStatement(); - } - break; - - case 13: - this.enterOuterAlt(_localctx, 13); - { - this.state = 749; - this.xaCommitWork(); - } - break; - - case 14: - this.enterOuterAlt(_localctx, 14); - { - this.state = 750; - this.xaRollbackWork(); - } - break; - - case 15: - this.enterOuterAlt(_localctx, 15); - { - this.state = 751; - this.xaRecoverWork(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public preparedStatement(): PreparedStatementContext { - let _localctx: PreparedStatementContext = new PreparedStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 18, SqlParser.RULE_preparedStatement); - try { - this.state = 757; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.PREPARE: - this.enterOuterAlt(_localctx, 1); - { - this.state = 754; - this.prepareStatement(); - } - break; - case SqlParser.EXECUTE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 755; - this.executeStatement(); - } - break; - case SqlParser.DROP: - case SqlParser.DEALLOCATE: - this.enterOuterAlt(_localctx, 3); - { - this.state = 756; - this.deallocatePrepare(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public compoundStatement(): CompoundStatementContext { - let _localctx: CompoundStatementContext = new CompoundStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 20, SqlParser.RULE_compoundStatement); - try { - this.state = 769; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 15, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 759; - this.blockStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 760; - this.caseStatement(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 761; - this.ifStatement(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 762; - this.leaveStatement(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 763; - this.loopStatement(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 764; - this.repeatStatement(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 765; - this.whileStatement(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 766; - this.iterateStatement(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 767; - this.returnStatement(); - } - break; - - case 10: - this.enterOuterAlt(_localctx, 10); - { - this.state = 768; - this.cursorStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public administrationStatement(): AdministrationStatementContext { - let _localctx: AdministrationStatementContext = new AdministrationStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 22, SqlParser.RULE_administrationStatement); - try { - this.state = 796; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 16, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 771; - this.alterUser(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 772; - this.createUser(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 773; - this.dropUser(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 774; - this.grantStatement(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 775; - this.grantProxy(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 776; - this.renameUser(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 777; - this.revokeStatement(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 778; - this.revokeProxy(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 779; - this.analyzeTable(); - } - break; - - case 10: - this.enterOuterAlt(_localctx, 10); - { - this.state = 780; - this.checkTable(); - } - break; - - case 11: - this.enterOuterAlt(_localctx, 11); - { - this.state = 781; - this.checksumTable(); - } - break; - - case 12: - this.enterOuterAlt(_localctx, 12); - { - this.state = 782; - this.optimizeTable(); - } - break; - - case 13: - this.enterOuterAlt(_localctx, 13); - { - this.state = 783; - this.repairTable(); - } - break; - - case 14: - this.enterOuterAlt(_localctx, 14); - { - this.state = 784; - this.createUdfunction(); - } - break; - - case 15: - this.enterOuterAlt(_localctx, 15); - { - this.state = 785; - this.installPlugin(); - } - break; - - case 16: - this.enterOuterAlt(_localctx, 16); - { - this.state = 786; - this.uninstallPlugin(); - } - break; - - case 17: - this.enterOuterAlt(_localctx, 17); - { - this.state = 787; - this.setStatement(); - } - break; - - case 18: - this.enterOuterAlt(_localctx, 18); - { - this.state = 788; - this.showStatement(); - } - break; - - case 19: - this.enterOuterAlt(_localctx, 19); - { - this.state = 789; - this.binlogStatement(); - } - break; - - case 20: - this.enterOuterAlt(_localctx, 20); - { - this.state = 790; - this.cacheIndexStatement(); - } - break; - - case 21: - this.enterOuterAlt(_localctx, 21); - { - this.state = 791; - this.flushStatement(); - } - break; - - case 22: - this.enterOuterAlt(_localctx, 22); - { - this.state = 792; - this.killStatement(); - } - break; - - case 23: - this.enterOuterAlt(_localctx, 23); - { - this.state = 793; - this.loadIndexIntoCache(); - } - break; - - case 24: - this.enterOuterAlt(_localctx, 24); - { - this.state = 794; - this.resetStatement(); - } - break; - - case 25: - this.enterOuterAlt(_localctx, 25); - { - this.state = 795; - this.shutdownStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public utilityStatement(): UtilityStatementContext { - let _localctx: UtilityStatementContext = new UtilityStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 24, SqlParser.RULE_utilityStatement); - try { - this.state = 805; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 17, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 798; - this.simpleDescribeStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 799; - this.fullDescribeStatement(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 800; - this.helpStatement(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 801; - this.useStatement(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 802; - this.signalStatement(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 803; - this.resignalStatement(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 804; - this.diagnosticsStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createDatabase(): CreateDatabaseContext { - let _localctx: CreateDatabaseContext = new CreateDatabaseContext(this._ctx, this.state); - this.enterRule(_localctx, 26, SqlParser.RULE_createDatabase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 807; - this.match(SqlParser.CREATE); - this.state = 808; - _localctx._dbFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.SCHEMA)) { - _localctx._dbFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 810; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 809; - this.ifNotExists(); - } - } - - this.state = 812; - this.uid(); - this.state = 816; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (((((_la - 22)) & ~0x1F) === 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la === SqlParser.CHARSET) { - { - { - this.state = 813; - this.createDatabaseOption(); - } - } - this.state = 818; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createEvent(): CreateEventContext { - let _localctx: CreateEventContext = new CreateEventContext(this._ctx, this.state); - this.enterRule(_localctx, 28, SqlParser.RULE_createEvent); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 819; - this.match(SqlParser.CREATE); - this.state = 821; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 820; - this.ownerStatement(); - } - } - - this.state = 823; - this.match(SqlParser.EVENT); - this.state = 825; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 824; - this.ifNotExists(); - } - } - - this.state = 827; - this.fullId(); - this.state = 828; - this.match(SqlParser.ON); - this.state = 829; - this.match(SqlParser.SCHEDULE); - this.state = 830; - this.scheduleExpression(); - this.state = 837; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ON) { - { - this.state = 831; - this.match(SqlParser.ON); - this.state = 832; - this.match(SqlParser.COMPLETION); - this.state = 834; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 833; - this.match(SqlParser.NOT); - } - } - - this.state = 836; - this.match(SqlParser.PRESERVE); - } - } - - this.state = 840; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DISABLE || _la === SqlParser.ENABLE) { - { - this.state = 839; - this.enableType(); - } - } - - this.state = 844; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMENT) { - { - this.state = 842; - this.match(SqlParser.COMMENT); - this.state = 843; - this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 846; - this.match(SqlParser.DO); - this.state = 847; - this.routineBody(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createIndex(): CreateIndexContext { - let _localctx: CreateIndexContext = new CreateIndexContext(this._ctx, this.state); - this.enterRule(_localctx, 30, SqlParser.RULE_createIndex); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 849; - this.match(SqlParser.CREATE); - this.state = 851; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OFFLINE || _la === SqlParser.ONLINE) { - { - this.state = 850; - _localctx._intimeAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.OFFLINE || _la === SqlParser.ONLINE)) { - _localctx._intimeAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 854; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FULLTEXT || _la === SqlParser.SPATIAL || _la === SqlParser.UNIQUE) { - { - this.state = 853; - _localctx._indexCategory = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FULLTEXT || _la === SqlParser.SPATIAL || _la === SqlParser.UNIQUE)) { - _localctx._indexCategory = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 856; - this.match(SqlParser.INDEX); - this.state = 857; - this.uid(); - this.state = 859; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 858; - this.indexType(); - } - } - - this.state = 861; - this.match(SqlParser.ON); - this.state = 862; - this.tableName(); - this.state = 863; - this.indexColumnNames(); - this.state = 867; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 864; - this.indexOption(); - } - } - this.state = 869; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 882; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 33, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - this.state = 880; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALGORITHM: - { - this.state = 870; - this.match(SqlParser.ALGORITHM); - this.state = 872; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 871; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 874; - _localctx._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.COPY || _la === SqlParser.INPLACE)) { - _localctx._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.LOCK: - { - this.state = 875; - this.match(SqlParser.LOCK); - this.state = 877; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 876; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 879; - _localctx._lockType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.EXCLUSIVE || _la === SqlParser.NONE || _la === SqlParser.SHARED)) { - _localctx._lockType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - this.state = 884; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 33, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createLogfileGroup(): CreateLogfileGroupContext { - let _localctx: CreateLogfileGroupContext = new CreateLogfileGroupContext(this._ctx, this.state); - this.enterRule(_localctx, 32, SqlParser.RULE_createLogfileGroup); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 885; - this.match(SqlParser.CREATE); - this.state = 886; - this.match(SqlParser.LOGFILE); - this.state = 887; - this.match(SqlParser.GROUP); - this.state = 888; - this.uid(); - this.state = 889; - this.match(SqlParser.ADD); - this.state = 890; - this.match(SqlParser.UNDOFILE); - this.state = 891; - _localctx._undoFile = this.match(SqlParser.STRING_LITERAL); - this.state = 897; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INITIAL_SIZE) { - { - this.state = 892; - this.match(SqlParser.INITIAL_SIZE); - this.state = 894; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 893; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 896; - _localctx._initSize = this.fileSizeLiteral(); - } - } - - this.state = 904; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.UNDO_BUFFER_SIZE) { - { - this.state = 899; - this.match(SqlParser.UNDO_BUFFER_SIZE); - this.state = 901; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 900; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 903; - _localctx._undoSize = this.fileSizeLiteral(); - } - } - - this.state = 911; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.REDO_BUFFER_SIZE) { - { - this.state = 906; - this.match(SqlParser.REDO_BUFFER_SIZE); - this.state = 908; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 907; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 910; - _localctx._redoSize = this.fileSizeLiteral(); - } - } - - this.state = 918; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NODEGROUP) { - { - this.state = 913; - this.match(SqlParser.NODEGROUP); - this.state = 915; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 914; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 917; - this.uid(); - } - } - - this.state = 921; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WAIT) { - { - this.state = 920; - this.match(SqlParser.WAIT); - } - } - - this.state = 928; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMENT) { - { - this.state = 923; - this.match(SqlParser.COMMENT); - this.state = 925; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 924; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 927; - _localctx._comment = this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 930; - this.match(SqlParser.ENGINE); - this.state = 932; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 931; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 934; - this.engineName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createProcedure(): CreateProcedureContext { - let _localctx: CreateProcedureContext = new CreateProcedureContext(this._ctx, this.state); - this.enterRule(_localctx, 34, SqlParser.RULE_createProcedure); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 936; - this.match(SqlParser.CREATE); - this.state = 938; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 937; - this.ownerStatement(); - } - } - - this.state = 940; - this.match(SqlParser.PROCEDURE); - this.state = 941; - this.fullId(); - this.state = 942; - this.match(SqlParser.LR_BRACKET); - this.state = 944; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || ((((_la - 71)) & ~0x1F) === 0 && ((1 << (_la - 71)) & ((1 << (SqlParser.IN - 71)) | (1 << (SqlParser.INOUT - 71)) | (1 << (SqlParser.LEFT - 71)))) !== 0) || ((((_la - 105)) & ~0x1F) === 0 && ((1 << (_la - 105)) & ((1 << (SqlParser.NUMBER - 105)) | (1 << (SqlParser.OUT - 105)) | (1 << (SqlParser.RIGHT - 105)))) !== 0) || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 943; - this.procedureParameter(); - } - } - - this.state = 950; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 946; - this.match(SqlParser.COMMA); - this.state = 947; - this.procedureParameter(); - } - } - this.state = 952; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 953; - this.match(SqlParser.RR_BRACKET); - this.state = 957; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 954; - this.routineOption(); - } - } - } - this.state = 959; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); - } - this.state = 960; - this.routineBody(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createFunction(): CreateFunctionContext { - let _localctx: CreateFunctionContext = new CreateFunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 36, SqlParser.RULE_createFunction); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 962; - this.match(SqlParser.CREATE); - this.state = 964; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 963; - this.ownerStatement(); - } - } - - this.state = 966; - this.match(SqlParser.FUNCTION); - this.state = 967; - this.fullId(); - this.state = 968; - this.match(SqlParser.LR_BRACKET); - this.state = 970; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 969; - this.functionParameter(); - } - } - - this.state = 976; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 972; - this.match(SqlParser.COMMA); - this.state = 973; - this.functionParameter(); - } - } - this.state = 978; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 979; - this.match(SqlParser.RR_BRACKET); - this.state = 980; - this.match(SqlParser.RETURNS); - this.state = 981; - this.dataType(); - this.state = 985; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 53, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 982; - this.routineOption(); - } - } - } - this.state = 987; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 53, this._ctx); - } - this.state = 990; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DIAGNOSTICS: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LEFT: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.NUMBER: - case SqlParser.OPTIMIZE: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.RIGHT: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.STACKED: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.LR_BRACKET: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 988; - this.routineBody(); - } - break; - case SqlParser.RETURN: - { - this.state = 989; - this.returnStatement(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createServer(): CreateServerContext { - let _localctx: CreateServerContext = new CreateServerContext(this._ctx, this.state); - this.enterRule(_localctx, 38, SqlParser.RULE_createServer); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 992; - this.match(SqlParser.CREATE); - this.state = 993; - this.match(SqlParser.SERVER); - this.state = 994; - this.uid(); - this.state = 995; - this.match(SqlParser.FOREIGN); - this.state = 996; - this.match(SqlParser.DATA); - this.state = 997; - this.match(SqlParser.WRAPPER); - this.state = 998; - _localctx._wrapperName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.MYSQL || _la === SqlParser.STRING_LITERAL)) { - _localctx._wrapperName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 999; - this.match(SqlParser.OPTIONS); - this.state = 1000; - this.match(SqlParser.LR_BRACKET); - this.state = 1001; - this.serverOption(); - this.state = 1006; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1002; - this.match(SqlParser.COMMA); - this.state = 1003; - this.serverOption(); - } - } - this.state = 1008; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1009; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createTable(): CreateTableContext { - let _localctx: CreateTableContext = new CreateTableContext(this._ctx, this.state); - this.enterRule(_localctx, 40, SqlParser.RULE_createTable); - let _la: number; - try { - let _alt: number; - this.state = 1089; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 74, this._ctx) ) { - case 1: - _localctx = new CopyCreateTableContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1011; - this.match(SqlParser.CREATE); - this.state = 1013; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.TEMPORARY) { - { - this.state = 1012; - this.match(SqlParser.TEMPORARY); - } - } - - this.state = 1015; - this.match(SqlParser.TABLE); - this.state = 1017; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 1016; - this.ifNotExists(); - } - } - - this.state = 1019; - this.tableName(); - this.state = 1027; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LIKE: - { - this.state = 1020; - this.match(SqlParser.LIKE); - this.state = 1021; - this.tableName(); - } - break; - case SqlParser.LR_BRACKET: - { - this.state = 1022; - this.match(SqlParser.LR_BRACKET); - this.state = 1023; - this.match(SqlParser.LIKE); - this.state = 1024; - (_localctx as CopyCreateTableContext)._parenthesisTable = this.tableName(); - this.state = 1025; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 2: - _localctx = new QueryCreateTableContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1029; - this.match(SqlParser.CREATE); - this.state = 1031; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.TEMPORARY) { - { - this.state = 1030; - this.match(SqlParser.TEMPORARY); - } - } - - this.state = 1033; - this.match(SqlParser.TABLE); - this.state = 1035; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 1034; - this.ifNotExists(); - } - } - - this.state = 1037; - this.tableName(); - this.state = 1039; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 61, this._ctx) ) { - case 1: - { - this.state = 1038; - this.createDefinitions(); - } - break; - } - this.state = 1051; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 22)) & ~0x1F) === 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la === SqlParser.INDEX || _la === SqlParser.UNION || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & ((1 << (SqlParser.AUTO_INCREMENT - 280)) | (1 << (SqlParser.AVG_ROW_LENGTH - 280)) | (1 << (SqlParser.CHECKSUM - 280)) | (1 << (SqlParser.PAGE_CHECKSUM - 280)) | (1 << (SqlParser.COMMENT - 280)) | (1 << (SqlParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & ((1 << (SqlParser.CONNECTION - 312)) | (1 << (SqlParser.DATA - 312)) | (1 << (SqlParser.DELAY_KEY_WRITE - 312)) | (1 << (SqlParser.ENCRYPTION - 312)) | (1 << (SqlParser.ENGINE - 312)))) !== 0) || _la === SqlParser.INSERT_METHOD || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.MAX_ROWS || _la === SqlParser.MIN_ROWS || _la === SqlParser.PACK_KEYS || _la === SqlParser.PASSWORD || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & ((1 << (SqlParser.ROW_FORMAT - 513)) | (1 << (SqlParser.STATS_AUTO_RECALC - 513)) | (1 << (SqlParser.STATS_PERSISTENT - 513)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE || _la === SqlParser.CHARSET) { - { - this.state = 1041; - this.tableOption(); - this.state = 1048; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (((((_la - 22)) & ~0x1F) === 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la === SqlParser.INDEX || _la === SqlParser.UNION || ((((_la - 280)) & ~0x1F) === 0 && ((1 << (_la - 280)) & ((1 << (SqlParser.AUTO_INCREMENT - 280)) | (1 << (SqlParser.AVG_ROW_LENGTH - 280)) | (1 << (SqlParser.CHECKSUM - 280)) | (1 << (SqlParser.PAGE_CHECKSUM - 280)) | (1 << (SqlParser.COMMENT - 280)) | (1 << (SqlParser.COMPRESSION - 280)))) !== 0) || ((((_la - 312)) & ~0x1F) === 0 && ((1 << (_la - 312)) & ((1 << (SqlParser.CONNECTION - 312)) | (1 << (SqlParser.DATA - 312)) | (1 << (SqlParser.DELAY_KEY_WRITE - 312)) | (1 << (SqlParser.ENCRYPTION - 312)) | (1 << (SqlParser.ENGINE - 312)))) !== 0) || _la === SqlParser.INSERT_METHOD || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.MAX_ROWS || _la === SqlParser.MIN_ROWS || _la === SqlParser.PACK_KEYS || _la === SqlParser.PASSWORD || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & ((1 << (SqlParser.ROW_FORMAT - 513)) | (1 << (SqlParser.STATS_AUTO_RECALC - 513)) | (1 << (SqlParser.STATS_PERSISTENT - 513)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 513)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE || _la === SqlParser.CHARSET || _la === SqlParser.COMMA) { - { - { - this.state = 1043; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 1042; - this.match(SqlParser.COMMA); - } - } - - this.state = 1045; - this.tableOption(); - } - } - this.state = 1050; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - this.state = 1054; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 1053; - this.partitionDefinitions(); - } - } - - this.state = 1057; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE || _la === SqlParser.REPLACE) { - { - this.state = 1056; - (_localctx as QueryCreateTableContext)._keyViolate = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.IGNORE || _la === SqlParser.REPLACE)) { - (_localctx as QueryCreateTableContext)._keyViolate = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1060; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 1059; - this.match(SqlParser.AS); - } - } - - this.state = 1062; - this.selectStatement(); - } - break; - - case 3: - _localctx = new ColumnCreateTableContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1064; - this.match(SqlParser.CREATE); - this.state = 1066; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.TEMPORARY) { - { - this.state = 1065; - this.match(SqlParser.TEMPORARY); - } - } - - this.state = 1068; - this.match(SqlParser.TABLE); - this.state = 1070; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 1069; - this.ifNotExists(); - } - } - - this.state = 1072; - this.tableName(); - this.state = 1073; - this.createDefinitions(); - this.state = 1084; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 72, this._ctx) ) { - case 1: - { - this.state = 1074; - this.tableOption(); - this.state = 1081; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 71, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1076; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 1075; - this.match(SqlParser.COMMA); - } - } - - this.state = 1078; - this.tableOption(); - } - } - } - this.state = 1083; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 71, this._ctx); - } - } - break; - } - this.state = 1087; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 1086; - this.partitionDefinitions(); - } - } - - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createTablespaceInnodb(): CreateTablespaceInnodbContext { - let _localctx: CreateTablespaceInnodbContext = new CreateTablespaceInnodbContext(this._ctx, this.state); - this.enterRule(_localctx, 42, SqlParser.RULE_createTablespaceInnodb); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1091; - this.match(SqlParser.CREATE); - this.state = 1092; - this.match(SqlParser.TABLESPACE); - this.state = 1093; - this.uid(); - this.state = 1094; - this.match(SqlParser.ADD); - this.state = 1095; - this.match(SqlParser.DATAFILE); - this.state = 1096; - _localctx._datafile = this.match(SqlParser.STRING_LITERAL); - this.state = 1100; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FILE_BLOCK_SIZE) { - { - this.state = 1097; - this.match(SqlParser.FILE_BLOCK_SIZE); - this.state = 1098; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 1099; - _localctx._fileBlockSize = this.fileSizeLiteral(); - } - } - - this.state = 1107; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ENGINE) { - { - this.state = 1102; - this.match(SqlParser.ENGINE); - this.state = 1104; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1103; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1106; - this.engineName(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createTablespaceNdb(): CreateTablespaceNdbContext { - let _localctx: CreateTablespaceNdbContext = new CreateTablespaceNdbContext(this._ctx, this.state); - this.enterRule(_localctx, 44, SqlParser.RULE_createTablespaceNdb); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1109; - this.match(SqlParser.CREATE); - this.state = 1110; - this.match(SqlParser.TABLESPACE); - this.state = 1111; - this.uid(); - this.state = 1112; - this.match(SqlParser.ADD); - this.state = 1113; - this.match(SqlParser.DATAFILE); - this.state = 1114; - _localctx._datafile = this.match(SqlParser.STRING_LITERAL); - this.state = 1115; - this.match(SqlParser.USE); - this.state = 1116; - this.match(SqlParser.LOGFILE); - this.state = 1117; - this.match(SqlParser.GROUP); - this.state = 1118; - this.uid(); - this.state = 1124; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EXTENT_SIZE) { - { - this.state = 1119; - this.match(SqlParser.EXTENT_SIZE); - this.state = 1121; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1120; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1123; - _localctx._extentSize = this.fileSizeLiteral(); - } - } - - this.state = 1131; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INITIAL_SIZE) { - { - this.state = 1126; - this.match(SqlParser.INITIAL_SIZE); - this.state = 1128; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1127; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1130; - _localctx._initialSize = this.fileSizeLiteral(); - } - } - - this.state = 1138; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AUTOEXTEND_SIZE) { - { - this.state = 1133; - this.match(SqlParser.AUTOEXTEND_SIZE); - this.state = 1135; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1134; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1137; - _localctx._autoextendSize = this.fileSizeLiteral(); - } - } - - this.state = 1145; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.MAX_SIZE) { - { - this.state = 1140; - this.match(SqlParser.MAX_SIZE); - this.state = 1142; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1141; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1144; - _localctx._maxSize = this.fileSizeLiteral(); - } - } - - this.state = 1152; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NODEGROUP) { - { - this.state = 1147; - this.match(SqlParser.NODEGROUP); - this.state = 1149; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1148; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1151; - this.uid(); - } - } - - this.state = 1155; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WAIT) { - { - this.state = 1154; - this.match(SqlParser.WAIT); - } - } - - this.state = 1162; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMENT) { - { - this.state = 1157; - this.match(SqlParser.COMMENT); - this.state = 1159; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1158; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1161; - _localctx._comment = this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 1164; - this.match(SqlParser.ENGINE); - this.state = 1166; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1165; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1168; - this.engineName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createTrigger(): CreateTriggerContext { - let _localctx: CreateTriggerContext = new CreateTriggerContext(this._ctx, this.state); - this.enterRule(_localctx, 46, SqlParser.RULE_createTrigger); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1170; - this.match(SqlParser.CREATE); - this.state = 1172; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 1171; - this.ownerStatement(); - } - } - - this.state = 1174; - this.match(SqlParser.TRIGGER); - this.state = 1175; - _localctx._thisTrigger = this.fullId(); - this.state = 1176; - _localctx._triggerTime = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BEFORE || _la === SqlParser.AFTER)) { - _localctx._triggerTime = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1177; - _localctx._triggerEvent = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DELETE || _la === SqlParser.INSERT || _la === SqlParser.UPDATE)) { - _localctx._triggerEvent = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1178; - this.match(SqlParser.ON); - this.state = 1179; - this.tableName(); - this.state = 1180; - this.match(SqlParser.FOR); - this.state = 1181; - this.match(SqlParser.EACH); - this.state = 1182; - this.match(SqlParser.ROW); - this.state = 1185; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 93, this._ctx) ) { - case 1: - { - this.state = 1183; - _localctx._triggerPlace = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FOLLOWS || _la === SqlParser.PRECEDES)) { - _localctx._triggerPlace = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1184; - _localctx._otherTrigger = this.fullId(); - } - break; - } - this.state = 1187; - this.routineBody(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createView(): CreateViewContext { - let _localctx: CreateViewContext = new CreateViewContext(this._ctx, this.state); - this.enterRule(_localctx, 48, SqlParser.RULE_createView); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1189; - this.match(SqlParser.CREATE); - this.state = 1192; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OR) { - { - this.state = 1190; - this.match(SqlParser.OR); - this.state = 1191; - this.match(SqlParser.REPLACE); - } - } - - this.state = 1197; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALGORITHM) { - { - this.state = 1194; - this.match(SqlParser.ALGORITHM); - this.state = 1195; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 1196; - _localctx._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.MERGE || _la === SqlParser.TEMPTABLE || _la === SqlParser.UNDEFINED)) { - _localctx._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1200; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 1199; - this.ownerStatement(); - } - } - - this.state = 1205; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SQL) { - { - this.state = 1202; - this.match(SqlParser.SQL); - this.state = 1203; - this.match(SqlParser.SECURITY); - this.state = 1204; - _localctx._secContext = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFINER || _la === SqlParser.INVOKER)) { - _localctx._secContext = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1207; - this.match(SqlParser.VIEW); - this.state = 1208; - this.fullId(); - this.state = 1213; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 1209; - this.match(SqlParser.LR_BRACKET); - this.state = 1210; - this.uidList(); - this.state = 1211; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 1215; - this.match(SqlParser.AS); - this.state = 1216; - this.selectStatement(); - this.state = 1223; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 1217; - this.match(SqlParser.WITH); - this.state = 1219; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CASCADED || _la === SqlParser.LOCAL) { - { - this.state = 1218; - _localctx._checkOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CASCADED || _la === SqlParser.LOCAL)) { - _localctx._checkOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1221; - this.match(SqlParser.CHECK); - this.state = 1222; - this.match(SqlParser.OPTION); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createDatabaseOption(): CreateDatabaseOptionContext { - let _localctx: CreateDatabaseOptionContext = new CreateDatabaseOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 50, SqlParser.RULE_createDatabaseOption); - let _la: number; - try { - this.state = 1248; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 107, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1226; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 1225; - this.match(SqlParser.DEFAULT); - } - } - - this.state = 1231; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 1228; - this.match(SqlParser.CHARACTER); - this.state = 1229; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 1230; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 1234; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1233; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1238; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - { - this.state = 1236; - this.charsetName(); - } - break; - case SqlParser.DEFAULT: - { - this.state = 1237; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1241; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 1240; - this.match(SqlParser.DEFAULT); - } - } - - this.state = 1243; - this.match(SqlParser.COLLATE); - this.state = 1245; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1244; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1247; - this.collationName(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public ownerStatement(): OwnerStatementContext { - let _localctx: OwnerStatementContext = new OwnerStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 52, SqlParser.RULE_ownerStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1250; - this.match(SqlParser.DEFINER); - this.state = 1251; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 1258; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.STRING_USER_NAME: - { - this.state = 1252; - this.userName(); - } - break; - case SqlParser.CURRENT_USER: - { - this.state = 1253; - this.match(SqlParser.CURRENT_USER); - this.state = 1256; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 1254; - this.match(SqlParser.LR_BRACKET); - this.state = 1255; - this.match(SqlParser.RR_BRACKET); - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public scheduleExpression(): ScheduleExpressionContext { - let _localctx: ScheduleExpressionContext = new ScheduleExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 54, SqlParser.RULE_scheduleExpression); - let _la: number; - try { - this.state = 1294; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.AT: - _localctx = new PreciseScheduleContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1260; - this.match(SqlParser.AT); - this.state = 1261; - this.timestampValue(); - this.state = 1265; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.PLUS) { - { - { - this.state = 1262; - this.intervalExpr(); - } - } - this.state = 1267; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - case SqlParser.EVERY: - _localctx = new IntervalScheduleContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1268; - this.match(SqlParser.EVERY); - this.state = 1271; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 111, this._ctx) ) { - case 1: - { - this.state = 1269; - this.decimalLiteral(); - } - break; - - case 2: - { - this.state = 1270; - this.expression(0); - } - break; - } - this.state = 1273; - this.intervalType(); - this.state = 1282; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STARTS) { - { - this.state = 1274; - this.match(SqlParser.STARTS); - this.state = 1275; - (_localctx as IntervalScheduleContext)._startTimestamp = this.timestampValue(); - this.state = 1279; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.PLUS) { - { - { - this.state = 1276; - (_localctx as IntervalScheduleContext)._intervalExpr = this.intervalExpr(); - (_localctx as IntervalScheduleContext)._startIntervals.push((_localctx as IntervalScheduleContext)._intervalExpr); - } - } - this.state = 1281; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - this.state = 1292; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ENDS) { - { - this.state = 1284; - this.match(SqlParser.ENDS); - this.state = 1285; - (_localctx as IntervalScheduleContext)._endTimestamp = this.timestampValue(); - this.state = 1289; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.PLUS) { - { - { - this.state = 1286; - (_localctx as IntervalScheduleContext)._intervalExpr = this.intervalExpr(); - (_localctx as IntervalScheduleContext)._endIntervals.push((_localctx as IntervalScheduleContext)._intervalExpr); - } - } - this.state = 1291; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public timestampValue(): TimestampValueContext { - let _localctx: TimestampValueContext = new TimestampValueContext(this._ctx, this.state); - this.enterRule(_localctx, 56, SqlParser.RULE_timestampValue); - try { - this.state = 1300; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 117, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1296; - this.match(SqlParser.CURRENT_TIMESTAMP); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1297; - this.stringLiteral(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1298; - this.decimalLiteral(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 1299; - this.expression(0); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public intervalExpr(): IntervalExprContext { - let _localctx: IntervalExprContext = new IntervalExprContext(this._ctx, this.state); - this.enterRule(_localctx, 58, SqlParser.RULE_intervalExpr); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1302; - this.match(SqlParser.PLUS); - this.state = 1303; - this.match(SqlParser.INTERVAL); - this.state = 1306; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 118, this._ctx) ) { - case 1: - { - this.state = 1304; - this.decimalLiteral(); - } - break; - - case 2: - { - this.state = 1305; - this.expression(0); - } - break; - } - this.state = 1308; - this.intervalType(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public intervalType(): IntervalTypeContext { - let _localctx: IntervalTypeContext = new IntervalTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 60, SqlParser.RULE_intervalType); - try { - this.state = 1323; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1310; - this.intervalTypeBase(); - } - break; - case SqlParser.YEAR: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1311; - this.match(SqlParser.YEAR); - } - break; - case SqlParser.YEAR_MONTH: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1312; - this.match(SqlParser.YEAR_MONTH); - } - break; - case SqlParser.DAY_HOUR: - this.enterOuterAlt(_localctx, 4); - { - this.state = 1313; - this.match(SqlParser.DAY_HOUR); - } - break; - case SqlParser.DAY_MINUTE: - this.enterOuterAlt(_localctx, 5); - { - this.state = 1314; - this.match(SqlParser.DAY_MINUTE); - } - break; - case SqlParser.DAY_SECOND: - this.enterOuterAlt(_localctx, 6); - { - this.state = 1315; - this.match(SqlParser.DAY_SECOND); - } - break; - case SqlParser.HOUR_MINUTE: - this.enterOuterAlt(_localctx, 7); - { - this.state = 1316; - this.match(SqlParser.HOUR_MINUTE); - } - break; - case SqlParser.HOUR_SECOND: - this.enterOuterAlt(_localctx, 8); - { - this.state = 1317; - this.match(SqlParser.HOUR_SECOND); - } - break; - case SqlParser.MINUTE_SECOND: - this.enterOuterAlt(_localctx, 9); - { - this.state = 1318; - this.match(SqlParser.MINUTE_SECOND); - } - break; - case SqlParser.SECOND_MICROSECOND: - this.enterOuterAlt(_localctx, 10); - { - this.state = 1319; - this.match(SqlParser.SECOND_MICROSECOND); - } - break; - case SqlParser.MINUTE_MICROSECOND: - this.enterOuterAlt(_localctx, 11); - { - this.state = 1320; - this.match(SqlParser.MINUTE_MICROSECOND); - } - break; - case SqlParser.HOUR_MICROSECOND: - this.enterOuterAlt(_localctx, 12); - { - this.state = 1321; - this.match(SqlParser.HOUR_MICROSECOND); - } - break; - case SqlParser.DAY_MICROSECOND: - this.enterOuterAlt(_localctx, 13); - { - this.state = 1322; - this.match(SqlParser.DAY_MICROSECOND); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public enableType(): EnableTypeContext { - let _localctx: EnableTypeContext = new EnableTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 62, SqlParser.RULE_enableType); - try { - this.state = 1330; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 120, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1325; - this.match(SqlParser.ENABLE); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1326; - this.match(SqlParser.DISABLE); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1327; - this.match(SqlParser.DISABLE); - this.state = 1328; - this.match(SqlParser.ON); - this.state = 1329; - this.match(SqlParser.SLAVE); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexType(): IndexTypeContext { - let _localctx: IndexTypeContext = new IndexTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 64, SqlParser.RULE_indexType); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1332; - this.match(SqlParser.USING); - this.state = 1333; - _la = this._input.LA(1); - if (!(_la === SqlParser.BTREE || _la === SqlParser.HASH)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexOption(): IndexOptionContext { - let _localctx: IndexOptionContext = new IndexOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 66, SqlParser.RULE_indexOption); - let _la: number; - try { - this.state = 1348; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.KEY_BLOCK_SIZE: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1335; - this.match(SqlParser.KEY_BLOCK_SIZE); - this.state = 1337; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1336; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1339; - this.fileSizeLiteral(); - } - break; - case SqlParser.USING: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1340; - this.indexType(); - } - break; - case SqlParser.WITH: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1341; - this.match(SqlParser.WITH); - this.state = 1342; - this.match(SqlParser.PARSER); - this.state = 1343; - this.uid(); - } - break; - case SqlParser.COMMENT: - this.enterOuterAlt(_localctx, 4); - { - this.state = 1344; - this.match(SqlParser.COMMENT); - this.state = 1345; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.INVISIBLE: - this.enterOuterAlt(_localctx, 5); - { - this.state = 1346; - this.match(SqlParser.INVISIBLE); - } - break; - case SqlParser.VISIBLE: - this.enterOuterAlt(_localctx, 6); - { - this.state = 1347; - this.match(SqlParser.VISIBLE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public procedureParameter(): ProcedureParameterContext { - let _localctx: ProcedureParameterContext = new ProcedureParameterContext(this._ctx, this.state); - this.enterRule(_localctx, 68, SqlParser.RULE_procedureParameter); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1351; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IN || _la === SqlParser.INOUT || _la === SqlParser.OUT) { - { - this.state = 1350; - _localctx._direction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.IN || _la === SqlParser.INOUT || _la === SqlParser.OUT)) { - _localctx._direction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1353; - this.uid(); - this.state = 1354; - this.dataType(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public functionParameter(): FunctionParameterContext { - let _localctx: FunctionParameterContext = new FunctionParameterContext(this._ctx, this.state); - this.enterRule(_localctx, 70, SqlParser.RULE_functionParameter); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1356; - this.uid(); - this.state = 1357; - this.dataType(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public routineOption(): RoutineOptionContext { - let _localctx: RoutineOptionContext = new RoutineOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 72, SqlParser.RULE_routineOption); - let _la: number; - try { - this.state = 1382; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.COMMENT: - _localctx = new RoutineCommentContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1359; - this.match(SqlParser.COMMENT); - this.state = 1360; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.LANGUAGE: - _localctx = new RoutineLanguageContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1361; - this.match(SqlParser.LANGUAGE); - this.state = 1362; - this.match(SqlParser.SQL); - } - break; - case SqlParser.DETERMINISTIC: - case SqlParser.NOT: - _localctx = new RoutineBehaviorContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1364; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 1363; - this.match(SqlParser.NOT); - } - } - - this.state = 1366; - this.match(SqlParser.DETERMINISTIC); - } - break; - case SqlParser.MODIFIES: - case SqlParser.READS: - case SqlParser.CONTAINS: - case SqlParser.NO: - _localctx = new RoutineDataContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1377; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CONTAINS: - { - this.state = 1367; - this.match(SqlParser.CONTAINS); - this.state = 1368; - this.match(SqlParser.SQL); - } - break; - case SqlParser.NO: - { - this.state = 1369; - this.match(SqlParser.NO); - this.state = 1370; - this.match(SqlParser.SQL); - } - break; - case SqlParser.READS: - { - this.state = 1371; - this.match(SqlParser.READS); - this.state = 1372; - this.match(SqlParser.SQL); - this.state = 1373; - this.match(SqlParser.DATA); - } - break; - case SqlParser.MODIFIES: - { - this.state = 1374; - this.match(SqlParser.MODIFIES); - this.state = 1375; - this.match(SqlParser.SQL); - this.state = 1376; - this.match(SqlParser.DATA); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case SqlParser.SQL: - _localctx = new RoutineSecurityContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 1379; - this.match(SqlParser.SQL); - this.state = 1380; - this.match(SqlParser.SECURITY); - this.state = 1381; - (_localctx as RoutineSecurityContext)._context = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFINER || _la === SqlParser.INVOKER)) { - (_localctx as RoutineSecurityContext)._context = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public serverOption(): ServerOptionContext { - let _localctx: ServerOptionContext = new ServerOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 74, SqlParser.RULE_serverOption); - try { - this.state = 1398; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.HOST: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1384; - this.match(SqlParser.HOST); - this.state = 1385; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.DATABASE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1386; - this.match(SqlParser.DATABASE); - this.state = 1387; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.USER: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1388; - this.match(SqlParser.USER); - this.state = 1389; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.PASSWORD: - this.enterOuterAlt(_localctx, 4); - { - this.state = 1390; - this.match(SqlParser.PASSWORD); - this.state = 1391; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.SOCKET: - this.enterOuterAlt(_localctx, 5); - { - this.state = 1392; - this.match(SqlParser.SOCKET); - this.state = 1393; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.OWNER: - this.enterOuterAlt(_localctx, 6); - { - this.state = 1394; - this.match(SqlParser.OWNER); - this.state = 1395; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.PORT: - this.enterOuterAlt(_localctx, 7); - { - this.state = 1396; - this.match(SqlParser.PORT); - this.state = 1397; - this.decimalLiteral(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createDefinitions(): CreateDefinitionsContext { - let _localctx: CreateDefinitionsContext = new CreateDefinitionsContext(this._ctx, this.state); - this.enterRule(_localctx, 76, SqlParser.RULE_createDefinitions); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1400; - this.match(SqlParser.LR_BRACKET); - this.state = 1401; - this.createDefinition(); - this.state = 1406; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1402; - this.match(SqlParser.COMMA); - this.state = 1403; - this.createDefinition(); - } - } - this.state = 1408; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1409; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createDefinition(): CreateDefinitionContext { - let _localctx: CreateDefinitionContext = new CreateDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 78, SqlParser.RULE_createDefinition); - try { - this.state = 1416; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - _localctx = new ColumnDeclarationContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1411; - this.uid(); - this.state = 1412; - this.columnDefinition(); - } - break; - case SqlParser.CHECK: - case SqlParser.CONSTRAINT: - case SqlParser.FOREIGN: - case SqlParser.PRIMARY: - case SqlParser.UNIQUE: - _localctx = new ConstraintDeclarationContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1414; - this.tableConstraint(); - } - break; - case SqlParser.FULLTEXT: - case SqlParser.INDEX: - case SqlParser.KEY: - case SqlParser.SPATIAL: - _localctx = new IndexDeclarationContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1415; - this.indexColumnDefinition(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public columnDefinition(): ColumnDefinitionContext { - let _localctx: ColumnDefinitionContext = new ColumnDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 80, SqlParser.RULE_columnDefinition); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 1418; - this.dataType(); - this.state = 1422; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 130, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1419; - this.columnConstraint(); - } - } - } - this.state = 1424; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 130, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public columnConstraint(): ColumnConstraintContext { - let _localctx: ColumnConstraintContext = new ColumnConstraintContext(this._ctx, this.state); - this.enterRule(_localctx, 82, SqlParser.RULE_columnConstraint); - let _la: number; - try { - this.state = 1476; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.NOT: - case SqlParser.NULL_LITERAL: - case SqlParser.NULL_SPEC_LITERAL: - _localctx = new NullColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1425; - this.nullNotnull(); - } - break; - case SqlParser.DEFAULT: - _localctx = new DefaultColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1426; - this.match(SqlParser.DEFAULT); - this.state = 1427; - this.defaultValue(); - } - break; - case SqlParser.ON: - case SqlParser.AUTO_INCREMENT: - _localctx = new AutoIncrementColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1432; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.AUTO_INCREMENT: - { - this.state = 1428; - this.match(SqlParser.AUTO_INCREMENT); - } - break; - case SqlParser.ON: - { - this.state = 1429; - this.match(SqlParser.ON); - this.state = 1430; - this.match(SqlParser.UPDATE); - this.state = 1431; - this.currentTimestamp(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case SqlParser.KEY: - case SqlParser.PRIMARY: - _localctx = new PrimaryKeyColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1435; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PRIMARY) { - { - this.state = 1434; - this.match(SqlParser.PRIMARY); - } - } - - this.state = 1437; - this.match(SqlParser.KEY); - } - break; - case SqlParser.UNIQUE: - _localctx = new UniqueKeyColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 1438; - this.match(SqlParser.UNIQUE); - this.state = 1440; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 133, this._ctx) ) { - case 1: - { - this.state = 1439; - this.match(SqlParser.KEY); - } - break; - } - } - break; - case SqlParser.COMMENT: - _localctx = new CommentColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 1442; - this.match(SqlParser.COMMENT); - this.state = 1443; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.COLUMN_FORMAT: - _localctx = new FormatColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 1444; - this.match(SqlParser.COLUMN_FORMAT); - this.state = 1445; - (_localctx as FormatColumnConstraintContext)._colformat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.DYNAMIC || _la === SqlParser.FIXED)) { - (_localctx as FormatColumnConstraintContext)._colformat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.STORAGE: - _localctx = new StorageColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 1446; - this.match(SqlParser.STORAGE); - this.state = 1447; - (_localctx as StorageColumnConstraintContext)._storageval = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.DISK || _la === SqlParser.MEMORY)) { - (_localctx as StorageColumnConstraintContext)._storageval = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.REFERENCES: - _localctx = new ReferenceColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 1448; - this.referenceDefinition(); - } - break; - case SqlParser.COLLATE: - _localctx = new CollateColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 1449; - this.match(SqlParser.COLLATE); - this.state = 1450; - this.collationName(); - } - break; - case SqlParser.AS: - case SqlParser.GENERATED: - _localctx = new GeneratedColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 1453; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.GENERATED) { - { - this.state = 1451; - this.match(SqlParser.GENERATED); - this.state = 1452; - this.match(SqlParser.ALWAYS); - } - } - - this.state = 1455; - this.match(SqlParser.AS); - this.state = 1456; - this.match(SqlParser.LR_BRACKET); - this.state = 1457; - this.expression(0); - this.state = 1458; - this.match(SqlParser.RR_BRACKET); - this.state = 1460; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STORED || _la === SqlParser.VIRTUAL) { - { - this.state = 1459; - _la = this._input.LA(1); - if (!(_la === SqlParser.STORED || _la === SqlParser.VIRTUAL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - break; - case SqlParser.SERIAL: - _localctx = new SerialDefaultColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 1462; - this.match(SqlParser.SERIAL); - this.state = 1463; - this.match(SqlParser.DEFAULT); - this.state = 1464; - this.match(SqlParser.VALUE); - } - break; - case SqlParser.CHECK: - case SqlParser.CONSTRAINT: - _localctx = new CheckColumnConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 1469; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 1465; - this.match(SqlParser.CONSTRAINT); - this.state = 1467; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1466; - (_localctx as CheckColumnConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 1471; - this.match(SqlParser.CHECK); - this.state = 1472; - this.match(SqlParser.LR_BRACKET); - this.state = 1473; - this.expression(0); - this.state = 1474; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableConstraint(): TableConstraintContext { - let _localctx: TableConstraintContext = new TableConstraintContext(this._ctx, this.state); - this.enterRule(_localctx, 84, SqlParser.RULE_tableConstraint); - let _la: number; - try { - this.state = 1547; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 155, this._ctx) ) { - case 1: - _localctx = new PrimaryKeyTableConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1482; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 1478; - this.match(SqlParser.CONSTRAINT); - this.state = 1480; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1479; - (_localctx as PrimaryKeyTableConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 1484; - this.match(SqlParser.PRIMARY); - this.state = 1485; - this.match(SqlParser.KEY); - this.state = 1487; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1486; - (_localctx as PrimaryKeyTableConstraintContext)._index = this.uid(); - } - } - - this.state = 1490; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 1489; - this.indexType(); - } - } - - this.state = 1492; - this.indexColumnNames(); - this.state = 1496; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 1493; - this.indexOption(); - } - } - this.state = 1498; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new UniqueKeyTableConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1503; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 1499; - this.match(SqlParser.CONSTRAINT); - this.state = 1501; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1500; - (_localctx as UniqueKeyTableConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 1505; - this.match(SqlParser.UNIQUE); - this.state = 1507; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 1506; - (_localctx as UniqueKeyTableConstraintContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as UniqueKeyTableConstraintContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1510; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1509; - (_localctx as UniqueKeyTableConstraintContext)._index = this.uid(); - } - } - - this.state = 1513; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 1512; - this.indexType(); - } - } - - this.state = 1515; - this.indexColumnNames(); - this.state = 1519; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 1516; - this.indexOption(); - } - } - this.state = 1521; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 3: - _localctx = new ForeignKeyTableConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1526; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 1522; - this.match(SqlParser.CONSTRAINT); - this.state = 1524; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1523; - (_localctx as ForeignKeyTableConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 1528; - this.match(SqlParser.FOREIGN); - this.state = 1529; - this.match(SqlParser.KEY); - this.state = 1531; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1530; - (_localctx as ForeignKeyTableConstraintContext)._index = this.uid(); - } - } - - this.state = 1533; - this.indexColumnNames(); - this.state = 1534; - this.referenceDefinition(); - } - break; - - case 4: - _localctx = new CheckTableConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1540; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 1536; - this.match(SqlParser.CONSTRAINT); - this.state = 1538; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1537; - (_localctx as CheckTableConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 1542; - this.match(SqlParser.CHECK); - this.state = 1543; - this.match(SqlParser.LR_BRACKET); - this.state = 1544; - this.expression(0); - this.state = 1545; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public referenceDefinition(): ReferenceDefinitionContext { - let _localctx: ReferenceDefinitionContext = new ReferenceDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 86, SqlParser.RULE_referenceDefinition); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1549; - this.match(SqlParser.REFERENCES); - this.state = 1550; - this.tableName(); - this.state = 1552; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 156, this._ctx) ) { - case 1: - { - this.state = 1551; - this.indexColumnNames(); - } - break; - } - this.state = 1556; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.MATCH) { - { - this.state = 1554; - this.match(SqlParser.MATCH); - this.state = 1555; - _localctx._matchType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FULL || _la === SqlParser.PARTIAL || _la === SqlParser.SIMPLE)) { - _localctx._matchType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1559; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 158, this._ctx) ) { - case 1: - { - this.state = 1558; - this.referenceAction(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public referenceAction(): ReferenceActionContext { - let _localctx: ReferenceActionContext = new ReferenceActionContext(this._ctx, this.state); - this.enterRule(_localctx, 88, SqlParser.RULE_referenceAction); - try { - this.state = 1577; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 161, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1561; - this.match(SqlParser.ON); - this.state = 1562; - this.match(SqlParser.DELETE); - this.state = 1563; - _localctx._onDelete = this.referenceControlType(); - this.state = 1567; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 159, this._ctx) ) { - case 1: - { - this.state = 1564; - this.match(SqlParser.ON); - this.state = 1565; - this.match(SqlParser.UPDATE); - this.state = 1566; - _localctx._onUpdate = this.referenceControlType(); - } - break; - } - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1569; - this.match(SqlParser.ON); - this.state = 1570; - this.match(SqlParser.UPDATE); - this.state = 1571; - _localctx._onUpdate = this.referenceControlType(); - this.state = 1575; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 160, this._ctx) ) { - case 1: - { - this.state = 1572; - this.match(SqlParser.ON); - this.state = 1573; - this.match(SqlParser.DELETE); - this.state = 1574; - _localctx._onDelete = this.referenceControlType(); - } - break; - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public referenceControlType(): ReferenceControlTypeContext { - let _localctx: ReferenceControlTypeContext = new ReferenceControlTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 90, SqlParser.RULE_referenceControlType); - try { - this.state = 1585; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.RESTRICT: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1579; - this.match(SqlParser.RESTRICT); - } - break; - case SqlParser.CASCADE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1580; - this.match(SqlParser.CASCADE); - } - break; - case SqlParser.SET: - this.enterOuterAlt(_localctx, 3); - { - this.state = 1581; - this.match(SqlParser.SET); - this.state = 1582; - this.match(SqlParser.NULL_LITERAL); - } - break; - case SqlParser.NO: - this.enterOuterAlt(_localctx, 4); - { - this.state = 1583; - this.match(SqlParser.NO); - this.state = 1584; - this.match(SqlParser.ACTION); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexColumnDefinition(): IndexColumnDefinitionContext { - let _localctx: IndexColumnDefinitionContext = new IndexColumnDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 92, SqlParser.RULE_indexColumnDefinition); - let _la: number; - try { - this.state = 1615; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.INDEX: - case SqlParser.KEY: - _localctx = new SimpleIndexDeclarationContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1587; - (_localctx as SimpleIndexDeclarationContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as SimpleIndexDeclarationContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1589; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1588; - this.uid(); - } - } - - this.state = 1592; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 1591; - this.indexType(); - } - } - - this.state = 1594; - this.indexColumnNames(); - this.state = 1598; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 1595; - this.indexOption(); - } - } - this.state = 1600; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - case SqlParser.FULLTEXT: - case SqlParser.SPATIAL: - _localctx = new SpecialIndexDeclarationContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1601; - _la = this._input.LA(1); - if (!(_la === SqlParser.FULLTEXT || _la === SqlParser.SPATIAL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1603; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 1602; - (_localctx as SpecialIndexDeclarationContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as SpecialIndexDeclarationContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1606; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 1605; - this.uid(); - } - } - - this.state = 1608; - this.indexColumnNames(); - this.state = 1612; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 1609; - this.indexOption(); - } - } - this.state = 1614; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableOption(): TableOptionContext { - let _localctx: TableOptionContext = new TableOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 94, SqlParser.RULE_tableOption); - let _la: number; - try { - this.state = 1761; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 199, this._ctx) ) { - case 1: - _localctx = new TableOptionEngineContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1617; - this.match(SqlParser.ENGINE); - this.state = 1619; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1618; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1621; - this.engineName(); - } - break; - - case 2: - _localctx = new TableOptionAutoIncrementContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1622; - this.match(SqlParser.AUTO_INCREMENT); - this.state = 1624; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1623; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1626; - this.decimalLiteral(); - } - break; - - case 3: - _localctx = new TableOptionAverageContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1627; - this.match(SqlParser.AVG_ROW_LENGTH); - this.state = 1629; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1628; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1631; - this.decimalLiteral(); - } - break; - - case 4: - _localctx = new TableOptionCharsetContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1633; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 1632; - this.match(SqlParser.DEFAULT); - } - } - - this.state = 1638; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 1635; - this.match(SqlParser.CHARACTER); - this.state = 1636; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 1637; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 1641; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1640; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1645; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - { - this.state = 1643; - this.charsetName(); - } - break; - case SqlParser.DEFAULT: - { - this.state = 1644; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 5: - _localctx = new TableOptionChecksumContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 1647; - _la = this._input.LA(1); - if (!(_la === SqlParser.CHECKSUM || _la === SqlParser.PAGE_CHECKSUM)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 1649; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1648; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1651; - (_localctx as TableOptionChecksumContext)._boolValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as TableOptionChecksumContext)._boolValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 6: - _localctx = new TableOptionCollateContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 1653; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 1652; - this.match(SqlParser.DEFAULT); - } - } - - this.state = 1655; - this.match(SqlParser.COLLATE); - this.state = 1657; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1656; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1659; - this.collationName(); - } - break; - - case 7: - _localctx = new TableOptionCommentContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 1660; - this.match(SqlParser.COMMENT); - this.state = 1662; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1661; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1664; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 8: - _localctx = new TableOptionCompressionContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 1665; - this.match(SqlParser.COMPRESSION); - this.state = 1667; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1666; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1669; - _la = this._input.LA(1); - if (!(_la === SqlParser.STRING_LITERAL || _la === SqlParser.ID)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 9: - _localctx = new TableOptionConnectionContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 1670; - this.match(SqlParser.CONNECTION); - this.state = 1672; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1671; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1674; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 10: - _localctx = new TableOptionDataDirectoryContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 1675; - this.match(SqlParser.DATA); - this.state = 1676; - this.match(SqlParser.DIRECTORY); - this.state = 1678; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1677; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1680; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 11: - _localctx = new TableOptionDelayContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 1681; - this.match(SqlParser.DELAY_KEY_WRITE); - this.state = 1683; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1682; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1685; - (_localctx as TableOptionDelayContext)._boolValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as TableOptionDelayContext)._boolValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 12: - _localctx = new TableOptionEncryptionContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 1686; - this.match(SqlParser.ENCRYPTION); - this.state = 1688; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1687; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1690; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 13: - _localctx = new TableOptionIndexDirectoryContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 1691; - this.match(SqlParser.INDEX); - this.state = 1692; - this.match(SqlParser.DIRECTORY); - this.state = 1694; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1693; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1696; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 14: - _localctx = new TableOptionInsertMethodContext(_localctx); - this.enterOuterAlt(_localctx, 14); - { - this.state = 1697; - this.match(SqlParser.INSERT_METHOD); - this.state = 1699; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1698; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1701; - (_localctx as TableOptionInsertMethodContext)._insertMethod = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FIRST || _la === SqlParser.LAST || _la === SqlParser.NO)) { - (_localctx as TableOptionInsertMethodContext)._insertMethod = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 15: - _localctx = new TableOptionKeyBlockSizeContext(_localctx); - this.enterOuterAlt(_localctx, 15); - { - this.state = 1702; - this.match(SqlParser.KEY_BLOCK_SIZE); - this.state = 1704; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1703; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1706; - this.fileSizeLiteral(); - } - break; - - case 16: - _localctx = new TableOptionMaxRowsContext(_localctx); - this.enterOuterAlt(_localctx, 16); - { - this.state = 1707; - this.match(SqlParser.MAX_ROWS); - this.state = 1709; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1708; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1711; - this.decimalLiteral(); - } - break; - - case 17: - _localctx = new TableOptionMinRowsContext(_localctx); - this.enterOuterAlt(_localctx, 17); - { - this.state = 1712; - this.match(SqlParser.MIN_ROWS); - this.state = 1714; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1713; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1716; - this.decimalLiteral(); - } - break; - - case 18: - _localctx = new TableOptionPackKeysContext(_localctx); - this.enterOuterAlt(_localctx, 18); - { - this.state = 1717; - this.match(SqlParser.PACK_KEYS); - this.state = 1719; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1718; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1721; - (_localctx as TableOptionPackKeysContext)._extBoolValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as TableOptionPackKeysContext)._extBoolValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 19: - _localctx = new TableOptionPasswordContext(_localctx); - this.enterOuterAlt(_localctx, 19); - { - this.state = 1722; - this.match(SqlParser.PASSWORD); - this.state = 1724; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1723; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1726; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 20: - _localctx = new TableOptionRowFormatContext(_localctx); - this.enterOuterAlt(_localctx, 20); - { - this.state = 1727; - this.match(SqlParser.ROW_FORMAT); - this.state = 1729; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1728; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1731; - (_localctx as TableOptionRowFormatContext)._rowFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || ((((_la - 307)) & ~0x1F) === 0 && ((1 << (_la - 307)) & ((1 << (SqlParser.COMPACT - 307)) | (1 << (SqlParser.COMPRESSED - 307)) | (1 << (SqlParser.DYNAMIC - 307)))) !== 0) || _la === SqlParser.FIXED || _la === SqlParser.REDUNDANT)) { - (_localctx as TableOptionRowFormatContext)._rowFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 21: - _localctx = new TableOptionRecalculationContext(_localctx); - this.enterOuterAlt(_localctx, 21); - { - this.state = 1732; - this.match(SqlParser.STATS_AUTO_RECALC); - this.state = 1734; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1733; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1736; - (_localctx as TableOptionRecalculationContext)._extBoolValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as TableOptionRecalculationContext)._extBoolValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 22: - _localctx = new TableOptionPersistentContext(_localctx); - this.enterOuterAlt(_localctx, 22); - { - this.state = 1737; - this.match(SqlParser.STATS_PERSISTENT); - this.state = 1739; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1738; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1741; - (_localctx as TableOptionPersistentContext)._extBoolValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as TableOptionPersistentContext)._extBoolValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 23: - _localctx = new TableOptionSamplePageContext(_localctx); - this.enterOuterAlt(_localctx, 23); - { - this.state = 1742; - this.match(SqlParser.STATS_SAMPLE_PAGES); - this.state = 1744; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1743; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1746; - this.decimalLiteral(); - } - break; - - case 24: - _localctx = new TableOptionTablespaceContext(_localctx); - this.enterOuterAlt(_localctx, 24); - { - this.state = 1747; - this.match(SqlParser.TABLESPACE); - this.state = 1748; - this.uid(); - this.state = 1750; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 197, this._ctx) ) { - case 1: - { - this.state = 1749; - this.tablespaceStorage(); - } - break; - } - } - break; - - case 25: - _localctx = new TableOptionTablespaceContext(_localctx); - this.enterOuterAlt(_localctx, 25); - { - this.state = 1752; - this.tablespaceStorage(); - } - break; - - case 26: - _localctx = new TableOptionUnionContext(_localctx); - this.enterOuterAlt(_localctx, 26); - { - this.state = 1753; - this.match(SqlParser.UNION); - this.state = 1755; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 1754; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 1757; - this.match(SqlParser.LR_BRACKET); - this.state = 1758; - this.tables(); - this.state = 1759; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tablespaceStorage(): TablespaceStorageContext { - let _localctx: TablespaceStorageContext = new TablespaceStorageContext(this._ctx, this.state); - this.enterRule(_localctx, 96, SqlParser.RULE_tablespaceStorage); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1763; - this.match(SqlParser.STORAGE); - this.state = 1764; - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.DISK || _la === SqlParser.MEMORY)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionDefinitions(): PartitionDefinitionsContext { - let _localctx: PartitionDefinitionsContext = new PartitionDefinitionsContext(this._ctx, this.state); - this.enterRule(_localctx, 98, SqlParser.RULE_partitionDefinitions); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1766; - this.match(SqlParser.PARTITION); - this.state = 1767; - this.match(SqlParser.BY); - this.state = 1768; - this.partitionFunctionDefinition(); - this.state = 1771; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITIONS) { - { - this.state = 1769; - this.match(SqlParser.PARTITIONS); - this.state = 1770; - _localctx._count = this.decimalLiteral(); - } - } - - this.state = 1780; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1773; - this.match(SqlParser.SUBPARTITION); - this.state = 1774; - this.match(SqlParser.BY); - this.state = 1775; - this.subpartitionFunctionDefinition(); - this.state = 1778; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITIONS) { - { - this.state = 1776; - this.match(SqlParser.SUBPARTITIONS); - this.state = 1777; - _localctx._subCount = this.decimalLiteral(); - } - } - - } - } - - this.state = 1793; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 204, this._ctx) ) { - case 1: - { - this.state = 1782; - this.match(SqlParser.LR_BRACKET); - this.state = 1783; - this.partitionDefinition(); - this.state = 1788; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1784; - this.match(SqlParser.COMMA); - this.state = 1785; - this.partitionDefinition(); - } - } - this.state = 1790; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1791; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionFunctionDefinition(): PartitionFunctionDefinitionContext { - let _localctx: PartitionFunctionDefinitionContext = new PartitionFunctionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 100, SqlParser.RULE_partitionFunctionDefinition); - let _la: number; - try { - this.state = 1840; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 210, this._ctx) ) { - case 1: - _localctx = new PartitionFunctionHashContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1796; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINEAR) { - { - this.state = 1795; - this.match(SqlParser.LINEAR); - } - } - - this.state = 1798; - this.match(SqlParser.HASH); - this.state = 1799; - this.match(SqlParser.LR_BRACKET); - this.state = 1800; - this.expression(0); - this.state = 1801; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 2: - _localctx = new PartitionFunctionKeyContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1804; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINEAR) { - { - this.state = 1803; - this.match(SqlParser.LINEAR); - } - } - - this.state = 1806; - this.match(SqlParser.KEY); - this.state = 1810; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALGORITHM) { - { - this.state = 1807; - this.match(SqlParser.ALGORITHM); - this.state = 1808; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 1809; - (_localctx as PartitionFunctionKeyContext)._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ONE_DECIMAL || _la === SqlParser.TWO_DECIMAL)) { - (_localctx as PartitionFunctionKeyContext)._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1812; - this.match(SqlParser.LR_BRACKET); - this.state = 1813; - this.uidList(); - this.state = 1814; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 3: - _localctx = new PartitionFunctionRangeContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1816; - this.match(SqlParser.RANGE); - this.state = 1826; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LR_BRACKET: - { - this.state = 1817; - this.match(SqlParser.LR_BRACKET); - this.state = 1818; - this.expression(0); - this.state = 1819; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.COLUMNS: - { - this.state = 1821; - this.match(SqlParser.COLUMNS); - this.state = 1822; - this.match(SqlParser.LR_BRACKET); - this.state = 1823; - this.uidList(); - this.state = 1824; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 4: - _localctx = new PartitionFunctionListContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1828; - this.match(SqlParser.LIST); - this.state = 1838; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LR_BRACKET: - { - this.state = 1829; - this.match(SqlParser.LR_BRACKET); - this.state = 1830; - this.expression(0); - this.state = 1831; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.COLUMNS: - { - this.state = 1833; - this.match(SqlParser.COLUMNS); - this.state = 1834; - this.match(SqlParser.LR_BRACKET); - this.state = 1835; - this.uidList(); - this.state = 1836; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public subpartitionFunctionDefinition(): SubpartitionFunctionDefinitionContext { - let _localctx: SubpartitionFunctionDefinitionContext = new SubpartitionFunctionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 102, SqlParser.RULE_subpartitionFunctionDefinition); - let _la: number; - try { - this.state = 1863; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 214, this._ctx) ) { - case 1: - _localctx = new SubPartitionFunctionHashContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1843; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINEAR) { - { - this.state = 1842; - this.match(SqlParser.LINEAR); - } - } - - this.state = 1845; - this.match(SqlParser.HASH); - this.state = 1846; - this.match(SqlParser.LR_BRACKET); - this.state = 1847; - this.expression(0); - this.state = 1848; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 2: - _localctx = new SubPartitionFunctionKeyContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1851; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINEAR) { - { - this.state = 1850; - this.match(SqlParser.LINEAR); - } - } - - this.state = 1853; - this.match(SqlParser.KEY); - this.state = 1857; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALGORITHM) { - { - this.state = 1854; - this.match(SqlParser.ALGORITHM); - this.state = 1855; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 1856; - (_localctx as SubPartitionFunctionKeyContext)._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ONE_DECIMAL || _la === SqlParser.TWO_DECIMAL)) { - (_localctx as SubPartitionFunctionKeyContext)._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 1859; - this.match(SqlParser.LR_BRACKET); - this.state = 1860; - this.uidList(); - this.state = 1861; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionDefinition(): PartitionDefinitionContext { - let _localctx: PartitionDefinitionContext = new PartitionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 104, SqlParser.RULE_partitionDefinition); - let _la: number; - try { - let _alt: number; - this.state = 1996; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 233, this._ctx) ) { - case 1: - _localctx = new PartitionComparisionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 1865; - this.match(SqlParser.PARTITION); - this.state = 1866; - this.uid(); - this.state = 1867; - this.match(SqlParser.VALUES); - this.state = 1868; - this.match(SqlParser.LESS); - this.state = 1869; - this.match(SqlParser.THAN); - this.state = 1870; - this.match(SqlParser.LR_BRACKET); - this.state = 1871; - this.partitionDefinerAtom(); - this.state = 1876; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1872; - this.match(SqlParser.COMMA); - this.state = 1873; - this.partitionDefinerAtom(); - } - } - this.state = 1878; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1879; - this.match(SqlParser.RR_BRACKET); - this.state = 1883; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 1880; - this.partitionOption(); - } - } - this.state = 1885; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1894; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1886; - this.subpartitionDefinition(); - this.state = 1891; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 217, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1887; - this.match(SqlParser.COMMA); - this.state = 1888; - this.subpartitionDefinition(); - } - } - } - this.state = 1893; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 217, this._ctx); - } - } - } - - } - break; - - case 2: - _localctx = new PartitionComparisionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 1896; - this.match(SqlParser.PARTITION); - this.state = 1897; - this.uid(); - this.state = 1898; - this.match(SqlParser.VALUES); - this.state = 1899; - this.match(SqlParser.LESS); - this.state = 1900; - this.match(SqlParser.THAN); - this.state = 1901; - this.partitionDefinerAtom(); - this.state = 1905; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 1902; - this.partitionOption(); - } - } - this.state = 1907; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1916; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1908; - this.subpartitionDefinition(); - this.state = 1913; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 220, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1909; - this.match(SqlParser.COMMA); - this.state = 1910; - this.subpartitionDefinition(); - } - } - } - this.state = 1915; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 220, this._ctx); - } - } - } - - } - break; - - case 3: - _localctx = new PartitionListAtomContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 1918; - this.match(SqlParser.PARTITION); - this.state = 1919; - this.uid(); - this.state = 1920; - this.match(SqlParser.VALUES); - this.state = 1921; - this.match(SqlParser.IN); - this.state = 1922; - this.match(SqlParser.LR_BRACKET); - this.state = 1923; - this.partitionDefinerAtom(); - this.state = 1928; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1924; - this.match(SqlParser.COMMA); - this.state = 1925; - this.partitionDefinerAtom(); - } - } - this.state = 1930; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1931; - this.match(SqlParser.RR_BRACKET); - this.state = 1935; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 1932; - this.partitionOption(); - } - } - this.state = 1937; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1946; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1938; - this.subpartitionDefinition(); - this.state = 1943; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 224, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1939; - this.match(SqlParser.COMMA); - this.state = 1940; - this.subpartitionDefinition(); - } - } - } - this.state = 1945; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 224, this._ctx); - } - } - } - - } - break; - - case 4: - _localctx = new PartitionListVectorContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 1948; - this.match(SqlParser.PARTITION); - this.state = 1949; - this.uid(); - this.state = 1950; - this.match(SqlParser.VALUES); - this.state = 1951; - this.match(SqlParser.IN); - this.state = 1952; - this.match(SqlParser.LR_BRACKET); - this.state = 1953; - this.partitionDefinerVector(); - this.state = 1958; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 1954; - this.match(SqlParser.COMMA); - this.state = 1955; - this.partitionDefinerVector(); - } - } - this.state = 1960; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1961; - this.match(SqlParser.RR_BRACKET); - this.state = 1965; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 1962; - this.partitionOption(); - } - } - this.state = 1967; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1976; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1968; - this.subpartitionDefinition(); - this.state = 1973; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 228, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1969; - this.match(SqlParser.COMMA); - this.state = 1970; - this.subpartitionDefinition(); - } - } - } - this.state = 1975; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 228, this._ctx); - } - } - } - - } - break; - - case 5: - _localctx = new PartitionSimpleContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 1978; - this.match(SqlParser.PARTITION); - this.state = 1979; - this.uid(); - this.state = 1983; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 1980; - this.partitionOption(); - } - } - this.state = 1985; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 1994; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUBPARTITION) { - { - this.state = 1986; - this.subpartitionDefinition(); - this.state = 1991; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 231, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 1987; - this.match(SqlParser.COMMA); - this.state = 1988; - this.subpartitionDefinition(); - } - } - } - this.state = 1993; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 231, this._ctx); - } - } - } - - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionDefinerAtom(): PartitionDefinerAtomContext { - let _localctx: PartitionDefinerAtomContext = new PartitionDefinerAtomContext(this._ctx, this.state); - this.enterRule(_localctx, 106, SqlParser.RULE_partitionDefinerAtom); - try { - this.state = 2001; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 234, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 1998; - this.constant(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 1999; - this.expression(0); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 2000; - this.match(SqlParser.MAXVALUE); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionDefinerVector(): PartitionDefinerVectorContext { - let _localctx: PartitionDefinerVectorContext = new PartitionDefinerVectorContext(this._ctx, this.state); - this.enterRule(_localctx, 108, SqlParser.RULE_partitionDefinerVector); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2003; - this.match(SqlParser.LR_BRACKET); - this.state = 2004; - this.partitionDefinerAtom(); - this.state = 2007; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 2005; - this.match(SqlParser.COMMA); - this.state = 2006; - this.partitionDefinerAtom(); - } - } - this.state = 2009; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.COMMA); - this.state = 2011; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public subpartitionDefinition(): SubpartitionDefinitionContext { - let _localctx: SubpartitionDefinitionContext = new SubpartitionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 110, SqlParser.RULE_subpartitionDefinition); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2013; - this.match(SqlParser.SUBPARTITION); - this.state = 2014; - this.uid(); - this.state = 2018; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.INDEX || _la === SqlParser.COMMENT || _la === SqlParser.DATA || _la === SqlParser.ENGINE || ((((_la - 428)) & ~0x1F) === 0 && ((1 << (_la - 428)) & ((1 << (SqlParser.MAX_ROWS - 428)) | (1 << (SqlParser.MIN_ROWS - 428)) | (1 << (SqlParser.NODEGROUP - 428)))) !== 0) || _la === SqlParser.STORAGE || _la === SqlParser.TABLESPACE) { - { - { - this.state = 2015; - this.partitionOption(); - } - } - this.state = 2020; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public partitionOption(): PartitionOptionContext { - let _localctx: PartitionOptionContext = new PartitionOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 112, SqlParser.RULE_partitionOption); - let _la: number; - try { - this.state = 2066; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ENGINE: - case SqlParser.STORAGE: - _localctx = new PartitionOptionEngineContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 2022; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STORAGE) { - { - this.state = 2021; - this.match(SqlParser.STORAGE); - } - } - - this.state = 2024; - this.match(SqlParser.ENGINE); - this.state = 2026; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2025; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2028; - this.engineName(); - } - break; - case SqlParser.COMMENT: - _localctx = new PartitionOptionCommentContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 2029; - this.match(SqlParser.COMMENT); - this.state = 2031; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2030; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2033; - (_localctx as PartitionOptionCommentContext)._comment = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.DATA: - _localctx = new PartitionOptionDataDirectoryContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 2034; - this.match(SqlParser.DATA); - this.state = 2035; - this.match(SqlParser.DIRECTORY); - this.state = 2037; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2036; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2039; - (_localctx as PartitionOptionDataDirectoryContext)._dataDirectory = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.INDEX: - _localctx = new PartitionOptionIndexDirectoryContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 2040; - this.match(SqlParser.INDEX); - this.state = 2041; - this.match(SqlParser.DIRECTORY); - this.state = 2043; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2042; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2045; - (_localctx as PartitionOptionIndexDirectoryContext)._indexDirectory = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.MAX_ROWS: - _localctx = new PartitionOptionMaxRowsContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 2046; - this.match(SqlParser.MAX_ROWS); - this.state = 2048; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2047; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2050; - (_localctx as PartitionOptionMaxRowsContext)._maxRows = this.decimalLiteral(); - } - break; - case SqlParser.MIN_ROWS: - _localctx = new PartitionOptionMinRowsContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 2051; - this.match(SqlParser.MIN_ROWS); - this.state = 2053; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2052; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2055; - (_localctx as PartitionOptionMinRowsContext)._minRows = this.decimalLiteral(); - } - break; - case SqlParser.TABLESPACE: - _localctx = new PartitionOptionTablespaceContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 2056; - this.match(SqlParser.TABLESPACE); - this.state = 2058; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2057; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2060; - (_localctx as PartitionOptionTablespaceContext)._tablespace = this.uid(); - } - break; - case SqlParser.NODEGROUP: - _localctx = new PartitionOptionNodeGroupContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 2061; - this.match(SqlParser.NODEGROUP); - this.state = 2063; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2062; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2065; - (_localctx as PartitionOptionNodeGroupContext)._nodegroup = this.uid(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterDatabase(): AlterDatabaseContext { - let _localctx: AlterDatabaseContext = new AlterDatabaseContext(this._ctx, this.state); - this.enterRule(_localctx, 114, SqlParser.RULE_alterDatabase); - let _la: number; - try { - this.state = 2086; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 249, this._ctx) ) { - case 1: - _localctx = new AlterSimpleDatabaseContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 2068; - this.match(SqlParser.ALTER); - this.state = 2069; - (_localctx as AlterSimpleDatabaseContext)._dbFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.SCHEMA)) { - (_localctx as AlterSimpleDatabaseContext)._dbFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2071; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 247, this._ctx) ) { - case 1: - { - this.state = 2070; - this.uid(); - } - break; - } - this.state = 2074; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 2073; - this.createDatabaseOption(); - } - } - this.state = 2076; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (((((_la - 22)) & ~0x1F) === 0 && ((1 << (_la - 22)) & ((1 << (SqlParser.CHARACTER - 22)) | (1 << (SqlParser.COLLATE - 22)) | (1 << (SqlParser.DEFAULT - 22)))) !== 0) || _la === SqlParser.CHARSET); - } - break; - - case 2: - _localctx = new AlterUpgradeNameContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 2078; - this.match(SqlParser.ALTER); - this.state = 2079; - (_localctx as AlterUpgradeNameContext)._dbFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.SCHEMA)) { - (_localctx as AlterUpgradeNameContext)._dbFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2080; - this.uid(); - this.state = 2081; - this.match(SqlParser.UPGRADE); - this.state = 2082; - this.match(SqlParser.DATA); - this.state = 2083; - this.match(SqlParser.DIRECTORY); - this.state = 2084; - this.match(SqlParser.NAME); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterEvent(): AlterEventContext { - let _localctx: AlterEventContext = new AlterEventContext(this._ctx, this.state); - this.enterRule(_localctx, 116, SqlParser.RULE_alterEvent); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2088; - this.match(SqlParser.ALTER); - this.state = 2090; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 2089; - this.ownerStatement(); - } - } - - this.state = 2092; - this.match(SqlParser.EVENT); - this.state = 2093; - this.fullId(); - this.state = 2097; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 251, this._ctx) ) { - case 1: - { - this.state = 2094; - this.match(SqlParser.ON); - this.state = 2095; - this.match(SqlParser.SCHEDULE); - this.state = 2096; - this.scheduleExpression(); - } - break; - } - this.state = 2105; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ON) { - { - this.state = 2099; - this.match(SqlParser.ON); - this.state = 2100; - this.match(SqlParser.COMPLETION); - this.state = 2102; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 2101; - this.match(SqlParser.NOT); - } - } - - this.state = 2104; - this.match(SqlParser.PRESERVE); - } - } - - this.state = 2110; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 254, this._ctx) ) { - case 1: - { - this.state = 2107; - this.match(SqlParser.RENAME); - this.state = 2108; - this.match(SqlParser.TO); - this.state = 2109; - this.fullId(); - } - break; - } - this.state = 2113; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DISABLE || _la === SqlParser.ENABLE) { - { - this.state = 2112; - this.enableType(); - } - } - - this.state = 2117; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMENT) { - { - this.state = 2115; - this.match(SqlParser.COMMENT); - this.state = 2116; - this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 2121; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 257, this._ctx) ) { - case 1: - { - this.state = 2119; - this.match(SqlParser.DO); - this.state = 2120; - this.routineBody(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterFunction(): AlterFunctionContext { - let _localctx: AlterFunctionContext = new AlterFunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 118, SqlParser.RULE_alterFunction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2123; - this.match(SqlParser.ALTER); - this.state = 2124; - this.match(SqlParser.FUNCTION); - this.state = 2125; - this.fullId(); - this.state = 2129; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.DETERMINISTIC || ((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (SqlParser.MODIFIES - 100)) | (1 << (SqlParser.NOT - 100)) | (1 << (SqlParser.READS - 100)))) !== 0) || _la === SqlParser.SQL || _la === SqlParser.COMMENT || _la === SqlParser.CONTAINS || _la === SqlParser.LANGUAGE || _la === SqlParser.NO) { - { - { - this.state = 2126; - this.routineOption(); - } - } - this.state = 2131; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterInstance(): AlterInstanceContext { - let _localctx: AlterInstanceContext = new AlterInstanceContext(this._ctx, this.state); - this.enterRule(_localctx, 120, SqlParser.RULE_alterInstance); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2132; - this.match(SqlParser.ALTER); - this.state = 2133; - this.match(SqlParser.INSTANCE); - this.state = 2134; - this.match(SqlParser.ROTATE); - this.state = 2135; - this.match(SqlParser.INNODB); - this.state = 2136; - this.match(SqlParser.MASTER); - this.state = 2137; - this.match(SqlParser.KEY); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterLogfileGroup(): AlterLogfileGroupContext { - let _localctx: AlterLogfileGroupContext = new AlterLogfileGroupContext(this._ctx, this.state); - this.enterRule(_localctx, 122, SqlParser.RULE_alterLogfileGroup); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2139; - this.match(SqlParser.ALTER); - this.state = 2140; - this.match(SqlParser.LOGFILE); - this.state = 2141; - this.match(SqlParser.GROUP); - this.state = 2142; - this.uid(); - this.state = 2143; - this.match(SqlParser.ADD); - this.state = 2144; - this.match(SqlParser.UNDOFILE); - this.state = 2145; - this.match(SqlParser.STRING_LITERAL); - this.state = 2151; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INITIAL_SIZE) { - { - this.state = 2146; - this.match(SqlParser.INITIAL_SIZE); - this.state = 2148; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2147; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2150; - this.fileSizeLiteral(); - } - } - - this.state = 2154; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WAIT) { - { - this.state = 2153; - this.match(SqlParser.WAIT); - } - } - - this.state = 2156; - this.match(SqlParser.ENGINE); - this.state = 2158; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2157; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2160; - this.engineName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterProcedure(): AlterProcedureContext { - let _localctx: AlterProcedureContext = new AlterProcedureContext(this._ctx, this.state); - this.enterRule(_localctx, 124, SqlParser.RULE_alterProcedure); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2162; - this.match(SqlParser.ALTER); - this.state = 2163; - this.match(SqlParser.PROCEDURE); - this.state = 2164; - this.fullId(); - this.state = 2168; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.DETERMINISTIC || ((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & ((1 << (SqlParser.MODIFIES - 100)) | (1 << (SqlParser.NOT - 100)) | (1 << (SqlParser.READS - 100)))) !== 0) || _la === SqlParser.SQL || _la === SqlParser.COMMENT || _la === SqlParser.CONTAINS || _la === SqlParser.LANGUAGE || _la === SqlParser.NO) { - { - { - this.state = 2165; - this.routineOption(); - } - } - this.state = 2170; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterServer(): AlterServerContext { - let _localctx: AlterServerContext = new AlterServerContext(this._ctx, this.state); - this.enterRule(_localctx, 126, SqlParser.RULE_alterServer); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2171; - this.match(SqlParser.ALTER); - this.state = 2172; - this.match(SqlParser.SERVER); - this.state = 2173; - this.uid(); - this.state = 2174; - this.match(SqlParser.OPTIONS); - this.state = 2175; - this.match(SqlParser.LR_BRACKET); - this.state = 2176; - this.serverOption(); - this.state = 2181; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2177; - this.match(SqlParser.COMMA); - this.state = 2178; - this.serverOption(); - } - } - this.state = 2183; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2184; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterTable(): AlterTableContext { - let _localctx: AlterTableContext = new AlterTableContext(this._ctx, this.state); - this.enterRule(_localctx, 128, SqlParser.RULE_alterTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2186; - this.match(SqlParser.ALTER); - this.state = 2188; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OFFLINE || _la === SqlParser.ONLINE) { - { - this.state = 2187; - _localctx._intimeAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.OFFLINE || _la === SqlParser.ONLINE)) { - _localctx._intimeAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2191; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 2190; - this.match(SqlParser.IGNORE); - } - } - - this.state = 2193; - this.match(SqlParser.TABLE); - this.state = 2194; - this.tableName(); - this.state = 2203; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 268, this._ctx) ) { - case 1: - { - this.state = 2195; - this.alterSpecification(); - this.state = 2200; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2196; - this.match(SqlParser.COMMA); - this.state = 2197; - this.alterSpecification(); - } - } - this.state = 2202; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - this.state = 2206; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 2205; - this.partitionDefinitions(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterTablespace(): AlterTablespaceContext { - let _localctx: AlterTablespaceContext = new AlterTablespaceContext(this._ctx, this.state); - this.enterRule(_localctx, 130, SqlParser.RULE_alterTablespace); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2208; - this.match(SqlParser.ALTER); - this.state = 2209; - this.match(SqlParser.TABLESPACE); - this.state = 2210; - this.uid(); - this.state = 2211; - _localctx._objectAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ADD || _la === SqlParser.DROP)) { - _localctx._objectAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2212; - this.match(SqlParser.DATAFILE); - this.state = 2213; - this.match(SqlParser.STRING_LITERAL); - this.state = 2217; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INITIAL_SIZE) { - { - this.state = 2214; - this.match(SqlParser.INITIAL_SIZE); - this.state = 2215; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 2216; - this.fileSizeLiteral(); - } - } - - this.state = 2220; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WAIT) { - { - this.state = 2219; - this.match(SqlParser.WAIT); - } - } - - this.state = 2222; - this.match(SqlParser.ENGINE); - this.state = 2224; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2223; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2226; - this.engineName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterView(): AlterViewContext { - let _localctx: AlterViewContext = new AlterViewContext(this._ctx, this.state); - this.enterRule(_localctx, 132, SqlParser.RULE_alterView); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2228; - this.match(SqlParser.ALTER); - this.state = 2232; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALGORITHM) { - { - this.state = 2229; - this.match(SqlParser.ALGORITHM); - this.state = 2230; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 2231; - _localctx._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.MERGE || _la === SqlParser.TEMPTABLE || _la === SqlParser.UNDEFINED)) { - _localctx._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2235; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFINER) { - { - this.state = 2234; - this.ownerStatement(); - } - } - - this.state = 2240; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SQL) { - { - this.state = 2237; - this.match(SqlParser.SQL); - this.state = 2238; - this.match(SqlParser.SECURITY); - this.state = 2239; - _localctx._secContext = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFINER || _la === SqlParser.INVOKER)) { - _localctx._secContext = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2242; - this.match(SqlParser.VIEW); - this.state = 2243; - this.fullId(); - this.state = 2248; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 2244; - this.match(SqlParser.LR_BRACKET); - this.state = 2245; - this.uidList(); - this.state = 2246; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 2250; - this.match(SqlParser.AS); - this.state = 2251; - this.selectStatement(); - this.state = 2258; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 2252; - this.match(SqlParser.WITH); - this.state = 2254; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CASCADED || _la === SqlParser.LOCAL) { - { - this.state = 2253; - _localctx._checkOpt = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CASCADED || _la === SqlParser.LOCAL)) { - _localctx._checkOpt = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2256; - this.match(SqlParser.CHECK); - this.state = 2257; - this.match(SqlParser.OPTION); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterSpecification(): AlterSpecificationContext { - let _localctx: AlterSpecificationContext = new AlterSpecificationContext(this._ctx, this.state); - this.enterRule(_localctx, 134, SqlParser.RULE_alterSpecification); - let _la: number; - try { - let _alt: number; - this.state = 2623; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 333, this._ctx) ) { - case 1: - _localctx = new AlterByTableOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 2260; - this.tableOption(); - this.state = 2267; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 280, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 2262; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 2261; - this.match(SqlParser.COMMA); - } - } - - this.state = 2264; - this.tableOption(); - } - } - } - this.state = 2269; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 280, this._ctx); - } - } - break; - - case 2: - _localctx = new AlterByAddColumnContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 2270; - this.match(SqlParser.ADD); - this.state = 2272; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2271; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2274; - this.uid(); - this.state = 2275; - this.columnDefinition(); - this.state = 2279; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FIRST: - { - this.state = 2276; - this.match(SqlParser.FIRST); - } - break; - case SqlParser.AFTER: - { - this.state = 2277; - this.match(SqlParser.AFTER); - this.state = 2278; - this.uid(); - } - break; - case SqlParser.EOF: - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PARTITION: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.MINUSMINUS: - case SqlParser.LR_BRACKET: - case SqlParser.COMMA: - case SqlParser.SEMI: - break; - default: - break; - } - } - break; - - case 3: - _localctx = new AlterByAddColumnsContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 2281; - this.match(SqlParser.ADD); - this.state = 2283; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2282; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2285; - this.match(SqlParser.LR_BRACKET); - this.state = 2286; - this.uid(); - this.state = 2287; - this.columnDefinition(); - this.state = 2294; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2288; - this.match(SqlParser.COMMA); - this.state = 2289; - this.uid(); - this.state = 2290; - this.columnDefinition(); - } - } - this.state = 2296; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2297; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 4: - _localctx = new AlterByAddIndexContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 2299; - this.match(SqlParser.ADD); - this.state = 2300; - (_localctx as AlterByAddIndexContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as AlterByAddIndexContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2302; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2301; - this.uid(); - } - } - - this.state = 2305; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 2304; - this.indexType(); - } - } - - this.state = 2307; - this.indexColumnNames(); - this.state = 2311; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 2308; - this.indexOption(); - } - } - this.state = 2313; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 5: - _localctx = new AlterByAddPrimaryKeyContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 2314; - this.match(SqlParser.ADD); - this.state = 2319; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 2315; - this.match(SqlParser.CONSTRAINT); - this.state = 2317; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2316; - (_localctx as AlterByAddPrimaryKeyContext)._name = this.uid(); - } - } - - } - } - - this.state = 2321; - this.match(SqlParser.PRIMARY); - this.state = 2322; - this.match(SqlParser.KEY); - this.state = 2324; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2323; - (_localctx as AlterByAddPrimaryKeyContext)._index = this.uid(); - } - } - - this.state = 2327; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 2326; - this.indexType(); - } - } - - this.state = 2329; - this.indexColumnNames(); - this.state = 2333; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 2330; - this.indexOption(); - } - } - this.state = 2335; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 6: - _localctx = new AlterByAddUniqueKeyContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 2336; - this.match(SqlParser.ADD); - this.state = 2341; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 2337; - this.match(SqlParser.CONSTRAINT); - this.state = 2339; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2338; - (_localctx as AlterByAddUniqueKeyContext)._name = this.uid(); - } - } - - } - } - - this.state = 2343; - this.match(SqlParser.UNIQUE); - this.state = 2345; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 2344; - (_localctx as AlterByAddUniqueKeyContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as AlterByAddUniqueKeyContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2348; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2347; - (_localctx as AlterByAddUniqueKeyContext)._indexName = this.uid(); - } - } - - this.state = 2351; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 2350; - this.indexType(); - } - } - - this.state = 2353; - this.indexColumnNames(); - this.state = 2357; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 2354; - this.indexOption(); - } - } - this.state = 2359; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 7: - _localctx = new AlterByAddSpecialIndexContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 2360; - this.match(SqlParser.ADD); - this.state = 2361; - (_localctx as AlterByAddSpecialIndexContext)._keyType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FULLTEXT || _la === SqlParser.SPATIAL)) { - (_localctx as AlterByAddSpecialIndexContext)._keyType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2363; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 2362; - (_localctx as AlterByAddSpecialIndexContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as AlterByAddSpecialIndexContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2366; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2365; - this.uid(); - } - } - - this.state = 2368; - this.indexColumnNames(); - this.state = 2372; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.USING || _la === SqlParser.WITH || _la === SqlParser.COMMENT || _la === SqlParser.INVISIBLE || _la === SqlParser.KEY_BLOCK_SIZE || _la === SqlParser.VISIBLE) { - { - { - this.state = 2369; - this.indexOption(); - } - } - this.state = 2374; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 8: - _localctx = new AlterByAddForeignKeyContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 2375; - this.match(SqlParser.ADD); - this.state = 2380; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 2376; - this.match(SqlParser.CONSTRAINT); - this.state = 2378; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2377; - (_localctx as AlterByAddForeignKeyContext)._name = this.uid(); - } - } - - } - } - - this.state = 2382; - this.match(SqlParser.FOREIGN); - this.state = 2383; - this.match(SqlParser.KEY); - this.state = 2385; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2384; - (_localctx as AlterByAddForeignKeyContext)._indexName = this.uid(); - } - } - - this.state = 2387; - this.indexColumnNames(); - this.state = 2388; - this.referenceDefinition(); - } - break; - - case 9: - _localctx = new AlterByAddCheckTableConstraintContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 2390; - this.match(SqlParser.ADD); - this.state = 2395; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONSTRAINT) { - { - this.state = 2391; - this.match(SqlParser.CONSTRAINT); - this.state = 2393; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2392; - (_localctx as AlterByAddCheckTableConstraintContext)._name = this.uid(); - } - } - - } - } - - this.state = 2397; - this.match(SqlParser.CHECK); - this.state = 2398; - this.match(SqlParser.LR_BRACKET); - this.state = 2399; - this.expression(0); - this.state = 2400; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 10: - _localctx = new AlterBySetAlgorithmContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 2402; - this.match(SqlParser.ALGORITHM); - this.state = 2404; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2403; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2406; - (_localctx as AlterBySetAlgorithmContext)._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.COPY || _la === SqlParser.INPLACE)) { - (_localctx as AlterBySetAlgorithmContext)._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 11: - _localctx = new AlterByChangeDefaultContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 2407; - this.match(SqlParser.ALTER); - this.state = 2409; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2408; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2411; - this.uid(); - this.state = 2417; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SET: - { - this.state = 2412; - this.match(SqlParser.SET); - this.state = 2413; - this.match(SqlParser.DEFAULT); - this.state = 2414; - this.defaultValue(); - } - break; - case SqlParser.DROP: - { - this.state = 2415; - this.match(SqlParser.DROP); - this.state = 2416; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 12: - _localctx = new AlterByChangeColumnContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 2419; - this.match(SqlParser.CHANGE); - this.state = 2421; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2420; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2423; - (_localctx as AlterByChangeColumnContext)._oldColumn = this.uid(); - this.state = 2424; - (_localctx as AlterByChangeColumnContext)._newColumn = this.uid(); - this.state = 2425; - this.columnDefinition(); - this.state = 2429; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FIRST: - { - this.state = 2426; - this.match(SqlParser.FIRST); - } - break; - case SqlParser.AFTER: - { - this.state = 2427; - this.match(SqlParser.AFTER); - this.state = 2428; - (_localctx as AlterByChangeColumnContext)._afterColumn = this.uid(); - } - break; - case SqlParser.EOF: - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PARTITION: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.MINUSMINUS: - case SqlParser.LR_BRACKET: - case SqlParser.COMMA: - case SqlParser.SEMI: - break; - default: - break; - } - } - break; - - case 13: - _localctx = new AlterByRenameColumnContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 2431; - this.match(SqlParser.RENAME); - this.state = 2432; - this.match(SqlParser.COLUMN); - this.state = 2433; - (_localctx as AlterByRenameColumnContext)._oldColumn = this.uid(); - this.state = 2434; - this.match(SqlParser.TO); - this.state = 2435; - (_localctx as AlterByRenameColumnContext)._newColumn = this.uid(); - } - break; - - case 14: - _localctx = new AlterByLockContext(_localctx); - this.enterOuterAlt(_localctx, 14); - { - this.state = 2437; - this.match(SqlParser.LOCK); - this.state = 2439; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2438; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2441; - (_localctx as AlterByLockContext)._lockType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.EXCLUSIVE || _la === SqlParser.NONE || _la === SqlParser.SHARED)) { - (_localctx as AlterByLockContext)._lockType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 15: - _localctx = new AlterByModifyColumnContext(_localctx); - this.enterOuterAlt(_localctx, 15); - { - this.state = 2442; - this.match(SqlParser.MODIFY); - this.state = 2444; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2443; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2446; - this.uid(); - this.state = 2447; - this.columnDefinition(); - this.state = 2451; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FIRST: - { - this.state = 2448; - this.match(SqlParser.FIRST); - } - break; - case SqlParser.AFTER: - { - this.state = 2449; - this.match(SqlParser.AFTER); - this.state = 2450; - this.uid(); - } - break; - case SqlParser.EOF: - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PARTITION: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.MINUSMINUS: - case SqlParser.LR_BRACKET: - case SqlParser.COMMA: - case SqlParser.SEMI: - break; - default: - break; - } - } - break; - - case 16: - _localctx = new AlterByDropColumnContext(_localctx); - this.enterOuterAlt(_localctx, 16); - { - this.state = 2453; - this.match(SqlParser.DROP); - this.state = 2455; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMN) { - { - this.state = 2454; - this.match(SqlParser.COLUMN); - } - } - - this.state = 2457; - this.uid(); - this.state = 2459; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.RESTRICT) { - { - this.state = 2458; - this.match(SqlParser.RESTRICT); - } - } - - } - break; - - case 17: - _localctx = new AlterByDropPrimaryKeyContext(_localctx); - this.enterOuterAlt(_localctx, 17); - { - this.state = 2461; - this.match(SqlParser.DROP); - this.state = 2462; - this.match(SqlParser.PRIMARY); - this.state = 2463; - this.match(SqlParser.KEY); - } - break; - - case 18: - _localctx = new AlterByRenameIndexContext(_localctx); - this.enterOuterAlt(_localctx, 18); - { - this.state = 2464; - this.match(SqlParser.RENAME); - this.state = 2465; - (_localctx as AlterByRenameIndexContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as AlterByRenameIndexContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2466; - this.uid(); - this.state = 2467; - this.match(SqlParser.TO); - this.state = 2468; - this.uid(); - } - break; - - case 19: - _localctx = new AlterByAlterIndexVisibilityContext(_localctx); - this.enterOuterAlt(_localctx, 19); - { - this.state = 2470; - this.match(SqlParser.ALTER); - this.state = 2471; - this.match(SqlParser.INDEX); - this.state = 2472; - this.uid(); - this.state = 2473; - _la = this._input.LA(1); - if (!(_la === SqlParser.INVISIBLE || _la === SqlParser.VISIBLE)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 20: - _localctx = new AlterByDropIndexContext(_localctx); - this.enterOuterAlt(_localctx, 20); - { - this.state = 2475; - this.match(SqlParser.DROP); - this.state = 2476; - (_localctx as AlterByDropIndexContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - (_localctx as AlterByDropIndexContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2477; - this.uid(); - } - break; - - case 21: - _localctx = new AlterByDropForeignKeyContext(_localctx); - this.enterOuterAlt(_localctx, 21); - { - this.state = 2478; - this.match(SqlParser.DROP); - this.state = 2479; - this.match(SqlParser.FOREIGN); - this.state = 2480; - this.match(SqlParser.KEY); - this.state = 2481; - this.uid(); - } - break; - - case 22: - _localctx = new AlterByDisableKeysContext(_localctx); - this.enterOuterAlt(_localctx, 22); - { - this.state = 2482; - this.match(SqlParser.DISABLE); - this.state = 2483; - this.match(SqlParser.KEYS); - } - break; - - case 23: - _localctx = new AlterByEnableKeysContext(_localctx); - this.enterOuterAlt(_localctx, 23); - { - this.state = 2484; - this.match(SqlParser.ENABLE); - this.state = 2485; - this.match(SqlParser.KEYS); - } - break; - - case 24: - _localctx = new AlterByRenameContext(_localctx); - this.enterOuterAlt(_localctx, 24); - { - this.state = 2486; - this.match(SqlParser.RENAME); - this.state = 2488; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS || _la === SqlParser.TO) { - { - this.state = 2487; - (_localctx as AlterByRenameContext)._renameFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.AS || _la === SqlParser.TO)) { - (_localctx as AlterByRenameContext)._renameFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2492; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 318, this._ctx) ) { - case 1: - { - this.state = 2490; - this.uid(); - } - break; - - case 2: - { - this.state = 2491; - this.fullId(); - } - break; - } - } - break; - - case 25: - _localctx = new AlterByOrderContext(_localctx); - this.enterOuterAlt(_localctx, 25); - { - this.state = 2494; - this.match(SqlParser.ORDER); - this.state = 2495; - this.match(SqlParser.BY); - this.state = 2496; - this.uidList(); - } - break; - - case 26: - _localctx = new AlterByConvertCharsetContext(_localctx); - this.enterOuterAlt(_localctx, 26); - { - this.state = 2497; - this.match(SqlParser.CONVERT); - this.state = 2498; - this.match(SqlParser.TO); - this.state = 2499; - this.match(SqlParser.CHARACTER); - this.state = 2500; - this.match(SqlParser.SET); - this.state = 2501; - this.charsetName(); - this.state = 2504; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLLATE) { - { - this.state = 2502; - this.match(SqlParser.COLLATE); - this.state = 2503; - this.collationName(); - } - } - - } - break; - - case 27: - _localctx = new AlterByDefaultCharsetContext(_localctx); - this.enterOuterAlt(_localctx, 27); - { - this.state = 2507; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 2506; - this.match(SqlParser.DEFAULT); - } - } - - this.state = 2509; - this.match(SqlParser.CHARACTER); - this.state = 2510; - this.match(SqlParser.SET); - this.state = 2511; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 2512; - this.charsetName(); - this.state = 2516; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLLATE) { - { - this.state = 2513; - this.match(SqlParser.COLLATE); - this.state = 2514; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 2515; - this.collationName(); - } - } - - } - break; - - case 28: - _localctx = new AlterByDiscardTablespaceContext(_localctx); - this.enterOuterAlt(_localctx, 28); - { - this.state = 2518; - this.match(SqlParser.DISCARD); - this.state = 2519; - this.match(SqlParser.TABLESPACE); - } - break; - - case 29: - _localctx = new AlterByImportTablespaceContext(_localctx); - this.enterOuterAlt(_localctx, 29); - { - this.state = 2520; - this.match(SqlParser.IMPORT); - this.state = 2521; - this.match(SqlParser.TABLESPACE); - } - break; - - case 30: - _localctx = new AlterByForceContext(_localctx); - this.enterOuterAlt(_localctx, 30); - { - this.state = 2522; - this.match(SqlParser.FORCE); - } - break; - - case 31: - _localctx = new AlterByValidateContext(_localctx); - this.enterOuterAlt(_localctx, 31); - { - this.state = 2523; - (_localctx as AlterByValidateContext)._validationFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.WITH || _la === SqlParser.WITHOUT)) { - (_localctx as AlterByValidateContext)._validationFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2524; - this.match(SqlParser.VALIDATION); - } - break; - - case 32: - _localctx = new AlterByAddPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 32); - { - this.state = 2525; - this.match(SqlParser.ADD); - this.state = 2526; - this.match(SqlParser.PARTITION); - this.state = 2527; - this.match(SqlParser.LR_BRACKET); - this.state = 2528; - this.partitionDefinition(); - this.state = 2533; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2529; - this.match(SqlParser.COMMA); - this.state = 2530; - this.partitionDefinition(); - } - } - this.state = 2535; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2536; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 33: - _localctx = new AlterByDropPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 33); - { - this.state = 2538; - this.match(SqlParser.DROP); - this.state = 2539; - this.match(SqlParser.PARTITION); - this.state = 2540; - this.uidList(); - } - break; - - case 34: - _localctx = new AlterByDiscardPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 34); - { - this.state = 2541; - this.match(SqlParser.DISCARD); - this.state = 2542; - this.match(SqlParser.PARTITION); - this.state = 2545; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2543; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2544; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 2547; - this.match(SqlParser.TABLESPACE); - } - break; - - case 35: - _localctx = new AlterByImportPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 35); - { - this.state = 2548; - this.match(SqlParser.IMPORT); - this.state = 2549; - this.match(SqlParser.PARTITION); - this.state = 2552; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2550; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2551; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 2554; - this.match(SqlParser.TABLESPACE); - } - break; - - case 36: - _localctx = new AlterByTruncatePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 36); - { - this.state = 2555; - this.match(SqlParser.TRUNCATE); - this.state = 2556; - this.match(SqlParser.PARTITION); - this.state = 2559; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2557; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2558; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 37: - _localctx = new AlterByCoalescePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 37); - { - this.state = 2561; - this.match(SqlParser.COALESCE); - this.state = 2562; - this.match(SqlParser.PARTITION); - this.state = 2563; - this.decimalLiteral(); - } - break; - - case 38: - _localctx = new AlterByReorganizePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 38); - { - this.state = 2564; - this.match(SqlParser.REORGANIZE); - this.state = 2565; - this.match(SqlParser.PARTITION); - this.state = 2566; - this.uidList(); - this.state = 2567; - this.match(SqlParser.INTO); - this.state = 2568; - this.match(SqlParser.LR_BRACKET); - this.state = 2569; - this.partitionDefinition(); - this.state = 2574; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2570; - this.match(SqlParser.COMMA); - this.state = 2571; - this.partitionDefinition(); - } - } - this.state = 2576; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2577; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 39: - _localctx = new AlterByExchangePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 39); - { - this.state = 2579; - this.match(SqlParser.EXCHANGE); - this.state = 2580; - this.match(SqlParser.PARTITION); - this.state = 2581; - this.uid(); - this.state = 2582; - this.match(SqlParser.WITH); - this.state = 2583; - this.match(SqlParser.TABLE); - this.state = 2584; - this.tableName(); - this.state = 2587; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH || _la === SqlParser.WITHOUT) { - { - this.state = 2585; - (_localctx as AlterByExchangePartitionContext)._validationFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.WITH || _la === SqlParser.WITHOUT)) { - (_localctx as AlterByExchangePartitionContext)._validationFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2586; - this.match(SqlParser.VALIDATION); - } - } - - } - break; - - case 40: - _localctx = new AlterByAnalyzePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 40); - { - this.state = 2589; - this.match(SqlParser.ANALYZE); - this.state = 2590; - this.match(SqlParser.PARTITION); - this.state = 2593; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2591; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2592; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 41: - _localctx = new AlterByCheckPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 41); - { - this.state = 2595; - this.match(SqlParser.CHECK); - this.state = 2596; - this.match(SqlParser.PARTITION); - this.state = 2599; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2597; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2598; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 42: - _localctx = new AlterByOptimizePartitionContext(_localctx); - this.enterOuterAlt(_localctx, 42); - { - this.state = 2601; - this.match(SqlParser.OPTIMIZE); - this.state = 2602; - this.match(SqlParser.PARTITION); - this.state = 2605; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2603; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2604; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 43: - _localctx = new AlterByRebuildPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 43); - { - this.state = 2607; - this.match(SqlParser.REBUILD); - this.state = 2608; - this.match(SqlParser.PARTITION); - this.state = 2611; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2609; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2610; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 44: - _localctx = new AlterByRepairPartitionContext(_localctx); - this.enterOuterAlt(_localctx, 44); - { - this.state = 2613; - this.match(SqlParser.REPAIR); - this.state = 2614; - this.match(SqlParser.PARTITION); - this.state = 2617; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 2615; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 2616; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 45: - _localctx = new AlterByRemovePartitioningContext(_localctx); - this.enterOuterAlt(_localctx, 45); - { - this.state = 2619; - this.match(SqlParser.REMOVE); - this.state = 2620; - this.match(SqlParser.PARTITIONING); - } - break; - - case 46: - _localctx = new AlterByUpgradePartitioningContext(_localctx); - this.enterOuterAlt(_localctx, 46); - { - this.state = 2621; - this.match(SqlParser.UPGRADE); - this.state = 2622; - this.match(SqlParser.PARTITIONING); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropDatabase(): DropDatabaseContext { - let _localctx: DropDatabaseContext = new DropDatabaseContext(this._ctx, this.state); - this.enterRule(_localctx, 136, SqlParser.RULE_dropDatabase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2625; - this.match(SqlParser.DROP); - this.state = 2626; - _localctx._dbFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.SCHEMA)) { - _localctx._dbFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2628; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2627; - this.ifExists(); - } - } - - this.state = 2630; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropEvent(): DropEventContext { - let _localctx: DropEventContext = new DropEventContext(this._ctx, this.state); - this.enterRule(_localctx, 138, SqlParser.RULE_dropEvent); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2632; - this.match(SqlParser.DROP); - this.state = 2633; - this.match(SqlParser.EVENT); - this.state = 2635; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2634; - this.ifExists(); - } - } - - this.state = 2637; - this.fullId(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropIndex(): DropIndexContext { - let _localctx: DropIndexContext = new DropIndexContext(this._ctx, this.state); - this.enterRule(_localctx, 140, SqlParser.RULE_dropIndex); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 2639; - this.match(SqlParser.DROP); - this.state = 2640; - this.match(SqlParser.INDEX); - this.state = 2642; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 336, this._ctx) ) { - case 1: - { - this.state = 2641; - _localctx._intimeAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.OFFLINE || _la === SqlParser.ONLINE)) { - _localctx._intimeAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 2644; - this.uid(); - this.state = 2645; - this.match(SqlParser.ON); - this.state = 2646; - this.tableName(); - this.state = 2659; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 340, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - this.state = 2657; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALGORITHM: - { - this.state = 2647; - this.match(SqlParser.ALGORITHM); - this.state = 2649; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2648; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2651; - _localctx._algType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.COPY || _la === SqlParser.INPLACE)) { - _localctx._algType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.LOCK: - { - this.state = 2652; - this.match(SqlParser.LOCK); - this.state = 2654; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2653; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2656; - _localctx._lockType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DEFAULT || _la === SqlParser.EXCLUSIVE || _la === SqlParser.NONE || _la === SqlParser.SHARED)) { - _localctx._lockType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - this.state = 2661; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 340, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropLogfileGroup(): DropLogfileGroupContext { - let _localctx: DropLogfileGroupContext = new DropLogfileGroupContext(this._ctx, this.state); - this.enterRule(_localctx, 142, SqlParser.RULE_dropLogfileGroup); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2662; - this.match(SqlParser.DROP); - this.state = 2663; - this.match(SqlParser.LOGFILE); - this.state = 2664; - this.match(SqlParser.GROUP); - this.state = 2665; - this.uid(); - this.state = 2666; - this.match(SqlParser.ENGINE); - this.state = 2667; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 2668; - this.engineName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropProcedure(): DropProcedureContext { - let _localctx: DropProcedureContext = new DropProcedureContext(this._ctx, this.state); - this.enterRule(_localctx, 144, SqlParser.RULE_dropProcedure); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2670; - this.match(SqlParser.DROP); - this.state = 2671; - this.match(SqlParser.PROCEDURE); - this.state = 2673; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2672; - this.ifExists(); - } - } - - this.state = 2675; - this.fullId(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropFunction(): DropFunctionContext { - let _localctx: DropFunctionContext = new DropFunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 146, SqlParser.RULE_dropFunction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2677; - this.match(SqlParser.DROP); - this.state = 2678; - this.match(SqlParser.FUNCTION); - this.state = 2680; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2679; - this.ifExists(); - } - } - - this.state = 2682; - this.fullId(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropServer(): DropServerContext { - let _localctx: DropServerContext = new DropServerContext(this._ctx, this.state); - this.enterRule(_localctx, 148, SqlParser.RULE_dropServer); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2684; - this.match(SqlParser.DROP); - this.state = 2685; - this.match(SqlParser.SERVER); - this.state = 2687; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2686; - this.ifExists(); - } - } - - this.state = 2689; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropTable(): DropTableContext { - let _localctx: DropTableContext = new DropTableContext(this._ctx, this.state); - this.enterRule(_localctx, 150, SqlParser.RULE_dropTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2691; - this.match(SqlParser.DROP); - this.state = 2693; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.TEMPORARY) { - { - this.state = 2692; - this.match(SqlParser.TEMPORARY); - } - } - - this.state = 2695; - this.match(SqlParser.TABLE); - this.state = 2697; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2696; - this.ifExists(); - } - } - - this.state = 2699; - this.tables(); - this.state = 2701; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CASCADE || _la === SqlParser.RESTRICT) { - { - this.state = 2700; - _localctx._dropType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CASCADE || _la === SqlParser.RESTRICT)) { - _localctx._dropType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropTablespace(): DropTablespaceContext { - let _localctx: DropTablespaceContext = new DropTablespaceContext(this._ctx, this.state); - this.enterRule(_localctx, 152, SqlParser.RULE_dropTablespace); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2703; - this.match(SqlParser.DROP); - this.state = 2704; - this.match(SqlParser.TABLESPACE); - this.state = 2705; - this.uid(); - this.state = 2711; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ENGINE) { - { - this.state = 2706; - this.match(SqlParser.ENGINE); - this.state = 2708; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EQUAL_SYMBOL) { - { - this.state = 2707; - this.match(SqlParser.EQUAL_SYMBOL); - } - } - - this.state = 2710; - this.engineName(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropTrigger(): DropTriggerContext { - let _localctx: DropTriggerContext = new DropTriggerContext(this._ctx, this.state); - this.enterRule(_localctx, 154, SqlParser.RULE_dropTrigger); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2713; - this.match(SqlParser.DROP); - this.state = 2714; - this.match(SqlParser.TRIGGER); - this.state = 2716; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2715; - this.ifExists(); - } - } - - this.state = 2718; - this.fullId(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropView(): DropViewContext { - let _localctx: DropViewContext = new DropViewContext(this._ctx, this.state); - this.enterRule(_localctx, 156, SqlParser.RULE_dropView); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2720; - this.match(SqlParser.DROP); - this.state = 2721; - this.match(SqlParser.VIEW); - this.state = 2723; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 2722; - this.ifExists(); - } - } - - this.state = 2725; - this.fullId(); - this.state = 2730; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2726; - this.match(SqlParser.COMMA); - this.state = 2727; - this.fullId(); - } - } - this.state = 2732; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2734; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CASCADE || _la === SqlParser.RESTRICT) { - { - this.state = 2733; - _localctx._dropType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CASCADE || _la === SqlParser.RESTRICT)) { - _localctx._dropType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public renameTable(): RenameTableContext { - let _localctx: RenameTableContext = new RenameTableContext(this._ctx, this.state); - this.enterRule(_localctx, 158, SqlParser.RULE_renameTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2736; - this.match(SqlParser.RENAME); - this.state = 2737; - this.match(SqlParser.TABLE); - this.state = 2738; - this.renameTableClause(); - this.state = 2743; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2739; - this.match(SqlParser.COMMA); - this.state = 2740; - this.renameTableClause(); - } - } - this.state = 2745; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public renameTableClause(): RenameTableClauseContext { - let _localctx: RenameTableClauseContext = new RenameTableClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 160, SqlParser.RULE_renameTableClause); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2746; - this.tableName(); - this.state = 2747; - this.match(SqlParser.TO); - this.state = 2748; - this.tableName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public truncateTable(): TruncateTableContext { - let _localctx: TruncateTableContext = new TruncateTableContext(this._ctx, this.state); - this.enterRule(_localctx, 162, SqlParser.RULE_truncateTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2750; - this.match(SqlParser.TRUNCATE); - this.state = 2752; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.TABLE) { - { - this.state = 2751; - this.match(SqlParser.TABLE); - } - } - - this.state = 2754; - this.tableName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public callStatement(): CallStatementContext { - let _localctx: CallStatementContext = new CallStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 164, SqlParser.RULE_callStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2756; - this.match(SqlParser.CALL); - this.state = 2757; - this.fullId(); - this.state = 2764; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 356, this._ctx) ) { - case 1: - { - this.state = 2758; - this.match(SqlParser.LR_BRACKET); - this.state = 2761; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 355, this._ctx) ) { - case 1: - { - this.state = 2759; - this.constants(); - } - break; - - case 2: - { - this.state = 2760; - this.expressions(); - } - break; - } - this.state = 2763; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public deleteStatement(): DeleteStatementContext { - let _localctx: DeleteStatementContext = new DeleteStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 166, SqlParser.RULE_deleteStatement); - try { - this.state = 2768; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 357, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 2766; - this.singleDeleteStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 2767; - this.multipleDeleteStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public doStatement(): DoStatementContext { - let _localctx: DoStatementContext = new DoStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 168, SqlParser.RULE_doStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2770; - this.match(SqlParser.DO); - this.state = 2771; - this.expressions(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerStatement(): HandlerStatementContext { - let _localctx: HandlerStatementContext = new HandlerStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 170, SqlParser.RULE_handlerStatement); - try { - this.state = 2777; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 358, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 2773; - this.handlerOpenStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 2774; - this.handlerReadIndexStatement(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 2775; - this.handlerReadStatement(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 2776; - this.handlerCloseStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public insertStatement(): InsertStatementContext { - let _localctx: InsertStatementContext = new InsertStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 172, SqlParser.RULE_insertStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2779; - this.match(SqlParser.INSERT); - this.state = 2781; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DELAYED || _la === SqlParser.HIGH_PRIORITY || _la === SqlParser.LOW_PRIORITY) { - { - this.state = 2780; - _localctx._priority = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DELAYED || _la === SqlParser.HIGH_PRIORITY || _la === SqlParser.LOW_PRIORITY)) { - _localctx._priority = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2784; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 2783; - this.match(SqlParser.IGNORE); - } - } - - this.state = 2787; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INTO) { - { - this.state = 2786; - this.match(SqlParser.INTO); - } - } - - this.state = 2789; - this.tableName(); - this.state = 2796; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 2790; - this.match(SqlParser.PARTITION); - this.state = 2791; - this.match(SqlParser.LR_BRACKET); - this.state = 2793; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 2792; - _localctx._partitions = this.uidList(); - } - } - - this.state = 2795; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 2814; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - case SqlParser.VALUES: - case SqlParser.VALUE: - case SqlParser.LR_BRACKET: - { - this.state = 2802; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 364, this._ctx) ) { - case 1: - { - this.state = 2798; - this.match(SqlParser.LR_BRACKET); - this.state = 2799; - _localctx._columns = this.uidList(); - this.state = 2800; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 2804; - this.insertStatementValue(); - } - break; - case SqlParser.SET: - { - this.state = 2805; - this.match(SqlParser.SET); - this.state = 2806; - _localctx._setFirst = this.updatedElement(); - this.state = 2811; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2807; - this.match(SqlParser.COMMA); - this.state = 2808; - _localctx._updatedElement = this.updatedElement(); - _localctx._setElements.push(_localctx._updatedElement); - } - } - this.state = 2813; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 2828; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ON) { - { - this.state = 2816; - this.match(SqlParser.ON); - this.state = 2817; - this.match(SqlParser.DUPLICATE); - this.state = 2818; - this.match(SqlParser.KEY); - this.state = 2819; - this.match(SqlParser.UPDATE); - this.state = 2820; - _localctx._duplicatedFirst = this.updatedElement(); - this.state = 2825; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2821; - this.match(SqlParser.COMMA); - this.state = 2822; - _localctx._updatedElement = this.updatedElement(); - _localctx._duplicatedElements.push(_localctx._updatedElement); - } - } - this.state = 2827; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public loadDataStatement(): LoadDataStatementContext { - let _localctx: LoadDataStatementContext = new LoadDataStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 174, SqlParser.RULE_loadDataStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2830; - this.match(SqlParser.LOAD); - this.state = 2831; - this.match(SqlParser.DATA); - this.state = 2833; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY || _la === SqlParser.CONCURRENT) { - { - this.state = 2832; - _localctx._priority = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.LOW_PRIORITY || _la === SqlParser.CONCURRENT)) { - _localctx._priority = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2836; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOCAL) { - { - this.state = 2835; - this.match(SqlParser.LOCAL); - } - } - - this.state = 2838; - this.match(SqlParser.INFILE); - this.state = 2839; - _localctx._filename = this.match(SqlParser.STRING_LITERAL); - this.state = 2841; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE || _la === SqlParser.REPLACE) { - { - this.state = 2840; - _localctx._violation = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.IGNORE || _la === SqlParser.REPLACE)) { - _localctx._violation = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2843; - this.match(SqlParser.INTO); - this.state = 2844; - this.match(SqlParser.TABLE); - this.state = 2845; - this.tableName(); - this.state = 2851; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 2846; - this.match(SqlParser.PARTITION); - this.state = 2847; - this.match(SqlParser.LR_BRACKET); - this.state = 2848; - this.uidList(); - this.state = 2849; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 2856; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CHARACTER) { - { - this.state = 2853; - this.match(SqlParser.CHARACTER); - this.state = 2854; - this.match(SqlParser.SET); - this.state = 2855; - _localctx._charset = this.charsetName(); - } - } - - this.state = 2864; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLUMNS || _la === SqlParser.FIELDS) { - { - this.state = 2858; - _localctx._fieldsFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.COLUMNS || _la === SqlParser.FIELDS)) { - _localctx._fieldsFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 2860; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 2859; - this.selectFieldsInto(); - } - } - this.state = 2862; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.ENCLOSED || _la === SqlParser.ESCAPED || _la === SqlParser.OPTIONALLY || _la === SqlParser.TERMINATED); - } - } - - this.state = 2872; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINES) { - { - this.state = 2866; - this.match(SqlParser.LINES); - this.state = 2868; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 2867; - this.selectLinesInto(); - } - } - this.state = 2870; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.STARTING || _la === SqlParser.TERMINATED); - } - } - - this.state = 2878; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 2874; - this.match(SqlParser.IGNORE); - this.state = 2875; - this.decimalLiteral(); - this.state = 2876; - _localctx._linesFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.LINES || _la === SqlParser.ROWS)) { - _localctx._linesFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2891; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 380, this._ctx) ) { - case 1: - { - this.state = 2880; - this.match(SqlParser.LR_BRACKET); - this.state = 2881; - this.assignmentField(); - this.state = 2886; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2882; - this.match(SqlParser.COMMA); - this.state = 2883; - this.assignmentField(); - } - } - this.state = 2888; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2889; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 2902; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 382, this._ctx) ) { - case 1: - { - this.state = 2893; - this.match(SqlParser.SET); - this.state = 2894; - this.updatedElement(); - this.state = 2899; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2895; - this.match(SqlParser.COMMA); - this.state = 2896; - this.updatedElement(); - } - } - this.state = 2901; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public loadXmlStatement(): LoadXmlStatementContext { - let _localctx: LoadXmlStatementContext = new LoadXmlStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 176, SqlParser.RULE_loadXmlStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2904; - this.match(SqlParser.LOAD); - this.state = 2905; - this.match(SqlParser.XML); - this.state = 2907; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY || _la === SqlParser.CONCURRENT) { - { - this.state = 2906; - _localctx._priority = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.LOW_PRIORITY || _la === SqlParser.CONCURRENT)) { - _localctx._priority = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2910; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOCAL) { - { - this.state = 2909; - this.match(SqlParser.LOCAL); - } - } - - this.state = 2912; - this.match(SqlParser.INFILE); - this.state = 2913; - _localctx._filename = this.match(SqlParser.STRING_LITERAL); - this.state = 2915; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE || _la === SqlParser.REPLACE) { - { - this.state = 2914; - _localctx._violation = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.IGNORE || _la === SqlParser.REPLACE)) { - _localctx._violation = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2917; - this.match(SqlParser.INTO); - this.state = 2918; - this.match(SqlParser.TABLE); - this.state = 2919; - this.tableName(); - this.state = 2923; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CHARACTER) { - { - this.state = 2920; - this.match(SqlParser.CHARACTER); - this.state = 2921; - this.match(SqlParser.SET); - this.state = 2922; - _localctx._charset = this.charsetName(); - } - } - - this.state = 2931; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ROWS) { - { - this.state = 2925; - this.match(SqlParser.ROWS); - this.state = 2926; - this.match(SqlParser.IDENTIFIED); - this.state = 2927; - this.match(SqlParser.BY); - this.state = 2928; - this.match(SqlParser.LESS_SYMBOL); - this.state = 2929; - _localctx._tag = this.match(SqlParser.STRING_LITERAL); - this.state = 2930; - this.match(SqlParser.GREATER_SYMBOL); - } - } - - this.state = 2937; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 2933; - this.match(SqlParser.IGNORE); - this.state = 2934; - this.decimalLiteral(); - this.state = 2935; - _localctx._linesFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.LINES || _la === SqlParser.ROWS)) { - _localctx._linesFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2950; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 390, this._ctx) ) { - case 1: - { - this.state = 2939; - this.match(SqlParser.LR_BRACKET); - this.state = 2940; - this.assignmentField(); - this.state = 2945; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2941; - this.match(SqlParser.COMMA); - this.state = 2942; - this.assignmentField(); - } - } - this.state = 2947; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 2948; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 2961; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 392, this._ctx) ) { - case 1: - { - this.state = 2952; - this.match(SqlParser.SET); - this.state = 2953; - this.updatedElement(); - this.state = 2958; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2954; - this.match(SqlParser.COMMA); - this.state = 2955; - this.updatedElement(); - } - } - this.state = 2960; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public replaceStatement(): ReplaceStatementContext { - let _localctx: ReplaceStatementContext = new ReplaceStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 178, SqlParser.RULE_replaceStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 2963; - this.match(SqlParser.REPLACE); - this.state = 2965; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DELAYED || _la === SqlParser.LOW_PRIORITY) { - { - this.state = 2964; - _localctx._priority = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DELAYED || _la === SqlParser.LOW_PRIORITY)) { - _localctx._priority = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 2968; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INTO) { - { - this.state = 2967; - this.match(SqlParser.INTO); - } - } - - this.state = 2970; - this.tableName(); - this.state = 2976; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 2971; - this.match(SqlParser.PARTITION); - this.state = 2972; - this.match(SqlParser.LR_BRACKET); - this.state = 2973; - _localctx._partitions = this.uidList(); - this.state = 2974; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 2994; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - case SqlParser.VALUES: - case SqlParser.VALUE: - case SqlParser.LR_BRACKET: - { - this.state = 2982; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 396, this._ctx) ) { - case 1: - { - this.state = 2978; - this.match(SqlParser.LR_BRACKET); - this.state = 2979; - _localctx._columns = this.uidList(); - this.state = 2980; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 2984; - this.insertStatementValue(); - } - break; - case SqlParser.SET: - { - this.state = 2985; - this.match(SqlParser.SET); - this.state = 2986; - _localctx._setFirst = this.updatedElement(); - this.state = 2991; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 2987; - this.match(SqlParser.COMMA); - this.state = 2988; - _localctx._updatedElement = this.updatedElement(); - _localctx._setElements.push(_localctx._updatedElement); - } - } - this.state = 2993; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectStatement(): SelectStatementContext { - let _localctx: SelectStatementContext = new SelectStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 180, SqlParser.RULE_selectStatement); - let _la: number; - try { - let _alt: number; - this.state = 3051; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 414, this._ctx) ) { - case 1: - _localctx = new SimpleSelectContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 2996; - this.querySpecification(); - this.state = 2998; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 399, this._ctx) ) { - case 1: - { - this.state = 2997; - this.lockClause(); - } - break; - } - } - break; - - case 2: - _localctx = new ParenthesisSelectContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3000; - this.queryExpression(); - this.state = 3002; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 400, this._ctx) ) { - case 1: - { - this.state = 3001; - this.lockClause(); - } - break; - } - } - break; - - case 3: - _localctx = new UnionSelectContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3004; - this.querySpecificationNointo(); - this.state = 3006; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 3005; - this.unionStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 3008; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 401, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 3018; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.UNION) { - { - this.state = 3010; - this.match(SqlParser.UNION); - this.state = 3012; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL || _la === SqlParser.DISTINCT) { - { - this.state = 3011; - (_localctx as UnionSelectContext)._unionType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT)) { - (_localctx as UnionSelectContext)._unionType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3016; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - { - this.state = 3014; - this.querySpecification(); - } - break; - case SqlParser.LR_BRACKET: - { - this.state = 3015; - this.queryExpression(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - - this.state = 3021; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ORDER) { - { - this.state = 3020; - this.orderByClause(); - } - } - - this.state = 3024; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3023; - this.limitClause(); - } - } - - this.state = 3027; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 407, this._ctx) ) { - case 1: - { - this.state = 3026; - this.lockClause(); - } - break; - } - } - break; - - case 4: - _localctx = new UnionParenthesisSelectContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 3029; - this.queryExpressionNointo(); - this.state = 3031; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 3030; - this.unionParenthesis(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 3033; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 408, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 3040; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.UNION) { - { - this.state = 3035; - this.match(SqlParser.UNION); - this.state = 3037; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL || _la === SqlParser.DISTINCT) { - { - this.state = 3036; - (_localctx as UnionParenthesisSelectContext)._unionType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT)) { - (_localctx as UnionParenthesisSelectContext)._unionType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3039; - this.queryExpression(); - } - } - - this.state = 3043; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ORDER) { - { - this.state = 3042; - this.orderByClause(); - } - } - - this.state = 3046; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3045; - this.limitClause(); - } - } - - this.state = 3049; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 413, this._ctx) ) { - case 1: - { - this.state = 3048; - this.lockClause(); - } - break; - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public updateStatement(): UpdateStatementContext { - let _localctx: UpdateStatementContext = new UpdateStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 182, SqlParser.RULE_updateStatement); - try { - this.state = 3055; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 415, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3053; - this.singleUpdateStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3054; - this.multipleUpdateStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public insertStatementValue(): InsertStatementValueContext { - let _localctx: InsertStatementValueContext = new InsertStatementValueContext(this._ctx, this.state); - this.enterRule(_localctx, 184, SqlParser.RULE_insertStatementValue); - let _la: number; - try { - this.state = 3075; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - case SqlParser.LR_BRACKET: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3057; - this.selectStatement(); - } - break; - case SqlParser.VALUES: - case SqlParser.VALUE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3058; - _localctx._insertFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.VALUES || _la === SqlParser.VALUE)) { - _localctx._insertFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3059; - this.match(SqlParser.LR_BRACKET); - this.state = 3061; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DEFAULT - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1F) === 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1F) === 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1F) === 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1F) === 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1F) === 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1F) === 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1F) === 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1F) === 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1F) === 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1F) === 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1F) === 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1F) === 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1F) === 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1F) === 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1F) === 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1F) === 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1F) === 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1F) === 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1F) === 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1F) === 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1F) === 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1F) === 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1F) === 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) { - { - this.state = 3060; - this.expressionsWithDefaults(); - } - } - - this.state = 3063; - this.match(SqlParser.RR_BRACKET); - this.state = 3072; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3064; - this.match(SqlParser.COMMA); - this.state = 3065; - this.match(SqlParser.LR_BRACKET); - this.state = 3067; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DEFAULT - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1F) === 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1F) === 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1F) === 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1F) === 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1F) === 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1F) === 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1F) === 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1F) === 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1F) === 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1F) === 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1F) === 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1F) === 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1F) === 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1F) === 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1F) === 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1F) === 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1F) === 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1F) === 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1F) === 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1F) === 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1F) === 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1F) === 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1F) === 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) { - { - this.state = 3066; - this.expressionsWithDefaults(); - } - } - - this.state = 3069; - this.match(SqlParser.RR_BRACKET); - } - } - this.state = 3074; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public updatedElement(): UpdatedElementContext { - let _localctx: UpdatedElementContext = new UpdatedElementContext(this._ctx, this.state); - this.enterRule(_localctx, 186, SqlParser.RULE_updatedElement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3077; - this.fullColumnName(); - this.state = 3078; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3081; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CASE: - case SqlParser.CAST: - case SqlParser.CONVERT: - case SqlParser.CURRENT: - case SqlParser.CURRENT_USER: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.EXISTS: - case SqlParser.FALSE: - case SqlParser.IF: - case SqlParser.INSERT: - case SqlParser.INTERVAL: - case SqlParser.LEFT: - case SqlParser.NOT: - case SqlParser.NULL_LITERAL: - case SqlParser.NUMBER: - case SqlParser.REPLACE: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.TRUE: - case SqlParser.VALUES: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.CHAR: - case SqlParser.BINARY: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.AVG: - case SqlParser.BIT_AND: - case SqlParser.BIT_OR: - case SqlParser.BIT_XOR: - case SqlParser.COUNT: - case SqlParser.GROUP_CONCAT: - case SqlParser.MAX: - case SqlParser.MIN: - case SqlParser.STD: - case SqlParser.STDDEV: - case SqlParser.STDDEV_POP: - case SqlParser.STDDEV_SAMP: - case SqlParser.SUM: - case SqlParser.VAR_POP: - case SqlParser.VAR_SAMP: - case SqlParser.VARIANCE: - case SqlParser.CURRENT_DATE: - case SqlParser.CURRENT_TIME: - case SqlParser.CURRENT_TIMESTAMP: - case SqlParser.LOCALTIME: - case SqlParser.CURDATE: - case SqlParser.CURTIME: - case SqlParser.DATE_ADD: - case SqlParser.DATE_SUB: - case SqlParser.EXTRACT: - case SqlParser.LOCALTIMESTAMP: - case SqlParser.NOW: - case SqlParser.POSITION: - case SqlParser.SUBSTR: - case SqlParser.SUBSTRING: - case SqlParser.SYSDATE: - case SqlParser.TRIM: - case SqlParser.UTC_DATE: - case SqlParser.UTC_TIME: - case SqlParser.UTC_TIMESTAMP: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.PLUS: - case SqlParser.MINUS: - case SqlParser.EXCLAMATION_SYMBOL: - case SqlParser.BIT_NOT_OP: - case SqlParser.LR_BRACKET: - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.START_NATIONAL_STRING_LITERAL: - case SqlParser.STRING_LITERAL: - case SqlParser.DECIMAL_LITERAL: - case SqlParser.HEXADECIMAL_LITERAL: - case SqlParser.REAL_LITERAL: - case SqlParser.NULL_SPEC_LITERAL: - case SqlParser.BIT_STRING: - case SqlParser.STRING_CHARSET_NAME: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - { - this.state = 3079; - this.expression(0); - } - break; - case SqlParser.DEFAULT: - { - this.state = 3080; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public assignmentField(): AssignmentFieldContext { - let _localctx: AssignmentFieldContext = new AssignmentFieldContext(this._ctx, this.state); - this.enterRule(_localctx, 188, SqlParser.RULE_assignmentField); - try { - this.state = 3085; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3083; - this.uid(); - } - break; - case SqlParser.LOCAL_ID: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3084; - this.match(SqlParser.LOCAL_ID); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lockClause(): LockClauseContext { - let _localctx: LockClauseContext = new LockClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 190, SqlParser.RULE_lockClause); - try { - this.state = 3093; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FOR: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3087; - this.match(SqlParser.FOR); - this.state = 3088; - this.match(SqlParser.UPDATE); - } - break; - case SqlParser.LOCK: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3089; - this.match(SqlParser.LOCK); - this.state = 3090; - this.match(SqlParser.IN); - this.state = 3091; - this.match(SqlParser.SHARE); - this.state = 3092; - this.match(SqlParser.MODE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public singleDeleteStatement(): SingleDeleteStatementContext { - let _localctx: SingleDeleteStatementContext = new SingleDeleteStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 192, SqlParser.RULE_singleDeleteStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3095; - this.match(SqlParser.DELETE); - this.state = 3097; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY) { - { - this.state = 3096; - _localctx._priority = this.match(SqlParser.LOW_PRIORITY); - } - } - - this.state = 3100; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.QUICK) { - { - this.state = 3099; - this.match(SqlParser.QUICK); - } - } - - this.state = 3103; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 3102; - this.match(SqlParser.IGNORE); - } - } - - this.state = 3105; - this.match(SqlParser.FROM); - this.state = 3106; - this.tableName(); - this.state = 3112; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 3107; - this.match(SqlParser.PARTITION); - this.state = 3108; - this.match(SqlParser.LR_BRACKET); - this.state = 3109; - this.uidList(); - this.state = 3110; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 3116; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3114; - this.match(SqlParser.WHERE); - this.state = 3115; - this.expression(0); - } - } - - this.state = 3119; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ORDER) { - { - this.state = 3118; - this.orderByClause(); - } - } - - this.state = 3123; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3121; - this.match(SqlParser.LIMIT); - this.state = 3122; - this.limitClauseAtom(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public multipleDeleteStatement(): MultipleDeleteStatementContext { - let _localctx: MultipleDeleteStatementContext = new MultipleDeleteStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 194, SqlParser.RULE_multipleDeleteStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3125; - this.match(SqlParser.DELETE); - this.state = 3127; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY) { - { - this.state = 3126; - _localctx._priority = this.match(SqlParser.LOW_PRIORITY); - } - } - - this.state = 3130; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 431, this._ctx) ) { - case 1: - { - this.state = 3129; - this.match(SqlParser.QUICK); - } - break; - } - this.state = 3133; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 3132; - this.match(SqlParser.IGNORE); - } - } - - this.state = 3174; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 3135; - this.tableName(); - this.state = 3138; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DOT) { - { - this.state = 3136; - this.match(SqlParser.DOT); - this.state = 3137; - this.match(SqlParser.STAR); - } - } - - this.state = 3148; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3140; - this.match(SqlParser.COMMA); - this.state = 3141; - this.tableName(); - this.state = 3144; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DOT) { - { - this.state = 3142; - this.match(SqlParser.DOT); - this.state = 3143; - this.match(SqlParser.STAR); - } - } - - } - } - this.state = 3150; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3151; - this.match(SqlParser.FROM); - this.state = 3152; - this.tableSources(); - } - break; - case SqlParser.FROM: - { - this.state = 3154; - this.match(SqlParser.FROM); - this.state = 3155; - this.tableName(); - this.state = 3158; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DOT) { - { - this.state = 3156; - this.match(SqlParser.DOT); - this.state = 3157; - this.match(SqlParser.STAR); - } - } - - this.state = 3168; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3160; - this.match(SqlParser.COMMA); - this.state = 3161; - this.tableName(); - this.state = 3164; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DOT) { - { - this.state = 3162; - this.match(SqlParser.DOT); - this.state = 3163; - this.match(SqlParser.STAR); - } - } - - } - } - this.state = 3170; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3171; - this.match(SqlParser.USING); - this.state = 3172; - this.tableSources(); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 3178; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3176; - this.match(SqlParser.WHERE); - this.state = 3177; - this.expression(0); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerOpenStatement(): HandlerOpenStatementContext { - let _localctx: HandlerOpenStatementContext = new HandlerOpenStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 196, SqlParser.RULE_handlerOpenStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3180; - this.match(SqlParser.HANDLER); - this.state = 3181; - this.tableName(); - this.state = 3182; - this.match(SqlParser.OPEN); - this.state = 3187; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 442, this._ctx) ) { - case 1: - { - this.state = 3184; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3183; - this.match(SqlParser.AS); - } - } - - this.state = 3186; - this.uid(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerReadIndexStatement(): HandlerReadIndexStatementContext { - let _localctx: HandlerReadIndexStatementContext = new HandlerReadIndexStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 198, SqlParser.RULE_handlerReadIndexStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3189; - this.match(SqlParser.HANDLER); - this.state = 3190; - this.tableName(); - this.state = 3191; - this.match(SqlParser.READ); - this.state = 3192; - _localctx._index = this.uid(); - this.state = 3199; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.EQUAL_SYMBOL: - case SqlParser.GREATER_SYMBOL: - case SqlParser.LESS_SYMBOL: - case SqlParser.EXCLAMATION_SYMBOL: - { - this.state = 3193; - this.comparisonOperator(); - this.state = 3194; - this.match(SqlParser.LR_BRACKET); - this.state = 3195; - this.constants(); - this.state = 3196; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.FIRST: - case SqlParser.LAST: - case SqlParser.NEXT: - case SqlParser.PREV: - { - this.state = 3198; - _localctx._moveOrder = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FIRST || _la === SqlParser.LAST || _la === SqlParser.NEXT || _la === SqlParser.PREV)) { - _localctx._moveOrder = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 3203; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3201; - this.match(SqlParser.WHERE); - this.state = 3202; - this.expression(0); - } - } - - this.state = 3207; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3205; - this.match(SqlParser.LIMIT); - this.state = 3206; - this.limitClauseAtom(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerReadStatement(): HandlerReadStatementContext { - let _localctx: HandlerReadStatementContext = new HandlerReadStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 200, SqlParser.RULE_handlerReadStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3209; - this.match(SqlParser.HANDLER); - this.state = 3210; - this.tableName(); - this.state = 3211; - this.match(SqlParser.READ); - this.state = 3212; - _localctx._moveOrder = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FIRST || _la === SqlParser.NEXT)) { - _localctx._moveOrder = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3215; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3213; - this.match(SqlParser.WHERE); - this.state = 3214; - this.expression(0); - } - } - - this.state = 3219; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3217; - this.match(SqlParser.LIMIT); - this.state = 3218; - this.limitClauseAtom(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerCloseStatement(): HandlerCloseStatementContext { - let _localctx: HandlerCloseStatementContext = new HandlerCloseStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 202, SqlParser.RULE_handlerCloseStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3221; - this.match(SqlParser.HANDLER); - this.state = 3222; - this.tableName(); - this.state = 3223; - this.match(SqlParser.CLOSE); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public singleUpdateStatement(): SingleUpdateStatementContext { - let _localctx: SingleUpdateStatementContext = new SingleUpdateStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 204, SqlParser.RULE_singleUpdateStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3225; - this.match(SqlParser.UPDATE); - this.state = 3227; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY) { - { - this.state = 3226; - _localctx._priority = this.match(SqlParser.LOW_PRIORITY); - } - } - - this.state = 3230; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 3229; - this.match(SqlParser.IGNORE); - } - } - - this.state = 3232; - this.tableName(); - this.state = 3237; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 3234; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3233; - this.match(SqlParser.AS); - } - } - - this.state = 3236; - this.uid(); - } - } - - this.state = 3239; - this.match(SqlParser.SET); - this.state = 3240; - this.updatedElement(); - this.state = 3245; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3241; - this.match(SqlParser.COMMA); - this.state = 3242; - this.updatedElement(); - } - } - this.state = 3247; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3250; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3248; - this.match(SqlParser.WHERE); - this.state = 3249; - this.expression(0); - } - } - - this.state = 3253; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ORDER) { - { - this.state = 3252; - this.orderByClause(); - } - } - - this.state = 3256; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 3255; - this.limitClause(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public multipleUpdateStatement(): MultipleUpdateStatementContext { - let _localctx: MultipleUpdateStatementContext = new MultipleUpdateStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 206, SqlParser.RULE_multipleUpdateStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3258; - this.match(SqlParser.UPDATE); - this.state = 3260; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY) { - { - this.state = 3259; - _localctx._priority = this.match(SqlParser.LOW_PRIORITY); - } - } - - this.state = 3263; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 3262; - this.match(SqlParser.IGNORE); - } - } - - this.state = 3265; - this.tableSources(); - this.state = 3266; - this.match(SqlParser.SET); - this.state = 3267; - this.updatedElement(); - this.state = 3272; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3268; - this.match(SqlParser.COMMA); - this.state = 3269; - this.updatedElement(); - } - } - this.state = 3274; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3277; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3275; - this.match(SqlParser.WHERE); - this.state = 3276; - this.expression(0); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public orderByClause(): OrderByClauseContext { - let _localctx: OrderByClauseContext = new OrderByClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 208, SqlParser.RULE_orderByClause); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3279; - this.match(SqlParser.ORDER); - this.state = 3280; - this.match(SqlParser.BY); - this.state = 3281; - this.orderByExpression(); - this.state = 3286; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3282; - this.match(SqlParser.COMMA); - this.state = 3283; - this.orderByExpression(); - } - } - this.state = 3288; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public orderByExpression(): OrderByExpressionContext { - let _localctx: OrderByExpressionContext = new OrderByExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 210, SqlParser.RULE_orderByExpression); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3289; - this.expression(0); - this.state = 3291; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 461, this._ctx) ) { - case 1: - { - this.state = 3290; - _localctx._order = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ASC || _la === SqlParser.DESC)) { - _localctx._order = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableSources(): TableSourcesContext { - let _localctx: TableSourcesContext = new TableSourcesContext(this._ctx, this.state); - this.enterRule(_localctx, 212, SqlParser.RULE_tableSources); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3293; - this.tableSource(); - this.state = 3298; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3294; - this.match(SqlParser.COMMA); - this.state = 3295; - this.tableSource(); - } - } - this.state = 3300; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableSource(): TableSourceContext { - let _localctx: TableSourceContext = new TableSourceContext(this._ctx, this.state); - this.enterRule(_localctx, 214, SqlParser.RULE_tableSource); - let _la: number; - try { - let _alt: number; - this.state = 3318; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 465, this._ctx) ) { - case 1: - _localctx = new TableSourceBaseContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3301; - this.tableSourceItem(); - this.state = 3305; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 463, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 3302; - this.joinPart(); - } - } - } - this.state = 3307; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 463, this._ctx); - } - } - break; - - case 2: - _localctx = new TableSourceNestedContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3308; - this.match(SqlParser.LR_BRACKET); - this.state = 3309; - this.tableSourceItem(); - this.state = 3313; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.CROSS || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (SqlParser.INNER - 74)) | (1 << (SqlParser.JOIN - 74)) | (1 << (SqlParser.LEFT - 74)) | (1 << (SqlParser.NATURAL - 74)))) !== 0) || _la === SqlParser.RIGHT || _la === SqlParser.STRAIGHT_JOIN) { - { - { - this.state = 3310; - this.joinPart(); - } - } - this.state = 3315; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3316; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableSourceItem(): TableSourceItemContext { - let _localctx: TableSourceItemContext = new TableSourceItemContext(this._ctx, this.state); - this.enterRule(_localctx, 216, SqlParser.RULE_tableSourceItem); - let _la: number; - try { - let _alt: number; - this.state = 3360; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 473, this._ctx) ) { - case 1: - _localctx = new AtomTableItemContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3320; - this.tableName(); - this.state = 3326; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 3321; - this.match(SqlParser.PARTITION); - this.state = 3322; - this.match(SqlParser.LR_BRACKET); - this.state = 3323; - this.uidList(); - this.state = 3324; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 3332; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 468, this._ctx) ) { - case 1: - { - this.state = 3329; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3328; - this.match(SqlParser.AS); - } - } - - this.state = 3331; - (_localctx as AtomTableItemContext)._alias = this.uid(); - } - break; - } - this.state = 3342; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 470, this._ctx) ) { - case 1: - { - this.state = 3334; - this.indexHint(); - this.state = 3339; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 469, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 3335; - this.match(SqlParser.COMMA); - this.state = 3336; - this.indexHint(); - } - } - } - this.state = 3341; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 469, this._ctx); - } - } - break; - } - } - break; - - case 2: - _localctx = new SubqueryTableItemContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3349; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 471, this._ctx) ) { - case 1: - { - this.state = 3344; - this.selectStatement(); - } - break; - - case 2: - { - this.state = 3345; - this.match(SqlParser.LR_BRACKET); - this.state = 3346; - (_localctx as SubqueryTableItemContext)._parenthesisSubquery = this.selectStatement(); - this.state = 3347; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 3352; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3351; - this.match(SqlParser.AS); - } - } - - this.state = 3354; - (_localctx as SubqueryTableItemContext)._alias = this.uid(); - } - break; - - case 3: - _localctx = new TableSourcesItemContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3356; - this.match(SqlParser.LR_BRACKET); - this.state = 3357; - this.tableSources(); - this.state = 3358; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexHint(): IndexHintContext { - let _localctx: IndexHintContext = new IndexHintContext(this._ctx, this.state); - this.enterRule(_localctx, 218, SqlParser.RULE_indexHint); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3362; - _localctx._indexHintAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FORCE || _la === SqlParser.IGNORE || _la === SqlParser.USE)) { - _localctx._indexHintAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3363; - _localctx._keyFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - _localctx._keyFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3366; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 3364; - this.match(SqlParser.FOR); - this.state = 3365; - this.indexHintType(); - } - } - - this.state = 3368; - this.match(SqlParser.LR_BRACKET); - this.state = 3369; - this.uidList(); - this.state = 3370; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexHintType(): IndexHintTypeContext { - let _localctx: IndexHintTypeContext = new IndexHintTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 220, SqlParser.RULE_indexHintType); - try { - this.state = 3377; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.JOIN: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3372; - this.match(SqlParser.JOIN); - } - break; - case SqlParser.ORDER: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3373; - this.match(SqlParser.ORDER); - this.state = 3374; - this.match(SqlParser.BY); - } - break; - case SqlParser.GROUP: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3375; - this.match(SqlParser.GROUP); - this.state = 3376; - this.match(SqlParser.BY); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public joinPart(): JoinPartContext { - let _localctx: JoinPartContext = new JoinPartContext(this._ctx, this.state); - this.enterRule(_localctx, 222, SqlParser.RULE_joinPart); - let _la: number; - try { - this.state = 3423; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CROSS: - case SqlParser.INNER: - case SqlParser.JOIN: - _localctx = new InnerJoinContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3380; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CROSS || _la === SqlParser.INNER) { - { - this.state = 3379; - _la = this._input.LA(1); - if (!(_la === SqlParser.CROSS || _la === SqlParser.INNER)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3382; - this.match(SqlParser.JOIN); - this.state = 3383; - this.tableSourceItem(); - this.state = 3391; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 477, this._ctx) ) { - case 1: - { - this.state = 3384; - this.match(SqlParser.ON); - this.state = 3385; - this.expression(0); - } - break; - - case 2: - { - this.state = 3386; - this.match(SqlParser.USING); - this.state = 3387; - this.match(SqlParser.LR_BRACKET); - this.state = 3388; - this.uidList(); - this.state = 3389; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - break; - case SqlParser.STRAIGHT_JOIN: - _localctx = new StraightJoinContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3393; - this.match(SqlParser.STRAIGHT_JOIN); - this.state = 3394; - this.tableSourceItem(); - this.state = 3397; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 478, this._ctx) ) { - case 1: - { - this.state = 3395; - this.match(SqlParser.ON); - this.state = 3396; - this.expression(0); - } - break; - } - } - break; - case SqlParser.LEFT: - case SqlParser.RIGHT: - _localctx = new OuterJoinContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3399; - _la = this._input.LA(1); - if (!(_la === SqlParser.LEFT || _la === SqlParser.RIGHT)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3401; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OUTER) { - { - this.state = 3400; - this.match(SqlParser.OUTER); - } - } - - this.state = 3403; - this.match(SqlParser.JOIN); - this.state = 3404; - this.tableSourceItem(); - this.state = 3412; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ON: - { - this.state = 3405; - this.match(SqlParser.ON); - this.state = 3406; - this.expression(0); - } - break; - case SqlParser.USING: - { - this.state = 3407; - this.match(SqlParser.USING); - this.state = 3408; - this.match(SqlParser.LR_BRACKET); - this.state = 3409; - this.uidList(); - this.state = 3410; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case SqlParser.NATURAL: - _localctx = new NaturalJoinContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 3414; - this.match(SqlParser.NATURAL); - this.state = 3419; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LEFT || _la === SqlParser.RIGHT) { - { - this.state = 3415; - _la = this._input.LA(1); - if (!(_la === SqlParser.LEFT || _la === SqlParser.RIGHT)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3417; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OUTER) { - { - this.state = 3416; - this.match(SqlParser.OUTER); - } - } - - } - } - - this.state = 3421; - this.match(SqlParser.JOIN); - this.state = 3422; - this.tableSourceItem(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public queryExpression(): QueryExpressionContext { - let _localctx: QueryExpressionContext = new QueryExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 224, SqlParser.RULE_queryExpression); - try { - this.state = 3433; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 484, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3425; - this.match(SqlParser.LR_BRACKET); - this.state = 3426; - this.querySpecification(); - this.state = 3427; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3429; - this.match(SqlParser.LR_BRACKET); - this.state = 3430; - this.queryExpression(); - this.state = 3431; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public queryExpressionNointo(): QueryExpressionNointoContext { - let _localctx: QueryExpressionNointoContext = new QueryExpressionNointoContext(this._ctx, this.state); - this.enterRule(_localctx, 226, SqlParser.RULE_queryExpressionNointo); - try { - this.state = 3443; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 485, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3435; - this.match(SqlParser.LR_BRACKET); - this.state = 3436; - this.querySpecificationNointo(); - this.state = 3437; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3439; - this.match(SqlParser.LR_BRACKET); - this.state = 3440; - this.queryExpressionNointo(); - this.state = 3441; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public querySpecification(): QuerySpecificationContext { - let _localctx: QuerySpecificationContext = new QuerySpecificationContext(this._ctx, this.state); - this.enterRule(_localctx, 228, SqlParser.RULE_querySpecification); - let _la: number; - try { - let _alt: number; - this.state = 3485; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 496, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3445; - this.match(SqlParser.SELECT); - this.state = 3449; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 486, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 3446; - this.selectSpec(); - } - } - } - this.state = 3451; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 486, this._ctx); - } - this.state = 3452; - this.selectElements(); - this.state = 3454; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INTO) { - { - this.state = 3453; - this.selectIntoExpression(); - } - } - - this.state = 3457; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM) { - { - this.state = 3456; - this.fromClause(); - } - } - - this.state = 3460; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 489, this._ctx) ) { - case 1: - { - this.state = 3459; - this.orderByClause(); - } - break; - } - this.state = 3463; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 490, this._ctx) ) { - case 1: - { - this.state = 3462; - this.limitClause(); - } - break; - } - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3465; - this.match(SqlParser.SELECT); - this.state = 3469; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 491, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 3466; - this.selectSpec(); - } - } - } - this.state = 3471; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 491, this._ctx); - } - this.state = 3472; - this.selectElements(); - this.state = 3474; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM) { - { - this.state = 3473; - this.fromClause(); - } - } - - this.state = 3477; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 493, this._ctx) ) { - case 1: - { - this.state = 3476; - this.orderByClause(); - } - break; - } - this.state = 3480; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 494, this._ctx) ) { - case 1: - { - this.state = 3479; - this.limitClause(); - } - break; - } - this.state = 3483; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INTO) { - { - this.state = 3482; - this.selectIntoExpression(); - } - } - - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public querySpecificationNointo(): QuerySpecificationNointoContext { - let _localctx: QuerySpecificationNointoContext = new QuerySpecificationNointoContext(this._ctx, this.state); - this.enterRule(_localctx, 230, SqlParser.RULE_querySpecificationNointo); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 3487; - this.match(SqlParser.SELECT); - this.state = 3491; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 497, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 3488; - this.selectSpec(); - } - } - } - this.state = 3493; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 497, this._ctx); - } - this.state = 3494; - this.selectElements(); - this.state = 3496; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM) { - { - this.state = 3495; - this.fromClause(); - } - } - - this.state = 3499; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 499, this._ctx) ) { - case 1: - { - this.state = 3498; - this.orderByClause(); - } - break; - } - this.state = 3502; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 500, this._ctx) ) { - case 1: - { - this.state = 3501; - this.limitClause(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public unionParenthesis(): UnionParenthesisContext { - let _localctx: UnionParenthesisContext = new UnionParenthesisContext(this._ctx, this.state); - this.enterRule(_localctx, 232, SqlParser.RULE_unionParenthesis); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3504; - this.match(SqlParser.UNION); - this.state = 3506; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL || _la === SqlParser.DISTINCT) { - { - this.state = 3505; - _localctx._unionType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT)) { - _localctx._unionType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3508; - this.queryExpressionNointo(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public unionStatement(): UnionStatementContext { - let _localctx: UnionStatementContext = new UnionStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 234, SqlParser.RULE_unionStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3510; - this.match(SqlParser.UNION); - this.state = 3512; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL || _la === SqlParser.DISTINCT) { - { - this.state = 3511; - _localctx._unionType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT)) { - _localctx._unionType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3516; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - { - this.state = 3514; - this.querySpecificationNointo(); - } - break; - case SqlParser.LR_BRACKET: - { - this.state = 3515; - this.queryExpressionNointo(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectSpec(): SelectSpecContext { - let _localctx: SelectSpecContext = new SelectSpecContext(this._ctx, this.state); - this.enterRule(_localctx, 236, SqlParser.RULE_selectSpec); - let _la: number; - try { - this.state = 3526; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALL: - case SqlParser.DISTINCT: - case SqlParser.DISTINCTROW: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3518; - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT || _la === SqlParser.DISTINCTROW)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.HIGH_PRIORITY: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3519; - this.match(SqlParser.HIGH_PRIORITY); - } - break; - case SqlParser.STRAIGHT_JOIN: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3520; - this.match(SqlParser.STRAIGHT_JOIN); - } - break; - case SqlParser.SQL_SMALL_RESULT: - this.enterOuterAlt(_localctx, 4); - { - this.state = 3521; - this.match(SqlParser.SQL_SMALL_RESULT); - } - break; - case SqlParser.SQL_BIG_RESULT: - this.enterOuterAlt(_localctx, 5); - { - this.state = 3522; - this.match(SqlParser.SQL_BIG_RESULT); - } - break; - case SqlParser.SQL_BUFFER_RESULT: - this.enterOuterAlt(_localctx, 6); - { - this.state = 3523; - this.match(SqlParser.SQL_BUFFER_RESULT); - } - break; - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - this.enterOuterAlt(_localctx, 7); - { - this.state = 3524; - _la = this._input.LA(1); - if (!(_la === SqlParser.SQL_CACHE || _la === SqlParser.SQL_NO_CACHE)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.SQL_CALC_FOUND_ROWS: - this.enterOuterAlt(_localctx, 8); - { - this.state = 3525; - this.match(SqlParser.SQL_CALC_FOUND_ROWS); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectElements(): SelectElementsContext { - let _localctx: SelectElementsContext = new SelectElementsContext(this._ctx, this.state); - this.enterRule(_localctx, 238, SqlParser.RULE_selectElements); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3530; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STAR: - { - this.state = 3528; - _localctx._star = this.match(SqlParser.STAR); - } - break; - case SqlParser.CASE: - case SqlParser.CAST: - case SqlParser.CONVERT: - case SqlParser.CURRENT: - case SqlParser.CURRENT_USER: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.EXISTS: - case SqlParser.FALSE: - case SqlParser.IF: - case SqlParser.INSERT: - case SqlParser.INTERVAL: - case SqlParser.LEFT: - case SqlParser.NOT: - case SqlParser.NULL_LITERAL: - case SqlParser.NUMBER: - case SqlParser.REPLACE: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.TRUE: - case SqlParser.VALUES: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.CHAR: - case SqlParser.BINARY: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.AVG: - case SqlParser.BIT_AND: - case SqlParser.BIT_OR: - case SqlParser.BIT_XOR: - case SqlParser.COUNT: - case SqlParser.GROUP_CONCAT: - case SqlParser.MAX: - case SqlParser.MIN: - case SqlParser.STD: - case SqlParser.STDDEV: - case SqlParser.STDDEV_POP: - case SqlParser.STDDEV_SAMP: - case SqlParser.SUM: - case SqlParser.VAR_POP: - case SqlParser.VAR_SAMP: - case SqlParser.VARIANCE: - case SqlParser.CURRENT_DATE: - case SqlParser.CURRENT_TIME: - case SqlParser.CURRENT_TIMESTAMP: - case SqlParser.LOCALTIME: - case SqlParser.CURDATE: - case SqlParser.CURTIME: - case SqlParser.DATE_ADD: - case SqlParser.DATE_SUB: - case SqlParser.EXTRACT: - case SqlParser.LOCALTIMESTAMP: - case SqlParser.NOW: - case SqlParser.POSITION: - case SqlParser.SUBSTR: - case SqlParser.SUBSTRING: - case SqlParser.SYSDATE: - case SqlParser.TRIM: - case SqlParser.UTC_DATE: - case SqlParser.UTC_TIME: - case SqlParser.UTC_TIMESTAMP: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.PLUS: - case SqlParser.MINUS: - case SqlParser.EXCLAMATION_SYMBOL: - case SqlParser.BIT_NOT_OP: - case SqlParser.LR_BRACKET: - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.START_NATIONAL_STRING_LITERAL: - case SqlParser.STRING_LITERAL: - case SqlParser.DECIMAL_LITERAL: - case SqlParser.HEXADECIMAL_LITERAL: - case SqlParser.REAL_LITERAL: - case SqlParser.NULL_SPEC_LITERAL: - case SqlParser.BIT_STRING: - case SqlParser.STRING_CHARSET_NAME: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - { - this.state = 3529; - this.selectElement(); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 3536; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3532; - this.match(SqlParser.COMMA); - this.state = 3533; - this.selectElement(); - } - } - this.state = 3538; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectElement(): SelectElementContext { - let _localctx: SelectElementContext = new SelectElementContext(this._ctx, this.state); - this.enterRule(_localctx, 240, SqlParser.RULE_selectElement); - let _la: number; - try { - this.state = 3568; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 514, this._ctx) ) { - case 1: - _localctx = new SelectStarElementContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3539; - this.fullId(); - this.state = 3540; - this.match(SqlParser.DOT); - this.state = 3541; - this.match(SqlParser.STAR); - } - break; - - case 2: - _localctx = new SelectColumnElementContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3543; - this.fullColumnName(); - this.state = 3548; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 508, this._ctx) ) { - case 1: - { - this.state = 3545; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3544; - this.match(SqlParser.AS); - } - } - - this.state = 3547; - this.uid(); - } - break; - } - } - break; - - case 3: - _localctx = new SelectFunctionElementContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3550; - this.functionCall(); - this.state = 3555; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 510, this._ctx) ) { - case 1: - { - this.state = 3552; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3551; - this.match(SqlParser.AS); - } - } - - this.state = 3554; - this.uid(); - } - break; - } - } - break; - - case 4: - _localctx = new SelectExpressionElementContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 3559; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 511, this._ctx) ) { - case 1: - { - this.state = 3557; - this.match(SqlParser.LOCAL_ID); - this.state = 3558; - this.match(SqlParser.VAR_ASSIGN); - } - break; - } - this.state = 3561; - this.expression(0); - this.state = 3566; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 513, this._ctx) ) { - case 1: - { - this.state = 3563; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3562; - this.match(SqlParser.AS); - } - } - - this.state = 3565; - this.uid(); - } - break; - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectIntoExpression(): SelectIntoExpressionContext { - let _localctx: SelectIntoExpressionContext = new SelectIntoExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 242, SqlParser.RULE_selectIntoExpression); - let _la: number; - try { - this.state = 3606; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 521, this._ctx) ) { - case 1: - _localctx = new SelectIntoVariablesContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3570; - this.match(SqlParser.INTO); - this.state = 3571; - this.assignmentField(); - this.state = 3576; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3572; - this.match(SqlParser.COMMA); - this.state = 3573; - this.assignmentField(); - } - } - this.state = 3578; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new SelectIntoDumpFileContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3579; - this.match(SqlParser.INTO); - this.state = 3580; - this.match(SqlParser.DUMPFILE); - this.state = 3581; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 3: - _localctx = new SelectIntoTextFileContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - { - this.state = 3582; - this.match(SqlParser.INTO); - this.state = 3583; - this.match(SqlParser.OUTFILE); - this.state = 3584; - (_localctx as SelectIntoTextFileContext)._filename = this.match(SqlParser.STRING_LITERAL); - this.state = 3588; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CHARACTER) { - { - this.state = 3585; - this.match(SqlParser.CHARACTER); - this.state = 3586; - this.match(SqlParser.SET); - this.state = 3587; - (_localctx as SelectIntoTextFileContext)._charset = this.charsetName(); - } - } - - this.state = 3596; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 518, this._ctx) ) { - case 1: - { - this.state = 3590; - (_localctx as SelectIntoTextFileContext)._fieldsFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.COLUMNS || _la === SqlParser.FIELDS)) { - (_localctx as SelectIntoTextFileContext)._fieldsFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3592; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 3591; - this.selectFieldsInto(); - } - } - this.state = 3594; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.ENCLOSED || _la === SqlParser.ESCAPED || _la === SqlParser.OPTIONALLY || _la === SqlParser.TERMINATED); - } - break; - } - this.state = 3604; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LINES) { - { - this.state = 3598; - this.match(SqlParser.LINES); - this.state = 3600; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 3599; - this.selectLinesInto(); - } - } - this.state = 3602; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.STARTING || _la === SqlParser.TERMINATED); - } - } - - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectFieldsInto(): SelectFieldsIntoContext { - let _localctx: SelectFieldsIntoContext = new SelectFieldsIntoContext(this._ctx, this.state); - this.enterRule(_localctx, 244, SqlParser.RULE_selectFieldsInto); - let _la: number; - try { - this.state = 3620; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.TERMINATED: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3608; - this.match(SqlParser.TERMINATED); - this.state = 3609; - this.match(SqlParser.BY); - this.state = 3610; - _localctx._terminationField = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.ENCLOSED: - case SqlParser.OPTIONALLY: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3612; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.OPTIONALLY) { - { - this.state = 3611; - this.match(SqlParser.OPTIONALLY); - } - } - - this.state = 3614; - this.match(SqlParser.ENCLOSED); - this.state = 3615; - this.match(SqlParser.BY); - this.state = 3616; - _localctx._enclosion = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.ESCAPED: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3617; - this.match(SqlParser.ESCAPED); - this.state = 3618; - this.match(SqlParser.BY); - this.state = 3619; - _localctx._escaping = this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public selectLinesInto(): SelectLinesIntoContext { - let _localctx: SelectLinesIntoContext = new SelectLinesIntoContext(this._ctx, this.state); - this.enterRule(_localctx, 246, SqlParser.RULE_selectLinesInto); - try { - this.state = 3628; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STARTING: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3622; - this.match(SqlParser.STARTING); - this.state = 3623; - this.match(SqlParser.BY); - this.state = 3624; - _localctx._starting = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.TERMINATED: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3625; - this.match(SqlParser.TERMINATED); - this.state = 3626; - this.match(SqlParser.BY); - this.state = 3627; - _localctx._terminationLine = this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public fromClause(): FromClauseContext { - let _localctx: FromClauseContext = new FromClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 248, SqlParser.RULE_fromClause); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3630; - this.match(SqlParser.FROM); - this.state = 3631; - this.tableSources(); - this.state = 3634; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 3632; - this.match(SqlParser.WHERE); - this.state = 3633; - _localctx._whereExpr = this.expression(0); - } - } - - this.state = 3650; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.GROUP) { - { - this.state = 3636; - this.match(SqlParser.GROUP); - this.state = 3637; - this.match(SqlParser.BY); - this.state = 3638; - this.groupByItem(); - this.state = 3643; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3639; - this.match(SqlParser.COMMA); - this.state = 3640; - this.groupByItem(); - } - } - this.state = 3645; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3648; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 527, this._ctx) ) { - case 1: - { - this.state = 3646; - this.match(SqlParser.WITH); - this.state = 3647; - this.match(SqlParser.ROLLUP); - } - break; - } - } - } - - this.state = 3654; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.HAVING) { - { - this.state = 3652; - this.match(SqlParser.HAVING); - this.state = 3653; - _localctx._havingExpr = this.expression(0); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public groupByItem(): GroupByItemContext { - let _localctx: GroupByItemContext = new GroupByItemContext(this._ctx, this.state); - this.enterRule(_localctx, 250, SqlParser.RULE_groupByItem); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3656; - this.expression(0); - this.state = 3658; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 530, this._ctx) ) { - case 1: - { - this.state = 3657; - _localctx._order = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ASC || _la === SqlParser.DESC)) { - _localctx._order = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public limitClause(): LimitClauseContext { - let _localctx: LimitClauseContext = new LimitClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 252, SqlParser.RULE_limitClause); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3660; - this.match(SqlParser.LIMIT); - this.state = 3671; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 532, this._ctx) ) { - case 1: - { - this.state = 3664; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 531, this._ctx) ) { - case 1: - { - this.state = 3661; - _localctx._offset = this.limitClauseAtom(); - this.state = 3662; - this.match(SqlParser.COMMA); - } - break; - } - this.state = 3666; - _localctx._limit = this.limitClauseAtom(); - } - break; - - case 2: - { - this.state = 3667; - _localctx._limit = this.limitClauseAtom(); - this.state = 3668; - this.match(SqlParser.OFFSET); - this.state = 3669; - _localctx._offset = this.limitClauseAtom(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public limitClauseAtom(): LimitClauseAtomContext { - let _localctx: LimitClauseAtomContext = new LimitClauseAtomContext(this._ctx, this.state); - this.enterRule(_localctx, 254, SqlParser.RULE_limitClauseAtom); - try { - this.state = 3675; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3673; - this.decimalLiteral(); - } - break; - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3674; - this.mysqlVariable(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public startTransaction(): StartTransactionContext { - let _localctx: StartTransactionContext = new StartTransactionContext(this._ctx, this.state); - this.enterRule(_localctx, 256, SqlParser.RULE_startTransaction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3677; - this.match(SqlParser.START); - this.state = 3678; - this.match(SqlParser.TRANSACTION); - this.state = 3687; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.READ || _la === SqlParser.WITH) { - { - this.state = 3679; - this.transactionMode(); - this.state = 3684; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3680; - this.match(SqlParser.COMMA); - this.state = 3681; - this.transactionMode(); - } - } - this.state = 3686; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public beginWork(): BeginWorkContext { - let _localctx: BeginWorkContext = new BeginWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 258, SqlParser.RULE_beginWork); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3689; - this.match(SqlParser.BEGIN); - this.state = 3691; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WORK) { - { - this.state = 3690; - this.match(SqlParser.WORK); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public commitWork(): CommitWorkContext { - let _localctx: CommitWorkContext = new CommitWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 260, SqlParser.RULE_commitWork); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3693; - this.match(SqlParser.COMMIT); - this.state = 3695; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WORK) { - { - this.state = 3694; - this.match(SqlParser.WORK); - } - } - - this.state = 3702; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AND) { - { - this.state = 3697; - this.match(SqlParser.AND); - this.state = 3699; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO) { - { - this.state = 3698; - _localctx._nochain = this.match(SqlParser.NO); - } - } - - this.state = 3701; - this.match(SqlParser.CHAIN); - } - } - - this.state = 3708; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 541, this._ctx) ) { - case 1: - { - this.state = 3705; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO) { - { - this.state = 3704; - _localctx._norelease = this.match(SqlParser.NO); - } - } - - this.state = 3707; - this.match(SqlParser.RELEASE); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public rollbackWork(): RollbackWorkContext { - let _localctx: RollbackWorkContext = new RollbackWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 262, SqlParser.RULE_rollbackWork); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3710; - this.match(SqlParser.ROLLBACK); - this.state = 3712; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WORK) { - { - this.state = 3711; - this.match(SqlParser.WORK); - } - } - - this.state = 3719; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AND) { - { - this.state = 3714; - this.match(SqlParser.AND); - this.state = 3716; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO) { - { - this.state = 3715; - _localctx._nochain = this.match(SqlParser.NO); - } - } - - this.state = 3718; - this.match(SqlParser.CHAIN); - } - } - - this.state = 3725; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 546, this._ctx) ) { - case 1: - { - this.state = 3722; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO) { - { - this.state = 3721; - _localctx._norelease = this.match(SqlParser.NO); - } - } - - this.state = 3724; - this.match(SqlParser.RELEASE); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public savepointStatement(): SavepointStatementContext { - let _localctx: SavepointStatementContext = new SavepointStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 264, SqlParser.RULE_savepointStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3727; - this.match(SqlParser.SAVEPOINT); - this.state = 3728; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public rollbackStatement(): RollbackStatementContext { - let _localctx: RollbackStatementContext = new RollbackStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 266, SqlParser.RULE_rollbackStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3730; - this.match(SqlParser.ROLLBACK); - this.state = 3732; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WORK) { - { - this.state = 3731; - this.match(SqlParser.WORK); - } - } - - this.state = 3734; - this.match(SqlParser.TO); - this.state = 3736; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 548, this._ctx) ) { - case 1: - { - this.state = 3735; - this.match(SqlParser.SAVEPOINT); - } - break; - } - this.state = 3738; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public releaseStatement(): ReleaseStatementContext { - let _localctx: ReleaseStatementContext = new ReleaseStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 268, SqlParser.RULE_releaseStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3740; - this.match(SqlParser.RELEASE); - this.state = 3741; - this.match(SqlParser.SAVEPOINT); - this.state = 3742; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lockTables(): LockTablesContext { - let _localctx: LockTablesContext = new LockTablesContext(this._ctx, this.state); - this.enterRule(_localctx, 270, SqlParser.RULE_lockTables); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3744; - this.match(SqlParser.LOCK); - this.state = 3745; - this.match(SqlParser.TABLES); - this.state = 3746; - this.lockTableElement(); - this.state = 3751; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3747; - this.match(SqlParser.COMMA); - this.state = 3748; - this.lockTableElement(); - } - } - this.state = 3753; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public unlockTables(): UnlockTablesContext { - let _localctx: UnlockTablesContext = new UnlockTablesContext(this._ctx, this.state); - this.enterRule(_localctx, 272, SqlParser.RULE_unlockTables); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3754; - this.match(SqlParser.UNLOCK); - this.state = 3755; - this.match(SqlParser.TABLES); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public setAutocommitStatement(): SetAutocommitStatementContext { - let _localctx: SetAutocommitStatementContext = new SetAutocommitStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 274, SqlParser.RULE_setAutocommitStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3757; - this.match(SqlParser.SET); - this.state = 3758; - this.match(SqlParser.AUTOCOMMIT); - this.state = 3759; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3760; - _localctx._autocommitValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - _localctx._autocommitValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public setTransactionStatement(): SetTransactionStatementContext { - let _localctx: SetTransactionStatementContext = new SetTransactionStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 276, SqlParser.RULE_setTransactionStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3762; - this.match(SqlParser.SET); - this.state = 3764; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.GLOBAL || _la === SqlParser.SESSION) { - { - this.state = 3763; - _localctx._transactionContext = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.GLOBAL || _la === SqlParser.SESSION)) { - _localctx._transactionContext = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 3766; - this.match(SqlParser.TRANSACTION); - this.state = 3767; - this.transactionOption(); - this.state = 3772; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3768; - this.match(SqlParser.COMMA); - this.state = 3769; - this.transactionOption(); - } - } - this.state = 3774; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public transactionMode(): TransactionModeContext { - let _localctx: TransactionModeContext = new TransactionModeContext(this._ctx, this.state); - this.enterRule(_localctx, 278, SqlParser.RULE_transactionMode); - try { - this.state = 3782; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 552, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3775; - this.match(SqlParser.WITH); - this.state = 3776; - this.match(SqlParser.CONSISTENT); - this.state = 3777; - this.match(SqlParser.SNAPSHOT); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3778; - this.match(SqlParser.READ); - this.state = 3779; - this.match(SqlParser.WRITE); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3780; - this.match(SqlParser.READ); - this.state = 3781; - this.match(SqlParser.ONLY); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lockTableElement(): LockTableElementContext { - let _localctx: LockTableElementContext = new LockTableElementContext(this._ctx, this.state); - this.enterRule(_localctx, 280, SqlParser.RULE_lockTableElement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3784; - this.tableName(); - this.state = 3789; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 3786; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 3785; - this.match(SqlParser.AS); - } - } - - this.state = 3788; - this.uid(); - } - } - - this.state = 3791; - this.lockAction(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lockAction(): LockActionContext { - let _localctx: LockActionContext = new LockActionContext(this._ctx, this.state); - this.enterRule(_localctx, 282, SqlParser.RULE_lockAction); - let _la: number; - try { - this.state = 3801; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.READ: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3793; - this.match(SqlParser.READ); - this.state = 3795; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOCAL) { - { - this.state = 3794; - this.match(SqlParser.LOCAL); - } - } - - } - break; - case SqlParser.LOW_PRIORITY: - case SqlParser.WRITE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3798; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LOW_PRIORITY) { - { - this.state = 3797; - this.match(SqlParser.LOW_PRIORITY); - } - } - - this.state = 3800; - this.match(SqlParser.WRITE); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public transactionOption(): TransactionOptionContext { - let _localctx: TransactionOptionContext = new TransactionOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 284, SqlParser.RULE_transactionOption); - try { - this.state = 3810; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 558, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3803; - this.match(SqlParser.ISOLATION); - this.state = 3804; - this.match(SqlParser.LEVEL); - this.state = 3805; - this.transactionLevel(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3806; - this.match(SqlParser.READ); - this.state = 3807; - this.match(SqlParser.WRITE); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3808; - this.match(SqlParser.READ); - this.state = 3809; - this.match(SqlParser.ONLY); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public transactionLevel(): TransactionLevelContext { - let _localctx: TransactionLevelContext = new TransactionLevelContext(this._ctx, this.state); - this.enterRule(_localctx, 286, SqlParser.RULE_transactionLevel); - try { - this.state = 3819; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 559, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 3812; - this.match(SqlParser.REPEATABLE); - this.state = 3813; - this.match(SqlParser.READ); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 3814; - this.match(SqlParser.READ); - this.state = 3815; - this.match(SqlParser.COMMITTED); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 3816; - this.match(SqlParser.READ); - this.state = 3817; - this.match(SqlParser.UNCOMMITTED); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 3818; - this.match(SqlParser.SERIALIZABLE); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public changeMaster(): ChangeMasterContext { - let _localctx: ChangeMasterContext = new ChangeMasterContext(this._ctx, this.state); - this.enterRule(_localctx, 288, SqlParser.RULE_changeMaster); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3821; - this.match(SqlParser.CHANGE); - this.state = 3822; - this.match(SqlParser.MASTER); - this.state = 3823; - this.match(SqlParser.TO); - this.state = 3824; - this.masterOption(); - this.state = 3829; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3825; - this.match(SqlParser.COMMA); - this.state = 3826; - this.masterOption(); - } - } - this.state = 3831; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3833; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 3832; - this.channelOption(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public changeReplicationFilter(): ChangeReplicationFilterContext { - let _localctx: ChangeReplicationFilterContext = new ChangeReplicationFilterContext(this._ctx, this.state); - this.enterRule(_localctx, 290, SqlParser.RULE_changeReplicationFilter); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3835; - this.match(SqlParser.CHANGE); - this.state = 3836; - this.match(SqlParser.REPLICATION); - this.state = 3837; - this.match(SqlParser.FILTER); - this.state = 3838; - this.replicationFilter(); - this.state = 3843; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3839; - this.match(SqlParser.COMMA); - this.state = 3840; - this.replicationFilter(); - } - } - this.state = 3845; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public purgeBinaryLogs(): PurgeBinaryLogsContext { - let _localctx: PurgeBinaryLogsContext = new PurgeBinaryLogsContext(this._ctx, this.state); - this.enterRule(_localctx, 292, SqlParser.RULE_purgeBinaryLogs); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3846; - this.match(SqlParser.PURGE); - this.state = 3847; - _localctx._purgeFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BINARY || _la === SqlParser.MASTER)) { - _localctx._purgeFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 3848; - this.match(SqlParser.LOGS); - this.state = 3853; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.TO: - { - this.state = 3849; - this.match(SqlParser.TO); - this.state = 3850; - _localctx._fileName = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.BEFORE: - { - this.state = 3851; - this.match(SqlParser.BEFORE); - this.state = 3852; - _localctx._timeValue = this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public resetMaster(): ResetMasterContext { - let _localctx: ResetMasterContext = new ResetMasterContext(this._ctx, this.state); - this.enterRule(_localctx, 294, SqlParser.RULE_resetMaster); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3855; - this.match(SqlParser.RESET); - this.state = 3856; - this.match(SqlParser.MASTER); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public resetSlave(): ResetSlaveContext { - let _localctx: ResetSlaveContext = new ResetSlaveContext(this._ctx, this.state); - this.enterRule(_localctx, 296, SqlParser.RULE_resetSlave); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3858; - this.match(SqlParser.RESET); - this.state = 3859; - this.match(SqlParser.SLAVE); - this.state = 3861; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL) { - { - this.state = 3860; - this.match(SqlParser.ALL); - } - } - - this.state = 3864; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 3863; - this.channelOption(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public startSlave(): StartSlaveContext { - let _localctx: StartSlaveContext = new StartSlaveContext(this._ctx, this.state); - this.enterRule(_localctx, 298, SqlParser.RULE_startSlave); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3866; - this.match(SqlParser.START); - this.state = 3867; - this.match(SqlParser.SLAVE); - this.state = 3876; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IO_THREAD || _la === SqlParser.SQL_THREAD) { - { - this.state = 3868; - this.threadType(); - this.state = 3873; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3869; - this.match(SqlParser.COMMA); - this.state = 3870; - this.threadType(); - } - } - this.state = 3875; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - this.state = 3880; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.UNTIL) { - { - this.state = 3878; - this.match(SqlParser.UNTIL); - this.state = 3879; - this.untilOption(); - } - } - - this.state = 3885; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.DEFAULT_AUTH || _la === SqlParser.PASSWORD || _la === SqlParser.PLUGIN_DIR || _la === SqlParser.USER) { - { - { - this.state = 3882; - this.connectionOption(); - } - } - this.state = 3887; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3889; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 3888; - this.channelOption(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public stopSlave(): StopSlaveContext { - let _localctx: StopSlaveContext = new StopSlaveContext(this._ctx, this.state); - this.enterRule(_localctx, 300, SqlParser.RULE_stopSlave); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3891; - this.match(SqlParser.STOP); - this.state = 3892; - this.match(SqlParser.SLAVE); - this.state = 3901; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IO_THREAD || _la === SqlParser.SQL_THREAD) { - { - this.state = 3893; - this.threadType(); - this.state = 3898; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3894; - this.match(SqlParser.COMMA); - this.state = 3895; - this.threadType(); - } - } - this.state = 3900; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public startGroupReplication(): StartGroupReplicationContext { - let _localctx: StartGroupReplicationContext = new StartGroupReplicationContext(this._ctx, this.state); - this.enterRule(_localctx, 302, SqlParser.RULE_startGroupReplication); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3903; - this.match(SqlParser.START); - this.state = 3904; - this.match(SqlParser.GROUP_REPLICATION); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public stopGroupReplication(): StopGroupReplicationContext { - let _localctx: StopGroupReplicationContext = new StopGroupReplicationContext(this._ctx, this.state); - this.enterRule(_localctx, 304, SqlParser.RULE_stopGroupReplication); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3906; - this.match(SqlParser.STOP); - this.state = 3907; - this.match(SqlParser.GROUP_REPLICATION); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public masterOption(): MasterOptionContext { - let _localctx: MasterOptionContext = new MasterOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 306, SqlParser.RULE_masterOption); - let _la: number; - try { - this.state = 3938; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.MASTER_BIND: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.RELAY_LOG_FILE: - _localctx = new MasterStringOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3909; - this.stringMasterOption(); - this.state = 3910; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3911; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.RELAY_LOG_POS: - _localctx = new MasterDecimalOptionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3913; - this.decimalMasterOption(); - this.state = 3914; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3915; - this.decimalLiteral(); - } - break; - case SqlParser.MASTER_SSL_VERIFY_SERVER_CERT: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_SSL: - _localctx = new MasterBoolOptionContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3917; - this.boolMasterOption(); - this.state = 3918; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3919; - (_localctx as MasterBoolOptionContext)._boolVal = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ZERO_DECIMAL || _la === SqlParser.ONE_DECIMAL)) { - (_localctx as MasterBoolOptionContext)._boolVal = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.MASTER_HEARTBEAT_PERIOD: - _localctx = new MasterRealOptionContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 3921; - this.match(SqlParser.MASTER_HEARTBEAT_PERIOD); - this.state = 3922; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3923; - this.match(SqlParser.REAL_LITERAL); - } - break; - case SqlParser.IGNORE_SERVER_IDS: - _localctx = new MasterUidListOptionContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 3924; - this.match(SqlParser.IGNORE_SERVER_IDS); - this.state = 3925; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3926; - this.match(SqlParser.LR_BRACKET); - this.state = 3935; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 3927; - this.uid(); - this.state = 3932; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3928; - this.match(SqlParser.COMMA); - this.state = 3929; - this.uid(); - } - } - this.state = 3934; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - this.state = 3937; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public stringMasterOption(): StringMasterOptionContext { - let _localctx: StringMasterOptionContext = new StringMasterOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 308, SqlParser.RULE_stringMasterOption); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3940; - _la = this._input.LA(1); - if (!(_la === SqlParser.MASTER_BIND || ((((_la - 410)) & ~0x1F) === 0 && ((1 << (_la - 410)) & ((1 << (SqlParser.MASTER_HOST - 410)) | (1 << (SqlParser.MASTER_LOG_FILE - 410)) | (1 << (SqlParser.MASTER_PASSWORD - 410)) | (1 << (SqlParser.MASTER_SSL_CA - 410)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 410)) | (1 << (SqlParser.MASTER_SSL_CERT - 410)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 410)) | (1 << (SqlParser.MASTER_SSL_CRL - 410)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 410)) | (1 << (SqlParser.MASTER_SSL_KEY - 410)) | (1 << (SqlParser.MASTER_TLS_VERSION - 410)) | (1 << (SqlParser.MASTER_USER - 410)))) !== 0) || _la === SqlParser.RELAY_LOG_FILE)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public decimalMasterOption(): DecimalMasterOptionContext { - let _localctx: DecimalMasterOptionContext = new DecimalMasterOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 310, SqlParser.RULE_decimalMasterOption); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3942; - _la = this._input.LA(1); - if (!(((((_la - 407)) & ~0x1F) === 0 && ((1 << (_la - 407)) & ((1 << (SqlParser.MASTER_CONNECT_RETRY - 407)) | (1 << (SqlParser.MASTER_DELAY - 407)) | (1 << (SqlParser.MASTER_LOG_POS - 407)) | (1 << (SqlParser.MASTER_PORT - 407)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 407)))) !== 0) || _la === SqlParser.RELAY_LOG_POS)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public boolMasterOption(): BoolMasterOptionContext { - let _localctx: BoolMasterOptionContext = new BoolMasterOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 312, SqlParser.RULE_boolMasterOption); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3944; - _la = this._input.LA(1); - if (!(_la === SqlParser.MASTER_SSL_VERIFY_SERVER_CERT || _la === SqlParser.MASTER_AUTO_POSITION || _la === SqlParser.MASTER_SSL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public channelOption(): ChannelOptionContext { - let _localctx: ChannelOptionContext = new ChannelOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 314, SqlParser.RULE_channelOption); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 3946; - this.match(SqlParser.FOR); - this.state = 3947; - this.match(SqlParser.CHANNEL); - this.state = 3948; - this.match(SqlParser.STRING_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public replicationFilter(): ReplicationFilterContext { - let _localctx: ReplicationFilterContext = new ReplicationFilterContext(this._ctx, this.state); - this.enterRule(_localctx, 316, SqlParser.RULE_replicationFilter); - let _la: number; - try { - this.state = 3999; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.REPLICATE_DO_DB: - _localctx = new DoDbReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 3950; - this.match(SqlParser.REPLICATE_DO_DB); - this.state = 3951; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3952; - this.match(SqlParser.LR_BRACKET); - this.state = 3953; - this.uidList(); - this.state = 3954; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_IGNORE_DB: - _localctx = new IgnoreDbReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 3956; - this.match(SqlParser.REPLICATE_IGNORE_DB); - this.state = 3957; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3958; - this.match(SqlParser.LR_BRACKET); - this.state = 3959; - this.uidList(); - this.state = 3960; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_DO_TABLE: - _localctx = new DoTableReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 3962; - this.match(SqlParser.REPLICATE_DO_TABLE); - this.state = 3963; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3964; - this.match(SqlParser.LR_BRACKET); - this.state = 3965; - this.tables(); - this.state = 3966; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_IGNORE_TABLE: - _localctx = new IgnoreTableReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 3968; - this.match(SqlParser.REPLICATE_IGNORE_TABLE); - this.state = 3969; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3970; - this.match(SqlParser.LR_BRACKET); - this.state = 3971; - this.tables(); - this.state = 3972; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_WILD_DO_TABLE: - _localctx = new WildDoTableReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 3974; - this.match(SqlParser.REPLICATE_WILD_DO_TABLE); - this.state = 3975; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3976; - this.match(SqlParser.LR_BRACKET); - this.state = 3977; - this.simpleStrings(); - this.state = 3978; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - _localctx = new WildIgnoreTableReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 3980; - this.match(SqlParser.REPLICATE_WILD_IGNORE_TABLE); - this.state = 3981; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3982; - this.match(SqlParser.LR_BRACKET); - this.state = 3983; - this.simpleStrings(); - this.state = 3984; - this.match(SqlParser.RR_BRACKET); - } - break; - case SqlParser.REPLICATE_REWRITE_DB: - _localctx = new RewriteDbReplicationContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 3986; - this.match(SqlParser.REPLICATE_REWRITE_DB); - this.state = 3987; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 3988; - this.match(SqlParser.LR_BRACKET); - this.state = 3989; - this.tablePair(); - this.state = 3994; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 3990; - this.match(SqlParser.COMMA); - this.state = 3991; - this.tablePair(); - } - } - this.state = 3996; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 3997; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tablePair(): TablePairContext { - let _localctx: TablePairContext = new TablePairContext(this._ctx, this.state); - this.enterRule(_localctx, 318, SqlParser.RULE_tablePair); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4001; - this.match(SqlParser.LR_BRACKET); - this.state = 4002; - _localctx._firstTable = this.tableName(); - this.state = 4003; - this.match(SqlParser.COMMA); - this.state = 4004; - _localctx._secondTable = this.tableName(); - this.state = 4005; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public threadType(): ThreadTypeContext { - let _localctx: ThreadTypeContext = new ThreadTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 320, SqlParser.RULE_threadType); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4007; - _la = this._input.LA(1); - if (!(_la === SqlParser.IO_THREAD || _la === SqlParser.SQL_THREAD)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public untilOption(): UntilOptionContext { - let _localctx: UntilOptionContext = new UntilOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 322, SqlParser.RULE_untilOption); - let _la: number; - try { - this.state = 4027; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_BEFORE_GTIDS: - _localctx = new GtidsUntilOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4009; - (_localctx as GtidsUntilOptionContext)._gtids = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.SQL_AFTER_GTIDS || _la === SqlParser.SQL_BEFORE_GTIDS)) { - (_localctx as GtidsUntilOptionContext)._gtids = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4010; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4011; - this.gtuidSet(); - } - break; - case SqlParser.MASTER_LOG_FILE: - _localctx = new MasterLogUntilOptionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4012; - this.match(SqlParser.MASTER_LOG_FILE); - this.state = 4013; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4014; - this.match(SqlParser.STRING_LITERAL); - this.state = 4015; - this.match(SqlParser.COMMA); - this.state = 4016; - this.match(SqlParser.MASTER_LOG_POS); - this.state = 4017; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4018; - this.decimalLiteral(); - } - break; - case SqlParser.RELAY_LOG_FILE: - _localctx = new RelayLogUntilOptionContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4019; - this.match(SqlParser.RELAY_LOG_FILE); - this.state = 4020; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4021; - this.match(SqlParser.STRING_LITERAL); - this.state = 4022; - this.match(SqlParser.COMMA); - this.state = 4023; - this.match(SqlParser.RELAY_LOG_POS); - this.state = 4024; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4025; - this.decimalLiteral(); - } - break; - case SqlParser.SQL_AFTER_MTS_GAPS: - _localctx = new SqlGapsUntilOptionContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4026; - this.match(SqlParser.SQL_AFTER_MTS_GAPS); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public connectionOption(): ConnectionOptionContext { - let _localctx: ConnectionOptionContext = new ConnectionOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 324, SqlParser.RULE_connectionOption); - try { - this.state = 4041; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.USER: - _localctx = new UserConnectionOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4029; - this.match(SqlParser.USER); - this.state = 4030; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4031; - (_localctx as UserConnectionOptionContext)._conOptUser = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.PASSWORD: - _localctx = new PasswordConnectionOptionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4032; - this.match(SqlParser.PASSWORD); - this.state = 4033; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4034; - (_localctx as PasswordConnectionOptionContext)._conOptPassword = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.DEFAULT_AUTH: - _localctx = new DefaultAuthConnectionOptionContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4035; - this.match(SqlParser.DEFAULT_AUTH); - this.state = 4036; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4037; - (_localctx as DefaultAuthConnectionOptionContext)._conOptDefAuth = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.PLUGIN_DIR: - _localctx = new PluginDirConnectionOptionContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4038; - this.match(SqlParser.PLUGIN_DIR); - this.state = 4039; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4040; - (_localctx as PluginDirConnectionOptionContext)._conOptPluginDir = this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public gtuidSet(): GtuidSetContext { - let _localctx: GtuidSetContext = new GtuidSetContext(this._ctx, this.state); - this.enterRule(_localctx, 326, SqlParser.RULE_gtuidSet); - let _la: number; - try { - this.state = 4052; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4043; - this.uuidSet(); - this.state = 4048; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4044; - this.match(SqlParser.COMMA); - this.state = 4045; - this.uuidSet(); - } - } - this.state = 4050; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - case SqlParser.STRING_LITERAL: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4051; - this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaStartTransaction(): XaStartTransactionContext { - let _localctx: XaStartTransactionContext = new XaStartTransactionContext(this._ctx, this.state); - this.enterRule(_localctx, 328, SqlParser.RULE_xaStartTransaction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4054; - this.match(SqlParser.XA); - this.state = 4055; - _localctx._xaStart = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BEGIN || _la === SqlParser.START)) { - _localctx._xaStart = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4056; - this.xid(); - this.state = 4058; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.JOIN || _la === SqlParser.RESUME) { - { - this.state = 4057; - _localctx._xaAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.JOIN || _la === SqlParser.RESUME)) { - _localctx._xaAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaEndTransaction(): XaEndTransactionContext { - let _localctx: XaEndTransactionContext = new XaEndTransactionContext(this._ctx, this.state); - this.enterRule(_localctx, 330, SqlParser.RULE_xaEndTransaction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4060; - this.match(SqlParser.XA); - this.state = 4061; - this.match(SqlParser.END); - this.state = 4062; - this.xid(); - this.state = 4068; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SUSPEND) { - { - this.state = 4063; - this.match(SqlParser.SUSPEND); - this.state = 4066; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 4064; - this.match(SqlParser.FOR); - this.state = 4065; - this.match(SqlParser.MIGRATE); - } - } - - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaPrepareStatement(): XaPrepareStatementContext { - let _localctx: XaPrepareStatementContext = new XaPrepareStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 332, SqlParser.RULE_xaPrepareStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4070; - this.match(SqlParser.XA); - this.state = 4071; - this.match(SqlParser.PREPARE); - this.state = 4072; - this.xid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaCommitWork(): XaCommitWorkContext { - let _localctx: XaCommitWorkContext = new XaCommitWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 334, SqlParser.RULE_xaCommitWork); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4074; - this.match(SqlParser.XA); - this.state = 4075; - this.match(SqlParser.COMMIT); - this.state = 4076; - this.xid(); - this.state = 4079; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ONE) { - { - this.state = 4077; - this.match(SqlParser.ONE); - this.state = 4078; - this.match(SqlParser.PHASE); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaRollbackWork(): XaRollbackWorkContext { - let _localctx: XaRollbackWorkContext = new XaRollbackWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 336, SqlParser.RULE_xaRollbackWork); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4081; - this.match(SqlParser.XA); - this.state = 4082; - this.match(SqlParser.ROLLBACK); - this.state = 4083; - this.xid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xaRecoverWork(): XaRecoverWorkContext { - let _localctx: XaRecoverWorkContext = new XaRecoverWorkContext(this._ctx, this.state); - this.enterRule(_localctx, 338, SqlParser.RULE_xaRecoverWork); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4085; - this.match(SqlParser.XA); - this.state = 4086; - this.match(SqlParser.RECOVER); - this.state = 4089; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONVERT) { - { - this.state = 4087; - this.match(SqlParser.CONVERT); - this.state = 4088; - this.xid(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public prepareStatement(): PrepareStatementContext { - let _localctx: PrepareStatementContext = new PrepareStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 340, SqlParser.RULE_prepareStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4091; - this.match(SqlParser.PREPARE); - this.state = 4092; - this.uid(); - this.state = 4093; - this.match(SqlParser.FROM); - this.state = 4096; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STRING_LITERAL: - { - this.state = 4094; - _localctx._query = this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.LOCAL_ID: - { - this.state = 4095; - _localctx._variable = this.match(SqlParser.LOCAL_ID); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public executeStatement(): ExecuteStatementContext { - let _localctx: ExecuteStatementContext = new ExecuteStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 342, SqlParser.RULE_executeStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4098; - this.match(SqlParser.EXECUTE); - this.state = 4099; - this.uid(); - this.state = 4102; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 4100; - this.match(SqlParser.USING); - this.state = 4101; - this.userVariables(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public deallocatePrepare(): DeallocatePrepareContext { - let _localctx: DeallocatePrepareContext = new DeallocatePrepareContext(this._ctx, this.state); - this.enterRule(_localctx, 344, SqlParser.RULE_deallocatePrepare); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4104; - _localctx._dropFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DROP || _la === SqlParser.DEALLOCATE)) { - _localctx._dropFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4105; - this.match(SqlParser.PREPARE); - this.state = 4106; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public routineBody(): RoutineBodyContext { - let _localctx: RoutineBodyContext = new RoutineBodyContext(this._ctx, this.state); - this.enterRule(_localctx, 346, SqlParser.RULE_routineBody); - try { - this.state = 4110; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 589, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4108; - this.blockStatement(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4109; - this.sqlStatement(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public blockStatement(): BlockStatementContext { - let _localctx: BlockStatementContext = new BlockStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 348, SqlParser.RULE_blockStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4115; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 590, this._ctx) ) { - case 1: - { - this.state = 4112; - this.uid(); - this.state = 4113; - this.match(SqlParser.COLON_SYMB); - } - break; - } - this.state = 4117; - this.match(SqlParser.BEGIN); - this.state = 4156; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 596, this._ctx) ) { - case 1: - { - this.state = 4123; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 591, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 4118; - this.declareVariable(); - this.state = 4119; - this.match(SqlParser.SEMI); - } - } - } - this.state = 4125; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 591, this._ctx); - } - this.state = 4131; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 592, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 4126; - this.declareCondition(); - this.state = 4127; - this.match(SqlParser.SEMI); - } - } - } - this.state = 4133; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 592, this._ctx); - } - this.state = 4139; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 593, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 4134; - this.declareCursor(); - this.state = 4135; - this.match(SqlParser.SEMI); - } - } - } - this.state = 4141; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 593, this._ctx); - } - this.state = 4147; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.DECLARE) { - { - { - this.state = 4142; - this.declareHandler(); - this.state = 4143; - this.match(SqlParser.SEMI); - } - } - this.state = 4149; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4153; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 595, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 4150; - this.procedureSqlStatement(); - } - } - } - this.state = 4155; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 595, this._ctx); - } - } - break; - } - this.state = 4158; - this.match(SqlParser.END); - this.state = 4160; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 597, this._ctx) ) { - case 1: - { - this.state = 4159; - this.uid(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public caseStatement(): CaseStatementContext { - let _localctx: CaseStatementContext = new CaseStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 350, SqlParser.RULE_caseStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4162; - this.match(SqlParser.CASE); - this.state = 4165; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 598, this._ctx) ) { - case 1: - { - this.state = 4163; - this.uid(); - } - break; - - case 2: - { - this.state = 4164; - this.expression(0); - } - break; - } - this.state = 4168; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 4167; - this.caseAlternative(); - } - } - this.state = 4170; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.WHEN); - this.state = 4178; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ELSE) { - { - this.state = 4172; - this.match(SqlParser.ELSE); - this.state = 4174; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4173; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4176; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 600, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - } - } - - this.state = 4180; - this.match(SqlParser.END); - this.state = 4181; - this.match(SqlParser.CASE); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public ifStatement(): IfStatementContext { - let _localctx: IfStatementContext = new IfStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 352, SqlParser.RULE_ifStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4183; - this.match(SqlParser.IF); - this.state = 4184; - this.expression(0); - this.state = 4185; - this.match(SqlParser.THEN); - this.state = 4187; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4186; - _localctx._procedureSqlStatement = this.procedureSqlStatement(); - _localctx._thenStatements.push(_localctx._procedureSqlStatement); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4189; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 602, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 4194; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.ELSEIF) { - { - { - this.state = 4191; - this.elifAlternative(); - } - } - this.state = 4196; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4203; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ELSE) { - { - this.state = 4197; - this.match(SqlParser.ELSE); - this.state = 4199; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4198; - _localctx._procedureSqlStatement = this.procedureSqlStatement(); - _localctx._elseStatements.push(_localctx._procedureSqlStatement); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4201; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 604, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - } - } - - this.state = 4205; - this.match(SqlParser.END); - this.state = 4206; - this.match(SqlParser.IF); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public iterateStatement(): IterateStatementContext { - let _localctx: IterateStatementContext = new IterateStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 354, SqlParser.RULE_iterateStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4208; - this.match(SqlParser.ITERATE); - this.state = 4209; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public leaveStatement(): LeaveStatementContext { - let _localctx: LeaveStatementContext = new LeaveStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 356, SqlParser.RULE_leaveStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4211; - this.match(SqlParser.LEAVE); - this.state = 4212; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public loopStatement(): LoopStatementContext { - let _localctx: LoopStatementContext = new LoopStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 358, SqlParser.RULE_loopStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4217; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4214; - this.uid(); - this.state = 4215; - this.match(SqlParser.COLON_SYMB); - } - } - - this.state = 4219; - this.match(SqlParser.LOOP); - this.state = 4221; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4220; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4223; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 607, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 4225; - this.match(SqlParser.END); - this.state = 4226; - this.match(SqlParser.LOOP); - this.state = 4228; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4227; - this.uid(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public repeatStatement(): RepeatStatementContext { - let _localctx: RepeatStatementContext = new RepeatStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 360, SqlParser.RULE_repeatStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4233; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4230; - this.uid(); - this.state = 4231; - this.match(SqlParser.COLON_SYMB); - } - } - - this.state = 4235; - this.match(SqlParser.REPEAT); - this.state = 4237; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4236; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4239; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 610, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 4241; - this.match(SqlParser.UNTIL); - this.state = 4242; - this.expression(0); - this.state = 4243; - this.match(SqlParser.END); - this.state = 4244; - this.match(SqlParser.REPEAT); - this.state = 4246; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4245; - this.uid(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public returnStatement(): ReturnStatementContext { - let _localctx: ReturnStatementContext = new ReturnStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 362, SqlParser.RULE_returnStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4248; - this.match(SqlParser.RETURN); - this.state = 4249; - this.expression(0); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public whileStatement(): WhileStatementContext { - let _localctx: WhileStatementContext = new WhileStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 364, SqlParser.RULE_whileStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4254; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4251; - this.uid(); - this.state = 4252; - this.match(SqlParser.COLON_SYMB); - } - } - - this.state = 4256; - this.match(SqlParser.WHILE); - this.state = 4257; - this.expression(0); - this.state = 4258; - this.match(SqlParser.DO); - this.state = 4260; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4259; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4262; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 613, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - this.state = 4264; - this.match(SqlParser.END); - this.state = 4265; - this.match(SqlParser.WHILE); - this.state = 4267; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)))) !== 0) || _la === SqlParser.LEFT || _la === SqlParser.NUMBER || _la === SqlParser.RIGHT || _la === SqlParser.STACKED || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVISIBLE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.VISIBLE - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.QUARTER - 593)) | (1 << (SqlParser.MONTH - 593)) | (1 << (SqlParser.DAY - 593)) | (1 << (SqlParser.HOUR - 593)) | (1 << (SqlParser.MINUTE - 593)) | (1 << (SqlParser.WEEK - 593)) | (1 << (SqlParser.SECOND - 593)) | (1 << (SqlParser.MICROSECOND - 593)) | (1 << (SqlParser.TABLES - 593)) | (1 << (SqlParser.ROUTINE - 593)) | (1 << (SqlParser.EXECUTE - 593)) | (1 << (SqlParser.FILE - 593)) | (1 << (SqlParser.PROCESS - 593)) | (1 << (SqlParser.RELOAD - 593)) | (1 << (SqlParser.SHUTDOWN - 593)) | (1 << (SqlParser.SUPER - 593)) | (1 << (SqlParser.PRIVILEGES - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)) | (1 << (SqlParser.ARMSCII8 - 625)) | (1 << (SqlParser.ASCII - 625)) | (1 << (SqlParser.BIG5 - 625)) | (1 << (SqlParser.CP1250 - 625)) | (1 << (SqlParser.CP1251 - 625)) | (1 << (SqlParser.CP1256 - 625)) | (1 << (SqlParser.CP1257 - 625)) | (1 << (SqlParser.CP850 - 625)) | (1 << (SqlParser.CP852 - 625)) | (1 << (SqlParser.CP866 - 625)) | (1 << (SqlParser.CP932 - 625)) | (1 << (SqlParser.DEC8 - 625)) | (1 << (SqlParser.EUCJPMS - 625)) | (1 << (SqlParser.EUCKR - 625)) | (1 << (SqlParser.GB2312 - 625)) | (1 << (SqlParser.GBK - 625)) | (1 << (SqlParser.GEOSTD8 - 625)) | (1 << (SqlParser.GREEK - 625)) | (1 << (SqlParser.HEBREW - 625)) | (1 << (SqlParser.HP8 - 625)))) !== 0) || ((((_la - 657)) & ~0x1F) === 0 && ((1 << (_la - 657)) & ((1 << (SqlParser.KEYBCS2 - 657)) | (1 << (SqlParser.KOI8R - 657)) | (1 << (SqlParser.KOI8U - 657)) | (1 << (SqlParser.LATIN1 - 657)) | (1 << (SqlParser.LATIN2 - 657)) | (1 << (SqlParser.LATIN5 - 657)) | (1 << (SqlParser.LATIN7 - 657)) | (1 << (SqlParser.MACCE - 657)) | (1 << (SqlParser.MACROMAN - 657)) | (1 << (SqlParser.SJIS - 657)) | (1 << (SqlParser.SWE7 - 657)) | (1 << (SqlParser.TIS620 - 657)) | (1 << (SqlParser.UCS2 - 657)) | (1 << (SqlParser.UJIS - 657)) | (1 << (SqlParser.UTF16 - 657)) | (1 << (SqlParser.UTF16LE - 657)) | (1 << (SqlParser.UTF32 - 657)) | (1 << (SqlParser.UTF8 - 657)) | (1 << (SqlParser.UTF8MB3 - 657)) | (1 << (SqlParser.UTF8MB4 - 657)) | (1 << (SqlParser.ARCHIVE - 657)) | (1 << (SqlParser.BLACKHOLE - 657)) | (1 << (SqlParser.CSV - 657)) | (1 << (SqlParser.FEDERATED - 657)) | (1 << (SqlParser.INNODB - 657)) | (1 << (SqlParser.MEMORY - 657)) | (1 << (SqlParser.MRG_MYISAM - 657)) | (1 << (SqlParser.MYISAM - 657)) | (1 << (SqlParser.NDB - 657)) | (1 << (SqlParser.NDBCLUSTER - 657)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 657)) | (1 << (SqlParser.TOKUDB - 657)))) !== 0) || ((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 689)) | (1 << (SqlParser.LINESTRING - 689)) | (1 << (SqlParser.MULTILINESTRING - 689)) | (1 << (SqlParser.MULTIPOINT - 689)) | (1 << (SqlParser.MULTIPOLYGON - 689)) | (1 << (SqlParser.POINT - 689)) | (1 << (SqlParser.POLYGON - 689)) | (1 << (SqlParser.ABS - 689)) | (1 << (SqlParser.ACOS - 689)) | (1 << (SqlParser.ADDDATE - 689)) | (1 << (SqlParser.ADDTIME - 689)) | (1 << (SqlParser.AES_DECRYPT - 689)) | (1 << (SqlParser.AES_ENCRYPT - 689)) | (1 << (SqlParser.AREA - 689)) | (1 << (SqlParser.ASBINARY - 689)) | (1 << (SqlParser.ASIN - 689)) | (1 << (SqlParser.ASTEXT - 689)) | (1 << (SqlParser.ASWKB - 689)) | (1 << (SqlParser.ASWKT - 689)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 689)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 689)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 689)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 689)) | (1 << (SqlParser.ATAN - 689)) | (1 << (SqlParser.ATAN2 - 689)))) !== 0) || ((((_la - 721)) & ~0x1F) === 0 && ((1 << (_la - 721)) & ((1 << (SqlParser.BENCHMARK - 721)) | (1 << (SqlParser.BIN - 721)) | (1 << (SqlParser.BIT_COUNT - 721)) | (1 << (SqlParser.BIT_LENGTH - 721)) | (1 << (SqlParser.BUFFER - 721)) | (1 << (SqlParser.CATALOG_NAME - 721)) | (1 << (SqlParser.CEIL - 721)) | (1 << (SqlParser.CEILING - 721)) | (1 << (SqlParser.CENTROID - 721)) | (1 << (SqlParser.CHARACTER_LENGTH - 721)) | (1 << (SqlParser.CHARSET - 721)) | (1 << (SqlParser.CHAR_LENGTH - 721)) | (1 << (SqlParser.COERCIBILITY - 721)) | (1 << (SqlParser.COLLATION - 721)) | (1 << (SqlParser.COMPRESS - 721)) | (1 << (SqlParser.CONCAT - 721)) | (1 << (SqlParser.CONCAT_WS - 721)) | (1 << (SqlParser.CONNECTION_ID - 721)) | (1 << (SqlParser.CONV - 721)) | (1 << (SqlParser.CONVERT_TZ - 721)) | (1 << (SqlParser.COS - 721)) | (1 << (SqlParser.COT - 721)) | (1 << (SqlParser.CRC32 - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 721)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 721)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 721)) | (1 << (SqlParser.CREATE_DIGEST - 721)) | (1 << (SqlParser.CROSSES - 721)) | (1 << (SqlParser.DATEDIFF - 721)) | (1 << (SqlParser.DATE_FORMAT - 721)) | (1 << (SqlParser.DAYNAME - 721)) | (1 << (SqlParser.DAYOFMONTH - 721)))) !== 0) || ((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & ((1 << (SqlParser.DAYOFWEEK - 753)) | (1 << (SqlParser.DAYOFYEAR - 753)) | (1 << (SqlParser.DECODE - 753)) | (1 << (SqlParser.DEGREES - 753)) | (1 << (SqlParser.DES_DECRYPT - 753)) | (1 << (SqlParser.DES_ENCRYPT - 753)) | (1 << (SqlParser.DIMENSION - 753)) | (1 << (SqlParser.DISJOINT - 753)) | (1 << (SqlParser.ELT - 753)) | (1 << (SqlParser.ENCODE - 753)) | (1 << (SqlParser.ENCRYPT - 753)) | (1 << (SqlParser.ENDPOINT - 753)) | (1 << (SqlParser.ENVELOPE - 753)) | (1 << (SqlParser.EQUALS - 753)) | (1 << (SqlParser.EXP - 753)) | (1 << (SqlParser.EXPORT_SET - 753)) | (1 << (SqlParser.EXTERIORRING - 753)) | (1 << (SqlParser.EXTRACTVALUE - 753)) | (1 << (SqlParser.FIELD - 753)) | (1 << (SqlParser.FIND_IN_SET - 753)) | (1 << (SqlParser.FLOOR - 753)) | (1 << (SqlParser.FORMAT - 753)) | (1 << (SqlParser.FOUND_ROWS - 753)) | (1 << (SqlParser.FROM_BASE64 - 753)) | (1 << (SqlParser.FROM_DAYS - 753)) | (1 << (SqlParser.FROM_UNIXTIME - 753)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 753)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 753)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 753)) | (1 << (SqlParser.GEOMETRYFROMWKB - 753)))) !== 0) || ((((_la - 785)) & ~0x1F) === 0 && ((1 << (_la - 785)) & ((1 << (SqlParser.GEOMETRYN - 785)) | (1 << (SqlParser.GEOMETRYTYPE - 785)) | (1 << (SqlParser.GEOMFROMTEXT - 785)) | (1 << (SqlParser.GEOMFROMWKB - 785)) | (1 << (SqlParser.GET_FORMAT - 785)) | (1 << (SqlParser.GET_LOCK - 785)) | (1 << (SqlParser.GLENGTH - 785)) | (1 << (SqlParser.GREATEST - 785)) | (1 << (SqlParser.GTID_SUBSET - 785)) | (1 << (SqlParser.GTID_SUBTRACT - 785)) | (1 << (SqlParser.HEX - 785)) | (1 << (SqlParser.IFNULL - 785)) | (1 << (SqlParser.INET6_ATON - 785)) | (1 << (SqlParser.INET6_NTOA - 785)) | (1 << (SqlParser.INET_ATON - 785)) | (1 << (SqlParser.INET_NTOA - 785)) | (1 << (SqlParser.INSTR - 785)) | (1 << (SqlParser.INTERIORRINGN - 785)) | (1 << (SqlParser.INTERSECTS - 785)) | (1 << (SqlParser.ISCLOSED - 785)) | (1 << (SqlParser.ISEMPTY - 785)) | (1 << (SqlParser.ISNULL - 785)) | (1 << (SqlParser.ISSIMPLE - 785)) | (1 << (SqlParser.IS_FREE_LOCK - 785)) | (1 << (SqlParser.IS_IPV4 - 785)) | (1 << (SqlParser.IS_IPV4_COMPAT - 785)) | (1 << (SqlParser.IS_IPV4_MAPPED - 785)) | (1 << (SqlParser.IS_IPV6 - 785)) | (1 << (SqlParser.IS_USED_LOCK - 785)) | (1 << (SqlParser.LAST_INSERT_ID - 785)) | (1 << (SqlParser.LCASE - 785)) | (1 << (SqlParser.LEAST - 785)))) !== 0) || ((((_la - 817)) & ~0x1F) === 0 && ((1 << (_la - 817)) & ((1 << (SqlParser.LENGTH - 817)) | (1 << (SqlParser.LINEFROMTEXT - 817)) | (1 << (SqlParser.LINEFROMWKB - 817)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 817)) | (1 << (SqlParser.LINESTRINGFROMWKB - 817)) | (1 << (SqlParser.LN - 817)) | (1 << (SqlParser.LOAD_FILE - 817)) | (1 << (SqlParser.LOCATE - 817)) | (1 << (SqlParser.LOG - 817)) | (1 << (SqlParser.LOG10 - 817)) | (1 << (SqlParser.LOG2 - 817)) | (1 << (SqlParser.LOWER - 817)) | (1 << (SqlParser.LPAD - 817)) | (1 << (SqlParser.LTRIM - 817)) | (1 << (SqlParser.MAKEDATE - 817)) | (1 << (SqlParser.MAKETIME - 817)) | (1 << (SqlParser.MAKE_SET - 817)) | (1 << (SqlParser.MASTER_POS_WAIT - 817)) | (1 << (SqlParser.MBRCONTAINS - 817)) | (1 << (SqlParser.MBRDISJOINT - 817)) | (1 << (SqlParser.MBREQUAL - 817)) | (1 << (SqlParser.MBRINTERSECTS - 817)) | (1 << (SqlParser.MBROVERLAPS - 817)) | (1 << (SqlParser.MBRTOUCHES - 817)) | (1 << (SqlParser.MBRWITHIN - 817)) | (1 << (SqlParser.MD5 - 817)) | (1 << (SqlParser.MLINEFROMTEXT - 817)) | (1 << (SqlParser.MLINEFROMWKB - 817)) | (1 << (SqlParser.MONTHNAME - 817)) | (1 << (SqlParser.MPOINTFROMTEXT - 817)) | (1 << (SqlParser.MPOINTFROMWKB - 817)) | (1 << (SqlParser.MPOLYFROMTEXT - 817)))) !== 0) || ((((_la - 849)) & ~0x1F) === 0 && ((1 << (_la - 849)) & ((1 << (SqlParser.MPOLYFROMWKB - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 849)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 849)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 849)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 849)) | (1 << (SqlParser.NAME_CONST - 849)) | (1 << (SqlParser.NULLIF - 849)) | (1 << (SqlParser.NUMGEOMETRIES - 849)) | (1 << (SqlParser.NUMINTERIORRINGS - 849)) | (1 << (SqlParser.NUMPOINTS - 849)) | (1 << (SqlParser.OCT - 849)) | (1 << (SqlParser.OCTET_LENGTH - 849)) | (1 << (SqlParser.ORD - 849)) | (1 << (SqlParser.OVERLAPS - 849)) | (1 << (SqlParser.PERIOD_ADD - 849)) | (1 << (SqlParser.PERIOD_DIFF - 849)) | (1 << (SqlParser.PI - 849)) | (1 << (SqlParser.POINTFROMTEXT - 849)) | (1 << (SqlParser.POINTFROMWKB - 849)) | (1 << (SqlParser.POINTN - 849)) | (1 << (SqlParser.POLYFROMTEXT - 849)) | (1 << (SqlParser.POLYFROMWKB - 849)) | (1 << (SqlParser.POLYGONFROMTEXT - 849)) | (1 << (SqlParser.POLYGONFROMWKB - 849)) | (1 << (SqlParser.POW - 849)) | (1 << (SqlParser.POWER - 849)) | (1 << (SqlParser.QUOTE - 849)) | (1 << (SqlParser.RADIANS - 849)) | (1 << (SqlParser.RAND - 849)) | (1 << (SqlParser.RANDOM_BYTES - 849)))) !== 0) || ((((_la - 881)) & ~0x1F) === 0 && ((1 << (_la - 881)) & ((1 << (SqlParser.RELEASE_LOCK - 881)) | (1 << (SqlParser.REVERSE - 881)) | (1 << (SqlParser.ROUND - 881)) | (1 << (SqlParser.ROW_COUNT - 881)) | (1 << (SqlParser.RPAD - 881)) | (1 << (SqlParser.RTRIM - 881)) | (1 << (SqlParser.SEC_TO_TIME - 881)) | (1 << (SqlParser.SESSION_USER - 881)) | (1 << (SqlParser.SHA - 881)) | (1 << (SqlParser.SHA1 - 881)) | (1 << (SqlParser.SHA2 - 881)) | (1 << (SqlParser.SCHEMA_NAME - 881)) | (1 << (SqlParser.SIGN - 881)) | (1 << (SqlParser.SIN - 881)) | (1 << (SqlParser.SLEEP - 881)) | (1 << (SqlParser.SOUNDEX - 881)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 881)) | (1 << (SqlParser.SQRT - 881)) | (1 << (SqlParser.SRID - 881)) | (1 << (SqlParser.STARTPOINT - 881)) | (1 << (SqlParser.STRCMP - 881)) | (1 << (SqlParser.STR_TO_DATE - 881)) | (1 << (SqlParser.ST_AREA - 881)) | (1 << (SqlParser.ST_ASBINARY - 881)) | (1 << (SqlParser.ST_ASTEXT - 881)) | (1 << (SqlParser.ST_ASWKB - 881)) | (1 << (SqlParser.ST_ASWKT - 881)) | (1 << (SqlParser.ST_BUFFER - 881)) | (1 << (SqlParser.ST_CENTROID - 881)) | (1 << (SqlParser.ST_CONTAINS - 881)) | (1 << (SqlParser.ST_CROSSES - 881)) | (1 << (SqlParser.ST_DIFFERENCE - 881)))) !== 0) || ((((_la - 913)) & ~0x1F) === 0 && ((1 << (_la - 913)) & ((1 << (SqlParser.ST_DIMENSION - 913)) | (1 << (SqlParser.ST_DISJOINT - 913)) | (1 << (SqlParser.ST_DISTANCE - 913)) | (1 << (SqlParser.ST_ENDPOINT - 913)) | (1 << (SqlParser.ST_ENVELOPE - 913)) | (1 << (SqlParser.ST_EQUALS - 913)) | (1 << (SqlParser.ST_EXTERIORRING - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 913)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 913)) | (1 << (SqlParser.ST_GEOMETRYN - 913)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 913)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 913)) | (1 << (SqlParser.ST_GEOMFROMWKB - 913)) | (1 << (SqlParser.ST_INTERIORRINGN - 913)) | (1 << (SqlParser.ST_INTERSECTION - 913)) | (1 << (SqlParser.ST_INTERSECTS - 913)) | (1 << (SqlParser.ST_ISCLOSED - 913)) | (1 << (SqlParser.ST_ISEMPTY - 913)) | (1 << (SqlParser.ST_ISSIMPLE - 913)) | (1 << (SqlParser.ST_LINEFROMTEXT - 913)) | (1 << (SqlParser.ST_LINEFROMWKB - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 913)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 913)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 913)) | (1 << (SqlParser.ST_NUMINTERIORRING - 913)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 913)) | (1 << (SqlParser.ST_NUMPOINTS - 913)))) !== 0) || ((((_la - 945)) & ~0x1F) === 0 && ((1 << (_la - 945)) & ((1 << (SqlParser.ST_OVERLAPS - 945)) | (1 << (SqlParser.ST_POINTFROMTEXT - 945)) | (1 << (SqlParser.ST_POINTFROMWKB - 945)) | (1 << (SqlParser.ST_POINTN - 945)) | (1 << (SqlParser.ST_POLYFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYFROMWKB - 945)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 945)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 945)) | (1 << (SqlParser.ST_SRID - 945)) | (1 << (SqlParser.ST_STARTPOINT - 945)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 945)) | (1 << (SqlParser.ST_TOUCHES - 945)) | (1 << (SqlParser.ST_UNION - 945)) | (1 << (SqlParser.ST_WITHIN - 945)) | (1 << (SqlParser.ST_X - 945)) | (1 << (SqlParser.ST_Y - 945)) | (1 << (SqlParser.SUBDATE - 945)) | (1 << (SqlParser.SUBSTRING_INDEX - 945)) | (1 << (SqlParser.SUBTIME - 945)) | (1 << (SqlParser.SYSTEM_USER - 945)) | (1 << (SqlParser.TAN - 945)) | (1 << (SqlParser.TIMEDIFF - 945)) | (1 << (SqlParser.TIMESTAMPADD - 945)) | (1 << (SqlParser.TIMESTAMPDIFF - 945)) | (1 << (SqlParser.TIME_FORMAT - 945)) | (1 << (SqlParser.TIME_TO_SEC - 945)) | (1 << (SqlParser.TOUCHES - 945)) | (1 << (SqlParser.TO_BASE64 - 945)) | (1 << (SqlParser.TO_DAYS - 945)) | (1 << (SqlParser.TO_SECONDS - 945)) | (1 << (SqlParser.UCASE - 945)) | (1 << (SqlParser.UNCOMPRESS - 945)))) !== 0) || ((((_la - 977)) & ~0x1F) === 0 && ((1 << (_la - 977)) & ((1 << (SqlParser.UNCOMPRESSED_LENGTH - 977)) | (1 << (SqlParser.UNHEX - 977)) | (1 << (SqlParser.UNIX_TIMESTAMP - 977)) | (1 << (SqlParser.UPDATEXML - 977)) | (1 << (SqlParser.UPPER - 977)) | (1 << (SqlParser.UUID - 977)) | (1 << (SqlParser.UUID_SHORT - 977)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 977)) | (1 << (SqlParser.VERSION - 977)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 977)) | (1 << (SqlParser.WEEKDAY - 977)) | (1 << (SqlParser.WEEKOFYEAR - 977)) | (1 << (SqlParser.WEIGHT_STRING - 977)) | (1 << (SqlParser.WITHIN - 977)) | (1 << (SqlParser.YEARWEEK - 977)) | (1 << (SqlParser.Y_FUNCTION - 977)) | (1 << (SqlParser.X_FUNCTION - 977)))) !== 0) || ((((_la - 1032)) & ~0x1F) === 0 && ((1 << (_la - 1032)) & ((1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1032)) | (1 << (SqlParser.STRING_LITERAL - 1032)) | (1 << (SqlParser.ID - 1032)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1032)))) !== 0)) { - { - this.state = 4266; - this.uid(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public cursorStatement(): CursorStatementContext { - let _localctx: CursorStatementContext = new CursorStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 366, SqlParser.RULE_cursorStatement); - let _la: number; - try { - this.state = 4284; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CLOSE: - _localctx = new CloseCursorContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4269; - this.match(SqlParser.CLOSE); - this.state = 4270; - this.uid(); - } - break; - case SqlParser.FETCH: - _localctx = new FetchCursorContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4271; - this.match(SqlParser.FETCH); - this.state = 4276; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 616, this._ctx) ) { - case 1: - { - this.state = 4273; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NEXT) { - { - this.state = 4272; - this.match(SqlParser.NEXT); - } - } - - this.state = 4275; - this.match(SqlParser.FROM); - } - break; - } - this.state = 4278; - this.uid(); - this.state = 4279; - this.match(SqlParser.INTO); - this.state = 4280; - this.uidList(); - } - break; - case SqlParser.OPEN: - _localctx = new OpenCursorContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4282; - this.match(SqlParser.OPEN); - this.state = 4283; - this.uid(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public declareVariable(): DeclareVariableContext { - let _localctx: DeclareVariableContext = new DeclareVariableContext(this._ctx, this.state); - this.enterRule(_localctx, 368, SqlParser.RULE_declareVariable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4286; - this.match(SqlParser.DECLARE); - this.state = 4287; - this.uidList(); - this.state = 4288; - this.dataType(); - this.state = 4291; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DEFAULT) { - { - this.state = 4289; - this.match(SqlParser.DEFAULT); - this.state = 4290; - this.defaultValue(); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public declareCondition(): DeclareConditionContext { - let _localctx: DeclareConditionContext = new DeclareConditionContext(this._ctx, this.state); - this.enterRule(_localctx, 370, SqlParser.RULE_declareCondition); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4293; - this.match(SqlParser.DECLARE); - this.state = 4294; - this.uid(); - this.state = 4295; - this.match(SqlParser.CONDITION); - this.state = 4296; - this.match(SqlParser.FOR); - this.state = 4303; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - { - this.state = 4297; - this.decimalLiteral(); - } - break; - case SqlParser.SQLSTATE: - { - this.state = 4298; - this.match(SqlParser.SQLSTATE); - this.state = 4300; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.VALUE) { - { - this.state = 4299; - this.match(SqlParser.VALUE); - } - } - - this.state = 4302; - this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public declareCursor(): DeclareCursorContext { - let _localctx: DeclareCursorContext = new DeclareCursorContext(this._ctx, this.state); - this.enterRule(_localctx, 372, SqlParser.RULE_declareCursor); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4305; - this.match(SqlParser.DECLARE); - this.state = 4306; - this.uid(); - this.state = 4307; - this.match(SqlParser.CURSOR); - this.state = 4308; - this.match(SqlParser.FOR); - this.state = 4309; - this.selectStatement(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public declareHandler(): DeclareHandlerContext { - let _localctx: DeclareHandlerContext = new DeclareHandlerContext(this._ctx, this.state); - this.enterRule(_localctx, 374, SqlParser.RULE_declareHandler); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4311; - this.match(SqlParser.DECLARE); - this.state = 4312; - _localctx._handlerAction = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CONTINUE || _la === SqlParser.EXIT || _la === SqlParser.UNDO)) { - _localctx._handlerAction = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4313; - this.match(SqlParser.HANDLER); - this.state = 4314; - this.match(SqlParser.FOR); - this.state = 4315; - this.handlerConditionValue(); - this.state = 4320; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4316; - this.match(SqlParser.COMMA); - this.state = 4317; - this.handlerConditionValue(); - } - } - this.state = 4322; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4323; - this.routineBody(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public handlerConditionValue(): HandlerConditionValueContext { - let _localctx: HandlerConditionValueContext = new HandlerConditionValueContext(this._ctx, this.state); - this.enterRule(_localctx, 376, SqlParser.RULE_handlerConditionValue); - let _la: number; - try { - this.state = 4336; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - _localctx = new HandlerConditionCodeContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4325; - this.decimalLiteral(); - } - break; - case SqlParser.SQLSTATE: - _localctx = new HandlerConditionStateContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4326; - this.match(SqlParser.SQLSTATE); - this.state = 4328; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.VALUE) { - { - this.state = 4327; - this.match(SqlParser.VALUE); - } - } - - this.state = 4330; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - _localctx = new HandlerConditionNameContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4331; - this.uid(); - } - break; - case SqlParser.SQLWARNING: - _localctx = new HandlerConditionWarningContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4332; - this.match(SqlParser.SQLWARNING); - } - break; - case SqlParser.NOT: - _localctx = new HandlerConditionNotfoundContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 4333; - this.match(SqlParser.NOT); - this.state = 4334; - this.match(SqlParser.FOUND); - } - break; - case SqlParser.SQLEXCEPTION: - _localctx = new HandlerConditionExceptionContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 4335; - this.match(SqlParser.SQLEXCEPTION); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public procedureSqlStatement(): ProcedureSqlStatementContext { - let _localctx: ProcedureSqlStatementContext = new ProcedureSqlStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 378, SqlParser.RULE_procedureSqlStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4340; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 624, this._ctx) ) { - case 1: - { - this.state = 4338; - this.compoundStatement(); - } - break; - - case 2: - { - this.state = 4339; - this.sqlStatement(); - } - break; - } - this.state = 4342; - this.match(SqlParser.SEMI); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public caseAlternative(): CaseAlternativeContext { - let _localctx: CaseAlternativeContext = new CaseAlternativeContext(this._ctx, this.state); - this.enterRule(_localctx, 380, SqlParser.RULE_caseAlternative); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4344; - this.match(SqlParser.WHEN); - this.state = 4347; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 625, this._ctx) ) { - case 1: - { - this.state = 4345; - this.constant(); - } - break; - - case 2: - { - this.state = 4346; - this.expression(0); - } - break; - } - this.state = 4349; - this.match(SqlParser.THEN); - this.state = 4351; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4350; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4353; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 626, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public elifAlternative(): ElifAlternativeContext { - let _localctx: ElifAlternativeContext = new ElifAlternativeContext(this._ctx, this.state); - this.enterRule(_localctx, 382, SqlParser.RULE_elifAlternative); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4355; - this.match(SqlParser.ELSEIF); - this.state = 4356; - this.expression(0); - this.state = 4357; - this.match(SqlParser.THEN); - this.state = 4359; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 4358; - this.procedureSqlStatement(); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4361; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 627, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public alterUser(): AlterUserContext { - let _localctx: AlterUserContext = new AlterUserContext(this._ctx, this.state); - this.enterRule(_localctx, 384, SqlParser.RULE_alterUser); - let _la: number; - try { - this.state = 4417; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 639, this._ctx) ) { - case 1: - _localctx = new AlterUserMysqlV56Context(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4363; - this.match(SqlParser.ALTER); - this.state = 4364; - this.match(SqlParser.USER); - this.state = 4365; - this.userSpecification(); - this.state = 4370; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4366; - this.match(SqlParser.COMMA); - this.state = 4367; - this.userSpecification(); - } - } - this.state = 4372; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new AlterUserMysqlV57Context(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4373; - this.match(SqlParser.ALTER); - this.state = 4374; - this.match(SqlParser.USER); - this.state = 4376; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 4375; - this.ifExists(); - } - } - - this.state = 4378; - this.userAuthOption(); - this.state = 4383; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4379; - this.match(SqlParser.COMMA); - this.state = 4380; - this.userAuthOption(); - } - } - this.state = 4385; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4400; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.REQUIRE) { - { - this.state = 4386; - this.match(SqlParser.REQUIRE); - this.state = 4398; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.NONE: - { - this.state = 4387; - (_localctx as AlterUserMysqlV57Context)._tlsNone = this.match(SqlParser.NONE); - } - break; - case SqlParser.SSL: - case SqlParser.CIPHER: - case SqlParser.ISSUER: - case SqlParser.SUBJECT: - case SqlParser.X509: - { - this.state = 4388; - this.tlsOption(); - this.state = 4395; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.AND || _la === SqlParser.SSL || _la === SqlParser.CIPHER || _la === SqlParser.ISSUER || _la === SqlParser.SUBJECT || _la === SqlParser.X509) { - { - { - this.state = 4390; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AND) { - { - this.state = 4389; - this.match(SqlParser.AND); - } - } - - this.state = 4392; - this.tlsOption(); - } - } - this.state = 4397; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - - this.state = 4408; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 4402; - this.match(SqlParser.WITH); - this.state = 4404; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 4403; - this.userResourceOption(); - } - } - this.state = 4406; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (((((_la - 426)) & ~0x1F) === 0 && ((1 << (_la - 426)) & ((1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 426)))) !== 0)); - } - } - - this.state = 4414; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.ACCOUNT || _la === SqlParser.PASSWORD) { - { - this.state = 4412; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.PASSWORD: - { - this.state = 4410; - this.userPasswordOption(); - } - break; - case SqlParser.ACCOUNT: - { - this.state = 4411; - this.userLockOption(); - } - break; - default: - throw new NoViableAltException(this); - } - } - this.state = 4416; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createUser(): CreateUserContext { - let _localctx: CreateUserContext = new CreateUserContext(this._ctx, this.state); - this.enterRule(_localctx, 386, SqlParser.RULE_createUser); - let _la: number; - try { - this.state = 4473; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 651, this._ctx) ) { - case 1: - _localctx = new CreateUserMysqlV56Context(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4419; - this.match(SqlParser.CREATE); - this.state = 4420; - this.match(SqlParser.USER); - this.state = 4421; - this.userAuthOption(); - this.state = 4426; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4422; - this.match(SqlParser.COMMA); - this.state = 4423; - this.userAuthOption(); - } - } - this.state = 4428; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new CreateUserMysqlV57Context(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4429; - this.match(SqlParser.CREATE); - this.state = 4430; - this.match(SqlParser.USER); - this.state = 4432; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 4431; - this.ifNotExists(); - } - } - - this.state = 4434; - this.userAuthOption(); - this.state = 4439; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4435; - this.match(SqlParser.COMMA); - this.state = 4436; - this.userAuthOption(); - } - } - this.state = 4441; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4456; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.REQUIRE) { - { - this.state = 4442; - this.match(SqlParser.REQUIRE); - this.state = 4454; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.NONE: - { - this.state = 4443; - (_localctx as CreateUserMysqlV57Context)._tlsNone = this.match(SqlParser.NONE); - } - break; - case SqlParser.SSL: - case SqlParser.CIPHER: - case SqlParser.ISSUER: - case SqlParser.SUBJECT: - case SqlParser.X509: - { - this.state = 4444; - this.tlsOption(); - this.state = 4451; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.AND || _la === SqlParser.SSL || _la === SqlParser.CIPHER || _la === SqlParser.ISSUER || _la === SqlParser.SUBJECT || _la === SqlParser.X509) { - { - { - this.state = 4446; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AND) { - { - this.state = 4445; - this.match(SqlParser.AND); - } - } - - this.state = 4448; - this.tlsOption(); - } - } - this.state = 4453; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - - this.state = 4464; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 4458; - this.match(SqlParser.WITH); - this.state = 4460; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 4459; - this.userResourceOption(); - } - } - this.state = 4462; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (((((_la - 426)) & ~0x1F) === 0 && ((1 << (_la - 426)) & ((1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 426)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 426)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 426)))) !== 0)); - } - } - - this.state = 4470; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.ACCOUNT || _la === SqlParser.PASSWORD) { - { - this.state = 4468; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.PASSWORD: - { - this.state = 4466; - this.userPasswordOption(); - } - break; - case SqlParser.ACCOUNT: - { - this.state = 4467; - this.userLockOption(); - } - break; - default: - throw new NoViableAltException(this); - } - } - this.state = 4472; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dropUser(): DropUserContext { - let _localctx: DropUserContext = new DropUserContext(this._ctx, this.state); - this.enterRule(_localctx, 388, SqlParser.RULE_dropUser); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4475; - this.match(SqlParser.DROP); - this.state = 4476; - this.match(SqlParser.USER); - this.state = 4478; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 4477; - this.ifExists(); - } - } - - this.state = 4480; - this.userName(); - this.state = 4485; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4481; - this.match(SqlParser.COMMA); - this.state = 4482; - this.userName(); - } - } - this.state = 4487; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public grantStatement(): GrantStatementContext { - let _localctx: GrantStatementContext = new GrantStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 390, SqlParser.RULE_grantStatement); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 4488; - this.match(SqlParser.GRANT); - this.state = 4489; - this.privelegeClause(); - this.state = 4494; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4490; - this.match(SqlParser.COMMA); - this.state = 4491; - this.privelegeClause(); - } - } - this.state = 4496; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4497; - this.match(SqlParser.ON); - this.state = 4499; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 655, this._ctx) ) { - case 1: - { - this.state = 4498; - _localctx._privilegeObject = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.PROCEDURE || _la === SqlParser.TABLE || _la === SqlParser.FUNCTION)) { - _localctx._privilegeObject = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 4501; - this.privilegeLevel(); - this.state = 4502; - this.match(SqlParser.TO); - this.state = 4503; - this.userAuthOption(); - this.state = 4508; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4504; - this.match(SqlParser.COMMA); - this.state = 4505; - this.userAuthOption(); - } - } - this.state = 4510; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4525; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.REQUIRE) { - { - this.state = 4511; - this.match(SqlParser.REQUIRE); - this.state = 4523; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.NONE: - { - this.state = 4512; - _localctx._tlsNone = this.match(SqlParser.NONE); - } - break; - case SqlParser.SSL: - case SqlParser.CIPHER: - case SqlParser.ISSUER: - case SqlParser.SUBJECT: - case SqlParser.X509: - { - this.state = 4513; - this.tlsOption(); - this.state = 4520; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.AND || _la === SqlParser.SSL || _la === SqlParser.CIPHER || _la === SqlParser.ISSUER || _la === SqlParser.SUBJECT || _la === SqlParser.X509) { - { - { - this.state = 4515; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AND) { - { - this.state = 4514; - this.match(SqlParser.AND); - } - } - - this.state = 4517; - this.tlsOption(); - } - } - this.state = 4522; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - - this.state = 4536; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 4527; - this.match(SqlParser.WITH); - this.state = 4533; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 662, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - this.state = 4531; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.GRANT: - { - this.state = 4528; - this.match(SqlParser.GRANT); - this.state = 4529; - this.match(SqlParser.OPTION); - } - break; - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - { - this.state = 4530; - this.userResourceOption(); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - this.state = 4535; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 662, this._ctx); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public grantProxy(): GrantProxyContext { - let _localctx: GrantProxyContext = new GrantProxyContext(this._ctx, this.state); - this.enterRule(_localctx, 392, SqlParser.RULE_grantProxy); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4538; - this.match(SqlParser.GRANT); - this.state = 4539; - this.match(SqlParser.PROXY); - this.state = 4540; - this.match(SqlParser.ON); - this.state = 4541; - _localctx._fromFirst = this.userName(); - this.state = 4542; - this.match(SqlParser.TO); - this.state = 4543; - _localctx._toFirst = this.userName(); - this.state = 4548; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4544; - this.match(SqlParser.COMMA); - this.state = 4545; - _localctx._userName = this.userName(); - _localctx._toOther.push(_localctx._userName); - } - } - this.state = 4550; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4554; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 4551; - this.match(SqlParser.WITH); - this.state = 4552; - this.match(SqlParser.GRANT); - this.state = 4553; - this.match(SqlParser.OPTION); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public renameUser(): RenameUserContext { - let _localctx: RenameUserContext = new RenameUserContext(this._ctx, this.state); - this.enterRule(_localctx, 394, SqlParser.RULE_renameUser); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4556; - this.match(SqlParser.RENAME); - this.state = 4557; - this.match(SqlParser.USER); - this.state = 4558; - this.renameUserClause(); - this.state = 4563; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4559; - this.match(SqlParser.COMMA); - this.state = 4560; - this.renameUserClause(); - } - } - this.state = 4565; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public revokeStatement(): RevokeStatementContext { - let _localctx: RevokeStatementContext = new RevokeStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 396, SqlParser.RULE_revokeStatement); - let _la: number; - try { - this.state = 4606; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 672, this._ctx) ) { - case 1: - _localctx = new DetailRevokeContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4566; - this.match(SqlParser.REVOKE); - this.state = 4567; - this.privelegeClause(); - this.state = 4572; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4568; - this.match(SqlParser.COMMA); - this.state = 4569; - this.privelegeClause(); - } - } - this.state = 4574; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 4575; - this.match(SqlParser.ON); - this.state = 4577; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 668, this._ctx) ) { - case 1: - { - this.state = 4576; - (_localctx as DetailRevokeContext)._privilegeObject = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.PROCEDURE || _la === SqlParser.TABLE || _la === SqlParser.FUNCTION)) { - (_localctx as DetailRevokeContext)._privilegeObject = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 4579; - this.privilegeLevel(); - this.state = 4580; - this.match(SqlParser.FROM); - this.state = 4581; - this.userName(); - this.state = 4586; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4582; - this.match(SqlParser.COMMA); - this.state = 4583; - this.userName(); - } - } - this.state = 4588; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new ShortRevokeContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4589; - this.match(SqlParser.REVOKE); - this.state = 4590; - this.match(SqlParser.ALL); - this.state = 4592; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PRIVILEGES) { - { - this.state = 4591; - this.match(SqlParser.PRIVILEGES); - } - } - - this.state = 4594; - this.match(SqlParser.COMMA); - this.state = 4595; - this.match(SqlParser.GRANT); - this.state = 4596; - this.match(SqlParser.OPTION); - this.state = 4597; - this.match(SqlParser.FROM); - this.state = 4598; - this.userName(); - this.state = 4603; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4599; - this.match(SqlParser.COMMA); - this.state = 4600; - this.userName(); - } - } - this.state = 4605; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public revokeProxy(): RevokeProxyContext { - let _localctx: RevokeProxyContext = new RevokeProxyContext(this._ctx, this.state); - this.enterRule(_localctx, 398, SqlParser.RULE_revokeProxy); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4608; - this.match(SqlParser.REVOKE); - this.state = 4609; - this.match(SqlParser.PROXY); - this.state = 4610; - this.match(SqlParser.ON); - this.state = 4611; - _localctx._onUser = this.userName(); - this.state = 4612; - this.match(SqlParser.FROM); - this.state = 4613; - _localctx._fromFirst = this.userName(); - this.state = 4618; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4614; - this.match(SqlParser.COMMA); - this.state = 4615; - _localctx._userName = this.userName(); - _localctx._fromOther.push(_localctx._userName); - } - } - this.state = 4620; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public setPasswordStatement(): SetPasswordStatementContext { - let _localctx: SetPasswordStatementContext = new SetPasswordStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 400, SqlParser.RULE_setPasswordStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4621; - this.match(SqlParser.SET); - this.state = 4622; - this.match(SqlParser.PASSWORD); - this.state = 4625; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 4623; - this.match(SqlParser.FOR); - this.state = 4624; - this.userName(); - } - } - - this.state = 4627; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 4630; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.OLD_PASSWORD: - case SqlParser.PASSWORD: - { - this.state = 4628; - this.passwordFunctionClause(); - } - break; - case SqlParser.STRING_LITERAL: - { - this.state = 4629; - this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userSpecification(): UserSpecificationContext { - let _localctx: UserSpecificationContext = new UserSpecificationContext(this._ctx, this.state); - this.enterRule(_localctx, 402, SqlParser.RULE_userSpecification); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4632; - this.userName(); - this.state = 4633; - this.userPasswordOption(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userAuthOption(): UserAuthOptionContext { - let _localctx: UserAuthOptionContext = new UserAuthOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 404, SqlParser.RULE_userAuthOption); - let _la: number; - try { - this.state = 4659; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 678, this._ctx) ) { - case 1: - _localctx = new PasswordAuthOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4635; - this.userName(); - this.state = 4636; - this.match(SqlParser.IDENTIFIED); - this.state = 4637; - this.match(SqlParser.BY); - this.state = 4638; - this.match(SqlParser.PASSWORD); - this.state = 4639; - (_localctx as PasswordAuthOptionContext)._hashed = this.match(SqlParser.STRING_LITERAL); - } - break; - - case 2: - _localctx = new StringAuthOptionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4641; - this.userName(); - this.state = 4642; - this.match(SqlParser.IDENTIFIED); - this.state = 4645; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 4643; - this.match(SqlParser.WITH); - this.state = 4644; - this.authPlugin(); - } - } - - this.state = 4647; - this.match(SqlParser.BY); - this.state = 4648; - this.match(SqlParser.STRING_LITERAL); - } - break; - - case 3: - _localctx = new HashAuthOptionContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4650; - this.userName(); - this.state = 4651; - this.match(SqlParser.IDENTIFIED); - this.state = 4652; - this.match(SqlParser.WITH); - this.state = 4653; - this.authPlugin(); - this.state = 4656; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 4654; - this.match(SqlParser.AS); - this.state = 4655; - this.match(SqlParser.STRING_LITERAL); - } - } - - } - break; - - case 4: - _localctx = new SimpleAuthOptionContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4658; - this.userName(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tlsOption(): TlsOptionContext { - let _localctx: TlsOptionContext = new TlsOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 406, SqlParser.RULE_tlsOption); - try { - this.state = 4669; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SSL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4661; - this.match(SqlParser.SSL); - } - break; - case SqlParser.X509: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4662; - this.match(SqlParser.X509); - } - break; - case SqlParser.CIPHER: - this.enterOuterAlt(_localctx, 3); - { - this.state = 4663; - this.match(SqlParser.CIPHER); - this.state = 4664; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.ISSUER: - this.enterOuterAlt(_localctx, 4); - { - this.state = 4665; - this.match(SqlParser.ISSUER); - this.state = 4666; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.SUBJECT: - this.enterOuterAlt(_localctx, 5); - { - this.state = 4667; - this.match(SqlParser.SUBJECT); - this.state = 4668; - this.match(SqlParser.STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userResourceOption(): UserResourceOptionContext { - let _localctx: UserResourceOptionContext = new UserResourceOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 408, SqlParser.RULE_userResourceOption); - try { - this.state = 4679; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.MAX_QUERIES_PER_HOUR: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4671; - this.match(SqlParser.MAX_QUERIES_PER_HOUR); - this.state = 4672; - this.decimalLiteral(); - } - break; - case SqlParser.MAX_UPDATES_PER_HOUR: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4673; - this.match(SqlParser.MAX_UPDATES_PER_HOUR); - this.state = 4674; - this.decimalLiteral(); - } - break; - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - this.enterOuterAlt(_localctx, 3); - { - this.state = 4675; - this.match(SqlParser.MAX_CONNECTIONS_PER_HOUR); - this.state = 4676; - this.decimalLiteral(); - } - break; - case SqlParser.MAX_USER_CONNECTIONS: - this.enterOuterAlt(_localctx, 4); - { - this.state = 4677; - this.match(SqlParser.MAX_USER_CONNECTIONS); - this.state = 4678; - this.decimalLiteral(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userPasswordOption(): UserPasswordOptionContext { - let _localctx: UserPasswordOptionContext = new UserPasswordOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 410, SqlParser.RULE_userPasswordOption); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4681; - this.match(SqlParser.PASSWORD); - this.state = 4682; - this.match(SqlParser.EXPIRE); - this.state = 4689; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.DEFAULT: - { - this.state = 4683; - _localctx._expireType = this.match(SqlParser.DEFAULT); - } - break; - case SqlParser.NEVER: - { - this.state = 4684; - _localctx._expireType = this.match(SqlParser.NEVER); - } - break; - case SqlParser.INTERVAL: - { - this.state = 4685; - _localctx._expireType = this.match(SqlParser.INTERVAL); - this.state = 4686; - this.decimalLiteral(); - this.state = 4687; - this.match(SqlParser.DAY); - } - break; - case SqlParser.EOF: - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.ACCOUNT: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PASSWORD: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.MINUSMINUS: - case SqlParser.LR_BRACKET: - case SqlParser.COMMA: - case SqlParser.SEMI: - break; - default: - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userLockOption(): UserLockOptionContext { - let _localctx: UserLockOptionContext = new UserLockOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 412, SqlParser.RULE_userLockOption); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4691; - this.match(SqlParser.ACCOUNT); - this.state = 4692; - _localctx._lockType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.LOCK || _la === SqlParser.UNLOCK)) { - _localctx._lockType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public privelegeClause(): PrivelegeClauseContext { - let _localctx: PrivelegeClauseContext = new PrivelegeClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 414, SqlParser.RULE_privelegeClause); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4694; - this.privilege(); - this.state = 4699; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 4695; - this.match(SqlParser.LR_BRACKET); - this.state = 4696; - this.uidList(); - this.state = 4697; - this.match(SqlParser.RR_BRACKET); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public privilege(): PrivilegeContext { - let _localctx: PrivilegeContext = new PrivilegeContext(this._ctx, this.state); - this.enterRule(_localctx, 416, SqlParser.RULE_privilege); - let _la: number; - try { - this.state = 4772; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4701; - this.match(SqlParser.ALL); - this.state = 4703; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PRIVILEGES) { - { - this.state = 4702; - this.match(SqlParser.PRIVILEGES); - } - } - - } - break; - case SqlParser.ALTER: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4705; - this.match(SqlParser.ALTER); - this.state = 4707; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ROUTINE) { - { - this.state = 4706; - this.match(SqlParser.ROUTINE); - } - } - - } - break; - case SqlParser.CREATE: - this.enterOuterAlt(_localctx, 3); - { - this.state = 4709; - this.match(SqlParser.CREATE); - this.state = 4717; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.TEMPORARY: - { - this.state = 4710; - this.match(SqlParser.TEMPORARY); - this.state = 4711; - this.match(SqlParser.TABLES); - } - break; - case SqlParser.ROUTINE: - { - this.state = 4712; - this.match(SqlParser.ROUTINE); - } - break; - case SqlParser.VIEW: - { - this.state = 4713; - this.match(SqlParser.VIEW); - } - break; - case SqlParser.USER: - { - this.state = 4714; - this.match(SqlParser.USER); - } - break; - case SqlParser.TABLESPACE: - { - this.state = 4715; - this.match(SqlParser.TABLESPACE); - } - break; - case SqlParser.ROLE: - { - this.state = 4716; - this.match(SqlParser.ROLE); - } - break; - case SqlParser.ON: - case SqlParser.LR_BRACKET: - case SqlParser.COMMA: - break; - default: - break; - } - } - break; - case SqlParser.DELETE: - this.enterOuterAlt(_localctx, 4); - { - this.state = 4719; - this.match(SqlParser.DELETE); - } - break; - case SqlParser.DROP: - this.enterOuterAlt(_localctx, 5); - { - this.state = 4720; - this.match(SqlParser.DROP); - this.state = 4722; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ROLE) { - { - this.state = 4721; - this.match(SqlParser.ROLE); - } - } - - } - break; - case SqlParser.EVENT: - this.enterOuterAlt(_localctx, 6); - { - this.state = 4724; - this.match(SqlParser.EVENT); - } - break; - case SqlParser.EXECUTE: - this.enterOuterAlt(_localctx, 7); - { - this.state = 4725; - this.match(SqlParser.EXECUTE); - } - break; - case SqlParser.FILE: - this.enterOuterAlt(_localctx, 8); - { - this.state = 4726; - this.match(SqlParser.FILE); - } - break; - case SqlParser.GRANT: - this.enterOuterAlt(_localctx, 9); - { - this.state = 4727; - this.match(SqlParser.GRANT); - this.state = 4728; - this.match(SqlParser.OPTION); - } - break; - case SqlParser.INDEX: - this.enterOuterAlt(_localctx, 10); - { - this.state = 4729; - this.match(SqlParser.INDEX); - } - break; - case SqlParser.INSERT: - this.enterOuterAlt(_localctx, 11); - { - this.state = 4730; - this.match(SqlParser.INSERT); - } - break; - case SqlParser.LOCK: - this.enterOuterAlt(_localctx, 12); - { - this.state = 4731; - this.match(SqlParser.LOCK); - this.state = 4732; - this.match(SqlParser.TABLES); - } - break; - case SqlParser.PROCESS: - this.enterOuterAlt(_localctx, 13); - { - this.state = 4733; - this.match(SqlParser.PROCESS); - } - break; - case SqlParser.PROXY: - this.enterOuterAlt(_localctx, 14); - { - this.state = 4734; - this.match(SqlParser.PROXY); - } - break; - case SqlParser.REFERENCES: - this.enterOuterAlt(_localctx, 15); - { - this.state = 4735; - this.match(SqlParser.REFERENCES); - } - break; - case SqlParser.RELOAD: - this.enterOuterAlt(_localctx, 16); - { - this.state = 4736; - this.match(SqlParser.RELOAD); - } - break; - case SqlParser.REPLICATION: - this.enterOuterAlt(_localctx, 17); - { - this.state = 4737; - this.match(SqlParser.REPLICATION); - this.state = 4738; - _la = this._input.LA(1); - if (!(_la === SqlParser.CLIENT || _la === SqlParser.SLAVE)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.SELECT: - this.enterOuterAlt(_localctx, 18); - { - this.state = 4739; - this.match(SqlParser.SELECT); - } - break; - case SqlParser.SHOW: - this.enterOuterAlt(_localctx, 19); - { - this.state = 4740; - this.match(SqlParser.SHOW); - this.state = 4741; - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASES || _la === SqlParser.VIEW)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.SHUTDOWN: - this.enterOuterAlt(_localctx, 20); - { - this.state = 4742; - this.match(SqlParser.SHUTDOWN); - } - break; - case SqlParser.SUPER: - this.enterOuterAlt(_localctx, 21); - { - this.state = 4743; - this.match(SqlParser.SUPER); - } - break; - case SqlParser.TRIGGER: - this.enterOuterAlt(_localctx, 22); - { - this.state = 4744; - this.match(SqlParser.TRIGGER); - } - break; - case SqlParser.UPDATE: - this.enterOuterAlt(_localctx, 23); - { - this.state = 4745; - this.match(SqlParser.UPDATE); - } - break; - case SqlParser.USAGE: - this.enterOuterAlt(_localctx, 24); - { - this.state = 4746; - this.match(SqlParser.USAGE); - } - break; - case SqlParser.AUDIT_ADMIN: - this.enterOuterAlt(_localctx, 25); - { - this.state = 4747; - this.match(SqlParser.AUDIT_ADMIN); - } - break; - case SqlParser.BACKUP_ADMIN: - this.enterOuterAlt(_localctx, 26); - { - this.state = 4748; - this.match(SqlParser.BACKUP_ADMIN); - } - break; - case SqlParser.BINLOG_ADMIN: - this.enterOuterAlt(_localctx, 27); - { - this.state = 4749; - this.match(SqlParser.BINLOG_ADMIN); - } - break; - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - this.enterOuterAlt(_localctx, 28); - { - this.state = 4750; - this.match(SqlParser.BINLOG_ENCRYPTION_ADMIN); - } - break; - case SqlParser.CLONE_ADMIN: - this.enterOuterAlt(_localctx, 29); - { - this.state = 4751; - this.match(SqlParser.CLONE_ADMIN); - } - break; - case SqlParser.CONNECTION_ADMIN: - this.enterOuterAlt(_localctx, 30); - { - this.state = 4752; - this.match(SqlParser.CONNECTION_ADMIN); - } - break; - case SqlParser.ENCRYPTION_KEY_ADMIN: - this.enterOuterAlt(_localctx, 31); - { - this.state = 4753; - this.match(SqlParser.ENCRYPTION_KEY_ADMIN); - } - break; - case SqlParser.FIREWALL_ADMIN: - this.enterOuterAlt(_localctx, 32); - { - this.state = 4754; - this.match(SqlParser.FIREWALL_ADMIN); - } - break; - case SqlParser.FIREWALL_USER: - this.enterOuterAlt(_localctx, 33); - { - this.state = 4755; - this.match(SqlParser.FIREWALL_USER); - } - break; - case SqlParser.GROUP_REPLICATION_ADMIN: - this.enterOuterAlt(_localctx, 34); - { - this.state = 4756; - this.match(SqlParser.GROUP_REPLICATION_ADMIN); - } - break; - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - this.enterOuterAlt(_localctx, 35); - { - this.state = 4757; - this.match(SqlParser.INNODB_REDO_LOG_ARCHIVE); - } - break; - case SqlParser.NDB_STORED_USER: - this.enterOuterAlt(_localctx, 36); - { - this.state = 4758; - this.match(SqlParser.NDB_STORED_USER); - } - break; - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - this.enterOuterAlt(_localctx, 37); - { - this.state = 4759; - this.match(SqlParser.PERSIST_RO_VARIABLES_ADMIN); - } - break; - case SqlParser.REPLICATION_APPLIER: - this.enterOuterAlt(_localctx, 38); - { - this.state = 4760; - this.match(SqlParser.REPLICATION_APPLIER); - } - break; - case SqlParser.REPLICATION_SLAVE_ADMIN: - this.enterOuterAlt(_localctx, 39); - { - this.state = 4761; - this.match(SqlParser.REPLICATION_SLAVE_ADMIN); - } - break; - case SqlParser.RESOURCE_GROUP_ADMIN: - this.enterOuterAlt(_localctx, 40); - { - this.state = 4762; - this.match(SqlParser.RESOURCE_GROUP_ADMIN); - } - break; - case SqlParser.RESOURCE_GROUP_USER: - this.enterOuterAlt(_localctx, 41); - { - this.state = 4763; - this.match(SqlParser.RESOURCE_GROUP_USER); - } - break; - case SqlParser.ROLE_ADMIN: - this.enterOuterAlt(_localctx, 42); - { - this.state = 4764; - this.match(SqlParser.ROLE_ADMIN); - } - break; - case SqlParser.SESSION_VARIABLES_ADMIN: - this.enterOuterAlt(_localctx, 43); - { - this.state = 4765; - this.match(SqlParser.SESSION_VARIABLES_ADMIN); - } - break; - case SqlParser.SET_USER_ID: - this.enterOuterAlt(_localctx, 44); - { - this.state = 4766; - this.match(SqlParser.SET_USER_ID); - } - break; - case SqlParser.SHOW_ROUTINE: - this.enterOuterAlt(_localctx, 45); - { - this.state = 4767; - this.match(SqlParser.SHOW_ROUTINE); - } - break; - case SqlParser.SYSTEM_VARIABLES_ADMIN: - this.enterOuterAlt(_localctx, 46); - { - this.state = 4768; - this.match(SqlParser.SYSTEM_VARIABLES_ADMIN); - } - break; - case SqlParser.TABLE_ENCRYPTION_ADMIN: - this.enterOuterAlt(_localctx, 47); - { - this.state = 4769; - this.match(SqlParser.TABLE_ENCRYPTION_ADMIN); - } - break; - case SqlParser.VERSION_TOKEN_ADMIN: - this.enterOuterAlt(_localctx, 48); - { - this.state = 4770; - this.match(SqlParser.VERSION_TOKEN_ADMIN); - } - break; - case SqlParser.XA_RECOVER_ADMIN: - this.enterOuterAlt(_localctx, 49); - { - this.state = 4771; - this.match(SqlParser.XA_RECOVER_ADMIN); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public privilegeLevel(): PrivilegeLevelContext { - let _localctx: PrivilegeLevelContext = new PrivilegeLevelContext(this._ctx, this.state); - this.enterRule(_localctx, 418, SqlParser.RULE_privilegeLevel); - try { - this.state = 4790; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 688, this._ctx) ) { - case 1: - _localctx = new CurrentSchemaPriviLevelContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4774; - this.match(SqlParser.STAR); - } - break; - - case 2: - _localctx = new GlobalPrivLevelContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4775; - this.match(SqlParser.STAR); - this.state = 4776; - this.match(SqlParser.DOT); - this.state = 4777; - this.match(SqlParser.STAR); - } - break; - - case 3: - _localctx = new DefiniteSchemaPrivLevelContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4778; - this.uid(); - this.state = 4779; - this.match(SqlParser.DOT); - this.state = 4780; - this.match(SqlParser.STAR); - } - break; - - case 4: - _localctx = new DefiniteFullTablePrivLevelContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4782; - this.uid(); - this.state = 4783; - this.match(SqlParser.DOT); - this.state = 4784; - this.uid(); - } - break; - - case 5: - _localctx = new DefiniteFullTablePrivLevel2Context(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 4786; - this.uid(); - this.state = 4787; - this.dottedId(); - } - break; - - case 6: - _localctx = new DefiniteTablePrivLevelContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 4789; - this.uid(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public renameUserClause(): RenameUserClauseContext { - let _localctx: RenameUserClauseContext = new RenameUserClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 420, SqlParser.RULE_renameUserClause); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4792; - _localctx._fromFirst = this.userName(); - this.state = 4793; - this.match(SqlParser.TO); - this.state = 4794; - _localctx._toFirst = this.userName(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public analyzeTable(): AnalyzeTableContext { - let _localctx: AnalyzeTableContext = new AnalyzeTableContext(this._ctx, this.state); - this.enterRule(_localctx, 422, SqlParser.RULE_analyzeTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4796; - this.match(SqlParser.ANALYZE); - this.state = 4798; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL) { - { - this.state = 4797; - _localctx._actionOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL)) { - _localctx._actionOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 4800; - this.match(SqlParser.TABLE); - this.state = 4801; - this.tables(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public checkTable(): CheckTableContext { - let _localctx: CheckTableContext = new CheckTableContext(this._ctx, this.state); - this.enterRule(_localctx, 424, SqlParser.RULE_checkTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4803; - this.match(SqlParser.CHECK); - this.state = 4804; - this.match(SqlParser.TABLE); - this.state = 4805; - this.tables(); - this.state = 4809; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.FOR || _la === SqlParser.CHANGED || _la === SqlParser.EXTENDED || _la === SqlParser.FAST || _la === SqlParser.MEDIUM || _la === SqlParser.QUICK) { - { - { - this.state = 4806; - this.checkTableOption(); - } - } - this.state = 4811; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public checksumTable(): ChecksumTableContext { - let _localctx: ChecksumTableContext = new ChecksumTableContext(this._ctx, this.state); - this.enterRule(_localctx, 426, SqlParser.RULE_checksumTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4812; - this.match(SqlParser.CHECKSUM); - this.state = 4813; - this.match(SqlParser.TABLE); - this.state = 4814; - this.tables(); - this.state = 4816; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EXTENDED || _la === SqlParser.QUICK) { - { - this.state = 4815; - _localctx._actionOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.EXTENDED || _la === SqlParser.QUICK)) { - _localctx._actionOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public optimizeTable(): OptimizeTableContext { - let _localctx: OptimizeTableContext = new OptimizeTableContext(this._ctx, this.state); - this.enterRule(_localctx, 428, SqlParser.RULE_optimizeTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4818; - this.match(SqlParser.OPTIMIZE); - this.state = 4820; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL) { - { - this.state = 4819; - _localctx._actionOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL)) { - _localctx._actionOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 4822; - this.match(SqlParser.TABLE); - this.state = 4823; - this.tables(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public repairTable(): RepairTableContext { - let _localctx: RepairTableContext = new RepairTableContext(this._ctx, this.state); - this.enterRule(_localctx, 430, SqlParser.RULE_repairTable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4825; - this.match(SqlParser.REPAIR); - this.state = 4827; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL) { - { - this.state = 4826; - _localctx._actionOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL)) { - _localctx._actionOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 4829; - this.match(SqlParser.TABLE); - this.state = 4830; - this.tables(); - this.state = 4832; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.QUICK) { - { - this.state = 4831; - this.match(SqlParser.QUICK); - } - } - - this.state = 4835; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EXTENDED) { - { - this.state = 4834; - this.match(SqlParser.EXTENDED); - } - } - - this.state = 4838; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USE_FRM) { - { - this.state = 4837; - this.match(SqlParser.USE_FRM); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public checkTableOption(): CheckTableOptionContext { - let _localctx: CheckTableOptionContext = new CheckTableOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 432, SqlParser.RULE_checkTableOption); - try { - this.state = 4847; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FOR: - this.enterOuterAlt(_localctx, 1); - { - this.state = 4840; - this.match(SqlParser.FOR); - this.state = 4841; - this.match(SqlParser.UPGRADE); - } - break; - case SqlParser.QUICK: - this.enterOuterAlt(_localctx, 2); - { - this.state = 4842; - this.match(SqlParser.QUICK); - } - break; - case SqlParser.FAST: - this.enterOuterAlt(_localctx, 3); - { - this.state = 4843; - this.match(SqlParser.FAST); - } - break; - case SqlParser.MEDIUM: - this.enterOuterAlt(_localctx, 4); - { - this.state = 4844; - this.match(SqlParser.MEDIUM); - } - break; - case SqlParser.EXTENDED: - this.enterOuterAlt(_localctx, 5); - { - this.state = 4845; - this.match(SqlParser.EXTENDED); - } - break; - case SqlParser.CHANGED: - this.enterOuterAlt(_localctx, 6); - { - this.state = 4846; - this.match(SqlParser.CHANGED); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public createUdfunction(): CreateUdfunctionContext { - let _localctx: CreateUdfunctionContext = new CreateUdfunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 434, SqlParser.RULE_createUdfunction); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4849; - this.match(SqlParser.CREATE); - this.state = 4851; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AGGREGATE) { - { - this.state = 4850; - this.match(SqlParser.AGGREGATE); - } - } - - this.state = 4853; - this.match(SqlParser.FUNCTION); - this.state = 4854; - this.uid(); - this.state = 4855; - this.match(SqlParser.RETURNS); - this.state = 4856; - _localctx._returnType = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 188)) & ~0x1F) === 0 && ((1 << (_la - 188)) & ((1 << (SqlParser.INTEGER - 188)) | (1 << (SqlParser.REAL - 188)) | (1 << (SqlParser.DECIMAL - 188)))) !== 0) || _la === SqlParser.STRING)) { - _localctx._returnType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4857; - this.match(SqlParser.SONAME); - this.state = 4858; - this.match(SqlParser.STRING_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public installPlugin(): InstallPluginContext { - let _localctx: InstallPluginContext = new InstallPluginContext(this._ctx, this.state); - this.enterRule(_localctx, 436, SqlParser.RULE_installPlugin); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4860; - this.match(SqlParser.INSTALL); - this.state = 4861; - this.match(SqlParser.PLUGIN); - this.state = 4862; - this.uid(); - this.state = 4863; - this.match(SqlParser.SONAME); - this.state = 4864; - this.match(SqlParser.STRING_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public uninstallPlugin(): UninstallPluginContext { - let _localctx: UninstallPluginContext = new UninstallPluginContext(this._ctx, this.state); - this.enterRule(_localctx, 438, SqlParser.RULE_uninstallPlugin); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 4866; - this.match(SqlParser.UNINSTALL); - this.state = 4867; - this.match(SqlParser.PLUGIN); - this.state = 4868; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public setStatement(): SetStatementContext { - let _localctx: SetStatementContext = new SetStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 440, SqlParser.RULE_setStatement); - let _la: number; - try { - this.state = 4921; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 705, this._ctx) ) { - case 1: - _localctx = new SetVariableContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4870; - this.match(SqlParser.SET); - this.state = 4871; - this.variableClause(); - this.state = 4872; - _la = this._input.LA(1); - if (!(_la === SqlParser.VAR_ASSIGN || _la === SqlParser.EQUAL_SYMBOL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4873; - this.expression(0); - this.state = 4881; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4874; - this.match(SqlParser.COMMA); - this.state = 4875; - this.variableClause(); - this.state = 4876; - _la = this._input.LA(1); - if (!(_la === SqlParser.VAR_ASSIGN || _la === SqlParser.EQUAL_SYMBOL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4877; - this.expression(0); - } - } - this.state = 4883; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new SetCharsetContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4884; - this.match(SqlParser.SET); - this.state = 4888; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 4885; - this.match(SqlParser.CHARACTER); - this.state = 4886; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 4887; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 4892; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - { - this.state = 4890; - this.charsetName(); - } - break; - case SqlParser.DEFAULT: - { - this.state = 4891; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 3: - _localctx = new SetNamesContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4894; - this.match(SqlParser.SET); - this.state = 4895; - this.match(SqlParser.NAMES); - this.state = 4902; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - { - this.state = 4896; - this.charsetName(); - this.state = 4899; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COLLATE) { - { - this.state = 4897; - this.match(SqlParser.COLLATE); - this.state = 4898; - this.collationName(); - } - } - - } - break; - case SqlParser.DEFAULT: - { - this.state = 4901; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 4: - _localctx = new SetPasswordContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4904; - this.setPasswordStatement(); - } - break; - - case 5: - _localctx = new SetTransactionContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 4905; - this.setTransactionStatement(); - } - break; - - case 6: - _localctx = new SetAutocommitContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 4906; - this.setAutocommitStatement(); - } - break; - - case 7: - _localctx = new SetNewValueInsideTriggerContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 4907; - this.match(SqlParser.SET); - this.state = 4908; - this.fullId(); - this.state = 4909; - _la = this._input.LA(1); - if (!(_la === SqlParser.VAR_ASSIGN || _la === SqlParser.EQUAL_SYMBOL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4910; - this.expression(0); - this.state = 4918; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 4911; - this.match(SqlParser.COMMA); - this.state = 4912; - this.fullId(); - this.state = 4913; - _la = this._input.LA(1); - if (!(_la === SqlParser.VAR_ASSIGN || _la === SqlParser.EQUAL_SYMBOL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4914; - this.expression(0); - } - } - this.state = 4920; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showStatement(): ShowStatementContext { - let _localctx: ShowStatementContext = new ShowStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 442, SqlParser.RULE_showStatement); - let _la: number; - try { - this.state = 5074; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 727, this._ctx) ) { - case 1: - _localctx = new ShowMasterLogsContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 4923; - this.match(SqlParser.SHOW); - this.state = 4924; - (_localctx as ShowMasterLogsContext)._logFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BINARY || _la === SqlParser.MASTER)) { - (_localctx as ShowMasterLogsContext)._logFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4925; - this.match(SqlParser.LOGS); - } - break; - - case 2: - _localctx = new ShowLogEventsContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 4926; - this.match(SqlParser.SHOW); - this.state = 4927; - (_localctx as ShowLogEventsContext)._logFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BINLOG || _la === SqlParser.RELAYLOG)) { - (_localctx as ShowLogEventsContext)._logFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4928; - this.match(SqlParser.EVENTS); - this.state = 4931; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IN) { - { - this.state = 4929; - this.match(SqlParser.IN); - this.state = 4930; - (_localctx as ShowLogEventsContext)._filename = this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 4935; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM) { - { - this.state = 4933; - this.match(SqlParser.FROM); - this.state = 4934; - (_localctx as ShowLogEventsContext)._fromPosition = this.decimalLiteral(); - } - } - - this.state = 4944; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIMIT) { - { - this.state = 4937; - this.match(SqlParser.LIMIT); - this.state = 4941; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 708, this._ctx) ) { - case 1: - { - this.state = 4938; - (_localctx as ShowLogEventsContext)._offset = this.decimalLiteral(); - this.state = 4939; - this.match(SqlParser.COMMA); - } - break; - } - this.state = 4943; - (_localctx as ShowLogEventsContext)._rowCount = this.decimalLiteral(); - } - } - - } - break; - - case 3: - _localctx = new ShowObjectFilterContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 4946; - this.match(SqlParser.SHOW); - this.state = 4947; - this.showCommonEntity(); - this.state = 4949; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIKE || _la === SqlParser.WHERE) { - { - this.state = 4948; - this.showFilter(); - } - } - - } - break; - - case 4: - _localctx = new ShowColumnsContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 4951; - this.match(SqlParser.SHOW); - this.state = 4953; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FULL) { - { - this.state = 4952; - this.match(SqlParser.FULL); - } - } - - this.state = 4955; - (_localctx as ShowColumnsContext)._columnsFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.COLUMNS || _la === SqlParser.FIELDS)) { - (_localctx as ShowColumnsContext)._columnsFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4956; - (_localctx as ShowColumnsContext)._tableFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowColumnsContext)._tableFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4957; - this.tableName(); - this.state = 4960; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM || _la === SqlParser.IN) { - { - this.state = 4958; - (_localctx as ShowColumnsContext)._schemaFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowColumnsContext)._schemaFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4959; - this.uid(); - } - } - - this.state = 4963; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIKE || _la === SqlParser.WHERE) { - { - this.state = 4962; - this.showFilter(); - } - } - - } - break; - - case 5: - _localctx = new ShowCreateDbContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 4965; - this.match(SqlParser.SHOW); - this.state = 4966; - this.match(SqlParser.CREATE); - this.state = 4967; - (_localctx as ShowCreateDbContext)._schemaFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.SCHEMA)) { - (_localctx as ShowCreateDbContext)._schemaFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4969; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IF) { - { - this.state = 4968; - this.ifNotExists(); - } - } - - this.state = 4971; - this.uid(); - } - break; - - case 6: - _localctx = new ShowCreateFullIdObjectContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 4972; - this.match(SqlParser.SHOW); - this.state = 4973; - this.match(SqlParser.CREATE); - this.state = 4974; - (_localctx as ShowCreateFullIdObjectContext)._namedEntity = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.PROCEDURE || _la === SqlParser.TABLE || _la === SqlParser.TRIGGER || _la === SqlParser.EVENT || _la === SqlParser.FUNCTION || _la === SqlParser.VIEW)) { - (_localctx as ShowCreateFullIdObjectContext)._namedEntity = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 4975; - this.fullId(); - } - break; - - case 7: - _localctx = new ShowCreateUserContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 4976; - this.match(SqlParser.SHOW); - this.state = 4977; - this.match(SqlParser.CREATE); - this.state = 4978; - this.match(SqlParser.USER); - this.state = 4979; - this.userName(); - } - break; - - case 8: - _localctx = new ShowEngineContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 4980; - this.match(SqlParser.SHOW); - this.state = 4981; - this.match(SqlParser.ENGINE); - this.state = 4982; - this.engineName(); - this.state = 4983; - (_localctx as ShowEngineContext)._engineOption = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.MUTEX || _la === SqlParser.STATUS)) { - (_localctx as ShowEngineContext)._engineOption = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 9: - _localctx = new ShowGlobalInfoContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 4985; - this.match(SqlParser.SHOW); - this.state = 4986; - this.showGlobalInfoClause(); - } - break; - - case 10: - _localctx = new ShowErrorsContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 4987; - this.match(SqlParser.SHOW); - this.state = 4988; - (_localctx as ShowErrorsContext)._errorFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ERRORS || _la === SqlParser.WARNINGS)) { - (_localctx as ShowErrorsContext)._errorFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - { - this.state = 4989; - this.match(SqlParser.LIMIT); - this.state = 4993; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 715, this._ctx) ) { - case 1: - { - this.state = 4990; - (_localctx as ShowErrorsContext)._offset = this.decimalLiteral(); - this.state = 4991; - this.match(SqlParser.COMMA); - } - break; - } - this.state = 4995; - (_localctx as ShowErrorsContext)._rowCount = this.decimalLiteral(); - } - } - break; - - case 11: - _localctx = new ShowCountErrorsContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 4996; - this.match(SqlParser.SHOW); - this.state = 4997; - this.match(SqlParser.COUNT); - this.state = 4998; - this.match(SqlParser.LR_BRACKET); - this.state = 4999; - this.match(SqlParser.STAR); - this.state = 5000; - this.match(SqlParser.RR_BRACKET); - this.state = 5001; - (_localctx as ShowCountErrorsContext)._errorFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ERRORS || _la === SqlParser.WARNINGS)) { - (_localctx as ShowCountErrorsContext)._errorFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 12: - _localctx = new ShowSchemaFilterContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 5002; - this.match(SqlParser.SHOW); - this.state = 5003; - this.showSchemaEntity(); - this.state = 5006; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM || _la === SqlParser.IN) { - { - this.state = 5004; - (_localctx as ShowSchemaFilterContext)._schemaFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowSchemaFilterContext)._schemaFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5005; - this.uid(); - } - } - - this.state = 5009; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIKE || _la === SqlParser.WHERE) { - { - this.state = 5008; - this.showFilter(); - } - } - - } - break; - - case 13: - _localctx = new ShowRoutineContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 5011; - this.match(SqlParser.SHOW); - this.state = 5012; - (_localctx as ShowRoutineContext)._routine = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.PROCEDURE || _la === SqlParser.FUNCTION)) { - (_localctx as ShowRoutineContext)._routine = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5013; - this.match(SqlParser.CODE); - this.state = 5014; - this.fullId(); - } - break; - - case 14: - _localctx = new ShowGrantsContext(_localctx); - this.enterOuterAlt(_localctx, 14); - { - this.state = 5015; - this.match(SqlParser.SHOW); - this.state = 5016; - this.match(SqlParser.GRANTS); - this.state = 5019; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 5017; - this.match(SqlParser.FOR); - this.state = 5018; - this.userName(); - } - } - - } - break; - - case 15: - _localctx = new ShowIndexesContext(_localctx); - this.enterOuterAlt(_localctx, 15); - { - this.state = 5021; - this.match(SqlParser.SHOW); - this.state = 5022; - (_localctx as ShowIndexesContext)._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEYS || _la === SqlParser.INDEXES)) { - (_localctx as ShowIndexesContext)._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5023; - (_localctx as ShowIndexesContext)._tableFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowIndexesContext)._tableFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5024; - this.tableName(); - this.state = 5027; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM || _la === SqlParser.IN) { - { - this.state = 5025; - (_localctx as ShowIndexesContext)._schemaFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowIndexesContext)._schemaFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5026; - this.uid(); - } - } - - this.state = 5031; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WHERE) { - { - this.state = 5029; - this.match(SqlParser.WHERE); - this.state = 5030; - this.expression(0); - } - } - - } - break; - - case 16: - _localctx = new ShowOpenTablesContext(_localctx); - this.enterOuterAlt(_localctx, 16); - { - this.state = 5033; - this.match(SqlParser.SHOW); - this.state = 5034; - this.match(SqlParser.OPEN); - this.state = 5035; - this.match(SqlParser.TABLES); - this.state = 5038; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FROM || _la === SqlParser.IN) { - { - this.state = 5036; - (_localctx as ShowOpenTablesContext)._schemaFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FROM || _la === SqlParser.IN)) { - (_localctx as ShowOpenTablesContext)._schemaFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5037; - this.uid(); - } - } - - this.state = 5041; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LIKE || _la === SqlParser.WHERE) { - { - this.state = 5040; - this.showFilter(); - } - } - - } - break; - - case 17: - _localctx = new ShowProfileContext(_localctx); - this.enterOuterAlt(_localctx, 17); - { - this.state = 5043; - this.match(SqlParser.SHOW); - this.state = 5044; - this.match(SqlParser.PROFILE); - this.state = 5045; - this.showProfileType(); - this.state = 5050; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5046; - this.match(SqlParser.COMMA); - this.state = 5047; - this.showProfileType(); - } - } - this.state = 5052; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 5056; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 5053; - this.match(SqlParser.FOR); - this.state = 5054; - this.match(SqlParser.QUERY); - this.state = 5055; - (_localctx as ShowProfileContext)._queryCount = this.decimalLiteral(); - } - } - - { - this.state = 5058; - this.match(SqlParser.LIMIT); - this.state = 5062; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 725, this._ctx) ) { - case 1: - { - this.state = 5059; - (_localctx as ShowProfileContext)._offset = this.decimalLiteral(); - this.state = 5060; - this.match(SqlParser.COMMA); - } - break; - } - this.state = 5064; - (_localctx as ShowProfileContext)._rowCount = this.decimalLiteral(); - } - } - break; - - case 18: - _localctx = new ShowSlaveStatusContext(_localctx); - this.enterOuterAlt(_localctx, 18); - { - this.state = 5066; - this.match(SqlParser.SHOW); - this.state = 5067; - this.match(SqlParser.SLAVE); - this.state = 5068; - this.match(SqlParser.STATUS); - this.state = 5072; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 5069; - this.match(SqlParser.FOR); - this.state = 5070; - this.match(SqlParser.CHANNEL); - this.state = 5071; - this.match(SqlParser.STRING_LITERAL); - } - } - - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public variableClause(): VariableClauseContext { - let _localctx: VariableClauseContext = new VariableClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 444, SqlParser.RULE_variableClause); - let _la: number; - try { - this.state = 5086; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LOCAL_ID: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5076; - this.match(SqlParser.LOCAL_ID); - } - break; - case SqlParser.GLOBAL_ID: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5077; - this.match(SqlParser.GLOBAL_ID); - } - break; - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.AT_SIGN: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5083; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 729, this._ctx) ) { - case 1: - { - this.state = 5080; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AT_SIGN) { - { - this.state = 5078; - this.match(SqlParser.AT_SIGN); - this.state = 5079; - this.match(SqlParser.AT_SIGN); - } - } - - this.state = 5082; - _la = this._input.LA(1); - if (!(_la === SqlParser.GLOBAL || _la === SqlParser.LOCAL || _la === SqlParser.SESSION)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 5085; - this.uid(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showCommonEntity(): ShowCommonEntityContext { - let _localctx: ShowCommonEntityContext = new ShowCommonEntityContext(this._ctx, this.state); - this.enterRule(_localctx, 446, SqlParser.RULE_showCommonEntity); - let _la: number; - try { - this.state = 5101; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5088; - this.match(SqlParser.CHARACTER); - this.state = 5089; - this.match(SqlParser.SET); - } - break; - case SqlParser.COLLATION: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5090; - this.match(SqlParser.COLLATION); - } - break; - case SqlParser.DATABASES: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5091; - this.match(SqlParser.DATABASES); - } - break; - case SqlParser.SCHEMAS: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5092; - this.match(SqlParser.SCHEMAS); - } - break; - case SqlParser.FUNCTION: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5093; - this.match(SqlParser.FUNCTION); - this.state = 5094; - this.match(SqlParser.STATUS); - } - break; - case SqlParser.PROCEDURE: - this.enterOuterAlt(_localctx, 6); - { - this.state = 5095; - this.match(SqlParser.PROCEDURE); - this.state = 5096; - this.match(SqlParser.STATUS); - } - break; - case SqlParser.GLOBAL: - case SqlParser.SESSION: - case SqlParser.STATUS: - case SqlParser.VARIABLES: - this.enterOuterAlt(_localctx, 7); - { - this.state = 5098; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.GLOBAL || _la === SqlParser.SESSION) { - { - this.state = 5097; - _la = this._input.LA(1); - if (!(_la === SqlParser.GLOBAL || _la === SqlParser.SESSION)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5100; - _la = this._input.LA(1); - if (!(_la === SqlParser.STATUS || _la === SqlParser.VARIABLES)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showFilter(): ShowFilterContext { - let _localctx: ShowFilterContext = new ShowFilterContext(this._ctx, this.state); - this.enterRule(_localctx, 448, SqlParser.RULE_showFilter); - try { - this.state = 5107; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LIKE: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5103; - this.match(SqlParser.LIKE); - this.state = 5104; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.WHERE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5105; - this.match(SqlParser.WHERE); - this.state = 5106; - this.expression(0); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showGlobalInfoClause(): ShowGlobalInfoClauseContext { - let _localctx: ShowGlobalInfoClauseContext = new ShowGlobalInfoClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 450, SqlParser.RULE_showGlobalInfoClause); - let _la: number; - try { - this.state = 5126; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ENGINES: - case SqlParser.STORAGE: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5110; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STORAGE) { - { - this.state = 5109; - this.match(SqlParser.STORAGE); - } - } - - this.state = 5112; - this.match(SqlParser.ENGINES); - } - break; - case SqlParser.MASTER: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5113; - this.match(SqlParser.MASTER); - this.state = 5114; - this.match(SqlParser.STATUS); - } - break; - case SqlParser.PLUGINS: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5115; - this.match(SqlParser.PLUGINS); - } - break; - case SqlParser.PRIVILEGES: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5116; - this.match(SqlParser.PRIVILEGES); - } - break; - case SqlParser.FULL: - case SqlParser.PROCESSLIST: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5118; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FULL) { - { - this.state = 5117; - this.match(SqlParser.FULL); - } - } - - this.state = 5120; - this.match(SqlParser.PROCESSLIST); - } - break; - case SqlParser.PROFILES: - this.enterOuterAlt(_localctx, 6); - { - this.state = 5121; - this.match(SqlParser.PROFILES); - } - break; - case SqlParser.SLAVE: - this.enterOuterAlt(_localctx, 7); - { - this.state = 5122; - this.match(SqlParser.SLAVE); - this.state = 5123; - this.match(SqlParser.HOSTS); - } - break; - case SqlParser.AUTHORS: - this.enterOuterAlt(_localctx, 8); - { - this.state = 5124; - this.match(SqlParser.AUTHORS); - } - break; - case SqlParser.CONTRIBUTORS: - this.enterOuterAlt(_localctx, 9); - { - this.state = 5125; - this.match(SqlParser.CONTRIBUTORS); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showSchemaEntity(): ShowSchemaEntityContext { - let _localctx: ShowSchemaEntityContext = new ShowSchemaEntityContext(this._ctx, this.state); - this.enterRule(_localctx, 452, SqlParser.RULE_showSchemaEntity); - let _la: number; - try { - this.state = 5136; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.EVENTS: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5128; - this.match(SqlParser.EVENTS); - } - break; - case SqlParser.TABLE: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5129; - this.match(SqlParser.TABLE); - this.state = 5130; - this.match(SqlParser.STATUS); - } - break; - case SqlParser.FULL: - case SqlParser.TABLES: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5132; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FULL) { - { - this.state = 5131; - this.match(SqlParser.FULL); - } - } - - this.state = 5134; - this.match(SqlParser.TABLES); - } - break; - case SqlParser.TRIGGERS: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5135; - this.match(SqlParser.TRIGGERS); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public showProfileType(): ShowProfileTypeContext { - let _localctx: ShowProfileTypeContext = new ShowProfileTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 454, SqlParser.RULE_showProfileType); - try { - this.state = 5150; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ALL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5138; - this.match(SqlParser.ALL); - } - break; - case SqlParser.BLOCK: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5139; - this.match(SqlParser.BLOCK); - this.state = 5140; - this.match(SqlParser.IO); - } - break; - case SqlParser.CONTEXT: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5141; - this.match(SqlParser.CONTEXT); - this.state = 5142; - this.match(SqlParser.SWITCHES); - } - break; - case SqlParser.CPU: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5143; - this.match(SqlParser.CPU); - } - break; - case SqlParser.IPC: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5144; - this.match(SqlParser.IPC); - } - break; - case SqlParser.MEMORY: - this.enterOuterAlt(_localctx, 6); - { - this.state = 5145; - this.match(SqlParser.MEMORY); - } - break; - case SqlParser.PAGE: - this.enterOuterAlt(_localctx, 7); - { - this.state = 5146; - this.match(SqlParser.PAGE); - this.state = 5147; - this.match(SqlParser.FAULTS); - } - break; - case SqlParser.SOURCE: - this.enterOuterAlt(_localctx, 8); - { - this.state = 5148; - this.match(SqlParser.SOURCE); - } - break; - case SqlParser.SWAPS: - this.enterOuterAlt(_localctx, 9); - { - this.state = 5149; - this.match(SqlParser.SWAPS); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public binlogStatement(): BinlogStatementContext { - let _localctx: BinlogStatementContext = new BinlogStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 456, SqlParser.RULE_binlogStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5152; - this.match(SqlParser.BINLOG); - this.state = 5153; - this.match(SqlParser.STRING_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public cacheIndexStatement(): CacheIndexStatementContext { - let _localctx: CacheIndexStatementContext = new CacheIndexStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 458, SqlParser.RULE_cacheIndexStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5155; - this.match(SqlParser.CACHE); - this.state = 5156; - this.match(SqlParser.INDEX); - this.state = 5157; - this.tableIndexes(); - this.state = 5162; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5158; - this.match(SqlParser.COMMA); - this.state = 5159; - this.tableIndexes(); - } - } - this.state = 5164; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 5172; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 5165; - this.match(SqlParser.PARTITION); - this.state = 5166; - this.match(SqlParser.LR_BRACKET); - this.state = 5169; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 5167; - this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 5168; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5171; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 5174; - this.match(SqlParser.IN); - this.state = 5175; - _localctx._schema = this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public flushStatement(): FlushStatementContext { - let _localctx: FlushStatementContext = new FlushStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 460, SqlParser.RULE_flushStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5177; - this.match(SqlParser.FLUSH); - this.state = 5179; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL) { - { - this.state = 5178; - _localctx._flushFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NO_WRITE_TO_BINLOG || _la === SqlParser.LOCAL)) { - _localctx._flushFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5181; - this.flushOption(); - this.state = 5186; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5182; - this.match(SqlParser.COMMA); - this.state = 5183; - this.flushOption(); - } - } - this.state = 5188; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public killStatement(): KillStatementContext { - let _localctx: KillStatementContext = new KillStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 462, SqlParser.RULE_killStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5189; - this.match(SqlParser.KILL); - this.state = 5191; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CONNECTION || _la === SqlParser.QUERY) { - { - this.state = 5190; - _localctx._connectionFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CONNECTION || _la === SqlParser.QUERY)) { - _localctx._connectionFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5194; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 5193; - this.decimalLiteral(); - } - } - this.state = 5196; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0)); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public loadIndexIntoCache(): LoadIndexIntoCacheContext { - let _localctx: LoadIndexIntoCacheContext = new LoadIndexIntoCacheContext(this._ctx, this.state); - this.enterRule(_localctx, 464, SqlParser.RULE_loadIndexIntoCache); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5198; - this.match(SqlParser.LOAD); - this.state = 5199; - this.match(SqlParser.INDEX); - this.state = 5200; - this.match(SqlParser.INTO); - this.state = 5201; - this.match(SqlParser.CACHE); - this.state = 5202; - this.loadedTableIndexes(); - this.state = 5207; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5203; - this.match(SqlParser.COMMA); - this.state = 5204; - this.loadedTableIndexes(); - } - } - this.state = 5209; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public resetStatement(): ResetStatementContext { - let _localctx: ResetStatementContext = new ResetStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 466, SqlParser.RULE_resetStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5210; - this.match(SqlParser.RESET); - this.state = 5211; - this.match(SqlParser.QUERY); - this.state = 5212; - this.match(SqlParser.CACHE); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public shutdownStatement(): ShutdownStatementContext { - let _localctx: ShutdownStatementContext = new ShutdownStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 468, SqlParser.RULE_shutdownStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5214; - this.match(SqlParser.SHUTDOWN); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableIndexes(): TableIndexesContext { - let _localctx: TableIndexesContext = new TableIndexesContext(this._ctx, this.state); - this.enterRule(_localctx, 470, SqlParser.RULE_tableIndexes); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5216; - this.tableName(); - this.state = 5224; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY || _la === SqlParser.LR_BRACKET) { - { - this.state = 5218; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 5217; - _localctx._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - _localctx._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5220; - this.match(SqlParser.LR_BRACKET); - this.state = 5221; - this.uidList(); - this.state = 5222; - this.match(SqlParser.RR_BRACKET); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public flushOption(): FlushOptionContext { - let _localctx: FlushOptionContext = new FlushOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 472, SqlParser.RULE_flushOption); - let _la: number; - try { - this.state = 5256; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 755, this._ctx) ) { - case 1: - _localctx = new SimpleFlushOptionContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 5244; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.DES_KEY_FILE: - { - this.state = 5226; - this.match(SqlParser.DES_KEY_FILE); - } - break; - case SqlParser.HOSTS: - { - this.state = 5227; - this.match(SqlParser.HOSTS); - } - break; - case SqlParser.BINARY: - case SqlParser.ENGINE: - case SqlParser.ERROR: - case SqlParser.GENERAL: - case SqlParser.LOGS: - case SqlParser.RELAY: - case SqlParser.SLOW: - { - this.state = 5229; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY || ((((_la - 342)) & ~0x1F) === 0 && ((1 << (_la - 342)) & ((1 << (SqlParser.ENGINE - 342)) | (1 << (SqlParser.ERROR - 342)) | (1 << (SqlParser.GENERAL - 342)))) !== 0) || _la === SqlParser.RELAY || _la === SqlParser.SLOW) { - { - this.state = 5228; - _la = this._input.LA(1); - if (!(_la === SqlParser.BINARY || ((((_la - 342)) & ~0x1F) === 0 && ((1 << (_la - 342)) & ((1 << (SqlParser.ENGINE - 342)) | (1 << (SqlParser.ERROR - 342)) | (1 << (SqlParser.GENERAL - 342)))) !== 0) || _la === SqlParser.RELAY || _la === SqlParser.SLOW)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5231; - this.match(SqlParser.LOGS); - } - break; - case SqlParser.OPTIMIZER_COSTS: - { - this.state = 5232; - this.match(SqlParser.OPTIMIZER_COSTS); - } - break; - case SqlParser.PRIVILEGES: - { - this.state = 5233; - this.match(SqlParser.PRIVILEGES); - } - break; - case SqlParser.QUERY: - { - this.state = 5234; - this.match(SqlParser.QUERY); - this.state = 5235; - this.match(SqlParser.CACHE); - } - break; - case SqlParser.STATUS: - { - this.state = 5236; - this.match(SqlParser.STATUS); - } - break; - case SqlParser.USER_RESOURCES: - { - this.state = 5237; - this.match(SqlParser.USER_RESOURCES); - } - break; - case SqlParser.TABLES: - { - this.state = 5238; - this.match(SqlParser.TABLES); - this.state = 5242; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.WITH) { - { - this.state = 5239; - this.match(SqlParser.WITH); - this.state = 5240; - this.match(SqlParser.READ); - this.state = 5241; - this.match(SqlParser.LOCK); - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - - case 2: - _localctx = new ChannelFlushOptionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 5246; - this.match(SqlParser.RELAY); - this.state = 5247; - this.match(SqlParser.LOGS); - this.state = 5249; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 5248; - this.channelOption(); - } - } - - } - break; - - case 3: - _localctx = new TableFlushOptionContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 5251; - this.match(SqlParser.TABLES); - this.state = 5252; - this.tables(); - this.state = 5254; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR || _la === SqlParser.WITH) { - { - this.state = 5253; - this.flushTableOption(); - } - } - - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public flushTableOption(): FlushTableOptionContext { - let _localctx: FlushTableOptionContext = new FlushTableOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 474, SqlParser.RULE_flushTableOption); - try { - this.state = 5263; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.WITH: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5258; - this.match(SqlParser.WITH); - this.state = 5259; - this.match(SqlParser.READ); - this.state = 5260; - this.match(SqlParser.LOCK); - } - break; - case SqlParser.FOR: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5261; - this.match(SqlParser.FOR); - this.state = 5262; - this.match(SqlParser.EXPORT); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public loadedTableIndexes(): LoadedTableIndexesContext { - let _localctx: LoadedTableIndexesContext = new LoadedTableIndexesContext(this._ctx, this.state); - this.enterRule(_localctx, 476, SqlParser.RULE_loadedTableIndexes); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5265; - this.tableName(); - this.state = 5273; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PARTITION) { - { - this.state = 5266; - this.match(SqlParser.PARTITION); - this.state = 5267; - this.match(SqlParser.LR_BRACKET); - this.state = 5270; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 5268; - _localctx._partitionList = this.uidList(); - } - break; - case SqlParser.ALL: - { - this.state = 5269; - this.match(SqlParser.ALL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5272; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 5282; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 760, this._ctx) ) { - case 1: - { - this.state = 5276; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INDEX || _la === SqlParser.KEY) { - { - this.state = 5275; - _localctx._indexFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.INDEX || _la === SqlParser.KEY)) { - _localctx._indexFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5278; - this.match(SqlParser.LR_BRACKET); - this.state = 5279; - _localctx._indexList = this.uidList(); - this.state = 5280; - this.match(SqlParser.RR_BRACKET); - } - break; - } - this.state = 5286; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.IGNORE) { - { - this.state = 5284; - this.match(SqlParser.IGNORE); - this.state = 5285; - this.match(SqlParser.LEAVES); - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public simpleDescribeStatement(): SimpleDescribeStatementContext { - let _localctx: SimpleDescribeStatementContext = new SimpleDescribeStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 478, SqlParser.RULE_simpleDescribeStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5288; - _localctx._command = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & ((1 << (SqlParser.DESC - 41)) | (1 << (SqlParser.DESCRIBE - 41)) | (1 << (SqlParser.EXPLAIN - 41)))) !== 0))) { - _localctx._command = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5289; - this.tableName(); - this.state = 5292; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 762, this._ctx) ) { - case 1: - { - this.state = 5290; - _localctx._column = this.uid(); - } - break; - - case 2: - { - this.state = 5291; - _localctx._pattern = this.match(SqlParser.STRING_LITERAL); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public fullDescribeStatement(): FullDescribeStatementContext { - let _localctx: FullDescribeStatementContext = new FullDescribeStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 480, SqlParser.RULE_fullDescribeStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5294; - _localctx._command = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & ((1 << (SqlParser.DESC - 41)) | (1 << (SqlParser.DESCRIBE - 41)) | (1 << (SqlParser.EXPLAIN - 41)))) !== 0))) { - _localctx._command = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5298; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.EXTENDED || _la === SqlParser.PARTITIONS || _la === SqlParser.FORMAT) { - { - this.state = 5295; - _localctx._formatType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.EXTENDED || _la === SqlParser.PARTITIONS || _la === SqlParser.FORMAT)) { - _localctx._formatType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5296; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5297; - _localctx._formatValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.JSON || _la === SqlParser.TRADITIONAL)) { - _localctx._formatValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5300; - this.describeObjectClause(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public helpStatement(): HelpStatementContext { - let _localctx: HelpStatementContext = new HelpStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 482, SqlParser.RULE_helpStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5302; - this.match(SqlParser.HELP); - this.state = 5303; - this.match(SqlParser.STRING_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public useStatement(): UseStatementContext { - let _localctx: UseStatementContext = new UseStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 484, SqlParser.RULE_useStatement); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5305; - this.match(SqlParser.USE); - this.state = 5306; - this.uid(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public signalStatement(): SignalStatementContext { - let _localctx: SignalStatementContext = new SignalStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 486, SqlParser.RULE_signalStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5308; - this.match(SqlParser.SIGNAL); - this.state = 5316; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SQLSTATE: - { - { - this.state = 5309; - this.match(SqlParser.SQLSTATE); - this.state = 5311; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.VALUE) { - { - this.state = 5310; - this.match(SqlParser.VALUE); - } - } - - this.state = 5313; - this.stringLiteral(); - } - } - break; - case SqlParser.ID: - { - this.state = 5314; - this.match(SqlParser.ID); - } - break; - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 5315; - this.match(SqlParser.REVERSE_QUOTE_ID); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5327; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 767, this._ctx) ) { - case 1: - { - this.state = 5318; - this.match(SqlParser.SET); - this.state = 5319; - this.signalConditionInformation(); - this.state = 5324; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5320; - this.match(SqlParser.COMMA); - this.state = 5321; - this.signalConditionInformation(); - } - } - this.state = 5326; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public resignalStatement(): ResignalStatementContext { - let _localctx: ResignalStatementContext = new ResignalStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 488, SqlParser.RULE_resignalStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5329; - this.match(SqlParser.RESIGNAL); - this.state = 5337; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SQLSTATE: - { - { - this.state = 5330; - this.match(SqlParser.SQLSTATE); - this.state = 5332; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.VALUE) { - { - this.state = 5331; - this.match(SqlParser.VALUE); - } - } - - this.state = 5334; - this.stringLiteral(); - } - } - break; - case SqlParser.ID: - { - this.state = 5335; - this.match(SqlParser.ID); - } - break; - case SqlParser.REVERSE_QUOTE_ID: - { - this.state = 5336; - this.match(SqlParser.REVERSE_QUOTE_ID); - } - break; - case SqlParser.EOF: - case SqlParser.ALTER: - case SqlParser.ANALYZE: - case SqlParser.CALL: - case SqlParser.CHANGE: - case SqlParser.CHECK: - case SqlParser.CREATE: - case SqlParser.DELETE: - case SqlParser.DESC: - case SqlParser.DESCRIBE: - case SqlParser.DROP: - case SqlParser.EXPLAIN: - case SqlParser.GET: - case SqlParser.GRANT: - case SqlParser.INSERT: - case SqlParser.KILL: - case SqlParser.LOAD: - case SqlParser.LOCK: - case SqlParser.OPTIMIZE: - case SqlParser.PURGE: - case SqlParser.RELEASE: - case SqlParser.RENAME: - case SqlParser.REPLACE: - case SqlParser.RESIGNAL: - case SqlParser.REVOKE: - case SqlParser.SELECT: - case SqlParser.SET: - case SqlParser.SHOW: - case SqlParser.SIGNAL: - case SqlParser.UNLOCK: - case SqlParser.UPDATE: - case SqlParser.USE: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.CACHE: - case SqlParser.CHECKSUM: - case SqlParser.COMMIT: - case SqlParser.DEALLOCATE: - case SqlParser.DO: - case SqlParser.FLUSH: - case SqlParser.HANDLER: - case SqlParser.HELP: - case SqlParser.INSTALL: - case SqlParser.PREPARE: - case SqlParser.REPAIR: - case SqlParser.RESET: - case SqlParser.ROLLBACK: - case SqlParser.SAVEPOINT: - case SqlParser.START: - case SqlParser.STOP: - case SqlParser.TRUNCATE: - case SqlParser.UNINSTALL: - case SqlParser.XA: - case SqlParser.EXECUTE: - case SqlParser.SHUTDOWN: - case SqlParser.MINUSMINUS: - case SqlParser.LR_BRACKET: - case SqlParser.SEMI: - break; - default: - break; - } - this.state = 5348; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 771, this._ctx) ) { - case 1: - { - this.state = 5339; - this.match(SqlParser.SET); - this.state = 5340; - this.signalConditionInformation(); - this.state = 5345; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5341; - this.match(SqlParser.COMMA); - this.state = 5342; - this.signalConditionInformation(); - } - } - this.state = 5347; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public signalConditionInformation(): SignalConditionInformationContext { - let _localctx: SignalConditionInformationContext = new SignalConditionInformationContext(this._ctx, this.state); - this.enterRule(_localctx, 490, SqlParser.RULE_signalConditionInformation); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5350; - _la = this._input.LA(1); - if (!(((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)))) !== 0) || _la === SqlParser.MESSAGE_TEXT || _la === SqlParser.MYSQL_ERRNO || _la === SqlParser.SUBCLASS_ORIGIN || _la === SqlParser.TABLE_NAME || _la === SqlParser.CATALOG_NAME || _la === SqlParser.SCHEMA_NAME)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5351; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5354; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.START_NATIONAL_STRING_LITERAL: - case SqlParser.STRING_LITERAL: - case SqlParser.STRING_CHARSET_NAME: - { - this.state = 5352; - this.stringLiteral(); - } - break; - case SqlParser.DECIMAL_LITERAL: - { - this.state = 5353; - this.match(SqlParser.DECIMAL_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public diagnosticsStatement(): DiagnosticsStatementContext { - let _localctx: DiagnosticsStatementContext = new DiagnosticsStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 492, SqlParser.RULE_diagnosticsStatement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5356; - this.match(SqlParser.GET); - this.state = 5358; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CURRENT || _la === SqlParser.STACKED) { - { - this.state = 5357; - _la = this._input.LA(1); - if (!(_la === SqlParser.CURRENT || _la === SqlParser.STACKED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 5360; - this.match(SqlParser.DIAGNOSTICS); - this.state = 5392; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.AT_SIGN: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - { - { - this.state = 5361; - this.variableClause(); - this.state = 5362; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5363; - _la = this._input.LA(1); - if (!(_la === SqlParser.NUMBER || _la === SqlParser.ROW_COUNT)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5371; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5364; - this.match(SqlParser.COMMA); - this.state = 5365; - this.variableClause(); - this.state = 5366; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5367; - _la = this._input.LA(1); - if (!(_la === SqlParser.NUMBER || _la === SqlParser.ROW_COUNT)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - this.state = 5373; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - break; - case SqlParser.CONDITION: - { - { - this.state = 5374; - this.match(SqlParser.CONDITION); - this.state = 5377; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - { - this.state = 5375; - this.decimalLiteral(); - } - break; - case SqlParser.CURRENT: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.LEFT: - case SqlParser.NUMBER: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.AT_SIGN: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.STRING_LITERAL: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - { - this.state = 5376; - this.variableClause(); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5379; - this.variableClause(); - this.state = 5380; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5381; - this.diagnosticsConditionInformationName(); - this.state = 5389; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5382; - this.match(SqlParser.COMMA); - this.state = 5383; - this.variableClause(); - this.state = 5384; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 5385; - this.diagnosticsConditionInformationName(); - } - } - this.state = 5391; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public diagnosticsConditionInformationName(): DiagnosticsConditionInformationNameContext { - let _localctx: DiagnosticsConditionInformationNameContext = new DiagnosticsConditionInformationNameContext(this._ctx, this.state); - this.enterRule(_localctx, 494, SqlParser.RULE_diagnosticsConditionInformationName); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5394; - _la = this._input.LA(1); - if (!(((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)))) !== 0) || _la === SqlParser.MESSAGE_TEXT || _la === SqlParser.MYSQL_ERRNO || _la === SqlParser.RETURNED_SQLSTATE || _la === SqlParser.SUBCLASS_ORIGIN || _la === SqlParser.TABLE_NAME || _la === SqlParser.CATALOG_NAME || _la === SqlParser.SCHEMA_NAME)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public describeObjectClause(): DescribeObjectClauseContext { - let _localctx: DescribeObjectClauseContext = new DescribeObjectClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 496, SqlParser.RULE_describeObjectClause); - try { - this.state = 5406; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.DELETE: - case SqlParser.INSERT: - case SqlParser.REPLACE: - case SqlParser.SELECT: - case SqlParser.UPDATE: - case SqlParser.LR_BRACKET: - _localctx = new DescribeStatementsContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 5401; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.SELECT: - case SqlParser.LR_BRACKET: - { - this.state = 5396; - this.selectStatement(); - } - break; - case SqlParser.DELETE: - { - this.state = 5397; - this.deleteStatement(); - } - break; - case SqlParser.INSERT: - { - this.state = 5398; - this.insertStatement(); - } - break; - case SqlParser.REPLACE: - { - this.state = 5399; - this.replaceStatement(); - } - break; - case SqlParser.UPDATE: - { - this.state = 5400; - this.updateStatement(); - } - break; - default: - throw new NoViableAltException(this); - } - } - break; - case SqlParser.FOR: - _localctx = new DescribeConnectionContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 5403; - this.match(SqlParser.FOR); - this.state = 5404; - this.match(SqlParser.CONNECTION); - this.state = 5405; - this.uid(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public fullId(): FullIdContext { - let _localctx: FullIdContext = new FullIdContext(this._ctx, this.state); - this.enterRule(_localctx, 498, SqlParser.RULE_fullId); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5408; - this.uid(); - this.state = 5412; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 780, this._ctx) ) { - case 1: - { - this.state = 5409; - this.match(SqlParser.DOT_ID); - } - break; - - case 2: - { - this.state = 5410; - this.match(SqlParser.DOT); - this.state = 5411; - this.uid(); - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tableName(): TableNameContext { - let _localctx: TableNameContext = new TableNameContext(this._ctx, this.state); - this.enterRule(_localctx, 500, SqlParser.RULE_tableName); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5414; - this.fullId(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public fullColumnName(): FullColumnNameContext { - let _localctx: FullColumnNameContext = new FullColumnNameContext(this._ctx, this.state); - this.enterRule(_localctx, 502, SqlParser.RULE_fullColumnName); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5416; - this.uid(); - this.state = 5421; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 782, this._ctx) ) { - case 1: - { - this.state = 5417; - this.dottedId(); - this.state = 5419; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 781, this._ctx) ) { - case 1: - { - this.state = 5418; - this.dottedId(); - } - break; - } - } - break; - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexColumnName(): IndexColumnNameContext { - let _localctx: IndexColumnNameContext = new IndexColumnNameContext(this._ctx, this.state); - this.enterRule(_localctx, 504, SqlParser.RULE_indexColumnName); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5425; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 783, this._ctx) ) { - case 1: - { - this.state = 5423; - this.uid(); - } - break; - - case 2: - { - this.state = 5424; - this.match(SqlParser.STRING_LITERAL); - } - break; - } - this.state = 5431; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 5427; - this.match(SqlParser.LR_BRACKET); - this.state = 5428; - this.decimalLiteral(); - this.state = 5429; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 5434; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ASC || _la === SqlParser.DESC) { - { - this.state = 5433; - _localctx._sortType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ASC || _la === SqlParser.DESC)) { - _localctx._sortType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userName(): UserNameContext { - let _localctx: UserNameContext = new UserNameContext(this._ctx, this.state); - this.enterRule(_localctx, 506, SqlParser.RULE_userName); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5436; - _la = this._input.LA(1); - if (!(((((_la - 1035)) & ~0x1F) === 0 && ((1 << (_la - 1035)) & ((1 << (SqlParser.STRING_LITERAL - 1035)) | (1 << (SqlParser.ID - 1035)) | (1 << (SqlParser.STRING_USER_NAME - 1035)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public mysqlVariable(): MysqlVariableContext { - let _localctx: MysqlVariableContext = new MysqlVariableContext(this._ctx, this.state); - this.enterRule(_localctx, 508, SqlParser.RULE_mysqlVariable); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5438; - _la = this._input.LA(1); - if (!(_la === SqlParser.LOCAL_ID || _la === SqlParser.GLOBAL_ID)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public charsetName(): CharsetNameContext { - let _localctx: CharsetNameContext = new CharsetNameContext(this._ctx, this.state); - this.enterRule(_localctx, 510, SqlParser.RULE_charsetName); - try { - this.state = 5444; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5440; - this.match(SqlParser.BINARY); - } - break; - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5441; - this.charsetNameBase(); - } - break; - case SqlParser.STRING_LITERAL: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5442; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5443; - this.match(SqlParser.CHARSET_REVERSE_QOUTE_STRING); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public collationName(): CollationNameContext { - let _localctx: CollationNameContext = new CollationNameContext(this._ctx, this.state); - this.enterRule(_localctx, 512, SqlParser.RULE_collationName); - try { - this.state = 5448; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 787, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5446; - this.uid(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5447; - this.match(SqlParser.STRING_LITERAL); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public engineName(): EngineNameContext { - let _localctx: EngineNameContext = new EngineNameContext(this._ctx, this.state); - this.enterRule(_localctx, 514, SqlParser.RULE_engineName); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5450; - _la = this._input.LA(1); - if (!(((((_la - 677)) & ~0x1F) === 0 && ((1 << (_la - 677)) & ((1 << (SqlParser.ARCHIVE - 677)) | (1 << (SqlParser.BLACKHOLE - 677)) | (1 << (SqlParser.CSV - 677)) | (1 << (SqlParser.FEDERATED - 677)) | (1 << (SqlParser.INNODB - 677)) | (1 << (SqlParser.MEMORY - 677)) | (1 << (SqlParser.MRG_MYISAM - 677)) | (1 << (SqlParser.MYISAM - 677)) | (1 << (SqlParser.NDB - 677)) | (1 << (SqlParser.NDBCLUSTER - 677)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 677)) | (1 << (SqlParser.TOKUDB - 677)))) !== 0) || ((((_la - 1035)) & ~0x1F) === 0 && ((1 << (_la - 1035)) & ((1 << (SqlParser.STRING_LITERAL - 1035)) | (1 << (SqlParser.ID - 1035)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1035)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public uuidSet(): UuidSetContext { - let _localctx: UuidSetContext = new UuidSetContext(this._ctx, this.state); - this.enterRule(_localctx, 516, SqlParser.RULE_uuidSet); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5452; - this.decimalLiteral(); - this.state = 5453; - this.match(SqlParser.MINUS); - this.state = 5454; - this.decimalLiteral(); - this.state = 5455; - this.match(SqlParser.MINUS); - this.state = 5456; - this.decimalLiteral(); - this.state = 5457; - this.match(SqlParser.MINUS); - this.state = 5458; - this.decimalLiteral(); - this.state = 5459; - this.match(SqlParser.MINUS); - this.state = 5460; - this.decimalLiteral(); - this.state = 5466; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 5461; - this.match(SqlParser.COLON_SYMB); - this.state = 5462; - this.decimalLiteral(); - this.state = 5463; - this.match(SqlParser.MINUS); - this.state = 5464; - this.decimalLiteral(); - } - } - this.state = 5468; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.COLON_SYMB); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xid(): XidContext { - let _localctx: XidContext = new XidContext(this._ctx, this.state); - this.enterRule(_localctx, 518, SqlParser.RULE_xid); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5470; - _localctx._globalTableUid = this.xuidStringId(); - this.state = 5477; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 5471; - this.match(SqlParser.COMMA); - this.state = 5472; - _localctx._qualifier = this.xuidStringId(); - this.state = 5475; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 5473; - this.match(SqlParser.COMMA); - this.state = 5474; - _localctx._idFormat = this.decimalLiteral(); - } - } - - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public xuidStringId(): XuidStringIdContext { - let _localctx: XuidStringIdContext = new XuidStringIdContext(this._ctx, this.state); - this.enterRule(_localctx, 520, SqlParser.RULE_xuidStringId); - let _la: number; - try { - this.state = 5486; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STRING_LITERAL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5479; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.BIT_STRING: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5480; - this.match(SqlParser.BIT_STRING); - } - break; - case SqlParser.HEXADECIMAL_LITERAL: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5482; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 5481; - this.match(SqlParser.HEXADECIMAL_LITERAL); - } - } - this.state = 5484; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.HEXADECIMAL_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public authPlugin(): AuthPluginContext { - let _localctx: AuthPluginContext = new AuthPluginContext(this._ctx, this.state); - this.enterRule(_localctx, 522, SqlParser.RULE_authPlugin); - try { - this.state = 5490; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 793, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5488; - this.uid(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5489; - this.match(SqlParser.STRING_LITERAL); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public uid(): UidContext { - let _localctx: UidContext = new UidContext(this._ctx, this.state); - this.enterRule(_localctx, 524, SqlParser.RULE_uid); - try { - this.state = 5495; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 794, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5492; - this.simpleId(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5493; - this.match(SqlParser.REVERSE_QUOTE_ID); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5494; - this.match(SqlParser.CHARSET_REVERSE_QOUTE_STRING); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public simpleId(): SimpleIdContext { - let _localctx: SimpleIdContext = new SimpleIdContext(this._ctx, this.state); - this.enterRule(_localctx, 526, SqlParser.RULE_simpleId); - try { - this.state = 5506; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 795, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5497; - this.match(SqlParser.ID); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5498; - this.charsetNameBase(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5499; - this.transactionLevelBase(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5500; - this.engineName(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5501; - this.privilegesBase(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 5502; - this.intervalTypeBase(); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 5503; - this.dataTypeBase(); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 5504; - this.keywordsCanBeId(); - } - break; - - case 9: - this.enterOuterAlt(_localctx, 9); - { - this.state = 5505; - this.functionNameBase(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dottedId(): DottedIdContext { - let _localctx: DottedIdContext = new DottedIdContext(this._ctx, this.state); - this.enterRule(_localctx, 528, SqlParser.RULE_dottedId); - try { - this.state = 5511; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.DOT_ID: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5508; - this.match(SqlParser.DOT_ID); - } - break; - case SqlParser.DOT: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5509; - this.match(SqlParser.DOT); - this.state = 5510; - this.uid(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public decimalLiteral(): DecimalLiteralContext { - let _localctx: DecimalLiteralContext = new DecimalLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 530, SqlParser.RULE_decimalLiteral); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5513; - _la = this._input.LA(1); - if (!(((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public fileSizeLiteral(): FileSizeLiteralContext { - let _localctx: FileSizeLiteralContext = new FileSizeLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 532, SqlParser.RULE_fileSizeLiteral); - try { - this.state = 5517; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.FILESIZE_LITERAL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5515; - this.match(SqlParser.FILESIZE_LITERAL); - } - break; - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.DECIMAL_LITERAL: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5516; - this.decimalLiteral(); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public stringLiteral(): StringLiteralContext { - let _localctx: StringLiteralContext = new StringLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 534, SqlParser.RULE_stringLiteral); - let _la: number; - try { - let _alt: number; - this.state = 5542; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 804, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5524; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STRING_LITERAL: - case SqlParser.STRING_CHARSET_NAME: - { - this.state = 5520; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STRING_CHARSET_NAME) { - { - this.state = 5519; - this.match(SqlParser.STRING_CHARSET_NAME); - } - } - - this.state = 5522; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.START_NATIONAL_STRING_LITERAL: - { - this.state = 5523; - this.match(SqlParser.START_NATIONAL_STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5527; - this._errHandler.sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - this.state = 5526; - this.match(SqlParser.STRING_LITERAL); - } - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5529; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 800, this._ctx); - } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5536; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STRING_LITERAL: - case SqlParser.STRING_CHARSET_NAME: - { - this.state = 5532; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STRING_CHARSET_NAME) { - { - this.state = 5531; - this.match(SqlParser.STRING_CHARSET_NAME); - } - } - - this.state = 5534; - this.match(SqlParser.STRING_LITERAL); - } - break; - case SqlParser.START_NATIONAL_STRING_LITERAL: - { - this.state = 5535; - this.match(SqlParser.START_NATIONAL_STRING_LITERAL); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5540; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 803, this._ctx) ) { - case 1: - { - this.state = 5538; - this.match(SqlParser.COLLATE); - this.state = 5539; - this.collationName(); - } - break; - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public booleanLiteral(): BooleanLiteralContext { - let _localctx: BooleanLiteralContext = new BooleanLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 536, SqlParser.RULE_booleanLiteral); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5544; - _la = this._input.LA(1); - if (!(_la === SqlParser.FALSE || _la === SqlParser.TRUE)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public hexadecimalLiteral(): HexadecimalLiteralContext { - let _localctx: HexadecimalLiteralContext = new HexadecimalLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 538, SqlParser.RULE_hexadecimalLiteral); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5547; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.STRING_CHARSET_NAME) { - { - this.state = 5546; - this.match(SqlParser.STRING_CHARSET_NAME); - } - } - - this.state = 5549; - this.match(SqlParser.HEXADECIMAL_LITERAL); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public nullNotnull(): NullNotnullContext { - let _localctx: NullNotnullContext = new NullNotnullContext(this._ctx, this.state); - this.enterRule(_localctx, 540, SqlParser.RULE_nullNotnull); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5552; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 5551; - this.match(SqlParser.NOT); - } - } - - this.state = 5554; - _la = this._input.LA(1); - if (!(_la === SqlParser.NULL_LITERAL || _la === SqlParser.NULL_SPEC_LITERAL)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public constant(): ConstantContext { - let _localctx: ConstantContext = new ConstantContext(this._ctx, this.state); - this.enterRule(_localctx, 542, SqlParser.RULE_constant); - let _la: number; - try { - this.state = 5568; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 808, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5556; - this.stringLiteral(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5557; - this.decimalLiteral(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5558; - this.match(SqlParser.MINUS); - this.state = 5559; - this.decimalLiteral(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5560; - this.hexadecimalLiteral(); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5561; - this.booleanLiteral(); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 5562; - this.match(SqlParser.REAL_LITERAL); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 5563; - this.match(SqlParser.BIT_STRING); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 5565; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 5564; - this.match(SqlParser.NOT); - } - } - - this.state = 5567; - _localctx._nullLiteral = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NULL_LITERAL || _la === SqlParser.NULL_SPEC_LITERAL)) { - _localctx._nullLiteral = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dataType(): DataTypeContext { - let _localctx: DataTypeContext = new DataTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 544, SqlParser.RULE_dataType); - let _la: number; - try { - this.state = 5697; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 842, this._ctx) ) { - case 1: - _localctx = new StringDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 5570; - (_localctx as StringDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CHARACTER || ((((_la - 204)) & ~0x1F) === 0 && ((1 << (_la - 204)) & ((1 << (SqlParser.CHAR - 204)) | (1 << (SqlParser.VARCHAR - 204)) | (1 << (SqlParser.NVARCHAR - 204)) | (1 << (SqlParser.LONG - 204)) | (1 << (SqlParser.TINYTEXT - 204)) | (1 << (SqlParser.TEXT - 204)) | (1 << (SqlParser.MEDIUMTEXT - 204)) | (1 << (SqlParser.LONGTEXT - 204)))) !== 0) || _la === SqlParser.NCHAR)) { - (_localctx as StringDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5572; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 809, this._ctx) ) { - case 1: - { - this.state = 5571; - this.lengthOneDimension(); - } - break; - } - this.state = 5575; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5574; - this.match(SqlParser.BINARY); - } - } - - this.state = 5583; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 812, this._ctx) ) { - case 1: - { - this.state = 5580; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 5577; - this.match(SqlParser.CHARACTER); - this.state = 5578; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 5579; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5582; - this.charsetName(); - } - break; - } - this.state = 5587; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 813, this._ctx) ) { - case 1: - { - this.state = 5585; - this.match(SqlParser.COLLATE); - this.state = 5586; - this.collationName(); - } - break; - } - } - break; - - case 2: - _localctx = new NationalStringDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 5589; - this.match(SqlParser.NATIONAL); - this.state = 5590; - (_localctx as NationalStringDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CHARACTER || _la === SqlParser.VARCHAR)) { - (_localctx as NationalStringDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5592; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 814, this._ctx) ) { - case 1: - { - this.state = 5591; - this.lengthOneDimension(); - } - break; - } - this.state = 5595; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5594; - this.match(SqlParser.BINARY); - } - } - - } - break; - - case 3: - _localctx = new NationalStringDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 5597; - this.match(SqlParser.NCHAR); - this.state = 5598; - (_localctx as NationalStringDataTypeContext)._typeName = this.match(SqlParser.VARCHAR); - this.state = 5600; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 816, this._ctx) ) { - case 1: - { - this.state = 5599; - this.lengthOneDimension(); - } - break; - } - this.state = 5603; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5602; - this.match(SqlParser.BINARY); - } - } - - } - break; - - case 4: - _localctx = new NationalVaryingStringDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 5605; - this.match(SqlParser.NATIONAL); - this.state = 5606; - (_localctx as NationalVaryingStringDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CHARACTER || _la === SqlParser.CHAR)) { - (_localctx as NationalVaryingStringDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5607; - this.match(SqlParser.VARYING); - this.state = 5609; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 818, this._ctx) ) { - case 1: - { - this.state = 5608; - this.lengthOneDimension(); - } - break; - } - this.state = 5612; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5611; - this.match(SqlParser.BINARY); - } - } - - } - break; - - case 5: - _localctx = new DimensionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 5614; - (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 178)) & ~0x1F) === 0 && ((1 << (_la - 178)) & ((1 << (SqlParser.TINYINT - 178)) | (1 << (SqlParser.SMALLINT - 178)) | (1 << (SqlParser.MEDIUMINT - 178)) | (1 << (SqlParser.MIDDLEINT - 178)) | (1 << (SqlParser.INT - 178)) | (1 << (SqlParser.INT1 - 178)) | (1 << (SqlParser.INT2 - 178)) | (1 << (SqlParser.INT3 - 178)) | (1 << (SqlParser.INT4 - 178)) | (1 << (SqlParser.INT8 - 178)) | (1 << (SqlParser.INTEGER - 178)) | (1 << (SqlParser.BIGINT - 178)))) !== 0))) { - (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5616; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 820, this._ctx) ) { - case 1: - { - this.state = 5615; - this.lengthOneDimension(); - } - break; - } - this.state = 5619; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 821, this._ctx) ) { - case 1: - { - this.state = 5618; - _la = this._input.LA(1); - if (!(_la === SqlParser.UNSIGNED || _la === SqlParser.SIGNED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 5622; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ZEROFILL) { - { - this.state = 5621; - this.match(SqlParser.ZEROFILL); - } - } - - } - break; - - case 6: - _localctx = new DimensionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 5624; - (_localctx as DimensionDataTypeContext)._typeName = this.match(SqlParser.REAL); - this.state = 5626; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 823, this._ctx) ) { - case 1: - { - this.state = 5625; - this.lengthTwoDimension(); - } - break; - } - this.state = 5629; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 824, this._ctx) ) { - case 1: - { - this.state = 5628; - _la = this._input.LA(1); - if (!(_la === SqlParser.UNSIGNED || _la === SqlParser.SIGNED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 5632; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ZEROFILL) { - { - this.state = 5631; - this.match(SqlParser.ZEROFILL); - } - } - - } - break; - - case 7: - _localctx = new DimensionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 5634; - (_localctx as DimensionDataTypeContext)._typeName = this.match(SqlParser.DOUBLE); - this.state = 5636; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.PRECISION) { - { - this.state = 5635; - this.match(SqlParser.PRECISION); - } - } - - this.state = 5639; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 827, this._ctx) ) { - case 1: - { - this.state = 5638; - this.lengthTwoDimension(); - } - break; - } - this.state = 5642; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 828, this._ctx) ) { - case 1: - { - this.state = 5641; - _la = this._input.LA(1); - if (!(_la === SqlParser.UNSIGNED || _la === SqlParser.SIGNED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 5645; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ZEROFILL) { - { - this.state = 5644; - this.match(SqlParser.ZEROFILL); - } - } - - } - break; - - case 8: - _localctx = new DimensionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 5647; - (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 193)) & ~0x1F) === 0 && ((1 << (_la - 193)) & ((1 << (SqlParser.FLOAT - 193)) | (1 << (SqlParser.FLOAT4 - 193)) | (1 << (SqlParser.FLOAT8 - 193)) | (1 << (SqlParser.DECIMAL - 193)) | (1 << (SqlParser.DEC - 193)) | (1 << (SqlParser.NUMERIC - 193)))) !== 0) || _la === SqlParser.FIXED)) { - (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5649; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 830, this._ctx) ) { - case 1: - { - this.state = 5648; - this.lengthTwoOptionalDimension(); - } - break; - } - this.state = 5652; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 831, this._ctx) ) { - case 1: - { - this.state = 5651; - _la = this._input.LA(1); - if (!(_la === SqlParser.UNSIGNED || _la === SqlParser.SIGNED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - } - this.state = 5655; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ZEROFILL) { - { - this.state = 5654; - this.match(SqlParser.ZEROFILL); - } - } - - } - break; - - case 9: - _localctx = new SimpleDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 5657; - (_localctx as SimpleDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TINYBLOB - 199)) | (1 << (SqlParser.BLOB - 199)) | (1 << (SqlParser.MEDIUMBLOB - 199)) | (1 << (SqlParser.LONGBLOB - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || _la === SqlParser.BOOL || _la === SqlParser.BOOLEAN)) { - (_localctx as SimpleDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 10: - _localctx = new DimensionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 5658; - (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 200)) & ~0x1F) === 0 && ((1 << (_la - 200)) & ((1 << (SqlParser.TIME - 200)) | (1 << (SqlParser.TIMESTAMP - 200)) | (1 << (SqlParser.DATETIME - 200)) | (1 << (SqlParser.YEAR - 200)) | (1 << (SqlParser.BINARY - 200)) | (1 << (SqlParser.VARBINARY - 200)))) !== 0) || _la === SqlParser.BIT)) { - (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5660; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 833, this._ctx) ) { - case 1: - { - this.state = 5659; - this.lengthOneDimension(); - } - break; - } - } - break; - - case 11: - _localctx = new CollectionDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 5662; - (_localctx as CollectionDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.SET || _la === SqlParser.ENUM)) { - (_localctx as CollectionDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5663; - this.collectionOptions(); - this.state = 5665; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5664; - this.match(SqlParser.BINARY); - } - } - - this.state = 5673; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 836, this._ctx) ) { - case 1: - { - this.state = 5670; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 5667; - this.match(SqlParser.CHARACTER); - this.state = 5668; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 5669; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5672; - this.charsetName(); - } - break; - } - } - break; - - case 12: - _localctx = new SpatialDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 5675; - (_localctx as SpatialDataTypeContext)._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.JSON || ((((_la - 693)) & ~0x1F) === 0 && ((1 << (_la - 693)) & ((1 << (SqlParser.GEOMETRYCOLLECTION - 693)) | (1 << (SqlParser.GEOMCOLLECTION - 693)) | (1 << (SqlParser.GEOMETRY - 693)) | (1 << (SqlParser.LINESTRING - 693)) | (1 << (SqlParser.MULTILINESTRING - 693)) | (1 << (SqlParser.MULTIPOINT - 693)) | (1 << (SqlParser.MULTIPOLYGON - 693)) | (1 << (SqlParser.POINT - 693)) | (1 << (SqlParser.POLYGON - 693)))) !== 0))) { - (_localctx as SpatialDataTypeContext)._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 13: - _localctx = new LongVarcharDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 5676; - (_localctx as LongVarcharDataTypeContext)._typeName = this.match(SqlParser.LONG); - this.state = 5678; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.VARCHAR) { - { - this.state = 5677; - this.match(SqlParser.VARCHAR); - } - } - - this.state = 5681; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.BINARY) { - { - this.state = 5680; - this.match(SqlParser.BINARY); - } - } - - this.state = 5689; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 840, this._ctx) ) { - case 1: - { - this.state = 5686; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 5683; - this.match(SqlParser.CHARACTER); - this.state = 5684; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 5685; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5688; - this.charsetName(); - } - break; - } - this.state = 5693; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 841, this._ctx) ) { - case 1: - { - this.state = 5691; - this.match(SqlParser.COLLATE); - this.state = 5692; - this.collationName(); - } - break; - } - } - break; - - case 14: - _localctx = new LongVarbinaryDataTypeContext(_localctx); - this.enterOuterAlt(_localctx, 14); - { - this.state = 5695; - this.match(SqlParser.LONG); - this.state = 5696; - this.match(SqlParser.VARBINARY); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public collectionOptions(): CollectionOptionsContext { - let _localctx: CollectionOptionsContext = new CollectionOptionsContext(this._ctx, this.state); - this.enterRule(_localctx, 546, SqlParser.RULE_collectionOptions); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5699; - this.match(SqlParser.LR_BRACKET); - this.state = 5700; - this.match(SqlParser.STRING_LITERAL); - this.state = 5705; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5701; - this.match(SqlParser.COMMA); - this.state = 5702; - this.match(SqlParser.STRING_LITERAL); - } - } - this.state = 5707; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 5708; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public convertedDataType(): ConvertedDataTypeContext { - let _localctx: ConvertedDataTypeContext = new ConvertedDataTypeContext(this._ctx, this.state); - this.enterRule(_localctx, 548, SqlParser.RULE_convertedDataType); - let _la: number; - try { - this.state = 5735; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.BINARY: - case SqlParser.NCHAR: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5710; - _localctx._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BINARY || _la === SqlParser.NCHAR)) { - _localctx._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5712; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 5711; - this.lengthOneDimension(); - } - } - - } - break; - case SqlParser.CHAR: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5714; - _localctx._typeName = this.match(SqlParser.CHAR); - this.state = 5716; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 5715; - this.lengthOneDimension(); - } - } - - this.state = 5724; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.CHARACTER || _la === SqlParser.CHARSET) { - { - this.state = 5721; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CHARACTER: - { - this.state = 5718; - this.match(SqlParser.CHARACTER); - this.state = 5719; - this.match(SqlParser.SET); - } - break; - case SqlParser.CHARSET: - { - this.state = 5720; - this.match(SqlParser.CHARSET); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 5723; - this.charsetName(); - } - } - - } - break; - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.DATETIME: - case SqlParser.JSON: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5726; - _localctx._typeName = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.DATETIME - 199)))) !== 0) || _la === SqlParser.JSON)) { - _localctx._typeName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - case SqlParser.DECIMAL: - this.enterOuterAlt(_localctx, 4); - { - this.state = 5727; - _localctx._typeName = this.match(SqlParser.DECIMAL); - this.state = 5729; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LR_BRACKET) { - { - this.state = 5728; - this.lengthTwoDimension(); - } - } - - } - break; - case SqlParser.UNSIGNED: - case SqlParser.SIGNED: - this.enterOuterAlt(_localctx, 5); - { - this.state = 5731; - _la = this._input.LA(1); - if (!(_la === SqlParser.UNSIGNED || _la === SqlParser.SIGNED)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5733; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.INTEGER) { - { - this.state = 5732; - this.match(SqlParser.INTEGER); - } - } - - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lengthOneDimension(): LengthOneDimensionContext { - let _localctx: LengthOneDimensionContext = new LengthOneDimensionContext(this._ctx, this.state); - this.enterRule(_localctx, 550, SqlParser.RULE_lengthOneDimension); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5737; - this.match(SqlParser.LR_BRACKET); - this.state = 5738; - this.decimalLiteral(); - this.state = 5739; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lengthTwoDimension(): LengthTwoDimensionContext { - let _localctx: LengthTwoDimensionContext = new LengthTwoDimensionContext(this._ctx, this.state); - this.enterRule(_localctx, 552, SqlParser.RULE_lengthTwoDimension); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5741; - this.match(SqlParser.LR_BRACKET); - this.state = 5742; - this.decimalLiteral(); - this.state = 5743; - this.match(SqlParser.COMMA); - this.state = 5744; - this.decimalLiteral(); - this.state = 5745; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public lengthTwoOptionalDimension(): LengthTwoOptionalDimensionContext { - let _localctx: LengthTwoOptionalDimensionContext = new LengthTwoOptionalDimensionContext(this._ctx, this.state); - this.enterRule(_localctx, 554, SqlParser.RULE_lengthTwoOptionalDimension); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5747; - this.match(SqlParser.LR_BRACKET); - this.state = 5748; - this.decimalLiteral(); - this.state = 5751; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.COMMA) { - { - this.state = 5749; - this.match(SqlParser.COMMA); - this.state = 5750; - this.decimalLiteral(); - } - } - - this.state = 5753; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public uidList(): UidListContext { - let _localctx: UidListContext = new UidListContext(this._ctx, this.state); - this.enterRule(_localctx, 556, SqlParser.RULE_uidList); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 5755; - this.uid(); - this.state = 5760; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 852, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 5756; - this.match(SqlParser.COMMA); - this.state = 5757; - this.uid(); - } - } - } - this.state = 5762; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 852, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public tables(): TablesContext { - let _localctx: TablesContext = new TablesContext(this._ctx, this.state); - this.enterRule(_localctx, 558, SqlParser.RULE_tables); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 5763; - this.tableName(); - this.state = 5768; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 853, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 5764; - this.match(SqlParser.COMMA); - this.state = 5765; - this.tableName(); - } - } - } - this.state = 5770; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 853, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public indexColumnNames(): IndexColumnNamesContext { - let _localctx: IndexColumnNamesContext = new IndexColumnNamesContext(this._ctx, this.state); - this.enterRule(_localctx, 560, SqlParser.RULE_indexColumnNames); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5771; - this.match(SqlParser.LR_BRACKET); - this.state = 5772; - this.indexColumnName(); - this.state = 5777; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5773; - this.match(SqlParser.COMMA); - this.state = 5774; - this.indexColumnName(); - } - } - this.state = 5779; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 5780; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public expressions(): ExpressionsContext { - let _localctx: ExpressionsContext = new ExpressionsContext(this._ctx, this.state); - this.enterRule(_localctx, 562, SqlParser.RULE_expressions); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5782; - this.expression(0); - this.state = 5787; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5783; - this.match(SqlParser.COMMA); - this.state = 5784; - this.expression(0); - } - } - this.state = 5789; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public expressionsWithDefaults(): ExpressionsWithDefaultsContext { - let _localctx: ExpressionsWithDefaultsContext = new ExpressionsWithDefaultsContext(this._ctx, this.state); - this.enterRule(_localctx, 564, SqlParser.RULE_expressionsWithDefaults); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5790; - this.expressionOrDefault(); - this.state = 5795; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5791; - this.match(SqlParser.COMMA); - this.state = 5792; - this.expressionOrDefault(); - } - } - this.state = 5797; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public constants(): ConstantsContext { - let _localctx: ConstantsContext = new ConstantsContext(this._ctx, this.state); - this.enterRule(_localctx, 566, SqlParser.RULE_constants); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5798; - this.constant(); - this.state = 5803; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5799; - this.match(SqlParser.COMMA); - this.state = 5800; - this.constant(); - } - } - this.state = 5805; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public simpleStrings(): SimpleStringsContext { - let _localctx: SimpleStringsContext = new SimpleStringsContext(this._ctx, this.state); - this.enterRule(_localctx, 568, SqlParser.RULE_simpleStrings); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5806; - this.match(SqlParser.STRING_LITERAL); - this.state = 5811; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5807; - this.match(SqlParser.COMMA); - this.state = 5808; - this.match(SqlParser.STRING_LITERAL); - } - } - this.state = 5813; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public userVariables(): UserVariablesContext { - let _localctx: UserVariablesContext = new UserVariablesContext(this._ctx, this.state); - this.enterRule(_localctx, 570, SqlParser.RULE_userVariables); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5814; - this.match(SqlParser.LOCAL_ID); - this.state = 5819; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 5815; - this.match(SqlParser.COMMA); - this.state = 5816; - this.match(SqlParser.LOCAL_ID); - } - } - this.state = 5821; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public defaultValue(): DefaultValueContext { - let _localctx: DefaultValueContext = new DefaultValueContext(this._ctx, this.state); - this.enterRule(_localctx, 572, SqlParser.RULE_defaultValue); - try { - this.state = 5833; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 862, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5822; - this.match(SqlParser.NULL_LITERAL); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5824; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 860, this._ctx) ) { - case 1: - { - this.state = 5823; - this.unaryOperator(); - } - break; - } - this.state = 5826; - this.constant(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 5827; - this.currentTimestamp(); - this.state = 5831; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 861, this._ctx) ) { - case 1: - { - this.state = 5828; - this.match(SqlParser.ON); - this.state = 5829; - this.match(SqlParser.UPDATE); - this.state = 5830; - this.currentTimestamp(); - } - break; - } - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public currentTimestamp(): CurrentTimestampContext { - let _localctx: CurrentTimestampContext = new CurrentTimestampContext(this._ctx, this.state); - this.enterRule(_localctx, 574, SqlParser.RULE_currentTimestamp); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5849; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CURRENT_TIMESTAMP: - case SqlParser.LOCALTIME: - case SqlParser.LOCALTIMESTAMP: - { - this.state = 5835; - _la = this._input.LA(1); - if (!(((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (SqlParser.CURRENT_TIMESTAMP - 253)) | (1 << (SqlParser.LOCALTIME - 253)) | (1 << (SqlParser.LOCALTIMESTAMP - 253)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5841; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 864, this._ctx) ) { - case 1: - { - this.state = 5836; - this.match(SqlParser.LR_BRACKET); - this.state = 5838; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0)) { - { - this.state = 5837; - this.decimalLiteral(); - } - } - - this.state = 5840; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - break; - case SqlParser.NOW: - { - this.state = 5843; - this.match(SqlParser.NOW); - this.state = 5844; - this.match(SqlParser.LR_BRACKET); - this.state = 5846; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & ((1 << (SqlParser.ZERO_DECIMAL - 1025)) | (1 << (SqlParser.ONE_DECIMAL - 1025)) | (1 << (SqlParser.TWO_DECIMAL - 1025)) | (1 << (SqlParser.DECIMAL_LITERAL - 1025)))) !== 0)) { - { - this.state = 5845; - this.decimalLiteral(); - } - } - - this.state = 5848; - this.match(SqlParser.RR_BRACKET); - } - break; - default: - throw new NoViableAltException(this); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public expressionOrDefault(): ExpressionOrDefaultContext { - let _localctx: ExpressionOrDefaultContext = new ExpressionOrDefaultContext(this._ctx, this.state); - this.enterRule(_localctx, 576, SqlParser.RULE_expressionOrDefault); - try { - this.state = 5853; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.CASE: - case SqlParser.CAST: - case SqlParser.CONVERT: - case SqlParser.CURRENT: - case SqlParser.CURRENT_USER: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.EXISTS: - case SqlParser.FALSE: - case SqlParser.IF: - case SqlParser.INSERT: - case SqlParser.INTERVAL: - case SqlParser.LEFT: - case SqlParser.NOT: - case SqlParser.NULL_LITERAL: - case SqlParser.NUMBER: - case SqlParser.REPLACE: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.TRUE: - case SqlParser.VALUES: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.CHAR: - case SqlParser.BINARY: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.AVG: - case SqlParser.BIT_AND: - case SqlParser.BIT_OR: - case SqlParser.BIT_XOR: - case SqlParser.COUNT: - case SqlParser.GROUP_CONCAT: - case SqlParser.MAX: - case SqlParser.MIN: - case SqlParser.STD: - case SqlParser.STDDEV: - case SqlParser.STDDEV_POP: - case SqlParser.STDDEV_SAMP: - case SqlParser.SUM: - case SqlParser.VAR_POP: - case SqlParser.VAR_SAMP: - case SqlParser.VARIANCE: - case SqlParser.CURRENT_DATE: - case SqlParser.CURRENT_TIME: - case SqlParser.CURRENT_TIMESTAMP: - case SqlParser.LOCALTIME: - case SqlParser.CURDATE: - case SqlParser.CURTIME: - case SqlParser.DATE_ADD: - case SqlParser.DATE_SUB: - case SqlParser.EXTRACT: - case SqlParser.LOCALTIMESTAMP: - case SqlParser.NOW: - case SqlParser.POSITION: - case SqlParser.SUBSTR: - case SqlParser.SUBSTRING: - case SqlParser.SYSDATE: - case SqlParser.TRIM: - case SqlParser.UTC_DATE: - case SqlParser.UTC_TIME: - case SqlParser.UTC_TIMESTAMP: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.PLUS: - case SqlParser.MINUS: - case SqlParser.EXCLAMATION_SYMBOL: - case SqlParser.BIT_NOT_OP: - case SqlParser.LR_BRACKET: - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.START_NATIONAL_STRING_LITERAL: - case SqlParser.STRING_LITERAL: - case SqlParser.DECIMAL_LITERAL: - case SqlParser.HEXADECIMAL_LITERAL: - case SqlParser.REAL_LITERAL: - case SqlParser.NULL_SPEC_LITERAL: - case SqlParser.BIT_STRING: - case SqlParser.STRING_CHARSET_NAME: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - this.enterOuterAlt(_localctx, 1); - { - this.state = 5851; - this.expression(0); - } - break; - case SqlParser.DEFAULT: - this.enterOuterAlt(_localctx, 2); - { - this.state = 5852; - this.match(SqlParser.DEFAULT); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public ifExists(): IfExistsContext { - let _localctx: IfExistsContext = new IfExistsContext(this._ctx, this.state); - this.enterRule(_localctx, 578, SqlParser.RULE_ifExists); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5855; - this.match(SqlParser.IF); - this.state = 5856; - this.match(SqlParser.EXISTS); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public ifNotExists(): IfNotExistsContext { - let _localctx: IfNotExistsContext = new IfNotExistsContext(this._ctx, this.state); - this.enterRule(_localctx, 580, SqlParser.RULE_ifNotExists); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 5858; - this.match(SqlParser.IF); - this.state = 5859; - this.match(SqlParser.NOT); - this.state = 5860; - this.match(SqlParser.EXISTS); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public functionCall(): FunctionCallContext { - let _localctx: FunctionCallContext = new FunctionCallContext(this._ctx, this.state); - this.enterRule(_localctx, 582, SqlParser.RULE_functionCall); - let _la: number; - try { - this.state = 5879; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 870, this._ctx) ) { - case 1: - _localctx = new SpecificFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 5862; - this.specificFunction(); - } - break; - - case 2: - _localctx = new AggregateFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 5863; - this.aggregateWindowedFunction(); - } - break; - - case 3: - _localctx = new ScalarFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 5864; - this.scalarFunctionName(); - this.state = 5865; - this.match(SqlParser.LR_BRACKET); - this.state = 5867; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1F) === 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1F) === 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1F) === 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1F) === 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1F) === 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1F) === 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1F) === 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1F) === 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1F) === 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1F) === 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1F) === 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1F) === 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1F) === 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1F) === 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1F) === 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1F) === 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1F) === 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1F) === 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1F) === 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1F) === 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1F) === 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1F) === 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1F) === 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) { - { - this.state = 5866; - this.functionArgs(); - } - } - - this.state = 5869; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 4: - _localctx = new UdfFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 5871; - this.fullId(); - this.state = 5872; - this.match(SqlParser.LR_BRACKET); - this.state = 5874; - this._errHandler.sync(this); - _la = this._input.LA(1); - if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << SqlParser.CASE) | (1 << SqlParser.CAST) | (1 << SqlParser.CONVERT))) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & ((1 << (SqlParser.CURRENT - 32)) | (1 << (SqlParser.CURRENT_USER - 32)) | (1 << (SqlParser.DATABASE - 32)) | (1 << (SqlParser.DIAGNOSTICS - 32)) | (1 << (SqlParser.EXISTS - 32)) | (1 << (SqlParser.FALSE - 32)))) !== 0) || ((((_la - 69)) & ~0x1F) === 0 && ((1 << (_la - 69)) & ((1 << (SqlParser.IF - 69)) | (1 << (SqlParser.INSERT - 69)) | (1 << (SqlParser.INTERVAL - 69)) | (1 << (SqlParser.LEFT - 69)))) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & ((1 << (SqlParser.NOT - 102)) | (1 << (SqlParser.NULL_LITERAL - 102)) | (1 << (SqlParser.NUMBER - 102)) | (1 << (SqlParser.REPLACE - 102)) | (1 << (SqlParser.RIGHT - 102)))) !== 0) || ((((_la - 151)) & ~0x1F) === 0 && ((1 << (_la - 151)) & ((1 << (SqlParser.STACKED - 151)) | (1 << (SqlParser.TRUE - 151)) | (1 << (SqlParser.VALUES - 151)))) !== 0) || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.CHAR - 199)) | (1 << (SqlParser.BINARY - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)) | (1 << (SqlParser.SERIAL - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.AVG - 233)) | (1 << (SqlParser.BIT_AND - 233)) | (1 << (SqlParser.BIT_OR - 233)) | (1 << (SqlParser.BIT_XOR - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.GROUP_CONCAT - 233)) | (1 << (SqlParser.MAX - 233)) | (1 << (SqlParser.MIN - 233)) | (1 << (SqlParser.STD - 233)) | (1 << (SqlParser.STDDEV - 233)) | (1 << (SqlParser.STDDEV_POP - 233)) | (1 << (SqlParser.STDDEV_SAMP - 233)) | (1 << (SqlParser.SUM - 233)) | (1 << (SqlParser.VAR_POP - 233)) | (1 << (SqlParser.VAR_SAMP - 233)) | (1 << (SqlParser.VARIANCE - 233)) | (1 << (SqlParser.CURRENT_DATE - 233)) | (1 << (SqlParser.CURRENT_TIME - 233)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 233)) | (1 << (SqlParser.LOCALTIME - 233)) | (1 << (SqlParser.CURDATE - 233)) | (1 << (SqlParser.CURTIME - 233)) | (1 << (SqlParser.DATE_ADD - 233)) | (1 << (SqlParser.DATE_SUB - 233)) | (1 << (SqlParser.EXTRACT - 233)) | (1 << (SqlParser.LOCALTIMESTAMP - 233)) | (1 << (SqlParser.NOW - 233)) | (1 << (SqlParser.POSITION - 233)) | (1 << (SqlParser.SUBSTR - 233)) | (1 << (SqlParser.SUBSTRING - 233)))) !== 0) || ((((_la - 265)) & ~0x1F) === 0 && ((1 << (_la - 265)) & ((1 << (SqlParser.SYSDATE - 265)) | (1 << (SqlParser.TRIM - 265)) | (1 << (SqlParser.UTC_DATE - 265)) | (1 << (SqlParser.UTC_TIME - 265)) | (1 << (SqlParser.UTC_TIMESTAMP - 265)) | (1 << (SqlParser.ACCOUNT - 265)) | (1 << (SqlParser.ACTION - 265)) | (1 << (SqlParser.AFTER - 265)) | (1 << (SqlParser.AGGREGATE - 265)) | (1 << (SqlParser.ALGORITHM - 265)) | (1 << (SqlParser.ANY - 265)) | (1 << (SqlParser.AT - 265)) | (1 << (SqlParser.AUTHORS - 265)) | (1 << (SqlParser.AUTOCOMMIT - 265)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 265)) | (1 << (SqlParser.AUTO_INCREMENT - 265)) | (1 << (SqlParser.AVG_ROW_LENGTH - 265)) | (1 << (SqlParser.BEGIN - 265)) | (1 << (SqlParser.BINLOG - 265)) | (1 << (SqlParser.BIT - 265)) | (1 << (SqlParser.BLOCK - 265)) | (1 << (SqlParser.BOOL - 265)) | (1 << (SqlParser.BOOLEAN - 265)) | (1 << (SqlParser.BTREE - 265)) | (1 << (SqlParser.CACHE - 265)) | (1 << (SqlParser.CASCADED - 265)) | (1 << (SqlParser.CHAIN - 265)) | (1 << (SqlParser.CHANGED - 265)) | (1 << (SqlParser.CHANNEL - 265)) | (1 << (SqlParser.CHECKSUM - 265)) | (1 << (SqlParser.PAGE_CHECKSUM - 265)) | (1 << (SqlParser.CIPHER - 265)))) !== 0) || ((((_la - 297)) & ~0x1F) === 0 && ((1 << (_la - 297)) & ((1 << (SqlParser.CLASS_ORIGIN - 297)) | (1 << (SqlParser.CLIENT - 297)) | (1 << (SqlParser.CLOSE - 297)) | (1 << (SqlParser.COALESCE - 297)) | (1 << (SqlParser.CODE - 297)) | (1 << (SqlParser.COLUMNS - 297)) | (1 << (SqlParser.COLUMN_FORMAT - 297)) | (1 << (SqlParser.COLUMN_NAME - 297)) | (1 << (SqlParser.COMMENT - 297)) | (1 << (SqlParser.COMMIT - 297)) | (1 << (SqlParser.COMPACT - 297)) | (1 << (SqlParser.COMPLETION - 297)) | (1 << (SqlParser.COMPRESSED - 297)) | (1 << (SqlParser.COMPRESSION - 297)) | (1 << (SqlParser.CONCURRENT - 297)) | (1 << (SqlParser.CONNECTION - 297)) | (1 << (SqlParser.CONSISTENT - 297)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 297)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 297)) | (1 << (SqlParser.CONSTRAINT_NAME - 297)) | (1 << (SqlParser.CONTAINS - 297)) | (1 << (SqlParser.CONTEXT - 297)) | (1 << (SqlParser.CONTRIBUTORS - 297)) | (1 << (SqlParser.COPY - 297)) | (1 << (SqlParser.CPU - 297)) | (1 << (SqlParser.CURSOR_NAME - 297)) | (1 << (SqlParser.DATA - 297)) | (1 << (SqlParser.DATAFILE - 297)) | (1 << (SqlParser.DEALLOCATE - 297)) | (1 << (SqlParser.DEFAULT_AUTH - 297)) | (1 << (SqlParser.DEFINER - 297)) | (1 << (SqlParser.DELAY_KEY_WRITE - 297)))) !== 0) || ((((_la - 329)) & ~0x1F) === 0 && ((1 << (_la - 329)) & ((1 << (SqlParser.DES_KEY_FILE - 329)) | (1 << (SqlParser.DIRECTORY - 329)) | (1 << (SqlParser.DISABLE - 329)) | (1 << (SqlParser.DISCARD - 329)) | (1 << (SqlParser.DISK - 329)) | (1 << (SqlParser.DO - 329)) | (1 << (SqlParser.DUMPFILE - 329)) | (1 << (SqlParser.DUPLICATE - 329)) | (1 << (SqlParser.DYNAMIC - 329)) | (1 << (SqlParser.ENABLE - 329)) | (1 << (SqlParser.ENCRYPTION - 329)) | (1 << (SqlParser.END - 329)) | (1 << (SqlParser.ENDS - 329)) | (1 << (SqlParser.ENGINE - 329)) | (1 << (SqlParser.ENGINES - 329)) | (1 << (SqlParser.ERROR - 329)) | (1 << (SqlParser.ERRORS - 329)) | (1 << (SqlParser.ESCAPE - 329)) | (1 << (SqlParser.EVEN - 329)) | (1 << (SqlParser.EVENT - 329)) | (1 << (SqlParser.EVENTS - 329)) | (1 << (SqlParser.EVERY - 329)) | (1 << (SqlParser.EXCHANGE - 329)) | (1 << (SqlParser.EXCLUSIVE - 329)) | (1 << (SqlParser.EXPIRE - 329)) | (1 << (SqlParser.EXPORT - 329)) | (1 << (SqlParser.EXTENDED - 329)) | (1 << (SqlParser.EXTENT_SIZE - 329)) | (1 << (SqlParser.FAST - 329)) | (1 << (SqlParser.FAULTS - 329)) | (1 << (SqlParser.FIELDS - 329)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 329)))) !== 0) || ((((_la - 361)) & ~0x1F) === 0 && ((1 << (_la - 361)) & ((1 << (SqlParser.FILTER - 361)) | (1 << (SqlParser.FIRST - 361)) | (1 << (SqlParser.FIXED - 361)) | (1 << (SqlParser.FLUSH - 361)) | (1 << (SqlParser.FOLLOWS - 361)) | (1 << (SqlParser.FOUND - 361)) | (1 << (SqlParser.FULL - 361)) | (1 << (SqlParser.FUNCTION - 361)) | (1 << (SqlParser.GENERAL - 361)) | (1 << (SqlParser.GLOBAL - 361)) | (1 << (SqlParser.GRANTS - 361)) | (1 << (SqlParser.GROUP_REPLICATION - 361)) | (1 << (SqlParser.HANDLER - 361)) | (1 << (SqlParser.HASH - 361)) | (1 << (SqlParser.HELP - 361)) | (1 << (SqlParser.HOST - 361)) | (1 << (SqlParser.HOSTS - 361)) | (1 << (SqlParser.IDENTIFIED - 361)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 361)) | (1 << (SqlParser.IMPORT - 361)) | (1 << (SqlParser.INDEXES - 361)) | (1 << (SqlParser.INITIAL_SIZE - 361)) | (1 << (SqlParser.INPLACE - 361)) | (1 << (SqlParser.INSERT_METHOD - 361)) | (1 << (SqlParser.INSTALL - 361)) | (1 << (SqlParser.INSTANCE - 361)) | (1 << (SqlParser.INVISIBLE - 361)) | (1 << (SqlParser.INVOKER - 361)) | (1 << (SqlParser.IO - 361)) | (1 << (SqlParser.IO_THREAD - 361)) | (1 << (SqlParser.IPC - 361)) | (1 << (SqlParser.ISOLATION - 361)))) !== 0) || ((((_la - 393)) & ~0x1F) === 0 && ((1 << (_la - 393)) & ((1 << (SqlParser.ISSUER - 393)) | (1 << (SqlParser.JSON - 393)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 393)) | (1 << (SqlParser.LANGUAGE - 393)) | (1 << (SqlParser.LAST - 393)) | (1 << (SqlParser.LEAVES - 393)) | (1 << (SqlParser.LESS - 393)) | (1 << (SqlParser.LEVEL - 393)) | (1 << (SqlParser.LIST - 393)) | (1 << (SqlParser.LOCAL - 393)) | (1 << (SqlParser.LOGFILE - 393)) | (1 << (SqlParser.LOGS - 393)) | (1 << (SqlParser.MASTER - 393)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 393)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 393)) | (1 << (SqlParser.MASTER_DELAY - 393)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 393)) | (1 << (SqlParser.MASTER_HOST - 393)) | (1 << (SqlParser.MASTER_LOG_FILE - 393)) | (1 << (SqlParser.MASTER_LOG_POS - 393)) | (1 << (SqlParser.MASTER_PASSWORD - 393)) | (1 << (SqlParser.MASTER_PORT - 393)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 393)) | (1 << (SqlParser.MASTER_SSL - 393)) | (1 << (SqlParser.MASTER_SSL_CA - 393)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 393)) | (1 << (SqlParser.MASTER_SSL_CERT - 393)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 393)) | (1 << (SqlParser.MASTER_SSL_CRL - 393)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 393)) | (1 << (SqlParser.MASTER_SSL_KEY - 393)) | (1 << (SqlParser.MASTER_TLS_VERSION - 393)))) !== 0) || ((((_la - 425)) & ~0x1F) === 0 && ((1 << (_la - 425)) & ((1 << (SqlParser.MASTER_USER - 425)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 425)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_ROWS - 425)) | (1 << (SqlParser.MAX_SIZE - 425)) | (1 << (SqlParser.MAX_UPDATES_PER_HOUR - 425)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 425)) | (1 << (SqlParser.MEDIUM - 425)) | (1 << (SqlParser.MERGE - 425)) | (1 << (SqlParser.MESSAGE_TEXT - 425)) | (1 << (SqlParser.MID - 425)) | (1 << (SqlParser.MIGRATE - 425)) | (1 << (SqlParser.MIN_ROWS - 425)) | (1 << (SqlParser.MODE - 425)) | (1 << (SqlParser.MODIFY - 425)) | (1 << (SqlParser.MUTEX - 425)) | (1 << (SqlParser.MYSQL - 425)) | (1 << (SqlParser.MYSQL_ERRNO - 425)) | (1 << (SqlParser.NAME - 425)) | (1 << (SqlParser.NAMES - 425)) | (1 << (SqlParser.NCHAR - 425)) | (1 << (SqlParser.NEVER - 425)) | (1 << (SqlParser.NEXT - 425)) | (1 << (SqlParser.NO - 425)) | (1 << (SqlParser.NODEGROUP - 425)) | (1 << (SqlParser.NONE - 425)) | (1 << (SqlParser.OFFLINE - 425)) | (1 << (SqlParser.OFFSET - 425)) | (1 << (SqlParser.OJ - 425)) | (1 << (SqlParser.OLD_PASSWORD - 425)) | (1 << (SqlParser.ONE - 425)) | (1 << (SqlParser.ONLINE - 425)))) !== 0) || ((((_la - 457)) & ~0x1F) === 0 && ((1 << (_la - 457)) & ((1 << (SqlParser.ONLY - 457)) | (1 << (SqlParser.OPEN - 457)) | (1 << (SqlParser.OPTIMIZER_COSTS - 457)) | (1 << (SqlParser.OPTIONS - 457)) | (1 << (SqlParser.OWNER - 457)) | (1 << (SqlParser.PACK_KEYS - 457)) | (1 << (SqlParser.PAGE - 457)) | (1 << (SqlParser.PARSER - 457)) | (1 << (SqlParser.PARTIAL - 457)) | (1 << (SqlParser.PARTITIONING - 457)) | (1 << (SqlParser.PARTITIONS - 457)) | (1 << (SqlParser.PASSWORD - 457)) | (1 << (SqlParser.PHASE - 457)) | (1 << (SqlParser.PLUGIN - 457)) | (1 << (SqlParser.PLUGIN_DIR - 457)) | (1 << (SqlParser.PLUGINS - 457)) | (1 << (SqlParser.PORT - 457)) | (1 << (SqlParser.PRECEDES - 457)) | (1 << (SqlParser.PREPARE - 457)) | (1 << (SqlParser.PRESERVE - 457)) | (1 << (SqlParser.PREV - 457)) | (1 << (SqlParser.PROCESSLIST - 457)) | (1 << (SqlParser.PROFILE - 457)) | (1 << (SqlParser.PROFILES - 457)) | (1 << (SqlParser.PROXY - 457)) | (1 << (SqlParser.QUERY - 457)) | (1 << (SqlParser.QUICK - 457)) | (1 << (SqlParser.REBUILD - 457)) | (1 << (SqlParser.RECOVER - 457)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 457)) | (1 << (SqlParser.REDUNDANT - 457)) | (1 << (SqlParser.RELAY - 457)))) !== 0) || ((((_la - 489)) & ~0x1F) === 0 && ((1 << (_la - 489)) & ((1 << (SqlParser.RELAY_LOG_FILE - 489)) | (1 << (SqlParser.RELAY_LOG_POS - 489)) | (1 << (SqlParser.RELAYLOG - 489)) | (1 << (SqlParser.REMOVE - 489)) | (1 << (SqlParser.REORGANIZE - 489)) | (1 << (SqlParser.REPAIR - 489)) | (1 << (SqlParser.REPLICATE_DO_DB - 489)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 489)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 489)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 489)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 489)) | (1 << (SqlParser.REPLICATION - 489)) | (1 << (SqlParser.RESET - 489)) | (1 << (SqlParser.RESUME - 489)) | (1 << (SqlParser.RETURNED_SQLSTATE - 489)) | (1 << (SqlParser.RETURNS - 489)) | (1 << (SqlParser.ROLE - 489)) | (1 << (SqlParser.ROLLBACK - 489)) | (1 << (SqlParser.ROLLUP - 489)) | (1 << (SqlParser.ROTATE - 489)) | (1 << (SqlParser.ROW - 489)) | (1 << (SqlParser.ROWS - 489)) | (1 << (SqlParser.ROW_FORMAT - 489)) | (1 << (SqlParser.SAVEPOINT - 489)) | (1 << (SqlParser.SCHEDULE - 489)) | (1 << (SqlParser.SECURITY - 489)) | (1 << (SqlParser.SERVER - 489)) | (1 << (SqlParser.SESSION - 489)) | (1 << (SqlParser.SHARE - 489)) | (1 << (SqlParser.SHARED - 489)))) !== 0) || ((((_la - 521)) & ~0x1F) === 0 && ((1 << (_la - 521)) & ((1 << (SqlParser.SIGNED - 521)) | (1 << (SqlParser.SIMPLE - 521)) | (1 << (SqlParser.SLAVE - 521)) | (1 << (SqlParser.SLOW - 521)) | (1 << (SqlParser.SNAPSHOT - 521)) | (1 << (SqlParser.SOCKET - 521)) | (1 << (SqlParser.SOME - 521)) | (1 << (SqlParser.SONAME - 521)) | (1 << (SqlParser.SOUNDS - 521)) | (1 << (SqlParser.SOURCE - 521)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 521)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 521)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 521)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 521)) | (1 << (SqlParser.SQL_CACHE - 521)) | (1 << (SqlParser.SQL_NO_CACHE - 521)) | (1 << (SqlParser.SQL_THREAD - 521)) | (1 << (SqlParser.START - 521)) | (1 << (SqlParser.STARTS - 521)) | (1 << (SqlParser.STATS_AUTO_RECALC - 521)) | (1 << (SqlParser.STATS_PERSISTENT - 521)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 521)) | (1 << (SqlParser.STATUS - 521)) | (1 << (SqlParser.STOP - 521)) | (1 << (SqlParser.STORAGE - 521)) | (1 << (SqlParser.STRING - 521)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 521)) | (1 << (SqlParser.SUBJECT - 521)) | (1 << (SqlParser.SUBPARTITION - 521)) | (1 << (SqlParser.SUBPARTITIONS - 521)) | (1 << (SqlParser.SUSPEND - 521)))) !== 0) || ((((_la - 553)) & ~0x1F) === 0 && ((1 << (_la - 553)) & ((1 << (SqlParser.SWAPS - 553)) | (1 << (SqlParser.SWITCHES - 553)) | (1 << (SqlParser.TABLE_NAME - 553)) | (1 << (SqlParser.TABLESPACE - 553)) | (1 << (SqlParser.TEMPORARY - 553)) | (1 << (SqlParser.TEMPTABLE - 553)) | (1 << (SqlParser.THAN - 553)) | (1 << (SqlParser.TRADITIONAL - 553)) | (1 << (SqlParser.TRANSACTION - 553)) | (1 << (SqlParser.TRANSACTIONAL - 553)) | (1 << (SqlParser.TRIGGERS - 553)) | (1 << (SqlParser.TRUNCATE - 553)) | (1 << (SqlParser.UNDEFINED - 553)) | (1 << (SqlParser.UNDOFILE - 553)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 553)) | (1 << (SqlParser.UNINSTALL - 553)) | (1 << (SqlParser.UNKNOWN - 553)) | (1 << (SqlParser.UNTIL - 553)) | (1 << (SqlParser.UPGRADE - 553)) | (1 << (SqlParser.USER - 553)) | (1 << (SqlParser.USE_FRM - 553)) | (1 << (SqlParser.USER_RESOURCES - 553)) | (1 << (SqlParser.VALIDATION - 553)) | (1 << (SqlParser.VALUE - 553)) | (1 << (SqlParser.VARIABLES - 553)) | (1 << (SqlParser.VIEW - 553)) | (1 << (SqlParser.VISIBLE - 553)) | (1 << (SqlParser.WAIT - 553)) | (1 << (SqlParser.WARNINGS - 553)) | (1 << (SqlParser.WITHOUT - 553)) | (1 << (SqlParser.WORK - 553)))) !== 0) || ((((_la - 585)) & ~0x1F) === 0 && ((1 << (_la - 585)) & ((1 << (SqlParser.WRAPPER - 585)) | (1 << (SqlParser.X509 - 585)) | (1 << (SqlParser.XA - 585)) | (1 << (SqlParser.XML - 585)) | (1 << (SqlParser.INTERNAL - 585)) | (1 << (SqlParser.QUARTER - 585)) | (1 << (SqlParser.MONTH - 585)) | (1 << (SqlParser.DAY - 585)) | (1 << (SqlParser.HOUR - 585)) | (1 << (SqlParser.MINUTE - 585)) | (1 << (SqlParser.WEEK - 585)) | (1 << (SqlParser.SECOND - 585)) | (1 << (SqlParser.MICROSECOND - 585)) | (1 << (SqlParser.TABLES - 585)) | (1 << (SqlParser.ROUTINE - 585)) | (1 << (SqlParser.EXECUTE - 585)) | (1 << (SqlParser.FILE - 585)) | (1 << (SqlParser.PROCESS - 585)) | (1 << (SqlParser.RELOAD - 585)) | (1 << (SqlParser.SHUTDOWN - 585)) | (1 << (SqlParser.SUPER - 585)) | (1 << (SqlParser.PRIVILEGES - 585)) | (1 << (SqlParser.AUDIT_ADMIN - 585)) | (1 << (SqlParser.BACKUP_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ADMIN - 585)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 585)) | (1 << (SqlParser.CLONE_ADMIN - 585)))) !== 0) || ((((_la - 617)) & ~0x1F) === 0 && ((1 << (_la - 617)) & ((1 << (SqlParser.CONNECTION_ADMIN - 617)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_ADMIN - 617)) | (1 << (SqlParser.FIREWALL_USER - 617)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 617)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 617)) | (1 << (SqlParser.NDB_STORED_USER - 617)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.REPLICATION_APPLIER - 617)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 617)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 617)) | (1 << (SqlParser.ROLE_ADMIN - 617)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.SET_USER_ID - 617)) | (1 << (SqlParser.SHOW_ROUTINE - 617)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 617)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 617)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 617)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 617)) | (1 << (SqlParser.ARMSCII8 - 617)) | (1 << (SqlParser.ASCII - 617)) | (1 << (SqlParser.BIG5 - 617)) | (1 << (SqlParser.CP1250 - 617)) | (1 << (SqlParser.CP1251 - 617)) | (1 << (SqlParser.CP1256 - 617)) | (1 << (SqlParser.CP1257 - 617)) | (1 << (SqlParser.CP850 - 617)) | (1 << (SqlParser.CP852 - 617)) | (1 << (SqlParser.CP866 - 617)) | (1 << (SqlParser.CP932 - 617)) | (1 << (SqlParser.DEC8 - 617)))) !== 0) || ((((_la - 649)) & ~0x1F) === 0 && ((1 << (_la - 649)) & ((1 << (SqlParser.EUCJPMS - 649)) | (1 << (SqlParser.EUCKR - 649)) | (1 << (SqlParser.GB2312 - 649)) | (1 << (SqlParser.GBK - 649)) | (1 << (SqlParser.GEOSTD8 - 649)) | (1 << (SqlParser.GREEK - 649)) | (1 << (SqlParser.HEBREW - 649)) | (1 << (SqlParser.HP8 - 649)) | (1 << (SqlParser.KEYBCS2 - 649)) | (1 << (SqlParser.KOI8R - 649)) | (1 << (SqlParser.KOI8U - 649)) | (1 << (SqlParser.LATIN1 - 649)) | (1 << (SqlParser.LATIN2 - 649)) | (1 << (SqlParser.LATIN5 - 649)) | (1 << (SqlParser.LATIN7 - 649)) | (1 << (SqlParser.MACCE - 649)) | (1 << (SqlParser.MACROMAN - 649)) | (1 << (SqlParser.SJIS - 649)) | (1 << (SqlParser.SWE7 - 649)) | (1 << (SqlParser.TIS620 - 649)) | (1 << (SqlParser.UCS2 - 649)) | (1 << (SqlParser.UJIS - 649)) | (1 << (SqlParser.UTF16 - 649)) | (1 << (SqlParser.UTF16LE - 649)) | (1 << (SqlParser.UTF32 - 649)) | (1 << (SqlParser.UTF8 - 649)) | (1 << (SqlParser.UTF8MB3 - 649)) | (1 << (SqlParser.UTF8MB4 - 649)) | (1 << (SqlParser.ARCHIVE - 649)) | (1 << (SqlParser.BLACKHOLE - 649)) | (1 << (SqlParser.CSV - 649)) | (1 << (SqlParser.FEDERATED - 649)))) !== 0) || ((((_la - 681)) & ~0x1F) === 0 && ((1 << (_la - 681)) & ((1 << (SqlParser.INNODB - 681)) | (1 << (SqlParser.MEMORY - 681)) | (1 << (SqlParser.MRG_MYISAM - 681)) | (1 << (SqlParser.MYISAM - 681)) | (1 << (SqlParser.NDB - 681)) | (1 << (SqlParser.NDBCLUSTER - 681)) | (1 << (SqlParser.PERFORMANCE_SCHEMA - 681)) | (1 << (SqlParser.TOKUDB - 681)) | (1 << (SqlParser.REPEATABLE - 681)) | (1 << (SqlParser.COMMITTED - 681)) | (1 << (SqlParser.UNCOMMITTED - 681)) | (1 << (SqlParser.SERIALIZABLE - 681)) | (1 << (SqlParser.GEOMETRYCOLLECTION - 681)) | (1 << (SqlParser.LINESTRING - 681)) | (1 << (SqlParser.MULTILINESTRING - 681)) | (1 << (SqlParser.MULTIPOINT - 681)) | (1 << (SqlParser.MULTIPOLYGON - 681)) | (1 << (SqlParser.POINT - 681)) | (1 << (SqlParser.POLYGON - 681)) | (1 << (SqlParser.ABS - 681)) | (1 << (SqlParser.ACOS - 681)) | (1 << (SqlParser.ADDDATE - 681)) | (1 << (SqlParser.ADDTIME - 681)) | (1 << (SqlParser.AES_DECRYPT - 681)) | (1 << (SqlParser.AES_ENCRYPT - 681)) | (1 << (SqlParser.AREA - 681)) | (1 << (SqlParser.ASBINARY - 681)) | (1 << (SqlParser.ASIN - 681)) | (1 << (SqlParser.ASTEXT - 681)) | (1 << (SqlParser.ASWKB - 681)))) !== 0) || ((((_la - 713)) & ~0x1F) === 0 && ((1 << (_la - 713)) & ((1 << (SqlParser.ASWKT - 713)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 713)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 713)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 713)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 713)) | (1 << (SqlParser.ATAN - 713)) | (1 << (SqlParser.ATAN2 - 713)) | (1 << (SqlParser.BENCHMARK - 713)) | (1 << (SqlParser.BIN - 713)) | (1 << (SqlParser.BIT_COUNT - 713)) | (1 << (SqlParser.BIT_LENGTH - 713)) | (1 << (SqlParser.BUFFER - 713)) | (1 << (SqlParser.CATALOG_NAME - 713)) | (1 << (SqlParser.CEIL - 713)) | (1 << (SqlParser.CEILING - 713)) | (1 << (SqlParser.CENTROID - 713)) | (1 << (SqlParser.CHARACTER_LENGTH - 713)) | (1 << (SqlParser.CHARSET - 713)) | (1 << (SqlParser.CHAR_LENGTH - 713)) | (1 << (SqlParser.COERCIBILITY - 713)) | (1 << (SqlParser.COLLATION - 713)) | (1 << (SqlParser.COMPRESS - 713)) | (1 << (SqlParser.CONCAT - 713)) | (1 << (SqlParser.CONCAT_WS - 713)) | (1 << (SqlParser.CONNECTION_ID - 713)) | (1 << (SqlParser.CONV - 713)) | (1 << (SqlParser.CONVERT_TZ - 713)) | (1 << (SqlParser.COS - 713)) | (1 << (SqlParser.COT - 713)) | (1 << (SqlParser.CRC32 - 713)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 713)))) !== 0) || ((((_la - 745)) & ~0x1F) === 0 && ((1 << (_la - 745)) & ((1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 745)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 745)) | (1 << (SqlParser.CREATE_DIGEST - 745)) | (1 << (SqlParser.CROSSES - 745)) | (1 << (SqlParser.DATEDIFF - 745)) | (1 << (SqlParser.DATE_FORMAT - 745)) | (1 << (SqlParser.DAYNAME - 745)) | (1 << (SqlParser.DAYOFMONTH - 745)) | (1 << (SqlParser.DAYOFWEEK - 745)) | (1 << (SqlParser.DAYOFYEAR - 745)) | (1 << (SqlParser.DECODE - 745)) | (1 << (SqlParser.DEGREES - 745)) | (1 << (SqlParser.DES_DECRYPT - 745)) | (1 << (SqlParser.DES_ENCRYPT - 745)) | (1 << (SqlParser.DIMENSION - 745)) | (1 << (SqlParser.DISJOINT - 745)) | (1 << (SqlParser.ELT - 745)) | (1 << (SqlParser.ENCODE - 745)) | (1 << (SqlParser.ENCRYPT - 745)) | (1 << (SqlParser.ENDPOINT - 745)) | (1 << (SqlParser.ENVELOPE - 745)) | (1 << (SqlParser.EQUALS - 745)) | (1 << (SqlParser.EXP - 745)) | (1 << (SqlParser.EXPORT_SET - 745)) | (1 << (SqlParser.EXTERIORRING - 745)) | (1 << (SqlParser.EXTRACTVALUE - 745)) | (1 << (SqlParser.FIELD - 745)) | (1 << (SqlParser.FIND_IN_SET - 745)) | (1 << (SqlParser.FLOOR - 745)) | (1 << (SqlParser.FORMAT - 745)) | (1 << (SqlParser.FOUND_ROWS - 745)) | (1 << (SqlParser.FROM_BASE64 - 745)))) !== 0) || ((((_la - 777)) & ~0x1F) === 0 && ((1 << (_la - 777)) & ((1 << (SqlParser.FROM_DAYS - 777)) | (1 << (SqlParser.FROM_UNIXTIME - 777)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 777)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 777)) | (1 << (SqlParser.GEOMETRYFROMWKB - 777)) | (1 << (SqlParser.GEOMETRYN - 777)) | (1 << (SqlParser.GEOMETRYTYPE - 777)) | (1 << (SqlParser.GEOMFROMTEXT - 777)) | (1 << (SqlParser.GEOMFROMWKB - 777)) | (1 << (SqlParser.GET_FORMAT - 777)) | (1 << (SqlParser.GET_LOCK - 777)) | (1 << (SqlParser.GLENGTH - 777)) | (1 << (SqlParser.GREATEST - 777)) | (1 << (SqlParser.GTID_SUBSET - 777)) | (1 << (SqlParser.GTID_SUBTRACT - 777)) | (1 << (SqlParser.HEX - 777)) | (1 << (SqlParser.IFNULL - 777)) | (1 << (SqlParser.INET6_ATON - 777)) | (1 << (SqlParser.INET6_NTOA - 777)) | (1 << (SqlParser.INET_ATON - 777)) | (1 << (SqlParser.INET_NTOA - 777)) | (1 << (SqlParser.INSTR - 777)) | (1 << (SqlParser.INTERIORRINGN - 777)) | (1 << (SqlParser.INTERSECTS - 777)) | (1 << (SqlParser.ISCLOSED - 777)) | (1 << (SqlParser.ISEMPTY - 777)) | (1 << (SqlParser.ISNULL - 777)) | (1 << (SqlParser.ISSIMPLE - 777)) | (1 << (SqlParser.IS_FREE_LOCK - 777)))) !== 0) || ((((_la - 809)) & ~0x1F) === 0 && ((1 << (_la - 809)) & ((1 << (SqlParser.IS_IPV4 - 809)) | (1 << (SqlParser.IS_IPV4_COMPAT - 809)) | (1 << (SqlParser.IS_IPV4_MAPPED - 809)) | (1 << (SqlParser.IS_IPV6 - 809)) | (1 << (SqlParser.IS_USED_LOCK - 809)) | (1 << (SqlParser.LAST_INSERT_ID - 809)) | (1 << (SqlParser.LCASE - 809)) | (1 << (SqlParser.LEAST - 809)) | (1 << (SqlParser.LENGTH - 809)) | (1 << (SqlParser.LINEFROMTEXT - 809)) | (1 << (SqlParser.LINEFROMWKB - 809)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 809)) | (1 << (SqlParser.LINESTRINGFROMWKB - 809)) | (1 << (SqlParser.LN - 809)) | (1 << (SqlParser.LOAD_FILE - 809)) | (1 << (SqlParser.LOCATE - 809)) | (1 << (SqlParser.LOG - 809)) | (1 << (SqlParser.LOG10 - 809)) | (1 << (SqlParser.LOG2 - 809)) | (1 << (SqlParser.LOWER - 809)) | (1 << (SqlParser.LPAD - 809)) | (1 << (SqlParser.LTRIM - 809)) | (1 << (SqlParser.MAKEDATE - 809)) | (1 << (SqlParser.MAKETIME - 809)) | (1 << (SqlParser.MAKE_SET - 809)) | (1 << (SqlParser.MASTER_POS_WAIT - 809)) | (1 << (SqlParser.MBRCONTAINS - 809)) | (1 << (SqlParser.MBRDISJOINT - 809)) | (1 << (SqlParser.MBREQUAL - 809)) | (1 << (SqlParser.MBRINTERSECTS - 809)) | (1 << (SqlParser.MBROVERLAPS - 809)) | (1 << (SqlParser.MBRTOUCHES - 809)))) !== 0) || ((((_la - 841)) & ~0x1F) === 0 && ((1 << (_la - 841)) & ((1 << (SqlParser.MBRWITHIN - 841)) | (1 << (SqlParser.MD5 - 841)) | (1 << (SqlParser.MLINEFROMTEXT - 841)) | (1 << (SqlParser.MLINEFROMWKB - 841)) | (1 << (SqlParser.MONTHNAME - 841)) | (1 << (SqlParser.MPOINTFROMTEXT - 841)) | (1 << (SqlParser.MPOINTFROMWKB - 841)) | (1 << (SqlParser.MPOLYFROMTEXT - 841)) | (1 << (SqlParser.MPOLYFROMWKB - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 841)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 841)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOINTFROMWKB - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 841)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 841)) | (1 << (SqlParser.NAME_CONST - 841)) | (1 << (SqlParser.NULLIF - 841)) | (1 << (SqlParser.NUMGEOMETRIES - 841)) | (1 << (SqlParser.NUMINTERIORRINGS - 841)) | (1 << (SqlParser.NUMPOINTS - 841)) | (1 << (SqlParser.OCT - 841)) | (1 << (SqlParser.OCTET_LENGTH - 841)) | (1 << (SqlParser.ORD - 841)) | (1 << (SqlParser.OVERLAPS - 841)) | (1 << (SqlParser.PERIOD_ADD - 841)) | (1 << (SqlParser.PERIOD_DIFF - 841)) | (1 << (SqlParser.PI - 841)) | (1 << (SqlParser.POINTFROMTEXT - 841)) | (1 << (SqlParser.POINTFROMWKB - 841)) | (1 << (SqlParser.POINTN - 841)) | (1 << (SqlParser.POLYFROMTEXT - 841)) | (1 << (SqlParser.POLYFROMWKB - 841)))) !== 0) || ((((_la - 873)) & ~0x1F) === 0 && ((1 << (_la - 873)) & ((1 << (SqlParser.POLYGONFROMTEXT - 873)) | (1 << (SqlParser.POLYGONFROMWKB - 873)) | (1 << (SqlParser.POW - 873)) | (1 << (SqlParser.POWER - 873)) | (1 << (SqlParser.QUOTE - 873)) | (1 << (SqlParser.RADIANS - 873)) | (1 << (SqlParser.RAND - 873)) | (1 << (SqlParser.RANDOM_BYTES - 873)) | (1 << (SqlParser.RELEASE_LOCK - 873)) | (1 << (SqlParser.REVERSE - 873)) | (1 << (SqlParser.ROUND - 873)) | (1 << (SqlParser.ROW_COUNT - 873)) | (1 << (SqlParser.RPAD - 873)) | (1 << (SqlParser.RTRIM - 873)) | (1 << (SqlParser.SEC_TO_TIME - 873)) | (1 << (SqlParser.SESSION_USER - 873)) | (1 << (SqlParser.SHA - 873)) | (1 << (SqlParser.SHA1 - 873)) | (1 << (SqlParser.SHA2 - 873)) | (1 << (SqlParser.SCHEMA_NAME - 873)) | (1 << (SqlParser.SIGN - 873)) | (1 << (SqlParser.SIN - 873)) | (1 << (SqlParser.SLEEP - 873)) | (1 << (SqlParser.SOUNDEX - 873)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 873)) | (1 << (SqlParser.SQRT - 873)) | (1 << (SqlParser.SRID - 873)) | (1 << (SqlParser.STARTPOINT - 873)) | (1 << (SqlParser.STRCMP - 873)) | (1 << (SqlParser.STR_TO_DATE - 873)) | (1 << (SqlParser.ST_AREA - 873)) | (1 << (SqlParser.ST_ASBINARY - 873)))) !== 0) || ((((_la - 905)) & ~0x1F) === 0 && ((1 << (_la - 905)) & ((1 << (SqlParser.ST_ASTEXT - 905)) | (1 << (SqlParser.ST_ASWKB - 905)) | (1 << (SqlParser.ST_ASWKT - 905)) | (1 << (SqlParser.ST_BUFFER - 905)) | (1 << (SqlParser.ST_CENTROID - 905)) | (1 << (SqlParser.ST_CONTAINS - 905)) | (1 << (SqlParser.ST_CROSSES - 905)) | (1 << (SqlParser.ST_DIFFERENCE - 905)) | (1 << (SqlParser.ST_DIMENSION - 905)) | (1 << (SqlParser.ST_DISJOINT - 905)) | (1 << (SqlParser.ST_DISTANCE - 905)) | (1 << (SqlParser.ST_ENDPOINT - 905)) | (1 << (SqlParser.ST_ENVELOPE - 905)) | (1 << (SqlParser.ST_EQUALS - 905)) | (1 << (SqlParser.ST_EXTERIORRING - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 905)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 905)) | (1 << (SqlParser.ST_GEOMETRYN - 905)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 905)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 905)) | (1 << (SqlParser.ST_GEOMFROMWKB - 905)) | (1 << (SqlParser.ST_INTERIORRINGN - 905)) | (1 << (SqlParser.ST_INTERSECTION - 905)) | (1 << (SqlParser.ST_INTERSECTS - 905)) | (1 << (SqlParser.ST_ISCLOSED - 905)) | (1 << (SqlParser.ST_ISEMPTY - 905)) | (1 << (SqlParser.ST_ISSIMPLE - 905)))) !== 0) || ((((_la - 937)) & ~0x1F) === 0 && ((1 << (_la - 937)) & ((1 << (SqlParser.ST_LINEFROMTEXT - 937)) | (1 << (SqlParser.ST_LINEFROMWKB - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 937)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 937)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 937)) | (1 << (SqlParser.ST_NUMINTERIORRING - 937)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 937)) | (1 << (SqlParser.ST_NUMPOINTS - 937)) | (1 << (SqlParser.ST_OVERLAPS - 937)) | (1 << (SqlParser.ST_POINTFROMTEXT - 937)) | (1 << (SqlParser.ST_POINTFROMWKB - 937)) | (1 << (SqlParser.ST_POINTN - 937)) | (1 << (SqlParser.ST_POLYFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYFROMWKB - 937)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 937)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 937)) | (1 << (SqlParser.ST_SRID - 937)) | (1 << (SqlParser.ST_STARTPOINT - 937)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 937)) | (1 << (SqlParser.ST_TOUCHES - 937)) | (1 << (SqlParser.ST_UNION - 937)) | (1 << (SqlParser.ST_WITHIN - 937)) | (1 << (SqlParser.ST_X - 937)) | (1 << (SqlParser.ST_Y - 937)) | (1 << (SqlParser.SUBDATE - 937)) | (1 << (SqlParser.SUBSTRING_INDEX - 937)) | (1 << (SqlParser.SUBTIME - 937)) | (1 << (SqlParser.SYSTEM_USER - 937)) | (1 << (SqlParser.TAN - 937)) | (1 << (SqlParser.TIMEDIFF - 937)) | (1 << (SqlParser.TIMESTAMPADD - 937)) | (1 << (SqlParser.TIMESTAMPDIFF - 937)))) !== 0) || ((((_la - 969)) & ~0x1F) === 0 && ((1 << (_la - 969)) & ((1 << (SqlParser.TIME_FORMAT - 969)) | (1 << (SqlParser.TIME_TO_SEC - 969)) | (1 << (SqlParser.TOUCHES - 969)) | (1 << (SqlParser.TO_BASE64 - 969)) | (1 << (SqlParser.TO_DAYS - 969)) | (1 << (SqlParser.TO_SECONDS - 969)) | (1 << (SqlParser.UCASE - 969)) | (1 << (SqlParser.UNCOMPRESS - 969)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 969)) | (1 << (SqlParser.UNHEX - 969)) | (1 << (SqlParser.UNIX_TIMESTAMP - 969)) | (1 << (SqlParser.UPDATEXML - 969)) | (1 << (SqlParser.UPPER - 969)) | (1 << (SqlParser.UUID - 969)) | (1 << (SqlParser.UUID_SHORT - 969)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 969)) | (1 << (SqlParser.VERSION - 969)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 969)) | (1 << (SqlParser.WEEKDAY - 969)) | (1 << (SqlParser.WEEKOFYEAR - 969)) | (1 << (SqlParser.WEIGHT_STRING - 969)) | (1 << (SqlParser.WITHIN - 969)) | (1 << (SqlParser.YEARWEEK - 969)) | (1 << (SqlParser.Y_FUNCTION - 969)) | (1 << (SqlParser.X_FUNCTION - 969)))) !== 0) || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)) | (1 << (SqlParser.LR_BRACKET - 1006)) | (1 << (SqlParser.ZERO_DECIMAL - 1006)) | (1 << (SqlParser.ONE_DECIMAL - 1006)) | (1 << (SqlParser.TWO_DECIMAL - 1006)) | (1 << (SqlParser.CHARSET_REVERSE_QOUTE_STRING - 1006)) | (1 << (SqlParser.START_NATIONAL_STRING_LITERAL - 1006)) | (1 << (SqlParser.STRING_LITERAL - 1006)) | (1 << (SqlParser.DECIMAL_LITERAL - 1006)) | (1 << (SqlParser.HEXADECIMAL_LITERAL - 1006)))) !== 0) || ((((_la - 1038)) & ~0x1F) === 0 && ((1 << (_la - 1038)) & ((1 << (SqlParser.REAL_LITERAL - 1038)) | (1 << (SqlParser.NULL_SPEC_LITERAL - 1038)) | (1 << (SqlParser.BIT_STRING - 1038)) | (1 << (SqlParser.STRING_CHARSET_NAME - 1038)) | (1 << (SqlParser.ID - 1038)) | (1 << (SqlParser.REVERSE_QUOTE_ID - 1038)) | (1 << (SqlParser.LOCAL_ID - 1038)) | (1 << (SqlParser.GLOBAL_ID - 1038)))) !== 0)) { - { - this.state = 5873; - this.functionArgs(); - } - } - - this.state = 5876; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 5: - _localctx = new PasswordFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 5878; - this.passwordFunctionClause(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public specificFunction(): SpecificFunctionContext { - let _localctx: SpecificFunctionContext = new SpecificFunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 584, SqlParser.RULE_specificFunction); - let _la: number; - try { - this.state = 6038; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 890, this._ctx) ) { - case 1: - _localctx = new SimpleFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 5881; - _la = this._input.LA(1); - if (!(_la === SqlParser.CURRENT_USER || ((((_la - 251)) & ~0x1F) === 0 && ((1 << (_la - 251)) & ((1 << (SqlParser.CURRENT_DATE - 251)) | (1 << (SqlParser.CURRENT_TIME - 251)) | (1 << (SqlParser.CURRENT_TIMESTAMP - 251)) | (1 << (SqlParser.LOCALTIME - 251)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 2: - _localctx = new DataTypeFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 5882; - this.match(SqlParser.CONVERT); - this.state = 5883; - this.match(SqlParser.LR_BRACKET); - this.state = 5884; - this.expression(0); - this.state = 5885; - (_localctx as DataTypeFunctionCallContext)._separator = this.match(SqlParser.COMMA); - this.state = 5886; - this.convertedDataType(); - this.state = 5887; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 3: - _localctx = new DataTypeFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 3); - { - this.state = 5889; - this.match(SqlParser.CONVERT); - this.state = 5890; - this.match(SqlParser.LR_BRACKET); - this.state = 5891; - this.expression(0); - this.state = 5892; - this.match(SqlParser.USING); - this.state = 5893; - this.charsetName(); - this.state = 5894; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 4: - _localctx = new DataTypeFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 4); - { - this.state = 5896; - this.match(SqlParser.CAST); - this.state = 5897; - this.match(SqlParser.LR_BRACKET); - this.state = 5898; - this.expression(0); - this.state = 5899; - this.match(SqlParser.AS); - this.state = 5900; - this.convertedDataType(); - this.state = 5901; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 5: - _localctx = new ValuesFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 5); - { - this.state = 5903; - this.match(SqlParser.VALUES); - this.state = 5904; - this.match(SqlParser.LR_BRACKET); - this.state = 5905; - this.fullColumnName(); - this.state = 5906; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 6: - _localctx = new CaseFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 6); - { - this.state = 5908; - this.match(SqlParser.CASE); - this.state = 5909; - this.expression(0); - this.state = 5911; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 5910; - this.caseFuncAlternative(); - } - } - this.state = 5913; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.WHEN); - this.state = 5917; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ELSE) { - { - this.state = 5915; - this.match(SqlParser.ELSE); - this.state = 5916; - (_localctx as CaseFunctionCallContext)._elseArg = this.functionArg(); - } - } - - this.state = 5919; - this.match(SqlParser.END); - } - break; - - case 7: - _localctx = new CaseFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 7); - { - this.state = 5921; - this.match(SqlParser.CASE); - this.state = 5923; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 5922; - this.caseFuncAlternative(); - } - } - this.state = 5925; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.WHEN); - this.state = 5929; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ELSE) { - { - this.state = 5927; - this.match(SqlParser.ELSE); - this.state = 5928; - (_localctx as CaseFunctionCallContext)._elseArg = this.functionArg(); - } - } - - this.state = 5931; - this.match(SqlParser.END); - } - break; - - case 8: - _localctx = new CharFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 8); - { - this.state = 5933; - this.match(SqlParser.CHAR); - this.state = 5934; - this.match(SqlParser.LR_BRACKET); - this.state = 5935; - this.functionArgs(); - this.state = 5938; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.USING) { - { - this.state = 5936; - this.match(SqlParser.USING); - this.state = 5937; - this.charsetName(); - } - } - - this.state = 5940; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 9: - _localctx = new PositionFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 9); - { - this.state = 5942; - this.match(SqlParser.POSITION); - this.state = 5943; - this.match(SqlParser.LR_BRACKET); - this.state = 5946; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 876, this._ctx) ) { - case 1: - { - this.state = 5944; - (_localctx as PositionFunctionCallContext)._positionString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5945; - (_localctx as PositionFunctionCallContext)._positionExpression = this.expression(0); - } - break; - } - this.state = 5948; - this.match(SqlParser.IN); - this.state = 5951; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 877, this._ctx) ) { - case 1: - { - this.state = 5949; - (_localctx as PositionFunctionCallContext)._inString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5950; - (_localctx as PositionFunctionCallContext)._inExpression = this.expression(0); - } - break; - } - this.state = 5953; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 10: - _localctx = new SubstrFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 10); - { - this.state = 5955; - _la = this._input.LA(1); - if (!(_la === SqlParser.SUBSTR || _la === SqlParser.SUBSTRING)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5956; - this.match(SqlParser.LR_BRACKET); - this.state = 5959; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 878, this._ctx) ) { - case 1: - { - this.state = 5957; - (_localctx as SubstrFunctionCallContext)._sourceString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5958; - (_localctx as SubstrFunctionCallContext)._sourceExpression = this.expression(0); - } - break; - } - this.state = 5961; - this.match(SqlParser.FROM); - this.state = 5964; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 879, this._ctx) ) { - case 1: - { - this.state = 5962; - (_localctx as SubstrFunctionCallContext)._fromDecimal = this.decimalLiteral(); - } - break; - - case 2: - { - this.state = 5963; - (_localctx as SubstrFunctionCallContext)._fromExpression = this.expression(0); - } - break; - } - this.state = 5971; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.FOR) { - { - this.state = 5966; - this.match(SqlParser.FOR); - this.state = 5969; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 880, this._ctx) ) { - case 1: - { - this.state = 5967; - (_localctx as SubstrFunctionCallContext)._forDecimal = this.decimalLiteral(); - } - break; - - case 2: - { - this.state = 5968; - (_localctx as SubstrFunctionCallContext)._forExpression = this.expression(0); - } - break; - } - } - } - - this.state = 5973; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 11: - _localctx = new TrimFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 11); - { - this.state = 5975; - this.match(SqlParser.TRIM); - this.state = 5976; - this.match(SqlParser.LR_BRACKET); - this.state = 5977; - (_localctx as TrimFunctionCallContext)._positioinForm = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.BOTH || _la === SqlParser.LEADING || _la === SqlParser.TRAILING)) { - (_localctx as TrimFunctionCallContext)._positioinForm = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 5980; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 882, this._ctx) ) { - case 1: - { - this.state = 5978; - (_localctx as TrimFunctionCallContext)._sourceString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5979; - (_localctx as TrimFunctionCallContext)._sourceExpression = this.expression(0); - } - break; - } - this.state = 5982; - this.match(SqlParser.FROM); - this.state = 5985; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 883, this._ctx) ) { - case 1: - { - this.state = 5983; - (_localctx as TrimFunctionCallContext)._fromString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5984; - (_localctx as TrimFunctionCallContext)._fromExpression = this.expression(0); - } - break; - } - this.state = 5987; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 12: - _localctx = new TrimFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 12); - { - this.state = 5989; - this.match(SqlParser.TRIM); - this.state = 5990; - this.match(SqlParser.LR_BRACKET); - this.state = 5993; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 884, this._ctx) ) { - case 1: - { - this.state = 5991; - (_localctx as TrimFunctionCallContext)._sourceString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5992; - (_localctx as TrimFunctionCallContext)._sourceExpression = this.expression(0); - } - break; - } - this.state = 5995; - this.match(SqlParser.FROM); - this.state = 5998; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 885, this._ctx) ) { - case 1: - { - this.state = 5996; - (_localctx as TrimFunctionCallContext)._fromString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 5997; - (_localctx as TrimFunctionCallContext)._fromExpression = this.expression(0); - } - break; - } - this.state = 6000; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 13: - _localctx = new WeightFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 13); - { - this.state = 6002; - this.match(SqlParser.WEIGHT_STRING); - this.state = 6003; - this.match(SqlParser.LR_BRACKET); - this.state = 6006; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 886, this._ctx) ) { - case 1: - { - this.state = 6004; - this.stringLiteral(); - } - break; - - case 2: - { - this.state = 6005; - this.expression(0); - } - break; - } - this.state = 6014; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.AS) { - { - this.state = 6008; - this.match(SqlParser.AS); - this.state = 6009; - (_localctx as WeightFunctionCallContext)._stringFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.CHAR || _la === SqlParser.BINARY)) { - (_localctx as WeightFunctionCallContext)._stringFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6010; - this.match(SqlParser.LR_BRACKET); - this.state = 6011; - this.decimalLiteral(); - this.state = 6012; - this.match(SqlParser.RR_BRACKET); - } - } - - this.state = 6017; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.LEVEL) { - { - this.state = 6016; - this.levelsInWeightString(); - } - } - - this.state = 6019; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 14: - _localctx = new ExtractFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 14); - { - this.state = 6021; - this.match(SqlParser.EXTRACT); - this.state = 6022; - this.match(SqlParser.LR_BRACKET); - this.state = 6023; - this.intervalType(); - this.state = 6024; - this.match(SqlParser.FROM); - this.state = 6027; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 889, this._ctx) ) { - case 1: - { - this.state = 6025; - (_localctx as ExtractFunctionCallContext)._sourceString = this.stringLiteral(); - } - break; - - case 2: - { - this.state = 6026; - (_localctx as ExtractFunctionCallContext)._sourceExpression = this.expression(0); - } - break; - } - this.state = 6029; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 15: - _localctx = new GetFormatFunctionCallContext(_localctx); - this.enterOuterAlt(_localctx, 15); - { - this.state = 6031; - this.match(SqlParser.GET_FORMAT); - this.state = 6032; - this.match(SqlParser.LR_BRACKET); - this.state = 6033; - (_localctx as GetFormatFunctionCallContext)._datetimeFormat = this._input.LT(1); - _la = this._input.LA(1); - if (!(((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.DATETIME - 199)))) !== 0))) { - (_localctx as GetFormatFunctionCallContext)._datetimeFormat = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6034; - this.match(SqlParser.COMMA); - this.state = 6035; - this.stringLiteral(); - this.state = 6036; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public caseFuncAlternative(): CaseFuncAlternativeContext { - let _localctx: CaseFuncAlternativeContext = new CaseFuncAlternativeContext(this._ctx, this.state); - this.enterRule(_localctx, 586, SqlParser.RULE_caseFuncAlternative); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6040; - this.match(SqlParser.WHEN); - this.state = 6041; - _localctx._condition = this.functionArg(); - this.state = 6042; - this.match(SqlParser.THEN); - this.state = 6043; - _localctx._consequent = this.functionArg(); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public levelsInWeightString(): LevelsInWeightStringContext { - let _localctx: LevelsInWeightStringContext = new LevelsInWeightStringContext(this._ctx, this.state); - this.enterRule(_localctx, 588, SqlParser.RULE_levelsInWeightString); - let _la: number; - try { - this.state = 6059; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 892, this._ctx) ) { - case 1: - _localctx = new LevelWeightListContext(_localctx); - this.enterOuterAlt(_localctx, 1); - { - this.state = 6045; - this.match(SqlParser.LEVEL); - this.state = 6046; - this.levelInWeightListElement(); - this.state = 6051; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 6047; - this.match(SqlParser.COMMA); - this.state = 6048; - this.levelInWeightListElement(); - } - } - this.state = 6053; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - break; - - case 2: - _localctx = new LevelWeightRangeContext(_localctx); - this.enterOuterAlt(_localctx, 2); - { - this.state = 6054; - this.match(SqlParser.LEVEL); - this.state = 6055; - (_localctx as LevelWeightRangeContext)._firstLevel = this.decimalLiteral(); - this.state = 6056; - this.match(SqlParser.MINUS); - this.state = 6057; - (_localctx as LevelWeightRangeContext)._lastLevel = this.decimalLiteral(); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public levelInWeightListElement(): LevelInWeightListElementContext { - let _localctx: LevelInWeightListElementContext = new LevelInWeightListElementContext(this._ctx, this.state); - this.enterRule(_localctx, 590, SqlParser.RULE_levelInWeightListElement); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6061; - this.decimalLiteral(); - this.state = 6063; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ASC || _la === SqlParser.DESC || _la === SqlParser.REVERSE) { - { - this.state = 6062; - _localctx._orderType = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ASC || _la === SqlParser.DESC || _la === SqlParser.REVERSE)) { - _localctx._orderType = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public aggregateWindowedFunction(): AggregateWindowedFunctionContext { - let _localctx: AggregateWindowedFunctionContext = new AggregateWindowedFunctionContext(this._ctx, this.state); - this.enterRule(_localctx, 592, SqlParser.RULE_aggregateWindowedFunction); - let _la: number; - try { - this.state = 6121; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 902, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6065; - _la = this._input.LA(1); - if (!(((((_la - 235)) & ~0x1F) === 0 && ((1 << (_la - 235)) & ((1 << (SqlParser.AVG - 235)) | (1 << (SqlParser.MAX - 235)) | (1 << (SqlParser.MIN - 235)) | (1 << (SqlParser.SUM - 235)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6066; - this.match(SqlParser.LR_BRACKET); - this.state = 6068; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL || _la === SqlParser.DISTINCT) { - { - this.state = 6067; - _localctx._aggregator = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.DISTINCT)) { - _localctx._aggregator = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - - this.state = 6070; - this.functionArg(); - this.state = 6071; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6073; - this.match(SqlParser.COUNT); - this.state = 6074; - this.match(SqlParser.LR_BRACKET); - this.state = 6080; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.STAR: - { - this.state = 6075; - _localctx._starArg = this.match(SqlParser.STAR); - } - break; - case SqlParser.ALL: - case SqlParser.CASE: - case SqlParser.CAST: - case SqlParser.CONVERT: - case SqlParser.CURRENT: - case SqlParser.CURRENT_USER: - case SqlParser.DATABASE: - case SqlParser.DIAGNOSTICS: - case SqlParser.EXISTS: - case SqlParser.FALSE: - case SqlParser.IF: - case SqlParser.INSERT: - case SqlParser.INTERVAL: - case SqlParser.LEFT: - case SqlParser.NOT: - case SqlParser.NULL_LITERAL: - case SqlParser.NUMBER: - case SqlParser.REPLACE: - case SqlParser.RIGHT: - case SqlParser.STACKED: - case SqlParser.TRUE: - case SqlParser.VALUES: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.DATETIME: - case SqlParser.YEAR: - case SqlParser.CHAR: - case SqlParser.BINARY: - case SqlParser.TEXT: - case SqlParser.ENUM: - case SqlParser.SERIAL: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.AVG: - case SqlParser.BIT_AND: - case SqlParser.BIT_OR: - case SqlParser.BIT_XOR: - case SqlParser.COUNT: - case SqlParser.GROUP_CONCAT: - case SqlParser.MAX: - case SqlParser.MIN: - case SqlParser.STD: - case SqlParser.STDDEV: - case SqlParser.STDDEV_POP: - case SqlParser.STDDEV_SAMP: - case SqlParser.SUM: - case SqlParser.VAR_POP: - case SqlParser.VAR_SAMP: - case SqlParser.VARIANCE: - case SqlParser.CURRENT_DATE: - case SqlParser.CURRENT_TIME: - case SqlParser.CURRENT_TIMESTAMP: - case SqlParser.LOCALTIME: - case SqlParser.CURDATE: - case SqlParser.CURTIME: - case SqlParser.DATE_ADD: - case SqlParser.DATE_SUB: - case SqlParser.EXTRACT: - case SqlParser.LOCALTIMESTAMP: - case SqlParser.NOW: - case SqlParser.POSITION: - case SqlParser.SUBSTR: - case SqlParser.SUBSTRING: - case SqlParser.SYSDATE: - case SqlParser.TRIM: - case SqlParser.UTC_DATE: - case SqlParser.UTC_TIME: - case SqlParser.UTC_TIMESTAMP: - case SqlParser.ACCOUNT: - case SqlParser.ACTION: - case SqlParser.AFTER: - case SqlParser.AGGREGATE: - case SqlParser.ALGORITHM: - case SqlParser.ANY: - case SqlParser.AT: - case SqlParser.AUTHORS: - case SqlParser.AUTOCOMMIT: - case SqlParser.AUTOEXTEND_SIZE: - case SqlParser.AUTO_INCREMENT: - case SqlParser.AVG_ROW_LENGTH: - case SqlParser.BEGIN: - case SqlParser.BINLOG: - case SqlParser.BIT: - case SqlParser.BLOCK: - case SqlParser.BOOL: - case SqlParser.BOOLEAN: - case SqlParser.BTREE: - case SqlParser.CACHE: - case SqlParser.CASCADED: - case SqlParser.CHAIN: - case SqlParser.CHANGED: - case SqlParser.CHANNEL: - case SqlParser.CHECKSUM: - case SqlParser.PAGE_CHECKSUM: - case SqlParser.CIPHER: - case SqlParser.CLASS_ORIGIN: - case SqlParser.CLIENT: - case SqlParser.CLOSE: - case SqlParser.COALESCE: - case SqlParser.CODE: - case SqlParser.COLUMNS: - case SqlParser.COLUMN_FORMAT: - case SqlParser.COLUMN_NAME: - case SqlParser.COMMENT: - case SqlParser.COMMIT: - case SqlParser.COMPACT: - case SqlParser.COMPLETION: - case SqlParser.COMPRESSED: - case SqlParser.COMPRESSION: - case SqlParser.CONCURRENT: - case SqlParser.CONNECTION: - case SqlParser.CONSISTENT: - case SqlParser.CONSTRAINT_CATALOG: - case SqlParser.CONSTRAINT_SCHEMA: - case SqlParser.CONSTRAINT_NAME: - case SqlParser.CONTAINS: - case SqlParser.CONTEXT: - case SqlParser.CONTRIBUTORS: - case SqlParser.COPY: - case SqlParser.CPU: - case SqlParser.CURSOR_NAME: - case SqlParser.DATA: - case SqlParser.DATAFILE: - case SqlParser.DEALLOCATE: - case SqlParser.DEFAULT_AUTH: - case SqlParser.DEFINER: - case SqlParser.DELAY_KEY_WRITE: - case SqlParser.DES_KEY_FILE: - case SqlParser.DIRECTORY: - case SqlParser.DISABLE: - case SqlParser.DISCARD: - case SqlParser.DISK: - case SqlParser.DO: - case SqlParser.DUMPFILE: - case SqlParser.DUPLICATE: - case SqlParser.DYNAMIC: - case SqlParser.ENABLE: - case SqlParser.ENCRYPTION: - case SqlParser.END: - case SqlParser.ENDS: - case SqlParser.ENGINE: - case SqlParser.ENGINES: - case SqlParser.ERROR: - case SqlParser.ERRORS: - case SqlParser.ESCAPE: - case SqlParser.EVEN: - case SqlParser.EVENT: - case SqlParser.EVENTS: - case SqlParser.EVERY: - case SqlParser.EXCHANGE: - case SqlParser.EXCLUSIVE: - case SqlParser.EXPIRE: - case SqlParser.EXPORT: - case SqlParser.EXTENDED: - case SqlParser.EXTENT_SIZE: - case SqlParser.FAST: - case SqlParser.FAULTS: - case SqlParser.FIELDS: - case SqlParser.FILE_BLOCK_SIZE: - case SqlParser.FILTER: - case SqlParser.FIRST: - case SqlParser.FIXED: - case SqlParser.FLUSH: - case SqlParser.FOLLOWS: - case SqlParser.FOUND: - case SqlParser.FULL: - case SqlParser.FUNCTION: - case SqlParser.GENERAL: - case SqlParser.GLOBAL: - case SqlParser.GRANTS: - case SqlParser.GROUP_REPLICATION: - case SqlParser.HANDLER: - case SqlParser.HASH: - case SqlParser.HELP: - case SqlParser.HOST: - case SqlParser.HOSTS: - case SqlParser.IDENTIFIED: - case SqlParser.IGNORE_SERVER_IDS: - case SqlParser.IMPORT: - case SqlParser.INDEXES: - case SqlParser.INITIAL_SIZE: - case SqlParser.INPLACE: - case SqlParser.INSERT_METHOD: - case SqlParser.INSTALL: - case SqlParser.INSTANCE: - case SqlParser.INVISIBLE: - case SqlParser.INVOKER: - case SqlParser.IO: - case SqlParser.IO_THREAD: - case SqlParser.IPC: - case SqlParser.ISOLATION: - case SqlParser.ISSUER: - case SqlParser.JSON: - case SqlParser.KEY_BLOCK_SIZE: - case SqlParser.LANGUAGE: - case SqlParser.LAST: - case SqlParser.LEAVES: - case SqlParser.LESS: - case SqlParser.LEVEL: - case SqlParser.LIST: - case SqlParser.LOCAL: - case SqlParser.LOGFILE: - case SqlParser.LOGS: - case SqlParser.MASTER: - case SqlParser.MASTER_AUTO_POSITION: - case SqlParser.MASTER_CONNECT_RETRY: - case SqlParser.MASTER_DELAY: - case SqlParser.MASTER_HEARTBEAT_PERIOD: - case SqlParser.MASTER_HOST: - case SqlParser.MASTER_LOG_FILE: - case SqlParser.MASTER_LOG_POS: - case SqlParser.MASTER_PASSWORD: - case SqlParser.MASTER_PORT: - case SqlParser.MASTER_RETRY_COUNT: - case SqlParser.MASTER_SSL: - case SqlParser.MASTER_SSL_CA: - case SqlParser.MASTER_SSL_CAPATH: - case SqlParser.MASTER_SSL_CERT: - case SqlParser.MASTER_SSL_CIPHER: - case SqlParser.MASTER_SSL_CRL: - case SqlParser.MASTER_SSL_CRLPATH: - case SqlParser.MASTER_SSL_KEY: - case SqlParser.MASTER_TLS_VERSION: - case SqlParser.MASTER_USER: - case SqlParser.MAX_CONNECTIONS_PER_HOUR: - case SqlParser.MAX_QUERIES_PER_HOUR: - case SqlParser.MAX_ROWS: - case SqlParser.MAX_SIZE: - case SqlParser.MAX_UPDATES_PER_HOUR: - case SqlParser.MAX_USER_CONNECTIONS: - case SqlParser.MEDIUM: - case SqlParser.MERGE: - case SqlParser.MESSAGE_TEXT: - case SqlParser.MID: - case SqlParser.MIGRATE: - case SqlParser.MIN_ROWS: - case SqlParser.MODE: - case SqlParser.MODIFY: - case SqlParser.MUTEX: - case SqlParser.MYSQL: - case SqlParser.MYSQL_ERRNO: - case SqlParser.NAME: - case SqlParser.NAMES: - case SqlParser.NCHAR: - case SqlParser.NEVER: - case SqlParser.NEXT: - case SqlParser.NO: - case SqlParser.NODEGROUP: - case SqlParser.NONE: - case SqlParser.OFFLINE: - case SqlParser.OFFSET: - case SqlParser.OJ: - case SqlParser.OLD_PASSWORD: - case SqlParser.ONE: - case SqlParser.ONLINE: - case SqlParser.ONLY: - case SqlParser.OPEN: - case SqlParser.OPTIMIZER_COSTS: - case SqlParser.OPTIONS: - case SqlParser.OWNER: - case SqlParser.PACK_KEYS: - case SqlParser.PAGE: - case SqlParser.PARSER: - case SqlParser.PARTIAL: - case SqlParser.PARTITIONING: - case SqlParser.PARTITIONS: - case SqlParser.PASSWORD: - case SqlParser.PHASE: - case SqlParser.PLUGIN: - case SqlParser.PLUGIN_DIR: - case SqlParser.PLUGINS: - case SqlParser.PORT: - case SqlParser.PRECEDES: - case SqlParser.PREPARE: - case SqlParser.PRESERVE: - case SqlParser.PREV: - case SqlParser.PROCESSLIST: - case SqlParser.PROFILE: - case SqlParser.PROFILES: - case SqlParser.PROXY: - case SqlParser.QUERY: - case SqlParser.QUICK: - case SqlParser.REBUILD: - case SqlParser.RECOVER: - case SqlParser.REDO_BUFFER_SIZE: - case SqlParser.REDUNDANT: - case SqlParser.RELAY: - case SqlParser.RELAY_LOG_FILE: - case SqlParser.RELAY_LOG_POS: - case SqlParser.RELAYLOG: - case SqlParser.REMOVE: - case SqlParser.REORGANIZE: - case SqlParser.REPAIR: - case SqlParser.REPLICATE_DO_DB: - case SqlParser.REPLICATE_DO_TABLE: - case SqlParser.REPLICATE_IGNORE_DB: - case SqlParser.REPLICATE_IGNORE_TABLE: - case SqlParser.REPLICATE_REWRITE_DB: - case SqlParser.REPLICATE_WILD_DO_TABLE: - case SqlParser.REPLICATE_WILD_IGNORE_TABLE: - case SqlParser.REPLICATION: - case SqlParser.RESET: - case SqlParser.RESUME: - case SqlParser.RETURNED_SQLSTATE: - case SqlParser.RETURNS: - case SqlParser.ROLE: - case SqlParser.ROLLBACK: - case SqlParser.ROLLUP: - case SqlParser.ROTATE: - case SqlParser.ROW: - case SqlParser.ROWS: - case SqlParser.ROW_FORMAT: - case SqlParser.SAVEPOINT: - case SqlParser.SCHEDULE: - case SqlParser.SECURITY: - case SqlParser.SERVER: - case SqlParser.SESSION: - case SqlParser.SHARE: - case SqlParser.SHARED: - case SqlParser.SIGNED: - case SqlParser.SIMPLE: - case SqlParser.SLAVE: - case SqlParser.SLOW: - case SqlParser.SNAPSHOT: - case SqlParser.SOCKET: - case SqlParser.SOME: - case SqlParser.SONAME: - case SqlParser.SOUNDS: - case SqlParser.SOURCE: - case SqlParser.SQL_AFTER_GTIDS: - case SqlParser.SQL_AFTER_MTS_GAPS: - case SqlParser.SQL_BEFORE_GTIDS: - case SqlParser.SQL_BUFFER_RESULT: - case SqlParser.SQL_CACHE: - case SqlParser.SQL_NO_CACHE: - case SqlParser.SQL_THREAD: - case SqlParser.START: - case SqlParser.STARTS: - case SqlParser.STATS_AUTO_RECALC: - case SqlParser.STATS_PERSISTENT: - case SqlParser.STATS_SAMPLE_PAGES: - case SqlParser.STATUS: - case SqlParser.STOP: - case SqlParser.STORAGE: - case SqlParser.STRING: - case SqlParser.SUBCLASS_ORIGIN: - case SqlParser.SUBJECT: - case SqlParser.SUBPARTITION: - case SqlParser.SUBPARTITIONS: - case SqlParser.SUSPEND: - case SqlParser.SWAPS: - case SqlParser.SWITCHES: - case SqlParser.TABLE_NAME: - case SqlParser.TABLESPACE: - case SqlParser.TEMPORARY: - case SqlParser.TEMPTABLE: - case SqlParser.THAN: - case SqlParser.TRADITIONAL: - case SqlParser.TRANSACTION: - case SqlParser.TRANSACTIONAL: - case SqlParser.TRIGGERS: - case SqlParser.TRUNCATE: - case SqlParser.UNDEFINED: - case SqlParser.UNDOFILE: - case SqlParser.UNDO_BUFFER_SIZE: - case SqlParser.UNINSTALL: - case SqlParser.UNKNOWN: - case SqlParser.UNTIL: - case SqlParser.UPGRADE: - case SqlParser.USER: - case SqlParser.USE_FRM: - case SqlParser.USER_RESOURCES: - case SqlParser.VALIDATION: - case SqlParser.VALUE: - case SqlParser.VARIABLES: - case SqlParser.VIEW: - case SqlParser.VISIBLE: - case SqlParser.WAIT: - case SqlParser.WARNINGS: - case SqlParser.WITHOUT: - case SqlParser.WORK: - case SqlParser.WRAPPER: - case SqlParser.X509: - case SqlParser.XA: - case SqlParser.XML: - case SqlParser.INTERNAL: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.TABLES: - case SqlParser.ROUTINE: - case SqlParser.EXECUTE: - case SqlParser.FILE: - case SqlParser.PROCESS: - case SqlParser.RELOAD: - case SqlParser.SHUTDOWN: - case SqlParser.SUPER: - case SqlParser.PRIVILEGES: - case SqlParser.AUDIT_ADMIN: - case SqlParser.BACKUP_ADMIN: - case SqlParser.BINLOG_ADMIN: - case SqlParser.BINLOG_ENCRYPTION_ADMIN: - case SqlParser.CLONE_ADMIN: - case SqlParser.CONNECTION_ADMIN: - case SqlParser.ENCRYPTION_KEY_ADMIN: - case SqlParser.FIREWALL_ADMIN: - case SqlParser.FIREWALL_USER: - case SqlParser.GROUP_REPLICATION_ADMIN: - case SqlParser.INNODB_REDO_LOG_ARCHIVE: - case SqlParser.NDB_STORED_USER: - case SqlParser.PERSIST_RO_VARIABLES_ADMIN: - case SqlParser.REPLICATION_APPLIER: - case SqlParser.REPLICATION_SLAVE_ADMIN: - case SqlParser.RESOURCE_GROUP_ADMIN: - case SqlParser.RESOURCE_GROUP_USER: - case SqlParser.ROLE_ADMIN: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.SET_USER_ID: - case SqlParser.SHOW_ROUTINE: - case SqlParser.SYSTEM_VARIABLES_ADMIN: - case SqlParser.TABLE_ENCRYPTION_ADMIN: - case SqlParser.VERSION_TOKEN_ADMIN: - case SqlParser.XA_RECOVER_ADMIN: - case SqlParser.ARMSCII8: - case SqlParser.ASCII: - case SqlParser.BIG5: - case SqlParser.CP1250: - case SqlParser.CP1251: - case SqlParser.CP1256: - case SqlParser.CP1257: - case SqlParser.CP850: - case SqlParser.CP852: - case SqlParser.CP866: - case SqlParser.CP932: - case SqlParser.DEC8: - case SqlParser.EUCJPMS: - case SqlParser.EUCKR: - case SqlParser.GB2312: - case SqlParser.GBK: - case SqlParser.GEOSTD8: - case SqlParser.GREEK: - case SqlParser.HEBREW: - case SqlParser.HP8: - case SqlParser.KEYBCS2: - case SqlParser.KOI8R: - case SqlParser.KOI8U: - case SqlParser.LATIN1: - case SqlParser.LATIN2: - case SqlParser.LATIN5: - case SqlParser.LATIN7: - case SqlParser.MACCE: - case SqlParser.MACROMAN: - case SqlParser.SJIS: - case SqlParser.SWE7: - case SqlParser.TIS620: - case SqlParser.UCS2: - case SqlParser.UJIS: - case SqlParser.UTF16: - case SqlParser.UTF16LE: - case SqlParser.UTF32: - case SqlParser.UTF8: - case SqlParser.UTF8MB3: - case SqlParser.UTF8MB4: - case SqlParser.ARCHIVE: - case SqlParser.BLACKHOLE: - case SqlParser.CSV: - case SqlParser.FEDERATED: - case SqlParser.INNODB: - case SqlParser.MEMORY: - case SqlParser.MRG_MYISAM: - case SqlParser.MYISAM: - case SqlParser.NDB: - case SqlParser.NDBCLUSTER: - case SqlParser.PERFORMANCE_SCHEMA: - case SqlParser.TOKUDB: - case SqlParser.REPEATABLE: - case SqlParser.COMMITTED: - case SqlParser.UNCOMMITTED: - case SqlParser.SERIALIZABLE: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CATALOG_NAME: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SCHEMA_NAME: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - case SqlParser.PLUS: - case SqlParser.MINUS: - case SqlParser.EXCLAMATION_SYMBOL: - case SqlParser.BIT_NOT_OP: - case SqlParser.LR_BRACKET: - case SqlParser.ZERO_DECIMAL: - case SqlParser.ONE_DECIMAL: - case SqlParser.TWO_DECIMAL: - case SqlParser.CHARSET_REVERSE_QOUTE_STRING: - case SqlParser.START_NATIONAL_STRING_LITERAL: - case SqlParser.STRING_LITERAL: - case SqlParser.DECIMAL_LITERAL: - case SqlParser.HEXADECIMAL_LITERAL: - case SqlParser.REAL_LITERAL: - case SqlParser.NULL_SPEC_LITERAL: - case SqlParser.BIT_STRING: - case SqlParser.STRING_CHARSET_NAME: - case SqlParser.ID: - case SqlParser.REVERSE_QUOTE_ID: - case SqlParser.LOCAL_ID: - case SqlParser.GLOBAL_ID: - { - this.state = 6077; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL) { - { - this.state = 6076; - _localctx._aggregator = this.match(SqlParser.ALL); - } - } - - this.state = 6079; - this.functionArg(); - } - break; - default: - throw new NoViableAltException(this); - } - this.state = 6082; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6083; - this.match(SqlParser.COUNT); - this.state = 6084; - this.match(SqlParser.LR_BRACKET); - this.state = 6085; - _localctx._aggregator = this.match(SqlParser.DISTINCT); - this.state = 6086; - this.functionArgs(); - this.state = 6087; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6089; - _la = this._input.LA(1); - if (!(((((_la - 236)) & ~0x1F) === 0 && ((1 << (_la - 236)) & ((1 << (SqlParser.BIT_AND - 236)) | (1 << (SqlParser.BIT_OR - 236)) | (1 << (SqlParser.BIT_XOR - 236)) | (1 << (SqlParser.STD - 236)) | (1 << (SqlParser.STDDEV - 236)) | (1 << (SqlParser.STDDEV_POP - 236)) | (1 << (SqlParser.STDDEV_SAMP - 236)) | (1 << (SqlParser.VAR_POP - 236)) | (1 << (SqlParser.VAR_SAMP - 236)) | (1 << (SqlParser.VARIANCE - 236)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6090; - this.match(SqlParser.LR_BRACKET); - this.state = 6092; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ALL) { - { - this.state = 6091; - _localctx._aggregator = this.match(SqlParser.ALL); - } - } - - this.state = 6094; - this.functionArg(); - this.state = 6095; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 6097; - this.match(SqlParser.GROUP_CONCAT); - this.state = 6098; - this.match(SqlParser.LR_BRACKET); - this.state = 6100; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.DISTINCT) { - { - this.state = 6099; - _localctx._aggregator = this.match(SqlParser.DISTINCT); - } - } - - this.state = 6102; - this.functionArgs(); - this.state = 6113; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.ORDER) { - { - this.state = 6103; - this.match(SqlParser.ORDER); - this.state = 6104; - this.match(SqlParser.BY); - this.state = 6105; - this.orderByExpression(); - this.state = 6110; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 6106; - this.match(SqlParser.COMMA); - this.state = 6107; - this.orderByExpression(); - } - } - this.state = 6112; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - - this.state = 6117; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.SEPARATOR) { - { - this.state = 6115; - this.match(SqlParser.SEPARATOR); - this.state = 6116; - _localctx._separator = this.match(SqlParser.STRING_LITERAL); - } - } - - this.state = 6119; - this.match(SqlParser.RR_BRACKET); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public scalarFunctionName(): ScalarFunctionNameContext { - let _localctx: ScalarFunctionNameContext = new ScalarFunctionNameContext(this._ctx, this.state); - this.enterRule(_localctx, 594, SqlParser.RULE_scalarFunctionName); - try { - this.state = 6146; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.DATABASE: - case SqlParser.LEFT: - case SqlParser.RIGHT: - case SqlParser.DATE: - case SqlParser.TIME: - case SqlParser.TIMESTAMP: - case SqlParser.YEAR: - case SqlParser.JSON_VALID: - case SqlParser.JSON_SCHEMA_VALID: - case SqlParser.COUNT: - case SqlParser.POSITION: - case SqlParser.INVISIBLE: - case SqlParser.VISIBLE: - case SqlParser.QUARTER: - case SqlParser.MONTH: - case SqlParser.DAY: - case SqlParser.HOUR: - case SqlParser.MINUTE: - case SqlParser.WEEK: - case SqlParser.SECOND: - case SqlParser.MICROSECOND: - case SqlParser.SESSION_VARIABLES_ADMIN: - case SqlParser.GEOMETRYCOLLECTION: - case SqlParser.LINESTRING: - case SqlParser.MULTILINESTRING: - case SqlParser.MULTIPOINT: - case SqlParser.MULTIPOLYGON: - case SqlParser.POINT: - case SqlParser.POLYGON: - case SqlParser.ABS: - case SqlParser.ACOS: - case SqlParser.ADDDATE: - case SqlParser.ADDTIME: - case SqlParser.AES_DECRYPT: - case SqlParser.AES_ENCRYPT: - case SqlParser.AREA: - case SqlParser.ASBINARY: - case SqlParser.ASIN: - case SqlParser.ASTEXT: - case SqlParser.ASWKB: - case SqlParser.ASWKT: - case SqlParser.ASYMMETRIC_DECRYPT: - case SqlParser.ASYMMETRIC_DERIVE: - case SqlParser.ASYMMETRIC_ENCRYPT: - case SqlParser.ASYMMETRIC_SIGN: - case SqlParser.ASYMMETRIC_VERIFY: - case SqlParser.ATAN: - case SqlParser.ATAN2: - case SqlParser.BENCHMARK: - case SqlParser.BIN: - case SqlParser.BIT_COUNT: - case SqlParser.BIT_LENGTH: - case SqlParser.BUFFER: - case SqlParser.CEIL: - case SqlParser.CEILING: - case SqlParser.CENTROID: - case SqlParser.CHARACTER_LENGTH: - case SqlParser.CHARSET: - case SqlParser.CHAR_LENGTH: - case SqlParser.COERCIBILITY: - case SqlParser.COLLATION: - case SqlParser.COMPRESS: - case SqlParser.CONCAT: - case SqlParser.CONCAT_WS: - case SqlParser.CONNECTION_ID: - case SqlParser.CONV: - case SqlParser.CONVERT_TZ: - case SqlParser.COS: - case SqlParser.COT: - case SqlParser.CRC32: - case SqlParser.CREATE_ASYMMETRIC_PRIV_KEY: - case SqlParser.CREATE_ASYMMETRIC_PUB_KEY: - case SqlParser.CREATE_DH_PARAMETERS: - case SqlParser.CREATE_DIGEST: - case SqlParser.CROSSES: - case SqlParser.DATEDIFF: - case SqlParser.DATE_FORMAT: - case SqlParser.DAYNAME: - case SqlParser.DAYOFMONTH: - case SqlParser.DAYOFWEEK: - case SqlParser.DAYOFYEAR: - case SqlParser.DECODE: - case SqlParser.DEGREES: - case SqlParser.DES_DECRYPT: - case SqlParser.DES_ENCRYPT: - case SqlParser.DIMENSION: - case SqlParser.DISJOINT: - case SqlParser.ELT: - case SqlParser.ENCODE: - case SqlParser.ENCRYPT: - case SqlParser.ENDPOINT: - case SqlParser.ENVELOPE: - case SqlParser.EQUALS: - case SqlParser.EXP: - case SqlParser.EXPORT_SET: - case SqlParser.EXTERIORRING: - case SqlParser.EXTRACTVALUE: - case SqlParser.FIELD: - case SqlParser.FIND_IN_SET: - case SqlParser.FLOOR: - case SqlParser.FORMAT: - case SqlParser.FOUND_ROWS: - case SqlParser.FROM_BASE64: - case SqlParser.FROM_DAYS: - case SqlParser.FROM_UNIXTIME: - case SqlParser.GEOMCOLLFROMTEXT: - case SqlParser.GEOMCOLLFROMWKB: - case SqlParser.GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.GEOMETRYFROMTEXT: - case SqlParser.GEOMETRYFROMWKB: - case SqlParser.GEOMETRYN: - case SqlParser.GEOMETRYTYPE: - case SqlParser.GEOMFROMTEXT: - case SqlParser.GEOMFROMWKB: - case SqlParser.GET_FORMAT: - case SqlParser.GET_LOCK: - case SqlParser.GLENGTH: - case SqlParser.GREATEST: - case SqlParser.GTID_SUBSET: - case SqlParser.GTID_SUBTRACT: - case SqlParser.HEX: - case SqlParser.IFNULL: - case SqlParser.INET6_ATON: - case SqlParser.INET6_NTOA: - case SqlParser.INET_ATON: - case SqlParser.INET_NTOA: - case SqlParser.INSTR: - case SqlParser.INTERIORRINGN: - case SqlParser.INTERSECTS: - case SqlParser.ISCLOSED: - case SqlParser.ISEMPTY: - case SqlParser.ISNULL: - case SqlParser.ISSIMPLE: - case SqlParser.IS_FREE_LOCK: - case SqlParser.IS_IPV4: - case SqlParser.IS_IPV4_COMPAT: - case SqlParser.IS_IPV4_MAPPED: - case SqlParser.IS_IPV6: - case SqlParser.IS_USED_LOCK: - case SqlParser.LAST_INSERT_ID: - case SqlParser.LCASE: - case SqlParser.LEAST: - case SqlParser.LENGTH: - case SqlParser.LINEFROMTEXT: - case SqlParser.LINEFROMWKB: - case SqlParser.LINESTRINGFROMTEXT: - case SqlParser.LINESTRINGFROMWKB: - case SqlParser.LN: - case SqlParser.LOAD_FILE: - case SqlParser.LOCATE: - case SqlParser.LOG: - case SqlParser.LOG10: - case SqlParser.LOG2: - case SqlParser.LOWER: - case SqlParser.LPAD: - case SqlParser.LTRIM: - case SqlParser.MAKEDATE: - case SqlParser.MAKETIME: - case SqlParser.MAKE_SET: - case SqlParser.MASTER_POS_WAIT: - case SqlParser.MBRCONTAINS: - case SqlParser.MBRDISJOINT: - case SqlParser.MBREQUAL: - case SqlParser.MBRINTERSECTS: - case SqlParser.MBROVERLAPS: - case SqlParser.MBRTOUCHES: - case SqlParser.MBRWITHIN: - case SqlParser.MD5: - case SqlParser.MLINEFROMTEXT: - case SqlParser.MLINEFROMWKB: - case SqlParser.MONTHNAME: - case SqlParser.MPOINTFROMTEXT: - case SqlParser.MPOINTFROMWKB: - case SqlParser.MPOLYFROMTEXT: - case SqlParser.MPOLYFROMWKB: - case SqlParser.MULTILINESTRINGFROMTEXT: - case SqlParser.MULTILINESTRINGFROMWKB: - case SqlParser.MULTIPOINTFROMTEXT: - case SqlParser.MULTIPOINTFROMWKB: - case SqlParser.MULTIPOLYGONFROMTEXT: - case SqlParser.MULTIPOLYGONFROMWKB: - case SqlParser.NAME_CONST: - case SqlParser.NULLIF: - case SqlParser.NUMGEOMETRIES: - case SqlParser.NUMINTERIORRINGS: - case SqlParser.NUMPOINTS: - case SqlParser.OCT: - case SqlParser.OCTET_LENGTH: - case SqlParser.ORD: - case SqlParser.OVERLAPS: - case SqlParser.PERIOD_ADD: - case SqlParser.PERIOD_DIFF: - case SqlParser.PI: - case SqlParser.POINTFROMTEXT: - case SqlParser.POINTFROMWKB: - case SqlParser.POINTN: - case SqlParser.POLYFROMTEXT: - case SqlParser.POLYFROMWKB: - case SqlParser.POLYGONFROMTEXT: - case SqlParser.POLYGONFROMWKB: - case SqlParser.POW: - case SqlParser.POWER: - case SqlParser.QUOTE: - case SqlParser.RADIANS: - case SqlParser.RAND: - case SqlParser.RANDOM_BYTES: - case SqlParser.RELEASE_LOCK: - case SqlParser.REVERSE: - case SqlParser.ROUND: - case SqlParser.ROW_COUNT: - case SqlParser.RPAD: - case SqlParser.RTRIM: - case SqlParser.SEC_TO_TIME: - case SqlParser.SESSION_USER: - case SqlParser.SHA: - case SqlParser.SHA1: - case SqlParser.SHA2: - case SqlParser.SIGN: - case SqlParser.SIN: - case SqlParser.SLEEP: - case SqlParser.SOUNDEX: - case SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS: - case SqlParser.SQRT: - case SqlParser.SRID: - case SqlParser.STARTPOINT: - case SqlParser.STRCMP: - case SqlParser.STR_TO_DATE: - case SqlParser.ST_AREA: - case SqlParser.ST_ASBINARY: - case SqlParser.ST_ASTEXT: - case SqlParser.ST_ASWKB: - case SqlParser.ST_ASWKT: - case SqlParser.ST_BUFFER: - case SqlParser.ST_CENTROID: - case SqlParser.ST_CONTAINS: - case SqlParser.ST_CROSSES: - case SqlParser.ST_DIFFERENCE: - case SqlParser.ST_DIMENSION: - case SqlParser.ST_DISJOINT: - case SqlParser.ST_DISTANCE: - case SqlParser.ST_ENDPOINT: - case SqlParser.ST_ENVELOPE: - case SqlParser.ST_EQUALS: - case SqlParser.ST_EXTERIORRING: - case SqlParser.ST_GEOMCOLLFROMTEXT: - case SqlParser.ST_GEOMCOLLFROMTXT: - case SqlParser.ST_GEOMCOLLFROMWKB: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT: - case SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB: - case SqlParser.ST_GEOMETRYFROMTEXT: - case SqlParser.ST_GEOMETRYFROMWKB: - case SqlParser.ST_GEOMETRYN: - case SqlParser.ST_GEOMETRYTYPE: - case SqlParser.ST_GEOMFROMTEXT: - case SqlParser.ST_GEOMFROMWKB: - case SqlParser.ST_INTERIORRINGN: - case SqlParser.ST_INTERSECTION: - case SqlParser.ST_INTERSECTS: - case SqlParser.ST_ISCLOSED: - case SqlParser.ST_ISEMPTY: - case SqlParser.ST_ISSIMPLE: - case SqlParser.ST_LINEFROMTEXT: - case SqlParser.ST_LINEFROMWKB: - case SqlParser.ST_LINESTRINGFROMTEXT: - case SqlParser.ST_LINESTRINGFROMWKB: - case SqlParser.ST_NUMGEOMETRIES: - case SqlParser.ST_NUMINTERIORRING: - case SqlParser.ST_NUMINTERIORRINGS: - case SqlParser.ST_NUMPOINTS: - case SqlParser.ST_OVERLAPS: - case SqlParser.ST_POINTFROMTEXT: - case SqlParser.ST_POINTFROMWKB: - case SqlParser.ST_POINTN: - case SqlParser.ST_POLYFROMTEXT: - case SqlParser.ST_POLYFROMWKB: - case SqlParser.ST_POLYGONFROMTEXT: - case SqlParser.ST_POLYGONFROMWKB: - case SqlParser.ST_SRID: - case SqlParser.ST_STARTPOINT: - case SqlParser.ST_SYMDIFFERENCE: - case SqlParser.ST_TOUCHES: - case SqlParser.ST_UNION: - case SqlParser.ST_WITHIN: - case SqlParser.ST_X: - case SqlParser.ST_Y: - case SqlParser.SUBDATE: - case SqlParser.SUBSTRING_INDEX: - case SqlParser.SUBTIME: - case SqlParser.SYSTEM_USER: - case SqlParser.TAN: - case SqlParser.TIMEDIFF: - case SqlParser.TIMESTAMPADD: - case SqlParser.TIMESTAMPDIFF: - case SqlParser.TIME_FORMAT: - case SqlParser.TIME_TO_SEC: - case SqlParser.TOUCHES: - case SqlParser.TO_BASE64: - case SqlParser.TO_DAYS: - case SqlParser.TO_SECONDS: - case SqlParser.UCASE: - case SqlParser.UNCOMPRESS: - case SqlParser.UNCOMPRESSED_LENGTH: - case SqlParser.UNHEX: - case SqlParser.UNIX_TIMESTAMP: - case SqlParser.UPDATEXML: - case SqlParser.UPPER: - case SqlParser.UUID: - case SqlParser.UUID_SHORT: - case SqlParser.VALIDATE_PASSWORD_STRENGTH: - case SqlParser.VERSION: - case SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS: - case SqlParser.WEEKDAY: - case SqlParser.WEEKOFYEAR: - case SqlParser.WEIGHT_STRING: - case SqlParser.WITHIN: - case SqlParser.YEARWEEK: - case SqlParser.Y_FUNCTION: - case SqlParser.X_FUNCTION: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6123; - this.functionNameBase(); - } - break; - case SqlParser.ASCII: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6124; - this.match(SqlParser.ASCII); - } - break; - case SqlParser.CURDATE: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6125; - this.match(SqlParser.CURDATE); - } - break; - case SqlParser.CURRENT_DATE: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6126; - this.match(SqlParser.CURRENT_DATE); - } - break; - case SqlParser.CURRENT_TIME: - this.enterOuterAlt(_localctx, 5); - { - this.state = 6127; - this.match(SqlParser.CURRENT_TIME); - } - break; - case SqlParser.CURRENT_TIMESTAMP: - this.enterOuterAlt(_localctx, 6); - { - this.state = 6128; - this.match(SqlParser.CURRENT_TIMESTAMP); - } - break; - case SqlParser.CURTIME: - this.enterOuterAlt(_localctx, 7); - { - this.state = 6129; - this.match(SqlParser.CURTIME); - } - break; - case SqlParser.DATE_ADD: - this.enterOuterAlt(_localctx, 8); - { - this.state = 6130; - this.match(SqlParser.DATE_ADD); - } - break; - case SqlParser.DATE_SUB: - this.enterOuterAlt(_localctx, 9); - { - this.state = 6131; - this.match(SqlParser.DATE_SUB); - } - break; - case SqlParser.IF: - this.enterOuterAlt(_localctx, 10); - { - this.state = 6132; - this.match(SqlParser.IF); - } - break; - case SqlParser.INSERT: - this.enterOuterAlt(_localctx, 11); - { - this.state = 6133; - this.match(SqlParser.INSERT); - } - break; - case SqlParser.LOCALTIME: - this.enterOuterAlt(_localctx, 12); - { - this.state = 6134; - this.match(SqlParser.LOCALTIME); - } - break; - case SqlParser.LOCALTIMESTAMP: - this.enterOuterAlt(_localctx, 13); - { - this.state = 6135; - this.match(SqlParser.LOCALTIMESTAMP); - } - break; - case SqlParser.MID: - this.enterOuterAlt(_localctx, 14); - { - this.state = 6136; - this.match(SqlParser.MID); - } - break; - case SqlParser.NOW: - this.enterOuterAlt(_localctx, 15); - { - this.state = 6137; - this.match(SqlParser.NOW); - } - break; - case SqlParser.REPLACE: - this.enterOuterAlt(_localctx, 16); - { - this.state = 6138; - this.match(SqlParser.REPLACE); - } - break; - case SqlParser.SUBSTR: - this.enterOuterAlt(_localctx, 17); - { - this.state = 6139; - this.match(SqlParser.SUBSTR); - } - break; - case SqlParser.SUBSTRING: - this.enterOuterAlt(_localctx, 18); - { - this.state = 6140; - this.match(SqlParser.SUBSTRING); - } - break; - case SqlParser.SYSDATE: - this.enterOuterAlt(_localctx, 19); - { - this.state = 6141; - this.match(SqlParser.SYSDATE); - } - break; - case SqlParser.TRIM: - this.enterOuterAlt(_localctx, 20); - { - this.state = 6142; - this.match(SqlParser.TRIM); - } - break; - case SqlParser.UTC_DATE: - this.enterOuterAlt(_localctx, 21); - { - this.state = 6143; - this.match(SqlParser.UTC_DATE); - } - break; - case SqlParser.UTC_TIME: - this.enterOuterAlt(_localctx, 22); - { - this.state = 6144; - this.match(SqlParser.UTC_TIME); - } - break; - case SqlParser.UTC_TIMESTAMP: - this.enterOuterAlt(_localctx, 23); - { - this.state = 6145; - this.match(SqlParser.UTC_TIMESTAMP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public passwordFunctionClause(): PasswordFunctionClauseContext { - let _localctx: PasswordFunctionClauseContext = new PasswordFunctionClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 596, SqlParser.RULE_passwordFunctionClause); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6148; - _localctx._functionName = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.OLD_PASSWORD || _la === SqlParser.PASSWORD)) { - _localctx._functionName = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6149; - this.match(SqlParser.LR_BRACKET); - this.state = 6150; - this.functionArg(); - this.state = 6151; - this.match(SqlParser.RR_BRACKET); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public functionArgs(): FunctionArgsContext { - let _localctx: FunctionArgsContext = new FunctionArgsContext(this._ctx, this.state); - this.enterRule(_localctx, 598, SqlParser.RULE_functionArgs); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6157; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 904, this._ctx) ) { - case 1: - { - this.state = 6153; - this.constant(); - } - break; - - case 2: - { - this.state = 6154; - this.fullColumnName(); - } - break; - - case 3: - { - this.state = 6155; - this.functionCall(); - } - break; - - case 4: - { - this.state = 6156; - this.expression(0); - } - break; - } - this.state = 6168; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 6159; - this.match(SqlParser.COMMA); - this.state = 6164; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 905, this._ctx) ) { - case 1: - { - this.state = 6160; - this.constant(); - } - break; - - case 2: - { - this.state = 6161; - this.fullColumnName(); - } - break; - - case 3: - { - this.state = 6162; - this.functionCall(); - } - break; - - case 4: - { - this.state = 6163; - this.expression(0); - } - break; - } - } - } - this.state = 6170; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public functionArg(): FunctionArgContext { - let _localctx: FunctionArgContext = new FunctionArgContext(this._ctx, this.state); - this.enterRule(_localctx, 600, SqlParser.RULE_functionArg); - try { - this.state = 6175; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 907, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6171; - this.constant(); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6172; - this.fullColumnName(); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6173; - this.functionCall(); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6174; - this.expression(0); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - - public expression(): ExpressionContext; - public expression(_p: number): ExpressionContext; - // @RuleVersion(0) - public expression(_p?: number): ExpressionContext { - if (_p === undefined) { - _p = 0; - } - - let _parentctx: ParserRuleContext = this._ctx; - let _parentState: number = this.state; - let _localctx: ExpressionContext = new ExpressionContext(this._ctx, _parentState); - let _prevctx: ExpressionContext = _localctx; - let _startState: number = 602; - this.enterRecursionRule(_localctx, 602, SqlParser.RULE_expression, _p); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 6188; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 909, this._ctx) ) { - case 1: - { - _localctx = new NotExpressionContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - - this.state = 6178; - (_localctx as NotExpressionContext)._notOperator = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.NOT || _la === SqlParser.EXCLAMATION_SYMBOL)) { - (_localctx as NotExpressionContext)._notOperator = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6179; - this.expression(4); - } - break; - - case 2: - { - _localctx = new IsExpressionContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6180; - this.predicate(0); - this.state = 6181; - this.match(SqlParser.IS); - this.state = 6183; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 6182; - this.match(SqlParser.NOT); - } - } - - this.state = 6185; - (_localctx as IsExpressionContext)._testValue = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.FALSE || _la === SqlParser.TRUE || _la === SqlParser.UNKNOWN)) { - (_localctx as IsExpressionContext)._testValue = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - break; - - case 3: - { - _localctx = new PredicateExpressionContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6187; - this.predicate(0); - } - break; - } - this._ctx._stop = this._input.tryLT(-1); - this.state = 6196; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 910, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - if (this._parseListeners != null) { - this.triggerExitRuleEvent(); - } - _prevctx = _localctx; - { - { - _localctx = new LogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_expression); - this.state = 6190; - if (!(this.precpred(this._ctx, 3))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); - } - this.state = 6191; - this.logicalOperator(); - this.state = 6192; - this.expression(4); - } - } - } - this.state = 6198; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 910, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public predicate(): PredicateContext; - public predicate(_p: number): PredicateContext; - // @RuleVersion(0) - public predicate(_p?: number): PredicateContext { - if (_p === undefined) { - _p = 0; - } - - let _parentctx: ParserRuleContext = this._ctx; - let _parentState: number = this.state; - let _localctx: PredicateContext = new PredicateContext(this._ctx, _parentState); - let _prevctx: PredicateContext = _localctx; - let _startState: number = 604; - this.enterRecursionRule(_localctx, 604, SqlParser.RULE_predicate, _p); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - { - _localctx = new ExpressionAtomPredicateContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - - this.state = 6202; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 911, this._ctx) ) { - case 1: - { - this.state = 6200; - this.match(SqlParser.LOCAL_ID); - this.state = 6201; - this.match(SqlParser.VAR_ASSIGN); - } - break; - } - this.state = 6204; - this.expressionAtom(0); - } - this._ctx._stop = this._input.tryLT(-1); - this.state = 6263; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 919, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - if (this._parseListeners != null) { - this.triggerExitRuleEvent(); - } - _prevctx = _localctx; - { - this.state = 6261; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 918, this._ctx) ) { - case 1: - { - _localctx = new BinaryComparasionPredicateContext(new PredicateContext(_parentctx, _parentState)); - (_localctx as BinaryComparasionPredicateContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6206; - if (!(this.precpred(this._ctx, 7))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 7)"); - } - this.state = 6207; - this.comparisonOperator(); - this.state = 6208; - (_localctx as BinaryComparasionPredicateContext)._right = this.predicate(8); - } - break; - - case 2: - { - _localctx = new BetweenPredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6210; - if (!(this.precpred(this._ctx, 5))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 5)"); - } - this.state = 6212; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 6211; - this.match(SqlParser.NOT); - } - } - - this.state = 6214; - this.match(SqlParser.BETWEEN); - this.state = 6215; - this.predicate(0); - this.state = 6216; - this.match(SqlParser.AND); - this.state = 6217; - this.predicate(6); - } - break; - - case 3: - { - _localctx = new SoundsLikePredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6219; - if (!(this.precpred(this._ctx, 4))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); - } - this.state = 6220; - this.match(SqlParser.SOUNDS); - this.state = 6221; - this.match(SqlParser.LIKE); - this.state = 6222; - this.predicate(5); - } - break; - - case 4: - { - _localctx = new RegexpPredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6223; - if (!(this.precpred(this._ctx, 2))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); - } - this.state = 6225; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 6224; - this.match(SqlParser.NOT); - } - } - - this.state = 6227; - (_localctx as RegexpPredicateContext)._regex = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.REGEXP || _la === SqlParser.RLIKE)) { - (_localctx as RegexpPredicateContext)._regex = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6228; - this.predicate(3); - } - break; - - case 5: - { - _localctx = new InPredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6229; - if (!(this.precpred(this._ctx, 9))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 9)"); - } - this.state = 6231; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 6230; - this.match(SqlParser.NOT); - } - } - - this.state = 6233; - this.match(SqlParser.IN); - this.state = 6234; - this.match(SqlParser.LR_BRACKET); - this.state = 6237; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 915, this._ctx) ) { - case 1: - { - this.state = 6235; - this.selectStatement(); - } - break; - - case 2: - { - this.state = 6236; - this.expressions(); - } - break; - } - this.state = 6239; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 6: - { - _localctx = new IsNullPredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6241; - if (!(this.precpred(this._ctx, 8))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 8)"); - } - this.state = 6242; - this.match(SqlParser.IS); - this.state = 6243; - this.nullNotnull(); - } - break; - - case 7: - { - _localctx = new SubqueryComparasionPredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6244; - if (!(this.precpred(this._ctx, 6))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 6)"); - } - this.state = 6245; - this.comparisonOperator(); - this.state = 6246; - (_localctx as SubqueryComparasionPredicateContext)._quantifier = this._input.LT(1); - _la = this._input.LA(1); - if (!(_la === SqlParser.ALL || _la === SqlParser.ANY || _la === SqlParser.SOME)) { - (_localctx as SubqueryComparasionPredicateContext)._quantifier = this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 6247; - this.match(SqlParser.LR_BRACKET); - this.state = 6248; - this.selectStatement(); - this.state = 6249; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 8: - { - _localctx = new LikePredicateContext(new PredicateContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_predicate); - this.state = 6251; - if (!(this.precpred(this._ctx, 3))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); - } - this.state = 6253; - this._errHandler.sync(this); - _la = this._input.LA(1); - if (_la === SqlParser.NOT) { - { - this.state = 6252; - this.match(SqlParser.NOT); - } - } - - this.state = 6255; - this.match(SqlParser.LIKE); - this.state = 6256; - this.predicate(0); - this.state = 6259; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 917, this._ctx) ) { - case 1: - { - this.state = 6257; - this.match(SqlParser.ESCAPE); - this.state = 6258; - this.match(SqlParser.STRING_LITERAL); - } - break; - } - } - break; - } - } - } - this.state = 6265; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 919, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.unrollRecursionContexts(_parentctx); - } - return _localctx; - } - - public expressionAtom(): ExpressionAtomContext; - public expressionAtom(_p: number): ExpressionAtomContext; - // @RuleVersion(0) - public expressionAtom(_p?: number): ExpressionAtomContext { - if (_p === undefined) { - _p = 0; - } - - let _parentctx: ParserRuleContext = this._ctx; - let _parentState: number = this.state; - let _localctx: ExpressionAtomContext = new ExpressionAtomContext(this._ctx, _parentState); - let _prevctx: ExpressionAtomContext = _localctx; - let _startState: number = 606; - this.enterRecursionRule(_localctx, 606, SqlParser.RULE_expressionAtom, _p); - let _la: number; - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 6311; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 922, this._ctx) ) { - case 1: - { - _localctx = new ConstantExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - - this.state = 6267; - this.constant(); - } - break; - - case 2: - { - _localctx = new FullColumnNameExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6268; - this.fullColumnName(); - } - break; - - case 3: - { - _localctx = new FunctionCallExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6269; - this.functionCall(); - } - break; - - case 4: - { - _localctx = new MysqlVariableExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6270; - this.mysqlVariable(); - } - break; - - case 5: - { - _localctx = new UnaryExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6271; - this.unaryOperator(); - this.state = 6272; - this.expressionAtom(9); - } - break; - - case 6: - { - _localctx = new BinaryExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6274; - this.match(SqlParser.BINARY); - this.state = 6275; - this.expressionAtom(8); - } - break; - - case 7: - { - _localctx = new NestedExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6276; - this.match(SqlParser.LR_BRACKET); - this.state = 6277; - this.expression(0); - this.state = 6282; - this._errHandler.sync(this); - _la = this._input.LA(1); - while (_la === SqlParser.COMMA) { - { - { - this.state = 6278; - this.match(SqlParser.COMMA); - this.state = 6279; - this.expression(0); - } - } - this.state = 6284; - this._errHandler.sync(this); - _la = this._input.LA(1); - } - this.state = 6285; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 8: - { - _localctx = new NestedRowExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6287; - this.match(SqlParser.ROW); - this.state = 6288; - this.match(SqlParser.LR_BRACKET); - this.state = 6289; - this.expression(0); - this.state = 6292; - this._errHandler.sync(this); - _la = this._input.LA(1); - do { - { - { - this.state = 6290; - this.match(SqlParser.COMMA); - this.state = 6291; - this.expression(0); - } - } - this.state = 6294; - this._errHandler.sync(this); - _la = this._input.LA(1); - } while (_la === SqlParser.COMMA); - this.state = 6296; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 9: - { - _localctx = new ExistsExpessionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6298; - this.match(SqlParser.EXISTS); - this.state = 6299; - this.match(SqlParser.LR_BRACKET); - this.state = 6300; - this.selectStatement(); - this.state = 6301; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 10: - { - _localctx = new SubqueryExpessionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6303; - this.match(SqlParser.LR_BRACKET); - this.state = 6304; - this.selectStatement(); - this.state = 6305; - this.match(SqlParser.RR_BRACKET); - } - break; - - case 11: - { - _localctx = new IntervalExpressionAtomContext(_localctx); - this._ctx = _localctx; - _prevctx = _localctx; - this.state = 6307; - this.match(SqlParser.INTERVAL); - this.state = 6308; - this.expression(0); - this.state = 6309; - this.intervalType(); - } - break; - } - this._ctx._stop = this._input.tryLT(-1); - this.state = 6326; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 924, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - if (this._parseListeners != null) { - this.triggerExitRuleEvent(); - } - _prevctx = _localctx; - { - this.state = 6324; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 923, this._ctx) ) { - case 1: - { - _localctx = new BitExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); - (_localctx as BitExpressionAtomContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_expressionAtom); - this.state = 6313; - if (!(this.precpred(this._ctx, 2))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); - } - this.state = 6314; - this.bitOperator(); - this.state = 6315; - (_localctx as BitExpressionAtomContext)._right = this.expressionAtom(3); - } - break; - - case 2: - { - _localctx = new MathExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); - (_localctx as MathExpressionAtomContext)._left = _prevctx; - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_expressionAtom); - this.state = 6317; - if (!(this.precpred(this._ctx, 1))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); - } - this.state = 6318; - this.mathOperator(); - this.state = 6319; - (_localctx as MathExpressionAtomContext)._right = this.expressionAtom(2); - } - break; - - case 3: - { - _localctx = new CollateExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); - this.pushNewRecursionContext(_localctx, _startState, SqlParser.RULE_expressionAtom); - this.state = 6321; - if (!(this.precpred(this._ctx, 11))) { - throw this.createFailedPredicateException("this.precpred(this._ctx, 11)"); - } - this.state = 6322; - this.match(SqlParser.COLLATE); - this.state = 6323; - this.collationName(); - } - break; - } - } - } - this.state = 6328; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 924, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.unrollRecursionContexts(_parentctx); - } - return _localctx; - } - // @RuleVersion(0) - public unaryOperator(): UnaryOperatorContext { - let _localctx: UnaryOperatorContext = new UnaryOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 608, SqlParser.RULE_unaryOperator); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6329; - _la = this._input.LA(1); - if (!(_la === SqlParser.NOT || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & ((1 << (SqlParser.PLUS - 1006)) | (1 << (SqlParser.MINUS - 1006)) | (1 << (SqlParser.EXCLAMATION_SYMBOL - 1006)) | (1 << (SqlParser.BIT_NOT_OP - 1006)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public comparisonOperator(): ComparisonOperatorContext { - let _localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 610, SqlParser.RULE_comparisonOperator); - try { - this.state = 6345; - this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 925, this._ctx) ) { - case 1: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6331; - this.match(SqlParser.EQUAL_SYMBOL); - } - break; - - case 2: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6332; - this.match(SqlParser.GREATER_SYMBOL); - } - break; - - case 3: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6333; - this.match(SqlParser.LESS_SYMBOL); - } - break; - - case 4: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6334; - this.match(SqlParser.LESS_SYMBOL); - this.state = 6335; - this.match(SqlParser.EQUAL_SYMBOL); - } - break; - - case 5: - this.enterOuterAlt(_localctx, 5); - { - this.state = 6336; - this.match(SqlParser.GREATER_SYMBOL); - this.state = 6337; - this.match(SqlParser.EQUAL_SYMBOL); - } - break; - - case 6: - this.enterOuterAlt(_localctx, 6); - { - this.state = 6338; - this.match(SqlParser.LESS_SYMBOL); - this.state = 6339; - this.match(SqlParser.GREATER_SYMBOL); - } - break; - - case 7: - this.enterOuterAlt(_localctx, 7); - { - this.state = 6340; - this.match(SqlParser.EXCLAMATION_SYMBOL); - this.state = 6341; - this.match(SqlParser.EQUAL_SYMBOL); - } - break; - - case 8: - this.enterOuterAlt(_localctx, 8); - { - this.state = 6342; - this.match(SqlParser.LESS_SYMBOL); - this.state = 6343; - this.match(SqlParser.EQUAL_SYMBOL); - this.state = 6344; - this.match(SqlParser.GREATER_SYMBOL); - } - break; - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public logicalOperator(): LogicalOperatorContext { - let _localctx: LogicalOperatorContext = new LogicalOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 612, SqlParser.RULE_logicalOperator); - try { - this.state = 6354; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.AND: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6347; - this.match(SqlParser.AND); - } - break; - case SqlParser.BIT_AND_OP: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6348; - this.match(SqlParser.BIT_AND_OP); - this.state = 6349; - this.match(SqlParser.BIT_AND_OP); - } - break; - case SqlParser.XOR: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6350; - this.match(SqlParser.XOR); - } - break; - case SqlParser.OR: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6351; - this.match(SqlParser.OR); - } - break; - case SqlParser.BIT_OR_OP: - this.enterOuterAlt(_localctx, 5); - { - this.state = 6352; - this.match(SqlParser.BIT_OR_OP); - this.state = 6353; - this.match(SqlParser.BIT_OR_OP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public bitOperator(): BitOperatorContext { - let _localctx: BitOperatorContext = new BitOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 614, SqlParser.RULE_bitOperator); - try { - this.state = 6363; - this._errHandler.sync(this); - switch (this._input.LA(1)) { - case SqlParser.LESS_SYMBOL: - this.enterOuterAlt(_localctx, 1); - { - this.state = 6356; - this.match(SqlParser.LESS_SYMBOL); - this.state = 6357; - this.match(SqlParser.LESS_SYMBOL); - } - break; - case SqlParser.GREATER_SYMBOL: - this.enterOuterAlt(_localctx, 2); - { - this.state = 6358; - this.match(SqlParser.GREATER_SYMBOL); - this.state = 6359; - this.match(SqlParser.GREATER_SYMBOL); - } - break; - case SqlParser.BIT_AND_OP: - this.enterOuterAlt(_localctx, 3); - { - this.state = 6360; - this.match(SqlParser.BIT_AND_OP); - } - break; - case SqlParser.BIT_XOR_OP: - this.enterOuterAlt(_localctx, 4); - { - this.state = 6361; - this.match(SqlParser.BIT_XOR_OP); - } - break; - case SqlParser.BIT_OR_OP: - this.enterOuterAlt(_localctx, 5); - { - this.state = 6362; - this.match(SqlParser.BIT_OR_OP); - } - break; - default: - throw new NoViableAltException(this); - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public mathOperator(): MathOperatorContext { - let _localctx: MathOperatorContext = new MathOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 616, SqlParser.RULE_mathOperator); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6365; - _la = this._input.LA(1); - if (!(((((_la - 1003)) & ~0x1F) === 0 && ((1 << (_la - 1003)) & ((1 << (SqlParser.STAR - 1003)) | (1 << (SqlParser.DIVIDE - 1003)) | (1 << (SqlParser.MODULE - 1003)) | (1 << (SqlParser.PLUS - 1003)) | (1 << (SqlParser.MINUSMINUS - 1003)) | (1 << (SqlParser.MINUS - 1003)) | (1 << (SqlParser.DIV - 1003)) | (1 << (SqlParser.MOD - 1003)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public charsetNameBase(): CharsetNameBaseContext { - let _localctx: CharsetNameBaseContext = new CharsetNameBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 618, SqlParser.RULE_charsetNameBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6367; - _la = this._input.LA(1); - if (!(((((_la - 637)) & ~0x1F) === 0 && ((1 << (_la - 637)) & ((1 << (SqlParser.ARMSCII8 - 637)) | (1 << (SqlParser.ASCII - 637)) | (1 << (SqlParser.BIG5 - 637)) | (1 << (SqlParser.CP1250 - 637)) | (1 << (SqlParser.CP1251 - 637)) | (1 << (SqlParser.CP1256 - 637)) | (1 << (SqlParser.CP1257 - 637)) | (1 << (SqlParser.CP850 - 637)) | (1 << (SqlParser.CP852 - 637)) | (1 << (SqlParser.CP866 - 637)) | (1 << (SqlParser.CP932 - 637)) | (1 << (SqlParser.DEC8 - 637)) | (1 << (SqlParser.EUCJPMS - 637)) | (1 << (SqlParser.EUCKR - 637)) | (1 << (SqlParser.GB2312 - 637)) | (1 << (SqlParser.GBK - 637)) | (1 << (SqlParser.GEOSTD8 - 637)) | (1 << (SqlParser.GREEK - 637)) | (1 << (SqlParser.HEBREW - 637)) | (1 << (SqlParser.HP8 - 637)) | (1 << (SqlParser.KEYBCS2 - 637)) | (1 << (SqlParser.KOI8R - 637)) | (1 << (SqlParser.KOI8U - 637)) | (1 << (SqlParser.LATIN1 - 637)) | (1 << (SqlParser.LATIN2 - 637)) | (1 << (SqlParser.LATIN5 - 637)) | (1 << (SqlParser.LATIN7 - 637)) | (1 << (SqlParser.MACCE - 637)) | (1 << (SqlParser.MACROMAN - 637)) | (1 << (SqlParser.SJIS - 637)) | (1 << (SqlParser.SWE7 - 637)) | (1 << (SqlParser.TIS620 - 637)))) !== 0) || ((((_la - 669)) & ~0x1F) === 0 && ((1 << (_la - 669)) & ((1 << (SqlParser.UCS2 - 669)) | (1 << (SqlParser.UJIS - 669)) | (1 << (SqlParser.UTF16 - 669)) | (1 << (SqlParser.UTF16LE - 669)) | (1 << (SqlParser.UTF32 - 669)) | (1 << (SqlParser.UTF8 - 669)) | (1 << (SqlParser.UTF8MB3 - 669)) | (1 << (SqlParser.UTF8MB4 - 669)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public transactionLevelBase(): TransactionLevelBaseContext { - let _localctx: TransactionLevelBaseContext = new TransactionLevelBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 620, SqlParser.RULE_transactionLevelBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6369; - _la = this._input.LA(1); - if (!(((((_la - 689)) & ~0x1F) === 0 && ((1 << (_la - 689)) & ((1 << (SqlParser.REPEATABLE - 689)) | (1 << (SqlParser.COMMITTED - 689)) | (1 << (SqlParser.UNCOMMITTED - 689)) | (1 << (SqlParser.SERIALIZABLE - 689)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public privilegesBase(): PrivilegesBaseContext { - let _localctx: PrivilegesBaseContext = new PrivilegesBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 622, SqlParser.RULE_privilegesBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6371; - _la = this._input.LA(1); - if (!(((((_la - 602)) & ~0x1F) === 0 && ((1 << (_la - 602)) & ((1 << (SqlParser.TABLES - 602)) | (1 << (SqlParser.ROUTINE - 602)) | (1 << (SqlParser.EXECUTE - 602)) | (1 << (SqlParser.FILE - 602)) | (1 << (SqlParser.PROCESS - 602)) | (1 << (SqlParser.RELOAD - 602)) | (1 << (SqlParser.SHUTDOWN - 602)) | (1 << (SqlParser.SUPER - 602)) | (1 << (SqlParser.PRIVILEGES - 602)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public intervalTypeBase(): IntervalTypeBaseContext { - let _localctx: IntervalTypeBaseContext = new IntervalTypeBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 624, SqlParser.RULE_intervalTypeBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6373; - _la = this._input.LA(1); - if (!(((((_la - 594)) & ~0x1F) === 0 && ((1 << (_la - 594)) & ((1 << (SqlParser.QUARTER - 594)) | (1 << (SqlParser.MONTH - 594)) | (1 << (SqlParser.DAY - 594)) | (1 << (SqlParser.HOUR - 594)) | (1 << (SqlParser.MINUTE - 594)) | (1 << (SqlParser.WEEK - 594)) | (1 << (SqlParser.SECOND - 594)) | (1 << (SqlParser.MICROSECOND - 594)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public dataTypeBase(): DataTypeBaseContext { - let _localctx: DataTypeBaseContext = new DataTypeBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 626, SqlParser.RULE_dataTypeBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6375; - _la = this._input.LA(1); - if (!(((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.DATETIME - 199)) | (1 << (SqlParser.YEAR - 199)) | (1 << (SqlParser.TEXT - 199)) | (1 << (SqlParser.ENUM - 199)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public keywordsCanBeId(): KeywordsCanBeIdContext { - let _localctx: KeywordsCanBeIdContext = new KeywordsCanBeIdContext(this._ctx, this.state); - this.enterRule(_localctx, 628, SqlParser.RULE_keywordsCanBeId); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6377; - _la = this._input.LA(1); - if (!(_la === SqlParser.CURRENT || _la === SqlParser.DIAGNOSTICS || _la === SqlParser.NUMBER || _la === SqlParser.STACKED || _la === SqlParser.SERIAL || ((((_la - 270)) & ~0x1F) === 0 && ((1 << (_la - 270)) & ((1 << (SqlParser.ACCOUNT - 270)) | (1 << (SqlParser.ACTION - 270)) | (1 << (SqlParser.AFTER - 270)) | (1 << (SqlParser.AGGREGATE - 270)) | (1 << (SqlParser.ALGORITHM - 270)) | (1 << (SqlParser.ANY - 270)) | (1 << (SqlParser.AT - 270)) | (1 << (SqlParser.AUTHORS - 270)) | (1 << (SqlParser.AUTOCOMMIT - 270)) | (1 << (SqlParser.AUTOEXTEND_SIZE - 270)) | (1 << (SqlParser.AUTO_INCREMENT - 270)) | (1 << (SqlParser.AVG_ROW_LENGTH - 270)) | (1 << (SqlParser.BEGIN - 270)) | (1 << (SqlParser.BINLOG - 270)) | (1 << (SqlParser.BIT - 270)) | (1 << (SqlParser.BLOCK - 270)) | (1 << (SqlParser.BOOL - 270)) | (1 << (SqlParser.BOOLEAN - 270)) | (1 << (SqlParser.BTREE - 270)) | (1 << (SqlParser.CACHE - 270)) | (1 << (SqlParser.CASCADED - 270)) | (1 << (SqlParser.CHAIN - 270)) | (1 << (SqlParser.CHANGED - 270)) | (1 << (SqlParser.CHANNEL - 270)) | (1 << (SqlParser.CHECKSUM - 270)) | (1 << (SqlParser.PAGE_CHECKSUM - 270)) | (1 << (SqlParser.CIPHER - 270)) | (1 << (SqlParser.CLASS_ORIGIN - 270)) | (1 << (SqlParser.CLIENT - 270)) | (1 << (SqlParser.CLOSE - 270)) | (1 << (SqlParser.COALESCE - 270)) | (1 << (SqlParser.CODE - 270)))) !== 0) || ((((_la - 302)) & ~0x1F) === 0 && ((1 << (_la - 302)) & ((1 << (SqlParser.COLUMNS - 302)) | (1 << (SqlParser.COLUMN_FORMAT - 302)) | (1 << (SqlParser.COLUMN_NAME - 302)) | (1 << (SqlParser.COMMENT - 302)) | (1 << (SqlParser.COMMIT - 302)) | (1 << (SqlParser.COMPACT - 302)) | (1 << (SqlParser.COMPLETION - 302)) | (1 << (SqlParser.COMPRESSED - 302)) | (1 << (SqlParser.COMPRESSION - 302)) | (1 << (SqlParser.CONCURRENT - 302)) | (1 << (SqlParser.CONNECTION - 302)) | (1 << (SqlParser.CONSISTENT - 302)) | (1 << (SqlParser.CONSTRAINT_CATALOG - 302)) | (1 << (SqlParser.CONSTRAINT_SCHEMA - 302)) | (1 << (SqlParser.CONSTRAINT_NAME - 302)) | (1 << (SqlParser.CONTAINS - 302)) | (1 << (SqlParser.CONTEXT - 302)) | (1 << (SqlParser.CONTRIBUTORS - 302)) | (1 << (SqlParser.COPY - 302)) | (1 << (SqlParser.CPU - 302)) | (1 << (SqlParser.CURSOR_NAME - 302)) | (1 << (SqlParser.DATA - 302)) | (1 << (SqlParser.DATAFILE - 302)) | (1 << (SqlParser.DEALLOCATE - 302)) | (1 << (SqlParser.DEFAULT_AUTH - 302)) | (1 << (SqlParser.DEFINER - 302)) | (1 << (SqlParser.DELAY_KEY_WRITE - 302)) | (1 << (SqlParser.DES_KEY_FILE - 302)) | (1 << (SqlParser.DIRECTORY - 302)) | (1 << (SqlParser.DISABLE - 302)) | (1 << (SqlParser.DISCARD - 302)) | (1 << (SqlParser.DISK - 302)))) !== 0) || ((((_la - 334)) & ~0x1F) === 0 && ((1 << (_la - 334)) & ((1 << (SqlParser.DO - 334)) | (1 << (SqlParser.DUMPFILE - 334)) | (1 << (SqlParser.DUPLICATE - 334)) | (1 << (SqlParser.DYNAMIC - 334)) | (1 << (SqlParser.ENABLE - 334)) | (1 << (SqlParser.ENCRYPTION - 334)) | (1 << (SqlParser.END - 334)) | (1 << (SqlParser.ENDS - 334)) | (1 << (SqlParser.ENGINE - 334)) | (1 << (SqlParser.ENGINES - 334)) | (1 << (SqlParser.ERROR - 334)) | (1 << (SqlParser.ERRORS - 334)) | (1 << (SqlParser.ESCAPE - 334)) | (1 << (SqlParser.EVEN - 334)) | (1 << (SqlParser.EVENT - 334)) | (1 << (SqlParser.EVENTS - 334)) | (1 << (SqlParser.EVERY - 334)) | (1 << (SqlParser.EXCHANGE - 334)) | (1 << (SqlParser.EXCLUSIVE - 334)) | (1 << (SqlParser.EXPIRE - 334)) | (1 << (SqlParser.EXPORT - 334)) | (1 << (SqlParser.EXTENDED - 334)) | (1 << (SqlParser.EXTENT_SIZE - 334)) | (1 << (SqlParser.FAST - 334)) | (1 << (SqlParser.FAULTS - 334)) | (1 << (SqlParser.FIELDS - 334)) | (1 << (SqlParser.FILE_BLOCK_SIZE - 334)) | (1 << (SqlParser.FILTER - 334)) | (1 << (SqlParser.FIRST - 334)) | (1 << (SqlParser.FIXED - 334)) | (1 << (SqlParser.FLUSH - 334)) | (1 << (SqlParser.FOLLOWS - 334)))) !== 0) || ((((_la - 366)) & ~0x1F) === 0 && ((1 << (_la - 366)) & ((1 << (SqlParser.FOUND - 366)) | (1 << (SqlParser.FULL - 366)) | (1 << (SqlParser.FUNCTION - 366)) | (1 << (SqlParser.GENERAL - 366)) | (1 << (SqlParser.GLOBAL - 366)) | (1 << (SqlParser.GRANTS - 366)) | (1 << (SqlParser.GROUP_REPLICATION - 366)) | (1 << (SqlParser.HANDLER - 366)) | (1 << (SqlParser.HASH - 366)) | (1 << (SqlParser.HELP - 366)) | (1 << (SqlParser.HOST - 366)) | (1 << (SqlParser.HOSTS - 366)) | (1 << (SqlParser.IDENTIFIED - 366)) | (1 << (SqlParser.IGNORE_SERVER_IDS - 366)) | (1 << (SqlParser.IMPORT - 366)) | (1 << (SqlParser.INDEXES - 366)) | (1 << (SqlParser.INITIAL_SIZE - 366)) | (1 << (SqlParser.INPLACE - 366)) | (1 << (SqlParser.INSERT_METHOD - 366)) | (1 << (SqlParser.INSTALL - 366)) | (1 << (SqlParser.INSTANCE - 366)) | (1 << (SqlParser.INVOKER - 366)) | (1 << (SqlParser.IO - 366)) | (1 << (SqlParser.IO_THREAD - 366)) | (1 << (SqlParser.IPC - 366)) | (1 << (SqlParser.ISOLATION - 366)) | (1 << (SqlParser.ISSUER - 366)) | (1 << (SqlParser.JSON - 366)) | (1 << (SqlParser.KEY_BLOCK_SIZE - 366)) | (1 << (SqlParser.LANGUAGE - 366)) | (1 << (SqlParser.LAST - 366)))) !== 0) || ((((_la - 398)) & ~0x1F) === 0 && ((1 << (_la - 398)) & ((1 << (SqlParser.LEAVES - 398)) | (1 << (SqlParser.LESS - 398)) | (1 << (SqlParser.LEVEL - 398)) | (1 << (SqlParser.LIST - 398)) | (1 << (SqlParser.LOCAL - 398)) | (1 << (SqlParser.LOGFILE - 398)) | (1 << (SqlParser.LOGS - 398)) | (1 << (SqlParser.MASTER - 398)) | (1 << (SqlParser.MASTER_AUTO_POSITION - 398)) | (1 << (SqlParser.MASTER_CONNECT_RETRY - 398)) | (1 << (SqlParser.MASTER_DELAY - 398)) | (1 << (SqlParser.MASTER_HEARTBEAT_PERIOD - 398)) | (1 << (SqlParser.MASTER_HOST - 398)) | (1 << (SqlParser.MASTER_LOG_FILE - 398)) | (1 << (SqlParser.MASTER_LOG_POS - 398)) | (1 << (SqlParser.MASTER_PASSWORD - 398)) | (1 << (SqlParser.MASTER_PORT - 398)) | (1 << (SqlParser.MASTER_RETRY_COUNT - 398)) | (1 << (SqlParser.MASTER_SSL - 398)) | (1 << (SqlParser.MASTER_SSL_CA - 398)) | (1 << (SqlParser.MASTER_SSL_CAPATH - 398)) | (1 << (SqlParser.MASTER_SSL_CERT - 398)) | (1 << (SqlParser.MASTER_SSL_CIPHER - 398)) | (1 << (SqlParser.MASTER_SSL_CRL - 398)) | (1 << (SqlParser.MASTER_SSL_CRLPATH - 398)) | (1 << (SqlParser.MASTER_SSL_KEY - 398)) | (1 << (SqlParser.MASTER_TLS_VERSION - 398)) | (1 << (SqlParser.MASTER_USER - 398)) | (1 << (SqlParser.MAX_CONNECTIONS_PER_HOUR - 398)) | (1 << (SqlParser.MAX_QUERIES_PER_HOUR - 398)) | (1 << (SqlParser.MAX_ROWS - 398)) | (1 << (SqlParser.MAX_SIZE - 398)))) !== 0) || ((((_la - 430)) & ~0x1F) === 0 && ((1 << (_la - 430)) & ((1 << (SqlParser.MAX_UPDATES_PER_HOUR - 430)) | (1 << (SqlParser.MAX_USER_CONNECTIONS - 430)) | (1 << (SqlParser.MEDIUM - 430)) | (1 << (SqlParser.MERGE - 430)) | (1 << (SqlParser.MESSAGE_TEXT - 430)) | (1 << (SqlParser.MID - 430)) | (1 << (SqlParser.MIGRATE - 430)) | (1 << (SqlParser.MIN_ROWS - 430)) | (1 << (SqlParser.MODE - 430)) | (1 << (SqlParser.MODIFY - 430)) | (1 << (SqlParser.MUTEX - 430)) | (1 << (SqlParser.MYSQL - 430)) | (1 << (SqlParser.MYSQL_ERRNO - 430)) | (1 << (SqlParser.NAME - 430)) | (1 << (SqlParser.NAMES - 430)) | (1 << (SqlParser.NCHAR - 430)) | (1 << (SqlParser.NEVER - 430)) | (1 << (SqlParser.NEXT - 430)) | (1 << (SqlParser.NO - 430)) | (1 << (SqlParser.NODEGROUP - 430)) | (1 << (SqlParser.NONE - 430)) | (1 << (SqlParser.OFFLINE - 430)) | (1 << (SqlParser.OFFSET - 430)) | (1 << (SqlParser.OJ - 430)) | (1 << (SqlParser.OLD_PASSWORD - 430)) | (1 << (SqlParser.ONE - 430)) | (1 << (SqlParser.ONLINE - 430)) | (1 << (SqlParser.ONLY - 430)) | (1 << (SqlParser.OPEN - 430)) | (1 << (SqlParser.OPTIMIZER_COSTS - 430)) | (1 << (SqlParser.OPTIONS - 430)) | (1 << (SqlParser.OWNER - 430)))) !== 0) || ((((_la - 462)) & ~0x1F) === 0 && ((1 << (_la - 462)) & ((1 << (SqlParser.PACK_KEYS - 462)) | (1 << (SqlParser.PAGE - 462)) | (1 << (SqlParser.PARSER - 462)) | (1 << (SqlParser.PARTIAL - 462)) | (1 << (SqlParser.PARTITIONING - 462)) | (1 << (SqlParser.PARTITIONS - 462)) | (1 << (SqlParser.PASSWORD - 462)) | (1 << (SqlParser.PHASE - 462)) | (1 << (SqlParser.PLUGIN - 462)) | (1 << (SqlParser.PLUGIN_DIR - 462)) | (1 << (SqlParser.PLUGINS - 462)) | (1 << (SqlParser.PORT - 462)) | (1 << (SqlParser.PRECEDES - 462)) | (1 << (SqlParser.PREPARE - 462)) | (1 << (SqlParser.PRESERVE - 462)) | (1 << (SqlParser.PREV - 462)) | (1 << (SqlParser.PROCESSLIST - 462)) | (1 << (SqlParser.PROFILE - 462)) | (1 << (SqlParser.PROFILES - 462)) | (1 << (SqlParser.PROXY - 462)) | (1 << (SqlParser.QUERY - 462)) | (1 << (SqlParser.QUICK - 462)) | (1 << (SqlParser.REBUILD - 462)) | (1 << (SqlParser.RECOVER - 462)) | (1 << (SqlParser.REDO_BUFFER_SIZE - 462)) | (1 << (SqlParser.REDUNDANT - 462)) | (1 << (SqlParser.RELAY - 462)) | (1 << (SqlParser.RELAY_LOG_FILE - 462)) | (1 << (SqlParser.RELAY_LOG_POS - 462)) | (1 << (SqlParser.RELAYLOG - 462)) | (1 << (SqlParser.REMOVE - 462)) | (1 << (SqlParser.REORGANIZE - 462)))) !== 0) || ((((_la - 494)) & ~0x1F) === 0 && ((1 << (_la - 494)) & ((1 << (SqlParser.REPAIR - 494)) | (1 << (SqlParser.REPLICATE_DO_DB - 494)) | (1 << (SqlParser.REPLICATE_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_DB - 494)) | (1 << (SqlParser.REPLICATE_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATE_REWRITE_DB - 494)) | (1 << (SqlParser.REPLICATE_WILD_DO_TABLE - 494)) | (1 << (SqlParser.REPLICATE_WILD_IGNORE_TABLE - 494)) | (1 << (SqlParser.REPLICATION - 494)) | (1 << (SqlParser.RESET - 494)) | (1 << (SqlParser.RESUME - 494)) | (1 << (SqlParser.RETURNED_SQLSTATE - 494)) | (1 << (SqlParser.RETURNS - 494)) | (1 << (SqlParser.ROLE - 494)) | (1 << (SqlParser.ROLLBACK - 494)) | (1 << (SqlParser.ROLLUP - 494)) | (1 << (SqlParser.ROTATE - 494)) | (1 << (SqlParser.ROW - 494)) | (1 << (SqlParser.ROWS - 494)) | (1 << (SqlParser.ROW_FORMAT - 494)) | (1 << (SqlParser.SAVEPOINT - 494)) | (1 << (SqlParser.SCHEDULE - 494)) | (1 << (SqlParser.SECURITY - 494)) | (1 << (SqlParser.SERVER - 494)) | (1 << (SqlParser.SESSION - 494)) | (1 << (SqlParser.SHARE - 494)) | (1 << (SqlParser.SHARED - 494)) | (1 << (SqlParser.SIGNED - 494)) | (1 << (SqlParser.SIMPLE - 494)) | (1 << (SqlParser.SLAVE - 494)) | (1 << (SqlParser.SLOW - 494)) | (1 << (SqlParser.SNAPSHOT - 494)))) !== 0) || ((((_la - 526)) & ~0x1F) === 0 && ((1 << (_la - 526)) & ((1 << (SqlParser.SOCKET - 526)) | (1 << (SqlParser.SOME - 526)) | (1 << (SqlParser.SONAME - 526)) | (1 << (SqlParser.SOUNDS - 526)) | (1 << (SqlParser.SOURCE - 526)) | (1 << (SqlParser.SQL_AFTER_GTIDS - 526)) | (1 << (SqlParser.SQL_AFTER_MTS_GAPS - 526)) | (1 << (SqlParser.SQL_BEFORE_GTIDS - 526)) | (1 << (SqlParser.SQL_BUFFER_RESULT - 526)) | (1 << (SqlParser.SQL_CACHE - 526)) | (1 << (SqlParser.SQL_NO_CACHE - 526)) | (1 << (SqlParser.SQL_THREAD - 526)) | (1 << (SqlParser.START - 526)) | (1 << (SqlParser.STARTS - 526)) | (1 << (SqlParser.STATS_AUTO_RECALC - 526)) | (1 << (SqlParser.STATS_PERSISTENT - 526)) | (1 << (SqlParser.STATS_SAMPLE_PAGES - 526)) | (1 << (SqlParser.STATUS - 526)) | (1 << (SqlParser.STOP - 526)) | (1 << (SqlParser.STORAGE - 526)) | (1 << (SqlParser.STRING - 526)) | (1 << (SqlParser.SUBCLASS_ORIGIN - 526)) | (1 << (SqlParser.SUBJECT - 526)) | (1 << (SqlParser.SUBPARTITION - 526)) | (1 << (SqlParser.SUBPARTITIONS - 526)) | (1 << (SqlParser.SUSPEND - 526)) | (1 << (SqlParser.SWAPS - 526)) | (1 << (SqlParser.SWITCHES - 526)) | (1 << (SqlParser.TABLE_NAME - 526)) | (1 << (SqlParser.TABLESPACE - 526)) | (1 << (SqlParser.TEMPORARY - 526)))) !== 0) || ((((_la - 558)) & ~0x1F) === 0 && ((1 << (_la - 558)) & ((1 << (SqlParser.TEMPTABLE - 558)) | (1 << (SqlParser.THAN - 558)) | (1 << (SqlParser.TRADITIONAL - 558)) | (1 << (SqlParser.TRANSACTION - 558)) | (1 << (SqlParser.TRANSACTIONAL - 558)) | (1 << (SqlParser.TRIGGERS - 558)) | (1 << (SqlParser.TRUNCATE - 558)) | (1 << (SqlParser.UNDEFINED - 558)) | (1 << (SqlParser.UNDOFILE - 558)) | (1 << (SqlParser.UNDO_BUFFER_SIZE - 558)) | (1 << (SqlParser.UNINSTALL - 558)) | (1 << (SqlParser.UNKNOWN - 558)) | (1 << (SqlParser.UNTIL - 558)) | (1 << (SqlParser.UPGRADE - 558)) | (1 << (SqlParser.USER - 558)) | (1 << (SqlParser.USE_FRM - 558)) | (1 << (SqlParser.USER_RESOURCES - 558)) | (1 << (SqlParser.VALIDATION - 558)) | (1 << (SqlParser.VALUE - 558)) | (1 << (SqlParser.VARIABLES - 558)) | (1 << (SqlParser.VIEW - 558)) | (1 << (SqlParser.WAIT - 558)) | (1 << (SqlParser.WARNINGS - 558)) | (1 << (SqlParser.WITHOUT - 558)) | (1 << (SqlParser.WORK - 558)) | (1 << (SqlParser.WRAPPER - 558)) | (1 << (SqlParser.X509 - 558)) | (1 << (SqlParser.XA - 558)) | (1 << (SqlParser.XML - 558)))) !== 0) || ((((_la - 593)) & ~0x1F) === 0 && ((1 << (_la - 593)) & ((1 << (SqlParser.INTERNAL - 593)) | (1 << (SqlParser.AUDIT_ADMIN - 593)) | (1 << (SqlParser.BACKUP_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ADMIN - 593)) | (1 << (SqlParser.BINLOG_ENCRYPTION_ADMIN - 593)) | (1 << (SqlParser.CLONE_ADMIN - 593)) | (1 << (SqlParser.CONNECTION_ADMIN - 593)) | (1 << (SqlParser.ENCRYPTION_KEY_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_ADMIN - 593)) | (1 << (SqlParser.FIREWALL_USER - 593)) | (1 << (SqlParser.GROUP_REPLICATION_ADMIN - 593)) | (1 << (SqlParser.INNODB_REDO_LOG_ARCHIVE - 593)) | (1 << (SqlParser.NDB_STORED_USER - 593)) | (1 << (SqlParser.PERSIST_RO_VARIABLES_ADMIN - 593)))) !== 0) || ((((_la - 625)) & ~0x1F) === 0 && ((1 << (_la - 625)) & ((1 << (SqlParser.REPLICATION_APPLIER - 625)) | (1 << (SqlParser.REPLICATION_SLAVE_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_ADMIN - 625)) | (1 << (SqlParser.RESOURCE_GROUP_USER - 625)) | (1 << (SqlParser.ROLE_ADMIN - 625)) | (1 << (SqlParser.SESSION_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.SET_USER_ID - 625)) | (1 << (SqlParser.SHOW_ROUTINE - 625)) | (1 << (SqlParser.SYSTEM_VARIABLES_ADMIN - 625)) | (1 << (SqlParser.TABLE_ENCRYPTION_ADMIN - 625)) | (1 << (SqlParser.VERSION_TOKEN_ADMIN - 625)) | (1 << (SqlParser.XA_RECOVER_ADMIN - 625)))) !== 0) || _la === SqlParser.MEMORY || _la === SqlParser.CATALOG_NAME || _la === SqlParser.SCHEMA_NAME)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) - public functionNameBase(): FunctionNameBaseContext { - let _localctx: FunctionNameBaseContext = new FunctionNameBaseContext(this._ctx, this.state); - this.enterRule(_localctx, 630, SqlParser.RULE_functionNameBase); - let _la: number; - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 6379; - _la = this._input.LA(1); - if (!(_la === SqlParser.DATABASE || _la === SqlParser.LEFT || _la === SqlParser.RIGHT || ((((_la - 199)) & ~0x1F) === 0 && ((1 << (_la - 199)) & ((1 << (SqlParser.DATE - 199)) | (1 << (SqlParser.TIME - 199)) | (1 << (SqlParser.TIMESTAMP - 199)) | (1 << (SqlParser.YEAR - 199)))) !== 0) || ((((_la - 233)) & ~0x1F) === 0 && ((1 << (_la - 233)) & ((1 << (SqlParser.JSON_VALID - 233)) | (1 << (SqlParser.JSON_SCHEMA_VALID - 233)) | (1 << (SqlParser.COUNT - 233)) | (1 << (SqlParser.POSITION - 233)))) !== 0) || _la === SqlParser.INVISIBLE || ((((_la - 580)) & ~0x1F) === 0 && ((1 << (_la - 580)) & ((1 << (SqlParser.VISIBLE - 580)) | (1 << (SqlParser.QUARTER - 580)) | (1 << (SqlParser.MONTH - 580)) | (1 << (SqlParser.DAY - 580)) | (1 << (SqlParser.HOUR - 580)) | (1 << (SqlParser.MINUTE - 580)) | (1 << (SqlParser.WEEK - 580)) | (1 << (SqlParser.SECOND - 580)) | (1 << (SqlParser.MICROSECOND - 580)))) !== 0) || _la === SqlParser.SESSION_VARIABLES_ADMIN || ((((_la - 693)) & ~0x1F) === 0 && ((1 << (_la - 693)) & ((1 << (SqlParser.GEOMETRYCOLLECTION - 693)) | (1 << (SqlParser.LINESTRING - 693)) | (1 << (SqlParser.MULTILINESTRING - 693)) | (1 << (SqlParser.MULTIPOINT - 693)) | (1 << (SqlParser.MULTIPOLYGON - 693)) | (1 << (SqlParser.POINT - 693)) | (1 << (SqlParser.POLYGON - 693)) | (1 << (SqlParser.ABS - 693)) | (1 << (SqlParser.ACOS - 693)) | (1 << (SqlParser.ADDDATE - 693)) | (1 << (SqlParser.ADDTIME - 693)) | (1 << (SqlParser.AES_DECRYPT - 693)) | (1 << (SqlParser.AES_ENCRYPT - 693)) | (1 << (SqlParser.AREA - 693)) | (1 << (SqlParser.ASBINARY - 693)) | (1 << (SqlParser.ASIN - 693)) | (1 << (SqlParser.ASTEXT - 693)) | (1 << (SqlParser.ASWKB - 693)) | (1 << (SqlParser.ASWKT - 693)) | (1 << (SqlParser.ASYMMETRIC_DECRYPT - 693)) | (1 << (SqlParser.ASYMMETRIC_DERIVE - 693)) | (1 << (SqlParser.ASYMMETRIC_ENCRYPT - 693)) | (1 << (SqlParser.ASYMMETRIC_SIGN - 693)) | (1 << (SqlParser.ASYMMETRIC_VERIFY - 693)) | (1 << (SqlParser.ATAN - 693)) | (1 << (SqlParser.ATAN2 - 693)) | (1 << (SqlParser.BENCHMARK - 693)) | (1 << (SqlParser.BIN - 693)) | (1 << (SqlParser.BIT_COUNT - 693)) | (1 << (SqlParser.BIT_LENGTH - 693)))) !== 0) || ((((_la - 725)) & ~0x1F) === 0 && ((1 << (_la - 725)) & ((1 << (SqlParser.BUFFER - 725)) | (1 << (SqlParser.CEIL - 725)) | (1 << (SqlParser.CEILING - 725)) | (1 << (SqlParser.CENTROID - 725)) | (1 << (SqlParser.CHARACTER_LENGTH - 725)) | (1 << (SqlParser.CHARSET - 725)) | (1 << (SqlParser.CHAR_LENGTH - 725)) | (1 << (SqlParser.COERCIBILITY - 725)) | (1 << (SqlParser.COLLATION - 725)) | (1 << (SqlParser.COMPRESS - 725)) | (1 << (SqlParser.CONCAT - 725)) | (1 << (SqlParser.CONCAT_WS - 725)) | (1 << (SqlParser.CONNECTION_ID - 725)) | (1 << (SqlParser.CONV - 725)) | (1 << (SqlParser.CONVERT_TZ - 725)) | (1 << (SqlParser.COS - 725)) | (1 << (SqlParser.COT - 725)) | (1 << (SqlParser.CRC32 - 725)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PRIV_KEY - 725)) | (1 << (SqlParser.CREATE_ASYMMETRIC_PUB_KEY - 725)) | (1 << (SqlParser.CREATE_DH_PARAMETERS - 725)) | (1 << (SqlParser.CREATE_DIGEST - 725)) | (1 << (SqlParser.CROSSES - 725)) | (1 << (SqlParser.DATEDIFF - 725)) | (1 << (SqlParser.DATE_FORMAT - 725)) | (1 << (SqlParser.DAYNAME - 725)) | (1 << (SqlParser.DAYOFMONTH - 725)) | (1 << (SqlParser.DAYOFWEEK - 725)) | (1 << (SqlParser.DAYOFYEAR - 725)) | (1 << (SqlParser.DECODE - 725)) | (1 << (SqlParser.DEGREES - 725)))) !== 0) || ((((_la - 757)) & ~0x1F) === 0 && ((1 << (_la - 757)) & ((1 << (SqlParser.DES_DECRYPT - 757)) | (1 << (SqlParser.DES_ENCRYPT - 757)) | (1 << (SqlParser.DIMENSION - 757)) | (1 << (SqlParser.DISJOINT - 757)) | (1 << (SqlParser.ELT - 757)) | (1 << (SqlParser.ENCODE - 757)) | (1 << (SqlParser.ENCRYPT - 757)) | (1 << (SqlParser.ENDPOINT - 757)) | (1 << (SqlParser.ENVELOPE - 757)) | (1 << (SqlParser.EQUALS - 757)) | (1 << (SqlParser.EXP - 757)) | (1 << (SqlParser.EXPORT_SET - 757)) | (1 << (SqlParser.EXTERIORRING - 757)) | (1 << (SqlParser.EXTRACTVALUE - 757)) | (1 << (SqlParser.FIELD - 757)) | (1 << (SqlParser.FIND_IN_SET - 757)) | (1 << (SqlParser.FLOOR - 757)) | (1 << (SqlParser.FORMAT - 757)) | (1 << (SqlParser.FOUND_ROWS - 757)) | (1 << (SqlParser.FROM_BASE64 - 757)) | (1 << (SqlParser.FROM_DAYS - 757)) | (1 << (SqlParser.FROM_UNIXTIME - 757)) | (1 << (SqlParser.GEOMCOLLFROMTEXT - 757)) | (1 << (SqlParser.GEOMCOLLFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMTEXT - 757)) | (1 << (SqlParser.GEOMETRYCOLLECTIONFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYFROMTEXT - 757)) | (1 << (SqlParser.GEOMETRYFROMWKB - 757)) | (1 << (SqlParser.GEOMETRYN - 757)) | (1 << (SqlParser.GEOMETRYTYPE - 757)) | (1 << (SqlParser.GEOMFROMTEXT - 757)) | (1 << (SqlParser.GEOMFROMWKB - 757)))) !== 0) || ((((_la - 789)) & ~0x1F) === 0 && ((1 << (_la - 789)) & ((1 << (SqlParser.GET_FORMAT - 789)) | (1 << (SqlParser.GET_LOCK - 789)) | (1 << (SqlParser.GLENGTH - 789)) | (1 << (SqlParser.GREATEST - 789)) | (1 << (SqlParser.GTID_SUBSET - 789)) | (1 << (SqlParser.GTID_SUBTRACT - 789)) | (1 << (SqlParser.HEX - 789)) | (1 << (SqlParser.IFNULL - 789)) | (1 << (SqlParser.INET6_ATON - 789)) | (1 << (SqlParser.INET6_NTOA - 789)) | (1 << (SqlParser.INET_ATON - 789)) | (1 << (SqlParser.INET_NTOA - 789)) | (1 << (SqlParser.INSTR - 789)) | (1 << (SqlParser.INTERIORRINGN - 789)) | (1 << (SqlParser.INTERSECTS - 789)) | (1 << (SqlParser.ISCLOSED - 789)) | (1 << (SqlParser.ISEMPTY - 789)) | (1 << (SqlParser.ISNULL - 789)) | (1 << (SqlParser.ISSIMPLE - 789)) | (1 << (SqlParser.IS_FREE_LOCK - 789)) | (1 << (SqlParser.IS_IPV4 - 789)) | (1 << (SqlParser.IS_IPV4_COMPAT - 789)) | (1 << (SqlParser.IS_IPV4_MAPPED - 789)) | (1 << (SqlParser.IS_IPV6 - 789)) | (1 << (SqlParser.IS_USED_LOCK - 789)) | (1 << (SqlParser.LAST_INSERT_ID - 789)) | (1 << (SqlParser.LCASE - 789)) | (1 << (SqlParser.LEAST - 789)) | (1 << (SqlParser.LENGTH - 789)) | (1 << (SqlParser.LINEFROMTEXT - 789)) | (1 << (SqlParser.LINEFROMWKB - 789)) | (1 << (SqlParser.LINESTRINGFROMTEXT - 789)))) !== 0) || ((((_la - 821)) & ~0x1F) === 0 && ((1 << (_la - 821)) & ((1 << (SqlParser.LINESTRINGFROMWKB - 821)) | (1 << (SqlParser.LN - 821)) | (1 << (SqlParser.LOAD_FILE - 821)) | (1 << (SqlParser.LOCATE - 821)) | (1 << (SqlParser.LOG - 821)) | (1 << (SqlParser.LOG10 - 821)) | (1 << (SqlParser.LOG2 - 821)) | (1 << (SqlParser.LOWER - 821)) | (1 << (SqlParser.LPAD - 821)) | (1 << (SqlParser.LTRIM - 821)) | (1 << (SqlParser.MAKEDATE - 821)) | (1 << (SqlParser.MAKETIME - 821)) | (1 << (SqlParser.MAKE_SET - 821)) | (1 << (SqlParser.MASTER_POS_WAIT - 821)) | (1 << (SqlParser.MBRCONTAINS - 821)) | (1 << (SqlParser.MBRDISJOINT - 821)) | (1 << (SqlParser.MBREQUAL - 821)) | (1 << (SqlParser.MBRINTERSECTS - 821)) | (1 << (SqlParser.MBROVERLAPS - 821)) | (1 << (SqlParser.MBRTOUCHES - 821)) | (1 << (SqlParser.MBRWITHIN - 821)) | (1 << (SqlParser.MD5 - 821)) | (1 << (SqlParser.MLINEFROMTEXT - 821)) | (1 << (SqlParser.MLINEFROMWKB - 821)) | (1 << (SqlParser.MONTHNAME - 821)) | (1 << (SqlParser.MPOINTFROMTEXT - 821)) | (1 << (SqlParser.MPOINTFROMWKB - 821)) | (1 << (SqlParser.MPOLYFROMTEXT - 821)) | (1 << (SqlParser.MPOLYFROMWKB - 821)) | (1 << (SqlParser.MULTILINESTRINGFROMTEXT - 821)) | (1 << (SqlParser.MULTILINESTRINGFROMWKB - 821)) | (1 << (SqlParser.MULTIPOINTFROMTEXT - 821)))) !== 0) || ((((_la - 853)) & ~0x1F) === 0 && ((1 << (_la - 853)) & ((1 << (SqlParser.MULTIPOINTFROMWKB - 853)) | (1 << (SqlParser.MULTIPOLYGONFROMTEXT - 853)) | (1 << (SqlParser.MULTIPOLYGONFROMWKB - 853)) | (1 << (SqlParser.NAME_CONST - 853)) | (1 << (SqlParser.NULLIF - 853)) | (1 << (SqlParser.NUMGEOMETRIES - 853)) | (1 << (SqlParser.NUMINTERIORRINGS - 853)) | (1 << (SqlParser.NUMPOINTS - 853)) | (1 << (SqlParser.OCT - 853)) | (1 << (SqlParser.OCTET_LENGTH - 853)) | (1 << (SqlParser.ORD - 853)) | (1 << (SqlParser.OVERLAPS - 853)) | (1 << (SqlParser.PERIOD_ADD - 853)) | (1 << (SqlParser.PERIOD_DIFF - 853)) | (1 << (SqlParser.PI - 853)) | (1 << (SqlParser.POINTFROMTEXT - 853)) | (1 << (SqlParser.POINTFROMWKB - 853)) | (1 << (SqlParser.POINTN - 853)) | (1 << (SqlParser.POLYFROMTEXT - 853)) | (1 << (SqlParser.POLYFROMWKB - 853)) | (1 << (SqlParser.POLYGONFROMTEXT - 853)) | (1 << (SqlParser.POLYGONFROMWKB - 853)) | (1 << (SqlParser.POW - 853)) | (1 << (SqlParser.POWER - 853)) | (1 << (SqlParser.QUOTE - 853)) | (1 << (SqlParser.RADIANS - 853)) | (1 << (SqlParser.RAND - 853)) | (1 << (SqlParser.RANDOM_BYTES - 853)) | (1 << (SqlParser.RELEASE_LOCK - 853)) | (1 << (SqlParser.REVERSE - 853)) | (1 << (SqlParser.ROUND - 853)) | (1 << (SqlParser.ROW_COUNT - 853)))) !== 0) || ((((_la - 885)) & ~0x1F) === 0 && ((1 << (_la - 885)) & ((1 << (SqlParser.RPAD - 885)) | (1 << (SqlParser.RTRIM - 885)) | (1 << (SqlParser.SEC_TO_TIME - 885)) | (1 << (SqlParser.SESSION_USER - 885)) | (1 << (SqlParser.SHA - 885)) | (1 << (SqlParser.SHA1 - 885)) | (1 << (SqlParser.SHA2 - 885)) | (1 << (SqlParser.SIGN - 885)) | (1 << (SqlParser.SIN - 885)) | (1 << (SqlParser.SLEEP - 885)) | (1 << (SqlParser.SOUNDEX - 885)) | (1 << (SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS - 885)) | (1 << (SqlParser.SQRT - 885)) | (1 << (SqlParser.SRID - 885)) | (1 << (SqlParser.STARTPOINT - 885)) | (1 << (SqlParser.STRCMP - 885)) | (1 << (SqlParser.STR_TO_DATE - 885)) | (1 << (SqlParser.ST_AREA - 885)) | (1 << (SqlParser.ST_ASBINARY - 885)) | (1 << (SqlParser.ST_ASTEXT - 885)) | (1 << (SqlParser.ST_ASWKB - 885)) | (1 << (SqlParser.ST_ASWKT - 885)) | (1 << (SqlParser.ST_BUFFER - 885)) | (1 << (SqlParser.ST_CENTROID - 885)) | (1 << (SqlParser.ST_CONTAINS - 885)) | (1 << (SqlParser.ST_CROSSES - 885)) | (1 << (SqlParser.ST_DIFFERENCE - 885)) | (1 << (SqlParser.ST_DIMENSION - 885)) | (1 << (SqlParser.ST_DISJOINT - 885)) | (1 << (SqlParser.ST_DISTANCE - 885)) | (1 << (SqlParser.ST_ENDPOINT - 885)))) !== 0) || ((((_la - 917)) & ~0x1F) === 0 && ((1 << (_la - 917)) & ((1 << (SqlParser.ST_ENVELOPE - 917)) | (1 << (SqlParser.ST_EQUALS - 917)) | (1 << (SqlParser.ST_EXTERIORRING - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMTXT - 917)) | (1 << (SqlParser.ST_GEOMCOLLFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMETRYFROMWKB - 917)) | (1 << (SqlParser.ST_GEOMETRYN - 917)) | (1 << (SqlParser.ST_GEOMETRYTYPE - 917)) | (1 << (SqlParser.ST_GEOMFROMTEXT - 917)) | (1 << (SqlParser.ST_GEOMFROMWKB - 917)) | (1 << (SqlParser.ST_INTERIORRINGN - 917)) | (1 << (SqlParser.ST_INTERSECTION - 917)) | (1 << (SqlParser.ST_INTERSECTS - 917)) | (1 << (SqlParser.ST_ISCLOSED - 917)) | (1 << (SqlParser.ST_ISEMPTY - 917)) | (1 << (SqlParser.ST_ISSIMPLE - 917)) | (1 << (SqlParser.ST_LINEFROMTEXT - 917)) | (1 << (SqlParser.ST_LINEFROMWKB - 917)) | (1 << (SqlParser.ST_LINESTRINGFROMTEXT - 917)) | (1 << (SqlParser.ST_LINESTRINGFROMWKB - 917)) | (1 << (SqlParser.ST_NUMGEOMETRIES - 917)) | (1 << (SqlParser.ST_NUMINTERIORRING - 917)) | (1 << (SqlParser.ST_NUMINTERIORRINGS - 917)) | (1 << (SqlParser.ST_NUMPOINTS - 917)) | (1 << (SqlParser.ST_OVERLAPS - 917)) | (1 << (SqlParser.ST_POINTFROMTEXT - 917)) | (1 << (SqlParser.ST_POINTFROMWKB - 917)) | (1 << (SqlParser.ST_POINTN - 917)))) !== 0) || ((((_la - 949)) & ~0x1F) === 0 && ((1 << (_la - 949)) & ((1 << (SqlParser.ST_POLYFROMTEXT - 949)) | (1 << (SqlParser.ST_POLYFROMWKB - 949)) | (1 << (SqlParser.ST_POLYGONFROMTEXT - 949)) | (1 << (SqlParser.ST_POLYGONFROMWKB - 949)) | (1 << (SqlParser.ST_SRID - 949)) | (1 << (SqlParser.ST_STARTPOINT - 949)) | (1 << (SqlParser.ST_SYMDIFFERENCE - 949)) | (1 << (SqlParser.ST_TOUCHES - 949)) | (1 << (SqlParser.ST_UNION - 949)) | (1 << (SqlParser.ST_WITHIN - 949)) | (1 << (SqlParser.ST_X - 949)) | (1 << (SqlParser.ST_Y - 949)) | (1 << (SqlParser.SUBDATE - 949)) | (1 << (SqlParser.SUBSTRING_INDEX - 949)) | (1 << (SqlParser.SUBTIME - 949)) | (1 << (SqlParser.SYSTEM_USER - 949)) | (1 << (SqlParser.TAN - 949)) | (1 << (SqlParser.TIMEDIFF - 949)) | (1 << (SqlParser.TIMESTAMPADD - 949)) | (1 << (SqlParser.TIMESTAMPDIFF - 949)) | (1 << (SqlParser.TIME_FORMAT - 949)) | (1 << (SqlParser.TIME_TO_SEC - 949)) | (1 << (SqlParser.TOUCHES - 949)) | (1 << (SqlParser.TO_BASE64 - 949)) | (1 << (SqlParser.TO_DAYS - 949)) | (1 << (SqlParser.TO_SECONDS - 949)) | (1 << (SqlParser.UCASE - 949)) | (1 << (SqlParser.UNCOMPRESS - 949)) | (1 << (SqlParser.UNCOMPRESSED_LENGTH - 949)) | (1 << (SqlParser.UNHEX - 949)) | (1 << (SqlParser.UNIX_TIMESTAMP - 949)) | (1 << (SqlParser.UPDATEXML - 949)))) !== 0) || ((((_la - 981)) & ~0x1F) === 0 && ((1 << (_la - 981)) & ((1 << (SqlParser.UPPER - 981)) | (1 << (SqlParser.UUID - 981)) | (1 << (SqlParser.UUID_SHORT - 981)) | (1 << (SqlParser.VALIDATE_PASSWORD_STRENGTH - 981)) | (1 << (SqlParser.VERSION - 981)) | (1 << (SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS - 981)) | (1 << (SqlParser.WEEKDAY - 981)) | (1 << (SqlParser.WEEKOFYEAR - 981)) | (1 << (SqlParser.WEIGHT_STRING - 981)) | (1 << (SqlParser.WITHIN - 981)) | (1 << (SqlParser.YEARWEEK - 981)) | (1 << (SqlParser.Y_FUNCTION - 981)) | (1 << (SqlParser.X_FUNCTION - 981)))) !== 0))) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === Token.EOF) { - this.matchedEOF = true; - } - - this._errHandler.reportMatch(this); - this.consume(); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - - public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { - switch (ruleIndex) { - case 301: - return this.expression_sempred(_localctx as ExpressionContext, predIndex); - - case 302: - return this.predicate_sempred(_localctx as PredicateContext, predIndex); - - case 303: - return this.expressionAtom_sempred(_localctx as ExpressionAtomContext, predIndex); - } - return true; - } - private expression_sempred(_localctx: ExpressionContext, predIndex: number): boolean { - switch (predIndex) { - case 0: - return this.precpred(this._ctx, 3); - } - return true; - } - private predicate_sempred(_localctx: PredicateContext, predIndex: number): boolean { - switch (predIndex) { - case 1: - return this.precpred(this._ctx, 7); - - case 2: - return this.precpred(this._ctx, 5); - - case 3: - return this.precpred(this._ctx, 4); - - case 4: - return this.precpred(this._ctx, 2); - - case 5: - return this.precpred(this._ctx, 9); - - case 6: - return this.precpred(this._ctx, 8); - - case 7: - return this.precpred(this._ctx, 6); - - case 8: - return this.precpred(this._ctx, 3); - } - return true; - } - private expressionAtom_sempred(_localctx: ExpressionAtomContext, predIndex: number): boolean { - switch (predIndex) { - case 9: - return this.precpred(this._ctx, 2); - - case 10: - return this.precpred(this._ctx, 1); - - case 11: - return this.precpred(this._ctx, 11); - } - return true; - } - - private static readonly _serializedATNSegments: number = 13; - private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\u041A\u18F0\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\x043\t3\x04" + - "4\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\x04E\tE\x04" + - "F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" + - "O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" + - "X\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\x04h\th\x04" + - "i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04" + - "r\tr\x04s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\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\x03\x02\x03\x02\x03" + - "\x02\x03\x03\x05\x03\u027F\n\x03\x03\x03\x05\x03\u0282\n\x03\x03\x03\x03" + - "\x03\x03\x04\x03\x04\x05\x04\u0288\n\x04\x03\x04\x05\x04\u028B\n\x04\x03" + - "\x04\x07\x04\u028E\n\x04\f\x04\x0E\x04\u0291\v\x04\x03\x04\x03\x04\x05" + - "\x04\u0295\n\x04\x03\x04\x05\x04\u0298\n\x04\x03\x04\x05\x04\u029B\n\x04" + - "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x05\x05\u02A4" + - "\n\x05\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" + - "\x03\x07\x03\x07\x05\x07\u02CB\n\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03" + - "\b\x03\b\x03\b\x03\b\x03\b\x05\b\u02D7\n\b\x03\t\x03\t\x03\t\x03\t\x03" + - "\t\x03\t\x03\t\x03\t\x03\t\x05\t\u02E2\n\t\x03\n\x03\n\x03\n\x03\n\x03" + - "\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x05\n\u02F3" + - "\n\n\x03\v\x03\v\x03\v\x05\v\u02F8\n\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + - "\f\x03\f\x03\f\x03\f\x03\f\x05\f\u0304\n\f\x03\r\x03\r\x03\r\x03\r\x03" + - "\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03" + - "\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x05\r\u031F\n\r\x03" + - "\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x05\x0E\u0328\n\x0E" + - "\x03\x0F\x03\x0F\x03\x0F\x05\x0F\u032D\n\x0F\x03\x0F\x03\x0F\x07\x0F\u0331" + - "\n\x0F\f\x0F\x0E\x0F\u0334\v\x0F\x03\x10\x03\x10\x05\x10\u0338\n\x10\x03" + - "\x10\x03\x10\x05\x10\u033C\n\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10" + - "\x03\x10\x03\x10\x05\x10\u0345\n\x10\x03\x10\x05\x10\u0348\n\x10\x03\x10" + - "\x05\x10\u034B\n\x10\x03\x10\x03\x10\x05\x10\u034F\n\x10\x03\x10\x03\x10" + - "\x03\x10\x03\x11\x03\x11\x05\x11\u0356\n\x11\x03\x11\x05\x11\u0359\n\x11" + - "\x03\x11\x03\x11\x03\x11\x05\x11\u035E\n\x11\x03\x11\x03\x11\x03\x11\x03" + - "\x11\x07\x11\u0364\n\x11\f\x11\x0E\x11\u0367\v\x11\x03\x11\x03\x11\x05" + - "\x11\u036B\n\x11\x03\x11\x03\x11\x03\x11\x05\x11\u0370\n\x11\x03\x11\x07" + - "\x11\u0373\n\x11\f\x11\x0E\x11\u0376\v\x11\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x05\x12\u0381\n\x12\x03\x12" + - "\x05\x12\u0384\n\x12\x03\x12\x03\x12\x05\x12\u0388\n\x12\x03\x12\x05\x12" + - "\u038B\n\x12\x03\x12\x03\x12\x05\x12\u038F\n\x12\x03\x12\x05\x12\u0392" + - "\n\x12\x03\x12\x03\x12\x05\x12\u0396\n\x12\x03\x12\x05\x12\u0399\n\x12" + - "\x03\x12\x05\x12\u039C\n\x12\x03\x12\x03\x12\x05\x12\u03A0\n\x12\x03\x12" + - "\x05\x12\u03A3\n\x12\x03\x12\x03\x12\x05\x12\u03A7\n\x12\x03\x12\x03\x12" + - "\x03\x13\x03\x13\x05\x13\u03AD\n\x13\x03\x13\x03\x13\x03\x13\x03\x13\x05" + - "\x13\u03B3\n\x13\x03\x13\x03\x13\x07\x13\u03B7\n\x13\f\x13\x0E\x13\u03BA" + - "\v\x13\x03\x13\x03\x13\x07\x13\u03BE\n\x13\f\x13\x0E\x13\u03C1\v\x13\x03" + - "\x13\x03\x13\x03\x14\x03\x14\x05\x14\u03C7\n\x14\x03\x14\x03\x14\x03\x14" + - "\x03\x14\x05\x14\u03CD\n\x14\x03\x14\x03\x14\x07\x14\u03D1\n\x14\f\x14" + - "\x0E\x14\u03D4\v\x14\x03\x14\x03\x14\x03\x14\x03\x14\x07\x14\u03DA\n\x14" + - "\f\x14\x0E\x14\u03DD\v\x14\x03\x14\x03\x14\x05\x14\u03E1\n\x14\x03\x15" + - "\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15" + - "\x03\x15\x03\x15\x07\x15\u03EF\n\x15\f\x15\x0E\x15\u03F2\v\x15\x03\x15" + - "\x03\x15\x03\x16\x03\x16\x05\x16\u03F8\n\x16\x03\x16\x03\x16\x05\x16\u03FC" + - "\n\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" + - "\x05\x16\u0406\n\x16\x03\x16\x03\x16\x05\x16\u040A\n\x16\x03\x16\x03\x16" + - "\x05\x16\u040E\n\x16\x03\x16\x03\x16\x05\x16\u0412\n\x16\x03\x16\x03\x16" + - "\x05\x16\u0416\n\x16\x03\x16\x07\x16\u0419\n\x16\f\x16\x0E\x16\u041C\v" + - "\x16\x05\x16\u041E\n\x16\x03\x16\x05\x16\u0421\n\x16\x03\x16\x05\x16\u0424" + - "\n\x16\x03\x16\x05\x16\u0427\n\x16\x03\x16\x03\x16\x03\x16\x03\x16\x05" + - "\x16\u042D\n\x16\x03\x16\x03\x16\x05\x16\u0431\n\x16\x03\x16\x03\x16\x03" + - "\x16\x03\x16\x05\x16\u0437\n\x16\x03\x16\x07\x16\u043A\n\x16\f\x16\x0E" + - "\x16\u043D\v\x16\x05\x16\u043F\n\x16\x03\x16\x05\x16\u0442\n\x16\x05\x16" + - "\u0444\n\x16\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03" + - "\x17\x03\x17\x05\x17\u044F\n\x17\x03\x17\x03\x17\x05\x17\u0453\n\x17\x03" + - "\x17\x05\x17\u0456\n\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18" + - "\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x05\x18\u0464\n\x18\x03" + - "\x18\x05\x18\u0467\n\x18\x03\x18\x03\x18\x05\x18\u046B\n\x18\x03\x18\x05" + - "\x18\u046E\n\x18\x03\x18\x03\x18\x05\x18\u0472\n\x18\x03\x18\x05\x18\u0475" + - "\n\x18\x03\x18\x03\x18\x05\x18\u0479\n\x18\x03\x18\x05\x18\u047C\n\x18" + - "\x03\x18\x03\x18\x05\x18\u0480\n\x18\x03\x18\x05\x18\u0483\n\x18\x03\x18" + - "\x05\x18\u0486\n\x18\x03\x18\x03\x18\x05\x18\u048A\n\x18\x03\x18\x05\x18" + - "\u048D\n\x18\x03\x18\x03\x18\x05\x18\u0491\n\x18\x03\x18\x03\x18\x03\x19" + - "\x03\x19\x05\x19\u0497\n\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03" + - "\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x05\x19\u04A4\n\x19\x03\x19" + - "\x03\x19\x03\x1A\x03\x1A\x03\x1A\x05\x1A\u04AB\n\x1A\x03\x1A\x03\x1A\x03" + - "\x1A\x05\x1A\u04B0\n\x1A\x03\x1A\x05\x1A\u04B3\n\x1A\x03\x1A\x03\x1A\x03" + - "\x1A\x05\x1A\u04B8\n\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A" + - "\x05\x1A\u04C0\n\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x05\x1A\u04C6\n\x1A" + - "\x03\x1A\x03\x1A\x05\x1A\u04CA\n\x1A\x03\x1B\x05\x1B\u04CD\n\x1B\x03\x1B" + - "\x03\x1B\x03\x1B\x05\x1B\u04D2\n\x1B\x03\x1B\x05\x1B\u04D5\n\x1B\x03\x1B" + - "\x03\x1B\x05\x1B\u04D9\n\x1B\x03\x1B\x05\x1B\u04DC\n\x1B\x03\x1B\x03\x1B" + - "\x05\x1B\u04E0\n\x1B\x03\x1B\x05\x1B\u04E3\n\x1B\x03\x1C\x03\x1C\x03\x1C" + - "\x03\x1C\x03\x1C\x03\x1C\x05\x1C\u04EB\n\x1C\x05\x1C\u04ED\n\x1C\x03\x1D" + - "\x03\x1D\x03\x1D\x07\x1D\u04F2\n\x1D\f\x1D\x0E\x1D\u04F5\v\x1D\x03\x1D" + - "\x03\x1D\x03\x1D\x05\x1D\u04FA\n\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x07" + - "\x1D\u0500\n\x1D\f\x1D\x0E\x1D\u0503\v\x1D\x05\x1D\u0505\n\x1D\x03\x1D" + - "\x03\x1D\x03\x1D\x07\x1D\u050A\n\x1D\f\x1D\x0E\x1D\u050D\v\x1D\x05\x1D" + - "\u050F\n\x1D\x05\x1D\u0511\n\x1D\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x05\x1E" + - "\u0517\n\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x05\x1F\u051D\n\x1F\x03\x1F" + - "\x03\x1F\x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03 \x03" + - " \x05 \u052E\n \x03!\x03!\x03!\x03!\x03!\x05!\u0535\n!\x03\"\x03\"\x03" + - "\"\x03#\x03#\x05#\u053C\n#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03" + - "#\x05#\u0547\n#\x03$\x05$\u054A\n$\x03$\x03$\x03$\x03%\x03%\x03%\x03&" + - "\x03&\x03&\x03&\x03&\x05&\u0557\n&\x03&\x03&\x03&\x03&\x03&\x03&\x03&" + - "\x03&\x03&\x03&\x03&\x05&\u0564\n&\x03&\x03&\x03&\x05&\u0569\n&\x03\'" + - "\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03\'\x03" + - "\'\x03\'\x05\'\u0579\n\'\x03(\x03(\x03(\x03(\x07(\u057F\n(\f(\x0E(\u0582" + - "\v(\x03(\x03(\x03)\x03)\x03)\x03)\x03)\x05)\u058B\n)\x03*\x03*\x07*\u058F" + - "\n*\f*\x0E*\u0592\v*\x03+\x03+\x03+\x03+\x03+\x03+\x03+\x05+\u059B\n+" + - "\x03+\x05+\u059E\n+\x03+\x03+\x03+\x05+\u05A3\n+\x03+\x03+\x03+\x03+\x03" + - "+\x03+\x03+\x03+\x03+\x03+\x03+\x05+\u05B0\n+\x03+\x03+\x03+\x03+\x03" + - "+\x05+\u05B7\n+\x03+\x03+\x03+\x03+\x03+\x05+\u05BE\n+\x05+\u05C0\n+\x03" + - "+\x03+\x03+\x03+\x03+\x05+\u05C7\n+\x03,\x03,\x05,\u05CB\n,\x05,\u05CD" + - "\n,\x03,\x03,\x03,\x05,\u05D2\n,\x03,\x05,\u05D5\n,\x03,\x03,\x07,\u05D9" + - "\n,\f,\x0E,\u05DC\v,\x03,\x03,\x05,\u05E0\n,\x05,\u05E2\n,\x03,\x03,\x05" + - ",\u05E6\n,\x03,\x05,\u05E9\n,\x03,\x05,\u05EC\n,\x03,\x03,\x07,\u05F0" + - "\n,\f,\x0E,\u05F3\v,\x03,\x03,\x05,\u05F7\n,\x05,\u05F9\n,\x03,\x03,\x03" + - ",\x05,\u05FE\n,\x03,\x03,\x03,\x03,\x03,\x05,\u0605\n,\x05,\u0607\n,\x03" + - ",\x03,\x03,\x03,\x03,\x05,\u060E\n,\x03-\x03-\x03-\x05-\u0613\n-\x03-" + - "\x03-\x05-\u0617\n-\x03-\x05-\u061A\n-\x03.\x03.\x03.\x03.\x03.\x03.\x05" + - ".\u0622\n.\x03.\x03.\x03.\x03.\x03.\x03.\x05.\u062A\n.\x05.\u062C\n.\x03" + - "/\x03/\x03/\x03/\x03/\x03/\x05/\u0634\n/\x030\x030\x050\u0638\n0\x030" + - "\x050\u063B\n0\x030\x030\x070\u063F\n0\f0\x0E0\u0642\v0\x030\x030\x05" + - "0\u0646\n0\x030\x050\u0649\n0\x030\x030\x070\u064D\n0\f0\x0E0\u0650\v" + - "0\x050\u0652\n0\x031\x031\x051\u0656\n1\x031\x031\x031\x051\u065B\n1\x03" + - "1\x031\x031\x051\u0660\n1\x031\x031\x051\u0664\n1\x031\x031\x031\x051" + - "\u0669\n1\x031\x051\u066C\n1\x031\x031\x051\u0670\n1\x031\x031\x051\u0674" + - "\n1\x031\x031\x051\u0678\n1\x031\x031\x051\u067C\n1\x031\x031\x031\x05" + - "1\u0681\n1\x031\x031\x031\x051\u0686\n1\x031\x031\x031\x051\u068B\n1\x03" + - "1\x031\x031\x031\x051\u0691\n1\x031\x031\x031\x051\u0696\n1\x031\x031" + - "\x031\x051\u069B\n1\x031\x031\x031\x031\x051\u06A1\n1\x031\x031\x031\x05" + - "1\u06A6\n1\x031\x031\x031\x051\u06AB\n1\x031\x031\x031\x051\u06B0\n1\x03" + - "1\x031\x031\x051\u06B5\n1\x031\x031\x031\x051\u06BA\n1\x031\x031\x031" + - "\x051\u06BF\n1\x031\x031\x031\x051\u06C4\n1\x031\x031\x031\x051\u06C9" + - "\n1\x031\x031\x031\x051\u06CE\n1\x031\x031\x031\x051\u06D3\n1\x031\x03" + - "1\x031\x031\x051\u06D9\n1\x031\x031\x031\x051\u06DE\n1\x031\x031\x031" + - "\x031\x051\u06E4\n1\x032\x032\x032\x033\x033\x033\x033\x033\x053\u06EE" + - "\n3\x033\x033\x033\x033\x033\x053\u06F5\n3\x053\u06F7\n3\x033\x033\x03" + - "3\x033\x073\u06FD\n3\f3\x0E3\u0700\v3\x033\x033\x053\u0704\n3\x034\x05" + - "4\u0707\n4\x034\x034\x034\x034\x034\x034\x054\u070F\n4\x034\x034\x034" + - "\x034\x054\u0715\n4\x034\x034\x034\x034\x034\x034\x034\x034\x034\x034" + - "\x034\x034\x034\x034\x054\u0725\n4\x034\x034\x034\x034\x034\x034\x034" + - "\x034\x034\x034\x054\u0731\n4\x054\u0733\n4\x035\x055\u0736\n5\x035\x03" + - "5\x035\x035\x035\x035\x055\u073E\n5\x035\x035\x035\x035\x055\u0744\n5" + - "\x035\x035\x035\x035\x055\u074A\n5\x036\x036\x036\x036\x036\x036\x036" + - "\x036\x036\x076\u0755\n6\f6\x0E6\u0758\v6\x036\x036\x076\u075C\n6\f6\x0E" + - "6\u075F\v6\x036\x036\x036\x076\u0764\n6\f6\x0E6\u0767\v6\x056\u0769\n" + - "6\x036\x036\x036\x036\x036\x036\x036\x076\u0772\n6\f6\x0E6\u0775\v6\x03" + - "6\x036\x036\x076\u077A\n6\f6\x0E6\u077D\v6\x056\u077F\n6\x036\x036\x03" + - "6\x036\x036\x036\x036\x036\x076\u0789\n6\f6\x0E6\u078C\v6\x036\x036\x07" + - "6\u0790\n6\f6\x0E6\u0793\v6\x036\x036\x036\x076\u0798\n6\f6\x0E6\u079B" + - "\v6\x056\u079D\n6\x036\x036\x036\x036\x036\x036\x036\x036\x076\u07A7\n" + - "6\f6\x0E6\u07AA\v6\x036\x036\x076\u07AE\n6\f6\x0E6\u07B1\v6\x036\x036" + - "\x036\x076\u07B6\n6\f6\x0E6\u07B9\v6\x056\u07BB\n6\x036\x036\x036\x07" + - "6\u07C0\n6\f6\x0E6\u07C3\v6\x036\x036\x036\x076\u07C8\n6\f6\x0E6\u07CB" + - "\v6\x056\u07CD\n6\x056\u07CF\n6\x037\x037\x037\x057\u07D4\n7\x038\x03" + - "8\x038\x038\x068\u07DA\n8\r8\x0E8\u07DB\x038\x038\x039\x039\x039\x079" + - "\u07E3\n9\f9\x0E9\u07E6\v9\x03:\x05:\u07E9\n:\x03:\x03:\x05:\u07ED\n:" + - "\x03:\x03:\x03:\x05:\u07F2\n:\x03:\x03:\x03:\x03:\x05:\u07F8\n:\x03:\x03" + - ":\x03:\x03:\x05:\u07FE\n:\x03:\x03:\x03:\x05:\u0803\n:\x03:\x03:\x03:" + - "\x05:\u0808\n:\x03:\x03:\x03:\x05:\u080D\n:\x03:\x03:\x03:\x05:\u0812" + - "\n:\x03:\x05:\u0815\n:\x03;\x03;\x03;\x05;\u081A\n;\x03;\x06;\u081D\n" + - ";\r;\x0E;\u081E\x03;\x03;\x03;\x03;\x03;\x03;\x03;\x03;\x05;\u0829\n;" + - "\x03<\x03<\x05<\u082D\n<\x03<\x03<\x03<\x03<\x03<\x05<\u0834\n<\x03<\x03" + - "<\x03<\x05<\u0839\n<\x03<\x05<\u083C\n<\x03<\x03<\x03<\x05<\u0841\n<\x03" + - "<\x05<\u0844\n<\x03<\x03<\x05<\u0848\n<\x03<\x03<\x05<\u084C\n<\x03=\x03" + - "=\x03=\x03=\x07=\u0852\n=\f=\x0E=\u0855\v=\x03>\x03>\x03>\x03>\x03>\x03" + - ">\x03>\x03?\x03?\x03?\x03?\x03?\x03?\x03?\x03?\x03?\x05?\u0867\n?\x03" + - "?\x05?\u086A\n?\x03?\x05?\u086D\n?\x03?\x03?\x05?\u0871\n?\x03?\x03?\x03" + - "@\x03@\x03@\x03@\x07@\u0879\n@\f@\x0E@\u087C\v@\x03A\x03A\x03A\x03A\x03" + - "A\x03A\x03A\x03A\x07A\u0886\nA\fA\x0EA\u0889\vA\x03A\x03A\x03B\x03B\x05" + - "B\u088F\nB\x03B\x05B\u0892\nB\x03B\x03B\x03B\x03B\x03B\x07B\u0899\nB\f" + - "B\x0EB\u089C\vB\x05B\u089E\nB\x03B\x05B\u08A1\nB\x03C\x03C\x03C\x03C\x03" + - "C\x03C\x03C\x03C\x03C\x05C\u08AC\nC\x03C\x05C\u08AF\nC\x03C\x03C\x05C" + - "\u08B3\nC\x03C\x03C\x03D\x03D\x03D\x03D\x05D\u08BB\nD\x03D\x05D\u08BE" + - "\nD\x03D\x03D\x03D\x05D\u08C3\nD\x03D\x03D\x03D\x03D\x03D\x03D\x05D\u08CB" + - "\nD\x03D\x03D\x03D\x03D\x05D\u08D1\nD\x03D\x03D\x05D\u08D5\nD\x03E\x03" + - "E\x05E\u08D9\nE\x03E\x07E\u08DC\nE\fE\x0EE\u08DF\vE\x03E\x03E\x05E\u08E3" + - "\nE\x03E\x03E\x03E\x03E\x03E\x05E\u08EA\nE\x03E\x03E\x05E\u08EE\nE\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x03E\x07E\u08F7\nE\fE\x0EE\u08FA\vE\x03E\x03" + - "E\x03E\x03E\x03E\x05E\u0901\nE\x03E\x05E\u0904\nE\x03E\x03E\x07E\u0908" + - "\nE\fE\x0EE\u090B\vE\x03E\x03E\x03E\x05E\u0910\nE\x05E\u0912\nE\x03E\x03" + - "E\x03E\x05E\u0917\nE\x03E\x05"; - private static readonly _serializedATNSegment1: string = - "E\u091A\nE\x03E\x03E\x07E\u091E\nE\fE\x0EE\u0921\vE\x03E\x03E\x03E\x05" + - "E\u0926\nE\x05E\u0928\nE\x03E\x03E\x05E\u092C\nE\x03E\x05E\u092F\nE\x03" + - "E\x05E\u0932\nE\x03E\x03E\x07E\u0936\nE\fE\x0EE\u0939\vE\x03E\x03E\x03" + - "E\x05E\u093E\nE\x03E\x05E\u0941\nE\x03E\x03E\x07E\u0945\nE\fE\x0EE\u0948" + - "\vE\x03E\x03E\x03E\x05E\u094D\nE\x05E\u094F\nE\x03E\x03E\x03E\x05E\u0954" + - "\nE\x03E\x03E\x03E\x03E\x03E\x03E\x05E\u095C\nE\x05E\u095E\nE\x03E\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x05E\u0967\nE\x03E\x03E\x03E\x05E\u096C\nE" + - "\x03E\x03E\x03E\x03E\x03E\x03E\x05E\u0974\nE\x03E\x03E\x05E\u0978\nE\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x05E\u0980\nE\x03E\x03E\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x05E\u098A\nE\x03E\x03E\x03E\x05E\u098F\nE\x03E\x03E\x03E" + - "\x03E\x03E\x05E\u0996\nE\x03E\x03E\x05E\u099A\nE\x03E\x03E\x05E\u099E" + - "\nE\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x05" + - "E\u09BB\nE\x03E\x03E\x05E\u09BF\nE\x03E\x03E\x03E\x03E\x03E\x03E\x03E" + - "\x03E\x03E\x03E\x05E\u09CB\nE\x03E\x05E\u09CE\nE\x03E\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x05E\u09D7\nE\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x03E\x03E\x07E\u09E6\nE\fE\x0EE\u09E9\vE\x03E\x03E\x03E\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x05E\u09F4\nE\x03E\x03E\x03E\x03E\x03E\x05" + - "E\u09FB\nE\x03E\x03E\x03E\x03E\x03E\x05E\u0A02\nE\x03E\x03E\x03E\x03E" + - "\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x07E\u0A0F\nE\fE\x0EE\u0A12\vE\x03" + - "E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x05E\u0A1E\nE\x03E\x03" + - "E\x03E\x03E\x05E\u0A24\nE\x03E\x03E\x03E\x03E\x05E\u0A2A\nE\x03E\x03E" + - "\x03E\x03E\x05E\u0A30\nE\x03E\x03E\x03E\x03E\x05E\u0A36\nE\x03E\x03E\x03" + - "E\x03E\x05E\u0A3C\nE\x03E\x03E\x03E\x03E\x05E\u0A42\nE\x03F\x03F\x03F" + - "\x05F\u0A47\nF\x03F\x03F\x03G\x03G\x03G\x05G\u0A4E\nG\x03G\x03G\x03H\x03" + - "H\x03H\x05H\u0A55\nH\x03H\x03H\x03H\x03H\x03H\x05H\u0A5C\nH\x03H\x03H" + - "\x03H\x05H\u0A61\nH\x03H\x07H\u0A64\nH\fH\x0EH\u0A67\vH\x03I\x03I\x03" + - "I\x03I\x03I\x03I\x03I\x03I\x03J\x03J\x03J\x05J\u0A74\nJ\x03J\x03J\x03" + - "K\x03K\x03K\x05K\u0A7B\nK\x03K\x03K\x03L\x03L\x03L\x05L\u0A82\nL\x03L" + - "\x03L\x03M\x03M\x05M\u0A88\nM\x03M\x03M\x05M\u0A8C\nM\x03M\x03M\x05M\u0A90" + - "\nM\x03N\x03N\x03N\x03N\x03N\x05N\u0A97\nN\x03N\x05N\u0A9A\nN\x03O\x03" + - "O\x03O\x05O\u0A9F\nO\x03O\x03O\x03P\x03P\x03P\x05P\u0AA6\nP\x03P\x03P" + - "\x03P\x07P\u0AAB\nP\fP\x0EP\u0AAE\vP\x03P\x05P\u0AB1\nP\x03Q\x03Q\x03" + - "Q\x03Q\x03Q\x07Q\u0AB8\nQ\fQ\x0EQ\u0ABB\vQ\x03R\x03R\x03R\x03R\x03S\x03" + - "S\x05S\u0AC3\nS\x03S\x03S\x03T\x03T\x03T\x03T\x03T\x05T\u0ACC\nT\x03T" + - "\x05T\u0ACF\nT\x03U\x03U\x05U\u0AD3\nU\x03V\x03V\x03V\x03W\x03W\x03W\x03" + - "W\x05W\u0ADC\nW\x03X\x03X\x05X\u0AE0\nX\x03X\x05X\u0AE3\nX\x03X\x05X\u0AE6" + - "\nX\x03X\x03X\x03X\x03X\x05X\u0AEC\nX\x03X\x05X\u0AEF\nX\x03X\x03X\x03" + - "X\x03X\x05X\u0AF5\nX\x03X\x03X\x03X\x03X\x03X\x07X\u0AFC\nX\fX\x0EX\u0AFF" + - "\vX\x05X\u0B01\nX\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x07X\u0B0A\nX\fX" + - "\x0EX\u0B0D\vX\x05X\u0B0F\nX\x03Y\x03Y\x03Y\x05Y\u0B14\nY\x03Y\x05Y\u0B17" + - "\nY\x03Y\x03Y\x03Y\x05Y\u0B1C\nY\x03Y\x03Y\x03Y\x03Y\x03Y\x03Y\x03Y\x03" + - "Y\x05Y\u0B26\nY\x03Y\x03Y\x03Y\x05Y\u0B2B\nY\x03Y\x03Y\x06Y\u0B2F\nY\r" + - "Y\x0EY\u0B30\x05Y\u0B33\nY\x03Y\x03Y\x06Y\u0B37\nY\rY\x0EY\u0B38\x05Y" + - "\u0B3B\nY\x03Y\x03Y\x03Y\x03Y\x05Y\u0B41\nY\x03Y\x03Y\x03Y\x03Y\x07Y\u0B47" + - "\nY\fY\x0EY\u0B4A\vY\x03Y\x03Y\x05Y\u0B4E\nY\x03Y\x03Y\x03Y\x03Y\x07Y" + - "\u0B54\nY\fY\x0EY\u0B57\vY\x05Y\u0B59\nY\x03Z\x03Z\x03Z\x05Z\u0B5E\nZ" + - "\x03Z\x05Z\u0B61\nZ\x03Z\x03Z\x03Z\x05Z\u0B66\nZ\x03Z\x03Z\x03Z\x03Z\x03" + - "Z\x03Z\x05Z\u0B6E\nZ\x03Z\x03Z\x03Z\x03Z\x03Z\x03Z\x05Z\u0B76\nZ\x03Z" + - "\x03Z\x03Z\x03Z\x05Z\u0B7C\nZ\x03Z\x03Z\x03Z\x03Z\x07Z\u0B82\nZ\fZ\x0E" + - "Z\u0B85\vZ\x03Z\x03Z\x05Z\u0B89\nZ\x03Z\x03Z\x03Z\x03Z\x07Z\u0B8F\nZ\f" + - "Z\x0EZ\u0B92\vZ\x05Z\u0B94\nZ\x03[\x03[\x05[\u0B98\n[\x03[\x05[\u0B9B" + - "\n[\x03[\x03[\x03[\x03[\x03[\x03[\x05[\u0BA3\n[\x03[\x03[\x03[\x03[\x05" + - "[\u0BA9\n[\x03[\x03[\x03[\x03[\x03[\x07[\u0BB0\n[\f[\x0E[\u0BB3\v[\x05" + - "[\u0BB5\n[\x03\\\x03\\\x05\\\u0BB9\n\\\x03\\\x03\\\x05\\\u0BBD\n\\\x03" + - "\\\x03\\\x06\\\u0BC1\n\\\r\\\x0E\\\u0BC2\x03\\\x03\\\x05\\\u0BC7\n\\\x03" + - "\\\x03\\\x05\\\u0BCB\n\\\x05\\\u0BCD\n\\\x03\\\x05\\\u0BD0\n\\\x03\\\x05" + - "\\\u0BD3\n\\\x03\\\x05\\\u0BD6\n\\\x03\\\x03\\\x06\\\u0BDA\n\\\r\\\x0E" + - "\\\u0BDB\x03\\\x03\\\x05\\\u0BE0\n\\\x03\\\x05\\\u0BE3\n\\\x03\\\x05\\" + - "\u0BE6\n\\\x03\\\x05\\\u0BE9\n\\\x03\\\x05\\\u0BEC\n\\\x05\\\u0BEE\n\\" + - "\x03]\x03]\x05]\u0BF2\n]\x03^\x03^\x03^\x03^\x05^\u0BF8\n^\x03^\x03^\x03" + - "^\x03^\x05^\u0BFE\n^\x03^\x07^\u0C01\n^\f^\x0E^\u0C04\v^\x05^\u0C06\n" + - "^\x03_\x03_\x03_\x03_\x05_\u0C0C\n_\x03`\x03`\x05`\u0C10\n`\x03a\x03a" + - "\x03a\x03a\x03a\x03a\x05a\u0C18\na\x03b\x03b\x05b\u0C1C\nb\x03b\x05b\u0C1F" + - "\nb\x03b\x05b\u0C22\nb\x03b\x03b\x03b\x03b\x03b\x03b\x03b\x05b\u0C2B\n" + - "b\x03b\x03b\x05b\u0C2F\nb\x03b\x05b\u0C32\nb\x03b\x03b\x05b\u0C36\nb\x03" + - "c\x03c\x05c\u0C3A\nc\x03c\x05c\u0C3D\nc\x03c\x05c\u0C40\nc\x03c\x03c\x03" + - "c\x05c\u0C45\nc\x03c\x03c\x03c\x03c\x05c\u0C4B\nc\x07c\u0C4D\nc\fc\x0E" + - "c\u0C50\vc\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x05c\u0C59\nc\x03c\x03c" + - "\x03c\x03c\x05c\u0C5F\nc\x07c\u0C61\nc\fc\x0Ec\u0C64\vc\x03c\x03c\x03" + - "c\x05c\u0C69\nc\x03c\x03c\x05c\u0C6D\nc\x03d\x03d\x03d\x03d\x05d\u0C73" + - "\nd\x03d\x05d\u0C76\nd\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03" + - "e\x05e\u0C82\ne\x03e\x03e\x05e\u0C86\ne\x03e\x03e\x05e\u0C8A\ne\x03f\x03" + - "f\x03f\x03f\x03f\x03f\x05f\u0C92\nf\x03f\x03f\x05f\u0C96\nf\x03g\x03g" + - "\x03g\x03g\x03h\x03h\x05h\u0C9E\nh\x03h\x05h\u0CA1\nh\x03h\x03h\x05h\u0CA5" + - "\nh\x03h\x05h\u0CA8\nh\x03h\x03h\x03h\x03h\x07h\u0CAE\nh\fh\x0Eh\u0CB1" + - "\vh\x03h\x03h\x05h\u0CB5\nh\x03h\x05h\u0CB8\nh\x03h\x05h\u0CBB\nh\x03" + - "i\x03i\x05i\u0CBF\ni\x03i\x05i\u0CC2\ni\x03i\x03i\x03i\x03i\x03i\x07i" + - "\u0CC9\ni\fi\x0Ei\u0CCC\vi\x03i\x03i\x05i\u0CD0\ni\x03j\x03j\x03j\x03" + - "j\x03j\x07j\u0CD7\nj\fj\x0Ej\u0CDA\vj\x03k\x03k\x05k\u0CDE\nk\x03l\x03" + - "l\x03l\x07l\u0CE3\nl\fl\x0El\u0CE6\vl\x03m\x03m\x07m\u0CEA\nm\fm\x0Em" + - "\u0CED\vm\x03m\x03m\x03m\x07m\u0CF2\nm\fm\x0Em\u0CF5\vm\x03m\x03m\x05" + - "m\u0CF9\nm\x03n\x03n\x03n\x03n\x03n\x03n\x05n\u0D01\nn\x03n\x05n\u0D04" + - "\nn\x03n\x05n\u0D07\nn\x03n\x03n\x03n\x07n\u0D0C\nn\fn\x0En\u0D0F\vn\x05" + - "n\u0D11\nn\x03n\x03n\x03n\x03n\x03n\x05n\u0D18\nn\x03n\x05n\u0D1B\nn\x03" + - "n\x03n\x03n\x03n\x03n\x03n\x05n\u0D23\nn\x03o\x03o\x03o\x03o\x05o\u0D29" + - "\no\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x05p\u0D34\np\x03q\x05" + - "q\u0D37\nq\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u0D42\nq" + - "\x03q\x03q\x03q\x03q\x05q\u0D48\nq\x03q\x03q\x05q\u0D4C\nq\x03q\x03q\x03" + - "q\x03q\x03q\x03q\x03q\x03q\x03q\x05q\u0D57\nq\x03q\x03q\x03q\x05q\u0D5C" + - "\nq\x05q\u0D5E\nq\x03q\x03q\x05q\u0D62\nq\x03r\x03r\x03r\x03r\x03r\x03" + - "r\x03r\x03r\x05r\u0D6C\nr\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x03s\x05" + - "s\u0D76\ns\x03t\x03t\x07t\u0D7A\nt\ft\x0Et\u0D7D\vt\x03t\x03t\x05t\u0D81" + - "\nt\x03t\x05t\u0D84\nt\x03t\x05t\u0D87\nt\x03t\x05t\u0D8A\nt\x03t\x03" + - "t\x07t\u0D8E\nt\ft\x0Et\u0D91\vt\x03t\x03t\x05t\u0D95\nt\x03t\x05t\u0D98" + - "\nt\x03t\x05t\u0D9B\nt\x03t\x05t\u0D9E\nt\x05t\u0DA0\nt\x03u\x03u\x07" + - "u\u0DA4\nu\fu\x0Eu\u0DA7\vu\x03u\x03u\x05u\u0DAB\nu\x03u\x05u\u0DAE\n" + - "u\x03u\x05u\u0DB1\nu\x03v\x03v\x05v\u0DB5\nv\x03v\x03v\x03w\x03w\x05w" + - "\u0DBB\nw\x03w\x03w\x05w\u0DBF\nw\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03" + - "x\x05x\u0DC9\nx\x03y\x03y\x05y\u0DCD\ny\x03y\x03y\x07y\u0DD1\ny\fy\x0E" + - "y\u0DD4\vy\x03z\x03z\x03z\x03z\x03z\x03z\x05z\u0DDC\nz\x03z\x05z\u0DDF" + - "\nz\x03z\x03z\x05z\u0DE3\nz\x03z\x05z\u0DE6\nz\x03z\x03z\x05z\u0DEA\n" + - "z\x03z\x03z\x05z\u0DEE\nz\x03z\x05z\u0DF1\nz\x05z\u0DF3\nz\x03{\x03{\x03" + - "{\x03{\x07{\u0DF9\n{\f{\x0E{\u0DFC\v{\x03{\x03{\x03{\x03{\x03{\x03{\x03" + - "{\x03{\x03{\x05{\u0E07\n{\x03{\x03{\x06{\u0E0B\n{\r{\x0E{\u0E0C\x05{\u0E0F" + - "\n{\x03{\x03{\x06{\u0E13\n{\r{\x0E{\u0E14\x05{\u0E17\n{\x05{\u0E19\n{" + - "\x03|\x03|\x03|\x03|\x05|\u0E1F\n|\x03|\x03|\x03|\x03|\x03|\x03|\x05|" + - "\u0E27\n|\x03}\x03}\x03}\x03}\x03}\x03}\x05}\u0E2F\n}\x03~\x03~\x03~\x03" + - "~\x05~\u0E35\n~\x03~\x03~\x03~\x03~\x03~\x07~\u0E3C\n~\f~\x0E~\u0E3F\v" + - "~\x03~\x03~\x05~\u0E43\n~\x05~\u0E45\n~\x03~\x03~\x05~\u0E49\n~\x03\x7F" + - "\x03\x7F\x05\x7F\u0E4D\n\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x05\x80\u0E53" + - "\n\x80\x03\x80\x03\x80\x03\x80\x03\x80\x03\x80\x05\x80\u0E5A\n\x80\x03" + - "\x81\x03\x81\x05\x81\u0E5E\n\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x82" + - "\x07\x82\u0E65\n\x82\f\x82\x0E\x82\u0E68\v\x82\x05\x82\u0E6A\n\x82\x03" + - "\x83\x03\x83\x05\x83\u0E6E\n\x83\x03\x84\x03\x84\x05\x84\u0E72\n\x84\x03" + - "\x84\x03\x84\x05\x84\u0E76\n\x84\x03\x84\x05\x84\u0E79\n\x84\x03\x84\x05" + - "\x84\u0E7C\n\x84\x03\x84\x05\x84\u0E7F\n\x84\x03\x85\x03\x85\x05\x85\u0E83" + - "\n\x85\x03\x85\x03\x85\x05\x85\u0E87\n\x85\x03\x85\x05\x85\u0E8A\n\x85" + - "\x03\x85\x05\x85\u0E8D\n\x85\x03\x85\x05\x85\u0E90\n\x85\x03\x86\x03\x86" + - "\x03\x86\x03\x87\x03\x87\x05\x87\u0E97\n\x87\x03\x87\x03\x87\x05\x87\u0E9B" + - "\n\x87\x03\x87\x03\x87\x03\x88\x03\x88\x03\x88\x03\x88\x03\x89\x03\x89" + - "\x03\x89\x03\x89\x03\x89\x07\x89\u0EA8\n\x89\f\x89\x0E\x89\u0EAB\v\x89" + - "\x03\x8A\x03\x8A\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8C" + - "\x03\x8C\x05\x8C\u0EB7\n\x8C\x03\x8C\x03\x8C\x03\x8C\x03\x8C\x07\x8C\u0EBD" + - "\n\x8C\f\x8C\x0E\x8C\u0EC0\v\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D" + - "\x03\x8D\x03\x8D\x05\x8D\u0EC9\n\x8D\x03\x8E\x03\x8E\x05\x8E\u0ECD\n\x8E" + - "\x03\x8E\x05\x8E\u0ED0\n\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F\x05\x8F\u0ED6" + - "\n\x8F\x03\x8F\x05\x8F\u0ED9\n\x8F\x03\x8F\x05\x8F\u0EDC\n\x8F\x03\x90" + - "\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x05\x90\u0EE5\n\x90\x03" + - "\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x05\x91\u0EEE\n\x91" + - "\x03\x92\x03\x92\x03\x92\x03\x92\x03\x92\x03\x92\x07\x92\u0EF6\n\x92\f" + - "\x92\x0E\x92\u0EF9\v\x92\x03\x92\x05\x92\u0EFC\n\x92\x03\x93\x03\x93\x03" + - "\x93\x03\x93\x03\x93\x03\x93\x07\x93\u0F04\n\x93\f\x93\x0E\x93\u0F07\v" + - "\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x05\x94\u0F10" + - "\n\x94\x03\x95\x03\x95\x03\x95\x03\x96\x03\x96\x03\x96\x05\x96\u0F18\n" + - "\x96\x03\x96\x05\x96\u0F1B\n\x96\x03\x97\x03\x97\x03\x97\x03\x97\x03\x97" + - "\x07\x97\u0F22\n\x97\f\x97\x0E\x97\u0F25\v\x97\x05\x97\u0F27\n\x97\x03" + - "\x97\x03\x97\x05\x97\u0F2B\n\x97\x03\x97\x07\x97\u0F2E\n\x97\f\x97\x0E" + - "\x97\u0F31\v\x97\x03\x97\x05\x97\u0F34\n\x97\x03\x98\x03\x98\x03\x98\x03" + - "\x98\x03\x98\x07\x98\u0F3B\n\x98\f\x98\x0E\x98\u0F3E\v\x98\x05\x98\u0F40" + - "\n\x98\x03\x99\x03\x99\x03\x99\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\x9B" + - "\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B" + - "\x03\x9B\x07\x9B\u0F5D\n\x9B\f\x9B\x0E\x9B\u0F60\v\x9B\x05\x9B\u0F62\n" + - "\x9B\x03\x9B\x05\x9B\u0F65\n\x9B\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9E" + - "\x03\x9E\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0" + - "\x03\xA0\x03\xA0\x07\xA0\u0F9B\n\xA0\f\xA0\x0E\xA0\u0F9E\v\xA0\x03\xA0" + - "\x03\xA0\x05\xA0\u0FA2\n\xA0\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03" + - "\xA1\x03\xA2\x03\xA2\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03" + - "\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03\xA3\x03" + - "\xA3\x03\xA3\x03\xA3\x05\xA3\u0FBE\n\xA3\x03\xA4\x03\xA4\x03\xA4\x03\xA4" + - "\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x05\xA4" + - "\u0FCC\n\xA4\x03\xA5\x03\xA5\x03\xA5\x07\xA5\u0FD1\n\xA5\f\xA5\x0E\xA5" + - "\u0FD4\v\xA5\x03\xA5\x05\xA5\u0FD7\n\xA5\x03\xA6\x03\xA6\x03\xA6\x03\xA6" + - "\x05\xA6\u0FDD\n\xA6\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x05" + - "\xA7\u0FE5\n\xA7\x05\xA7\u0FE7\n\xA7\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03" + - "\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x05\xA9\u0FF2\n\xA9\x03\xAA\x03\xAA" + - "\x03\xAA\x03\xAA\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x05\xAB\u0FFC\n\xAB\x03" + - "\xAC\x03\xAC\x03\xAC\x03\xAC\x03\xAC\x05\xAC\u1003\n\xAC\x03\xAD\x03\xAD" + - "\x03\xAD\x03\xAD\x05\xAD\u1009\n\xAD\x03\xAE\x03\xAE\x03\xAE\x03\xAE\x03" + - "\xAF\x03\xAF\x05\xAF\u1011\n\xAF\x03\xB0\x03\xB0\x03\xB0\x05\xB0\u1016" + - "\n\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x07\xB0\u101C\n\xB0\f\xB0\x0E\xB0" + - "\u101F\v\xB0\x03\xB0\x03\xB0\x03\xB0\x07\xB0\u1024\n\xB0\f\xB0\x0E\xB0" + - "\u1027\v\xB0\x03\xB0\x03\xB0\x03\xB0\x07\xB0\u102C\n\xB0\f\xB0\x0E\xB0" + - "\u102F\v\xB0\x03\xB0\x03\xB0\x03\xB0\x07\xB0\u1034\n\xB0\f\xB0\x0E\xB0" + - "\u1037\v\xB0\x03\xB0\x07\xB0\u103A\n\xB0\f\xB0\x0E\xB0\u103D\v\xB0\x05" + - "\xB0\u103F\n\xB0\x03\xB0\x03\xB0\x05\xB0\u1043\n\xB0\x03\xB1\x03\xB1\x03" + - "\xB1\x05\xB1\u1048\n\xB1\x03\xB1\x06\xB1\u104B\n\xB1\r\xB1\x0E\xB1\u104C" + - "\x03\xB1\x03\xB1\x06\xB1\u1051\n\xB1\r\xB1\x0E\xB1\u1052\x05\xB1\u1055" + - "\n\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x06\xB2" + - "\u105E\n\xB2\r\xB2\x0E\xB2\u105F\x03\xB2\x07\xB2\u1063\n\xB2\f\xB2\x0E" + - "\xB2\u1066\v\xB2\x03\xB2\x03\xB2\x06\xB2\u106A\n\xB2\r\xB2\x0E\xB2\u106B" + - "\x05\xB2\u106E\n\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB3\x03\xB3\x03\xB3\x03" + - "\xB4\x03\xB4\x03\xB4\x03\xB5\x03\xB5\x03\xB5\x05\xB5\u107C\n\xB5\x03\xB5" + - "\x03\xB5\x06\xB5\u1080\n\xB5\r\xB5\x0E\xB5\u1081\x03\xB5\x03\xB5\x03\xB5" + - "\x05\xB5\u1087\n\xB5\x03\xB6\x03\xB6\x03\xB6\x05\xB6\u108C\n\xB6\x03\xB6" + - "\x03\xB6\x06\xB6\u1090\n\xB6\r\xB6\x0E\xB6\u1091\x03\xB6\x03\xB6\x03\xB6" + - "\x03\xB6\x03\xB6\x05\xB6\u1099\n\xB6\x03\xB7\x03\xB7\x03\xB7\x03\xB8\x03" + - "\xB8\x03\xB8\x05\xB8\u10A1\n\xB8\x03\xB8\x03\xB8\x03\xB8\x03\xB8\x06\xB8" + - "\u10A7\n\xB8\r\xB8\x0E\xB8\u10A8\x03\xB8\x03\xB8\x03\xB8\x05\xB8\u10AE" + - "\n\xB8\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x05\xB9\u10B4\n\xB9\x03\xB9\x05" + - "\xB9\u10B7\n\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x05\xB9" + - "\u10BF\n\xB9\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x05\xBA\u10C6\n\xBA" + - "\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x05\xBB\u10CF" + - "\n\xBB\x03\xBB\x05\xBB\u10D2\n\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\xBD\x07" + - "\xBD\u10E1\n\xBD\f\xBD\x0E\xBD\u10E4\v\xBD\x03\xBD\x03\xBD\x03\xBE\x03" + - "\xBE\x03\xBE\x05\xBE\u10EB\n\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE" + - "\x03\xBE\x05\xBE\u10F3\n\xBE\x03\xBF\x03\xBF\x05\xBF\u10F7\n\xBF\x03\xBF" + - "\x03\xBF\x03\xC0\x03\xC0\x03\xC0\x05\xC0\u10FE\n\xC0\x03\xC0\x03\xC0\x06" + - "\xC0\u1102\n\xC0\r\xC0\x0E\xC0\u1103\x03\xC1\x03\xC1\x03\xC1\x03\xC1\x06" + - "\xC1\u110A\n\xC1\r\xC1\x0E\xC1\u110B\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03" + - "\xC2\x07\xC2\u1113\n\xC2\f\xC2\x0E\xC2\u1116\v\xC2\x03\xC2\x03\xC2\x03" + - "\xC2\x05\xC2\u111B\n\xC2\x03\xC2\x03\xC2\x03\xC2\x07\xC2\u1120\n\xC2\f" + - "\xC2\x0E\xC2\u1123\v\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x05\xC2\u1129" + - "\n\xC2\x03\xC2\x07\xC2\u112C\n\xC2\f\xC2\x0E\xC2\u112F\v\xC2\x05\xC2\u1131" + - "\n\xC2\x05\xC2\u1133\n\xC2\x03\xC2\x03\xC2\x06\xC2\u1137\n\xC2\r\xC2\x0E" + - "\xC2\u1138\x05\xC2\u113B\n\xC2\x03\xC2\x03\xC2\x07\xC2\u113F\n\xC2\f\xC2" + - "\x0E\xC2\u1142\v\xC2\x05\xC2\u1144\n\xC2\x03\xC3\x03\xC3\x03\xC3\x03\xC3" + - "\x03\xC3\x07\xC3\u114B\n\xC3\f\xC3\x0E\xC3\u114E\v\xC3\x03\xC3\x03\xC3" + - "\x03\xC3\x05\xC3\u1153\n\xC3\x03\xC3\x03\xC3\x03\xC3\x07\xC3\u1158\n\xC3" + - "\f\xC3\x0E\xC3\u115B\v\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x05\xC3\u1161" + - "\n\xC3\x03\xC3\x07\xC3\u1164\n\xC3\f\xC3\x0E\xC3\u1167\v\xC3\x05\xC3\u1169" + - "\n\xC3\x05\xC3\u116B\n\xC3\x03\xC3\x03\xC3\x06\xC3\u116F\n\xC3\r\xC3\x0E" + - "\xC3\u1170\x05\xC3\u1173\n\xC3\x03\xC3\x03\xC3\x07\xC3\u1177\n\xC3\f\xC3" + - "\x0E\xC3\u117A\v\xC3\x05\xC3\u117C\n\xC3\x03\xC4\x03\xC4\x03\xC4\x05\xC4" + - "\u1181\n\xC4\x03\xC4\x03\xC4\x03\xC4\x07\xC4\u1186\n\xC4\f\xC4\x0E\xC4" + - "\u1189\v\xC4\x03\xC5\x03\xC5\x03\xC5\x03\xC5\x07\xC5\u118F\n\xC5\f\xC5" + - "\x0E\xC5\u1192\v\xC5\x03\xC5\x03\xC5\x05\xC5\u1196\n\xC5\x03\xC5\x03\xC5" + - "\x03\xC5\x03\xC5\x03\xC5\x07\xC5\u119D\n\xC5\f\xC5\x0E\xC5\u11A0\v\xC5" + - "\x03\xC5\x03\xC5\x03\xC5\x03\xC5\x05\xC5\u11A6\n\xC5\x03\xC5\x07\xC5\u11A9" + - "\n\xC5\f\xC5\x0E\xC5\u11AC\v\xC5\x05\xC5\u11AE\n\xC5\x05\xC5\u11B0\n\xC5" + - "\x03\xC5\x03\xC5\x03\xC5\x03\xC5\x07\xC5\u11B6\n\xC5\f\xC5\x0E\xC5\u11B9" + - "\v\xC5\x05\xC5\u11BB\n\xC5\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03" + - "\xC6\x03\xC6\x03\xC6\x07\xC6\u11C5\n\xC6\f\xC6\x0E\xC6\u11C8\v\xC6\x03" + - "\xC6\x03\xC6\x03\xC6\x05\xC6\u11CD\n\xC6\x03\xC7\x03\xC7\x03\xC7\x03\xC7" + - "\x03\xC7\x07\xC7\u11D4\n\xC7\f\xC7\x0E\xC7\u11D7\v\xC7\x03\xC8\x03\xC8" + - "\x03\xC8\x03\xC8\x07\xC8\u11DD\n\xC8\f\xC8\x0E\xC8\u11E0\v\xC8\x03\xC8" + - "\x03\xC8\x05\xC8\u11E4\n\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x07" + - "\xC8\u11EB\n\xC8\f\xC8\x0E\xC8\u11EE\v\xC8\x03\xC8\x03\xC8\x03\xC8\x05" + - "\xC8\u11F3\n\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8"; - private static readonly _serializedATNSegment2: string = - "\x03\xC8\x03\xC8\x03\xC8\x07\xC8\u11FC\n\xC8\f\xC8\x0E\xC8\u11FF\v\xC8" + - "\x05\xC8\u1201\n\xC8\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03" + - "\xC9\x03\xC9\x07\xC9\u120B\n\xC9\f\xC9\x0E\xC9\u120E\v\xC9\x03\xCA\x03" + - "\xCA\x03\xCA\x03\xCA\x05\xCA\u1214\n\xCA\x03\xCA\x03\xCA\x03\xCA\x05\xCA" + - "\u1219\n\xCA\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\x05\xCC\u1228\n\xCC\x03\xCC" + - "\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x05\xCC" + - "\u1233\n\xCC\x03\xCC\x05\xCC\u1236\n\xCC\x03\xCD\x03\xCD\x03\xCD\x03\xCD" + - "\x03\xCD\x03\xCD\x03\xCD\x03\xCD\x05\xCD\u1240\n\xCD\x03\xCE\x03\xCE\x03" + - "\xCE\x03\xCE\x03\xCE\x03\xCE\x03\xCE\x03\xCE\x05\xCE\u124A\n\xCE\x03\xCF" + - "\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x05\xCF\u1254" + - "\n\xCF\x03\xD0\x03\xD0\x03\xD0\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03\xD1" + - "\x05\xD1\u125E\n\xD1\x03\xD2\x03\xD2\x05\xD2\u1262\n\xD2\x03\xD2\x03\xD2" + - "\x05\xD2\u1266\n\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03" + - "\xD2\x03\xD2\x05\xD2\u1270\n\xD2\x03\xD2\x03\xD2\x03\xD2\x05\xD2\u1275" + - "\n\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2" + - "\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2" + - "\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2" + - "\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2" + - "\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2" + - "\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x05\xD2\u12A7\n\xD2\x03\xD3\x03\xD3\x03" + - "\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03" + - "\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x05\xD3\u12B9\n\xD3\x03\xD4\x03\xD4" + - "\x03\xD4\x03\xD4\x03\xD5\x03\xD5\x05\xD5\u12C1\n\xD5\x03\xD5\x03\xD5\x03" + - "\xD5\x03\xD6\x03\xD6\x03\xD6\x03\xD6\x07\xD6\u12CA\n\xD6\f\xD6\x0E\xD6" + - "\u12CD\v\xD6\x03\xD7\x03\xD7\x03\xD7\x03\xD7\x05\xD7\u12D3\n\xD7\x03\xD8" + - "\x03\xD8\x05\xD8\u12D7\n\xD8\x03\xD8\x03\xD8\x03\xD8\x03\xD9\x03\xD9\x05" + - "\xD9\u12DE\n\xD9\x03\xD9\x03\xD9\x03\xD9\x05\xD9\u12E3\n\xD9\x03\xD9\x05" + - "\xD9\u12E6\n\xD9\x03\xD9\x05\xD9\u12E9\n\xD9\x03\xDA\x03\xDA\x03\xDA\x03" + - "\xDA\x03\xDA\x03\xDA\x03\xDA\x05\xDA\u12F2\n\xDA\x03\xDB\x03\xDB\x05\xDB" + - "\u12F6\n\xDB\x03\xDB\x03\xDB\x03\xDB\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\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03" + - "\xDE\x07\xDE\u1312\n\xDE\f\xDE\x0E\xDE\u1315\v\xDE\x03\xDE\x03\xDE\x03" + - "\xDE\x03\xDE\x05\xDE\u131B\n\xDE\x03\xDE\x03\xDE\x05\xDE\u131F\n\xDE\x03" + - "\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x05\xDE\u1326\n\xDE\x03\xDE\x05\xDE" + - "\u1329\n\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03" + - "\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x07\xDE\u1337\n\xDE\f\xDE\x0E\xDE" + - "\u133A\v\xDE\x05\xDE\u133C\n\xDE\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF" + - "\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u1346\n\xDF\x03\xDF\x03\xDF\x05\xDF\u134A" + - "\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u1350\n\xDF\x03\xDF\x05" + - "\xDF\u1353\n\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u1358\n\xDF\x03\xDF\x03" + - "\xDF\x05\xDF\u135C\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF" + - "\u1363\n\xDF\x03\xDF\x05\xDF\u1366\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF" + - "\x05\xDF\u136C\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03" + - "\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03" + - "\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u1384\n\xDF" + - "\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF" + - "\x03\xDF\x03\xDF\x05\xDF\u1391\n\xDF\x03\xDF\x05\xDF\u1394\n\xDF\x03\xDF" + - "\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u139E" + - "\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u13A6\n" + - "\xDF\x03\xDF\x03\xDF\x05\xDF\u13AA\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF" + - "\x03\xDF\x05\xDF\u13B1\n\xDF\x03\xDF\x05\xDF\u13B4\n\xDF\x03\xDF\x03\xDF" + - "\x03\xDF\x03\xDF\x03\xDF\x07\xDF\u13BB\n\xDF\f\xDF\x0E\xDF\u13BE\v\xDF" + - "\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u13C3\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03" + - "\xDF\x05\xDF\u13C9\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF" + - "\x03\xDF\x03\xDF\x05\xDF\u13D3\n\xDF\x05\xDF\u13D5\n\xDF\x03\xE0\x03\xE0" + - "\x03\xE0\x03\xE0\x05\xE0\u13DB\n\xE0\x03\xE0\x05\xE0\u13DE\n\xE0\x03\xE0" + - "\x05\xE0\u13E1\n\xE0\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03" + - "\xE1\x03\xE1\x03\xE1\x03\xE1\x05\xE1\u13ED\n\xE1\x03\xE1\x05\xE1\u13F0" + - "\n\xE1\x03\xE2\x03\xE2\x03\xE2\x03\xE2\x05\xE2\u13F6\n\xE2\x03\xE3\x05" + - "\xE3\u13F9\n\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x05\xE3" + - "\u1401\n\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x05\xE3\u1409" + - "\n\xE3\x03\xE4\x03\xE4\x03\xE4\x03\xE4\x05\xE4\u140F\n\xE4\x03\xE4\x03" + - "\xE4\x05\xE4\u1413\n\xE4\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5" + - "\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x05\xE5\u1421\n\xE5\x03" + - "\xE6\x03\xE6\x03\xE6\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x07\xE7\u142B" + - "\n\xE7\f\xE7\x0E\xE7\u142E\v\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x05\xE7" + - "\u1434\n\xE7\x03\xE7\x05\xE7\u1437\n\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE8" + - "\x03\xE8\x05\xE8\u143E\n\xE8\x03\xE8\x03\xE8\x03\xE8\x07\xE8\u1443\n\xE8" + - "\f\xE8\x0E\xE8\u1446\v\xE8\x03\xE9\x03\xE9\x05\xE9\u144A\n\xE9\x03\xE9" + - "\x06\xE9\u144D\n\xE9\r\xE9\x0E\xE9\u144E\x03\xEA\x03\xEA\x03\xEA\x03\xEA" + - "\x03\xEA\x03\xEA\x03\xEA\x07\xEA\u1458\n\xEA\f\xEA\x0E\xEA\u145B\v\xEA" + - "\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEC\x03\xEC\x03\xED\x03\xED\x05\xED" + - "\u1465\n\xED\x03\xED\x03\xED\x03\xED\x03\xED\x05\xED\u146B\n\xED\x03\xEE" + - "\x03\xEE\x03\xEE\x05\xEE\u1470\n\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03" + - "\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x05\xEE\u147D\n\xEE" + - "\x05\xEE\u147F\n\xEE\x03\xEE\x03\xEE\x03\xEE\x05\xEE\u1484\n\xEE\x03\xEE" + - "\x03\xEE\x03\xEE\x05\xEE\u1489\n\xEE\x05\xEE\u148B\n\xEE\x03\xEF\x03\xEF" + - "\x03\xEF\x03\xEF\x03\xEF\x05\xEF\u1492\n\xEF\x03\xF0\x03\xF0\x03\xF0\x03" + - "\xF0\x03\xF0\x05\xF0\u1499\n\xF0\x03\xF0\x05\xF0\u149C\n\xF0\x03\xF0\x05" + - "\xF0\u149F\n\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x05\xF0\u14A5\n\xF0\x03" + - "\xF0\x03\xF0\x05\xF0\u14A9\n\xF0\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x05\xF1" + - "\u14AF\n\xF1\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x05\xF2\u14B5\n\xF2\x03\xF2" + - "\x03\xF2\x03\xF3\x03\xF3\x03\xF3\x03\xF4\x03\xF4\x03\xF4\x03\xF5\x03\xF5" + - "\x03\xF5\x05\xF5\u14C2\n\xF5\x03\xF5\x03\xF5\x03\xF5\x05\xF5\u14C7\n\xF5" + - "\x03\xF5\x03\xF5\x03\xF5\x03\xF5\x07\xF5\u14CD\n\xF5\f\xF5\x0E\xF5\u14D0" + - "\v\xF5\x05\xF5\u14D2\n\xF5\x03\xF6\x03\xF6\x03\xF6\x05\xF6\u14D7\n\xF6" + - "\x03\xF6\x03\xF6\x03\xF6\x05\xF6\u14DC\n\xF6\x03\xF6\x03\xF6\x03\xF6\x03" + - "\xF6\x07\xF6\u14E2\n\xF6\f\xF6\x0E\xF6\u14E5\v\xF6\x05\xF6\u14E7\n\xF6" + - "\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x05\xF7\u14ED\n\xF7\x03\xF8\x03\xF8\x05" + - "\xF8\u14F1\n\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8" + - "\x03\xF8\x03\xF8\x07\xF8\u14FC\n\xF8\f\xF8\x0E\xF8\u14FF\v\xF8\x03\xF8" + - "\x03\xF8\x03\xF8\x05\xF8\u1504\n\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03" + - "\xF8\x03\xF8\x03\xF8\x03\xF8\x07\xF8\u150E\n\xF8\f\xF8\x0E\xF8\u1511\v" + - "\xF8\x05\xF8\u1513\n\xF8\x03\xF9\x03\xF9\x03\xFA\x03\xFA\x03\xFA\x03\xFA" + - "\x03\xFA\x05\xFA\u151C\n\xFA\x03\xFA\x03\xFA\x03\xFA\x05\xFA\u1521\n\xFA" + - "\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x05\xFB\u1527\n\xFB\x03\xFC\x03\xFC\x03" + - "\xFD\x03\xFD\x03\xFD\x05\xFD\u152E\n\xFD\x05\xFD\u1530\n\xFD\x03\xFE\x03" + - "\xFE\x05\xFE\u1534\n\xFE\x03\xFE\x03\xFE\x03\xFE\x03\xFE\x05\xFE\u153A" + - "\n\xFE\x03\xFE\x05\xFE\u153D\n\xFE\x03\xFF\x03\xFF\x03\u0100\x03\u0100" + - "\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x05\u0101\u1547\n\u0101\x03\u0102" + - "\x03\u0102\x05\u0102\u154B\n\u0102\x03\u0103\x03\u0103\x03\u0104\x03\u0104" + - "\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104" + - "\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x06\u0104\u155D\n\u0104" + - "\r\u0104\x0E\u0104\u155E\x03\u0105\x03\u0105\x03\u0105\x03\u0105\x03\u0105" + - "\x05\u0105\u1566\n\u0105\x05\u0105\u1568\n\u0105\x03\u0106\x03\u0106\x03" + - "\u0106\x06\u0106\u156D\n\u0106\r\u0106\x0E\u0106\u156E\x05\u0106\u1571" + - "\n\u0106\x03\u0107\x03\u0107\x05\u0107\u1575\n\u0107\x03\u0108\x03\u0108" + - "\x03\u0108\x05\u0108\u157A\n\u0108\x03\u0109\x03\u0109\x03\u0109\x03\u0109" + - "\x03\u0109\x03\u0109\x03\u0109\x03\u0109\x03\u0109\x05\u0109\u1585\n\u0109" + - "\x03\u010A\x03\u010A\x03\u010A\x05\u010A\u158A\n\u010A\x03\u010B\x03\u010B" + - "\x03\u010C\x03\u010C\x05\u010C\u1590\n\u010C\x03\u010D\x05\u010D\u1593" + - "\n\u010D\x03\u010D\x03\u010D\x05\u010D\u1597\n\u010D\x03\u010D\x06\u010D" + - "\u159A\n\u010D\r\u010D\x0E\u010D\u159B\x03\u010D\x05\u010D\u159F\n\u010D" + - "\x03\u010D\x03\u010D\x05\u010D\u15A3\n\u010D\x03\u010D\x03\u010D\x05\u010D" + - "\u15A7\n\u010D\x05\u010D\u15A9\n\u010D\x03\u010E\x03\u010E\x03\u010F\x05" + - "\u010F\u15AE\n\u010F\x03\u010F\x03\u010F\x03\u0110\x05\u0110\u15B3\n\u0110" + - "\x03\u0110\x03\u0110\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111" + - "\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x05\u0111\u15C0\n\u0111\x03\u0111" + - "\x05\u0111\u15C3\n\u0111\x03\u0112\x03\u0112\x05\u0112\u15C7\n\u0112\x03" + - "\u0112\x05\u0112\u15CA\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112" + - "\u15CF\n\u0112\x03\u0112\x05\u0112\u15D2\n\u0112\x03\u0112\x03\u0112\x05" + - "\u0112\u15D6\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112\u15DB\n\u0112" + - "\x03\u0112\x05\u0112\u15DE\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112" + - "\u15E3\n\u0112\x03\u0112\x05\u0112\u15E6\n\u0112\x03\u0112\x03\u0112\x03" + - "\u0112\x03\u0112\x05\u0112\u15EC\n\u0112\x03\u0112\x05\u0112\u15EF\n\u0112" + - "\x03\u0112\x03\u0112\x05\u0112\u15F3\n\u0112\x03\u0112\x05\u0112\u15F6" + - "\n\u0112\x03\u0112\x05\u0112\u15F9\n\u0112\x03\u0112\x03\u0112\x05\u0112" + - "\u15FD\n\u0112\x03\u0112\x05\u0112\u1600\n\u0112\x03\u0112\x05\u0112\u1603" + - "\n\u0112\x03\u0112\x03\u0112\x05\u0112\u1607\n\u0112\x03\u0112\x05\u0112" + - "\u160A\n\u0112\x03\u0112\x05\u0112\u160D\n\u0112\x03\u0112\x05\u0112\u1610" + - "\n\u0112\x03\u0112\x03\u0112\x05\u0112\u1614\n\u0112\x03\u0112\x05\u0112" + - "\u1617\n\u0112\x03\u0112\x05\u0112\u161A\n\u0112\x03\u0112\x03\u0112\x03" + - "\u0112\x05\u0112\u161F\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112" + - "\u1624\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112\u1629\n\u0112\x03" + - "\u0112\x05\u0112\u162C\n\u0112\x03\u0112\x03\u0112\x03\u0112\x05\u0112" + - "\u1631\n\u0112\x03\u0112\x05\u0112\u1634\n\u0112\x03\u0112\x03\u0112\x03" + - "\u0112\x05\u0112\u1639\n\u0112\x03\u0112\x05\u0112\u163C\n\u0112\x03\u0112" + - "\x03\u0112\x05\u0112\u1640\n\u0112\x03\u0112\x03\u0112\x05\u0112\u1644" + - "\n\u0112\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x07\u0113\u164A\n\u0113" + - "\f\u0113\x0E\u0113\u164D\v\u0113\x03\u0113\x03\u0113\x03\u0114\x03\u0114" + - "\x05\u0114\u1653\n\u0114\x03\u0114\x03\u0114\x05\u0114\u1657\n\u0114\x03" + - "\u0114\x03\u0114\x03\u0114\x05\u0114\u165C\n\u0114\x03\u0114\x05\u0114" + - "\u165F\n\u0114\x03\u0114\x03\u0114\x03\u0114\x05\u0114\u1664\n\u0114\x03" + - "\u0114\x03\u0114\x05\u0114\u1668\n\u0114\x05\u0114\u166A\n\u0114\x03\u0115" + - "\x03\u0115\x03\u0115\x03\u0115\x03\u0116\x03\u0116\x03\u0116\x03\u0116" + - "\x03\u0116\x03\u0116\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x05\u0117" + - "\u167A\n\u0117\x03\u0117\x03\u0117\x03\u0118\x03\u0118\x03\u0118\x07\u0118" + - "\u1681\n\u0118\f\u0118\x0E\u0118\u1684\v\u0118\x03\u0119\x03\u0119\x03" + - "\u0119\x07\u0119\u1689\n\u0119\f\u0119\x0E\u0119\u168C\v\u0119\x03\u011A" + - "\x03\u011A\x03\u011A\x03\u011A\x07\u011A\u1692\n\u011A\f\u011A\x0E\u011A" + - "\u1695\v\u011A\x03\u011A\x03\u011A\x03\u011B\x03\u011B\x03\u011B\x07\u011B" + - "\u169C\n\u011B\f\u011B\x0E\u011B\u169F\v\u011B\x03\u011C\x03\u011C\x03" + - "\u011C\x07\u011C\u16A4\n\u011C\f\u011C\x0E\u011C\u16A7\v\u011C\x03\u011D" + - "\x03\u011D\x03\u011D\x07\u011D\u16AC\n\u011D\f\u011D\x0E\u011D\u16AF\v" + - "\u011D\x03\u011E\x03\u011E\x03\u011E\x07\u011E\u16B4\n\u011E\f\u011E\x0E" + - "\u011E\u16B7\v\u011E\x03\u011F\x03\u011F\x03\u011F\x07\u011F\u16BC\n\u011F" + - "\f\u011F\x0E\u011F\u16BF\v\u011F\x03\u0120\x03\u0120\x05\u0120\u16C3\n" + - "\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x05\u0120\u16CA" + - "\n\u0120\x05\u0120\u16CC\n\u0120\x03\u0121\x03\u0121\x03\u0121\x05\u0121" + - "\u16D1\n\u0121\x03\u0121\x05\u0121\u16D4\n\u0121\x03\u0121\x03\u0121\x03" + - "\u0121\x05\u0121\u16D9\n\u0121\x03\u0121\x05\u0121\u16DC\n\u0121\x03\u0122" + - "\x03\u0122\x05\u0122\u16E0\n\u0122\x03\u0123\x03\u0123\x03\u0123\x03\u0124" + - "\x03\u0124\x03\u0124\x03\u0124\x03\u0125\x03\u0125\x03\u0125\x03\u0125" + - "\x03\u0125\x05\u0125\u16EE\n\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125" + - "\x03\u0125\x05\u0125\u16F5\n\u0125\x03\u0125\x03\u0125\x03\u0125\x05\u0125" + - "\u16FA\n\u0125\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x06\u0126\u171A\n\u0126\r\u0126\x0E\u0126" + - "\u171B\x03\u0126\x03\u0126\x05\u0126\u1720\n\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x06\u0126\u1726\n\u0126\r\u0126\x0E\u0126\u1727\x03" + - "\u0126\x03\u0126\x05\u0126\u172C\n\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u1735\n\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u173D\n\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u1742\n\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u174A\n\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x05\u0126\u174F\n\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x05\u0126\u1754\n\u0126\x05\u0126\u1756\n\u0126\x03\u0126\x03\u0126\x03" + - "\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u175F\n\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u1764\n\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u176C\n\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x05\u0126\u1771\n\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u1779\n\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u1781\n\u0126\x03\u0126" + - "\x05\u0126\u1784\n\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x05\u0126\u178E\n\u0126\x03\u0126\x03\u0126" + - "\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126" + - "\x05\u0126\u1799\n\u0126\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127" + - "\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x07\u0128\u17A4\n\u0128\f\u0128" + - "\x0E\u0128\u17A7\v\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128\x03\u0128" + - "\x05\u0128\u17AE\n\u0128\x03\u0129\x03\u0129\x05\u0129\u17B2\n\u0129\x03" + - "\u012A\x03\u012A\x03\u012A\x05\u012A\u17B7\n\u012A\x03\u012A\x03\u012A" + - "\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x05\u012A\u17C0\n\u012A" + - "\x03\u012A\x05\u012A\u17C3\n\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A" + - "\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x05\u012A" + - "\u17CF\n\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A" + - "\x05\u012A\u17D7\n\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A" + - "\x03\u012A\x07\u012A\u17DF\n\u012A\f\u012A\x0E\u012A\u17E2\v\u012A\x05" + - "\u012A\u17E4\n\u012A\x03\u012A\x03\u012A\x05\u012A\u17E8\n\u012A\x03\u012A" + - "\x03\u012A\x05\u012A\u17EC\n\u012A\x03\u012B\x03\u012B\x03\u012B\x03\u012B" + - "\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B" + - "\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B" + - "\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x05\u012B\u1805\n\u012B" + - "\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012D\x03\u012D" + - "\x03\u012D\x03\u012D\x05\u012D\u1810\n\u012D\x03\u012D\x03\u012D\x03\u012D" + - "\x03\u012D\x03\u012D\x05\u012D\u1817\n\u012D\x07\u012D\u1819\n\u012D\f" + - "\u012D\x0E\u012D\u181C\v\u012D\x03\u012E\x03\u012E\x03\u012E\x03\u012E" + - "\x05\u012E\u1822\n\u012E\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F" + - "\x03\u012F\x05\u012F\u182A\n\u012F\x03\u012F\x03\u012F\x03\u012F\x05\u012F" + - "\u182F\n\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x07\u012F\u1835" + - "\n\u012F\f\u012F\x0E\u012F\u1838\v\u012F\x03\u0130\x03\u0130\x03\u0130" + - "\x05\u0130\u183D\n\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x03\u0130\x03\u0130\x05\u0130\u1847\n\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x03\u0130\x05\u0130\u1854\n\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x05\u0130\u185A\n\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x05\u0130\u1860\n\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x03\u0130\x05\u0130\u1870\n\u0130\x03\u0130\x03\u0130\x03\u0130" + - "\x03\u0130\x05\u0130\u1876\n\u0130\x07\u0130\u1878\n\u0130\f\u0130\x0E" + - "\u0130\u187B\v\u0130\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131" + - "\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131" + - "\x03\u0131\x03\u0131\x07\u0131\u188B\n\u0131\f\u0131\x0E\u0131\u188E\v" + - "\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03" + - "\u0131\x06\u0131\u1897\n\u0131\r\u0131\x0E\u0131\u1898\x03\u0131\x03\u0131" + - "\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131" + - "\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x05\u0131" + - "\u18AA\n\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131" + - "\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x07\u0131\u18B7\n\u0131" + - "\f\u0131\x0E\u0131\u18BA\v\u0131\x03\u0132\x03\u0132\x03\u0133\x03\u0133" + - "\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133" + - "\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x05\u0133\u18CC\n\u0133" + - "\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134" + - "\x05\u0134\u18D5\n\u0134\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135" + - "\x03\u0135\x03\u0135\x05\u0135\u18DE\n\u0135\x03\u0136\x03\u0136\x03\u0137" + - "\x03\u0137\x03\u0138\x03\u0138\x03\u0139\x03\u0139\x03\u013A\x03\u013A" + - "\x03\u013B\x03\u013B\x03\u013C\x03\u013C\x03\u013D\x03\u013D\x03\u013D" + - "\x02\x02\x05\u025C\u025E\u0260\u013E\x02\x02\x04\x02\x06\x02\b\x02\n\x02" + - "\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02" + - "\x1E\x02 \x02\"\x02$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x02" + - "8\x02:\x02<\x02>\x02@\x02B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02" + - "T\x02V\x02X\x02Z\x02\\\x02^\x02`\x02b\x02d\x02f\x02h\x02j\x02l\x02n\x02" + - "p\x02r\x02t\x02v\x02x\x02z\x02|\x02~\x02\x80\x02\x82\x02\x84\x02\x86\x02" + - "\x88\x02\x8A\x02\x8C\x02\x8E\x02\x90\x02\x92\x02\x94\x02\x96\x02\x98\x02" + - "\x9A\x02\x9C\x02\x9E\x02\xA0\x02\xA2\x02\xA4\x02\xA6\x02\xA8\x02\xAA\x02" + - "\xAC\x02\xAE\x02\xB0\x02\xB2\x02\xB4\x02\xB6\x02\xB8\x02\xBA\x02\xBC\x02" + - "\xBE\x02\xC0\x02\xC2\x02\xC4\x02\xC6\x02\xC8\x02\xCA\x02\xCC\x02\xCE\x02" + - "\xD0\x02\xD2\x02\xD4\x02\xD6\x02\xD8\x02\xDA\x02\xDC\x02\xDE\x02\xE0\x02" + - "\xE2\x02\xE4\x02\xE6\x02\xE8\x02\xEA\x02\xEC\x02\xEE\x02\xF0\x02\xF2\x02" + - "\xF4\x02\xF6\x02\xF8\x02\xFA\x02\xFC\x02\xFE\x02\u0100\x02\u0102\x02\u0104" + - "\x02\u0106\x02\u0108\x02\u010A\x02\u010C\x02\u010E\x02\u0110\x02\u0112" + - "\x02\u0114\x02\u0116\x02\u0118\x02\u011A\x02\u011C\x02\u011E\x02\u0120" + - "\x02\u0122\x02\u0124\x02\u0126\x02\u0128\x02\u012A\x02\u012C\x02\u012E" + - "\x02\u0130\x02\u0132\x02\u0134\x02\u0136\x02\u0138\x02\u013A\x02\u013C" + - "\x02\u013E\x02\u0140\x02\u0142\x02\u0144\x02\u0146\x02\u0148\x02\u014A" + - "\x02\u014C\x02\u014E\x02\u0150\x02\u0152\x02\u0154\x02\u0156\x02\u0158" + - "\x02\u015A\x02\u015C\x02\u015E\x02\u0160\x02\u0162\x02\u0164\x02\u0166" + - "\x02\u0168\x02\u016A\x02\u016C\x02\u016E\x02\u0170\x02\u0172\x02\u0174" + - "\x02\u0176\x02\u0178\x02\u017A\x02\u017C\x02\u017E\x02\u0180\x02\u0182" + - "\x02\u0184\x02\u0186\x02\u0188\x02\u018A\x02\u018C\x02\u018E\x02\u0190" + - "\x02\u0192\x02\u0194\x02\u0196\x02\u0198\x02\u019A\x02\u019C\x02\u019E" + - "\x02\u01A0\x02\u01A2\x02\u01A4\x02\u01A6\x02\u01A8\x02\u01AA\x02\u01AC" + - "\x02\u01AE\x02\u01B0\x02\u01B2\x02\u01B4\x02\u01B6\x02\u01B8\x02\u01BA" + - "\x02\u01BC\x02\u01BE\x02\u01C0\x02\u01C2\x02\u01C4\x02\u01C6\x02\u01C8" + - "\x02\u01CA\x02\u01CC\x02\u01CE\x02\u01D0\x02\u01D2\x02\u01D4\x02\u01D6" + - "\x02\u01D8\x02\u01DA\x02\u01DC\x02\u01DE\x02\u01E0\x02\u01E2\x02\u01E4" + - "\x02\u01E6\x02\u01E8\x02\u01EA\x02\u01EC\x02\u01EE\x02\u01F0\x02\u01F2" + - "\x02\u01F4\x02\u01F6\x02\u01F8\x02\u01FA\x02\u01FC\x02\u01FE\x02\u0200" + - "\x02\u0202\x02\u0204\x02\u0206\x02\u0208\x02\u020A\x02\u020C\x02\u020E" + - "\x02\u0210\x02\u0212\x02\u0214\x02\u0216\x02\u0218\x02\u021A\x02\u021C" + - "\x02\u021E\x02\u0220\x02\u0222\x02\u0224\x02\u0226\x02\u0228\x02\u022A" + - "\x02\u022C\x02\u022E\x02\u0230\x02\u0232\x02\u0234\x02\u0236\x02\u0238" + - "\x02\u023A\x02\u023C\x02\u023E\x02\u0240\x02\u0242\x02\u0244\x02\u0246" + - "\x02\u0248\x02\u024A\x02\u024C\x02\u024E\x02\u0250\x02\u0252\x02\u0254" + - "\x02\u0256\x02\u0258\x02\u025A\x02\u025C\x02\u025E\x02\u0260\x02\u0262" + - "\x02\u0264\x02\u0266\x02\u0268\x02\u026A\x02\u026C\x02\u026E\x02\u0270" + - "\x02\u0272\x02\u0274\x02\u0276\x02\u0278\x02\x02\x80\x04\x02%%\x89\x89" + - "\x04\x02\u01C5\u01C5\u01CA\u01CA\x05\x02@@\x90\x90\xA5\xA5\x05\x02((\u0142" + - "\u0142\u0181\u0181\x06\x02((\u0162\u0162\u01C4\u01C4\u020A\u020A\x04\x02" + - "\u01BB\u01BB\u040D\u040D\x04\x02HH\x81\x81\x04\x02\x0F\x0F\u0112\u0112" + - "\x05\x02**NN\xA8\xA8\x04\x02\u016F\u016F\u01DC\u01DC\x05\x02\u01B3\u01B3" + - "\u0230\u0230\u0237\u0237\x04\x02\u0149\u0149\u0186\u0186\x04\x02\u0124" + - "\u0124\u0194\u0194\x04\x02\u0122\u0122\u0178\u0178\x05\x02IIMMrr\x05\x02" + - "((\u0153\u0153\u016D\u016D\x05\x02((\u014F\u014F\u02AC\u02AC\x04\x02\u0224" + - "\u0224\u0245\u0245\x04\x02JJTT\x05\x02\u0171\u0171\u01D3\u01D3\u020C\u020C" + - "\x04\x02@@\x90\x90\x03\x02\u0128\u0129\x03\x02\u0403\u0404\x04\x02\u040D" + - "\u040D\u0415\u0415\x05\x02\u016C\u016C\u018F\u018F\u01C2\u01C2\x04\x02" + - "((\u0403\u0404\b\x02((\u0135\u0135\u0137\u0137\u0153\u0153\u016D\u016D" + - "\u01E9\u01E9\x03\x02\u0404\u0405\x04\x02\x07\x0711\x04\x02\u0185\u0185" + - "\u0246\u0246\x04\x02\r\r\x9F\x9F\x04\x02\xB0\xB0\u0249\u0249\x04\x02\x14" + - "\x14\x84\x84\x05\x02))FFaa\x04\x02aa\u0139\u0139\x04\x02\u0130\u0130\u0169" + - "\u0169\x04\x02]]\u0202\u0202\x04\x02))aa\x04\x02\b\b//\x04\x02\xAC\xAC" + - "\u0242\u0242\x06\x02\u016C\u016C\u018F\u018F\u01C1\u01C1\u01DF\u01DF\x04" + - "\x02\u016C\u016C\u01C1\u01C1\x04\x02\x0E\x0E++\x05\x02==HH\xAA\xAA\x04" + - "\x02!!LL\x04\x02YY\x87\x87\x04\x02\b\b/0\x03\x02\u0219\u021A\x04\x02\u0174" + - "\u0174\u0208\u0208\x04\x02\xD2\xD2\u0197\u0197\x07\x02bb\u019C\u019D\u019F" + - "\u019F\u01A3\u01AB\u01EB\u01EB\x06\x02\u0199\u019A\u019E\u019E\u01A0\u01A1" + - "\u01EC\u01EC\x05\x02cc\u0198\u0198\u01A2\u01A2\x04\x02\u0188\u0188\u021B" + - "\u021B\x04\x02\u0215\u0215\u0217\u0217\x04\x02\u011C\u011C\u021C\u021C" + - "\x04\x02SS\u01FA\u01FA\x04\x0211\u0147\u0147\x05\x02\x1E\x1E88\xA3\xA3" + - "\x05\x02ww\x9C\x9C\u0172\u0172\x04\x02__\xA6\xA6\x04\x02\u012C\u012C\u020D" + - "\u020D\x04\x02&&\u0244\u0244\x04\x02ii\u0194\u0194\x04\x02\u0165\u0165" + - "\u01E5\u01E5\x06\x02\xBE\xBE\xC0\xC0\xC6\xC6\u0225\u0225\x04\x02\u03E4" + - "\u03E4\u03F5\u03F5\x04\x02\u011D\u011D\u01ED\u01ED\x04\x02??II\b\x02w" + - "w\x9C\x9C\xA1\xA1\u015E\u015E\u0172\u0172\u0244\u0244\x04\x02\u01BA\u01BA" + - "\u0221\u0221\x04\x02\u015B\u015B\u0248\u0248\x04\x02ww\u0172\u0172\x05" + - "\x02JJ"; - private static readonly _serializedATNSegment3: string = - "UU\u017F\u017F\x05\x02\u0174\u0174\u0194\u0194\u0208\u0208\x04\x02\u0221" + - "\u0221\u0243\u0243\x04\x02\u013A\u013A\u01E4\u01E4\b\x02\xD2\xD2\u0158" + - "\u0158\u015A\u015A\u0173\u0173\u01EA\u01EA\u020E\u020E\x04\x02+,99\x05" + - "\x02\u0165\u0165\u01D5\u01D5\u0308\u0308\x04\x02\u018C\u018C\u0232\u0232" + - "\f\x02\u012B\u012B\u0132\u0132\u013C\u013E\u0144\u0144\u01B4\u01B4\u01BC" + - "\u01BC\u0226\u0226\u022D\u022D\u02D8\u02D8\u037E\u037E\x04\x02\"\"\x99" + - "\x99\x04\x02kk\u0376\u0376\r\x02\u012B\u012B\u0132\u0132\u013C\u013E\u0144" + - "\u0144\u01B4\u01B4\u01BC\u01BC\u01FB\u01FB\u0226\u0226\u022D\u022D\u02D8" + - "\u02D8\u037E\u037E\x05\x02\u040D\u040D\u0415\u0415\u0417\u0417\x03\x02" + - "\u0418\u0419\x05\x02\u02A7\u02B2\u040D\u040D\u0415\u0416\x04\x02\u0403" + - "\u0405\u040E\u040E\x04\x02::\xA2\xA2\x04\x02jj\u0411\u0411\x07\x02\x18" + - "\x18\xCE\xD0\xD7\xD7\xD9\xDC\u01BF\u01BF\x04\x02\x18\x18\xCF\xCF\x04\x02" + - "\x18\x18\xCE\xCE\x03\x02\xB4\xBF\x04\x02\xA7\xA7\u020B\u020B\x04\x02\xC3" + - "\xC8\u016D\u016D\x07\x02\xC9\xC9\xD4\xD6\xD8\xD8\xDF\xDF\u0120\u0121\x05" + - "\x02\xCA\xCD\xD2\xD3\u011E\u011E\x04\x02\x8C\x8C\xDD\xDD\x04\x02\u018C" + - "\u018C\u02B7\u02BF\x04\x02\xD2\xD2\u01BF\u01BF\x05\x02\xC9\xCA\xCC\xCC" + - "\u018C\u018C\x04\x02\xFF\u0100\u0106\u0106\x04\x02##\xFD\u0100\x03\x02" + - "\u0109\u010A\x05\x02\x11\x11WW\xA0\xA0\x04\x02\xCE\xCE\xD2\xD2\x04\x02" + - "\xC9\xCA\xCC\xCC\x05\x02\x0E\x0E++\u0374\u0374\x05\x02\xED\xED\xF3\xF4" + - "\xF9\xF9\x05\x02\xEE\xF0\xF5\xF8\xFA\xFC\x04\x02\u01C8\u01C8\u01D6\u01D6" + - "\x04\x02hh\u03F8\u03F8\x05\x02::\xA2\xA2\u023B\u023B\x04\x02}}\x88\x88" + - "\x05\x02\b\b\u0115\u0115\u0211\u0211\x06\x02hh\u03F0\u03F0\u03F2\u03F2" + - "\u03F8\u03F9\x03\x02\u03ED\u03F4\x03\x02\u027F\u02A6\x03\x02\u02B3\u02B6" + - "\x03\x02\u025C\u0264\x03\x02\u0254\u025B\x05\x02\xC9\xCD\xDA\xDA\xDD\xDD" + - "\x10\x02\"\"..kk\x99\x99\xDF\xDF\u0110\u0184\u0186\u0223\u0225\u0244\u0247" + - "\u024E\u0253\u0253\u0266\u027E\u02AC\u02AC\u02D8\u02D8\u037E\u037E\x12" + - "\x02%%YY\x87\x87\xC9\xCB\xCD\xCD\xEB\xEC\xF1\xF1\u0108\u0108\u0185\u0185" + - "\u0246\u0246\u0254\u025B\u0278\u0278\u02B7\u02B7\u02BA\u02D7\u02D9\u037D" + - "\u037F\u03E3\x02\u1D51\x02\u027A\x03\x02\x02\x02\x04\u027E\x03\x02\x02" + - "\x02\x06\u028F\x03\x02\x02\x02\b\u02A3\x03\x02\x02\x02\n\u02A5\x03\x02" + - "\x02\x02\f\u02CA\x03\x02\x02\x02\x0E\u02D6\x03\x02\x02\x02\x10\u02E1\x03" + - "\x02\x02\x02\x12\u02F2\x03\x02\x02\x02\x14\u02F7\x03\x02\x02\x02\x16\u0303" + - "\x03\x02\x02\x02\x18\u031E\x03\x02\x02\x02\x1A\u0327\x03\x02\x02\x02\x1C" + - "\u0329\x03\x02\x02\x02\x1E\u0335\x03\x02\x02\x02 \u0353\x03\x02\x02\x02" + - "\"\u0377\x03\x02\x02\x02$\u03AA\x03\x02\x02\x02&\u03C4\x03\x02\x02\x02" + - "(\u03E2\x03\x02\x02\x02*\u0443\x03\x02\x02\x02,\u0445\x03\x02\x02\x02" + - ".\u0457\x03\x02\x02\x020\u0494\x03\x02\x02\x022\u04A7\x03\x02\x02\x02" + - "4\u04E2\x03\x02\x02\x026\u04E4\x03\x02\x02\x028\u0510\x03\x02\x02\x02" + - ":\u0516\x03\x02\x02\x02<\u0518\x03\x02\x02\x02>\u052D\x03\x02\x02\x02" + - "@\u0534\x03\x02\x02\x02B\u0536\x03\x02\x02\x02D\u0546\x03\x02\x02\x02" + - "F\u0549\x03\x02\x02\x02H\u054E\x03\x02\x02\x02J\u0568\x03\x02\x02\x02" + - "L\u0578\x03\x02\x02\x02N\u057A\x03\x02\x02\x02P\u058A\x03\x02\x02\x02" + - "R\u058C\x03\x02\x02\x02T\u05C6\x03\x02\x02\x02V\u060D\x03\x02\x02\x02" + - "X\u060F\x03\x02\x02\x02Z\u062B\x03\x02\x02\x02\\\u0633\x03\x02\x02\x02" + - "^\u0651\x03\x02\x02\x02`\u06E3\x03\x02\x02\x02b\u06E5\x03\x02\x02\x02" + - "d\u06E8\x03\x02\x02\x02f\u0732\x03\x02\x02\x02h\u0749\x03\x02\x02\x02" + - "j\u07CE\x03\x02\x02\x02l\u07D3\x03\x02\x02\x02n\u07D5\x03\x02\x02\x02" + - "p\u07DF\x03\x02\x02\x02r\u0814\x03\x02\x02\x02t\u0828\x03\x02\x02\x02" + - "v\u082A\x03\x02\x02\x02x\u084D\x03\x02\x02\x02z\u0856\x03\x02\x02\x02" + - "|\u085D\x03\x02\x02\x02~\u0874\x03\x02\x02\x02\x80\u087D\x03\x02\x02\x02" + - "\x82\u088C\x03\x02\x02\x02\x84\u08A2\x03\x02\x02\x02\x86\u08B6\x03\x02" + - "\x02\x02\x88\u0A41\x03\x02\x02\x02\x8A\u0A43\x03\x02\x02\x02\x8C\u0A4A" + - "\x03\x02\x02\x02\x8E\u0A51\x03\x02\x02\x02\x90\u0A68\x03\x02\x02\x02\x92" + - "\u0A70\x03\x02\x02\x02\x94\u0A77\x03\x02\x02\x02\x96\u0A7E\x03\x02\x02" + - "\x02\x98\u0A85\x03\x02\x02\x02\x9A\u0A91\x03\x02\x02\x02\x9C\u0A9B\x03" + - "\x02\x02\x02\x9E\u0AA2\x03\x02\x02\x02\xA0\u0AB2\x03\x02\x02\x02\xA2\u0ABC" + - "\x03\x02\x02\x02\xA4\u0AC0\x03\x02\x02\x02\xA6\u0AC6\x03\x02\x02\x02\xA8" + - "\u0AD2\x03\x02\x02\x02\xAA\u0AD4\x03\x02\x02\x02\xAC\u0ADB\x03\x02\x02" + - "\x02\xAE\u0ADD\x03\x02\x02\x02\xB0\u0B10\x03\x02\x02\x02\xB2\u0B5A\x03" + - "\x02\x02\x02\xB4\u0B95\x03\x02\x02\x02\xB6\u0BED\x03\x02\x02\x02\xB8\u0BF1" + - "\x03\x02\x02\x02\xBA\u0C05\x03\x02\x02\x02\xBC\u0C07\x03\x02\x02\x02\xBE" + - "\u0C0F\x03\x02\x02\x02\xC0\u0C17\x03\x02\x02\x02\xC2\u0C19\x03\x02\x02" + - "\x02\xC4\u0C37\x03\x02\x02\x02\xC6\u0C6E\x03\x02\x02\x02\xC8\u0C77\x03" + - "\x02\x02\x02\xCA\u0C8B\x03\x02\x02\x02\xCC\u0C97\x03\x02\x02\x02\xCE\u0C9B" + - "\x03\x02\x02\x02\xD0\u0CBC\x03\x02\x02\x02\xD2\u0CD1\x03\x02\x02\x02\xD4" + - "\u0CDB\x03\x02\x02\x02\xD6\u0CDF\x03\x02\x02\x02\xD8\u0CF8\x03\x02\x02" + - "\x02\xDA\u0D22\x03\x02\x02\x02\xDC\u0D24\x03\x02\x02\x02\xDE\u0D33\x03" + - "\x02\x02\x02\xE0\u0D61\x03\x02\x02\x02\xE2\u0D6B\x03\x02\x02\x02\xE4\u0D75" + - "\x03\x02\x02\x02\xE6\u0D9F\x03\x02\x02\x02\xE8\u0DA1\x03\x02\x02\x02\xEA" + - "\u0DB2\x03\x02\x02\x02\xEC\u0DB8\x03\x02\x02\x02\xEE\u0DC8\x03\x02\x02" + - "\x02\xF0\u0DCC\x03\x02\x02\x02\xF2\u0DF2\x03\x02\x02\x02\xF4\u0E18\x03" + - "\x02\x02\x02\xF6\u0E26\x03\x02\x02\x02\xF8\u0E2E\x03\x02\x02\x02\xFA\u0E30" + - "\x03\x02\x02\x02\xFC\u0E4A\x03\x02\x02\x02\xFE\u0E4E\x03\x02\x02\x02\u0100" + - "\u0E5D\x03\x02\x02\x02\u0102\u0E5F\x03\x02\x02\x02\u0104\u0E6B\x03\x02" + - "\x02\x02\u0106\u0E6F\x03\x02\x02\x02\u0108\u0E80\x03\x02\x02\x02\u010A" + - "\u0E91\x03\x02\x02\x02\u010C\u0E94\x03\x02\x02\x02\u010E\u0E9E\x03\x02" + - "\x02\x02\u0110\u0EA2\x03\x02\x02\x02\u0112\u0EAC\x03\x02\x02\x02\u0114" + - "\u0EAF\x03\x02\x02\x02\u0116\u0EB4\x03\x02\x02\x02\u0118\u0EC8\x03\x02" + - "\x02\x02\u011A\u0ECA\x03\x02\x02\x02\u011C\u0EDB\x03\x02\x02\x02\u011E" + - "\u0EE4\x03\x02\x02\x02\u0120\u0EED\x03\x02\x02\x02\u0122\u0EEF\x03\x02" + - "\x02\x02\u0124\u0EFD\x03\x02\x02\x02\u0126\u0F08\x03\x02\x02\x02\u0128" + - "\u0F11\x03\x02\x02\x02\u012A\u0F14\x03\x02\x02\x02\u012C\u0F1C\x03\x02" + - "\x02\x02\u012E\u0F35\x03\x02\x02\x02\u0130\u0F41\x03\x02\x02\x02\u0132" + - "\u0F44\x03\x02\x02\x02\u0134\u0F64\x03\x02\x02\x02\u0136\u0F66\x03\x02" + - "\x02\x02\u0138\u0F68\x03\x02\x02\x02\u013A\u0F6A\x03\x02\x02\x02\u013C" + - "\u0F6C\x03\x02\x02\x02\u013E\u0FA1\x03\x02\x02\x02\u0140\u0FA3\x03\x02" + - "\x02\x02\u0142\u0FA9\x03\x02\x02\x02\u0144\u0FBD\x03\x02\x02\x02\u0146" + - "\u0FCB\x03\x02\x02\x02\u0148\u0FD6\x03\x02\x02\x02\u014A\u0FD8\x03\x02" + - "\x02\x02\u014C\u0FDE\x03\x02\x02\x02\u014E\u0FE8\x03\x02\x02\x02\u0150" + - "\u0FEC\x03\x02\x02\x02\u0152\u0FF3\x03\x02\x02\x02\u0154\u0FF7\x03\x02" + - "\x02\x02\u0156\u0FFD\x03\x02\x02\x02\u0158\u1004\x03\x02\x02\x02\u015A" + - "\u100A\x03\x02\x02\x02\u015C\u1010\x03\x02\x02\x02\u015E\u1015\x03\x02" + - "\x02\x02\u0160\u1044\x03\x02\x02\x02\u0162\u1059\x03\x02\x02\x02\u0164" + - "\u1072\x03\x02\x02\x02\u0166\u1075\x03\x02\x02\x02\u0168\u107B\x03\x02" + - "\x02\x02\u016A\u108B\x03\x02\x02\x02\u016C\u109A\x03\x02\x02\x02\u016E" + - "\u10A0\x03\x02\x02\x02\u0170\u10BE\x03\x02\x02\x02\u0172\u10C0\x03\x02" + - "\x02\x02\u0174\u10C7\x03\x02\x02\x02\u0176\u10D3\x03\x02\x02\x02\u0178" + - "\u10D9\x03\x02\x02\x02\u017A\u10F2\x03\x02\x02\x02\u017C\u10F6\x03\x02" + - "\x02\x02\u017E\u10FA\x03\x02\x02\x02\u0180\u1105\x03\x02\x02\x02\u0182" + - "\u1143\x03\x02\x02\x02\u0184\u117B\x03\x02\x02\x02\u0186\u117D\x03\x02" + - "\x02\x02\u0188\u118A\x03\x02\x02\x02\u018A\u11BC\x03\x02\x02\x02\u018C" + - "\u11CE\x03\x02\x02\x02\u018E\u1200\x03\x02\x02\x02\u0190\u1202\x03\x02" + - "\x02\x02\u0192\u120F\x03\x02\x02\x02\u0194\u121A\x03\x02\x02\x02\u0196" + - "\u1235\x03\x02\x02\x02\u0198\u123F\x03\x02\x02\x02\u019A\u1249\x03\x02" + - "\x02\x02\u019C\u124B\x03\x02\x02\x02\u019E\u1255\x03\x02\x02\x02\u01A0" + - "\u1258\x03\x02\x02\x02\u01A2\u12A6\x03\x02\x02\x02\u01A4\u12B8\x03\x02" + - "\x02\x02\u01A6\u12BA\x03\x02\x02\x02\u01A8\u12BE\x03\x02\x02\x02\u01AA" + - "\u12C5\x03\x02\x02\x02\u01AC\u12CE\x03\x02\x02\x02\u01AE\u12D4\x03\x02" + - "\x02\x02\u01B0\u12DB\x03\x02\x02\x02\u01B2\u12F1\x03\x02\x02\x02\u01B4" + - "\u12F3\x03\x02\x02\x02\u01B6\u12FE\x03\x02\x02\x02\u01B8\u1304\x03\x02" + - "\x02\x02\u01BA\u133B\x03\x02\x02\x02\u01BC\u13D4\x03\x02\x02\x02\u01BE" + - "\u13E0\x03\x02\x02\x02\u01C0\u13EF\x03\x02\x02\x02\u01C2\u13F5\x03\x02" + - "\x02\x02\u01C4\u1408\x03\x02\x02\x02\u01C6\u1412\x03\x02\x02\x02\u01C8" + - "\u1420\x03\x02\x02\x02\u01CA\u1422\x03\x02\x02\x02\u01CC\u1425\x03\x02" + - "\x02\x02\u01CE\u143B\x03\x02\x02\x02\u01D0\u1447\x03\x02\x02\x02\u01D2" + - "\u1450\x03\x02\x02\x02\u01D4\u145C\x03\x02\x02\x02\u01D6\u1460\x03\x02" + - "\x02\x02\u01D8\u1462\x03\x02\x02\x02\u01DA\u148A\x03\x02\x02\x02\u01DC" + - "\u1491\x03\x02\x02\x02\u01DE\u1493\x03\x02\x02\x02\u01E0\u14AA\x03\x02" + - "\x02\x02\u01E2\u14B0\x03\x02\x02\x02\u01E4\u14B8\x03\x02\x02\x02\u01E6" + - "\u14BB\x03\x02\x02\x02\u01E8\u14BE\x03\x02\x02\x02\u01EA\u14D3\x03\x02" + - "\x02\x02\u01EC\u14E8\x03\x02\x02\x02\u01EE\u14EE\x03\x02\x02\x02\u01F0" + - "\u1514\x03\x02\x02\x02\u01F2\u1520\x03\x02\x02\x02\u01F4\u1522\x03\x02" + - "\x02\x02\u01F6\u1528\x03\x02\x02\x02\u01F8\u152A\x03\x02\x02\x02\u01FA" + - "\u1533\x03\x02\x02\x02\u01FC\u153E\x03\x02\x02\x02\u01FE\u1540\x03\x02" + - "\x02\x02\u0200\u1546\x03\x02\x02\x02\u0202\u154A\x03\x02\x02\x02\u0204" + - "\u154C\x03\x02\x02\x02\u0206\u154E\x03\x02\x02\x02\u0208\u1560\x03\x02" + - "\x02\x02\u020A\u1570\x03\x02\x02\x02\u020C\u1574\x03\x02\x02\x02\u020E" + - "\u1579\x03\x02\x02\x02\u0210\u1584\x03\x02\x02\x02\u0212\u1589\x03\x02" + - "\x02\x02\u0214\u158B\x03\x02\x02\x02\u0216\u158F\x03\x02\x02\x02\u0218" + - "\u15A8\x03\x02\x02\x02\u021A\u15AA\x03\x02\x02\x02\u021C\u15AD\x03\x02" + - "\x02\x02\u021E\u15B2\x03\x02\x02\x02\u0220\u15C2\x03\x02\x02\x02\u0222" + - "\u1643\x03\x02\x02\x02\u0224\u1645\x03\x02\x02\x02\u0226\u1669\x03\x02" + - "\x02\x02\u0228\u166B\x03\x02\x02\x02\u022A\u166F\x03\x02\x02\x02\u022C" + - "\u1675\x03\x02\x02\x02\u022E\u167D\x03\x02\x02\x02\u0230\u1685\x03\x02" + - "\x02\x02\u0232\u168D\x03\x02\x02\x02\u0234\u1698\x03\x02\x02\x02\u0236" + - "\u16A0\x03\x02\x02\x02\u0238\u16A8\x03\x02\x02\x02\u023A\u16B0\x03\x02" + - "\x02\x02\u023C\u16B8\x03\x02\x02\x02\u023E\u16CB\x03\x02\x02\x02\u0240" + - "\u16DB\x03\x02\x02\x02\u0242\u16DF\x03\x02\x02\x02\u0244\u16E1\x03\x02" + - "\x02\x02\u0246\u16E4\x03\x02\x02\x02\u0248\u16F9\x03\x02\x02\x02\u024A" + - "\u1798\x03\x02\x02\x02\u024C\u179A\x03\x02\x02\x02\u024E\u17AD\x03\x02" + - "\x02\x02\u0250\u17AF\x03\x02\x02\x02\u0252\u17EB\x03\x02\x02\x02\u0254" + - "\u1804\x03\x02\x02\x02\u0256\u1806\x03\x02\x02\x02\u0258\u180F\x03\x02" + - "\x02\x02\u025A\u1821\x03\x02\x02\x02\u025C\u182E\x03\x02\x02\x02\u025E" + - "\u1839\x03\x02\x02\x02\u0260\u18A9\x03\x02\x02\x02\u0262\u18BB\x03\x02" + - "\x02\x02\u0264\u18CB\x03\x02\x02\x02\u0266\u18D4\x03\x02\x02\x02\u0268" + - "\u18DD\x03\x02\x02\x02\u026A\u18DF\x03\x02\x02\x02\u026C\u18E1\x03\x02" + - "\x02\x02\u026E\u18E3\x03\x02\x02\x02\u0270\u18E5\x03\x02\x02\x02\u0272" + - "\u18E7\x03\x02\x02\x02\u0274\u18E9\x03\x02\x02\x02\u0276\u18EB\x03\x02" + - "\x02\x02\u0278\u18ED\x03\x02\x02\x02\u027A\u027B\x05\x04\x03\x02\u027B" + - "\u027C\x07\x02\x02\x03\u027C\x03\x03\x02\x02\x02\u027D\u027F\x05\x06\x04" + - "\x02\u027E\u027D\x03\x02\x02\x02\u027E\u027F\x03\x02\x02\x02\u027F\u0281" + - "\x03\x02\x02\x02\u0280\u0282\x07\u03F1\x02\x02\u0281\u0280\x03\x02\x02" + - "\x02\u0281\u0282\x03\x02\x02\x02\u0282\u0283\x03\x02\x02\x02\u0283\u0284" + - "\x07\x02\x02\x03\u0284\x05\x03\x02\x02\x02\u0285\u0287\x05\b\x05\x02\u0286" + - "\u0288\x07\u03F1\x02\x02\u0287\u0286\x03\x02\x02\x02\u0287\u0288\x03\x02" + - "\x02\x02\u0288\u028A\x03\x02\x02\x02\u0289\u028B\x07\u0401\x02\x02\u028A" + - "\u0289\x03\x02\x02\x02\u028A\u028B\x03\x02\x02\x02\u028B\u028E\x03\x02" + - "\x02\x02\u028C\u028E\x05\n\x06\x02\u028D\u0285\x03\x02\x02\x02\u028D\u028C" + - "\x03\x02\x02\x02\u028E\u0291\x03\x02\x02\x02\u028F\u028D\x03\x02\x02\x02" + - "\u028F\u0290\x03\x02\x02\x02\u0290\u029A\x03\x02\x02\x02\u0291\u028F\x03" + - "\x02\x02\x02\u0292\u0297\x05\b\x05\x02\u0293\u0295\x07\u03F1\x02\x02\u0294" + - "\u0293\x03\x02\x02\x02\u0294\u0295\x03\x02\x02\x02\u0295\u0296\x03\x02" + - "\x02\x02\u0296\u0298\x07\u0401\x02\x02\u0297\u0294\x03\x02\x02\x02\u0297" + - "\u0298\x03\x02\x02\x02\u0298\u029B\x03\x02\x02\x02\u0299\u029B\x05\n\x06" + - "\x02\u029A\u0292\x03\x02\x02\x02\u029A\u0299\x03\x02\x02\x02\u029B\x07" + - "\x03\x02\x02\x02\u029C\u02A4\x05\f\x07\x02\u029D\u02A4\x05\x0E\b\x02\u029E" + - "\u02A4\x05\x10\t\x02\u029F\u02A4\x05\x12\n\x02\u02A0\u02A4\x05\x14\v\x02" + - "\u02A1\u02A4\x05\x18\r\x02\u02A2\u02A4\x05\x1A\x0E\x02\u02A3\u029C\x03" + - "\x02\x02\x02\u02A3\u029D\x03\x02\x02\x02\u02A3\u029E\x03\x02\x02\x02\u02A3" + - "\u029F\x03\x02\x02\x02\u02A3\u02A0\x03\x02\x02\x02\u02A3\u02A1\x03\x02" + - "\x02\x02\u02A3\u02A2\x03\x02\x02\x02\u02A4\t\x03\x02\x02\x02\u02A5\u02A6" + - "\x07\u0401\x02\x02\u02A6\v\x03\x02\x02\x02\u02A7\u02CB\x05\x1C\x0F\x02" + - "\u02A8\u02CB\x05\x1E\x10\x02\u02A9\u02CB\x05 \x11\x02\u02AA\u02CB\x05" + - "\"\x12\x02\u02AB\u02CB\x05$\x13\x02\u02AC\u02CB\x05&\x14\x02\u02AD\u02CB" + - "\x05(\x15\x02\u02AE\u02CB\x05*\x16\x02\u02AF\u02CB\x05,\x17\x02\u02B0" + - "\u02CB\x05.\x18\x02\u02B1\u02CB\x050\x19\x02\u02B2\u02CB\x052\x1A\x02" + - "\u02B3\u02CB\x05t;\x02\u02B4\u02CB\x05v<\x02\u02B5\u02CB\x05x=\x02\u02B6" + - "\u02CB\x05z>\x02\u02B7\u02CB\x05|?\x02\u02B8\u02CB\x05~@\x02\u02B9\u02CB" + - "\x05\x80A\x02\u02BA\u02CB\x05\x82B\x02\u02BB\u02CB\x05\x84C\x02\u02BC" + - "\u02CB\x05\x86D\x02\u02BD\u02CB\x05\x8AF\x02\u02BE\u02CB\x05\x8CG\x02" + - "\u02BF\u02CB\x05\x8EH\x02\u02C0\u02CB\x05\x90I\x02\u02C1\u02CB\x05\x92" + - "J\x02\u02C2\u02CB\x05\x94K\x02\u02C3\u02CB\x05\x96L\x02\u02C4\u02CB\x05" + - "\x98M\x02\u02C5\u02CB\x05\x9AN\x02\u02C6\u02CB\x05\x9CO\x02\u02C7\u02CB" + - "\x05\x9EP\x02\u02C8\u02CB\x05\xA0Q\x02\u02C9\u02CB\x05\xA4S\x02\u02CA" + - "\u02A7\x03\x02\x02\x02\u02CA\u02A8\x03\x02\x02\x02\u02CA\u02A9\x03\x02" + - "\x02\x02\u02CA\u02AA\x03\x02\x02\x02\u02CA\u02AB\x03\x02\x02\x02\u02CA" + - "\u02AC\x03\x02\x02\x02\u02CA\u02AD\x03\x02\x02\x02\u02CA\u02AE\x03\x02" + - "\x02\x02\u02CA\u02AF\x03\x02\x02\x02\u02CA\u02B0\x03\x02\x02\x02\u02CA" + - "\u02B1\x03\x02\x02\x02\u02CA\u02B2\x03\x02\x02\x02\u02CA\u02B3\x03\x02" + - "\x02\x02\u02CA\u02B4\x03\x02\x02\x02\u02CA\u02B5\x03\x02\x02\x02\u02CA" + - "\u02B6\x03\x02\x02\x02\u02CA\u02B7\x03\x02\x02\x02\u02CA\u02B8\x03\x02" + - "\x02\x02\u02CA\u02B9\x03\x02\x02\x02\u02CA\u02BA\x03\x02\x02\x02\u02CA" + - "\u02BB\x03\x02\x02\x02\u02CA\u02BC\x03\x02\x02\x02\u02CA\u02BD\x03\x02" + - "\x02\x02\u02CA\u02BE\x03\x02\x02\x02\u02CA\u02BF\x03\x02\x02\x02\u02CA" + - "\u02C0\x03\x02\x02\x02\u02CA\u02C1\x03\x02\x02\x02\u02CA\u02C2\x03\x02" + - "\x02\x02\u02CA\u02C3\x03\x02\x02\x02\u02CA\u02C4\x03\x02\x02\x02\u02CA" + - "\u02C5\x03\x02\x02\x02\u02CA\u02C6\x03\x02\x02\x02\u02CA\u02C7\x03\x02" + - "\x02\x02\u02CA\u02C8\x03\x02\x02\x02\u02CA\u02C9\x03\x02\x02\x02\u02CB" + - "\r\x03\x02\x02\x02\u02CC\u02D7\x05\xB6\\\x02\u02CD\u02D7\x05\xAEX\x02" + - "\u02CE\u02D7\x05\xB8]\x02\u02CF\u02D7\x05\xA8U\x02\u02D0\u02D7\x05\xB4" + - "[\x02\u02D1\u02D7\x05\xA6T\x02\u02D2\u02D7\x05\xB0Y\x02\u02D3\u02D7\x05" + - "\xB2Z\x02\u02D4\u02D7\x05\xAAV\x02\u02D5\u02D7\x05\xACW\x02\u02D6\u02CC" + - "\x03\x02\x02\x02\u02D6\u02CD\x03\x02\x02\x02\u02D6\u02CE\x03\x02\x02\x02" + - "\u02D6\u02CF\x03\x02\x02\x02\u02D6\u02D0\x03\x02\x02\x02\u02D6\u02D1\x03" + - "\x02\x02\x02\u02D6\u02D2\x03\x02\x02\x02\u02D6\u02D3\x03\x02\x02\x02\u02D6" + - "\u02D4\x03\x02\x02\x02\u02D6\u02D5\x03\x02\x02\x02\u02D7\x0F\x03\x02\x02" + - "\x02\u02D8\u02E2\x05\u0102\x82\x02\u02D9\u02E2\x05\u0104\x83\x02\u02DA" + - "\u02E2\x05\u0106\x84\x02\u02DB\u02E2\x05\u0108\x85\x02\u02DC\u02E2\x05" + - "\u010A\x86\x02\u02DD\u02E2\x05\u010C\x87\x02\u02DE\u02E2\x05\u010E\x88" + - "\x02\u02DF\u02E2\x05\u0110\x89\x02\u02E0\u02E2\x05\u0112\x8A\x02\u02E1" + - "\u02D8\x03\x02\x02\x02\u02E1\u02D9\x03\x02\x02\x02\u02E1\u02DA\x03\x02" + - "\x02\x02\u02E1\u02DB\x03\x02\x02\x02\u02E1\u02DC\x03\x02\x02\x02\u02E1" + - "\u02DD\x03\x02\x02\x02\u02E1\u02DE\x03\x02\x02\x02\u02E1\u02DF\x03\x02" + - "\x02\x02\u02E1\u02E0\x03\x02\x02\x02\u02E2\x11\x03\x02\x02\x02\u02E3\u02F3" + - "\x05\u0122\x92\x02\u02E4\u02F3\x05\u0124\x93\x02\u02E5\u02F3\x05\u0126" + - "\x94\x02\u02E6\u02F3\x05\u0128\x95\x02\u02E7\u02F3\x05\u012A\x96\x02\u02E8" + - "\u02F3\x05\u012C\x97\x02\u02E9\u02F3\x05\u012E\x98\x02\u02EA\u02F3\x05" + - "\u0130\x99\x02\u02EB\u02F3\x05\u0132\x9A\x02\u02EC\u02F3\x05\u014A\xA6" + - "\x02\u02ED\u02F3\x05\u014C\xA7\x02\u02EE\u02F3\x05\u014E\xA8\x02\u02EF" + - "\u02F3\x05\u0150\xA9\x02\u02F0\u02F3\x05\u0152\xAA\x02\u02F1\u02F3\x05" + - "\u0154\xAB\x02\u02F2\u02E3\x03\x02\x02\x02\u02F2\u02E4\x03\x02\x02\x02" + - "\u02F2\u02E5\x03\x02\x02\x02\u02F2\u02E6\x03\x02\x02\x02\u02F2\u02E7\x03" + - "\x02\x02\x02\u02F2\u02E8\x03\x02\x02\x02\u02F2\u02E9\x03\x02\x02\x02\u02F2" + - "\u02EA\x03\x02\x02\x02\u02F2\u02EB\x03\x02\x02\x02\u02F2\u02EC\x03\x02" + - "\x02\x02\u02F2\u02ED\x03\x02\x02\x02\u02F2\u02EE\x03\x02\x02\x02\u02F2" + - "\u02EF\x03\x02\x02\x02\u02F2\u02F0\x03\x02\x02\x02\u02F2\u02F1\x03\x02" + - "\x02\x02\u02F3\x13\x03\x02\x02\x02\u02F4\u02F8\x05\u0156\xAC\x02\u02F5" + - "\u02F8\x05\u0158\xAD\x02\u02F6\u02F8\x05\u015A\xAE\x02\u02F7\u02F4\x03" + - "\x02\x02\x02\u02F7\u02F5\x03\x02\x02\x02\u02F7\u02F6\x03\x02\x02\x02\u02F8" + - "\x15\x03\x02\x02\x02\u02F9\u0304\x05\u015E\xB0\x02\u02FA\u0304\x05\u0160" + - "\xB1\x02\u02FB\u0304\x05\u0162\xB2\x02\u02FC\u0304\x05\u0166\xB4\x02\u02FD" + - "\u0304\x05\u0168\xB5\x02\u02FE\u0304\x05\u016A\xB6\x02\u02FF\u0304\x05" + - "\u016E\xB8\x02\u0300\u0304\x05\u0164\xB3\x02\u0301\u0304\x05\u016C\xB7" + - "\x02\u0302\u0304\x05\u0170\xB9\x02\u0303\u02F9\x03\x02\x02\x02\u0303\u02FA" + - "\x03\x02\x02\x02\u0303\u02FB\x03\x02\x02\x02\u0303\u02FC\x03\x02\x02\x02" + - "\u0303\u02FD\x03\x02\x02\x02\u0303\u02FE\x03\x02\x02\x02\u0303\u02FF\x03" + - "\x02\x02\x02\u0303\u0300\x03\x02\x02\x02\u0303\u0301\x03\x02\x02\x02\u0303" + - "\u0302\x03\x02\x02\x02\u0304\x17\x03\x02\x02\x02\u0305\u031F\x05\u0182" + - "\xC2\x02\u0306\u031F\x05\u0184\xC3\x02\u0307\u031F\x05\u0186\xC4\x02\u0308" + - "\u031F\x05\u0188\xC5\x02\u0309\u031F\x05\u018A\xC6\x02\u030A\u031F\x05" + - "\u018C\xC7\x02\u030B\u031F\x05\u018E\xC8\x02\u030C\u031F\x05\u0190\xC9" + - "\x02\u030D\u031F\x05\u01A8\xD5\x02\u030E\u031F\x05\u01AA\xD6\x02\u030F" + - "\u031F\x05\u01AC\xD7\x02\u0310\u031F\x05\u01AE\xD8\x02\u0311\u031F\x05" + - "\u01B0\xD9\x02\u0312\u031F\x05\u01B4\xDB\x02\u0313\u031F\x05\u01B6\xDC" + - "\x02\u0314\u031F\x05\u01B8\xDD\x02\u0315\u031F\x05\u01BA\xDE\x02\u0316" + - "\u031F\x05\u01BC\xDF\x02\u0317\u031F\x05\u01CA\xE6\x02\u0318\u031F\x05" + - "\u01CC\xE7\x02\u0319\u031F\x05\u01CE\xE8\x02\u031A\u031F\x05\u01D0\xE9" + - "\x02\u031B\u031F\x05\u01D2\xEA\x02\u031C\u031F\x05\u01D4\xEB\x02\u031D" + - "\u031F\x05\u01D6\xEC\x02\u031E\u0305\x03\x02\x02\x02\u031E\u0306\x03\x02" + - "\x02\x02\u031E\u0307\x03\x02\x02\x02\u031E\u0308\x03\x02\x02\x02\u031E" + - "\u0309\x03\x02\x02\x02\u031E\u030A\x03\x02\x02\x02\u031E\u030B\x03\x02" + - "\x02\x02\u031E\u030C\x03\x02\x02\x02\u031E\u030D\x03\x02\x02\x02\u031E" + - "\u030E\x03\x02\x02\x02\u031E\u030F\x03\x02\x02\x02\u031E\u0310\x03\x02" + - "\x02\x02\u031E\u0311\x03\x02\x02\x02\u031E\u0312\x03\x02\x02\x02\u031E" + - "\u0313\x03\x02\x02\x02\u031E\u0314\x03\x02\x02\x02\u031E\u0315\x03\x02" + - "\x02\x02\u031E\u0316\x03\x02\x02\x02\u031E\u0317\x03\x02\x02\x02\u031E" + - "\u0318\x03\x02\x02\x02\u031E\u0319\x03\x02\x02\x02\u031E\u031A\x03\x02" + - "\x02\x02\u031E\u031B\x03\x02\x02\x02\u031E\u031C\x03\x02\x02\x02\u031E" + - "\u031D\x03\x02\x02\x02\u031F\x19\x03\x02\x02\x02\u0320\u0328\x05\u01E0" + - "\xF1\x02\u0321\u0328\x05\u01E2\xF2\x02\u0322\u0328\x05\u01E4\xF3\x02\u0323" + - "\u0328\x05\u01E6\xF4\x02\u0324\u0328\x05\u01E8\xF5\x02\u0325\u0328\x05" + - "\u01EA\xF6\x02\u0326\u0328\x05\u01EE\xF8\x02\u0327\u0320\x03\x02\x02\x02" + - "\u0327\u0321\x03\x02\x02\x02\u0327\u0322\x03\x02\x02\x02\u0327\u0323\x03" + - "\x02\x02\x02\u0327\u0324\x03\x02\x02\x02\u0327\u0325\x03\x02\x02\x02\u0327" + - "\u0326\x03\x02\x02\x02\u0328\x1B\x03\x02\x02\x02\u0329\u032A\x07 \x02" + - "\x02\u032A\u032C\t\x02\x02\x02\u032B\u032D\x05\u0246\u0124\x02\u032C\u032B" + - "\x03\x02\x02\x02\u032C\u032D\x03\x02\x02\x02\u032D\u032E\x03\x02\x02\x02" + - "\u032E\u0332\x05\u020E\u0108\x02\u032F\u0331\x054\x1B\x02\u0330\u032F" + - "\x03\x02\x02\x02\u0331\u0334\x03\x02\x02\x02\u0332\u0330\x03\x02\x02\x02" + - "\u0332\u0333\x03\x02\x02\x02\u0333\x1D\x03\x02\x02\x02\u0334\u0332\x03" + - "\x02\x02\x02\u0335\u0337\x07 \x02\x02\u0336\u0338\x056\x1C\x02\u0337\u0336" + - "\x03\x02\x02\x02\u0337\u0338\x03\x02\x02\x02\u0338\u0339\x03\x02\x02\x02" + - "\u0339\u033B\x07\u015E\x02\x02\u033A\u033C\x05\u0246\u0124\x02\u033B\u033A" + - "\x03\x02\x02\x02\u033B\u033C\x03\x02\x02\x02\u033C\u033D\x03\x02\x02\x02" + - "\u033D\u033E\x05\u01F4\xFB\x02\u033E\u033F\x07l\x02\x02\u033F\u0340\x07" + - "\u0205\x02\x02\u0340\u0347\x058\x1D\x02\u0341\u0342\x07l\x02\x02\u0342" + - "\u0344\x07\u0136\x02\x02\u0343\u0345\x07h\x02\x02\u0344\u0343\x03\x02" + - "\x02\x02\u0344\u0345\x03\x02\x02\x02\u0345\u0346\x03\x02\x02\x02\u0346" + - "\u0348\x07\u01DE\x02\x02\u0347\u0341\x03\x02\x02\x02\u0347\u0348\x03\x02" + - "\x02\x02\u0348\u034A\x03\x02\x02\x02\u0349\u034B\x05@!\x02\u034A\u0349" + - "\x03\x02\x02\x02\u034A\u034B\x03\x02\x02\x02\u034B\u034E\x03\x02\x02\x02" + - "\u034C\u034D\x07\u0133\x02\x02\u034D\u034F\x07\u040D\x02\x02\u034E\u034C" + - "\x03\x02\x02\x02\u034E\u034F\x03\x02\x02\x02\u034F\u0350\x03\x02\x02\x02" + - "\u0350\u0351\x07\u0150\x02\x02\u0351\u0352\x05\u015C\xAF\x02\u0352\x1F" + - "\x03\x02\x02\x02\u0353\u0355\x07 \x02\x02\u0354\u0356\t\x03\x02\x02\u0355" + - "\u0354\x03\x02\x02\x02\u0355\u0356\x03\x02\x02\x02\u0356\u0358\x03\x02" + - "\x02\x02\u0357\u0359\t\x04\x02\x02\u0358\u0357\x03\x02\x02\x02\u0358\u0359" + - "\x03\x02\x02\x02\u0359\u035A\x03\x02\x02\x02\u035A\u035B\x07J\x02\x02" + - "\u035B\u035D\x05\u020E\u0108\x02\u035C\u035E\x05B\"\x02\u035D\u035C\x03" + - "\x02\x02\x02\u035D\u035E\x03\x02\x02\x02\u035E\u035F\x03\x02\x02\x02\u035F" + - "\u0360\x07l\x02\x02\u0360\u0361\x05\u01F6\xFC\x02\u0361\u0365\x05\u0232" + - "\u011A\x02\u0362\u0364\x05D#\x02\u0363\u0362\x03\x02\x02\x02\u0364\u0367" + - "\x03\x02\x02\x02\u0365\u0363\x03\x02\x02\x02\u0365\u0366\x03\x02\x02\x02" + - "\u0366\u0374\x03\x02\x02\x02\u0367\u0365\x03\x02\x02\x02\u0368\u036A\x07" + - "\u0114\x02\x02\u0369\u036B\x07\u03F5\x02\x02\u036A\u0369\x03\x02\x02\x02" + - "\u036A\u036B\x03\x02\x02\x02\u036B\u036C\x03\x02\x02\x02\u036C\u0373\t" + - "\x05\x02\x02\u036D\u036F\x07_\x02\x02\u036E\u0370\x07\u03F5\x02\x02\u036F" + - "\u036E\x03\x02\x02\x02\u036F\u0370\x03\x02\x02\x02\u0370\u0371\x03\x02" + - "\x02\x02\u0371\u0373\t\x06\x02\x02\u0372\u0368\x03\x02\x02\x02\u0372\u036D" + - "\x03\x02\x02\x02\u0373\u0376\x03\x02\x02\x02\u0374\u0372\x03\x02\x02\x02" + - "\u0374\u0375\x03\x02\x02\x02\u0375!\x03\x02\x02\x02\u0376\u0374\x03\x02" + - "\x02\x02\u0377\u0378\x07 \x02\x02\u0378\u0379\x07\u0195\x02\x02\u0379" + - "\u037A\x07D\x02\x02\u037A\u037B\x05\u020E\u0108\x02\u037B\u037C\x07\x07" + - "\x02\x02\u037C\u037D\x07\u0238\x02\x02\u037D\u0383\x07\u040D\x02\x02\u037E" + - "\u0380\x07\u0180\x02\x02\u037F\u0381\x07\u03F5\x02\x02\u0380\u037F\x03" + - "\x02\x02\x02\u0380\u0381\x03\x02\x02\x02\u0381\u0382\x03\x02\x02\x02\u0382" + - "\u0384\x05\u0216\u010C\x02\u0383\u037E\x03\x02\x02\x02\u0383\u0384\x03" + - "\x02\x02\x02\u0384\u038A\x03\x02\x02\x02\u0385\u0387\x07\u0239\x02\x02" + - "\u0386\u0388\x07\u03F5\x02\x02\u0387\u0386\x03\x02\x02\x02\u0387\u0388" + - "\x03\x02\x02\x02\u0388\u0389\x03\x02\x02\x02\u0389\u038B\x05\u0216\u010C" + - "\x02\u038A\u0385\x03\x02\x02\x02\u038A\u038B\x03\x02\x02\x02\u038B\u0391" + - "\x03\x02\x02\x02\u038C\u038E\x07\u01E8\x02\x02\u038D\u038F\x07\u03F5\x02" + - "\x02\u038E\u038D\x03\x02\x02\x02\u038E\u038F\x03\x02\x02\x02\u038F\u0390" + - "\x03\x02\x02\x02\u0390\u0392\x05\u0216\u010C\x02\u0391\u038C\x03\x02\x02" + - "\x02\u0391\u0392\x03\x02\x02\x02\u0392\u0398\x03\x02\x02\x02\u0393\u0395" + - "\x07\u01C3\x02\x02\u0394\u0396\x07\u03F5\x02\x02\u0395\u0394\x03\x02\x02" + - "\x02\u0395\u0396\x03\x02\x02\x02\u0396\u0397\x03\x02\x02\x02\u0397\u0399" + - "\x05\u020E\u0108\x02\u0398\u0393\x03\x02\x02\x02\u0398\u0399\x03\x02\x02" + - "\x02\u0399\u039B\x03\x02\x02\x02\u039A\u039C\x07\u0247\x02\x02\u039B\u039A" + - "\x03\x02\x02\x02\u039B\u039C\x03\x02\x02\x02\u039C\u03A2\x03\x02\x02\x02" + - "\u039D\u039F\x07\u0133\x02\x02\u039E\u03A0\x07\u03F5\x02\x02\u039F\u039E" + - "\x03\x02\x02\x02\u039F\u03A0\x03\x02\x02\x02\u03A0\u03A1\x03\x02\x02\x02" + - "\u03A1\u03A3\x07\u040D\x02\x02\u03A2\u039D\x03\x02\x02\x02\u03A2\u03A3"; - private static readonly _serializedATNSegment4: string = - "\x03\x02\x02\x02\u03A3\u03A4\x03\x02\x02\x02\u03A4\u03A6\x07\u0158\x02" + - "\x02\u03A5\u03A7\x07\u03F5\x02\x02\u03A6\u03A5\x03\x02\x02\x02\u03A6\u03A7" + - "\x03\x02\x02\x02\u03A7\u03A8\x03\x02\x02\x02\u03A8\u03A9\x05\u0204\u0103" + - "\x02\u03A9#\x03\x02\x02\x02\u03AA\u03AC\x07 \x02\x02\u03AB\u03AD\x056" + - "\x1C\x02\u03AC\u03AB\x03\x02\x02\x02\u03AC\u03AD\x03\x02\x02\x02\u03AD" + - "\u03AE\x03\x02\x02\x02\u03AE\u03AF\x07w\x02\x02\u03AF\u03B0\x05\u01F4" + - "\xFB\x02\u03B0\u03B2\x07\u03FE\x02\x02\u03B1\u03B3\x05F$\x02\u03B2\u03B1" + - "\x03\x02\x02\x02\u03B2\u03B3\x03\x02\x02\x02\u03B3\u03B8\x03\x02\x02\x02" + - "\u03B4\u03B5\x07\u0400\x02\x02\u03B5\u03B7\x05F$\x02\u03B6\u03B4\x03\x02" + - "\x02\x02\u03B7\u03BA\x03\x02\x02\x02\u03B8\u03B6\x03\x02\x02\x02\u03B8" + - "\u03B9\x03\x02\x02\x02\u03B9\u03BB\x03\x02\x02\x02\u03BA\u03B8\x03\x02" + - "\x02\x02\u03BB\u03BF\x07\u03FF\x02\x02\u03BC\u03BE\x05J&\x02\u03BD\u03BC" + - "\x03\x02\x02\x02\u03BE\u03C1\x03\x02\x02\x02\u03BF\u03BD\x03\x02\x02\x02" + - "\u03BF\u03C0\x03\x02\x02\x02\u03C0\u03C2\x03\x02\x02\x02\u03C1\u03BF\x03" + - "\x02\x02\x02\u03C2\u03C3\x05\u015C\xAF\x02\u03C3%\x03\x02\x02\x02\u03C4" + - "\u03C6\x07 \x02\x02\u03C5\u03C7\x056\x1C\x02\u03C6\u03C5\x03\x02\x02\x02" + - "\u03C6\u03C7\x03\x02\x02\x02\u03C7\u03C8\x03\x02\x02\x02\u03C8\u03C9\x07" + - "\u0172\x02\x02\u03C9\u03CA\x05\u01F4\xFB\x02\u03CA\u03CC\x07\u03FE\x02" + - "\x02\u03CB\u03CD\x05H%\x02\u03CC\u03CB\x03\x02\x02\x02\u03CC\u03CD\x03" + - "\x02\x02\x02\u03CD\u03D2\x03\x02\x02\x02\u03CE\u03CF\x07\u0400\x02\x02" + - "\u03CF\u03D1\x05H%\x02\u03D0\u03CE\x03\x02\x02\x02\u03D1\u03D4\x03\x02" + - "\x02\x02\u03D2\u03D0\x03\x02\x02\x02\u03D2\u03D3\x03\x02\x02\x02\u03D3" + - "\u03D5\x03\x02\x02\x02\u03D4\u03D2\x03\x02\x02\x02\u03D5\u03D6\x07\u03FF" + - "\x02\x02\u03D6\u03D7\x07\u01FC\x02\x02\u03D7\u03DB\x05\u0222\u0112\x02" + - "\u03D8\u03DA\x05J&\x02\u03D9\u03D8\x03\x02\x02\x02\u03DA\u03DD\x03\x02" + - "\x02\x02\u03DB\u03D9\x03\x02\x02\x02\u03DB\u03DC\x03\x02\x02\x02\u03DC" + - "\u03E0\x03\x02\x02\x02\u03DD\u03DB\x03\x02\x02\x02\u03DE\u03E1\x05\u015C" + - "\xAF\x02\u03DF\u03E1\x05\u016C\xB7\x02\u03E0\u03DE\x03\x02\x02\x02\u03E0" + - "\u03DF\x03\x02\x02\x02\u03E1\'\x03\x02\x02\x02\u03E2\u03E3\x07 \x02\x02" + - "\u03E3\u03E4\x07\u0207\x02\x02\u03E4\u03E5\x05\u020E\u0108\x02\u03E5\u03E6" + - "\x07>\x02\x02\u03E6\u03E7\x07\u0145\x02\x02\u03E7\u03E8\x07\u024B\x02" + - "\x02\u03E8\u03E9\t\x07\x02\x02\u03E9\u03EA\x07\u01CE\x02\x02\u03EA\u03EB" + - "\x07\u03FE\x02\x02\u03EB\u03F0\x05L\'\x02\u03EC\u03ED\x07\u0400\x02\x02" + - "\u03ED\u03EF\x05L\'\x02\u03EE\u03EC\x03\x02\x02\x02\u03EF\u03F2\x03\x02" + - "\x02\x02\u03F0\u03EE\x03\x02\x02\x02\u03F0\u03F1\x03\x02\x02\x02\u03F1" + - "\u03F3\x03\x02\x02\x02\u03F2\u03F0\x03\x02\x02\x02\u03F3\u03F4\x07\u03FF" + - "\x02\x02\u03F4)\x03\x02\x02\x02\u03F5\u03F7\x07 \x02\x02\u03F6\u03F8\x07" + - "\u022F\x02\x02\u03F7\u03F6\x03\x02\x02\x02\u03F7\u03F8\x03\x02\x02\x02" + - "\u03F8\u03F9\x03\x02\x02\x02\u03F9\u03FB\x07\x9C\x02\x02\u03FA\u03FC\x05" + - "\u0246\u0124\x02\u03FB\u03FA\x03\x02\x02\x02\u03FB\u03FC\x03\x02\x02\x02" + - "\u03FC\u03FD\x03\x02\x02\x02\u03FD\u0405\x05\u01F6\xFC\x02\u03FE\u03FF" + - "\x07Z\x02\x02\u03FF\u0406\x05\u01F6\xFC\x02\u0400\u0401\x07\u03FE\x02" + - "\x02\u0401\u0402\x07Z\x02\x02\u0402\u0403\x05\u01F6\xFC\x02\u0403\u0404" + - "\x07\u03FF\x02\x02\u0404\u0406\x03\x02\x02\x02\u0405\u03FE\x03\x02\x02" + - "\x02\u0405\u0400\x03\x02\x02\x02\u0406\u0444\x03\x02\x02\x02\u0407\u0409" + - "\x07 \x02\x02\u0408\u040A\x07\u022F\x02\x02\u0409\u0408\x03\x02\x02\x02" + - "\u0409\u040A\x03\x02\x02\x02\u040A\u040B\x03\x02\x02\x02\u040B\u040D\x07" + - "\x9C\x02\x02\u040C\u040E\x05\u0246\u0124\x02\u040D\u040C\x03\x02\x02\x02" + - "\u040D\u040E\x03\x02\x02\x02\u040E\u040F\x03\x02\x02\x02\u040F\u0411\x05" + - "\u01F6\xFC\x02\u0410\u0412\x05N(\x02\u0411\u0410\x03\x02\x02\x02\u0411" + - "\u0412\x03\x02\x02\x02\u0412\u041D\x03\x02\x02\x02\u0413\u041A\x05`1\x02" + - "\u0414\u0416\x07\u0400\x02\x02\u0415\u0414\x03\x02\x02\x02\u0415\u0416" + - "\x03\x02\x02\x02\u0416\u0417\x03\x02\x02\x02\u0417\u0419\x05`1\x02\u0418" + - "\u0415\x03\x02\x02\x02\u0419\u041C\x03\x02\x02\x02\u041A\u0418\x03\x02" + - "\x02\x02\u041A\u041B\x03\x02\x02\x02\u041B\u041E\x03\x02\x02\x02\u041C" + - "\u041A\x03\x02\x02\x02\u041D\u0413\x03\x02\x02\x02\u041D\u041E\x03\x02" + - "\x02\x02\u041E\u0420\x03\x02\x02\x02\u041F\u0421\x05d3\x02\u0420\u041F" + - "\x03\x02\x02\x02\u0420\u0421\x03\x02\x02\x02\u0421\u0423\x03\x02\x02\x02" + - "\u0422\u0424\t\b\x02\x02\u0423\u0422\x03\x02\x02\x02\u0423\u0424\x03\x02" + - "\x02\x02\u0424\u0426\x03\x02\x02\x02\u0425\u0427\x07\r\x02\x02\u0426\u0425" + - "\x03\x02\x02\x02\u0426\u0427\x03\x02\x02\x02\u0427\u0428\x03\x02\x02\x02" + - "\u0428\u0429\x05\xB6\\\x02\u0429\u0444\x03\x02\x02\x02\u042A\u042C\x07" + - " \x02\x02\u042B\u042D\x07\u022F\x02\x02\u042C\u042B\x03\x02\x02\x02\u042C" + - "\u042D\x03\x02\x02\x02\u042D\u042E\x03\x02\x02\x02\u042E\u0430\x07\x9C" + - "\x02\x02\u042F\u0431\x05\u0246\u0124\x02\u0430\u042F\x03\x02\x02\x02\u0430" + - "\u0431\x03\x02\x02\x02\u0431\u0432\x03\x02\x02\x02\u0432\u0433\x05\u01F6" + - "\xFC\x02\u0433\u043E\x05N(\x02\u0434\u043B\x05`1\x02\u0435\u0437\x07\u0400" + - "\x02\x02\u0436\u0435\x03\x02\x02\x02\u0436\u0437\x03\x02\x02\x02\u0437" + - "\u0438\x03\x02\x02\x02\u0438\u043A\x05`1\x02\u0439\u0436\x03\x02\x02\x02" + - "\u043A\u043D\x03\x02\x02\x02\u043B\u0439\x03\x02\x02\x02\u043B\u043C\x03" + - "\x02\x02\x02\u043C\u043F\x03\x02\x02\x02\u043D\u043B\x03\x02\x02\x02\u043E" + - "\u0434\x03\x02\x02\x02\u043E\u043F\x03\x02\x02\x02\u043F\u0441\x03\x02" + - "\x02\x02\u0440\u0442\x05d3\x02\u0441\u0440\x03\x02\x02\x02\u0441\u0442" + - "\x03\x02\x02\x02\u0442\u0444\x03\x02\x02\x02\u0443\u03F5\x03\x02\x02\x02" + - "\u0443\u0407\x03\x02\x02\x02\u0443\u042A\x03\x02\x02\x02\u0444+\x03\x02" + - "\x02\x02\u0445\u0446\x07 \x02\x02\u0446\u0447\x07\u022E\x02\x02\u0447" + - "\u0448\x05\u020E\u0108\x02\u0448\u0449\x07\x07\x02\x02\u0449\u044A\x07" + - "\u0146\x02\x02\u044A\u044E\x07\u040D\x02\x02\u044B\u044C\x07\u016A\x02" + - "\x02\u044C\u044D\x07\u03F5\x02\x02\u044D\u044F\x05\u0216\u010C\x02\u044E" + - "\u044B\x03\x02\x02\x02\u044E\u044F\x03\x02\x02\x02\u044F\u0455\x03\x02" + - "\x02\x02\u0450\u0452\x07\u0158\x02\x02\u0451\u0453\x07\u03F5\x02\x02\u0452" + - "\u0451\x03\x02\x02\x02\u0452\u0453\x03\x02\x02\x02\u0453\u0454\x03\x02" + - "\x02\x02\u0454\u0456\x05\u0204\u0103\x02\u0455\u0450\x03\x02\x02\x02\u0455" + - "\u0456\x03\x02\x02\x02\u0456-\x03\x02\x02\x02\u0457\u0458\x07 \x02\x02" + - "\u0458\u0459\x07\u022E\x02\x02\u0459\u045A\x05\u020E\u0108\x02\u045A\u045B" + - "\x07\x07\x02\x02\u045B\u045C\x07\u0146\x02\x02\u045C\u045D\x07\u040D\x02" + - "\x02\u045D\u045E\x07\xAA\x02\x02\u045E\u045F\x07\u0195\x02\x02\u045F\u0460" + - "\x07D\x02\x02\u0460\u0466\x05\u020E\u0108\x02\u0461\u0463\x07\u0166\x02" + - "\x02\u0462\u0464\x07\u03F5\x02\x02\u0463\u0462\x03\x02\x02\x02\u0463\u0464" + - "\x03\x02\x02\x02\u0464\u0465\x03\x02\x02\x02\u0465\u0467\x05\u0216\u010C" + - "\x02\u0466\u0461\x03\x02\x02\x02\u0466\u0467\x03\x02\x02\x02\u0467\u046D" + - "\x03\x02\x02\x02\u0468\u046A\x07\u0180\x02\x02\u0469\u046B\x07\u03F5\x02" + - "\x02\u046A\u0469\x03\x02\x02\x02\u046A\u046B\x03\x02\x02\x02\u046B\u046C" + - "\x03\x02\x02\x02\u046C\u046E\x05\u0216\u010C\x02\u046D\u0468\x03\x02\x02" + - "\x02\u046D\u046E\x03\x02\x02\x02\u046E\u0474\x03\x02\x02\x02\u046F\u0471" + - "\x07\u0119\x02\x02\u0470\u0472\x07\u03F5\x02\x02\u0471\u0470\x03\x02\x02" + - "\x02\u0471\u0472\x03\x02\x02\x02\u0472\u0473\x03\x02\x02\x02\u0473\u0475" + - "\x05\u0216\u010C\x02\u0474\u046F\x03\x02\x02\x02\u0474\u0475\x03\x02\x02" + - "\x02\u0475\u047B\x03\x02\x02\x02\u0476\u0478\x07\u01AF\x02\x02\u0477\u0479" + - "\x07\u03F5\x02\x02\u0478\u0477\x03\x02\x02\x02\u0478\u0479\x03\x02\x02" + - "\x02\u0479\u047A\x03\x02\x02\x02\u047A\u047C\x05\u0216\u010C\x02\u047B" + - "\u0476\x03\x02\x02\x02\u047B\u047C\x03\x02\x02\x02\u047C\u0482\x03\x02" + - "\x02\x02\u047D\u047F\x07\u01C3\x02\x02\u047E\u0480\x07\u03F5\x02\x02\u047F" + - "\u047E\x03\x02\x02\x02\u047F\u0480\x03\x02\x02\x02\u0480\u0481\x03\x02" + - "\x02\x02\u0481\u0483\x05\u020E\u0108\x02\u0482\u047D\x03\x02\x02\x02\u0482" + - "\u0483\x03\x02\x02\x02\u0483\u0485\x03\x02\x02\x02\u0484\u0486\x07\u0247" + - "\x02\x02\u0485\u0484\x03\x02\x02\x02\u0485\u0486\x03\x02\x02\x02\u0486" + - "\u048C\x03\x02\x02\x02\u0487\u0489\x07\u0133\x02\x02\u0488\u048A\x07\u03F5" + - "\x02\x02\u0489\u0488\x03\x02\x02\x02\u0489\u048A\x03\x02\x02\x02\u048A" + - "\u048B\x03\x02\x02\x02\u048B\u048D\x07\u040D\x02\x02\u048C\u0487\x03\x02" + - "\x02\x02\u048C\u048D\x03\x02\x02\x02\u048D\u048E\x03\x02\x02\x02\u048E" + - "\u0490\x07\u0158\x02\x02\u048F\u0491\x07\u03F5\x02\x02\u0490\u048F\x03" + - "\x02\x02\x02\u0490\u0491\x03\x02\x02\x02\u0491\u0492\x03\x02\x02\x02\u0492" + - "\u0493\x05\u0204\u0103\x02\u0493/\x03\x02\x02\x02\u0494\u0496\x07 \x02" + - "\x02\u0495\u0497\x056\x1C\x02\u0496\u0495\x03\x02\x02\x02\u0496\u0497" + - "\x03\x02\x02\x02\u0497\u0498\x03\x02\x02\x02\u0498\u0499\x07\xA1\x02\x02" + - "\u0499\u049A\x05\u01F4\xFB\x02\u049A\u049B\t\t\x02\x02\u049B\u049C\t\n" + - "\x02\x02\u049C\u049D\x07l\x02\x02\u049D\u049E\x05\u01F6\xFC\x02\u049E" + - "\u049F\x07<\x02\x02\u049F\u04A0\x072\x02\x02\u04A0\u04A3\x07\u0201\x02" + - "\x02\u04A1\u04A2\t\v\x02\x02\u04A2\u04A4\x05\u01F4\xFB\x02\u04A3\u04A1" + - "\x03\x02\x02\x02\u04A3\u04A4\x03\x02\x02\x02\u04A4\u04A5\x03\x02\x02\x02" + - "\u04A5\u04A6\x05\u015C\xAF\x02\u04A61\x03\x02\x02\x02\u04A7\u04AA\x07" + - " \x02\x02\u04A8\u04A9\x07p\x02\x02\u04A9\u04AB\x07\x81\x02\x02\u04AA\u04A8" + - "\x03\x02\x02\x02\u04AA\u04AB\x03\x02\x02\x02\u04AB\u04AF\x03\x02\x02\x02" + - "\u04AC\u04AD\x07\u0114\x02\x02\u04AD\u04AE\x07\u03F5\x02\x02\u04AE\u04B0" + - "\t\f\x02\x02\u04AF\u04AC\x03\x02\x02\x02\u04AF\u04B0\x03\x02\x02\x02\u04B0" + - "\u04B2\x03\x02\x02\x02\u04B1\u04B3\x056\x1C\x02\u04B2\u04B1\x03\x02\x02" + - "\x02\u04B2\u04B3\x03\x02\x02\x02\u04B3\u04B7\x03\x02\x02\x02\u04B4\u04B5" + - "\x07\x91\x02\x02\u04B5\u04B6\x07\u0206\x02\x02\u04B6\u04B8\t\r\x02\x02" + - "\u04B7\u04B4\x03\x02\x02\x02\u04B7\u04B8\x03\x02\x02\x02\u04B8\u04B9\x03" + - "\x02\x02\x02\u04B9\u04BA\x07\u0244\x02\x02\u04BA\u04BF\x05\u01F4\xFB\x02" + - "\u04BB\u04BC\x07\u03FE\x02\x02\u04BC\u04BD\x05\u022E\u0118\x02\u04BD\u04BE" + - "\x07\u03FF\x02\x02\u04BE\u04C0\x03\x02\x02\x02\u04BF\u04BB\x03\x02\x02" + - "\x02\u04BF\u04C0\x03\x02\x02\x02\u04C0\u04C1\x03\x02\x02\x02\u04C1\u04C2" + - "\x07\r\x02\x02\u04C2\u04C9\x05\xB6\\\x02\u04C3\u04C5\x07\xB0\x02\x02\u04C4" + - "\u04C6\t\x0E\x02\x02\u04C5\u04C4\x03\x02\x02\x02\u04C5\u04C6\x03\x02\x02" + - "\x02\u04C6\u04C7\x03\x02\x02\x02\u04C7\u04C8\x07\x19\x02\x02\u04C8\u04CA" + - "\x07n\x02\x02\u04C9\u04C3\x03\x02\x02\x02\u04C9\u04CA\x03\x02\x02\x02" + - "\u04CA3\x03\x02\x02\x02\u04CB\u04CD\x07(\x02\x02\u04CC\u04CB\x03\x02\x02" + - "\x02\u04CC\u04CD\x03\x02\x02\x02\u04CD\u04D1\x03\x02\x02\x02\u04CE\u04CF" + - "\x07\x18\x02\x02\u04CF\u04D2\x07\x8C\x02\x02\u04D0\u04D2\x07\u02DD\x02" + - "\x02\u04D1\u04CE\x03\x02\x02\x02\u04D1\u04D0\x03\x02\x02\x02\u04D2\u04D4" + - "\x03\x02\x02\x02\u04D3\u04D5\x07\u03F5\x02\x02\u04D4\u04D3\x03\x02\x02" + - "\x02\u04D4\u04D5\x03\x02\x02\x02\u04D5\u04D8\x03\x02\x02\x02\u04D6\u04D9" + - "\x05\u0200\u0101\x02\u04D7\u04D9\x07(\x02\x02\u04D8\u04D6\x03\x02\x02" + - "\x02\u04D8\u04D7\x03\x02\x02\x02\u04D9\u04E3\x03\x02\x02\x02\u04DA\u04DC" + - "\x07(\x02\x02\u04DB\u04DA\x03\x02\x02\x02\u04DB\u04DC\x03\x02\x02\x02" + - "\u04DC\u04DD\x03\x02\x02\x02\u04DD\u04DF\x07\x1A\x02\x02\u04DE\u04E0\x07" + - "\u03F5\x02\x02\u04DF\u04DE\x03\x02\x02\x02\u04DF\u04E0\x03\x02\x02\x02" + - "\u04E0\u04E1\x03\x02\x02\x02\u04E1\u04E3\x05\u0202\u0102\x02\u04E2\u04CC" + - "\x03\x02\x02\x02\u04E2\u04DB\x03\x02\x02\x02\u04E35\x03\x02\x02\x02\u04E4" + - "\u04E5\x07\u0149\x02\x02\u04E5\u04EC\x07\u03F5\x02\x02\u04E6\u04ED\x05" + - "\u01FC\xFF\x02\u04E7\u04EA\x07#\x02\x02\u04E8\u04E9\x07\u03FE\x02\x02" + - "\u04E9\u04EB\x07\u03FF\x02\x02\u04EA\u04E8\x03\x02\x02\x02\u04EA\u04EB" + - "\x03\x02\x02\x02\u04EB\u04ED\x03\x02\x02\x02\u04EC\u04E6\x03\x02\x02\x02" + - "\u04EC\u04E7\x03\x02\x02\x02\u04ED7\x03\x02\x02\x02\u04EE\u04EF\x07\u0116" + - "\x02\x02\u04EF\u04F3\x05:\x1E\x02\u04F0\u04F2\x05<\x1F\x02\u04F1\u04F0" + - "\x03\x02\x02\x02\u04F2\u04F5\x03\x02\x02\x02\u04F3\u04F1\x03\x02\x02\x02" + - "\u04F3\u04F4\x03\x02\x02\x02\u04F4\u0511\x03\x02\x02\x02\u04F5\u04F3\x03" + - "\x02\x02\x02\u04F6\u04F9\x07\u0160\x02\x02\u04F7\u04FA\x05\u0214\u010B" + - "\x02\u04F8\u04FA\x05\u025C\u012F\x02\u04F9\u04F7\x03\x02\x02\x02\u04F9" + - "\u04F8\x03\x02\x02\x02\u04FA\u04FB\x03\x02\x02\x02\u04FB\u0504\x05> \x02" + - "\u04FC\u04FD\x07\u021D\x02\x02\u04FD\u0501\x05:\x1E\x02\u04FE\u0500\x05" + - "<\x1F\x02\u04FF\u04FE\x03\x02\x02\x02\u0500\u0503\x03\x02\x02\x02\u0501" + - "\u04FF\x03\x02\x02\x02\u0501\u0502\x03\x02\x02\x02\u0502\u0505\x03\x02" + - "\x02\x02\u0503\u0501\x03\x02\x02\x02\u0504\u04FC\x03\x02\x02\x02\u0504" + - "\u0505\x03\x02\x02\x02\u0505\u050E\x03\x02\x02\x02\u0506\u0507\x07\u0157" + - "\x02\x02\u0507\u050B\x05:\x1E\x02\u0508\u050A\x05<\x1F\x02\u0509\u0508" + - "\x03\x02\x02\x02\u050A\u050D\x03\x02\x02\x02\u050B\u0509\x03\x02\x02\x02" + - "\u050B\u050C\x03\x02\x02\x02\u050C\u050F\x03\x02\x02\x02\u050D\u050B\x03" + - "\x02\x02\x02\u050E\u0506\x03\x02\x02\x02\u050E\u050F\x03\x02\x02\x02\u050F" + - "\u0511\x03\x02\x02\x02\u0510\u04EE\x03\x02\x02\x02\u0510\u04F6\x03\x02" + - "\x02\x02\u05119\x03\x02\x02\x02\u0512\u0517\x07\xFF\x02\x02\u0513\u0517" + - "\x05\u0218\u010D\x02\u0514\u0517\x05\u0214\u010B\x02\u0515\u0517\x05\u025C" + - "\u012F\x02\u0516\u0512\x03\x02\x02\x02\u0516\u0513\x03\x02\x02\x02\u0516" + - "\u0514\x03\x02\x02\x02\u0516\u0515\x03\x02\x02\x02\u0517;\x03\x02\x02" + - "\x02\u0518\u0519\x07\u03F0\x02\x02\u0519\u051C\x07O\x02\x02\u051A\u051D" + - "\x05\u0214\u010B\x02\u051B\u051D\x05\u025C\u012F\x02\u051C\u051A\x03\x02" + - "\x02\x02\u051C\u051B\x03\x02\x02\x02\u051D\u051E\x03\x02\x02\x02\u051E" + - "\u051F\x05> \x02\u051F=\x03\x02\x02\x02\u0520\u052E\x05\u0272\u013A\x02" + - "\u0521\u052E\x07\xCD\x02\x02\u0522\u052E\x07\xE0\x02\x02\u0523\u052E\x07" + - "\xE1\x02\x02\u0524\u052E\x07\xE2\x02\x02\u0525\u052E\x07\xE3\x02\x02\u0526" + - "\u052E\x07\xE4\x02\x02\u0527\u052E\x07\xE5\x02\x02\u0528\u052E\x07\xE6" + - "\x02\x02\u0529\u052E\x07\xE7\x02\x02\u052A\u052E\x07\xE8\x02\x02\u052B" + - "\u052E\x07\xE9\x02\x02\u052C\u052E\x07\xEA\x02\x02\u052D\u0520\x03\x02" + - "\x02\x02\u052D\u0521\x03\x02\x02\x02\u052D\u0522\x03\x02\x02\x02\u052D" + - "\u0523\x03\x02\x02\x02\u052D\u0524\x03\x02\x02\x02\u052D\u0525\x03\x02" + - "\x02\x02\u052D\u0526\x03\x02\x02\x02\u052D\u0527\x03\x02\x02\x02\u052D" + - "\u0528\x03\x02\x02\x02\u052D\u0529\x03\x02\x02\x02\u052D\u052A\x03\x02" + - "\x02\x02\u052D\u052B\x03\x02\x02\x02\u052D\u052C\x03\x02\x02\x02\u052E" + - "?\x03\x02\x02\x02\u052F\u0535\x07\u0154\x02\x02\u0530\u0535\x07\u014D" + - "\x02\x02\u0531\u0532\x07\u014D\x02\x02\u0532\u0533\x07l\x02\x02\u0533" + - "\u0535\x07\u020D\x02\x02\u0534\u052F\x03\x02\x02\x02\u0534\u0530\x03\x02" + - "\x02\x02\u0534\u0531\x03\x02\x02\x02\u0535A\x03\x02\x02\x02\u0536\u0537" + - "\x07\xAB\x02\x02\u0537\u0538\t\x0F\x02\x02\u0538C\x03\x02\x02\x02\u0539" + - "\u053B\x07\u018D\x02\x02\u053A\u053C\x07\u03F5\x02\x02\u053B\u053A\x03" + - "\x02\x02\x02\u053B\u053C\x03\x02\x02\x02\u053C\u053D\x03\x02\x02\x02\u053D" + - "\u0547\x05\u0216\u010C\x02\u053E\u0547\x05B\"\x02\u053F\u0540\x07\xB0" + - "\x02\x02\u0540\u0541\x07\u01D2\x02\x02\u0541\u0547\x05\u020E\u0108\x02" + - "\u0542\u0543\x07\u0133\x02\x02\u0543\u0547\x07\u040D\x02\x02\u0544\u0547" + - "\x07\u0185\x02\x02\u0545\u0547\x07\u0246\x02\x02\u0546\u0539\x03\x02\x02" + - "\x02\u0546\u053E\x03\x02\x02\x02\u0546\u053F\x03\x02\x02\x02\u0546\u0542" + - "\x03\x02\x02\x02\u0546\u0544\x03\x02\x02\x02\u0546\u0545\x03\x02\x02\x02" + - "\u0547E\x03\x02\x02\x02\u0548\u054A\t\x10\x02\x02\u0549\u0548\x03\x02" + - "\x02\x02\u0549\u054A\x03\x02\x02\x02\u054A\u054B\x03\x02\x02\x02\u054B" + - "\u054C\x05\u020E\u0108\x02\u054C\u054D\x05\u0222\u0112\x02\u054DG\x03" + - "\x02\x02\x02\u054E\u054F\x05\u020E\u0108\x02\u054F\u0550\x05\u0222\u0112" + - "\x02\u0550I\x03\x02\x02\x02\u0551\u0552\x07\u0133\x02\x02\u0552\u0569" + - "\x07\u040D\x02\x02\u0553\u0554\x07\u018E\x02\x02\u0554\u0569\x07\x91\x02" + - "\x02\u0555\u0557\x07h\x02\x02\u0556\u0555\x03\x02\x02\x02\u0556\u0557" + - "\x03\x02\x02\x02\u0557\u0558\x03\x02\x02\x02\u0558\u0569\x07-\x02\x02" + - "\u0559\u055A\x07\u013F\x02\x02\u055A\u0564\x07\x91\x02\x02\u055B\u055C" + - "\x07\u01C2\x02\x02\u055C\u0564\x07\x91\x02\x02\u055D\u055E\x07{\x02\x02" + - "\u055E\u055F\x07\x91\x02\x02\u055F\u0564\x07\u0145\x02\x02\u0560\u0561" + - "\x07f\x02\x02\u0561\u0562\x07\x91\x02\x02\u0562\u0564\x07\u0145\x02\x02" + - "\u0563\u0559\x03\x02\x02\x02\u0563\u055B\x03\x02\x02\x02\u0563\u055D\x03" + - "\x02\x02\x02\u0563\u0560\x03\x02\x02\x02\u0564\u0569\x03\x02\x02\x02\u0565" + - "\u0566\x07\x91\x02\x02\u0566\u0567\x07\u0206\x02\x02\u0567\u0569\t\r\x02" + - "\x02\u0568\u0551\x03\x02\x02\x02\u0568\u0553\x03\x02\x02\x02\u0568\u0556" + - "\x03\x02\x02\x02\u0568\u0563\x03\x02\x02\x02\u0568\u0565\x03\x02\x02\x02" + - "\u0569K\x03\x02\x02\x02\u056A\u056B\x07\u017A\x02\x02\u056B\u0579\x07" + - "\u040D\x02\x02\u056C\u056D\x07%\x02\x02\u056D\u0579\x07\u040D\x02\x02" + - "\u056E\u056F\x07\u023E\x02\x02\u056F\u0579\x07\u040D\x02\x02\u0570\u0571" + - "\x07\u01D6\x02\x02\u0571\u0579\x07\u040D\x02\x02\u0572\u0573\x07\u0210" + - "\x02\x02\u0573\u0579\x07\u040D\x02\x02\u0574\u0575\x07\u01CF\x02\x02\u0575" + - "\u0579\x07\u040D\x02\x02\u0576\u0577\x07\u01DB\x02\x02\u0577\u0579\x05" + - "\u0214\u010B\x02\u0578\u056A\x03\x02\x02\x02\u0578\u056C\x03\x02\x02\x02" + - "\u0578\u056E\x03\x02\x02\x02\u0578\u0570\x03\x02\x02\x02\u0578\u0572\x03" + - "\x02\x02\x02\u0578\u0574\x03\x02\x02\x02\u0578\u0576\x03\x02\x02\x02\u0579" + - "M\x03\x02\x02\x02\u057A\u057B\x07\u03FE\x02\x02\u057B\u0580\x05P)\x02" + - "\u057C\u057D\x07\u0400\x02\x02\u057D\u057F\x05P)\x02\u057E\u057C\x03\x02" + - "\x02\x02\u057F\u0582\x03\x02\x02\x02\u0580\u057E\x03\x02\x02\x02\u0580" + - "\u0581\x03\x02\x02\x02\u0581\u0583\x03\x02\x02\x02\u0582\u0580\x03\x02" + - "\x02\x02\u0583\u0584\x07\u03FF\x02\x02\u0584O\x03\x02\x02\x02\u0585\u0586" + - "\x05\u020E\u0108\x02\u0586\u0587\x05R*\x02\u0587\u058B\x03\x02\x02\x02" + - "\u0588\u058B\x05V,\x02\u0589\u058B\x05^0\x02\u058A\u0585\x03\x02\x02\x02" + - "\u058A\u0588\x03\x02\x02\x02\u058A\u0589\x03\x02\x02\x02\u058BQ\x03\x02" + - "\x02\x02\u058C\u0590\x05\u0222\u0112\x02\u058D\u058F\x05T+\x02\u058E\u058D" + - "\x03\x02\x02\x02\u058F\u0592\x03\x02\x02\x02\u0590\u058E\x03\x02\x02\x02" + - "\u0590\u0591\x03\x02\x02\x02\u0591S\x03\x02\x02\x02\u0592\u0590\x03\x02" + - "\x02\x02\u0593\u05C7\x05\u021E\u0110\x02\u0594\u0595\x07(\x02\x02\u0595" + - "\u05C7\x05\u023E\u0120\x02\u0596\u059B\x07\u011A\x02\x02\u0597\u0598\x07" + - "l\x02\x02\u0598\u0599\x07\xA8\x02\x02\u0599\u059B\x05\u0240\u0121\x02" + - "\u059A\u0596\x03\x02\x02\x02\u059A\u0597\x03\x02\x02\x02\u059B\u05C7\x03" + - "\x02\x02\x02\u059C\u059E\x07v\x02\x02\u059D\u059C\x03\x02\x02\x02\u059D" + - "\u059E\x03\x02\x02\x02\u059E\u059F\x03\x02\x02\x02\u059F\u05C7\x07T\x02" + - "\x02\u05A0\u05A2\x07\xA5\x02\x02\u05A1\u05A3\x07T\x02\x02\u05A2\u05A1" + - "\x03\x02\x02\x02\u05A2\u05A3\x03\x02\x02\x02\u05A3\u05C7\x03\x02\x02\x02" + - "\u05A4\u05A5\x07\u0133\x02\x02\u05A5\u05C7\x07\u040D\x02\x02\u05A6\u05A7" + - "\x07\u0131\x02\x02\u05A7\u05C7\t\x11\x02\x02\u05A8\u05A9\x07\u0223\x02" + - "\x02\u05A9\u05C7\t\x12\x02\x02\u05AA\u05C7\x05X-\x02\u05AB\u05AC\x07\x1A" + - "\x02\x02\u05AC\u05C7\x05\u0202\u0102\x02\u05AD\u05AE\x07A\x02\x02\u05AE" + - "\u05B0\x07\n\x02\x02\u05AF\u05AD\x03\x02\x02\x02\u05AF\u05B0\x03\x02\x02" + - "\x02\u05B0\u05B1\x03\x02\x02\x02\u05B1\u05B2\x07\r\x02\x02\u05B2\u05B3" + - "\x07\u03FE\x02\x02\u05B3\u05B4\x05\u025C\u012F\x02\u05B4\u05B6\x07\u03FF" + - "\x02\x02\u05B5\u05B7\t\x13\x02\x02\u05B6\u05B5\x03\x02\x02\x02\u05B6\u05B7" + - "\x03\x02\x02\x02\u05B7\u05C7\x03\x02\x02\x02\u05B8\u05B9\x07\xDF\x02\x02" + - "\u05B9\u05BA\x07(\x02\x02\u05BA\u05C7\x07\u0242\x02\x02\u05BB\u05BD\x07" + - "\x1D\x02\x02\u05BC\u05BE\x05\u020E\u0108\x02\u05BD\u05BC\x03\x02\x02\x02" + - "\u05BD\u05BE\x03\x02\x02\x02\u05BE\u05C0\x03\x02\x02\x02\u05BF\u05BB\x03" + - "\x02\x02\x02\u05BF\u05C0\x03\x02\x02\x02\u05C0\u05C1\x03\x02\x02\x02\u05C1" + - "\u05C2\x07\x19\x02\x02\u05C2\u05C3\x07\u03FE\x02\x02\u05C3\u05C4\x05\u025C" + - "\u012F\x02\u05C4\u05C5\x07\u03FF\x02\x02\u05C5\u05C7\x03\x02\x02\x02\u05C6" + - "\u0593\x03\x02\x02\x02\u05C6\u0594\x03\x02\x02\x02\u05C6\u059A\x03\x02" + - "\x02\x02\u05C6\u059D\x03\x02\x02\x02\u05C6\u05A0\x03\x02\x02\x02\u05C6" + - "\u05A4\x03\x02\x02\x02\u05C6\u05A6\x03\x02\x02\x02\u05C6\u05A8\x03\x02" + - "\x02\x02\u05C6\u05AA\x03\x02\x02\x02\u05C6\u05AB\x03\x02\x02\x02\u05C6" + - "\u05AF\x03\x02\x02\x02\u05C6\u05B8\x03\x02\x02\x02\u05C6\u05BF\x03\x02" + - "\x02\x02\u05C7U\x03\x02\x02\x02\u05C8\u05CA\x07\x1D\x02\x02\u05C9\u05CB" + - "\x05\u020E\u0108\x02\u05CA\u05C9\x03\x02\x02\x02\u05CA\u05CB\x03\x02\x02" + - "\x02\u05CB\u05CD\x03\x02\x02\x02\u05CC\u05C8\x03\x02\x02\x02\u05CC\u05CD" + - "\x03\x02\x02\x02\u05CD\u05CE\x03\x02\x02\x02\u05CE\u05CF\x07v\x02\x02" + - "\u05CF\u05D1\x07T\x02\x02\u05D0\u05D2\x05\u020E\u0108\x02\u05D1\u05D0" + - "\x03\x02\x02\x02\u05D1\u05D2\x03\x02\x02\x02\u05D2\u05D4\x03\x02\x02\x02" + - "\u05D3\u05D5\x05B\"\x02\u05D4\u05D3\x03\x02\x02\x02\u05D4\u05D5\x03\x02" + - "\x02\x02\u05D5\u05D6\x03\x02\x02\x02\u05D6\u05DA\x05\u0232\u011A\x02\u05D7" + - "\u05D9\x05D#\x02\u05D8\u05D7\x03\x02\x02\x02\u05D9\u05DC\x03\x02\x02\x02" + - "\u05DA\u05D8\x03\x02\x02\x02\u05DA\u05DB\x03\x02\x02\x02\u05DB\u060E\x03" + - "\x02\x02\x02\u05DC\u05DA\x03\x02\x02\x02\u05DD\u05DF\x07\x1D\x02\x02\u05DE" + - "\u05E0\x05\u020E\u0108\x02\u05DF\u05DE\x03\x02\x02\x02\u05DF\u05E0\x03" + - "\x02\x02\x02\u05E0\u05E2\x03\x02\x02\x02\u05E1\u05DD\x03\x02\x02\x02\u05E1" + - "\u05E2\x03\x02\x02\x02\u05E2\u05E3\x03\x02\x02\x02\u05E3\u05E5\x07\xA5" + - "\x02\x02\u05E4\u05E6\t\x14\x02\x02\u05E5\u05E4\x03\x02\x02\x02\u05E5\u05E6" + - "\x03\x02\x02\x02\u05E6\u05E8\x03\x02\x02\x02\u05E7\u05E9\x05\u020E\u0108" + - "\x02\u05E8\u05E7\x03\x02\x02\x02\u05E8\u05E9\x03\x02\x02\x02\u05E9\u05EB" + - "\x03\x02\x02\x02\u05EA\u05EC\x05B\"\x02\u05EB\u05EA\x03\x02\x02\x02\u05EB" + - "\u05EC\x03\x02\x02\x02\u05EC\u05ED\x03\x02\x02\x02\u05ED\u05F1\x05\u0232" + - "\u011A\x02\u05EE\u05F0\x05D#\x02\u05EF\u05EE\x03\x02\x02\x02\u05F0\u05F3" + - "\x03\x02\x02\x02\u05F1\u05EF\x03\x02\x02\x02\u05F1\u05F2\x03\x02\x02\x02" + - "\u05F2\u060E\x03\x02\x02\x02\u05F3\u05F1\x03\x02\x02\x02\u05F4\u05F6\x07" + - "\x1D\x02\x02\u05F5\u05F7\x05\u020E\u0108\x02\u05F6\u05F5\x03\x02\x02\x02" + - "\u05F6\u05F7\x03\x02\x02\x02\u05F7\u05F9\x03\x02\x02\x02\u05F8\u05F4\x03" + - "\x02\x02\x02\u05F8\u05F9\x03\x02\x02\x02\u05F9\u05FA\x03\x02\x02\x02\u05FA" + - "\u05FB\x07>\x02\x02\u05FB\u05FD\x07T\x02\x02\u05FC\u05FE\x05\u020E\u0108" + - "\x02\u05FD\u05FC\x03\x02\x02\x02\u05FD\u05FE\x03\x02\x02\x02\u05FE\u05FF" + - "\x03\x02\x02\x02\u05FF\u0600\x05\u0232\u011A\x02\u0600\u0601\x05X-\x02" + - "\u0601\u060E\x03\x02\x02\x02\u0602\u0604\x07\x1D\x02\x02\u0603\u0605\x05" + - "\u020E\u0108\x02\u0604\u0603\x03\x02\x02\x02\u0604\u0605\x03\x02\x02\x02" + - "\u0605\u0607\x03\x02\x02\x02\u0606\u0602\x03\x02\x02\x02\u0606\u0607\x03" + - "\x02\x02\x02\u0607\u0608\x03\x02\x02\x02\u0608\u0609\x07\x19\x02\x02\u0609" + - "\u060A\x07\u03FE\x02\x02\u060A\u060B\x05\u025C\u012F\x02\u060B\u060C\x07" + - "\u03FF\x02\x02\u060C\u060E\x03\x02\x02\x02\u060D\u05CC\x03\x02\x02\x02" + - "\u060D\u05E1\x03\x02\x02\x02\u060D\u05F8\x03\x02\x02\x02\u060D\u0606\x03" + - "\x02\x02\x02\u060EW\x03\x02\x02\x02\u060F\u0610\x07|\x02\x02\u0610\u0612" + - "\x05\u01F6\xFC\x02\u0611\u0613\x05\u0232\u011A\x02\u0612\u0611\x03\x02" + - "\x02\x02\u0612\u0613\x03\x02\x02\x02\u0613\u0616\x03\x02\x02\x02\u0614" + - "\u0615\x07d\x02\x02\u0615\u0617\t\x15\x02\x02\u0616\u0614\x03\x02\x02" + - "\x02\u0616\u0617\x03\x02\x02\x02\u0617\u0619\x03\x02\x02\x02\u0618\u061A" + - "\x05Z.\x02\u0619\u0618\x03\x02\x02\x02\u0619\u061A\x03\x02\x02\x02\u061A" + - "Y\x03\x02\x02\x02\u061B\u061C\x07l\x02\x02\u061C\u061D\x07*\x02\x02\u061D" + - "\u0621\x05\\/\x02\u061E\u061F\x07l\x02\x02\u061F\u0620\x07\xA8\x02\x02" + - "\u0620\u0622\x05\\/\x02\u0621\u061E\x03\x02\x02\x02\u0621\u0622\x03\x02" + - "\x02\x02\u0622\u062C\x03\x02\x02\x02\u0623\u0624\x07l\x02\x02\u0624\u0625" + - "\x07\xA8\x02\x02\u0625\u0629\x05\\/\x02\u0626\u0627\x07l\x02\x02\u0627" + - "\u0628\x07*\x02\x02\u0628\u062A\x05\\/\x02\u0629\u0626\x03\x02\x02\x02" + - "\u0629\u062A\x03\x02\x02\x02\u062A\u062C\x03\x02\x02\x02\u062B\u061B\x03" + - "\x02\x02\x02\u062B\u0623\x03\x02\x02\x02\u062C[\x03\x02\x02\x02\u062D" + - "\u0634\x07\x84\x02\x02\u062E\u0634\x07\x14\x02\x02\u062F\u0630\x07\x8C" + - "\x02\x02\u0630\u0634\x07j\x02\x02\u0631\u0632\x07\u01C2\x02\x02\u0632" + - "\u0634\x07\u0111\x02\x02\u0633\u062D\x03\x02\x02\x02\u0633\u062E\x03\x02" + - "\x02\x02\u0633\u062F\x03\x02\x02\x02\u0633\u0631\x03\x02\x02\x02\u0634" + - "]\x03\x02\x02\x02\u0635\u0637\t\x14\x02\x02\u0636\u0638\x05\u020E\u0108" + - "\x02\u0637\u0636\x03\x02\x02\x02\u0637\u0638\x03\x02\x02\x02\u0638\u063A" + - "\x03\x02\x02\x02\u0639\u063B\x05B\"\x02\u063A\u0639\x03\x02\x02\x02\u063A" + - "\u063B\x03\x02\x02\x02\u063B\u063C\x03\x02\x02\x02\u063C\u0640\x05\u0232" + - "\u011A\x02\u063D\u063F\x05D#\x02\u063E\u063D\x03\x02"; - private static readonly _serializedATNSegment5: string = - "\x02\x02\u063F\u0642\x03\x02\x02\x02\u0640\u063E\x03\x02\x02\x02\u0640" + - "\u0641\x03\x02\x02\x02\u0641\u0652\x03\x02\x02\x02\u0642\u0640\x03\x02" + - "\x02\x02\u0643\u0645\t\x16\x02\x02\u0644\u0646\t\x14\x02\x02\u0645\u0644" + - "\x03\x02\x02\x02\u0645\u0646\x03\x02\x02\x02\u0646\u0648\x03\x02\x02\x02" + - "\u0647\u0649\x05\u020E\u0108\x02\u0648\u0647\x03\x02\x02\x02\u0648\u0649" + - "\x03\x02\x02\x02\u0649\u064A\x03\x02\x02\x02\u064A\u064E\x05\u0232\u011A" + - "\x02\u064B\u064D\x05D#\x02\u064C\u064B\x03\x02\x02\x02\u064D\u0650\x03" + - "\x02\x02\x02\u064E\u064C\x03\x02\x02\x02\u064E\u064F\x03\x02\x02\x02\u064F" + - "\u0652\x03\x02\x02\x02\u0650\u064E\x03\x02\x02\x02\u0651\u0635\x03\x02" + - "\x02\x02\u0651\u0643\x03\x02\x02\x02\u0652_\x03\x02\x02\x02\u0653\u0655" + - "\x07\u0158\x02\x02\u0654\u0656\x07\u03F5\x02\x02\u0655\u0654\x03\x02\x02" + - "\x02\u0655\u0656\x03\x02\x02\x02\u0656\u0657\x03\x02\x02\x02\u0657\u06E4" + - "\x05\u0204\u0103\x02\u0658\u065A\x07\u011A\x02\x02\u0659\u065B\x07\u03F5" + - "\x02\x02\u065A\u0659\x03\x02\x02\x02\u065A\u065B\x03\x02\x02\x02\u065B" + - "\u065C\x03\x02\x02\x02\u065C\u06E4\x05\u0214\u010B\x02\u065D\u065F\x07" + - "\u011B\x02\x02\u065E\u0660\x07\u03F5\x02\x02\u065F\u065E\x03\x02\x02\x02" + - "\u065F\u0660\x03\x02\x02\x02\u0660\u0661\x03\x02\x02\x02\u0661\u06E4\x05" + - "\u0214\u010B\x02\u0662\u0664\x07(\x02\x02\u0663\u0662\x03\x02\x02\x02" + - "\u0663\u0664\x03\x02\x02\x02\u0664\u0668\x03\x02\x02\x02\u0665\u0666\x07" + - "\x18\x02\x02\u0666\u0669\x07\x8C\x02\x02\u0667\u0669\x07\u02DD\x02\x02" + - "\u0668\u0665\x03\x02\x02\x02\u0668\u0667\x03\x02\x02\x02\u0669\u066B\x03" + - "\x02\x02\x02\u066A\u066C\x07\u03F5\x02\x02\u066B\u066A\x03\x02\x02\x02" + - "\u066B\u066C\x03\x02\x02\x02\u066C\u066F\x03\x02\x02\x02\u066D\u0670\x05" + - "\u0200\u0101\x02\u066E\u0670\x07(\x02\x02\u066F\u066D\x03\x02\x02\x02" + - "\u066F\u066E\x03\x02\x02\x02\u0670\u06E4\x03\x02\x02\x02\u0671\u0673\t" + - "\x17\x02\x02\u0672\u0674\x07\u03F5\x02\x02\u0673\u0672\x03\x02\x02\x02" + - "\u0673\u0674\x03\x02\x02\x02\u0674\u0675\x03\x02\x02\x02\u0675\u06E4\t" + - "\x18\x02\x02\u0676\u0678\x07(\x02\x02\u0677\u0676\x03\x02\x02\x02\u0677" + - "\u0678\x03\x02\x02\x02\u0678\u0679\x03\x02\x02\x02\u0679\u067B\x07\x1A" + - "\x02\x02\u067A\u067C\x07\u03F5\x02\x02\u067B\u067A\x03\x02\x02\x02\u067B" + - "\u067C\x03\x02\x02\x02\u067C\u067D\x03\x02\x02\x02\u067D\u06E4\x05\u0202" + - "\u0102\x02\u067E\u0680\x07\u0133\x02\x02\u067F\u0681\x07\u03F5\x02\x02" + - "\u0680\u067F\x03\x02\x02\x02\u0680\u0681\x03\x02\x02\x02\u0681\u0682\x03" + - "\x02\x02\x02\u0682\u06E4\x07\u040D\x02\x02\u0683\u0685\x07\u0138\x02\x02" + - "\u0684\u0686\x07\u03F5\x02\x02\u0685\u0684\x03\x02\x02\x02\u0685\u0686" + - "\x03\x02\x02\x02\u0686\u0687\x03\x02\x02\x02\u0687\u06E4\t\x19\x02\x02" + - "\u0688\u068A\x07\u013A\x02\x02\u0689\u068B\x07\u03F5\x02\x02\u068A\u0689" + - "\x03\x02\x02\x02\u068A\u068B\x03\x02\x02\x02\u068B\u068C\x03\x02\x02\x02" + - "\u068C\u06E4\x07\u040D\x02\x02\u068D\u068E\x07\u0145\x02\x02\u068E\u0690" + - "\x07\u014C\x02\x02\u068F\u0691\x07\u03F5\x02\x02\u0690\u068F\x03\x02\x02" + - "\x02\u0690\u0691\x03\x02\x02\x02\u0691\u0692\x03\x02\x02\x02\u0692\u06E4" + - "\x07\u040D\x02\x02\u0693\u0695\x07\u014A\x02\x02\u0694\u0696\x07\u03F5" + - "\x02\x02\u0695\u0694\x03\x02\x02\x02\u0695\u0696\x03\x02\x02\x02\u0696" + - "\u0697\x03\x02\x02\x02\u0697\u06E4\t\x18\x02\x02\u0698\u069A\x07\u0155" + - "\x02\x02\u0699\u069B\x07\u03F5\x02\x02\u069A\u0699\x03\x02\x02\x02\u069A" + - "\u069B\x03\x02\x02\x02\u069B\u069C\x03\x02\x02\x02\u069C\u06E4\x07\u040D" + - "\x02\x02\u069D\u069E\x07J\x02\x02\u069E\u06A0\x07\u014C\x02\x02\u069F" + - "\u06A1\x07\u03F5\x02\x02\u06A0\u069F\x03\x02\x02\x02\u06A0\u06A1\x03\x02" + - "\x02\x02\u06A1\u06A2\x03\x02\x02\x02\u06A2\u06E4\x07\u040D\x02\x02\u06A3" + - "\u06A5\x07\u0182\x02\x02\u06A4\u06A6\x07\u03F5\x02\x02\u06A5\u06A4\x03" + - "\x02\x02\x02\u06A5\u06A6\x03\x02\x02\x02\u06A6\u06A7\x03\x02\x02\x02\u06A7" + - "\u06E4\t\x1A\x02\x02\u06A8\u06AA\x07\u018D\x02\x02\u06A9\u06AB\x07\u03F5" + - "\x02\x02\u06AA\u06A9\x03\x02\x02\x02\u06AA\u06AB\x03\x02\x02\x02\u06AB" + - "\u06AC\x03\x02\x02\x02\u06AC\u06E4\x05\u0216\u010C\x02\u06AD\u06AF\x07" + - "\u01AE\x02\x02\u06AE\u06B0\x07\u03F5\x02\x02\u06AF\u06AE\x03\x02\x02\x02" + - "\u06AF\u06B0\x03\x02\x02\x02\u06B0\u06B1\x03\x02\x02\x02\u06B1\u06E4\x05" + - "\u0214\u010B\x02\u06B2\u06B4\x07\u01B7\x02\x02\u06B3\u06B5\x07\u03F5\x02" + - "\x02\u06B4\u06B3\x03\x02\x02\x02\u06B4\u06B5\x03\x02\x02\x02\u06B5\u06B6" + - "\x03\x02\x02\x02\u06B6\u06E4\x05\u0214\u010B\x02\u06B7\u06B9\x07\u01D0" + - "\x02\x02\u06B8\u06BA\x07\u03F5\x02\x02\u06B9\u06B8\x03\x02\x02\x02\u06B9" + - "\u06BA\x03\x02\x02\x02\u06BA\u06BB\x03\x02\x02\x02\u06BB\u06E4\t\x1B\x02" + - "\x02\u06BC\u06BE\x07\u01D6\x02\x02\u06BD\u06BF\x07\u03F5\x02\x02\u06BE" + - "\u06BD\x03\x02\x02\x02\u06BE\u06BF\x03\x02\x02\x02\u06BF\u06C0\x03\x02" + - "\x02\x02\u06C0\u06E4\x07\u040D\x02\x02\u06C1\u06C3\x07\u0203\x02\x02\u06C2" + - "\u06C4\x07\u03F5\x02\x02\u06C3\u06C2\x03\x02\x02\x02\u06C3\u06C4\x03\x02" + - "\x02\x02\u06C4\u06C5\x03\x02\x02\x02\u06C5\u06E4\t\x1C\x02\x02\u06C6\u06C8" + - "\x07\u021E\x02\x02\u06C7\u06C9\x07\u03F5\x02\x02\u06C8\u06C7\x03\x02\x02" + - "\x02\u06C8\u06C9\x03\x02\x02\x02\u06C9\u06CA\x03\x02\x02\x02\u06CA\u06E4" + - "\t\x1B\x02\x02\u06CB\u06CD\x07\u021F\x02\x02\u06CC\u06CE\x07\u03F5\x02" + - "\x02\u06CD\u06CC\x03\x02\x02\x02\u06CD\u06CE\x03\x02\x02\x02\u06CE\u06CF" + - "\x03\x02\x02\x02\u06CF\u06E4\t\x1B\x02\x02\u06D0\u06D2\x07\u0220\x02\x02" + - "\u06D1\u06D3\x07\u03F5\x02\x02\u06D2\u06D1\x03\x02\x02\x02\u06D2\u06D3" + - "\x03\x02\x02\x02\u06D3\u06D4\x03\x02\x02\x02\u06D4\u06E4\x05\u0214\u010B" + - "\x02\u06D5\u06D6\x07\u022E\x02\x02\u06D6\u06D8\x05\u020E\u0108\x02\u06D7" + - "\u06D9\x05b2\x02\u06D8\u06D7\x03\x02\x02\x02\u06D8\u06D9\x03\x02\x02\x02" + - "\u06D9\u06E4\x03\x02\x02\x02\u06DA\u06E4\x05b2\x02\u06DB\u06DD\x07\xA4" + - "\x02\x02\u06DC\u06DE\x07\u03F5\x02\x02\u06DD\u06DC\x03\x02\x02\x02\u06DD" + - "\u06DE\x03\x02\x02\x02\u06DE\u06DF\x03\x02\x02\x02\u06DF\u06E0\x07\u03FE" + - "\x02\x02\u06E0\u06E1\x05\u0230\u0119\x02\u06E1\u06E2\x07\u03FF\x02\x02" + - "\u06E2\u06E4\x03\x02\x02\x02\u06E3\u0653\x03\x02\x02\x02\u06E3\u0658\x03" + - "\x02\x02\x02\u06E3\u065D\x03\x02\x02\x02\u06E3\u0663\x03\x02\x02\x02\u06E3" + - "\u0671\x03\x02\x02\x02\u06E3\u0677\x03\x02\x02\x02\u06E3\u067E\x03\x02" + - "\x02\x02\u06E3\u0683\x03\x02\x02\x02\u06E3\u0688\x03\x02\x02\x02\u06E3" + - "\u068D\x03\x02\x02\x02\u06E3\u0693\x03\x02\x02\x02\u06E3\u0698\x03\x02" + - "\x02\x02\u06E3\u069D\x03\x02\x02\x02\u06E3\u06A3\x03\x02\x02\x02\u06E3" + - "\u06A8\x03\x02\x02\x02\u06E3\u06AD\x03\x02\x02\x02\u06E3\u06B2\x03\x02" + - "\x02\x02\u06E3\u06B7\x03\x02\x02\x02\u06E3\u06BC\x03\x02\x02\x02\u06E3" + - "\u06C1\x03\x02\x02\x02\u06E3\u06C6\x03\x02\x02\x02\u06E3\u06CB\x03\x02" + - "\x02\x02\u06E3\u06D0\x03\x02\x02\x02\u06E3\u06D5\x03\x02\x02\x02\u06E3" + - "\u06DA\x03\x02\x02\x02\u06E3\u06DB\x03\x02\x02\x02\u06E4a\x03\x02\x02" + - "\x02\u06E5\u06E6\x07\u0223\x02\x02\u06E6\u06E7\t\x12\x02\x02\u06E7c\x03" + - "\x02\x02\x02\u06E8\u06E9\x07u\x02\x02\u06E9\u06EA\x07\x12\x02\x02\u06EA" + - "\u06ED\x05f4\x02\u06EB\u06EC\x07\u01D5\x02\x02\u06EC\u06EE\x05\u0214\u010B" + - "\x02\u06ED\u06EB\x03\x02\x02\x02\u06ED\u06EE\x03\x02\x02\x02\u06EE\u06F6" + - "\x03\x02\x02\x02\u06EF\u06F0\x07\u0228\x02\x02\u06F0\u06F1\x07\x12\x02" + - "\x02\u06F1\u06F4\x05h5\x02\u06F2\u06F3\x07\u0229\x02\x02\u06F3\u06F5\x05" + - "\u0214\u010B\x02\u06F4\u06F2\x03\x02\x02\x02\u06F4\u06F5\x03\x02\x02\x02" + - "\u06F5\u06F7\x03\x02\x02\x02\u06F6\u06EF\x03\x02\x02\x02\u06F6\u06F7\x03" + - "\x02\x02\x02\u06F7\u0703\x03\x02\x02\x02\u06F8\u06F9\x07\u03FE\x02\x02" + - "\u06F9\u06FE\x05j6\x02\u06FA\u06FB\x07\u0400\x02\x02\u06FB\u06FD\x05j" + - "6\x02\u06FC\u06FA\x03\x02\x02\x02\u06FD\u0700\x03\x02\x02\x02\u06FE\u06FC" + - "\x03\x02\x02\x02\u06FE\u06FF\x03\x02\x02\x02\u06FF\u0701\x03\x02\x02\x02" + - "\u0700\u06FE\x03\x02\x02\x02\u0701\u0702\x07\u03FF\x02\x02\u0702\u0704" + - "\x03\x02\x02\x02\u0703\u06F8\x03\x02\x02\x02\u0703\u0704\x03\x02\x02\x02" + - "\u0704e\x03\x02\x02\x02\u0705\u0707\x07\\\x02\x02\u0706\u0705\x03\x02" + - "\x02\x02\u0706\u0707\x03\x02\x02\x02\u0707\u0708\x03\x02\x02\x02\u0708" + - "\u0709\x07\u0178\x02\x02\u0709\u070A\x07\u03FE\x02\x02\u070A\u070B\x05" + - "\u025C\u012F\x02\u070B\u070C\x07\u03FF\x02\x02\u070C\u0733\x03\x02\x02" + - "\x02\u070D\u070F\x07\\\x02\x02\u070E\u070D\x03\x02\x02\x02\u070E\u070F" + - "\x03\x02\x02\x02\u070F\u0710\x03\x02\x02\x02\u0710\u0714\x07T\x02\x02" + - "\u0711\u0712\x07\u0114\x02\x02\u0712\u0713\x07\u03F5\x02\x02\u0713\u0715" + - "\t\x1D\x02\x02\u0714\u0711\x03\x02\x02\x02\u0714\u0715\x03\x02\x02\x02" + - "\u0715\u0716\x03\x02\x02\x02\u0716\u0717\x07\u03FE\x02\x02\u0717\u0718" + - "\x05\u022E\u0118\x02\u0718\u0719\x07\u03FF\x02\x02\u0719\u0733\x03\x02" + - "\x02\x02\u071A\u0724\x07y\x02\x02\u071B\u071C\x07\u03FE\x02\x02\u071C" + - "\u071D\x05\u025C\u012F\x02\u071D\u071E\x07\u03FF\x02\x02\u071E\u0725\x03" + - "\x02\x02\x02\u071F\u0720\x07\u0130\x02\x02\u0720\u0721\x07\u03FE\x02\x02" + - "\u0721\u0722\x05\u022E\u0118\x02\u0722\u0723\x07\u03FF\x02\x02\u0723\u0725" + - "\x03\x02\x02\x02\u0724\u071B\x03\x02\x02\x02\u0724\u071F\x03\x02\x02\x02" + - "\u0725\u0733\x03\x02\x02\x02\u0726\u0730\x07\u0193\x02\x02\u0727\u0728" + - "\x07\u03FE\x02\x02\u0728\u0729\x05\u025C\u012F\x02\u0729\u072A\x07\u03FF" + - "\x02\x02\u072A\u0731\x03\x02\x02\x02\u072B\u072C\x07\u0130\x02\x02\u072C" + - "\u072D\x07\u03FE\x02\x02\u072D\u072E\x05\u022E\u0118\x02\u072E\u072F\x07" + - "\u03FF\x02\x02\u072F\u0731\x03\x02\x02\x02\u0730\u0727\x03\x02\x02\x02" + - "\u0730\u072B\x03\x02\x02\x02\u0731\u0733\x03\x02\x02\x02\u0732\u0706\x03" + - "\x02\x02\x02\u0732\u070E\x03\x02\x02\x02\u0732\u071A\x03\x02\x02\x02\u0732" + - "\u0726\x03\x02\x02\x02\u0733g\x03\x02\x02\x02\u0734\u0736\x07\\\x02\x02" + - "\u0735\u0734\x03\x02\x02\x02\u0735\u0736\x03\x02\x02\x02\u0736\u0737\x03" + - "\x02\x02\x02\u0737\u0738\x07\u0178\x02\x02\u0738\u0739\x07\u03FE\x02\x02" + - "\u0739\u073A\x05\u025C\u012F\x02\u073A\u073B\x07\u03FF\x02\x02\u073B\u074A" + - "\x03\x02\x02\x02\u073C\u073E\x07\\\x02\x02\u073D\u073C\x03\x02\x02\x02" + - "\u073D\u073E\x03\x02\x02\x02\u073E\u073F\x03\x02\x02\x02\u073F\u0743\x07" + - "T\x02\x02\u0740\u0741\x07\u0114\x02\x02\u0741\u0742\x07\u03F5\x02\x02" + - "\u0742\u0744\t\x1D\x02\x02\u0743\u0740\x03\x02\x02\x02\u0743\u0744\x03" + - "\x02\x02\x02\u0744\u0745\x03\x02\x02\x02\u0745\u0746\x07\u03FE\x02\x02" + - "\u0746\u0747\x05\u022E\u0118\x02\u0747\u0748\x07\u03FF\x02\x02\u0748\u074A" + - "\x03\x02\x02\x02\u0749\u0735\x03\x02\x02\x02\u0749\u073D\x03\x02\x02\x02" + - "\u074Ai\x03\x02\x02\x02\u074B\u074C\x07u\x02\x02\u074C\u074D\x05\u020E" + - "\u0108\x02\u074D\u074E\x07\xAC\x02\x02\u074E\u074F\x07\u0191\x02\x02\u074F" + - "\u0750\x07\u0231\x02\x02\u0750\u0751\x07\u03FE\x02\x02\u0751\u0756\x05" + - "l7\x02\u0752\u0753\x07\u0400\x02\x02\u0753\u0755\x05l7\x02\u0754\u0752" + - "\x03\x02\x02\x02\u0755\u0758\x03\x02\x02\x02\u0756\u0754\x03\x02\x02\x02" + - "\u0756\u0757\x03\x02\x02\x02\u0757\u0759\x03\x02\x02\x02\u0758\u0756\x03" + - "\x02\x02\x02\u0759\u075D\x07\u03FF\x02\x02\u075A\u075C\x05r:\x02\u075B" + - "\u075A\x03\x02\x02\x02\u075C\u075F\x03\x02\x02\x02\u075D\u075B\x03\x02" + - "\x02\x02\u075D\u075E\x03\x02\x02\x02\u075E\u0768\x03\x02\x02\x02\u075F" + - "\u075D\x03\x02\x02\x02\u0760\u0765\x05p9\x02\u0761\u0762\x07\u0400\x02" + - "\x02\u0762\u0764\x05p9\x02\u0763\u0761\x03\x02\x02\x02\u0764\u0767\x03" + - "\x02\x02\x02\u0765\u0763\x03\x02\x02\x02\u0765\u0766\x03\x02\x02\x02\u0766" + - "\u0769\x03\x02\x02\x02\u0767\u0765\x03\x02\x02\x02\u0768\u0760\x03\x02" + - "\x02\x02\u0768\u0769\x03\x02\x02\x02\u0769\u07CF\x03\x02\x02\x02\u076A" + - "\u076B\x07u\x02\x02\u076B\u076C\x05\u020E\u0108\x02\u076C\u076D\x07\xAC" + - "\x02\x02\u076D\u076E\x07\u0191\x02\x02\u076E\u076F\x07\u0231\x02\x02\u076F" + - "\u0773\x05l7\x02\u0770\u0772\x05r:\x02\u0771\u0770\x03\x02\x02\x02\u0772" + - "\u0775\x03\x02\x02\x02\u0773\u0771\x03\x02\x02\x02\u0773\u0774\x03\x02" + - "\x02\x02\u0774\u077E\x03\x02\x02\x02\u0775\u0773\x03\x02\x02\x02\u0776" + - "\u077B\x05p9\x02\u0777\u0778\x07\u0400\x02\x02\u0778\u077A\x05p9\x02\u0779" + - "\u0777\x03\x02\x02\x02\u077A\u077D\x03\x02\x02\x02\u077B\u0779\x03\x02" + - "\x02\x02\u077B\u077C\x03\x02\x02\x02\u077C\u077F\x03\x02\x02\x02\u077D" + - "\u077B\x03\x02\x02\x02\u077E\u0776\x03\x02\x02\x02\u077E\u077F\x03\x02" + - "\x02\x02\u077F\u07CF\x03\x02\x02\x02\u0780\u0781\x07u\x02\x02\u0781\u0782" + - "\x05\u020E\u0108\x02\u0782\u0783\x07\xAC\x02\x02\u0783\u0784\x07I\x02" + - "\x02\u0784\u0785\x07\u03FE\x02\x02\u0785\u078A\x05l7\x02\u0786\u0787\x07" + - "\u0400\x02\x02\u0787\u0789\x05l7\x02\u0788\u0786\x03\x02\x02\x02\u0789" + - "\u078C\x03\x02\x02\x02\u078A\u0788\x03\x02\x02\x02\u078A\u078B\x03\x02" + - "\x02\x02\u078B\u078D\x03\x02\x02\x02\u078C\u078A\x03\x02\x02\x02\u078D" + - "\u0791\x07\u03FF\x02\x02\u078E\u0790\x05r:\x02\u078F\u078E\x03\x02\x02" + - "\x02\u0790\u0793\x03\x02\x02\x02\u0791\u078F\x03\x02\x02\x02\u0791\u0792" + - "\x03\x02\x02\x02\u0792\u079C\x03\x02\x02\x02\u0793\u0791\x03\x02\x02\x02" + - "\u0794\u0799\x05p9\x02\u0795\u0796\x07\u0400\x02\x02\u0796\u0798\x05p" + - "9\x02\u0797\u0795\x03\x02\x02\x02\u0798\u079B\x03\x02\x02\x02\u0799\u0797" + - "\x03\x02\x02\x02\u0799\u079A\x03\x02\x02\x02\u079A\u079D\x03\x02\x02\x02" + - "\u079B\u0799\x03\x02\x02\x02\u079C\u0794\x03\x02\x02\x02\u079C\u079D\x03" + - "\x02\x02\x02\u079D\u07CF\x03\x02\x02\x02\u079E\u079F\x07u\x02\x02\u079F" + - "\u07A0\x05\u020E\u0108\x02\u07A0\u07A1\x07\xAC\x02\x02\u07A1\u07A2\x07" + - "I\x02\x02\u07A2\u07A3\x07\u03FE\x02\x02\u07A3\u07A8\x05n8\x02\u07A4\u07A5" + - "\x07\u0400\x02\x02\u07A5\u07A7\x05n8\x02\u07A6\u07A4\x03\x02\x02\x02\u07A7" + - "\u07AA\x03\x02\x02\x02\u07A8\u07A6\x03\x02\x02\x02\u07A8\u07A9\x03\x02" + - "\x02\x02\u07A9\u07AB\x03\x02\x02\x02\u07AA\u07A8\x03\x02\x02\x02\u07AB" + - "\u07AF\x07\u03FF\x02\x02\u07AC\u07AE\x05r:\x02\u07AD\u07AC\x03\x02\x02" + - "\x02\u07AE\u07B1\x03\x02\x02\x02\u07AF\u07AD\x03\x02\x02\x02\u07AF\u07B0" + - "\x03\x02\x02\x02\u07B0\u07BA\x03\x02\x02\x02\u07B1\u07AF\x03\x02\x02\x02" + - "\u07B2\u07B7\x05p9\x02\u07B3\u07B4\x07\u0400\x02\x02\u07B4\u07B6\x05p" + - "9\x02\u07B5\u07B3\x03\x02\x02\x02\u07B6\u07B9\x03\x02\x02\x02\u07B7\u07B5" + - "\x03\x02\x02\x02\u07B7\u07B8\x03\x02\x02\x02\u07B8\u07BB\x03\x02\x02\x02" + - "\u07B9\u07B7\x03\x02\x02\x02\u07BA\u07B2\x03\x02\x02\x02\u07BA\u07BB\x03" + - "\x02\x02\x02\u07BB\u07CF\x03\x02\x02\x02\u07BC\u07BD\x07u\x02\x02\u07BD" + - "\u07C1\x05\u020E\u0108\x02\u07BE\u07C0\x05r:\x02\u07BF\u07BE\x03\x02\x02" + - "\x02\u07C0\u07C3\x03\x02\x02\x02\u07C1\u07BF\x03\x02\x02\x02\u07C1\u07C2" + - "\x03\x02\x02\x02\u07C2\u07CC\x03\x02\x02\x02\u07C3\u07C1\x03\x02\x02\x02" + - "\u07C4\u07C9\x05p9\x02\u07C5\u07C6\x07\u0400\x02\x02\u07C6\u07C8\x05p" + - "9\x02\u07C7\u07C5\x03\x02\x02\x02\u07C8\u07CB\x03\x02\x02\x02\u07C9\u07C7" + - "\x03\x02\x02\x02\u07C9\u07CA\x03\x02\x02\x02\u07CA\u07CD\x03\x02\x02\x02" + - "\u07CB\u07C9\x03\x02\x02\x02\u07CC\u07C4\x03\x02\x02\x02\u07CC\u07CD\x03" + - "\x02\x02\x02\u07CD\u07CF\x03\x02\x02\x02\u07CE\u074B\x03\x02\x02\x02\u07CE" + - "\u076A\x03\x02\x02\x02\u07CE\u0780\x03\x02\x02\x02\u07CE\u079E\x03\x02" + - "\x02\x02\u07CE\u07BC\x03\x02\x02\x02\u07CFk\x03\x02\x02\x02\u07D0\u07D4" + - "\x05\u0220\u0111\x02\u07D1\u07D4\x05\u025C\u012F\x02\u07D2\u07D4\x07e" + - "\x02\x02\u07D3\u07D0\x03\x02\x02\x02\u07D3\u07D1\x03\x02\x02\x02\u07D3" + - "\u07D2\x03\x02\x02\x02\u07D4m\x03\x02\x02\x02\u07D5\u07D6\x07\u03FE\x02" + - "\x02\u07D6\u07D9\x05l7\x02\u07D7\u07D8\x07\u0400\x02\x02\u07D8\u07DA\x05" + - "l7\x02\u07D9\u07D7\x03\x02\x02\x02\u07DA\u07DB\x03\x02\x02\x02\u07DB\u07D9" + - "\x03\x02\x02\x02\u07DB\u07DC\x03\x02\x02\x02\u07DC\u07DD\x03\x02\x02\x02" + - "\u07DD\u07DE\x07\u03FF\x02\x02\u07DEo\x03\x02\x02\x02\u07DF\u07E0\x07" + - "\u0228\x02\x02\u07E0\u07E4\x05\u020E\u0108\x02\u07E1\u07E3\x05r:\x02\u07E2" + - "\u07E1\x03\x02\x02\x02\u07E3\u07E6\x03\x02\x02\x02\u07E4\u07E2\x03\x02" + - "\x02\x02\u07E4\u07E5\x03\x02\x02\x02\u07E5q\x03\x02\x02\x02\u07E6\u07E4" + - "\x03\x02\x02\x02\u07E7\u07E9\x07\u0223\x02\x02\u07E8\u07E7\x03\x02\x02" + - "\x02\u07E8\u07E9\x03\x02\x02\x02\u07E9\u07EA\x03\x02\x02\x02\u07EA\u07EC" + - "\x07\u0158\x02\x02\u07EB\u07ED\x07\u03F5\x02\x02\u07EC\u07EB\x03\x02\x02" + - "\x02\u07EC\u07ED\x03\x02\x02\x02\u07ED\u07EE\x03\x02\x02\x02\u07EE\u0815" + - "\x05\u0204\u0103\x02\u07EF\u07F1\x07\u0133\x02\x02\u07F0\u07F2\x07\u03F5" + - "\x02\x02\u07F1\u07F0\x03\x02\x02\x02\u07F1\u07F2\x03\x02\x02\x02\u07F2" + - "\u07F3\x03\x02\x02\x02\u07F3\u0815\x07\u040D\x02\x02\u07F4\u07F5\x07\u0145" + - "\x02\x02\u07F5\u07F7\x07\u014C\x02\x02\u07F6\u07F8\x07\u03F5\x02\x02\u07F7" + - "\u07F6\x03\x02\x02\x02\u07F7\u07F8\x03\x02\x02\x02\u07F8\u07F9\x03\x02" + - "\x02\x02\u07F9\u0815\x07\u040D\x02\x02\u07FA\u07FB\x07J\x02\x02\u07FB" + - "\u07FD\x07\u014C\x02\x02\u07FC\u07FE\x07\u03F5\x02\x02\u07FD\u07FC\x03" + - "\x02\x02\x02\u07FD\u07FE\x03\x02\x02\x02\u07FE\u07FF\x03\x02\x02\x02\u07FF" + - "\u0815\x07\u040D\x02\x02\u0800\u0802\x07\u01AE\x02\x02\u0801\u0803\x07" + - "\u03F5\x02\x02\u0802\u0801\x03\x02\x02\x02\u0802\u0803\x03\x02\x02\x02" + - "\u0803\u0804\x03\x02\x02\x02\u0804\u0815\x05\u0214\u010B\x02\u0805\u0807" + - "\x07\u01B7\x02\x02\u0806\u0808\x07\u03F5\x02\x02\u0807\u0806\x03\x02\x02" + - "\x02\u0807\u0808\x03\x02\x02\x02\u0808\u0809\x03\x02\x02\x02\u0809\u0815" + - "\x05\u0214\u010B\x02\u080A\u080C\x07\u022E\x02\x02\u080B\u080D\x07\u03F5" + - "\x02\x02\u080C\u080B\x03\x02\x02\x02\u080C\u080D\x03\x02\x02\x02\u080D" + - "\u080E\x03\x02\x02\x02\u080E\u0815\x05\u020E\u0108\x02\u080F\u0811\x07" + - "\u01C3\x02\x02\u0810\u0812\x07\u03F5\x02\x02\u0811\u0810\x03\x02\x02\x02" + - "\u0811\u0812\x03\x02\x02\x02\u0812\u0813\x03\x02\x02\x02\u0813\u0815\x05" + - "\u020E\u0108\x02\u0814\u07E8\x03\x02\x02\x02\u0814\u07EF\x03\x02\x02\x02" + - "\u0814\u07F4\x03\x02\x02\x02\u0814\u07FA\x03\x02\x02\x02\u0814\u0800\x03" + - "\x02\x02\x02\u0814\u0805\x03\x02\x02\x02\u0814\u080A\x03\x02\x02\x02\u0814" + - "\u080F\x03\x02\x02\x02\u0815s\x03\x02\x02\x02\u0816\u0817\x07\t\x02\x02" + - "\u0817\u0819\t\x02\x02\x02\u0818\u081A\x05\u020E\u0108\x02\u0819\u0818" + - "\x03\x02\x02\x02\u0819\u081A\x03\x02\x02\x02\u081A\u081C\x03\x02\x02\x02" + - "\u081B\u081D\x054\x1B\x02\u081C\u081B\x03\x02\x02\x02\u081D\u081E\x03" + - "\x02\x02\x02\u081E\u081C\x03\x02\x02\x02\u081E\u081F\x03\x02\x02\x02\u081F" + - "\u0829\x03\x02\x02\x02\u0820\u0821\x07\t\x02\x02\u0821\u0822\t\x02\x02" + - "\x02\u0822\u0823\x05\u020E\u0108\x02\u0823\u0824\x07\u023D\x02\x02\u0824" + - "\u0825\x07\u0145\x02\x02\u0825\u0826\x07\u014C\x02\x02\u0826\u0827\x07" + - "\u01BD\x02\x02\u0827\u0829\x03\x02\x02\x02\u0828\u0816\x03\x02\x02\x02" + - "\u0828\u0820\x03\x02\x02\x02\u0829u\x03\x02\x02\x02\u082A\u082C\x07\t" + - "\x02\x02\u082B\u082D\x056\x1C\x02\u082C\u082B\x03\x02\x02\x02\u082C\u082D" + - "\x03\x02\x02\x02\u082D\u082E\x03\x02\x02\x02\u082E\u082F\x07\u015E\x02" + - "\x02\u082F\u0833\x05\u01F4\xFB\x02\u0830\u0831\x07l\x02\x02\u0831\u0832" + - "\x07\u0205\x02\x02\u0832\u0834\x058\x1D\x02\u0833\u0830\x03\x02\x02\x02" + - "\u0833\u0834\x03\x02\x02\x02\u0834\u083B\x03\x02\x02\x02\u0835\u0836\x07" + - "l\x02\x02\u0836\u0838\x07\u0136\x02\x02\u0837\u0839\x07h\x02\x02\u0838" + - "\u0837\x03\x02\x02\x02\u0838\u0839\x03\x02\x02\x02\u0839\u083A\x03\x02" + - "\x02\x02\u083A\u083C\x07\u01DE\x02\x02\u083B\u0835\x03\x02\x02\x02\u083B" + - "\u083C\x03\x02\x02\x02\u083C\u0840\x03\x02\x02\x02\u083D\u083E\x07\x7F" + - "\x02\x02\u083E\u083F\x07\x9F\x02\x02\u083F\u0841\x05\u01F4\xFB\x02\u0840" + - "\u083D\x03\x02\x02\x02\u0840\u0841\x03\x02\x02\x02\u0841\u0843\x03\x02" + - "\x02\x02\u0842\u0844\x05@!\x02\u0843\u0842\x03\x02\x02\x02\u0843\u0844" + - "\x03\x02\x02\x02\u0844\u0847\x03\x02\x02\x02\u0845\u0846\x07\u0133\x02" + - "\x02\u0846\u0848\x07\u040D\x02\x02\u0847\u0845\x03\x02\x02\x02\u0847\u0848" + - "\x03\x02\x02\x02\u0848\u084B\x03\x02\x02\x02\u0849\u084A\x07\u0150\x02" + - "\x02\u084A\u084C\x05\u015C\xAF\x02\u084B\u0849\x03\x02\x02\x02\u084B\u084C" + - "\x03\x02\x02\x02\u084Cw\x03\x02\x02\x02\u084D\u084E\x07\t\x02\x02\u084E" + - "\u084F\x07\u0172\x02\x02\u084F\u0853\x05\u01F4\xFB\x02\u0850\u0852\x05" + - "J&\x02\u0851\u0850\x03\x02\x02\x02\u0852\u0855\x03\x02\x02\x02\u0853\u0851" + - "\x03\x02\x02\x02\u0853\u0854\x03\x02\x02\x02\u0854y\x03\x02\x02\x02\u0855" + - "\u0853\x03\x02\x02\x02\u0856\u0857\x07\t\x02\x02\u0857\u0858\x07\u0184" + - "\x02\x02\u0858\u0859\x07\u0200\x02\x02\u0859\u085A\x07\u02AB\x02\x02\u085A" + - "\u085B\x07\u0197\x02\x02\u085B\u085C\x07T\x02\x02\u085C{\x03\x02\x02\x02" + - "\u085D\u085E\x07\t\x02\x02\u085E\u085F\x07\u0195\x02\x02\u085F\u0860\x07" + - "D\x02\x02\u0860\u0861\x05\u020E\u0108\x02\u0861\u0862\x07\x07\x02\x02" + - "\u0862\u0863\x07\u0238\x02\x02\u0863\u0869\x07\u040D\x02\x02\u0864\u0866" + - "\x07\u0180\x02\x02\u0865\u0867\x07\u03F5\x02\x02\u0866\u0865\x03\x02\x02" + - "\x02\u0866\u0867\x03\x02\x02\x02\u0867\u0868\x03\x02\x02\x02\u0868\u086A" + - "\x05\u0216\u010C\x02\u0869\u0864\x03\x02\x02\x02\u0869\u086A\x03\x02\x02" + - "\x02\u086A\u086C\x03\x02\x02\x02\u086B\u086D\x07\u0247\x02\x02\u086C\u086B" + - "\x03\x02\x02\x02\u086C\u086D\x03\x02\x02\x02\u086D\u086E\x03\x02\x02\x02" + - "\u086E\u0870\x07\u0158\x02\x02\u086F\u0871\x07\u03F5\x02\x02\u0870\u086F" + - "\x03\x02\x02\x02\u0870\u0871\x03\x02\x02\x02\u0871\u0872\x03\x02\x02\x02" + - "\u0872\u0873\x05\u0204\u0103\x02\u0873}\x03\x02\x02\x02\u0874\u0875\x07" + - "\t\x02\x02\u0875\u0876\x07w\x02\x02\u0876\u087A\x05\u01F4\xFB\x02\u0877" + - "\u0879\x05J&\x02\u0878\u0877\x03\x02\x02\x02\u0879\u087C\x03\x02\x02\x02" + - "\u087A\u0878\x03\x02\x02\x02\u087A\u087B\x03\x02\x02\x02\u087B\x7F\x03" + - "\x02\x02\x02\u087C\u087A\x03\x02\x02\x02\u087D\u087E\x07\t\x02\x02\u087E" + - "\u087F\x07\u0207\x02\x02\u087F\u0880\x05\u020E\u0108\x02\u0880\u0881\x07" + - "\u01CE\x02\x02\u0881\u0882\x07\u03FE\x02\x02\u0882\u0887\x05L\'\x02\u0883" + - "\u0884\x07\u0400\x02\x02\u0884\u0886\x05L\'\x02\u0885\u0883\x03\x02\x02" + - "\x02\u0886\u0889\x03\x02\x02\x02\u0887\u0885\x03\x02\x02\x02\u0887\u0888" + - "\x03\x02\x02\x02\u0888\u088A\x03\x02\x02\x02\u0889\u0887\x03\x02\x02\x02" + - "\u088A\u088B\x07\u03FF\x02\x02\u088B\x81\x03\x02\x02\x02\u088C\u088E\x07" + - "\t\x02\x02\u088D\u088F\t\x03\x02\x02\u088E\u088D\x03\x02\x02\x02\u088E" + - "\u088F\x03\x02\x02\x02\u088F\u0891\x03\x02\x02\x02\u0890\u0892\x07H\x02" + - "\x02\u0891\u0890\x03\x02\x02\x02\u0891\u0892\x03\x02\x02\x02\u0892\u0893" + - "\x03\x02\x02\x02\u0893\u0894\x07\x9C\x02\x02\u0894\u089D\x05\u01F6\xFC" + - "\x02\u0895\u089A\x05\x88E\x02\u0896\u0897\x07\u0400\x02\x02\u0897\u0899" + - "\x05\x88E\x02\u0898\u0896\x03\x02\x02\x02\u0899\u089C\x03\x02\x02\x02" + - "\u089A\u0898\x03\x02\x02\x02\u089A\u089B\x03\x02\x02\x02\u089B\u089E\x03" + - "\x02\x02\x02\u089C\u089A\x03\x02\x02\x02\u089D\u0895\x03\x02\x02\x02\u089D" + - "\u089E\x03\x02\x02\x02\u089E\u08A0\x03\x02\x02\x02\u089F\u08A1\x05d3\x02" + - "\u08A0\u089F\x03\x02\x02\x02\u08A0\u08A1\x03\x02\x02\x02\u08A1\x83\x03" + - "\x02\x02\x02\u08A2\u08A3\x07\t\x02\x02\u08A3\u08A4\x07\u022E\x02\x02\u08A4" + - "\u08A5\x05\u020E\u0108\x02\u08A5\u08A6\t\x1E\x02\x02\u08A6\u08A7\x07\u0146" + - "\x02\x02\u08A7\u08AB\x07\u040D\x02\x02\u08A8\u08A9\x07\u0180\x02\x02\u08A9" + - "\u08AA\x07\u03F5\x02\x02\u08AA\u08AC\x05\u0216\u010C\x02\u08AB\u08A8\x03" + - "\x02\x02\x02\u08AB\u08AC\x03\x02\x02\x02\u08AC\u08AE\x03\x02\x02\x02\u08AD" + - "\u08AF\x07\u0247\x02\x02\u08AE\u08AD\x03\x02\x02\x02\u08AE\u08AF\x03\x02" + - "\x02\x02\u08AF\u08B0\x03\x02\x02\x02\u08B0\u08B2\x07\u0158\x02\x02\u08B1" + - "\u08B3\x07\u03F5\x02\x02\u08B2\u08B1\x03\x02\x02\x02\u08B2\u08B3\x03\x02" + - "\x02\x02\u08B3\u08B4\x03\x02\x02\x02\u08B4\u08B5\x05\u0204\u0103\x02\u08B5" + - "\x85\x03\x02\x02\x02\u08B6\u08BA\x07\t\x02\x02\u08B7\u08B8\x07\u0114\x02" + - "\x02\u08B8\u08B9\x07\u03F5\x02\x02\u08B9\u08BB\t\f\x02\x02\u08BA\u08B7" + - "\x03\x02\x02\x02\u08BA\u08BB\x03\x02\x02\x02\u08BB\u08BD\x03\x02\x02\x02" + - "\u08BC\u08BE\x056\x1C\x02\u08BD\u08BC\x03\x02\x02\x02\u08BD\u08BE\x03" + - "\x02\x02\x02\u08BE\u08C2\x03\x02\x02\x02\u08BF\u08C0\x07\x91\x02\x02\u08C0" + - "\u08C1\x07\u0206\x02\x02\u08C1\u08C3\t\r\x02\x02\u08C2\u08BF\x03\x02\x02" + - "\x02\u08C2\u08C3\x03\x02\x02\x02\u08C3\u08C4\x03\x02\x02\x02\u08C4\u08C5" + - "\x07\u0244\x02\x02\u08C5\u08CA\x05\u01F4\xFB\x02\u08C6\u08C7\x07\u03FE" + - "\x02\x02\u08C7\u08C8\x05\u022E\u0118\x02\u08C8\u08C9\x07\u03FF\x02\x02" + - "\u08C9\u08CB\x03\x02\x02\x02\u08CA\u08C6\x03\x02\x02\x02\u08CA\u08CB\x03" + - "\x02\x02\x02\u08CB\u08CC\x03\x02\x02\x02\u08CC\u08CD\x07\r\x02\x02\u08CD" + - "\u08D4\x05\xB6\\\x02\u08CE\u08D0\x07\xB0\x02\x02\u08CF\u08D1\t\x0E\x02" + - "\x02\u08D0\u08CF\x03\x02\x02\x02\u08D0\u08D1\x03\x02\x02\x02\u08D1\u08D2" + - "\x03\x02\x02\x02\u08D2\u08D3\x07\x19\x02\x02\u08D3\u08D5\x07n\x02\x02" + - "\u08D4\u08CE\x03\x02\x02\x02\u08D4\u08D5\x03\x02\x02\x02\u08D5\x87\x03" + - "\x02\x02\x02\u08D6\u08DD\x05`1\x02\u08D7\u08D9\x07\u0400\x02\x02\u08D8" + - "\u08D7\x03\x02\x02\x02\u08D8\u08D9\x03\x02\x02\x02\u08D9\u08DA\x03\x02" + - "\x02\x02\u08DA\u08DC\x05`1\x02\u08DB\u08D8\x03\x02\x02\x02\u08DC\u08DF" + - "\x03\x02\x02\x02\u08DD\u08DB\x03\x02\x02\x02\u08DD\u08DE\x03\x02\x02\x02" + - "\u08DE\u0A42\x03\x02\x02\x02\u08DF\u08DD\x03\x02\x02\x02\u08E0\u08E2\x07" + - "\x07\x02\x02\u08E1\u08E3\x07\x1B\x02\x02\u08E2\u08E1\x03\x02\x02\x02\u08E2" + - "\u08E3\x03\x02\x02\x02\u08E3\u08E4\x03\x02\x02\x02\u08E4\u08E5\x05\u020E" + - "\u0108\x02\u08E5\u08E9\x05R*\x02\u08E6\u08EA\x07\u016C\x02\x02"; - private static readonly _serializedATNSegment6: string = - "\u08E7\u08E8\x07\u0112\x02\x02\u08E8\u08EA\x05\u020E\u0108\x02\u08E9\u08E6" + - "\x03\x02\x02\x02\u08E9\u08E7\x03\x02\x02\x02\u08E9\u08EA\x03\x02\x02\x02" + - "\u08EA\u0A42\x03\x02\x02\x02\u08EB\u08ED\x07\x07\x02\x02\u08EC\u08EE\x07" + - "\x1B\x02\x02\u08ED\u08EC\x03\x02\x02\x02\u08ED\u08EE\x03\x02\x02\x02\u08EE" + - "\u08EF\x03\x02\x02\x02\u08EF\u08F0\x07\u03FE\x02\x02\u08F0\u08F1\x05\u020E" + - "\u0108\x02\u08F1\u08F8\x05R*\x02\u08F2\u08F3\x07\u0400\x02\x02\u08F3\u08F4" + - "\x05\u020E\u0108\x02\u08F4\u08F5\x05R*\x02\u08F5\u08F7\x03\x02\x02\x02" + - "\u08F6\u08F2\x03\x02\x02\x02\u08F7\u08FA\x03\x02\x02\x02\u08F8\u08F6\x03" + - "\x02\x02\x02\u08F8\u08F9\x03\x02\x02\x02\u08F9\u08FB\x03\x02\x02\x02\u08FA" + - "\u08F8\x03\x02\x02\x02\u08FB\u08FC\x07\u03FF\x02\x02\u08FC\u0A42\x03\x02" + - "\x02\x02\u08FD\u08FE\x07\x07\x02\x02\u08FE\u0900\t\x14\x02\x02\u08FF\u0901" + - "\x05\u020E\u0108\x02\u0900\u08FF\x03\x02\x02\x02\u0900\u0901\x03\x02\x02" + - "\x02\u0901\u0903\x03\x02\x02\x02\u0902\u0904\x05B\"\x02\u0903\u0902\x03" + - "\x02\x02\x02\u0903\u0904\x03\x02\x02\x02\u0904\u0905\x03\x02\x02\x02\u0905" + - "\u0909\x05\u0232\u011A\x02\u0906\u0908\x05D#\x02\u0907\u0906\x03\x02\x02" + - "\x02\u0908\u090B\x03\x02\x02\x02\u0909\u0907\x03\x02\x02\x02\u0909\u090A" + - "\x03\x02\x02\x02\u090A\u0A42\x03\x02\x02\x02\u090B\u0909\x03\x02\x02\x02" + - "\u090C\u0911\x07\x07\x02\x02\u090D\u090F\x07\x1D\x02\x02\u090E\u0910\x05" + - "\u020E\u0108\x02\u090F\u090E\x03\x02\x02\x02\u090F\u0910\x03\x02\x02\x02" + - "\u0910\u0912\x03\x02\x02\x02\u0911\u090D\x03\x02\x02\x02\u0911\u0912\x03" + - "\x02\x02\x02\u0912\u0913\x03\x02\x02\x02\u0913\u0914\x07v\x02\x02\u0914" + - "\u0916\x07T\x02\x02\u0915\u0917\x05\u020E\u0108\x02\u0916\u0915\x03\x02" + - "\x02\x02\u0916\u0917\x03\x02\x02\x02\u0917\u0919\x03\x02\x02\x02\u0918" + - "\u091A\x05B\"\x02\u0919\u0918\x03\x02\x02\x02\u0919\u091A\x03\x02\x02" + - "\x02\u091A\u091B\x03\x02\x02\x02\u091B\u091F\x05\u0232\u011A\x02\u091C" + - "\u091E\x05D#\x02\u091D\u091C\x03\x02\x02\x02\u091E\u0921\x03\x02\x02\x02" + - "\u091F\u091D\x03\x02\x02\x02\u091F\u0920\x03\x02\x02\x02\u0920\u0A42\x03" + - "\x02\x02\x02\u0921\u091F\x03\x02\x02\x02\u0922\u0927\x07\x07\x02\x02\u0923" + - "\u0925\x07\x1D\x02\x02\u0924\u0926\x05\u020E\u0108\x02\u0925\u0924\x03" + - "\x02\x02\x02\u0925\u0926\x03\x02\x02\x02\u0926\u0928\x03\x02\x02\x02\u0927" + - "\u0923\x03\x02\x02\x02\u0927\u0928\x03\x02\x02\x02\u0928\u0929\x03\x02" + - "\x02\x02\u0929\u092B\x07\xA5\x02\x02\u092A\u092C\t\x14\x02\x02\u092B\u092A" + - "\x03\x02\x02\x02\u092B\u092C\x03\x02\x02\x02\u092C\u092E\x03\x02\x02\x02" + - "\u092D\u092F\x05\u020E\u0108\x02\u092E\u092D\x03\x02\x02\x02\u092E\u092F" + - "\x03\x02\x02\x02\u092F\u0931\x03\x02\x02\x02\u0930\u0932\x05B\"\x02\u0931" + - "\u0930\x03\x02\x02\x02\u0931\u0932\x03\x02\x02\x02\u0932\u0933\x03\x02" + - "\x02\x02\u0933\u0937\x05\u0232\u011A\x02\u0934\u0936\x05D#\x02\u0935\u0934" + - "\x03\x02\x02\x02\u0936\u0939\x03\x02\x02\x02\u0937\u0935\x03\x02\x02\x02" + - "\u0937\u0938\x03\x02\x02\x02\u0938\u0A42\x03\x02\x02\x02\u0939\u0937\x03" + - "\x02\x02\x02\u093A\u093B\x07\x07\x02\x02\u093B\u093D\t\x16\x02\x02\u093C" + - "\u093E\t\x14\x02\x02\u093D\u093C\x03\x02\x02\x02\u093D\u093E\x03\x02\x02" + - "\x02\u093E\u0940\x03\x02\x02\x02\u093F\u0941\x05\u020E\u0108\x02\u0940" + - "\u093F\x03\x02\x02\x02\u0940\u0941\x03\x02\x02\x02\u0941\u0942\x03\x02" + - "\x02\x02\u0942\u0946\x05\u0232\u011A\x02\u0943\u0945\x05D#\x02\u0944\u0943" + - "\x03\x02\x02\x02\u0945\u0948\x03\x02\x02\x02\u0946\u0944\x03\x02\x02\x02" + - "\u0946\u0947\x03\x02\x02\x02\u0947\u0A42\x03\x02\x02\x02\u0948\u0946\x03" + - "\x02\x02\x02\u0949\u094E\x07\x07\x02\x02\u094A\u094C\x07\x1D\x02\x02\u094B" + - "\u094D\x05\u020E\u0108\x02\u094C\u094B\x03\x02\x02\x02\u094C\u094D\x03" + - "\x02\x02\x02\u094D\u094F\x03\x02\x02\x02\u094E\u094A\x03\x02\x02\x02\u094E" + - "\u094F\x03\x02\x02\x02\u094F\u0950\x03\x02\x02\x02\u0950\u0951\x07>\x02" + - "\x02\u0951\u0953\x07T\x02\x02\u0952\u0954\x05\u020E\u0108\x02\u0953\u0952" + - "\x03\x02\x02\x02\u0953\u0954\x03\x02\x02\x02\u0954\u0955\x03\x02\x02\x02" + - "\u0955\u0956\x05\u0232\u011A\x02\u0956\u0957\x05X-\x02\u0957\u0A42\x03" + - "\x02\x02\x02\u0958\u095D\x07\x07\x02\x02\u0959\u095B\x07\x1D\x02\x02\u095A" + - "\u095C\x05\u020E\u0108\x02\u095B\u095A\x03\x02\x02\x02\u095B\u095C\x03" + - "\x02\x02\x02\u095C\u095E\x03\x02\x02\x02\u095D\u0959\x03\x02\x02\x02\u095D" + - "\u095E\x03\x02\x02\x02\u095E\u095F\x03\x02\x02\x02\u095F\u0960\x07\x19" + - "\x02\x02\u0960\u0961\x07\u03FE\x02\x02\u0961\u0962\x05\u025C\u012F\x02" + - "\u0962\u0963\x07\u03FF\x02\x02\u0963\u0A42\x03\x02\x02\x02\u0964\u0966" + - "\x07\u0114\x02\x02\u0965\u0967\x07\u03F5\x02\x02\u0966\u0965\x03\x02\x02" + - "\x02\u0966\u0967\x03\x02\x02\x02\u0967\u0968\x03\x02\x02\x02\u0968\u0A42" + - "\t\x05\x02\x02\u0969\u096B\x07\t\x02\x02\u096A\u096C\x07\x1B\x02\x02\u096B" + - "\u096A\x03\x02\x02\x02\u096B\u096C\x03\x02\x02\x02\u096C\u096D\x03\x02" + - "\x02\x02\u096D\u0973\x05\u020E\u0108\x02\u096E\u096F\x07\x8C\x02\x02\u096F" + - "\u0970\x07(\x02\x02\u0970\u0974\x05\u023E\u0120\x02\u0971\u0972\x071\x02" + - "\x02\u0972\u0974\x07(\x02\x02\u0973\u096E\x03\x02\x02\x02\u0973\u0971" + - "\x03\x02\x02\x02\u0974\u0A42\x03\x02\x02\x02\u0975\u0977\x07\x17\x02\x02" + - "\u0976\u0978\x07\x1B\x02\x02\u0977\u0976\x03\x02\x02\x02\u0977\u0978\x03" + - "\x02\x02\x02\u0978\u0979\x03\x02\x02\x02\u0979\u097A\x05\u020E\u0108\x02" + - "\u097A\u097B\x05\u020E\u0108\x02\u097B\u097F\x05R*\x02\u097C\u0980\x07" + - "\u016C\x02\x02\u097D\u097E\x07\u0112\x02\x02\u097E\u0980\x05\u020E\u0108" + - "\x02\u097F\u097C\x03\x02\x02\x02\u097F\u097D\x03\x02\x02\x02\u097F\u0980" + - "\x03\x02\x02\x02\u0980\u0A42\x03\x02\x02\x02\u0981\u0982\x07\x7F\x02\x02" + - "\u0982\u0983\x07\x1B\x02\x02\u0983\u0984\x05\u020E\u0108\x02\u0984\u0985" + - "\x07\x9F\x02\x02\u0985\u0986\x05\u020E\u0108\x02\u0986\u0A42\x03\x02\x02" + - "\x02\u0987\u0989\x07_\x02\x02\u0988\u098A\x07\u03F5\x02\x02\u0989\u0988" + - "\x03\x02\x02\x02\u0989\u098A\x03\x02\x02\x02\u098A\u098B\x03\x02\x02\x02" + - "\u098B\u0A42\t\x06\x02\x02\u098C\u098E\x07\u01B9\x02\x02\u098D\u098F\x07" + - "\x1B\x02\x02\u098E\u098D\x03\x02\x02\x02\u098E\u098F\x03\x02\x02\x02\u098F" + - "\u0990\x03\x02\x02\x02\u0990\u0991\x05\u020E\u0108\x02\u0991\u0995\x05" + - "R*\x02\u0992\u0996\x07\u016C\x02\x02\u0993\u0994\x07\u0112\x02\x02\u0994" + - "\u0996\x05\u020E\u0108\x02\u0995\u0992\x03\x02\x02\x02\u0995\u0993\x03" + - "\x02\x02\x02\u0995\u0996\x03\x02\x02\x02\u0996\u0A42\x03\x02\x02\x02\u0997" + - "\u0999\x071\x02\x02\u0998\u099A\x07\x1B\x02\x02\u0999\u0998\x03\x02\x02" + - "\x02\u0999\u099A\x03\x02\x02\x02\u099A\u099B\x03\x02\x02\x02\u099B\u099D" + - "\x05\u020E\u0108\x02\u099C\u099E\x07\x84\x02\x02\u099D\u099C\x03\x02\x02" + - "\x02\u099D\u099E\x03\x02\x02\x02\u099E\u0A42\x03\x02\x02\x02\u099F\u09A0" + - "\x071\x02\x02\u09A0\u09A1\x07v\x02\x02\u09A1\u0A42\x07T\x02\x02\u09A2" + - "\u09A3\x07\x7F\x02\x02\u09A3\u09A4\t\x14\x02\x02\u09A4\u09A5\x05\u020E" + - "\u0108\x02\u09A5\u09A6\x07\x9F\x02\x02\u09A6\u09A7\x05\u020E\u0108\x02" + - "\u09A7\u0A42\x03\x02\x02\x02\u09A8\u09A9\x07\t\x02\x02\u09A9\u09AA\x07" + - "J\x02\x02\u09AA\u09AB\x05\u020E\u0108\x02\u09AB\u09AC\t\x1F\x02\x02\u09AC" + - "\u0A42\x03\x02\x02\x02\u09AD\u09AE\x071\x02\x02\u09AE\u09AF\t\x14\x02" + - "\x02\u09AF\u0A42\x05\u020E\u0108\x02\u09B0\u09B1\x071\x02\x02\u09B1\u09B2" + - "\x07>\x02\x02\u09B2\u09B3\x07T\x02\x02\u09B3\u0A42\x05\u020E\u0108\x02" + - "\u09B4\u09B5\x07\u014D\x02\x02\u09B5\u0A42\x07U\x02\x02\u09B6\u09B7\x07" + - "\u0154\x02\x02\u09B7\u0A42\x07U\x02\x02\u09B8\u09BA\x07\x7F\x02\x02\u09B9" + - "\u09BB\t \x02\x02\u09BA\u09B9\x03\x02\x02\x02\u09BA\u09BB\x03\x02\x02" + - "\x02\u09BB\u09BE\x03\x02\x02\x02\u09BC\u09BF\x05\u020E\u0108\x02\u09BD" + - "\u09BF\x05\u01F4\xFB\x02\u09BE\u09BC\x03\x02\x02\x02\u09BE\u09BD\x03\x02" + - "\x02\x02\u09BF\u0A42\x03\x02\x02\x02\u09C0\u09C1\x07q\x02\x02\u09C1\u09C2" + - "\x07\x12\x02\x02\u09C2\u0A42\x05\u022E\u0118\x02\u09C3\u09C4\x07\x1F\x02" + - "\x02\u09C4\u09C5\x07\x9F\x02\x02\u09C5\u09C6\x07\x18\x02\x02\u09C6\u09C7" + - "\x07\x8C\x02\x02\u09C7\u09CA\x05\u0200\u0101\x02\u09C8\u09C9\x07\x1A\x02" + - "\x02\u09C9\u09CB\x05\u0202\u0102\x02\u09CA\u09C8\x03\x02\x02\x02\u09CA" + - "\u09CB\x03\x02\x02\x02\u09CB\u0A42\x03\x02\x02\x02\u09CC\u09CE\x07(\x02" + - "\x02\u09CD\u09CC\x03\x02\x02\x02\u09CD\u09CE\x03\x02\x02\x02\u09CE\u09CF" + - "\x03\x02\x02\x02\u09CF\u09D0\x07\x18\x02\x02\u09D0\u09D1\x07\x8C\x02\x02" + - "\u09D1\u09D2\x07\u03F5\x02\x02\u09D2\u09D6\x05\u0200\u0101\x02\u09D3\u09D4" + - "\x07\x1A\x02\x02\u09D4\u09D5\x07\u03F5\x02\x02\u09D5\u09D7\x05\u0202\u0102" + - "\x02\u09D6\u09D3\x03\x02\x02\x02\u09D6\u09D7\x03\x02\x02\x02\u09D7\u0A42" + - "\x03\x02\x02\x02\u09D8\u09D9\x07\u014E\x02\x02\u09D9\u0A42\x07\u022E\x02" + - "\x02\u09DA\u09DB\x07\u017E\x02\x02\u09DB\u0A42\x07\u022E\x02\x02\u09DC" + - "\u0A42\x07=\x02\x02\u09DD\u09DE\t!\x02\x02\u09DE\u0A42\x07\u0241\x02\x02" + - "\u09DF\u09E0\x07\x07\x02\x02\u09E0\u09E1\x07u\x02\x02\u09E1\u09E2\x07" + - "\u03FE\x02\x02\u09E2\u09E7\x05j6\x02\u09E3\u09E4\x07\u0400\x02\x02\u09E4" + - "\u09E6\x05j6\x02\u09E5\u09E3\x03\x02\x02\x02\u09E6\u09E9\x03\x02\x02\x02" + - "\u09E7\u09E5\x03\x02\x02\x02\u09E7\u09E8\x03\x02\x02\x02\u09E8\u09EA\x03" + - "\x02\x02\x02\u09E9\u09E7\x03\x02\x02\x02\u09EA\u09EB\x07\u03FF\x02\x02" + - "\u09EB\u0A42\x03\x02\x02\x02\u09EC\u09ED\x071\x02\x02\u09ED\u09EE\x07" + - "u\x02\x02\u09EE\u0A42\x05\u022E\u0118\x02\u09EF\u09F0\x07\u014E\x02\x02" + - "\u09F0\u09F3\x07u\x02\x02\u09F1\u09F4\x05\u022E\u0118\x02\u09F2\u09F4" + - "\x07\b\x02\x02\u09F3\u09F1\x03\x02\x02\x02\u09F3\u09F2\x03\x02\x02\x02" + - "\u09F4\u09F5\x03\x02\x02\x02\u09F5\u0A42\x07\u022E\x02\x02\u09F6\u09F7" + - "\x07\u017E\x02\x02\u09F7\u09FA\x07u\x02\x02\u09F8\u09FB\x05\u022E\u0118" + - "\x02\u09F9\u09FB\x07\b\x02\x02\u09FA\u09F8\x03\x02\x02\x02\u09FA\u09F9" + - "\x03\x02\x02\x02\u09FB\u09FC\x03\x02\x02\x02\u09FC\u0A42\x07\u022E\x02" + - "\x02\u09FD\u09FE\x07\u0236\x02\x02\u09FE\u0A01\x07u\x02\x02\u09FF\u0A02" + - "\x05\u022E\u0118\x02\u0A00\u0A02\x07\b\x02\x02\u0A01\u09FF\x03\x02\x02" + - "\x02\u0A01\u0A00\x03\x02\x02\x02\u0A02\u0A42\x03\x02\x02\x02\u0A03\u0A04" + - "\x07\u012E\x02\x02\u0A04\u0A05\x07u\x02\x02\u0A05\u0A42\x05\u0214\u010B" + - "\x02\u0A06\u0A07\x07\u01EF\x02\x02\u0A07\u0A08\x07u\x02\x02\u0A08\u0A09" + - "\x05\u022E\u0118\x02\u0A09\u0A0A\x07P\x02\x02\u0A0A\u0A0B\x07\u03FE\x02" + - "\x02\u0A0B\u0A10\x05j6\x02\u0A0C\u0A0D\x07\u0400\x02\x02\u0A0D\u0A0F\x05" + - "j6\x02\u0A0E\u0A0C\x03\x02\x02\x02\u0A0F\u0A12\x03\x02\x02\x02\u0A10\u0A0E" + - "\x03\x02\x02\x02\u0A10\u0A11\x03\x02\x02\x02\u0A11\u0A13\x03\x02\x02\x02" + - "\u0A12\u0A10\x03\x02\x02\x02\u0A13\u0A14\x07\u03FF\x02\x02\u0A14\u0A42" + - "\x03\x02\x02\x02\u0A15\u0A16\x07\u0161\x02\x02\u0A16\u0A17\x07u\x02\x02" + - "\u0A17\u0A18\x05\u020E\u0108\x02\u0A18\u0A19\x07\xB0\x02\x02\u0A19\u0A1A" + - "\x07\x9C\x02\x02\u0A1A\u0A1D\x05\u01F6\xFC\x02\u0A1B\u0A1C\t!\x02\x02" + - "\u0A1C\u0A1E\x07\u0241\x02\x02\u0A1D\u0A1B\x03\x02\x02\x02\u0A1D\u0A1E" + - "\x03\x02\x02\x02\u0A1E\u0A42\x03\x02\x02\x02\u0A1F\u0A20\x07\v\x02\x02" + - "\u0A20\u0A23\x07u\x02\x02\u0A21\u0A24\x05\u022E\u0118\x02\u0A22\u0A24" + - "\x07\b\x02\x02\u0A23\u0A21\x03\x02\x02\x02\u0A23\u0A22\x03\x02\x02\x02" + - "\u0A24\u0A42\x03\x02\x02\x02\u0A25\u0A26\x07\x19\x02\x02\u0A26\u0A29\x07" + - "u\x02\x02\u0A27\u0A2A\x05\u022E\u0118\x02\u0A28\u0A2A\x07\b\x02\x02\u0A29" + - "\u0A27\x03\x02\x02\x02\u0A29\u0A28\x03\x02\x02\x02\u0A2A\u0A42\x03\x02" + - "\x02\x02\u0A2B\u0A2C\x07m\x02\x02\u0A2C\u0A2F\x07u\x02\x02\u0A2D\u0A30" + - "\x05\u022E\u0118\x02\u0A2E\u0A30\x07\b\x02\x02\u0A2F\u0A2D\x03\x02\x02" + - "\x02\u0A2F\u0A2E\x03\x02\x02\x02\u0A30\u0A42\x03\x02\x02\x02\u0A31\u0A32" + - "\x07\u01E6\x02\x02\u0A32\u0A35\x07u\x02\x02\u0A33\u0A36\x05\u022E\u0118" + - "\x02\u0A34\u0A36\x07\b\x02\x02\u0A35\u0A33\x03\x02\x02\x02\u0A35\u0A34" + - "\x03\x02\x02\x02\u0A36\u0A42\x03\x02\x02\x02\u0A37\u0A38\x07\u01F0\x02" + - "\x02\u0A38\u0A3B\x07u\x02\x02\u0A39\u0A3C\x05\u022E\u0118\x02\u0A3A\u0A3C" + - "\x07\b\x02\x02\u0A3B\u0A39\x03\x02\x02\x02\u0A3B\u0A3A\x03\x02\x02\x02" + - "\u0A3C\u0A42\x03\x02\x02\x02\u0A3D\u0A3E\x07\u01EE\x02\x02\u0A3E\u0A42" + - "\x07\u01D4\x02\x02\u0A3F\u0A40\x07\u023D\x02\x02\u0A40\u0A42\x07\u01D4" + - "\x02\x02\u0A41\u08D6\x03\x02\x02\x02\u0A41\u08E0\x03\x02\x02\x02\u0A41" + - "\u08EB\x03\x02\x02\x02\u0A41\u08FD\x03\x02\x02\x02\u0A41\u090C\x03\x02" + - "\x02\x02\u0A41\u0922\x03\x02\x02\x02\u0A41\u093A\x03\x02\x02\x02\u0A41" + - "\u0949\x03\x02\x02\x02\u0A41\u0958\x03\x02\x02\x02\u0A41\u0964\x03\x02" + - "\x02\x02\u0A41\u0969\x03\x02\x02\x02\u0A41\u0975\x03\x02\x02\x02\u0A41" + - "\u0981\x03\x02\x02\x02\u0A41\u0987\x03\x02\x02\x02\u0A41\u098C\x03\x02" + - "\x02\x02\u0A41\u0997\x03\x02\x02\x02\u0A41\u099F\x03\x02\x02\x02\u0A41" + - "\u09A2\x03\x02\x02\x02\u0A41\u09A8\x03\x02\x02\x02\u0A41\u09AD\x03\x02" + - "\x02\x02\u0A41\u09B0\x03\x02\x02\x02\u0A41\u09B4\x03\x02\x02\x02\u0A41" + - "\u09B6\x03\x02\x02\x02\u0A41\u09B8\x03\x02\x02\x02\u0A41\u09C0\x03\x02" + - "\x02\x02\u0A41\u09C3\x03\x02\x02\x02\u0A41\u09CD\x03\x02\x02\x02\u0A41" + - "\u09D8\x03\x02\x02\x02\u0A41\u09DA\x03\x02\x02\x02\u0A41\u09DC\x03\x02" + - "\x02\x02\u0A41\u09DD\x03\x02\x02\x02\u0A41\u09DF\x03\x02\x02\x02\u0A41" + - "\u09EC\x03\x02\x02\x02\u0A41\u09EF\x03\x02\x02\x02\u0A41\u09F6\x03\x02" + - "\x02\x02\u0A41\u09FD\x03\x02\x02\x02\u0A41\u0A03\x03\x02\x02\x02\u0A41" + - "\u0A06\x03\x02\x02\x02\u0A41\u0A15\x03\x02\x02\x02\u0A41\u0A1F\x03\x02" + - "\x02\x02\u0A41\u0A25\x03\x02\x02\x02\u0A41\u0A2B\x03\x02\x02\x02\u0A41" + - "\u0A31\x03\x02\x02\x02\u0A41\u0A37\x03\x02\x02\x02\u0A41\u0A3D\x03\x02" + - "\x02\x02\u0A41\u0A3F\x03\x02\x02\x02\u0A42\x89\x03\x02\x02\x02\u0A43\u0A44" + - "\x071\x02\x02\u0A44\u0A46\t\x02\x02\x02\u0A45\u0A47\x05\u0244\u0123\x02" + - "\u0A46\u0A45\x03\x02\x02\x02\u0A46\u0A47\x03\x02\x02\x02\u0A47\u0A48\x03" + - "\x02\x02\x02\u0A48\u0A49\x05\u020E\u0108\x02\u0A49\x8B\x03\x02\x02\x02" + - "\u0A4A\u0A4B\x071\x02\x02\u0A4B\u0A4D\x07\u015E\x02\x02\u0A4C\u0A4E\x05" + - "\u0244\u0123\x02\u0A4D\u0A4C\x03\x02\x02\x02\u0A4D\u0A4E\x03\x02\x02\x02" + - "\u0A4E\u0A4F\x03\x02\x02\x02\u0A4F\u0A50\x05\u01F4\xFB\x02\u0A50\x8D\x03" + - "\x02\x02\x02\u0A51\u0A52\x071\x02\x02\u0A52\u0A54\x07J\x02\x02\u0A53\u0A55" + - "\t\x03\x02\x02\u0A54\u0A53\x03\x02\x02\x02\u0A54\u0A55\x03\x02\x02\x02" + - "\u0A55\u0A56\x03\x02\x02\x02\u0A56\u0A57\x05\u020E\u0108\x02\u0A57\u0A58" + - "\x07l\x02\x02\u0A58\u0A65\x05\u01F6\xFC\x02\u0A59\u0A5B\x07\u0114\x02" + - "\x02\u0A5A\u0A5C\x07\u03F5\x02\x02\u0A5B\u0A5A\x03\x02\x02\x02\u0A5B\u0A5C" + - "\x03\x02\x02\x02\u0A5C\u0A5D\x03\x02\x02\x02\u0A5D\u0A64\t\x05\x02\x02" + - "\u0A5E\u0A60\x07_\x02\x02\u0A5F\u0A61\x07\u03F5\x02\x02\u0A60\u0A5F\x03" + - "\x02\x02\x02\u0A60\u0A61\x03\x02\x02\x02\u0A61\u0A62\x03\x02\x02\x02\u0A62" + - "\u0A64\t\x06\x02\x02\u0A63\u0A59\x03\x02\x02\x02\u0A63\u0A5E\x03\x02\x02" + - "\x02\u0A64\u0A67\x03\x02\x02\x02\u0A65\u0A63\x03\x02\x02\x02\u0A65\u0A66" + - "\x03\x02\x02\x02\u0A66\x8F\x03\x02\x02\x02\u0A67\u0A65\x03\x02\x02\x02" + - "\u0A68\u0A69\x071\x02\x02\u0A69\u0A6A\x07\u0195\x02\x02\u0A6A\u0A6B\x07" + - "D\x02\x02\u0A6B\u0A6C\x05\u020E\u0108\x02\u0A6C\u0A6D\x07\u0158\x02\x02" + - "\u0A6D\u0A6E\x07\u03F5\x02\x02\u0A6E\u0A6F\x05\u0204\u0103\x02\u0A6F\x91" + - "\x03\x02\x02\x02\u0A70\u0A71\x071\x02\x02\u0A71\u0A73\x07w\x02\x02\u0A72" + - "\u0A74\x05\u0244\u0123\x02\u0A73\u0A72\x03\x02\x02\x02\u0A73\u0A74\x03" + - "\x02\x02\x02\u0A74\u0A75\x03\x02\x02\x02\u0A75\u0A76\x05\u01F4\xFB\x02" + - "\u0A76\x93\x03\x02\x02\x02\u0A77\u0A78\x071\x02\x02\u0A78\u0A7A\x07\u0172" + - "\x02\x02\u0A79\u0A7B\x05\u0244\u0123\x02\u0A7A\u0A79\x03\x02\x02\x02\u0A7A" + - "\u0A7B\x03\x02\x02\x02\u0A7B\u0A7C\x03\x02\x02\x02\u0A7C\u0A7D\x05\u01F4" + - "\xFB\x02\u0A7D\x95\x03\x02\x02\x02\u0A7E\u0A7F\x071\x02\x02\u0A7F\u0A81" + - "\x07\u0207\x02\x02\u0A80\u0A82\x05\u0244\u0123\x02\u0A81\u0A80\x03\x02" + - "\x02\x02\u0A81\u0A82\x03\x02\x02\x02\u0A82\u0A83\x03\x02\x02\x02\u0A83" + - "\u0A84\x05\u020E\u0108\x02\u0A84\x97\x03\x02\x02\x02\u0A85\u0A87\x071" + - "\x02\x02\u0A86\u0A88\x07\u022F\x02\x02\u0A87\u0A86\x03\x02\x02\x02\u0A87" + - "\u0A88\x03\x02\x02\x02\u0A88\u0A89\x03\x02\x02\x02\u0A89\u0A8B\x07\x9C" + - "\x02\x02\u0A8A\u0A8C\x05\u0244\u0123\x02\u0A8B\u0A8A\x03\x02\x02\x02\u0A8B" + - "\u0A8C\x03\x02\x02\x02\u0A8C\u0A8D\x03\x02\x02\x02\u0A8D\u0A8F\x05\u0230" + - "\u0119\x02\u0A8E\u0A90\t\"\x02\x02\u0A8F\u0A8E\x03\x02\x02\x02\u0A8F\u0A90" + - "\x03\x02\x02\x02\u0A90\x99\x03\x02\x02\x02\u0A91\u0A92\x071\x02\x02\u0A92" + - "\u0A93\x07\u022E\x02\x02\u0A93\u0A99\x05\u020E\u0108\x02\u0A94\u0A96\x07" + - "\u0158\x02\x02\u0A95\u0A97\x07\u03F5\x02\x02\u0A96\u0A95\x03\x02\x02\x02" + - "\u0A96\u0A97\x03\x02\x02\x02\u0A97\u0A98\x03\x02\x02\x02\u0A98\u0A9A\x05" + - "\u0204\u0103\x02\u0A99\u0A94\x03\x02\x02\x02\u0A99\u0A9A\x03\x02\x02\x02" + - "\u0A9A\x9B\x03\x02\x02\x02\u0A9B\u0A9C\x071\x02\x02\u0A9C\u0A9E\x07\xA1" + - "\x02\x02\u0A9D\u0A9F\x05\u0244\u0123\x02\u0A9E\u0A9D\x03\x02\x02\x02\u0A9E" + - "\u0A9F\x03\x02\x02\x02\u0A9F\u0AA0\x03\x02\x02\x02\u0AA0\u0AA1\x05\u01F4" + - "\xFB\x02\u0AA1\x9D\x03\x02\x02\x02\u0AA2\u0AA3\x071\x02\x02\u0AA3\u0AA5" + - "\x07\u0244\x02\x02\u0AA4\u0AA6\x05\u0244\u0123\x02\u0AA5\u0AA4\x03\x02" + - "\x02\x02\u0AA5\u0AA6\x03\x02\x02\x02\u0AA6\u0AA7\x03\x02\x02\x02\u0AA7" + - "\u0AAC\x05\u01F4\xFB\x02\u0AA8\u0AA9\x07\u0400\x02\x02\u0AA9\u0AAB\x05" + - "\u01F4\xFB\x02\u0AAA\u0AA8\x03\x02\x02\x02\u0AAB\u0AAE\x03\x02\x02\x02" + - "\u0AAC\u0AAA\x03\x02\x02\x02\u0AAC\u0AAD\x03\x02\x02\x02\u0AAD\u0AB0\x03" + - "\x02\x02\x02\u0AAE\u0AAC\x03\x02\x02\x02\u0AAF\u0AB1\t\"\x02\x02\u0AB0" + - "\u0AAF\x03\x02\x02\x02\u0AB0\u0AB1\x03\x02\x02\x02\u0AB1\x9F\x03\x02\x02" + - "\x02\u0AB2\u0AB3\x07\x7F\x02\x02\u0AB3\u0AB4\x07\x9C\x02\x02\u0AB4\u0AB9" + - "\x05\xA2R\x02\u0AB5\u0AB6\x07\u0400\x02\x02\u0AB6\u0AB8\x05\xA2R\x02\u0AB7" + - "\u0AB5\x03\x02\x02\x02\u0AB8\u0ABB\x03\x02\x02\x02\u0AB9\u0AB7\x03\x02" + - "\x02\x02\u0AB9\u0ABA\x03\x02\x02\x02\u0ABA\xA1\x03\x02\x02\x02\u0ABB\u0AB9" + - "\x03\x02\x02\x02\u0ABC\u0ABD\x05\u01F6\xFC\x02\u0ABD\u0ABE\x07\x9F\x02" + - "\x02\u0ABE\u0ABF\x05\u01F6\xFC\x02\u0ABF\xA3\x03\x02\x02\x02\u0AC0\u0AC2" + - "\x07\u0236\x02\x02\u0AC1\u0AC3\x07\x9C\x02\x02\u0AC2\u0AC1\x03\x02\x02" + - "\x02\u0AC2\u0AC3\x03\x02\x02\x02\u0AC3\u0AC4\x03\x02\x02\x02\u0AC4\u0AC5" + - "\x05\u01F6\xFC\x02\u0AC5\xA5\x03\x02\x02\x02\u0AC6\u0AC7\x07\x13\x02\x02" + - "\u0AC7\u0ACE\x05\u01F4\xFB\x02\u0AC8\u0ACB\x07\u03FE\x02\x02\u0AC9\u0ACC" + - "\x05\u0238\u011D\x02\u0ACA\u0ACC\x05\u0234\u011B\x02\u0ACB\u0AC9\x03\x02" + - "\x02\x02\u0ACB\u0ACA\x03\x02\x02\x02\u0ACB\u0ACC\x03\x02\x02\x02\u0ACC" + - "\u0ACD\x03\x02\x02\x02\u0ACD\u0ACF\x07\u03FF\x02\x02\u0ACE\u0AC8\x03\x02" + - "\x02\x02\u0ACE\u0ACF\x03\x02\x02\x02\u0ACF\xA7\x03\x02\x02\x02\u0AD0\u0AD3" + - "\x05\xC2b\x02\u0AD1\u0AD3\x05\xC4c\x02\u0AD2\u0AD0\x03\x02\x02\x02\u0AD2" + - "\u0AD1\x03\x02\x02\x02\u0AD3\xA9\x03\x02\x02\x02\u0AD4\u0AD5\x07\u0150" + - "\x02\x02\u0AD5\u0AD6\x05\u0234\u011B\x02\u0AD6\xAB\x03\x02\x02\x02\u0AD7" + - "\u0ADC\x05\xC6d\x02\u0AD8\u0ADC\x05\xC8e\x02\u0AD9\u0ADC\x05\xCAf\x02" + - "\u0ADA\u0ADC\x05\xCCg\x02\u0ADB\u0AD7\x03\x02\x02\x02\u0ADB\u0AD8\x03" + - "\x02\x02\x02\u0ADB\u0AD9\x03\x02\x02\x02\u0ADB\u0ADA\x03\x02\x02\x02\u0ADC" + - "\xAD\x03\x02\x02\x02\u0ADD\u0ADF\x07N\x02\x02\u0ADE\u0AE0\t#\x02\x02\u0ADF" + - "\u0ADE\x03\x02\x02\x02\u0ADF\u0AE0\x03\x02\x02\x02\u0AE0\u0AE2\x03\x02" + - "\x02\x02\u0AE1\u0AE3\x07H\x02\x02\u0AE2\u0AE1\x03\x02\x02\x02\u0AE2\u0AE3" + - "\x03\x02\x02\x02\u0AE3\u0AE5\x03\x02\x02\x02\u0AE4\u0AE6\x07P\x02\x02" + - "\u0AE5\u0AE4\x03\x02\x02\x02\u0AE5\u0AE6\x03\x02\x02\x02\u0AE6\u0AE7\x03" + - "\x02\x02\x02\u0AE7\u0AEE\x05\u01F6\xFC\x02\u0AE8\u0AE9\x07u\x02\x02\u0AE9" + - "\u0AEB\x07\u03FE\x02\x02\u0AEA\u0AEC\x05\u022E\u0118\x02\u0AEB\u0AEA\x03" + - "\x02\x02\x02\u0AEB\u0AEC\x03\x02\x02\x02\u0AEC\u0AED\x03\x02\x02\x02\u0AED" + - "\u0AEF\x07\u03FF\x02\x02\u0AEE\u0AE8\x03\x02\x02\x02\u0AEE\u0AEF\x03\x02" + - "\x02\x02\u0AEF\u0B00\x03\x02\x02\x02\u0AF0\u0AF1\x07\u03FE\x02\x02\u0AF1" + - "\u0AF2\x05\u022E\u0118\x02\u0AF2\u0AF3\x07\u03FF\x02\x02\u0AF3\u0AF5\x03" + - "\x02\x02\x02\u0AF4\u0AF0\x03\x02\x02\x02\u0AF4\u0AF5\x03\x02\x02\x02\u0AF5" + - "\u0AF6\x03\x02\x02\x02\u0AF6\u0B01\x05\xBA^\x02\u0AF7\u0AF8\x07\x8C\x02" + - "\x02\u0AF8\u0AFD\x05\xBC_\x02\u0AF9\u0AFA\x07\u0400\x02\x02\u0AFA\u0AFC" + - "\x05\xBC_\x02\u0AFB\u0AF9\x03\x02\x02\x02\u0AFC\u0AFF\x03\x02\x02\x02" + - "\u0AFD\u0AFB\x03\x02\x02\x02\u0AFD\u0AFE\x03\x02\x02\x02\u0AFE\u0B01\x03" + - "\x02\x02\x02\u0AFF\u0AFD\x03\x02\x02\x02\u0B00\u0AF4\x03\x02\x02\x02\u0B00" + - "\u0AF7\x03\x02\x02\x02\u0B01\u0B0E\x03\x02\x02\x02\u0B02\u0B03\x07l\x02" + - "\x02\u0B03\u0B04\x07\u0152\x02\x02\u0B04\u0B05\x07T\x02\x02\u0B05\u0B06" + - "\x07\xA8\x02\x02\u0B06\u0B0B\x05\xBC_\x02\u0B07\u0B08\x07\u0400\x02\x02" + - "\u0B08\u0B0A\x05\xBC_\x02\u0B09\u0B07\x03\x02\x02\x02\u0B0A\u0B0D\x03" + - "\x02\x02\x02\u0B0B\u0B09\x03\x02\x02\x02\u0B0B\u0B0C\x03\x02\x02\x02\u0B0C" + - "\u0B0F\x03\x02\x02\x02\u0B0D\u0B0B\x03\x02\x02\x02\u0B0E\u0B02\x03\x02" + - "\x02\x02\u0B0E\u0B0F\x03\x02\x02\x02\u0B0F\xAF\x03\x02\x02\x02\u0B10\u0B11" + - "\x07^\x02\x02\u0B11\u0B13\x07\u0145\x02\x02\u0B12\u0B14\t$\x02\x02\u0B13" + - "\u0B12\x03\x02\x02\x02\u0B13\u0B14\x03\x02\x02\x02\u0B14\u0B16\x03\x02" + - "\x02\x02\u0B15\u0B17\x07\u0194\x02\x02\u0B16\u0B15\x03\x02\x02\x02\u0B16" + - "\u0B17\x03\x02\x02\x02\u0B17\u0B18\x03\x02\x02\x02\u0B18\u0B19\x07K\x02" + - "\x02\u0B19\u0B1B\x07\u040D\x02\x02\u0B1A\u0B1C\t\b\x02\x02\u0B1B\u0B1A" + - "\x03\x02\x02\x02\u0B1B\u0B1C\x03\x02\x02\x02\u0B1C\u0B1D\x03\x02\x02\x02" + - "\u0B1D\u0B1E\x07P\x02\x02\u0B1E\u0B1F\x07\x9C\x02\x02\u0B1F\u0B25\x05" + - "\u01F6\xFC\x02\u0B20\u0B21\x07u\x02\x02\u0B21\u0B22\x07\u03FE\x02\x02" + - "\u0B22\u0B23\x05\u022E\u0118\x02\u0B23\u0B24\x07\u03FF\x02\x02\u0B24\u0B26" + - "\x03\x02\x02\x02\u0B25\u0B20\x03\x02\x02\x02\u0B25\u0B26\x03\x02\x02\x02" + - "\u0B26\u0B2A\x03\x02\x02\x02\u0B27\u0B28\x07\x18\x02\x02\u0B28\u0B29\x07" + - "\x8C\x02\x02\u0B29\u0B2B\x05\u0200\u0101\x02\u0B2A\u0B27\x03\x02\x02\x02" + - "\u0B2A\u0B2B\x03\x02\x02\x02\u0B2B\u0B32\x03\x02\x02\x02\u0B2C\u0B2E\t" + - "%\x02\x02\u0B2D\u0B2F\x05\xF6|\x02\u0B2E\u0B2D\x03\x02\x02\x02\u0B2F\u0B30" + - "\x03\x02\x02\x02\u0B30\u0B2E\x03\x02\x02\x02\u0B30\u0B31\x03\x02\x02\x02" + - "\u0B31\u0B33\x03\x02\x02\x02\u0B32\u0B2C\x03\x02\x02\x02\u0B32\u0B33\x03" + - "\x02\x02\x02\u0B33\u0B3A\x03\x02\x02\x02\u0B34\u0B36\x07]\x02\x02\u0B35" + - "\u0B37\x05\xF8}\x02\u0B36\u0B35\x03\x02\x02\x02\u0B37\u0B38\x03\x02\x02" + - "\x02\u0B38\u0B36\x03\x02\x02\x02\u0B38\u0B39\x03\x02\x02\x02\u0B39\u0B3B" + - "\x03\x02\x02\x02\u0B3A\u0B34\x03\x02\x02\x02\u0B3A\u0B3B\x03\x02\x02\x02" + - "\u0B3B\u0B40\x03\x02\x02\x02\u0B3C\u0B3D\x07H\x02\x02\u0B3D\u0B3E\x05" + - "\u0214\u010B\x02\u0B3E\u0B3F\t&\x02\x02\u0B3F\u0B41\x03\x02\x02\x02\u0B40" + - "\u0B3C\x03\x02\x02\x02\u0B40\u0B41\x03\x02\x02\x02\u0B41\u0B4D\x03\x02" + - "\x02\x02\u0B42\u0B43\x07\u03FE\x02\x02\u0B43\u0B48\x05\xBE`\x02\u0B44" + - "\u0B45\x07\u0400\x02\x02\u0B45\u0B47\x05\xBE`\x02\u0B46\u0B44\x03\x02" + - "\x02\x02\u0B47\u0B4A\x03\x02\x02\x02\u0B48\u0B46\x03\x02\x02\x02\u0B48" + - "\u0B49\x03\x02\x02\x02\u0B49\u0B4B\x03\x02\x02\x02\u0B4A\u0B48\x03\x02" + - "\x02\x02\u0B4B\u0B4C\x07\u03FF\x02\x02\u0B4C\u0B4E\x03\x02\x02\x02\u0B4D" + - "\u0B42\x03\x02\x02\x02\u0B4D\u0B4E\x03\x02\x02\x02\u0B4E\u0B58\x03\x02" + - "\x02\x02\u0B4F\u0B50\x07\x8C\x02\x02\u0B50\u0B55\x05\xBC_\x02\u0B51\u0B52" + - "\x07\u0400\x02\x02\u0B52\u0B54\x05\xBC_\x02\u0B53\u0B51\x03\x02\x02\x02" + - "\u0B54\u0B57\x03\x02\x02\x02\u0B55\u0B53\x03\x02\x02\x02\u0B55\u0B56\x03" + - "\x02\x02\x02\u0B56\u0B59\x03\x02\x02\x02\u0B57\u0B55\x03\x02\x02\x02\u0B58" + - "\u0B4F\x03\x02\x02\x02\u0B58\u0B59\x03\x02\x02\x02\u0B59\xB1\x03\x02\x02" + - "\x02\u0B5A\u0B5B\x07^\x02\x02\u0B5B\u0B5D\x07\u024E\x02\x02\u0B5C\u0B5E" + - "\t$\x02\x02\u0B5D\u0B5C\x03\x02\x02\x02\u0B5D\u0B5E\x03\x02\x02\x02\u0B5E" + - "\u0B60\x03\x02\x02\x02\u0B5F\u0B61\x07\u0194\x02\x02\u0B60\u0B5F\x03\x02" + - "\x02\x02\u0B60\u0B61\x03\x02\x02\x02\u0B61\u0B62\x03\x02\x02\x02\u0B62" + - "\u0B63\x07K\x02\x02\u0B63\u0B65\x07\u040D\x02\x02\u0B64\u0B66\t\b\x02" + - "\x02\u0B65\u0B64\x03\x02\x02\x02\u0B65\u0B66\x03\x02\x02\x02\u0B66\u0B67" + - "\x03\x02\x02\x02\u0B67\u0B68\x07P\x02\x02\u0B68\u0B69\x07\x9C\x02\x02" + - "\u0B69\u0B6D\x05\u01F6\xFC\x02\u0B6A\u0B6B\x07\x18\x02\x02\u0B6B\u0B6C" + - "\x07\x8C\x02\x02\u0B6C\u0B6E\x05\u0200\u0101\x02\u0B6D\u0B6A\x03\x02\x02" + - "\x02\u0B6D\u0B6E\x03\x02\x02\x02\u0B6E\u0B75\x03\x02\x02\x02\u0B6F\u0B70" + - "\x07\u0202\x02\x02\u0B70\u0B71\x07\u017C\x02\x02\u0B71\u0B72\x07\x12\x02" + - "\x02\u0B72\u0B73\x07\u03F7\x02\x02\u0B73\u0B74\x07\u040D\x02\x02\u0B74" + - "\u0B76\x07\u03F6\x02\x02\u0B75\u0B6F\x03\x02\x02\x02\u0B75\u0B76\x03\x02" + - "\x02\x02\u0B76\u0B7B\x03\x02\x02\x02\u0B77\u0B78\x07H\x02\x02\u0B78\u0B79" + - "\x05\u0214\u010B\x02\u0B79\u0B7A\t&\x02\x02\u0B7A\u0B7C\x03\x02\x02\x02" + - "\u0B7B\u0B77\x03\x02\x02\x02\u0B7B\u0B7C\x03\x02\x02\x02\u0B7C\u0B88\x03" + - "\x02\x02\x02\u0B7D\u0B7E\x07\u03FE\x02\x02\u0B7E\u0B83\x05\xBE`\x02\u0B7F" + - "\u0B80\x07\u0400\x02\x02\u0B80\u0B82\x05\xBE`\x02\u0B81\u0B7F\x03\x02" + - "\x02\x02\u0B82\u0B85\x03\x02\x02\x02\u0B83\u0B81\x03\x02\x02\x02\u0B83" + - "\u0B84\x03\x02\x02\x02\u0B84\u0B86\x03\x02\x02\x02\u0B85\u0B83\x03\x02" + - "\x02\x02\u0B86\u0B87\x07\u03FF\x02\x02\u0B87\u0B89\x03\x02\x02\x02\u0B88" + - "\u0B7D\x03\x02\x02\x02\u0B88\u0B89\x03\x02\x02\x02\u0B89\u0B93"; - private static readonly _serializedATNSegment7: string = - "\x03\x02\x02\x02\u0B8A\u0B8B\x07\x8C\x02\x02\u0B8B\u0B90\x05\xBC_\x02" + - "\u0B8C\u0B8D\x07\u0400\x02\x02\u0B8D\u0B8F\x05\xBC_\x02\u0B8E\u0B8C\x03" + - "\x02\x02\x02\u0B8F\u0B92\x03\x02\x02\x02\u0B90\u0B8E\x03\x02\x02\x02\u0B90" + - "\u0B91\x03\x02\x02\x02\u0B91\u0B94\x03\x02\x02\x02\u0B92\u0B90\x03\x02" + - "\x02\x02\u0B93\u0B8A\x03\x02\x02\x02\u0B93\u0B94\x03\x02\x02\x02\u0B94" + - "\xB3\x03\x02\x02\x02\u0B95\u0B97\x07\x81\x02\x02\u0B96\u0B98\t\'\x02\x02" + - "\u0B97\u0B96\x03\x02\x02\x02\u0B97\u0B98\x03\x02\x02\x02\u0B98\u0B9A\x03" + - "\x02\x02\x02\u0B99\u0B9B\x07P\x02\x02\u0B9A\u0B99\x03\x02\x02\x02\u0B9A" + - "\u0B9B\x03\x02\x02\x02\u0B9B\u0B9C\x03\x02\x02\x02\u0B9C\u0BA2\x05\u01F6" + - "\xFC\x02\u0B9D\u0B9E\x07u\x02\x02\u0B9E\u0B9F\x07\u03FE\x02\x02\u0B9F" + - "\u0BA0\x05\u022E\u0118\x02\u0BA0\u0BA1\x07\u03FF\x02\x02\u0BA1\u0BA3\x03" + - "\x02\x02\x02\u0BA2\u0B9D\x03\x02\x02\x02\u0BA2\u0BA3\x03\x02\x02\x02\u0BA3" + - "\u0BB4\x03\x02\x02\x02\u0BA4\u0BA5\x07\u03FE\x02\x02\u0BA5\u0BA6\x05\u022E" + - "\u0118\x02\u0BA6\u0BA7\x07\u03FF\x02\x02\u0BA7\u0BA9\x03\x02\x02\x02\u0BA8" + - "\u0BA4\x03\x02\x02\x02\u0BA8\u0BA9\x03\x02\x02\x02\u0BA9\u0BAA\x03\x02" + - "\x02\x02\u0BAA\u0BB5\x05\xBA^\x02\u0BAB\u0BAC\x07\x8C\x02\x02\u0BAC\u0BB1" + - "\x05\xBC_\x02\u0BAD\u0BAE\x07\u0400\x02\x02\u0BAE\u0BB0\x05\xBC_\x02\u0BAF" + - "\u0BAD\x03\x02\x02\x02\u0BB0\u0BB3\x03\x02\x02\x02\u0BB1\u0BAF\x03\x02" + - "\x02\x02\u0BB1\u0BB2\x03\x02\x02\x02\u0BB2\u0BB5\x03\x02\x02\x02\u0BB3" + - "\u0BB1\x03\x02\x02\x02\u0BB4\u0BA8\x03\x02\x02\x02\u0BB4\u0BAB\x03\x02" + - "\x02\x02\u0BB5\xB5\x03\x02\x02\x02\u0BB6\u0BB8\x05\xE6t\x02\u0BB7\u0BB9" + - "\x05\xC0a\x02\u0BB8\u0BB7\x03\x02\x02\x02\u0BB8\u0BB9\x03\x02\x02\x02" + - "\u0BB9\u0BEE\x03\x02\x02\x02\u0BBA\u0BBC\x05\xE2r\x02\u0BBB\u0BBD\x05" + - "\xC0a\x02\u0BBC\u0BBB\x03\x02\x02\x02\u0BBC\u0BBD\x03\x02\x02\x02\u0BBD" + - "\u0BEE\x03\x02\x02\x02\u0BBE\u0BC0\x05\xE8u\x02\u0BBF\u0BC1\x05\xECw\x02" + - "\u0BC0\u0BBF\x03\x02\x02\x02\u0BC1\u0BC2\x03\x02\x02\x02\u0BC2\u0BC0\x03" + - "\x02\x02\x02\u0BC2\u0BC3\x03\x02\x02\x02\u0BC3\u0BCC\x03\x02\x02\x02\u0BC4" + - "\u0BC6\x07\xA4\x02\x02\u0BC5\u0BC7\t(\x02\x02\u0BC6\u0BC5\x03\x02\x02" + - "\x02\u0BC6\u0BC7\x03\x02\x02\x02\u0BC7\u0BCA\x03\x02\x02\x02\u0BC8\u0BCB" + - "\x05\xE6t\x02\u0BC9\u0BCB\x05\xE2r\x02\u0BCA\u0BC8\x03\x02\x02\x02\u0BCA" + - "\u0BC9\x03\x02\x02\x02\u0BCB\u0BCD\x03\x02\x02\x02\u0BCC\u0BC4\x03\x02" + - "\x02\x02\u0BCC\u0BCD\x03\x02\x02\x02\u0BCD\u0BCF\x03\x02\x02\x02\u0BCE" + - "\u0BD0\x05\xD2j\x02\u0BCF\u0BCE\x03\x02\x02\x02\u0BCF\u0BD0\x03\x02\x02" + - "\x02\u0BD0\u0BD2\x03\x02\x02\x02\u0BD1\u0BD3\x05\xFE\x80\x02\u0BD2\u0BD1" + - "\x03\x02\x02\x02\u0BD2\u0BD3\x03\x02\x02\x02\u0BD3\u0BD5\x03\x02\x02\x02" + - "\u0BD4\u0BD6\x05\xC0a\x02\u0BD5\u0BD4\x03\x02\x02\x02\u0BD5\u0BD6\x03" + - "\x02\x02\x02\u0BD6\u0BEE\x03\x02\x02\x02\u0BD7\u0BD9\x05\xE4s\x02\u0BD8" + - "\u0BDA\x05\xEAv\x02\u0BD9\u0BD8\x03\x02\x02\x02\u0BDA\u0BDB\x03\x02\x02" + - "\x02\u0BDB\u0BD9\x03\x02\x02\x02\u0BDB\u0BDC\x03\x02\x02\x02\u0BDC\u0BE2" + - "\x03\x02\x02\x02\u0BDD\u0BDF\x07\xA4\x02\x02\u0BDE\u0BE0\t(\x02\x02\u0BDF" + - "\u0BDE\x03\x02\x02\x02\u0BDF\u0BE0\x03\x02\x02\x02\u0BE0\u0BE1\x03\x02" + - "\x02\x02\u0BE1\u0BE3\x05\xE2r\x02\u0BE2\u0BDD\x03\x02\x02\x02\u0BE2\u0BE3" + - "\x03\x02\x02\x02\u0BE3\u0BE5\x03\x02\x02\x02\u0BE4\u0BE6\x05\xD2j\x02" + - "\u0BE5\u0BE4\x03\x02\x02\x02\u0BE5\u0BE6\x03\x02\x02\x02\u0BE6\u0BE8\x03" + - "\x02\x02\x02\u0BE7\u0BE9\x05\xFE\x80\x02\u0BE8\u0BE7\x03\x02\x02\x02\u0BE8" + - "\u0BE9\x03\x02\x02\x02\u0BE9\u0BEB\x03\x02\x02\x02\u0BEA\u0BEC\x05\xC0" + - "a\x02\u0BEB\u0BEA\x03\x02\x02\x02\u0BEB\u0BEC\x03\x02\x02\x02\u0BEC\u0BEE" + - "\x03\x02\x02\x02\u0BED\u0BB6\x03\x02\x02\x02\u0BED\u0BBA\x03\x02\x02\x02" + - "\u0BED\u0BBE\x03\x02\x02\x02\u0BED\u0BD7\x03\x02\x02\x02\u0BEE\xB7\x03" + - "\x02\x02\x02\u0BEF\u0BF2\x05\xCEh\x02\u0BF0\u0BF2\x05\xD0i\x02\u0BF1\u0BEF" + - "\x03\x02\x02\x02\u0BF1\u0BF0\x03\x02\x02\x02\u0BF2\xB9\x03\x02\x02\x02" + - "\u0BF3\u0C06\x05\xB6\\\x02\u0BF4\u0BF5\t)\x02\x02\u0BF5\u0BF7\x07\u03FE" + - "\x02\x02\u0BF6\u0BF8\x05\u0236\u011C\x02\u0BF7\u0BF6\x03\x02\x02\x02\u0BF7" + - "\u0BF8\x03\x02\x02\x02\u0BF8\u0BF9\x03\x02\x02\x02\u0BF9\u0C02\x07\u03FF" + - "\x02\x02\u0BFA\u0BFB\x07\u0400\x02\x02\u0BFB\u0BFD\x07\u03FE\x02\x02\u0BFC" + - "\u0BFE\x05\u0236\u011C\x02\u0BFD\u0BFC\x03\x02\x02\x02\u0BFD\u0BFE\x03" + - "\x02\x02\x02\u0BFE\u0BFF\x03\x02\x02\x02\u0BFF\u0C01\x07\u03FF\x02\x02" + - "\u0C00\u0BFA\x03\x02\x02\x02\u0C01\u0C04\x03\x02\x02\x02\u0C02\u0C00\x03" + - "\x02\x02\x02\u0C02\u0C03\x03\x02\x02\x02\u0C03\u0C06\x03\x02\x02\x02\u0C04" + - "\u0C02\x03\x02\x02\x02\u0C05\u0BF3\x03\x02\x02\x02\u0C05\u0BF4\x03\x02" + - "\x02\x02\u0C06\xBB\x03\x02\x02\x02\u0C07\u0C08\x05\u01F8\xFD\x02\u0C08" + - "\u0C0B\x07\u03F5\x02\x02\u0C09\u0C0C\x05\u025C\u012F\x02\u0C0A\u0C0C\x07" + - "(\x02\x02\u0C0B\u0C09\x03\x02\x02\x02\u0C0B\u0C0A\x03\x02\x02\x02\u0C0C" + - "\xBD\x03\x02\x02\x02\u0C0D\u0C10\x05\u020E\u0108\x02\u0C0E\u0C10\x07\u0418" + - "\x02\x02\u0C0F\u0C0D\x03\x02\x02\x02\u0C0F\u0C0E\x03\x02\x02\x02\u0C10" + - "\xBF\x03\x02\x02\x02\u0C11\u0C12\x07<\x02\x02\u0C12\u0C18\x07\xA8\x02" + - "\x02\u0C13\u0C14\x07_\x02\x02\u0C14\u0C15\x07I\x02\x02\u0C15\u0C16\x07" + - "\u0209\x02\x02\u0C16\u0C18\x07\u01B8\x02\x02\u0C17\u0C11\x03\x02\x02\x02" + - "\u0C17\u0C13\x03\x02\x02\x02\u0C18\xC1\x03\x02\x02\x02\u0C19\u0C1B\x07" + - "*\x02\x02\u0C1A\u0C1C\x07a\x02\x02\u0C1B\u0C1A\x03\x02\x02\x02\u0C1B\u0C1C" + - "\x03\x02\x02\x02\u0C1C\u0C1E\x03\x02\x02\x02\u0C1D\u0C1F\x07\u01E5\x02" + - "\x02\u0C1E\u0C1D\x03\x02\x02\x02\u0C1E\u0C1F\x03\x02\x02\x02\u0C1F\u0C21" + - "\x03\x02\x02\x02\u0C20\u0C22\x07H\x02\x02\u0C21\u0C20\x03\x02\x02\x02" + - "\u0C21\u0C22\x03\x02\x02\x02\u0C22\u0C23\x03\x02\x02\x02\u0C23\u0C24\x07" + - "?\x02\x02\u0C24\u0C2A\x05\u01F6\xFC\x02\u0C25\u0C26\x07u\x02\x02\u0C26" + - "\u0C27\x07\u03FE\x02\x02\u0C27\u0C28\x05\u022E\u0118\x02\u0C28\u0C29\x07" + - "\u03FF\x02\x02\u0C29\u0C2B\x03\x02\x02\x02\u0C2A\u0C25\x03\x02\x02\x02" + - "\u0C2A\u0C2B\x03\x02\x02\x02\u0C2B\u0C2E\x03\x02\x02\x02\u0C2C\u0C2D\x07" + - "\xAE\x02\x02\u0C2D\u0C2F\x05\u025C\u012F\x02\u0C2E\u0C2C\x03\x02\x02\x02" + - "\u0C2E\u0C2F\x03\x02\x02\x02\u0C2F\u0C31\x03\x02\x02\x02\u0C30\u0C32\x05" + - "\xD2j\x02\u0C31\u0C30\x03\x02\x02\x02\u0C31\u0C32\x03\x02\x02\x02\u0C32" + - "\u0C35\x03\x02\x02\x02\u0C33\u0C34\x07[\x02\x02\u0C34\u0C36\x05\u0100" + - "\x81\x02\u0C35\u0C33\x03\x02\x02\x02\u0C35\u0C36\x03\x02\x02\x02\u0C36" + - "\xC3\x03\x02\x02\x02\u0C37\u0C39\x07*\x02\x02\u0C38\u0C3A\x07a\x02\x02" + - "\u0C39\u0C38\x03\x02\x02\x02\u0C39\u0C3A\x03\x02\x02\x02\u0C3A\u0C3C\x03" + - "\x02\x02\x02\u0C3B\u0C3D\x07\u01E5\x02\x02\u0C3C\u0C3B\x03\x02\x02\x02" + - "\u0C3C\u0C3D\x03\x02\x02\x02\u0C3D\u0C3F\x03\x02\x02\x02\u0C3E\u0C40\x07" + - "H\x02\x02\u0C3F\u0C3E\x03\x02\x02\x02\u0C3F\u0C40\x03\x02\x02\x02\u0C40" + - "\u0C68\x03\x02\x02\x02\u0C41\u0C44\x05\u01F6\xFC\x02\u0C42\u0C43\x07\u03FD" + - "\x02\x02\u0C43\u0C45\x07\u03ED\x02\x02\u0C44\u0C42\x03\x02\x02\x02\u0C44" + - "\u0C45\x03\x02\x02\x02\u0C45\u0C4E\x03\x02\x02\x02\u0C46\u0C47\x07\u0400" + - "\x02\x02\u0C47\u0C4A\x05\u01F6\xFC\x02\u0C48\u0C49\x07\u03FD\x02\x02\u0C49" + - "\u0C4B\x07\u03ED\x02\x02\u0C4A\u0C48\x03\x02\x02\x02\u0C4A\u0C4B\x03\x02" + - "\x02\x02\u0C4B\u0C4D\x03\x02\x02\x02\u0C4C\u0C46\x03\x02\x02\x02\u0C4D" + - "\u0C50\x03\x02\x02\x02\u0C4E\u0C4C\x03\x02\x02\x02\u0C4E\u0C4F\x03\x02" + - "\x02\x02\u0C4F\u0C51\x03\x02\x02\x02\u0C50\u0C4E\x03\x02\x02\x02\u0C51" + - "\u0C52\x07?\x02\x02\u0C52\u0C53\x05\xD6l\x02\u0C53\u0C69\x03\x02\x02\x02" + - "\u0C54\u0C55\x07?\x02\x02\u0C55\u0C58\x05\u01F6\xFC\x02\u0C56\u0C57\x07" + - "\u03FD\x02\x02\u0C57\u0C59\x07\u03ED\x02\x02\u0C58\u0C56\x03\x02\x02\x02" + - "\u0C58\u0C59\x03\x02\x02\x02\u0C59\u0C62\x03\x02\x02\x02\u0C5A\u0C5B\x07" + - "\u0400\x02\x02\u0C5B\u0C5E\x05\u01F6\xFC\x02\u0C5C\u0C5D\x07\u03FD\x02" + - "\x02\u0C5D\u0C5F\x07\u03ED\x02\x02\u0C5E\u0C5C\x03\x02\x02\x02\u0C5E\u0C5F" + - "\x03\x02\x02\x02\u0C5F\u0C61\x03\x02\x02\x02\u0C60\u0C5A\x03\x02\x02\x02" + - "\u0C61\u0C64\x03\x02\x02\x02\u0C62\u0C60\x03\x02\x02\x02\u0C62\u0C63\x03" + - "\x02\x02\x02\u0C63\u0C65\x03\x02\x02\x02\u0C64\u0C62\x03\x02\x02\x02\u0C65" + - "\u0C66\x07\xAB\x02\x02\u0C66\u0C67\x05\xD6l\x02\u0C67\u0C69\x03\x02\x02" + - "\x02\u0C68\u0C41\x03\x02\x02\x02\u0C68\u0C54\x03\x02\x02\x02\u0C69\u0C6C" + - "\x03\x02\x02\x02\u0C6A\u0C6B\x07\xAE\x02\x02\u0C6B\u0C6D\x05\u025C\u012F" + - "\x02\u0C6C\u0C6A\x03\x02\x02\x02\u0C6C\u0C6D\x03\x02\x02\x02\u0C6D\xC5" + - "\x03\x02\x02\x02\u0C6E\u0C6F\x07\u0177\x02\x02\u0C6F\u0C70\x05\u01F6\xFC" + - "\x02\u0C70\u0C75\x07\u01CC\x02\x02\u0C71\u0C73\x07\r\x02\x02\u0C72\u0C71" + - "\x03\x02\x02\x02\u0C72\u0C73\x03\x02\x02\x02\u0C73\u0C74\x03\x02\x02\x02" + - "\u0C74\u0C76\x05\u020E\u0108\x02\u0C75\u0C72\x03\x02\x02\x02\u0C75\u0C76" + - "\x03\x02\x02\x02\u0C76\xC7\x03\x02\x02\x02\u0C77\u0C78\x07\u0177\x02\x02" + - "\u0C78\u0C79\x05\u01F6\xFC\x02\u0C79\u0C7A\x07z\x02\x02\u0C7A\u0C81\x05" + - "\u020E\u0108\x02\u0C7B\u0C7C\x05\u0264\u0133\x02\u0C7C\u0C7D\x07\u03FE" + - "\x02\x02\u0C7D\u0C7E\x05\u0238\u011D\x02\u0C7E\u0C7F\x07\u03FF\x02\x02" + - "\u0C7F\u0C82\x03\x02\x02\x02\u0C80\u0C82\t*\x02\x02\u0C81\u0C7B\x03\x02" + - "\x02\x02\u0C81\u0C80\x03\x02\x02\x02\u0C82\u0C85\x03\x02\x02\x02\u0C83" + - "\u0C84\x07\xAE\x02\x02\u0C84\u0C86\x05\u025C\u012F\x02\u0C85\u0C83\x03" + - "\x02\x02\x02\u0C85\u0C86\x03\x02\x02\x02\u0C86\u0C89\x03\x02\x02\x02\u0C87" + - "\u0C88\x07[\x02\x02\u0C88\u0C8A\x05\u0100\x81\x02\u0C89\u0C87\x03\x02" + - "\x02\x02\u0C89\u0C8A\x03\x02\x02\x02\u0C8A\xC9\x03\x02\x02\x02\u0C8B\u0C8C" + - "\x07\u0177\x02\x02\u0C8C\u0C8D\x05\u01F6\xFC\x02\u0C8D\u0C8E\x07z\x02" + - "\x02\u0C8E\u0C91\t+\x02\x02\u0C8F\u0C90\x07\xAE\x02\x02\u0C90\u0C92\x05" + - "\u025C\u012F\x02\u0C91\u0C8F\x03\x02\x02\x02\u0C91\u0C92\x03\x02\x02\x02" + - "\u0C92\u0C95\x03\x02\x02\x02\u0C93\u0C94\x07[\x02\x02\u0C94\u0C96\x05" + - "\u0100\x81\x02\u0C95\u0C93\x03\x02\x02\x02\u0C95\u0C96\x03\x02\x02\x02" + - "\u0C96\xCB\x03\x02\x02\x02\u0C97\u0C98\x07\u0177\x02\x02\u0C98\u0C99\x05" + - "\u01F6\xFC\x02\u0C99\u0C9A\x07\u012D\x02\x02\u0C9A\xCD\x03\x02\x02\x02" + - "\u0C9B\u0C9D\x07\xA8\x02\x02\u0C9C\u0C9E\x07a\x02\x02\u0C9D\u0C9C\x03" + - "\x02\x02\x02\u0C9D\u0C9E\x03\x02\x02\x02\u0C9E\u0CA0\x03\x02\x02\x02\u0C9F" + - "\u0CA1\x07H\x02\x02\u0CA0\u0C9F\x03\x02\x02\x02\u0CA0\u0CA1\x03\x02\x02" + - "\x02\u0CA1\u0CA2\x03\x02\x02\x02\u0CA2\u0CA7\x05\u01F6\xFC\x02\u0CA3\u0CA5" + - "\x07\r\x02\x02\u0CA4\u0CA3\x03\x02\x02\x02\u0CA4\u0CA5\x03\x02\x02\x02" + - "\u0CA5\u0CA6\x03\x02\x02\x02\u0CA6\u0CA8\x05\u020E\u0108\x02\u0CA7\u0CA4" + - "\x03\x02\x02\x02\u0CA7\u0CA8\x03\x02\x02\x02\u0CA8\u0CA9\x03\x02\x02\x02" + - "\u0CA9\u0CAA\x07\x8C\x02\x02\u0CAA\u0CAF\x05\xBC_\x02\u0CAB\u0CAC\x07" + - "\u0400\x02\x02\u0CAC\u0CAE\x05\xBC_\x02\u0CAD\u0CAB\x03\x02\x02\x02\u0CAE" + - "\u0CB1\x03\x02\x02\x02\u0CAF\u0CAD\x03\x02\x02\x02\u0CAF\u0CB0\x03\x02" + - "\x02\x02\u0CB0\u0CB4\x03\x02\x02\x02\u0CB1\u0CAF\x03\x02\x02\x02\u0CB2" + - "\u0CB3\x07\xAE\x02\x02\u0CB3\u0CB5\x05\u025C\u012F\x02\u0CB4\u0CB2\x03" + - "\x02\x02\x02\u0CB4\u0CB5\x03\x02\x02\x02\u0CB5\u0CB7\x03\x02\x02\x02\u0CB6" + - "\u0CB8\x05\xD2j\x02\u0CB7\u0CB6\x03\x02\x02\x02\u0CB7\u0CB8\x03\x02\x02" + - "\x02\u0CB8\u0CBA\x03\x02\x02\x02\u0CB9\u0CBB\x05\xFE\x80\x02\u0CBA\u0CB9" + - "\x03\x02\x02\x02\u0CBA\u0CBB\x03\x02\x02\x02\u0CBB\xCF\x03\x02\x02\x02" + - "\u0CBC\u0CBE\x07\xA8\x02\x02\u0CBD\u0CBF\x07a\x02\x02\u0CBE\u0CBD\x03" + - "\x02\x02\x02\u0CBE\u0CBF\x03\x02\x02\x02\u0CBF\u0CC1\x03\x02\x02\x02\u0CC0" + - "\u0CC2\x07H\x02\x02\u0CC1\u0CC0\x03\x02\x02\x02\u0CC1\u0CC2\x03\x02\x02" + - "\x02\u0CC2\u0CC3\x03\x02\x02\x02\u0CC3\u0CC4\x05\xD6l\x02\u0CC4\u0CC5" + - "\x07\x8C\x02\x02\u0CC5\u0CCA\x05\xBC_\x02\u0CC6\u0CC7\x07\u0400\x02\x02" + - "\u0CC7\u0CC9\x05\xBC_\x02\u0CC8\u0CC6\x03\x02\x02\x02\u0CC9\u0CCC\x03" + - "\x02\x02\x02\u0CCA\u0CC8\x03\x02\x02\x02\u0CCA\u0CCB\x03\x02\x02\x02\u0CCB" + - "\u0CCF\x03\x02\x02\x02\u0CCC\u0CCA\x03\x02\x02\x02\u0CCD\u0CCE\x07\xAE" + - "\x02\x02\u0CCE\u0CD0\x05\u025C\u012F\x02\u0CCF\u0CCD\x03\x02\x02\x02\u0CCF" + - "\u0CD0\x03\x02\x02\x02\u0CD0\xD1\x03\x02\x02\x02\u0CD1\u0CD2\x07q\x02" + - "\x02\u0CD2\u0CD3\x07\x12\x02\x02\u0CD3\u0CD8\x05\xD4k\x02\u0CD4\u0CD5" + - "\x07\u0400\x02\x02\u0CD5\u0CD7\x05\xD4k\x02\u0CD6\u0CD4\x03\x02\x02\x02" + - "\u0CD7\u0CDA\x03\x02\x02\x02\u0CD8\u0CD6\x03\x02\x02\x02\u0CD8\u0CD9\x03" + - "\x02\x02\x02\u0CD9\xD3\x03\x02\x02\x02\u0CDA\u0CD8\x03\x02\x02\x02\u0CDB" + - "\u0CDD\x05\u025C\u012F\x02\u0CDC\u0CDE\t,\x02\x02\u0CDD\u0CDC\x03\x02" + - "\x02\x02\u0CDD\u0CDE\x03\x02\x02\x02\u0CDE\xD5\x03\x02\x02\x02\u0CDF\u0CE4" + - "\x05\xD8m\x02\u0CE0\u0CE1\x07\u0400\x02\x02\u0CE1\u0CE3\x05\xD8m\x02\u0CE2" + - "\u0CE0\x03\x02\x02\x02\u0CE3\u0CE6\x03\x02\x02\x02\u0CE4\u0CE2\x03\x02" + - "\x02\x02\u0CE4\u0CE5\x03\x02\x02\x02\u0CE5\xD7\x03\x02\x02\x02\u0CE6\u0CE4" + - "\x03\x02\x02\x02\u0CE7\u0CEB\x05\xDAn\x02\u0CE8\u0CEA\x05\xE0q\x02\u0CE9" + - "\u0CE8\x03\x02\x02\x02\u0CEA\u0CED\x03\x02\x02\x02\u0CEB\u0CE9\x03\x02" + - "\x02\x02\u0CEB\u0CEC\x03\x02\x02\x02\u0CEC\u0CF9\x03\x02\x02\x02\u0CED" + - "\u0CEB\x03\x02\x02\x02\u0CEE\u0CEF\x07\u03FE\x02\x02\u0CEF\u0CF3\x05\xDA" + - "n\x02\u0CF0\u0CF2\x05\xE0q\x02\u0CF1\u0CF0\x03\x02\x02\x02\u0CF2\u0CF5" + - "\x03\x02\x02\x02\u0CF3\u0CF1\x03\x02\x02\x02\u0CF3\u0CF4\x03\x02\x02\x02" + - "\u0CF4\u0CF6\x03\x02\x02\x02\u0CF5\u0CF3\x03\x02\x02\x02\u0CF6\u0CF7\x07" + - "\u03FF\x02\x02\u0CF7\u0CF9\x03\x02\x02\x02\u0CF8\u0CE7\x03\x02\x02\x02" + - "\u0CF8\u0CEE\x03\x02\x02\x02\u0CF9\xD9\x03\x02\x02\x02\u0CFA\u0D00\x05" + - "\u01F6\xFC\x02\u0CFB\u0CFC\x07u\x02\x02\u0CFC\u0CFD\x07\u03FE\x02\x02" + - "\u0CFD\u0CFE\x05\u022E\u0118\x02\u0CFE\u0CFF\x07\u03FF\x02\x02\u0CFF\u0D01" + - "\x03\x02\x02\x02\u0D00\u0CFB\x03\x02\x02\x02\u0D00\u0D01\x03\x02\x02\x02" + - "\u0D01\u0D06\x03\x02\x02\x02\u0D02\u0D04\x07\r\x02\x02\u0D03\u0D02\x03" + - "\x02\x02\x02\u0D03\u0D04\x03\x02\x02\x02\u0D04\u0D05\x03\x02\x02\x02\u0D05" + - "\u0D07\x05\u020E\u0108\x02\u0D06\u0D03\x03\x02\x02\x02\u0D06\u0D07\x03" + - "\x02\x02\x02\u0D07\u0D10\x03\x02\x02\x02\u0D08\u0D0D\x05\xDCo\x02\u0D09" + - "\u0D0A\x07\u0400\x02\x02\u0D0A\u0D0C\x05\xDCo\x02\u0D0B\u0D09\x03\x02" + - "\x02\x02\u0D0C\u0D0F\x03\x02\x02\x02\u0D0D\u0D0B\x03\x02\x02\x02\u0D0D" + - "\u0D0E\x03\x02\x02\x02\u0D0E\u0D11\x03\x02\x02\x02\u0D0F\u0D0D\x03\x02" + - "\x02\x02\u0D10\u0D08\x03\x02\x02\x02\u0D10\u0D11\x03\x02\x02\x02\u0D11" + - "\u0D23\x03\x02\x02\x02\u0D12\u0D18\x05\xB6\\\x02\u0D13\u0D14\x07\u03FE" + - "\x02\x02\u0D14\u0D15\x05\xB6\\\x02\u0D15\u0D16\x07\u03FF\x02\x02\u0D16" + - "\u0D18\x03\x02\x02\x02\u0D17\u0D12\x03\x02\x02\x02\u0D17\u0D13\x03\x02" + - "\x02\x02\u0D18\u0D1A\x03\x02\x02\x02\u0D19\u0D1B\x07\r\x02\x02\u0D1A\u0D19" + - "\x03\x02\x02\x02\u0D1A\u0D1B\x03\x02\x02\x02\u0D1B\u0D1C\x03\x02\x02\x02" + - "\u0D1C\u0D1D\x05\u020E\u0108\x02\u0D1D\u0D23\x03\x02\x02\x02\u0D1E\u0D1F" + - "\x07\u03FE\x02\x02\u0D1F\u0D20\x05\xD6l\x02\u0D20\u0D21\x07\u03FF\x02" + - "\x02\u0D21\u0D23\x03\x02\x02\x02\u0D22\u0CFA\x03\x02\x02\x02\u0D22\u0D17" + - "\x03\x02\x02\x02\u0D22\u0D1E\x03\x02\x02\x02\u0D23\xDB\x03\x02\x02\x02" + - "\u0D24\u0D25\t-\x02\x02\u0D25\u0D28\t\x14\x02\x02\u0D26\u0D27\x07<\x02" + - "\x02\u0D27\u0D29\x05\xDEp\x02\u0D28\u0D26\x03\x02\x02\x02\u0D28\u0D29" + - "\x03\x02\x02\x02\u0D29\u0D2A\x03\x02\x02\x02\u0D2A\u0D2B\x07\u03FE\x02" + - "\x02\u0D2B\u0D2C\x05\u022E\u0118\x02\u0D2C\u0D2D\x07\u03FF\x02\x02\u0D2D" + - "\xDD\x03\x02\x02\x02\u0D2E\u0D34\x07S\x02\x02\u0D2F\u0D30\x07q\x02\x02" + - "\u0D30\u0D34\x07\x12\x02\x02\u0D31\u0D32\x07D\x02\x02\u0D32\u0D34\x07" + - "\x12\x02\x02\u0D33\u0D2E\x03\x02\x02\x02\u0D33\u0D2F\x03\x02\x02\x02\u0D33" + - "\u0D31\x03\x02\x02\x02\u0D34\xDF\x03\x02\x02\x02\u0D35\u0D37\t.\x02\x02" + - "\u0D36\u0D35\x03\x02\x02\x02\u0D36\u0D37\x03\x02\x02\x02\u0D37\u0D38\x03" + - "\x02\x02\x02\u0D38\u0D39\x07S\x02\x02\u0D39\u0D41\x05\xDAn\x02\u0D3A\u0D3B" + - "\x07l\x02\x02\u0D3B\u0D42\x05\u025C\u012F\x02\u0D3C\u0D3D\x07\xAB\x02" + - "\x02\u0D3D\u0D3E\x07\u03FE\x02\x02\u0D3E\u0D3F\x05\u022E\u0118\x02\u0D3F" + - "\u0D40\x07\u03FF\x02\x02\u0D40\u0D42\x03\x02\x02\x02\u0D41\u0D3A\x03\x02" + - "\x02\x02\u0D41\u0D3C\x03\x02\x02\x02\u0D41\u0D42\x03\x02\x02\x02\u0D42" + - "\u0D62\x03\x02\x02\x02\u0D43\u0D44\x07\x9B\x02\x02\u0D44\u0D47\x05\xDA" + - "n\x02\u0D45\u0D46\x07l\x02\x02\u0D46\u0D48\x05\u025C\u012F\x02\u0D47\u0D45" + - "\x03\x02\x02\x02\u0D47\u0D48\x03\x02\x02\x02\u0D48\u0D62\x03\x02\x02\x02" + - "\u0D49\u0D4B\t/\x02\x02\u0D4A\u0D4C\x07s\x02\x02\u0D4B\u0D4A\x03\x02\x02" + - "\x02\u0D4B\u0D4C\x03\x02\x02\x02\u0D4C\u0D4D\x03\x02\x02\x02\u0D4D\u0D4E" + - "\x07S\x02\x02\u0D4E\u0D56\x05\xDAn\x02\u0D4F\u0D50\x07l\x02\x02\u0D50" + - "\u0D57\x05\u025C\u012F\x02\u0D51\u0D52\x07\xAB\x02\x02\u0D52\u0D53\x07" + - "\u03FE\x02\x02\u0D53\u0D54\x05\u022E\u0118\x02\u0D54\u0D55\x07\u03FF\x02" + - "\x02\u0D55\u0D57\x03\x02\x02\x02\u0D56\u0D4F\x03\x02\x02\x02\u0D56\u0D51" + - "\x03\x02\x02\x02\u0D57\u0D62\x03\x02\x02\x02\u0D58\u0D5D\x07g\x02\x02" + - "\u0D59\u0D5B\t/\x02\x02\u0D5A\u0D5C\x07s\x02\x02\u0D5B\u0D5A\x03\x02\x02" + - "\x02\u0D5B\u0D5C\x03\x02\x02\x02\u0D5C\u0D5E\x03\x02\x02\x02\u0D5D\u0D59" + - "\x03\x02\x02\x02\u0D5D\u0D5E\x03\x02\x02\x02\u0D5E\u0D5F\x03\x02\x02\x02" + - "\u0D5F\u0D60\x07S\x02\x02\u0D60\u0D62\x05\xDAn\x02\u0D61\u0D36\x03\x02" + - "\x02\x02\u0D61\u0D43\x03\x02\x02\x02\u0D61\u0D49\x03\x02\x02\x02\u0D61" + - "\u0D58\x03\x02\x02\x02\u0D62\xE1\x03\x02\x02\x02\u0D63\u0D64\x07\u03FE" + - "\x02\x02\u0D64\u0D65\x05\xE6t\x02\u0D65\u0D66\x07\u03FF\x02\x02\u0D66" + - "\u0D6C\x03\x02\x02\x02\u0D67\u0D68\x07\u03FE\x02\x02\u0D68\u0D69\x05\xE2" + - "r\x02\u0D69\u0D6A\x07\u03FF\x02\x02\u0D6A\u0D6C\x03\x02\x02\x02\u0D6B" + - "\u0D63\x03\x02\x02\x02\u0D6B\u0D67\x03\x02\x02\x02\u0D6C\xE3\x03\x02\x02" + - "\x02\u0D6D\u0D6E\x07\u03FE\x02\x02\u0D6E\u0D6F\x05\xE8u\x02\u0D6F\u0D70" + - "\x07\u03FF\x02\x02\u0D70\u0D76\x03\x02\x02\x02\u0D71\u0D72\x07\u03FE\x02" + - "\x02\u0D72\u0D73\x05\xE4s\x02\u0D73\u0D74\x07\u03FF\x02\x02\u0D74\u0D76" + - "\x03\x02\x02\x02\u0D75\u0D6D\x03\x02\x02\x02\u0D75\u0D71\x03\x02\x02\x02" + - "\u0D76\xE5\x03\x02\x02\x02\u0D77\u0D7B\x07\x8B\x02\x02\u0D78\u0D7A\x05" + - "\xEEx\x02\u0D79\u0D78\x03\x02\x02\x02\u0D7A\u0D7D\x03\x02\x02\x02\u0D7B" + - "\u0D79\x03\x02\x02\x02\u0D7B\u0D7C\x03\x02\x02\x02\u0D7C\u0D7E\x03\x02" + - "\x02\x02\u0D7D\u0D7B\x03\x02\x02\x02\u0D7E\u0D80\x05\xF0y\x02\u0D7F\u0D81" + - "\x05\xF4{\x02\u0D80\u0D7F\x03\x02\x02\x02\u0D80\u0D81\x03\x02\x02\x02" + - "\u0D81\u0D83\x03\x02\x02\x02\u0D82\u0D84\x05\xFA~\x02\u0D83\u0D82\x03" + - "\x02\x02\x02\u0D83\u0D84\x03\x02\x02\x02\u0D84\u0D86\x03\x02\x02\x02\u0D85" + - "\u0D87\x05\xD2j\x02\u0D86\u0D85\x03\x02\x02\x02\u0D86\u0D87\x03\x02\x02" + - "\x02\u0D87\u0D89\x03\x02\x02\x02\u0D88\u0D8A\x05\xFE\x80\x02\u0D89\u0D88" + - "\x03\x02\x02\x02\u0D89\u0D8A\x03\x02\x02\x02\u0D8A\u0DA0\x03\x02\x02\x02" + - "\u0D8B\u0D8F\x07\x8B\x02\x02\u0D8C\u0D8E\x05\xEEx\x02\u0D8D\u0D8C\x03" + - "\x02\x02\x02\u0D8E\u0D91\x03\x02\x02\x02\u0D8F\u0D8D\x03\x02\x02\x02\u0D8F" + - "\u0D90\x03\x02\x02\x02\u0D90\u0D92\x03\x02\x02\x02\u0D91\u0D8F\x03\x02" + - "\x02\x02\u0D92\u0D94\x05\xF0y\x02\u0D93\u0D95\x05\xFA~\x02\u0D94\u0D93" + - "\x03\x02\x02\x02\u0D94\u0D95\x03\x02\x02\x02\u0D95\u0D97\x03\x02\x02\x02" + - "\u0D96\u0D98\x05\xD2j\x02\u0D97\u0D96\x03\x02\x02\x02\u0D97\u0D98\x03" + - "\x02\x02\x02\u0D98\u0D9A\x03\x02\x02\x02\u0D99\u0D9B\x05\xFE\x80\x02\u0D9A" + - "\u0D99\x03\x02\x02\x02\u0D9A\u0D9B\x03\x02\x02\x02\u0D9B\u0D9D\x03\x02" + - "\x02\x02\u0D9C\u0D9E\x05\xF4{\x02\u0D9D\u0D9C\x03\x02\x02\x02\u0D9D\u0D9E" + - "\x03\x02\x02\x02\u0D9E\u0DA0\x03\x02\x02\x02\u0D9F\u0D77\x03\x02\x02\x02" + - "\u0D9F\u0D8B\x03\x02\x02\x02\u0DA0\xE7\x03\x02\x02\x02\u0DA1\u0DA5\x07" + - "\x8B\x02\x02\u0DA2\u0DA4\x05\xEEx\x02\u0DA3\u0DA2\x03\x02\x02\x02\u0DA4" + - "\u0DA7\x03\x02\x02\x02\u0DA5\u0DA3\x03\x02\x02\x02\u0DA5\u0DA6\x03\x02" + - "\x02\x02\u0DA6\u0DA8\x03\x02\x02\x02\u0DA7\u0DA5\x03\x02\x02\x02\u0DA8" + - "\u0DAA\x05\xF0y\x02\u0DA9\u0DAB\x05\xFA~\x02\u0DAA\u0DA9\x03\x02\x02\x02" + - "\u0DAA\u0DAB\x03\x02\x02\x02\u0DAB\u0DAD\x03\x02\x02\x02\u0DAC\u0DAE\x05" + - "\xD2j\x02\u0DAD\u0DAC\x03\x02\x02\x02\u0DAD\u0DAE\x03\x02\x02\x02\u0DAE" + - "\u0DB0\x03\x02\x02\x02\u0DAF\u0DB1\x05\xFE\x80\x02\u0DB0\u0DAF\x03\x02" + - "\x02\x02\u0DB0\u0DB1\x03\x02\x02\x02\u0DB1\xE9\x03\x02\x02\x02\u0DB2\u0DB4" + - "\x07\xA4\x02\x02\u0DB3\u0DB5\t(\x02\x02\u0DB4\u0DB3\x03\x02\x02\x02\u0DB4" + - "\u0DB5\x03\x02\x02\x02\u0DB5\u0DB6\x03\x02\x02\x02\u0DB6\u0DB7\x05\xE4" + - "s\x02\u0DB7\xEB\x03\x02\x02\x02\u0DB8\u0DBA\x07\xA4\x02\x02\u0DB9\u0DBB" + - "\t(\x02\x02\u0DBA\u0DB9\x03\x02\x02\x02\u0DBA\u0DBB\x03\x02\x02\x02\u0DBB" + - "\u0DBE\x03\x02\x02\x02\u0DBC\u0DBF\x05\xE8u\x02\u0DBD\u0DBF\x05\xE4s\x02" + - "\u0DBE\u0DBC\x03\x02\x02\x02\u0DBE\u0DBD\x03\x02\x02\x02\u0DBF\xED\x03" + - "\x02\x02\x02\u0DC0\u0DC9\t0\x02\x02\u0DC1\u0DC9\x07F\x02\x02\u0DC2\u0DC9" + - "\x07\x9B\x02\x02\u0DC3\u0DC9\x07\x97\x02\x02\u0DC4\u0DC9\x07\x95\x02\x02" + - "\u0DC5\u0DC9\x07\u0218\x02\x02\u0DC6\u0DC9\t1\x02\x02\u0DC7\u0DC9\x07" + - "\x96\x02\x02\u0DC8\u0DC0\x03\x02\x02\x02\u0DC8\u0DC1\x03\x02\x02\x02\u0DC8" + - "\u0DC2\x03\x02\x02\x02\u0DC8\u0DC3\x03\x02\x02\x02\u0DC8\u0DC4\x03\x02" + - "\x02\x02\u0DC8\u0DC5\x03\x02\x02\x02\u0DC8\u0DC6\x03\x02\x02\x02\u0DC8" + - "\u0DC7\x03\x02\x02\x02\u0DC9\xEF\x03\x02\x02\x02\u0DCA\u0DCD\x07\u03ED" + - "\x02\x02\u0DCB\u0DCD\x05\xF2z\x02\u0DCC\u0DCA\x03\x02\x02\x02\u0DCC\u0DCB" + - "\x03\x02\x02\x02\u0DCD\u0DD2\x03\x02\x02\x02\u0DCE\u0DCF\x07\u0400\x02" + - "\x02\u0DCF\u0DD1\x05\xF2z\x02\u0DD0\u0DCE\x03\x02\x02\x02\u0DD1\u0DD4" + - "\x03\x02\x02\x02\u0DD2\u0DD0\x03\x02\x02\x02\u0DD2\u0DD3\x03\x02\x02\x02" + - "\u0DD3\xF1\x03\x02\x02\x02\u0DD4\u0DD2\x03\x02\x02\x02\u0DD5\u0DD6\x05" + - "\u01F4\xFB\x02\u0DD6\u0DD7\x07\u03FD\x02\x02\u0DD7\u0DD8\x07\u03ED\x02" + - "\x02\u0DD8\u0DF3\x03\x02\x02\x02\u0DD9\u0DDE\x05\u01F8\xFD\x02\u0DDA\u0DDC" + - "\x07\r\x02\x02\u0DDB\u0DDA\x03\x02\x02\x02\u0DDB\u0DDC\x03\x02\x02\x02" + - "\u0DDC\u0DDD\x03\x02\x02\x02\u0DDD\u0DDF\x05\u020E\u0108\x02\u0DDE\u0DDB" + - "\x03\x02\x02\x02\u0DDE\u0DDF\x03\x02\x02\x02\u0DDF\u0DF3\x03\x02\x02\x02" + - "\u0DE0\u0DE5\x05\u0248\u0125\x02\u0DE1\u0DE3\x07\r\x02\x02\u0DE2\u0DE1" + - "\x03\x02\x02\x02\u0DE2\u0DE3\x03\x02\x02\x02\u0DE3\u0DE4\x03\x02\x02\x02" + - "\u0DE4\u0DE6\x05\u020E\u0108\x02\u0DE5\u0DE2\x03\x02\x02\x02\u0DE5\u0DE6" + - "\x03\x02\x02\x02\u0DE6\u0DF3\x03\x02\x02\x02\u0DE7\u0DE8\x07\u0418\x02" + - "\x02\u0DE8\u0DEA\x07\u03E4\x02\x02\u0DE9\u0DE7\x03\x02\x02\x02\u0DE9\u0DEA" + - "\x03\x02\x02\x02\u0DEA\u0DEB\x03\x02\x02\x02\u0DEB\u0DF0\x05\u025C\u012F" + - "\x02\u0DEC\u0DEE\x07\r\x02\x02\u0DED\u0DEC\x03\x02\x02\x02\u0DED\u0DEE" + - "\x03\x02\x02\x02\u0DEE\u0DEF\x03\x02\x02\x02\u0DEF\u0DF1\x05\u020E\u0108" + - "\x02\u0DF0\u0DED\x03\x02\x02\x02\u0DF0\u0DF1\x03\x02\x02\x02\u0DF1\u0DF3" + - "\x03\x02\x02\x02\u0DF2\u0DD5\x03\x02\x02\x02\u0DF2\u0DD9\x03\x02\x02\x02" + - "\u0DF2\u0DE0\x03\x02\x02\x02\u0DF2\u0DE9\x03\x02\x02\x02\u0DF3\xF3\x03" + - "\x02\x02\x02\u0DF4\u0DF5\x07P\x02\x02\u0DF5\u0DFA\x05\xBE`\x02\u0DF6\u0DF7" + - "\x07\u0400\x02\x02\u0DF7\u0DF9\x05\xBE`\x02\u0DF8\u0DF6\x03\x02\x02\x02" + - "\u0DF9\u0DFC\x03\x02\x02\x02\u0DFA\u0DF8\x03\x02\x02\x02\u0DFA\u0DFB\x03" + - "\x02\x02\x02\u0DFB\u0E19\x03\x02\x02\x02\u0DFC\u0DFA\x03\x02\x02\x02\u0DFD" + - "\u0DFE\x07P\x02\x02\u0DFE\u0DFF\x07\u0151\x02\x02\u0DFF\u0E19\x07\u040D" + - "\x02\x02\u0E00\u0E01\x07P\x02\x02\u0E01\u0E02\x07t\x02\x02\u0E02\u0E06" + - "\x07\u040D\x02\x02\u0E03\u0E04\x07\x18\x02\x02\u0E04\u0E05\x07\x8C\x02" + - "\x02\u0E05\u0E07\x05\u0200\u0101\x02\u0E06\u0E03\x03\x02\x02\x02\u0E06" + - "\u0E07\x03\x02\x02\x02\u0E07\u0E0E\x03\x02\x02\x02\u0E08\u0E0A\t%\x02" + - "\x02\u0E09\u0E0B\x05\xF6|\x02\u0E0A\u0E09\x03\x02\x02\x02\u0E0B\u0E0C" + - "\x03\x02\x02\x02\u0E0C\u0E0A\x03\x02\x02\x02\u0E0C\u0E0D\x03\x02\x02\x02" + - "\u0E0D\u0E0F\x03\x02\x02\x02\u0E0E\u0E08\x03\x02\x02\x02\u0E0E\u0E0F\x03" + - "\x02\x02\x02\u0E0F\u0E16\x03\x02\x02\x02\u0E10\u0E12\x07]\x02\x02\u0E11" + - "\u0E13\x05\xF8}\x02\u0E12\u0E11\x03\x02\x02\x02\u0E13\u0E14\x03\x02\x02" + - "\x02\u0E14\u0E12\x03\x02\x02\x02\u0E14\u0E15\x03\x02\x02\x02\u0E15\u0E17" + - "\x03\x02\x02\x02\u0E16\u0E10\x03\x02\x02\x02\u0E16\u0E17\x03\x02\x02\x02" + - "\u0E17\u0E19\x03\x02\x02\x02\u0E18\u0DF4\x03\x02\x02\x02\u0E18\u0DFD\x03" + - "\x02\x02\x02\u0E18\u0E00\x03\x02\x02\x02\u0E19\xF5\x03\x02\x02\x02\u0E1A" + - "\u0E1B\x07\x9D\x02\x02\u0E1B\u0E1C\x07\x12\x02\x02\u0E1C\u0E27\x07\u040D" + - "\x02\x02\u0E1D\u0E1F\x07o\x02\x02\u0E1E\u0E1D\x03\x02\x02\x02\u0E1E\u0E1F" + - "\x03\x02\x02\x02\u0E1F\u0E20\x03\x02\x02\x02\u0E20\u0E21\x075\x02\x02" + - "\u0E21\u0E22\x07\x12\x02\x02\u0E22\u0E27\x07\u040D\x02\x02\u0E23\u0E24" + - "\x076\x02\x02\u0E24\u0E25\x07\x12\x02\x02\u0E25\u0E27\x07\u040D\x02\x02" + - "\u0E26\u0E1A\x03\x02\x02\x02\u0E26\u0E1E\x03\x02\x02\x02\u0E26\u0E23\x03" + - "\x02\x02\x02\u0E27\xF7\x03\x02\x02\x02\u0E28\u0E29\x07\x9A\x02\x02\u0E29" + - "\u0E2A\x07\x12\x02\x02\u0E2A\u0E2F\x07\u040D\x02\x02\u0E2B\u0E2C\x07\x9D" + - "\x02\x02\u0E2C\u0E2D\x07\x12\x02\x02\u0E2D\u0E2F\x07\u040D\x02\x02\u0E2E" + - "\u0E28\x03\x02\x02\x02\u0E2E\u0E2B\x03\x02\x02\x02\u0E2F\xF9\x03\x02\x02" + - "\x02\u0E30\u0E31\x07?\x02\x02\u0E31\u0E34\x05\xD6l\x02\u0E32\u0E33\x07" + - "\xAE\x02\x02\u0E33\u0E35\x05\u025C"; - private static readonly _serializedATNSegment8: string = - "\u012F\x02\u0E34\u0E32\x03\x02\x02\x02\u0E34\u0E35\x03\x02\x02\x02\u0E35" + - "\u0E44\x03\x02\x02\x02\u0E36\u0E37\x07D\x02\x02\u0E37\u0E38\x07\x12\x02" + - "\x02\u0E38\u0E3D\x05\xFC\x7F\x02\u0E39\u0E3A\x07\u0400\x02\x02\u0E3A\u0E3C" + - "\x05\xFC\x7F\x02\u0E3B\u0E39\x03\x02\x02\x02\u0E3C\u0E3F\x03\x02\x02\x02" + - "\u0E3D\u0E3B\x03\x02\x02\x02\u0E3D\u0E3E\x03\x02\x02\x02\u0E3E\u0E42\x03" + - "\x02\x02\x02\u0E3F\u0E3D\x03\x02\x02\x02\u0E40\u0E41\x07\xB0\x02\x02\u0E41" + - "\u0E43\x07\u01FF\x02\x02\u0E42\u0E40\x03\x02\x02\x02\u0E42\u0E43\x03\x02" + - "\x02\x02\u0E43\u0E45\x03\x02\x02\x02\u0E44\u0E36\x03\x02\x02\x02\u0E44" + - "\u0E45\x03\x02\x02\x02\u0E45\u0E48\x03\x02\x02\x02\u0E46\u0E47\x07E\x02" + - "\x02\u0E47\u0E49\x05\u025C\u012F\x02\u0E48\u0E46\x03\x02\x02\x02\u0E48" + - "\u0E49\x03\x02\x02\x02\u0E49\xFB\x03\x02\x02\x02\u0E4A\u0E4C\x05\u025C" + - "\u012F\x02\u0E4B\u0E4D\t,\x02\x02\u0E4C\u0E4B\x03\x02\x02\x02\u0E4C\u0E4D" + - "\x03\x02\x02\x02\u0E4D\xFD\x03\x02\x02\x02\u0E4E\u0E59\x07[\x02\x02\u0E4F" + - "\u0E50\x05\u0100\x81\x02\u0E50\u0E51\x07\u0400\x02\x02\u0E51\u0E53\x03" + - "\x02\x02\x02\u0E52\u0E4F\x03\x02\x02\x02\u0E52\u0E53\x03\x02\x02\x02\u0E53" + - "\u0E54\x03\x02\x02\x02\u0E54\u0E5A\x05\u0100\x81\x02\u0E55\u0E56\x05\u0100" + - "\x81\x02\u0E56\u0E57\x07\u01C6\x02\x02\u0E57\u0E58\x05\u0100\x81\x02\u0E58" + - "\u0E5A\x03\x02\x02\x02\u0E59\u0E52\x03\x02\x02\x02\u0E59\u0E55\x03\x02" + - "\x02\x02\u0E5A\xFF\x03\x02\x02\x02\u0E5B\u0E5E\x05\u0214\u010B\x02\u0E5C" + - "\u0E5E\x05\u01FE\u0100\x02\u0E5D\u0E5B\x03\x02\x02\x02\u0E5D\u0E5C\x03" + - "\x02\x02\x02\u0E5E\u0101\x03\x02\x02\x02\u0E5F\u0E60\x07\u021C\x02\x02" + - "\u0E60\u0E69\x07\u0233\x02\x02\u0E61\u0E66\x05\u0118\x8D\x02\u0E62\u0E63" + - "\x07\u0400\x02\x02\u0E63\u0E65\x05\u0118\x8D\x02\u0E64\u0E62\x03\x02\x02" + - "\x02\u0E65\u0E68\x03\x02\x02\x02\u0E66\u0E64\x03\x02\x02\x02\u0E66\u0E67" + - "\x03\x02\x02\x02\u0E67\u0E6A\x03\x02\x02\x02\u0E68\u0E66\x03\x02\x02\x02" + - "\u0E69\u0E61\x03\x02\x02\x02\u0E69\u0E6A\x03\x02\x02\x02\u0E6A\u0103\x03" + - "\x02\x02\x02\u0E6B\u0E6D\x07\u011C\x02\x02\u0E6C\u0E6E\x07\u024A\x02\x02" + - "\u0E6D\u0E6C\x03\x02\x02\x02\u0E6D\u0E6E\x03\x02\x02\x02\u0E6E\u0105\x03" + - "\x02\x02\x02\u0E6F\u0E71\x07\u0134\x02\x02\u0E70\u0E72\x07\u024A\x02\x02" + - "\u0E71\u0E70\x03\x02\x02\x02\u0E71\u0E72\x03\x02\x02\x02\u0E72\u0E78\x03" + - "\x02\x02\x02\u0E73\u0E75\x07\f\x02\x02\u0E74\u0E76\x07\u01C2\x02\x02\u0E75" + - "\u0E74\x03\x02\x02\x02\u0E75\u0E76\x03\x02\x02\x02\u0E76\u0E77\x03\x02" + - "\x02\x02\u0E77\u0E79\x07\u0125\x02\x02\u0E78\u0E73\x03\x02\x02\x02\u0E78" + - "\u0E79\x03\x02\x02\x02\u0E79\u0E7E\x03\x02\x02\x02\u0E7A\u0E7C\x07\u01C2" + - "\x02\x02\u0E7B\u0E7A\x03\x02\x02\x02\u0E7B\u0E7C\x03\x02\x02\x02\u0E7C" + - "\u0E7D\x03\x02\x02\x02\u0E7D\u0E7F\x07~\x02\x02\u0E7E\u0E7B\x03\x02\x02" + - "\x02\u0E7E\u0E7F\x03\x02\x02\x02\u0E7F\u0107\x03\x02\x02\x02\u0E80\u0E82" + - "\x07\u01FE\x02\x02\u0E81\u0E83\x07\u024A\x02\x02\u0E82\u0E81\x03\x02\x02" + - "\x02\u0E82\u0E83\x03\x02\x02\x02\u0E83\u0E89\x03\x02\x02\x02\u0E84\u0E86" + - "\x07\f\x02\x02\u0E85\u0E87\x07\u01C2\x02\x02\u0E86\u0E85\x03\x02\x02\x02" + - "\u0E86\u0E87\x03\x02\x02\x02\u0E87\u0E88\x03\x02\x02\x02\u0E88\u0E8A\x07" + - "\u0125\x02\x02\u0E89\u0E84\x03\x02\x02\x02\u0E89\u0E8A\x03\x02\x02\x02" + - "\u0E8A\u0E8F\x03\x02\x02\x02\u0E8B\u0E8D\x07\u01C2\x02\x02\u0E8C\u0E8B" + - "\x03\x02\x02\x02\u0E8C\u0E8D\x03\x02\x02\x02\u0E8D\u0E8E\x03\x02\x02\x02" + - "\u0E8E\u0E90\x07~\x02\x02\u0E8F\u0E8C\x03\x02\x02\x02\u0E8F\u0E90\x03" + - "\x02\x02\x02\u0E90\u0109\x03\x02\x02\x02\u0E91\u0E92\x07\u0204\x02\x02" + - "\u0E92\u0E93\x05\u020E\u0108\x02\u0E93\u010B\x03\x02\x02\x02\u0E94\u0E96" + - "\x07\u01FE\x02\x02\u0E95\u0E97\x07\u024A\x02\x02\u0E96\u0E95\x03\x02\x02" + - "\x02\u0E96\u0E97\x03\x02\x02\x02\u0E97\u0E98\x03\x02\x02\x02\u0E98\u0E9A" + - "\x07\x9F\x02\x02\u0E99\u0E9B\x07\u0204\x02\x02\u0E9A\u0E99\x03\x02\x02" + - "\x02\u0E9A\u0E9B\x03\x02\x02\x02\u0E9B\u0E9C\x03\x02\x02\x02\u0E9C\u0E9D" + - "\x05\u020E\u0108\x02\u0E9D\u010D\x03\x02\x02\x02\u0E9E\u0E9F\x07~\x02" + - "\x02\u0E9F\u0EA0\x07\u0204\x02\x02\u0EA0\u0EA1\x05\u020E\u0108\x02\u0EA1" + - "\u010F\x03\x02\x02\x02\u0EA2\u0EA3\x07_\x02\x02\u0EA3\u0EA4\x07\u025C" + - "\x02\x02\u0EA4\u0EA9\x05\u011A\x8E\x02\u0EA5\u0EA6\x07\u0400\x02\x02\u0EA6" + - "\u0EA8\x05\u011A\x8E\x02\u0EA7\u0EA5\x03\x02\x02\x02\u0EA8\u0EAB\x03\x02" + - "\x02\x02\u0EA9\u0EA7\x03\x02\x02\x02\u0EA9\u0EAA\x03\x02\x02\x02\u0EAA" + - "\u0111\x03\x02\x02\x02\u0EAB\u0EA9\x03\x02\x02\x02\u0EAC\u0EAD\x07\xA6" + - "\x02\x02\u0EAD\u0EAE\x07\u025C\x02\x02\u0EAE\u0113\x03\x02\x02\x02\u0EAF" + - "\u0EB0\x07\x8C\x02\x02\u0EB0\u0EB1\x07\u0118\x02\x02\u0EB1\u0EB2\x07\u03F5" + - "\x02\x02\u0EB2\u0EB3\t\x18\x02\x02\u0EB3\u0115\x03\x02\x02\x02\u0EB4\u0EB6" + - "\x07\x8C\x02\x02\u0EB5\u0EB7\t2\x02\x02\u0EB6\u0EB5\x03\x02\x02\x02\u0EB6" + - "\u0EB7\x03\x02\x02\x02\u0EB7\u0EB8\x03\x02\x02\x02\u0EB8\u0EB9\x07\u0233" + - "\x02\x02\u0EB9\u0EBE\x05\u011E\x90\x02\u0EBA\u0EBB\x07\u0400\x02\x02\u0EBB" + - "\u0EBD\x05\u011E\x90\x02\u0EBC\u0EBA\x03\x02\x02\x02\u0EBD\u0EC0\x03\x02" + - "\x02\x02\u0EBE\u0EBC\x03\x02\x02\x02\u0EBE\u0EBF\x03\x02\x02\x02\u0EBF" + - "\u0117\x03\x02\x02\x02\u0EC0\u0EBE\x03\x02\x02\x02\u0EC1\u0EC2\x07\xB0" + - "\x02\x02\u0EC2\u0EC3\x07\u013B\x02\x02\u0EC3\u0EC9\x07\u020F\x02\x02\u0EC4" + - "\u0EC5\x07z\x02\x02\u0EC5\u0EC9\x07\xB1\x02\x02\u0EC6\u0EC7\x07z\x02\x02" + - "\u0EC7\u0EC9\x07\u01CB\x02\x02\u0EC8\u0EC1\x03\x02\x02\x02\u0EC8\u0EC4" + - "\x03\x02\x02\x02\u0EC8\u0EC6\x03\x02\x02\x02\u0EC9\u0119\x03\x02\x02\x02" + - "\u0ECA\u0ECF\x05\u01F6\xFC\x02\u0ECB\u0ECD\x07\r\x02\x02\u0ECC\u0ECB\x03" + - "\x02\x02\x02\u0ECC\u0ECD\x03\x02\x02\x02\u0ECD\u0ECE\x03\x02\x02\x02\u0ECE" + - "\u0ED0\x05\u020E\u0108\x02\u0ECF\u0ECC\x03\x02\x02\x02\u0ECF\u0ED0\x03" + - "\x02\x02\x02\u0ED0\u0ED1\x03\x02\x02\x02\u0ED1\u0ED2\x05\u011C\x8F\x02" + - "\u0ED2\u011B\x03\x02\x02\x02\u0ED3\u0ED5\x07z\x02\x02\u0ED4\u0ED6\x07" + - "\u0194\x02\x02\u0ED5\u0ED4\x03\x02\x02\x02\u0ED5\u0ED6\x03\x02\x02\x02" + - "\u0ED6\u0EDC\x03\x02\x02\x02\u0ED7\u0ED9\x07a\x02\x02\u0ED8\u0ED7\x03" + - "\x02\x02\x02\u0ED8\u0ED9\x03\x02\x02\x02\u0ED9\u0EDA\x03\x02\x02\x02\u0EDA" + - "\u0EDC\x07\xB1\x02\x02\u0EDB\u0ED3\x03\x02\x02\x02\u0EDB\u0ED8\x03\x02" + - "\x02\x02\u0EDC\u011D\x03\x02\x02\x02\u0EDD\u0EDE\x07\u018A\x02\x02\u0EDE" + - "\u0EDF\x07\u0192\x02\x02\u0EDF\u0EE5\x05\u0120\x91\x02\u0EE0\u0EE1\x07" + - "z\x02\x02\u0EE1\u0EE5\x07\xB1\x02\x02\u0EE2\u0EE3\x07z\x02\x02\u0EE3\u0EE5" + - "\x07\u01CB\x02\x02\u0EE4\u0EDD\x03\x02\x02\x02\u0EE4\u0EE0\x03\x02\x02" + - "\x02\u0EE4\u0EE2\x03\x02\x02\x02\u0EE5\u011F\x03\x02\x02\x02\u0EE6\u0EE7" + - "\x07\u02B3\x02\x02\u0EE7\u0EEE\x07z\x02\x02\u0EE8\u0EE9\x07z\x02\x02\u0EE9" + - "\u0EEE\x07\u02B4\x02\x02\u0EEA\u0EEB\x07z\x02\x02\u0EEB\u0EEE\x07\u02B5" + - "\x02\x02\u0EEC\u0EEE\x07\u02B6\x02\x02\u0EED\u0EE6\x03\x02\x02\x02\u0EED" + - "\u0EE8\x03\x02\x02\x02\u0EED\u0EEA\x03\x02\x02\x02\u0EED\u0EEC\x03\x02" + - "\x02\x02\u0EEE\u0121\x03\x02\x02\x02\u0EEF\u0EF0\x07\x17\x02\x02\u0EF0" + - "\u0EF1\x07\u0197\x02\x02\u0EF1\u0EF2\x07\x9F\x02\x02\u0EF2\u0EF7\x05\u0134" + - "\x9B\x02\u0EF3\u0EF4\x07\u0400\x02\x02\u0EF4\u0EF6\x05\u0134\x9B\x02\u0EF5" + - "\u0EF3\x03\x02\x02\x02\u0EF6\u0EF9\x03\x02\x02\x02\u0EF7\u0EF5\x03\x02" + - "\x02\x02\u0EF7\u0EF8\x03\x02\x02\x02\u0EF8\u0EFB\x03\x02\x02\x02\u0EF9" + - "\u0EF7\x03\x02\x02\x02\u0EFA\u0EFC\x05\u013C\x9F\x02\u0EFB\u0EFA\x03\x02" + - "\x02\x02\u0EFB\u0EFC\x03\x02\x02\x02\u0EFC\u0123\x03\x02\x02\x02\u0EFD" + - "\u0EFE\x07\x17\x02\x02\u0EFE\u0EFF\x07\u01F8\x02\x02\u0EFF\u0F00\x07\u016B" + - "\x02\x02\u0F00\u0F05\x05\u013E\xA0\x02\u0F01\u0F02\x07\u0400\x02\x02\u0F02" + - "\u0F04\x05\u013E\xA0\x02\u0F03\u0F01\x03\x02\x02\x02\u0F04\u0F07\x03\x02" + - "\x02\x02\u0F05\u0F03\x03\x02\x02\x02\u0F05\u0F06\x03\x02\x02\x02\u0F06" + - "\u0125\x03\x02\x02\x02\u0F07\u0F05\x03\x02\x02\x02\u0F08\u0F09\x07x\x02" + - "\x02\u0F09\u0F0A\t3\x02\x02\u0F0A\u0F0F\x07\u0196\x02\x02\u0F0B\u0F0C" + - "\x07\x9F\x02\x02\u0F0C\u0F10\x07\u040D\x02\x02\u0F0D\u0F0E\x07\x0F\x02" + - "\x02\u0F0E\u0F10\x07\u040D\x02\x02\u0F0F\u0F0B\x03\x02\x02\x02\u0F0F\u0F0D" + - "\x03\x02\x02\x02\u0F10\u0127\x03\x02\x02\x02\u0F11\u0F12\x07\u01F9\x02" + - "\x02\u0F12\u0F13\x07\u0197\x02\x02\u0F13\u0129\x03\x02\x02\x02\u0F14\u0F15" + - "\x07\u01F9\x02\x02\u0F15\u0F17\x07\u020D\x02\x02\u0F16\u0F18\x07\b\x02" + - "\x02\u0F17\u0F16\x03\x02\x02\x02\u0F17\u0F18\x03\x02\x02\x02\u0F18\u0F1A" + - "\x03\x02\x02\x02\u0F19\u0F1B\x05\u013C\x9F\x02\u0F1A\u0F19\x03\x02\x02" + - "\x02\u0F1A\u0F1B\x03\x02\x02\x02\u0F1B\u012B\x03\x02\x02\x02\u0F1C\u0F1D" + - "\x07\u021C\x02\x02\u0F1D\u0F26\x07\u020D\x02\x02\u0F1E\u0F23\x05\u0142" + - "\xA2\x02\u0F1F\u0F20\x07\u0400\x02\x02\u0F20\u0F22\x05\u0142\xA2\x02\u0F21" + - "\u0F1F\x03\x02\x02\x02\u0F22\u0F25\x03\x02\x02\x02\u0F23\u0F21\x03\x02" + - "\x02\x02\u0F23\u0F24\x03\x02\x02\x02\u0F24\u0F27\x03\x02\x02\x02\u0F25" + - "\u0F23\x03\x02\x02\x02\u0F26\u0F1E\x03\x02\x02\x02\u0F26\u0F27\x03\x02" + - "\x02\x02\u0F27\u0F2A\x03\x02\x02\x02\u0F28\u0F29\x07\u023C\x02\x02\u0F29" + - "\u0F2B\x05\u0144\xA3\x02\u0F2A\u0F28\x03\x02\x02\x02\u0F2A\u0F2B\x03\x02" + - "\x02\x02\u0F2B\u0F2F\x03\x02\x02\x02\u0F2C\u0F2E\x05\u0146\xA4\x02\u0F2D" + - "\u0F2C\x03\x02\x02\x02\u0F2E\u0F31\x03\x02\x02\x02\u0F2F\u0F2D\x03\x02" + - "\x02\x02\u0F2F\u0F30\x03\x02\x02\x02\u0F30\u0F33\x03\x02\x02\x02\u0F31" + - "\u0F2F\x03\x02\x02\x02\u0F32\u0F34\x05\u013C\x9F\x02\u0F33\u0F32\x03\x02" + - "\x02\x02\u0F33\u0F34\x03\x02\x02\x02\u0F34\u012D\x03\x02\x02\x02\u0F35" + - "\u0F36\x07\u0222\x02\x02\u0F36\u0F3F\x07\u020D\x02\x02\u0F37\u0F3C\x05" + - "\u0142\xA2\x02\u0F38\u0F39\x07\u0400\x02\x02\u0F39\u0F3B\x05\u0142\xA2" + - "\x02\u0F3A\u0F38\x03\x02\x02\x02\u0F3B\u0F3E\x03\x02\x02\x02\u0F3C\u0F3A" + - "\x03\x02\x02\x02\u0F3C\u0F3D\x03\x02\x02\x02\u0F3D\u0F40\x03\x02\x02\x02" + - "\u0F3E\u0F3C\x03\x02\x02\x02\u0F3F\u0F37\x03\x02\x02\x02\u0F3F\u0F40\x03" + - "\x02\x02\x02\u0F40\u012F\x03\x02\x02\x02\u0F41\u0F42\x07\u021C\x02\x02" + - "\u0F42\u0F43\x07\u0176\x02\x02\u0F43\u0131\x03\x02\x02\x02\u0F44\u0F45" + - "\x07\u0222\x02\x02\u0F45\u0F46\x07\u0176\x02\x02\u0F46\u0133\x03\x02\x02" + - "\x02\u0F47\u0F48\x05\u0136\x9C\x02\u0F48\u0F49\x07\u03F5\x02\x02\u0F49" + - "\u0F4A\x07\u040D\x02\x02\u0F4A\u0F65\x03\x02\x02\x02\u0F4B\u0F4C\x05\u0138" + - "\x9D\x02\u0F4C\u0F4D\x07\u03F5\x02\x02\u0F4D\u0F4E\x05\u0214\u010B\x02" + - "\u0F4E\u0F65\x03\x02\x02\x02\u0F4F\u0F50\x05\u013A\x9E\x02\u0F50\u0F51" + - "\x07\u03F5\x02\x02\u0F51\u0F52\t\x18\x02\x02\u0F52\u0F65\x03\x02\x02\x02" + - "\u0F53\u0F54\x07\u019B\x02\x02\u0F54\u0F55\x07\u03F5\x02\x02\u0F55\u0F65" + - "\x07\u0410\x02\x02\u0F56\u0F57\x07\u017D\x02\x02\u0F57\u0F58\x07\u03F5" + - "\x02\x02\u0F58\u0F61\x07\u03FE\x02\x02\u0F59\u0F5E\x05\u020E\u0108\x02" + - "\u0F5A\u0F5B\x07\u0400\x02\x02\u0F5B\u0F5D\x05\u020E\u0108\x02\u0F5C\u0F5A" + - "\x03\x02\x02\x02\u0F5D\u0F60\x03\x02\x02\x02\u0F5E\u0F5C\x03\x02\x02\x02" + - "\u0F5E\u0F5F\x03\x02\x02\x02\u0F5F\u0F62\x03\x02\x02\x02\u0F60\u0F5E\x03" + - "\x02\x02\x02\u0F61\u0F59\x03\x02\x02\x02\u0F61\u0F62\x03\x02\x02\x02\u0F62" + - "\u0F63\x03\x02\x02\x02\u0F63\u0F65\x07\u03FF\x02\x02\u0F64\u0F47\x03\x02" + - "\x02\x02\u0F64\u0F4B\x03\x02\x02\x02\u0F64\u0F4F\x03\x02\x02\x02\u0F64" + - "\u0F53\x03\x02\x02\x02\u0F64\u0F56\x03\x02\x02\x02\u0F65\u0135\x03\x02" + - "\x02\x02\u0F66\u0F67\t4\x02\x02\u0F67\u0137\x03\x02\x02\x02\u0F68\u0F69" + - "\t5\x02\x02\u0F69\u0139\x03\x02\x02\x02\u0F6A\u0F6B\t6\x02\x02\u0F6B\u013B" + - "\x03\x02\x02\x02\u0F6C\u0F6D\x07<\x02\x02\u0F6D\u0F6E\x07\u0127\x02\x02" + - "\u0F6E\u0F6F\x07\u040D\x02\x02\u0F6F\u013D\x03\x02\x02\x02\u0F70\u0F71" + - "\x07\u01F1\x02\x02\u0F71\u0F72\x07\u03F5\x02\x02\u0F72\u0F73\x07\u03FE" + - "\x02\x02\u0F73\u0F74\x05\u022E\u0118\x02\u0F74\u0F75\x07\u03FF\x02\x02" + - "\u0F75\u0FA2\x03\x02\x02\x02\u0F76\u0F77\x07\u01F3\x02\x02\u0F77\u0F78" + - "\x07\u03F5\x02\x02\u0F78\u0F79\x07\u03FE\x02\x02\u0F79\u0F7A\x05\u022E" + - "\u0118\x02\u0F7A\u0F7B\x07\u03FF\x02\x02\u0F7B\u0FA2\x03\x02\x02\x02\u0F7C" + - "\u0F7D\x07\u01F2\x02\x02\u0F7D\u0F7E\x07\u03F5\x02\x02\u0F7E\u0F7F\x07" + - "\u03FE\x02\x02\u0F7F\u0F80\x05\u0230\u0119\x02\u0F80\u0F81\x07\u03FF\x02" + - "\x02\u0F81\u0FA2\x03\x02\x02\x02\u0F82\u0F83\x07\u01F4\x02\x02\u0F83\u0F84" + - "\x07\u03F5\x02\x02\u0F84\u0F85\x07\u03FE\x02\x02\u0F85\u0F86\x05\u0230" + - "\u0119\x02\u0F86\u0F87\x07\u03FF\x02\x02\u0F87\u0FA2\x03\x02\x02\x02\u0F88" + - "\u0F89\x07\u01F6\x02\x02\u0F89\u0F8A\x07\u03F5\x02\x02\u0F8A\u0F8B\x07" + - "\u03FE\x02\x02\u0F8B\u0F8C\x05\u023A\u011E\x02\u0F8C\u0F8D\x07\u03FF\x02" + - "\x02\u0F8D\u0FA2\x03\x02\x02\x02\u0F8E\u0F8F\x07\u01F7\x02\x02\u0F8F\u0F90" + - "\x07\u03F5\x02\x02\u0F90\u0F91\x07\u03FE\x02\x02\u0F91\u0F92\x05\u023A" + - "\u011E\x02\u0F92\u0F93\x07\u03FF\x02\x02\u0F93\u0FA2\x03\x02\x02\x02\u0F94" + - "\u0F95\x07\u01F5\x02\x02\u0F95\u0F96\x07\u03F5\x02\x02\u0F96\u0F97\x07" + - "\u03FE\x02\x02\u0F97\u0F9C\x05\u0140\xA1\x02\u0F98\u0F99\x07\u0400\x02" + - "\x02\u0F99\u0F9B\x05\u0140\xA1\x02\u0F9A\u0F98\x03\x02\x02\x02\u0F9B\u0F9E" + - "\x03\x02\x02\x02\u0F9C\u0F9A\x03\x02\x02\x02\u0F9C\u0F9D\x03\x02\x02\x02" + - "\u0F9D\u0F9F\x03\x02\x02\x02\u0F9E\u0F9C\x03\x02\x02\x02\u0F9F\u0FA0\x07" + - "\u03FF\x02\x02\u0FA0\u0FA2\x03\x02\x02\x02\u0FA1\u0F70\x03\x02\x02\x02" + - "\u0FA1\u0F76\x03\x02\x02\x02\u0FA1\u0F7C\x03\x02\x02\x02\u0FA1\u0F82\x03" + - "\x02\x02\x02\u0FA1\u0F88\x03\x02\x02\x02\u0FA1\u0F8E\x03\x02\x02\x02\u0FA1" + - "\u0F94\x03\x02\x02\x02\u0FA2\u013F\x03\x02\x02\x02\u0FA3\u0FA4\x07\u03FE" + - "\x02\x02\u0FA4\u0FA5\x05\u01F6\xFC\x02\u0FA5\u0FA6\x07\u0400\x02\x02\u0FA6" + - "\u0FA7\x05\u01F6\xFC\x02\u0FA7\u0FA8\x07\u03FF\x02\x02\u0FA8\u0141\x03" + - "\x02\x02\x02\u0FA9\u0FAA\t7\x02\x02\u0FAA\u0143\x03\x02\x02\x02\u0FAB" + - "\u0FAC\t8\x02\x02\u0FAC\u0FAD\x07\u03F5\x02\x02\u0FAD\u0FBE\x05\u0148" + - "\xA5\x02\u0FAE\u0FAF\x07\u019D\x02\x02\u0FAF\u0FB0\x07\u03F5\x02\x02\u0FB0" + - "\u0FB1\x07\u040D\x02\x02\u0FB1\u0FB2\x07\u0400\x02\x02\u0FB2\u0FB3\x07" + - "\u019E\x02\x02\u0FB3\u0FB4\x07\u03F5\x02\x02\u0FB4\u0FBE\x05\u0214\u010B" + - "\x02\u0FB5\u0FB6\x07\u01EB\x02\x02\u0FB6\u0FB7\x07\u03F5\x02\x02\u0FB7" + - "\u0FB8\x07\u040D\x02\x02\u0FB8\u0FB9\x07\u0400\x02\x02\u0FB9\u0FBA\x07" + - "\u01EC\x02\x02\u0FBA\u0FBB\x07\u03F5\x02\x02\u0FBB\u0FBE\x05\u0214\u010B" + - "\x02\u0FBC\u0FBE\x07\u0216\x02\x02\u0FBD\u0FAB\x03\x02\x02\x02\u0FBD\u0FAE" + - "\x03\x02\x02\x02\u0FBD\u0FB5\x03\x02\x02\x02\u0FBD\u0FBC\x03\x02\x02\x02" + - "\u0FBE\u0145\x03\x02\x02\x02\u0FBF\u0FC0\x07\u023E\x02\x02\u0FC0\u0FC1" + - "\x07\u03F5\x02\x02\u0FC1\u0FCC\x07\u040D\x02\x02\u0FC2\u0FC3\x07\u01D6" + - "\x02\x02\u0FC3\u0FC4\x07\u03F5\x02\x02\u0FC4\u0FCC\x07\u040D\x02\x02\u0FC5" + - "\u0FC6\x07\u0148\x02\x02\u0FC6\u0FC7\x07\u03F5\x02\x02\u0FC7\u0FCC\x07" + - "\u040D\x02\x02\u0FC8\u0FC9\x07\u01D9\x02\x02\u0FC9\u0FCA\x07\u03F5\x02" + - "\x02\u0FCA\u0FCC\x07\u040D\x02\x02\u0FCB\u0FBF\x03\x02\x02\x02\u0FCB\u0FC2" + - "\x03\x02\x02\x02\u0FCB\u0FC5\x03\x02\x02\x02\u0FCB\u0FC8\x03\x02\x02\x02" + - "\u0FCC\u0147\x03\x02\x02\x02\u0FCD\u0FD2\x05\u0206\u0104\x02\u0FCE\u0FCF" + - "\x07\u0400\x02\x02\u0FCF\u0FD1\x05\u0206\u0104\x02\u0FD0\u0FCE\x03\x02" + - "\x02\x02\u0FD1\u0FD4\x03\x02\x02\x02\u0FD2\u0FD0\x03\x02\x02\x02\u0FD2" + - "\u0FD3\x03\x02\x02\x02\u0FD3\u0FD7\x03\x02\x02\x02\u0FD4\u0FD2\x03\x02" + - "\x02\x02\u0FD5\u0FD7\x07\u040D\x02\x02\u0FD6\u0FCD\x03\x02\x02\x02\u0FD6" + - "\u0FD5\x03\x02\x02\x02\u0FD7\u0149\x03\x02\x02\x02\u0FD8\u0FD9\x07\u024D" + - "\x02\x02\u0FD9\u0FDA\t9\x02\x02\u0FDA\u0FDC\x05\u0208\u0105\x02\u0FDB" + - "\u0FDD\t:\x02\x02\u0FDC\u0FDB\x03\x02\x02\x02\u0FDC\u0FDD\x03\x02\x02" + - "\x02\u0FDD\u014B\x03\x02\x02\x02\u0FDE\u0FDF\x07\u024D\x02\x02\u0FDF\u0FE0" + - "\x07\u0156\x02\x02\u0FE0\u0FE6\x05\u0208\u0105\x02\u0FE1\u0FE4\x07\u022A" + - "\x02\x02\u0FE2\u0FE3\x07<\x02\x02\u0FE3\u0FE5\x07\u01B6\x02\x02\u0FE4" + - "\u0FE2\x03\x02\x02\x02\u0FE4\u0FE5\x03\x02\x02\x02\u0FE5\u0FE7\x03\x02" + - "\x02\x02\u0FE6\u0FE1\x03\x02\x02\x02\u0FE6\u0FE7\x03\x02\x02\x02\u0FE7" + - "\u014D\x03\x02\x02\x02\u0FE8\u0FE9\x07\u024D\x02\x02\u0FE9\u0FEA\x07\u01DD" + - "\x02\x02\u0FEA\u0FEB\x05\u0208\u0105\x02\u0FEB\u014F\x03\x02\x02\x02\u0FEC" + - "\u0FED\x07\u024D\x02\x02\u0FED\u0FEE\x07\u0134\x02\x02\u0FEE\u0FF1\x05" + - "\u0208\u0105\x02\u0FEF\u0FF0\x07\u01C9\x02\x02\u0FF0\u0FF2\x07\u01D7\x02" + - "\x02\u0FF1\u0FEF\x03\x02\x02\x02\u0FF1\u0FF2\x03\x02\x02\x02\u0FF2\u0151" + - "\x03\x02\x02\x02\u0FF3\u0FF4\x07\u024D\x02\x02\u0FF4\u0FF5\x07\u01FE\x02" + - "\x02\u0FF5\u0FF6\x05\u0208\u0105\x02\u0FF6\u0153\x03\x02\x02\x02\u0FF7" + - "\u0FF8\x07\u024D\x02\x02\u0FF8\u0FFB\x07\u01E7\x02\x02\u0FF9\u0FFA\x07" + - "\x1F\x02\x02\u0FFA\u0FFC\x05\u0208\u0105\x02\u0FFB\u0FF9\x03\x02\x02\x02" + - "\u0FFB\u0FFC\x03\x02\x02\x02\u0FFC\u0155\x03\x02\x02\x02\u0FFD\u0FFE\x07" + - "\u01DD\x02\x02\u0FFE\u0FFF\x05\u020E\u0108\x02\u0FFF\u1002\x07?\x02\x02" + - "\u1000\u1003\x07\u040D\x02\x02\u1001\u1003\x07\u0418\x02\x02\u1002\u1000" + - "\x03\x02\x02\x02\u1002\u1001\x03\x02\x02\x02\u1003\u0157\x03\x02\x02\x02" + - "\u1004\u1005\x07\u025E\x02\x02\u1005\u1008\x05\u020E\u0108\x02\u1006\u1007" + - "\x07\xAB\x02\x02\u1007\u1009\x05\u023C\u011F\x02\u1008\u1006\x03\x02\x02" + - "\x02\u1008\u1009\x03\x02\x02\x02\u1009\u0159\x03\x02\x02\x02\u100A\u100B" + - "\t;\x02\x02\u100B\u100C\x07\u01DD\x02\x02\u100C\u100D\x05\u020E\u0108" + - "\x02\u100D\u015B\x03\x02\x02\x02\u100E\u1011\x05\u015E\xB0\x02\u100F\u1011" + - "\x05\b\x05\x02\u1010\u100E\x03\x02\x02\x02\u1010\u100F\x03\x02\x02\x02" + - "\u1011\u015D\x03\x02\x02\x02\u1012\u1013\x05\u020E\u0108\x02\u1013\u1014" + - "\x07\u0409\x02\x02\u1014\u1016\x03\x02\x02\x02\u1015\u1012\x03\x02\x02" + - "\x02\u1015\u1016\x03\x02\x02\x02\u1016\u1017\x03\x02\x02\x02\u1017\u103E" + - "\x07\u011C\x02\x02\u1018\u1019\x05\u0172\xBA\x02\u1019\u101A\x07\u0401" + - "\x02\x02\u101A\u101C\x03\x02\x02\x02\u101B\u1018\x03\x02\x02\x02\u101C" + - "\u101F\x03\x02\x02\x02\u101D\u101B\x03\x02\x02\x02\u101D\u101E\x03\x02" + - "\x02\x02\u101E\u1025\x03\x02\x02\x02\u101F\u101D\x03\x02\x02\x02\u1020" + - "\u1021\x05\u0174\xBB\x02\u1021\u1022\x07\u0401\x02\x02\u1022\u1024\x03" + - "\x02\x02\x02\u1023\u1020\x03\x02\x02\x02\u1024\u1027\x03\x02\x02\x02\u1025" + - "\u1023\x03\x02\x02\x02\u1025\u1026\x03\x02\x02\x02\u1026\u102D\x03\x02" + - "\x02\x02\u1027\u1025\x03\x02\x02\x02\u1028\u1029\x05\u0176\xBC\x02\u1029" + - "\u102A\x07\u0401\x02\x02\u102A\u102C\x03\x02\x02\x02\u102B\u1028\x03\x02" + - "\x02\x02\u102C\u102F\x03\x02\x02\x02\u102D\u102B\x03\x02\x02\x02\u102D" + - "\u102E\x03\x02\x02\x02\u102E\u1035\x03\x02\x02\x02\u102F\u102D\x03\x02" + - "\x02\x02\u1030\u1031\x05\u0178\xBD\x02\u1031\u1032\x07\u0401\x02\x02\u1032" + - "\u1034\x03\x02\x02\x02\u1033\u1030\x03\x02\x02\x02\u1034\u1037\x03\x02" + - "\x02\x02\u1035\u1033\x03\x02\x02\x02\u1035\u1036\x03\x02\x02\x02\u1036" + - "\u103B\x03\x02\x02\x02\u1037\u1035\x03\x02\x02\x02\u1038\u103A\x05\u017C" + - "\xBF\x02\u1039\u1038\x03\x02\x02\x02\u103A\u103D\x03\x02\x02\x02\u103B" + - "\u1039\x03\x02\x02\x02\u103B\u103C\x03\x02\x02\x02\u103C\u103F\x03\x02" + - "\x02\x02\u103D\u103B\x03\x02\x02\x02\u103E\u101D\x03\x02\x02\x02\u103E" + - "\u103F\x03\x02\x02\x02\u103F\u1040\x03\x02\x02\x02\u1040\u1042\x07\u0156" + - "\x02\x02\u1041\u1043\x05\u020E\u0108\x02\u1042\u1041\x03\x02\x02\x02\u1042" + - "\u1043\x03\x02\x02\x02\u1043\u015F\x03\x02\x02\x02\u1044\u1047\x07\x15" + - "\x02\x02\u1045\u1048\x05\u020E\u0108\x02\u1046\u1048\x05\u025C\u012F\x02" + - "\u1047\u1045\x03\x02\x02\x02\u1047\u1046\x03\x02\x02\x02\u1047\u1048\x03" + - "\x02\x02\x02\u1048\u104A\x03\x02\x02\x02\u1049\u104B\x05\u017E\xC0\x02" + - "\u104A\u1049\x03\x02\x02\x02\u104B\u104C\x03\x02\x02\x02\u104C\u104A\x03" + - "\x02\x02\x02\u104C\u104D\x03\x02\x02\x02\u104D\u1054\x03\x02\x02\x02\u104E" + - "\u1050\x073\x02\x02\u104F\u1051\x05\u017C\xBF\x02\u1050\u104F\x03\x02" + - "\x02\x02\u1051\u1052\x03\x02\x02\x02\u1052\u1050\x03\x02\x02\x02\u1052" + - "\u1053\x03\x02\x02\x02\u1053\u1055\x03\x02\x02\x02\u1054\u104E\x03\x02" + - "\x02\x02\u1054\u1055\x03\x02\x02\x02\u1055\u1056\x03\x02\x02\x02\u1056" + - "\u1057\x07\u0156\x02\x02\u1057\u1058\x07\x15\x02\x02\u1058\u0161\x03\x02" + - "\x02\x02\u1059\u105A\x07G\x02\x02\u105A\u105B\x05\u025C\u012F\x02\u105B" + - "\u105D\x07\x9E\x02\x02\u105C\u105E\x05\u017C\xBF\x02\u105D\u105C\x03\x02" + - "\x02\x02\u105E\u105F\x03\x02\x02\x02\u105F\u105D\x03\x02\x02\x02\u105F" + - "\u1060\x03\x02\x02\x02\u1060\u1064\x03\x02\x02\x02\u1061\u1063\x05\u0180" + - "\xC1\x02\u1062\u1061\x03\x02\x02\x02\u1063\u1066\x03\x02\x02\x02\u1064" + - "\u1062\x03\x02\x02\x02\u1064\u1065\x03\x02\x02\x02\u1065\u106D\x03\x02" + - "\x02\x02\u1066\u1064\x03\x02\x02\x02\u1067\u1069\x073\x02\x02\u1068\u106A" + - "\x05\u017C\xBF\x02\u1069\u1068\x03\x02\x02\x02\u106A\u106B\x03\x02\x02" + - "\x02\u106B\u1069\x03\x02\x02\x02\u106B\u106C\x03\x02\x02\x02\u106C\u106E" + - "\x03\x02\x02\x02\u106D\u1067\x03\x02\x02\x02\u106D\u106E\x03\x02\x02\x02" + - "\u106E\u106F\x03\x02\x02\x02\u106F\u1070\x07\u0156\x02\x02\u1070\u1071" + - "\x07G\x02\x02\u1071\u0163\x03\x02\x02\x02\u1072\u1073\x07R\x02\x02\u1073" + - "\u1074\x05\u020E\u0108\x02\u1074\u0165\x03\x02\x02\x02\u1075\u1076\x07" + - "X\x02\x02\u1076\u1077\x05\u020E\u0108\x02\u1077\u0167\x03\x02\x02\x02" + - "\u1078\u1079\x05\u020E\u0108\x02\u1079\u107A\x07\u0409\x02\x02\u107A\u107C" + - "\x03\x02\x02\x02\u107B\u1078\x03\x02\x02\x02\u107B\u107C\x03\x02\x02\x02" + - "\u107C\u107D\x03\x02\x02\x02\u107D\u107F\x07`\x02\x02\u107E\u1080\x05" + - "\u017C\xBF\x02\u107F\u107E\x03\x02\x02\x02\u1080\u1081\x03\x02\x02\x02" + - "\u1081\u107F\x03\x02\x02\x02\u1081\u1082\x03\x02\x02\x02\u1082\u1083\x03" + - "\x02\x02\x02\u1083\u1084\x07\u0156\x02\x02\u1084\u1086\x07`\x02\x02\u1085" + - "\u1087\x05\u020E\u0108\x02\u1086\u1085\x03\x02\x02\x02\u1086\u1087\x03" + - "\x02\x02\x02\u1087\u0169\x03\x02\x02\x02\u1088\u1089\x05\u020E\u0108\x02" + - "\u1089\u108A\x07\u0409\x02\x02\u108A\u108C\x03\x02\x02\x02\u108B\u1088" + - "\x03\x02\x02\x02\u108B\u108C\x03\x02\x02\x02\u108C\u108D\x03\x02\x02\x02" + - "\u108D\u108F\x07\x80\x02\x02\u108E\u1090\x05\u017C\xBF\x02\u108F\u108E" + - "\x03\x02\x02\x02\u1090\u1091\x03\x02\x02\x02\u1091\u108F\x03\x02\x02\x02" + - "\u1091\u1092\x03\x02\x02\x02\u1092\u1093\x03\x02\x02\x02\u1093\u1094\x07" + - "\u023C\x02\x02\u1094\u1095\x05\u025C\u012F\x02\u1095\u1096\x07\u0156\x02" + - "\x02\u1096\u1098\x07\x80\x02\x02\u1097\u1099\x05\u020E\u0108\x02\u1098" + - "\u1097\x03\x02\x02\x02\u1098\u1099\x03\x02\x02\x02\u1099\u016B\x03\x02" + - "\x02\x02\u109A\u109B\x07\x85\x02\x02\u109B\u109C\x05\u025C\u012F\x02\u109C" + - "\u016D\x03\x02\x02\x02\u109D\u109E\x05\u020E\u0108\x02\u109E\u109F\x07" + - "\u0409\x02\x02\u109F\u10A1\x03\x02\x02\x02\u10A0\u109D\x03\x02\x02\x02" + - "\u10A0\u10A1\x03\x02\x02\x02\u10A1\u10A2\x03\x02\x02\x02\u10A2\u10A3\x07" + - "\xAF\x02\x02\u10A3\u10A4\x05\u025C\u012F\x02\u10A4\u10A6\x07\u0150\x02" + - "\x02\u10A5\u10A7\x05\u017C\xBF\x02\u10A6\u10A5\x03\x02\x02\x02\u10A7\u10A8" + - "\x03\x02\x02\x02\u10A8\u10A6\x03\x02\x02\x02\u10A8\u10A9\x03\x02\x02\x02" + - "\u10A9\u10AA\x03\x02\x02\x02\u10AA\u10AB\x07\u0156\x02\x02\u10AB\u10AD" + - "\x07\xAF\x02\x02\u10AC\u10AE\x05\u020E\u0108\x02\u10AD\u10AC\x03\x02\x02" + - "\x02\u10AD\u10AE\x03\x02\x02\x02\u10AE\u016F\x03\x02\x02\x02\u10AF\u10B0" + - "\x07\u012D\x02\x02\u10B0\u10BF\x05\u020E\u0108\x02\u10B1\u10B6\x07;\x02" + - "\x02\u10B2\u10B4\x07\u01C1\x02\x02\u10B3\u10B2\x03\x02\x02\x02\u10B3\u10B4" + - "\x03\x02\x02\x02\u10B4\u10B5\x03\x02\x02\x02\u10B5\u10B7\x07?\x02\x02" + - "\u10B6\u10B3\x03\x02\x02\x02\u10B6\u10B7\x03\x02\x02\x02\u10B7\u10B8\x03" + - "\x02\x02\x02\u10B8\u10B9\x05\u020E\u0108\x02\u10B9\u10BA\x07P\x02\x02" + - "\u10BA\u10BB\x05\u022E\u0118\x02\u10BB\u10BF\x03\x02\x02\x02\u10BC\u10BD" + - "\x07\u01CC\x02\x02\u10BD\u10BF\x05\u020E\u0108\x02\u10BE\u10AF\x03\x02" + - "\x02\x02\u10BE\u10B1\x03\x02\x02\x02\u10BE\u10BC\x03\x02\x02\x02\u10BF" + - "\u0171\x03\x02\x02\x02\u10C0\u10C1\x07\'\x02\x02\u10C1\u10C2\x05\u022E" + - "\u0118\x02\u10C2\u10C5\x05\u0222\u0112\x02\u10C3\u10C4\x07(\x02\x02\u10C4" + - "\u10C6\x05\u023E\u0120\x02\u10C5\u10C3\x03\x02\x02\x02\u10C5\u10C6\x03" + - "\x02\x02\x02\u10C6\u0173\x03\x02\x02\x02\u10C7\u10C8\x07\'\x02\x02\u10C8" + - "\u10C9\x05\u020E\u0108\x02\u10C9\u10CA\x07\x1C\x02\x02\u10CA\u10D1\x07" + - "<\x02\x02\u10CB\u10D2\x05\u0214\u010B\x02\u10CC\u10CE\x07\x93\x02\x02" + - "\u10CD\u10CF\x07\u0242\x02\x02\u10CE\u10CD\x03\x02\x02\x02\u10CE\u10CF" + - "\x03\x02\x02\x02\u10CF\u10D0\x03\x02\x02\x02\u10D0\u10D2\x07\u040D\x02" + - "\x02\u10D1\u10CB\x03\x02\x02\x02\u10D1\u10CC\x03\x02\x02\x02\u10D2\u0175" + - "\x03\x02\x02\x02\u10D3\u10D4\x07\'\x02\x02\u10D4\u10D5\x05\u020E\u0108" + - "\x02\u10D5\u10D6\x07$\x02\x02\u10D6\u10D7\x07<\x02\x02\u10D7\u10D8\x05" + - "\xB6\\\x02\u10D8\u0177\x03\x02\x02\x02\u10D9\u10DA\x07\'\x02\x02\u10DA" + - "\u10DB\t<\x02\x02\u10DB\u10DC\x07\u0177\x02\x02\u10DC\u10DD\x07<\x02\x02" + - "\u10DD\u10E2\x05\u017A\xBE\x02\u10DE\u10DF\x07\u0400\x02\x02\u10DF\u10E1" + - "\x05\u017A\xBE\x02\u10E0\u10DE\x03\x02\x02\x02\u10E1\u10E4\x03\x02\x02" + - "\x02\u10E2\u10E0\x03\x02\x02\x02\u10E2\u10E3\x03\x02\x02\x02\u10E3\u10E5" + - "\x03\x02\x02\x02\u10E4\u10E2\x03\x02\x02\x02\u10E5\u10E6\x05\u015C\xAF" + - "\x02\u10E6\u0179\x03\x02\x02\x02\u10E7\u10F3\x05\u0214\u010B\x02\u10E8" + - "\u10EA\x07\x93\x02\x02\u10E9\u10EB\x07\u0242\x02\x02\u10EA\u10E9\x03\x02" + - "\x02\x02\u10EA\u10EB\x03\x02\x02\x02\u10EB\u10EC\x03\x02\x02\x02\u10EC" + - "\u10F3\x07\u040D\x02\x02\u10ED\u10F3\x05\u020E\u0108\x02\u10EE\u10F3\x07" + - "\x94\x02\x02\u10EF\u10F0\x07h\x02\x02\u10F0\u10F3\x07\u0170\x02\x02\u10F1" + - "\u10F3\x07\x92\x02\x02\u10F2\u10E7\x03\x02\x02\x02\u10F2\u10E8\x03\x02" + - "\x02\x02\u10F2\u10ED\x03\x02\x02\x02\u10F2\u10EE\x03\x02\x02\x02\u10F2" + - "\u10EF\x03\x02\x02\x02\u10F2\u10F1\x03\x02\x02\x02\u10F3\u017B\x03\x02" + - "\x02\x02\u10F4\u10F7\x05\x16\f\x02\u10F5\u10F7\x05\b\x05\x02\u10F6\u10F4" + - "\x03\x02\x02\x02\u10F6\u10F5\x03\x02\x02\x02\u10F7\u10F8\x03\x02\x02\x02" + - "\u10F8\u10F9\x07\u0401\x02\x02\u10F9\u017D\x03\x02\x02\x02\u10FA\u10FD" + - "\x07\xAD\x02\x02"; - private static readonly _serializedATNSegment9: string = - "\u10FB\u10FE\x05\u0220\u0111\x02\u10FC\u10FE\x05\u025C\u012F\x02\u10FD" + - "\u10FB\x03\x02\x02\x02\u10FD\u10FC\x03\x02\x02\x02\u10FE\u10FF\x03\x02" + - "\x02\x02\u10FF\u1101\x07\x9E\x02\x02\u1100\u1102\x05\u017C\xBF\x02\u1101" + - "\u1100\x03\x02\x02\x02\u1102\u1103\x03\x02\x02\x02\u1103\u1101\x03\x02" + - "\x02\x02\u1103\u1104\x03\x02\x02\x02\u1104\u017F\x03\x02\x02\x02\u1105" + - "\u1106\x074\x02\x02\u1106\u1107\x05\u025C\u012F\x02\u1107\u1109\x07\x9E" + - "\x02\x02\u1108\u110A\x05\u017C\xBF\x02\u1109\u1108\x03\x02\x02\x02\u110A" + - "\u110B\x03\x02\x02\x02\u110B\u1109\x03\x02\x02\x02\u110B\u110C\x03\x02" + - "\x02\x02\u110C\u0181\x03\x02\x02\x02\u110D\u110E\x07\t\x02\x02\u110E\u110F" + - "\x07\u023E\x02\x02\u110F\u1114\x05\u0194\xCB\x02\u1110\u1111\x07\u0400" + - "\x02\x02\u1111\u1113\x05\u0194\xCB\x02\u1112\u1110\x03\x02\x02\x02\u1113" + - "\u1116\x03\x02\x02\x02\u1114\u1112\x03\x02\x02\x02\u1114\u1115\x03\x02" + - "\x02\x02\u1115\u1144\x03\x02\x02\x02\u1116\u1114\x03\x02\x02\x02\u1117" + - "\u1118\x07\t\x02\x02\u1118\u111A\x07\u023E\x02\x02\u1119\u111B\x05\u0244" + - "\u0123\x02\u111A\u1119\x03\x02\x02\x02\u111A\u111B\x03\x02\x02\x02\u111B" + - "\u111C\x03\x02\x02\x02\u111C\u1121\x05\u0196\xCC\x02\u111D\u111E\x07\u0400" + - "\x02\x02\u111E\u1120\x05\u0196\xCC\x02\u111F\u111D\x03\x02\x02\x02\u1120" + - "\u1123\x03\x02\x02\x02\u1121\u111F\x03\x02\x02\x02\u1121\u1122\x03\x02" + - "\x02\x02\u1122\u1132\x03\x02\x02\x02\u1123\u1121\x03\x02\x02\x02\u1124" + - "\u1130\x07\x82\x02\x02\u1125\u1131\x07\u01C4\x02\x02\u1126\u112D\x05\u0198" + - "\xCD\x02\u1127\u1129\x07\f\x02\x02\u1128\u1127\x03\x02\x02\x02\u1128\u1129" + - "\x03\x02\x02\x02\u1129\u112A\x03\x02\x02\x02\u112A\u112C\x05\u0198\xCD" + - "\x02\u112B\u1128\x03\x02\x02\x02\u112C\u112F\x03\x02\x02\x02\u112D\u112B" + - "\x03\x02\x02\x02\u112D\u112E\x03\x02\x02\x02\u112E\u1131\x03\x02\x02\x02" + - "\u112F\u112D\x03\x02\x02\x02\u1130\u1125\x03\x02\x02\x02\u1130\u1126\x03" + - "\x02\x02\x02\u1131\u1133\x03\x02\x02\x02\u1132\u1124\x03\x02\x02\x02\u1132" + - "\u1133\x03\x02\x02\x02\u1133\u113A\x03\x02\x02\x02\u1134\u1136\x07\xB0" + - "\x02\x02\u1135\u1137\x05\u019A\xCE\x02\u1136\u1135\x03\x02\x02\x02\u1137" + - "\u1138\x03\x02\x02\x02\u1138\u1136\x03\x02\x02\x02\u1138\u1139\x03\x02" + - "\x02\x02\u1139\u113B\x03\x02\x02\x02\u113A\u1134\x03\x02\x02\x02\u113A" + - "\u113B\x03\x02\x02\x02\u113B\u1140\x03\x02\x02\x02\u113C\u113F\x05\u019C" + - "\xCF\x02\u113D\u113F\x05\u019E\xD0\x02\u113E\u113C\x03\x02\x02\x02\u113E" + - "\u113D\x03\x02\x02\x02\u113F\u1142\x03\x02\x02\x02\u1140\u113E\x03\x02" + - "\x02\x02\u1140\u1141\x03\x02\x02\x02\u1141\u1144\x03\x02\x02\x02\u1142" + - "\u1140\x03\x02\x02\x02\u1143\u110D\x03\x02\x02\x02\u1143\u1117\x03\x02" + - "\x02\x02\u1144\u0183\x03\x02\x02\x02\u1145\u1146\x07 \x02\x02\u1146\u1147" + - "\x07\u023E\x02\x02\u1147\u114C\x05\u0196\xCC\x02\u1148\u1149\x07\u0400" + - "\x02\x02\u1149\u114B\x05\u0196\xCC\x02\u114A\u1148\x03\x02\x02\x02\u114B" + - "\u114E\x03\x02\x02\x02\u114C\u114A\x03\x02\x02\x02\u114C\u114D\x03\x02" + - "\x02\x02\u114D\u117C\x03\x02\x02\x02\u114E\u114C\x03\x02\x02\x02\u114F" + - "\u1150\x07 \x02\x02\u1150\u1152\x07\u023E\x02\x02\u1151\u1153\x05\u0246" + - "\u0124\x02\u1152\u1151\x03\x02\x02\x02\u1152\u1153\x03\x02\x02\x02\u1153" + - "\u1154\x03\x02\x02\x02\u1154\u1159\x05\u0196\xCC\x02\u1155\u1156\x07\u0400" + - "\x02\x02\u1156\u1158\x05\u0196\xCC\x02\u1157\u1155\x03\x02\x02\x02\u1158" + - "\u115B\x03\x02\x02\x02\u1159\u1157\x03\x02\x02\x02\u1159\u115A\x03\x02" + - "\x02\x02\u115A\u116A\x03\x02\x02\x02\u115B\u1159\x03\x02\x02\x02\u115C" + - "\u1168\x07\x82\x02\x02\u115D\u1169\x07\u01C4\x02\x02\u115E\u1165\x05\u0198" + - "\xCD\x02\u115F\u1161\x07\f\x02\x02\u1160\u115F\x03\x02\x02\x02\u1160\u1161" + - "\x03\x02\x02\x02\u1161\u1162\x03\x02\x02\x02\u1162\u1164\x05\u0198\xCD" + - "\x02\u1163\u1160\x03\x02\x02\x02\u1164\u1167\x03\x02\x02\x02\u1165\u1163" + - "\x03\x02\x02\x02\u1165\u1166\x03\x02\x02\x02\u1166\u1169\x03\x02\x02\x02" + - "\u1167\u1165\x03\x02\x02\x02\u1168\u115D\x03\x02\x02\x02\u1168\u115E\x03" + - "\x02\x02\x02\u1169\u116B\x03\x02\x02\x02\u116A\u115C\x03\x02\x02\x02\u116A" + - "\u116B\x03\x02\x02\x02\u116B\u1172\x03\x02\x02\x02\u116C\u116E\x07\xB0" + - "\x02\x02\u116D\u116F\x05\u019A\xCE\x02\u116E\u116D\x03\x02\x02\x02\u116F" + - "\u1170\x03\x02\x02\x02\u1170\u116E\x03\x02\x02\x02\u1170\u1171\x03\x02" + - "\x02\x02\u1171\u1173\x03\x02\x02\x02\u1172\u116C\x03\x02\x02\x02\u1172" + - "\u1173\x03\x02\x02\x02\u1173\u1178\x03\x02\x02\x02\u1174\u1177\x05\u019C" + - "\xCF\x02\u1175\u1177\x05\u019E\xD0\x02\u1176\u1174\x03\x02\x02\x02\u1176" + - "\u1175\x03\x02\x02\x02\u1177\u117A\x03\x02\x02\x02\u1178\u1176\x03\x02" + - "\x02\x02\u1178\u1179\x03\x02\x02\x02\u1179\u117C\x03\x02\x02\x02\u117A" + - "\u1178\x03\x02\x02\x02\u117B\u1145\x03\x02\x02\x02\u117B\u114F\x03\x02" + - "\x02\x02\u117C\u0185\x03\x02\x02\x02\u117D\u117E\x071\x02\x02\u117E\u1180" + - "\x07\u023E\x02\x02\u117F\u1181\x05\u0244\u0123\x02\u1180\u117F\x03\x02" + - "\x02\x02\u1180\u1181\x03\x02\x02\x02\u1181\u1182\x03\x02\x02\x02\u1182" + - "\u1187\x05\u01FC\xFF\x02\u1183\u1184\x07\u0400\x02\x02\u1184\u1186\x05" + - "\u01FC\xFF\x02\u1185\u1183\x03\x02\x02\x02\u1186\u1189\x03\x02\x02\x02" + - "\u1187\u1185\x03\x02\x02\x02\u1187\u1188\x03\x02\x02\x02\u1188\u0187\x03" + - "\x02\x02\x02\u1189\u1187\x03\x02\x02\x02\u118A\u118B\x07C\x02\x02\u118B" + - "\u1190\x05\u01A0\xD1\x02\u118C\u118D\x07\u0400\x02\x02\u118D\u118F\x05" + - "\u01A0\xD1\x02\u118E\u118C\x03\x02\x02\x02\u118F\u1192\x03\x02\x02\x02" + - "\u1190\u118E\x03\x02\x02\x02\u1190\u1191\x03\x02\x02\x02\u1191\u1193\x03" + - "\x02\x02\x02\u1192\u1190\x03\x02\x02\x02\u1193\u1195\x07l\x02\x02\u1194" + - "\u1196\t=\x02\x02\u1195\u1194\x03\x02\x02\x02\u1195\u1196\x03\x02\x02" + - "\x02\u1196\u1197\x03\x02\x02\x02\u1197\u1198\x05\u01A4\xD3\x02\u1198\u1199" + - "\x07\x9F\x02\x02\u1199\u119E\x05\u0196\xCC\x02\u119A\u119B\x07\u0400\x02" + - "\x02\u119B\u119D\x05\u0196\xCC\x02\u119C\u119A\x03\x02\x02\x02\u119D\u11A0" + - "\x03\x02\x02\x02\u119E\u119C\x03\x02\x02\x02\u119E\u119F\x03\x02\x02\x02" + - "\u119F\u11AF\x03\x02\x02\x02\u11A0\u119E\x03\x02\x02\x02\u11A1\u11AD\x07" + - "\x82\x02\x02\u11A2\u11AE\x07\u01C4\x02\x02\u11A3\u11AA\x05\u0198\xCD\x02" + - "\u11A4\u11A6\x07\f\x02\x02\u11A5\u11A4\x03\x02\x02\x02\u11A5\u11A6\x03" + - "\x02\x02\x02\u11A6\u11A7\x03\x02\x02\x02\u11A7\u11A9\x05\u0198\xCD\x02" + - "\u11A8\u11A5\x03\x02\x02\x02\u11A9\u11AC\x03\x02\x02\x02\u11AA\u11A8\x03" + - "\x02\x02\x02\u11AA\u11AB\x03\x02\x02\x02\u11AB\u11AE\x03\x02\x02\x02\u11AC" + - "\u11AA\x03\x02\x02\x02\u11AD\u11A2\x03\x02\x02\x02\u11AD\u11A3\x03\x02" + - "\x02\x02\u11AE\u11B0\x03\x02\x02\x02\u11AF\u11A1\x03\x02\x02\x02\u11AF" + - "\u11B0\x03\x02\x02\x02\u11B0\u11BA\x03\x02\x02\x02\u11B1\u11B7\x07\xB0" + - "\x02\x02\u11B2\u11B3\x07C\x02\x02\u11B3\u11B6\x07n\x02\x02\u11B4\u11B6" + - "\x05\u019A\xCE\x02\u11B5\u11B2\x03\x02\x02\x02\u11B5\u11B4\x03\x02\x02" + - "\x02\u11B6\u11B9\x03\x02\x02\x02\u11B7\u11B5\x03\x02\x02\x02\u11B7\u11B8" + - "\x03\x02\x02\x02\u11B8\u11BB\x03\x02\x02\x02\u11B9\u11B7\x03\x02\x02\x02" + - "\u11BA\u11B1\x03\x02\x02\x02\u11BA\u11BB\x03\x02\x02\x02\u11BB\u0189\x03" + - "\x02\x02\x02\u11BC\u11BD\x07C\x02\x02\u11BD\u11BE\x07\u01E3\x02\x02\u11BE" + - "\u11BF\x07l\x02\x02\u11BF\u11C0\x05\u01FC\xFF\x02\u11C0\u11C1\x07\x9F" + - "\x02\x02\u11C1\u11C6\x05\u01FC\xFF\x02\u11C2\u11C3\x07\u0400\x02\x02\u11C3" + - "\u11C5\x05\u01FC\xFF\x02\u11C4\u11C2\x03\x02\x02\x02\u11C5\u11C8\x03\x02" + - "\x02\x02\u11C6\u11C4\x03\x02\x02\x02\u11C6\u11C7\x03\x02\x02\x02\u11C7" + - "\u11CC\x03\x02\x02\x02\u11C8\u11C6\x03\x02\x02\x02\u11C9\u11CA\x07\xB0" + - "\x02\x02\u11CA\u11CB\x07C\x02\x02\u11CB\u11CD\x07n\x02\x02\u11CC\u11C9" + - "\x03\x02\x02\x02\u11CC\u11CD\x03\x02\x02\x02\u11CD\u018B\x03\x02\x02\x02" + - "\u11CE\u11CF\x07\x7F\x02\x02\u11CF\u11D0\x07\u023E\x02\x02\u11D0\u11D5" + - "\x05\u01A6\xD4\x02\u11D1\u11D2\x07\u0400\x02\x02\u11D2\u11D4\x05\u01A6" + - "\xD4\x02\u11D3\u11D1\x03\x02\x02\x02\u11D4\u11D7\x03\x02\x02\x02\u11D5" + - "\u11D3\x03\x02\x02\x02\u11D5\u11D6\x03\x02\x02\x02\u11D6\u018D\x03\x02" + - "\x02\x02\u11D7\u11D5\x03\x02\x02\x02\u11D8\u11D9\x07\x86\x02\x02\u11D9" + - "\u11DE\x05\u01A0\xD1\x02\u11DA\u11DB\x07\u0400\x02\x02\u11DB\u11DD\x05" + - "\u01A0\xD1\x02\u11DC\u11DA\x03\x02\x02\x02\u11DD\u11E0\x03\x02\x02\x02" + - "\u11DE\u11DC\x03\x02\x02\x02\u11DE\u11DF\x03\x02\x02\x02\u11DF\u11E1\x03" + - "\x02\x02\x02\u11E0\u11DE\x03\x02\x02\x02\u11E1\u11E3\x07l\x02\x02\u11E2" + - "\u11E4\t=\x02\x02\u11E3\u11E2\x03\x02\x02\x02\u11E3\u11E4\x03\x02\x02" + - "\x02\u11E4\u11E5\x03\x02\x02\x02\u11E5\u11E6\x05\u01A4\xD3\x02\u11E6\u11E7" + - "\x07?\x02\x02\u11E7\u11EC\x05\u01FC\xFF\x02\u11E8\u11E9\x07\u0400\x02" + - "\x02\u11E9\u11EB\x05\u01FC\xFF\x02\u11EA\u11E8\x03\x02\x02\x02\u11EB\u11EE" + - "\x03\x02\x02\x02\u11EC\u11EA\x03\x02\x02\x02\u11EC\u11ED\x03\x02\x02\x02" + - "\u11ED\u1201\x03\x02\x02\x02\u11EE\u11EC\x03\x02\x02\x02\u11EF\u11F0\x07" + - "\x86\x02\x02\u11F0\u11F2\x07\b\x02\x02\u11F1\u11F3\x07\u0264\x02\x02\u11F2" + - "\u11F1\x03\x02\x02\x02\u11F2\u11F3\x03\x02\x02\x02\u11F3\u11F4\x03\x02" + - "\x02\x02\u11F4\u11F5\x07\u0400\x02\x02\u11F5\u11F6\x07C\x02\x02\u11F6" + - "\u11F7\x07n\x02\x02\u11F7\u11F8\x07?\x02\x02\u11F8\u11FD\x05\u01FC\xFF" + - "\x02\u11F9\u11FA\x07\u0400\x02\x02\u11FA\u11FC\x05\u01FC\xFF\x02\u11FB" + - "\u11F9\x03\x02\x02\x02\u11FC\u11FF\x03\x02\x02\x02\u11FD\u11FB\x03\x02" + - "\x02\x02\u11FD\u11FE\x03\x02\x02\x02\u11FE\u1201\x03\x02\x02\x02\u11FF" + - "\u11FD\x03\x02\x02\x02\u1200\u11D8\x03\x02\x02\x02\u1200\u11EF\x03\x02" + - "\x02\x02\u1201\u018F\x03\x02\x02\x02\u1202\u1203\x07\x86\x02\x02\u1203" + - "\u1204\x07\u01E3\x02\x02\u1204\u1205\x07l\x02\x02\u1205\u1206\x05\u01FC" + - "\xFF\x02\u1206\u1207\x07?\x02\x02\u1207\u120C\x05\u01FC\xFF\x02\u1208" + - "\u1209\x07\u0400\x02\x02\u1209\u120B\x05\u01FC\xFF\x02\u120A\u1208\x03" + - "\x02\x02\x02\u120B\u120E\x03\x02\x02\x02\u120C\u120A\x03\x02\x02\x02\u120C" + - "\u120D\x03\x02\x02\x02\u120D\u0191\x03\x02\x02\x02\u120E\u120C\x03\x02" + - "\x02\x02\u120F\u1210\x07\x8C\x02\x02\u1210\u1213\x07\u01D6\x02\x02\u1211" + - "\u1212\x07<\x02\x02\u1212\u1214\x05\u01FC\xFF\x02\u1213\u1211\x03\x02" + - "\x02\x02\u1213\u1214\x03\x02\x02\x02\u1214\u1215\x03\x02\x02\x02\u1215" + - "\u1218\x07\u03F5\x02\x02\u1216\u1219\x05\u0256\u012C\x02\u1217\u1219\x07" + - "\u040D\x02\x02\u1218\u1216\x03\x02\x02\x02\u1218\u1217\x03\x02\x02\x02" + - "\u1219\u0193\x03\x02\x02\x02\u121A\u121B\x05\u01FC\xFF\x02\u121B\u121C" + - "\x05\u019C\xCF\x02\u121C\u0195\x03\x02\x02\x02\u121D\u121E\x05\u01FC\xFF" + - "\x02\u121E\u121F\x07\u017C\x02\x02\u121F\u1220\x07\x12\x02\x02\u1220\u1221" + - "\x07\u01D6\x02\x02\u1221\u1222\x07\u040D\x02\x02\u1222\u1236\x03\x02\x02" + - "\x02\u1223\u1224\x05\u01FC\xFF\x02\u1224\u1227\x07\u017C\x02\x02\u1225" + - "\u1226\x07\xB0\x02\x02\u1226\u1228\x05\u020C\u0107\x02\u1227\u1225\x03" + - "\x02\x02\x02\u1227\u1228\x03\x02\x02\x02\u1228\u1229\x03\x02\x02\x02\u1229" + - "\u122A\x07\x12\x02\x02\u122A\u122B\x07\u040D\x02\x02\u122B\u1236\x03\x02" + - "\x02\x02\u122C\u122D\x05\u01FC\xFF\x02\u122D\u122E\x07\u017C\x02\x02\u122E" + - "\u122F\x07\xB0\x02\x02\u122F\u1232\x05\u020C\u0107\x02\u1230\u1231\x07" + - "\r\x02\x02\u1231\u1233\x07\u040D\x02\x02\u1232\u1230\x03\x02\x02\x02\u1232" + - "\u1233\x03\x02\x02\x02\u1233\u1236\x03\x02\x02\x02\u1234\u1236\x05\u01FC" + - "\xFF\x02\u1235\u121D\x03\x02\x02\x02\u1235\u1223\x03\x02\x02\x02\u1235" + - "\u122C\x03\x02\x02\x02\u1235\u1234\x03\x02\x02\x02\u1236\u0197\x03\x02" + - "\x02\x02\u1237\u1240\x07\x98\x02\x02\u1238\u1240\x07\u024C\x02\x02\u1239" + - "\u123A\x07\u012A\x02\x02\u123A\u1240\x07\u040D\x02\x02\u123B\u123C\x07" + - "\u018B\x02\x02\u123C\u1240\x07\u040D\x02\x02\u123D\u123E\x07\u0227\x02" + - "\x02\u123E\u1240\x07\u040D\x02\x02\u123F\u1237\x03\x02\x02\x02\u123F\u1238" + - "\x03\x02\x02\x02\u123F\u1239\x03\x02\x02\x02\u123F\u123B\x03\x02\x02\x02" + - "\u123F\u123D\x03\x02\x02\x02\u1240\u0199\x03\x02\x02\x02\u1241\u1242\x07" + - "\u01AD\x02\x02\u1242\u124A\x05\u0214\u010B\x02\u1243\u1244\x07\u01B0\x02" + - "\x02\u1244\u124A\x05\u0214\u010B\x02\u1245\u1246\x07\u01AC\x02\x02\u1246" + - "\u124A\x05\u0214\u010B\x02\u1247\u1248\x07\u01B1\x02\x02\u1248\u124A\x05" + - "\u0214\u010B\x02\u1249\u1241\x03\x02\x02\x02\u1249\u1243\x03\x02\x02\x02" + - "\u1249\u1245\x03\x02\x02\x02\u1249\u1247\x03\x02\x02\x02\u124A\u019B\x03" + - "\x02\x02\x02\u124B\u124C\x07\u01D6\x02\x02\u124C\u1253\x07\u0163\x02\x02" + - "\u124D\u1254\x07(\x02\x02\u124E\u1254\x07\u01C0\x02\x02\u124F\u1250\x07" + - "O\x02\x02\u1250\u1251\x05\u0214\u010B\x02\u1251\u1252\x07\u0256\x02\x02" + - "\u1252\u1254\x03\x02\x02\x02\u1253\u124D\x03\x02\x02\x02\u1253\u124E\x03" + - "\x02\x02\x02\u1253\u124F\x03\x02\x02\x02\u1253\u1254\x03\x02\x02\x02\u1254" + - "\u019D\x03\x02\x02\x02\u1255\u1256\x07\u0110\x02\x02\u1256\u1257\t>\x02" + - "\x02\u1257\u019F\x03\x02\x02\x02\u1258\u125D\x05\u01A2\xD2\x02\u1259\u125A" + - "\x07\u03FE\x02\x02\u125A\u125B\x05\u022E\u0118\x02\u125B\u125C\x07\u03FF" + - "\x02\x02\u125C\u125E\x03\x02\x02\x02\u125D\u1259\x03\x02\x02\x02\u125D" + - "\u125E\x03\x02\x02\x02\u125E\u01A1\x03\x02\x02\x02\u125F\u1261\x07\b\x02" + - "\x02\u1260\u1262\x07\u0264\x02\x02\u1261\u1260\x03\x02\x02\x02\u1261\u1262" + - "\x03\x02\x02\x02\u1262\u12A7\x03\x02\x02\x02\u1263\u1265\x07\t\x02\x02" + - "\u1264\u1266\x07\u025D\x02\x02\u1265\u1264\x03\x02\x02\x02\u1265\u1266" + - "\x03\x02\x02\x02\u1266\u12A7\x03\x02\x02\x02\u1267\u126F\x07 \x02\x02" + - "\u1268\u1269\x07\u022F\x02\x02\u1269\u1270\x07\u025C\x02\x02\u126A\u1270" + - "\x07\u025D\x02\x02\u126B\u1270\x07\u0244\x02\x02\u126C\u1270\x07\u023E" + - "\x02\x02\u126D\u1270\x07\u022E\x02\x02\u126E\u1270\x07\u01FD\x02\x02\u126F" + - "\u1268\x03\x02\x02\x02\u126F\u126A\x03\x02\x02\x02\u126F\u126B\x03\x02" + - "\x02\x02\u126F\u126C\x03\x02\x02\x02\u126F\u126D\x03\x02\x02\x02\u126F" + - "\u126E\x03\x02\x02\x02\u126F\u1270\x03\x02\x02\x02\u1270\u12A7\x03\x02" + - "\x02\x02\u1271\u12A7\x07*\x02\x02\u1272\u1274\x071\x02\x02\u1273\u1275" + - "\x07\u01FD\x02\x02\u1274\u1273\x03\x02\x02\x02\u1274\u1275\x03\x02\x02" + - "\x02\u1275\u12A7\x03\x02\x02\x02\u1276\u12A7\x07\u015E\x02\x02\u1277\u12A7" + - "\x07\u025E\x02\x02\u1278\u12A7\x07\u025F\x02\x02\u1279\u127A\x07C\x02" + - "\x02\u127A\u12A7\x07n\x02\x02\u127B\u12A7\x07J\x02\x02\u127C\u12A7\x07" + - "N\x02\x02\u127D\u127E\x07_\x02\x02\u127E\u12A7\x07\u025C\x02\x02\u127F" + - "\u12A7\x07\u0260\x02\x02\u1280\u12A7\x07\u01E3\x02\x02\u1281\u12A7\x07" + - "|\x02\x02\u1282\u12A7\x07\u0261\x02\x02\u1283\u1284\x07\u01F8\x02\x02" + - "\u1284\u12A7\t?\x02\x02\u1285\u12A7\x07\x8B\x02\x02\u1286\u1287\x07\x8E" + - "\x02\x02\u1287\u12A7\t@\x02\x02\u1288\u12A7\x07\u0262\x02\x02\u1289\u12A7" + - "\x07\u0263\x02\x02\u128A\u12A7\x07\xA1\x02\x02\u128B\u12A7\x07\xA8\x02" + - "\x02\u128C\u12A7\x07\xA9\x02\x02\u128D\u12A7\x07\u0266\x02\x02\u128E\u12A7" + - "\x07\u0267\x02\x02\u128F\u12A7\x07\u0268\x02\x02\u1290\u12A7\x07\u0269" + - "\x02\x02\u1291\u12A7\x07\u026A\x02\x02\u1292\u12A7\x07\u026B\x02\x02\u1293" + - "\u12A7\x07\u026C\x02\x02\u1294\u12A7\x07\u026D\x02\x02\u1295\u12A7\x07" + - "\u026E\x02\x02\u1296\u12A7\x07\u026F\x02\x02\u1297\u12A7\x07\u0270\x02" + - "\x02\u1298\u12A7\x07\u0271\x02\x02\u1299\u12A7\x07\u0272\x02\x02\u129A" + - "\u12A7\x07\u0273\x02\x02\u129B\u12A7\x07\u0274\x02\x02\u129C\u12A7\x07" + - "\u0275\x02\x02\u129D\u12A7\x07\u0276\x02\x02\u129E\u12A7\x07\u0277\x02" + - "\x02\u129F\u12A7\x07\u0278\x02\x02\u12A0\u12A7\x07\u0279\x02\x02\u12A1" + - "\u12A7\x07\u027A\x02\x02\u12A2\u12A7\x07\u027B\x02\x02\u12A3\u12A7\x07" + - "\u027C\x02\x02\u12A4\u12A7\x07\u027D\x02\x02\u12A5\u12A7\x07\u027E\x02" + - "\x02\u12A6\u125F\x03\x02\x02\x02\u12A6\u1263\x03\x02\x02\x02\u12A6\u1267" + - "\x03\x02\x02\x02\u12A6\u1271\x03\x02\x02\x02\u12A6\u1272\x03\x02\x02\x02" + - "\u12A6\u1276\x03\x02\x02\x02\u12A6\u1277\x03\x02\x02\x02\u12A6\u1278\x03" + - "\x02\x02\x02\u12A6\u1279\x03\x02\x02\x02\u12A6\u127B\x03\x02\x02\x02\u12A6" + - "\u127C\x03\x02\x02\x02\u12A6\u127D\x03\x02\x02\x02\u12A6\u127F\x03\x02" + - "\x02\x02\u12A6\u1280\x03\x02\x02\x02\u12A6\u1281\x03\x02\x02\x02\u12A6" + - "\u1282\x03\x02\x02\x02\u12A6\u1283\x03\x02\x02\x02\u12A6\u1285\x03\x02" + - "\x02\x02\u12A6\u1286\x03\x02\x02\x02\u12A6\u1288\x03\x02\x02\x02\u12A6" + - "\u1289\x03\x02\x02\x02\u12A6\u128A\x03\x02\x02\x02\u12A6\u128B\x03\x02" + - "\x02\x02\u12A6\u128C\x03\x02\x02\x02\u12A6\u128D\x03\x02\x02\x02\u12A6" + - "\u128E\x03\x02\x02\x02\u12A6\u128F\x03\x02\x02\x02\u12A6\u1290\x03\x02" + - "\x02\x02\u12A6\u1291\x03\x02\x02\x02\u12A6\u1292\x03\x02\x02\x02\u12A6" + - "\u1293\x03\x02\x02\x02\u12A6\u1294\x03\x02\x02\x02\u12A6\u1295\x03\x02" + - "\x02\x02\u12A6\u1296\x03\x02\x02\x02\u12A6\u1297\x03\x02\x02\x02\u12A6" + - "\u1298\x03\x02\x02\x02\u12A6\u1299\x03\x02\x02\x02\u12A6\u129A\x03\x02" + - "\x02\x02\u12A6\u129B\x03\x02\x02\x02\u12A6\u129C\x03\x02\x02\x02\u12A6" + - "\u129D\x03\x02\x02\x02\u12A6\u129E\x03\x02\x02\x02\u12A6\u129F\x03\x02" + - "\x02\x02\u12A6\u12A0\x03\x02\x02\x02\u12A6\u12A1\x03\x02\x02\x02\u12A6" + - "\u12A2\x03\x02\x02\x02\u12A6\u12A3\x03\x02\x02\x02\u12A6\u12A4\x03\x02" + - "\x02\x02\u12A6\u12A5\x03\x02\x02\x02\u12A7\u01A3\x03\x02\x02\x02\u12A8" + - "\u12B9\x07\u03ED\x02\x02\u12A9\u12AA\x07\u03ED\x02\x02\u12AA\u12AB\x07" + - "\u03FD\x02\x02\u12AB\u12B9\x07\u03ED\x02\x02\u12AC\u12AD\x05\u020E\u0108" + - "\x02\u12AD\u12AE\x07\u03FD\x02\x02\u12AE\u12AF\x07\u03ED\x02\x02\u12AF" + - "\u12B9\x03\x02\x02\x02\u12B0\u12B1\x05\u020E\u0108\x02\u12B1\u12B2\x07" + - "\u03FD\x02\x02\u12B2\u12B3\x05\u020E\u0108\x02\u12B3\u12B9\x03\x02\x02" + - "\x02\u12B4\u12B5\x05\u020E\u0108\x02\u12B5\u12B6\x05\u0212\u010A\x02\u12B6" + - "\u12B9\x03\x02\x02\x02\u12B7\u12B9\x05\u020E\u0108\x02\u12B8\u12A8\x03" + - "\x02\x02\x02\u12B8\u12A9\x03\x02\x02\x02\u12B8\u12AC\x03\x02\x02\x02\u12B8" + - "\u12B0\x03\x02\x02\x02\u12B8\u12B4\x03\x02\x02\x02\u12B8\u12B7\x03\x02" + - "\x02\x02\u12B9\u01A5\x03\x02\x02\x02\u12BA\u12BB\x05\u01FC\xFF\x02\u12BB" + - "\u12BC\x07\x9F\x02\x02\u12BC\u12BD\x05\u01FC\xFF\x02\u12BD\u01A7\x03\x02" + - "\x02\x02\u12BE\u12C0\x07\v\x02\x02\u12BF\u12C1\tA\x02\x02\u12C0\u12BF" + - "\x03\x02\x02\x02\u12C0\u12C1\x03\x02\x02\x02\u12C1\u12C2\x03\x02\x02\x02" + - "\u12C2\u12C3\x07\x9C\x02\x02\u12C3\u12C4\x05\u0230\u0119\x02\u12C4\u01A9" + - "\x03\x02\x02\x02\u12C5\u12C6\x07\x19\x02\x02\u12C6\u12C7\x07\x9C\x02\x02" + - "\u12C7\u12CB\x05\u0230\u0119\x02\u12C8\u12CA\x05\u01B2\xDA\x02\u12C9\u12C8" + - "\x03\x02\x02\x02\u12CA\u12CD\x03\x02\x02\x02\u12CB\u12C9\x03\x02\x02\x02" + - "\u12CB\u12CC\x03\x02\x02\x02\u12CC\u01AB\x03\x02\x02\x02\u12CD\u12CB\x03" + - "\x02\x02\x02\u12CE\u12CF\x07\u0128\x02\x02\u12CF\u12D0\x07\x9C\x02\x02" + - "\u12D0\u12D2\x05\u0230\u0119\x02\u12D1\u12D3\tB\x02\x02\u12D2\u12D1\x03" + - "\x02\x02\x02\u12D2\u12D3\x03\x02\x02\x02\u12D3\u01AD\x03\x02\x02\x02\u12D4" + - "\u12D6\x07m\x02\x02\u12D5\u12D7\tA\x02\x02\u12D6\u12D5\x03\x02\x02\x02" + - "\u12D6\u12D7\x03\x02\x02\x02\u12D7\u12D8\x03\x02\x02\x02\u12D8\u12D9\x07" + - "\x9C\x02\x02\u12D9\u12DA\x05\u0230\u0119\x02\u12DA\u01AF\x03\x02\x02\x02" + - "\u12DB\u12DD\x07\u01F0\x02\x02\u12DC\u12DE\tA\x02\x02\u12DD\u12DC\x03" + - "\x02\x02\x02\u12DD\u12DE\x03\x02\x02\x02\u12DE\u12DF\x03\x02\x02\x02\u12DF" + - "\u12E0\x07\x9C\x02\x02\u12E0\u12E2\x05\u0230\u0119\x02\u12E1\u12E3\x07" + - "\u01E5\x02\x02\u12E2\u12E1\x03\x02\x02\x02\u12E2\u12E3\x03\x02\x02\x02" + - "\u12E3\u12E5\x03\x02\x02\x02\u12E4\u12E6\x07\u0165\x02\x02\u12E5\u12E4" + - "\x03\x02\x02\x02\u12E5\u12E6\x03\x02\x02\x02\u12E6\u12E8\x03\x02\x02\x02" + - "\u12E7\u12E9\x07\u023F\x02\x02\u12E8\u12E7\x03\x02\x02\x02\u12E8\u12E9" + - "\x03\x02\x02\x02\u12E9\u01B1\x03\x02\x02\x02\u12EA\u12EB\x07<\x02\x02" + - "\u12EB\u12F2\x07\u023D\x02\x02\u12EC\u12F2\x07\u01E5\x02\x02\u12ED\u12F2" + - "\x07\u0167\x02\x02\u12EE\u12F2\x07\u01B2\x02\x02\u12EF\u12F2\x07\u0165" + - "\x02\x02\u12F0\u12F2\x07\u0126\x02\x02\u12F1\u12EA\x03\x02\x02\x02\u12F1" + - "\u12EC\x03\x02\x02\x02\u12F1\u12ED\x03\x02\x02\x02\u12F1\u12EE\x03\x02" + - "\x02\x02\u12F1\u12EF\x03\x02\x02\x02\u12F1\u12F0\x03\x02\x02\x02\u12F2" + - "\u01B3\x03\x02\x02\x02\u12F3\u12F5\x07 \x02\x02\u12F4\u12F6\x07\u0113" + - "\x02\x02\u12F5\u12F4\x03\x02\x02\x02\u12F5\u12F6\x03\x02\x02\x02\u12F6" + - "\u12F7\x03\x02\x02\x02\u12F7\u12F8\x07\u0172\x02\x02\u12F8\u12F9\x05\u020E" + - "\u0108\x02\u12F9\u12FA\x07\u01FC\x02\x02\u12FA\u12FB\tC\x02\x02\u12FB" + - "\u12FC\x07\u0212\x02\x02\u12FC\u12FD\x07\u040D\x02\x02\u12FD\u01B5\x03" + - "\x02\x02\x02\u12FE\u12FF\x07\u0183\x02\x02\u12FF\u1300\x07\u01D8\x02\x02" + - "\u1300\u1301\x05\u020E\u0108\x02\u1301\u1302\x07\u0212\x02\x02\u1302\u1303" + - "\x07\u040D\x02\x02\u1303\u01B7\x03\x02\x02\x02\u1304\u1305\x07\u023A\x02" + - "\x02\u1305\u1306\x07\u01D8\x02\x02\u1306\u1307\x05\u020E\u0108\x02\u1307" + - "\u01B9\x03\x02\x02\x02\u1308\u1309\x07\x8C\x02\x02\u1309\u130A\x05\u01BE" + - "\xE0\x02\u130A\u130B\tD\x02\x02\u130B\u1313\x05\u025C\u012F\x02\u130C" + - "\u130D\x07\u0400\x02\x02\u130D\u130E\x05\u01BE\xE0\x02\u130E\u130F\tD" + - "\x02\x02\u130F\u1310\x05\u025C\u012F\x02\u1310\u1312\x03\x02\x02\x02\u1311" + - "\u130C\x03\x02\x02\x02\u1312\u1315\x03\x02\x02\x02\u1313\u1311\x03\x02" + - "\x02\x02\u1313\u1314\x03\x02\x02\x02\u1314\u133C\x03\x02\x02\x02\u1315" + - "\u1313\x03\x02\x02\x02\u1316\u131A\x07\x8C\x02\x02\u1317\u1318\x07\x18" + - "\x02\x02\u1318\u131B\x07\x8C\x02\x02\u1319\u131B\x07\u02DD\x02\x02\u131A" + - "\u1317\x03\x02\x02\x02\u131A\u1319\x03\x02\x02\x02\u131B\u131E\x03\x02" + - "\x02\x02\u131C\u131F\x05\u0200\u0101\x02\u131D\u131F\x07(\x02\x02\u131E" + - "\u131C\x03\x02\x02\x02\u131E\u131D\x03\x02\x02\x02\u131F\u133C\x03\x02" + - "\x02\x02\u1320\u1321\x07\x8C\x02\x02\u1321\u1328\x07\u01BE\x02\x02\u1322" + - "\u1325\x05\u0200\u0101\x02\u1323\u1324\x07\x1A\x02\x02\u1324\u1326\x05" + - "\u0202\u0102\x02\u1325\u1323\x03\x02\x02\x02\u1325\u1326\x03\x02\x02\x02" + - "\u1326\u1329\x03\x02\x02\x02\u1327\u1329\x07(\x02\x02\u1328\u1322\x03" + - "\x02\x02\x02\u1328\u1327\x03\x02\x02\x02\u1329\u133C\x03\x02\x02\x02\u132A" + - "\u133C\x05\u0192\xCA\x02\u132B\u133C\x05\u0116\x8C\x02\u132C\u133C\x05" + - "\u0114\x8B\x02\u132D\u132E\x07\x8C\x02\x02\u132E\u132F\x05\u01F4\xFB\x02" + - "\u132F\u1330\tD\x02\x02\u1330\u1338\x05\u025C\u012F\x02\u1331\u1332\x07" + - "\u0400\x02\x02\u1332\u1333\x05\u01F4\xFB\x02\u1333\u1334\tD\x02\x02\u1334" + - "\u1335\x05\u025C\u012F\x02\u1335\u1337\x03\x02\x02\x02\u1336\u1331\x03" + - "\x02\x02\x02\u1337\u133A\x03\x02\x02\x02\u1338\u1336\x03\x02\x02\x02\u1338" + - "\u1339\x03\x02\x02\x02\u1339\u133C\x03\x02\x02\x02\u133A\u1338\x03\x02" + - "\x02\x02\u133B\u1308\x03\x02\x02\x02\u133B\u1316\x03\x02\x02\x02\u133B" + - "\u1320\x03\x02\x02\x02\u133B\u132A\x03\x02\x02\x02\u133B\u132B\x03\x02" + - "\x02\x02\u133B\u132C\x03\x02\x02\x02\u133B\u132D\x03\x02\x02\x02\u133C" + - "\u01BB\x03\x02\x02\x02\u133D\u133E\x07\x8E\x02\x02\u133E\u133F\t3\x02" + - "\x02\u133F\u13D5\x07\u0196\x02\x02\u1340\u1341\x07\x8E\x02\x02\u1341\u1342" + - "\tE\x02\x02\u1342\u1345\x07\u015F\x02\x02\u1343\u1344\x07I\x02\x02\u1344" + - "\u1346\x07\u040D\x02\x02\u1345\u1343\x03\x02\x02\x02\u1345\u1346\x03\x02" + - "\x02\x02\u1346\u1349\x03\x02\x02\x02\u1347\u1348\x07?\x02\x02\u1348\u134A" + - "\x05\u0214\u010B\x02\u1349\u1347\x03\x02\x02\x02\u1349\u134A\x03\x02\x02" + - "\x02\u134A\u1352\x03\x02\x02\x02\u134B\u134F\x07[\x02\x02\u134C\u134D" + - "\x05\u0214\u010B\x02\u134D\u134E\x07\u0400\x02\x02\u134E\u1350\x03\x02" + - "\x02\x02\u134F\u134C\x03\x02\x02\x02\u134F\u1350\x03\x02\x02\x02\u1350" + - "\u1351\x03\x02\x02\x02\u1351\u1353\x05\u0214\u010B\x02\u1352\u134B\x03" + - "\x02\x02\x02\u1352\u1353\x03\x02\x02\x02\u1353\u13D5\x03\x02\x02\x02\u1354" + - "\u1355\x07\x8E\x02\x02\u1355\u1357\x05\u01C0\xE1\x02\u1356\u1358\x05\u01C2" + - "\xE2\x02\u1357\u1356\x03\x02\x02\x02\u1357\u1358\x03\x02\x02\x02\u1358" + - "\u13D5\x03\x02\x02\x02\u1359\u135B\x07\x8E\x02\x02\u135A\u135C\x07\u0171" + - "\x02\x02\u135B\u135A\x03\x02\x02\x02\u135B\u135C\x03\x02\x02\x02\u135C" + - "\u135D\x03\x02\x02\x02\u135D\u135E\t%\x02\x02\u135E\u135F\tF\x02\x02\u135F" + - "\u1362\x05\u01F6\xFC\x02\u1360\u1361\tF\x02\x02\u1361\u1363\x05\u020E" + - "\u0108\x02\u1362\u1360\x03\x02\x02\x02\u1362\u1363\x03\x02\x02\x02\u1363" + - "\u1365\x03\x02\x02\x02\u1364\u1366\x05\u01C2\xE2\x02\u1365\u1364\x03\x02" + - "\x02\x02\u1365\u1366\x03\x02\x02\x02\u1366\u13D5\x03\x02\x02\x02\u1367" + - "\u1368\x07\x8E\x02\x02\u1368\u1369\x07 \x02\x02\u1369\u136B\t\x02\x02" + - "\x02\u136A\u136C\x05\u0246\u0124\x02\u136B\u136A\x03\x02\x02\x02\u136B" + - "\u136C\x03\x02\x02\x02\u136C\u136D\x03\x02\x02\x02\u136D\u13D5\x05\u020E" + - "\u0108\x02\u136E\u136F\x07\x8E\x02\x02\u136F\u1370\x07 \x02\x02\u1370" + - "\u1371\tG\x02\x02\u1371\u13D5\x05\u01F4\xFB\x02\u1372\u1373\x07\x8E\x02" + - "\x02\u1373\u1374\x07 \x02\x02\u1374\u1375\x07\u023E\x02\x02\u1375\u13D5" + - "\x05\u01FC\xFF\x02\u1376\u1377\x07\x8E\x02\x02\u1377\u1378\x07\u0158\x02" + - "\x02\u1378\u1379\x05\u0204\u0103\x02\u1379\u137A\tH\x02\x02\u137A\u13D5" + - "\x03\x02\x02\x02\u137B\u137C\x07\x8E\x02\x02\u137C\u13D5\x05\u01C4\xE3" + - "\x02\u137D\u137E\x07\x8E\x02\x02\u137E\u137F\tI\x02\x02\u137F\u1383\x07" + - "[\x02\x02\u1380\u1381\x05\u0214\u010B\x02\u1381\u1382\x07\u0400\x02\x02" + - "\u1382\u1384\x03\x02\x02\x02\u1383\u1380\x03\x02\x02\x02\u1383\u1384\x03" + - "\x02\x02\x02\u1384\u1385\x03\x02\x02\x02\u1385\u13D5\x05\u0214\u010B\x02" + - "\u1386\u1387\x07\x8E\x02\x02\u1387\u1388\x07\xF1\x02\x02\u1388\u1389\x07" + - "\u03FE\x02\x02\u1389\u138A\x07\u03ED\x02\x02\u138A\u138B\x07\u03FF\x02" + - "\x02\u138B\u13D5\tI\x02\x02\u138C\u138D\x07\x8E\x02\x02\u138D\u1390\x05" + - "\u01C6\xE4\x02\u138E\u138F\tF\x02\x02\u138F\u1391\x05\u020E\u0108\x02" + - "\u1390\u138E\x03\x02\x02\x02\u1390\u1391\x03\x02\x02\x02\u1391\u1393\x03" + - "\x02\x02\x02\u1392\u1394\x05\u01C2\xE2\x02\u1393\u1392\x03\x02\x02\x02" + - "\u1393\u1394\x03\x02\x02\x02\u1394\u13D5\x03\x02\x02\x02\u1395\u1396"; - private static readonly _serializedATNSegment10: string = - "\x07\x8E\x02\x02\u1396\u1397\tJ\x02\x02\u1397\u1398\x07\u012F\x02\x02" + - "\u1398\u13D5\x05\u01F4\xFB\x02\u1399\u139A\x07\x8E\x02\x02\u139A\u139D" + - "\x07\u0175\x02\x02\u139B\u139C\x07<\x02\x02\u139C\u139E\x05\u01FC\xFF" + - "\x02\u139D\u139B\x03\x02\x02\x02\u139D\u139E\x03\x02\x02\x02\u139E\u13D5" + - "\x03\x02\x02\x02\u139F\u13A0\x07\x8E\x02\x02\u13A0\u13A1\tK\x02\x02\u13A1" + - "\u13A2\tF\x02\x02\u13A2\u13A5\x05\u01F6\xFC\x02\u13A3\u13A4\tF\x02\x02" + - "\u13A4\u13A6\x05\u020E\u0108\x02\u13A5\u13A3\x03\x02\x02\x02\u13A5\u13A6" + - "\x03\x02\x02\x02\u13A6\u13A9\x03\x02\x02\x02\u13A7\u13A8\x07\xAE\x02\x02" + - "\u13A8\u13AA\x05\u025C\u012F\x02\u13A9\u13A7\x03\x02\x02\x02\u13A9\u13AA" + - "\x03\x02\x02\x02\u13AA\u13D5\x03\x02\x02\x02\u13AB\u13AC\x07\x8E\x02\x02" + - "\u13AC\u13AD\x07\u01CC\x02\x02\u13AD\u13B0\x07\u025C\x02\x02\u13AE\u13AF" + - "\tF\x02\x02\u13AF\u13B1\x05\u020E\u0108\x02\u13B0\u13AE\x03\x02\x02\x02" + - "\u13B0\u13B1\x03\x02\x02\x02\u13B1\u13B3\x03\x02\x02\x02\u13B2\u13B4\x05" + - "\u01C2\xE2\x02\u13B3\u13B2\x03\x02\x02\x02\u13B3\u13B4\x03\x02\x02\x02" + - "\u13B4\u13D5\x03\x02\x02\x02\u13B5\u13B6\x07\x8E\x02\x02\u13B6\u13B7\x07" + - "\u01E1\x02\x02\u13B7\u13BC\x05\u01C8\xE5\x02\u13B8\u13B9\x07\u0400\x02" + - "\x02\u13B9\u13BB\x05\u01C8\xE5\x02\u13BA\u13B8\x03\x02\x02\x02\u13BB\u13BE" + - "\x03\x02\x02\x02\u13BC\u13BA\x03\x02\x02\x02\u13BC\u13BD\x03\x02\x02\x02" + - "\u13BD\u13C2\x03\x02\x02\x02\u13BE\u13BC\x03\x02\x02\x02\u13BF\u13C0\x07" + - "<\x02\x02\u13C0\u13C1\x07\u01E4\x02\x02\u13C1\u13C3\x05\u0214\u010B\x02" + - "\u13C2\u13BF\x03\x02\x02\x02\u13C2\u13C3\x03\x02\x02\x02\u13C3\u13C4\x03" + - "\x02\x02\x02\u13C4\u13C8\x07[\x02\x02\u13C5\u13C6\x05\u0214\u010B\x02" + - "\u13C6\u13C7\x07\u0400\x02\x02\u13C7\u13C9\x03\x02\x02\x02\u13C8\u13C5" + - "\x03\x02\x02\x02\u13C8\u13C9\x03\x02\x02\x02\u13C9\u13CA\x03\x02\x02\x02" + - "\u13CA\u13CB\x05\u0214\u010B\x02\u13CB\u13D5\x03\x02\x02\x02\u13CC\u13CD" + - "\x07\x8E\x02\x02\u13CD\u13CE\x07\u020D\x02\x02\u13CE\u13D2\x07\u0221\x02" + - "\x02\u13CF\u13D0\x07<\x02\x02\u13D0\u13D1\x07\u0127\x02\x02\u13D1\u13D3" + - "\x07\u040D\x02\x02\u13D2\u13CF\x03\x02\x02\x02\u13D2\u13D3\x03\x02\x02" + - "\x02\u13D3\u13D5\x03\x02\x02\x02\u13D4\u133D\x03\x02\x02\x02\u13D4\u1340" + - "\x03\x02\x02\x02\u13D4\u1354\x03\x02\x02\x02\u13D4\u1359\x03\x02\x02\x02" + - "\u13D4\u1367\x03\x02\x02\x02\u13D4\u136E\x03\x02\x02\x02\u13D4\u1372\x03" + - "\x02\x02\x02\u13D4\u1376\x03\x02\x02\x02\u13D4\u137B\x03\x02\x02\x02\u13D4" + - "\u137D\x03\x02\x02\x02\u13D4\u1386\x03\x02\x02\x02\u13D4\u138C\x03\x02" + - "\x02\x02\u13D4\u1395\x03\x02\x02\x02\u13D4\u1399\x03\x02\x02\x02\u13D4" + - "\u139F\x03\x02\x02\x02\u13D4\u13AB\x03\x02\x02\x02\u13D4\u13B5\x03\x02" + - "\x02\x02\u13D4\u13CC\x03\x02\x02\x02\u13D5\u01BD\x03\x02\x02\x02\u13D6" + - "\u13E1\x07\u0418\x02\x02\u13D7\u13E1\x07\u0419\x02\x02\u13D8\u13D9\x07" + - "\u0402\x02\x02\u13D9\u13DB\x07\u0402\x02\x02\u13DA\u13D8\x03\x02\x02\x02" + - "\u13DA\u13DB\x03\x02\x02\x02\u13DB\u13DC\x03\x02\x02\x02\u13DC\u13DE\t" + - "L\x02\x02\u13DD\u13DA\x03\x02\x02\x02\u13DD\u13DE\x03\x02\x02\x02\u13DE" + - "\u13DF\x03\x02\x02\x02\u13DF\u13E1\x05\u020E\u0108\x02\u13E0\u13D6\x03" + - "\x02\x02\x02\u13E0\u13D7\x03\x02\x02\x02\u13E0\u13DD\x03\x02\x02\x02\u13E1" + - "\u01BF\x03\x02\x02\x02\u13E2\u13E3\x07\x18\x02\x02\u13E3\u13F0\x07\x8C" + - "\x02\x02\u13E4\u13F0\x07\u02E0\x02\x02\u13E5\u13F0\x07&\x02\x02\u13E6" + - "\u13F0\x07\x8A\x02\x02\u13E7\u13E8\x07\u0172\x02\x02\u13E8\u13F0\x07\u0221" + - "\x02\x02\u13E9\u13EA\x07w\x02\x02\u13EA\u13F0\x07\u0221\x02\x02\u13EB" + - "\u13ED\t2\x02\x02\u13EC\u13EB\x03\x02\x02\x02\u13EC\u13ED\x03\x02\x02" + - "\x02\u13ED\u13EE\x03\x02\x02\x02\u13EE\u13F0\tM\x02\x02\u13EF\u13E2\x03" + - "\x02\x02\x02\u13EF\u13E4\x03\x02\x02\x02\u13EF\u13E5\x03\x02\x02\x02\u13EF" + - "\u13E6\x03\x02\x02\x02\u13EF\u13E7\x03\x02\x02\x02\u13EF\u13E9\x03\x02" + - "\x02\x02\u13EF\u13EC\x03\x02\x02\x02\u13F0\u01C1\x03\x02\x02\x02\u13F1" + - "\u13F2\x07Z\x02\x02\u13F2\u13F6\x07\u040D\x02\x02\u13F3\u13F4\x07\xAE" + - "\x02\x02\u13F4\u13F6\x05\u025C\u012F\x02\u13F5\u13F1\x03\x02\x02\x02\u13F5" + - "\u13F3\x03\x02\x02\x02\u13F6\u01C3\x03\x02\x02\x02\u13F7\u13F9\x07\u0223" + - "\x02\x02\u13F8\u13F7\x03\x02\x02\x02\u13F8\u13F9\x03\x02\x02\x02\u13F9" + - "\u13FA\x03\x02\x02\x02\u13FA\u1409\x07\u0159\x02\x02\u13FB\u13FC\x07\u0197" + - "\x02\x02\u13FC\u1409\x07\u0221\x02\x02\u13FD\u1409\x07\u01DA\x02\x02\u13FE" + - "\u1409\x07\u0264\x02\x02\u13FF\u1401\x07\u0171\x02\x02\u1400\u13FF\x03" + - "\x02\x02\x02\u1400\u1401\x03\x02\x02\x02\u1401\u1402\x03\x02\x02\x02\u1402" + - "\u1409\x07\u01E0\x02\x02\u1403\u1409\x07\u01E2\x02\x02\u1404\u1405\x07" + - "\u020D\x02\x02\u1405\u1409\x07\u017B\x02\x02\u1406\u1409\x07\u0117\x02" + - "\x02\u1407\u1409\x07\u0141\x02\x02\u1408\u13F8\x03\x02\x02\x02\u1408\u13FB" + - "\x03\x02\x02\x02\u1408\u13FD\x03\x02\x02\x02\u1408\u13FE\x03\x02\x02\x02" + - "\u1408\u1400\x03\x02\x02\x02\u1408\u1403\x03\x02\x02\x02\u1408\u1404\x03" + - "\x02\x02\x02\u1408\u1406\x03\x02\x02\x02\u1408\u1407\x03\x02\x02\x02\u1409" + - "\u01C5\x03\x02\x02\x02\u140A\u1413\x07\u015F\x02\x02\u140B\u140C\x07\x9C" + - "\x02\x02\u140C\u1413\x07\u0221\x02\x02\u140D\u140F\x07\u0171\x02\x02\u140E" + - "\u140D\x03\x02\x02\x02\u140E\u140F\x03\x02\x02\x02\u140F\u1410\x03\x02" + - "\x02\x02\u1410\u1413\x07\u025C\x02\x02\u1411\u1413\x07\u0235\x02\x02\u1412" + - "\u140A\x03\x02\x02\x02\u1412\u140B\x03\x02\x02\x02\u1412\u140E\x03\x02" + - "\x02\x02\u1412\u1411\x03\x02\x02\x02\u1413\u01C7\x03\x02\x02\x02\u1414" + - "\u1421\x07\b\x02\x02\u1415\u1416\x07\u011F\x02\x02\u1416\u1421\x07\u0187" + - "\x02\x02\u1417\u1418\x07\u0140\x02\x02\u1418\u1421\x07\u022C\x02\x02\u1419" + - "\u1421\x07\u0143\x02\x02\u141A\u1421\x07\u0189\x02\x02\u141B\u1421\x07" + - "\u02AC\x02\x02\u141C\u141D\x07\u01D1\x02\x02\u141D\u1421\x07\u0168\x02" + - "\x02\u141E\u1421\x07\u0214\x02\x02\u141F\u1421\x07\u022B\x02\x02\u1420" + - "\u1414\x03\x02\x02\x02\u1420\u1415\x03\x02\x02\x02\u1420\u1417\x03\x02" + - "\x02\x02\u1420\u1419\x03\x02\x02\x02\u1420\u141A\x03\x02\x02\x02\u1420" + - "\u141B\x03\x02\x02\x02\u1420\u141C\x03\x02\x02\x02\u1420\u141E\x03\x02" + - "\x02\x02\u1420\u141F\x03\x02\x02\x02\u1421\u01C9\x03\x02\x02\x02\u1422" + - "\u1423\x07\u011D\x02\x02\u1423\u1424\x07\u040D\x02\x02\u1424\u01CB\x03" + - "\x02\x02\x02\u1425\u1426\x07\u0123\x02\x02\u1426\u1427\x07J\x02\x02\u1427" + - "\u142C\x05\u01D8\xED\x02\u1428\u1429\x07\u0400\x02\x02\u1429\u142B\x05" + - "\u01D8\xED\x02\u142A\u1428\x03\x02\x02\x02\u142B\u142E\x03\x02\x02\x02" + - "\u142C\u142A\x03\x02\x02\x02\u142C\u142D\x03\x02\x02\x02\u142D\u1436\x03" + - "\x02\x02\x02\u142E\u142C\x03\x02\x02\x02\u142F\u1430\x07u\x02\x02\u1430" + - "\u1433\x07\u03FE\x02\x02\u1431\u1434\x05\u022E\u0118\x02\u1432\u1434\x07" + - "\b\x02\x02\u1433\u1431\x03\x02\x02\x02\u1433\u1432\x03\x02\x02\x02\u1434" + - "\u1435\x03\x02\x02\x02\u1435\u1437\x07\u03FF\x02\x02\u1436\u142F\x03\x02" + - "\x02\x02\u1436\u1437\x03\x02\x02\x02\u1437\u1438\x03\x02\x02\x02\u1438" + - "\u1439\x07I\x02\x02\u1439\u143A\x05\u020E\u0108\x02\u143A\u01CD\x03\x02" + - "\x02\x02\u143B\u143D\x07\u016E\x02\x02\u143C\u143E\tA\x02\x02\u143D\u143C" + - "\x03\x02\x02\x02\u143D\u143E\x03\x02\x02\x02\u143E\u143F\x03\x02\x02\x02" + - "\u143F\u1444\x05\u01DA\xEE\x02\u1440\u1441\x07\u0400\x02\x02\u1441\u1443" + - "\x05\u01DA\xEE\x02\u1442\u1440\x03\x02\x02\x02\u1443\u1446\x03\x02\x02" + - "\x02\u1444\u1442\x03\x02\x02\x02\u1444\u1445\x03\x02\x02\x02\u1445\u01CF" + - "\x03\x02\x02\x02\u1446\u1444\x03\x02\x02\x02\u1447\u1449\x07V\x02\x02" + - "\u1448\u144A\tN\x02\x02\u1449\u1448\x03\x02\x02\x02\u1449\u144A\x03\x02" + - "\x02\x02\u144A\u144C\x03\x02\x02\x02\u144B\u144D\x05\u0214\u010B\x02\u144C" + - "\u144B\x03\x02\x02\x02\u144D\u144E\x03\x02\x02\x02\u144E\u144C\x03\x02" + - "\x02\x02\u144E\u144F\x03\x02\x02\x02\u144F\u01D1\x03\x02\x02\x02\u1450" + - "\u1451\x07^\x02\x02\u1451\u1452\x07J\x02\x02\u1452\u1453\x07P\x02\x02" + - "\u1453\u1454\x07\u0123\x02\x02\u1454\u1459\x05\u01DE\xF0\x02\u1455\u1456" + - "\x07\u0400\x02\x02\u1456\u1458\x05\u01DE\xF0\x02\u1457\u1455\x03\x02\x02" + - "\x02\u1458\u145B\x03\x02\x02\x02\u1459\u1457\x03\x02\x02\x02\u1459\u145A" + - "\x03\x02\x02\x02\u145A\u01D3\x03\x02\x02\x02\u145B\u1459\x03\x02\x02\x02" + - "\u145C\u145D\x07\u01F9\x02\x02\u145D\u145E\x07\u01E4\x02\x02\u145E\u145F" + - "\x07\u0123\x02\x02\u145F\u01D5\x03\x02\x02\x02\u1460\u1461\x07\u0262\x02" + - "\x02\u1461\u01D7\x03\x02\x02\x02\u1462\u146A\x05\u01F6\xFC\x02\u1463\u1465" + - "\t\x14\x02\x02\u1464\u1463\x03\x02\x02\x02\u1464\u1465\x03\x02\x02\x02" + - "\u1465\u1466\x03\x02\x02\x02\u1466\u1467\x07\u03FE\x02\x02\u1467\u1468" + - "\x05\u022E\u0118\x02\u1468\u1469\x07\u03FF\x02\x02\u1469\u146B\x03\x02" + - "\x02\x02\u146A\u1464\x03\x02\x02\x02\u146A\u146B\x03\x02\x02\x02\u146B" + - "\u01D9\x03\x02\x02\x02\u146C\u147F\x07\u014B\x02\x02\u146D\u147F\x07\u017B" + - "\x02\x02\u146E\u1470\tO\x02\x02\u146F\u146E\x03\x02\x02\x02\u146F\u1470" + - "\x03\x02\x02\x02\u1470\u1471\x03\x02\x02\x02\u1471\u147F\x07\u0196\x02" + - "\x02\u1472\u147F\x07\u01CD\x02\x02\u1473\u147F\x07\u0264\x02\x02\u1474" + - "\u1475\x07\u01E4\x02\x02\u1475\u147F\x07\u0123\x02\x02\u1476\u147F\x07" + - "\u0221\x02\x02\u1477\u147F\x07\u0240\x02\x02\u1478\u147C\x07\u025C\x02" + - "\x02\u1479\u147A\x07\xB0\x02\x02\u147A\u147B\x07z\x02\x02\u147B\u147D" + - "\x07_\x02\x02\u147C\u1479\x03\x02\x02\x02\u147C\u147D\x03\x02\x02\x02" + - "\u147D\u147F\x03\x02\x02\x02\u147E\u146C\x03\x02\x02\x02\u147E\u146D\x03" + - "\x02\x02\x02\u147E\u146F\x03\x02\x02\x02\u147E\u1472\x03\x02\x02\x02\u147E" + - "\u1473\x03\x02\x02\x02\u147E\u1474\x03\x02\x02\x02\u147E\u1476\x03\x02" + - "\x02\x02\u147E\u1477\x03\x02\x02\x02\u147E\u1478\x03\x02\x02\x02\u147F" + - "\u148B\x03\x02\x02\x02\u1480\u1481\x07\u01EA\x02\x02\u1481\u1483\x07\u0196" + - "\x02\x02\u1482\u1484\x05\u013C\x9F\x02\u1483\u1482\x03\x02\x02\x02\u1483" + - "\u1484\x03\x02\x02\x02\u1484\u148B\x03\x02\x02\x02\u1485\u1486\x07\u025C" + - "\x02\x02\u1486\u1488\x05\u0230\u0119\x02\u1487\u1489\x05\u01DC\xEF\x02" + - "\u1488\u1487\x03\x02\x02\x02\u1488\u1489\x03\x02\x02\x02\u1489\u148B\x03" + - "\x02\x02\x02\u148A\u147E\x03\x02\x02\x02\u148A\u1480\x03\x02\x02\x02\u148A" + - "\u1485\x03\x02\x02\x02\u148B\u01DB\x03\x02\x02\x02\u148C\u148D\x07\xB0" + - "\x02\x02\u148D\u148E\x07z\x02\x02\u148E\u1492\x07_\x02\x02\u148F\u1490" + - "\x07<\x02\x02\u1490\u1492\x07\u0164\x02\x02\u1491\u148C\x03\x02\x02\x02" + - "\u1491\u148F\x03\x02\x02\x02\u1492\u01DD\x03\x02\x02\x02\u1493\u149B\x05" + - "\u01F6\xFC\x02\u1494\u1495\x07u\x02\x02\u1495\u1498\x07\u03FE\x02\x02" + - "\u1496\u1499\x05\u022E\u0118\x02\u1497\u1499\x07\b\x02\x02\u1498\u1496" + - "\x03\x02\x02\x02\u1498\u1497\x03\x02\x02\x02\u1499\u149A\x03\x02\x02\x02" + - "\u149A\u149C\x07\u03FF\x02\x02\u149B\u1494\x03\x02\x02\x02\u149B\u149C" + - "\x03\x02\x02\x02\u149C\u14A4\x03\x02\x02\x02\u149D\u149F\t\x14\x02\x02" + - "\u149E\u149D\x03\x02\x02\x02\u149E\u149F\x03\x02\x02\x02\u149F\u14A0\x03" + - "\x02\x02\x02\u14A0\u14A1\x07\u03FE\x02\x02\u14A1\u14A2\x05\u022E\u0118" + - "\x02\u14A2\u14A3\x07\u03FF\x02\x02\u14A3\u14A5\x03\x02\x02\x02\u14A4\u149E" + - "\x03\x02\x02\x02\u14A4\u14A5\x03\x02\x02\x02\u14A5\u14A8\x03\x02\x02\x02" + - "\u14A6\u14A7\x07H\x02\x02\u14A7\u14A9\x07\u0190\x02\x02\u14A8\u14A6\x03" + - "\x02\x02\x02\u14A8\u14A9\x03\x02\x02\x02\u14A9\u01DF\x03\x02\x02\x02\u14AA" + - "\u14AB\tP\x02\x02\u14AB\u14AE\x05\u01F6\xFC\x02\u14AC\u14AF\x05\u020E" + - "\u0108\x02\u14AD\u14AF\x07\u040D\x02\x02\u14AE\u14AC\x03\x02\x02\x02\u14AE" + - "\u14AD\x03\x02\x02\x02\u14AE\u14AF\x03\x02\x02\x02\u14AF\u01E1\x03\x02" + - "\x02\x02\u14B0\u14B4\tP\x02\x02\u14B1\u14B2\tQ\x02\x02\u14B2\u14B3\x07" + - "\u03F5\x02\x02\u14B3\u14B5\tR\x02\x02\u14B4\u14B1\x03\x02\x02\x02\u14B4" + - "\u14B5\x03\x02\x02\x02\u14B5\u14B6\x03\x02\x02\x02\u14B6\u14B7\x05\u01F2" + - "\xFA\x02\u14B7\u01E3\x03\x02\x02\x02\u14B8\u14B9\x07\u0179\x02\x02\u14B9" + - "\u14BA\x07\u040D\x02\x02\u14BA\u01E5\x03\x02\x02\x02\u14BB\u14BC\x07\xAA" + - "\x02\x02\u14BC\u14BD\x05\u020E\u0108\x02\u14BD\u01E7\x03\x02\x02\x02\u14BE" + - "\u14C6\x07\x8F\x02\x02\u14BF\u14C1\x07\x93\x02\x02\u14C0\u14C2\x07\u0242" + - "\x02\x02\u14C1\u14C0\x03\x02\x02\x02\u14C1\u14C2\x03\x02\x02\x02\u14C2" + - "\u14C3\x03\x02\x02\x02\u14C3\u14C7\x05\u0218\u010D\x02\u14C4\u14C7\x07" + - "\u0415\x02\x02\u14C5\u14C7\x07\u0416\x02\x02\u14C6\u14BF\x03\x02\x02\x02" + - "\u14C6\u14C4\x03\x02\x02\x02\u14C6\u14C5\x03\x02\x02\x02\u14C7\u14D1\x03" + - "\x02\x02\x02\u14C8\u14C9\x07\x8C\x02\x02\u14C9\u14CE\x05\u01EC\xF7\x02" + - "\u14CA\u14CB\x07\u0400\x02\x02\u14CB\u14CD\x05\u01EC\xF7\x02\u14CC\u14CA" + - "\x03\x02\x02\x02\u14CD\u14D0\x03\x02\x02\x02\u14CE\u14CC\x03\x02\x02\x02" + - "\u14CE\u14CF\x03\x02\x02\x02\u14CF\u14D2\x03\x02\x02\x02\u14D0\u14CE\x03" + - "\x02\x02\x02\u14D1\u14C8\x03\x02\x02\x02\u14D1\u14D2\x03\x02\x02\x02\u14D2" + - "\u01E9\x03\x02\x02\x02\u14D3\u14DB\x07\x83\x02\x02\u14D4\u14D6\x07\x93" + - "\x02\x02\u14D5\u14D7\x07\u0242\x02\x02\u14D6\u14D5\x03\x02\x02\x02\u14D6" + - "\u14D7\x03\x02\x02\x02\u14D7\u14D8\x03\x02\x02\x02\u14D8\u14DC\x05\u0218" + - "\u010D\x02\u14D9\u14DC\x07\u0415\x02\x02\u14DA\u14DC\x07\u0416\x02\x02" + - "\u14DB\u14D4\x03\x02\x02\x02\u14DB\u14D9\x03\x02\x02\x02\u14DB\u14DA\x03" + - "\x02\x02\x02\u14DB\u14DC\x03\x02\x02\x02\u14DC\u14E6\x03\x02\x02\x02\u14DD" + - "\u14DE\x07\x8C\x02\x02\u14DE\u14E3\x05\u01EC\xF7\x02\u14DF\u14E0\x07\u0400" + - "\x02\x02\u14E0\u14E2\x05\u01EC\xF7\x02\u14E1\u14DF\x03\x02\x02\x02\u14E2" + - "\u14E5\x03\x02\x02\x02\u14E3\u14E1\x03\x02\x02\x02\u14E3\u14E4\x03\x02" + - "\x02\x02\u14E4\u14E7\x03\x02\x02\x02\u14E5\u14E3\x03\x02\x02\x02\u14E6" + - "\u14DD\x03\x02\x02\x02\u14E6\u14E7\x03\x02\x02\x02\u14E7\u01EB\x03\x02" + - "\x02\x02\u14E8\u14E9\tS\x02\x02\u14E9\u14EC\x07\u03F5\x02\x02\u14EA\u14ED" + - "\x05\u0218\u010D\x02\u14EB\u14ED\x07\u040E\x02\x02\u14EC\u14EA\x03\x02" + - "\x02\x02\u14EC\u14EB\x03\x02\x02\x02\u14ED\u01ED\x03\x02\x02\x02\u14EE" + - "\u14F0\x07B\x02\x02\u14EF\u14F1\tT\x02\x02\u14F0\u14EF\x03\x02\x02\x02" + - "\u14F0\u14F1\x03\x02\x02\x02\u14F1\u14F2\x03\x02\x02\x02\u14F2\u1512\x07" + - ".\x02\x02\u14F3\u14F4\x05\u01BE\xE0\x02\u14F4\u14F5\x07\u03F5\x02\x02" + - "\u14F5\u14FD\tU\x02\x02\u14F6\u14F7\x07\u0400\x02\x02\u14F7\u14F8\x05" + - "\u01BE\xE0\x02\u14F8\u14F9\x07\u03F5\x02\x02\u14F9\u14FA\tU\x02\x02\u14FA" + - "\u14FC\x03\x02\x02\x02\u14FB\u14F6\x03\x02\x02\x02\u14FC\u14FF\x03\x02" + - "\x02\x02\u14FD\u14FB\x03\x02\x02\x02\u14FD\u14FE\x03\x02\x02\x02\u14FE" + - "\u1513\x03\x02\x02\x02\u14FF\u14FD\x03\x02\x02\x02\u1500\u1503\x07\x1C" + - "\x02\x02\u1501\u1504\x05\u0214\u010B\x02\u1502\u1504\x05\u01BE\xE0\x02" + - "\u1503\u1501\x03\x02\x02\x02\u1503\u1502\x03\x02\x02\x02\u1504\u1505\x03" + - "\x02\x02\x02\u1505\u1506\x05\u01BE\xE0\x02\u1506\u1507\x07\u03F5\x02\x02" + - "\u1507\u150F\x05\u01F0\xF9\x02\u1508\u1509\x07\u0400\x02\x02\u1509\u150A" + - "\x05\u01BE\xE0\x02\u150A\u150B\x07\u03F5\x02\x02\u150B\u150C\x05\u01F0" + - "\xF9\x02\u150C\u150E\x03\x02\x02\x02\u150D\u1508\x03\x02\x02\x02\u150E" + - "\u1511\x03\x02\x02\x02\u150F\u150D\x03\x02\x02\x02\u150F\u1510\x03\x02" + - "\x02\x02\u1510\u1513\x03\x02\x02\x02\u1511\u150F\x03\x02\x02\x02\u1512" + - "\u14F3\x03\x02\x02\x02\u1512\u1500\x03\x02\x02\x02\u1513\u01EF\x03\x02" + - "\x02\x02\u1514\u1515\tV\x02\x02\u1515\u01F1\x03\x02\x02\x02\u1516\u151C" + - "\x05\xB6\\\x02\u1517\u151C\x05\xA8U\x02\u1518\u151C\x05\xAEX\x02\u1519" + - "\u151C\x05\xB4[\x02\u151A\u151C\x05\xB8]\x02\u151B\u1516\x03\x02\x02\x02" + - "\u151B\u1517\x03\x02\x02\x02\u151B\u1518\x03\x02\x02\x02\u151B\u1519\x03" + - "\x02\x02\x02\u151B\u151A\x03\x02\x02\x02\u151C\u1521\x03\x02\x02\x02\u151D" + - "\u151E\x07<\x02\x02\u151E\u151F\x07\u013A\x02\x02\u151F\u1521\x05\u020E" + - "\u0108\x02\u1520\u151B\x03\x02\x02\x02\u1520\u151D\x03\x02\x02\x02\u1521" + - "\u01F3\x03\x02\x02\x02\u1522\u1526\x05\u020E\u0108\x02\u1523\u1527\x07" + - "\u0414\x02\x02\u1524\u1525\x07\u03FD\x02\x02\u1525\u1527\x05\u020E\u0108" + - "\x02\u1526\u1523\x03\x02\x02\x02\u1526\u1524\x03\x02\x02\x02\u1526\u1527" + - "\x03\x02\x02\x02\u1527\u01F5\x03\x02\x02\x02\u1528\u1529\x05\u01F4\xFB" + - "\x02\u1529\u01F7\x03\x02\x02\x02\u152A\u152F\x05\u020E\u0108\x02\u152B" + - "\u152D\x05\u0212\u010A\x02\u152C\u152E\x05\u0212\u010A\x02\u152D\u152C" + - "\x03\x02\x02\x02\u152D\u152E\x03\x02\x02\x02\u152E\u1530\x03\x02\x02\x02" + - "\u152F\u152B\x03\x02\x02\x02\u152F\u1530\x03\x02\x02\x02\u1530\u01F9\x03" + - "\x02\x02\x02\u1531\u1534\x05\u020E\u0108\x02\u1532\u1534\x07\u040D\x02" + - "\x02\u1533\u1531\x03\x02\x02\x02\u1533\u1532\x03\x02\x02\x02\u1534\u1539" + - "\x03\x02\x02\x02\u1535\u1536\x07\u03FE\x02\x02\u1536\u1537\x05\u0214\u010B" + - "\x02\u1537\u1538\x07\u03FF\x02\x02\u1538\u153A\x03\x02\x02\x02\u1539\u1535" + - "\x03\x02\x02\x02\u1539\u153A\x03\x02\x02\x02\u153A\u153C\x03\x02\x02\x02" + - "\u153B\u153D\t,\x02\x02\u153C\u153B\x03\x02\x02\x02\u153C\u153D\x03\x02" + - "\x02\x02\u153D\u01FB\x03\x02\x02\x02\u153E\u153F\tW\x02\x02\u153F\u01FD" + - "\x03\x02\x02\x02\u1540\u1541\tX\x02\x02\u1541\u01FF\x03\x02\x02\x02\u1542" + - "\u1547\x07\xD2\x02\x02\u1543\u1547\x05\u026C\u0137\x02\u1544\u1547\x07" + - "\u040D\x02\x02\u1545\u1547\x07\u040A\x02\x02\u1546\u1542\x03\x02\x02\x02" + - "\u1546\u1543\x03\x02\x02\x02\u1546\u1544\x03\x02\x02\x02\u1546\u1545\x03" + - "\x02\x02\x02\u1547\u0201\x03\x02\x02\x02\u1548\u154B\x05\u020E\u0108\x02" + - "\u1549\u154B\x07\u040D\x02\x02\u154A\u1548\x03\x02\x02\x02\u154A\u1549" + - "\x03\x02\x02\x02\u154B\u0203\x03\x02\x02\x02\u154C\u154D\tY\x02\x02\u154D" + - "\u0205\x03\x02\x02\x02\u154E\u154F\x05\u0214\u010B\x02\u154F\u1550\x07" + - "\u03F2\x02\x02\u1550\u1551\x05\u0214\u010B\x02\u1551\u1552\x07\u03F2\x02" + - "\x02\u1552\u1553\x05\u0214\u010B\x02\u1553\u1554\x07\u03F2\x02\x02\u1554" + - "\u1555\x05\u0214\u010B\x02\u1555\u1556\x07\u03F2\x02\x02\u1556\u155C\x05" + - "\u0214\u010B\x02\u1557\u1558\x07\u0409\x02\x02\u1558\u1559\x05\u0214\u010B" + - "\x02\u1559\u155A\x07\u03F2\x02\x02\u155A\u155B\x05\u0214\u010B\x02\u155B" + - "\u155D\x03\x02\x02\x02\u155C\u1557\x03\x02\x02\x02\u155D\u155E\x03\x02" + - "\x02\x02\u155E\u155C\x03\x02\x02\x02\u155E\u155F\x03\x02\x02\x02\u155F" + - "\u0207\x03\x02\x02\x02\u1560\u1567\x05\u020A\u0106\x02\u1561\u1562\x07" + - "\u0400\x02\x02\u1562\u1565\x05\u020A\u0106\x02\u1563\u1564\x07\u0400\x02" + - "\x02\u1564\u1566\x05\u0214\u010B\x02\u1565\u1563\x03\x02\x02\x02\u1565" + - "\u1566\x03\x02\x02\x02\u1566\u1568\x03\x02\x02\x02\u1567\u1561\x03\x02" + - "\x02\x02\u1567\u1568\x03\x02\x02\x02\u1568\u0209\x03\x02\x02\x02\u1569" + - "\u1571\x07\u040D\x02\x02\u156A\u1571\x07\u0412\x02\x02\u156B\u156D\x07" + - "\u040F\x02\x02\u156C\u156B\x03\x02\x02\x02\u156D\u156E\x03\x02\x02\x02" + - "\u156E\u156C\x03\x02\x02\x02\u156E\u156F\x03\x02\x02\x02\u156F\u1571\x03" + - "\x02\x02\x02\u1570\u1569\x03\x02\x02\x02\u1570\u156A\x03\x02\x02\x02\u1570" + - "\u156C\x03\x02\x02\x02\u1571\u020B\x03\x02\x02\x02\u1572\u1575\x05\u020E" + - "\u0108\x02\u1573\u1575\x07\u040D\x02\x02\u1574\u1572\x03\x02\x02\x02\u1574" + - "\u1573\x03\x02\x02\x02\u1575\u020D\x03\x02\x02\x02\u1576\u157A\x05\u0210" + - "\u0109\x02\u1577\u157A\x07\u0416\x02\x02\u1578\u157A\x07\u040A\x02\x02" + - "\u1579\u1576\x03\x02\x02\x02\u1579\u1577\x03\x02\x02\x02\u1579\u1578\x03" + - "\x02\x02\x02\u157A\u020F\x03\x02\x02\x02\u157B\u1585\x07\u0415\x02\x02" + - "\u157C\u1585\x05\u026C\u0137\x02\u157D\u1585\x05\u026E\u0138\x02\u157E" + - "\u1585\x05\u0204\u0103\x02\u157F\u1585\x05\u0270\u0139\x02\u1580\u1585" + - "\x05\u0272\u013A\x02\u1581\u1585\x05\u0274\u013B\x02\u1582\u1585\x05\u0276" + - "\u013C\x02\u1583\u1585\x05\u0278\u013D\x02\u1584\u157B\x03\x02\x02\x02" + - "\u1584\u157C\x03\x02\x02\x02\u1584\u157D\x03\x02\x02\x02\u1584\u157E\x03" + - "\x02\x02\x02\u1584\u157F\x03\x02\x02\x02\u1584\u1580\x03\x02\x02\x02\u1584" + - "\u1581\x03\x02\x02\x02\u1584\u1582\x03\x02\x02\x02\u1584\u1583\x03\x02" + - "\x02\x02\u1585\u0211\x03\x02\x02\x02\u1586\u158A\x07\u0414\x02\x02\u1587" + - "\u1588\x07\u03FD\x02\x02\u1588\u158A\x05\u020E\u0108\x02\u1589\u1586\x03" + - "\x02\x02\x02\u1589\u1587\x03\x02\x02\x02\u158A\u0213\x03\x02\x02\x02\u158B" + - "\u158C\tZ\x02\x02\u158C\u0215\x03\x02\x02\x02\u158D\u1590\x07\u040B\x02" + - "\x02\u158E\u1590\x05\u0214\u010B\x02\u158F\u158D\x03\x02\x02\x02\u158F" + - "\u158E\x03\x02\x02\x02\u1590\u0217\x03\x02\x02\x02\u1591\u1593\x07\u0413" + - "\x02\x02\u1592\u1591\x03\x02\x02\x02\u1592\u1593\x03\x02\x02\x02\u1593" + - "\u1594\x03\x02\x02\x02\u1594\u1597\x07\u040D\x02\x02\u1595\u1597\x07\u040C" + - "\x02\x02\u1596\u1592\x03\x02\x02\x02\u1596\u1595\x03\x02\x02\x02\u1597" + - "\u1599\x03\x02\x02\x02\u1598\u159A\x07\u040D\x02\x02\u1599\u1598\x03\x02" + - "\x02\x02\u159A\u159B\x03\x02\x02\x02\u159B\u1599\x03\x02\x02\x02\u159B" + - "\u159C\x03\x02\x02\x02\u159C\u15A9\x03\x02\x02\x02\u159D\u159F\x07\u0413" + - "\x02\x02\u159E\u159D\x03\x02\x02\x02\u159E\u159F\x03\x02\x02\x02\u159F" + - "\u15A0\x03\x02\x02\x02\u15A0\u15A3\x07\u040D\x02\x02\u15A1\u15A3\x07\u040C" + - "\x02\x02\u15A2\u159E\x03\x02\x02\x02\u15A2\u15A1\x03\x02\x02\x02\u15A3" + - "\u15A6\x03\x02\x02\x02\u15A4\u15A5\x07\x1A\x02\x02\u15A5\u15A7\x05\u0202" + - "\u0102\x02\u15A6\u15A4\x03\x02\x02\x02\u15A6\u15A7\x03\x02\x02\x02\u15A7" + - "\u15A9\x03\x02\x02\x02\u15A8\u1596\x03\x02\x02\x02\u15A8\u15A2\x03\x02" + - "\x02\x02\u15A9\u0219\x03\x02\x02\x02\u15AA\u15AB\t[\x02\x02\u15AB\u021B" + - "\x03\x02\x02\x02\u15AC\u15AE\x07\u0413\x02\x02\u15AD\u15AC\x03\x02\x02" + - "\x02\u15AD\u15AE\x03\x02\x02\x02\u15AE\u15AF\x03\x02\x02\x02\u15AF\u15B0" + - "\x07\u040F\x02\x02\u15B0\u021D\x03\x02\x02\x02\u15B1\u15B3\x07h\x02\x02" + - "\u15B2\u15B1\x03\x02\x02\x02\u15B2\u15B3\x03\x02\x02\x02\u15B3\u15B4\x03" + - "\x02\x02\x02\u15B4\u15B5\t\\\x02\x02\u15B5\u021F\x03\x02\x02\x02\u15B6" + - "\u15C3\x05\u0218\u010D\x02\u15B7\u15C3\x05\u0214\u010B\x02\u15B8\u15B9" + - "\x07\u03F2\x02\x02\u15B9\u15C3\x05\u0214\u010B\x02\u15BA\u15C3\x05\u021C" + - "\u010F\x02\u15BB\u15C3\x05\u021A\u010E\x02\u15BC\u15C3\x07\u0410\x02\x02" + - "\u15BD\u15C3\x07\u0412\x02\x02\u15BE\u15C0\x07h\x02\x02\u15BF\u15BE\x03" + - "\x02\x02\x02\u15BF\u15C0\x03\x02\x02\x02\u15C0\u15C1\x03\x02\x02\x02\u15C1" + - "\u15C3\t\\\x02\x02\u15C2\u15B6\x03\x02\x02\x02\u15C2\u15B7\x03\x02\x02" + - "\x02\u15C2\u15B8\x03\x02\x02\x02\u15C2\u15BA\x03\x02\x02\x02\u15C2\u15BB" + - "\x03\x02\x02\x02\u15C2\u15BC\x03\x02\x02\x02\u15C2\u15BD\x03\x02\x02\x02" + - "\u15C2\u15BF\x03\x02\x02\x02\u15C3\u0221\x03\x02\x02\x02\u15C4\u15C6\t" + - "]\x02\x02\u15C5\u15C7\x05\u0228\u0115\x02\u15C6\u15C5\x03\x02\x02\x02" + - "\u15C6\u15C7\x03\x02\x02\x02\u15C7\u15C9\x03\x02\x02\x02\u15C8\u15CA\x07" + - "\xD2\x02\x02\u15C9\u15C8\x03\x02\x02\x02\u15C9\u15CA\x03\x02\x02\x02\u15CA" + - "\u15D1\x03\x02\x02\x02\u15CB\u15CC\x07\x18\x02\x02\u15CC\u15CF\x07\x8C" + - "\x02\x02\u15CD\u15CF\x07\u02DD\x02\x02\u15CE\u15CB\x03\x02\x02\x02\u15CE" + - "\u15CD\x03\x02\x02\x02\u15CF\u15D0\x03\x02\x02\x02\u15D0\u15D2\x05\u0200" + - "\u0101\x02\u15D1\u15CE\x03\x02\x02\x02\u15D1\u15D2\x03\x02\x02\x02\u15D2" + - "\u15D5\x03\x02\x02\x02\u15D3\u15D4\x07\x1A\x02\x02\u15D4\u15D6\x05\u0202" + - "\u0102\x02\u15D5\u15D3\x03\x02\x02\x02\u15D5\u15D6\x03\x02\x02\x02\u15D6" + - "\u1644\x03\x02\x02\x02\u15D7\u15D8\x07\xD1\x02\x02\u15D8\u15DA\t^\x02" + - "\x02\u15D9\u15DB\x05\u0228\u0115\x02\u15DA\u15D9\x03\x02\x02\x02\u15DA" + - "\u15DB\x03\x02\x02\x02\u15DB\u15DD\x03\x02\x02\x02\u15DC\u15DE\x07\xD2" + - "\x02\x02\u15DD\u15DC\x03\x02\x02\x02\u15DD\u15DE\x03\x02\x02\x02\u15DE" + - "\u1644\x03\x02\x02\x02\u15DF\u15E0\x07\u01BF\x02\x02\u15E0\u15E2\x07\xCF" + - "\x02\x02\u15E1\u15E3\x05\u0228\u0115\x02\u15E2\u15E1\x03\x02\x02\x02\u15E2" + - "\u15E3\x03\x02\x02\x02\u15E3\u15E5\x03\x02\x02\x02\u15E4\u15E6\x07\xD2" + - "\x02\x02\u15E5\u15E4\x03\x02\x02\x02\u15E5\u15E6\x03\x02\x02\x02\u15E6" + - "\u1644\x03\x02\x02\x02\u15E7\u15E8\x07\xD1\x02\x02\u15E8\u15E9\t_\x02" + - "\x02\u15E9\u15EB\x07\xDE\x02\x02\u15EA\u15EC\x05\u0228\u0115\x02\u15EB" + - "\u15EA\x03\x02\x02\x02\u15EB\u15EC\x03\x02\x02\x02\u15EC\u15EE\x03\x02" + - "\x02\x02\u15ED\u15EF\x07\xD2\x02\x02\u15EE\u15ED\x03\x02\x02\x02\u15EE" + - "\u15EF\x03\x02\x02\x02\u15EF\u1644\x03\x02\x02\x02\u15F0\u15F2\t`\x02" + - "\x02\u15F1\u15F3\x05\u0228\u0115\x02\u15F2\u15F1\x03\x02\x02\x02\u15F2" + - "\u15F3\x03\x02\x02\x02\u15F3\u15F5\x03\x02\x02\x02\u15F4\u15F6\ta\x02" + - "\x02\u15F5\u15F4\x03\x02\x02\x02\u15F5\u15F6\x03\x02\x02\x02\u15F6\u15F8" + - "\x03\x02\x02\x02\u15F7\u15F9\x07\xB3\x02\x02\u15F8\u15F7\x03\x02\x02\x02" + - "\u15F8\u15F9\x03\x02\x02\x02\u15F9\u1644\x03\x02\x02\x02\u15FA\u15FC\x07" + - "\xC0\x02\x02\u15FB\u15FD\x05\u022A\u0116\x02\u15FC\u15FB\x03\x02\x02\x02" + - "\u15FC\u15FD\x03\x02\x02\x02\u15FD\u15FF\x03\x02\x02\x02\u15FE\u1600\t" + - "a\x02\x02\u15FF\u15FE\x03\x02\x02\x02\u15FF\u1600\x03\x02\x02\x02\u1600" + - "\u1602\x03\x02\x02\x02\u1601\u1603\x07\xB3\x02\x02\u1602\u1601\x03\x02" + - "\x02\x02\u1602\u1603\x03\x02\x02\x02\u1603\u1644\x03\x02\x02\x02\u1604" + - "\u1606\x07\xC1\x02\x02\u1605\u1607\x07\xC2\x02\x02\u1606\u1605\x03\x02" + - "\x02\x02\u1606\u1607\x03\x02\x02\x02\u1607\u1609\x03\x02\x02\x02\u1608" + - "\u160A\x05\u022A\u0116\x02\u1609\u1608\x03\x02\x02\x02\u1609\u160A\x03" + - "\x02\x02\x02\u160A\u160C\x03\x02\x02\x02\u160B\u160D\ta\x02\x02\u160C" + - "\u160B\x03\x02\x02\x02\u160C\u160D\x03\x02\x02\x02\u160D\u160F\x03\x02" + - "\x02\x02\u160E\u1610\x07\xB3\x02\x02\u160F\u160E\x03\x02\x02\x02\u160F" + - "\u1610\x03\x02\x02\x02\u1610\u1644\x03\x02\x02\x02\u1611\u1613\tb\x02" + - "\x02\u1612\u1614\x05\u022C\u0117\x02\u1613\u1612\x03\x02\x02\x02\u1613" + - "\u1614\x03\x02\x02\x02\u1614\u1616\x03\x02\x02\x02\u1615\u1617\ta\x02" + - "\x02\u1616\u1615\x03\x02\x02\x02\u1616\u1617\x03\x02\x02\x02\u1617\u1619" + - "\x03\x02\x02\x02\u1618\u161A\x07\xB3\x02\x02\u1619\u1618\x03\x02\x02\x02" + - "\u1619\u161A\x03\x02\x02\x02\u161A\u1644\x03\x02\x02\x02\u161B\u1644\t" + - "c\x02\x02\u161C\u161E\td"; - private static readonly _serializedATNSegment11: string = - "\x02\x02\u161D\u161F\x05\u0228\u0115\x02\u161E\u161D\x03\x02\x02\x02\u161E" + - "\u161F\x03\x02\x02\x02\u161F\u1644\x03\x02\x02\x02\u1620\u1621\te\x02" + - "\x02\u1621\u1623\x05\u0224\u0113\x02\u1622\u1624\x07\xD2\x02\x02\u1623" + - "\u1622\x03\x02\x02\x02\u1623\u1624\x03\x02\x02\x02\u1624\u162B\x03\x02" + - "\x02\x02\u1625\u1626\x07\x18\x02\x02\u1626\u1629\x07\x8C\x02\x02\u1627" + - "\u1629\x07\u02DD\x02\x02\u1628\u1625\x03\x02\x02\x02\u1628\u1627\x03\x02" + - "\x02\x02\u1629\u162A\x03\x02\x02\x02\u162A\u162C\x05\u0200\u0101\x02\u162B" + - "\u1628\x03\x02\x02\x02\u162B\u162C\x03\x02\x02\x02\u162C\u1644\x03\x02" + - "\x02\x02\u162D\u1644\tf\x02\x02\u162E\u1630\x07\xD7\x02\x02\u162F\u1631" + - "\x07\xCF\x02\x02\u1630\u162F\x03\x02\x02\x02\u1630\u1631\x03\x02\x02\x02" + - "\u1631\u1633\x03\x02\x02\x02\u1632\u1634\x07\xD2\x02\x02\u1633\u1632\x03" + - "\x02\x02\x02\u1633\u1634\x03\x02\x02\x02\u1634\u163B\x03\x02\x02\x02\u1635" + - "\u1636\x07\x18\x02\x02\u1636\u1639\x07\x8C\x02\x02\u1637\u1639\x07\u02DD" + - "\x02\x02\u1638\u1635\x03\x02\x02\x02\u1638\u1637\x03\x02\x02\x02\u1639" + - "\u163A\x03\x02\x02\x02\u163A\u163C\x05\u0200\u0101\x02\u163B\u1638\x03" + - "\x02\x02\x02\u163B\u163C\x03\x02\x02\x02\u163C\u163F\x03\x02\x02\x02\u163D" + - "\u163E\x07\x1A\x02\x02\u163E\u1640\x05\u0202\u0102\x02\u163F\u163D\x03" + - "\x02\x02\x02\u163F\u1640\x03\x02\x02\x02\u1640\u1644\x03\x02\x02\x02\u1641" + - "\u1642\x07\xD7\x02\x02\u1642\u1644\x07\xD3\x02\x02\u1643\u15C4\x03\x02" + - "\x02\x02\u1643\u15D7\x03\x02\x02\x02\u1643\u15DF\x03\x02\x02\x02\u1643" + - "\u15E7\x03\x02\x02\x02\u1643\u15F0\x03\x02\x02\x02\u1643\u15FA\x03\x02" + - "\x02\x02\u1643\u1604\x03\x02\x02\x02\u1643\u1611\x03\x02\x02\x02\u1643" + - "\u161B\x03\x02\x02\x02\u1643\u161C\x03\x02\x02\x02\u1643\u1620\x03\x02" + - "\x02\x02\u1643\u162D\x03\x02\x02\x02\u1643\u162E\x03\x02\x02\x02\u1643" + - "\u1641\x03\x02\x02\x02\u1644\u0223\x03\x02\x02\x02\u1645\u1646\x07\u03FE" + - "\x02\x02\u1646\u164B\x07\u040D\x02\x02\u1647\u1648\x07\u0400\x02\x02\u1648" + - "\u164A\x07\u040D\x02\x02\u1649\u1647\x03\x02\x02\x02\u164A\u164D\x03\x02" + - "\x02\x02\u164B\u1649\x03\x02\x02\x02\u164B\u164C\x03\x02\x02\x02\u164C" + - "\u164E\x03\x02\x02\x02\u164D\u164B\x03\x02\x02\x02\u164E\u164F\x07\u03FF" + - "\x02\x02\u164F\u0225\x03\x02\x02\x02\u1650\u1652\tg\x02\x02\u1651\u1653" + - "\x05\u0228\u0115\x02\u1652\u1651\x03\x02\x02\x02\u1652\u1653\x03\x02\x02" + - "\x02\u1653\u166A\x03\x02\x02\x02\u1654\u1656\x07\xCE\x02\x02\u1655\u1657" + - "\x05\u0228\u0115\x02\u1656\u1655\x03\x02\x02\x02\u1656\u1657\x03\x02\x02" + - "\x02\u1657\u165E\x03\x02\x02\x02\u1658\u1659\x07\x18\x02\x02\u1659\u165C" + - "\x07\x8C\x02\x02\u165A\u165C\x07\u02DD\x02\x02\u165B\u1658\x03\x02\x02" + - "\x02\u165B\u165A\x03\x02\x02\x02\u165C\u165D\x03\x02\x02\x02\u165D\u165F" + - "\x05\u0200\u0101\x02\u165E\u165B\x03\x02\x02\x02\u165E\u165F\x03\x02\x02" + - "\x02\u165F\u166A\x03\x02\x02\x02\u1660\u166A\th\x02\x02\u1661\u1663\x07" + - "\xC6\x02\x02\u1662\u1664\x05\u022A\u0116\x02\u1663\u1662\x03\x02\x02\x02" + - "\u1663\u1664\x03\x02\x02\x02\u1664\u166A\x03\x02\x02\x02\u1665\u1667\t" + - "a\x02\x02\u1666\u1668\x07\xBE\x02\x02\u1667\u1666\x03\x02\x02\x02\u1667" + - "\u1668\x03\x02\x02\x02\u1668\u166A\x03\x02\x02\x02\u1669\u1650\x03\x02" + - "\x02\x02\u1669\u1654\x03\x02\x02\x02\u1669\u1660\x03\x02\x02\x02\u1669" + - "\u1661\x03\x02\x02\x02\u1669\u1665\x03\x02\x02\x02\u166A\u0227\x03\x02" + - "\x02\x02\u166B\u166C\x07\u03FE\x02\x02\u166C\u166D\x05\u0214\u010B\x02" + - "\u166D\u166E\x07\u03FF\x02\x02\u166E\u0229\x03\x02\x02\x02\u166F\u1670" + - "\x07\u03FE\x02\x02\u1670\u1671\x05\u0214\u010B\x02\u1671\u1672\x07\u0400" + - "\x02\x02\u1672\u1673\x05\u0214\u010B\x02\u1673\u1674\x07\u03FF\x02\x02" + - "\u1674\u022B\x03\x02\x02\x02\u1675\u1676\x07\u03FE\x02\x02\u1676\u1679" + - "\x05\u0214\u010B\x02\u1677\u1678\x07\u0400\x02\x02\u1678\u167A\x05\u0214" + - "\u010B\x02\u1679\u1677\x03\x02\x02\x02\u1679\u167A\x03\x02\x02\x02\u167A" + - "\u167B\x03\x02\x02\x02\u167B\u167C\x07\u03FF\x02\x02\u167C\u022D\x03\x02" + - "\x02\x02\u167D\u1682\x05\u020E\u0108\x02\u167E\u167F\x07\u0400\x02\x02" + - "\u167F\u1681\x05\u020E\u0108\x02\u1680\u167E\x03\x02\x02\x02\u1681\u1684" + - "\x03\x02\x02\x02\u1682\u1680\x03\x02\x02\x02\u1682\u1683\x03\x02\x02\x02" + - "\u1683\u022F\x03\x02\x02\x02\u1684\u1682\x03\x02\x02\x02\u1685\u168A\x05" + - "\u01F6\xFC\x02\u1686\u1687\x07\u0400\x02\x02\u1687\u1689\x05\u01F6\xFC" + - "\x02\u1688\u1686\x03\x02\x02\x02\u1689\u168C\x03\x02\x02\x02\u168A\u1688" + - "\x03\x02\x02\x02\u168A\u168B\x03\x02\x02\x02\u168B\u0231\x03\x02\x02\x02" + - "\u168C\u168A\x03\x02\x02\x02\u168D\u168E\x07\u03FE\x02\x02\u168E\u1693" + - "\x05\u01FA\xFE\x02\u168F\u1690\x07\u0400\x02\x02\u1690\u1692\x05\u01FA" + - "\xFE\x02\u1691\u168F\x03\x02\x02\x02\u1692\u1695\x03\x02\x02\x02\u1693" + - "\u1691\x03\x02\x02\x02\u1693\u1694\x03\x02\x02\x02\u1694\u1696\x03\x02" + - "\x02\x02\u1695\u1693\x03\x02\x02\x02\u1696\u1697\x07\u03FF\x02\x02\u1697" + - "\u0233\x03\x02\x02\x02\u1698\u169D\x05\u025C\u012F\x02\u1699\u169A\x07" + - "\u0400\x02\x02\u169A\u169C\x05\u025C\u012F\x02\u169B\u1699\x03\x02\x02" + - "\x02\u169C\u169F\x03\x02\x02\x02\u169D\u169B\x03\x02\x02\x02\u169D\u169E" + - "\x03\x02\x02\x02\u169E\u0235\x03\x02\x02\x02\u169F\u169D\x03\x02\x02\x02" + - "\u16A0\u16A5\x05\u0242\u0122\x02\u16A1\u16A2\x07\u0400\x02\x02\u16A2\u16A4" + - "\x05\u0242\u0122\x02\u16A3\u16A1\x03\x02\x02\x02\u16A4\u16A7\x03\x02\x02" + - "\x02\u16A5\u16A3\x03\x02\x02\x02\u16A5\u16A6\x03\x02\x02\x02\u16A6\u0237" + - "\x03\x02\x02\x02\u16A7\u16A5\x03\x02\x02\x02\u16A8\u16AD\x05\u0220\u0111" + - "\x02\u16A9\u16AA\x07\u0400\x02\x02\u16AA\u16AC\x05\u0220\u0111\x02\u16AB" + - "\u16A9\x03\x02\x02\x02\u16AC\u16AF\x03\x02\x02\x02\u16AD\u16AB\x03\x02" + - "\x02\x02\u16AD\u16AE\x03\x02\x02\x02\u16AE\u0239\x03\x02\x02\x02\u16AF" + - "\u16AD\x03\x02\x02\x02\u16B0\u16B5\x07\u040D\x02\x02\u16B1\u16B2\x07\u0400" + - "\x02\x02\u16B2\u16B4\x07\u040D\x02\x02\u16B3\u16B1\x03\x02\x02\x02\u16B4" + - "\u16B7\x03\x02\x02\x02\u16B5\u16B3\x03\x02\x02\x02\u16B5\u16B6\x03\x02" + - "\x02\x02\u16B6\u023B\x03\x02\x02\x02\u16B7\u16B5\x03\x02\x02\x02\u16B8" + - "\u16BD\x07\u0418\x02\x02\u16B9\u16BA\x07\u0400\x02\x02\u16BA\u16BC\x07" + - "\u0418\x02\x02\u16BB\u16B9\x03\x02\x02\x02\u16BC\u16BF\x03\x02\x02\x02" + - "\u16BD\u16BB\x03\x02\x02\x02\u16BD\u16BE\x03\x02\x02\x02\u16BE\u023D\x03" + - "\x02\x02\x02\u16BF\u16BD\x03\x02\x02\x02\u16C0\u16CC\x07j\x02\x02\u16C1" + - "\u16C3\x05\u0262\u0132\x02\u16C2\u16C1\x03\x02\x02\x02\u16C2\u16C3\x03" + - "\x02\x02\x02\u16C3\u16C4\x03\x02\x02\x02\u16C4\u16CC\x05\u0220\u0111\x02" + - "\u16C5\u16C9\x05\u0240\u0121\x02\u16C6\u16C7\x07l\x02\x02\u16C7\u16C8" + - "\x07\xA8\x02\x02\u16C8\u16CA\x05\u0240\u0121\x02\u16C9\u16C6\x03\x02\x02" + - "\x02\u16C9\u16CA\x03\x02\x02\x02\u16CA\u16CC\x03\x02\x02\x02\u16CB\u16C0" + - "\x03\x02\x02\x02\u16CB\u16C2\x03\x02\x02\x02\u16CB\u16C5\x03\x02\x02\x02" + - "\u16CC\u023F\x03\x02\x02\x02\u16CD\u16D3\ti\x02\x02\u16CE\u16D0\x07\u03FE" + - "\x02\x02\u16CF\u16D1\x05\u0214\u010B\x02\u16D0\u16CF\x03\x02\x02\x02\u16D0" + - "\u16D1\x03\x02\x02\x02\u16D1\u16D2\x03\x02\x02\x02\u16D2\u16D4\x07\u03FF" + - "\x02\x02\u16D3\u16CE\x03\x02\x02\x02\u16D3\u16D4\x03\x02\x02\x02\u16D4" + - "\u16DC\x03\x02\x02\x02\u16D5\u16D6\x07\u0107\x02\x02\u16D6\u16D8\x07\u03FE" + - "\x02\x02\u16D7\u16D9\x05\u0214\u010B\x02\u16D8\u16D7\x03\x02\x02\x02\u16D8" + - "\u16D9\x03\x02\x02\x02\u16D9\u16DA\x03\x02\x02\x02\u16DA\u16DC\x07\u03FF" + - "\x02\x02\u16DB\u16CD\x03\x02\x02\x02\u16DB\u16D5\x03\x02\x02\x02\u16DC" + - "\u0241\x03\x02\x02\x02\u16DD\u16E0\x05\u025C\u012F\x02\u16DE\u16E0\x07" + - "(\x02\x02\u16DF\u16DD\x03\x02\x02\x02\u16DF\u16DE\x03\x02\x02\x02\u16E0" + - "\u0243\x03\x02\x02\x02\u16E1\u16E2\x07G\x02\x02\u16E2\u16E3\x077\x02\x02" + - "\u16E3\u0245\x03\x02\x02\x02\u16E4\u16E5\x07G\x02\x02\u16E5\u16E6\x07" + - "h\x02\x02\u16E6\u16E7\x077\x02\x02\u16E7\u0247\x03\x02\x02\x02\u16E8\u16FA" + - "\x05\u024A\u0126\x02\u16E9\u16FA\x05\u0252\u012A\x02\u16EA\u16EB\x05\u0254" + - "\u012B\x02\u16EB\u16ED\x07\u03FE\x02\x02\u16EC\u16EE\x05\u0258\u012D\x02" + - "\u16ED\u16EC\x03\x02\x02\x02\u16ED\u16EE\x03\x02\x02\x02\u16EE\u16EF\x03" + - "\x02\x02\x02\u16EF\u16F0\x07\u03FF\x02\x02\u16F0\u16FA\x03\x02\x02\x02" + - "\u16F1\u16F2\x05\u01F4\xFB\x02\u16F2\u16F4\x07\u03FE\x02\x02\u16F3\u16F5" + - "\x05\u0258\u012D\x02\u16F4\u16F3\x03\x02\x02\x02\u16F4\u16F5\x03\x02\x02" + - "\x02\u16F5\u16F6\x03\x02\x02\x02\u16F6\u16F7\x07\u03FF\x02\x02\u16F7\u16FA" + - "\x03\x02\x02\x02\u16F8\u16FA\x05\u0256\u012C\x02\u16F9\u16E8\x03\x02\x02" + - "\x02\u16F9\u16E9\x03\x02\x02\x02\u16F9\u16EA\x03\x02\x02\x02\u16F9\u16F1" + - "\x03\x02\x02\x02\u16F9\u16F8\x03\x02\x02\x02\u16FA\u0249\x03\x02\x02\x02" + - "\u16FB\u1799\tj\x02\x02\u16FC\u16FD\x07\x1F\x02\x02\u16FD\u16FE\x07\u03FE" + - "\x02\x02\u16FE\u16FF\x05\u025C\u012F\x02\u16FF\u1700\x07\u0400\x02\x02" + - "\u1700\u1701\x05\u0226\u0114\x02\u1701\u1702\x07\u03FF\x02\x02\u1702\u1799" + - "\x03\x02\x02\x02\u1703\u1704\x07\x1F\x02\x02\u1704\u1705\x07\u03FE\x02" + - "\x02\u1705\u1706\x05\u025C\u012F\x02\u1706\u1707\x07\xAB\x02\x02\u1707" + - "\u1708\x05\u0200\u0101\x02\u1708\u1709\x07\u03FF\x02\x02\u1709\u1799\x03" + - "\x02\x02\x02\u170A\u170B\x07\x16\x02\x02\u170B\u170C\x07\u03FE\x02\x02" + - "\u170C\u170D\x05\u025C\u012F\x02\u170D\u170E\x07\r\x02\x02\u170E\u170F" + - "\x05\u0226\u0114\x02\u170F\u1710\x07\u03FF\x02\x02\u1710\u1799\x03\x02" + - "\x02\x02\u1711\u1712\x07\xAC\x02\x02\u1712\u1713\x07\u03FE\x02\x02\u1713" + - "\u1714\x05\u01F8\xFD\x02\u1714\u1715\x07\u03FF\x02\x02\u1715\u1799\x03" + - "\x02\x02\x02\u1716\u1717\x07\x15\x02\x02\u1717\u1719\x05\u025C\u012F\x02" + - "\u1718\u171A\x05\u024C\u0127\x02\u1719\u1718\x03\x02\x02\x02\u171A\u171B" + - "\x03\x02\x02\x02\u171B\u1719\x03\x02\x02\x02\u171B\u171C\x03\x02\x02\x02" + - "\u171C\u171F\x03\x02\x02\x02\u171D\u171E\x073\x02\x02\u171E\u1720\x05" + - "\u025A\u012E\x02\u171F\u171D\x03\x02\x02\x02\u171F\u1720\x03\x02\x02\x02" + - "\u1720\u1721\x03\x02\x02\x02\u1721\u1722\x07\u0156\x02\x02\u1722\u1799" + - "\x03\x02\x02\x02\u1723\u1725\x07\x15\x02\x02\u1724\u1726\x05\u024C\u0127" + - "\x02\u1725\u1724\x03\x02\x02\x02\u1726\u1727\x03\x02\x02\x02\u1727\u1725" + - "\x03\x02\x02\x02\u1727\u1728\x03\x02\x02\x02\u1728\u172B\x03\x02\x02\x02" + - "\u1729\u172A\x073\x02\x02\u172A\u172C\x05\u025A\u012E\x02\u172B\u1729" + - "\x03\x02\x02\x02\u172B\u172C\x03\x02\x02\x02\u172C\u172D\x03\x02\x02\x02" + - "\u172D\u172E\x07\u0156\x02\x02\u172E\u1799\x03\x02\x02\x02\u172F\u1730" + - "\x07\xCE\x02\x02\u1730\u1731\x07\u03FE\x02\x02\u1731\u1734\x05\u0258\u012D" + - "\x02\u1732\u1733\x07\xAB\x02\x02\u1733\u1735\x05\u0200\u0101\x02\u1734" + - "\u1732\x03\x02\x02\x02\u1734\u1735\x03\x02\x02\x02\u1735\u1736\x03\x02" + - "\x02\x02\u1736\u1737\x07\u03FF\x02\x02\u1737\u1799\x03\x02\x02\x02\u1738" + - "\u1739\x07\u0108\x02\x02\u1739\u173C\x07\u03FE\x02\x02\u173A\u173D\x05" + - "\u0218\u010D\x02\u173B\u173D\x05\u025C\u012F\x02\u173C\u173A\x03\x02\x02" + - "\x02\u173C\u173B\x03\x02\x02\x02\u173D\u173E\x03\x02\x02\x02\u173E\u1741" + - "\x07I\x02\x02\u173F\u1742\x05\u0218\u010D\x02\u1740\u1742\x05\u025C\u012F" + - "\x02\u1741\u173F\x03\x02\x02\x02\u1741\u1740\x03\x02\x02\x02\u1742\u1743" + - "\x03\x02\x02\x02\u1743\u1744\x07\u03FF\x02\x02\u1744\u1799\x03\x02\x02" + - "\x02\u1745\u1746\tk\x02\x02\u1746\u1749\x07\u03FE\x02\x02\u1747\u174A" + - "\x05\u0218\u010D\x02\u1748\u174A\x05\u025C\u012F\x02\u1749\u1747\x03\x02" + - "\x02\x02\u1749\u1748\x03\x02\x02\x02\u174A\u174B\x03\x02\x02\x02\u174B" + - "\u174E\x07?\x02\x02\u174C\u174F\x05\u0214\u010B\x02\u174D\u174F\x05\u025C" + - "\u012F\x02\u174E\u174C\x03\x02\x02\x02\u174E\u174D\x03\x02\x02\x02\u174F" + - "\u1755\x03\x02\x02\x02\u1750\u1753\x07<\x02\x02\u1751\u1754\x05\u0214" + - "\u010B\x02\u1752\u1754\x05\u025C\u012F\x02\u1753\u1751\x03\x02\x02\x02" + - "\u1753\u1752\x03\x02\x02\x02\u1754\u1756\x03\x02\x02\x02\u1755\u1750\x03" + - "\x02\x02\x02\u1755\u1756\x03\x02\x02\x02\u1756\u1757\x03\x02\x02\x02\u1757" + - "\u1758\x07\u03FF\x02\x02\u1758\u1799\x03\x02\x02\x02\u1759\u175A\x07\u010C" + - "\x02\x02\u175A\u175B\x07\u03FE\x02\x02\u175B\u175E\tl\x02\x02\u175C\u175F" + - "\x05\u0218\u010D\x02\u175D\u175F\x05\u025C\u012F\x02\u175E\u175C\x03\x02" + - "\x02\x02\u175E\u175D\x03\x02\x02\x02\u175E\u175F\x03\x02\x02\x02\u175F" + - "\u1760\x03\x02\x02\x02\u1760\u1763\x07?\x02\x02\u1761\u1764\x05\u0218" + - "\u010D\x02\u1762\u1764\x05\u025C\u012F\x02\u1763\u1761\x03\x02\x02\x02" + - "\u1763\u1762\x03\x02\x02\x02\u1764\u1765\x03\x02\x02\x02\u1765\u1766\x07" + - "\u03FF\x02\x02\u1766\u1799\x03\x02\x02\x02\u1767\u1768\x07\u010C\x02\x02" + - "\u1768\u176B\x07\u03FE\x02\x02\u1769\u176C\x05\u0218\u010D\x02\u176A\u176C" + - "\x05\u025C\u012F\x02\u176B\u1769\x03\x02\x02\x02\u176B\u176A\x03\x02\x02" + - "\x02\u176C\u176D\x03\x02\x02\x02\u176D\u1770\x07?\x02\x02\u176E\u1771" + - "\x05\u0218\u010D\x02\u176F\u1771\x05\u025C\u012F\x02\u1770\u176E\x03\x02" + - "\x02\x02\u1770\u176F\x03\x02\x02\x02\u1771\u1772\x03\x02\x02\x02\u1772" + - "\u1773\x07\u03FF\x02\x02\u1773\u1799\x03\x02\x02\x02\u1774\u1775\x07\u03DF" + - "\x02\x02\u1775\u1778\x07\u03FE\x02\x02\u1776\u1779\x05\u0218\u010D\x02" + - "\u1777\u1779\x05\u025C\u012F\x02\u1778\u1776\x03\x02\x02\x02\u1778\u1777" + - "\x03\x02\x02\x02\u1779\u1780\x03\x02\x02\x02\u177A\u177B\x07\r\x02\x02" + - "\u177B\u177C\tm\x02\x02\u177C\u177D\x07\u03FE\x02\x02\u177D\u177E\x05" + - "\u0214\u010B\x02\u177E\u177F\x07\u03FF\x02\x02\u177F\u1781\x03\x02\x02" + - "\x02\u1780\u177A\x03\x02\x02\x02\u1780\u1781\x03\x02\x02\x02\u1781\u1783" + - "\x03\x02\x02\x02\u1782\u1784\x05\u024E\u0128\x02\u1783\u1782\x03\x02\x02" + - "\x02\u1783\u1784\x03\x02\x02\x02\u1784\u1785\x03\x02\x02\x02\u1785\u1786" + - "\x07\u03FF\x02\x02\u1786\u1799\x03\x02\x02\x02\u1787\u1788\x07\u0105\x02" + - "\x02\u1788\u1789\x07\u03FE\x02\x02\u1789\u178A\x05> \x02\u178A\u178D\x07" + - "?\x02\x02\u178B\u178E\x05\u0218\u010D\x02\u178C\u178E\x05\u025C\u012F" + - "\x02\u178D\u178B\x03\x02\x02\x02\u178D\u178C\x03\x02\x02\x02\u178E\u178F" + - "\x03\x02\x02\x02\u178F\u1790\x07\u03FF\x02\x02\u1790\u1799\x03\x02\x02" + - "\x02\u1791\u1792\x07\u0317\x02\x02\u1792\u1793\x07\u03FE\x02\x02\u1793" + - "\u1794\tn\x02\x02\u1794\u1795\x07\u0400\x02\x02\u1795\u1796\x05\u0218" + - "\u010D\x02\u1796\u1797\x07\u03FF\x02\x02\u1797\u1799\x03\x02\x02\x02\u1798" + - "\u16FB\x03\x02\x02\x02\u1798\u16FC\x03\x02\x02\x02\u1798\u1703\x03\x02" + - "\x02\x02\u1798\u170A\x03\x02\x02\x02\u1798\u1711\x03\x02\x02\x02\u1798" + - "\u1716\x03\x02\x02\x02\u1798\u1723\x03\x02\x02\x02\u1798\u172F\x03\x02" + - "\x02\x02\u1798\u1738\x03\x02\x02\x02\u1798\u1745\x03\x02\x02\x02\u1798" + - "\u1759\x03\x02\x02\x02\u1798\u1767\x03\x02\x02\x02\u1798\u1774\x03\x02" + - "\x02\x02\u1798\u1787\x03\x02\x02\x02\u1798\u1791\x03\x02\x02\x02\u1799" + - "\u024B\x03\x02\x02\x02\u179A\u179B\x07\xAD\x02\x02\u179B\u179C\x05\u025A" + - "\u012E\x02\u179C\u179D\x07\x9E\x02\x02\u179D\u179E\x05\u025A\u012E\x02" + - "\u179E\u024D\x03\x02\x02\x02\u179F\u17A0\x07\u0192\x02\x02\u17A0\u17A5" + - "\x05\u0250\u0129\x02\u17A1\u17A2\x07\u0400\x02\x02\u17A2\u17A4\x05\u0250" + - "\u0129\x02\u17A3\u17A1\x03\x02\x02\x02\u17A4\u17A7\x03\x02\x02\x02\u17A5" + - "\u17A3\x03\x02\x02\x02\u17A5\u17A6\x03\x02\x02\x02\u17A6\u17AE\x03\x02" + - "\x02\x02\u17A7\u17A5\x03\x02\x02\x02\u17A8\u17A9\x07\u0192\x02\x02\u17A9" + - "\u17AA\x05\u0214\u010B\x02\u17AA\u17AB\x07\u03F2\x02\x02\u17AB\u17AC\x05" + - "\u0214\u010B\x02\u17AC\u17AE\x03\x02\x02\x02\u17AD\u179F\x03\x02\x02\x02" + - "\u17AD\u17A8\x03\x02\x02\x02\u17AE\u024F\x03\x02\x02\x02\u17AF\u17B1\x05" + - "\u0214\u010B\x02\u17B0\u17B2\to\x02\x02\u17B1\u17B0\x03\x02\x02\x02\u17B1" + - "\u17B2\x03\x02\x02\x02\u17B2\u0251\x03\x02\x02\x02\u17B3\u17B4\tp\x02" + - "\x02\u17B4\u17B6\x07\u03FE\x02\x02\u17B5\u17B7\t(\x02\x02\u17B6\u17B5" + - "\x03\x02\x02\x02\u17B6\u17B7\x03\x02\x02\x02\u17B7\u17B8\x03\x02\x02\x02" + - "\u17B8\u17B9\x05\u025A\u012E\x02\u17B9\u17BA\x07\u03FF\x02\x02\u17BA\u17EC" + - "\x03\x02\x02\x02\u17BB\u17BC\x07\xF1\x02\x02\u17BC\u17C2\x07\u03FE\x02" + - "\x02\u17BD\u17C3\x07\u03ED\x02\x02\u17BE\u17C0\x07\b\x02\x02\u17BF\u17BE" + - "\x03\x02\x02\x02\u17BF\u17C0\x03\x02\x02\x02\u17C0\u17C1\x03\x02\x02\x02" + - "\u17C1\u17C3\x05\u025A\u012E\x02\u17C2\u17BD\x03\x02\x02\x02\u17C2\u17BF" + - "\x03\x02\x02\x02\u17C3\u17C4\x03\x02\x02\x02\u17C4\u17EC\x07\u03FF\x02" + - "\x02\u17C5\u17C6\x07\xF1\x02\x02\u17C6\u17C7\x07\u03FE\x02\x02\u17C7\u17C8" + - "\x07/\x02\x02\u17C8\u17C9\x05\u0258\u012D\x02\u17C9\u17CA\x07\u03FF\x02" + - "\x02\u17CA\u17EC\x03\x02\x02\x02\u17CB\u17CC\tq\x02\x02\u17CC\u17CE\x07" + - "\u03FE\x02\x02\u17CD\u17CF\x07\b\x02\x02\u17CE\u17CD\x03\x02\x02\x02\u17CE" + - "\u17CF\x03\x02\x02\x02\u17CF\u17D0\x03\x02\x02\x02\u17D0\u17D1\x05\u025A" + - "\u012E\x02\u17D1\u17D2\x07\u03FF\x02\x02\u17D2\u17EC\x03\x02\x02\x02\u17D3" + - "\u17D4\x07\xF2\x02\x02\u17D4\u17D6\x07\u03FE\x02\x02\u17D5\u17D7\x07/" + - "\x02\x02\u17D6\u17D5\x03\x02\x02\x02\u17D6\u17D7\x03\x02\x02\x02\u17D7" + - "\u17D8\x03\x02\x02\x02\u17D8\u17E3\x05\u0258\u012D\x02\u17D9\u17DA\x07" + - "q\x02\x02\u17DA\u17DB\x07\x12\x02\x02\u17DB\u17E0\x05\xD4k\x02\u17DC\u17DD" + - "\x07\u0400\x02\x02\u17DD\u17DF\x05\xD4k\x02\u17DE\u17DC\x03\x02\x02\x02" + - "\u17DF\u17E2\x03\x02\x02\x02\u17E0\u17DE\x03\x02\x02\x02\u17E0\u17E1\x03" + - "\x02\x02\x02\u17E1\u17E4\x03\x02\x02\x02\u17E2\u17E0\x03\x02\x02\x02\u17E3" + - "\u17D9\x03\x02\x02\x02\u17E3\u17E4\x03\x02\x02\x02\u17E4\u17E7\x03\x02" + - "\x02\x02\u17E5\u17E6\x07\x8D\x02\x02\u17E6\u17E8\x07\u040D\x02\x02\u17E7" + - "\u17E5\x03\x02\x02\x02\u17E7\u17E8\x03\x02\x02\x02\u17E8\u17E9\x03\x02" + - "\x02\x02\u17E9\u17EA\x07\u03FF\x02\x02\u17EA\u17EC\x03\x02\x02\x02\u17EB" + - "\u17B3\x03\x02\x02\x02\u17EB\u17BB\x03\x02\x02\x02\u17EB\u17C5\x03\x02" + - "\x02\x02\u17EB\u17CB\x03\x02\x02\x02\u17EB\u17D3\x03\x02\x02\x02\u17EC" + - "\u0253\x03\x02\x02\x02\u17ED\u1805\x05\u0278\u013D\x02\u17EE\u1805\x07" + - "\u0280\x02\x02\u17EF\u1805\x07\u0101\x02\x02\u17F0\u1805\x07\xFD\x02\x02" + - "\u17F1\u1805\x07\xFE\x02\x02\u17F2\u1805\x07\xFF\x02\x02\u17F3\u1805\x07" + - "\u0102\x02\x02\u17F4\u1805\x07\u0103\x02\x02\u17F5\u1805\x07\u0104\x02" + - "\x02\u17F6\u1805\x07G\x02\x02\u17F7\u1805\x07N\x02\x02\u17F8\u1805\x07" + - "\u0100\x02\x02\u17F9\u1805\x07\u0106\x02\x02\u17FA\u1805\x07\u01B5\x02" + - "\x02\u17FB\u1805\x07\u0107\x02\x02\u17FC\u1805\x07\x81\x02\x02\u17FD\u1805" + - "\x07\u0109\x02\x02\u17FE\u1805\x07\u010A\x02\x02\u17FF\u1805\x07\u010B" + - "\x02\x02\u1800\u1805\x07\u010C\x02\x02\u1801\u1805\x07\u010D\x02\x02\u1802" + - "\u1805\x07\u010E\x02\x02\u1803\u1805\x07\u010F\x02\x02\u1804\u17ED\x03" + - "\x02\x02\x02\u1804\u17EE\x03\x02\x02\x02\u1804\u17EF\x03\x02\x02\x02\u1804" + - "\u17F0\x03\x02\x02\x02\u1804\u17F1\x03\x02\x02\x02\u1804\u17F2\x03\x02" + - "\x02\x02\u1804\u17F3\x03\x02\x02\x02\u1804\u17F4\x03\x02\x02\x02\u1804" + - "\u17F5\x03\x02\x02\x02\u1804\u17F6\x03\x02\x02\x02\u1804\u17F7\x03\x02" + - "\x02\x02\u1804\u17F8\x03\x02\x02\x02\u1804\u17F9\x03\x02\x02\x02\u1804" + - "\u17FA\x03\x02\x02\x02\u1804\u17FB\x03\x02\x02\x02\u1804\u17FC\x03\x02" + - "\x02\x02\u1804\u17FD\x03\x02\x02\x02\u1804\u17FE\x03\x02\x02\x02\u1804" + - "\u17FF\x03\x02\x02\x02\u1804\u1800\x03\x02\x02\x02\u1804\u1801\x03\x02" + - "\x02\x02\u1804\u1802\x03\x02\x02\x02\u1804\u1803\x03\x02\x02\x02\u1805" + - "\u0255\x03\x02\x02\x02\u1806\u1807\tr\x02\x02\u1807\u1808\x07\u03FE\x02" + - "\x02\u1808\u1809\x05\u025A\u012E\x02\u1809\u180A\x07\u03FF\x02\x02\u180A" + - "\u0257\x03\x02\x02\x02\u180B\u1810\x05\u0220\u0111\x02\u180C\u1810\x05" + - "\u01F8\xFD\x02\u180D\u1810\x05\u0248\u0125\x02\u180E\u1810\x05\u025C\u012F" + - "\x02\u180F\u180B\x03\x02\x02\x02\u180F\u180C\x03\x02\x02\x02\u180F\u180D" + - "\x03\x02\x02\x02\u180F\u180E\x03\x02\x02\x02\u1810\u181A\x03\x02\x02\x02" + - "\u1811\u1816\x07\u0400\x02\x02\u1812\u1817\x05\u0220\u0111\x02\u1813\u1817" + - "\x05\u01F8\xFD\x02\u1814\u1817\x05\u0248\u0125\x02\u1815\u1817\x05\u025C" + - "\u012F\x02\u1816\u1812\x03\x02\x02\x02\u1816\u1813\x03\x02\x02\x02\u1816" + - "\u1814\x03\x02\x02\x02\u1816\u1815\x03\x02\x02\x02\u1817\u1819\x03\x02" + - "\x02\x02\u1818\u1811\x03\x02\x02\x02\u1819\u181C\x03\x02\x02\x02\u181A" + - "\u1818\x03\x02\x02\x02\u181A\u181B\x03\x02\x02\x02\u181B\u0259\x03\x02" + - "\x02\x02\u181C\u181A\x03\x02\x02\x02\u181D\u1822\x05\u0220\u0111\x02\u181E" + - "\u1822\x05\u01F8\xFD\x02\u181F\u1822\x05\u0248\u0125\x02\u1820\u1822\x05" + - "\u025C\u012F\x02\u1821\u181D\x03\x02\x02\x02\u1821\u181E\x03\x02\x02\x02" + - "\u1821\u181F\x03\x02\x02\x02\u1821\u1820\x03\x02\x02\x02\u1822\u025B\x03" + - "\x02\x02\x02\u1823\u1824\b\u012F\x01\x02\u1824\u1825\ts\x02\x02\u1825" + - "\u182F\x05\u025C\u012F\x06\u1826\u1827\x05\u025E\u0130\x02\u1827\u1829" + - "\x07Q\x02\x02\u1828\u182A\x07h\x02\x02\u1829\u1828\x03\x02\x02\x02\u1829" + - "\u182A\x03\x02\x02\x02\u182A\u182B\x03\x02\x02\x02\u182B\u182C\tt\x02" + - "\x02\u182C\u182F\x03\x02\x02\x02\u182D\u182F\x05\u025E\u0130\x02\u182E" + - "\u1823\x03\x02\x02\x02\u182E\u1826\x03\x02\x02\x02\u182E\u182D\x03\x02" + - "\x02\x02\u182F\u1836\x03\x02\x02\x02\u1830\u1831\f\x05\x02\x02\u1831\u1832" + - "\x05\u0266\u0134\x02\u1832\u1833\x05\u025C\u012F\x06\u1833\u1835\x03\x02" + - "\x02\x02\u1834\u1830\x03\x02\x02\x02\u1835\u1838\x03\x02\x02\x02\u1836" + - "\u1834\x03\x02\x02\x02\u1836\u1837\x03\x02\x02\x02\u1837\u025D\x03\x02" + - "\x02\x02\u1838\u1836\x03\x02\x02\x02\u1839\u183C\b\u0130\x01\x02\u183A" + - "\u183B\x07\u0418\x02\x02\u183B\u183D\x07\u03E4\x02\x02\u183C\u183A\x03" + - "\x02\x02\x02\u183C\u183D\x03\x02\x02\x02\u183D\u183E\x03\x02\x02\x02\u183E" + - "\u183F\x05\u0260\u0131\x02\u183F\u1879\x03\x02\x02\x02\u1840\u1841\f\t" + - "\x02\x02\u1841\u1842\x05\u0264\u0133\x02\u1842\u1843\x05\u025E\u0130\n" + - "\u1843\u1878\x03\x02\x02\x02\u1844\u1846\f\x07\x02\x02\u1845\u1847\x07" + - "h\x02\x02\u1846\u1845\x03\x02\x02\x02\u1846\u1847\x03\x02\x02\x02\u1847" + - "\u1848\x03\x02\x02\x02\u1848\u1849\x07\x10\x02\x02\u1849\u184A\x05\u025E" + - "\u0130\x02\u184A\u184B\x07\f\x02\x02\u184B\u184C\x05\u025E\u0130\b\u184C" + - "\u1878\x03\x02\x02\x02\u184D\u184E\f\x06\x02\x02\u184E\u184F\x07\u0213" + - "\x02\x02\u184F\u1850\x07Z\x02\x02\u1850\u1878\x05\u025E\u0130\x07\u1851" + - "\u1853\f\x04\x02\x02\u1852\u1854\x07h\x02\x02\u1853\u1852\x03\x02\x02" + - "\x02\u1853\u1854\x03\x02\x02\x02\u1854\u1855\x03\x02\x02\x02\u1855\u1856" + - "\tu\x02\x02\u1856\u1878\x05\u025E\u0130\x05\u1857\u1859\f\v\x02\x02\u1858" + - "\u185A\x07h\x02\x02\u1859\u1858\x03\x02\x02\x02\u1859\u185A\x03\x02\x02" + - "\x02\u185A\u185B\x03\x02\x02\x02\u185B\u185C\x07I\x02\x02\u185C\u185F" + - "\x07\u03FE\x02\x02\u185D\u1860\x05\xB6\\\x02\u185E\u1860\x05\u0234\u011B" + - "\x02\u185F\u185D\x03\x02\x02\x02\u185F\u185E\x03\x02\x02\x02\u1860\u1861" + - "\x03\x02\x02\x02\u1861\u1862\x07\u03FF\x02\x02\u1862\u1878\x03\x02\x02" + - "\x02\u1863\u1864\f\n\x02\x02\u1864\u1865\x07Q\x02\x02\u1865\u1878\x05" + - "\u021E\u0110\x02\u1866\u1867\f\b\x02\x02\u1867\u1868\x05\u0264\u0133\x02" + - "\u1868\u1869\tv\x02\x02\u1869\u186A\x07\u03FE\x02\x02\u186A\u186B\x05" + - "\xB6\\\x02\u186B\u186C\x07\u03FF\x02\x02\u186C\u1878\x03\x02\x02\x02\u186D" + - "\u186F\f\x05\x02\x02\u186E\u1870\x07h\x02\x02\u186F\u186E\x03\x02\x02" + - "\x02\u186F\u1870\x03\x02\x02\x02\u1870\u1871\x03\x02\x02\x02\u1871\u1872" + - "\x07Z\x02\x02\u1872\u1875\x05\u025E\u0130\x02\u1873\u1874\x07\u015C\x02" + - "\x02\u1874\u1876\x07\u040D\x02\x02\u1875\u1873\x03\x02\x02\x02\u1875\u1876" + - "\x03\x02\x02\x02\u1876\u1878\x03\x02\x02\x02\u1877\u1840\x03\x02\x02\x02" + - "\u1877\u1844\x03\x02\x02\x02\u1877\u184D\x03\x02\x02\x02\u1877\u1851\x03" + - "\x02\x02\x02\u1877\u1857\x03\x02\x02\x02\u1877\u1863\x03\x02\x02\x02\u1877" + - "\u1866\x03\x02\x02\x02\u1877\u186D\x03\x02\x02\x02\u1878\u187B\x03\x02" + - "\x02\x02\u1879\u1877\x03\x02\x02\x02\u1879\u187A\x03\x02\x02\x02\u187A" + - "\u025F\x03\x02\x02\x02\u187B\u1879\x03\x02\x02\x02\u187C\u187D\b\u0131" + - "\x01\x02\u187D\u18AA\x05\u0220\u0111\x02\u187E\u18AA\x05\u01F8\xFD\x02" + - "\u187F\u18AA\x05\u0248\u0125\x02\u1880\u18AA\x05\u01FE\u0100\x02\u1881" + - "\u1882\x05\u0262\u0132\x02\u1882\u1883\x05\u0260\u0131\v\u1883\u18AA\x03" + - "\x02\x02\x02\u1884\u1885\x07\xD2\x02\x02\u1885\u18AA\x05\u0260\u0131\n" + - "\u1886\u1887\x07\u03FE\x02\x02\u1887\u188C\x05\u025C\u012F\x02\u1888\u1889" + - "\x07\u0400\x02\x02\u1889\u188B\x05\u025C\u012F\x02\u188A\u1888\x03\x02" + - "\x02\x02\u188B\u188E\x03\x02\x02\x02\u188C\u188A\x03\x02\x02\x02\u188C" + - "\u188D\x03\x02\x02\x02\u188D\u188F\x03\x02\x02\x02\u188E\u188C\x03\x02" + - "\x02\x02\u188F\u1890\x07\u03FF\x02\x02\u1890\u18AA\x03\x02\x02\x02\u1891" + - "\u1892\x07\u0201\x02\x02\u1892\u1893\x07\u03FE\x02\x02\u1893\u1896\x05" + - "\u025C\u012F\x02\u1894\u1895\x07\u0400\x02\x02\u1895\u1897\x05\u025C\u012F" + - "\x02\u1896\u1894\x03\x02\x02\x02\u1897\u1898\x03\x02\x02\x02\u1898\u1896" + - "\x03\x02\x02\x02\u1898\u1899\x03\x02\x02\x02\u1899\u189A\x03\x02\x02\x02" + - "\u189A\u189B\x07\u03FF\x02\x02\u189B\u18AA\x03\x02\x02\x02\u189C\u189D" + - "\x077\x02\x02\u189D\u189E\x07\u03FE\x02\x02\u189E\u189F\x05\xB6\\\x02" + - "\u189F\u18A0\x07\u03FF\x02\x02\u18A0\u18AA\x03\x02\x02\x02\u18A1\u18A2" + - "\x07\u03FE\x02\x02\u18A2\u18A3\x05\xB6\\\x02\u18A3\u18A4\x07\u03FF\x02" + - "\x02\u18A4\u18AA\x03\x02\x02\x02\u18A5\u18A6\x07O\x02\x02\u18A6\u18A7" + - "\x05\u025C\u012F\x02\u18A7\u18A8\x05> \x02\u18A8\u18AA\x03\x02\x02\x02" + - "\u18A9\u187C\x03\x02\x02\x02\u18A9\u187E\x03\x02\x02\x02\u18A9\u187F\x03" + - "\x02\x02\x02\u18A9\u1880\x03\x02\x02\x02\u18A9\u1881\x03\x02\x02\x02\u18A9" + - "\u1884\x03\x02\x02\x02\u18A9\u1886\x03\x02\x02\x02\u18A9\u1891\x03\x02" + - "\x02\x02\u18A9\u189C\x03\x02\x02\x02\u18A9\u18A1\x03\x02\x02\x02\u18A9" + - "\u18A5\x03\x02\x02\x02\u18AA\u18B8\x03\x02\x02\x02\u18AB\u18AC\f\x04\x02" + - "\x02\u18AC\u18AD\x05\u0268\u0135\x02\u18AD\u18AE\x05\u0260\u0131\x05\u18AE" + - "\u18B7\x03\x02\x02\x02\u18AF\u18B0\f\x03\x02\x02\u18B0\u18B1\x05\u026A" + - "\u0136\x02\u18B1\u18B2\x05\u0260\u0131\x04\u18B2\u18B7\x03\x02\x02\x02" + - "\u18B3\u18B4\f\r\x02\x02\u18B4\u18B5\x07\x1A\x02\x02"; - private static readonly _serializedATNSegment12: string = - "\u18B5\u18B7\x05\u0202\u0102\x02\u18B6\u18AB\x03\x02\x02\x02\u18B6\u18AF" + - "\x03\x02\x02\x02\u18B6\u18B3\x03\x02\x02\x02\u18B7\u18BA\x03\x02\x02\x02" + - "\u18B8\u18B6\x03\x02\x02\x02\u18B8\u18B9\x03\x02\x02\x02\u18B9\u0261\x03" + - "\x02\x02\x02\u18BA\u18B8\x03\x02\x02\x02\u18BB\u18BC\tw\x02\x02\u18BC" + - "\u0263\x03\x02\x02\x02\u18BD\u18CC\x07\u03F5\x02\x02\u18BE\u18CC\x07\u03F6" + - "\x02\x02\u18BF\u18CC\x07\u03F7\x02\x02\u18C0\u18C1\x07\u03F7\x02\x02\u18C1" + - "\u18CC\x07\u03F5\x02\x02\u18C2\u18C3\x07\u03F6\x02\x02\u18C3\u18CC\x07" + - "\u03F5\x02\x02\u18C4\u18C5\x07\u03F7\x02\x02\u18C5\u18CC\x07\u03F6\x02" + - "\x02\u18C6\u18C7\x07\u03F8\x02\x02\u18C7\u18CC\x07\u03F5\x02\x02\u18C8" + - "\u18C9\x07\u03F7\x02\x02\u18C9\u18CA\x07\u03F5\x02\x02\u18CA\u18CC\x07" + - "\u03F6\x02\x02\u18CB\u18BD\x03\x02\x02\x02\u18CB\u18BE\x03\x02\x02\x02" + - "\u18CB\u18BF\x03\x02\x02\x02\u18CB\u18C0\x03\x02\x02\x02\u18CB\u18C2\x03" + - "\x02\x02\x02\u18CB\u18C4\x03\x02\x02\x02\u18CB\u18C6\x03\x02\x02\x02\u18CB" + - "\u18C8\x03\x02\x02\x02\u18CC\u0265\x03\x02\x02\x02\u18CD\u18D5\x07\f\x02" + - "\x02\u18CE\u18CF\x07\u03FB\x02\x02\u18CF\u18D5\x07\u03FB\x02\x02\u18D0" + - "\u18D5\x07\xB2\x02\x02\u18D1\u18D5\x07p\x02\x02\u18D2\u18D3\x07\u03FA" + - "\x02\x02\u18D3\u18D5\x07\u03FA\x02\x02\u18D4\u18CD\x03\x02\x02\x02\u18D4" + - "\u18CE\x03\x02\x02\x02\u18D4\u18D0\x03\x02\x02\x02\u18D4\u18D1\x03\x02" + - "\x02\x02\u18D4\u18D2\x03\x02\x02\x02\u18D5\u0267\x03\x02\x02\x02\u18D6" + - "\u18D7\x07\u03F7\x02\x02\u18D7\u18DE\x07\u03F7\x02\x02\u18D8\u18D9\x07" + - "\u03F6\x02\x02\u18D9\u18DE\x07\u03F6\x02\x02\u18DA\u18DE\x07\u03FB\x02" + - "\x02\u18DB\u18DE\x07\u03FC\x02\x02\u18DC\u18DE\x07\u03FA\x02\x02\u18DD" + - "\u18D6\x03\x02\x02\x02\u18DD\u18D8\x03\x02\x02\x02\u18DD\u18DA\x03\x02" + - "\x02\x02\u18DD\u18DB\x03\x02\x02\x02\u18DD\u18DC\x03\x02\x02\x02\u18DE" + - "\u0269\x03\x02\x02\x02\u18DF\u18E0\tx\x02\x02\u18E0\u026B\x03\x02\x02" + - "\x02\u18E1\u18E2\ty\x02\x02\u18E2\u026D\x03\x02\x02\x02\u18E3\u18E4\t" + - "z\x02\x02\u18E4\u026F\x03\x02\x02\x02\u18E5\u18E6\t{\x02\x02\u18E6\u0271" + - "\x03\x02\x02\x02\u18E7\u18E8\t|\x02\x02\u18E8\u0273\x03\x02\x02\x02\u18E9" + - "\u18EA\t}\x02\x02\u18EA\u0275\x03\x02\x02\x02\u18EB\u18EC\t~\x02\x02\u18EC" + - "\u0277\x03\x02\x02\x02\u18ED\u18EE\t\x7F\x02\x02\u18EE\u0279\x03\x02\x02" + - "\x02\u03A2\u027E\u0281\u0287\u028A\u028D\u028F\u0294\u0297\u029A\u02A3" + - "\u02CA\u02D6\u02E1\u02F2\u02F7\u0303\u031E\u0327\u032C\u0332\u0337\u033B" + - "\u0344\u0347\u034A\u034E\u0355\u0358\u035D\u0365\u036A\u036F\u0372\u0374" + - "\u0380\u0383\u0387\u038A\u038E\u0391\u0395\u0398\u039B\u039F\u03A2\u03A6" + - "\u03AC\u03B2\u03B8\u03BF\u03C6\u03CC\u03D2\u03DB\u03E0\u03F0\u03F7\u03FB" + - "\u0405\u0409\u040D\u0411\u0415\u041A\u041D\u0420\u0423\u0426\u042C\u0430" + - "\u0436\u043B\u043E\u0441\u0443\u044E\u0452\u0455\u0463\u0466\u046A\u046D" + - "\u0471\u0474\u0478\u047B\u047F\u0482\u0485\u0489\u048C\u0490\u0496\u04A3" + - "\u04AA\u04AF\u04B2\u04B7\u04BF\u04C5\u04C9\u04CC\u04D1\u04D4\u04D8\u04DB" + - "\u04DF\u04E2\u04EA\u04EC\u04F3\u04F9\u0501\u0504\u050B\u050E\u0510\u0516" + - "\u051C\u052D\u0534\u053B\u0546\u0549\u0556\u0563\u0568\u0578\u0580\u058A" + - "\u0590\u059A\u059D\u05A2\u05AF\u05B6\u05BD\u05BF\u05C6\u05CA\u05CC\u05D1" + - "\u05D4\u05DA\u05DF\u05E1\u05E5\u05E8\u05EB\u05F1\u05F6\u05F8\u05FD\u0604" + - "\u0606\u060D\u0612\u0616\u0619\u0621\u0629\u062B\u0633\u0637\u063A\u0640" + - "\u0645\u0648\u064E\u0651\u0655\u065A\u065F\u0663\u0668\u066B\u066F\u0673" + - "\u0677\u067B\u0680\u0685\u068A\u0690\u0695\u069A\u06A0\u06A5\u06AA\u06AF" + - "\u06B4\u06B9\u06BE\u06C3\u06C8\u06CD\u06D2\u06D8\u06DD\u06E3\u06ED\u06F4" + - "\u06F6\u06FE\u0703\u0706\u070E\u0714\u0724\u0730\u0732\u0735\u073D\u0743" + - "\u0749\u0756\u075D\u0765\u0768\u0773\u077B\u077E\u078A\u0791\u0799\u079C" + - "\u07A8\u07AF\u07B7\u07BA\u07C1\u07C9\u07CC\u07CE\u07D3\u07DB\u07E4\u07E8" + - "\u07EC\u07F1\u07F7\u07FD\u0802\u0807\u080C\u0811\u0814\u0819\u081E\u0828" + - "\u082C\u0833\u0838\u083B\u0840\u0843\u0847\u084B\u0853\u0866\u0869\u086C" + - "\u0870\u087A\u0887\u088E\u0891\u089A\u089D\u08A0\u08AB\u08AE\u08B2\u08BA" + - "\u08BD\u08C2\u08CA\u08D0\u08D4\u08D8\u08DD\u08E2\u08E9\u08ED\u08F8\u0900" + - "\u0903\u0909\u090F\u0911\u0916\u0919\u091F\u0925\u0927\u092B\u092E\u0931" + - "\u0937\u093D\u0940\u0946\u094C\u094E\u0953\u095B\u095D\u0966\u096B\u0973" + - "\u0977\u097F\u0989\u098E\u0995\u0999\u099D\u09BA\u09BE\u09CA\u09CD\u09D6" + - "\u09E7\u09F3\u09FA\u0A01\u0A10\u0A1D\u0A23\u0A29\u0A2F\u0A35\u0A3B\u0A41" + - "\u0A46\u0A4D\u0A54\u0A5B\u0A60\u0A63\u0A65\u0A73\u0A7A\u0A81\u0A87\u0A8B" + - "\u0A8F\u0A96\u0A99\u0A9E\u0AA5\u0AAC\u0AB0\u0AB9\u0AC2\u0ACB\u0ACE\u0AD2" + - "\u0ADB\u0ADF\u0AE2\u0AE5\u0AEB\u0AEE\u0AF4\u0AFD\u0B00\u0B0B\u0B0E\u0B13" + - "\u0B16\u0B1B\u0B25\u0B2A\u0B30\u0B32\u0B38\u0B3A\u0B40\u0B48\u0B4D\u0B55" + - "\u0B58\u0B5D\u0B60\u0B65\u0B6D\u0B75\u0B7B\u0B83\u0B88\u0B90\u0B93\u0B97" + - "\u0B9A\u0BA2\u0BA8\u0BB1\u0BB4\u0BB8\u0BBC\u0BC2\u0BC6\u0BCA\u0BCC\u0BCF" + - "\u0BD2\u0BD5\u0BDB\u0BDF\u0BE2\u0BE5\u0BE8\u0BEB\u0BED\u0BF1\u0BF7\u0BFD" + - "\u0C02\u0C05\u0C0B\u0C0F\u0C17\u0C1B\u0C1E\u0C21\u0C2A\u0C2E\u0C31\u0C35" + - "\u0C39\u0C3C\u0C3F\u0C44\u0C4A\u0C4E\u0C58\u0C5E\u0C62\u0C68\u0C6C\u0C72" + - "\u0C75\u0C81\u0C85\u0C89\u0C91\u0C95\u0C9D\u0CA0\u0CA4\u0CA7\u0CAF\u0CB4" + - "\u0CB7\u0CBA\u0CBE\u0CC1\u0CCA\u0CCF\u0CD8\u0CDD\u0CE4\u0CEB\u0CF3\u0CF8" + - "\u0D00\u0D03\u0D06\u0D0D\u0D10\u0D17\u0D1A\u0D22\u0D28\u0D33\u0D36\u0D41" + - "\u0D47\u0D4B\u0D56\u0D5B\u0D5D\u0D61\u0D6B\u0D75\u0D7B\u0D80\u0D83\u0D86" + - "\u0D89\u0D8F\u0D94\u0D97\u0D9A\u0D9D\u0D9F\u0DA5\u0DAA\u0DAD\u0DB0\u0DB4" + - "\u0DBA\u0DBE\u0DC8\u0DCC\u0DD2\u0DDB\u0DDE\u0DE2\u0DE5\u0DE9\u0DED\u0DF0" + - "\u0DF2\u0DFA\u0E06\u0E0C\u0E0E\u0E14\u0E16\u0E18\u0E1E\u0E26\u0E2E\u0E34" + - "\u0E3D\u0E42\u0E44\u0E48\u0E4C\u0E52\u0E59\u0E5D\u0E66\u0E69\u0E6D\u0E71" + - "\u0E75\u0E78\u0E7B\u0E7E\u0E82\u0E86\u0E89\u0E8C\u0E8F\u0E96\u0E9A\u0EA9" + - "\u0EB6\u0EBE\u0EC8\u0ECC\u0ECF\u0ED5\u0ED8\u0EDB\u0EE4\u0EED\u0EF7\u0EFB" + - "\u0F05\u0F0F\u0F17\u0F1A\u0F23\u0F26\u0F2A\u0F2F\u0F33\u0F3C\u0F3F\u0F5E" + - "\u0F61\u0F64\u0F9C\u0FA1\u0FBD\u0FCB\u0FD2\u0FD6\u0FDC\u0FE4\u0FE6\u0FF1" + - "\u0FFB\u1002\u1008\u1010\u1015\u101D\u1025\u102D\u1035\u103B\u103E\u1042" + - "\u1047\u104C\u1052\u1054\u105F\u1064\u106B\u106D\u107B\u1081\u1086\u108B" + - "\u1091\u1098\u10A0\u10A8\u10AD\u10B3\u10B6\u10BE\u10C5\u10CE\u10D1\u10E2" + - "\u10EA\u10F2\u10F6\u10FD\u1103\u110B\u1114\u111A\u1121\u1128\u112D\u1130" + - "\u1132\u1138\u113A\u113E\u1140\u1143\u114C\u1152\u1159\u1160\u1165\u1168" + - "\u116A\u1170\u1172\u1176\u1178\u117B\u1180\u1187\u1190\u1195\u119E\u11A5" + - "\u11AA\u11AD\u11AF\u11B5\u11B7\u11BA\u11C6\u11CC\u11D5\u11DE\u11E3\u11EC" + - "\u11F2\u11FD\u1200\u120C\u1213\u1218\u1227\u1232\u1235\u123F\u1249\u1253" + - "\u125D\u1261\u1265\u126F\u1274\u12A6\u12B8\u12C0\u12CB\u12D2\u12D6\u12DD" + - "\u12E2\u12E5\u12E8\u12F1\u12F5\u1313\u131A\u131E\u1325\u1328\u1338\u133B" + - "\u1345\u1349\u134F\u1352\u1357\u135B\u1362\u1365\u136B\u1383\u1390\u1393" + - "\u139D\u13A5\u13A9\u13B0\u13B3\u13BC\u13C2\u13C8\u13D2\u13D4\u13DA\u13DD" + - "\u13E0\u13EC\u13EF\u13F5\u13F8\u1400\u1408\u140E\u1412\u1420\u142C\u1433" + - "\u1436\u143D\u1444\u1449\u144E\u1459\u1464\u146A\u146F\u147C\u147E\u1483" + - "\u1488\u148A\u1491\u1498\u149B\u149E\u14A4\u14A8\u14AE\u14B4\u14C1\u14C6" + - "\u14CE\u14D1\u14D6\u14DB\u14E3\u14E6\u14EC\u14F0\u14FD\u1503\u150F\u1512" + - "\u151B\u1520\u1526\u152D\u152F\u1533\u1539\u153C\u1546\u154A\u155E\u1565" + - "\u1567\u156E\u1570\u1574\u1579\u1584\u1589\u158F\u1592\u1596\u159B\u159E" + - "\u15A2\u15A6\u15A8\u15AD\u15B2\u15BF\u15C2\u15C6\u15C9\u15CE\u15D1\u15D5" + - "\u15DA\u15DD\u15E2\u15E5\u15EB\u15EE\u15F2\u15F5\u15F8\u15FC\u15FF\u1602" + - "\u1606\u1609\u160C\u160F\u1613\u1616\u1619\u161E\u1623\u1628\u162B\u1630" + - "\u1633\u1638\u163B\u163F\u1643\u164B\u1652\u1656\u165B\u165E\u1663\u1667" + - "\u1669\u1679\u1682\u168A\u1693\u169D\u16A5\u16AD\u16B5\u16BD\u16C2\u16C9" + - "\u16CB\u16D0\u16D3\u16D8\u16DB\u16DF\u16ED\u16F4\u16F9\u171B\u171F\u1727" + - "\u172B\u1734\u173C\u1741\u1749\u174E\u1753\u1755\u175E\u1763\u176B\u1770" + - "\u1778\u1780\u1783\u178D\u1798\u17A5\u17AD\u17B1\u17B6\u17BF\u17C2\u17CE" + - "\u17D6\u17E0\u17E3\u17E7\u17EB\u1804\u180F\u1816\u181A\u1821\u1829\u182E" + - "\u1836\u183C\u1846\u1853\u1859\u185F\u186F\u1875\u1877\u1879\u188C\u1898" + - "\u18A9\u18B6\u18B8\u18CB\u18D4\u18DD"; - public static readonly _serializedATN: string = Utils.join( - [ - SqlParser._serializedATNSegment0, - SqlParser._serializedATNSegment1, - SqlParser._serializedATNSegment2, - SqlParser._serializedATNSegment3, - SqlParser._serializedATNSegment4, - SqlParser._serializedATNSegment5, - SqlParser._serializedATNSegment6, - SqlParser._serializedATNSegment7, - SqlParser._serializedATNSegment8, - SqlParser._serializedATNSegment9, - SqlParser._serializedATNSegment10, - SqlParser._serializedATNSegment11, - SqlParser._serializedATNSegment12, - ], - "", - ); - public static __ATN: ATN; - public static get _ATN(): ATN { - if (!SqlParser.__ATN) { - SqlParser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(SqlParser._serializedATN)); - } - - return SqlParser.__ATN; - } - -} - -export class ProgramContext extends ParserRuleContext { - public statement(): StatementContext { - return this.getRuleContext(0, StatementContext); - } - public EOF(): TerminalNode { return this.getToken(SqlParser.EOF, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_program; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterProgram) { - listener.enterProgram(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitProgram) { - listener.exitProgram(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitProgram) { - return visitor.visitProgram(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StatementContext extends ParserRuleContext { - public EOF(): TerminalNode { return this.getToken(SqlParser.EOF, 0); } - public sqlStatements(): SqlStatementsContext | undefined { - return this.tryGetRuleContext(0, SqlStatementsContext); - } - public MINUSMINUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUSMINUS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_statement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStatement) { - listener.enterStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStatement) { - listener.exitStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStatement) { - return visitor.visitStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SqlStatementsContext extends ParserRuleContext { - public sqlStatement(): SqlStatementContext[]; - public sqlStatement(i: number): SqlStatementContext; - public sqlStatement(i?: number): SqlStatementContext | SqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(SqlStatementContext); - } else { - return this.getRuleContext(i, SqlStatementContext); - } - } - public emptyStatement(): EmptyStatementContext[]; - public emptyStatement(i: number): EmptyStatementContext; - public emptyStatement(i?: number): EmptyStatementContext | EmptyStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(EmptyStatementContext); - } else { - return this.getRuleContext(i, EmptyStatementContext); - } - } - public SEMI(): TerminalNode[]; - public SEMI(i: number): TerminalNode; - public SEMI(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SEMI); - } else { - return this.getToken(SqlParser.SEMI, i); - } - } - public MINUSMINUS(): TerminalNode[]; - public MINUSMINUS(i: number): TerminalNode; - public MINUSMINUS(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.MINUSMINUS); - } else { - return this.getToken(SqlParser.MINUSMINUS, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_sqlStatements; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSqlStatements) { - listener.enterSqlStatements(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSqlStatements) { - listener.exitSqlStatements(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSqlStatements) { - return visitor.visitSqlStatements(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SqlStatementContext extends ParserRuleContext { - public ddlStatement(): DdlStatementContext | undefined { - return this.tryGetRuleContext(0, DdlStatementContext); - } - public dmlStatement(): DmlStatementContext | undefined { - return this.tryGetRuleContext(0, DmlStatementContext); - } - public transactionStatement(): TransactionStatementContext | undefined { - return this.tryGetRuleContext(0, TransactionStatementContext); - } - public replicationStatement(): ReplicationStatementContext | undefined { - return this.tryGetRuleContext(0, ReplicationStatementContext); - } - public preparedStatement(): PreparedStatementContext | undefined { - return this.tryGetRuleContext(0, PreparedStatementContext); - } - public administrationStatement(): AdministrationStatementContext | undefined { - return this.tryGetRuleContext(0, AdministrationStatementContext); - } - public utilityStatement(): UtilityStatementContext | undefined { - return this.tryGetRuleContext(0, UtilityStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_sqlStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSqlStatement) { - listener.enterSqlStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSqlStatement) { - listener.exitSqlStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSqlStatement) { - return visitor.visitSqlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class EmptyStatementContext extends ParserRuleContext { - public SEMI(): TerminalNode { return this.getToken(SqlParser.SEMI, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_emptyStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterEmptyStatement) { - listener.enterEmptyStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitEmptyStatement) { - listener.exitEmptyStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitEmptyStatement) { - return visitor.visitEmptyStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DdlStatementContext extends ParserRuleContext { - public createDatabase(): CreateDatabaseContext | undefined { - return this.tryGetRuleContext(0, CreateDatabaseContext); - } - public createEvent(): CreateEventContext | undefined { - return this.tryGetRuleContext(0, CreateEventContext); - } - public createIndex(): CreateIndexContext | undefined { - return this.tryGetRuleContext(0, CreateIndexContext); - } - public createLogfileGroup(): CreateLogfileGroupContext | undefined { - return this.tryGetRuleContext(0, CreateLogfileGroupContext); - } - public createProcedure(): CreateProcedureContext | undefined { - return this.tryGetRuleContext(0, CreateProcedureContext); - } - public createFunction(): CreateFunctionContext | undefined { - return this.tryGetRuleContext(0, CreateFunctionContext); - } - public createServer(): CreateServerContext | undefined { - return this.tryGetRuleContext(0, CreateServerContext); - } - public createTable(): CreateTableContext | undefined { - return this.tryGetRuleContext(0, CreateTableContext); - } - public createTablespaceInnodb(): CreateTablespaceInnodbContext | undefined { - return this.tryGetRuleContext(0, CreateTablespaceInnodbContext); - } - public createTablespaceNdb(): CreateTablespaceNdbContext | undefined { - return this.tryGetRuleContext(0, CreateTablespaceNdbContext); - } - public createTrigger(): CreateTriggerContext | undefined { - return this.tryGetRuleContext(0, CreateTriggerContext); - } - public createView(): CreateViewContext | undefined { - return this.tryGetRuleContext(0, CreateViewContext); - } - public alterDatabase(): AlterDatabaseContext | undefined { - return this.tryGetRuleContext(0, AlterDatabaseContext); - } - public alterEvent(): AlterEventContext | undefined { - return this.tryGetRuleContext(0, AlterEventContext); - } - public alterFunction(): AlterFunctionContext | undefined { - return this.tryGetRuleContext(0, AlterFunctionContext); - } - public alterInstance(): AlterInstanceContext | undefined { - return this.tryGetRuleContext(0, AlterInstanceContext); - } - public alterLogfileGroup(): AlterLogfileGroupContext | undefined { - return this.tryGetRuleContext(0, AlterLogfileGroupContext); - } - public alterProcedure(): AlterProcedureContext | undefined { - return this.tryGetRuleContext(0, AlterProcedureContext); - } - public alterServer(): AlterServerContext | undefined { - return this.tryGetRuleContext(0, AlterServerContext); - } - public alterTable(): AlterTableContext | undefined { - return this.tryGetRuleContext(0, AlterTableContext); - } - public alterTablespace(): AlterTablespaceContext | undefined { - return this.tryGetRuleContext(0, AlterTablespaceContext); - } - public alterView(): AlterViewContext | undefined { - return this.tryGetRuleContext(0, AlterViewContext); - } - public dropDatabase(): DropDatabaseContext | undefined { - return this.tryGetRuleContext(0, DropDatabaseContext); - } - public dropEvent(): DropEventContext | undefined { - return this.tryGetRuleContext(0, DropEventContext); - } - public dropIndex(): DropIndexContext | undefined { - return this.tryGetRuleContext(0, DropIndexContext); - } - public dropLogfileGroup(): DropLogfileGroupContext | undefined { - return this.tryGetRuleContext(0, DropLogfileGroupContext); - } - public dropProcedure(): DropProcedureContext | undefined { - return this.tryGetRuleContext(0, DropProcedureContext); - } - public dropFunction(): DropFunctionContext | undefined { - return this.tryGetRuleContext(0, DropFunctionContext); - } - public dropServer(): DropServerContext | undefined { - return this.tryGetRuleContext(0, DropServerContext); - } - public dropTable(): DropTableContext | undefined { - return this.tryGetRuleContext(0, DropTableContext); - } - public dropTablespace(): DropTablespaceContext | undefined { - return this.tryGetRuleContext(0, DropTablespaceContext); - } - public dropTrigger(): DropTriggerContext | undefined { - return this.tryGetRuleContext(0, DropTriggerContext); - } - public dropView(): DropViewContext | undefined { - return this.tryGetRuleContext(0, DropViewContext); - } - public renameTable(): RenameTableContext | undefined { - return this.tryGetRuleContext(0, RenameTableContext); - } - public truncateTable(): TruncateTableContext | undefined { - return this.tryGetRuleContext(0, TruncateTableContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_ddlStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDdlStatement) { - listener.enterDdlStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDdlStatement) { - listener.exitDdlStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDdlStatement) { - return visitor.visitDdlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DmlStatementContext extends ParserRuleContext { - public selectStatement(): SelectStatementContext | undefined { - return this.tryGetRuleContext(0, SelectStatementContext); - } - public insertStatement(): InsertStatementContext | undefined { - return this.tryGetRuleContext(0, InsertStatementContext); - } - public updateStatement(): UpdateStatementContext | undefined { - return this.tryGetRuleContext(0, UpdateStatementContext); - } - public deleteStatement(): DeleteStatementContext | undefined { - return this.tryGetRuleContext(0, DeleteStatementContext); - } - public replaceStatement(): ReplaceStatementContext | undefined { - return this.tryGetRuleContext(0, ReplaceStatementContext); - } - public callStatement(): CallStatementContext | undefined { - return this.tryGetRuleContext(0, CallStatementContext); - } - public loadDataStatement(): LoadDataStatementContext | undefined { - return this.tryGetRuleContext(0, LoadDataStatementContext); - } - public loadXmlStatement(): LoadXmlStatementContext | undefined { - return this.tryGetRuleContext(0, LoadXmlStatementContext); - } - public doStatement(): DoStatementContext | undefined { - return this.tryGetRuleContext(0, DoStatementContext); - } - public handlerStatement(): HandlerStatementContext | undefined { - return this.tryGetRuleContext(0, HandlerStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dmlStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDmlStatement) { - listener.enterDmlStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDmlStatement) { - listener.exitDmlStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDmlStatement) { - return visitor.visitDmlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TransactionStatementContext extends ParserRuleContext { - public startTransaction(): StartTransactionContext | undefined { - return this.tryGetRuleContext(0, StartTransactionContext); - } - public beginWork(): BeginWorkContext | undefined { - return this.tryGetRuleContext(0, BeginWorkContext); - } - public commitWork(): CommitWorkContext | undefined { - return this.tryGetRuleContext(0, CommitWorkContext); - } - public rollbackWork(): RollbackWorkContext | undefined { - return this.tryGetRuleContext(0, RollbackWorkContext); - } - public savepointStatement(): SavepointStatementContext | undefined { - return this.tryGetRuleContext(0, SavepointStatementContext); - } - public rollbackStatement(): RollbackStatementContext | undefined { - return this.tryGetRuleContext(0, RollbackStatementContext); - } - public releaseStatement(): ReleaseStatementContext | undefined { - return this.tryGetRuleContext(0, ReleaseStatementContext); - } - public lockTables(): LockTablesContext | undefined { - return this.tryGetRuleContext(0, LockTablesContext); - } - public unlockTables(): UnlockTablesContext | undefined { - return this.tryGetRuleContext(0, UnlockTablesContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_transactionStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTransactionStatement) { - listener.enterTransactionStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTransactionStatement) { - listener.exitTransactionStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTransactionStatement) { - return visitor.visitTransactionStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReplicationStatementContext extends ParserRuleContext { - public changeMaster(): ChangeMasterContext | undefined { - return this.tryGetRuleContext(0, ChangeMasterContext); - } - public changeReplicationFilter(): ChangeReplicationFilterContext | undefined { - return this.tryGetRuleContext(0, ChangeReplicationFilterContext); - } - public purgeBinaryLogs(): PurgeBinaryLogsContext | undefined { - return this.tryGetRuleContext(0, PurgeBinaryLogsContext); - } - public resetMaster(): ResetMasterContext | undefined { - return this.tryGetRuleContext(0, ResetMasterContext); - } - public resetSlave(): ResetSlaveContext | undefined { - return this.tryGetRuleContext(0, ResetSlaveContext); - } - public startSlave(): StartSlaveContext | undefined { - return this.tryGetRuleContext(0, StartSlaveContext); - } - public stopSlave(): StopSlaveContext | undefined { - return this.tryGetRuleContext(0, StopSlaveContext); - } - public startGroupReplication(): StartGroupReplicationContext | undefined { - return this.tryGetRuleContext(0, StartGroupReplicationContext); - } - public stopGroupReplication(): StopGroupReplicationContext | undefined { - return this.tryGetRuleContext(0, StopGroupReplicationContext); - } - public xaStartTransaction(): XaStartTransactionContext | undefined { - return this.tryGetRuleContext(0, XaStartTransactionContext); - } - public xaEndTransaction(): XaEndTransactionContext | undefined { - return this.tryGetRuleContext(0, XaEndTransactionContext); - } - public xaPrepareStatement(): XaPrepareStatementContext | undefined { - return this.tryGetRuleContext(0, XaPrepareStatementContext); - } - public xaCommitWork(): XaCommitWorkContext | undefined { - return this.tryGetRuleContext(0, XaCommitWorkContext); - } - public xaRollbackWork(): XaRollbackWorkContext | undefined { - return this.tryGetRuleContext(0, XaRollbackWorkContext); - } - public xaRecoverWork(): XaRecoverWorkContext | undefined { - return this.tryGetRuleContext(0, XaRecoverWorkContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_replicationStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReplicationStatement) { - listener.enterReplicationStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReplicationStatement) { - listener.exitReplicationStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReplicationStatement) { - return visitor.visitReplicationStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PreparedStatementContext extends ParserRuleContext { - public prepareStatement(): PrepareStatementContext | undefined { - return this.tryGetRuleContext(0, PrepareStatementContext); - } - public executeStatement(): ExecuteStatementContext | undefined { - return this.tryGetRuleContext(0, ExecuteStatementContext); - } - public deallocatePrepare(): DeallocatePrepareContext | undefined { - return this.tryGetRuleContext(0, DeallocatePrepareContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_preparedStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPreparedStatement) { - listener.enterPreparedStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPreparedStatement) { - listener.exitPreparedStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPreparedStatement) { - return visitor.visitPreparedStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CompoundStatementContext extends ParserRuleContext { - public blockStatement(): BlockStatementContext | undefined { - return this.tryGetRuleContext(0, BlockStatementContext); - } - public caseStatement(): CaseStatementContext | undefined { - return this.tryGetRuleContext(0, CaseStatementContext); - } - public ifStatement(): IfStatementContext | undefined { - return this.tryGetRuleContext(0, IfStatementContext); - } - public leaveStatement(): LeaveStatementContext | undefined { - return this.tryGetRuleContext(0, LeaveStatementContext); - } - public loopStatement(): LoopStatementContext | undefined { - return this.tryGetRuleContext(0, LoopStatementContext); - } - public repeatStatement(): RepeatStatementContext | undefined { - return this.tryGetRuleContext(0, RepeatStatementContext); - } - public whileStatement(): WhileStatementContext | undefined { - return this.tryGetRuleContext(0, WhileStatementContext); - } - public iterateStatement(): IterateStatementContext | undefined { - return this.tryGetRuleContext(0, IterateStatementContext); - } - public returnStatement(): ReturnStatementContext | undefined { - return this.tryGetRuleContext(0, ReturnStatementContext); - } - public cursorStatement(): CursorStatementContext | undefined { - return this.tryGetRuleContext(0, CursorStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_compoundStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCompoundStatement) { - listener.enterCompoundStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCompoundStatement) { - listener.exitCompoundStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCompoundStatement) { - return visitor.visitCompoundStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AdministrationStatementContext extends ParserRuleContext { - public alterUser(): AlterUserContext | undefined { - return this.tryGetRuleContext(0, AlterUserContext); - } - public createUser(): CreateUserContext | undefined { - return this.tryGetRuleContext(0, CreateUserContext); - } - public dropUser(): DropUserContext | undefined { - return this.tryGetRuleContext(0, DropUserContext); - } - public grantStatement(): GrantStatementContext | undefined { - return this.tryGetRuleContext(0, GrantStatementContext); - } - public grantProxy(): GrantProxyContext | undefined { - return this.tryGetRuleContext(0, GrantProxyContext); - } - public renameUser(): RenameUserContext | undefined { - return this.tryGetRuleContext(0, RenameUserContext); - } - public revokeStatement(): RevokeStatementContext | undefined { - return this.tryGetRuleContext(0, RevokeStatementContext); - } - public revokeProxy(): RevokeProxyContext | undefined { - return this.tryGetRuleContext(0, RevokeProxyContext); - } - public analyzeTable(): AnalyzeTableContext | undefined { - return this.tryGetRuleContext(0, AnalyzeTableContext); - } - public checkTable(): CheckTableContext | undefined { - return this.tryGetRuleContext(0, CheckTableContext); - } - public checksumTable(): ChecksumTableContext | undefined { - return this.tryGetRuleContext(0, ChecksumTableContext); - } - public optimizeTable(): OptimizeTableContext | undefined { - return this.tryGetRuleContext(0, OptimizeTableContext); - } - public repairTable(): RepairTableContext | undefined { - return this.tryGetRuleContext(0, RepairTableContext); - } - public createUdfunction(): CreateUdfunctionContext | undefined { - return this.tryGetRuleContext(0, CreateUdfunctionContext); - } - public installPlugin(): InstallPluginContext | undefined { - return this.tryGetRuleContext(0, InstallPluginContext); - } - public uninstallPlugin(): UninstallPluginContext | undefined { - return this.tryGetRuleContext(0, UninstallPluginContext); - } - public setStatement(): SetStatementContext | undefined { - return this.tryGetRuleContext(0, SetStatementContext); - } - public showStatement(): ShowStatementContext | undefined { - return this.tryGetRuleContext(0, ShowStatementContext); - } - public binlogStatement(): BinlogStatementContext | undefined { - return this.tryGetRuleContext(0, BinlogStatementContext); - } - public cacheIndexStatement(): CacheIndexStatementContext | undefined { - return this.tryGetRuleContext(0, CacheIndexStatementContext); - } - public flushStatement(): FlushStatementContext | undefined { - return this.tryGetRuleContext(0, FlushStatementContext); - } - public killStatement(): KillStatementContext | undefined { - return this.tryGetRuleContext(0, KillStatementContext); - } - public loadIndexIntoCache(): LoadIndexIntoCacheContext | undefined { - return this.tryGetRuleContext(0, LoadIndexIntoCacheContext); - } - public resetStatement(): ResetStatementContext | undefined { - return this.tryGetRuleContext(0, ResetStatementContext); - } - public shutdownStatement(): ShutdownStatementContext | undefined { - return this.tryGetRuleContext(0, ShutdownStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_administrationStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAdministrationStatement) { - listener.enterAdministrationStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAdministrationStatement) { - listener.exitAdministrationStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAdministrationStatement) { - return visitor.visitAdministrationStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UtilityStatementContext extends ParserRuleContext { - public simpleDescribeStatement(): SimpleDescribeStatementContext | undefined { - return this.tryGetRuleContext(0, SimpleDescribeStatementContext); - } - public fullDescribeStatement(): FullDescribeStatementContext | undefined { - return this.tryGetRuleContext(0, FullDescribeStatementContext); - } - public helpStatement(): HelpStatementContext | undefined { - return this.tryGetRuleContext(0, HelpStatementContext); - } - public useStatement(): UseStatementContext | undefined { - return this.tryGetRuleContext(0, UseStatementContext); - } - public signalStatement(): SignalStatementContext | undefined { - return this.tryGetRuleContext(0, SignalStatementContext); - } - public resignalStatement(): ResignalStatementContext | undefined { - return this.tryGetRuleContext(0, ResignalStatementContext); - } - public diagnosticsStatement(): DiagnosticsStatementContext | undefined { - return this.tryGetRuleContext(0, DiagnosticsStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_utilityStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUtilityStatement) { - listener.enterUtilityStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUtilityStatement) { - listener.exitUtilityStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUtilityStatement) { - return visitor.visitUtilityStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateDatabaseContext extends ParserRuleContext { - public _dbFormat!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA, 0); } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - public createDatabaseOption(): CreateDatabaseOptionContext[]; - public createDatabaseOption(i: number): CreateDatabaseOptionContext; - public createDatabaseOption(i?: number): CreateDatabaseOptionContext | CreateDatabaseOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(CreateDatabaseOptionContext); - } else { - return this.getRuleContext(i, CreateDatabaseOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createDatabase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateDatabase) { - listener.enterCreateDatabase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateDatabase) { - listener.exitCreateDatabase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateDatabase) { - return visitor.visitCreateDatabase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateEventContext extends ParserRuleContext { - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public EVENT(): TerminalNode { return this.getToken(SqlParser.EVENT, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public ON(): TerminalNode[]; - public ON(i: number): TerminalNode; - public ON(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ON); - } else { - return this.getToken(SqlParser.ON, i); - } - } - public SCHEDULE(): TerminalNode { return this.getToken(SqlParser.SCHEDULE, 0); } - public scheduleExpression(): ScheduleExpressionContext { - return this.getRuleContext(0, ScheduleExpressionContext); - } - public DO(): TerminalNode { return this.getToken(SqlParser.DO, 0); } - public routineBody(): RoutineBodyContext { - return this.getRuleContext(0, RoutineBodyContext); - } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - public COMPLETION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPLETION, 0); } - public PRESERVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRESERVE, 0); } - public enableType(): EnableTypeContext | undefined { - return this.tryGetRuleContext(0, EnableTypeContext); - } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createEvent; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateEvent) { - listener.enterCreateEvent(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateEvent) { - listener.exitCreateEvent(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateEvent) { - return visitor.visitCreateEvent(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateIndexContext extends ParserRuleContext { - public _intimeAction!: Token; - public _indexCategory!: Token; - public _algType!: Token; - public _lockType!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public ALGORITHM(): TerminalNode[]; - public ALGORITHM(i: number): TerminalNode; - public ALGORITHM(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ALGORITHM); - } else { - return this.getToken(SqlParser.ALGORITHM, i); - } - } - public LOCK(): TerminalNode[]; - public LOCK(i: number): TerminalNode; - public LOCK(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LOCK); - } else { - return this.getToken(SqlParser.LOCK, i); - } - } - public ONLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLINE, 0); } - public OFFLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFLINE, 0); } - public UNIQUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNIQUE, 0); } - public FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULLTEXT, 0); } - public SPATIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SPATIAL, 0); } - public DEFAULT(): TerminalNode[]; - public DEFAULT(i: number): TerminalNode; - public DEFAULT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.DEFAULT); - } else { - return this.getToken(SqlParser.DEFAULT, i); - } - } - public INPLACE(): TerminalNode[]; - public INPLACE(i: number): TerminalNode; - public INPLACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.INPLACE); - } else { - return this.getToken(SqlParser.INPLACE, i); - } - } - public COPY(): TerminalNode[]; - public COPY(i: number): TerminalNode; - public COPY(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COPY); - } else { - return this.getToken(SqlParser.COPY, i); - } - } - public NONE(): TerminalNode[]; - public NONE(i: number): TerminalNode; - public NONE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.NONE); - } else { - return this.getToken(SqlParser.NONE, i); - } - } - public SHARED(): TerminalNode[]; - public SHARED(i: number): TerminalNode; - public SHARED(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SHARED); - } else { - return this.getToken(SqlParser.SHARED, i); - } - } - public EXCLUSIVE(): TerminalNode[]; - public EXCLUSIVE(i: number): TerminalNode; - public EXCLUSIVE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EXCLUSIVE); - } else { - return this.getToken(SqlParser.EXCLUSIVE, i); - } - } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createIndex; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateIndex) { - listener.enterCreateIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateIndex) { - listener.exitCreateIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateIndex) { - return visitor.visitCreateIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateLogfileGroupContext extends ParserRuleContext { - public _undoFile!: Token; - public _initSize!: FileSizeLiteralContext; - public _undoSize!: FileSizeLiteralContext; - public _redoSize!: FileSizeLiteralContext; - public _comment!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public LOGFILE(): TerminalNode { return this.getToken(SqlParser.LOGFILE, 0); } - public GROUP(): TerminalNode { return this.getToken(SqlParser.GROUP, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public UNDOFILE(): TerminalNode { return this.getToken(SqlParser.UNDOFILE, 0); } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INITIAL_SIZE, 0); } - public UNDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDO_BUFFER_SIZE, 0); } - public REDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REDO_BUFFER_SIZE, 0); } - public NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NODEGROUP, 0); } - public WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT, 0); } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public fileSizeLiteral(): FileSizeLiteralContext[]; - public fileSizeLiteral(i: number): FileSizeLiteralContext; - public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(FileSizeLiteralContext); - } else { - return this.getRuleContext(i, FileSizeLiteralContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createLogfileGroup; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateLogfileGroup) { - listener.enterCreateLogfileGroup(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateLogfileGroup) { - listener.exitCreateLogfileGroup(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateLogfileGroup) { - return visitor.visitCreateLogfileGroup(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateProcedureContext extends ParserRuleContext { - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public PROCEDURE(): TerminalNode { return this.getToken(SqlParser.PROCEDURE, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public routineBody(): RoutineBodyContext { - return this.getRuleContext(0, RoutineBodyContext); - } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public procedureParameter(): ProcedureParameterContext[]; - public procedureParameter(i: number): ProcedureParameterContext; - public procedureParameter(i?: number): ProcedureParameterContext | ProcedureParameterContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureParameterContext); - } else { - return this.getRuleContext(i, ProcedureParameterContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public routineOption(): RoutineOptionContext[]; - public routineOption(i: number): RoutineOptionContext; - public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(RoutineOptionContext); - } else { - return this.getRuleContext(i, RoutineOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createProcedure; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateProcedure) { - listener.enterCreateProcedure(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateProcedure) { - listener.exitCreateProcedure(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateProcedure) { - return visitor.visitCreateProcedure(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateFunctionContext extends ParserRuleContext { - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public FUNCTION(): TerminalNode { return this.getToken(SqlParser.FUNCTION, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public RETURNS(): TerminalNode { return this.getToken(SqlParser.RETURNS, 0); } - public dataType(): DataTypeContext { - return this.getRuleContext(0, DataTypeContext); - } - public routineBody(): RoutineBodyContext | undefined { - return this.tryGetRuleContext(0, RoutineBodyContext); - } - public returnStatement(): ReturnStatementContext | undefined { - return this.tryGetRuleContext(0, ReturnStatementContext); - } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public functionParameter(): FunctionParameterContext[]; - public functionParameter(i: number): FunctionParameterContext; - public functionParameter(i?: number): FunctionParameterContext | FunctionParameterContext[] { - if (i === undefined) { - return this.getRuleContexts(FunctionParameterContext); - } else { - return this.getRuleContext(i, FunctionParameterContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public routineOption(): RoutineOptionContext[]; - public routineOption(i: number): RoutineOptionContext; - public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(RoutineOptionContext); - } else { - return this.getRuleContext(i, RoutineOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createFunction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateFunction) { - listener.enterCreateFunction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateFunction) { - listener.exitCreateFunction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateFunction) { - return visitor.visitCreateFunction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateServerContext extends ParserRuleContext { - public _wrapperName!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public SERVER(): TerminalNode { return this.getToken(SqlParser.SERVER, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public FOREIGN(): TerminalNode { return this.getToken(SqlParser.FOREIGN, 0); } - public DATA(): TerminalNode { return this.getToken(SqlParser.DATA, 0); } - public WRAPPER(): TerminalNode { return this.getToken(SqlParser.WRAPPER, 0); } - public OPTIONS(): TerminalNode { return this.getToken(SqlParser.OPTIONS, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public serverOption(): ServerOptionContext[]; - public serverOption(i: number): ServerOptionContext; - public serverOption(i?: number): ServerOptionContext | ServerOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(ServerOptionContext); - } else { - return this.getRuleContext(i, ServerOptionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public MYSQL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYSQL, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createServer; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateServer) { - listener.enterCreateServer(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateServer) { - listener.exitCreateServer(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateServer) { - return visitor.visitCreateServer(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateTableContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createTable; } - public copyFrom(ctx: CreateTableContext): void { - super.copyFrom(ctx); - } -} -export class CopyCreateTableContext extends CreateTableContext { - public _parenthesisTable!: TableNameContext; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext[]; - public tableName(i: number): TableNameContext; - public tableName(i?: number): TableNameContext | TableNameContext[] { - if (i === undefined) { - return this.getRuleContexts(TableNameContext); - } else { - return this.getRuleContext(i, TableNameContext); - } - } - public LIKE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIKE, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - constructor(ctx: CreateTableContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCopyCreateTable) { - listener.enterCopyCreateTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCopyCreateTable) { - listener.exitCopyCreateTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCopyCreateTable) { - return visitor.visitCopyCreateTable(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class QueryCreateTableContext extends CreateTableContext { - public _keyViolate!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - public createDefinitions(): CreateDefinitionsContext | undefined { - return this.tryGetRuleContext(0, CreateDefinitionsContext); - } - public tableOption(): TableOptionContext[]; - public tableOption(i: number): TableOptionContext; - public tableOption(i?: number): TableOptionContext | TableOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TableOptionContext); - } else { - return this.getRuleContext(i, TableOptionContext); - } - } - public partitionDefinitions(): PartitionDefinitionsContext | undefined { - return this.tryGetRuleContext(0, PartitionDefinitionsContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public REPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLACE, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: CreateTableContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterQueryCreateTable) { - listener.enterQueryCreateTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitQueryCreateTable) { - listener.exitQueryCreateTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitQueryCreateTable) { - return visitor.visitQueryCreateTable(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ColumnCreateTableContext extends CreateTableContext { - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public createDefinitions(): CreateDefinitionsContext { - return this.getRuleContext(0, CreateDefinitionsContext); - } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - public tableOption(): TableOptionContext[]; - public tableOption(i: number): TableOptionContext; - public tableOption(i?: number): TableOptionContext | TableOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TableOptionContext); - } else { - return this.getRuleContext(i, TableOptionContext); - } - } - public partitionDefinitions(): PartitionDefinitionsContext | undefined { - return this.tryGetRuleContext(0, PartitionDefinitionsContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: CreateTableContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterColumnCreateTable) { - listener.enterColumnCreateTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitColumnCreateTable) { - listener.exitColumnCreateTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitColumnCreateTable) { - return visitor.visitColumnCreateTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateTablespaceInnodbContext extends ParserRuleContext { - public _datafile!: Token; - public _fileBlockSize!: FileSizeLiteralContext; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public DATAFILE(): TerminalNode { return this.getToken(SqlParser.DATAFILE, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public FILE_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILE_BLOCK_SIZE, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public ENGINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext | undefined { - return this.tryGetRuleContext(0, EngineNameContext); - } - public fileSizeLiteral(): FileSizeLiteralContext | undefined { - return this.tryGetRuleContext(0, FileSizeLiteralContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createTablespaceInnodb; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateTablespaceInnodb) { - listener.enterCreateTablespaceInnodb(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateTablespaceInnodb) { - listener.exitCreateTablespaceInnodb(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateTablespaceInnodb) { - return visitor.visitCreateTablespaceInnodb(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateTablespaceNdbContext extends ParserRuleContext { - public _datafile!: Token; - public _extentSize!: FileSizeLiteralContext; - public _initialSize!: FileSizeLiteralContext; - public _autoextendSize!: FileSizeLiteralContext; - public _maxSize!: FileSizeLiteralContext; - public _comment!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public DATAFILE(): TerminalNode { return this.getToken(SqlParser.DATAFILE, 0); } - public USE(): TerminalNode { return this.getToken(SqlParser.USE, 0); } - public LOGFILE(): TerminalNode { return this.getToken(SqlParser.LOGFILE, 0); } - public GROUP(): TerminalNode { return this.getToken(SqlParser.GROUP, 0); } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public EXTENT_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENT_SIZE, 0); } - public INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INITIAL_SIZE, 0); } - public AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTOEXTEND_SIZE, 0); } - public MAX_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_SIZE, 0); } - public NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NODEGROUP, 0); } - public WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT, 0); } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public fileSizeLiteral(): FileSizeLiteralContext[]; - public fileSizeLiteral(i: number): FileSizeLiteralContext; - public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(FileSizeLiteralContext); - } else { - return this.getRuleContext(i, FileSizeLiteralContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createTablespaceNdb; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateTablespaceNdb) { - listener.enterCreateTablespaceNdb(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateTablespaceNdb) { - listener.exitCreateTablespaceNdb(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateTablespaceNdb) { - return visitor.visitCreateTablespaceNdb(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateTriggerContext extends ParserRuleContext { - public _thisTrigger!: FullIdContext; - public _triggerTime!: Token; - public _triggerEvent!: Token; - public _triggerPlace!: Token; - public _otherTrigger!: FullIdContext; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public TRIGGER(): TerminalNode { return this.getToken(SqlParser.TRIGGER, 0); } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public EACH(): TerminalNode { return this.getToken(SqlParser.EACH, 0); } - public ROW(): TerminalNode { return this.getToken(SqlParser.ROW, 0); } - public routineBody(): RoutineBodyContext { - return this.getRuleContext(0, RoutineBodyContext); - } - public fullId(): FullIdContext[]; - public fullId(i: number): FullIdContext; - public fullId(i?: number): FullIdContext | FullIdContext[] { - if (i === undefined) { - return this.getRuleContexts(FullIdContext); - } else { - return this.getRuleContext(i, FullIdContext); - } - } - public BEFORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BEFORE, 0); } - public AFTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AFTER, 0); } - public INSERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSERT, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - public DELETE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELETE, 0); } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public FOLLOWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOLLOWS, 0); } - public PRECEDES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRECEDES, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createTrigger; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateTrigger) { - listener.enterCreateTrigger(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateTrigger) { - listener.exitCreateTrigger(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateTrigger) { - return visitor.visitCreateTrigger(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateViewContext extends ParserRuleContext { - public _algType!: Token; - public _secContext!: Token; - public _checkOption!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public VIEW(): TerminalNode { return this.getToken(SqlParser.VIEW, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public AS(): TerminalNode { return this.getToken(SqlParser.AS, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public OR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OR, 0); } - public REPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLACE, 0); } - public ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALGORITHM, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public SQL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL, 0); } - public SECURITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECURITY, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public CHECK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHECK, 0); } - public OPTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTION, 0); } - public UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDEFINED, 0); } - public MERGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MERGE, 0); } - public TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPTABLE, 0); } - public DEFINER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFINER, 0); } - public INVOKER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVOKER, 0); } - public CASCADED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADED, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createView; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateView) { - listener.enterCreateView(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateView) { - listener.exitCreateView(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateView) { - return visitor.visitCreateView(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateDatabaseOptionContext extends ParserRuleContext { - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public DEFAULT(): TerminalNode[]; - public DEFAULT(i: number): TerminalNode; - public DEFAULT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.DEFAULT); - } else { - return this.getToken(SqlParser.DEFAULT, i); - } - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createDatabaseOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateDatabaseOption) { - listener.enterCreateDatabaseOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateDatabaseOption) { - listener.exitCreateDatabaseOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateDatabaseOption) { - return visitor.visitCreateDatabaseOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class OwnerStatementContext extends ParserRuleContext { - public DEFINER(): TerminalNode { return this.getToken(SqlParser.DEFINER, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public userName(): UserNameContext | undefined { - return this.tryGetRuleContext(0, UserNameContext); - } - public CURRENT_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_USER, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_ownerStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOwnerStatement) { - listener.enterOwnerStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOwnerStatement) { - listener.exitOwnerStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOwnerStatement) { - return visitor.visitOwnerStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ScheduleExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_scheduleExpression; } - public copyFrom(ctx: ScheduleExpressionContext): void { - super.copyFrom(ctx); - } -} -export class PreciseScheduleContext extends ScheduleExpressionContext { - public AT(): TerminalNode { return this.getToken(SqlParser.AT, 0); } - public timestampValue(): TimestampValueContext { - return this.getRuleContext(0, TimestampValueContext); - } - public intervalExpr(): IntervalExprContext[]; - public intervalExpr(i: number): IntervalExprContext; - public intervalExpr(i?: number): IntervalExprContext | IntervalExprContext[] { - if (i === undefined) { - return this.getRuleContexts(IntervalExprContext); - } else { - return this.getRuleContext(i, IntervalExprContext); - } - } - constructor(ctx: ScheduleExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPreciseSchedule) { - listener.enterPreciseSchedule(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPreciseSchedule) { - listener.exitPreciseSchedule(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPreciseSchedule) { - return visitor.visitPreciseSchedule(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IntervalScheduleContext extends ScheduleExpressionContext { - public _startTimestamp!: TimestampValueContext; - public _intervalExpr!: IntervalExprContext; - public _startIntervals: IntervalExprContext[] = []; - public _endTimestamp!: TimestampValueContext; - public _endIntervals: IntervalExprContext[] = []; - public EVERY(): TerminalNode { return this.getToken(SqlParser.EVERY, 0); } - public intervalType(): IntervalTypeContext { - return this.getRuleContext(0, IntervalTypeContext); - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public STARTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STARTS, 0); } - public ENDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENDS, 0); } - public timestampValue(): TimestampValueContext[]; - public timestampValue(i: number): TimestampValueContext; - public timestampValue(i?: number): TimestampValueContext | TimestampValueContext[] { - if (i === undefined) { - return this.getRuleContexts(TimestampValueContext); - } else { - return this.getRuleContext(i, TimestampValueContext); - } - } - public intervalExpr(): IntervalExprContext[]; - public intervalExpr(i: number): IntervalExprContext; - public intervalExpr(i?: number): IntervalExprContext | IntervalExprContext[] { - if (i === undefined) { - return this.getRuleContexts(IntervalExprContext); - } else { - return this.getRuleContext(i, IntervalExprContext); - } - } - constructor(ctx: ScheduleExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIntervalSchedule) { - listener.enterIntervalSchedule(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIntervalSchedule) { - listener.exitIntervalSchedule(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIntervalSchedule) { - return visitor.visitIntervalSchedule(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TimestampValueContext extends ParserRuleContext { - public CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIMESTAMP, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_timestampValue; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTimestampValue) { - listener.enterTimestampValue(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTimestampValue) { - listener.exitTimestampValue(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTimestampValue) { - return visitor.visitTimestampValue(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IntervalExprContext extends ParserRuleContext { - public PLUS(): TerminalNode { return this.getToken(SqlParser.PLUS, 0); } - public INTERVAL(): TerminalNode { return this.getToken(SqlParser.INTERVAL, 0); } - public intervalType(): IntervalTypeContext { - return this.getRuleContext(0, IntervalTypeContext); - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_intervalExpr; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIntervalExpr) { - listener.enterIntervalExpr(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIntervalExpr) { - listener.exitIntervalExpr(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIntervalExpr) { - return visitor.visitIntervalExpr(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IntervalTypeContext extends ParserRuleContext { - public intervalTypeBase(): IntervalTypeBaseContext | undefined { - return this.tryGetRuleContext(0, IntervalTypeBaseContext); - } - public YEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEAR, 0); } - public YEAR_MONTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEAR_MONTH, 0); } - public DAY_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY_HOUR, 0); } - public DAY_MINUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY_MINUTE, 0); } - public DAY_SECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY_SECOND, 0); } - public HOUR_MINUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOUR_MINUTE, 0); } - public HOUR_SECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOUR_SECOND, 0); } - public MINUTE_SECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUTE_SECOND, 0); } - public SECOND_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECOND_MICROSECOND, 0); } - public MINUTE_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUTE_MICROSECOND, 0); } - public HOUR_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOUR_MICROSECOND, 0); } - public DAY_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY_MICROSECOND, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_intervalType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIntervalType) { - listener.enterIntervalType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIntervalType) { - listener.exitIntervalType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIntervalType) { - return visitor.visitIntervalType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class EnableTypeContext extends ParserRuleContext { - public ENABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENABLE, 0); } - public DISABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISABLE, 0); } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public SLAVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLAVE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_enableType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterEnableType) { - listener.enterEnableType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitEnableType) { - listener.exitEnableType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitEnableType) { - return visitor.visitEnableType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexTypeContext extends ParserRuleContext { - public USING(): TerminalNode { return this.getToken(SqlParser.USING, 0); } - public BTREE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BTREE, 0); } - public HASH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HASH, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexType) { - listener.enterIndexType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexType) { - listener.exitIndexType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexType) { - return visitor.visitIndexType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexOptionContext extends ParserRuleContext { - public KEY_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY_BLOCK_SIZE, 0); } - public fileSizeLiteral(): FileSizeLiteralContext | undefined { - return this.tryGetRuleContext(0, FileSizeLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public PARSER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARSER, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVISIBLE, 0); } - public VISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VISIBLE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexOption) { - listener.enterIndexOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexOption) { - listener.exitIndexOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexOption) { - return visitor.visitIndexOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ProcedureParameterContext extends ParserRuleContext { - public _direction!: Token; - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public dataType(): DataTypeContext { - return this.getRuleContext(0, DataTypeContext); - } - public IN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IN, 0); } - public OUT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OUT, 0); } - public INOUT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INOUT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_procedureParameter; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterProcedureParameter) { - listener.enterProcedureParameter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitProcedureParameter) { - listener.exitProcedureParameter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitProcedureParameter) { - return visitor.visitProcedureParameter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionParameterContext extends ParserRuleContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public dataType(): DataTypeContext { - return this.getRuleContext(0, DataTypeContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_functionParameter; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFunctionParameter) { - listener.enterFunctionParameter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFunctionParameter) { - listener.exitFunctionParameter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFunctionParameter) { - return visitor.visitFunctionParameter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RoutineOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_routineOption; } - public copyFrom(ctx: RoutineOptionContext): void { - super.copyFrom(ctx); - } -} -export class RoutineCommentContext extends RoutineOptionContext { - public COMMENT(): TerminalNode { return this.getToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: RoutineOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineComment) { - listener.enterRoutineComment(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineComment) { - listener.exitRoutineComment(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineComment) { - return visitor.visitRoutineComment(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RoutineLanguageContext extends RoutineOptionContext { - public LANGUAGE(): TerminalNode { return this.getToken(SqlParser.LANGUAGE, 0); } - public SQL(): TerminalNode { return this.getToken(SqlParser.SQL, 0); } - constructor(ctx: RoutineOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineLanguage) { - listener.enterRoutineLanguage(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineLanguage) { - listener.exitRoutineLanguage(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineLanguage) { - return visitor.visitRoutineLanguage(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RoutineBehaviorContext extends RoutineOptionContext { - public DETERMINISTIC(): TerminalNode { return this.getToken(SqlParser.DETERMINISTIC, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(ctx: RoutineOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineBehavior) { - listener.enterRoutineBehavior(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineBehavior) { - listener.exitRoutineBehavior(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineBehavior) { - return visitor.visitRoutineBehavior(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RoutineDataContext extends RoutineOptionContext { - public CONTAINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTAINS, 0); } - public SQL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL, 0); } - public NO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO, 0); } - public READS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READS, 0); } - public DATA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATA, 0); } - public MODIFIES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MODIFIES, 0); } - constructor(ctx: RoutineOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineData) { - listener.enterRoutineData(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineData) { - listener.exitRoutineData(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineData) { - return visitor.visitRoutineData(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RoutineSecurityContext extends RoutineOptionContext { - public _context!: Token; - public SQL(): TerminalNode { return this.getToken(SqlParser.SQL, 0); } - public SECURITY(): TerminalNode { return this.getToken(SqlParser.SECURITY, 0); } - public DEFINER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFINER, 0); } - public INVOKER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVOKER, 0); } - constructor(ctx: RoutineOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineSecurity) { - listener.enterRoutineSecurity(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineSecurity) { - listener.exitRoutineSecurity(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineSecurity) { - return visitor.visitRoutineSecurity(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ServerOptionContext extends ParserRuleContext { - public HOST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOST, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USER, 0); } - public PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PASSWORD, 0); } - public SOCKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOCKET, 0); } - public OWNER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OWNER, 0); } - public PORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PORT, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_serverOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterServerOption) { - listener.enterServerOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitServerOption) { - listener.exitServerOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitServerOption) { - return visitor.visitServerOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateDefinitionsContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public createDefinition(): CreateDefinitionContext[]; - public createDefinition(i: number): CreateDefinitionContext; - public createDefinition(i?: number): CreateDefinitionContext | CreateDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(CreateDefinitionContext); - } else { - return this.getRuleContext(i, CreateDefinitionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createDefinitions; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateDefinitions) { - listener.enterCreateDefinitions(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateDefinitions) { - listener.exitCreateDefinitions(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateDefinitions) { - return visitor.visitCreateDefinitions(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateDefinitionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createDefinition; } - public copyFrom(ctx: CreateDefinitionContext): void { - super.copyFrom(ctx); - } -} -export class ColumnDeclarationContext extends CreateDefinitionContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public columnDefinition(): ColumnDefinitionContext { - return this.getRuleContext(0, ColumnDefinitionContext); - } - constructor(ctx: CreateDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterColumnDeclaration) { - listener.enterColumnDeclaration(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitColumnDeclaration) { - listener.exitColumnDeclaration(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitColumnDeclaration) { - return visitor.visitColumnDeclaration(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ConstraintDeclarationContext extends CreateDefinitionContext { - public tableConstraint(): TableConstraintContext { - return this.getRuleContext(0, TableConstraintContext); - } - constructor(ctx: CreateDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterConstraintDeclaration) { - listener.enterConstraintDeclaration(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitConstraintDeclaration) { - listener.exitConstraintDeclaration(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitConstraintDeclaration) { - return visitor.visitConstraintDeclaration(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IndexDeclarationContext extends CreateDefinitionContext { - public indexColumnDefinition(): IndexColumnDefinitionContext { - return this.getRuleContext(0, IndexColumnDefinitionContext); - } - constructor(ctx: CreateDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexDeclaration) { - listener.enterIndexDeclaration(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexDeclaration) { - listener.exitIndexDeclaration(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexDeclaration) { - return visitor.visitIndexDeclaration(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ColumnDefinitionContext extends ParserRuleContext { - public dataType(): DataTypeContext { - return this.getRuleContext(0, DataTypeContext); - } - public columnConstraint(): ColumnConstraintContext[]; - public columnConstraint(i: number): ColumnConstraintContext; - public columnConstraint(i?: number): ColumnConstraintContext | ColumnConstraintContext[] { - if (i === undefined) { - return this.getRuleContexts(ColumnConstraintContext); - } else { - return this.getRuleContext(i, ColumnConstraintContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_columnDefinition; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterColumnDefinition) { - listener.enterColumnDefinition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitColumnDefinition) { - listener.exitColumnDefinition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitColumnDefinition) { - return visitor.visitColumnDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ColumnConstraintContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_columnConstraint; } - public copyFrom(ctx: ColumnConstraintContext): void { - super.copyFrom(ctx); - } -} -export class NullColumnConstraintContext extends ColumnConstraintContext { - public nullNotnull(): NullNotnullContext { - return this.getRuleContext(0, NullNotnullContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNullColumnConstraint) { - listener.enterNullColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNullColumnConstraint) { - listener.exitNullColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNullColumnConstraint) { - return visitor.visitNullColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefaultColumnConstraintContext extends ColumnConstraintContext { - public DEFAULT(): TerminalNode { return this.getToken(SqlParser.DEFAULT, 0); } - public defaultValue(): DefaultValueContext { - return this.getRuleContext(0, DefaultValueContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefaultColumnConstraint) { - listener.enterDefaultColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefaultColumnConstraint) { - listener.exitDefaultColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefaultColumnConstraint) { - return visitor.visitDefaultColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AutoIncrementColumnConstraintContext extends ColumnConstraintContext { - public AUTO_INCREMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTO_INCREMENT, 0); } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - public currentTimestamp(): CurrentTimestampContext | undefined { - return this.tryGetRuleContext(0, CurrentTimestampContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAutoIncrementColumnConstraint) { - listener.enterAutoIncrementColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAutoIncrementColumnConstraint) { - listener.exitAutoIncrementColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAutoIncrementColumnConstraint) { - return visitor.visitAutoIncrementColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PrimaryKeyColumnConstraintContext extends ColumnConstraintContext { - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public PRIMARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIMARY, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrimaryKeyColumnConstraint) { - listener.enterPrimaryKeyColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrimaryKeyColumnConstraint) { - listener.exitPrimaryKeyColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrimaryKeyColumnConstraint) { - return visitor.visitPrimaryKeyColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UniqueKeyColumnConstraintContext extends ColumnConstraintContext { - public UNIQUE(): TerminalNode { return this.getToken(SqlParser.UNIQUE, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUniqueKeyColumnConstraint) { - listener.enterUniqueKeyColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUniqueKeyColumnConstraint) { - listener.exitUniqueKeyColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUniqueKeyColumnConstraint) { - return visitor.visitUniqueKeyColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CommentColumnConstraintContext extends ColumnConstraintContext { - public COMMENT(): TerminalNode { return this.getToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCommentColumnConstraint) { - listener.enterCommentColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCommentColumnConstraint) { - listener.exitCommentColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCommentColumnConstraint) { - return visitor.visitCommentColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class FormatColumnConstraintContext extends ColumnConstraintContext { - public _colformat!: Token; - public COLUMN_FORMAT(): TerminalNode { return this.getToken(SqlParser.COLUMN_FORMAT, 0); } - public FIXED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIXED, 0); } - public DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DYNAMIC, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFormatColumnConstraint) { - listener.enterFormatColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFormatColumnConstraint) { - listener.exitFormatColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFormatColumnConstraint) { - return visitor.visitFormatColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class StorageColumnConstraintContext extends ColumnConstraintContext { - public _storageval!: Token; - public STORAGE(): TerminalNode { return this.getToken(SqlParser.STORAGE, 0); } - public DISK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISK, 0); } - public MEMORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEMORY, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStorageColumnConstraint) { - listener.enterStorageColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStorageColumnConstraint) { - listener.exitStorageColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStorageColumnConstraint) { - return visitor.visitStorageColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ReferenceColumnConstraintContext extends ColumnConstraintContext { - public referenceDefinition(): ReferenceDefinitionContext { - return this.getRuleContext(0, ReferenceDefinitionContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReferenceColumnConstraint) { - listener.enterReferenceColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReferenceColumnConstraint) { - listener.exitReferenceColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReferenceColumnConstraint) { - return visitor.visitReferenceColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CollateColumnConstraintContext extends ColumnConstraintContext { - public COLLATE(): TerminalNode { return this.getToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext { - return this.getRuleContext(0, CollationNameContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCollateColumnConstraint) { - listener.enterCollateColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCollateColumnConstraint) { - listener.exitCollateColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCollateColumnConstraint) { - return visitor.visitCollateColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class GeneratedColumnConstraintContext extends ColumnConstraintContext { - public AS(): TerminalNode { return this.getToken(SqlParser.AS, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public GENERATED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GENERATED, 0); } - public ALWAYS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALWAYS, 0); } - public VIRTUAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VIRTUAL, 0); } - public STORED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STORED, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGeneratedColumnConstraint) { - listener.enterGeneratedColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGeneratedColumnConstraint) { - listener.exitGeneratedColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGeneratedColumnConstraint) { - return visitor.visitGeneratedColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SerialDefaultColumnConstraintContext extends ColumnConstraintContext { - public SERIAL(): TerminalNode { return this.getToken(SqlParser.SERIAL, 0); } - public DEFAULT(): TerminalNode { return this.getToken(SqlParser.DEFAULT, 0); } - public VALUE(): TerminalNode { return this.getToken(SqlParser.VALUE, 0); } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSerialDefaultColumnConstraint) { - listener.enterSerialDefaultColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSerialDefaultColumnConstraint) { - listener.exitSerialDefaultColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSerialDefaultColumnConstraint) { - return visitor.visitSerialDefaultColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CheckColumnConstraintContext extends ColumnConstraintContext { - public _name!: UidContext; - public CHECK(): TerminalNode { return this.getToken(SqlParser.CHECK, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - constructor(ctx: ColumnConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCheckColumnConstraint) { - listener.enterCheckColumnConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCheckColumnConstraint) { - listener.exitCheckColumnConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCheckColumnConstraint) { - return visitor.visitCheckColumnConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableConstraintContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableConstraint; } - public copyFrom(ctx: TableConstraintContext): void { - super.copyFrom(ctx); - } -} -export class PrimaryKeyTableConstraintContext extends TableConstraintContext { - public _name!: UidContext; - public _index!: UidContext; - public PRIMARY(): TerminalNode { return this.getToken(SqlParser.PRIMARY, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - constructor(ctx: TableConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrimaryKeyTableConstraint) { - listener.enterPrimaryKeyTableConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrimaryKeyTableConstraint) { - listener.exitPrimaryKeyTableConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrimaryKeyTableConstraint) { - return visitor.visitPrimaryKeyTableConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UniqueKeyTableConstraintContext extends TableConstraintContext { - public _name!: UidContext; - public _indexFormat!: Token; - public _index!: UidContext; - public UNIQUE(): TerminalNode { return this.getToken(SqlParser.UNIQUE, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: TableConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUniqueKeyTableConstraint) { - listener.enterUniqueKeyTableConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUniqueKeyTableConstraint) { - listener.exitUniqueKeyTableConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUniqueKeyTableConstraint) { - return visitor.visitUniqueKeyTableConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ForeignKeyTableConstraintContext extends TableConstraintContext { - public _name!: UidContext; - public _index!: UidContext; - public FOREIGN(): TerminalNode { return this.getToken(SqlParser.FOREIGN, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public referenceDefinition(): ReferenceDefinitionContext { - return this.getRuleContext(0, ReferenceDefinitionContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - constructor(ctx: TableConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterForeignKeyTableConstraint) { - listener.enterForeignKeyTableConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitForeignKeyTableConstraint) { - listener.exitForeignKeyTableConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitForeignKeyTableConstraint) { - return visitor.visitForeignKeyTableConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CheckTableConstraintContext extends TableConstraintContext { - public _name!: UidContext; - public CHECK(): TerminalNode { return this.getToken(SqlParser.CHECK, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - constructor(ctx: TableConstraintContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCheckTableConstraint) { - listener.enterCheckTableConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCheckTableConstraint) { - listener.exitCheckTableConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCheckTableConstraint) { - return visitor.visitCheckTableConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReferenceDefinitionContext extends ParserRuleContext { - public _matchType!: Token; - public REFERENCES(): TerminalNode { return this.getToken(SqlParser.REFERENCES, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public indexColumnNames(): IndexColumnNamesContext | undefined { - return this.tryGetRuleContext(0, IndexColumnNamesContext); - } - public MATCH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MATCH, 0); } - public referenceAction(): ReferenceActionContext | undefined { - return this.tryGetRuleContext(0, ReferenceActionContext); - } - public FULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULL, 0); } - public PARTIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTIAL, 0); } - public SIMPLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIMPLE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_referenceDefinition; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReferenceDefinition) { - listener.enterReferenceDefinition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReferenceDefinition) { - listener.exitReferenceDefinition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReferenceDefinition) { - return visitor.visitReferenceDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReferenceActionContext extends ParserRuleContext { - public _onDelete!: ReferenceControlTypeContext; - public _onUpdate!: ReferenceControlTypeContext; - public ON(): TerminalNode[]; - public ON(i: number): TerminalNode; - public ON(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ON); - } else { - return this.getToken(SqlParser.ON, i); - } - } - public DELETE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELETE, 0); } - public referenceControlType(): ReferenceControlTypeContext[]; - public referenceControlType(i: number): ReferenceControlTypeContext; - public referenceControlType(i?: number): ReferenceControlTypeContext | ReferenceControlTypeContext[] { - if (i === undefined) { - return this.getRuleContexts(ReferenceControlTypeContext); - } else { - return this.getRuleContext(i, ReferenceControlTypeContext); - } - } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_referenceAction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReferenceAction) { - listener.enterReferenceAction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReferenceAction) { - listener.exitReferenceAction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReferenceAction) { - return visitor.visitReferenceAction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReferenceControlTypeContext extends ParserRuleContext { - public RESTRICT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESTRICT, 0); } - public CASCADE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADE, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_LITERAL, 0); } - public NO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO, 0); } - public ACTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ACTION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_referenceControlType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReferenceControlType) { - listener.enterReferenceControlType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReferenceControlType) { - listener.exitReferenceControlType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReferenceControlType) { - return visitor.visitReferenceControlType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexColumnDefinitionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexColumnDefinition; } - public copyFrom(ctx: IndexColumnDefinitionContext): void { - super.copyFrom(ctx); - } -} -export class SimpleIndexDeclarationContext extends IndexColumnDefinitionContext { - public _indexFormat!: Token; - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - constructor(ctx: IndexColumnDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleIndexDeclaration) { - listener.enterSimpleIndexDeclaration(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleIndexDeclaration) { - listener.exitSimpleIndexDeclaration(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleIndexDeclaration) { - return visitor.visitSimpleIndexDeclaration(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SpecialIndexDeclarationContext extends IndexColumnDefinitionContext { - public _indexFormat!: Token; - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULLTEXT, 0); } - public SPATIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SPATIAL, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: IndexColumnDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSpecialIndexDeclaration) { - listener.enterSpecialIndexDeclaration(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSpecialIndexDeclaration) { - listener.exitSpecialIndexDeclaration(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSpecialIndexDeclaration) { - return visitor.visitSpecialIndexDeclaration(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableOption; } - public copyFrom(ctx: TableOptionContext): void { - super.copyFrom(ctx); - } -} -export class TableOptionEngineContext extends TableOptionContext { - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionEngine) { - listener.enterTableOptionEngine(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionEngine) { - listener.exitTableOptionEngine(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionEngine) { - return visitor.visitTableOptionEngine(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionAutoIncrementContext extends TableOptionContext { - public AUTO_INCREMENT(): TerminalNode { return this.getToken(SqlParser.AUTO_INCREMENT, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionAutoIncrement) { - listener.enterTableOptionAutoIncrement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionAutoIncrement) { - listener.exitTableOptionAutoIncrement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionAutoIncrement) { - return visitor.visitTableOptionAutoIncrement(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionAverageContext extends TableOptionContext { - public AVG_ROW_LENGTH(): TerminalNode { return this.getToken(SqlParser.AVG_ROW_LENGTH, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionAverage) { - listener.enterTableOptionAverage(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionAverage) { - listener.exitTableOptionAverage(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionAverage) { - return visitor.visitTableOptionAverage(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionCharsetContext extends TableOptionContext { - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public DEFAULT(): TerminalNode[]; - public DEFAULT(i: number): TerminalNode; - public DEFAULT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.DEFAULT); - } else { - return this.getToken(SqlParser.DEFAULT, i); - } - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionCharset) { - listener.enterTableOptionCharset(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionCharset) { - listener.exitTableOptionCharset(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionCharset) { - return visitor.visitTableOptionCharset(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionChecksumContext extends TableOptionContext { - public _boolValue!: Token; - public CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHECKSUM, 0); } - public PAGE_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PAGE_CHECKSUM, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionChecksum) { - listener.enterTableOptionChecksum(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionChecksum) { - listener.exitTableOptionChecksum(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionChecksum) { - return visitor.visitTableOptionChecksum(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionCollateContext extends TableOptionContext { - public COLLATE(): TerminalNode { return this.getToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext { - return this.getRuleContext(0, CollationNameContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionCollate) { - listener.enterTableOptionCollate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionCollate) { - listener.exitTableOptionCollate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionCollate) { - return visitor.visitTableOptionCollate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionCommentContext extends TableOptionContext { - public COMMENT(): TerminalNode { return this.getToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionComment) { - listener.enterTableOptionComment(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionComment) { - listener.exitTableOptionComment(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionComment) { - return visitor.visitTableOptionComment(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionCompressionContext extends TableOptionContext { - public COMPRESSION(): TerminalNode { return this.getToken(SqlParser.COMPRESSION, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionCompression) { - listener.enterTableOptionCompression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionCompression) { - listener.exitTableOptionCompression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionCompression) { - return visitor.visitTableOptionCompression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionConnectionContext extends TableOptionContext { - public CONNECTION(): TerminalNode { return this.getToken(SqlParser.CONNECTION, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionConnection) { - listener.enterTableOptionConnection(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionConnection) { - listener.exitTableOptionConnection(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionConnection) { - return visitor.visitTableOptionConnection(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionDataDirectoryContext extends TableOptionContext { - public DATA(): TerminalNode { return this.getToken(SqlParser.DATA, 0); } - public DIRECTORY(): TerminalNode { return this.getToken(SqlParser.DIRECTORY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionDataDirectory) { - listener.enterTableOptionDataDirectory(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionDataDirectory) { - listener.exitTableOptionDataDirectory(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionDataDirectory) { - return visitor.visitTableOptionDataDirectory(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionDelayContext extends TableOptionContext { - public _boolValue!: Token; - public DELAY_KEY_WRITE(): TerminalNode { return this.getToken(SqlParser.DELAY_KEY_WRITE, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionDelay) { - listener.enterTableOptionDelay(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionDelay) { - listener.exitTableOptionDelay(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionDelay) { - return visitor.visitTableOptionDelay(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionEncryptionContext extends TableOptionContext { - public ENCRYPTION(): TerminalNode { return this.getToken(SqlParser.ENCRYPTION, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionEncryption) { - listener.enterTableOptionEncryption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionEncryption) { - listener.exitTableOptionEncryption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionEncryption) { - return visitor.visitTableOptionEncryption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionIndexDirectoryContext extends TableOptionContext { - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public DIRECTORY(): TerminalNode { return this.getToken(SqlParser.DIRECTORY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionIndexDirectory) { - listener.enterTableOptionIndexDirectory(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionIndexDirectory) { - listener.exitTableOptionIndexDirectory(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionIndexDirectory) { - return visitor.visitTableOptionIndexDirectory(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionInsertMethodContext extends TableOptionContext { - public _insertMethod!: Token; - public INSERT_METHOD(): TerminalNode { return this.getToken(SqlParser.INSERT_METHOD, 0); } - public NO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public LAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LAST, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionInsertMethod) { - listener.enterTableOptionInsertMethod(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionInsertMethod) { - listener.exitTableOptionInsertMethod(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionInsertMethod) { - return visitor.visitTableOptionInsertMethod(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionKeyBlockSizeContext extends TableOptionContext { - public KEY_BLOCK_SIZE(): TerminalNode { return this.getToken(SqlParser.KEY_BLOCK_SIZE, 0); } - public fileSizeLiteral(): FileSizeLiteralContext { - return this.getRuleContext(0, FileSizeLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionKeyBlockSize) { - listener.enterTableOptionKeyBlockSize(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionKeyBlockSize) { - listener.exitTableOptionKeyBlockSize(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionKeyBlockSize) { - return visitor.visitTableOptionKeyBlockSize(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionMaxRowsContext extends TableOptionContext { - public MAX_ROWS(): TerminalNode { return this.getToken(SqlParser.MAX_ROWS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionMaxRows) { - listener.enterTableOptionMaxRows(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionMaxRows) { - listener.exitTableOptionMaxRows(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionMaxRows) { - return visitor.visitTableOptionMaxRows(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionMinRowsContext extends TableOptionContext { - public MIN_ROWS(): TerminalNode { return this.getToken(SqlParser.MIN_ROWS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionMinRows) { - listener.enterTableOptionMinRows(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionMinRows) { - listener.exitTableOptionMinRows(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionMinRows) { - return visitor.visitTableOptionMinRows(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionPackKeysContext extends TableOptionContext { - public _extBoolValue!: Token; - public PACK_KEYS(): TerminalNode { return this.getToken(SqlParser.PACK_KEYS, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionPackKeys) { - listener.enterTableOptionPackKeys(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionPackKeys) { - listener.exitTableOptionPackKeys(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionPackKeys) { - return visitor.visitTableOptionPackKeys(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionPasswordContext extends TableOptionContext { - public PASSWORD(): TerminalNode { return this.getToken(SqlParser.PASSWORD, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionPassword) { - listener.enterTableOptionPassword(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionPassword) { - listener.exitTableOptionPassword(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionPassword) { - return visitor.visitTableOptionPassword(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionRowFormatContext extends TableOptionContext { - public _rowFormat!: Token; - public ROW_FORMAT(): TerminalNode { return this.getToken(SqlParser.ROW_FORMAT, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DYNAMIC, 0); } - public FIXED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIXED, 0); } - public COMPRESSED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPRESSED, 0); } - public REDUNDANT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REDUNDANT, 0); } - public COMPACT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPACT, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionRowFormat) { - listener.enterTableOptionRowFormat(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionRowFormat) { - listener.exitTableOptionRowFormat(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionRowFormat) { - return visitor.visitTableOptionRowFormat(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionRecalculationContext extends TableOptionContext { - public _extBoolValue!: Token; - public STATS_AUTO_RECALC(): TerminalNode { return this.getToken(SqlParser.STATS_AUTO_RECALC, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionRecalculation) { - listener.enterTableOptionRecalculation(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionRecalculation) { - listener.exitTableOptionRecalculation(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionRecalculation) { - return visitor.visitTableOptionRecalculation(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionPersistentContext extends TableOptionContext { - public _extBoolValue!: Token; - public STATS_PERSISTENT(): TerminalNode { return this.getToken(SqlParser.STATS_PERSISTENT, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionPersistent) { - listener.enterTableOptionPersistent(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionPersistent) { - listener.exitTableOptionPersistent(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionPersistent) { - return visitor.visitTableOptionPersistent(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionSamplePageContext extends TableOptionContext { - public STATS_SAMPLE_PAGES(): TerminalNode { return this.getToken(SqlParser.STATS_SAMPLE_PAGES, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionSamplePage) { - listener.enterTableOptionSamplePage(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionSamplePage) { - listener.exitTableOptionSamplePage(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionSamplePage) { - return visitor.visitTableOptionSamplePage(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionTablespaceContext extends TableOptionContext { - public TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public tablespaceStorage(): TablespaceStorageContext | undefined { - return this.tryGetRuleContext(0, TablespaceStorageContext); - } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionTablespace) { - listener.enterTableOptionTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionTablespace) { - listener.exitTableOptionTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionTablespace) { - return visitor.visitTableOptionTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableOptionUnionContext extends TableOptionContext { - public UNION(): TerminalNode { return this.getToken(SqlParser.UNION, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: TableOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableOptionUnion) { - listener.enterTableOptionUnion(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableOptionUnion) { - listener.exitTableOptionUnion(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableOptionUnion) { - return visitor.visitTableOptionUnion(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TablespaceStorageContext extends ParserRuleContext { - public STORAGE(): TerminalNode { return this.getToken(SqlParser.STORAGE, 0); } - public DISK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISK, 0); } - public MEMORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEMORY, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tablespaceStorage; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTablespaceStorage) { - listener.enterTablespaceStorage(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTablespaceStorage) { - listener.exitTablespaceStorage(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTablespaceStorage) { - return visitor.visitTablespaceStorage(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionDefinitionsContext extends ParserRuleContext { - public _count!: DecimalLiteralContext; - public _subCount!: DecimalLiteralContext; - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public BY(): TerminalNode[]; - public BY(i: number): TerminalNode; - public BY(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.BY); - } else { - return this.getToken(SqlParser.BY, i); - } - } - public partitionFunctionDefinition(): PartitionFunctionDefinitionContext { - return this.getRuleContext(0, PartitionFunctionDefinitionContext); - } - public PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITIONS, 0); } - public SUBPARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBPARTITION, 0); } - public subpartitionFunctionDefinition(): SubpartitionFunctionDefinitionContext | undefined { - return this.tryGetRuleContext(0, SubpartitionFunctionDefinitionContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinition(): PartitionDefinitionContext[]; - public partitionDefinition(i: number): PartitionDefinitionContext; - public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinitionContext); - } else { - return this.getRuleContext(i, PartitionDefinitionContext); - } - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public SUBPARTITIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBPARTITIONS, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionDefinitions; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionDefinitions) { - listener.enterPartitionDefinitions(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionDefinitions) { - listener.exitPartitionDefinitions(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionDefinitions) { - return visitor.visitPartitionDefinitions(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionFunctionDefinitionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionFunctionDefinition; } - public copyFrom(ctx: PartitionFunctionDefinitionContext): void { - super.copyFrom(ctx); - } -} -export class PartitionFunctionHashContext extends PartitionFunctionDefinitionContext { - public HASH(): TerminalNode { return this.getToken(SqlParser.HASH, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public LINEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEAR, 0); } - constructor(ctx: PartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionFunctionHash) { - listener.enterPartitionFunctionHash(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionFunctionHash) { - listener.exitPartitionFunctionHash(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionFunctionHash) { - return visitor.visitPartitionFunctionHash(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionFunctionKeyContext extends PartitionFunctionDefinitionContext { - public _algType!: Token; - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public LINEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEAR, 0); } - public ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALGORITHM, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TWO_DECIMAL, 0); } - constructor(ctx: PartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionFunctionKey) { - listener.enterPartitionFunctionKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionFunctionKey) { - listener.exitPartitionFunctionKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionFunctionKey) { - return visitor.visitPartitionFunctionKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionFunctionRangeContext extends PartitionFunctionDefinitionContext { - public RANGE(): TerminalNode { return this.getToken(SqlParser.RANGE, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - constructor(ctx: PartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionFunctionRange) { - listener.enterPartitionFunctionRange(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionFunctionRange) { - listener.exitPartitionFunctionRange(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionFunctionRange) { - return visitor.visitPartitionFunctionRange(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionFunctionListContext extends PartitionFunctionDefinitionContext { - public LIST(): TerminalNode { return this.getToken(SqlParser.LIST, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - constructor(ctx: PartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionFunctionList) { - listener.enterPartitionFunctionList(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionFunctionList) { - listener.exitPartitionFunctionList(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionFunctionList) { - return visitor.visitPartitionFunctionList(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SubpartitionFunctionDefinitionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_subpartitionFunctionDefinition; } - public copyFrom(ctx: SubpartitionFunctionDefinitionContext): void { - super.copyFrom(ctx); - } -} -export class SubPartitionFunctionHashContext extends SubpartitionFunctionDefinitionContext { - public HASH(): TerminalNode { return this.getToken(SqlParser.HASH, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public LINEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEAR, 0); } - constructor(ctx: SubpartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubPartitionFunctionHash) { - listener.enterSubPartitionFunctionHash(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubPartitionFunctionHash) { - listener.exitSubPartitionFunctionHash(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubPartitionFunctionHash) { - return visitor.visitSubPartitionFunctionHash(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SubPartitionFunctionKeyContext extends SubpartitionFunctionDefinitionContext { - public _algType!: Token; - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public LINEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEAR, 0); } - public ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALGORITHM, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TWO_DECIMAL, 0); } - constructor(ctx: SubpartitionFunctionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubPartitionFunctionKey) { - listener.enterSubPartitionFunctionKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubPartitionFunctionKey) { - listener.exitSubPartitionFunctionKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubPartitionFunctionKey) { - return visitor.visitSubPartitionFunctionKey(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionDefinitionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionDefinition; } - public copyFrom(ctx: PartitionDefinitionContext): void { - super.copyFrom(ctx); - } -} -export class PartitionComparisionContext extends PartitionDefinitionContext { - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public VALUES(): TerminalNode { return this.getToken(SqlParser.VALUES, 0); } - public LESS(): TerminalNode { return this.getToken(SqlParser.LESS, 0); } - public THAN(): TerminalNode { return this.getToken(SqlParser.THAN, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinerAtom(): PartitionDefinerAtomContext[]; - public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; - public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinerAtomContext); - } else { - return this.getRuleContext(i, PartitionDefinerAtomContext); - } - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public partitionOption(): PartitionOptionContext[]; - public partitionOption(i: number): PartitionOptionContext; - public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionOptionContext); - } else { - return this.getRuleContext(i, PartitionOptionContext); - } - } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); - } else { - return this.getRuleContext(i, SubpartitionDefinitionContext); - } - } - constructor(ctx: PartitionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionComparision) { - listener.enterPartitionComparision(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionComparision) { - listener.exitPartitionComparision(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionComparision) { - return visitor.visitPartitionComparision(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionListAtomContext extends PartitionDefinitionContext { - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public VALUES(): TerminalNode { return this.getToken(SqlParser.VALUES, 0); } - public IN(): TerminalNode { return this.getToken(SqlParser.IN, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinerAtom(): PartitionDefinerAtomContext[]; - public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; - public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinerAtomContext); - } else { - return this.getRuleContext(i, PartitionDefinerAtomContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public partitionOption(): PartitionOptionContext[]; - public partitionOption(i: number): PartitionOptionContext; - public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionOptionContext); - } else { - return this.getRuleContext(i, PartitionOptionContext); - } - } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); - } else { - return this.getRuleContext(i, SubpartitionDefinitionContext); - } - } - constructor(ctx: PartitionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionListAtom) { - listener.enterPartitionListAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionListAtom) { - listener.exitPartitionListAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionListAtom) { - return visitor.visitPartitionListAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionListVectorContext extends PartitionDefinitionContext { - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public VALUES(): TerminalNode { return this.getToken(SqlParser.VALUES, 0); } - public IN(): TerminalNode { return this.getToken(SqlParser.IN, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinerVector(): PartitionDefinerVectorContext[]; - public partitionDefinerVector(i: number): PartitionDefinerVectorContext; - public partitionDefinerVector(i?: number): PartitionDefinerVectorContext | PartitionDefinerVectorContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinerVectorContext); - } else { - return this.getRuleContext(i, PartitionDefinerVectorContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public partitionOption(): PartitionOptionContext[]; - public partitionOption(i: number): PartitionOptionContext; - public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionOptionContext); - } else { - return this.getRuleContext(i, PartitionOptionContext); - } - } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); - } else { - return this.getRuleContext(i, SubpartitionDefinitionContext); - } - } - constructor(ctx: PartitionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionListVector) { - listener.enterPartitionListVector(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionListVector) { - listener.exitPartitionListVector(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionListVector) { - return visitor.visitPartitionListVector(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionSimpleContext extends PartitionDefinitionContext { - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public partitionOption(): PartitionOptionContext[]; - public partitionOption(i: number): PartitionOptionContext; - public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionOptionContext); - } else { - return this.getRuleContext(i, PartitionOptionContext); - } - } - public subpartitionDefinition(): SubpartitionDefinitionContext[]; - public subpartitionDefinition(i: number): SubpartitionDefinitionContext; - public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(SubpartitionDefinitionContext); - } else { - return this.getRuleContext(i, SubpartitionDefinitionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: PartitionDefinitionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionSimple) { - listener.enterPartitionSimple(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionSimple) { - listener.exitPartitionSimple(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionSimple) { - return visitor.visitPartitionSimple(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionDefinerAtomContext extends ParserRuleContext { - public constant(): ConstantContext | undefined { - return this.tryGetRuleContext(0, ConstantContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public MAXVALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAXVALUE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionDefinerAtom; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionDefinerAtom) { - listener.enterPartitionDefinerAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionDefinerAtom) { - listener.exitPartitionDefinerAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionDefinerAtom) { - return visitor.visitPartitionDefinerAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionDefinerVectorContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinerAtom(): PartitionDefinerAtomContext[]; - public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; - public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinerAtomContext); - } else { - return this.getRuleContext(i, PartitionDefinerAtomContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionDefinerVector; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionDefinerVector) { - listener.enterPartitionDefinerVector(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionDefinerVector) { - listener.exitPartitionDefinerVector(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionDefinerVector) { - return visitor.visitPartitionDefinerVector(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SubpartitionDefinitionContext extends ParserRuleContext { - public SUBPARTITION(): TerminalNode { return this.getToken(SqlParser.SUBPARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public partitionOption(): PartitionOptionContext[]; - public partitionOption(i: number): PartitionOptionContext; - public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionOptionContext); - } else { - return this.getRuleContext(i, PartitionOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_subpartitionDefinition; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubpartitionDefinition) { - listener.enterSubpartitionDefinition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubpartitionDefinition) { - listener.exitSubpartitionDefinition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubpartitionDefinition) { - return visitor.visitSubpartitionDefinition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PartitionOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_partitionOption; } - public copyFrom(ctx: PartitionOptionContext): void { - super.copyFrom(ctx); - } -} -export class PartitionOptionEngineContext extends PartitionOptionContext { - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public STORAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STORAGE, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionEngine) { - listener.enterPartitionOptionEngine(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionEngine) { - listener.exitPartitionOptionEngine(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionEngine) { - return visitor.visitPartitionOptionEngine(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionCommentContext extends PartitionOptionContext { - public _comment!: Token; - public COMMENT(): TerminalNode { return this.getToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionComment) { - listener.enterPartitionOptionComment(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionComment) { - listener.exitPartitionOptionComment(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionComment) { - return visitor.visitPartitionOptionComment(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionDataDirectoryContext extends PartitionOptionContext { - public _dataDirectory!: Token; - public DATA(): TerminalNode { return this.getToken(SqlParser.DATA, 0); } - public DIRECTORY(): TerminalNode { return this.getToken(SqlParser.DIRECTORY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionDataDirectory) { - listener.enterPartitionOptionDataDirectory(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionDataDirectory) { - listener.exitPartitionOptionDataDirectory(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionDataDirectory) { - return visitor.visitPartitionOptionDataDirectory(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionIndexDirectoryContext extends PartitionOptionContext { - public _indexDirectory!: Token; - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public DIRECTORY(): TerminalNode { return this.getToken(SqlParser.DIRECTORY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionIndexDirectory) { - listener.enterPartitionOptionIndexDirectory(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionIndexDirectory) { - listener.exitPartitionOptionIndexDirectory(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionIndexDirectory) { - return visitor.visitPartitionOptionIndexDirectory(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionMaxRowsContext extends PartitionOptionContext { - public _maxRows!: DecimalLiteralContext; - public MAX_ROWS(): TerminalNode { return this.getToken(SqlParser.MAX_ROWS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionMaxRows) { - listener.enterPartitionOptionMaxRows(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionMaxRows) { - listener.exitPartitionOptionMaxRows(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionMaxRows) { - return visitor.visitPartitionOptionMaxRows(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionMinRowsContext extends PartitionOptionContext { - public _minRows!: DecimalLiteralContext; - public MIN_ROWS(): TerminalNode { return this.getToken(SqlParser.MIN_ROWS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionMinRows) { - listener.enterPartitionOptionMinRows(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionMinRows) { - listener.exitPartitionOptionMinRows(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionMinRows) { - return visitor.visitPartitionOptionMinRows(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionTablespaceContext extends PartitionOptionContext { - public _tablespace!: UidContext; - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionTablespace) { - listener.enterPartitionOptionTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionTablespace) { - listener.exitPartitionOptionTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionTablespace) { - return visitor.visitPartitionOptionTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PartitionOptionNodeGroupContext extends PartitionOptionContext { - public _nodegroup!: UidContext; - public NODEGROUP(): TerminalNode { return this.getToken(SqlParser.NODEGROUP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: PartitionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPartitionOptionNodeGroup) { - listener.enterPartitionOptionNodeGroup(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPartitionOptionNodeGroup) { - listener.exitPartitionOptionNodeGroup(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPartitionOptionNodeGroup) { - return visitor.visitPartitionOptionNodeGroup(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterDatabaseContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterDatabase; } - public copyFrom(ctx: AlterDatabaseContext): void { - super.copyFrom(ctx); - } -} -export class AlterSimpleDatabaseContext extends AlterDatabaseContext { - public _dbFormat!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public createDatabaseOption(): CreateDatabaseOptionContext[]; - public createDatabaseOption(i: number): CreateDatabaseOptionContext; - public createDatabaseOption(i?: number): CreateDatabaseOptionContext | CreateDatabaseOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(CreateDatabaseOptionContext); - } else { - return this.getRuleContext(i, CreateDatabaseOptionContext); - } - } - constructor(ctx: AlterDatabaseContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterSimpleDatabase) { - listener.enterAlterSimpleDatabase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterSimpleDatabase) { - listener.exitAlterSimpleDatabase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterSimpleDatabase) { - return visitor.visitAlterSimpleDatabase(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterUpgradeNameContext extends AlterDatabaseContext { - public _dbFormat!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public UPGRADE(): TerminalNode { return this.getToken(SqlParser.UPGRADE, 0); } - public DATA(): TerminalNode { return this.getToken(SqlParser.DATA, 0); } - public DIRECTORY(): TerminalNode { return this.getToken(SqlParser.DIRECTORY, 0); } - public NAME(): TerminalNode { return this.getToken(SqlParser.NAME, 0); } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA, 0); } - constructor(ctx: AlterDatabaseContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterUpgradeName) { - listener.enterAlterUpgradeName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterUpgradeName) { - listener.exitAlterUpgradeName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterUpgradeName) { - return visitor.visitAlterUpgradeName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterEventContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public EVENT(): TerminalNode { return this.getToken(SqlParser.EVENT, 0); } - public fullId(): FullIdContext[]; - public fullId(i: number): FullIdContext; - public fullId(i?: number): FullIdContext | FullIdContext[] { - if (i === undefined) { - return this.getRuleContexts(FullIdContext); - } else { - return this.getRuleContext(i, FullIdContext); - } - } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public ON(): TerminalNode[]; - public ON(i: number): TerminalNode; - public ON(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ON); - } else { - return this.getToken(SqlParser.ON, i); - } - } - public SCHEDULE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEDULE, 0); } - public scheduleExpression(): ScheduleExpressionContext | undefined { - return this.tryGetRuleContext(0, ScheduleExpressionContext); - } - public COMPLETION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPLETION, 0); } - public PRESERVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRESERVE, 0); } - public RENAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RENAME, 0); } - public TO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO, 0); } - public enableType(): EnableTypeContext | undefined { - return this.tryGetRuleContext(0, EnableTypeContext); - } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public DO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DO, 0); } - public routineBody(): RoutineBodyContext | undefined { - return this.tryGetRuleContext(0, RoutineBodyContext); - } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterEvent; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterEvent) { - listener.enterAlterEvent(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterEvent) { - listener.exitAlterEvent(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterEvent) { - return visitor.visitAlterEvent(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterFunctionContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public FUNCTION(): TerminalNode { return this.getToken(SqlParser.FUNCTION, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public routineOption(): RoutineOptionContext[]; - public routineOption(i: number): RoutineOptionContext; - public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(RoutineOptionContext); - } else { - return this.getRuleContext(i, RoutineOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterFunction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterFunction) { - listener.enterAlterFunction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterFunction) { - listener.exitAlterFunction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterFunction) { - return visitor.visitAlterFunction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterInstanceContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public INSTANCE(): TerminalNode { return this.getToken(SqlParser.INSTANCE, 0); } - public ROTATE(): TerminalNode { return this.getToken(SqlParser.ROTATE, 0); } - public INNODB(): TerminalNode { return this.getToken(SqlParser.INNODB, 0); } - public MASTER(): TerminalNode { return this.getToken(SqlParser.MASTER, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterInstance; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterInstance) { - listener.enterAlterInstance(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterInstance) { - listener.exitAlterInstance(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterInstance) { - return visitor.visitAlterInstance(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterLogfileGroupContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public LOGFILE(): TerminalNode { return this.getToken(SqlParser.LOGFILE, 0); } - public GROUP(): TerminalNode { return this.getToken(SqlParser.GROUP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public UNDOFILE(): TerminalNode { return this.getToken(SqlParser.UNDOFILE, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INITIAL_SIZE, 0); } - public fileSizeLiteral(): FileSizeLiteralContext | undefined { - return this.tryGetRuleContext(0, FileSizeLiteralContext); - } - public WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterLogfileGroup; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterLogfileGroup) { - listener.enterAlterLogfileGroup(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterLogfileGroup) { - listener.exitAlterLogfileGroup(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterLogfileGroup) { - return visitor.visitAlterLogfileGroup(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterProcedureContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public PROCEDURE(): TerminalNode { return this.getToken(SqlParser.PROCEDURE, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public routineOption(): RoutineOptionContext[]; - public routineOption(i: number): RoutineOptionContext; - public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(RoutineOptionContext); - } else { - return this.getRuleContext(i, RoutineOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterProcedure; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterProcedure) { - listener.enterAlterProcedure(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterProcedure) { - listener.exitAlterProcedure(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterProcedure) { - return visitor.visitAlterProcedure(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterServerContext extends ParserRuleContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public SERVER(): TerminalNode { return this.getToken(SqlParser.SERVER, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public OPTIONS(): TerminalNode { return this.getToken(SqlParser.OPTIONS, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public serverOption(): ServerOptionContext[]; - public serverOption(i: number): ServerOptionContext; - public serverOption(i?: number): ServerOptionContext | ServerOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(ServerOptionContext); - } else { - return this.getRuleContext(i, ServerOptionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterServer; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterServer) { - listener.enterAlterServer(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterServer) { - listener.exitAlterServer(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterServer) { - return visitor.visitAlterServer(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterTableContext extends ParserRuleContext { - public _intimeAction!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public alterSpecification(): AlterSpecificationContext[]; - public alterSpecification(i: number): AlterSpecificationContext; - public alterSpecification(i?: number): AlterSpecificationContext | AlterSpecificationContext[] { - if (i === undefined) { - return this.getRuleContexts(AlterSpecificationContext); - } else { - return this.getRuleContext(i, AlterSpecificationContext); - } - } - public partitionDefinitions(): PartitionDefinitionsContext | undefined { - return this.tryGetRuleContext(0, PartitionDefinitionsContext); - } - public ONLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLINE, 0); } - public OFFLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFLINE, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterTable) { - listener.enterAlterTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterTable) { - listener.exitAlterTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterTable) { - return visitor.visitAlterTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterTablespaceContext extends ParserRuleContext { - public _objectAction!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DATAFILE(): TerminalNode { return this.getToken(SqlParser.DATAFILE, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public ADD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ADD, 0); } - public DROP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DROP, 0); } - public INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INITIAL_SIZE, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public fileSizeLiteral(): FileSizeLiteralContext | undefined { - return this.tryGetRuleContext(0, FileSizeLiteralContext); - } - public WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterTablespace; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterTablespace) { - listener.enterAlterTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterTablespace) { - listener.exitAlterTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterTablespace) { - return visitor.visitAlterTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterViewContext extends ParserRuleContext { - public _algType!: Token; - public _secContext!: Token; - public _checkOpt!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public VIEW(): TerminalNode { return this.getToken(SqlParser.VIEW, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public AS(): TerminalNode { return this.getToken(SqlParser.AS, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALGORITHM, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public ownerStatement(): OwnerStatementContext | undefined { - return this.tryGetRuleContext(0, OwnerStatementContext); - } - public SQL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL, 0); } - public SECURITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECURITY, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public CHECK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHECK, 0); } - public OPTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTION, 0); } - public UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDEFINED, 0); } - public MERGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MERGE, 0); } - public TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPTABLE, 0); } - public DEFINER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFINER, 0); } - public INVOKER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVOKER, 0); } - public CASCADED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADED, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterView; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterView) { - listener.enterAlterView(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterView) { - listener.exitAlterView(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterView) { - return visitor.visitAlterView(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterSpecificationContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterSpecification; } - public copyFrom(ctx: AlterSpecificationContext): void { - super.copyFrom(ctx); - } -} -export class AlterByTableOptionContext extends AlterSpecificationContext { - public tableOption(): TableOptionContext[]; - public tableOption(i: number): TableOptionContext; - public tableOption(i?: number): TableOptionContext | TableOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TableOptionContext); - } else { - return this.getRuleContext(i, TableOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByTableOption) { - listener.enterAlterByTableOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByTableOption) { - listener.exitAlterByTableOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByTableOption) { - return visitor.visitAlterByTableOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddColumnContext extends AlterSpecificationContext { - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public columnDefinition(): ColumnDefinitionContext { - return this.getRuleContext(0, ColumnDefinitionContext); - } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public AFTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AFTER, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddColumn) { - listener.enterAlterByAddColumn(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddColumn) { - listener.exitAlterByAddColumn(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddColumn) { - return visitor.visitAlterByAddColumn(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddColumnsContext extends AlterSpecificationContext { - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public columnDefinition(): ColumnDefinitionContext[]; - public columnDefinition(i: number): ColumnDefinitionContext; - public columnDefinition(i?: number): ColumnDefinitionContext | ColumnDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(ColumnDefinitionContext); - } else { - return this.getRuleContext(i, ColumnDefinitionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddColumns) { - listener.enterAlterByAddColumns(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddColumns) { - listener.exitAlterByAddColumns(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddColumns) { - return visitor.visitAlterByAddColumns(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddIndexContext extends AlterSpecificationContext { - public _indexFormat!: Token; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddIndex) { - listener.enterAlterByAddIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddIndex) { - listener.exitAlterByAddIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddIndex) { - return visitor.visitAlterByAddIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddPrimaryKeyContext extends AlterSpecificationContext { - public _name!: UidContext; - public _index!: UidContext; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public PRIMARY(): TerminalNode { return this.getToken(SqlParser.PRIMARY, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddPrimaryKey) { - listener.enterAlterByAddPrimaryKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddPrimaryKey) { - listener.exitAlterByAddPrimaryKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddPrimaryKey) { - return visitor.visitAlterByAddPrimaryKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddUniqueKeyContext extends AlterSpecificationContext { - public _name!: UidContext; - public _indexFormat!: Token; - public _indexName!: UidContext; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public UNIQUE(): TerminalNode { return this.getToken(SqlParser.UNIQUE, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public indexType(): IndexTypeContext | undefined { - return this.tryGetRuleContext(0, IndexTypeContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddUniqueKey) { - listener.enterAlterByAddUniqueKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddUniqueKey) { - listener.exitAlterByAddUniqueKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddUniqueKey) { - return visitor.visitAlterByAddUniqueKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddSpecialIndexContext extends AlterSpecificationContext { - public _keyType!: Token; - public _indexFormat!: Token; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULLTEXT, 0); } - public SPATIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SPATIAL, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public indexOption(): IndexOptionContext[]; - public indexOption(i: number): IndexOptionContext; - public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexOptionContext); - } else { - return this.getRuleContext(i, IndexOptionContext); - } - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddSpecialIndex) { - listener.enterAlterByAddSpecialIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddSpecialIndex) { - listener.exitAlterByAddSpecialIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddSpecialIndex) { - return visitor.visitAlterByAddSpecialIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddForeignKeyContext extends AlterSpecificationContext { - public _name!: UidContext; - public _indexName!: UidContext; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public FOREIGN(): TerminalNode { return this.getToken(SqlParser.FOREIGN, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public indexColumnNames(): IndexColumnNamesContext { - return this.getRuleContext(0, IndexColumnNamesContext); - } - public referenceDefinition(): ReferenceDefinitionContext { - return this.getRuleContext(0, ReferenceDefinitionContext); - } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddForeignKey) { - listener.enterAlterByAddForeignKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddForeignKey) { - listener.exitAlterByAddForeignKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddForeignKey) { - return visitor.visitAlterByAddForeignKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddCheckTableConstraintContext extends AlterSpecificationContext { - public _name!: UidContext; - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public CHECK(): TerminalNode { return this.getToken(SqlParser.CHECK, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddCheckTableConstraint) { - listener.enterAlterByAddCheckTableConstraint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddCheckTableConstraint) { - listener.exitAlterByAddCheckTableConstraint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddCheckTableConstraint) { - return visitor.visitAlterByAddCheckTableConstraint(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterBySetAlgorithmContext extends AlterSpecificationContext { - public _algType!: Token; - public ALGORITHM(): TerminalNode { return this.getToken(SqlParser.ALGORITHM, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public INPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INPLACE, 0); } - public COPY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COPY, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterBySetAlgorithm) { - listener.enterAlterBySetAlgorithm(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterBySetAlgorithm) { - listener.exitAlterBySetAlgorithm(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterBySetAlgorithm) { - return visitor.visitAlterBySetAlgorithm(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByChangeDefaultContext extends AlterSpecificationContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public defaultValue(): DefaultValueContext | undefined { - return this.tryGetRuleContext(0, DefaultValueContext); - } - public DROP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DROP, 0); } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByChangeDefault) { - listener.enterAlterByChangeDefault(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByChangeDefault) { - listener.exitAlterByChangeDefault(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByChangeDefault) { - return visitor.visitAlterByChangeDefault(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByChangeColumnContext extends AlterSpecificationContext { - public _oldColumn!: UidContext; - public _newColumn!: UidContext; - public _afterColumn!: UidContext; - public CHANGE(): TerminalNode { return this.getToken(SqlParser.CHANGE, 0); } - public columnDefinition(): ColumnDefinitionContext { - return this.getRuleContext(0, ColumnDefinitionContext); - } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public AFTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AFTER, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByChangeColumn) { - listener.enterAlterByChangeColumn(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByChangeColumn) { - listener.exitAlterByChangeColumn(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByChangeColumn) { - return visitor.visitAlterByChangeColumn(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRenameColumnContext extends AlterSpecificationContext { - public _oldColumn!: UidContext; - public _newColumn!: UidContext; - public RENAME(): TerminalNode { return this.getToken(SqlParser.RENAME, 0); } - public COLUMN(): TerminalNode { return this.getToken(SqlParser.COLUMN, 0); } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRenameColumn) { - listener.enterAlterByRenameColumn(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRenameColumn) { - listener.exitAlterByRenameColumn(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRenameColumn) { - return visitor.visitAlterByRenameColumn(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByLockContext extends AlterSpecificationContext { - public _lockType!: Token; - public LOCK(): TerminalNode { return this.getToken(SqlParser.LOCK, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public NONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NONE, 0); } - public SHARED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHARED, 0); } - public EXCLUSIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCLUSIVE, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByLock) { - listener.enterAlterByLock(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByLock) { - listener.exitAlterByLock(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByLock) { - return visitor.visitAlterByLock(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByModifyColumnContext extends AlterSpecificationContext { - public MODIFY(): TerminalNode { return this.getToken(SqlParser.MODIFY, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public columnDefinition(): ColumnDefinitionContext { - return this.getRuleContext(0, ColumnDefinitionContext); - } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public AFTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AFTER, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByModifyColumn) { - listener.enterAlterByModifyColumn(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByModifyColumn) { - listener.exitAlterByModifyColumn(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByModifyColumn) { - return visitor.visitAlterByModifyColumn(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDropColumnContext extends AlterSpecificationContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public COLUMN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN, 0); } - public RESTRICT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESTRICT, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDropColumn) { - listener.enterAlterByDropColumn(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDropColumn) { - listener.exitAlterByDropColumn(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDropColumn) { - return visitor.visitAlterByDropColumn(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDropPrimaryKeyContext extends AlterSpecificationContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public PRIMARY(): TerminalNode { return this.getToken(SqlParser.PRIMARY, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDropPrimaryKey) { - listener.enterAlterByDropPrimaryKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDropPrimaryKey) { - listener.exitAlterByDropPrimaryKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDropPrimaryKey) { - return visitor.visitAlterByDropPrimaryKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRenameIndexContext extends AlterSpecificationContext { - public _indexFormat!: Token; - public RENAME(): TerminalNode { return this.getToken(SqlParser.RENAME, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRenameIndex) { - listener.enterAlterByRenameIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRenameIndex) { - listener.exitAlterByRenameIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRenameIndex) { - return visitor.visitAlterByRenameIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAlterIndexVisibilityContext extends AlterSpecificationContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public VISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VISIBLE, 0); } - public INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVISIBLE, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAlterIndexVisibility) { - listener.enterAlterByAlterIndexVisibility(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAlterIndexVisibility) { - listener.exitAlterByAlterIndexVisibility(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAlterIndexVisibility) { - return visitor.visitAlterByAlterIndexVisibility(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDropIndexContext extends AlterSpecificationContext { - public _indexFormat!: Token; - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDropIndex) { - listener.enterAlterByDropIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDropIndex) { - listener.exitAlterByDropIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDropIndex) { - return visitor.visitAlterByDropIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDropForeignKeyContext extends AlterSpecificationContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public FOREIGN(): TerminalNode { return this.getToken(SqlParser.FOREIGN, 0); } - public KEY(): TerminalNode { return this.getToken(SqlParser.KEY, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDropForeignKey) { - listener.enterAlterByDropForeignKey(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDropForeignKey) { - listener.exitAlterByDropForeignKey(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDropForeignKey) { - return visitor.visitAlterByDropForeignKey(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDisableKeysContext extends AlterSpecificationContext { - public DISABLE(): TerminalNode { return this.getToken(SqlParser.DISABLE, 0); } - public KEYS(): TerminalNode { return this.getToken(SqlParser.KEYS, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDisableKeys) { - listener.enterAlterByDisableKeys(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDisableKeys) { - listener.exitAlterByDisableKeys(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDisableKeys) { - return visitor.visitAlterByDisableKeys(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByEnableKeysContext extends AlterSpecificationContext { - public ENABLE(): TerminalNode { return this.getToken(SqlParser.ENABLE, 0); } - public KEYS(): TerminalNode { return this.getToken(SqlParser.KEYS, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByEnableKeys) { - listener.enterAlterByEnableKeys(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByEnableKeys) { - listener.exitAlterByEnableKeys(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByEnableKeys) { - return visitor.visitAlterByEnableKeys(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRenameContext extends AlterSpecificationContext { - public _renameFormat!: Token; - public RENAME(): TerminalNode { return this.getToken(SqlParser.RENAME, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public fullId(): FullIdContext | undefined { - return this.tryGetRuleContext(0, FullIdContext); - } - public TO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO, 0); } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRename) { - listener.enterAlterByRename(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRename) { - listener.exitAlterByRename(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRename) { - return visitor.visitAlterByRename(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByOrderContext extends AlterSpecificationContext { - public ORDER(): TerminalNode { return this.getToken(SqlParser.ORDER, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByOrder) { - listener.enterAlterByOrder(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByOrder) { - listener.exitAlterByOrder(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByOrder) { - return visitor.visitAlterByOrder(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByConvertCharsetContext extends AlterSpecificationContext { - public CONVERT(): TerminalNode { return this.getToken(SqlParser.CONVERT, 0); } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public CHARACTER(): TerminalNode { return this.getToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public charsetName(): CharsetNameContext { - return this.getRuleContext(0, CharsetNameContext); - } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByConvertCharset) { - listener.enterAlterByConvertCharset(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByConvertCharset) { - listener.exitAlterByConvertCharset(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByConvertCharset) { - return visitor.visitAlterByConvertCharset(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDefaultCharsetContext extends AlterSpecificationContext { - public CHARACTER(): TerminalNode { return this.getToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public charsetName(): CharsetNameContext { - return this.getRuleContext(0, CharsetNameContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDefaultCharset) { - listener.enterAlterByDefaultCharset(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDefaultCharset) { - listener.exitAlterByDefaultCharset(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDefaultCharset) { - return visitor.visitAlterByDefaultCharset(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDiscardTablespaceContext extends AlterSpecificationContext { - public DISCARD(): TerminalNode { return this.getToken(SqlParser.DISCARD, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDiscardTablespace) { - listener.enterAlterByDiscardTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDiscardTablespace) { - listener.exitAlterByDiscardTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDiscardTablespace) { - return visitor.visitAlterByDiscardTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByImportTablespaceContext extends AlterSpecificationContext { - public IMPORT(): TerminalNode { return this.getToken(SqlParser.IMPORT, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByImportTablespace) { - listener.enterAlterByImportTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByImportTablespace) { - listener.exitAlterByImportTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByImportTablespace) { - return visitor.visitAlterByImportTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByForceContext extends AlterSpecificationContext { - public FORCE(): TerminalNode { return this.getToken(SqlParser.FORCE, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByForce) { - listener.enterAlterByForce(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByForce) { - listener.exitAlterByForce(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByForce) { - return visitor.visitAlterByForce(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByValidateContext extends AlterSpecificationContext { - public _validationFormat!: Token; - public VALIDATION(): TerminalNode { return this.getToken(SqlParser.VALIDATION, 0); } - public WITHOUT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITHOUT, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByValidate) { - listener.enterAlterByValidate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByValidate) { - listener.exitAlterByValidate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByValidate) { - return visitor.visitAlterByValidate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAddPartitionContext extends AlterSpecificationContext { - public ADD(): TerminalNode { return this.getToken(SqlParser.ADD, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinition(): PartitionDefinitionContext[]; - public partitionDefinition(i: number): PartitionDefinitionContext; - public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinitionContext); - } else { - return this.getRuleContext(i, PartitionDefinitionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAddPartition) { - listener.enterAlterByAddPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAddPartition) { - listener.exitAlterByAddPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAddPartition) { - return visitor.visitAlterByAddPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDropPartitionContext extends AlterSpecificationContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDropPartition) { - listener.enterAlterByDropPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDropPartition) { - listener.exitAlterByDropPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDropPartition) { - return visitor.visitAlterByDropPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByDiscardPartitionContext extends AlterSpecificationContext { - public DISCARD(): TerminalNode { return this.getToken(SqlParser.DISCARD, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByDiscardPartition) { - listener.enterAlterByDiscardPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByDiscardPartition) { - listener.exitAlterByDiscardPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByDiscardPartition) { - return visitor.visitAlterByDiscardPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByImportPartitionContext extends AlterSpecificationContext { - public IMPORT(): TerminalNode { return this.getToken(SqlParser.IMPORT, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByImportPartition) { - listener.enterAlterByImportPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByImportPartition) { - listener.exitAlterByImportPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByImportPartition) { - return visitor.visitAlterByImportPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByTruncatePartitionContext extends AlterSpecificationContext { - public TRUNCATE(): TerminalNode { return this.getToken(SqlParser.TRUNCATE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByTruncatePartition) { - listener.enterAlterByTruncatePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByTruncatePartition) { - listener.exitAlterByTruncatePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByTruncatePartition) { - return visitor.visitAlterByTruncatePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByCoalescePartitionContext extends AlterSpecificationContext { - public COALESCE(): TerminalNode { return this.getToken(SqlParser.COALESCE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByCoalescePartition) { - listener.enterAlterByCoalescePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByCoalescePartition) { - listener.exitAlterByCoalescePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByCoalescePartition) { - return visitor.visitAlterByCoalescePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByReorganizePartitionContext extends AlterSpecificationContext { - public REORGANIZE(): TerminalNode { return this.getToken(SqlParser.REORGANIZE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public partitionDefinition(): PartitionDefinitionContext[]; - public partitionDefinition(i: number): PartitionDefinitionContext; - public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { - if (i === undefined) { - return this.getRuleContexts(PartitionDefinitionContext); - } else { - return this.getRuleContext(i, PartitionDefinitionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByReorganizePartition) { - listener.enterAlterByReorganizePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByReorganizePartition) { - listener.exitAlterByReorganizePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByReorganizePartition) { - return visitor.visitAlterByReorganizePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByExchangePartitionContext extends AlterSpecificationContext { - public _validationFormat!: Token; - public EXCHANGE(): TerminalNode { return this.getToken(SqlParser.EXCHANGE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public WITH(): TerminalNode[]; - public WITH(i: number): TerminalNode; - public WITH(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.WITH); - } else { - return this.getToken(SqlParser.WITH, i); - } - } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public VALIDATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALIDATION, 0); } - public WITHOUT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITHOUT, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByExchangePartition) { - listener.enterAlterByExchangePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByExchangePartition) { - listener.exitAlterByExchangePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByExchangePartition) { - return visitor.visitAlterByExchangePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByAnalyzePartitionContext extends AlterSpecificationContext { - public ANALYZE(): TerminalNode { return this.getToken(SqlParser.ANALYZE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByAnalyzePartition) { - listener.enterAlterByAnalyzePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByAnalyzePartition) { - listener.exitAlterByAnalyzePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByAnalyzePartition) { - return visitor.visitAlterByAnalyzePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByCheckPartitionContext extends AlterSpecificationContext { - public CHECK(): TerminalNode { return this.getToken(SqlParser.CHECK, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByCheckPartition) { - listener.enterAlterByCheckPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByCheckPartition) { - listener.exitAlterByCheckPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByCheckPartition) { - return visitor.visitAlterByCheckPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByOptimizePartitionContext extends AlterSpecificationContext { - public OPTIMIZE(): TerminalNode { return this.getToken(SqlParser.OPTIMIZE, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByOptimizePartition) { - listener.enterAlterByOptimizePartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByOptimizePartition) { - listener.exitAlterByOptimizePartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByOptimizePartition) { - return visitor.visitAlterByOptimizePartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRebuildPartitionContext extends AlterSpecificationContext { - public REBUILD(): TerminalNode { return this.getToken(SqlParser.REBUILD, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRebuildPartition) { - listener.enterAlterByRebuildPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRebuildPartition) { - listener.exitAlterByRebuildPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRebuildPartition) { - return visitor.visitAlterByRebuildPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRepairPartitionContext extends AlterSpecificationContext { - public REPAIR(): TerminalNode { return this.getToken(SqlParser.REPAIR, 0); } - public PARTITION(): TerminalNode { return this.getToken(SqlParser.PARTITION, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRepairPartition) { - listener.enterAlterByRepairPartition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRepairPartition) { - listener.exitAlterByRepairPartition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRepairPartition) { - return visitor.visitAlterByRepairPartition(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByRemovePartitioningContext extends AlterSpecificationContext { - public REMOVE(): TerminalNode { return this.getToken(SqlParser.REMOVE, 0); } - public PARTITIONING(): TerminalNode { return this.getToken(SqlParser.PARTITIONING, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByRemovePartitioning) { - listener.enterAlterByRemovePartitioning(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByRemovePartitioning) { - listener.exitAlterByRemovePartitioning(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByRemovePartitioning) { - return visitor.visitAlterByRemovePartitioning(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterByUpgradePartitioningContext extends AlterSpecificationContext { - public UPGRADE(): TerminalNode { return this.getToken(SqlParser.UPGRADE, 0); } - public PARTITIONING(): TerminalNode { return this.getToken(SqlParser.PARTITIONING, 0); } - constructor(ctx: AlterSpecificationContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterByUpgradePartitioning) { - listener.enterAlterByUpgradePartitioning(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterByUpgradePartitioning) { - listener.exitAlterByUpgradePartitioning(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterByUpgradePartitioning) { - return visitor.visitAlterByUpgradePartitioning(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropDatabaseContext extends ParserRuleContext { - public _dbFormat!: Token; - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA, 0); } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropDatabase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropDatabase) { - listener.enterDropDatabase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropDatabase) { - listener.exitDropDatabase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropDatabase) { - return visitor.visitDropDatabase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropEventContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public EVENT(): TerminalNode { return this.getToken(SqlParser.EVENT, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropEvent; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropEvent) { - listener.enterDropEvent(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropEvent) { - listener.exitDropEvent(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropEvent) { - return visitor.visitDropEvent(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropIndexContext extends ParserRuleContext { - public _intimeAction!: Token; - public _algType!: Token; - public _lockType!: Token; - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public ALGORITHM(): TerminalNode[]; - public ALGORITHM(i: number): TerminalNode; - public ALGORITHM(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ALGORITHM); - } else { - return this.getToken(SqlParser.ALGORITHM, i); - } - } - public LOCK(): TerminalNode[]; - public LOCK(i: number): TerminalNode; - public LOCK(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LOCK); - } else { - return this.getToken(SqlParser.LOCK, i); - } - } - public ONLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLINE, 0); } - public OFFLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFLINE, 0); } - public DEFAULT(): TerminalNode[]; - public DEFAULT(i: number): TerminalNode; - public DEFAULT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.DEFAULT); - } else { - return this.getToken(SqlParser.DEFAULT, i); - } - } - public INPLACE(): TerminalNode[]; - public INPLACE(i: number): TerminalNode; - public INPLACE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.INPLACE); - } else { - return this.getToken(SqlParser.INPLACE, i); - } - } - public COPY(): TerminalNode[]; - public COPY(i: number): TerminalNode; - public COPY(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COPY); - } else { - return this.getToken(SqlParser.COPY, i); - } - } - public NONE(): TerminalNode[]; - public NONE(i: number): TerminalNode; - public NONE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.NONE); - } else { - return this.getToken(SqlParser.NONE, i); - } - } - public SHARED(): TerminalNode[]; - public SHARED(i: number): TerminalNode; - public SHARED(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SHARED); - } else { - return this.getToken(SqlParser.SHARED, i); - } - } - public EXCLUSIVE(): TerminalNode[]; - public EXCLUSIVE(i: number): TerminalNode; - public EXCLUSIVE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EXCLUSIVE); - } else { - return this.getToken(SqlParser.EXCLUSIVE, i); - } - } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropIndex; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropIndex) { - listener.enterDropIndex(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropIndex) { - listener.exitDropIndex(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropIndex) { - return visitor.visitDropIndex(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropLogfileGroupContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public LOGFILE(): TerminalNode { return this.getToken(SqlParser.LOGFILE, 0); } - public GROUP(): TerminalNode { return this.getToken(SqlParser.GROUP, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropLogfileGroup; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropLogfileGroup) { - listener.enterDropLogfileGroup(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropLogfileGroup) { - listener.exitDropLogfileGroup(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropLogfileGroup) { - return visitor.visitDropLogfileGroup(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropProcedureContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public PROCEDURE(): TerminalNode { return this.getToken(SqlParser.PROCEDURE, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropProcedure; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropProcedure) { - listener.enterDropProcedure(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropProcedure) { - listener.exitDropProcedure(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropProcedure) { - return visitor.visitDropProcedure(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropFunctionContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public FUNCTION(): TerminalNode { return this.getToken(SqlParser.FUNCTION, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropFunction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropFunction) { - listener.enterDropFunction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropFunction) { - listener.exitDropFunction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropFunction) { - return visitor.visitDropFunction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropServerContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public SERVER(): TerminalNode { return this.getToken(SqlParser.SERVER, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropServer; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropServer) { - listener.enterDropServer(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropServer) { - listener.exitDropServer(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropServer) { - return visitor.visitDropServer(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropTableContext extends ParserRuleContext { - public _dropType!: Token; - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - public RESTRICT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESTRICT, 0); } - public CASCADE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropTable) { - listener.enterDropTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropTable) { - listener.exitDropTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropTable) { - return visitor.visitDropTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropTablespaceContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public TABLESPACE(): TerminalNode { return this.getToken(SqlParser.TABLESPACE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public ENGINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext | undefined { - return this.tryGetRuleContext(0, EngineNameContext); - } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropTablespace; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropTablespace) { - listener.enterDropTablespace(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropTablespace) { - listener.exitDropTablespace(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropTablespace) { - return visitor.visitDropTablespace(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropTriggerContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public TRIGGER(): TerminalNode { return this.getToken(SqlParser.TRIGGER, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropTrigger; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropTrigger) { - listener.enterDropTrigger(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropTrigger) { - listener.exitDropTrigger(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropTrigger) { - return visitor.visitDropTrigger(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropViewContext extends ParserRuleContext { - public _dropType!: Token; - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public VIEW(): TerminalNode { return this.getToken(SqlParser.VIEW, 0); } - public fullId(): FullIdContext[]; - public fullId(i: number): FullIdContext; - public fullId(i?: number): FullIdContext | FullIdContext[] { - if (i === undefined) { - return this.getRuleContexts(FullIdContext); - } else { - return this.getRuleContext(i, FullIdContext); - } - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public RESTRICT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESTRICT, 0); } - public CASCADE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropView; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropView) { - listener.enterDropView(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropView) { - listener.exitDropView(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropView) { - return visitor.visitDropView(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RenameTableContext extends ParserRuleContext { - public RENAME(): TerminalNode { return this.getToken(SqlParser.RENAME, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public renameTableClause(): RenameTableClauseContext[]; - public renameTableClause(i: number): RenameTableClauseContext; - public renameTableClause(i?: number): RenameTableClauseContext | RenameTableClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(RenameTableClauseContext); - } else { - return this.getRuleContext(i, RenameTableClauseContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_renameTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRenameTable) { - listener.enterRenameTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRenameTable) { - listener.exitRenameTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRenameTable) { - return visitor.visitRenameTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RenameTableClauseContext extends ParserRuleContext { - public tableName(): TableNameContext[]; - public tableName(i: number): TableNameContext; - public tableName(i?: number): TableNameContext | TableNameContext[] { - if (i === undefined) { - return this.getRuleContexts(TableNameContext); - } else { - return this.getRuleContext(i, TableNameContext); - } - } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_renameTableClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRenameTableClause) { - listener.enterRenameTableClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRenameTableClause) { - listener.exitRenameTableClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRenameTableClause) { - return visitor.visitRenameTableClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TruncateTableContext extends ParserRuleContext { - public TRUNCATE(): TerminalNode { return this.getToken(SqlParser.TRUNCATE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_truncateTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTruncateTable) { - listener.enterTruncateTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTruncateTable) { - listener.exitTruncateTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTruncateTable) { - return visitor.visitTruncateTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CallStatementContext extends ParserRuleContext { - public CALL(): TerminalNode { return this.getToken(SqlParser.CALL, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public constants(): ConstantsContext | undefined { - return this.tryGetRuleContext(0, ConstantsContext); - } - public expressions(): ExpressionsContext | undefined { - return this.tryGetRuleContext(0, ExpressionsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_callStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCallStatement) { - listener.enterCallStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCallStatement) { - listener.exitCallStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCallStatement) { - return visitor.visitCallStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeleteStatementContext extends ParserRuleContext { - public singleDeleteStatement(): SingleDeleteStatementContext | undefined { - return this.tryGetRuleContext(0, SingleDeleteStatementContext); - } - public multipleDeleteStatement(): MultipleDeleteStatementContext | undefined { - return this.tryGetRuleContext(0, MultipleDeleteStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_deleteStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeleteStatement) { - listener.enterDeleteStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeleteStatement) { - listener.exitDeleteStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeleteStatement) { - return visitor.visitDeleteStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DoStatementContext extends ParserRuleContext { - public DO(): TerminalNode { return this.getToken(SqlParser.DO, 0); } - public expressions(): ExpressionsContext { - return this.getRuleContext(0, ExpressionsContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_doStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDoStatement) { - listener.enterDoStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDoStatement) { - listener.exitDoStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDoStatement) { - return visitor.visitDoStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerStatementContext extends ParserRuleContext { - public handlerOpenStatement(): HandlerOpenStatementContext | undefined { - return this.tryGetRuleContext(0, HandlerOpenStatementContext); - } - public handlerReadIndexStatement(): HandlerReadIndexStatementContext | undefined { - return this.tryGetRuleContext(0, HandlerReadIndexStatementContext); - } - public handlerReadStatement(): HandlerReadStatementContext | undefined { - return this.tryGetRuleContext(0, HandlerReadStatementContext); - } - public handlerCloseStatement(): HandlerCloseStatementContext | undefined { - return this.tryGetRuleContext(0, HandlerCloseStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerStatement) { - listener.enterHandlerStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerStatement) { - listener.exitHandlerStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerStatement) { - return visitor.visitHandlerStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class InsertStatementContext extends ParserRuleContext { - public _priority!: Token; - public _partitions!: UidListContext; - public _columns!: UidListContext; - public _setFirst!: UpdatedElementContext; - public _updatedElement!: UpdatedElementContext; - public _setElements: UpdatedElementContext[] = []; - public _duplicatedFirst!: UpdatedElementContext; - public _duplicatedElements: UpdatedElementContext[] = []; - public INSERT(): TerminalNode { return this.getToken(SqlParser.INSERT, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public insertStatementValue(): InsertStatementValueContext | undefined { - return this.tryGetRuleContext(0, InsertStatementValueContext); - } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public INTO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTO, 0); } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public DUPLICATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DUPLICATE, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public DELAYED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELAYED, 0); } - public HIGH_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HIGH_PRIORITY, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public uidList(): UidListContext[]; - public uidList(i: number): UidListContext; - public uidList(i?: number): UidListContext | UidListContext[] { - if (i === undefined) { - return this.getRuleContexts(UidListContext); - } else { - return this.getRuleContext(i, UidListContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_insertStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterInsertStatement) { - listener.enterInsertStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitInsertStatement) { - listener.exitInsertStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitInsertStatement) { - return visitor.visitInsertStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoadDataStatementContext extends ParserRuleContext { - public _priority!: Token; - public _filename!: Token; - public _violation!: Token; - public _charset!: CharsetNameContext; - public _fieldsFormat!: Token; - public _linesFormat!: Token; - public LOAD(): TerminalNode { return this.getToken(SqlParser.LOAD, 0); } - public DATA(): TerminalNode { return this.getToken(SqlParser.DATA, 0); } - public INFILE(): TerminalNode { return this.getToken(SqlParser.INFILE, 0); } - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode[]; - public SET(i: number): TerminalNode; - public SET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SET); - } else { - return this.getToken(SqlParser.SET, i); - } - } - public LINES(): TerminalNode[]; - public LINES(i: number): TerminalNode; - public LINES(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LINES); - } else { - return this.getToken(SqlParser.LINES, i); - } - } - public IGNORE(): TerminalNode[]; - public IGNORE(i: number): TerminalNode; - public IGNORE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.IGNORE); - } else { - return this.getToken(SqlParser.IGNORE, i); - } - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public assignmentField(): AssignmentFieldContext[]; - public assignmentField(i: number): AssignmentFieldContext; - public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { - if (i === undefined) { - return this.getRuleContexts(AssignmentFieldContext); - } else { - return this.getRuleContext(i, AssignmentFieldContext); - } - } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONCURRENT, 0); } - public REPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLACE, 0); } - public FIELDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIELDS, 0); } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROWS, 0); } - public selectFieldsInto(): SelectFieldsIntoContext[]; - public selectFieldsInto(i: number): SelectFieldsIntoContext; - public selectFieldsInto(i?: number): SelectFieldsIntoContext | SelectFieldsIntoContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectFieldsIntoContext); - } else { - return this.getRuleContext(i, SelectFieldsIntoContext); - } - } - public selectLinesInto(): SelectLinesIntoContext[]; - public selectLinesInto(i: number): SelectLinesIntoContext; - public selectLinesInto(i?: number): SelectLinesIntoContext | SelectLinesIntoContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectLinesIntoContext); - } else { - return this.getRuleContext(i, SelectLinesIntoContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_loadDataStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLoadDataStatement) { - listener.enterLoadDataStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLoadDataStatement) { - listener.exitLoadDataStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLoadDataStatement) { - return visitor.visitLoadDataStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoadXmlStatementContext extends ParserRuleContext { - public _priority!: Token; - public _filename!: Token; - public _violation!: Token; - public _charset!: CharsetNameContext; - public _tag!: Token; - public _linesFormat!: Token; - public LOAD(): TerminalNode { return this.getToken(SqlParser.LOAD, 0); } - public XML(): TerminalNode { return this.getToken(SqlParser.XML, 0); } - public INFILE(): TerminalNode { return this.getToken(SqlParser.INFILE, 0); } - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode[]; - public SET(i: number): TerminalNode; - public SET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SET); - } else { - return this.getToken(SqlParser.SET, i); - } - } - public ROWS(): TerminalNode[]; - public ROWS(i: number): TerminalNode; - public ROWS(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ROWS); - } else { - return this.getToken(SqlParser.ROWS, i); - } - } - public IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IDENTIFIED, 0); } - public BY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BY, 0); } - public LESS_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LESS_SYMBOL, 0); } - public GREATER_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GREATER_SYMBOL, 0); } - public IGNORE(): TerminalNode[]; - public IGNORE(i: number): TerminalNode; - public IGNORE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.IGNORE); - } else { - return this.getToken(SqlParser.IGNORE, i); - } - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public assignmentField(): AssignmentFieldContext[]; - public assignmentField(i: number): AssignmentFieldContext; - public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { - if (i === undefined) { - return this.getRuleContexts(AssignmentFieldContext); - } else { - return this.getRuleContext(i, AssignmentFieldContext); - } - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONCURRENT, 0); } - public REPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLACE, 0); } - public LINES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINES, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_loadXmlStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLoadXmlStatement) { - listener.enterLoadXmlStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLoadXmlStatement) { - listener.exitLoadXmlStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLoadXmlStatement) { - return visitor.visitLoadXmlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReplaceStatementContext extends ParserRuleContext { - public _priority!: Token; - public _partitions!: UidListContext; - public _columns!: UidListContext; - public _setFirst!: UpdatedElementContext; - public _updatedElement!: UpdatedElementContext; - public _setElements: UpdatedElementContext[] = []; - public REPLACE(): TerminalNode { return this.getToken(SqlParser.REPLACE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public insertStatementValue(): InsertStatementValueContext | undefined { - return this.tryGetRuleContext(0, InsertStatementValueContext); - } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public INTO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTO, 0); } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public uidList(): UidListContext[]; - public uidList(i: number): UidListContext; - public uidList(i?: number): UidListContext | UidListContext[] { - if (i === undefined) { - return this.getRuleContexts(UidListContext); - } else { - return this.getRuleContext(i, UidListContext); - } - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public DELAYED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELAYED, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_replaceStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReplaceStatement) { - listener.enterReplaceStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReplaceStatement) { - listener.exitReplaceStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReplaceStatement) { - return visitor.visitReplaceStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectStatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectStatement; } - public copyFrom(ctx: SelectStatementContext): void { - super.copyFrom(ctx); - } -} -export class SimpleSelectContext extends SelectStatementContext { - public querySpecification(): QuerySpecificationContext { - return this.getRuleContext(0, QuerySpecificationContext); - } - public lockClause(): LockClauseContext | undefined { - return this.tryGetRuleContext(0, LockClauseContext); - } - constructor(ctx: SelectStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleSelect) { - listener.enterSimpleSelect(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleSelect) { - listener.exitSimpleSelect(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleSelect) { - return visitor.visitSimpleSelect(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ParenthesisSelectContext extends SelectStatementContext { - public queryExpression(): QueryExpressionContext { - return this.getRuleContext(0, QueryExpressionContext); - } - public lockClause(): LockClauseContext | undefined { - return this.tryGetRuleContext(0, LockClauseContext); - } - constructor(ctx: SelectStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterParenthesisSelect) { - listener.enterParenthesisSelect(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitParenthesisSelect) { - listener.exitParenthesisSelect(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitParenthesisSelect) { - return visitor.visitParenthesisSelect(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UnionSelectContext extends SelectStatementContext { - public _unionType!: Token; - public querySpecificationNointo(): QuerySpecificationNointoContext { - return this.getRuleContext(0, QuerySpecificationNointoContext); - } - public unionStatement(): UnionStatementContext[]; - public unionStatement(i: number): UnionStatementContext; - public unionStatement(i?: number): UnionStatementContext | UnionStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(UnionStatementContext); - } else { - return this.getRuleContext(i, UnionStatementContext); - } - } - public UNION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNION, 0); } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public limitClause(): LimitClauseContext | undefined { - return this.tryGetRuleContext(0, LimitClauseContext); - } - public lockClause(): LockClauseContext | undefined { - return this.tryGetRuleContext(0, LockClauseContext); - } - public querySpecification(): QuerySpecificationContext | undefined { - return this.tryGetRuleContext(0, QuerySpecificationContext); - } - public queryExpression(): QueryExpressionContext | undefined { - return this.tryGetRuleContext(0, QueryExpressionContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - constructor(ctx: SelectStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnionSelect) { - listener.enterUnionSelect(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnionSelect) { - listener.exitUnionSelect(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnionSelect) { - return visitor.visitUnionSelect(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UnionParenthesisSelectContext extends SelectStatementContext { - public _unionType!: Token; - public queryExpressionNointo(): QueryExpressionNointoContext { - return this.getRuleContext(0, QueryExpressionNointoContext); - } - public unionParenthesis(): UnionParenthesisContext[]; - public unionParenthesis(i: number): UnionParenthesisContext; - public unionParenthesis(i?: number): UnionParenthesisContext | UnionParenthesisContext[] { - if (i === undefined) { - return this.getRuleContexts(UnionParenthesisContext); - } else { - return this.getRuleContext(i, UnionParenthesisContext); - } - } - public UNION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNION, 0); } - public queryExpression(): QueryExpressionContext | undefined { - return this.tryGetRuleContext(0, QueryExpressionContext); - } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public limitClause(): LimitClauseContext | undefined { - return this.tryGetRuleContext(0, LimitClauseContext); - } - public lockClause(): LockClauseContext | undefined { - return this.tryGetRuleContext(0, LockClauseContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - constructor(ctx: SelectStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnionParenthesisSelect) { - listener.enterUnionParenthesisSelect(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnionParenthesisSelect) { - listener.exitUnionParenthesisSelect(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnionParenthesisSelect) { - return visitor.visitUnionParenthesisSelect(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UpdateStatementContext extends ParserRuleContext { - public singleUpdateStatement(): SingleUpdateStatementContext | undefined { - return this.tryGetRuleContext(0, SingleUpdateStatementContext); - } - public multipleUpdateStatement(): MultipleUpdateStatementContext | undefined { - return this.tryGetRuleContext(0, MultipleUpdateStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_updateStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUpdateStatement) { - listener.enterUpdateStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUpdateStatement) { - listener.exitUpdateStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUpdateStatement) { - return visitor.visitUpdateStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class InsertStatementValueContext extends ParserRuleContext { - public _insertFormat!: Token; - public selectStatement(): SelectStatementContext | undefined { - return this.tryGetRuleContext(0, SelectStatementContext); - } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public VALUES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUES, 0); } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - public expressionsWithDefaults(): ExpressionsWithDefaultsContext[]; - public expressionsWithDefaults(i: number): ExpressionsWithDefaultsContext; - public expressionsWithDefaults(i?: number): ExpressionsWithDefaultsContext | ExpressionsWithDefaultsContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionsWithDefaultsContext); - } else { - return this.getRuleContext(i, ExpressionsWithDefaultsContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_insertStatementValue; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterInsertStatementValue) { - listener.enterInsertStatementValue(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitInsertStatementValue) { - listener.exitInsertStatementValue(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitInsertStatementValue) { - return visitor.visitInsertStatementValue(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UpdatedElementContext extends ParserRuleContext { - public fullColumnName(): FullColumnNameContext { - return this.getRuleContext(0, FullColumnNameContext); - } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_updatedElement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUpdatedElement) { - listener.enterUpdatedElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUpdatedElement) { - listener.exitUpdatedElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUpdatedElement) { - return visitor.visitUpdatedElement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AssignmentFieldContext extends ParserRuleContext { - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_assignmentField; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAssignmentField) { - listener.enterAssignmentField(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAssignmentField) { - listener.exitAssignmentField(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAssignmentField) { - return visitor.visitAssignmentField(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LockClauseContext extends ParserRuleContext { - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - public LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCK, 0); } - public IN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IN, 0); } - public SHARE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHARE, 0); } - public MODE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MODE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lockClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLockClause) { - listener.enterLockClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLockClause) { - listener.exitLockClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLockClause) { - return visitor.visitLockClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SingleDeleteStatementContext extends ParserRuleContext { - public _priority!: Token; - public DELETE(): TerminalNode { return this.getToken(SqlParser.DELETE, 0); } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public limitClauseAtom(): LimitClauseAtomContext | undefined { - return this.tryGetRuleContext(0, LimitClauseAtomContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_singleDeleteStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSingleDeleteStatement) { - listener.enterSingleDeleteStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSingleDeleteStatement) { - listener.exitSingleDeleteStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSingleDeleteStatement) { - return visitor.visitSingleDeleteStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class MultipleDeleteStatementContext extends ParserRuleContext { - public _priority!: Token; - public DELETE(): TerminalNode { return this.getToken(SqlParser.DELETE, 0); } - public tableName(): TableNameContext[]; - public tableName(i: number): TableNameContext; - public tableName(i?: number): TableNameContext | TableNameContext[] { - if (i === undefined) { - return this.getRuleContexts(TableNameContext); - } else { - return this.getRuleContext(i, TableNameContext); - } - } - public FROM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM, 0); } - public tableSources(): TableSourcesContext | undefined { - return this.tryGetRuleContext(0, TableSourcesContext); - } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public DOT(): TerminalNode[]; - public DOT(i: number): TerminalNode; - public DOT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.DOT); - } else { - return this.getToken(SqlParser.DOT, i); - } - } - public STAR(): TerminalNode[]; - public STAR(i: number): TerminalNode; - public STAR(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STAR); - } else { - return this.getToken(SqlParser.STAR, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_multipleDeleteStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMultipleDeleteStatement) { - listener.enterMultipleDeleteStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMultipleDeleteStatement) { - listener.exitMultipleDeleteStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMultipleDeleteStatement) { - return visitor.visitMultipleDeleteStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerOpenStatementContext extends ParserRuleContext { - public HANDLER(): TerminalNode { return this.getToken(SqlParser.HANDLER, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public OPEN(): TerminalNode { return this.getToken(SqlParser.OPEN, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerOpenStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerOpenStatement) { - listener.enterHandlerOpenStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerOpenStatement) { - listener.exitHandlerOpenStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerOpenStatement) { - return visitor.visitHandlerOpenStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerReadIndexStatementContext extends ParserRuleContext { - public _index!: UidContext; - public _moveOrder!: Token; - public HANDLER(): TerminalNode { return this.getToken(SqlParser.HANDLER, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public READ(): TerminalNode { return this.getToken(SqlParser.READ, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public comparisonOperator(): ComparisonOperatorContext | undefined { - return this.tryGetRuleContext(0, ComparisonOperatorContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public constants(): ConstantsContext | undefined { - return this.tryGetRuleContext(0, ConstantsContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public limitClauseAtom(): LimitClauseAtomContext | undefined { - return this.tryGetRuleContext(0, LimitClauseAtomContext); - } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public NEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEXT, 0); } - public PREV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PREV, 0); } - public LAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LAST, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerReadIndexStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerReadIndexStatement) { - listener.enterHandlerReadIndexStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerReadIndexStatement) { - listener.exitHandlerReadIndexStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerReadIndexStatement) { - return visitor.visitHandlerReadIndexStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerReadStatementContext extends ParserRuleContext { - public _moveOrder!: Token; - public HANDLER(): TerminalNode { return this.getToken(SqlParser.HANDLER, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public READ(): TerminalNode { return this.getToken(SqlParser.READ, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public NEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEXT, 0); } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public limitClauseAtom(): LimitClauseAtomContext | undefined { - return this.tryGetRuleContext(0, LimitClauseAtomContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerReadStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerReadStatement) { - listener.enterHandlerReadStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerReadStatement) { - listener.exitHandlerReadStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerReadStatement) { - return visitor.visitHandlerReadStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerCloseStatementContext extends ParserRuleContext { - public HANDLER(): TerminalNode { return this.getToken(SqlParser.HANDLER, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public CLOSE(): TerminalNode { return this.getToken(SqlParser.CLOSE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerCloseStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerCloseStatement) { - listener.enterHandlerCloseStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerCloseStatement) { - listener.exitHandlerCloseStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerCloseStatement) { - return visitor.visitHandlerCloseStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SingleUpdateStatementContext extends ParserRuleContext { - public _priority!: Token; - public UPDATE(): TerminalNode { return this.getToken(SqlParser.UPDATE, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public limitClause(): LimitClauseContext | undefined { - return this.tryGetRuleContext(0, LimitClauseContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_singleUpdateStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSingleUpdateStatement) { - listener.enterSingleUpdateStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSingleUpdateStatement) { - listener.exitSingleUpdateStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSingleUpdateStatement) { - return visitor.visitSingleUpdateStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class MultipleUpdateStatementContext extends ParserRuleContext { - public _priority!: Token; - public UPDATE(): TerminalNode { return this.getToken(SqlParser.UPDATE, 0); } - public tableSources(): TableSourcesContext { - return this.getRuleContext(0, TableSourcesContext); - } - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public updatedElement(): UpdatedElementContext[]; - public updatedElement(i: number): UpdatedElementContext; - public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { - if (i === undefined) { - return this.getRuleContexts(UpdatedElementContext); - } else { - return this.getRuleContext(i, UpdatedElementContext); - } - } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_multipleUpdateStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMultipleUpdateStatement) { - listener.enterMultipleUpdateStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMultipleUpdateStatement) { - listener.exitMultipleUpdateStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMultipleUpdateStatement) { - return visitor.visitMultipleUpdateStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class OrderByClauseContext extends ParserRuleContext { - public ORDER(): TerminalNode { return this.getToken(SqlParser.ORDER, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public orderByExpression(): OrderByExpressionContext[]; - public orderByExpression(i: number): OrderByExpressionContext; - public orderByExpression(i?: number): OrderByExpressionContext | OrderByExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(OrderByExpressionContext); - } else { - return this.getRuleContext(i, OrderByExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_orderByClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOrderByClause) { - listener.enterOrderByClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOrderByClause) { - listener.exitOrderByClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOrderByClause) { - return visitor.visitOrderByClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class OrderByExpressionContext extends ParserRuleContext { - public _order!: Token; - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public ASC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASC, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_orderByExpression; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOrderByExpression) { - listener.enterOrderByExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOrderByExpression) { - listener.exitOrderByExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOrderByExpression) { - return visitor.visitOrderByExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableSourcesContext extends ParserRuleContext { - public tableSource(): TableSourceContext[]; - public tableSource(i: number): TableSourceContext; - public tableSource(i?: number): TableSourceContext | TableSourceContext[] { - if (i === undefined) { - return this.getRuleContexts(TableSourceContext); - } else { - return this.getRuleContext(i, TableSourceContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableSources; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableSources) { - listener.enterTableSources(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableSources) { - listener.exitTableSources(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableSources) { - return visitor.visitTableSources(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableSourceContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableSource; } - public copyFrom(ctx: TableSourceContext): void { - super.copyFrom(ctx); - } -} -export class TableSourceBaseContext extends TableSourceContext { - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public joinPart(): JoinPartContext[]; - public joinPart(i: number): JoinPartContext; - public joinPart(i?: number): JoinPartContext | JoinPartContext[] { - if (i === undefined) { - return this.getRuleContexts(JoinPartContext); - } else { - return this.getRuleContext(i, JoinPartContext); - } - } - constructor(ctx: TableSourceContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableSourceBase) { - listener.enterTableSourceBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableSourceBase) { - listener.exitTableSourceBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableSourceBase) { - return visitor.visitTableSourceBase(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableSourceNestedContext extends TableSourceContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public joinPart(): JoinPartContext[]; - public joinPart(i: number): JoinPartContext; - public joinPart(i?: number): JoinPartContext | JoinPartContext[] { - if (i === undefined) { - return this.getRuleContexts(JoinPartContext); - } else { - return this.getRuleContext(i, JoinPartContext); - } - } - constructor(ctx: TableSourceContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableSourceNested) { - listener.enterTableSourceNested(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableSourceNested) { - listener.exitTableSourceNested(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableSourceNested) { - return visitor.visitTableSourceNested(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableSourceItemContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableSourceItem; } - public copyFrom(ctx: TableSourceItemContext): void { - super.copyFrom(ctx); - } -} -export class AtomTableItemContext extends TableSourceItemContext { - public _alias!: UidContext; - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public indexHint(): IndexHintContext[]; - public indexHint(i: number): IndexHintContext; - public indexHint(i?: number): IndexHintContext | IndexHintContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexHintContext); - } else { - return this.getRuleContext(i, IndexHintContext); - } - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: TableSourceItemContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAtomTableItem) { - listener.enterAtomTableItem(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAtomTableItem) { - listener.exitAtomTableItem(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAtomTableItem) { - return visitor.visitAtomTableItem(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SubqueryTableItemContext extends TableSourceItemContext { - public _parenthesisSubquery!: SelectStatementContext; - public _alias!: UidContext; - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public selectStatement(): SelectStatementContext | undefined { - return this.tryGetRuleContext(0, SelectStatementContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: TableSourceItemContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubqueryTableItem) { - listener.enterSubqueryTableItem(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubqueryTableItem) { - listener.exitSubqueryTableItem(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubqueryTableItem) { - return visitor.visitSubqueryTableItem(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableSourcesItemContext extends TableSourceItemContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tableSources(): TableSourcesContext { - return this.getRuleContext(0, TableSourcesContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: TableSourceItemContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableSourcesItem) { - listener.enterTableSourcesItem(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableSourcesItem) { - listener.exitTableSourcesItem(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableSourcesItem) { - return visitor.visitTableSourcesItem(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexHintContext extends ParserRuleContext { - public _indexHintAction!: Token; - public _keyFormat!: Token; - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public USE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USE, 0); } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public FORCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FORCE, 0); } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public indexHintType(): IndexHintTypeContext | undefined { - return this.tryGetRuleContext(0, IndexHintTypeContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexHint; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexHint) { - listener.enterIndexHint(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexHint) { - listener.exitIndexHint(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexHint) { - return visitor.visitIndexHint(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexHintTypeContext extends ParserRuleContext { - public JOIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JOIN, 0); } - public ORDER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ORDER, 0); } - public BY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BY, 0); } - public GROUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexHintType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexHintType) { - listener.enterIndexHintType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexHintType) { - listener.exitIndexHintType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexHintType) { - return visitor.visitIndexHintType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class JoinPartContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_joinPart; } - public copyFrom(ctx: JoinPartContext): void { - super.copyFrom(ctx); - } -} -export class InnerJoinContext extends JoinPartContext { - public JOIN(): TerminalNode { return this.getToken(SqlParser.JOIN, 0); } - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public INNER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INNER, 0); } - public CROSS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CROSS, 0); } - constructor(ctx: JoinPartContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterInnerJoin) { - listener.enterInnerJoin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitInnerJoin) { - listener.exitInnerJoin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitInnerJoin) { - return visitor.visitInnerJoin(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class StraightJoinContext extends JoinPartContext { - public STRAIGHT_JOIN(): TerminalNode { return this.getToken(SqlParser.STRAIGHT_JOIN, 0); } - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(ctx: JoinPartContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStraightJoin) { - listener.enterStraightJoin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStraightJoin) { - listener.exitStraightJoin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStraightJoin) { - return visitor.visitStraightJoin(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class OuterJoinContext extends JoinPartContext { - public JOIN(): TerminalNode { return this.getToken(SqlParser.JOIN, 0); } - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public LEFT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEFT, 0); } - public RIGHT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RIGHT, 0); } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public OUTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OUTER, 0); } - constructor(ctx: JoinPartContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOuterJoin) { - listener.enterOuterJoin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOuterJoin) { - listener.exitOuterJoin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOuterJoin) { - return visitor.visitOuterJoin(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NaturalJoinContext extends JoinPartContext { - public NATURAL(): TerminalNode { return this.getToken(SqlParser.NATURAL, 0); } - public JOIN(): TerminalNode { return this.getToken(SqlParser.JOIN, 0); } - public tableSourceItem(): TableSourceItemContext { - return this.getRuleContext(0, TableSourceItemContext); - } - public LEFT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEFT, 0); } - public RIGHT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RIGHT, 0); } - public OUTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OUTER, 0); } - constructor(ctx: JoinPartContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNaturalJoin) { - listener.enterNaturalJoin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNaturalJoin) { - listener.exitNaturalJoin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNaturalJoin) { - return visitor.visitNaturalJoin(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class QueryExpressionContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public querySpecification(): QuerySpecificationContext | undefined { - return this.tryGetRuleContext(0, QuerySpecificationContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public queryExpression(): QueryExpressionContext | undefined { - return this.tryGetRuleContext(0, QueryExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_queryExpression; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterQueryExpression) { - listener.enterQueryExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitQueryExpression) { - listener.exitQueryExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitQueryExpression) { - return visitor.visitQueryExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class QueryExpressionNointoContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { - return this.tryGetRuleContext(0, QuerySpecificationNointoContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public queryExpressionNointo(): QueryExpressionNointoContext | undefined { - return this.tryGetRuleContext(0, QueryExpressionNointoContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_queryExpressionNointo; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterQueryExpressionNointo) { - listener.enterQueryExpressionNointo(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitQueryExpressionNointo) { - listener.exitQueryExpressionNointo(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitQueryExpressionNointo) { - return visitor.visitQueryExpressionNointo(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class QuerySpecificationContext extends ParserRuleContext { - public SELECT(): TerminalNode { return this.getToken(SqlParser.SELECT, 0); } - public selectElements(): SelectElementsContext { - return this.getRuleContext(0, SelectElementsContext); - } - public selectSpec(): SelectSpecContext[]; - public selectSpec(i: number): SelectSpecContext; - public selectSpec(i?: number): SelectSpecContext | SelectSpecContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectSpecContext); - } else { - return this.getRuleContext(i, SelectSpecContext); - } - } - public selectIntoExpression(): SelectIntoExpressionContext | undefined { - return this.tryGetRuleContext(0, SelectIntoExpressionContext); - } - public fromClause(): FromClauseContext | undefined { - return this.tryGetRuleContext(0, FromClauseContext); - } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public limitClause(): LimitClauseContext | undefined { - return this.tryGetRuleContext(0, LimitClauseContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_querySpecification; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterQuerySpecification) { - listener.enterQuerySpecification(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitQuerySpecification) { - listener.exitQuerySpecification(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitQuerySpecification) { - return visitor.visitQuerySpecification(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class QuerySpecificationNointoContext extends ParserRuleContext { - public SELECT(): TerminalNode { return this.getToken(SqlParser.SELECT, 0); } - public selectElements(): SelectElementsContext { - return this.getRuleContext(0, SelectElementsContext); - } - public selectSpec(): SelectSpecContext[]; - public selectSpec(i: number): SelectSpecContext; - public selectSpec(i?: number): SelectSpecContext | SelectSpecContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectSpecContext); - } else { - return this.getRuleContext(i, SelectSpecContext); - } - } - public fromClause(): FromClauseContext | undefined { - return this.tryGetRuleContext(0, FromClauseContext); - } - public orderByClause(): OrderByClauseContext | undefined { - return this.tryGetRuleContext(0, OrderByClauseContext); - } - public limitClause(): LimitClauseContext | undefined { - return this.tryGetRuleContext(0, LimitClauseContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_querySpecificationNointo; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterQuerySpecificationNointo) { - listener.enterQuerySpecificationNointo(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitQuerySpecificationNointo) { - listener.exitQuerySpecificationNointo(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitQuerySpecificationNointo) { - return visitor.visitQuerySpecificationNointo(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UnionParenthesisContext extends ParserRuleContext { - public _unionType!: Token; - public UNION(): TerminalNode { return this.getToken(SqlParser.UNION, 0); } - public queryExpressionNointo(): QueryExpressionNointoContext { - return this.getRuleContext(0, QueryExpressionNointoContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_unionParenthesis; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnionParenthesis) { - listener.enterUnionParenthesis(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnionParenthesis) { - listener.exitUnionParenthesis(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnionParenthesis) { - return visitor.visitUnionParenthesis(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UnionStatementContext extends ParserRuleContext { - public _unionType!: Token; - public UNION(): TerminalNode { return this.getToken(SqlParser.UNION, 0); } - public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { - return this.tryGetRuleContext(0, QuerySpecificationNointoContext); - } - public queryExpressionNointo(): QueryExpressionNointoContext | undefined { - return this.tryGetRuleContext(0, QueryExpressionNointoContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_unionStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnionStatement) { - listener.enterUnionStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnionStatement) { - listener.exitUnionStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnionStatement) { - return visitor.visitUnionStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectSpecContext extends ParserRuleContext { - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - public DISTINCTROW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCTROW, 0); } - public HIGH_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HIGH_PRIORITY, 0); } - public STRAIGHT_JOIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRAIGHT_JOIN, 0); } - public SQL_SMALL_RESULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_SMALL_RESULT, 0); } - public SQL_BIG_RESULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_BIG_RESULT, 0); } - public SQL_BUFFER_RESULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_BUFFER_RESULT, 0); } - public SQL_CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_CACHE, 0); } - public SQL_NO_CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_NO_CACHE, 0); } - public SQL_CALC_FOUND_ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_CALC_FOUND_ROWS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectSpec; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectSpec) { - listener.enterSelectSpec(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectSpec) { - listener.exitSelectSpec(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectSpec) { - return visitor.visitSelectSpec(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectElementsContext extends ParserRuleContext { - public _star!: Token; - public selectElement(): SelectElementContext[]; - public selectElement(i: number): SelectElementContext; - public selectElement(i?: number): SelectElementContext | SelectElementContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectElementContext); - } else { - return this.getRuleContext(i, SelectElementContext); - } - } - public STAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STAR, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectElements; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectElements) { - listener.enterSelectElements(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectElements) { - listener.exitSelectElements(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectElements) { - return visitor.visitSelectElements(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectElementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectElement; } - public copyFrom(ctx: SelectElementContext): void { - super.copyFrom(ctx); - } -} -export class SelectStarElementContext extends SelectElementContext { - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public DOT(): TerminalNode { return this.getToken(SqlParser.DOT, 0); } - public STAR(): TerminalNode { return this.getToken(SqlParser.STAR, 0); } - constructor(ctx: SelectElementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectStarElement) { - listener.enterSelectStarElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectStarElement) { - listener.exitSelectStarElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectStarElement) { - return visitor.visitSelectStarElement(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SelectColumnElementContext extends SelectElementContext { - public fullColumnName(): FullColumnNameContext { - return this.getRuleContext(0, FullColumnNameContext); - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: SelectElementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectColumnElement) { - listener.enterSelectColumnElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectColumnElement) { - listener.exitSelectColumnElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectColumnElement) { - return visitor.visitSelectColumnElement(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SelectFunctionElementContext extends SelectElementContext { - public functionCall(): FunctionCallContext { - return this.getRuleContext(0, FunctionCallContext); - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: SelectElementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectFunctionElement) { - listener.enterSelectFunctionElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectFunctionElement) { - listener.exitSelectFunctionElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectFunctionElement) { - return visitor.visitSelectFunctionElement(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SelectExpressionElementContext extends SelectElementContext { - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - public VAR_ASSIGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VAR_ASSIGN, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: SelectElementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectExpressionElement) { - listener.enterSelectExpressionElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectExpressionElement) { - listener.exitSelectExpressionElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectExpressionElement) { - return visitor.visitSelectExpressionElement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectIntoExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectIntoExpression; } - public copyFrom(ctx: SelectIntoExpressionContext): void { - super.copyFrom(ctx); - } -} -export class SelectIntoVariablesContext extends SelectIntoExpressionContext { - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public assignmentField(): AssignmentFieldContext[]; - public assignmentField(i: number): AssignmentFieldContext; - public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { - if (i === undefined) { - return this.getRuleContexts(AssignmentFieldContext); - } else { - return this.getRuleContext(i, AssignmentFieldContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: SelectIntoExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectIntoVariables) { - listener.enterSelectIntoVariables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectIntoVariables) { - listener.exitSelectIntoVariables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectIntoVariables) { - return visitor.visitSelectIntoVariables(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SelectIntoDumpFileContext extends SelectIntoExpressionContext { - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public DUMPFILE(): TerminalNode { return this.getToken(SqlParser.DUMPFILE, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: SelectIntoExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectIntoDumpFile) { - listener.enterSelectIntoDumpFile(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectIntoDumpFile) { - listener.exitSelectIntoDumpFile(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectIntoDumpFile) { - return visitor.visitSelectIntoDumpFile(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SelectIntoTextFileContext extends SelectIntoExpressionContext { - public _filename!: Token; - public _charset!: CharsetNameContext; - public _fieldsFormat!: Token; - public INTO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTO, 0); } - public OUTFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OUTFILE, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public LINES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINES, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public FIELDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIELDS, 0); } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public selectFieldsInto(): SelectFieldsIntoContext[]; - public selectFieldsInto(i: number): SelectFieldsIntoContext; - public selectFieldsInto(i?: number): SelectFieldsIntoContext | SelectFieldsIntoContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectFieldsIntoContext); - } else { - return this.getRuleContext(i, SelectFieldsIntoContext); - } - } - public selectLinesInto(): SelectLinesIntoContext[]; - public selectLinesInto(i: number): SelectLinesIntoContext; - public selectLinesInto(i?: number): SelectLinesIntoContext | SelectLinesIntoContext[] { - if (i === undefined) { - return this.getRuleContexts(SelectLinesIntoContext); - } else { - return this.getRuleContext(i, SelectLinesIntoContext); - } - } - constructor(ctx: SelectIntoExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectIntoTextFile) { - listener.enterSelectIntoTextFile(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectIntoTextFile) { - listener.exitSelectIntoTextFile(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectIntoTextFile) { - return visitor.visitSelectIntoTextFile(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectFieldsIntoContext extends ParserRuleContext { - public _terminationField!: Token; - public _enclosion!: Token; - public _escaping!: Token; - public TERMINATED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TERMINATED, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public ENCLOSED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCLOSED, 0); } - public OPTIONALLY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTIONALLY, 0); } - public ESCAPED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ESCAPED, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectFieldsInto; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectFieldsInto) { - listener.enterSelectFieldsInto(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectFieldsInto) { - listener.exitSelectFieldsInto(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectFieldsInto) { - return visitor.visitSelectFieldsInto(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SelectLinesIntoContext extends ParserRuleContext { - public _starting!: Token; - public _terminationLine!: Token; - public STARTING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STARTING, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public TERMINATED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TERMINATED, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_selectLinesInto; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSelectLinesInto) { - listener.enterSelectLinesInto(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSelectLinesInto) { - listener.exitSelectLinesInto(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSelectLinesInto) { - return visitor.visitSelectLinesInto(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FromClauseContext extends ParserRuleContext { - public _whereExpr!: ExpressionContext; - public _havingExpr!: ExpressionContext; - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public tableSources(): TableSourcesContext { - return this.getRuleContext(0, TableSourcesContext); - } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public GROUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP, 0); } - public BY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BY, 0); } - public groupByItem(): GroupByItemContext[]; - public groupByItem(i: number): GroupByItemContext; - public groupByItem(i?: number): GroupByItemContext | GroupByItemContext[] { - if (i === undefined) { - return this.getRuleContexts(GroupByItemContext); - } else { - return this.getRuleContext(i, GroupByItemContext); - } - } - public HAVING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HAVING, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public ROLLUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLLUP, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_fromClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFromClause) { - listener.enterFromClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFromClause) { - listener.exitFromClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFromClause) { - return visitor.visitFromClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class GroupByItemContext extends ParserRuleContext { - public _order!: Token; - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public ASC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASC, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_groupByItem; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGroupByItem) { - listener.enterGroupByItem(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGroupByItem) { - listener.exitGroupByItem(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGroupByItem) { - return visitor.visitGroupByItem(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LimitClauseContext extends ParserRuleContext { - public _offset!: LimitClauseAtomContext; - public _limit!: LimitClauseAtomContext; - public LIMIT(): TerminalNode { return this.getToken(SqlParser.LIMIT, 0); } - public OFFSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFSET, 0); } - public limitClauseAtom(): LimitClauseAtomContext[]; - public limitClauseAtom(i: number): LimitClauseAtomContext; - public limitClauseAtom(i?: number): LimitClauseAtomContext | LimitClauseAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(LimitClauseAtomContext); - } else { - return this.getRuleContext(i, LimitClauseAtomContext); - } - } - public COMMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMA, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_limitClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLimitClause) { - listener.enterLimitClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLimitClause) { - listener.exitLimitClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLimitClause) { - return visitor.visitLimitClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LimitClauseAtomContext extends ParserRuleContext { - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public mysqlVariable(): MysqlVariableContext | undefined { - return this.tryGetRuleContext(0, MysqlVariableContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_limitClauseAtom; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLimitClauseAtom) { - listener.enterLimitClauseAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLimitClauseAtom) { - listener.exitLimitClauseAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLimitClauseAtom) { - return visitor.visitLimitClauseAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StartTransactionContext extends ParserRuleContext { - public START(): TerminalNode { return this.getToken(SqlParser.START, 0); } - public TRANSACTION(): TerminalNode { return this.getToken(SqlParser.TRANSACTION, 0); } - public transactionMode(): TransactionModeContext[]; - public transactionMode(i: number): TransactionModeContext; - public transactionMode(i?: number): TransactionModeContext | TransactionModeContext[] { - if (i === undefined) { - return this.getRuleContexts(TransactionModeContext); - } else { - return this.getRuleContext(i, TransactionModeContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_startTransaction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStartTransaction) { - listener.enterStartTransaction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStartTransaction) { - listener.exitStartTransaction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStartTransaction) { - return visitor.visitStartTransaction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BeginWorkContext extends ParserRuleContext { - public BEGIN(): TerminalNode { return this.getToken(SqlParser.BEGIN, 0); } - public WORK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WORK, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_beginWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBeginWork) { - listener.enterBeginWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBeginWork) { - listener.exitBeginWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBeginWork) { - return visitor.visitBeginWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CommitWorkContext extends ParserRuleContext { - public _nochain!: Token; - public _norelease!: Token; - public COMMIT(): TerminalNode { return this.getToken(SqlParser.COMMIT, 0); } - public WORK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WORK, 0); } - public AND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AND, 0); } - public CHAIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAIN, 0); } - public RELEASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELEASE, 0); } - public NO(): TerminalNode[]; - public NO(i: number): TerminalNode; - public NO(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.NO); - } else { - return this.getToken(SqlParser.NO, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_commitWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCommitWork) { - listener.enterCommitWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCommitWork) { - listener.exitCommitWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCommitWork) { - return visitor.visitCommitWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RollbackWorkContext extends ParserRuleContext { - public _nochain!: Token; - public _norelease!: Token; - public ROLLBACK(): TerminalNode { return this.getToken(SqlParser.ROLLBACK, 0); } - public WORK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WORK, 0); } - public AND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AND, 0); } - public CHAIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAIN, 0); } - public RELEASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELEASE, 0); } - public NO(): TerminalNode[]; - public NO(i: number): TerminalNode; - public NO(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.NO); - } else { - return this.getToken(SqlParser.NO, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_rollbackWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRollbackWork) { - listener.enterRollbackWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRollbackWork) { - listener.exitRollbackWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRollbackWork) { - return visitor.visitRollbackWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SavepointStatementContext extends ParserRuleContext { - public SAVEPOINT(): TerminalNode { return this.getToken(SqlParser.SAVEPOINT, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_savepointStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSavepointStatement) { - listener.enterSavepointStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSavepointStatement) { - listener.exitSavepointStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSavepointStatement) { - return visitor.visitSavepointStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RollbackStatementContext extends ParserRuleContext { - public ROLLBACK(): TerminalNode { return this.getToken(SqlParser.ROLLBACK, 0); } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public WORK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WORK, 0); } - public SAVEPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SAVEPOINT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_rollbackStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRollbackStatement) { - listener.enterRollbackStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRollbackStatement) { - listener.exitRollbackStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRollbackStatement) { - return visitor.visitRollbackStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReleaseStatementContext extends ParserRuleContext { - public RELEASE(): TerminalNode { return this.getToken(SqlParser.RELEASE, 0); } - public SAVEPOINT(): TerminalNode { return this.getToken(SqlParser.SAVEPOINT, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_releaseStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReleaseStatement) { - listener.enterReleaseStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReleaseStatement) { - listener.exitReleaseStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReleaseStatement) { - return visitor.visitReleaseStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LockTablesContext extends ParserRuleContext { - public LOCK(): TerminalNode { return this.getToken(SqlParser.LOCK, 0); } - public TABLES(): TerminalNode { return this.getToken(SqlParser.TABLES, 0); } - public lockTableElement(): LockTableElementContext[]; - public lockTableElement(i: number): LockTableElementContext; - public lockTableElement(i?: number): LockTableElementContext | LockTableElementContext[] { - if (i === undefined) { - return this.getRuleContexts(LockTableElementContext); - } else { - return this.getRuleContext(i, LockTableElementContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lockTables; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLockTables) { - listener.enterLockTables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLockTables) { - listener.exitLockTables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLockTables) { - return visitor.visitLockTables(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UnlockTablesContext extends ParserRuleContext { - public UNLOCK(): TerminalNode { return this.getToken(SqlParser.UNLOCK, 0); } - public TABLES(): TerminalNode { return this.getToken(SqlParser.TABLES, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_unlockTables; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnlockTables) { - listener.enterUnlockTables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnlockTables) { - listener.exitUnlockTables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnlockTables) { - return visitor.visitUnlockTables(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SetAutocommitStatementContext extends ParserRuleContext { - public _autocommitValue!: Token; - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public AUTOCOMMIT(): TerminalNode { return this.getToken(SqlParser.AUTOCOMMIT, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_setAutocommitStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetAutocommitStatement) { - listener.enterSetAutocommitStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetAutocommitStatement) { - listener.exitSetAutocommitStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetAutocommitStatement) { - return visitor.visitSetAutocommitStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SetTransactionStatementContext extends ParserRuleContext { - public _transactionContext!: Token; - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public TRANSACTION(): TerminalNode { return this.getToken(SqlParser.TRANSACTION, 0); } - public transactionOption(): TransactionOptionContext[]; - public transactionOption(i: number): TransactionOptionContext; - public transactionOption(i?: number): TransactionOptionContext | TransactionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TransactionOptionContext); - } else { - return this.getRuleContext(i, TransactionOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public GLOBAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL, 0); } - public SESSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_setTransactionStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetTransactionStatement) { - listener.enterSetTransactionStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetTransactionStatement) { - listener.exitSetTransactionStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetTransactionStatement) { - return visitor.visitSetTransactionStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TransactionModeContext extends ParserRuleContext { - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public CONSISTENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSISTENT, 0); } - public SNAPSHOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SNAPSHOT, 0); } - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public WRITE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WRITE, 0); } - public ONLY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_transactionMode; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTransactionMode) { - listener.enterTransactionMode(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTransactionMode) { - listener.exitTransactionMode(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTransactionMode) { - return visitor.visitTransactionMode(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LockTableElementContext extends ParserRuleContext { - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public lockAction(): LockActionContext { - return this.getRuleContext(0, LockActionContext); - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lockTableElement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLockTableElement) { - listener.enterLockTableElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLockTableElement) { - listener.exitLockTableElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLockTableElement) { - return visitor.visitLockTableElement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LockActionContext extends ParserRuleContext { - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - public WRITE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WRITE, 0); } - public LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOW_PRIORITY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lockAction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLockAction) { - listener.enterLockAction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLockAction) { - listener.exitLockAction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLockAction) { - return visitor.visitLockAction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TransactionOptionContext extends ParserRuleContext { - public ISOLATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISOLATION, 0); } - public LEVEL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEVEL, 0); } - public transactionLevel(): TransactionLevelContext | undefined { - return this.tryGetRuleContext(0, TransactionLevelContext); - } - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public WRITE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WRITE, 0); } - public ONLY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_transactionOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTransactionOption) { - listener.enterTransactionOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTransactionOption) { - listener.exitTransactionOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTransactionOption) { - return visitor.visitTransactionOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TransactionLevelContext extends ParserRuleContext { - public REPEATABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPEATABLE, 0); } - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public COMMITTED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMITTED, 0); } - public UNCOMMITTED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNCOMMITTED, 0); } - public SERIALIZABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SERIALIZABLE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_transactionLevel; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTransactionLevel) { - listener.enterTransactionLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTransactionLevel) { - listener.exitTransactionLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTransactionLevel) { - return visitor.visitTransactionLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ChangeMasterContext extends ParserRuleContext { - public CHANGE(): TerminalNode { return this.getToken(SqlParser.CHANGE, 0); } - public MASTER(): TerminalNode { return this.getToken(SqlParser.MASTER, 0); } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public masterOption(): MasterOptionContext[]; - public masterOption(i: number): MasterOptionContext; - public masterOption(i?: number): MasterOptionContext | MasterOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(MasterOptionContext); - } else { - return this.getRuleContext(i, MasterOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public channelOption(): ChannelOptionContext | undefined { - return this.tryGetRuleContext(0, ChannelOptionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_changeMaster; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterChangeMaster) { - listener.enterChangeMaster(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitChangeMaster) { - listener.exitChangeMaster(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitChangeMaster) { - return visitor.visitChangeMaster(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ChangeReplicationFilterContext extends ParserRuleContext { - public CHANGE(): TerminalNode { return this.getToken(SqlParser.CHANGE, 0); } - public REPLICATION(): TerminalNode { return this.getToken(SqlParser.REPLICATION, 0); } - public FILTER(): TerminalNode { return this.getToken(SqlParser.FILTER, 0); } - public replicationFilter(): ReplicationFilterContext[]; - public replicationFilter(i: number): ReplicationFilterContext; - public replicationFilter(i?: number): ReplicationFilterContext | ReplicationFilterContext[] { - if (i === undefined) { - return this.getRuleContexts(ReplicationFilterContext); - } else { - return this.getRuleContext(i, ReplicationFilterContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_changeReplicationFilter; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterChangeReplicationFilter) { - listener.enterChangeReplicationFilter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitChangeReplicationFilter) { - listener.exitChangeReplicationFilter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitChangeReplicationFilter) { - return visitor.visitChangeReplicationFilter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PurgeBinaryLogsContext extends ParserRuleContext { - public _purgeFormat!: Token; - public _fileName!: Token; - public _timeValue!: Token; - public PURGE(): TerminalNode { return this.getToken(SqlParser.PURGE, 0); } - public LOGS(): TerminalNode { return this.getToken(SqlParser.LOGS, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public MASTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER, 0); } - public TO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO, 0); } - public BEFORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BEFORE, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_purgeBinaryLogs; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPurgeBinaryLogs) { - listener.enterPurgeBinaryLogs(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPurgeBinaryLogs) { - listener.exitPurgeBinaryLogs(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPurgeBinaryLogs) { - return visitor.visitPurgeBinaryLogs(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ResetMasterContext extends ParserRuleContext { - public RESET(): TerminalNode { return this.getToken(SqlParser.RESET, 0); } - public MASTER(): TerminalNode { return this.getToken(SqlParser.MASTER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_resetMaster; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterResetMaster) { - listener.enterResetMaster(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitResetMaster) { - listener.exitResetMaster(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitResetMaster) { - return visitor.visitResetMaster(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ResetSlaveContext extends ParserRuleContext { - public RESET(): TerminalNode { return this.getToken(SqlParser.RESET, 0); } - public SLAVE(): TerminalNode { return this.getToken(SqlParser.SLAVE, 0); } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public channelOption(): ChannelOptionContext | undefined { - return this.tryGetRuleContext(0, ChannelOptionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_resetSlave; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterResetSlave) { - listener.enterResetSlave(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitResetSlave) { - listener.exitResetSlave(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitResetSlave) { - return visitor.visitResetSlave(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StartSlaveContext extends ParserRuleContext { - public START(): TerminalNode { return this.getToken(SqlParser.START, 0); } - public SLAVE(): TerminalNode { return this.getToken(SqlParser.SLAVE, 0); } - public threadType(): ThreadTypeContext[]; - public threadType(i: number): ThreadTypeContext; - public threadType(i?: number): ThreadTypeContext | ThreadTypeContext[] { - if (i === undefined) { - return this.getRuleContexts(ThreadTypeContext); - } else { - return this.getRuleContext(i, ThreadTypeContext); - } - } - public UNTIL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNTIL, 0); } - public untilOption(): UntilOptionContext | undefined { - return this.tryGetRuleContext(0, UntilOptionContext); - } - public connectionOption(): ConnectionOptionContext[]; - public connectionOption(i: number): ConnectionOptionContext; - public connectionOption(i?: number): ConnectionOptionContext | ConnectionOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(ConnectionOptionContext); - } else { - return this.getRuleContext(i, ConnectionOptionContext); - } - } - public channelOption(): ChannelOptionContext | undefined { - return this.tryGetRuleContext(0, ChannelOptionContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_startSlave; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStartSlave) { - listener.enterStartSlave(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStartSlave) { - listener.exitStartSlave(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStartSlave) { - return visitor.visitStartSlave(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StopSlaveContext extends ParserRuleContext { - public STOP(): TerminalNode { return this.getToken(SqlParser.STOP, 0); } - public SLAVE(): TerminalNode { return this.getToken(SqlParser.SLAVE, 0); } - public threadType(): ThreadTypeContext[]; - public threadType(i: number): ThreadTypeContext; - public threadType(i?: number): ThreadTypeContext | ThreadTypeContext[] { - if (i === undefined) { - return this.getRuleContexts(ThreadTypeContext); - } else { - return this.getRuleContext(i, ThreadTypeContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_stopSlave; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStopSlave) { - listener.enterStopSlave(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStopSlave) { - listener.exitStopSlave(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStopSlave) { - return visitor.visitStopSlave(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StartGroupReplicationContext extends ParserRuleContext { - public START(): TerminalNode { return this.getToken(SqlParser.START, 0); } - public GROUP_REPLICATION(): TerminalNode { return this.getToken(SqlParser.GROUP_REPLICATION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_startGroupReplication; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStartGroupReplication) { - listener.enterStartGroupReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStartGroupReplication) { - listener.exitStartGroupReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStartGroupReplication) { - return visitor.visitStartGroupReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StopGroupReplicationContext extends ParserRuleContext { - public STOP(): TerminalNode { return this.getToken(SqlParser.STOP, 0); } - public GROUP_REPLICATION(): TerminalNode { return this.getToken(SqlParser.GROUP_REPLICATION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_stopGroupReplication; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStopGroupReplication) { - listener.enterStopGroupReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStopGroupReplication) { - listener.exitStopGroupReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStopGroupReplication) { - return visitor.visitStopGroupReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class MasterOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_masterOption; } - public copyFrom(ctx: MasterOptionContext): void { - super.copyFrom(ctx); - } -} -export class MasterStringOptionContext extends MasterOptionContext { - public stringMasterOption(): StringMasterOptionContext { - return this.getRuleContext(0, StringMasterOptionContext); - } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: MasterOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterStringOption) { - listener.enterMasterStringOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterStringOption) { - listener.exitMasterStringOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterStringOption) { - return visitor.visitMasterStringOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MasterDecimalOptionContext extends MasterOptionContext { - public decimalMasterOption(): DecimalMasterOptionContext { - return this.getRuleContext(0, DecimalMasterOptionContext); - } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - constructor(ctx: MasterOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterDecimalOption) { - listener.enterMasterDecimalOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterDecimalOption) { - listener.exitMasterDecimalOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterDecimalOption) { - return visitor.visitMasterDecimalOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MasterBoolOptionContext extends MasterOptionContext { - public _boolVal!: Token; - public boolMasterOption(): BoolMasterOptionContext { - return this.getRuleContext(0, BoolMasterOptionContext); - } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - constructor(ctx: MasterOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterBoolOption) { - listener.enterMasterBoolOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterBoolOption) { - listener.exitMasterBoolOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterBoolOption) { - return visitor.visitMasterBoolOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MasterRealOptionContext extends MasterOptionContext { - public MASTER_HEARTBEAT_PERIOD(): TerminalNode { return this.getToken(SqlParser.MASTER_HEARTBEAT_PERIOD, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public REAL_LITERAL(): TerminalNode { return this.getToken(SqlParser.REAL_LITERAL, 0); } - constructor(ctx: MasterOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterRealOption) { - listener.enterMasterRealOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterRealOption) { - listener.exitMasterRealOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterRealOption) { - return visitor.visitMasterRealOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MasterUidListOptionContext extends MasterOptionContext { - public IGNORE_SERVER_IDS(): TerminalNode { return this.getToken(SqlParser.IGNORE_SERVER_IDS, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: MasterOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterUidListOption) { - listener.enterMasterUidListOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterUidListOption) { - listener.exitMasterUidListOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterUidListOption) { - return visitor.visitMasterUidListOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StringMasterOptionContext extends ParserRuleContext { - public MASTER_BIND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_BIND, 0); } - public MASTER_HOST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_HOST, 0); } - public MASTER_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_USER, 0); } - public MASTER_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_PASSWORD, 0); } - public MASTER_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_LOG_FILE, 0); } - public RELAY_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY_LOG_FILE, 0); } - public MASTER_SSL_CA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CA, 0); } - public MASTER_SSL_CAPATH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CAPATH, 0); } - public MASTER_SSL_CERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CERT, 0); } - public MASTER_SSL_CRL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CRL, 0); } - public MASTER_SSL_CRLPATH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CRLPATH, 0); } - public MASTER_SSL_KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_KEY, 0); } - public MASTER_SSL_CIPHER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CIPHER, 0); } - public MASTER_TLS_VERSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_TLS_VERSION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_stringMasterOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStringMasterOption) { - listener.enterStringMasterOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStringMasterOption) { - listener.exitStringMasterOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStringMasterOption) { - return visitor.visitStringMasterOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DecimalMasterOptionContext extends ParserRuleContext { - public MASTER_PORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_PORT, 0); } - public MASTER_CONNECT_RETRY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_CONNECT_RETRY, 0); } - public MASTER_RETRY_COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_RETRY_COUNT, 0); } - public MASTER_DELAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_DELAY, 0); } - public MASTER_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_LOG_POS, 0); } - public RELAY_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY_LOG_POS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_decimalMasterOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDecimalMasterOption) { - listener.enterDecimalMasterOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDecimalMasterOption) { - listener.exitDecimalMasterOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDecimalMasterOption) { - return visitor.visitDecimalMasterOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BoolMasterOptionContext extends ParserRuleContext { - public MASTER_AUTO_POSITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_AUTO_POSITION, 0); } - public MASTER_SSL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL, 0); } - public MASTER_SSL_VERIFY_SERVER_CERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_VERIFY_SERVER_CERT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_boolMasterOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBoolMasterOption) { - listener.enterBoolMasterOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBoolMasterOption) { - listener.exitBoolMasterOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBoolMasterOption) { - return visitor.visitBoolMasterOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ChannelOptionContext extends ParserRuleContext { - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public CHANNEL(): TerminalNode { return this.getToken(SqlParser.CHANNEL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_channelOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterChannelOption) { - listener.enterChannelOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitChannelOption) { - listener.exitChannelOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitChannelOption) { - return visitor.visitChannelOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReplicationFilterContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_replicationFilter; } - public copyFrom(ctx: ReplicationFilterContext): void { - super.copyFrom(ctx); - } -} -export class DoDbReplicationContext extends ReplicationFilterContext { - public REPLICATE_DO_DB(): TerminalNode { return this.getToken(SqlParser.REPLICATE_DO_DB, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDoDbReplication) { - listener.enterDoDbReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDoDbReplication) { - listener.exitDoDbReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDoDbReplication) { - return visitor.visitDoDbReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IgnoreDbReplicationContext extends ReplicationFilterContext { - public REPLICATE_IGNORE_DB(): TerminalNode { return this.getToken(SqlParser.REPLICATE_IGNORE_DB, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIgnoreDbReplication) { - listener.enterIgnoreDbReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIgnoreDbReplication) { - listener.exitIgnoreDbReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIgnoreDbReplication) { - return visitor.visitIgnoreDbReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DoTableReplicationContext extends ReplicationFilterContext { - public REPLICATE_DO_TABLE(): TerminalNode { return this.getToken(SqlParser.REPLICATE_DO_TABLE, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDoTableReplication) { - listener.enterDoTableReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDoTableReplication) { - listener.exitDoTableReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDoTableReplication) { - return visitor.visitDoTableReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IgnoreTableReplicationContext extends ReplicationFilterContext { - public REPLICATE_IGNORE_TABLE(): TerminalNode { return this.getToken(SqlParser.REPLICATE_IGNORE_TABLE, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIgnoreTableReplication) { - listener.enterIgnoreTableReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIgnoreTableReplication) { - listener.exitIgnoreTableReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIgnoreTableReplication) { - return visitor.visitIgnoreTableReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class WildDoTableReplicationContext extends ReplicationFilterContext { - public REPLICATE_WILD_DO_TABLE(): TerminalNode { return this.getToken(SqlParser.REPLICATE_WILD_DO_TABLE, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public simpleStrings(): SimpleStringsContext { - return this.getRuleContext(0, SimpleStringsContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterWildDoTableReplication) { - listener.enterWildDoTableReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitWildDoTableReplication) { - listener.exitWildDoTableReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitWildDoTableReplication) { - return visitor.visitWildDoTableReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class WildIgnoreTableReplicationContext extends ReplicationFilterContext { - public REPLICATE_WILD_IGNORE_TABLE(): TerminalNode { return this.getToken(SqlParser.REPLICATE_WILD_IGNORE_TABLE, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public simpleStrings(): SimpleStringsContext { - return this.getRuleContext(0, SimpleStringsContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterWildIgnoreTableReplication) { - listener.enterWildIgnoreTableReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitWildIgnoreTableReplication) { - listener.exitWildIgnoreTableReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitWildIgnoreTableReplication) { - return visitor.visitWildIgnoreTableReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RewriteDbReplicationContext extends ReplicationFilterContext { - public REPLICATE_REWRITE_DB(): TerminalNode { return this.getToken(SqlParser.REPLICATE_REWRITE_DB, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public tablePair(): TablePairContext[]; - public tablePair(i: number): TablePairContext; - public tablePair(i?: number): TablePairContext | TablePairContext[] { - if (i === undefined) { - return this.getRuleContexts(TablePairContext); - } else { - return this.getRuleContext(i, TablePairContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: ReplicationFilterContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRewriteDbReplication) { - listener.enterRewriteDbReplication(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRewriteDbReplication) { - listener.exitRewriteDbReplication(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRewriteDbReplication) { - return visitor.visitRewriteDbReplication(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TablePairContext extends ParserRuleContext { - public _firstTable!: TableNameContext; - public _secondTable!: TableNameContext; - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public COMMA(): TerminalNode { return this.getToken(SqlParser.COMMA, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public tableName(): TableNameContext[]; - public tableName(i: number): TableNameContext; - public tableName(i?: number): TableNameContext | TableNameContext[] { - if (i === undefined) { - return this.getRuleContexts(TableNameContext); - } else { - return this.getRuleContext(i, TableNameContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tablePair; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTablePair) { - listener.enterTablePair(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTablePair) { - listener.exitTablePair(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTablePair) { - return visitor.visitTablePair(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ThreadTypeContext extends ParserRuleContext { - public IO_THREAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IO_THREAD, 0); } - public SQL_THREAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_THREAD, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_threadType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterThreadType) { - listener.enterThreadType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitThreadType) { - listener.exitThreadType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitThreadType) { - return visitor.visitThreadType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UntilOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_untilOption; } - public copyFrom(ctx: UntilOptionContext): void { - super.copyFrom(ctx); - } -} -export class GtidsUntilOptionContext extends UntilOptionContext { - public _gtids!: Token; - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public gtuidSet(): GtuidSetContext { - return this.getRuleContext(0, GtuidSetContext); - } - public SQL_BEFORE_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_BEFORE_GTIDS, 0); } - public SQL_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_AFTER_GTIDS, 0); } - constructor(ctx: UntilOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGtidsUntilOption) { - listener.enterGtidsUntilOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGtidsUntilOption) { - listener.exitGtidsUntilOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGtidsUntilOption) { - return visitor.visitGtidsUntilOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MasterLogUntilOptionContext extends UntilOptionContext { - public MASTER_LOG_FILE(): TerminalNode { return this.getToken(SqlParser.MASTER_LOG_FILE, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public COMMA(): TerminalNode { return this.getToken(SqlParser.COMMA, 0); } - public MASTER_LOG_POS(): TerminalNode { return this.getToken(SqlParser.MASTER_LOG_POS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - constructor(ctx: UntilOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMasterLogUntilOption) { - listener.enterMasterLogUntilOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMasterLogUntilOption) { - listener.exitMasterLogUntilOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMasterLogUntilOption) { - return visitor.visitMasterLogUntilOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RelayLogUntilOptionContext extends UntilOptionContext { - public RELAY_LOG_FILE(): TerminalNode { return this.getToken(SqlParser.RELAY_LOG_FILE, 0); } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public COMMA(): TerminalNode { return this.getToken(SqlParser.COMMA, 0); } - public RELAY_LOG_POS(): TerminalNode { return this.getToken(SqlParser.RELAY_LOG_POS, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - constructor(ctx: UntilOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRelayLogUntilOption) { - listener.enterRelayLogUntilOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRelayLogUntilOption) { - listener.exitRelayLogUntilOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRelayLogUntilOption) { - return visitor.visitRelayLogUntilOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SqlGapsUntilOptionContext extends UntilOptionContext { - public SQL_AFTER_MTS_GAPS(): TerminalNode { return this.getToken(SqlParser.SQL_AFTER_MTS_GAPS, 0); } - constructor(ctx: UntilOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSqlGapsUntilOption) { - listener.enterSqlGapsUntilOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSqlGapsUntilOption) { - listener.exitSqlGapsUntilOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSqlGapsUntilOption) { - return visitor.visitSqlGapsUntilOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConnectionOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_connectionOption; } - public copyFrom(ctx: ConnectionOptionContext): void { - super.copyFrom(ctx); - } -} -export class UserConnectionOptionContext extends ConnectionOptionContext { - public _conOptUser!: Token; - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ConnectionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserConnectionOption) { - listener.enterUserConnectionOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserConnectionOption) { - listener.exitUserConnectionOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserConnectionOption) { - return visitor.visitUserConnectionOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PasswordConnectionOptionContext extends ConnectionOptionContext { - public _conOptPassword!: Token; - public PASSWORD(): TerminalNode { return this.getToken(SqlParser.PASSWORD, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ConnectionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPasswordConnectionOption) { - listener.enterPasswordConnectionOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPasswordConnectionOption) { - listener.exitPasswordConnectionOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPasswordConnectionOption) { - return visitor.visitPasswordConnectionOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefaultAuthConnectionOptionContext extends ConnectionOptionContext { - public _conOptDefAuth!: Token; - public DEFAULT_AUTH(): TerminalNode { return this.getToken(SqlParser.DEFAULT_AUTH, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ConnectionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefaultAuthConnectionOption) { - listener.enterDefaultAuthConnectionOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefaultAuthConnectionOption) { - listener.exitDefaultAuthConnectionOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefaultAuthConnectionOption) { - return visitor.visitDefaultAuthConnectionOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PluginDirConnectionOptionContext extends ConnectionOptionContext { - public _conOptPluginDir!: Token; - public PLUGIN_DIR(): TerminalNode { return this.getToken(SqlParser.PLUGIN_DIR, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ConnectionOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPluginDirConnectionOption) { - listener.enterPluginDirConnectionOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPluginDirConnectionOption) { - listener.exitPluginDirConnectionOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPluginDirConnectionOption) { - return visitor.visitPluginDirConnectionOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class GtuidSetContext extends ParserRuleContext { - public uuidSet(): UuidSetContext[]; - public uuidSet(i: number): UuidSetContext; - public uuidSet(i?: number): UuidSetContext | UuidSetContext[] { - if (i === undefined) { - return this.getRuleContexts(UuidSetContext); - } else { - return this.getRuleContext(i, UuidSetContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_gtuidSet; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGtuidSet) { - listener.enterGtuidSet(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGtuidSet) { - listener.exitGtuidSet(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGtuidSet) { - return visitor.visitGtuidSet(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaStartTransactionContext extends ParserRuleContext { - public _xaStart!: Token; - public _xaAction!: Token; - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public xid(): XidContext { - return this.getRuleContext(0, XidContext); - } - public START(): TerminalNode | undefined { return this.tryGetToken(SqlParser.START, 0); } - public BEGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BEGIN, 0); } - public JOIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JOIN, 0); } - public RESUME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESUME, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaStartTransaction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaStartTransaction) { - listener.enterXaStartTransaction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaStartTransaction) { - listener.exitXaStartTransaction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaStartTransaction) { - return visitor.visitXaStartTransaction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaEndTransactionContext extends ParserRuleContext { - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public xid(): XidContext { - return this.getRuleContext(0, XidContext); - } - public SUSPEND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUSPEND, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public MIGRATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MIGRATE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaEndTransaction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaEndTransaction) { - listener.enterXaEndTransaction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaEndTransaction) { - listener.exitXaEndTransaction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaEndTransaction) { - return visitor.visitXaEndTransaction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaPrepareStatementContext extends ParserRuleContext { - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public PREPARE(): TerminalNode { return this.getToken(SqlParser.PREPARE, 0); } - public xid(): XidContext { - return this.getRuleContext(0, XidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaPrepareStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaPrepareStatement) { - listener.enterXaPrepareStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaPrepareStatement) { - listener.exitXaPrepareStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaPrepareStatement) { - return visitor.visitXaPrepareStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaCommitWorkContext extends ParserRuleContext { - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public COMMIT(): TerminalNode { return this.getToken(SqlParser.COMMIT, 0); } - public xid(): XidContext { - return this.getRuleContext(0, XidContext); - } - public ONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE, 0); } - public PHASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PHASE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaCommitWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaCommitWork) { - listener.enterXaCommitWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaCommitWork) { - listener.exitXaCommitWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaCommitWork) { - return visitor.visitXaCommitWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaRollbackWorkContext extends ParserRuleContext { - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public ROLLBACK(): TerminalNode { return this.getToken(SqlParser.ROLLBACK, 0); } - public xid(): XidContext { - return this.getRuleContext(0, XidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaRollbackWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaRollbackWork) { - listener.enterXaRollbackWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaRollbackWork) { - listener.exitXaRollbackWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaRollbackWork) { - return visitor.visitXaRollbackWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XaRecoverWorkContext extends ParserRuleContext { - public XA(): TerminalNode { return this.getToken(SqlParser.XA, 0); } - public RECOVER(): TerminalNode { return this.getToken(SqlParser.RECOVER, 0); } - public CONVERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONVERT, 0); } - public xid(): XidContext | undefined { - return this.tryGetRuleContext(0, XidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xaRecoverWork; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXaRecoverWork) { - listener.enterXaRecoverWork(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXaRecoverWork) { - listener.exitXaRecoverWork(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXaRecoverWork) { - return visitor.visitXaRecoverWork(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PrepareStatementContext extends ParserRuleContext { - public _query!: Token; - public _variable!: Token; - public PREPARE(): TerminalNode { return this.getToken(SqlParser.PREPARE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_prepareStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrepareStatement) { - listener.enterPrepareStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrepareStatement) { - listener.exitPrepareStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrepareStatement) { - return visitor.visitPrepareStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExecuteStatementContext extends ParserRuleContext { - public EXECUTE(): TerminalNode { return this.getToken(SqlParser.EXECUTE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public userVariables(): UserVariablesContext | undefined { - return this.tryGetRuleContext(0, UserVariablesContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_executeStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExecuteStatement) { - listener.enterExecuteStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExecuteStatement) { - listener.exitExecuteStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExecuteStatement) { - return visitor.visitExecuteStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeallocatePrepareContext extends ParserRuleContext { - public _dropFormat!: Token; - public PREPARE(): TerminalNode { return this.getToken(SqlParser.PREPARE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DEALLOCATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEALLOCATE, 0); } - public DROP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DROP, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_deallocatePrepare; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeallocatePrepare) { - listener.enterDeallocatePrepare(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeallocatePrepare) { - listener.exitDeallocatePrepare(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeallocatePrepare) { - return visitor.visitDeallocatePrepare(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RoutineBodyContext extends ParserRuleContext { - public blockStatement(): BlockStatementContext | undefined { - return this.tryGetRuleContext(0, BlockStatementContext); - } - public sqlStatement(): SqlStatementContext | undefined { - return this.tryGetRuleContext(0, SqlStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_routineBody; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRoutineBody) { - listener.enterRoutineBody(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRoutineBody) { - listener.exitRoutineBody(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRoutineBody) { - return visitor.visitRoutineBody(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BlockStatementContext extends ParserRuleContext { - public BEGIN(): TerminalNode { return this.getToken(SqlParser.BEGIN, 0); } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLON_SYMB, 0); } - public declareVariable(): DeclareVariableContext[]; - public declareVariable(i: number): DeclareVariableContext; - public declareVariable(i?: number): DeclareVariableContext | DeclareVariableContext[] { - if (i === undefined) { - return this.getRuleContexts(DeclareVariableContext); - } else { - return this.getRuleContext(i, DeclareVariableContext); - } - } - public SEMI(): TerminalNode[]; - public SEMI(i: number): TerminalNode; - public SEMI(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SEMI); - } else { - return this.getToken(SqlParser.SEMI, i); - } - } - public declareCondition(): DeclareConditionContext[]; - public declareCondition(i: number): DeclareConditionContext; - public declareCondition(i?: number): DeclareConditionContext | DeclareConditionContext[] { - if (i === undefined) { - return this.getRuleContexts(DeclareConditionContext); - } else { - return this.getRuleContext(i, DeclareConditionContext); - } - } - public declareCursor(): DeclareCursorContext[]; - public declareCursor(i: number): DeclareCursorContext; - public declareCursor(i?: number): DeclareCursorContext | DeclareCursorContext[] { - if (i === undefined) { - return this.getRuleContexts(DeclareCursorContext); - } else { - return this.getRuleContext(i, DeclareCursorContext); - } - } - public declareHandler(): DeclareHandlerContext[]; - public declareHandler(i: number): DeclareHandlerContext; - public declareHandler(i?: number): DeclareHandlerContext | DeclareHandlerContext[] { - if (i === undefined) { - return this.getRuleContexts(DeclareHandlerContext); - } else { - return this.getRuleContext(i, DeclareHandlerContext); - } - } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_blockStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBlockStatement) { - listener.enterBlockStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBlockStatement) { - listener.exitBlockStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBlockStatement) { - return visitor.visitBlockStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CaseStatementContext extends ParserRuleContext { - public CASE(): TerminalNode[]; - public CASE(i: number): TerminalNode; - public CASE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.CASE); - } else { - return this.getToken(SqlParser.CASE, i); - } - } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public caseAlternative(): CaseAlternativeContext[]; - public caseAlternative(i: number): CaseAlternativeContext; - public caseAlternative(i?: number): CaseAlternativeContext | CaseAlternativeContext[] { - if (i === undefined) { - return this.getRuleContexts(CaseAlternativeContext); - } else { - return this.getRuleContext(i, CaseAlternativeContext); - } - } - public ELSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ELSE, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_caseStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCaseStatement) { - listener.enterCaseStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCaseStatement) { - listener.exitCaseStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCaseStatement) { - return visitor.visitCaseStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IfStatementContext extends ParserRuleContext { - public _procedureSqlStatement!: ProcedureSqlStatementContext; - public _thenStatements: ProcedureSqlStatementContext[] = []; - public _elseStatements: ProcedureSqlStatementContext[] = []; - public IF(): TerminalNode[]; - public IF(i: number): TerminalNode; - public IF(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.IF); - } else { - return this.getToken(SqlParser.IF, i); - } - } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public THEN(): TerminalNode { return this.getToken(SqlParser.THEN, 0); } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public elifAlternative(): ElifAlternativeContext[]; - public elifAlternative(i: number): ElifAlternativeContext; - public elifAlternative(i?: number): ElifAlternativeContext | ElifAlternativeContext[] { - if (i === undefined) { - return this.getRuleContexts(ElifAlternativeContext); - } else { - return this.getRuleContext(i, ElifAlternativeContext); - } - } - public ELSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ELSE, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_ifStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIfStatement) { - listener.enterIfStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIfStatement) { - listener.exitIfStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIfStatement) { - return visitor.visitIfStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IterateStatementContext extends ParserRuleContext { - public ITERATE(): TerminalNode { return this.getToken(SqlParser.ITERATE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_iterateStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIterateStatement) { - listener.enterIterateStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIterateStatement) { - listener.exitIterateStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIterateStatement) { - return visitor.visitIterateStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LeaveStatementContext extends ParserRuleContext { - public LEAVE(): TerminalNode { return this.getToken(SqlParser.LEAVE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_leaveStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLeaveStatement) { - listener.enterLeaveStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLeaveStatement) { - listener.exitLeaveStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLeaveStatement) { - return visitor.visitLeaveStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoopStatementContext extends ParserRuleContext { - public LOOP(): TerminalNode[]; - public LOOP(i: number): TerminalNode; - public LOOP(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LOOP); - } else { - return this.getToken(SqlParser.LOOP, i); - } - } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLON_SYMB, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_loopStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLoopStatement) { - listener.enterLoopStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLoopStatement) { - listener.exitLoopStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLoopStatement) { - return visitor.visitLoopStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RepeatStatementContext extends ParserRuleContext { - public REPEAT(): TerminalNode[]; - public REPEAT(i: number): TerminalNode; - public REPEAT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.REPEAT); - } else { - return this.getToken(SqlParser.REPEAT, i); - } - } - public UNTIL(): TerminalNode { return this.getToken(SqlParser.UNTIL, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLON_SYMB, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_repeatStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRepeatStatement) { - listener.enterRepeatStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRepeatStatement) { - listener.exitRepeatStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRepeatStatement) { - return visitor.visitRepeatStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ReturnStatementContext extends ParserRuleContext { - public RETURN(): TerminalNode { return this.getToken(SqlParser.RETURN, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_returnStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterReturnStatement) { - listener.enterReturnStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitReturnStatement) { - listener.exitReturnStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitReturnStatement) { - return visitor.visitReturnStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class WhileStatementContext extends ParserRuleContext { - public WHILE(): TerminalNode[]; - public WHILE(i: number): TerminalNode; - public WHILE(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.WHILE); - } else { - return this.getToken(SqlParser.WHILE, i); - } - } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public DO(): TerminalNode { return this.getToken(SqlParser.DO, 0); } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLON_SYMB, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_whileStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterWhileStatement) { - listener.enterWhileStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitWhileStatement) { - listener.exitWhileStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitWhileStatement) { - return visitor.visitWhileStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CursorStatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_cursorStatement; } - public copyFrom(ctx: CursorStatementContext): void { - super.copyFrom(ctx); - } -} -export class CloseCursorContext extends CursorStatementContext { - public CLOSE(): TerminalNode { return this.getToken(SqlParser.CLOSE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: CursorStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCloseCursor) { - listener.enterCloseCursor(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCloseCursor) { - listener.exitCloseCursor(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCloseCursor) { - return visitor.visitCloseCursor(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class FetchCursorContext extends CursorStatementContext { - public FETCH(): TerminalNode { return this.getToken(SqlParser.FETCH, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public FROM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM, 0); } - public NEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEXT, 0); } - constructor(ctx: CursorStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFetchCursor) { - listener.enterFetchCursor(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFetchCursor) { - listener.exitFetchCursor(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFetchCursor) { - return visitor.visitFetchCursor(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class OpenCursorContext extends CursorStatementContext { - public OPEN(): TerminalNode { return this.getToken(SqlParser.OPEN, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: CursorStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOpenCursor) { - listener.enterOpenCursor(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOpenCursor) { - listener.exitOpenCursor(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOpenCursor) { - return visitor.visitOpenCursor(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeclareVariableContext extends ParserRuleContext { - public DECLARE(): TerminalNode { return this.getToken(SqlParser.DECLARE, 0); } - public uidList(): UidListContext { - return this.getRuleContext(0, UidListContext); - } - public dataType(): DataTypeContext { - return this.getRuleContext(0, DataTypeContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public defaultValue(): DefaultValueContext | undefined { - return this.tryGetRuleContext(0, DefaultValueContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_declareVariable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeclareVariable) { - listener.enterDeclareVariable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeclareVariable) { - listener.exitDeclareVariable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeclareVariable) { - return visitor.visitDeclareVariable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeclareConditionContext extends ParserRuleContext { - public DECLARE(): TerminalNode { return this.getToken(SqlParser.DECLARE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public CONDITION(): TerminalNode { return this.getToken(SqlParser.CONDITION, 0); } - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQLSTATE, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_declareCondition; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeclareCondition) { - listener.enterDeclareCondition(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeclareCondition) { - listener.exitDeclareCondition(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeclareCondition) { - return visitor.visitDeclareCondition(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeclareCursorContext extends ParserRuleContext { - public DECLARE(): TerminalNode { return this.getToken(SqlParser.DECLARE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public CURSOR(): TerminalNode { return this.getToken(SqlParser.CURSOR, 0); } - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_declareCursor; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeclareCursor) { - listener.enterDeclareCursor(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeclareCursor) { - listener.exitDeclareCursor(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeclareCursor) { - return visitor.visitDeclareCursor(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DeclareHandlerContext extends ParserRuleContext { - public _handlerAction!: Token; - public DECLARE(): TerminalNode { return this.getToken(SqlParser.DECLARE, 0); } - public HANDLER(): TerminalNode { return this.getToken(SqlParser.HANDLER, 0); } - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public handlerConditionValue(): HandlerConditionValueContext[]; - public handlerConditionValue(i: number): HandlerConditionValueContext; - public handlerConditionValue(i?: number): HandlerConditionValueContext | HandlerConditionValueContext[] { - if (i === undefined) { - return this.getRuleContexts(HandlerConditionValueContext); - } else { - return this.getRuleContext(i, HandlerConditionValueContext); - } - } - public routineBody(): RoutineBodyContext { - return this.getRuleContext(0, RoutineBodyContext); - } - public CONTINUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTINUE, 0); } - public EXIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXIT, 0); } - public UNDO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDO, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_declareHandler; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDeclareHandler) { - listener.enterDeclareHandler(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDeclareHandler) { - listener.exitDeclareHandler(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDeclareHandler) { - return visitor.visitDeclareHandler(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HandlerConditionValueContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_handlerConditionValue; } - public copyFrom(ctx: HandlerConditionValueContext): void { - super.copyFrom(ctx); - } -} -export class HandlerConditionCodeContext extends HandlerConditionValueContext { - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionCode) { - listener.enterHandlerConditionCode(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionCode) { - listener.exitHandlerConditionCode(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionCode) { - return visitor.visitHandlerConditionCode(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HandlerConditionStateContext extends HandlerConditionValueContext { - public SQLSTATE(): TerminalNode { return this.getToken(SqlParser.SQLSTATE, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionState) { - listener.enterHandlerConditionState(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionState) { - listener.exitHandlerConditionState(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionState) { - return visitor.visitHandlerConditionState(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HandlerConditionNameContext extends HandlerConditionValueContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionName) { - listener.enterHandlerConditionName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionName) { - listener.exitHandlerConditionName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionName) { - return visitor.visitHandlerConditionName(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HandlerConditionWarningContext extends HandlerConditionValueContext { - public SQLWARNING(): TerminalNode { return this.getToken(SqlParser.SQLWARNING, 0); } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionWarning) { - listener.enterHandlerConditionWarning(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionWarning) { - listener.exitHandlerConditionWarning(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionWarning) { - return visitor.visitHandlerConditionWarning(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HandlerConditionNotfoundContext extends HandlerConditionValueContext { - public NOT(): TerminalNode { return this.getToken(SqlParser.NOT, 0); } - public FOUND(): TerminalNode { return this.getToken(SqlParser.FOUND, 0); } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionNotfound) { - listener.enterHandlerConditionNotfound(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionNotfound) { - listener.exitHandlerConditionNotfound(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionNotfound) { - return visitor.visitHandlerConditionNotfound(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HandlerConditionExceptionContext extends HandlerConditionValueContext { - public SQLEXCEPTION(): TerminalNode { return this.getToken(SqlParser.SQLEXCEPTION, 0); } - constructor(ctx: HandlerConditionValueContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHandlerConditionException) { - listener.enterHandlerConditionException(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHandlerConditionException) { - listener.exitHandlerConditionException(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHandlerConditionException) { - return visitor.visitHandlerConditionException(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ProcedureSqlStatementContext extends ParserRuleContext { - public SEMI(): TerminalNode { return this.getToken(SqlParser.SEMI, 0); } - public compoundStatement(): CompoundStatementContext | undefined { - return this.tryGetRuleContext(0, CompoundStatementContext); - } - public sqlStatement(): SqlStatementContext | undefined { - return this.tryGetRuleContext(0, SqlStatementContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_procedureSqlStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterProcedureSqlStatement) { - listener.enterProcedureSqlStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitProcedureSqlStatement) { - listener.exitProcedureSqlStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitProcedureSqlStatement) { - return visitor.visitProcedureSqlStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CaseAlternativeContext extends ParserRuleContext { - public WHEN(): TerminalNode { return this.getToken(SqlParser.WHEN, 0); } - public THEN(): TerminalNode { return this.getToken(SqlParser.THEN, 0); } - public constant(): ConstantContext | undefined { - return this.tryGetRuleContext(0, ConstantContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_caseAlternative; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCaseAlternative) { - listener.enterCaseAlternative(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCaseAlternative) { - listener.exitCaseAlternative(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCaseAlternative) { - return visitor.visitCaseAlternative(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ElifAlternativeContext extends ParserRuleContext { - public ELSEIF(): TerminalNode { return this.getToken(SqlParser.ELSEIF, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public THEN(): TerminalNode { return this.getToken(SqlParser.THEN, 0); } - public procedureSqlStatement(): ProcedureSqlStatementContext[]; - public procedureSqlStatement(i: number): ProcedureSqlStatementContext; - public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { - if (i === undefined) { - return this.getRuleContexts(ProcedureSqlStatementContext); - } else { - return this.getRuleContext(i, ProcedureSqlStatementContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_elifAlternative; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterElifAlternative) { - listener.enterElifAlternative(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitElifAlternative) { - listener.exitElifAlternative(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitElifAlternative) { - return visitor.visitElifAlternative(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AlterUserContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_alterUser; } - public copyFrom(ctx: AlterUserContext): void { - super.copyFrom(ctx); - } -} -export class AlterUserMysqlV56Context extends AlterUserContext { - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userSpecification(): UserSpecificationContext[]; - public userSpecification(i: number): UserSpecificationContext; - public userSpecification(i?: number): UserSpecificationContext | UserSpecificationContext[] { - if (i === undefined) { - return this.getRuleContexts(UserSpecificationContext); - } else { - return this.getRuleContext(i, UserSpecificationContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: AlterUserContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterUserMysqlV56) { - listener.enterAlterUserMysqlV56(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterUserMysqlV56) { - listener.exitAlterUserMysqlV56(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterUserMysqlV56) { - return visitor.visitAlterUserMysqlV56(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AlterUserMysqlV57Context extends AlterUserContext { - public _tlsNone!: Token; - public ALTER(): TerminalNode { return this.getToken(SqlParser.ALTER, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userAuthOption(): UserAuthOptionContext[]; - public userAuthOption(i: number): UserAuthOptionContext; - public userAuthOption(i?: number): UserAuthOptionContext | UserAuthOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserAuthOptionContext); - } else { - return this.getRuleContext(i, UserAuthOptionContext); - } - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public REQUIRE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REQUIRE, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public userPasswordOption(): UserPasswordOptionContext[]; - public userPasswordOption(i: number): UserPasswordOptionContext; - public userPasswordOption(i?: number): UserPasswordOptionContext | UserPasswordOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserPasswordOptionContext); - } else { - return this.getRuleContext(i, UserPasswordOptionContext); - } - } - public userLockOption(): UserLockOptionContext[]; - public userLockOption(i: number): UserLockOptionContext; - public userLockOption(i?: number): UserLockOptionContext | UserLockOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserLockOptionContext); - } else { - return this.getRuleContext(i, UserLockOptionContext); - } - } - public tlsOption(): TlsOptionContext[]; - public tlsOption(i: number): TlsOptionContext; - public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TlsOptionContext); - } else { - return this.getRuleContext(i, TlsOptionContext); - } - } - public NONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NONE, 0); } - public userResourceOption(): UserResourceOptionContext[]; - public userResourceOption(i: number): UserResourceOptionContext; - public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserResourceOptionContext); - } else { - return this.getRuleContext(i, UserResourceOptionContext); - } - } - public AND(): TerminalNode[]; - public AND(i: number): TerminalNode; - public AND(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.AND); - } else { - return this.getToken(SqlParser.AND, i); - } - } - constructor(ctx: AlterUserContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAlterUserMysqlV57) { - listener.enterAlterUserMysqlV57(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAlterUserMysqlV57) { - listener.exitAlterUserMysqlV57(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAlterUserMysqlV57) { - return visitor.visitAlterUserMysqlV57(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateUserContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createUser; } - public copyFrom(ctx: CreateUserContext): void { - super.copyFrom(ctx); - } -} -export class CreateUserMysqlV56Context extends CreateUserContext { - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userAuthOption(): UserAuthOptionContext[]; - public userAuthOption(i: number): UserAuthOptionContext; - public userAuthOption(i?: number): UserAuthOptionContext | UserAuthOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserAuthOptionContext); - } else { - return this.getRuleContext(i, UserAuthOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: CreateUserContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateUserMysqlV56) { - listener.enterCreateUserMysqlV56(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateUserMysqlV56) { - listener.exitCreateUserMysqlV56(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateUserMysqlV56) { - return visitor.visitCreateUserMysqlV56(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CreateUserMysqlV57Context extends CreateUserContext { - public _tlsNone!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userAuthOption(): UserAuthOptionContext[]; - public userAuthOption(i: number): UserAuthOptionContext; - public userAuthOption(i?: number): UserAuthOptionContext | UserAuthOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserAuthOptionContext); - } else { - return this.getRuleContext(i, UserAuthOptionContext); - } - } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public REQUIRE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REQUIRE, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public userPasswordOption(): UserPasswordOptionContext[]; - public userPasswordOption(i: number): UserPasswordOptionContext; - public userPasswordOption(i?: number): UserPasswordOptionContext | UserPasswordOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserPasswordOptionContext); - } else { - return this.getRuleContext(i, UserPasswordOptionContext); - } - } - public userLockOption(): UserLockOptionContext[]; - public userLockOption(i: number): UserLockOptionContext; - public userLockOption(i?: number): UserLockOptionContext | UserLockOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserLockOptionContext); - } else { - return this.getRuleContext(i, UserLockOptionContext); - } - } - public tlsOption(): TlsOptionContext[]; - public tlsOption(i: number): TlsOptionContext; - public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TlsOptionContext); - } else { - return this.getRuleContext(i, TlsOptionContext); - } - } - public NONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NONE, 0); } - public userResourceOption(): UserResourceOptionContext[]; - public userResourceOption(i: number): UserResourceOptionContext; - public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserResourceOptionContext); - } else { - return this.getRuleContext(i, UserResourceOptionContext); - } - } - public AND(): TerminalNode[]; - public AND(i: number): TerminalNode; - public AND(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.AND); - } else { - return this.getToken(SqlParser.AND, i); - } - } - constructor(ctx: CreateUserContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateUserMysqlV57) { - listener.enterCreateUserMysqlV57(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateUserMysqlV57) { - listener.exitCreateUserMysqlV57(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateUserMysqlV57) { - return visitor.visitCreateUserMysqlV57(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DropUserContext extends ParserRuleContext { - public DROP(): TerminalNode { return this.getToken(SqlParser.DROP, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - public ifExists(): IfExistsContext | undefined { - return this.tryGetRuleContext(0, IfExistsContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dropUser; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDropUser) { - listener.enterDropUser(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDropUser) { - listener.exitDropUser(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDropUser) { - return visitor.visitDropUser(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class GrantStatementContext extends ParserRuleContext { - public _privilegeObject!: Token; - public _tlsNone!: Token; - public GRANT(): TerminalNode[]; - public GRANT(i: number): TerminalNode; - public GRANT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.GRANT); - } else { - return this.getToken(SqlParser.GRANT, i); - } - } - public privelegeClause(): PrivelegeClauseContext[]; - public privelegeClause(i: number): PrivelegeClauseContext; - public privelegeClause(i?: number): PrivelegeClauseContext | PrivelegeClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(PrivelegeClauseContext); - } else { - return this.getRuleContext(i, PrivelegeClauseContext); - } - } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public privilegeLevel(): PrivilegeLevelContext { - return this.getRuleContext(0, PrivilegeLevelContext); - } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public userAuthOption(): UserAuthOptionContext[]; - public userAuthOption(i: number): UserAuthOptionContext; - public userAuthOption(i?: number): UserAuthOptionContext | UserAuthOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserAuthOptionContext); - } else { - return this.getRuleContext(i, UserAuthOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public REQUIRE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REQUIRE, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE, 0); } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCEDURE, 0); } - public tlsOption(): TlsOptionContext[]; - public tlsOption(i: number): TlsOptionContext; - public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(TlsOptionContext); - } else { - return this.getRuleContext(i, TlsOptionContext); - } - } - public NONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NONE, 0); } - public OPTION(): TerminalNode[]; - public OPTION(i: number): TerminalNode; - public OPTION(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.OPTION); - } else { - return this.getToken(SqlParser.OPTION, i); - } - } - public userResourceOption(): UserResourceOptionContext[]; - public userResourceOption(i: number): UserResourceOptionContext; - public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(UserResourceOptionContext); - } else { - return this.getRuleContext(i, UserResourceOptionContext); - } - } - public AND(): TerminalNode[]; - public AND(i: number): TerminalNode; - public AND(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.AND); - } else { - return this.getToken(SqlParser.AND, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_grantStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGrantStatement) { - listener.enterGrantStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGrantStatement) { - listener.exitGrantStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGrantStatement) { - return visitor.visitGrantStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class GrantProxyContext extends ParserRuleContext { - public _fromFirst!: UserNameContext; - public _toFirst!: UserNameContext; - public _userName!: UserNameContext; - public _toOther: UserNameContext[] = []; - public GRANT(): TerminalNode[]; - public GRANT(i: number): TerminalNode; - public GRANT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.GRANT); - } else { - return this.getToken(SqlParser.GRANT, i); - } - } - public PROXY(): TerminalNode { return this.getToken(SqlParser.PROXY, 0); } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public OPTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_grantProxy; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGrantProxy) { - listener.enterGrantProxy(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGrantProxy) { - listener.exitGrantProxy(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGrantProxy) { - return visitor.visitGrantProxy(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RenameUserContext extends ParserRuleContext { - public RENAME(): TerminalNode { return this.getToken(SqlParser.RENAME, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public renameUserClause(): RenameUserClauseContext[]; - public renameUserClause(i: number): RenameUserClauseContext; - public renameUserClause(i?: number): RenameUserClauseContext | RenameUserClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(RenameUserClauseContext); - } else { - return this.getRuleContext(i, RenameUserClauseContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_renameUser; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRenameUser) { - listener.enterRenameUser(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRenameUser) { - listener.exitRenameUser(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRenameUser) { - return visitor.visitRenameUser(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RevokeStatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_revokeStatement; } - public copyFrom(ctx: RevokeStatementContext): void { - super.copyFrom(ctx); - } -} -export class DetailRevokeContext extends RevokeStatementContext { - public _privilegeObject!: Token; - public REVOKE(): TerminalNode { return this.getToken(SqlParser.REVOKE, 0); } - public privelegeClause(): PrivelegeClauseContext[]; - public privelegeClause(i: number): PrivelegeClauseContext; - public privelegeClause(i?: number): PrivelegeClauseContext | PrivelegeClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(PrivelegeClauseContext); - } else { - return this.getRuleContext(i, PrivelegeClauseContext); - } - } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public privilegeLevel(): PrivilegeLevelContext { - return this.getRuleContext(0, PrivilegeLevelContext); - } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE, 0); } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCEDURE, 0); } - constructor(ctx: RevokeStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDetailRevoke) { - listener.enterDetailRevoke(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDetailRevoke) { - listener.exitDetailRevoke(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDetailRevoke) { - return visitor.visitDetailRevoke(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShortRevokeContext extends RevokeStatementContext { - public REVOKE(): TerminalNode { return this.getToken(SqlParser.REVOKE, 0); } - public ALL(): TerminalNode { return this.getToken(SqlParser.ALL, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public GRANT(): TerminalNode { return this.getToken(SqlParser.GRANT, 0); } - public OPTION(): TerminalNode { return this.getToken(SqlParser.OPTION, 0); } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - public PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIVILEGES, 0); } - constructor(ctx: RevokeStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShortRevoke) { - listener.enterShortRevoke(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShortRevoke) { - listener.exitShortRevoke(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShortRevoke) { - return visitor.visitShortRevoke(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RevokeProxyContext extends ParserRuleContext { - public _onUser!: UserNameContext; - public _fromFirst!: UserNameContext; - public _userName!: UserNameContext; - public _fromOther: UserNameContext[] = []; - public REVOKE(): TerminalNode { return this.getToken(SqlParser.REVOKE, 0); } - public PROXY(): TerminalNode { return this.getToken(SqlParser.PROXY, 0); } - public ON(): TerminalNode { return this.getToken(SqlParser.ON, 0); } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_revokeProxy; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRevokeProxy) { - listener.enterRevokeProxy(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRevokeProxy) { - listener.exitRevokeProxy(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRevokeProxy) { - return visitor.visitRevokeProxy(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SetPasswordStatementContext extends ParserRuleContext { - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public PASSWORD(): TerminalNode { return this.getToken(SqlParser.PASSWORD, 0); } - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public passwordFunctionClause(): PasswordFunctionClauseContext | undefined { - return this.tryGetRuleContext(0, PasswordFunctionClauseContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public userName(): UserNameContext | undefined { - return this.tryGetRuleContext(0, UserNameContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_setPasswordStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetPasswordStatement) { - listener.enterSetPasswordStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetPasswordStatement) { - listener.exitSetPasswordStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetPasswordStatement) { - return visitor.visitSetPasswordStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserSpecificationContext extends ParserRuleContext { - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - public userPasswordOption(): UserPasswordOptionContext { - return this.getRuleContext(0, UserPasswordOptionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userSpecification; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserSpecification) { - listener.enterUserSpecification(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserSpecification) { - listener.exitUserSpecification(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserSpecification) { - return visitor.visitUserSpecification(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserAuthOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userAuthOption; } - public copyFrom(ctx: UserAuthOptionContext): void { - super.copyFrom(ctx); - } -} -export class PasswordAuthOptionContext extends UserAuthOptionContext { - public _hashed!: Token; - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - public IDENTIFIED(): TerminalNode { return this.getToken(SqlParser.IDENTIFIED, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public PASSWORD(): TerminalNode { return this.getToken(SqlParser.PASSWORD, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: UserAuthOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPasswordAuthOption) { - listener.enterPasswordAuthOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPasswordAuthOption) { - listener.exitPasswordAuthOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPasswordAuthOption) { - return visitor.visitPasswordAuthOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class StringAuthOptionContext extends UserAuthOptionContext { - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - public IDENTIFIED(): TerminalNode { return this.getToken(SqlParser.IDENTIFIED, 0); } - public BY(): TerminalNode { return this.getToken(SqlParser.BY, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public authPlugin(): AuthPluginContext | undefined { - return this.tryGetRuleContext(0, AuthPluginContext); - } - constructor(ctx: UserAuthOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStringAuthOption) { - listener.enterStringAuthOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStringAuthOption) { - listener.exitStringAuthOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStringAuthOption) { - return visitor.visitStringAuthOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class HashAuthOptionContext extends UserAuthOptionContext { - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - public IDENTIFIED(): TerminalNode { return this.getToken(SqlParser.IDENTIFIED, 0); } - public WITH(): TerminalNode { return this.getToken(SqlParser.WITH, 0); } - public authPlugin(): AuthPluginContext { - return this.getRuleContext(0, AuthPluginContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: UserAuthOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHashAuthOption) { - listener.enterHashAuthOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHashAuthOption) { - listener.exitHashAuthOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHashAuthOption) { - return visitor.visitHashAuthOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SimpleAuthOptionContext extends UserAuthOptionContext { - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - constructor(ctx: UserAuthOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleAuthOption) { - listener.enterSimpleAuthOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleAuthOption) { - listener.exitSimpleAuthOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleAuthOption) { - return visitor.visitSimpleAuthOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TlsOptionContext extends ParserRuleContext { - public SSL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SSL, 0); } - public X509(): TerminalNode | undefined { return this.tryGetToken(SqlParser.X509, 0); } - public CIPHER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CIPHER, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public ISSUER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISSUER, 0); } - public SUBJECT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBJECT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tlsOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTlsOption) { - listener.enterTlsOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTlsOption) { - listener.exitTlsOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTlsOption) { - return visitor.visitTlsOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserResourceOptionContext extends ParserRuleContext { - public MAX_QUERIES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_QUERIES_PER_HOUR, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public MAX_UPDATES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_UPDATES_PER_HOUR, 0); } - public MAX_CONNECTIONS_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_CONNECTIONS_PER_HOUR, 0); } - public MAX_USER_CONNECTIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_USER_CONNECTIONS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userResourceOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserResourceOption) { - listener.enterUserResourceOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserResourceOption) { - listener.exitUserResourceOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserResourceOption) { - return visitor.visitUserResourceOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserPasswordOptionContext extends ParserRuleContext { - public _expireType!: Token; - public PASSWORD(): TerminalNode { return this.getToken(SqlParser.PASSWORD, 0); } - public EXPIRE(): TerminalNode { return this.getToken(SqlParser.EXPIRE, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public DAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY, 0); } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public NEVER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEVER, 0); } - public INTERVAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTERVAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userPasswordOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserPasswordOption) { - listener.enterUserPasswordOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserPasswordOption) { - listener.exitUserPasswordOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserPasswordOption) { - return visitor.visitUserPasswordOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserLockOptionContext extends ParserRuleContext { - public _lockType!: Token; - public ACCOUNT(): TerminalNode { return this.getToken(SqlParser.ACCOUNT, 0); } - public LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCK, 0); } - public UNLOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNLOCK, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userLockOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserLockOption) { - listener.enterUserLockOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserLockOption) { - listener.exitUserLockOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserLockOption) { - return visitor.visitUserLockOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PrivelegeClauseContext extends ParserRuleContext { - public privilege(): PrivilegeContext { - return this.getRuleContext(0, PrivilegeContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_privelegeClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrivelegeClause) { - listener.enterPrivelegeClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrivelegeClause) { - listener.exitPrivelegeClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrivelegeClause) { - return visitor.visitPrivelegeClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PrivilegeContext extends ParserRuleContext { - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIVILEGES, 0); } - public ALTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALTER, 0); } - public ROUTINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROUTINE, 0); } - public CREATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CREATE, 0); } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public TABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLES, 0); } - public VIEW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VIEW, 0); } - public USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USER, 0); } - public TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLESPACE, 0); } - public ROLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLE, 0); } - public DELETE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELETE, 0); } - public DROP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DROP, 0); } - public EVENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVENT, 0); } - public EXECUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXECUTE, 0); } - public FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILE, 0); } - public GRANT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GRANT, 0); } - public OPTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTION, 0); } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public INSERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSERT, 0); } - public LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCK, 0); } - public PROCESS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCESS, 0); } - public PROXY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROXY, 0); } - public REFERENCES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REFERENCES, 0); } - public RELOAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELOAD, 0); } - public REPLICATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION, 0); } - public CLIENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLIENT, 0); } - public SLAVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLAVE, 0); } - public SELECT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SELECT, 0); } - public SHOW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHOW, 0); } - public DATABASES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASES, 0); } - public SHUTDOWN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHUTDOWN, 0); } - public SUPER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUPER, 0); } - public TRIGGER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRIGGER, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - public USAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USAGE, 0); } - public AUDIT_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUDIT_ADMIN, 0); } - public BACKUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BACKUP_ADMIN, 0); } - public BINLOG_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG_ADMIN, 0); } - public BINLOG_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG_ENCRYPTION_ADMIN, 0); } - public CLONE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLONE_ADMIN, 0); } - public CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONNECTION_ADMIN, 0); } - public ENCRYPTION_KEY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCRYPTION_KEY_ADMIN, 0); } - public FIREWALL_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIREWALL_ADMIN, 0); } - public FIREWALL_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIREWALL_USER, 0); } - public GROUP_REPLICATION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP_REPLICATION_ADMIN, 0); } - public INNODB_REDO_LOG_ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INNODB_REDO_LOG_ARCHIVE, 0); } - public NDB_STORED_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NDB_STORED_USER, 0); } - public PERSIST_RO_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PERSIST_RO_VARIABLES_ADMIN, 0); } - public REPLICATION_APPLIER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION_APPLIER, 0); } - public REPLICATION_SLAVE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION_SLAVE_ADMIN, 0); } - public RESOURCE_GROUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESOURCE_GROUP_ADMIN, 0); } - public RESOURCE_GROUP_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESOURCE_GROUP_USER, 0); } - public ROLE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLE_ADMIN, 0); } - public SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION_VARIABLES_ADMIN, 0); } - public SET_USER_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET_USER_ID, 0); } - public SHOW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHOW_ROUTINE, 0); } - public SYSTEM_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SYSTEM_VARIABLES_ADMIN, 0); } - public TABLE_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE_ENCRYPTION_ADMIN, 0); } - public VERSION_TOKEN_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VERSION_TOKEN_ADMIN, 0); } - public XA_RECOVER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.XA_RECOVER_ADMIN, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_privilege; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrivilege) { - listener.enterPrivilege(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrivilege) { - listener.exitPrivilege(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrivilege) { - return visitor.visitPrivilege(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PrivilegeLevelContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_privilegeLevel; } - public copyFrom(ctx: PrivilegeLevelContext): void { - super.copyFrom(ctx); - } -} -export class CurrentSchemaPriviLevelContext extends PrivilegeLevelContext { - public STAR(): TerminalNode { return this.getToken(SqlParser.STAR, 0); } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCurrentSchemaPriviLevel) { - listener.enterCurrentSchemaPriviLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCurrentSchemaPriviLevel) { - listener.exitCurrentSchemaPriviLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCurrentSchemaPriviLevel) { - return visitor.visitCurrentSchemaPriviLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class GlobalPrivLevelContext extends PrivilegeLevelContext { - public STAR(): TerminalNode[]; - public STAR(i: number): TerminalNode; - public STAR(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STAR); - } else { - return this.getToken(SqlParser.STAR, i); - } - } - public DOT(): TerminalNode { return this.getToken(SqlParser.DOT, 0); } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGlobalPrivLevel) { - listener.enterGlobalPrivLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGlobalPrivLevel) { - listener.exitGlobalPrivLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGlobalPrivLevel) { - return visitor.visitGlobalPrivLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefiniteSchemaPrivLevelContext extends PrivilegeLevelContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DOT(): TerminalNode { return this.getToken(SqlParser.DOT, 0); } - public STAR(): TerminalNode { return this.getToken(SqlParser.STAR, 0); } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefiniteSchemaPrivLevel) { - listener.enterDefiniteSchemaPrivLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefiniteSchemaPrivLevel) { - listener.exitDefiniteSchemaPrivLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefiniteSchemaPrivLevel) { - return visitor.visitDefiniteSchemaPrivLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefiniteFullTablePrivLevelContext extends PrivilegeLevelContext { - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public DOT(): TerminalNode { return this.getToken(SqlParser.DOT, 0); } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefiniteFullTablePrivLevel) { - listener.enterDefiniteFullTablePrivLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefiniteFullTablePrivLevel) { - listener.exitDefiniteFullTablePrivLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefiniteFullTablePrivLevel) { - return visitor.visitDefiniteFullTablePrivLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefiniteFullTablePrivLevel2Context extends PrivilegeLevelContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public dottedId(): DottedIdContext { - return this.getRuleContext(0, DottedIdContext); - } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefiniteFullTablePrivLevel2) { - listener.enterDefiniteFullTablePrivLevel2(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefiniteFullTablePrivLevel2) { - listener.exitDefiniteFullTablePrivLevel2(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefiniteFullTablePrivLevel2) { - return visitor.visitDefiniteFullTablePrivLevel2(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DefiniteTablePrivLevelContext extends PrivilegeLevelContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: PrivilegeLevelContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefiniteTablePrivLevel) { - listener.enterDefiniteTablePrivLevel(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefiniteTablePrivLevel) { - listener.exitDefiniteTablePrivLevel(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefiniteTablePrivLevel) { - return visitor.visitDefiniteTablePrivLevel(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RenameUserClauseContext extends ParserRuleContext { - public _fromFirst!: UserNameContext; - public _toFirst!: UserNameContext; - public TO(): TerminalNode { return this.getToken(SqlParser.TO, 0); } - public userName(): UserNameContext[]; - public userName(i: number): UserNameContext; - public userName(i?: number): UserNameContext | UserNameContext[] { - if (i === undefined) { - return this.getRuleContexts(UserNameContext); - } else { - return this.getRuleContext(i, UserNameContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_renameUserClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRenameUserClause) { - listener.enterRenameUserClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRenameUserClause) { - listener.exitRenameUserClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRenameUserClause) { - return visitor.visitRenameUserClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AnalyzeTableContext extends ParserRuleContext { - public _actionOption!: Token; - public ANALYZE(): TerminalNode { return this.getToken(SqlParser.ANALYZE, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public NO_WRITE_TO_BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO_WRITE_TO_BINLOG, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_analyzeTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAnalyzeTable) { - listener.enterAnalyzeTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAnalyzeTable) { - listener.exitAnalyzeTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAnalyzeTable) { - return visitor.visitAnalyzeTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CheckTableContext extends ParserRuleContext { - public CHECK(): TerminalNode { return this.getToken(SqlParser.CHECK, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public checkTableOption(): CheckTableOptionContext[]; - public checkTableOption(i: number): CheckTableOptionContext; - public checkTableOption(i?: number): CheckTableOptionContext | CheckTableOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(CheckTableOptionContext); - } else { - return this.getRuleContext(i, CheckTableOptionContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_checkTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCheckTable) { - listener.enterCheckTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCheckTable) { - listener.exitCheckTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCheckTable) { - return visitor.visitCheckTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ChecksumTableContext extends ParserRuleContext { - public _actionOption!: Token; - public CHECKSUM(): TerminalNode { return this.getToken(SqlParser.CHECKSUM, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public EXTENDED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENDED, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_checksumTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterChecksumTable) { - listener.enterChecksumTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitChecksumTable) { - listener.exitChecksumTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitChecksumTable) { - return visitor.visitChecksumTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class OptimizeTableContext extends ParserRuleContext { - public _actionOption!: Token; - public OPTIMIZE(): TerminalNode { return this.getToken(SqlParser.OPTIMIZE, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public NO_WRITE_TO_BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO_WRITE_TO_BINLOG, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_optimizeTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterOptimizeTable) { - listener.enterOptimizeTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitOptimizeTable) { - listener.exitOptimizeTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitOptimizeTable) { - return visitor.visitOptimizeTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class RepairTableContext extends ParserRuleContext { - public _actionOption!: Token; - public REPAIR(): TerminalNode { return this.getToken(SqlParser.REPAIR, 0); } - public TABLE(): TerminalNode { return this.getToken(SqlParser.TABLE, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public EXTENDED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENDED, 0); } - public USE_FRM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USE_FRM, 0); } - public NO_WRITE_TO_BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO_WRITE_TO_BINLOG, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_repairTable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRepairTable) { - listener.enterRepairTable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRepairTable) { - listener.exitRepairTable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRepairTable) { - return visitor.visitRepairTable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CheckTableOptionContext extends ParserRuleContext { - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public UPGRADE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPGRADE, 0); } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public FAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FAST, 0); } - public MEDIUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEDIUM, 0); } - public EXTENDED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENDED, 0); } - public CHANGED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHANGED, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_checkTableOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCheckTableOption) { - listener.enterCheckTableOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCheckTableOption) { - listener.exitCheckTableOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCheckTableOption) { - return visitor.visitCheckTableOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CreateUdfunctionContext extends ParserRuleContext { - public _returnType!: Token; - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public FUNCTION(): TerminalNode { return this.getToken(SqlParser.FUNCTION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public RETURNS(): TerminalNode { return this.getToken(SqlParser.RETURNS, 0); } - public SONAME(): TerminalNode { return this.getToken(SqlParser.SONAME, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - public STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING, 0); } - public INTEGER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTEGER, 0); } - public REAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REAL, 0); } - public DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECIMAL, 0); } - public AGGREGATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AGGREGATE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_createUdfunction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCreateUdfunction) { - listener.enterCreateUdfunction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCreateUdfunction) { - listener.exitCreateUdfunction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCreateUdfunction) { - return visitor.visitCreateUdfunction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class InstallPluginContext extends ParserRuleContext { - public INSTALL(): TerminalNode { return this.getToken(SqlParser.INSTALL, 0); } - public PLUGIN(): TerminalNode { return this.getToken(SqlParser.PLUGIN, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public SONAME(): TerminalNode { return this.getToken(SqlParser.SONAME, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_installPlugin; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterInstallPlugin) { - listener.enterInstallPlugin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitInstallPlugin) { - listener.exitInstallPlugin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitInstallPlugin) { - return visitor.visitInstallPlugin(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UninstallPluginContext extends ParserRuleContext { - public UNINSTALL(): TerminalNode { return this.getToken(SqlParser.UNINSTALL, 0); } - public PLUGIN(): TerminalNode { return this.getToken(SqlParser.PLUGIN, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_uninstallPlugin; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUninstallPlugin) { - listener.enterUninstallPlugin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUninstallPlugin) { - listener.exitUninstallPlugin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUninstallPlugin) { - return visitor.visitUninstallPlugin(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SetStatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_setStatement; } - public copyFrom(ctx: SetStatementContext): void { - super.copyFrom(ctx); - } -} -export class SetVariableContext extends SetStatementContext { - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public variableClause(): VariableClauseContext[]; - public variableClause(i: number): VariableClauseContext; - public variableClause(i?: number): VariableClauseContext | VariableClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(VariableClauseContext); - } else { - return this.getRuleContext(i, VariableClauseContext); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public VAR_ASSIGN(): TerminalNode[]; - public VAR_ASSIGN(i: number): TerminalNode; - public VAR_ASSIGN(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.VAR_ASSIGN); - } else { - return this.getToken(SqlParser.VAR_ASSIGN, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetVariable) { - listener.enterSetVariable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetVariable) { - listener.exitSetVariable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetVariable) { - return visitor.visitSetVariable(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetCharsetContext extends SetStatementContext { - public SET(): TerminalNode[]; - public SET(i: number): TerminalNode; - public SET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SET); - } else { - return this.getToken(SqlParser.SET, i); - } - } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetCharset) { - listener.enterSetCharset(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetCharset) { - listener.exitSetCharset(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetCharset) { - return visitor.visitSetCharset(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetNamesContext extends SetStatementContext { - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public NAMES(): TerminalNode { return this.getToken(SqlParser.NAMES, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetNames) { - listener.enterSetNames(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetNames) { - listener.exitSetNames(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetNames) { - return visitor.visitSetNames(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetPasswordContext extends SetStatementContext { - public setPasswordStatement(): SetPasswordStatementContext { - return this.getRuleContext(0, SetPasswordStatementContext); - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetPassword) { - listener.enterSetPassword(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetPassword) { - listener.exitSetPassword(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetPassword) { - return visitor.visitSetPassword(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetTransactionContext extends SetStatementContext { - public setTransactionStatement(): SetTransactionStatementContext { - return this.getRuleContext(0, SetTransactionStatementContext); - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetTransaction) { - listener.enterSetTransaction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetTransaction) { - listener.exitSetTransaction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetTransaction) { - return visitor.visitSetTransaction(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetAutocommitContext extends SetStatementContext { - public setAutocommitStatement(): SetAutocommitStatementContext { - return this.getRuleContext(0, SetAutocommitStatementContext); - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetAutocommit) { - listener.enterSetAutocommit(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetAutocommit) { - listener.exitSetAutocommit(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetAutocommit) { - return visitor.visitSetAutocommit(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SetNewValueInsideTriggerContext extends SetStatementContext { - public SET(): TerminalNode { return this.getToken(SqlParser.SET, 0); } - public fullId(): FullIdContext[]; - public fullId(i: number): FullIdContext; - public fullId(i?: number): FullIdContext | FullIdContext[] { - if (i === undefined) { - return this.getRuleContexts(FullIdContext); - } else { - return this.getRuleContext(i, FullIdContext); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public VAR_ASSIGN(): TerminalNode[]; - public VAR_ASSIGN(i: number): TerminalNode; - public VAR_ASSIGN(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.VAR_ASSIGN); - } else { - return this.getToken(SqlParser.VAR_ASSIGN, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: SetStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSetNewValueInsideTrigger) { - listener.enterSetNewValueInsideTrigger(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSetNewValueInsideTrigger) { - listener.exitSetNewValueInsideTrigger(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSetNewValueInsideTrigger) { - return visitor.visitSetNewValueInsideTrigger(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowStatementContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showStatement; } - public copyFrom(ctx: ShowStatementContext): void { - super.copyFrom(ctx); - } -} -export class ShowMasterLogsContext extends ShowStatementContext { - public _logFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public LOGS(): TerminalNode { return this.getToken(SqlParser.LOGS, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public MASTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowMasterLogs) { - listener.enterShowMasterLogs(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowMasterLogs) { - listener.exitShowMasterLogs(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowMasterLogs) { - return visitor.visitShowMasterLogs(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowLogEventsContext extends ShowStatementContext { - public _logFormat!: Token; - public _filename!: Token; - public _fromPosition!: DecimalLiteralContext; - public _offset!: DecimalLiteralContext; - public _rowCount!: DecimalLiteralContext; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public EVENTS(): TerminalNode { return this.getToken(SqlParser.EVENTS, 0); } - public BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG, 0); } - public RELAYLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAYLOG, 0); } - public IN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IN, 0); } - public FROM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM, 0); } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public COMMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMA, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowLogEvents) { - listener.enterShowLogEvents(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowLogEvents) { - listener.exitShowLogEvents(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowLogEvents) { - return visitor.visitShowLogEvents(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowObjectFilterContext extends ShowStatementContext { - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public showCommonEntity(): ShowCommonEntityContext { - return this.getRuleContext(0, ShowCommonEntityContext); - } - public showFilter(): ShowFilterContext | undefined { - return this.tryGetRuleContext(0, ShowFilterContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowObjectFilter) { - listener.enterShowObjectFilter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowObjectFilter) { - listener.exitShowObjectFilter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowObjectFilter) { - return visitor.visitShowObjectFilter(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowColumnsContext extends ShowStatementContext { - public _columnsFormat!: Token; - public _tableFormat!: Token; - public _schemaFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public FIELDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIELDS, 0); } - public FROM(): TerminalNode[]; - public FROM(i: number): TerminalNode; - public FROM(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.FROM); - } else { - return this.getToken(SqlParser.FROM, i); - } - } - public IN(): TerminalNode[]; - public IN(i: number): TerminalNode; - public IN(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.IN); - } else { - return this.getToken(SqlParser.IN, i); - } - } - public FULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULL, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public showFilter(): ShowFilterContext | undefined { - return this.tryGetRuleContext(0, ShowFilterContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowColumns) { - listener.enterShowColumns(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowColumns) { - listener.exitShowColumns(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowColumns) { - return visitor.visitShowColumns(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowCreateDbContext extends ShowStatementContext { - public _schemaFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA, 0); } - public ifNotExists(): IfNotExistsContext | undefined { - return this.tryGetRuleContext(0, IfNotExistsContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowCreateDb) { - listener.enterShowCreateDb(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowCreateDb) { - listener.exitShowCreateDb(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowCreateDb) { - return visitor.visitShowCreateDb(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowCreateFullIdObjectContext extends ShowStatementContext { - public _namedEntity!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public EVENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVENT, 0); } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCEDURE, 0); } - public TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE, 0); } - public TRIGGER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRIGGER, 0); } - public VIEW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VIEW, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowCreateFullIdObject) { - listener.enterShowCreateFullIdObject(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowCreateFullIdObject) { - listener.exitShowCreateFullIdObject(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowCreateFullIdObject) { - return visitor.visitShowCreateFullIdObject(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowCreateUserContext extends ShowStatementContext { - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public CREATE(): TerminalNode { return this.getToken(SqlParser.CREATE, 0); } - public USER(): TerminalNode { return this.getToken(SqlParser.USER, 0); } - public userName(): UserNameContext { - return this.getRuleContext(0, UserNameContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowCreateUser) { - listener.enterShowCreateUser(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowCreateUser) { - listener.exitShowCreateUser(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowCreateUser) { - return visitor.visitShowCreateUser(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowEngineContext extends ShowStatementContext { - public _engineOption!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public ENGINE(): TerminalNode { return this.getToken(SqlParser.ENGINE, 0); } - public engineName(): EngineNameContext { - return this.getRuleContext(0, EngineNameContext); - } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public MUTEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MUTEX, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowEngine) { - listener.enterShowEngine(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowEngine) { - listener.exitShowEngine(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowEngine) { - return visitor.visitShowEngine(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowGlobalInfoContext extends ShowStatementContext { - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public showGlobalInfoClause(): ShowGlobalInfoClauseContext { - return this.getRuleContext(0, ShowGlobalInfoClauseContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowGlobalInfo) { - listener.enterShowGlobalInfo(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowGlobalInfo) { - listener.exitShowGlobalInfo(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowGlobalInfo) { - return visitor.visitShowGlobalInfo(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowErrorsContext extends ShowStatementContext { - public _errorFormat!: Token; - public _offset!: DecimalLiteralContext; - public _rowCount!: DecimalLiteralContext; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public ERRORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ERRORS, 0); } - public WARNINGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WARNINGS, 0); } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public COMMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMA, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowErrors) { - listener.enterShowErrors(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowErrors) { - listener.exitShowErrors(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowErrors) { - return visitor.visitShowErrors(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowCountErrorsContext extends ShowStatementContext { - public _errorFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public COUNT(): TerminalNode { return this.getToken(SqlParser.COUNT, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public STAR(): TerminalNode { return this.getToken(SqlParser.STAR, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public ERRORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ERRORS, 0); } - public WARNINGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WARNINGS, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowCountErrors) { - listener.enterShowCountErrors(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowCountErrors) { - listener.exitShowCountErrors(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowCountErrors) { - return visitor.visitShowCountErrors(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowSchemaFilterContext extends ShowStatementContext { - public _schemaFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public showSchemaEntity(): ShowSchemaEntityContext { - return this.getRuleContext(0, ShowSchemaEntityContext); - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public showFilter(): ShowFilterContext | undefined { - return this.tryGetRuleContext(0, ShowFilterContext); - } - public FROM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM, 0); } - public IN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IN, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowSchemaFilter) { - listener.enterShowSchemaFilter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowSchemaFilter) { - listener.exitShowSchemaFilter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowSchemaFilter) { - return visitor.visitShowSchemaFilter(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowRoutineContext extends ShowStatementContext { - public _routine!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public CODE(): TerminalNode { return this.getToken(SqlParser.CODE, 0); } - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCEDURE, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowRoutine) { - listener.enterShowRoutine(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowRoutine) { - listener.exitShowRoutine(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowRoutine) { - return visitor.visitShowRoutine(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowGrantsContext extends ShowStatementContext { - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public GRANTS(): TerminalNode { return this.getToken(SqlParser.GRANTS, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public userName(): UserNameContext | undefined { - return this.tryGetRuleContext(0, UserNameContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowGrants) { - listener.enterShowGrants(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowGrants) { - listener.exitShowGrants(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowGrants) { - return visitor.visitShowGrants(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowIndexesContext extends ShowStatementContext { - public _indexFormat!: Token; - public _tableFormat!: Token; - public _schemaFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public INDEXES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEXES, 0); } - public KEYS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEYS, 0); } - public FROM(): TerminalNode[]; - public FROM(i: number): TerminalNode; - public FROM(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.FROM); - } else { - return this.getToken(SqlParser.FROM, i); - } - } - public IN(): TerminalNode[]; - public IN(i: number): TerminalNode; - public IN(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.IN); - } else { - return this.getToken(SqlParser.IN, i); - } - } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowIndexes) { - listener.enterShowIndexes(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowIndexes) { - listener.exitShowIndexes(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowIndexes) { - return visitor.visitShowIndexes(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowOpenTablesContext extends ShowStatementContext { - public _schemaFormat!: Token; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public OPEN(): TerminalNode { return this.getToken(SqlParser.OPEN, 0); } - public TABLES(): TerminalNode { return this.getToken(SqlParser.TABLES, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public showFilter(): ShowFilterContext | undefined { - return this.tryGetRuleContext(0, ShowFilterContext); - } - public FROM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM, 0); } - public IN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IN, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowOpenTables) { - listener.enterShowOpenTables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowOpenTables) { - listener.exitShowOpenTables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowOpenTables) { - return visitor.visitShowOpenTables(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowProfileContext extends ShowStatementContext { - public _queryCount!: DecimalLiteralContext; - public _offset!: DecimalLiteralContext; - public _rowCount!: DecimalLiteralContext; - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public PROFILE(): TerminalNode { return this.getToken(SqlParser.PROFILE, 0); } - public showProfileType(): ShowProfileTypeContext[]; - public showProfileType(i: number): ShowProfileTypeContext; - public showProfileType(i?: number): ShowProfileTypeContext | ShowProfileTypeContext[] { - if (i === undefined) { - return this.getRuleContexts(ShowProfileTypeContext); - } else { - return this.getRuleContext(i, ShowProfileTypeContext); - } - } - public LIMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIMIT, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public QUERY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUERY, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowProfile) { - listener.enterShowProfile(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowProfile) { - listener.exitShowProfile(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowProfile) { - return visitor.visitShowProfile(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ShowSlaveStatusContext extends ShowStatementContext { - public SHOW(): TerminalNode { return this.getToken(SqlParser.SHOW, 0); } - public SLAVE(): TerminalNode { return this.getToken(SqlParser.SLAVE, 0); } - public STATUS(): TerminalNode { return this.getToken(SqlParser.STATUS, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public CHANNEL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHANNEL, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: ShowStatementContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowSlaveStatus) { - listener.enterShowSlaveStatus(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowSlaveStatus) { - listener.exitShowSlaveStatus(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowSlaveStatus) { - return visitor.visitShowSlaveStatus(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class VariableClauseContext extends ParserRuleContext { - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - public GLOBAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL_ID, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public GLOBAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL, 0); } - public SESSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - public AT_SIGN(): TerminalNode[]; - public AT_SIGN(i: number): TerminalNode; - public AT_SIGN(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.AT_SIGN); - } else { - return this.getToken(SqlParser.AT_SIGN, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_variableClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterVariableClause) { - listener.enterVariableClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitVariableClause) { - listener.exitVariableClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitVariableClause) { - return visitor.visitVariableClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowCommonEntityContext extends ParserRuleContext { - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public COLLATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATION, 0); } - public DATABASES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASES, 0); } - public SCHEMAS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMAS, 0); } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCEDURE, 0); } - public VARIABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARIABLES, 0); } - public GLOBAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL, 0); } - public SESSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showCommonEntity; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowCommonEntity) { - listener.enterShowCommonEntity(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowCommonEntity) { - listener.exitShowCommonEntity(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowCommonEntity) { - return visitor.visitShowCommonEntity(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowFilterContext extends ParserRuleContext { - public LIKE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIKE, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public WHERE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WHERE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showFilter; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowFilter) { - listener.enterShowFilter(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowFilter) { - listener.exitShowFilter(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowFilter) { - return visitor.visitShowFilter(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowGlobalInfoClauseContext extends ParserRuleContext { - public ENGINES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINES, 0); } - public STORAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STORAGE, 0); } - public MASTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER, 0); } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public PLUGINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUGINS, 0); } - public PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIVILEGES, 0); } - public PROCESSLIST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCESSLIST, 0); } - public FULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULL, 0); } - public PROFILES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROFILES, 0); } - public SLAVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLAVE, 0); } - public HOSTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOSTS, 0); } - public AUTHORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTHORS, 0); } - public CONTRIBUTORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTRIBUTORS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showGlobalInfoClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowGlobalInfoClause) { - listener.enterShowGlobalInfoClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowGlobalInfoClause) { - listener.exitShowGlobalInfoClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowGlobalInfoClause) { - return visitor.visitShowGlobalInfoClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowSchemaEntityContext extends ParserRuleContext { - public EVENTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVENTS, 0); } - public TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE, 0); } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public TABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLES, 0); } - public FULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULL, 0); } - public TRIGGERS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRIGGERS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showSchemaEntity; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowSchemaEntity) { - listener.enterShowSchemaEntity(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowSchemaEntity) { - listener.exitShowSchemaEntity(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowSchemaEntity) { - return visitor.visitShowSchemaEntity(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShowProfileTypeContext extends ParserRuleContext { - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public BLOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BLOCK, 0); } - public IO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IO, 0); } - public CONTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTEXT, 0); } - public SWITCHES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SWITCHES, 0); } - public CPU(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CPU, 0); } - public IPC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IPC, 0); } - public MEMORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEMORY, 0); } - public PAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PAGE, 0); } - public FAULTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FAULTS, 0); } - public SOURCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOURCE, 0); } - public SWAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SWAPS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_showProfileType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShowProfileType) { - listener.enterShowProfileType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShowProfileType) { - listener.exitShowProfileType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShowProfileType) { - return visitor.visitShowProfileType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BinlogStatementContext extends ParserRuleContext { - public BINLOG(): TerminalNode { return this.getToken(SqlParser.BINLOG, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_binlogStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBinlogStatement) { - listener.enterBinlogStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBinlogStatement) { - listener.exitBinlogStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBinlogStatement) { - return visitor.visitBinlogStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CacheIndexStatementContext extends ParserRuleContext { - public _schema!: UidContext; - public CACHE(): TerminalNode { return this.getToken(SqlParser.CACHE, 0); } - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public tableIndexes(): TableIndexesContext[]; - public tableIndexes(i: number): TableIndexesContext; - public tableIndexes(i?: number): TableIndexesContext | TableIndexesContext[] { - if (i === undefined) { - return this.getRuleContexts(TableIndexesContext); - } else { - return this.getRuleContext(i, TableIndexesContext); - } - } - public IN(): TerminalNode { return this.getToken(SqlParser.IN, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_cacheIndexStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCacheIndexStatement) { - listener.enterCacheIndexStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCacheIndexStatement) { - listener.exitCacheIndexStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCacheIndexStatement) { - return visitor.visitCacheIndexStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FlushStatementContext extends ParserRuleContext { - public _flushFormat!: Token; - public FLUSH(): TerminalNode { return this.getToken(SqlParser.FLUSH, 0); } - public flushOption(): FlushOptionContext[]; - public flushOption(i: number): FlushOptionContext; - public flushOption(i?: number): FlushOptionContext | FlushOptionContext[] { - if (i === undefined) { - return this.getRuleContexts(FlushOptionContext); - } else { - return this.getRuleContext(i, FlushOptionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public NO_WRITE_TO_BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO_WRITE_TO_BINLOG, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_flushStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFlushStatement) { - listener.enterFlushStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFlushStatement) { - listener.exitFlushStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFlushStatement) { - return visitor.visitFlushStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class KillStatementContext extends ParserRuleContext { - public _connectionFormat!: Token; - public KILL(): TerminalNode { return this.getToken(SqlParser.KILL, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public CONNECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONNECTION, 0); } - public QUERY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUERY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_killStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterKillStatement) { - listener.enterKillStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitKillStatement) { - listener.exitKillStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitKillStatement) { - return visitor.visitKillStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoadIndexIntoCacheContext extends ParserRuleContext { - public LOAD(): TerminalNode { return this.getToken(SqlParser.LOAD, 0); } - public INDEX(): TerminalNode { return this.getToken(SqlParser.INDEX, 0); } - public INTO(): TerminalNode { return this.getToken(SqlParser.INTO, 0); } - public CACHE(): TerminalNode { return this.getToken(SqlParser.CACHE, 0); } - public loadedTableIndexes(): LoadedTableIndexesContext[]; - public loadedTableIndexes(i: number): LoadedTableIndexesContext; - public loadedTableIndexes(i?: number): LoadedTableIndexesContext | LoadedTableIndexesContext[] { - if (i === undefined) { - return this.getRuleContexts(LoadedTableIndexesContext); - } else { - return this.getRuleContext(i, LoadedTableIndexesContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_loadIndexIntoCache; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLoadIndexIntoCache) { - listener.enterLoadIndexIntoCache(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLoadIndexIntoCache) { - listener.exitLoadIndexIntoCache(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLoadIndexIntoCache) { - return visitor.visitLoadIndexIntoCache(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ResetStatementContext extends ParserRuleContext { - public RESET(): TerminalNode { return this.getToken(SqlParser.RESET, 0); } - public QUERY(): TerminalNode { return this.getToken(SqlParser.QUERY, 0); } - public CACHE(): TerminalNode { return this.getToken(SqlParser.CACHE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_resetStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterResetStatement) { - listener.enterResetStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitResetStatement) { - listener.exitResetStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitResetStatement) { - return visitor.visitResetStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ShutdownStatementContext extends ParserRuleContext { - public SHUTDOWN(): TerminalNode { return this.getToken(SqlParser.SHUTDOWN, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_shutdownStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterShutdownStatement) { - listener.enterShutdownStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitShutdownStatement) { - listener.exitShutdownStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitShutdownStatement) { - return visitor.visitShutdownStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableIndexesContext extends ParserRuleContext { - public _indexFormat!: Token; - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public uidList(): UidListContext | undefined { - return this.tryGetRuleContext(0, UidListContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableIndexes; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableIndexes) { - listener.enterTableIndexes(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableIndexes) { - listener.exitTableIndexes(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableIndexes) { - return visitor.visitTableIndexes(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FlushOptionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_flushOption; } - public copyFrom(ctx: FlushOptionContext): void { - super.copyFrom(ctx); - } -} -export class SimpleFlushOptionContext extends FlushOptionContext { - public DES_KEY_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DES_KEY_FILE, 0); } - public HOSTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOSTS, 0); } - public LOGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOGS, 0); } - public OPTIMIZER_COSTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTIMIZER_COSTS, 0); } - public PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIVILEGES, 0); } - public QUERY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUERY, 0); } - public CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CACHE, 0); } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public USER_RESOURCES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USER_RESOURCES, 0); } - public TABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLES, 0); } - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCK, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public ENGINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINE, 0); } - public ERROR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ERROR, 0); } - public GENERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GENERAL, 0); } - public RELAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY, 0); } - public SLOW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLOW, 0); } - constructor(ctx: FlushOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleFlushOption) { - listener.enterSimpleFlushOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleFlushOption) { - listener.exitSimpleFlushOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleFlushOption) { - return visitor.visitSimpleFlushOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ChannelFlushOptionContext extends FlushOptionContext { - public RELAY(): TerminalNode { return this.getToken(SqlParser.RELAY, 0); } - public LOGS(): TerminalNode { return this.getToken(SqlParser.LOGS, 0); } - public channelOption(): ChannelOptionContext | undefined { - return this.tryGetRuleContext(0, ChannelOptionContext); - } - constructor(ctx: FlushOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterChannelFlushOption) { - listener.enterChannelFlushOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitChannelFlushOption) { - listener.exitChannelFlushOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitChannelFlushOption) { - return visitor.visitChannelFlushOption(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TableFlushOptionContext extends FlushOptionContext { - public TABLES(): TerminalNode { return this.getToken(SqlParser.TABLES, 0); } - public tables(): TablesContext { - return this.getRuleContext(0, TablesContext); - } - public flushTableOption(): FlushTableOptionContext | undefined { - return this.tryGetRuleContext(0, FlushTableOptionContext); - } - constructor(ctx: FlushOptionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableFlushOption) { - listener.enterTableFlushOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableFlushOption) { - listener.exitTableFlushOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableFlushOption) { - return visitor.visitTableFlushOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FlushTableOptionContext extends ParserRuleContext { - public WITH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITH, 0); } - public READ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.READ, 0); } - public LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCK, 0); } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - public EXPORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPORT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_flushTableOption; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFlushTableOption) { - listener.enterFlushTableOption(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFlushTableOption) { - listener.exitFlushTableOption(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFlushTableOption) { - return visitor.visitFlushTableOption(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LoadedTableIndexesContext extends ParserRuleContext { - public _partitionList!: UidListContext; - public _indexFormat!: Token; - public _indexList!: UidListContext; - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public PARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITION, 0); } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public IGNORE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE, 0); } - public LEAVES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEAVES, 0); } - public uidList(): UidListContext[]; - public uidList(i: number): UidListContext; - public uidList(i?: number): UidListContext | UidListContext[] { - if (i === undefined) { - return this.getRuleContexts(UidListContext); - } else { - return this.getRuleContext(i, UidListContext); - } - } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEX, 0); } - public KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_loadedTableIndexes; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLoadedTableIndexes) { - listener.enterLoadedTableIndexes(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLoadedTableIndexes) { - listener.exitLoadedTableIndexes(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLoadedTableIndexes) { - return visitor.visitLoadedTableIndexes(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SimpleDescribeStatementContext extends ParserRuleContext { - public _command!: Token; - public _column!: UidContext; - public _pattern!: Token; - public tableName(): TableNameContext { - return this.getRuleContext(0, TableNameContext); - } - public EXPLAIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPLAIN, 0); } - public DESCRIBE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESCRIBE, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_simpleDescribeStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleDescribeStatement) { - listener.enterSimpleDescribeStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleDescribeStatement) { - listener.exitSimpleDescribeStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleDescribeStatement) { - return visitor.visitSimpleDescribeStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FullDescribeStatementContext extends ParserRuleContext { - public _command!: Token; - public _formatType!: Token; - public _formatValue!: Token; - public describeObjectClause(): DescribeObjectClauseContext { - return this.getRuleContext(0, DescribeObjectClauseContext); - } - public EXPLAIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPLAIN, 0); } - public DESCRIBE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESCRIBE, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public EXTENDED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENDED, 0); } - public PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITIONS, 0); } - public FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FORMAT, 0); } - public TRADITIONAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRADITIONAL, 0); } - public JSON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_fullDescribeStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFullDescribeStatement) { - listener.enterFullDescribeStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFullDescribeStatement) { - listener.exitFullDescribeStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFullDescribeStatement) { - return visitor.visitFullDescribeStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HelpStatementContext extends ParserRuleContext { - public HELP(): TerminalNode { return this.getToken(SqlParser.HELP, 0); } - public STRING_LITERAL(): TerminalNode { return this.getToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_helpStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHelpStatement) { - listener.enterHelpStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHelpStatement) { - listener.exitHelpStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHelpStatement) { - return visitor.visitHelpStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UseStatementContext extends ParserRuleContext { - public USE(): TerminalNode { return this.getToken(SqlParser.USE, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_useStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUseStatement) { - listener.enterUseStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUseStatement) { - listener.exitUseStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUseStatement) { - return visitor.visitUseStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SignalStatementContext extends ParserRuleContext { - public SIGNAL(): TerminalNode { return this.getToken(SqlParser.SIGNAL, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE_QUOTE_ID, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public signalConditionInformation(): SignalConditionInformationContext[]; - public signalConditionInformation(i: number): SignalConditionInformationContext; - public signalConditionInformation(i?: number): SignalConditionInformationContext | SignalConditionInformationContext[] { - if (i === undefined) { - return this.getRuleContexts(SignalConditionInformationContext); - } else { - return this.getRuleContext(i, SignalConditionInformationContext); - } - } - public SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQLSTATE, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_signalStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSignalStatement) { - listener.enterSignalStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSignalStatement) { - listener.exitSignalStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSignalStatement) { - return visitor.visitSignalStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ResignalStatementContext extends ParserRuleContext { - public RESIGNAL(): TerminalNode { return this.getToken(SqlParser.RESIGNAL, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE_QUOTE_ID, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public signalConditionInformation(): SignalConditionInformationContext[]; - public signalConditionInformation(i: number): SignalConditionInformationContext; - public signalConditionInformation(i?: number): SignalConditionInformationContext | SignalConditionInformationContext[] { - if (i === undefined) { - return this.getRuleContexts(SignalConditionInformationContext); - } else { - return this.getRuleContext(i, SignalConditionInformationContext); - } - } - public SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQLSTATE, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_resignalStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterResignalStatement) { - listener.enterResignalStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitResignalStatement) { - listener.exitResignalStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitResignalStatement) { - return visitor.visitResignalStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SignalConditionInformationContext extends ParserRuleContext { - public EQUAL_SYMBOL(): TerminalNode { return this.getToken(SqlParser.EQUAL_SYMBOL, 0); } - public CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLASS_ORIGIN, 0); } - public SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBCLASS_ORIGIN, 0); } - public MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MESSAGE_TEXT, 0); } - public MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYSQL_ERRNO, 0); } - public CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_CATALOG, 0); } - public CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_SCHEMA, 0); } - public CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_NAME, 0); } - public CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CATALOG_NAME, 0); } - public SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA_NAME, 0); } - public TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE_NAME, 0); } - public COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN_NAME, 0); } - public CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURSOR_NAME, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public DECIMAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECIMAL_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_signalConditionInformation; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSignalConditionInformation) { - listener.enterSignalConditionInformation(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSignalConditionInformation) { - listener.exitSignalConditionInformation(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSignalConditionInformation) { - return visitor.visitSignalConditionInformation(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DiagnosticsStatementContext extends ParserRuleContext { - public GET(): TerminalNode { return this.getToken(SqlParser.GET, 0); } - public DIAGNOSTICS(): TerminalNode { return this.getToken(SqlParser.DIAGNOSTICS, 0); } - public CURRENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT, 0); } - public STACKED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STACKED, 0); } - public variableClause(): VariableClauseContext[]; - public variableClause(i: number): VariableClauseContext; - public variableClause(i?: number): VariableClauseContext | VariableClauseContext[] { - if (i === undefined) { - return this.getRuleContexts(VariableClauseContext); - } else { - return this.getRuleContext(i, VariableClauseContext); - } - } - public EQUAL_SYMBOL(): TerminalNode[]; - public EQUAL_SYMBOL(i: number): TerminalNode; - public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.EQUAL_SYMBOL); - } else { - return this.getToken(SqlParser.EQUAL_SYMBOL, i); - } - } - public CONDITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONDITION, 0); } - public diagnosticsConditionInformationName(): DiagnosticsConditionInformationNameContext[]; - public diagnosticsConditionInformationName(i: number): DiagnosticsConditionInformationNameContext; - public diagnosticsConditionInformationName(i?: number): DiagnosticsConditionInformationNameContext | DiagnosticsConditionInformationNameContext[] { - if (i === undefined) { - return this.getRuleContexts(DiagnosticsConditionInformationNameContext); - } else { - return this.getRuleContext(i, DiagnosticsConditionInformationNameContext); - } - } - public NUMBER(): TerminalNode[]; - public NUMBER(i: number): TerminalNode; - public NUMBER(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.NUMBER); - } else { - return this.getToken(SqlParser.NUMBER, i); - } - } - public ROW_COUNT(): TerminalNode[]; - public ROW_COUNT(i: number): TerminalNode; - public ROW_COUNT(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.ROW_COUNT); - } else { - return this.getToken(SqlParser.ROW_COUNT, i); - } - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_diagnosticsStatement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDiagnosticsStatement) { - listener.enterDiagnosticsStatement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDiagnosticsStatement) { - listener.exitDiagnosticsStatement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDiagnosticsStatement) { - return visitor.visitDiagnosticsStatement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DiagnosticsConditionInformationNameContext extends ParserRuleContext { - public CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLASS_ORIGIN, 0); } - public SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBCLASS_ORIGIN, 0); } - public RETURNED_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RETURNED_SQLSTATE, 0); } - public MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MESSAGE_TEXT, 0); } - public MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYSQL_ERRNO, 0); } - public CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_CATALOG, 0); } - public CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_SCHEMA, 0); } - public CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_NAME, 0); } - public CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CATALOG_NAME, 0); } - public SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA_NAME, 0); } - public TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE_NAME, 0); } - public COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN_NAME, 0); } - public CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURSOR_NAME, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_diagnosticsConditionInformationName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDiagnosticsConditionInformationName) { - listener.enterDiagnosticsConditionInformationName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDiagnosticsConditionInformationName) { - listener.exitDiagnosticsConditionInformationName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDiagnosticsConditionInformationName) { - return visitor.visitDiagnosticsConditionInformationName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DescribeObjectClauseContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_describeObjectClause; } - public copyFrom(ctx: DescribeObjectClauseContext): void { - super.copyFrom(ctx); - } -} -export class DescribeStatementsContext extends DescribeObjectClauseContext { - public selectStatement(): SelectStatementContext | undefined { - return this.tryGetRuleContext(0, SelectStatementContext); - } - public deleteStatement(): DeleteStatementContext | undefined { - return this.tryGetRuleContext(0, DeleteStatementContext); - } - public insertStatement(): InsertStatementContext | undefined { - return this.tryGetRuleContext(0, InsertStatementContext); - } - public replaceStatement(): ReplaceStatementContext | undefined { - return this.tryGetRuleContext(0, ReplaceStatementContext); - } - public updateStatement(): UpdateStatementContext | undefined { - return this.tryGetRuleContext(0, UpdateStatementContext); - } - constructor(ctx: DescribeObjectClauseContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDescribeStatements) { - listener.enterDescribeStatements(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDescribeStatements) { - listener.exitDescribeStatements(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDescribeStatements) { - return visitor.visitDescribeStatements(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DescribeConnectionContext extends DescribeObjectClauseContext { - public FOR(): TerminalNode { return this.getToken(SqlParser.FOR, 0); } - public CONNECTION(): TerminalNode { return this.getToken(SqlParser.CONNECTION, 0); } - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - constructor(ctx: DescribeObjectClauseContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDescribeConnection) { - listener.enterDescribeConnection(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDescribeConnection) { - listener.exitDescribeConnection(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDescribeConnection) { - return visitor.visitDescribeConnection(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FullIdContext extends ParserRuleContext { - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public DOT_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DOT_ID, 0); } - public DOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_fullId; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFullId) { - listener.enterFullId(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFullId) { - listener.exitFullId(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFullId) { - return visitor.visitFullId(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TableNameContext extends ParserRuleContext { - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tableName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTableName) { - listener.enterTableName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTableName) { - listener.exitTableName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTableName) { - return visitor.visitTableName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FullColumnNameContext extends ParserRuleContext { - public uid(): UidContext { - return this.getRuleContext(0, UidContext); - } - public dottedId(): DottedIdContext[]; - public dottedId(i: number): DottedIdContext; - public dottedId(i?: number): DottedIdContext | DottedIdContext[] { - if (i === undefined) { - return this.getRuleContexts(DottedIdContext); - } else { - return this.getRuleContext(i, DottedIdContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_fullColumnName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFullColumnName) { - listener.enterFullColumnName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFullColumnName) { - listener.exitFullColumnName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFullColumnName) { - return visitor.visitFullColumnName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexColumnNameContext extends ParserRuleContext { - public _sortType!: Token; - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public ASC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASC, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexColumnName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexColumnName) { - listener.enterIndexColumnName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexColumnName) { - listener.exitIndexColumnName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexColumnName) { - return visitor.visitIndexColumnName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserNameContext extends ParserRuleContext { - public STRING_USER_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_USER_NAME, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserName) { - listener.enterUserName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserName) { - listener.exitUserName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserName) { - return visitor.visitUserName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class MysqlVariableContext extends ParserRuleContext { - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - public GLOBAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL_ID, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_mysqlVariable; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMysqlVariable) { - listener.enterMysqlVariable(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMysqlVariable) { - listener.exitMysqlVariable(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMysqlVariable) { - return visitor.visitMysqlVariable(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CharsetNameContext extends ParserRuleContext { - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public charsetNameBase(): CharsetNameBaseContext | undefined { - return this.tryGetRuleContext(0, CharsetNameBaseContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public CHARSET_REVERSE_QOUTE_STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET_REVERSE_QOUTE_STRING, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_charsetName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCharsetName) { - listener.enterCharsetName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCharsetName) { - listener.exitCharsetName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCharsetName) { - return visitor.visitCharsetName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CollationNameContext extends ParserRuleContext { - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_collationName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCollationName) { - listener.enterCollationName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCollationName) { - listener.exitCollationName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCollationName) { - return visitor.visitCollationName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class EngineNameContext extends ParserRuleContext { - public ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ARCHIVE, 0); } - public BLACKHOLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BLACKHOLE, 0); } - public CSV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CSV, 0); } - public FEDERATED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FEDERATED, 0); } - public INNODB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INNODB, 0); } - public MEMORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEMORY, 0); } - public MRG_MYISAM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MRG_MYISAM, 0); } - public MYISAM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYISAM, 0); } - public NDB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NDB, 0); } - public NDBCLUSTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NDBCLUSTER, 0); } - public PERFORMANCE_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PERFORMANCE_SCHEMA, 0); } - public TOKUDB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TOKUDB, 0); } - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE_QUOTE_ID, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_engineName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterEngineName) { - listener.enterEngineName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitEngineName) { - listener.exitEngineName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitEngineName) { - return visitor.visitEngineName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UuidSetContext extends ParserRuleContext { - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public MINUS(): TerminalNode[]; - public MINUS(i: number): TerminalNode; - public MINUS(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.MINUS); - } else { - return this.getToken(SqlParser.MINUS, i); - } - } - public COLON_SYMB(): TerminalNode[]; - public COLON_SYMB(i: number): TerminalNode; - public COLON_SYMB(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COLON_SYMB); - } else { - return this.getToken(SqlParser.COLON_SYMB, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_uuidSet; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUuidSet) { - listener.enterUuidSet(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUuidSet) { - listener.exitUuidSet(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUuidSet) { - return visitor.visitUuidSet(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XidContext extends ParserRuleContext { - public _globalTableUid!: XuidStringIdContext; - public _qualifier!: XuidStringIdContext; - public _idFormat!: DecimalLiteralContext; - public xuidStringId(): XuidStringIdContext[]; - public xuidStringId(i: number): XuidStringIdContext; - public xuidStringId(i?: number): XuidStringIdContext | XuidStringIdContext[] { - if (i === undefined) { - return this.getRuleContexts(XuidStringIdContext); - } else { - return this.getRuleContext(i, XuidStringIdContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xid; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXid) { - listener.enterXid(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXid) { - listener.exitXid(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXid) { - return visitor.visitXid(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class XuidStringIdContext extends ParserRuleContext { - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public BIT_STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_STRING, 0); } - public HEXADECIMAL_LITERAL(): TerminalNode[]; - public HEXADECIMAL_LITERAL(i: number): TerminalNode; - public HEXADECIMAL_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.HEXADECIMAL_LITERAL); - } else { - return this.getToken(SqlParser.HEXADECIMAL_LITERAL, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_xuidStringId; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterXuidStringId) { - listener.enterXuidStringId(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitXuidStringId) { - listener.exitXuidStringId(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitXuidStringId) { - return visitor.visitXuidStringId(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AuthPluginContext extends ParserRuleContext { - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_authPlugin; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAuthPlugin) { - listener.enterAuthPlugin(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAuthPlugin) { - listener.exitAuthPlugin(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAuthPlugin) { - return visitor.visitAuthPlugin(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UidContext extends ParserRuleContext { - public simpleId(): SimpleIdContext | undefined { - return this.tryGetRuleContext(0, SimpleIdContext); - } - public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE_QUOTE_ID, 0); } - public CHARSET_REVERSE_QOUTE_STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET_REVERSE_QOUTE_STRING, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_uid; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUid) { - listener.enterUid(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUid) { - listener.exitUid(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUid) { - return visitor.visitUid(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SimpleIdContext extends ParserRuleContext { - public ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ID, 0); } - public charsetNameBase(): CharsetNameBaseContext | undefined { - return this.tryGetRuleContext(0, CharsetNameBaseContext); - } - public transactionLevelBase(): TransactionLevelBaseContext | undefined { - return this.tryGetRuleContext(0, TransactionLevelBaseContext); - } - public engineName(): EngineNameContext | undefined { - return this.tryGetRuleContext(0, EngineNameContext); - } - public privilegesBase(): PrivilegesBaseContext | undefined { - return this.tryGetRuleContext(0, PrivilegesBaseContext); - } - public intervalTypeBase(): IntervalTypeBaseContext | undefined { - return this.tryGetRuleContext(0, IntervalTypeBaseContext); - } - public dataTypeBase(): DataTypeBaseContext | undefined { - return this.tryGetRuleContext(0, DataTypeBaseContext); - } - public keywordsCanBeId(): KeywordsCanBeIdContext | undefined { - return this.tryGetRuleContext(0, KeywordsCanBeIdContext); - } - public functionNameBase(): FunctionNameBaseContext | undefined { - return this.tryGetRuleContext(0, FunctionNameBaseContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_simpleId; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleId) { - listener.enterSimpleId(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleId) { - listener.exitSimpleId(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleId) { - return visitor.visitSimpleId(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DottedIdContext extends ParserRuleContext { - public DOT_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DOT_ID, 0); } - public DOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DOT, 0); } - public uid(): UidContext | undefined { - return this.tryGetRuleContext(0, UidContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dottedId; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDottedId) { - listener.enterDottedId(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDottedId) { - listener.exitDottedId(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDottedId) { - return visitor.visitDottedId(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DecimalLiteralContext extends ParserRuleContext { - public DECIMAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECIMAL_LITERAL, 0); } - public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZERO_DECIMAL, 0); } - public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE_DECIMAL, 0); } - public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TWO_DECIMAL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_decimalLiteral; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDecimalLiteral) { - listener.enterDecimalLiteral(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDecimalLiteral) { - listener.exitDecimalLiteral(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDecimalLiteral) { - return visitor.visitDecimalLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FileSizeLiteralContext extends ParserRuleContext { - public FILESIZE_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILESIZE_LITERAL, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_fileSizeLiteral; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFileSizeLiteral) { - listener.enterFileSizeLiteral(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFileSizeLiteral) { - listener.exitFileSizeLiteral(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFileSizeLiteral) { - return visitor.visitFileSizeLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class StringLiteralContext extends ParserRuleContext { - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public START_NATIONAL_STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.START_NATIONAL_STRING_LITERAL, 0); } - public STRING_CHARSET_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_CHARSET_NAME, 0); } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_stringLiteral; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStringLiteral) { - listener.enterStringLiteral(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStringLiteral) { - listener.exitStringLiteral(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStringLiteral) { - return visitor.visitStringLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BooleanLiteralContext extends ParserRuleContext { - public TRUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRUE, 0); } - public FALSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FALSE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_booleanLiteral; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBooleanLiteral) { - listener.enterBooleanLiteral(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBooleanLiteral) { - listener.exitBooleanLiteral(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBooleanLiteral) { - return visitor.visitBooleanLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class HexadecimalLiteralContext extends ParserRuleContext { - public HEXADECIMAL_LITERAL(): TerminalNode { return this.getToken(SqlParser.HEXADECIMAL_LITERAL, 0); } - public STRING_CHARSET_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_CHARSET_NAME, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_hexadecimalLiteral; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterHexadecimalLiteral) { - listener.enterHexadecimalLiteral(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitHexadecimalLiteral) { - listener.exitHexadecimalLiteral(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitHexadecimalLiteral) { - return visitor.visitHexadecimalLiteral(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class NullNotnullContext extends ParserRuleContext { - public NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_LITERAL, 0); } - public NULL_SPEC_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_SPEC_LITERAL, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_nullNotnull; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNullNotnull) { - listener.enterNullNotnull(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNullNotnull) { - listener.exitNullNotnull(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNullNotnull) { - return visitor.visitNullNotnull(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConstantContext extends ParserRuleContext { - public _nullLiteral!: Token; - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUS, 0); } - public hexadecimalLiteral(): HexadecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, HexadecimalLiteralContext); - } - public booleanLiteral(): BooleanLiteralContext | undefined { - return this.tryGetRuleContext(0, BooleanLiteralContext); - } - public REAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REAL_LITERAL, 0); } - public BIT_STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_STRING, 0); } - public NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_LITERAL, 0); } - public NULL_SPEC_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_SPEC_LITERAL, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_constant; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterConstant) { - listener.enterConstant(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitConstant) { - listener.exitConstant(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitConstant) { - return visitor.visitConstant(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DataTypeContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dataType; } - public copyFrom(ctx: DataTypeContext): void { - super.copyFrom(ctx); - } -} -export class StringDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public CHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAR, 0); } - public CHARACTER(): TerminalNode[]; - public CHARACTER(i: number): TerminalNode; - public CHARACTER(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.CHARACTER); - } else { - return this.getToken(SqlParser.CHARACTER, i); - } - } - public VARCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARCHAR, 0); } - public TINYTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TINYTEXT, 0); } - public TEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEXT, 0); } - public MEDIUMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEDIUMTEXT, 0); } - public LONGTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LONGTEXT, 0); } - public NCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NCHAR, 0); } - public NVARCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NVARCHAR, 0); } - public LONG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LONG, 0); } - public lengthOneDimension(): LengthOneDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthOneDimensionContext); - } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterStringDataType) { - listener.enterStringDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitStringDataType) { - listener.exitStringDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitStringDataType) { - return visitor.visitStringDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NationalStringDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public NATIONAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NATIONAL, 0); } - public VARCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARCHAR, 0); } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public lengthOneDimension(): LengthOneDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthOneDimensionContext); - } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public NCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NCHAR, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNationalStringDataType) { - listener.enterNationalStringDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNationalStringDataType) { - listener.exitNationalStringDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNationalStringDataType) { - return visitor.visitNationalStringDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NationalVaryingStringDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public NATIONAL(): TerminalNode { return this.getToken(SqlParser.NATIONAL, 0); } - public VARYING(): TerminalNode { return this.getToken(SqlParser.VARYING, 0); } - public CHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAR, 0); } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public lengthOneDimension(): LengthOneDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthOneDimensionContext); - } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNationalVaryingStringDataType) { - listener.enterNationalVaryingStringDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNationalVaryingStringDataType) { - listener.exitNationalVaryingStringDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNationalVaryingStringDataType) { - return visitor.visitNationalVaryingStringDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DimensionDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public TINYINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TINYINT, 0); } - public SMALLINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SMALLINT, 0); } - public MEDIUMINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEDIUMINT, 0); } - public INT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT, 0); } - public INTEGER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTEGER, 0); } - public BIGINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIGINT, 0); } - public MIDDLEINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MIDDLEINT, 0); } - public INT1(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT1, 0); } - public INT2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT2, 0); } - public INT3(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT3, 0); } - public INT4(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT4, 0); } - public INT8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INT8, 0); } - public lengthOneDimension(): LengthOneDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthOneDimensionContext); - } - public ZEROFILL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ZEROFILL, 0); } - public SIGNED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIGNED, 0); } - public UNSIGNED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNSIGNED, 0); } - public REAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REAL, 0); } - public lengthTwoDimension(): LengthTwoDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthTwoDimensionContext); - } - public DOUBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DOUBLE, 0); } - public PRECISION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRECISION, 0); } - public DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECIMAL, 0); } - public DEC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEC, 0); } - public FIXED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIXED, 0); } - public NUMERIC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NUMERIC, 0); } - public FLOAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FLOAT, 0); } - public FLOAT4(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FLOAT4, 0); } - public FLOAT8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FLOAT8, 0); } - public lengthTwoOptionalDimension(): LengthTwoOptionalDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthTwoOptionalDimensionContext); - } - public BIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT, 0); } - public TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME, 0); } - public TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMESTAMP, 0); } - public DATETIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATETIME, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public VARBINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARBINARY, 0); } - public YEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEAR, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDimensionDataType) { - listener.enterDimensionDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDimensionDataType) { - listener.exitDimensionDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDimensionDataType) { - return visitor.visitDimensionDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SimpleDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE, 0); } - public TINYBLOB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TINYBLOB, 0); } - public BLOB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BLOB, 0); } - public MEDIUMBLOB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEDIUMBLOB, 0); } - public LONGBLOB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LONGBLOB, 0); } - public BOOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BOOL, 0); } - public BOOLEAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BOOLEAN, 0); } - public SERIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SERIAL, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleDataType) { - listener.enterSimpleDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleDataType) { - listener.exitSimpleDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleDataType) { - return visitor.visitSimpleDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CollectionDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public collectionOptions(): CollectionOptionsContext { - return this.getRuleContext(0, CollectionOptionsContext); - } - public ENUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENUM, 0); } - public SET(): TerminalNode[]; - public SET(i: number): TerminalNode; - public SET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.SET); - } else { - return this.getToken(SqlParser.SET, i); - } - } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCollectionDataType) { - listener.enterCollectionDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCollectionDataType) { - listener.exitCollectionDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCollectionDataType) { - return visitor.visitCollectionDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SpatialDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public GEOMETRYCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYCOLLECTION, 0); } - public GEOMCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMCOLLECTION, 0); } - public LINESTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINESTRING, 0); } - public MULTILINESTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTILINESTRING, 0); } - public MULTIPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOINT, 0); } - public MULTIPOLYGON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOLYGON, 0); } - public POINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POINT, 0); } - public POLYGON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYGON, 0); } - public JSON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON, 0); } - public GEOMETRY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRY, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSpatialDataType) { - listener.enterSpatialDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSpatialDataType) { - listener.exitSpatialDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSpatialDataType) { - return visitor.visitSpatialDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LongVarcharDataTypeContext extends DataTypeContext { - public _typeName!: Token; - public LONG(): TerminalNode { return this.getToken(SqlParser.LONG, 0); } - public VARCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARCHAR, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public COLLATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext | undefined { - return this.tryGetRuleContext(0, CollationNameContext); - } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLongVarcharDataType) { - listener.enterLongVarcharDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLongVarcharDataType) { - listener.exitLongVarcharDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLongVarcharDataType) { - return visitor.visitLongVarcharDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LongVarbinaryDataTypeContext extends DataTypeContext { - public LONG(): TerminalNode { return this.getToken(SqlParser.LONG, 0); } - public VARBINARY(): TerminalNode { return this.getToken(SqlParser.VARBINARY, 0); } - constructor(ctx: DataTypeContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLongVarbinaryDataType) { - listener.enterLongVarbinaryDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLongVarbinaryDataType) { - listener.exitLongVarbinaryDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLongVarbinaryDataType) { - return visitor.visitLongVarbinaryDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CollectionOptionsContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_collectionOptions; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCollectionOptions) { - listener.enterCollectionOptions(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCollectionOptions) { - listener.exitCollectionOptions(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCollectionOptions) { - return visitor.visitCollectionOptions(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConvertedDataTypeContext extends ParserRuleContext { - public _typeName!: Token; - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - public NCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NCHAR, 0); } - public lengthOneDimension(): LengthOneDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthOneDimensionContext); - } - public CHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAR, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public CHARACTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER, 0); } - public SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - public DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE, 0); } - public DATETIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATETIME, 0); } - public TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME, 0); } - public JSON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON, 0); } - public DECIMAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECIMAL, 0); } - public lengthTwoDimension(): LengthTwoDimensionContext | undefined { - return this.tryGetRuleContext(0, LengthTwoDimensionContext); - } - public SIGNED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIGNED, 0); } - public UNSIGNED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNSIGNED, 0); } - public INTEGER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTEGER, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_convertedDataType; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterConvertedDataType) { - listener.enterConvertedDataType(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitConvertedDataType) { - listener.exitConvertedDataType(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitConvertedDataType) { - return visitor.visitConvertedDataType(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LengthOneDimensionContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lengthOneDimension; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLengthOneDimension) { - listener.enterLengthOneDimension(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLengthOneDimension) { - listener.exitLengthOneDimension(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLengthOneDimension) { - return visitor.visitLengthOneDimension(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LengthTwoDimensionContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public COMMA(): TerminalNode { return this.getToken(SqlParser.COMMA, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lengthTwoDimension; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLengthTwoDimension) { - listener.enterLengthTwoDimension(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLengthTwoDimension) { - listener.exitLengthTwoDimension(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLengthTwoDimension) { - return visitor.visitLengthTwoDimension(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LengthTwoOptionalDimensionContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMA, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_lengthTwoOptionalDimension; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLengthTwoOptionalDimension) { - listener.enterLengthTwoOptionalDimension(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLengthTwoOptionalDimension) { - listener.exitLengthTwoOptionalDimension(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLengthTwoOptionalDimension) { - return visitor.visitLengthTwoOptionalDimension(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UidListContext extends ParserRuleContext { - public uid(): UidContext[]; - public uid(i: number): UidContext; - public uid(i?: number): UidContext | UidContext[] { - if (i === undefined) { - return this.getRuleContexts(UidContext); - } else { - return this.getRuleContext(i, UidContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_uidList; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUidList) { - listener.enterUidList(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUidList) { - listener.exitUidList(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUidList) { - return visitor.visitUidList(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TablesContext extends ParserRuleContext { - public tableName(): TableNameContext[]; - public tableName(i: number): TableNameContext; - public tableName(i?: number): TableNameContext | TableNameContext[] { - if (i === undefined) { - return this.getRuleContexts(TableNameContext); - } else { - return this.getRuleContext(i, TableNameContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_tables; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTables) { - listener.enterTables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTables) { - listener.exitTables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTables) { - return visitor.visitTables(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IndexColumnNamesContext extends ParserRuleContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public indexColumnName(): IndexColumnNameContext[]; - public indexColumnName(i: number): IndexColumnNameContext; - public indexColumnName(i?: number): IndexColumnNameContext | IndexColumnNameContext[] { - if (i === undefined) { - return this.getRuleContexts(IndexColumnNameContext); - } else { - return this.getRuleContext(i, IndexColumnNameContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_indexColumnNames; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIndexColumnNames) { - listener.enterIndexColumnNames(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIndexColumnNames) { - listener.exitIndexColumnNames(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIndexColumnNames) { - return visitor.visitIndexColumnNames(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionsContext extends ParserRuleContext { - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_expressions; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExpressions) { - listener.enterExpressions(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExpressions) { - listener.exitExpressions(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExpressions) { - return visitor.visitExpressions(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionsWithDefaultsContext extends ParserRuleContext { - public expressionOrDefault(): ExpressionOrDefaultContext[]; - public expressionOrDefault(i: number): ExpressionOrDefaultContext; - public expressionOrDefault(i?: number): ExpressionOrDefaultContext | ExpressionOrDefaultContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionOrDefaultContext); - } else { - return this.getRuleContext(i, ExpressionOrDefaultContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_expressionsWithDefaults; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExpressionsWithDefaults) { - listener.enterExpressionsWithDefaults(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExpressionsWithDefaults) { - listener.exitExpressionsWithDefaults(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExpressionsWithDefaults) { - return visitor.visitExpressionsWithDefaults(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ConstantsContext extends ParserRuleContext { - public constant(): ConstantContext[]; - public constant(i: number): ConstantContext; - public constant(i?: number): ConstantContext | ConstantContext[] { - if (i === undefined) { - return this.getRuleContexts(ConstantContext); - } else { - return this.getRuleContext(i, ConstantContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_constants; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterConstants) { - listener.enterConstants(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitConstants) { - listener.exitConstants(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitConstants) { - return visitor.visitConstants(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SimpleStringsContext extends ParserRuleContext { - public STRING_LITERAL(): TerminalNode[]; - public STRING_LITERAL(i: number): TerminalNode; - public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.STRING_LITERAL); - } else { - return this.getToken(SqlParser.STRING_LITERAL, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_simpleStrings; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleStrings) { - listener.enterSimpleStrings(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleStrings) { - listener.exitSimpleStrings(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleStrings) { - return visitor.visitSimpleStrings(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UserVariablesContext extends ParserRuleContext { - public LOCAL_ID(): TerminalNode[]; - public LOCAL_ID(i: number): TerminalNode; - public LOCAL_ID(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LOCAL_ID); - } else { - return this.getToken(SqlParser.LOCAL_ID, i); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_userVariables; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUserVariables) { - listener.enterUserVariables(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUserVariables) { - listener.exitUserVariables(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUserVariables) { - return visitor.visitUserVariables(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DefaultValueContext extends ParserRuleContext { - public NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULL_LITERAL, 0); } - public constant(): ConstantContext | undefined { - return this.tryGetRuleContext(0, ConstantContext); - } - public unaryOperator(): UnaryOperatorContext | undefined { - return this.tryGetRuleContext(0, UnaryOperatorContext); - } - public currentTimestamp(): CurrentTimestampContext[]; - public currentTimestamp(i: number): CurrentTimestampContext; - public currentTimestamp(i?: number): CurrentTimestampContext | CurrentTimestampContext[] { - if (i === undefined) { - return this.getRuleContexts(CurrentTimestampContext); - } else { - return this.getRuleContext(i, CurrentTimestampContext); - } - } - public ON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ON, 0); } - public UPDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_defaultValue; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDefaultValue) { - listener.enterDefaultValue(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDefaultValue) { - listener.exitDefaultValue(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDefaultValue) { - return visitor.visitDefaultValue(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CurrentTimestampContext extends ParserRuleContext { - public NOW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOW, 0); } - public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RR_BRACKET, 0); } - public CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIMESTAMP, 0); } - public LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCALTIME, 0); } - public LOCALTIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCALTIMESTAMP, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_currentTimestamp; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCurrentTimestamp) { - listener.enterCurrentTimestamp(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCurrentTimestamp) { - listener.exitCurrentTimestamp(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCurrentTimestamp) { - return visitor.visitCurrentTimestamp(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionOrDefaultContext extends ParserRuleContext { - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public DEFAULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_expressionOrDefault; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExpressionOrDefault) { - listener.enterExpressionOrDefault(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExpressionOrDefault) { - listener.exitExpressionOrDefault(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExpressionOrDefault) { - return visitor.visitExpressionOrDefault(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IfExistsContext extends ParserRuleContext { - public IF(): TerminalNode { return this.getToken(SqlParser.IF, 0); } - public EXISTS(): TerminalNode { return this.getToken(SqlParser.EXISTS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_ifExists; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIfExists) { - listener.enterIfExists(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIfExists) { - listener.exitIfExists(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIfExists) { - return visitor.visitIfExists(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IfNotExistsContext extends ParserRuleContext { - public IF(): TerminalNode { return this.getToken(SqlParser.IF, 0); } - public NOT(): TerminalNode { return this.getToken(SqlParser.NOT, 0); } - public EXISTS(): TerminalNode { return this.getToken(SqlParser.EXISTS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_ifNotExists; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIfNotExists) { - listener.enterIfNotExists(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIfNotExists) { - listener.exitIfNotExists(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIfNotExists) { - return visitor.visitIfNotExists(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionCallContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_functionCall; } - public copyFrom(ctx: FunctionCallContext): void { - super.copyFrom(ctx); - } -} -export class SpecificFunctionCallContext extends FunctionCallContext { - public specificFunction(): SpecificFunctionContext { - return this.getRuleContext(0, SpecificFunctionContext); - } - constructor(ctx: FunctionCallContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSpecificFunctionCall) { - listener.enterSpecificFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSpecificFunctionCall) { - listener.exitSpecificFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSpecificFunctionCall) { - return visitor.visitSpecificFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class AggregateFunctionCallContext extends FunctionCallContext { - public aggregateWindowedFunction(): AggregateWindowedFunctionContext { - return this.getRuleContext(0, AggregateWindowedFunctionContext); - } - constructor(ctx: FunctionCallContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAggregateFunctionCall) { - listener.enterAggregateFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAggregateFunctionCall) { - listener.exitAggregateFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAggregateFunctionCall) { - return visitor.visitAggregateFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ScalarFunctionCallContext extends FunctionCallContext { - public scalarFunctionName(): ScalarFunctionNameContext { - return this.getRuleContext(0, ScalarFunctionNameContext); - } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public functionArgs(): FunctionArgsContext | undefined { - return this.tryGetRuleContext(0, FunctionArgsContext); - } - constructor(ctx: FunctionCallContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterScalarFunctionCall) { - listener.enterScalarFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitScalarFunctionCall) { - listener.exitScalarFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitScalarFunctionCall) { - return visitor.visitScalarFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UdfFunctionCallContext extends FunctionCallContext { - public fullId(): FullIdContext { - return this.getRuleContext(0, FullIdContext); - } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public functionArgs(): FunctionArgsContext | undefined { - return this.tryGetRuleContext(0, FunctionArgsContext); - } - constructor(ctx: FunctionCallContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUdfFunctionCall) { - listener.enterUdfFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUdfFunctionCall) { - listener.exitUdfFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUdfFunctionCall) { - return visitor.visitUdfFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PasswordFunctionCallContext extends FunctionCallContext { - public passwordFunctionClause(): PasswordFunctionClauseContext { - return this.getRuleContext(0, PasswordFunctionClauseContext); - } - constructor(ctx: FunctionCallContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPasswordFunctionCall) { - listener.enterPasswordFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPasswordFunctionCall) { - listener.exitPasswordFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPasswordFunctionCall) { - return visitor.visitPasswordFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class SpecificFunctionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_specificFunction; } - public copyFrom(ctx: SpecificFunctionContext): void { - super.copyFrom(ctx); - } -} -export class SimpleFunctionCallContext extends SpecificFunctionContext { - public CURRENT_DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_DATE, 0); } - public CURRENT_TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIME, 0); } - public CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIMESTAMP, 0); } - public CURRENT_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_USER, 0); } - public LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCALTIME, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSimpleFunctionCall) { - listener.enterSimpleFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSimpleFunctionCall) { - listener.exitSimpleFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSimpleFunctionCall) { - return visitor.visitSimpleFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class DataTypeFunctionCallContext extends SpecificFunctionContext { - public _separator!: Token; - public CONVERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONVERT, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public convertedDataType(): ConvertedDataTypeContext | undefined { - return this.tryGetRuleContext(0, ConvertedDataTypeContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMA, 0); } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - public CAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CAST, 0); } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDataTypeFunctionCall) { - listener.enterDataTypeFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDataTypeFunctionCall) { - listener.exitDataTypeFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDataTypeFunctionCall) { - return visitor.visitDataTypeFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ValuesFunctionCallContext extends SpecificFunctionContext { - public VALUES(): TerminalNode { return this.getToken(SqlParser.VALUES, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public fullColumnName(): FullColumnNameContext { - return this.getRuleContext(0, FullColumnNameContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterValuesFunctionCall) { - listener.enterValuesFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitValuesFunctionCall) { - listener.exitValuesFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitValuesFunctionCall) { - return visitor.visitValuesFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CaseFunctionCallContext extends SpecificFunctionContext { - public _elseArg!: FunctionArgContext; - public CASE(): TerminalNode { return this.getToken(SqlParser.CASE, 0); } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public END(): TerminalNode { return this.getToken(SqlParser.END, 0); } - public caseFuncAlternative(): CaseFuncAlternativeContext[]; - public caseFuncAlternative(i: number): CaseFuncAlternativeContext; - public caseFuncAlternative(i?: number): CaseFuncAlternativeContext | CaseFuncAlternativeContext[] { - if (i === undefined) { - return this.getRuleContexts(CaseFuncAlternativeContext); - } else { - return this.getRuleContext(i, CaseFuncAlternativeContext); - } - } - public ELSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ELSE, 0); } - public functionArg(): FunctionArgContext | undefined { - return this.tryGetRuleContext(0, FunctionArgContext); - } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCaseFunctionCall) { - listener.enterCaseFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCaseFunctionCall) { - listener.exitCaseFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCaseFunctionCall) { - return visitor.visitCaseFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CharFunctionCallContext extends SpecificFunctionContext { - public CHAR(): TerminalNode { return this.getToken(SqlParser.CHAR, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public functionArgs(): FunctionArgsContext { - return this.getRuleContext(0, FunctionArgsContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public USING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USING, 0); } - public charsetName(): CharsetNameContext | undefined { - return this.tryGetRuleContext(0, CharsetNameContext); - } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCharFunctionCall) { - listener.enterCharFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCharFunctionCall) { - listener.exitCharFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCharFunctionCall) { - return visitor.visitCharFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PositionFunctionCallContext extends SpecificFunctionContext { - public _positionString!: StringLiteralContext; - public _positionExpression!: ExpressionContext; - public _inString!: StringLiteralContext; - public _inExpression!: ExpressionContext; - public POSITION(): TerminalNode { return this.getToken(SqlParser.POSITION, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public IN(): TerminalNode { return this.getToken(SqlParser.IN, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public stringLiteral(): StringLiteralContext[]; - public stringLiteral(i: number): StringLiteralContext; - public stringLiteral(i?: number): StringLiteralContext | StringLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(StringLiteralContext); - } else { - return this.getRuleContext(i, StringLiteralContext); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPositionFunctionCall) { - listener.enterPositionFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPositionFunctionCall) { - listener.exitPositionFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPositionFunctionCall) { - return visitor.visitPositionFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SubstrFunctionCallContext extends SpecificFunctionContext { - public _sourceString!: StringLiteralContext; - public _sourceExpression!: ExpressionContext; - public _fromDecimal!: DecimalLiteralContext; - public _fromExpression!: ExpressionContext; - public _forDecimal!: DecimalLiteralContext; - public _forExpression!: ExpressionContext; - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public SUBSTR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBSTR, 0); } - public SUBSTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBSTRING, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - public FOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOR, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubstrFunctionCall) { - listener.enterSubstrFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubstrFunctionCall) { - listener.exitSubstrFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubstrFunctionCall) { - return visitor.visitSubstrFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class TrimFunctionCallContext extends SpecificFunctionContext { - public _positioinForm!: Token; - public _sourceString!: StringLiteralContext; - public _sourceExpression!: ExpressionContext; - public _fromString!: StringLiteralContext; - public _fromExpression!: ExpressionContext; - public TRIM(): TerminalNode { return this.getToken(SqlParser.TRIM, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public BOTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BOTH, 0); } - public LEADING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEADING, 0); } - public TRAILING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRAILING, 0); } - public stringLiteral(): StringLiteralContext[]; - public stringLiteral(i: number): StringLiteralContext; - public stringLiteral(i?: number): StringLiteralContext | StringLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(StringLiteralContext); - } else { - return this.getRuleContext(i, StringLiteralContext); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTrimFunctionCall) { - listener.enterTrimFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTrimFunctionCall) { - listener.exitTrimFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTrimFunctionCall) { - return visitor.visitTrimFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class WeightFunctionCallContext extends SpecificFunctionContext { - public _stringFormat!: Token; - public WEIGHT_STRING(): TerminalNode { return this.getToken(SqlParser.WEIGHT_STRING, 0); } - public LR_BRACKET(): TerminalNode[]; - public LR_BRACKET(i: number): TerminalNode; - public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LR_BRACKET); - } else { - return this.getToken(SqlParser.LR_BRACKET, i); - } - } - public RR_BRACKET(): TerminalNode[]; - public RR_BRACKET(i: number): TerminalNode; - public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.RR_BRACKET); - } else { - return this.getToken(SqlParser.RR_BRACKET, i); - } - } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - public AS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AS, 0); } - public decimalLiteral(): DecimalLiteralContext | undefined { - return this.tryGetRuleContext(0, DecimalLiteralContext); - } - public levelsInWeightString(): LevelsInWeightStringContext | undefined { - return this.tryGetRuleContext(0, LevelsInWeightStringContext); - } - public CHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAR, 0); } - public BINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINARY, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterWeightFunctionCall) { - listener.enterWeightFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitWeightFunctionCall) { - listener.exitWeightFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitWeightFunctionCall) { - return visitor.visitWeightFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ExtractFunctionCallContext extends SpecificFunctionContext { - public _sourceString!: StringLiteralContext; - public _sourceExpression!: ExpressionContext; - public EXTRACT(): TerminalNode { return this.getToken(SqlParser.EXTRACT, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public intervalType(): IntervalTypeContext { - return this.getRuleContext(0, IntervalTypeContext); - } - public FROM(): TerminalNode { return this.getToken(SqlParser.FROM, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public stringLiteral(): StringLiteralContext | undefined { - return this.tryGetRuleContext(0, StringLiteralContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExtractFunctionCall) { - listener.enterExtractFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExtractFunctionCall) { - listener.exitExtractFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExtractFunctionCall) { - return visitor.visitExtractFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class GetFormatFunctionCallContext extends SpecificFunctionContext { - public _datetimeFormat!: Token; - public GET_FORMAT(): TerminalNode { return this.getToken(SqlParser.GET_FORMAT, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public COMMA(): TerminalNode { return this.getToken(SqlParser.COMMA, 0); } - public stringLiteral(): StringLiteralContext { - return this.getRuleContext(0, StringLiteralContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE, 0); } - public TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME, 0); } - public DATETIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATETIME, 0); } - constructor(ctx: SpecificFunctionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterGetFormatFunctionCall) { - listener.enterGetFormatFunctionCall(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitGetFormatFunctionCall) { - listener.exitGetFormatFunctionCall(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitGetFormatFunctionCall) { - return visitor.visitGetFormatFunctionCall(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CaseFuncAlternativeContext extends ParserRuleContext { - public _condition!: FunctionArgContext; - public _consequent!: FunctionArgContext; - public WHEN(): TerminalNode { return this.getToken(SqlParser.WHEN, 0); } - public THEN(): TerminalNode { return this.getToken(SqlParser.THEN, 0); } - public functionArg(): FunctionArgContext[]; - public functionArg(i: number): FunctionArgContext; - public functionArg(i?: number): FunctionArgContext | FunctionArgContext[] { - if (i === undefined) { - return this.getRuleContexts(FunctionArgContext); - } else { - return this.getRuleContext(i, FunctionArgContext); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_caseFuncAlternative; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCaseFuncAlternative) { - listener.enterCaseFuncAlternative(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCaseFuncAlternative) { - listener.exitCaseFuncAlternative(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCaseFuncAlternative) { - return visitor.visitCaseFuncAlternative(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LevelsInWeightStringContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_levelsInWeightString; } - public copyFrom(ctx: LevelsInWeightStringContext): void { - super.copyFrom(ctx); - } -} -export class LevelWeightListContext extends LevelsInWeightStringContext { - public LEVEL(): TerminalNode { return this.getToken(SqlParser.LEVEL, 0); } - public levelInWeightListElement(): LevelInWeightListElementContext[]; - public levelInWeightListElement(i: number): LevelInWeightListElementContext; - public levelInWeightListElement(i?: number): LevelInWeightListElementContext | LevelInWeightListElementContext[] { - if (i === undefined) { - return this.getRuleContexts(LevelInWeightListElementContext); - } else { - return this.getRuleContext(i, LevelInWeightListElementContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: LevelsInWeightStringContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLevelWeightList) { - listener.enterLevelWeightList(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLevelWeightList) { - listener.exitLevelWeightList(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLevelWeightList) { - return visitor.visitLevelWeightList(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LevelWeightRangeContext extends LevelsInWeightStringContext { - public _firstLevel!: DecimalLiteralContext; - public _lastLevel!: DecimalLiteralContext; - public LEVEL(): TerminalNode { return this.getToken(SqlParser.LEVEL, 0); } - public MINUS(): TerminalNode { return this.getToken(SqlParser.MINUS, 0); } - public decimalLiteral(): DecimalLiteralContext[]; - public decimalLiteral(i: number): DecimalLiteralContext; - public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { - if (i === undefined) { - return this.getRuleContexts(DecimalLiteralContext); - } else { - return this.getRuleContext(i, DecimalLiteralContext); - } - } - constructor(ctx: LevelsInWeightStringContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLevelWeightRange) { - listener.enterLevelWeightRange(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLevelWeightRange) { - listener.exitLevelWeightRange(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLevelWeightRange) { - return visitor.visitLevelWeightRange(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LevelInWeightListElementContext extends ParserRuleContext { - public _orderType!: Token; - public decimalLiteral(): DecimalLiteralContext { - return this.getRuleContext(0, DecimalLiteralContext); - } - public ASC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASC, 0); } - public DESC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DESC, 0); } - public REVERSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_levelInWeightListElement; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLevelInWeightListElement) { - listener.enterLevelInWeightListElement(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLevelInWeightListElement) { - listener.exitLevelInWeightListElement(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLevelInWeightListElement) { - return visitor.visitLevelInWeightListElement(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class AggregateWindowedFunctionContext extends ParserRuleContext { - public _aggregator!: Token; - public _starArg!: Token; - public _separator!: Token; - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public functionArg(): FunctionArgContext | undefined { - return this.tryGetRuleContext(0, FunctionArgContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public AVG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AVG, 0); } - public MAX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX, 0); } - public MIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MIN, 0); } - public SUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUM, 0); } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public DISTINCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISTINCT, 0); } - public COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COUNT, 0); } - public STAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STAR, 0); } - public functionArgs(): FunctionArgsContext | undefined { - return this.tryGetRuleContext(0, FunctionArgsContext); - } - public BIT_AND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_AND, 0); } - public BIT_OR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_OR, 0); } - public BIT_XOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_XOR, 0); } - public STD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STD, 0); } - public STDDEV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STDDEV, 0); } - public STDDEV_POP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STDDEV_POP, 0); } - public STDDEV_SAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STDDEV_SAMP, 0); } - public VAR_POP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VAR_POP, 0); } - public VAR_SAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VAR_SAMP, 0); } - public VARIANCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARIANCE, 0); } - public GROUP_CONCAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP_CONCAT, 0); } - public ORDER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ORDER, 0); } - public BY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BY, 0); } - public orderByExpression(): OrderByExpressionContext[]; - public orderByExpression(i: number): OrderByExpressionContext; - public orderByExpression(i?: number): OrderByExpressionContext | OrderByExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(OrderByExpressionContext); - } else { - return this.getRuleContext(i, OrderByExpressionContext); - } - } - public SEPARATOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SEPARATOR, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_aggregateWindowedFunction; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterAggregateWindowedFunction) { - listener.enterAggregateWindowedFunction(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitAggregateWindowedFunction) { - listener.exitAggregateWindowedFunction(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitAggregateWindowedFunction) { - return visitor.visitAggregateWindowedFunction(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ScalarFunctionNameContext extends ParserRuleContext { - public functionNameBase(): FunctionNameBaseContext | undefined { - return this.tryGetRuleContext(0, FunctionNameBaseContext); - } - public ASCII(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASCII, 0); } - public CURDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURDATE, 0); } - public CURRENT_DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_DATE, 0); } - public CURRENT_TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIME, 0); } - public CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT_TIMESTAMP, 0); } - public CURTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURTIME, 0); } - public DATE_ADD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE_ADD, 0); } - public DATE_SUB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE_SUB, 0); } - public IF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IF, 0); } - public INSERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSERT, 0); } - public LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCALTIME, 0); } - public LOCALTIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCALTIMESTAMP, 0); } - public MID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MID, 0); } - public NOW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOW, 0); } - public REPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLACE, 0); } - public SUBSTR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBSTR, 0); } - public SUBSTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBSTRING, 0); } - public SYSDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SYSDATE, 0); } - public TRIM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRIM, 0); } - public UTC_DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTC_DATE, 0); } - public UTC_TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTC_TIME, 0); } - public UTC_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTC_TIMESTAMP, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_scalarFunctionName; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterScalarFunctionName) { - listener.enterScalarFunctionName(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitScalarFunctionName) { - listener.exitScalarFunctionName(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitScalarFunctionName) { - return visitor.visitScalarFunctionName(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PasswordFunctionClauseContext extends ParserRuleContext { - public _functionName!: Token; - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public functionArg(): FunctionArgContext { - return this.getRuleContext(0, FunctionArgContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PASSWORD, 0); } - public OLD_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OLD_PASSWORD, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_passwordFunctionClause; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPasswordFunctionClause) { - listener.enterPasswordFunctionClause(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPasswordFunctionClause) { - listener.exitPasswordFunctionClause(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPasswordFunctionClause) { - return visitor.visitPasswordFunctionClause(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionArgsContext extends ParserRuleContext { - public constant(): ConstantContext[]; - public constant(i: number): ConstantContext; - public constant(i?: number): ConstantContext | ConstantContext[] { - if (i === undefined) { - return this.getRuleContexts(ConstantContext); - } else { - return this.getRuleContext(i, ConstantContext); - } - } - public fullColumnName(): FullColumnNameContext[]; - public fullColumnName(i: number): FullColumnNameContext; - public fullColumnName(i?: number): FullColumnNameContext | FullColumnNameContext[] { - if (i === undefined) { - return this.getRuleContexts(FullColumnNameContext); - } else { - return this.getRuleContext(i, FullColumnNameContext); - } - } - public functionCall(): FunctionCallContext[]; - public functionCall(i: number): FunctionCallContext; - public functionCall(i?: number): FunctionCallContext | FunctionCallContext[] { - if (i === undefined) { - return this.getRuleContexts(FunctionCallContext); - } else { - return this.getRuleContext(i, FunctionCallContext); - } - } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_functionArgs; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFunctionArgs) { - listener.enterFunctionArgs(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFunctionArgs) { - listener.exitFunctionArgs(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFunctionArgs) { - return visitor.visitFunctionArgs(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionArgContext extends ParserRuleContext { - public constant(): ConstantContext | undefined { - return this.tryGetRuleContext(0, ConstantContext); - } - public fullColumnName(): FullColumnNameContext | undefined { - return this.tryGetRuleContext(0, FullColumnNameContext); - } - public functionCall(): FunctionCallContext | undefined { - return this.tryGetRuleContext(0, FunctionCallContext); - } - public expression(): ExpressionContext | undefined { - return this.tryGetRuleContext(0, ExpressionContext); - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_functionArg; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFunctionArg) { - listener.enterFunctionArg(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFunctionArg) { - listener.exitFunctionArg(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFunctionArg) { - return visitor.visitFunctionArg(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_expression; } - public copyFrom(ctx: ExpressionContext): void { - super.copyFrom(ctx); - } -} -export class NotExpressionContext extends ExpressionContext { - public _notOperator!: Token; - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCLAMATION_SYMBOL, 0); } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNotExpression) { - listener.enterNotExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNotExpression) { - listener.exitNotExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNotExpression) { - return visitor.visitNotExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LogicalExpressionContext extends ExpressionContext { - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public logicalOperator(): LogicalOperatorContext { - return this.getRuleContext(0, LogicalOperatorContext); - } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLogicalExpression) { - listener.enterLogicalExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLogicalExpression) { - listener.exitLogicalExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLogicalExpression) { - return visitor.visitLogicalExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IsExpressionContext extends ExpressionContext { - public _testValue!: Token; - public predicate(): PredicateContext { - return this.getRuleContext(0, PredicateContext); - } - public IS(): TerminalNode { return this.getToken(SqlParser.IS, 0); } - public TRUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRUE, 0); } - public FALSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FALSE, 0); } - public UNKNOWN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNKNOWN, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIsExpression) { - listener.enterIsExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIsExpression) { - listener.exitIsExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIsExpression) { - return visitor.visitIsExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class PredicateExpressionContext extends ExpressionContext { - public predicate(): PredicateContext { - return this.getRuleContext(0, PredicateContext); - } - constructor(ctx: ExpressionContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPredicateExpression) { - listener.enterPredicateExpression(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPredicateExpression) { - listener.exitPredicateExpression(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPredicateExpression) { - return visitor.visitPredicateExpression(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PredicateContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_predicate; } - public copyFrom(ctx: PredicateContext): void { - super.copyFrom(ctx); - } -} -export class InPredicateContext extends PredicateContext { - public predicate(): PredicateContext { - return this.getRuleContext(0, PredicateContext); - } - public IN(): TerminalNode { return this.getToken(SqlParser.IN, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public selectStatement(): SelectStatementContext | undefined { - return this.tryGetRuleContext(0, SelectStatementContext); - } - public expressions(): ExpressionsContext | undefined { - return this.tryGetRuleContext(0, ExpressionsContext); - } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterInPredicate) { - listener.enterInPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitInPredicate) { - listener.exitInPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitInPredicate) { - return visitor.visitInPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IsNullPredicateContext extends PredicateContext { - public predicate(): PredicateContext { - return this.getRuleContext(0, PredicateContext); - } - public IS(): TerminalNode { return this.getToken(SqlParser.IS, 0); } - public nullNotnull(): NullNotnullContext { - return this.getRuleContext(0, NullNotnullContext); - } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIsNullPredicate) { - listener.enterIsNullPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIsNullPredicate) { - listener.exitIsNullPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIsNullPredicate) { - return visitor.visitIsNullPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class BinaryComparasionPredicateContext extends PredicateContext { - public _left!: PredicateContext; - public _right!: PredicateContext; - public comparisonOperator(): ComparisonOperatorContext { - return this.getRuleContext(0, ComparisonOperatorContext); - } - public predicate(): PredicateContext[]; - public predicate(i: number): PredicateContext; - public predicate(i?: number): PredicateContext | PredicateContext[] { - if (i === undefined) { - return this.getRuleContexts(PredicateContext); - } else { - return this.getRuleContext(i, PredicateContext); - } - } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBinaryComparasionPredicate) { - listener.enterBinaryComparasionPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBinaryComparasionPredicate) { - listener.exitBinaryComparasionPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBinaryComparasionPredicate) { - return visitor.visitBinaryComparasionPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SubqueryComparasionPredicateContext extends PredicateContext { - public _quantifier!: Token; - public predicate(): PredicateContext { - return this.getRuleContext(0, PredicateContext); - } - public comparisonOperator(): ComparisonOperatorContext { - return this.getRuleContext(0, ComparisonOperatorContext); - } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public ALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALL, 0); } - public ANY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ANY, 0); } - public SOME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOME, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubqueryComparasionPredicate) { - listener.enterSubqueryComparasionPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubqueryComparasionPredicate) { - listener.exitSubqueryComparasionPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubqueryComparasionPredicate) { - return visitor.visitSubqueryComparasionPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class BetweenPredicateContext extends PredicateContext { - public predicate(): PredicateContext[]; - public predicate(i: number): PredicateContext; - public predicate(i?: number): PredicateContext | PredicateContext[] { - if (i === undefined) { - return this.getRuleContexts(PredicateContext); - } else { - return this.getRuleContext(i, PredicateContext); - } - } - public BETWEEN(): TerminalNode { return this.getToken(SqlParser.BETWEEN, 0); } - public AND(): TerminalNode { return this.getToken(SqlParser.AND, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBetweenPredicate) { - listener.enterBetweenPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBetweenPredicate) { - listener.exitBetweenPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBetweenPredicate) { - return visitor.visitBetweenPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SoundsLikePredicateContext extends PredicateContext { - public predicate(): PredicateContext[]; - public predicate(i: number): PredicateContext; - public predicate(i?: number): PredicateContext | PredicateContext[] { - if (i === undefined) { - return this.getRuleContexts(PredicateContext); - } else { - return this.getRuleContext(i, PredicateContext); - } - } - public SOUNDS(): TerminalNode { return this.getToken(SqlParser.SOUNDS, 0); } - public LIKE(): TerminalNode { return this.getToken(SqlParser.LIKE, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSoundsLikePredicate) { - listener.enterSoundsLikePredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSoundsLikePredicate) { - listener.exitSoundsLikePredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSoundsLikePredicate) { - return visitor.visitSoundsLikePredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class LikePredicateContext extends PredicateContext { - public predicate(): PredicateContext[]; - public predicate(i: number): PredicateContext; - public predicate(i?: number): PredicateContext | PredicateContext[] { - if (i === undefined) { - return this.getRuleContexts(PredicateContext); - } else { - return this.getRuleContext(i, PredicateContext); - } - } - public LIKE(): TerminalNode { return this.getToken(SqlParser.LIKE, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - public ESCAPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ESCAPE, 0); } - public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING_LITERAL, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLikePredicate) { - listener.enterLikePredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLikePredicate) { - listener.exitLikePredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLikePredicate) { - return visitor.visitLikePredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class RegexpPredicateContext extends PredicateContext { - public _regex!: Token; - public predicate(): PredicateContext[]; - public predicate(i: number): PredicateContext; - public predicate(i?: number): PredicateContext | PredicateContext[] { - if (i === undefined) { - return this.getRuleContexts(PredicateContext); - } else { - return this.getRuleContext(i, PredicateContext); - } - } - public REGEXP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REGEXP, 0); } - public RLIKE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RLIKE, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterRegexpPredicate) { - listener.enterRegexpPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitRegexpPredicate) { - listener.exitRegexpPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitRegexpPredicate) { - return visitor.visitRegexpPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ExpressionAtomPredicateContext extends PredicateContext { - public expressionAtom(): ExpressionAtomContext { - return this.getRuleContext(0, ExpressionAtomContext); - } - public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL_ID, 0); } - public VAR_ASSIGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VAR_ASSIGN, 0); } - constructor(ctx: PredicateContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExpressionAtomPredicate) { - listener.enterExpressionAtomPredicate(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExpressionAtomPredicate) { - listener.exitExpressionAtomPredicate(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExpressionAtomPredicate) { - return visitor.visitExpressionAtomPredicate(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ExpressionAtomContext extends ParserRuleContext { - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_expressionAtom; } - public copyFrom(ctx: ExpressionAtomContext): void { - super.copyFrom(ctx); - } -} -export class ConstantExpressionAtomContext extends ExpressionAtomContext { - public constant(): ConstantContext { - return this.getRuleContext(0, ConstantContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterConstantExpressionAtom) { - listener.enterConstantExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitConstantExpressionAtom) { - listener.exitConstantExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitConstantExpressionAtom) { - return visitor.visitConstantExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class FullColumnNameExpressionAtomContext extends ExpressionAtomContext { - public fullColumnName(): FullColumnNameContext { - return this.getRuleContext(0, FullColumnNameContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFullColumnNameExpressionAtom) { - listener.enterFullColumnNameExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFullColumnNameExpressionAtom) { - listener.exitFullColumnNameExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFullColumnNameExpressionAtom) { - return visitor.visitFullColumnNameExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class FunctionCallExpressionAtomContext extends ExpressionAtomContext { - public functionCall(): FunctionCallContext { - return this.getRuleContext(0, FunctionCallContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFunctionCallExpressionAtom) { - listener.enterFunctionCallExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFunctionCallExpressionAtom) { - listener.exitFunctionCallExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFunctionCallExpressionAtom) { - return visitor.visitFunctionCallExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class CollateExpressionAtomContext extends ExpressionAtomContext { - public expressionAtom(): ExpressionAtomContext { - return this.getRuleContext(0, ExpressionAtomContext); - } - public COLLATE(): TerminalNode { return this.getToken(SqlParser.COLLATE, 0); } - public collationName(): CollationNameContext { - return this.getRuleContext(0, CollationNameContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCollateExpressionAtom) { - listener.enterCollateExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCollateExpressionAtom) { - listener.exitCollateExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCollateExpressionAtom) { - return visitor.visitCollateExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MysqlVariableExpressionAtomContext extends ExpressionAtomContext { - public mysqlVariable(): MysqlVariableContext { - return this.getRuleContext(0, MysqlVariableContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMysqlVariableExpressionAtom) { - listener.enterMysqlVariableExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMysqlVariableExpressionAtom) { - listener.exitMysqlVariableExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMysqlVariableExpressionAtom) { - return visitor.visitMysqlVariableExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class UnaryExpressionAtomContext extends ExpressionAtomContext { - public unaryOperator(): UnaryOperatorContext { - return this.getRuleContext(0, UnaryOperatorContext); - } - public expressionAtom(): ExpressionAtomContext { - return this.getRuleContext(0, ExpressionAtomContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnaryExpressionAtom) { - listener.enterUnaryExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnaryExpressionAtom) { - listener.exitUnaryExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnaryExpressionAtom) { - return visitor.visitUnaryExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class BinaryExpressionAtomContext extends ExpressionAtomContext { - public BINARY(): TerminalNode { return this.getToken(SqlParser.BINARY, 0); } - public expressionAtom(): ExpressionAtomContext { - return this.getRuleContext(0, ExpressionAtomContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBinaryExpressionAtom) { - listener.enterBinaryExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBinaryExpressionAtom) { - listener.exitBinaryExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBinaryExpressionAtom) { - return visitor.visitBinaryExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NestedExpressionAtomContext extends ExpressionAtomContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNestedExpressionAtom) { - listener.enterNestedExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNestedExpressionAtom) { - listener.exitNestedExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNestedExpressionAtom) { - return visitor.visitNestedExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class NestedRowExpressionAtomContext extends ExpressionAtomContext { - public ROW(): TerminalNode { return this.getToken(SqlParser.ROW, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public expression(): ExpressionContext[]; - public expression(i: number): ExpressionContext; - public expression(i?: number): ExpressionContext | ExpressionContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionContext); - } else { - return this.getRuleContext(i, ExpressionContext); - } - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.COMMA); - } else { - return this.getToken(SqlParser.COMMA, i); - } - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterNestedRowExpressionAtom) { - listener.enterNestedRowExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitNestedRowExpressionAtom) { - listener.exitNestedRowExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitNestedRowExpressionAtom) { - return visitor.visitNestedRowExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class ExistsExpessionAtomContext extends ExpressionAtomContext { - public EXISTS(): TerminalNode { return this.getToken(SqlParser.EXISTS, 0); } - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterExistsExpessionAtom) { - listener.enterExistsExpessionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitExistsExpessionAtom) { - listener.exitExistsExpessionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitExistsExpessionAtom) { - return visitor.visitExistsExpessionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class SubqueryExpessionAtomContext extends ExpressionAtomContext { - public LR_BRACKET(): TerminalNode { return this.getToken(SqlParser.LR_BRACKET, 0); } - public selectStatement(): SelectStatementContext { - return this.getRuleContext(0, SelectStatementContext); - } - public RR_BRACKET(): TerminalNode { return this.getToken(SqlParser.RR_BRACKET, 0); } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterSubqueryExpessionAtom) { - listener.enterSubqueryExpessionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitSubqueryExpessionAtom) { - listener.exitSubqueryExpessionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitSubqueryExpessionAtom) { - return visitor.visitSubqueryExpessionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class IntervalExpressionAtomContext extends ExpressionAtomContext { - public INTERVAL(): TerminalNode { return this.getToken(SqlParser.INTERVAL, 0); } - public expression(): ExpressionContext { - return this.getRuleContext(0, ExpressionContext); - } - public intervalType(): IntervalTypeContext { - return this.getRuleContext(0, IntervalTypeContext); - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIntervalExpressionAtom) { - listener.enterIntervalExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIntervalExpressionAtom) { - listener.exitIntervalExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIntervalExpressionAtom) { - return visitor.visitIntervalExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class BitExpressionAtomContext extends ExpressionAtomContext { - public _left!: ExpressionAtomContext; - public _right!: ExpressionAtomContext; - public bitOperator(): BitOperatorContext { - return this.getRuleContext(0, BitOperatorContext); - } - public expressionAtom(): ExpressionAtomContext[]; - public expressionAtom(i: number): ExpressionAtomContext; - public expressionAtom(i?: number): ExpressionAtomContext | ExpressionAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionAtomContext); - } else { - return this.getRuleContext(i, ExpressionAtomContext); - } - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBitExpressionAtom) { - listener.enterBitExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBitExpressionAtom) { - listener.exitBitExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBitExpressionAtom) { - return visitor.visitBitExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} -export class MathExpressionAtomContext extends ExpressionAtomContext { - public _left!: ExpressionAtomContext; - public _right!: ExpressionAtomContext; - public mathOperator(): MathOperatorContext { - return this.getRuleContext(0, MathOperatorContext); - } - public expressionAtom(): ExpressionAtomContext[]; - public expressionAtom(i: number): ExpressionAtomContext; - public expressionAtom(i?: number): ExpressionAtomContext | ExpressionAtomContext[] { - if (i === undefined) { - return this.getRuleContexts(ExpressionAtomContext); - } else { - return this.getRuleContext(i, ExpressionAtomContext); - } - } - constructor(ctx: ExpressionAtomContext) { - super(ctx.parent, ctx.invokingState); - this.copyFrom(ctx); - } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMathExpressionAtom) { - listener.enterMathExpressionAtom(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMathExpressionAtom) { - listener.exitMathExpressionAtom(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMathExpressionAtom) { - return visitor.visitMathExpressionAtom(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class UnaryOperatorContext extends ParserRuleContext { - public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCLAMATION_SYMBOL, 0); } - public BIT_NOT_OP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_NOT_OP, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUS, 0); } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUS, 0); } - public NOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NOT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_unaryOperator; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterUnaryOperator) { - listener.enterUnaryOperator(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitUnaryOperator) { - listener.exitUnaryOperator(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitUnaryOperator) { - return visitor.visitUnaryOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class ComparisonOperatorContext extends ParserRuleContext { - public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUAL_SYMBOL, 0); } - public GREATER_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GREATER_SYMBOL, 0); } - public LESS_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LESS_SYMBOL, 0); } - public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCLAMATION_SYMBOL, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_comparisonOperator; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterComparisonOperator) { - listener.enterComparisonOperator(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitComparisonOperator) { - listener.exitComparisonOperator(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitComparisonOperator) { - return visitor.visitComparisonOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class LogicalOperatorContext extends ParserRuleContext { - public AND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AND, 0); } - public BIT_AND_OP(): TerminalNode[]; - public BIT_AND_OP(i: number): TerminalNode; - public BIT_AND_OP(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.BIT_AND_OP); - } else { - return this.getToken(SqlParser.BIT_AND_OP, i); - } - } - public XOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.XOR, 0); } - public OR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OR, 0); } - public BIT_OR_OP(): TerminalNode[]; - public BIT_OR_OP(i: number): TerminalNode; - public BIT_OR_OP(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.BIT_OR_OP); - } else { - return this.getToken(SqlParser.BIT_OR_OP, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_logicalOperator; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterLogicalOperator) { - listener.enterLogicalOperator(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitLogicalOperator) { - listener.exitLogicalOperator(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitLogicalOperator) { - return visitor.visitLogicalOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class BitOperatorContext extends ParserRuleContext { - public LESS_SYMBOL(): TerminalNode[]; - public LESS_SYMBOL(i: number): TerminalNode; - public LESS_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.LESS_SYMBOL); - } else { - return this.getToken(SqlParser.LESS_SYMBOL, i); - } - } - public GREATER_SYMBOL(): TerminalNode[]; - public GREATER_SYMBOL(i: number): TerminalNode; - public GREATER_SYMBOL(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(SqlParser.GREATER_SYMBOL); - } else { - return this.getToken(SqlParser.GREATER_SYMBOL, i); - } - } - public BIT_AND_OP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_AND_OP, 0); } - public BIT_XOR_OP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_XOR_OP, 0); } - public BIT_OR_OP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_OR_OP, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_bitOperator; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterBitOperator) { - listener.enterBitOperator(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitBitOperator) { - listener.exitBitOperator(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitBitOperator) { - return visitor.visitBitOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class MathOperatorContext extends ParserRuleContext { - public STAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STAR, 0); } - public DIVIDE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DIVIDE, 0); } - public MODULE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MODULE, 0); } - public DIV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DIV, 0); } - public MOD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MOD, 0); } - public PLUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUS, 0); } - public MINUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUS, 0); } - public MINUSMINUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUSMINUS, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_mathOperator; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterMathOperator) { - listener.enterMathOperator(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitMathOperator) { - listener.exitMathOperator(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitMathOperator) { - return visitor.visitMathOperator(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class CharsetNameBaseContext extends ParserRuleContext { - public ARMSCII8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ARMSCII8, 0); } - public ASCII(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASCII, 0); } - public BIG5(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIG5, 0); } - public CP1250(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP1250, 0); } - public CP1251(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP1251, 0); } - public CP1256(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP1256, 0); } - public CP1257(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP1257, 0); } - public CP850(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP850, 0); } - public CP852(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP852, 0); } - public CP866(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP866, 0); } - public CP932(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CP932, 0); } - public DEC8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEC8, 0); } - public EUCJPMS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EUCJPMS, 0); } - public EUCKR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EUCKR, 0); } - public GB2312(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GB2312, 0); } - public GBK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GBK, 0); } - public GEOSTD8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOSTD8, 0); } - public GREEK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GREEK, 0); } - public HEBREW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HEBREW, 0); } - public HP8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HP8, 0); } - public KEYBCS2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEYBCS2, 0); } - public KOI8R(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KOI8R, 0); } - public KOI8U(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KOI8U, 0); } - public LATIN1(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LATIN1, 0); } - public LATIN2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LATIN2, 0); } - public LATIN5(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LATIN5, 0); } - public LATIN7(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LATIN7, 0); } - public MACCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MACCE, 0); } - public MACROMAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MACROMAN, 0); } - public SJIS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SJIS, 0); } - public SWE7(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SWE7, 0); } - public TIS620(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIS620, 0); } - public UCS2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UCS2, 0); } - public UJIS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UJIS, 0); } - public UTF16(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF16, 0); } - public UTF16LE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF16LE, 0); } - public UTF32(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF32, 0); } - public UTF8(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF8, 0); } - public UTF8MB3(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF8MB3, 0); } - public UTF8MB4(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UTF8MB4, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_charsetNameBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterCharsetNameBase) { - listener.enterCharsetNameBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitCharsetNameBase) { - listener.exitCharsetNameBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitCharsetNameBase) { - return visitor.visitCharsetNameBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class TransactionLevelBaseContext extends ParserRuleContext { - public REPEATABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPEATABLE, 0); } - public COMMITTED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMITTED, 0); } - public UNCOMMITTED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNCOMMITTED, 0); } - public SERIALIZABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SERIALIZABLE, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_transactionLevelBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterTransactionLevelBase) { - listener.enterTransactionLevelBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitTransactionLevelBase) { - listener.exitTransactionLevelBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitTransactionLevelBase) { - return visitor.visitTransactionLevelBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class PrivilegesBaseContext extends ParserRuleContext { - public TABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLES, 0); } - public ROUTINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROUTINE, 0); } - public EXECUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXECUTE, 0); } - public FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILE, 0); } - public PROCESS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCESS, 0); } - public RELOAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELOAD, 0); } - public SHUTDOWN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHUTDOWN, 0); } - public SUPER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUPER, 0); } - public PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRIVILEGES, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_privilegesBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterPrivilegesBase) { - listener.enterPrivilegesBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitPrivilegesBase) { - listener.exitPrivilegesBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitPrivilegesBase) { - return visitor.visitPrivilegesBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class IntervalTypeBaseContext extends ParserRuleContext { - public QUARTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUARTER, 0); } - public MONTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MONTH, 0); } - public DAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY, 0); } - public HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOUR, 0); } - public MINUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUTE, 0); } - public WEEK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WEEK, 0); } - public SECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECOND, 0); } - public MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MICROSECOND, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_intervalTypeBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterIntervalTypeBase) { - listener.enterIntervalTypeBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitIntervalTypeBase) { - listener.exitIntervalTypeBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitIntervalTypeBase) { - return visitor.visitIntervalTypeBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class DataTypeBaseContext extends ParserRuleContext { - public DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE, 0); } - public TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME, 0); } - public TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMESTAMP, 0); } - public DATETIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATETIME, 0); } - public YEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEAR, 0); } - public ENUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENUM, 0); } - public TEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEXT, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_dataTypeBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterDataTypeBase) { - listener.enterDataTypeBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitDataTypeBase) { - listener.exitDataTypeBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitDataTypeBase) { - return visitor.visitDataTypeBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class KeywordsCanBeIdContext extends ParserRuleContext { - public ACCOUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ACCOUNT, 0); } - public ACTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ACTION, 0); } - public AFTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AFTER, 0); } - public AGGREGATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AGGREGATE, 0); } - public ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ALGORITHM, 0); } - public ANY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ANY, 0); } - public AT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AT, 0); } - public AUDIT_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUDIT_ADMIN, 0); } - public AUTHORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTHORS, 0); } - public AUTOCOMMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTOCOMMIT, 0); } - public AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTOEXTEND_SIZE, 0); } - public AUTO_INCREMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AUTO_INCREMENT, 0); } - public AVG_ROW_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AVG_ROW_LENGTH, 0); } - public BACKUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BACKUP_ADMIN, 0); } - public BEGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BEGIN, 0); } - public BINLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG, 0); } - public BINLOG_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG_ADMIN, 0); } - public BINLOG_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BINLOG_ENCRYPTION_ADMIN, 0); } - public BIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT, 0); } - public BLOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BLOCK, 0); } - public BOOL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BOOL, 0); } - public BOOLEAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BOOLEAN, 0); } - public BTREE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BTREE, 0); } - public CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CACHE, 0); } - public CASCADED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CASCADED, 0); } - public CHAIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAIN, 0); } - public CHANGED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHANGED, 0); } - public CHANNEL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHANNEL, 0); } - public CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHECKSUM, 0); } - public PAGE_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PAGE_CHECKSUM, 0); } - public CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CATALOG_NAME, 0); } - public CIPHER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CIPHER, 0); } - public CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLASS_ORIGIN, 0); } - public CLIENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLIENT, 0); } - public CLONE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLONE_ADMIN, 0); } - public CLOSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CLOSE, 0); } - public COALESCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COALESCE, 0); } - public CODE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CODE, 0); } - public COLUMNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMNS, 0); } - public COLUMN_FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN_FORMAT, 0); } - public COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLUMN_NAME, 0); } - public COMMENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMENT, 0); } - public COMMIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMMIT, 0); } - public COMPACT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPACT, 0); } - public COMPLETION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPLETION, 0); } - public COMPRESSED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPRESSED, 0); } - public COMPRESSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPRESSION, 0); } - public CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONCURRENT, 0); } - public CONNECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONNECTION, 0); } - public CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONNECTION_ADMIN, 0); } - public CONSISTENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSISTENT, 0); } - public CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_CATALOG, 0); } - public CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_NAME, 0); } - public CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONSTRAINT_SCHEMA, 0); } - public CONTAINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTAINS, 0); } - public CONTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTEXT, 0); } - public CONTRIBUTORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONTRIBUTORS, 0); } - public COPY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COPY, 0); } - public CPU(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CPU, 0); } - public CURRENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURRENT, 0); } - public CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CURSOR_NAME, 0); } - public DATA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATA, 0); } - public DATAFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATAFILE, 0); } - public DEALLOCATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEALLOCATE, 0); } - public DEFAULT_AUTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFAULT_AUTH, 0); } - public DEFINER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEFINER, 0); } - public DELAY_KEY_WRITE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DELAY_KEY_WRITE, 0); } - public DES_KEY_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DES_KEY_FILE, 0); } - public DIAGNOSTICS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DIAGNOSTICS, 0); } - public DIRECTORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DIRECTORY, 0); } - public DISABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISABLE, 0); } - public DISCARD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISCARD, 0); } - public DISK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISK, 0); } - public DO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DO, 0); } - public DUMPFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DUMPFILE, 0); } - public DUPLICATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DUPLICATE, 0); } - public DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DYNAMIC, 0); } - public ENABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENABLE, 0); } - public ENCRYPTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCRYPTION, 0); } - public ENCRYPTION_KEY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCRYPTION_KEY_ADMIN, 0); } - public END(): TerminalNode | undefined { return this.tryGetToken(SqlParser.END, 0); } - public ENDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENDS, 0); } - public ENGINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINE, 0); } - public ENGINES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENGINES, 0); } - public ERROR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ERROR, 0); } - public ERRORS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ERRORS, 0); } - public ESCAPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ESCAPE, 0); } - public EVEN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVEN, 0); } - public EVENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVENT, 0); } - public EVENTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVENTS, 0); } - public EVERY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EVERY, 0); } - public EXCHANGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCHANGE, 0); } - public EXCLUSIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXCLUSIVE, 0); } - public EXPIRE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPIRE, 0); } - public EXPORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPORT, 0); } - public EXTENDED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENDED, 0); } - public EXTENT_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTENT_SIZE, 0); } - public FAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FAST, 0); } - public FAULTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FAULTS, 0); } - public FIELDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIELDS, 0); } - public FILE_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILE_BLOCK_SIZE, 0); } - public FILTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FILTER, 0); } - public FIREWALL_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIREWALL_ADMIN, 0); } - public FIREWALL_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIREWALL_USER, 0); } - public FIRST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIRST, 0); } - public FIXED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIXED, 0); } - public FLUSH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FLUSH, 0); } - public FOLLOWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOLLOWS, 0); } - public FOUND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOUND, 0); } - public FULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FULL, 0); } - public FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FUNCTION, 0); } - public GENERAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GENERAL, 0); } - public GLOBAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLOBAL, 0); } - public GRANTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GRANTS, 0); } - public GROUP_REPLICATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP_REPLICATION, 0); } - public GROUP_REPLICATION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GROUP_REPLICATION_ADMIN, 0); } - public HANDLER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HANDLER, 0); } - public HASH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HASH, 0); } - public HELP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HELP, 0); } - public HOST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOST, 0); } - public HOSTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOSTS, 0); } - public IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IDENTIFIED, 0); } - public IGNORE_SERVER_IDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IGNORE_SERVER_IDS, 0); } - public IMPORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IMPORT, 0); } - public INDEXES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INDEXES, 0); } - public INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INITIAL_SIZE, 0); } - public INNODB_REDO_LOG_ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INNODB_REDO_LOG_ARCHIVE, 0); } - public INPLACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INPLACE, 0); } - public INSERT_METHOD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSERT_METHOD, 0); } - public INSTALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSTALL, 0); } - public INSTANCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSTANCE, 0); } - public INTERNAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTERNAL, 0); } - public INVOKER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVOKER, 0); } - public IO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IO, 0); } - public IO_THREAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IO_THREAD, 0); } - public IPC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IPC, 0); } - public ISOLATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISOLATION, 0); } - public ISSUER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISSUER, 0); } - public JSON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON, 0); } - public KEY_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.KEY_BLOCK_SIZE, 0); } - public LANGUAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LANGUAGE, 0); } - public LAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LAST, 0); } - public LEAVES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEAVES, 0); } - public LESS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LESS, 0); } - public LEVEL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEVEL, 0); } - public LIST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LIST, 0); } - public LOCAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCAL, 0); } - public LOGFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOGFILE, 0); } - public LOGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOGS, 0); } - public MASTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER, 0); } - public MASTER_AUTO_POSITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_AUTO_POSITION, 0); } - public MASTER_CONNECT_RETRY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_CONNECT_RETRY, 0); } - public MASTER_DELAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_DELAY, 0); } - public MASTER_HEARTBEAT_PERIOD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_HEARTBEAT_PERIOD, 0); } - public MASTER_HOST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_HOST, 0); } - public MASTER_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_LOG_FILE, 0); } - public MASTER_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_LOG_POS, 0); } - public MASTER_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_PASSWORD, 0); } - public MASTER_PORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_PORT, 0); } - public MASTER_RETRY_COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_RETRY_COUNT, 0); } - public MASTER_SSL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL, 0); } - public MASTER_SSL_CA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CA, 0); } - public MASTER_SSL_CAPATH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CAPATH, 0); } - public MASTER_SSL_CERT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CERT, 0); } - public MASTER_SSL_CIPHER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CIPHER, 0); } - public MASTER_SSL_CRL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CRL, 0); } - public MASTER_SSL_CRLPATH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_CRLPATH, 0); } - public MASTER_SSL_KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_SSL_KEY, 0); } - public MASTER_TLS_VERSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_TLS_VERSION, 0); } - public MASTER_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_USER, 0); } - public MAX_CONNECTIONS_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_CONNECTIONS_PER_HOUR, 0); } - public MAX_QUERIES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_QUERIES_PER_HOUR, 0); } - public MAX_ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_ROWS, 0); } - public MAX_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_SIZE, 0); } - public MAX_UPDATES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_UPDATES_PER_HOUR, 0); } - public MAX_USER_CONNECTIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAX_USER_CONNECTIONS, 0); } - public MEDIUM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEDIUM, 0); } - public MEMORY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MEMORY, 0); } - public MERGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MERGE, 0); } - public MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MESSAGE_TEXT, 0); } - public MID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MID, 0); } - public MIGRATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MIGRATE, 0); } - public MIN_ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MIN_ROWS, 0); } - public MODE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MODE, 0); } - public MODIFY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MODIFY, 0); } - public MUTEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MUTEX, 0); } - public MYSQL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYSQL, 0); } - public MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MYSQL_ERRNO, 0); } - public NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NAME, 0); } - public NAMES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NAMES, 0); } - public NCHAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NCHAR, 0); } - public NDB_STORED_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NDB_STORED_USER, 0); } - public NEVER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEVER, 0); } - public NEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NEXT, 0); } - public NO(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NO, 0); } - public NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NODEGROUP, 0); } - public NONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NONE, 0); } - public NUMBER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NUMBER, 0); } - public OFFLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFLINE, 0); } - public OFFSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OFFSET, 0); } - public OJ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OJ, 0); } - public OLD_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OLD_PASSWORD, 0); } - public ONE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONE, 0); } - public ONLINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLINE, 0); } - public ONLY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ONLY, 0); } - public OPEN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPEN, 0); } - public OPTIMIZER_COSTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTIMIZER_COSTS, 0); } - public OPTIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OPTIONS, 0); } - public OWNER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OWNER, 0); } - public PACK_KEYS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PACK_KEYS, 0); } - public PAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PAGE, 0); } - public PARSER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARSER, 0); } - public PARTIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTIAL, 0); } - public PARTITIONING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITIONING, 0); } - public PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PARTITIONS, 0); } - public PASSWORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PASSWORD, 0); } - public PERSIST_RO_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PERSIST_RO_VARIABLES_ADMIN, 0); } - public PHASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PHASE, 0); } - public PLUGINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUGINS, 0); } - public PLUGIN_DIR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUGIN_DIR, 0); } - public PLUGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PLUGIN, 0); } - public PORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PORT, 0); } - public PRECEDES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRECEDES, 0); } - public PREPARE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PREPARE, 0); } - public PRESERVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PRESERVE, 0); } - public PREV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PREV, 0); } - public PROCESSLIST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROCESSLIST, 0); } - public PROFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROFILE, 0); } - public PROFILES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROFILES, 0); } - public PROXY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PROXY, 0); } - public QUERY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUERY, 0); } - public QUICK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUICK, 0); } - public REBUILD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REBUILD, 0); } - public RECOVER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RECOVER, 0); } - public REDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REDO_BUFFER_SIZE, 0); } - public REDUNDANT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REDUNDANT, 0); } - public RELAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY, 0); } - public RELAYLOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAYLOG, 0); } - public RELAY_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY_LOG_FILE, 0); } - public RELAY_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELAY_LOG_POS, 0); } - public REMOVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REMOVE, 0); } - public REORGANIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REORGANIZE, 0); } - public REPAIR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPAIR, 0); } - public REPLICATE_DO_DB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_DO_DB, 0); } - public REPLICATE_DO_TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_DO_TABLE, 0); } - public REPLICATE_IGNORE_DB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_IGNORE_DB, 0); } - public REPLICATE_IGNORE_TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_IGNORE_TABLE, 0); } - public REPLICATE_REWRITE_DB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_REWRITE_DB, 0); } - public REPLICATE_WILD_DO_TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_WILD_DO_TABLE, 0); } - public REPLICATE_WILD_IGNORE_TABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATE_WILD_IGNORE_TABLE, 0); } - public REPLICATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION, 0); } - public REPLICATION_APPLIER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION_APPLIER, 0); } - public REPLICATION_SLAVE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REPLICATION_SLAVE_ADMIN, 0); } - public RESET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESET, 0); } - public RESOURCE_GROUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESOURCE_GROUP_ADMIN, 0); } - public RESOURCE_GROUP_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESOURCE_GROUP_USER, 0); } - public RESUME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RESUME, 0); } - public RETURNED_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RETURNED_SQLSTATE, 0); } - public RETURNS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RETURNS, 0); } - public ROLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLE, 0); } - public ROLE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLE_ADMIN, 0); } - public ROLLBACK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLLBACK, 0); } - public ROLLUP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROLLUP, 0); } - public ROTATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROTATE, 0); } - public ROW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROW, 0); } - public ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROWS, 0); } - public ROW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROW_FORMAT, 0); } - public SAVEPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SAVEPOINT, 0); } - public SCHEDULE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEDULE, 0); } - public SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SCHEMA_NAME, 0); } - public SECURITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECURITY, 0); } - public SERIAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SERIAL, 0); } - public SERVER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SERVER, 0); } - public SESSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION, 0); } - public SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION_VARIABLES_ADMIN, 0); } - public SET_USER_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SET_USER_ID, 0); } - public SHARE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHARE, 0); } - public SHARED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHARED, 0); } - public SHOW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHOW_ROUTINE, 0); } - public SIGNED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIGNED, 0); } - public SIMPLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIMPLE, 0); } - public SLAVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLAVE, 0); } - public SLOW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLOW, 0); } - public SNAPSHOT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SNAPSHOT, 0); } - public SOCKET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOCKET, 0); } - public SOME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOME, 0); } - public SONAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SONAME, 0); } - public SOUNDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOUNDS, 0); } - public SOURCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOURCE, 0); } - public SQL_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_AFTER_GTIDS, 0); } - public SQL_AFTER_MTS_GAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_AFTER_MTS_GAPS, 0); } - public SQL_BEFORE_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_BEFORE_GTIDS, 0); } - public SQL_BUFFER_RESULT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_BUFFER_RESULT, 0); } - public SQL_CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_CACHE, 0); } - public SQL_NO_CACHE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_NO_CACHE, 0); } - public SQL_THREAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_THREAD, 0); } - public STACKED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STACKED, 0); } - public START(): TerminalNode | undefined { return this.tryGetToken(SqlParser.START, 0); } - public STARTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STARTS, 0); } - public STATS_AUTO_RECALC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATS_AUTO_RECALC, 0); } - public STATS_PERSISTENT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATS_PERSISTENT, 0); } - public STATS_SAMPLE_PAGES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATS_SAMPLE_PAGES, 0); } - public STATUS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STATUS, 0); } - public STOP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STOP, 0); } - public STORAGE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STORAGE, 0); } - public STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRING, 0); } - public SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBCLASS_ORIGIN, 0); } - public SUBJECT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBJECT, 0); } - public SUBPARTITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBPARTITION, 0); } - public SUBPARTITIONS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBPARTITIONS, 0); } - public SUSPEND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUSPEND, 0); } - public SWAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SWAPS, 0); } - public SWITCHES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SWITCHES, 0); } - public SYSTEM_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SYSTEM_VARIABLES_ADMIN, 0); } - public TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE_NAME, 0); } - public TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLESPACE, 0); } - public TABLE_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TABLE_ENCRYPTION_ADMIN, 0); } - public TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPORARY, 0); } - public TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TEMPTABLE, 0); } - public THAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.THAN, 0); } - public TRADITIONAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRADITIONAL, 0); } - public TRANSACTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRANSACTION, 0); } - public TRANSACTIONAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRANSACTIONAL, 0); } - public TRIGGERS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRIGGERS, 0); } - public TRUNCATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TRUNCATE, 0); } - public UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDEFINED, 0); } - public UNDOFILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDOFILE, 0); } - public UNDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNDO_BUFFER_SIZE, 0); } - public UNINSTALL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNINSTALL, 0); } - public UNKNOWN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNKNOWN, 0); } - public UNTIL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNTIL, 0); } - public UPGRADE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPGRADE, 0); } - public USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USER, 0); } - public USE_FRM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USE_FRM, 0); } - public USER_RESOURCES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.USER_RESOURCES, 0); } - public VALIDATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALIDATION, 0); } - public VALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALUE, 0); } - public VARIABLES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VARIABLES, 0); } - public VERSION_TOKEN_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VERSION_TOKEN_ADMIN, 0); } - public VIEW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VIEW, 0); } - public WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT, 0); } - public WARNINGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WARNINGS, 0); } - public WITHOUT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITHOUT, 0); } - public WORK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WORK, 0); } - public WRAPPER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WRAPPER, 0); } - public X509(): TerminalNode | undefined { return this.tryGetToken(SqlParser.X509, 0); } - public XA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.XA, 0); } - public XA_RECOVER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.XA_RECOVER_ADMIN, 0); } - public XML(): TerminalNode | undefined { return this.tryGetToken(SqlParser.XML, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_keywordsCanBeId; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterKeywordsCanBeId) { - listener.enterKeywordsCanBeId(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitKeywordsCanBeId) { - listener.exitKeywordsCanBeId(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitKeywordsCanBeId) { - return visitor.visitKeywordsCanBeId(this); - } else { - return visitor.visitChildren(this); - } - } -} - - -export class FunctionNameBaseContext extends ParserRuleContext { - public ABS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ABS, 0); } - public ACOS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ACOS, 0); } - public ADDDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ADDDATE, 0); } - public ADDTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ADDTIME, 0); } - public AES_DECRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AES_DECRYPT, 0); } - public AES_ENCRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AES_ENCRYPT, 0); } - public AREA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.AREA, 0); } - public ASBINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASBINARY, 0); } - public ASIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASIN, 0); } - public ASTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASTEXT, 0); } - public ASWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASWKB, 0); } - public ASWKT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASWKT, 0); } - public ASYMMETRIC_DECRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASYMMETRIC_DECRYPT, 0); } - public ASYMMETRIC_DERIVE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASYMMETRIC_DERIVE, 0); } - public ASYMMETRIC_ENCRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASYMMETRIC_ENCRYPT, 0); } - public ASYMMETRIC_SIGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASYMMETRIC_SIGN, 0); } - public ASYMMETRIC_VERIFY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ASYMMETRIC_VERIFY, 0); } - public ATAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ATAN, 0); } - public ATAN2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ATAN2, 0); } - public BENCHMARK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BENCHMARK, 0); } - public BIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIN, 0); } - public BIT_COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_COUNT, 0); } - public BIT_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BIT_LENGTH, 0); } - public BUFFER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.BUFFER, 0); } - public CEIL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CEIL, 0); } - public CEILING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CEILING, 0); } - public CENTROID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CENTROID, 0); } - public CHARACTER_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARACTER_LENGTH, 0); } - public CHARSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHARSET, 0); } - public CHAR_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CHAR_LENGTH, 0); } - public COERCIBILITY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COERCIBILITY, 0); } - public COLLATION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COLLATION, 0); } - public COMPRESS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COMPRESS, 0); } - public CONCAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONCAT, 0); } - public CONCAT_WS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONCAT_WS, 0); } - public CONNECTION_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONNECTION_ID, 0); } - public CONV(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONV, 0); } - public CONVERT_TZ(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CONVERT_TZ, 0); } - public COS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COS, 0); } - public COT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COT, 0); } - public COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.COUNT, 0); } - public CRC32(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CRC32, 0); } - public CREATE_ASYMMETRIC_PRIV_KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CREATE_ASYMMETRIC_PRIV_KEY, 0); } - public CREATE_ASYMMETRIC_PUB_KEY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CREATE_ASYMMETRIC_PUB_KEY, 0); } - public CREATE_DH_PARAMETERS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CREATE_DH_PARAMETERS, 0); } - public CREATE_DIGEST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CREATE_DIGEST, 0); } - public CROSSES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.CROSSES, 0); } - public DATABASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATABASE, 0); } - public DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE, 0); } - public DATEDIFF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATEDIFF, 0); } - public DATE_FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DATE_FORMAT, 0); } - public DAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAY, 0); } - public DAYNAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAYNAME, 0); } - public DAYOFMONTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAYOFMONTH, 0); } - public DAYOFWEEK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAYOFWEEK, 0); } - public DAYOFYEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DAYOFYEAR, 0); } - public DECODE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DECODE, 0); } - public DEGREES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DEGREES, 0); } - public DES_DECRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DES_DECRYPT, 0); } - public DES_ENCRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DES_ENCRYPT, 0); } - public DIMENSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DIMENSION, 0); } - public DISJOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.DISJOINT, 0); } - public ELT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ELT, 0); } - public ENCODE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCODE, 0); } - public ENCRYPT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENCRYPT, 0); } - public ENDPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENDPOINT, 0); } - public ENVELOPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ENVELOPE, 0); } - public EQUALS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EQUALS, 0); } - public EXP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXP, 0); } - public EXPORT_SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXPORT_SET, 0); } - public EXTERIORRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTERIORRING, 0); } - public EXTRACTVALUE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.EXTRACTVALUE, 0); } - public FIELD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIELD, 0); } - public FIND_IN_SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FIND_IN_SET, 0); } - public FLOOR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FLOOR, 0); } - public FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FORMAT, 0); } - public FOUND_ROWS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FOUND_ROWS, 0); } - public FROM_BASE64(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM_BASE64, 0); } - public FROM_DAYS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM_DAYS, 0); } - public FROM_UNIXTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.FROM_UNIXTIME, 0); } - public GEOMCOLLFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMCOLLFROMTEXT, 0); } - public GEOMCOLLFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMCOLLFROMWKB, 0); } - public GEOMETRYCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYCOLLECTION, 0); } - public GEOMETRYCOLLECTIONFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYCOLLECTIONFROMTEXT, 0); } - public GEOMETRYCOLLECTIONFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYCOLLECTIONFROMWKB, 0); } - public GEOMETRYFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYFROMTEXT, 0); } - public GEOMETRYFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYFROMWKB, 0); } - public GEOMETRYN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYN, 0); } - public GEOMETRYTYPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMETRYTYPE, 0); } - public GEOMFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMFROMTEXT, 0); } - public GEOMFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GEOMFROMWKB, 0); } - public GET_FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GET_FORMAT, 0); } - public GET_LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GET_LOCK, 0); } - public GLENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GLENGTH, 0); } - public GREATEST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GREATEST, 0); } - public GTID_SUBSET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GTID_SUBSET, 0); } - public GTID_SUBTRACT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.GTID_SUBTRACT, 0); } - public HEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HEX, 0); } - public HOUR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.HOUR, 0); } - public IFNULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IFNULL, 0); } - public INET6_ATON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INET6_ATON, 0); } - public INET6_NTOA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INET6_NTOA, 0); } - public INET_ATON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INET_ATON, 0); } - public INET_NTOA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INET_NTOA, 0); } - public INSTR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INSTR, 0); } - public INTERIORRINGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTERIORRINGN, 0); } - public INTERSECTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INTERSECTS, 0); } - public INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.INVISIBLE, 0); } - public ISCLOSED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISCLOSED, 0); } - public ISEMPTY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISEMPTY, 0); } - public ISNULL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISNULL, 0); } - public ISSIMPLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ISSIMPLE, 0); } - public IS_FREE_LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_FREE_LOCK, 0); } - public IS_IPV4(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_IPV4, 0); } - public IS_IPV4_COMPAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_IPV4_COMPAT, 0); } - public IS_IPV4_MAPPED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_IPV4_MAPPED, 0); } - public IS_IPV6(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_IPV6, 0); } - public IS_USED_LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.IS_USED_LOCK, 0); } - public LAST_INSERT_ID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LAST_INSERT_ID, 0); } - public LCASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LCASE, 0); } - public LEAST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEAST, 0); } - public LEFT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LEFT, 0); } - public LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LENGTH, 0); } - public LINEFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEFROMTEXT, 0); } - public LINEFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINEFROMWKB, 0); } - public LINESTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINESTRING, 0); } - public LINESTRINGFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINESTRINGFROMTEXT, 0); } - public LINESTRINGFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LINESTRINGFROMWKB, 0); } - public LN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LN, 0); } - public LOAD_FILE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOAD_FILE, 0); } - public LOCATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOCATE, 0); } - public LOG(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOG, 0); } - public LOG10(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOG10, 0); } - public LOG2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOG2, 0); } - public LOWER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LOWER, 0); } - public LPAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LPAD, 0); } - public LTRIM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.LTRIM, 0); } - public MAKEDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAKEDATE, 0); } - public MAKETIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAKETIME, 0); } - public MAKE_SET(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MAKE_SET, 0); } - public MASTER_POS_WAIT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MASTER_POS_WAIT, 0); } - public MBRCONTAINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBRCONTAINS, 0); } - public MBRDISJOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBRDISJOINT, 0); } - public MBREQUAL(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBREQUAL, 0); } - public MBRINTERSECTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBRINTERSECTS, 0); } - public MBROVERLAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBROVERLAPS, 0); } - public MBRTOUCHES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBRTOUCHES, 0); } - public MBRWITHIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MBRWITHIN, 0); } - public MD5(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MD5, 0); } - public MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MICROSECOND, 0); } - public MINUTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MINUTE, 0); } - public MLINEFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MLINEFROMTEXT, 0); } - public MLINEFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MLINEFROMWKB, 0); } - public MONTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MONTH, 0); } - public MONTHNAME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MONTHNAME, 0); } - public MPOINTFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MPOINTFROMTEXT, 0); } - public MPOINTFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MPOINTFROMWKB, 0); } - public MPOLYFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MPOLYFROMTEXT, 0); } - public MPOLYFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MPOLYFROMWKB, 0); } - public MULTILINESTRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTILINESTRING, 0); } - public MULTILINESTRINGFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTILINESTRINGFROMTEXT, 0); } - public MULTILINESTRINGFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTILINESTRINGFROMWKB, 0); } - public MULTIPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOINT, 0); } - public MULTIPOINTFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOINTFROMTEXT, 0); } - public MULTIPOINTFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOINTFROMWKB, 0); } - public MULTIPOLYGON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOLYGON, 0); } - public MULTIPOLYGONFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOLYGONFROMTEXT, 0); } - public MULTIPOLYGONFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.MULTIPOLYGONFROMWKB, 0); } - public NAME_CONST(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NAME_CONST, 0); } - public NULLIF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NULLIF, 0); } - public NUMGEOMETRIES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NUMGEOMETRIES, 0); } - public NUMINTERIORRINGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NUMINTERIORRINGS, 0); } - public NUMPOINTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.NUMPOINTS, 0); } - public OCT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OCT, 0); } - public OCTET_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OCTET_LENGTH, 0); } - public ORD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ORD, 0); } - public OVERLAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.OVERLAPS, 0); } - public PERIOD_ADD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PERIOD_ADD, 0); } - public PERIOD_DIFF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PERIOD_DIFF, 0); } - public PI(): TerminalNode | undefined { return this.tryGetToken(SqlParser.PI, 0); } - public POINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POINT, 0); } - public POINTFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POINTFROMTEXT, 0); } - public POINTFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POINTFROMWKB, 0); } - public POINTN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POINTN, 0); } - public POLYFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYFROMTEXT, 0); } - public POLYFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYFROMWKB, 0); } - public POLYGON(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYGON, 0); } - public POLYGONFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYGONFROMTEXT, 0); } - public POLYGONFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POLYGONFROMWKB, 0); } - public POSITION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POSITION, 0); } - public POW(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POW, 0); } - public POWER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.POWER, 0); } - public QUARTER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUARTER, 0); } - public QUOTE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.QUOTE, 0); } - public RADIANS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RADIANS, 0); } - public RAND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RAND, 0); } - public RANDOM_BYTES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RANDOM_BYTES, 0); } - public RELEASE_LOCK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RELEASE_LOCK, 0); } - public REVERSE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.REVERSE, 0); } - public RIGHT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RIGHT, 0); } - public ROUND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROUND, 0); } - public ROW_COUNT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ROW_COUNT, 0); } - public RPAD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RPAD, 0); } - public RTRIM(): TerminalNode | undefined { return this.tryGetToken(SqlParser.RTRIM, 0); } - public SECOND(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SECOND, 0); } - public SEC_TO_TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SEC_TO_TIME, 0); } - public SESSION_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION_USER, 0); } - public SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SESSION_VARIABLES_ADMIN, 0); } - public SHA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHA, 0); } - public SHA1(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHA1, 0); } - public SHA2(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SHA2, 0); } - public SIGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIGN, 0); } - public SIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SIN, 0); } - public SLEEP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SLEEP, 0); } - public SOUNDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SOUNDEX, 0); } - public SQL_THREAD_WAIT_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQL_THREAD_WAIT_AFTER_GTIDS, 0); } - public SQRT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SQRT, 0); } - public SRID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SRID, 0); } - public STARTPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STARTPOINT, 0); } - public STRCMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STRCMP, 0); } - public STR_TO_DATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.STR_TO_DATE, 0); } - public ST_AREA(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_AREA, 0); } - public ST_ASBINARY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ASBINARY, 0); } - public ST_ASTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ASTEXT, 0); } - public ST_ASWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ASWKB, 0); } - public ST_ASWKT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ASWKT, 0); } - public ST_BUFFER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_BUFFER, 0); } - public ST_CENTROID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_CENTROID, 0); } - public ST_CONTAINS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_CONTAINS, 0); } - public ST_CROSSES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_CROSSES, 0); } - public ST_DIFFERENCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_DIFFERENCE, 0); } - public ST_DIMENSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_DIMENSION, 0); } - public ST_DISJOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_DISJOINT, 0); } - public ST_DISTANCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_DISTANCE, 0); } - public ST_ENDPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ENDPOINT, 0); } - public ST_ENVELOPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ENVELOPE, 0); } - public ST_EQUALS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_EQUALS, 0); } - public ST_EXTERIORRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_EXTERIORRING, 0); } - public ST_GEOMCOLLFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMCOLLFROMTEXT, 0); } - public ST_GEOMCOLLFROMTXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMCOLLFROMTXT, 0); } - public ST_GEOMCOLLFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMCOLLFROMWKB, 0); } - public ST_GEOMETRYCOLLECTIONFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYCOLLECTIONFROMTEXT, 0); } - public ST_GEOMETRYCOLLECTIONFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYCOLLECTIONFROMWKB, 0); } - public ST_GEOMETRYFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYFROMTEXT, 0); } - public ST_GEOMETRYFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYFROMWKB, 0); } - public ST_GEOMETRYN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYN, 0); } - public ST_GEOMETRYTYPE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMETRYTYPE, 0); } - public ST_GEOMFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMFROMTEXT, 0); } - public ST_GEOMFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_GEOMFROMWKB, 0); } - public ST_INTERIORRINGN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_INTERIORRINGN, 0); } - public ST_INTERSECTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_INTERSECTION, 0); } - public ST_INTERSECTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_INTERSECTS, 0); } - public ST_ISCLOSED(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ISCLOSED, 0); } - public ST_ISEMPTY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ISEMPTY, 0); } - public ST_ISSIMPLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_ISSIMPLE, 0); } - public ST_LINEFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_LINEFROMTEXT, 0); } - public ST_LINEFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_LINEFROMWKB, 0); } - public ST_LINESTRINGFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_LINESTRINGFROMTEXT, 0); } - public ST_LINESTRINGFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_LINESTRINGFROMWKB, 0); } - public ST_NUMGEOMETRIES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_NUMGEOMETRIES, 0); } - public ST_NUMINTERIORRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_NUMINTERIORRING, 0); } - public ST_NUMINTERIORRINGS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_NUMINTERIORRINGS, 0); } - public ST_NUMPOINTS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_NUMPOINTS, 0); } - public ST_OVERLAPS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_OVERLAPS, 0); } - public ST_POINTFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POINTFROMTEXT, 0); } - public ST_POINTFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POINTFROMWKB, 0); } - public ST_POINTN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POINTN, 0); } - public ST_POLYFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POLYFROMTEXT, 0); } - public ST_POLYFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POLYFROMWKB, 0); } - public ST_POLYGONFROMTEXT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POLYGONFROMTEXT, 0); } - public ST_POLYGONFROMWKB(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_POLYGONFROMWKB, 0); } - public ST_SRID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_SRID, 0); } - public ST_STARTPOINT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_STARTPOINT, 0); } - public ST_SYMDIFFERENCE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_SYMDIFFERENCE, 0); } - public ST_TOUCHES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_TOUCHES, 0); } - public ST_UNION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_UNION, 0); } - public ST_WITHIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_WITHIN, 0); } - public ST_X(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_X, 0); } - public ST_Y(): TerminalNode | undefined { return this.tryGetToken(SqlParser.ST_Y, 0); } - public SUBDATE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBDATE, 0); } - public SUBSTRING_INDEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBSTRING_INDEX, 0); } - public SUBTIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SUBTIME, 0); } - public SYSTEM_USER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.SYSTEM_USER, 0); } - public TAN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TAN, 0); } - public TIME(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME, 0); } - public TIMEDIFF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMEDIFF, 0); } - public TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMESTAMP, 0); } - public TIMESTAMPADD(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMESTAMPADD, 0); } - public TIMESTAMPDIFF(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIMESTAMPDIFF, 0); } - public TIME_FORMAT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME_FORMAT, 0); } - public TIME_TO_SEC(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TIME_TO_SEC, 0); } - public TOUCHES(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TOUCHES, 0); } - public TO_BASE64(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO_BASE64, 0); } - public TO_DAYS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO_DAYS, 0); } - public TO_SECONDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.TO_SECONDS, 0); } - public UCASE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UCASE, 0); } - public UNCOMPRESS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNCOMPRESS, 0); } - public UNCOMPRESSED_LENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNCOMPRESSED_LENGTH, 0); } - public UNHEX(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNHEX, 0); } - public UNIX_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UNIX_TIMESTAMP, 0); } - public UPDATEXML(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPDATEXML, 0); } - public UPPER(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UPPER, 0); } - public UUID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UUID, 0); } - public UUID_SHORT(): TerminalNode | undefined { return this.tryGetToken(SqlParser.UUID_SHORT, 0); } - public VALIDATE_PASSWORD_STRENGTH(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VALIDATE_PASSWORD_STRENGTH, 0); } - public VERSION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VERSION, 0); } - public VISIBLE(): TerminalNode | undefined { return this.tryGetToken(SqlParser.VISIBLE, 0); } - public WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS, 0); } - public WEEK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WEEK, 0); } - public WEEKDAY(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WEEKDAY, 0); } - public WEEKOFYEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WEEKOFYEAR, 0); } - public WEIGHT_STRING(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WEIGHT_STRING, 0); } - public WITHIN(): TerminalNode | undefined { return this.tryGetToken(SqlParser.WITHIN, 0); } - public YEAR(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEAR, 0); } - public YEARWEEK(): TerminalNode | undefined { return this.tryGetToken(SqlParser.YEARWEEK, 0); } - public Y_FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.Y_FUNCTION, 0); } - public X_FUNCTION(): TerminalNode | undefined { return this.tryGetToken(SqlParser.X_FUNCTION, 0); } - public JSON_VALID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON_VALID, 0); } - public JSON_SCHEMA_VALID(): TerminalNode | undefined { return this.tryGetToken(SqlParser.JSON_SCHEMA_VALID, 0); } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return SqlParser.RULE_functionNameBase; } - // @Override - public enterRule(listener: SqlParserListener): void { - if (listener.enterFunctionNameBase) { - listener.enterFunctionNameBase(this); - } - } - // @Override - public exitRule(listener: SqlParserListener): void { - if (listener.exitFunctionNameBase) { - listener.exitFunctionNameBase(this); - } - } - // @Override - public accept(visitor: SqlParserVisitor): Result { - if (visitor.visitFunctionNameBase) { - return visitor.visitFunctionNameBase(this); - } else { - return visitor.visitChildren(this); - } - } -} - - diff --git a/src/lib/generic/SqlParserListener.ts b/src/lib/generic/SqlParserListener.ts deleted file mode 100644 index b30dc08..0000000 --- a/src/lib/generic/SqlParserListener.ts +++ /dev/null @@ -1,7613 +0,0 @@ -// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/generic/SqlParser.g4 by ANTLR 4.9.0-SNAPSHOT - - -import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; - -import { HandlerConditionCodeContext } from "./SqlParser"; -import { HandlerConditionStateContext } from "./SqlParser"; -import { HandlerConditionNameContext } from "./SqlParser"; -import { HandlerConditionWarningContext } from "./SqlParser"; -import { HandlerConditionNotfoundContext } from "./SqlParser"; -import { HandlerConditionExceptionContext } from "./SqlParser"; -import { LevelWeightListContext } from "./SqlParser"; -import { LevelWeightRangeContext } from "./SqlParser"; -import { InPredicateContext } from "./SqlParser"; -import { IsNullPredicateContext } from "./SqlParser"; -import { BinaryComparasionPredicateContext } from "./SqlParser"; -import { SubqueryComparasionPredicateContext } from "./SqlParser"; -import { BetweenPredicateContext } from "./SqlParser"; -import { SoundsLikePredicateContext } from "./SqlParser"; -import { LikePredicateContext } from "./SqlParser"; -import { RegexpPredicateContext } from "./SqlParser"; -import { ExpressionAtomPredicateContext } from "./SqlParser"; -import { SimpleIndexDeclarationContext } from "./SqlParser"; -import { SpecialIndexDeclarationContext } from "./SqlParser"; -import { UserConnectionOptionContext } from "./SqlParser"; -import { PasswordConnectionOptionContext } from "./SqlParser"; -import { DefaultAuthConnectionOptionContext } from "./SqlParser"; -import { PluginDirConnectionOptionContext } from "./SqlParser"; -import { PartitionOptionEngineContext } from "./SqlParser"; -import { PartitionOptionCommentContext } from "./SqlParser"; -import { PartitionOptionDataDirectoryContext } from "./SqlParser"; -import { PartitionOptionIndexDirectoryContext } from "./SqlParser"; -import { PartitionOptionMaxRowsContext } from "./SqlParser"; -import { PartitionOptionMinRowsContext } from "./SqlParser"; -import { PartitionOptionTablespaceContext } from "./SqlParser"; -import { PartitionOptionNodeGroupContext } from "./SqlParser"; -import { SimpleFunctionCallContext } from "./SqlParser"; -import { DataTypeFunctionCallContext } from "./SqlParser"; -import { ValuesFunctionCallContext } from "./SqlParser"; -import { CaseFunctionCallContext } from "./SqlParser"; -import { CharFunctionCallContext } from "./SqlParser"; -import { PositionFunctionCallContext } from "./SqlParser"; -import { SubstrFunctionCallContext } from "./SqlParser"; -import { TrimFunctionCallContext } from "./SqlParser"; -import { WeightFunctionCallContext } from "./SqlParser"; -import { ExtractFunctionCallContext } from "./SqlParser"; -import { GetFormatFunctionCallContext } from "./SqlParser"; -import { DoDbReplicationContext } from "./SqlParser"; -import { IgnoreDbReplicationContext } from "./SqlParser"; -import { DoTableReplicationContext } from "./SqlParser"; -import { IgnoreTableReplicationContext } from "./SqlParser"; -import { WildDoTableReplicationContext } from "./SqlParser"; -import { WildIgnoreTableReplicationContext } from "./SqlParser"; -import { RewriteDbReplicationContext } from "./SqlParser"; -import { InnerJoinContext } from "./SqlParser"; -import { StraightJoinContext } from "./SqlParser"; -import { OuterJoinContext } from "./SqlParser"; -import { NaturalJoinContext } from "./SqlParser"; -import { SetVariableContext } from "./SqlParser"; -import { SetCharsetContext } from "./SqlParser"; -import { SetNamesContext } from "./SqlParser"; -import { SetPasswordContext } from "./SqlParser"; -import { SetTransactionContext } from "./SqlParser"; -import { SetAutocommitContext } from "./SqlParser"; -import { SetNewValueInsideTriggerContext } from "./SqlParser"; -import { SelectStarElementContext } from "./SqlParser"; -import { SelectColumnElementContext } from "./SqlParser"; -import { SelectFunctionElementContext } from "./SqlParser"; -import { SelectExpressionElementContext } from "./SqlParser"; -import { NotExpressionContext } from "./SqlParser"; -import { LogicalExpressionContext } from "./SqlParser"; -import { IsExpressionContext } from "./SqlParser"; -import { PredicateExpressionContext } from "./SqlParser"; -import { AtomTableItemContext } from "./SqlParser"; -import { SubqueryTableItemContext } from "./SqlParser"; -import { TableSourcesItemContext } from "./SqlParser"; -import { SelectIntoVariablesContext } from "./SqlParser"; -import { SelectIntoDumpFileContext } from "./SqlParser"; -import { SelectIntoTextFileContext } from "./SqlParser"; -import { AlterByTableOptionContext } from "./SqlParser"; -import { AlterByAddColumnContext } from "./SqlParser"; -import { AlterByAddColumnsContext } from "./SqlParser"; -import { AlterByAddIndexContext } from "./SqlParser"; -import { AlterByAddPrimaryKeyContext } from "./SqlParser"; -import { AlterByAddUniqueKeyContext } from "./SqlParser"; -import { AlterByAddSpecialIndexContext } from "./SqlParser"; -import { AlterByAddForeignKeyContext } from "./SqlParser"; -import { AlterByAddCheckTableConstraintContext } from "./SqlParser"; -import { AlterBySetAlgorithmContext } from "./SqlParser"; -import { AlterByChangeDefaultContext } from "./SqlParser"; -import { AlterByChangeColumnContext } from "./SqlParser"; -import { AlterByRenameColumnContext } from "./SqlParser"; -import { AlterByLockContext } from "./SqlParser"; -import { AlterByModifyColumnContext } from "./SqlParser"; -import { AlterByDropColumnContext } from "./SqlParser"; -import { AlterByDropPrimaryKeyContext } from "./SqlParser"; -import { AlterByRenameIndexContext } from "./SqlParser"; -import { AlterByAlterIndexVisibilityContext } from "./SqlParser"; -import { AlterByDropIndexContext } from "./SqlParser"; -import { AlterByDropForeignKeyContext } from "./SqlParser"; -import { AlterByDisableKeysContext } from "./SqlParser"; -import { AlterByEnableKeysContext } from "./SqlParser"; -import { AlterByRenameContext } from "./SqlParser"; -import { AlterByOrderContext } from "./SqlParser"; -import { AlterByConvertCharsetContext } from "./SqlParser"; -import { AlterByDefaultCharsetContext } from "./SqlParser"; -import { AlterByDiscardTablespaceContext } from "./SqlParser"; -import { AlterByImportTablespaceContext } from "./SqlParser"; -import { AlterByForceContext } from "./SqlParser"; -import { AlterByValidateContext } from "./SqlParser"; -import { AlterByAddPartitionContext } from "./SqlParser"; -import { AlterByDropPartitionContext } from "./SqlParser"; -import { AlterByDiscardPartitionContext } from "./SqlParser"; -import { AlterByImportPartitionContext } from "./SqlParser"; -import { AlterByTruncatePartitionContext } from "./SqlParser"; -import { AlterByCoalescePartitionContext } from "./SqlParser"; -import { AlterByReorganizePartitionContext } from "./SqlParser"; -import { AlterByExchangePartitionContext } from "./SqlParser"; -import { AlterByAnalyzePartitionContext } from "./SqlParser"; -import { AlterByCheckPartitionContext } from "./SqlParser"; -import { AlterByOptimizePartitionContext } from "./SqlParser"; -import { AlterByRebuildPartitionContext } from "./SqlParser"; -import { AlterByRepairPartitionContext } from "./SqlParser"; -import { AlterByRemovePartitioningContext } from "./SqlParser"; -import { AlterByUpgradePartitioningContext } from "./SqlParser"; -import { SimpleSelectContext } from "./SqlParser"; -import { ParenthesisSelectContext } from "./SqlParser"; -import { UnionSelectContext } from "./SqlParser"; -import { UnionParenthesisSelectContext } from "./SqlParser"; -import { StringDataTypeContext } from "./SqlParser"; -import { NationalStringDataTypeContext } from "./SqlParser"; -import { NationalVaryingStringDataTypeContext } from "./SqlParser"; -import { DimensionDataTypeContext } from "./SqlParser"; -import { SimpleDataTypeContext } from "./SqlParser"; -import { CollectionDataTypeContext } from "./SqlParser"; -import { SpatialDataTypeContext } from "./SqlParser"; -import { LongVarcharDataTypeContext } from "./SqlParser"; -import { LongVarbinaryDataTypeContext } from "./SqlParser"; -import { PartitionComparisionContext } from "./SqlParser"; -import { PartitionListAtomContext } from "./SqlParser"; -import { PartitionListVectorContext } from "./SqlParser"; -import { PartitionSimpleContext } from "./SqlParser"; -import { NullColumnConstraintContext } from "./SqlParser"; -import { DefaultColumnConstraintContext } from "./SqlParser"; -import { AutoIncrementColumnConstraintContext } from "./SqlParser"; -import { PrimaryKeyColumnConstraintContext } from "./SqlParser"; -import { UniqueKeyColumnConstraintContext } from "./SqlParser"; -import { CommentColumnConstraintContext } from "./SqlParser"; -import { FormatColumnConstraintContext } from "./SqlParser"; -import { StorageColumnConstraintContext } from "./SqlParser"; -import { ReferenceColumnConstraintContext } from "./SqlParser"; -import { CollateColumnConstraintContext } from "./SqlParser"; -import { GeneratedColumnConstraintContext } from "./SqlParser"; -import { SerialDefaultColumnConstraintContext } from "./SqlParser"; -import { CheckColumnConstraintContext } from "./SqlParser"; -import { SubPartitionFunctionHashContext } from "./SqlParser"; -import { SubPartitionFunctionKeyContext } from "./SqlParser"; -import { PasswordAuthOptionContext } from "./SqlParser"; -import { StringAuthOptionContext } from "./SqlParser"; -import { HashAuthOptionContext } from "./SqlParser"; -import { SimpleAuthOptionContext } from "./SqlParser"; -import { SimpleFlushOptionContext } from "./SqlParser"; -import { ChannelFlushOptionContext } from "./SqlParser"; -import { TableFlushOptionContext } from "./SqlParser"; -import { CloseCursorContext } from "./SqlParser"; -import { FetchCursorContext } from "./SqlParser"; -import { OpenCursorContext } from "./SqlParser"; -import { TableSourceBaseContext } from "./SqlParser"; -import { TableSourceNestedContext } from "./SqlParser"; -import { PreciseScheduleContext } from "./SqlParser"; -import { IntervalScheduleContext } from "./SqlParser"; -import { PrimaryKeyTableConstraintContext } from "./SqlParser"; -import { UniqueKeyTableConstraintContext } from "./SqlParser"; -import { ForeignKeyTableConstraintContext } from "./SqlParser"; -import { CheckTableConstraintContext } from "./SqlParser"; -import { AlterUserMysqlV56Context } from "./SqlParser"; -import { AlterUserMysqlV57Context } from "./SqlParser"; -import { DescribeStatementsContext } from "./SqlParser"; -import { DescribeConnectionContext } from "./SqlParser"; -import { ColumnDeclarationContext } from "./SqlParser"; -import { ConstraintDeclarationContext } from "./SqlParser"; -import { IndexDeclarationContext } from "./SqlParser"; -import { SpecificFunctionCallContext } from "./SqlParser"; -import { AggregateFunctionCallContext } from "./SqlParser"; -import { ScalarFunctionCallContext } from "./SqlParser"; -import { UdfFunctionCallContext } from "./SqlParser"; -import { PasswordFunctionCallContext } from "./SqlParser"; -import { TableOptionEngineContext } from "./SqlParser"; -import { TableOptionAutoIncrementContext } from "./SqlParser"; -import { TableOptionAverageContext } from "./SqlParser"; -import { TableOptionCharsetContext } from "./SqlParser"; -import { TableOptionChecksumContext } from "./SqlParser"; -import { TableOptionCollateContext } from "./SqlParser"; -import { TableOptionCommentContext } from "./SqlParser"; -import { TableOptionCompressionContext } from "./SqlParser"; -import { TableOptionConnectionContext } from "./SqlParser"; -import { TableOptionDataDirectoryContext } from "./SqlParser"; -import { TableOptionDelayContext } from "./SqlParser"; -import { TableOptionEncryptionContext } from "./SqlParser"; -import { TableOptionIndexDirectoryContext } from "./SqlParser"; -import { TableOptionInsertMethodContext } from "./SqlParser"; -import { TableOptionKeyBlockSizeContext } from "./SqlParser"; -import { TableOptionMaxRowsContext } from "./SqlParser"; -import { TableOptionMinRowsContext } from "./SqlParser"; -import { TableOptionPackKeysContext } from "./SqlParser"; -import { TableOptionPasswordContext } from "./SqlParser"; -import { TableOptionRowFormatContext } from "./SqlParser"; -import { TableOptionRecalculationContext } from "./SqlParser"; -import { TableOptionPersistentContext } from "./SqlParser"; -import { TableOptionSamplePageContext } from "./SqlParser"; -import { TableOptionTablespaceContext } from "./SqlParser"; -import { TableOptionUnionContext } from "./SqlParser"; -import { ConstantExpressionAtomContext } from "./SqlParser"; -import { FullColumnNameExpressionAtomContext } from "./SqlParser"; -import { FunctionCallExpressionAtomContext } from "./SqlParser"; -import { CollateExpressionAtomContext } from "./SqlParser"; -import { MysqlVariableExpressionAtomContext } from "./SqlParser"; -import { UnaryExpressionAtomContext } from "./SqlParser"; -import { BinaryExpressionAtomContext } from "./SqlParser"; -import { NestedExpressionAtomContext } from "./SqlParser"; -import { NestedRowExpressionAtomContext } from "./SqlParser"; -import { ExistsExpessionAtomContext } from "./SqlParser"; -import { SubqueryExpessionAtomContext } from "./SqlParser"; -import { IntervalExpressionAtomContext } from "./SqlParser"; -import { BitExpressionAtomContext } from "./SqlParser"; -import { MathExpressionAtomContext } from "./SqlParser"; -import { RoutineCommentContext } from "./SqlParser"; -import { RoutineLanguageContext } from "./SqlParser"; -import { RoutineBehaviorContext } from "./SqlParser"; -import { RoutineDataContext } from "./SqlParser"; -import { RoutineSecurityContext } from "./SqlParser"; -import { CreateUserMysqlV56Context } from "./SqlParser"; -import { CreateUserMysqlV57Context } from "./SqlParser"; -import { CurrentSchemaPriviLevelContext } from "./SqlParser"; -import { GlobalPrivLevelContext } from "./SqlParser"; -import { DefiniteSchemaPrivLevelContext } from "./SqlParser"; -import { DefiniteFullTablePrivLevelContext } from "./SqlParser"; -import { DefiniteFullTablePrivLevel2Context } from "./SqlParser"; -import { DefiniteTablePrivLevelContext } from "./SqlParser"; -import { ShowMasterLogsContext } from "./SqlParser"; -import { ShowLogEventsContext } from "./SqlParser"; -import { ShowObjectFilterContext } from "./SqlParser"; -import { ShowColumnsContext } from "./SqlParser"; -import { ShowCreateDbContext } from "./SqlParser"; -import { ShowCreateFullIdObjectContext } from "./SqlParser"; -import { ShowCreateUserContext } from "./SqlParser"; -import { ShowEngineContext } from "./SqlParser"; -import { ShowGlobalInfoContext } from "./SqlParser"; -import { ShowErrorsContext } from "./SqlParser"; -import { ShowCountErrorsContext } from "./SqlParser"; -import { ShowSchemaFilterContext } from "./SqlParser"; -import { ShowRoutineContext } from "./SqlParser"; -import { ShowGrantsContext } from "./SqlParser"; -import { ShowIndexesContext } from "./SqlParser"; -import { ShowOpenTablesContext } from "./SqlParser"; -import { ShowProfileContext } from "./SqlParser"; -import { ShowSlaveStatusContext } from "./SqlParser"; -import { AlterSimpleDatabaseContext } from "./SqlParser"; -import { AlterUpgradeNameContext } from "./SqlParser"; -import { MasterStringOptionContext } from "./SqlParser"; -import { MasterDecimalOptionContext } from "./SqlParser"; -import { MasterBoolOptionContext } from "./SqlParser"; -import { MasterRealOptionContext } from "./SqlParser"; -import { MasterUidListOptionContext } from "./SqlParser"; -import { GtidsUntilOptionContext } from "./SqlParser"; -import { MasterLogUntilOptionContext } from "./SqlParser"; -import { RelayLogUntilOptionContext } from "./SqlParser"; -import { SqlGapsUntilOptionContext } from "./SqlParser"; -import { CopyCreateTableContext } from "./SqlParser"; -import { QueryCreateTableContext } from "./SqlParser"; -import { ColumnCreateTableContext } from "./SqlParser"; -import { PartitionFunctionHashContext } from "./SqlParser"; -import { PartitionFunctionKeyContext } from "./SqlParser"; -import { PartitionFunctionRangeContext } from "./SqlParser"; -import { PartitionFunctionListContext } from "./SqlParser"; -import { DetailRevokeContext } from "./SqlParser"; -import { ShortRevokeContext } from "./SqlParser"; -import { ProgramContext } from "./SqlParser"; -import { StatementContext } from "./SqlParser"; -import { SqlStatementsContext } from "./SqlParser"; -import { SqlStatementContext } from "./SqlParser"; -import { EmptyStatementContext } from "./SqlParser"; -import { DdlStatementContext } from "./SqlParser"; -import { DmlStatementContext } from "./SqlParser"; -import { TransactionStatementContext } from "./SqlParser"; -import { ReplicationStatementContext } from "./SqlParser"; -import { PreparedStatementContext } from "./SqlParser"; -import { CompoundStatementContext } from "./SqlParser"; -import { AdministrationStatementContext } from "./SqlParser"; -import { UtilityStatementContext } from "./SqlParser"; -import { CreateDatabaseContext } from "./SqlParser"; -import { CreateEventContext } from "./SqlParser"; -import { CreateIndexContext } from "./SqlParser"; -import { CreateLogfileGroupContext } from "./SqlParser"; -import { CreateProcedureContext } from "./SqlParser"; -import { CreateFunctionContext } from "./SqlParser"; -import { CreateServerContext } from "./SqlParser"; -import { CreateTableContext } from "./SqlParser"; -import { CreateTablespaceInnodbContext } from "./SqlParser"; -import { CreateTablespaceNdbContext } from "./SqlParser"; -import { CreateTriggerContext } from "./SqlParser"; -import { CreateViewContext } from "./SqlParser"; -import { CreateDatabaseOptionContext } from "./SqlParser"; -import { OwnerStatementContext } from "./SqlParser"; -import { ScheduleExpressionContext } from "./SqlParser"; -import { TimestampValueContext } from "./SqlParser"; -import { IntervalExprContext } from "./SqlParser"; -import { IntervalTypeContext } from "./SqlParser"; -import { EnableTypeContext } from "./SqlParser"; -import { IndexTypeContext } from "./SqlParser"; -import { IndexOptionContext } from "./SqlParser"; -import { ProcedureParameterContext } from "./SqlParser"; -import { FunctionParameterContext } from "./SqlParser"; -import { RoutineOptionContext } from "./SqlParser"; -import { ServerOptionContext } from "./SqlParser"; -import { CreateDefinitionsContext } from "./SqlParser"; -import { CreateDefinitionContext } from "./SqlParser"; -import { ColumnDefinitionContext } from "./SqlParser"; -import { ColumnConstraintContext } from "./SqlParser"; -import { TableConstraintContext } from "./SqlParser"; -import { ReferenceDefinitionContext } from "./SqlParser"; -import { ReferenceActionContext } from "./SqlParser"; -import { ReferenceControlTypeContext } from "./SqlParser"; -import { IndexColumnDefinitionContext } from "./SqlParser"; -import { TableOptionContext } from "./SqlParser"; -import { TablespaceStorageContext } from "./SqlParser"; -import { PartitionDefinitionsContext } from "./SqlParser"; -import { PartitionFunctionDefinitionContext } from "./SqlParser"; -import { SubpartitionFunctionDefinitionContext } from "./SqlParser"; -import { PartitionDefinitionContext } from "./SqlParser"; -import { PartitionDefinerAtomContext } from "./SqlParser"; -import { PartitionDefinerVectorContext } from "./SqlParser"; -import { SubpartitionDefinitionContext } from "./SqlParser"; -import { PartitionOptionContext } from "./SqlParser"; -import { AlterDatabaseContext } from "./SqlParser"; -import { AlterEventContext } from "./SqlParser"; -import { AlterFunctionContext } from "./SqlParser"; -import { AlterInstanceContext } from "./SqlParser"; -import { AlterLogfileGroupContext } from "./SqlParser"; -import { AlterProcedureContext } from "./SqlParser"; -import { AlterServerContext } from "./SqlParser"; -import { AlterTableContext } from "./SqlParser"; -import { AlterTablespaceContext } from "./SqlParser"; -import { AlterViewContext } from "./SqlParser"; -import { AlterSpecificationContext } from "./SqlParser"; -import { DropDatabaseContext } from "./SqlParser"; -import { DropEventContext } from "./SqlParser"; -import { DropIndexContext } from "./SqlParser"; -import { DropLogfileGroupContext } from "./SqlParser"; -import { DropProcedureContext } from "./SqlParser"; -import { DropFunctionContext } from "./SqlParser"; -import { DropServerContext } from "./SqlParser"; -import { DropTableContext } from "./SqlParser"; -import { DropTablespaceContext } from "./SqlParser"; -import { DropTriggerContext } from "./SqlParser"; -import { DropViewContext } from "./SqlParser"; -import { RenameTableContext } from "./SqlParser"; -import { RenameTableClauseContext } from "./SqlParser"; -import { TruncateTableContext } from "./SqlParser"; -import { CallStatementContext } from "./SqlParser"; -import { DeleteStatementContext } from "./SqlParser"; -import { DoStatementContext } from "./SqlParser"; -import { HandlerStatementContext } from "./SqlParser"; -import { InsertStatementContext } from "./SqlParser"; -import { LoadDataStatementContext } from "./SqlParser"; -import { LoadXmlStatementContext } from "./SqlParser"; -import { ReplaceStatementContext } from "./SqlParser"; -import { SelectStatementContext } from "./SqlParser"; -import { UpdateStatementContext } from "./SqlParser"; -import { InsertStatementValueContext } from "./SqlParser"; -import { UpdatedElementContext } from "./SqlParser"; -import { AssignmentFieldContext } from "./SqlParser"; -import { LockClauseContext } from "./SqlParser"; -import { SingleDeleteStatementContext } from "./SqlParser"; -import { MultipleDeleteStatementContext } from "./SqlParser"; -import { HandlerOpenStatementContext } from "./SqlParser"; -import { HandlerReadIndexStatementContext } from "./SqlParser"; -import { HandlerReadStatementContext } from "./SqlParser"; -import { HandlerCloseStatementContext } from "./SqlParser"; -import { SingleUpdateStatementContext } from "./SqlParser"; -import { MultipleUpdateStatementContext } from "./SqlParser"; -import { OrderByClauseContext } from "./SqlParser"; -import { OrderByExpressionContext } from "./SqlParser"; -import { TableSourcesContext } from "./SqlParser"; -import { TableSourceContext } from "./SqlParser"; -import { TableSourceItemContext } from "./SqlParser"; -import { IndexHintContext } from "./SqlParser"; -import { IndexHintTypeContext } from "./SqlParser"; -import { JoinPartContext } from "./SqlParser"; -import { QueryExpressionContext } from "./SqlParser"; -import { QueryExpressionNointoContext } from "./SqlParser"; -import { QuerySpecificationContext } from "./SqlParser"; -import { QuerySpecificationNointoContext } from "./SqlParser"; -import { UnionParenthesisContext } from "./SqlParser"; -import { UnionStatementContext } from "./SqlParser"; -import { SelectSpecContext } from "./SqlParser"; -import { SelectElementsContext } from "./SqlParser"; -import { SelectElementContext } from "./SqlParser"; -import { SelectIntoExpressionContext } from "./SqlParser"; -import { SelectFieldsIntoContext } from "./SqlParser"; -import { SelectLinesIntoContext } from "./SqlParser"; -import { FromClauseContext } from "./SqlParser"; -import { GroupByItemContext } from "./SqlParser"; -import { LimitClauseContext } from "./SqlParser"; -import { LimitClauseAtomContext } from "./SqlParser"; -import { StartTransactionContext } from "./SqlParser"; -import { BeginWorkContext } from "./SqlParser"; -import { CommitWorkContext } from "./SqlParser"; -import { RollbackWorkContext } from "./SqlParser"; -import { SavepointStatementContext } from "./SqlParser"; -import { RollbackStatementContext } from "./SqlParser"; -import { ReleaseStatementContext } from "./SqlParser"; -import { LockTablesContext } from "./SqlParser"; -import { UnlockTablesContext } from "./SqlParser"; -import { SetAutocommitStatementContext } from "./SqlParser"; -import { SetTransactionStatementContext } from "./SqlParser"; -import { TransactionModeContext } from "./SqlParser"; -import { LockTableElementContext } from "./SqlParser"; -import { LockActionContext } from "./SqlParser"; -import { TransactionOptionContext } from "./SqlParser"; -import { TransactionLevelContext } from "./SqlParser"; -import { ChangeMasterContext } from "./SqlParser"; -import { ChangeReplicationFilterContext } from "./SqlParser"; -import { PurgeBinaryLogsContext } from "./SqlParser"; -import { ResetMasterContext } from "./SqlParser"; -import { ResetSlaveContext } from "./SqlParser"; -import { StartSlaveContext } from "./SqlParser"; -import { StopSlaveContext } from "./SqlParser"; -import { StartGroupReplicationContext } from "./SqlParser"; -import { StopGroupReplicationContext } from "./SqlParser"; -import { MasterOptionContext } from "./SqlParser"; -import { StringMasterOptionContext } from "./SqlParser"; -import { DecimalMasterOptionContext } from "./SqlParser"; -import { BoolMasterOptionContext } from "./SqlParser"; -import { ChannelOptionContext } from "./SqlParser"; -import { ReplicationFilterContext } from "./SqlParser"; -import { TablePairContext } from "./SqlParser"; -import { ThreadTypeContext } from "./SqlParser"; -import { UntilOptionContext } from "./SqlParser"; -import { ConnectionOptionContext } from "./SqlParser"; -import { GtuidSetContext } from "./SqlParser"; -import { XaStartTransactionContext } from "./SqlParser"; -import { XaEndTransactionContext } from "./SqlParser"; -import { XaPrepareStatementContext } from "./SqlParser"; -import { XaCommitWorkContext } from "./SqlParser"; -import { XaRollbackWorkContext } from "./SqlParser"; -import { XaRecoverWorkContext } from "./SqlParser"; -import { PrepareStatementContext } from "./SqlParser"; -import { ExecuteStatementContext } from "./SqlParser"; -import { DeallocatePrepareContext } from "./SqlParser"; -import { RoutineBodyContext } from "./SqlParser"; -import { BlockStatementContext } from "./SqlParser"; -import { CaseStatementContext } from "./SqlParser"; -import { IfStatementContext } from "./SqlParser"; -import { IterateStatementContext } from "./SqlParser"; -import { LeaveStatementContext } from "./SqlParser"; -import { LoopStatementContext } from "./SqlParser"; -import { RepeatStatementContext } from "./SqlParser"; -import { ReturnStatementContext } from "./SqlParser"; -import { WhileStatementContext } from "./SqlParser"; -import { CursorStatementContext } from "./SqlParser"; -import { DeclareVariableContext } from "./SqlParser"; -import { DeclareConditionContext } from "./SqlParser"; -import { DeclareCursorContext } from "./SqlParser"; -import { DeclareHandlerContext } from "./SqlParser"; -import { HandlerConditionValueContext } from "./SqlParser"; -import { ProcedureSqlStatementContext } from "./SqlParser"; -import { CaseAlternativeContext } from "./SqlParser"; -import { ElifAlternativeContext } from "./SqlParser"; -import { AlterUserContext } from "./SqlParser"; -import { CreateUserContext } from "./SqlParser"; -import { DropUserContext } from "./SqlParser"; -import { GrantStatementContext } from "./SqlParser"; -import { GrantProxyContext } from "./SqlParser"; -import { RenameUserContext } from "./SqlParser"; -import { RevokeStatementContext } from "./SqlParser"; -import { RevokeProxyContext } from "./SqlParser"; -import { SetPasswordStatementContext } from "./SqlParser"; -import { UserSpecificationContext } from "./SqlParser"; -import { UserAuthOptionContext } from "./SqlParser"; -import { TlsOptionContext } from "./SqlParser"; -import { UserResourceOptionContext } from "./SqlParser"; -import { UserPasswordOptionContext } from "./SqlParser"; -import { UserLockOptionContext } from "./SqlParser"; -import { PrivelegeClauseContext } from "./SqlParser"; -import { PrivilegeContext } from "./SqlParser"; -import { PrivilegeLevelContext } from "./SqlParser"; -import { RenameUserClauseContext } from "./SqlParser"; -import { AnalyzeTableContext } from "./SqlParser"; -import { CheckTableContext } from "./SqlParser"; -import { ChecksumTableContext } from "./SqlParser"; -import { OptimizeTableContext } from "./SqlParser"; -import { RepairTableContext } from "./SqlParser"; -import { CheckTableOptionContext } from "./SqlParser"; -import { CreateUdfunctionContext } from "./SqlParser"; -import { InstallPluginContext } from "./SqlParser"; -import { UninstallPluginContext } from "./SqlParser"; -import { SetStatementContext } from "./SqlParser"; -import { ShowStatementContext } from "./SqlParser"; -import { VariableClauseContext } from "./SqlParser"; -import { ShowCommonEntityContext } from "./SqlParser"; -import { ShowFilterContext } from "./SqlParser"; -import { ShowGlobalInfoClauseContext } from "./SqlParser"; -import { ShowSchemaEntityContext } from "./SqlParser"; -import { ShowProfileTypeContext } from "./SqlParser"; -import { BinlogStatementContext } from "./SqlParser"; -import { CacheIndexStatementContext } from "./SqlParser"; -import { FlushStatementContext } from "./SqlParser"; -import { KillStatementContext } from "./SqlParser"; -import { LoadIndexIntoCacheContext } from "./SqlParser"; -import { ResetStatementContext } from "./SqlParser"; -import { ShutdownStatementContext } from "./SqlParser"; -import { TableIndexesContext } from "./SqlParser"; -import { FlushOptionContext } from "./SqlParser"; -import { FlushTableOptionContext } from "./SqlParser"; -import { LoadedTableIndexesContext } from "./SqlParser"; -import { SimpleDescribeStatementContext } from "./SqlParser"; -import { FullDescribeStatementContext } from "./SqlParser"; -import { HelpStatementContext } from "./SqlParser"; -import { UseStatementContext } from "./SqlParser"; -import { SignalStatementContext } from "./SqlParser"; -import { ResignalStatementContext } from "./SqlParser"; -import { SignalConditionInformationContext } from "./SqlParser"; -import { DiagnosticsStatementContext } from "./SqlParser"; -import { DiagnosticsConditionInformationNameContext } from "./SqlParser"; -import { DescribeObjectClauseContext } from "./SqlParser"; -import { FullIdContext } from "./SqlParser"; -import { TableNameContext } from "./SqlParser"; -import { FullColumnNameContext } from "./SqlParser"; -import { IndexColumnNameContext } from "./SqlParser"; -import { UserNameContext } from "./SqlParser"; -import { MysqlVariableContext } from "./SqlParser"; -import { CharsetNameContext } from "./SqlParser"; -import { CollationNameContext } from "./SqlParser"; -import { EngineNameContext } from "./SqlParser"; -import { UuidSetContext } from "./SqlParser"; -import { XidContext } from "./SqlParser"; -import { XuidStringIdContext } from "./SqlParser"; -import { AuthPluginContext } from "./SqlParser"; -import { UidContext } from "./SqlParser"; -import { SimpleIdContext } from "./SqlParser"; -import { DottedIdContext } from "./SqlParser"; -import { DecimalLiteralContext } from "./SqlParser"; -import { FileSizeLiteralContext } from "./SqlParser"; -import { StringLiteralContext } from "./SqlParser"; -import { BooleanLiteralContext } from "./SqlParser"; -import { HexadecimalLiteralContext } from "./SqlParser"; -import { NullNotnullContext } from "./SqlParser"; -import { ConstantContext } from "./SqlParser"; -import { DataTypeContext } from "./SqlParser"; -import { CollectionOptionsContext } from "./SqlParser"; -import { ConvertedDataTypeContext } from "./SqlParser"; -import { LengthOneDimensionContext } from "./SqlParser"; -import { LengthTwoDimensionContext } from "./SqlParser"; -import { LengthTwoOptionalDimensionContext } from "./SqlParser"; -import { UidListContext } from "./SqlParser"; -import { TablesContext } from "./SqlParser"; -import { IndexColumnNamesContext } from "./SqlParser"; -import { ExpressionsContext } from "./SqlParser"; -import { ExpressionsWithDefaultsContext } from "./SqlParser"; -import { ConstantsContext } from "./SqlParser"; -import { SimpleStringsContext } from "./SqlParser"; -import { UserVariablesContext } from "./SqlParser"; -import { DefaultValueContext } from "./SqlParser"; -import { CurrentTimestampContext } from "./SqlParser"; -import { ExpressionOrDefaultContext } from "./SqlParser"; -import { IfExistsContext } from "./SqlParser"; -import { IfNotExistsContext } from "./SqlParser"; -import { FunctionCallContext } from "./SqlParser"; -import { SpecificFunctionContext } from "./SqlParser"; -import { CaseFuncAlternativeContext } from "./SqlParser"; -import { LevelsInWeightStringContext } from "./SqlParser"; -import { LevelInWeightListElementContext } from "./SqlParser"; -import { AggregateWindowedFunctionContext } from "./SqlParser"; -import { ScalarFunctionNameContext } from "./SqlParser"; -import { PasswordFunctionClauseContext } from "./SqlParser"; -import { FunctionArgsContext } from "./SqlParser"; -import { FunctionArgContext } from "./SqlParser"; -import { ExpressionContext } from "./SqlParser"; -import { PredicateContext } from "./SqlParser"; -import { ExpressionAtomContext } from "./SqlParser"; -import { UnaryOperatorContext } from "./SqlParser"; -import { ComparisonOperatorContext } from "./SqlParser"; -import { LogicalOperatorContext } from "./SqlParser"; -import { BitOperatorContext } from "./SqlParser"; -import { MathOperatorContext } from "./SqlParser"; -import { CharsetNameBaseContext } from "./SqlParser"; -import { TransactionLevelBaseContext } from "./SqlParser"; -import { PrivilegesBaseContext } from "./SqlParser"; -import { IntervalTypeBaseContext } from "./SqlParser"; -import { DataTypeBaseContext } from "./SqlParser"; -import { KeywordsCanBeIdContext } from "./SqlParser"; -import { FunctionNameBaseContext } from "./SqlParser"; - - -/** - * This interface defines a complete listener for a parse tree produced by - * `SqlParser`. - */ -export interface SqlParserListener extends ParseTreeListener { - /** - * Enter a parse tree produced by the `handlerConditionCode` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionCode` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => void; - - /** - * Enter a parse tree produced by the `handlerConditionState` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionState?: (ctx: HandlerConditionStateContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionState` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionState?: (ctx: HandlerConditionStateContext) => void; - - /** - * Enter a parse tree produced by the `handlerConditionName` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionName?: (ctx: HandlerConditionNameContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionName` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionName?: (ctx: HandlerConditionNameContext) => void; - - /** - * Enter a parse tree produced by the `handlerConditionWarning` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionWarning` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => void; - - /** - * Enter a parse tree produced by the `handlerConditionNotfound` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionNotfound` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => void; - - /** - * Enter a parse tree produced by the `handlerConditionException` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => void; - /** - * Exit a parse tree produced by the `handlerConditionException` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => void; - - /** - * Enter a parse tree produced by the `levelWeightList` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - enterLevelWeightList?: (ctx: LevelWeightListContext) => void; - /** - * Exit a parse tree produced by the `levelWeightList` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - exitLevelWeightList?: (ctx: LevelWeightListContext) => void; - - /** - * Enter a parse tree produced by the `levelWeightRange` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - enterLevelWeightRange?: (ctx: LevelWeightRangeContext) => void; - /** - * Exit a parse tree produced by the `levelWeightRange` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - exitLevelWeightRange?: (ctx: LevelWeightRangeContext) => void; - - /** - * Enter a parse tree produced by the `inPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterInPredicate?: (ctx: InPredicateContext) => void; - /** - * Exit a parse tree produced by the `inPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitInPredicate?: (ctx: InPredicateContext) => void; - - /** - * Enter a parse tree produced by the `isNullPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterIsNullPredicate?: (ctx: IsNullPredicateContext) => void; - /** - * Exit a parse tree produced by the `isNullPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitIsNullPredicate?: (ctx: IsNullPredicateContext) => void; - - /** - * Enter a parse tree produced by the `binaryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterBinaryComparasionPredicate?: (ctx: BinaryComparasionPredicateContext) => void; - /** - * Exit a parse tree produced by the `binaryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitBinaryComparasionPredicate?: (ctx: BinaryComparasionPredicateContext) => void; - - /** - * Enter a parse tree produced by the `subqueryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterSubqueryComparasionPredicate?: (ctx: SubqueryComparasionPredicateContext) => void; - /** - * Exit a parse tree produced by the `subqueryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitSubqueryComparasionPredicate?: (ctx: SubqueryComparasionPredicateContext) => void; - - /** - * Enter a parse tree produced by the `betweenPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterBetweenPredicate?: (ctx: BetweenPredicateContext) => void; - /** - * Exit a parse tree produced by the `betweenPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitBetweenPredicate?: (ctx: BetweenPredicateContext) => void; - - /** - * Enter a parse tree produced by the `soundsLikePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => void; - /** - * Exit a parse tree produced by the `soundsLikePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => void; - - /** - * Enter a parse tree produced by the `likePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterLikePredicate?: (ctx: LikePredicateContext) => void; - /** - * Exit a parse tree produced by the `likePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitLikePredicate?: (ctx: LikePredicateContext) => void; - - /** - * Enter a parse tree produced by the `regexpPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterRegexpPredicate?: (ctx: RegexpPredicateContext) => void; - /** - * Exit a parse tree produced by the `regexpPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitRegexpPredicate?: (ctx: RegexpPredicateContext) => void; - - /** - * Enter a parse tree produced by the `expressionAtomPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => void; - /** - * Exit a parse tree produced by the `expressionAtomPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => void; - - /** - * Enter a parse tree produced by the `simpleIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - enterSimpleIndexDeclaration?: (ctx: SimpleIndexDeclarationContext) => void; - /** - * Exit a parse tree produced by the `simpleIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - exitSimpleIndexDeclaration?: (ctx: SimpleIndexDeclarationContext) => void; - - /** - * Enter a parse tree produced by the `specialIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - enterSpecialIndexDeclaration?: (ctx: SpecialIndexDeclarationContext) => void; - /** - * Exit a parse tree produced by the `specialIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - exitSpecialIndexDeclaration?: (ctx: SpecialIndexDeclarationContext) => void; - - /** - * Enter a parse tree produced by the `userConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - enterUserConnectionOption?: (ctx: UserConnectionOptionContext) => void; - /** - * Exit a parse tree produced by the `userConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - exitUserConnectionOption?: (ctx: UserConnectionOptionContext) => void; - - /** - * Enter a parse tree produced by the `passwordConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - enterPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => void; - /** - * Exit a parse tree produced by the `passwordConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - exitPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => void; - - /** - * Enter a parse tree produced by the `defaultAuthConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - enterDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => void; - /** - * Exit a parse tree produced by the `defaultAuthConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - exitDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => void; - - /** - * Enter a parse tree produced by the `pluginDirConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - enterPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => void; - /** - * Exit a parse tree produced by the `pluginDirConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - exitPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionEngine` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionEngine` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionComment` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionComment` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionDataDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionDataDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionIndexDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionIndexDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionMaxRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionMaxRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionMinRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionMinRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionTablespace` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionTablespace` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; - - /** - * Enter a parse tree produced by the `partitionOptionNodeGroup` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => void; - /** - * Exit a parse tree produced by the `partitionOptionNodeGroup` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => void; - - /** - * Enter a parse tree produced by the `simpleFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `simpleFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `dataTypeFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `dataTypeFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `valuesFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `valuesFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `caseFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterCaseFunctionCall?: (ctx: CaseFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `caseFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitCaseFunctionCall?: (ctx: CaseFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `charFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterCharFunctionCall?: (ctx: CharFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `charFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitCharFunctionCall?: (ctx: CharFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `positionFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterPositionFunctionCall?: (ctx: PositionFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `positionFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitPositionFunctionCall?: (ctx: PositionFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `substrFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `substrFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `trimFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterTrimFunctionCall?: (ctx: TrimFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `trimFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitTrimFunctionCall?: (ctx: TrimFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `weightFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterWeightFunctionCall?: (ctx: WeightFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `weightFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitWeightFunctionCall?: (ctx: WeightFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `extractFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `extractFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `getFormatFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `getFormatFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `doDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterDoDbReplication?: (ctx: DoDbReplicationContext) => void; - /** - * Exit a parse tree produced by the `doDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitDoDbReplication?: (ctx: DoDbReplicationContext) => void; - - /** - * Enter a parse tree produced by the `ignoreDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => void; - /** - * Exit a parse tree produced by the `ignoreDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => void; - - /** - * Enter a parse tree produced by the `doTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterDoTableReplication?: (ctx: DoTableReplicationContext) => void; - /** - * Exit a parse tree produced by the `doTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitDoTableReplication?: (ctx: DoTableReplicationContext) => void; - - /** - * Enter a parse tree produced by the `ignoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => void; - /** - * Exit a parse tree produced by the `ignoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => void; - - /** - * Enter a parse tree produced by the `wildDoTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => void; - /** - * Exit a parse tree produced by the `wildDoTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => void; - - /** - * Enter a parse tree produced by the `wildIgnoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => void; - /** - * Exit a parse tree produced by the `wildIgnoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => void; - - /** - * Enter a parse tree produced by the `rewriteDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => void; - /** - * Exit a parse tree produced by the `rewriteDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => void; - - /** - * Enter a parse tree produced by the `innerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - enterInnerJoin?: (ctx: InnerJoinContext) => void; - /** - * Exit a parse tree produced by the `innerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - exitInnerJoin?: (ctx: InnerJoinContext) => void; - - /** - * Enter a parse tree produced by the `straightJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - enterStraightJoin?: (ctx: StraightJoinContext) => void; - /** - * Exit a parse tree produced by the `straightJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - exitStraightJoin?: (ctx: StraightJoinContext) => void; - - /** - * Enter a parse tree produced by the `outerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - enterOuterJoin?: (ctx: OuterJoinContext) => void; - /** - * Exit a parse tree produced by the `outerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - exitOuterJoin?: (ctx: OuterJoinContext) => void; - - /** - * Enter a parse tree produced by the `naturalJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - enterNaturalJoin?: (ctx: NaturalJoinContext) => void; - /** - * Exit a parse tree produced by the `naturalJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - */ - exitNaturalJoin?: (ctx: NaturalJoinContext) => void; - - /** - * Enter a parse tree produced by the `setVariable` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetVariable?: (ctx: SetVariableContext) => void; - /** - * Exit a parse tree produced by the `setVariable` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetVariable?: (ctx: SetVariableContext) => void; - - /** - * Enter a parse tree produced by the `setCharset` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetCharset?: (ctx: SetCharsetContext) => void; - /** - * Exit a parse tree produced by the `setCharset` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetCharset?: (ctx: SetCharsetContext) => void; - - /** - * Enter a parse tree produced by the `setNames` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetNames?: (ctx: SetNamesContext) => void; - /** - * Exit a parse tree produced by the `setNames` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetNames?: (ctx: SetNamesContext) => void; - - /** - * Enter a parse tree produced by the `setPassword` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetPassword?: (ctx: SetPasswordContext) => void; - /** - * Exit a parse tree produced by the `setPassword` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetPassword?: (ctx: SetPasswordContext) => void; - - /** - * Enter a parse tree produced by the `setTransaction` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetTransaction?: (ctx: SetTransactionContext) => void; - /** - * Exit a parse tree produced by the `setTransaction` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetTransaction?: (ctx: SetTransactionContext) => void; - - /** - * Enter a parse tree produced by the `setAutocommit` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetAutocommit?: (ctx: SetAutocommitContext) => void; - /** - * Exit a parse tree produced by the `setAutocommit` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetAutocommit?: (ctx: SetAutocommitContext) => void; - - /** - * Enter a parse tree produced by the `setNewValueInsideTrigger` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => void; - /** - * Exit a parse tree produced by the `setNewValueInsideTrigger` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => void; - - /** - * Enter a parse tree produced by the `selectStarElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - enterSelectStarElement?: (ctx: SelectStarElementContext) => void; - /** - * Exit a parse tree produced by the `selectStarElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - exitSelectStarElement?: (ctx: SelectStarElementContext) => void; - - /** - * Enter a parse tree produced by the `selectColumnElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - enterSelectColumnElement?: (ctx: SelectColumnElementContext) => void; - /** - * Exit a parse tree produced by the `selectColumnElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - exitSelectColumnElement?: (ctx: SelectColumnElementContext) => void; - - /** - * Enter a parse tree produced by the `selectFunctionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - enterSelectFunctionElement?: (ctx: SelectFunctionElementContext) => void; - /** - * Exit a parse tree produced by the `selectFunctionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - exitSelectFunctionElement?: (ctx: SelectFunctionElementContext) => void; - - /** - * Enter a parse tree produced by the `selectExpressionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - enterSelectExpressionElement?: (ctx: SelectExpressionElementContext) => void; - /** - * Exit a parse tree produced by the `selectExpressionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - */ - exitSelectExpressionElement?: (ctx: SelectExpressionElementContext) => void; - - /** - * Enter a parse tree produced by the `notExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - enterNotExpression?: (ctx: NotExpressionContext) => void; - /** - * Exit a parse tree produced by the `notExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - exitNotExpression?: (ctx: NotExpressionContext) => void; - - /** - * Enter a parse tree produced by the `logicalExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - enterLogicalExpression?: (ctx: LogicalExpressionContext) => void; - /** - * Exit a parse tree produced by the `logicalExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - exitLogicalExpression?: (ctx: LogicalExpressionContext) => void; - - /** - * Enter a parse tree produced by the `isExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - enterIsExpression?: (ctx: IsExpressionContext) => void; - /** - * Exit a parse tree produced by the `isExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - exitIsExpression?: (ctx: IsExpressionContext) => void; - - /** - * Enter a parse tree produced by the `predicateExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - enterPredicateExpression?: (ctx: PredicateExpressionContext) => void; - /** - * Exit a parse tree produced by the `predicateExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - */ - exitPredicateExpression?: (ctx: PredicateExpressionContext) => void; - - /** - * Enter a parse tree produced by the `atomTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - enterAtomTableItem?: (ctx: AtomTableItemContext) => void; - /** - * Exit a parse tree produced by the `atomTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - exitAtomTableItem?: (ctx: AtomTableItemContext) => void; - - /** - * Enter a parse tree produced by the `subqueryTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - enterSubqueryTableItem?: (ctx: SubqueryTableItemContext) => void; - /** - * Exit a parse tree produced by the `subqueryTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - exitSubqueryTableItem?: (ctx: SubqueryTableItemContext) => void; - - /** - * Enter a parse tree produced by the `tableSourcesItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - enterTableSourcesItem?: (ctx: TableSourcesItemContext) => void; - /** - * Exit a parse tree produced by the `tableSourcesItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - exitTableSourcesItem?: (ctx: TableSourcesItemContext) => void; - - /** - * Enter a parse tree produced by the `selectIntoVariables` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - enterSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => void; - /** - * Exit a parse tree produced by the `selectIntoVariables` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - exitSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => void; - - /** - * Enter a parse tree produced by the `selectIntoDumpFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - enterSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => void; - /** - * Exit a parse tree produced by the `selectIntoDumpFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - exitSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => void; - - /** - * Enter a parse tree produced by the `selectIntoTextFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - enterSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => void; - /** - * Exit a parse tree produced by the `selectIntoTextFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - exitSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => void; - - /** - * Enter a parse tree produced by the `alterByTableOption` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByTableOption?: (ctx: AlterByTableOptionContext) => void; - /** - * Exit a parse tree produced by the `alterByTableOption` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByTableOption?: (ctx: AlterByTableOptionContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddColumn?: (ctx: AlterByAddColumnContext) => void; - /** - * Exit a parse tree produced by the `alterByAddColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddColumn?: (ctx: AlterByAddColumnContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddColumns` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => void; - /** - * Exit a parse tree produced by the `alterByAddColumns` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddIndex?: (ctx: AlterByAddIndexContext) => void; - /** - * Exit a parse tree produced by the `alterByAddIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddIndex?: (ctx: AlterByAddIndexContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => void; - /** - * Exit a parse tree produced by the `alterByAddPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddUniqueKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => void; - /** - * Exit a parse tree produced by the `alterByAddUniqueKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddSpecialIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => void; - /** - * Exit a parse tree produced by the `alterByAddSpecialIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => void; - /** - * Exit a parse tree produced by the `alterByAddForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddCheckTableConstraint` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => void; - /** - * Exit a parse tree produced by the `alterByAddCheckTableConstraint` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => void; - - /** - * Enter a parse tree produced by the `alterBySetAlgorithm` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => void; - /** - * Exit a parse tree produced by the `alterBySetAlgorithm` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => void; - - /** - * Enter a parse tree produced by the `alterByChangeDefault` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByChangeDefault?: (ctx: AlterByChangeDefaultContext) => void; - /** - * Exit a parse tree produced by the `alterByChangeDefault` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByChangeDefault?: (ctx: AlterByChangeDefaultContext) => void; - - /** - * Enter a parse tree produced by the `alterByChangeColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => void; - /** - * Exit a parse tree produced by the `alterByChangeColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => void; - - /** - * Enter a parse tree produced by the `alterByRenameColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => void; - /** - * Exit a parse tree produced by the `alterByRenameColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => void; - - /** - * Enter a parse tree produced by the `alterByLock` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByLock?: (ctx: AlterByLockContext) => void; - /** - * Exit a parse tree produced by the `alterByLock` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByLock?: (ctx: AlterByLockContext) => void; - - /** - * Enter a parse tree produced by the `alterByModifyColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => void; - /** - * Exit a parse tree produced by the `alterByModifyColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => void; - - /** - * Enter a parse tree produced by the `alterByDropColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDropColumn?: (ctx: AlterByDropColumnContext) => void; - /** - * Exit a parse tree produced by the `alterByDropColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDropColumn?: (ctx: AlterByDropColumnContext) => void; - - /** - * Enter a parse tree produced by the `alterByDropPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => void; - /** - * Exit a parse tree produced by the `alterByDropPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => void; - - /** - * Enter a parse tree produced by the `alterByRenameIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => void; - /** - * Exit a parse tree produced by the `alterByRenameIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => void; - - /** - * Enter a parse tree produced by the `alterByAlterIndexVisibility` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => void; - /** - * Exit a parse tree produced by the `alterByAlterIndexVisibility` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => void; - - /** - * Enter a parse tree produced by the `alterByDropIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDropIndex?: (ctx: AlterByDropIndexContext) => void; - /** - * Exit a parse tree produced by the `alterByDropIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDropIndex?: (ctx: AlterByDropIndexContext) => void; - - /** - * Enter a parse tree produced by the `alterByDropForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => void; - /** - * Exit a parse tree produced by the `alterByDropForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => void; - - /** - * Enter a parse tree produced by the `alterByDisableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDisableKeys?: (ctx: AlterByDisableKeysContext) => void; - /** - * Exit a parse tree produced by the `alterByDisableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDisableKeys?: (ctx: AlterByDisableKeysContext) => void; - - /** - * Enter a parse tree produced by the `alterByEnableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByEnableKeys?: (ctx: AlterByEnableKeysContext) => void; - /** - * Exit a parse tree produced by the `alterByEnableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByEnableKeys?: (ctx: AlterByEnableKeysContext) => void; - - /** - * Enter a parse tree produced by the `alterByRename` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRename?: (ctx: AlterByRenameContext) => void; - /** - * Exit a parse tree produced by the `alterByRename` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRename?: (ctx: AlterByRenameContext) => void; - - /** - * Enter a parse tree produced by the `alterByOrder` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByOrder?: (ctx: AlterByOrderContext) => void; - /** - * Exit a parse tree produced by the `alterByOrder` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByOrder?: (ctx: AlterByOrderContext) => void; - - /** - * Enter a parse tree produced by the `alterByConvertCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => void; - /** - * Exit a parse tree produced by the `alterByConvertCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => void; - - /** - * Enter a parse tree produced by the `alterByDefaultCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => void; - /** - * Exit a parse tree produced by the `alterByDefaultCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => void; - - /** - * Enter a parse tree produced by the `alterByDiscardTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDiscardTablespace?: (ctx: AlterByDiscardTablespaceContext) => void; - /** - * Exit a parse tree produced by the `alterByDiscardTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDiscardTablespace?: (ctx: AlterByDiscardTablespaceContext) => void; - - /** - * Enter a parse tree produced by the `alterByImportTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByImportTablespace?: (ctx: AlterByImportTablespaceContext) => void; - /** - * Exit a parse tree produced by the `alterByImportTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByImportTablespace?: (ctx: AlterByImportTablespaceContext) => void; - - /** - * Enter a parse tree produced by the `alterByForce` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByForce?: (ctx: AlterByForceContext) => void; - /** - * Exit a parse tree produced by the `alterByForce` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByForce?: (ctx: AlterByForceContext) => void; - - /** - * Enter a parse tree produced by the `alterByValidate` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByValidate?: (ctx: AlterByValidateContext) => void; - /** - * Exit a parse tree produced by the `alterByValidate` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByValidate?: (ctx: AlterByValidateContext) => void; - - /** - * Enter a parse tree produced by the `alterByAddPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByAddPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByDropPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByDropPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByDiscardPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByDiscardPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByImportPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByImportPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByTruncatePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByTruncatePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByCoalescePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByCoalescePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByReorganizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByReorganizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByExchangePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByExchangePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByAnalyzePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByAnalyzePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByCheckPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByCheckPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByOptimizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByOptimizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByRebuildPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByRebuildPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByRepairPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => void; - /** - * Exit a parse tree produced by the `alterByRepairPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => void; - - /** - * Enter a parse tree produced by the `alterByRemovePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => void; - /** - * Exit a parse tree produced by the `alterByRemovePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => void; - - /** - * Enter a parse tree produced by the `alterByUpgradePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => void; - /** - * Exit a parse tree produced by the `alterByUpgradePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => void; - - /** - * Enter a parse tree produced by the `simpleSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - enterSimpleSelect?: (ctx: SimpleSelectContext) => void; - /** - * Exit a parse tree produced by the `simpleSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - exitSimpleSelect?: (ctx: SimpleSelectContext) => void; - - /** - * Enter a parse tree produced by the `parenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - enterParenthesisSelect?: (ctx: ParenthesisSelectContext) => void; - /** - * Exit a parse tree produced by the `parenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - exitParenthesisSelect?: (ctx: ParenthesisSelectContext) => void; - - /** - * Enter a parse tree produced by the `unionSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - enterUnionSelect?: (ctx: UnionSelectContext) => void; - /** - * Exit a parse tree produced by the `unionSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - exitUnionSelect?: (ctx: UnionSelectContext) => void; - - /** - * Enter a parse tree produced by the `unionParenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - enterUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => void; - /** - * Exit a parse tree produced by the `unionParenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - exitUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => void; - - /** - * Enter a parse tree produced by the `stringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterStringDataType?: (ctx: StringDataTypeContext) => void; - /** - * Exit a parse tree produced by the `stringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitStringDataType?: (ctx: StringDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `nationalStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterNationalStringDataType?: (ctx: NationalStringDataTypeContext) => void; - /** - * Exit a parse tree produced by the `nationalStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitNationalStringDataType?: (ctx: NationalStringDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `nationalVaryingStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => void; - /** - * Exit a parse tree produced by the `nationalVaryingStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `dimensionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterDimensionDataType?: (ctx: DimensionDataTypeContext) => void; - /** - * Exit a parse tree produced by the `dimensionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitDimensionDataType?: (ctx: DimensionDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `simpleDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterSimpleDataType?: (ctx: SimpleDataTypeContext) => void; - /** - * Exit a parse tree produced by the `simpleDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitSimpleDataType?: (ctx: SimpleDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `collectionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterCollectionDataType?: (ctx: CollectionDataTypeContext) => void; - /** - * Exit a parse tree produced by the `collectionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitCollectionDataType?: (ctx: CollectionDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `spatialDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterSpatialDataType?: (ctx: SpatialDataTypeContext) => void; - /** - * Exit a parse tree produced by the `spatialDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitSpatialDataType?: (ctx: SpatialDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `longVarcharDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => void; - /** - * Exit a parse tree produced by the `longVarcharDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `longVarbinaryDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => void; - /** - * Exit a parse tree produced by the `longVarbinaryDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => void; - - /** - * Enter a parse tree produced by the `partitionComparision` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - enterPartitionComparision?: (ctx: PartitionComparisionContext) => void; - /** - * Exit a parse tree produced by the `partitionComparision` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - exitPartitionComparision?: (ctx: PartitionComparisionContext) => void; - - /** - * Enter a parse tree produced by the `partitionListAtom` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - enterPartitionListAtom?: (ctx: PartitionListAtomContext) => void; - /** - * Exit a parse tree produced by the `partitionListAtom` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - exitPartitionListAtom?: (ctx: PartitionListAtomContext) => void; - - /** - * Enter a parse tree produced by the `partitionListVector` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - enterPartitionListVector?: (ctx: PartitionListVectorContext) => void; - /** - * Exit a parse tree produced by the `partitionListVector` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - exitPartitionListVector?: (ctx: PartitionListVectorContext) => void; - - /** - * Enter a parse tree produced by the `partitionSimple` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - enterPartitionSimple?: (ctx: PartitionSimpleContext) => void; - /** - * Exit a parse tree produced by the `partitionSimple` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - exitPartitionSimple?: (ctx: PartitionSimpleContext) => void; - - /** - * Enter a parse tree produced by the `nullColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterNullColumnConstraint?: (ctx: NullColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `nullColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitNullColumnConstraint?: (ctx: NullColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `defaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `defaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `autoIncrementColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `autoIncrementColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `primaryKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `primaryKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `uniqueKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `uniqueKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `commentColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `commentColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `formatColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `formatColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `storageColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `storageColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `referenceColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `referenceColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `collateColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `collateColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `generatedColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `generatedColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `serialDefaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `serialDefaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `checkColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterCheckColumnConstraint?: (ctx: CheckColumnConstraintContext) => void; - /** - * Exit a parse tree produced by the `checkColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitCheckColumnConstraint?: (ctx: CheckColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by the `subPartitionFunctionHash` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => void; - /** - * Exit a parse tree produced by the `subPartitionFunctionHash` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => void; - - /** - * Enter a parse tree produced by the `subPartitionFunctionKey` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => void; - /** - * Exit a parse tree produced by the `subPartitionFunctionKey` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => void; - - /** - * Enter a parse tree produced by the `passwordAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - enterPasswordAuthOption?: (ctx: PasswordAuthOptionContext) => void; - /** - * Exit a parse tree produced by the `passwordAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - exitPasswordAuthOption?: (ctx: PasswordAuthOptionContext) => void; - - /** - * Enter a parse tree produced by the `stringAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - enterStringAuthOption?: (ctx: StringAuthOptionContext) => void; - /** - * Exit a parse tree produced by the `stringAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - exitStringAuthOption?: (ctx: StringAuthOptionContext) => void; - - /** - * Enter a parse tree produced by the `hashAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - enterHashAuthOption?: (ctx: HashAuthOptionContext) => void; - /** - * Exit a parse tree produced by the `hashAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - exitHashAuthOption?: (ctx: HashAuthOptionContext) => void; - - /** - * Enter a parse tree produced by the `simpleAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - enterSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => void; - /** - * Exit a parse tree produced by the `simpleAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - exitSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => void; - - /** - * Enter a parse tree produced by the `simpleFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - enterSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => void; - /** - * Exit a parse tree produced by the `simpleFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - exitSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => void; - - /** - * Enter a parse tree produced by the `channelFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - enterChannelFlushOption?: (ctx: ChannelFlushOptionContext) => void; - /** - * Exit a parse tree produced by the `channelFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - exitChannelFlushOption?: (ctx: ChannelFlushOptionContext) => void; - - /** - * Enter a parse tree produced by the `tableFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - enterTableFlushOption?: (ctx: TableFlushOptionContext) => void; - /** - * Exit a parse tree produced by the `tableFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - */ - exitTableFlushOption?: (ctx: TableFlushOptionContext) => void; - - /** - * Enter a parse tree produced by the `CloseCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - enterCloseCursor?: (ctx: CloseCursorContext) => void; - /** - * Exit a parse tree produced by the `CloseCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - exitCloseCursor?: (ctx: CloseCursorContext) => void; - - /** - * Enter a parse tree produced by the `FetchCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - enterFetchCursor?: (ctx: FetchCursorContext) => void; - /** - * Exit a parse tree produced by the `FetchCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - exitFetchCursor?: (ctx: FetchCursorContext) => void; - - /** - * Enter a parse tree produced by the `OpenCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - enterOpenCursor?: (ctx: OpenCursorContext) => void; - /** - * Exit a parse tree produced by the `OpenCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - exitOpenCursor?: (ctx: OpenCursorContext) => void; - - /** - * Enter a parse tree produced by the `tableSourceBase` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - */ - enterTableSourceBase?: (ctx: TableSourceBaseContext) => void; - /** - * Exit a parse tree produced by the `tableSourceBase` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - */ - exitTableSourceBase?: (ctx: TableSourceBaseContext) => void; - - /** - * Enter a parse tree produced by the `tableSourceNested` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - */ - enterTableSourceNested?: (ctx: TableSourceNestedContext) => void; - /** - * Exit a parse tree produced by the `tableSourceNested` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - */ - exitTableSourceNested?: (ctx: TableSourceNestedContext) => void; - - /** - * Enter a parse tree produced by the `preciseSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - enterPreciseSchedule?: (ctx: PreciseScheduleContext) => void; - /** - * Exit a parse tree produced by the `preciseSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - exitPreciseSchedule?: (ctx: PreciseScheduleContext) => void; - - /** - * Enter a parse tree produced by the `intervalSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - enterIntervalSchedule?: (ctx: IntervalScheduleContext) => void; - /** - * Exit a parse tree produced by the `intervalSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - exitIntervalSchedule?: (ctx: IntervalScheduleContext) => void; - - /** - * Enter a parse tree produced by the `primaryKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - enterPrimaryKeyTableConstraint?: (ctx: PrimaryKeyTableConstraintContext) => void; - /** - * Exit a parse tree produced by the `primaryKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - exitPrimaryKeyTableConstraint?: (ctx: PrimaryKeyTableConstraintContext) => void; - - /** - * Enter a parse tree produced by the `uniqueKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - enterUniqueKeyTableConstraint?: (ctx: UniqueKeyTableConstraintContext) => void; - /** - * Exit a parse tree produced by the `uniqueKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - exitUniqueKeyTableConstraint?: (ctx: UniqueKeyTableConstraintContext) => void; - - /** - * Enter a parse tree produced by the `foreignKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - enterForeignKeyTableConstraint?: (ctx: ForeignKeyTableConstraintContext) => void; - /** - * Exit a parse tree produced by the `foreignKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - exitForeignKeyTableConstraint?: (ctx: ForeignKeyTableConstraintContext) => void; - - /** - * Enter a parse tree produced by the `checkTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - enterCheckTableConstraint?: (ctx: CheckTableConstraintContext) => void; - /** - * Exit a parse tree produced by the `checkTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - exitCheckTableConstraint?: (ctx: CheckTableConstraintContext) => void; - - /** - * Enter a parse tree produced by the `alterUserMysqlV56` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - */ - enterAlterUserMysqlV56?: (ctx: AlterUserMysqlV56Context) => void; - /** - * Exit a parse tree produced by the `alterUserMysqlV56` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - */ - exitAlterUserMysqlV56?: (ctx: AlterUserMysqlV56Context) => void; - - /** - * Enter a parse tree produced by the `alterUserMysqlV57` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - */ - enterAlterUserMysqlV57?: (ctx: AlterUserMysqlV57Context) => void; - /** - * Exit a parse tree produced by the `alterUserMysqlV57` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - */ - exitAlterUserMysqlV57?: (ctx: AlterUserMysqlV57Context) => void; - - /** - * Enter a parse tree produced by the `describeStatements` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - enterDescribeStatements?: (ctx: DescribeStatementsContext) => void; - /** - * Exit a parse tree produced by the `describeStatements` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - exitDescribeStatements?: (ctx: DescribeStatementsContext) => void; - - /** - * Enter a parse tree produced by the `describeConnection` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - enterDescribeConnection?: (ctx: DescribeConnectionContext) => void; - /** - * Exit a parse tree produced by the `describeConnection` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - exitDescribeConnection?: (ctx: DescribeConnectionContext) => void; - - /** - * Enter a parse tree produced by the `columnDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - enterColumnDeclaration?: (ctx: ColumnDeclarationContext) => void; - /** - * Exit a parse tree produced by the `columnDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - exitColumnDeclaration?: (ctx: ColumnDeclarationContext) => void; - - /** - * Enter a parse tree produced by the `constraintDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - enterConstraintDeclaration?: (ctx: ConstraintDeclarationContext) => void; - /** - * Exit a parse tree produced by the `constraintDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - exitConstraintDeclaration?: (ctx: ConstraintDeclarationContext) => void; - - /** - * Enter a parse tree produced by the `indexDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - enterIndexDeclaration?: (ctx: IndexDeclarationContext) => void; - /** - * Exit a parse tree produced by the `indexDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - exitIndexDeclaration?: (ctx: IndexDeclarationContext) => void; - - /** - * Enter a parse tree produced by the `specificFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `specificFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `aggregateFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `aggregateFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `scalarFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `scalarFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `udfFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterUdfFunctionCall?: (ctx: UdfFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `udfFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitUdfFunctionCall?: (ctx: UdfFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `passwordFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => void; - /** - * Exit a parse tree produced by the `passwordFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionEngine` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionEngine?: (ctx: TableOptionEngineContext) => void; - /** - * Exit a parse tree produced by the `tableOptionEngine` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionEngine?: (ctx: TableOptionEngineContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionAutoIncrement` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => void; - /** - * Exit a parse tree produced by the `tableOptionAutoIncrement` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionAverage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionAverage?: (ctx: TableOptionAverageContext) => void; - /** - * Exit a parse tree produced by the `tableOptionAverage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionAverage?: (ctx: TableOptionAverageContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionCharset` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionCharset?: (ctx: TableOptionCharsetContext) => void; - /** - * Exit a parse tree produced by the `tableOptionCharset` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionCharset?: (ctx: TableOptionCharsetContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionChecksum` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionChecksum?: (ctx: TableOptionChecksumContext) => void; - /** - * Exit a parse tree produced by the `tableOptionChecksum` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionChecksum?: (ctx: TableOptionChecksumContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionCollate` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionCollate?: (ctx: TableOptionCollateContext) => void; - /** - * Exit a parse tree produced by the `tableOptionCollate` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionCollate?: (ctx: TableOptionCollateContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionComment` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionComment?: (ctx: TableOptionCommentContext) => void; - /** - * Exit a parse tree produced by the `tableOptionComment` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionComment?: (ctx: TableOptionCommentContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionCompression` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionCompression?: (ctx: TableOptionCompressionContext) => void; - /** - * Exit a parse tree produced by the `tableOptionCompression` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionCompression?: (ctx: TableOptionCompressionContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionConnection` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionConnection?: (ctx: TableOptionConnectionContext) => void; - /** - * Exit a parse tree produced by the `tableOptionConnection` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionConnection?: (ctx: TableOptionConnectionContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionDataDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => void; - /** - * Exit a parse tree produced by the `tableOptionDataDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionDelay` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionDelay?: (ctx: TableOptionDelayContext) => void; - /** - * Exit a parse tree produced by the `tableOptionDelay` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionDelay?: (ctx: TableOptionDelayContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionEncryption` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => void; - /** - * Exit a parse tree produced by the `tableOptionEncryption` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionIndexDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => void; - /** - * Exit a parse tree produced by the `tableOptionIndexDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionInsertMethod` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => void; - /** - * Exit a parse tree produced by the `tableOptionInsertMethod` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionKeyBlockSize` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => void; - /** - * Exit a parse tree produced by the `tableOptionKeyBlockSize` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionMaxRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => void; - /** - * Exit a parse tree produced by the `tableOptionMaxRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionMinRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => void; - /** - * Exit a parse tree produced by the `tableOptionMinRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionPackKeys` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => void; - /** - * Exit a parse tree produced by the `tableOptionPackKeys` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionPassword` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionPassword?: (ctx: TableOptionPasswordContext) => void; - /** - * Exit a parse tree produced by the `tableOptionPassword` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionPassword?: (ctx: TableOptionPasswordContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionRowFormat` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => void; - /** - * Exit a parse tree produced by the `tableOptionRowFormat` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionRecalculation` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => void; - /** - * Exit a parse tree produced by the `tableOptionRecalculation` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionPersistent` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionPersistent?: (ctx: TableOptionPersistentContext) => void; - /** - * Exit a parse tree produced by the `tableOptionPersistent` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionPersistent?: (ctx: TableOptionPersistentContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionSamplePage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => void; - /** - * Exit a parse tree produced by the `tableOptionSamplePage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionTablespace` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; - /** - * Exit a parse tree produced by the `tableOptionTablespace` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; - - /** - * Enter a parse tree produced by the `tableOptionUnion` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOptionUnion?: (ctx: TableOptionUnionContext) => void; - /** - * Exit a parse tree produced by the `tableOptionUnion` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOptionUnion?: (ctx: TableOptionUnionContext) => void; - - /** - * Enter a parse tree produced by the `constantExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `constantExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `fullColumnNameExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterFullColumnNameExpressionAtom?: (ctx: FullColumnNameExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `fullColumnNameExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitFullColumnNameExpressionAtom?: (ctx: FullColumnNameExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `functionCallExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `functionCallExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `collateExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `collateExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `mysqlVariableExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `mysqlVariableExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `unaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `unaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `binaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `binaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `nestedExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `nestedExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `nestedRowExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `nestedRowExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `existsExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterExistsExpessionAtom?: (ctx: ExistsExpessionAtomContext) => void; - /** - * Exit a parse tree produced by the `existsExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitExistsExpessionAtom?: (ctx: ExistsExpessionAtomContext) => void; - - /** - * Enter a parse tree produced by the `subqueryExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterSubqueryExpessionAtom?: (ctx: SubqueryExpessionAtomContext) => void; - /** - * Exit a parse tree produced by the `subqueryExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitSubqueryExpessionAtom?: (ctx: SubqueryExpessionAtomContext) => void; - - /** - * Enter a parse tree produced by the `intervalExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `intervalExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `bitExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterBitExpressionAtom?: (ctx: BitExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `bitExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitBitExpressionAtom?: (ctx: BitExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `mathExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterMathExpressionAtom?: (ctx: MathExpressionAtomContext) => void; - /** - * Exit a parse tree produced by the `mathExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitMathExpressionAtom?: (ctx: MathExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by the `routineComment` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineComment?: (ctx: RoutineCommentContext) => void; - /** - * Exit a parse tree produced by the `routineComment` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineComment?: (ctx: RoutineCommentContext) => void; - - /** - * Enter a parse tree produced by the `routineLanguage` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineLanguage?: (ctx: RoutineLanguageContext) => void; - /** - * Exit a parse tree produced by the `routineLanguage` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineLanguage?: (ctx: RoutineLanguageContext) => void; - - /** - * Enter a parse tree produced by the `routineBehavior` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineBehavior?: (ctx: RoutineBehaviorContext) => void; - /** - * Exit a parse tree produced by the `routineBehavior` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineBehavior?: (ctx: RoutineBehaviorContext) => void; - - /** - * Enter a parse tree produced by the `routineData` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineData?: (ctx: RoutineDataContext) => void; - /** - * Exit a parse tree produced by the `routineData` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineData?: (ctx: RoutineDataContext) => void; - - /** - * Enter a parse tree produced by the `routineSecurity` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineSecurity?: (ctx: RoutineSecurityContext) => void; - /** - * Exit a parse tree produced by the `routineSecurity` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineSecurity?: (ctx: RoutineSecurityContext) => void; - - /** - * Enter a parse tree produced by the `createUserMysqlV56` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - */ - enterCreateUserMysqlV56?: (ctx: CreateUserMysqlV56Context) => void; - /** - * Exit a parse tree produced by the `createUserMysqlV56` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - */ - exitCreateUserMysqlV56?: (ctx: CreateUserMysqlV56Context) => void; - - /** - * Enter a parse tree produced by the `createUserMysqlV57` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - */ - enterCreateUserMysqlV57?: (ctx: CreateUserMysqlV57Context) => void; - /** - * Exit a parse tree produced by the `createUserMysqlV57` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - */ - exitCreateUserMysqlV57?: (ctx: CreateUserMysqlV57Context) => void; - - /** - * Enter a parse tree produced by the `currentSchemaPriviLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => void; - /** - * Exit a parse tree produced by the `currentSchemaPriviLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => void; - - /** - * Enter a parse tree produced by the `globalPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => void; - /** - * Exit a parse tree produced by the `globalPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => void; - - /** - * Enter a parse tree produced by the `definiteSchemaPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => void; - /** - * Exit a parse tree produced by the `definiteSchemaPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => void; - - /** - * Enter a parse tree produced by the `definiteFullTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => void; - /** - * Exit a parse tree produced by the `definiteFullTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => void; - - /** - * Enter a parse tree produced by the `definiteFullTablePrivLevel2` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => void; - /** - * Exit a parse tree produced by the `definiteFullTablePrivLevel2` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => void; - - /** - * Enter a parse tree produced by the `definiteTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => void; - /** - * Exit a parse tree produced by the `definiteTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => void; - - /** - * Enter a parse tree produced by the `showMasterLogs` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowMasterLogs?: (ctx: ShowMasterLogsContext) => void; - /** - * Exit a parse tree produced by the `showMasterLogs` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowMasterLogs?: (ctx: ShowMasterLogsContext) => void; - - /** - * Enter a parse tree produced by the `showLogEvents` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowLogEvents?: (ctx: ShowLogEventsContext) => void; - /** - * Exit a parse tree produced by the `showLogEvents` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowLogEvents?: (ctx: ShowLogEventsContext) => void; - - /** - * Enter a parse tree produced by the `showObjectFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowObjectFilter?: (ctx: ShowObjectFilterContext) => void; - /** - * Exit a parse tree produced by the `showObjectFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowObjectFilter?: (ctx: ShowObjectFilterContext) => void; - - /** - * Enter a parse tree produced by the `showColumns` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowColumns?: (ctx: ShowColumnsContext) => void; - /** - * Exit a parse tree produced by the `showColumns` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowColumns?: (ctx: ShowColumnsContext) => void; - - /** - * Enter a parse tree produced by the `showCreateDb` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowCreateDb?: (ctx: ShowCreateDbContext) => void; - /** - * Exit a parse tree produced by the `showCreateDb` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowCreateDb?: (ctx: ShowCreateDbContext) => void; - - /** - * Enter a parse tree produced by the `showCreateFullIdObject` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => void; - /** - * Exit a parse tree produced by the `showCreateFullIdObject` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => void; - - /** - * Enter a parse tree produced by the `showCreateUser` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowCreateUser?: (ctx: ShowCreateUserContext) => void; - /** - * Exit a parse tree produced by the `showCreateUser` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowCreateUser?: (ctx: ShowCreateUserContext) => void; - - /** - * Enter a parse tree produced by the `showEngine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowEngine?: (ctx: ShowEngineContext) => void; - /** - * Exit a parse tree produced by the `showEngine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowEngine?: (ctx: ShowEngineContext) => void; - - /** - * Enter a parse tree produced by the `showGlobalInfo` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => void; - /** - * Exit a parse tree produced by the `showGlobalInfo` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => void; - - /** - * Enter a parse tree produced by the `showErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowErrors?: (ctx: ShowErrorsContext) => void; - /** - * Exit a parse tree produced by the `showErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowErrors?: (ctx: ShowErrorsContext) => void; - - /** - * Enter a parse tree produced by the `showCountErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowCountErrors?: (ctx: ShowCountErrorsContext) => void; - /** - * Exit a parse tree produced by the `showCountErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowCountErrors?: (ctx: ShowCountErrorsContext) => void; - - /** - * Enter a parse tree produced by the `showSchemaFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => void; - /** - * Exit a parse tree produced by the `showSchemaFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => void; - - /** - * Enter a parse tree produced by the `showRoutine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowRoutine?: (ctx: ShowRoutineContext) => void; - /** - * Exit a parse tree produced by the `showRoutine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowRoutine?: (ctx: ShowRoutineContext) => void; - - /** - * Enter a parse tree produced by the `showGrants` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowGrants?: (ctx: ShowGrantsContext) => void; - /** - * Exit a parse tree produced by the `showGrants` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowGrants?: (ctx: ShowGrantsContext) => void; - - /** - * Enter a parse tree produced by the `showIndexes` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowIndexes?: (ctx: ShowIndexesContext) => void; - /** - * Exit a parse tree produced by the `showIndexes` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowIndexes?: (ctx: ShowIndexesContext) => void; - - /** - * Enter a parse tree produced by the `showOpenTables` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowOpenTables?: (ctx: ShowOpenTablesContext) => void; - /** - * Exit a parse tree produced by the `showOpenTables` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowOpenTables?: (ctx: ShowOpenTablesContext) => void; - - /** - * Enter a parse tree produced by the `showProfile` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowProfile?: (ctx: ShowProfileContext) => void; - /** - * Exit a parse tree produced by the `showProfile` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowProfile?: (ctx: ShowProfileContext) => void; - - /** - * Enter a parse tree produced by the `showSlaveStatus` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => void; - /** - * Exit a parse tree produced by the `showSlaveStatus` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => void; - - /** - * Enter a parse tree produced by the `alterSimpleDatabase` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - enterAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => void; - /** - * Exit a parse tree produced by the `alterSimpleDatabase` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - exitAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => void; - - /** - * Enter a parse tree produced by the `alterUpgradeName` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - enterAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => void; - /** - * Exit a parse tree produced by the `alterUpgradeName` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - exitAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => void; - - /** - * Enter a parse tree produced by the `masterStringOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterStringOption?: (ctx: MasterStringOptionContext) => void; - /** - * Exit a parse tree produced by the `masterStringOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterStringOption?: (ctx: MasterStringOptionContext) => void; - - /** - * Enter a parse tree produced by the `masterDecimalOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => void; - /** - * Exit a parse tree produced by the `masterDecimalOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => void; - - /** - * Enter a parse tree produced by the `masterBoolOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterBoolOption?: (ctx: MasterBoolOptionContext) => void; - /** - * Exit a parse tree produced by the `masterBoolOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterBoolOption?: (ctx: MasterBoolOptionContext) => void; - - /** - * Enter a parse tree produced by the `masterRealOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterRealOption?: (ctx: MasterRealOptionContext) => void; - /** - * Exit a parse tree produced by the `masterRealOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterRealOption?: (ctx: MasterRealOptionContext) => void; - - /** - * Enter a parse tree produced by the `masterUidListOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterUidListOption?: (ctx: MasterUidListOptionContext) => void; - /** - * Exit a parse tree produced by the `masterUidListOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterUidListOption?: (ctx: MasterUidListOptionContext) => void; - - /** - * Enter a parse tree produced by the `gtidsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - enterGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => void; - /** - * Exit a parse tree produced by the `gtidsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - exitGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => void; - - /** - * Enter a parse tree produced by the `masterLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - enterMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => void; - /** - * Exit a parse tree produced by the `masterLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - exitMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => void; - - /** - * Enter a parse tree produced by the `relayLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - enterRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => void; - /** - * Exit a parse tree produced by the `relayLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - exitRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => void; - - /** - * Enter a parse tree produced by the `sqlGapsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - enterSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => void; - /** - * Exit a parse tree produced by the `sqlGapsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - */ - exitSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => void; - - /** - * Enter a parse tree produced by the `copyCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - enterCopyCreateTable?: (ctx: CopyCreateTableContext) => void; - /** - * Exit a parse tree produced by the `copyCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - exitCopyCreateTable?: (ctx: CopyCreateTableContext) => void; - - /** - * Enter a parse tree produced by the `queryCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - enterQueryCreateTable?: (ctx: QueryCreateTableContext) => void; - /** - * Exit a parse tree produced by the `queryCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - exitQueryCreateTable?: (ctx: QueryCreateTableContext) => void; - - /** - * Enter a parse tree produced by the `columnCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - enterColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; - /** - * Exit a parse tree produced by the `columnCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - */ - exitColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; - - /** - * Enter a parse tree produced by the `partitionFunctionHash` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => void; - /** - * Exit a parse tree produced by the `partitionFunctionHash` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => void; - - /** - * Enter a parse tree produced by the `partitionFunctionKey` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => void; - /** - * Exit a parse tree produced by the `partitionFunctionKey` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => void; - - /** - * Enter a parse tree produced by the `partitionFunctionRange` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => void; - /** - * Exit a parse tree produced by the `partitionFunctionRange` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => void; - - /** - * Enter a parse tree produced by the `partitionFunctionList` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterPartitionFunctionList?: (ctx: PartitionFunctionListContext) => void; - /** - * Exit a parse tree produced by the `partitionFunctionList` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitPartitionFunctionList?: (ctx: PartitionFunctionListContext) => void; - - /** - * Enter a parse tree produced by the `detailRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - enterDetailRevoke?: (ctx: DetailRevokeContext) => void; - /** - * Exit a parse tree produced by the `detailRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - exitDetailRevoke?: (ctx: DetailRevokeContext) => void; - - /** - * Enter a parse tree produced by the `shortRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - enterShortRevoke?: (ctx: ShortRevokeContext) => void; - /** - * Exit a parse tree produced by the `shortRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - exitShortRevoke?: (ctx: ShortRevokeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.program`. - * @param ctx the parse tree - */ - enterProgram?: (ctx: ProgramContext) => void; - /** - * Exit a parse tree produced by `SqlParser.program`. - * @param ctx the parse tree - */ - exitProgram?: (ctx: ProgramContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.statement`. - * @param ctx the parse tree - */ - enterStatement?: (ctx: StatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.statement`. - * @param ctx the parse tree - */ - exitStatement?: (ctx: StatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.sqlStatements`. - * @param ctx the parse tree - */ - enterSqlStatements?: (ctx: SqlStatementsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.sqlStatements`. - * @param ctx the parse tree - */ - exitSqlStatements?: (ctx: SqlStatementsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.sqlStatement`. - * @param ctx the parse tree - */ - enterSqlStatement?: (ctx: SqlStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.sqlStatement`. - * @param ctx the parse tree - */ - exitSqlStatement?: (ctx: SqlStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.emptyStatement`. - * @param ctx the parse tree - */ - enterEmptyStatement?: (ctx: EmptyStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.emptyStatement`. - * @param ctx the parse tree - */ - exitEmptyStatement?: (ctx: EmptyStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.ddlStatement`. - * @param ctx the parse tree - */ - enterDdlStatement?: (ctx: DdlStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.ddlStatement`. - * @param ctx the parse tree - */ - exitDdlStatement?: (ctx: DdlStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dmlStatement`. - * @param ctx the parse tree - */ - enterDmlStatement?: (ctx: DmlStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dmlStatement`. - * @param ctx the parse tree - */ - exitDmlStatement?: (ctx: DmlStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.transactionStatement`. - * @param ctx the parse tree - */ - enterTransactionStatement?: (ctx: TransactionStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.transactionStatement`. - * @param ctx the parse tree - */ - exitTransactionStatement?: (ctx: TransactionStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.replicationStatement`. - * @param ctx the parse tree - */ - enterReplicationStatement?: (ctx: ReplicationStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.replicationStatement`. - * @param ctx the parse tree - */ - exitReplicationStatement?: (ctx: ReplicationStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.preparedStatement`. - * @param ctx the parse tree - */ - enterPreparedStatement?: (ctx: PreparedStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.preparedStatement`. - * @param ctx the parse tree - */ - exitPreparedStatement?: (ctx: PreparedStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.compoundStatement`. - * @param ctx the parse tree - */ - enterCompoundStatement?: (ctx: CompoundStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.compoundStatement`. - * @param ctx the parse tree - */ - exitCompoundStatement?: (ctx: CompoundStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.administrationStatement`. - * @param ctx the parse tree - */ - enterAdministrationStatement?: (ctx: AdministrationStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.administrationStatement`. - * @param ctx the parse tree - */ - exitAdministrationStatement?: (ctx: AdministrationStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.utilityStatement`. - * @param ctx the parse tree - */ - enterUtilityStatement?: (ctx: UtilityStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.utilityStatement`. - * @param ctx the parse tree - */ - exitUtilityStatement?: (ctx: UtilityStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createDatabase`. - * @param ctx the parse tree - */ - enterCreateDatabase?: (ctx: CreateDatabaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createDatabase`. - * @param ctx the parse tree - */ - exitCreateDatabase?: (ctx: CreateDatabaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createEvent`. - * @param ctx the parse tree - */ - enterCreateEvent?: (ctx: CreateEventContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createEvent`. - * @param ctx the parse tree - */ - exitCreateEvent?: (ctx: CreateEventContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createIndex`. - * @param ctx the parse tree - */ - enterCreateIndex?: (ctx: CreateIndexContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createIndex`. - * @param ctx the parse tree - */ - exitCreateIndex?: (ctx: CreateIndexContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createLogfileGroup`. - * @param ctx the parse tree - */ - enterCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createLogfileGroup`. - * @param ctx the parse tree - */ - exitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createProcedure`. - * @param ctx the parse tree - */ - enterCreateProcedure?: (ctx: CreateProcedureContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createProcedure`. - * @param ctx the parse tree - */ - exitCreateProcedure?: (ctx: CreateProcedureContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createFunction`. - * @param ctx the parse tree - */ - enterCreateFunction?: (ctx: CreateFunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createFunction`. - * @param ctx the parse tree - */ - exitCreateFunction?: (ctx: CreateFunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createServer`. - * @param ctx the parse tree - */ - enterCreateServer?: (ctx: CreateServerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createServer`. - * @param ctx the parse tree - */ - exitCreateServer?: (ctx: CreateServerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createTable`. - * @param ctx the parse tree - */ - enterCreateTable?: (ctx: CreateTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createTable`. - * @param ctx the parse tree - */ - exitCreateTable?: (ctx: CreateTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createTablespaceInnodb`. - * @param ctx the parse tree - */ - enterCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createTablespaceInnodb`. - * @param ctx the parse tree - */ - exitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createTablespaceNdb`. - * @param ctx the parse tree - */ - enterCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createTablespaceNdb`. - * @param ctx the parse tree - */ - exitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createTrigger`. - * @param ctx the parse tree - */ - enterCreateTrigger?: (ctx: CreateTriggerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createTrigger`. - * @param ctx the parse tree - */ - exitCreateTrigger?: (ctx: CreateTriggerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createView`. - * @param ctx the parse tree - */ - enterCreateView?: (ctx: CreateViewContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createView`. - * @param ctx the parse tree - */ - exitCreateView?: (ctx: CreateViewContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createDatabaseOption`. - * @param ctx the parse tree - */ - enterCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createDatabaseOption`. - * @param ctx the parse tree - */ - exitCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.ownerStatement`. - * @param ctx the parse tree - */ - enterOwnerStatement?: (ctx: OwnerStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.ownerStatement`. - * @param ctx the parse tree - */ - exitOwnerStatement?: (ctx: OwnerStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - enterScheduleExpression?: (ctx: ScheduleExpressionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.scheduleExpression`. - * @param ctx the parse tree - */ - exitScheduleExpression?: (ctx: ScheduleExpressionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.timestampValue`. - * @param ctx the parse tree - */ - enterTimestampValue?: (ctx: TimestampValueContext) => void; - /** - * Exit a parse tree produced by `SqlParser.timestampValue`. - * @param ctx the parse tree - */ - exitTimestampValue?: (ctx: TimestampValueContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.intervalExpr`. - * @param ctx the parse tree - */ - enterIntervalExpr?: (ctx: IntervalExprContext) => void; - /** - * Exit a parse tree produced by `SqlParser.intervalExpr`. - * @param ctx the parse tree - */ - exitIntervalExpr?: (ctx: IntervalExprContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.intervalType`. - * @param ctx the parse tree - */ - enterIntervalType?: (ctx: IntervalTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.intervalType`. - * @param ctx the parse tree - */ - exitIntervalType?: (ctx: IntervalTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.enableType`. - * @param ctx the parse tree - */ - enterEnableType?: (ctx: EnableTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.enableType`. - * @param ctx the parse tree - */ - exitEnableType?: (ctx: EnableTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexType`. - * @param ctx the parse tree - */ - enterIndexType?: (ctx: IndexTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexType`. - * @param ctx the parse tree - */ - exitIndexType?: (ctx: IndexTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexOption`. - * @param ctx the parse tree - */ - enterIndexOption?: (ctx: IndexOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexOption`. - * @param ctx the parse tree - */ - exitIndexOption?: (ctx: IndexOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.procedureParameter`. - * @param ctx the parse tree - */ - enterProcedureParameter?: (ctx: ProcedureParameterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.procedureParameter`. - * @param ctx the parse tree - */ - exitProcedureParameter?: (ctx: ProcedureParameterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.functionParameter`. - * @param ctx the parse tree - */ - enterFunctionParameter?: (ctx: FunctionParameterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.functionParameter`. - * @param ctx the parse tree - */ - exitFunctionParameter?: (ctx: FunctionParameterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.routineOption`. - * @param ctx the parse tree - */ - enterRoutineOption?: (ctx: RoutineOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.routineOption`. - * @param ctx the parse tree - */ - exitRoutineOption?: (ctx: RoutineOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.serverOption`. - * @param ctx the parse tree - */ - enterServerOption?: (ctx: ServerOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.serverOption`. - * @param ctx the parse tree - */ - exitServerOption?: (ctx: ServerOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createDefinitions`. - * @param ctx the parse tree - */ - enterCreateDefinitions?: (ctx: CreateDefinitionsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createDefinitions`. - * @param ctx the parse tree - */ - exitCreateDefinitions?: (ctx: CreateDefinitionsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - enterCreateDefinition?: (ctx: CreateDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createDefinition`. - * @param ctx the parse tree - */ - exitCreateDefinition?: (ctx: CreateDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.columnDefinition`. - * @param ctx the parse tree - */ - enterColumnDefinition?: (ctx: ColumnDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.columnDefinition`. - * @param ctx the parse tree - */ - exitColumnDefinition?: (ctx: ColumnDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - enterColumnConstraint?: (ctx: ColumnConstraintContext) => void; - /** - * Exit a parse tree produced by `SqlParser.columnConstraint`. - * @param ctx the parse tree - */ - exitColumnConstraint?: (ctx: ColumnConstraintContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - enterTableConstraint?: (ctx: TableConstraintContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableConstraint`. - * @param ctx the parse tree - */ - exitTableConstraint?: (ctx: TableConstraintContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.referenceDefinition`. - * @param ctx the parse tree - */ - enterReferenceDefinition?: (ctx: ReferenceDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.referenceDefinition`. - * @param ctx the parse tree - */ - exitReferenceDefinition?: (ctx: ReferenceDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.referenceAction`. - * @param ctx the parse tree - */ - enterReferenceAction?: (ctx: ReferenceActionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.referenceAction`. - * @param ctx the parse tree - */ - exitReferenceAction?: (ctx: ReferenceActionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.referenceControlType`. - * @param ctx the parse tree - */ - enterReferenceControlType?: (ctx: ReferenceControlTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.referenceControlType`. - * @param ctx the parse tree - */ - exitReferenceControlType?: (ctx: ReferenceControlTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - enterIndexColumnDefinition?: (ctx: IndexColumnDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - */ - exitIndexColumnDefinition?: (ctx: IndexColumnDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableOption`. - * @param ctx the parse tree - */ - enterTableOption?: (ctx: TableOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableOption`. - * @param ctx the parse tree - */ - exitTableOption?: (ctx: TableOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tablespaceStorage`. - * @param ctx the parse tree - */ - enterTablespaceStorage?: (ctx: TablespaceStorageContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tablespaceStorage`. - * @param ctx the parse tree - */ - exitTablespaceStorage?: (ctx: TablespaceStorageContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionDefinitions`. - * @param ctx the parse tree - */ - enterPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionDefinitions`. - * @param ctx the parse tree - */ - exitPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - enterSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - */ - exitSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - enterPartitionDefinition?: (ctx: PartitionDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionDefinition`. - * @param ctx the parse tree - */ - exitPartitionDefinition?: (ctx: PartitionDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionDefinerAtom`. - * @param ctx the parse tree - */ - enterPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionDefinerAtom`. - * @param ctx the parse tree - */ - exitPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionDefinerVector`. - * @param ctx the parse tree - */ - enterPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionDefinerVector`. - * @param ctx the parse tree - */ - exitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.subpartitionDefinition`. - * @param ctx the parse tree - */ - enterSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.subpartitionDefinition`. - * @param ctx the parse tree - */ - exitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - enterPartitionOption?: (ctx: PartitionOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.partitionOption`. - * @param ctx the parse tree - */ - exitPartitionOption?: (ctx: PartitionOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - enterAlterDatabase?: (ctx: AlterDatabaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterDatabase`. - * @param ctx the parse tree - */ - exitAlterDatabase?: (ctx: AlterDatabaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterEvent`. - * @param ctx the parse tree - */ - enterAlterEvent?: (ctx: AlterEventContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterEvent`. - * @param ctx the parse tree - */ - exitAlterEvent?: (ctx: AlterEventContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterFunction`. - * @param ctx the parse tree - */ - enterAlterFunction?: (ctx: AlterFunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterFunction`. - * @param ctx the parse tree - */ - exitAlterFunction?: (ctx: AlterFunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterInstance`. - * @param ctx the parse tree - */ - enterAlterInstance?: (ctx: AlterInstanceContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterInstance`. - * @param ctx the parse tree - */ - exitAlterInstance?: (ctx: AlterInstanceContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterLogfileGroup`. - * @param ctx the parse tree - */ - enterAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterLogfileGroup`. - * @param ctx the parse tree - */ - exitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterProcedure`. - * @param ctx the parse tree - */ - enterAlterProcedure?: (ctx: AlterProcedureContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterProcedure`. - * @param ctx the parse tree - */ - exitAlterProcedure?: (ctx: AlterProcedureContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterServer`. - * @param ctx the parse tree - */ - enterAlterServer?: (ctx: AlterServerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterServer`. - * @param ctx the parse tree - */ - exitAlterServer?: (ctx: AlterServerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterTable`. - * @param ctx the parse tree - */ - enterAlterTable?: (ctx: AlterTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterTable`. - * @param ctx the parse tree - */ - exitAlterTable?: (ctx: AlterTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterTablespace`. - * @param ctx the parse tree - */ - enterAlterTablespace?: (ctx: AlterTablespaceContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterTablespace`. - * @param ctx the parse tree - */ - exitAlterTablespace?: (ctx: AlterTablespaceContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterView`. - * @param ctx the parse tree - */ - enterAlterView?: (ctx: AlterViewContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterView`. - * @param ctx the parse tree - */ - exitAlterView?: (ctx: AlterViewContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - enterAlterSpecification?: (ctx: AlterSpecificationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterSpecification`. - * @param ctx the parse tree - */ - exitAlterSpecification?: (ctx: AlterSpecificationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropDatabase`. - * @param ctx the parse tree - */ - enterDropDatabase?: (ctx: DropDatabaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropDatabase`. - * @param ctx the parse tree - */ - exitDropDatabase?: (ctx: DropDatabaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropEvent`. - * @param ctx the parse tree - */ - enterDropEvent?: (ctx: DropEventContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropEvent`. - * @param ctx the parse tree - */ - exitDropEvent?: (ctx: DropEventContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropIndex`. - * @param ctx the parse tree - */ - enterDropIndex?: (ctx: DropIndexContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropIndex`. - * @param ctx the parse tree - */ - exitDropIndex?: (ctx: DropIndexContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropLogfileGroup`. - * @param ctx the parse tree - */ - enterDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropLogfileGroup`. - * @param ctx the parse tree - */ - exitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropProcedure`. - * @param ctx the parse tree - */ - enterDropProcedure?: (ctx: DropProcedureContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropProcedure`. - * @param ctx the parse tree - */ - exitDropProcedure?: (ctx: DropProcedureContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropFunction`. - * @param ctx the parse tree - */ - enterDropFunction?: (ctx: DropFunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropFunction`. - * @param ctx the parse tree - */ - exitDropFunction?: (ctx: DropFunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropServer`. - * @param ctx the parse tree - */ - enterDropServer?: (ctx: DropServerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropServer`. - * @param ctx the parse tree - */ - exitDropServer?: (ctx: DropServerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropTable`. - * @param ctx the parse tree - */ - enterDropTable?: (ctx: DropTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropTable`. - * @param ctx the parse tree - */ - exitDropTable?: (ctx: DropTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropTablespace`. - * @param ctx the parse tree - */ - enterDropTablespace?: (ctx: DropTablespaceContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropTablespace`. - * @param ctx the parse tree - */ - exitDropTablespace?: (ctx: DropTablespaceContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropTrigger`. - * @param ctx the parse tree - */ - enterDropTrigger?: (ctx: DropTriggerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropTrigger`. - * @param ctx the parse tree - */ - exitDropTrigger?: (ctx: DropTriggerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropView`. - * @param ctx the parse tree - */ - enterDropView?: (ctx: DropViewContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropView`. - * @param ctx the parse tree - */ - exitDropView?: (ctx: DropViewContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.renameTable`. - * @param ctx the parse tree - */ - enterRenameTable?: (ctx: RenameTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.renameTable`. - * @param ctx the parse tree - */ - exitRenameTable?: (ctx: RenameTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.renameTableClause`. - * @param ctx the parse tree - */ - enterRenameTableClause?: (ctx: RenameTableClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.renameTableClause`. - * @param ctx the parse tree - */ - exitRenameTableClause?: (ctx: RenameTableClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.truncateTable`. - * @param ctx the parse tree - */ - enterTruncateTable?: (ctx: TruncateTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.truncateTable`. - * @param ctx the parse tree - */ - exitTruncateTable?: (ctx: TruncateTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.callStatement`. - * @param ctx the parse tree - */ - enterCallStatement?: (ctx: CallStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.callStatement`. - * @param ctx the parse tree - */ - exitCallStatement?: (ctx: CallStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.deleteStatement`. - * @param ctx the parse tree - */ - enterDeleteStatement?: (ctx: DeleteStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.deleteStatement`. - * @param ctx the parse tree - */ - exitDeleteStatement?: (ctx: DeleteStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.doStatement`. - * @param ctx the parse tree - */ - enterDoStatement?: (ctx: DoStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.doStatement`. - * @param ctx the parse tree - */ - exitDoStatement?: (ctx: DoStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerStatement`. - * @param ctx the parse tree - */ - enterHandlerStatement?: (ctx: HandlerStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerStatement`. - * @param ctx the parse tree - */ - exitHandlerStatement?: (ctx: HandlerStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.insertStatement`. - * @param ctx the parse tree - */ - enterInsertStatement?: (ctx: InsertStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.insertStatement`. - * @param ctx the parse tree - */ - exitInsertStatement?: (ctx: InsertStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.loadDataStatement`. - * @param ctx the parse tree - */ - enterLoadDataStatement?: (ctx: LoadDataStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.loadDataStatement`. - * @param ctx the parse tree - */ - exitLoadDataStatement?: (ctx: LoadDataStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.loadXmlStatement`. - * @param ctx the parse tree - */ - enterLoadXmlStatement?: (ctx: LoadXmlStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.loadXmlStatement`. - * @param ctx the parse tree - */ - exitLoadXmlStatement?: (ctx: LoadXmlStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.replaceStatement`. - * @param ctx the parse tree - */ - enterReplaceStatement?: (ctx: ReplaceStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.replaceStatement`. - * @param ctx the parse tree - */ - exitReplaceStatement?: (ctx: ReplaceStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - enterSelectStatement?: (ctx: SelectStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectStatement`. - * @param ctx the parse tree - */ - exitSelectStatement?: (ctx: SelectStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.updateStatement`. - * @param ctx the parse tree - */ - enterUpdateStatement?: (ctx: UpdateStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.updateStatement`. - * @param ctx the parse tree - */ - exitUpdateStatement?: (ctx: UpdateStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.insertStatementValue`. - * @param ctx the parse tree - */ - enterInsertStatementValue?: (ctx: InsertStatementValueContext) => void; - /** - * Exit a parse tree produced by `SqlParser.insertStatementValue`. - * @param ctx the parse tree - */ - exitInsertStatementValue?: (ctx: InsertStatementValueContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.updatedElement`. - * @param ctx the parse tree - */ - enterUpdatedElement?: (ctx: UpdatedElementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.updatedElement`. - * @param ctx the parse tree - */ - exitUpdatedElement?: (ctx: UpdatedElementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.assignmentField`. - * @param ctx the parse tree - */ - enterAssignmentField?: (ctx: AssignmentFieldContext) => void; - /** - * Exit a parse tree produced by `SqlParser.assignmentField`. - * @param ctx the parse tree - */ - exitAssignmentField?: (ctx: AssignmentFieldContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lockClause`. - * @param ctx the parse tree - */ - enterLockClause?: (ctx: LockClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lockClause`. - * @param ctx the parse tree - */ - exitLockClause?: (ctx: LockClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.singleDeleteStatement`. - * @param ctx the parse tree - */ - enterSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.singleDeleteStatement`. - * @param ctx the parse tree - */ - exitSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.multipleDeleteStatement`. - * @param ctx the parse tree - */ - enterMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.multipleDeleteStatement`. - * @param ctx the parse tree - */ - exitMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerOpenStatement`. - * @param ctx the parse tree - */ - enterHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerOpenStatement`. - * @param ctx the parse tree - */ - exitHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerReadIndexStatement`. - * @param ctx the parse tree - */ - enterHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerReadIndexStatement`. - * @param ctx the parse tree - */ - exitHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerReadStatement`. - * @param ctx the parse tree - */ - enterHandlerReadStatement?: (ctx: HandlerReadStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerReadStatement`. - * @param ctx the parse tree - */ - exitHandlerReadStatement?: (ctx: HandlerReadStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerCloseStatement`. - * @param ctx the parse tree - */ - enterHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerCloseStatement`. - * @param ctx the parse tree - */ - exitHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.singleUpdateStatement`. - * @param ctx the parse tree - */ - enterSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.singleUpdateStatement`. - * @param ctx the parse tree - */ - exitSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.multipleUpdateStatement`. - * @param ctx the parse tree - */ - enterMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.multipleUpdateStatement`. - * @param ctx the parse tree - */ - exitMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.orderByClause`. - * @param ctx the parse tree - */ - enterOrderByClause?: (ctx: OrderByClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.orderByClause`. - * @param ctx the parse tree - */ - exitOrderByClause?: (ctx: OrderByClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.orderByExpression`. - * @param ctx the parse tree - */ - enterOrderByExpression?: (ctx: OrderByExpressionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.orderByExpression`. - * @param ctx the parse tree - */ - exitOrderByExpression?: (ctx: OrderByExpressionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableSources`. - * @param ctx the parse tree - */ - enterTableSources?: (ctx: TableSourcesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableSources`. - * @param ctx the parse tree - */ - exitTableSources?: (ctx: TableSourcesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableSource`. - * @param ctx the parse tree - */ - enterTableSource?: (ctx: TableSourceContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableSource`. - * @param ctx the parse tree - */ - exitTableSource?: (ctx: TableSourceContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - enterTableSourceItem?: (ctx: TableSourceItemContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableSourceItem`. - * @param ctx the parse tree - */ - exitTableSourceItem?: (ctx: TableSourceItemContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexHint`. - * @param ctx the parse tree - */ - enterIndexHint?: (ctx: IndexHintContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexHint`. - * @param ctx the parse tree - */ - exitIndexHint?: (ctx: IndexHintContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexHintType`. - * @param ctx the parse tree - */ - enterIndexHintType?: (ctx: IndexHintTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexHintType`. - * @param ctx the parse tree - */ - exitIndexHintType?: (ctx: IndexHintTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.joinPart`. - * @param ctx the parse tree - */ - enterJoinPart?: (ctx: JoinPartContext) => void; - /** - * Exit a parse tree produced by `SqlParser.joinPart`. - * @param ctx the parse tree - */ - exitJoinPart?: (ctx: JoinPartContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.queryExpression`. - * @param ctx the parse tree - */ - enterQueryExpression?: (ctx: QueryExpressionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.queryExpression`. - * @param ctx the parse tree - */ - exitQueryExpression?: (ctx: QueryExpressionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.queryExpressionNointo`. - * @param ctx the parse tree - */ - enterQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => void; - /** - * Exit a parse tree produced by `SqlParser.queryExpressionNointo`. - * @param ctx the parse tree - */ - exitQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.querySpecification`. - * @param ctx the parse tree - */ - enterQuerySpecification?: (ctx: QuerySpecificationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.querySpecification`. - * @param ctx the parse tree - */ - exitQuerySpecification?: (ctx: QuerySpecificationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.querySpecificationNointo`. - * @param ctx the parse tree - */ - enterQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => void; - /** - * Exit a parse tree produced by `SqlParser.querySpecificationNointo`. - * @param ctx the parse tree - */ - exitQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.unionParenthesis`. - * @param ctx the parse tree - */ - enterUnionParenthesis?: (ctx: UnionParenthesisContext) => void; - /** - * Exit a parse tree produced by `SqlParser.unionParenthesis`. - * @param ctx the parse tree - */ - exitUnionParenthesis?: (ctx: UnionParenthesisContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.unionStatement`. - * @param ctx the parse tree - */ - enterUnionStatement?: (ctx: UnionStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.unionStatement`. - * @param ctx the parse tree - */ - exitUnionStatement?: (ctx: UnionStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectSpec`. - * @param ctx the parse tree - */ - enterSelectSpec?: (ctx: SelectSpecContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectSpec`. - * @param ctx the parse tree - */ - exitSelectSpec?: (ctx: SelectSpecContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectElements`. - * @param ctx the parse tree - */ - enterSelectElements?: (ctx: SelectElementsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectElements`. - * @param ctx the parse tree - */ - exitSelectElements?: (ctx: SelectElementsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectElement`. - * @param ctx the parse tree - */ - enterSelectElement?: (ctx: SelectElementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectElement`. - * @param ctx the parse tree - */ - exitSelectElement?: (ctx: SelectElementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - enterSelectIntoExpression?: (ctx: SelectIntoExpressionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - */ - exitSelectIntoExpression?: (ctx: SelectIntoExpressionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectFieldsInto`. - * @param ctx the parse tree - */ - enterSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectFieldsInto`. - * @param ctx the parse tree - */ - exitSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.selectLinesInto`. - * @param ctx the parse tree - */ - enterSelectLinesInto?: (ctx: SelectLinesIntoContext) => void; - /** - * Exit a parse tree produced by `SqlParser.selectLinesInto`. - * @param ctx the parse tree - */ - exitSelectLinesInto?: (ctx: SelectLinesIntoContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.fromClause`. - * @param ctx the parse tree - */ - enterFromClause?: (ctx: FromClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.fromClause`. - * @param ctx the parse tree - */ - exitFromClause?: (ctx: FromClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.groupByItem`. - * @param ctx the parse tree - */ - enterGroupByItem?: (ctx: GroupByItemContext) => void; - /** - * Exit a parse tree produced by `SqlParser.groupByItem`. - * @param ctx the parse tree - */ - exitGroupByItem?: (ctx: GroupByItemContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.limitClause`. - * @param ctx the parse tree - */ - enterLimitClause?: (ctx: LimitClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.limitClause`. - * @param ctx the parse tree - */ - exitLimitClause?: (ctx: LimitClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.limitClauseAtom`. - * @param ctx the parse tree - */ - enterLimitClauseAtom?: (ctx: LimitClauseAtomContext) => void; - /** - * Exit a parse tree produced by `SqlParser.limitClauseAtom`. - * @param ctx the parse tree - */ - exitLimitClauseAtom?: (ctx: LimitClauseAtomContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.startTransaction`. - * @param ctx the parse tree - */ - enterStartTransaction?: (ctx: StartTransactionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.startTransaction`. - * @param ctx the parse tree - */ - exitStartTransaction?: (ctx: StartTransactionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.beginWork`. - * @param ctx the parse tree - */ - enterBeginWork?: (ctx: BeginWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.beginWork`. - * @param ctx the parse tree - */ - exitBeginWork?: (ctx: BeginWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.commitWork`. - * @param ctx the parse tree - */ - enterCommitWork?: (ctx: CommitWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.commitWork`. - * @param ctx the parse tree - */ - exitCommitWork?: (ctx: CommitWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.rollbackWork`. - * @param ctx the parse tree - */ - enterRollbackWork?: (ctx: RollbackWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.rollbackWork`. - * @param ctx the parse tree - */ - exitRollbackWork?: (ctx: RollbackWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.savepointStatement`. - * @param ctx the parse tree - */ - enterSavepointStatement?: (ctx: SavepointStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.savepointStatement`. - * @param ctx the parse tree - */ - exitSavepointStatement?: (ctx: SavepointStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.rollbackStatement`. - * @param ctx the parse tree - */ - enterRollbackStatement?: (ctx: RollbackStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.rollbackStatement`. - * @param ctx the parse tree - */ - exitRollbackStatement?: (ctx: RollbackStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.releaseStatement`. - * @param ctx the parse tree - */ - enterReleaseStatement?: (ctx: ReleaseStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.releaseStatement`. - * @param ctx the parse tree - */ - exitReleaseStatement?: (ctx: ReleaseStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lockTables`. - * @param ctx the parse tree - */ - enterLockTables?: (ctx: LockTablesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lockTables`. - * @param ctx the parse tree - */ - exitLockTables?: (ctx: LockTablesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.unlockTables`. - * @param ctx the parse tree - */ - enterUnlockTables?: (ctx: UnlockTablesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.unlockTables`. - * @param ctx the parse tree - */ - exitUnlockTables?: (ctx: UnlockTablesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.setAutocommitStatement`. - * @param ctx the parse tree - */ - enterSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.setAutocommitStatement`. - * @param ctx the parse tree - */ - exitSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.setTransactionStatement`. - * @param ctx the parse tree - */ - enterSetTransactionStatement?: (ctx: SetTransactionStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.setTransactionStatement`. - * @param ctx the parse tree - */ - exitSetTransactionStatement?: (ctx: SetTransactionStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.transactionMode`. - * @param ctx the parse tree - */ - enterTransactionMode?: (ctx: TransactionModeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.transactionMode`. - * @param ctx the parse tree - */ - exitTransactionMode?: (ctx: TransactionModeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lockTableElement`. - * @param ctx the parse tree - */ - enterLockTableElement?: (ctx: LockTableElementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lockTableElement`. - * @param ctx the parse tree - */ - exitLockTableElement?: (ctx: LockTableElementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lockAction`. - * @param ctx the parse tree - */ - enterLockAction?: (ctx: LockActionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lockAction`. - * @param ctx the parse tree - */ - exitLockAction?: (ctx: LockActionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.transactionOption`. - * @param ctx the parse tree - */ - enterTransactionOption?: (ctx: TransactionOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.transactionOption`. - * @param ctx the parse tree - */ - exitTransactionOption?: (ctx: TransactionOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.transactionLevel`. - * @param ctx the parse tree - */ - enterTransactionLevel?: (ctx: TransactionLevelContext) => void; - /** - * Exit a parse tree produced by `SqlParser.transactionLevel`. - * @param ctx the parse tree - */ - exitTransactionLevel?: (ctx: TransactionLevelContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.changeMaster`. - * @param ctx the parse tree - */ - enterChangeMaster?: (ctx: ChangeMasterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.changeMaster`. - * @param ctx the parse tree - */ - exitChangeMaster?: (ctx: ChangeMasterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.changeReplicationFilter`. - * @param ctx the parse tree - */ - enterChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.changeReplicationFilter`. - * @param ctx the parse tree - */ - exitChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.purgeBinaryLogs`. - * @param ctx the parse tree - */ - enterPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.purgeBinaryLogs`. - * @param ctx the parse tree - */ - exitPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.resetMaster`. - * @param ctx the parse tree - */ - enterResetMaster?: (ctx: ResetMasterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.resetMaster`. - * @param ctx the parse tree - */ - exitResetMaster?: (ctx: ResetMasterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.resetSlave`. - * @param ctx the parse tree - */ - enterResetSlave?: (ctx: ResetSlaveContext) => void; - /** - * Exit a parse tree produced by `SqlParser.resetSlave`. - * @param ctx the parse tree - */ - exitResetSlave?: (ctx: ResetSlaveContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.startSlave`. - * @param ctx the parse tree - */ - enterStartSlave?: (ctx: StartSlaveContext) => void; - /** - * Exit a parse tree produced by `SqlParser.startSlave`. - * @param ctx the parse tree - */ - exitStartSlave?: (ctx: StartSlaveContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.stopSlave`. - * @param ctx the parse tree - */ - enterStopSlave?: (ctx: StopSlaveContext) => void; - /** - * Exit a parse tree produced by `SqlParser.stopSlave`. - * @param ctx the parse tree - */ - exitStopSlave?: (ctx: StopSlaveContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.startGroupReplication`. - * @param ctx the parse tree - */ - enterStartGroupReplication?: (ctx: StartGroupReplicationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.startGroupReplication`. - * @param ctx the parse tree - */ - exitStartGroupReplication?: (ctx: StartGroupReplicationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.stopGroupReplication`. - * @param ctx the parse tree - */ - enterStopGroupReplication?: (ctx: StopGroupReplicationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.stopGroupReplication`. - * @param ctx the parse tree - */ - exitStopGroupReplication?: (ctx: StopGroupReplicationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.masterOption`. - * @param ctx the parse tree - */ - enterMasterOption?: (ctx: MasterOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.masterOption`. - * @param ctx the parse tree - */ - exitMasterOption?: (ctx: MasterOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.stringMasterOption`. - * @param ctx the parse tree - */ - enterStringMasterOption?: (ctx: StringMasterOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.stringMasterOption`. - * @param ctx the parse tree - */ - exitStringMasterOption?: (ctx: StringMasterOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.decimalMasterOption`. - * @param ctx the parse tree - */ - enterDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.decimalMasterOption`. - * @param ctx the parse tree - */ - exitDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.boolMasterOption`. - * @param ctx the parse tree - */ - enterBoolMasterOption?: (ctx: BoolMasterOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.boolMasterOption`. - * @param ctx the parse tree - */ - exitBoolMasterOption?: (ctx: BoolMasterOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.channelOption`. - * @param ctx the parse tree - */ - enterChannelOption?: (ctx: ChannelOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.channelOption`. - * @param ctx the parse tree - */ - exitChannelOption?: (ctx: ChannelOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - enterReplicationFilter?: (ctx: ReplicationFilterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.replicationFilter`. - * @param ctx the parse tree - */ - exitReplicationFilter?: (ctx: ReplicationFilterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tablePair`. - * @param ctx the parse tree - */ - enterTablePair?: (ctx: TablePairContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tablePair`. - * @param ctx the parse tree - */ - exitTablePair?: (ctx: TablePairContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.threadType`. - * @param ctx the parse tree - */ - enterThreadType?: (ctx: ThreadTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.threadType`. - * @param ctx the parse tree - */ - exitThreadType?: (ctx: ThreadTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.untilOption`. - * @param ctx the parse tree - */ - enterUntilOption?: (ctx: UntilOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.untilOption`. - * @param ctx the parse tree - */ - exitUntilOption?: (ctx: UntilOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - enterConnectionOption?: (ctx: ConnectionOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.connectionOption`. - * @param ctx the parse tree - */ - exitConnectionOption?: (ctx: ConnectionOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.gtuidSet`. - * @param ctx the parse tree - */ - enterGtuidSet?: (ctx: GtuidSetContext) => void; - /** - * Exit a parse tree produced by `SqlParser.gtuidSet`. - * @param ctx the parse tree - */ - exitGtuidSet?: (ctx: GtuidSetContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaStartTransaction`. - * @param ctx the parse tree - */ - enterXaStartTransaction?: (ctx: XaStartTransactionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaStartTransaction`. - * @param ctx the parse tree - */ - exitXaStartTransaction?: (ctx: XaStartTransactionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaEndTransaction`. - * @param ctx the parse tree - */ - enterXaEndTransaction?: (ctx: XaEndTransactionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaEndTransaction`. - * @param ctx the parse tree - */ - exitXaEndTransaction?: (ctx: XaEndTransactionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaPrepareStatement`. - * @param ctx the parse tree - */ - enterXaPrepareStatement?: (ctx: XaPrepareStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaPrepareStatement`. - * @param ctx the parse tree - */ - exitXaPrepareStatement?: (ctx: XaPrepareStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaCommitWork`. - * @param ctx the parse tree - */ - enterXaCommitWork?: (ctx: XaCommitWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaCommitWork`. - * @param ctx the parse tree - */ - exitXaCommitWork?: (ctx: XaCommitWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaRollbackWork`. - * @param ctx the parse tree - */ - enterXaRollbackWork?: (ctx: XaRollbackWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaRollbackWork`. - * @param ctx the parse tree - */ - exitXaRollbackWork?: (ctx: XaRollbackWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xaRecoverWork`. - * @param ctx the parse tree - */ - enterXaRecoverWork?: (ctx: XaRecoverWorkContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xaRecoverWork`. - * @param ctx the parse tree - */ - exitXaRecoverWork?: (ctx: XaRecoverWorkContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.prepareStatement`. - * @param ctx the parse tree - */ - enterPrepareStatement?: (ctx: PrepareStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.prepareStatement`. - * @param ctx the parse tree - */ - exitPrepareStatement?: (ctx: PrepareStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.executeStatement`. - * @param ctx the parse tree - */ - enterExecuteStatement?: (ctx: ExecuteStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.executeStatement`. - * @param ctx the parse tree - */ - exitExecuteStatement?: (ctx: ExecuteStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.deallocatePrepare`. - * @param ctx the parse tree - */ - enterDeallocatePrepare?: (ctx: DeallocatePrepareContext) => void; - /** - * Exit a parse tree produced by `SqlParser.deallocatePrepare`. - * @param ctx the parse tree - */ - exitDeallocatePrepare?: (ctx: DeallocatePrepareContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.routineBody`. - * @param ctx the parse tree - */ - enterRoutineBody?: (ctx: RoutineBodyContext) => void; - /** - * Exit a parse tree produced by `SqlParser.routineBody`. - * @param ctx the parse tree - */ - exitRoutineBody?: (ctx: RoutineBodyContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.blockStatement`. - * @param ctx the parse tree - */ - enterBlockStatement?: (ctx: BlockStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.blockStatement`. - * @param ctx the parse tree - */ - exitBlockStatement?: (ctx: BlockStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.caseStatement`. - * @param ctx the parse tree - */ - enterCaseStatement?: (ctx: CaseStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.caseStatement`. - * @param ctx the parse tree - */ - exitCaseStatement?: (ctx: CaseStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.ifStatement`. - * @param ctx the parse tree - */ - enterIfStatement?: (ctx: IfStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.ifStatement`. - * @param ctx the parse tree - */ - exitIfStatement?: (ctx: IfStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.iterateStatement`. - * @param ctx the parse tree - */ - enterIterateStatement?: (ctx: IterateStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.iterateStatement`. - * @param ctx the parse tree - */ - exitIterateStatement?: (ctx: IterateStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.leaveStatement`. - * @param ctx the parse tree - */ - enterLeaveStatement?: (ctx: LeaveStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.leaveStatement`. - * @param ctx the parse tree - */ - exitLeaveStatement?: (ctx: LeaveStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.loopStatement`. - * @param ctx the parse tree - */ - enterLoopStatement?: (ctx: LoopStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.loopStatement`. - * @param ctx the parse tree - */ - exitLoopStatement?: (ctx: LoopStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.repeatStatement`. - * @param ctx the parse tree - */ - enterRepeatStatement?: (ctx: RepeatStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.repeatStatement`. - * @param ctx the parse tree - */ - exitRepeatStatement?: (ctx: RepeatStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.returnStatement`. - * @param ctx the parse tree - */ - enterReturnStatement?: (ctx: ReturnStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.returnStatement`. - * @param ctx the parse tree - */ - exitReturnStatement?: (ctx: ReturnStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.whileStatement`. - * @param ctx the parse tree - */ - enterWhileStatement?: (ctx: WhileStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.whileStatement`. - * @param ctx the parse tree - */ - exitWhileStatement?: (ctx: WhileStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - enterCursorStatement?: (ctx: CursorStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.cursorStatement`. - * @param ctx the parse tree - */ - exitCursorStatement?: (ctx: CursorStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.declareVariable`. - * @param ctx the parse tree - */ - enterDeclareVariable?: (ctx: DeclareVariableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.declareVariable`. - * @param ctx the parse tree - */ - exitDeclareVariable?: (ctx: DeclareVariableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.declareCondition`. - * @param ctx the parse tree - */ - enterDeclareCondition?: (ctx: DeclareConditionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.declareCondition`. - * @param ctx the parse tree - */ - exitDeclareCondition?: (ctx: DeclareConditionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.declareCursor`. - * @param ctx the parse tree - */ - enterDeclareCursor?: (ctx: DeclareCursorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.declareCursor`. - * @param ctx the parse tree - */ - exitDeclareCursor?: (ctx: DeclareCursorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.declareHandler`. - * @param ctx the parse tree - */ - enterDeclareHandler?: (ctx: DeclareHandlerContext) => void; - /** - * Exit a parse tree produced by `SqlParser.declareHandler`. - * @param ctx the parse tree - */ - exitDeclareHandler?: (ctx: DeclareHandlerContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - enterHandlerConditionValue?: (ctx: HandlerConditionValueContext) => void; - /** - * Exit a parse tree produced by `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - */ - exitHandlerConditionValue?: (ctx: HandlerConditionValueContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.procedureSqlStatement`. - * @param ctx the parse tree - */ - enterProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.procedureSqlStatement`. - * @param ctx the parse tree - */ - exitProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.caseAlternative`. - * @param ctx the parse tree - */ - enterCaseAlternative?: (ctx: CaseAlternativeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.caseAlternative`. - * @param ctx the parse tree - */ - exitCaseAlternative?: (ctx: CaseAlternativeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.elifAlternative`. - * @param ctx the parse tree - */ - enterElifAlternative?: (ctx: ElifAlternativeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.elifAlternative`. - * @param ctx the parse tree - */ - exitElifAlternative?: (ctx: ElifAlternativeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.alterUser`. - * @param ctx the parse tree - */ - enterAlterUser?: (ctx: AlterUserContext) => void; - /** - * Exit a parse tree produced by `SqlParser.alterUser`. - * @param ctx the parse tree - */ - exitAlterUser?: (ctx: AlterUserContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createUser`. - * @param ctx the parse tree - */ - enterCreateUser?: (ctx: CreateUserContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createUser`. - * @param ctx the parse tree - */ - exitCreateUser?: (ctx: CreateUserContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dropUser`. - * @param ctx the parse tree - */ - enterDropUser?: (ctx: DropUserContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dropUser`. - * @param ctx the parse tree - */ - exitDropUser?: (ctx: DropUserContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.grantStatement`. - * @param ctx the parse tree - */ - enterGrantStatement?: (ctx: GrantStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.grantStatement`. - * @param ctx the parse tree - */ - exitGrantStatement?: (ctx: GrantStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.grantProxy`. - * @param ctx the parse tree - */ - enterGrantProxy?: (ctx: GrantProxyContext) => void; - /** - * Exit a parse tree produced by `SqlParser.grantProxy`. - * @param ctx the parse tree - */ - exitGrantProxy?: (ctx: GrantProxyContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.renameUser`. - * @param ctx the parse tree - */ - enterRenameUser?: (ctx: RenameUserContext) => void; - /** - * Exit a parse tree produced by `SqlParser.renameUser`. - * @param ctx the parse tree - */ - exitRenameUser?: (ctx: RenameUserContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - enterRevokeStatement?: (ctx: RevokeStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.revokeStatement`. - * @param ctx the parse tree - */ - exitRevokeStatement?: (ctx: RevokeStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.revokeProxy`. - * @param ctx the parse tree - */ - enterRevokeProxy?: (ctx: RevokeProxyContext) => void; - /** - * Exit a parse tree produced by `SqlParser.revokeProxy`. - * @param ctx the parse tree - */ - exitRevokeProxy?: (ctx: RevokeProxyContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.setPasswordStatement`. - * @param ctx the parse tree - */ - enterSetPasswordStatement?: (ctx: SetPasswordStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.setPasswordStatement`. - * @param ctx the parse tree - */ - exitSetPasswordStatement?: (ctx: SetPasswordStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userSpecification`. - * @param ctx the parse tree - */ - enterUserSpecification?: (ctx: UserSpecificationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userSpecification`. - * @param ctx the parse tree - */ - exitUserSpecification?: (ctx: UserSpecificationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - enterUserAuthOption?: (ctx: UserAuthOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userAuthOption`. - * @param ctx the parse tree - */ - exitUserAuthOption?: (ctx: UserAuthOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tlsOption`. - * @param ctx the parse tree - */ - enterTlsOption?: (ctx: TlsOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tlsOption`. - * @param ctx the parse tree - */ - exitTlsOption?: (ctx: TlsOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userResourceOption`. - * @param ctx the parse tree - */ - enterUserResourceOption?: (ctx: UserResourceOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userResourceOption`. - * @param ctx the parse tree - */ - exitUserResourceOption?: (ctx: UserResourceOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userPasswordOption`. - * @param ctx the parse tree - */ - enterUserPasswordOption?: (ctx: UserPasswordOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userPasswordOption`. - * @param ctx the parse tree - */ - exitUserPasswordOption?: (ctx: UserPasswordOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userLockOption`. - * @param ctx the parse tree - */ - enterUserLockOption?: (ctx: UserLockOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userLockOption`. - * @param ctx the parse tree - */ - exitUserLockOption?: (ctx: UserLockOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.privelegeClause`. - * @param ctx the parse tree - */ - enterPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.privelegeClause`. - * @param ctx the parse tree - */ - exitPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.privilege`. - * @param ctx the parse tree - */ - enterPrivilege?: (ctx: PrivilegeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.privilege`. - * @param ctx the parse tree - */ - exitPrivilege?: (ctx: PrivilegeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - enterPrivilegeLevel?: (ctx: PrivilegeLevelContext) => void; - /** - * Exit a parse tree produced by `SqlParser.privilegeLevel`. - * @param ctx the parse tree - */ - exitPrivilegeLevel?: (ctx: PrivilegeLevelContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.renameUserClause`. - * @param ctx the parse tree - */ - enterRenameUserClause?: (ctx: RenameUserClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.renameUserClause`. - * @param ctx the parse tree - */ - exitRenameUserClause?: (ctx: RenameUserClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.analyzeTable`. - * @param ctx the parse tree - */ - enterAnalyzeTable?: (ctx: AnalyzeTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.analyzeTable`. - * @param ctx the parse tree - */ - exitAnalyzeTable?: (ctx: AnalyzeTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.checkTable`. - * @param ctx the parse tree - */ - enterCheckTable?: (ctx: CheckTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.checkTable`. - * @param ctx the parse tree - */ - exitCheckTable?: (ctx: CheckTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.checksumTable`. - * @param ctx the parse tree - */ - enterChecksumTable?: (ctx: ChecksumTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.checksumTable`. - * @param ctx the parse tree - */ - exitChecksumTable?: (ctx: ChecksumTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.optimizeTable`. - * @param ctx the parse tree - */ - enterOptimizeTable?: (ctx: OptimizeTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.optimizeTable`. - * @param ctx the parse tree - */ - exitOptimizeTable?: (ctx: OptimizeTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.repairTable`. - * @param ctx the parse tree - */ - enterRepairTable?: (ctx: RepairTableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.repairTable`. - * @param ctx the parse tree - */ - exitRepairTable?: (ctx: RepairTableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.checkTableOption`. - * @param ctx the parse tree - */ - enterCheckTableOption?: (ctx: CheckTableOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.checkTableOption`. - * @param ctx the parse tree - */ - exitCheckTableOption?: (ctx: CheckTableOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.createUdfunction`. - * @param ctx the parse tree - */ - enterCreateUdfunction?: (ctx: CreateUdfunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.createUdfunction`. - * @param ctx the parse tree - */ - exitCreateUdfunction?: (ctx: CreateUdfunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.installPlugin`. - * @param ctx the parse tree - */ - enterInstallPlugin?: (ctx: InstallPluginContext) => void; - /** - * Exit a parse tree produced by `SqlParser.installPlugin`. - * @param ctx the parse tree - */ - exitInstallPlugin?: (ctx: InstallPluginContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.uninstallPlugin`. - * @param ctx the parse tree - */ - enterUninstallPlugin?: (ctx: UninstallPluginContext) => void; - /** - * Exit a parse tree produced by `SqlParser.uninstallPlugin`. - * @param ctx the parse tree - */ - exitUninstallPlugin?: (ctx: UninstallPluginContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.setStatement`. - * @param ctx the parse tree - */ - enterSetStatement?: (ctx: SetStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.setStatement`. - * @param ctx the parse tree - */ - exitSetStatement?: (ctx: SetStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showStatement`. - * @param ctx the parse tree - */ - enterShowStatement?: (ctx: ShowStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showStatement`. - * @param ctx the parse tree - */ - exitShowStatement?: (ctx: ShowStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.variableClause`. - * @param ctx the parse tree - */ - enterVariableClause?: (ctx: VariableClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.variableClause`. - * @param ctx the parse tree - */ - exitVariableClause?: (ctx: VariableClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showCommonEntity`. - * @param ctx the parse tree - */ - enterShowCommonEntity?: (ctx: ShowCommonEntityContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showCommonEntity`. - * @param ctx the parse tree - */ - exitShowCommonEntity?: (ctx: ShowCommonEntityContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showFilter`. - * @param ctx the parse tree - */ - enterShowFilter?: (ctx: ShowFilterContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showFilter`. - * @param ctx the parse tree - */ - exitShowFilter?: (ctx: ShowFilterContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showGlobalInfoClause`. - * @param ctx the parse tree - */ - enterShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showGlobalInfoClause`. - * @param ctx the parse tree - */ - exitShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showSchemaEntity`. - * @param ctx the parse tree - */ - enterShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showSchemaEntity`. - * @param ctx the parse tree - */ - exitShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.showProfileType`. - * @param ctx the parse tree - */ - enterShowProfileType?: (ctx: ShowProfileTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.showProfileType`. - * @param ctx the parse tree - */ - exitShowProfileType?: (ctx: ShowProfileTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.binlogStatement`. - * @param ctx the parse tree - */ - enterBinlogStatement?: (ctx: BinlogStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.binlogStatement`. - * @param ctx the parse tree - */ - exitBinlogStatement?: (ctx: BinlogStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.cacheIndexStatement`. - * @param ctx the parse tree - */ - enterCacheIndexStatement?: (ctx: CacheIndexStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.cacheIndexStatement`. - * @param ctx the parse tree - */ - exitCacheIndexStatement?: (ctx: CacheIndexStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.flushStatement`. - * @param ctx the parse tree - */ - enterFlushStatement?: (ctx: FlushStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.flushStatement`. - * @param ctx the parse tree - */ - exitFlushStatement?: (ctx: FlushStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.killStatement`. - * @param ctx the parse tree - */ - enterKillStatement?: (ctx: KillStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.killStatement`. - * @param ctx the parse tree - */ - exitKillStatement?: (ctx: KillStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.loadIndexIntoCache`. - * @param ctx the parse tree - */ - enterLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => void; - /** - * Exit a parse tree produced by `SqlParser.loadIndexIntoCache`. - * @param ctx the parse tree - */ - exitLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.resetStatement`. - * @param ctx the parse tree - */ - enterResetStatement?: (ctx: ResetStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.resetStatement`. - * @param ctx the parse tree - */ - exitResetStatement?: (ctx: ResetStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.shutdownStatement`. - * @param ctx the parse tree - */ - enterShutdownStatement?: (ctx: ShutdownStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.shutdownStatement`. - * @param ctx the parse tree - */ - exitShutdownStatement?: (ctx: ShutdownStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableIndexes`. - * @param ctx the parse tree - */ - enterTableIndexes?: (ctx: TableIndexesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableIndexes`. - * @param ctx the parse tree - */ - exitTableIndexes?: (ctx: TableIndexesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.flushOption`. - * @param ctx the parse tree - */ - enterFlushOption?: (ctx: FlushOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.flushOption`. - * @param ctx the parse tree - */ - exitFlushOption?: (ctx: FlushOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.flushTableOption`. - * @param ctx the parse tree - */ - enterFlushTableOption?: (ctx: FlushTableOptionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.flushTableOption`. - * @param ctx the parse tree - */ - exitFlushTableOption?: (ctx: FlushTableOptionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.loadedTableIndexes`. - * @param ctx the parse tree - */ - enterLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.loadedTableIndexes`. - * @param ctx the parse tree - */ - exitLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.simpleDescribeStatement`. - * @param ctx the parse tree - */ - enterSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.simpleDescribeStatement`. - * @param ctx the parse tree - */ - exitSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.fullDescribeStatement`. - * @param ctx the parse tree - */ - enterFullDescribeStatement?: (ctx: FullDescribeStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.fullDescribeStatement`. - * @param ctx the parse tree - */ - exitFullDescribeStatement?: (ctx: FullDescribeStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.helpStatement`. - * @param ctx the parse tree - */ - enterHelpStatement?: (ctx: HelpStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.helpStatement`. - * @param ctx the parse tree - */ - exitHelpStatement?: (ctx: HelpStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.useStatement`. - * @param ctx the parse tree - */ - enterUseStatement?: (ctx: UseStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.useStatement`. - * @param ctx the parse tree - */ - exitUseStatement?: (ctx: UseStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.signalStatement`. - * @param ctx the parse tree - */ - enterSignalStatement?: (ctx: SignalStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.signalStatement`. - * @param ctx the parse tree - */ - exitSignalStatement?: (ctx: SignalStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.resignalStatement`. - * @param ctx the parse tree - */ - enterResignalStatement?: (ctx: ResignalStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.resignalStatement`. - * @param ctx the parse tree - */ - exitResignalStatement?: (ctx: ResignalStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.signalConditionInformation`. - * @param ctx the parse tree - */ - enterSignalConditionInformation?: (ctx: SignalConditionInformationContext) => void; - /** - * Exit a parse tree produced by `SqlParser.signalConditionInformation`. - * @param ctx the parse tree - */ - exitSignalConditionInformation?: (ctx: SignalConditionInformationContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.diagnosticsStatement`. - * @param ctx the parse tree - */ - enterDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.diagnosticsStatement`. - * @param ctx the parse tree - */ - exitDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.diagnosticsConditionInformationName`. - * @param ctx the parse tree - */ - enterDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.diagnosticsConditionInformationName`. - * @param ctx the parse tree - */ - exitDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - enterDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.describeObjectClause`. - * @param ctx the parse tree - */ - exitDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.fullId`. - * @param ctx the parse tree - */ - enterFullId?: (ctx: FullIdContext) => void; - /** - * Exit a parse tree produced by `SqlParser.fullId`. - * @param ctx the parse tree - */ - exitFullId?: (ctx: FullIdContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tableName`. - * @param ctx the parse tree - */ - enterTableName?: (ctx: TableNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tableName`. - * @param ctx the parse tree - */ - exitTableName?: (ctx: TableNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.fullColumnName`. - * @param ctx the parse tree - */ - enterFullColumnName?: (ctx: FullColumnNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.fullColumnName`. - * @param ctx the parse tree - */ - exitFullColumnName?: (ctx: FullColumnNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexColumnName`. - * @param ctx the parse tree - */ - enterIndexColumnName?: (ctx: IndexColumnNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexColumnName`. - * @param ctx the parse tree - */ - exitIndexColumnName?: (ctx: IndexColumnNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userName`. - * @param ctx the parse tree - */ - enterUserName?: (ctx: UserNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userName`. - * @param ctx the parse tree - */ - exitUserName?: (ctx: UserNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.mysqlVariable`. - * @param ctx the parse tree - */ - enterMysqlVariable?: (ctx: MysqlVariableContext) => void; - /** - * Exit a parse tree produced by `SqlParser.mysqlVariable`. - * @param ctx the parse tree - */ - exitMysqlVariable?: (ctx: MysqlVariableContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.charsetName`. - * @param ctx the parse tree - */ - enterCharsetName?: (ctx: CharsetNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.charsetName`. - * @param ctx the parse tree - */ - exitCharsetName?: (ctx: CharsetNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.collationName`. - * @param ctx the parse tree - */ - enterCollationName?: (ctx: CollationNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.collationName`. - * @param ctx the parse tree - */ - exitCollationName?: (ctx: CollationNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.engineName`. - * @param ctx the parse tree - */ - enterEngineName?: (ctx: EngineNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.engineName`. - * @param ctx the parse tree - */ - exitEngineName?: (ctx: EngineNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.uuidSet`. - * @param ctx the parse tree - */ - enterUuidSet?: (ctx: UuidSetContext) => void; - /** - * Exit a parse tree produced by `SqlParser.uuidSet`. - * @param ctx the parse tree - */ - exitUuidSet?: (ctx: UuidSetContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xid`. - * @param ctx the parse tree - */ - enterXid?: (ctx: XidContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xid`. - * @param ctx the parse tree - */ - exitXid?: (ctx: XidContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.xuidStringId`. - * @param ctx the parse tree - */ - enterXuidStringId?: (ctx: XuidStringIdContext) => void; - /** - * Exit a parse tree produced by `SqlParser.xuidStringId`. - * @param ctx the parse tree - */ - exitXuidStringId?: (ctx: XuidStringIdContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.authPlugin`. - * @param ctx the parse tree - */ - enterAuthPlugin?: (ctx: AuthPluginContext) => void; - /** - * Exit a parse tree produced by `SqlParser.authPlugin`. - * @param ctx the parse tree - */ - exitAuthPlugin?: (ctx: AuthPluginContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.uid`. - * @param ctx the parse tree - */ - enterUid?: (ctx: UidContext) => void; - /** - * Exit a parse tree produced by `SqlParser.uid`. - * @param ctx the parse tree - */ - exitUid?: (ctx: UidContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.simpleId`. - * @param ctx the parse tree - */ - enterSimpleId?: (ctx: SimpleIdContext) => void; - /** - * Exit a parse tree produced by `SqlParser.simpleId`. - * @param ctx the parse tree - */ - exitSimpleId?: (ctx: SimpleIdContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dottedId`. - * @param ctx the parse tree - */ - enterDottedId?: (ctx: DottedIdContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dottedId`. - * @param ctx the parse tree - */ - exitDottedId?: (ctx: DottedIdContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.decimalLiteral`. - * @param ctx the parse tree - */ - enterDecimalLiteral?: (ctx: DecimalLiteralContext) => void; - /** - * Exit a parse tree produced by `SqlParser.decimalLiteral`. - * @param ctx the parse tree - */ - exitDecimalLiteral?: (ctx: DecimalLiteralContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.fileSizeLiteral`. - * @param ctx the parse tree - */ - enterFileSizeLiteral?: (ctx: FileSizeLiteralContext) => void; - /** - * Exit a parse tree produced by `SqlParser.fileSizeLiteral`. - * @param ctx the parse tree - */ - exitFileSizeLiteral?: (ctx: FileSizeLiteralContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.stringLiteral`. - * @param ctx the parse tree - */ - enterStringLiteral?: (ctx: StringLiteralContext) => void; - /** - * Exit a parse tree produced by `SqlParser.stringLiteral`. - * @param ctx the parse tree - */ - exitStringLiteral?: (ctx: StringLiteralContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.booleanLiteral`. - * @param ctx the parse tree - */ - enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void; - /** - * Exit a parse tree produced by `SqlParser.booleanLiteral`. - * @param ctx the parse tree - */ - exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.hexadecimalLiteral`. - * @param ctx the parse tree - */ - enterHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => void; - /** - * Exit a parse tree produced by `SqlParser.hexadecimalLiteral`. - * @param ctx the parse tree - */ - exitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.nullNotnull`. - * @param ctx the parse tree - */ - enterNullNotnull?: (ctx: NullNotnullContext) => void; - /** - * Exit a parse tree produced by `SqlParser.nullNotnull`. - * @param ctx the parse tree - */ - exitNullNotnull?: (ctx: NullNotnullContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.constant`. - * @param ctx the parse tree - */ - enterConstant?: (ctx: ConstantContext) => void; - /** - * Exit a parse tree produced by `SqlParser.constant`. - * @param ctx the parse tree - */ - exitConstant?: (ctx: ConstantContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dataType`. - * @param ctx the parse tree - */ - enterDataType?: (ctx: DataTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dataType`. - * @param ctx the parse tree - */ - exitDataType?: (ctx: DataTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.collectionOptions`. - * @param ctx the parse tree - */ - enterCollectionOptions?: (ctx: CollectionOptionsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.collectionOptions`. - * @param ctx the parse tree - */ - exitCollectionOptions?: (ctx: CollectionOptionsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.convertedDataType`. - * @param ctx the parse tree - */ - enterConvertedDataType?: (ctx: ConvertedDataTypeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.convertedDataType`. - * @param ctx the parse tree - */ - exitConvertedDataType?: (ctx: ConvertedDataTypeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lengthOneDimension`. - * @param ctx the parse tree - */ - enterLengthOneDimension?: (ctx: LengthOneDimensionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lengthOneDimension`. - * @param ctx the parse tree - */ - exitLengthOneDimension?: (ctx: LengthOneDimensionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lengthTwoDimension`. - * @param ctx the parse tree - */ - enterLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lengthTwoDimension`. - * @param ctx the parse tree - */ - exitLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.lengthTwoOptionalDimension`. - * @param ctx the parse tree - */ - enterLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.lengthTwoOptionalDimension`. - * @param ctx the parse tree - */ - exitLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.uidList`. - * @param ctx the parse tree - */ - enterUidList?: (ctx: UidListContext) => void; - /** - * Exit a parse tree produced by `SqlParser.uidList`. - * @param ctx the parse tree - */ - exitUidList?: (ctx: UidListContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.tables`. - * @param ctx the parse tree - */ - enterTables?: (ctx: TablesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.tables`. - * @param ctx the parse tree - */ - exitTables?: (ctx: TablesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.indexColumnNames`. - * @param ctx the parse tree - */ - enterIndexColumnNames?: (ctx: IndexColumnNamesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.indexColumnNames`. - * @param ctx the parse tree - */ - exitIndexColumnNames?: (ctx: IndexColumnNamesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.expressions`. - * @param ctx the parse tree - */ - enterExpressions?: (ctx: ExpressionsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.expressions`. - * @param ctx the parse tree - */ - exitExpressions?: (ctx: ExpressionsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.expressionsWithDefaults`. - * @param ctx the parse tree - */ - enterExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.expressionsWithDefaults`. - * @param ctx the parse tree - */ - exitExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.constants`. - * @param ctx the parse tree - */ - enterConstants?: (ctx: ConstantsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.constants`. - * @param ctx the parse tree - */ - exitConstants?: (ctx: ConstantsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.simpleStrings`. - * @param ctx the parse tree - */ - enterSimpleStrings?: (ctx: SimpleStringsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.simpleStrings`. - * @param ctx the parse tree - */ - exitSimpleStrings?: (ctx: SimpleStringsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.userVariables`. - * @param ctx the parse tree - */ - enterUserVariables?: (ctx: UserVariablesContext) => void; - /** - * Exit a parse tree produced by `SqlParser.userVariables`. - * @param ctx the parse tree - */ - exitUserVariables?: (ctx: UserVariablesContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.defaultValue`. - * @param ctx the parse tree - */ - enterDefaultValue?: (ctx: DefaultValueContext) => void; - /** - * Exit a parse tree produced by `SqlParser.defaultValue`. - * @param ctx the parse tree - */ - exitDefaultValue?: (ctx: DefaultValueContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.currentTimestamp`. - * @param ctx the parse tree - */ - enterCurrentTimestamp?: (ctx: CurrentTimestampContext) => void; - /** - * Exit a parse tree produced by `SqlParser.currentTimestamp`. - * @param ctx the parse tree - */ - exitCurrentTimestamp?: (ctx: CurrentTimestampContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.expressionOrDefault`. - * @param ctx the parse tree - */ - enterExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => void; - /** - * Exit a parse tree produced by `SqlParser.expressionOrDefault`. - * @param ctx the parse tree - */ - exitExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.ifExists`. - * @param ctx the parse tree - */ - enterIfExists?: (ctx: IfExistsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.ifExists`. - * @param ctx the parse tree - */ - exitIfExists?: (ctx: IfExistsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.ifNotExists`. - * @param ctx the parse tree - */ - enterIfNotExists?: (ctx: IfNotExistsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.ifNotExists`. - * @param ctx the parse tree - */ - exitIfNotExists?: (ctx: IfNotExistsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.functionCall`. - * @param ctx the parse tree - */ - enterFunctionCall?: (ctx: FunctionCallContext) => void; - /** - * Exit a parse tree produced by `SqlParser.functionCall`. - * @param ctx the parse tree - */ - exitFunctionCall?: (ctx: FunctionCallContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - enterSpecificFunction?: (ctx: SpecificFunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.specificFunction`. - * @param ctx the parse tree - */ - exitSpecificFunction?: (ctx: SpecificFunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.caseFuncAlternative`. - * @param ctx the parse tree - */ - enterCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => void; - /** - * Exit a parse tree produced by `SqlParser.caseFuncAlternative`. - * @param ctx the parse tree - */ - exitCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - enterLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => void; - /** - * Exit a parse tree produced by `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - */ - exitLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.levelInWeightListElement`. - * @param ctx the parse tree - */ - enterLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => void; - /** - * Exit a parse tree produced by `SqlParser.levelInWeightListElement`. - * @param ctx the parse tree - */ - exitLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.aggregateWindowedFunction`. - * @param ctx the parse tree - */ - enterAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.aggregateWindowedFunction`. - * @param ctx the parse tree - */ - exitAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.scalarFunctionName`. - * @param ctx the parse tree - */ - enterScalarFunctionName?: (ctx: ScalarFunctionNameContext) => void; - /** - * Exit a parse tree produced by `SqlParser.scalarFunctionName`. - * @param ctx the parse tree - */ - exitScalarFunctionName?: (ctx: ScalarFunctionNameContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.passwordFunctionClause`. - * @param ctx the parse tree - */ - enterPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.passwordFunctionClause`. - * @param ctx the parse tree - */ - exitPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.functionArgs`. - * @param ctx the parse tree - */ - enterFunctionArgs?: (ctx: FunctionArgsContext) => void; - /** - * Exit a parse tree produced by `SqlParser.functionArgs`. - * @param ctx the parse tree - */ - exitFunctionArgs?: (ctx: FunctionArgsContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.functionArg`. - * @param ctx the parse tree - */ - enterFunctionArg?: (ctx: FunctionArgContext) => void; - /** - * Exit a parse tree produced by `SqlParser.functionArg`. - * @param ctx the parse tree - */ - exitFunctionArg?: (ctx: FunctionArgContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.expression`. - * @param ctx the parse tree - */ - enterExpression?: (ctx: ExpressionContext) => void; - /** - * Exit a parse tree produced by `SqlParser.expression`. - * @param ctx the parse tree - */ - exitExpression?: (ctx: ExpressionContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.predicate`. - * @param ctx the parse tree - */ - enterPredicate?: (ctx: PredicateContext) => void; - /** - * Exit a parse tree produced by `SqlParser.predicate`. - * @param ctx the parse tree - */ - exitPredicate?: (ctx: PredicateContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - enterExpressionAtom?: (ctx: ExpressionAtomContext) => void; - /** - * Exit a parse tree produced by `SqlParser.expressionAtom`. - * @param ctx the parse tree - */ - exitExpressionAtom?: (ctx: ExpressionAtomContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.unaryOperator`. - * @param ctx the parse tree - */ - enterUnaryOperator?: (ctx: UnaryOperatorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.unaryOperator`. - * @param ctx the parse tree - */ - exitUnaryOperator?: (ctx: UnaryOperatorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.comparisonOperator`. - * @param ctx the parse tree - */ - enterComparisonOperator?: (ctx: ComparisonOperatorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.comparisonOperator`. - * @param ctx the parse tree - */ - exitComparisonOperator?: (ctx: ComparisonOperatorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.logicalOperator`. - * @param ctx the parse tree - */ - enterLogicalOperator?: (ctx: LogicalOperatorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.logicalOperator`. - * @param ctx the parse tree - */ - exitLogicalOperator?: (ctx: LogicalOperatorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.bitOperator`. - * @param ctx the parse tree - */ - enterBitOperator?: (ctx: BitOperatorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.bitOperator`. - * @param ctx the parse tree - */ - exitBitOperator?: (ctx: BitOperatorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.mathOperator`. - * @param ctx the parse tree - */ - enterMathOperator?: (ctx: MathOperatorContext) => void; - /** - * Exit a parse tree produced by `SqlParser.mathOperator`. - * @param ctx the parse tree - */ - exitMathOperator?: (ctx: MathOperatorContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.charsetNameBase`. - * @param ctx the parse tree - */ - enterCharsetNameBase?: (ctx: CharsetNameBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.charsetNameBase`. - * @param ctx the parse tree - */ - exitCharsetNameBase?: (ctx: CharsetNameBaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.transactionLevelBase`. - * @param ctx the parse tree - */ - enterTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.transactionLevelBase`. - * @param ctx the parse tree - */ - exitTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.privilegesBase`. - * @param ctx the parse tree - */ - enterPrivilegesBase?: (ctx: PrivilegesBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.privilegesBase`. - * @param ctx the parse tree - */ - exitPrivilegesBase?: (ctx: PrivilegesBaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.intervalTypeBase`. - * @param ctx the parse tree - */ - enterIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.intervalTypeBase`. - * @param ctx the parse tree - */ - exitIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.dataTypeBase`. - * @param ctx the parse tree - */ - enterDataTypeBase?: (ctx: DataTypeBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.dataTypeBase`. - * @param ctx the parse tree - */ - exitDataTypeBase?: (ctx: DataTypeBaseContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.keywordsCanBeId`. - * @param ctx the parse tree - */ - enterKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => void; - /** - * Exit a parse tree produced by `SqlParser.keywordsCanBeId`. - * @param ctx the parse tree - */ - exitKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => void; - - /** - * Enter a parse tree produced by `SqlParser.functionNameBase`. - * @param ctx the parse tree - */ - enterFunctionNameBase?: (ctx: FunctionNameBaseContext) => void; - /** - * Exit a parse tree produced by `SqlParser.functionNameBase`. - * @param ctx the parse tree - */ - exitFunctionNameBase?: (ctx: FunctionNameBaseContext) => void; -} - diff --git a/src/lib/generic/SqlParserVisitor.ts b/src/lib/generic/SqlParserVisitor.ts deleted file mode 100644 index 20980f8..0000000 --- a/src/lib/generic/SqlParserVisitor.ts +++ /dev/null @@ -1,4992 +0,0 @@ -// Generated from /Users/ziv/github.com/dt-sql-parser/src/grammar/generic/SqlParser.g4 by ANTLR 4.9.0-SNAPSHOT - - -import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; - -import { HandlerConditionCodeContext } from "./SqlParser"; -import { HandlerConditionStateContext } from "./SqlParser"; -import { HandlerConditionNameContext } from "./SqlParser"; -import { HandlerConditionWarningContext } from "./SqlParser"; -import { HandlerConditionNotfoundContext } from "./SqlParser"; -import { HandlerConditionExceptionContext } from "./SqlParser"; -import { LevelWeightListContext } from "./SqlParser"; -import { LevelWeightRangeContext } from "./SqlParser"; -import { InPredicateContext } from "./SqlParser"; -import { IsNullPredicateContext } from "./SqlParser"; -import { BinaryComparasionPredicateContext } from "./SqlParser"; -import { SubqueryComparasionPredicateContext } from "./SqlParser"; -import { BetweenPredicateContext } from "./SqlParser"; -import { SoundsLikePredicateContext } from "./SqlParser"; -import { LikePredicateContext } from "./SqlParser"; -import { RegexpPredicateContext } from "./SqlParser"; -import { ExpressionAtomPredicateContext } from "./SqlParser"; -import { SimpleIndexDeclarationContext } from "./SqlParser"; -import { SpecialIndexDeclarationContext } from "./SqlParser"; -import { UserConnectionOptionContext } from "./SqlParser"; -import { PasswordConnectionOptionContext } from "./SqlParser"; -import { DefaultAuthConnectionOptionContext } from "./SqlParser"; -import { PluginDirConnectionOptionContext } from "./SqlParser"; -import { PartitionOptionEngineContext } from "./SqlParser"; -import { PartitionOptionCommentContext } from "./SqlParser"; -import { PartitionOptionDataDirectoryContext } from "./SqlParser"; -import { PartitionOptionIndexDirectoryContext } from "./SqlParser"; -import { PartitionOptionMaxRowsContext } from "./SqlParser"; -import { PartitionOptionMinRowsContext } from "./SqlParser"; -import { PartitionOptionTablespaceContext } from "./SqlParser"; -import { PartitionOptionNodeGroupContext } from "./SqlParser"; -import { SimpleFunctionCallContext } from "./SqlParser"; -import { DataTypeFunctionCallContext } from "./SqlParser"; -import { ValuesFunctionCallContext } from "./SqlParser"; -import { CaseFunctionCallContext } from "./SqlParser"; -import { CharFunctionCallContext } from "./SqlParser"; -import { PositionFunctionCallContext } from "./SqlParser"; -import { SubstrFunctionCallContext } from "./SqlParser"; -import { TrimFunctionCallContext } from "./SqlParser"; -import { WeightFunctionCallContext } from "./SqlParser"; -import { ExtractFunctionCallContext } from "./SqlParser"; -import { GetFormatFunctionCallContext } from "./SqlParser"; -import { DoDbReplicationContext } from "./SqlParser"; -import { IgnoreDbReplicationContext } from "./SqlParser"; -import { DoTableReplicationContext } from "./SqlParser"; -import { IgnoreTableReplicationContext } from "./SqlParser"; -import { WildDoTableReplicationContext } from "./SqlParser"; -import { WildIgnoreTableReplicationContext } from "./SqlParser"; -import { RewriteDbReplicationContext } from "./SqlParser"; -import { InnerJoinContext } from "./SqlParser"; -import { StraightJoinContext } from "./SqlParser"; -import { OuterJoinContext } from "./SqlParser"; -import { NaturalJoinContext } from "./SqlParser"; -import { SetVariableContext } from "./SqlParser"; -import { SetCharsetContext } from "./SqlParser"; -import { SetNamesContext } from "./SqlParser"; -import { SetPasswordContext } from "./SqlParser"; -import { SetTransactionContext } from "./SqlParser"; -import { SetAutocommitContext } from "./SqlParser"; -import { SetNewValueInsideTriggerContext } from "./SqlParser"; -import { SelectStarElementContext } from "./SqlParser"; -import { SelectColumnElementContext } from "./SqlParser"; -import { SelectFunctionElementContext } from "./SqlParser"; -import { SelectExpressionElementContext } from "./SqlParser"; -import { NotExpressionContext } from "./SqlParser"; -import { LogicalExpressionContext } from "./SqlParser"; -import { IsExpressionContext } from "./SqlParser"; -import { PredicateExpressionContext } from "./SqlParser"; -import { AtomTableItemContext } from "./SqlParser"; -import { SubqueryTableItemContext } from "./SqlParser"; -import { TableSourcesItemContext } from "./SqlParser"; -import { SelectIntoVariablesContext } from "./SqlParser"; -import { SelectIntoDumpFileContext } from "./SqlParser"; -import { SelectIntoTextFileContext } from "./SqlParser"; -import { AlterByTableOptionContext } from "./SqlParser"; -import { AlterByAddColumnContext } from "./SqlParser"; -import { AlterByAddColumnsContext } from "./SqlParser"; -import { AlterByAddIndexContext } from "./SqlParser"; -import { AlterByAddPrimaryKeyContext } from "./SqlParser"; -import { AlterByAddUniqueKeyContext } from "./SqlParser"; -import { AlterByAddSpecialIndexContext } from "./SqlParser"; -import { AlterByAddForeignKeyContext } from "./SqlParser"; -import { AlterByAddCheckTableConstraintContext } from "./SqlParser"; -import { AlterBySetAlgorithmContext } from "./SqlParser"; -import { AlterByChangeDefaultContext } from "./SqlParser"; -import { AlterByChangeColumnContext } from "./SqlParser"; -import { AlterByRenameColumnContext } from "./SqlParser"; -import { AlterByLockContext } from "./SqlParser"; -import { AlterByModifyColumnContext } from "./SqlParser"; -import { AlterByDropColumnContext } from "./SqlParser"; -import { AlterByDropPrimaryKeyContext } from "./SqlParser"; -import { AlterByRenameIndexContext } from "./SqlParser"; -import { AlterByAlterIndexVisibilityContext } from "./SqlParser"; -import { AlterByDropIndexContext } from "./SqlParser"; -import { AlterByDropForeignKeyContext } from "./SqlParser"; -import { AlterByDisableKeysContext } from "./SqlParser"; -import { AlterByEnableKeysContext } from "./SqlParser"; -import { AlterByRenameContext } from "./SqlParser"; -import { AlterByOrderContext } from "./SqlParser"; -import { AlterByConvertCharsetContext } from "./SqlParser"; -import { AlterByDefaultCharsetContext } from "./SqlParser"; -import { AlterByDiscardTablespaceContext } from "./SqlParser"; -import { AlterByImportTablespaceContext } from "./SqlParser"; -import { AlterByForceContext } from "./SqlParser"; -import { AlterByValidateContext } from "./SqlParser"; -import { AlterByAddPartitionContext } from "./SqlParser"; -import { AlterByDropPartitionContext } from "./SqlParser"; -import { AlterByDiscardPartitionContext } from "./SqlParser"; -import { AlterByImportPartitionContext } from "./SqlParser"; -import { AlterByTruncatePartitionContext } from "./SqlParser"; -import { AlterByCoalescePartitionContext } from "./SqlParser"; -import { AlterByReorganizePartitionContext } from "./SqlParser"; -import { AlterByExchangePartitionContext } from "./SqlParser"; -import { AlterByAnalyzePartitionContext } from "./SqlParser"; -import { AlterByCheckPartitionContext } from "./SqlParser"; -import { AlterByOptimizePartitionContext } from "./SqlParser"; -import { AlterByRebuildPartitionContext } from "./SqlParser"; -import { AlterByRepairPartitionContext } from "./SqlParser"; -import { AlterByRemovePartitioningContext } from "./SqlParser"; -import { AlterByUpgradePartitioningContext } from "./SqlParser"; -import { SimpleSelectContext } from "./SqlParser"; -import { ParenthesisSelectContext } from "./SqlParser"; -import { UnionSelectContext } from "./SqlParser"; -import { UnionParenthesisSelectContext } from "./SqlParser"; -import { StringDataTypeContext } from "./SqlParser"; -import { NationalStringDataTypeContext } from "./SqlParser"; -import { NationalVaryingStringDataTypeContext } from "./SqlParser"; -import { DimensionDataTypeContext } from "./SqlParser"; -import { SimpleDataTypeContext } from "./SqlParser"; -import { CollectionDataTypeContext } from "./SqlParser"; -import { SpatialDataTypeContext } from "./SqlParser"; -import { LongVarcharDataTypeContext } from "./SqlParser"; -import { LongVarbinaryDataTypeContext } from "./SqlParser"; -import { PartitionComparisionContext } from "./SqlParser"; -import { PartitionListAtomContext } from "./SqlParser"; -import { PartitionListVectorContext } from "./SqlParser"; -import { PartitionSimpleContext } from "./SqlParser"; -import { NullColumnConstraintContext } from "./SqlParser"; -import { DefaultColumnConstraintContext } from "./SqlParser"; -import { AutoIncrementColumnConstraintContext } from "./SqlParser"; -import { PrimaryKeyColumnConstraintContext } from "./SqlParser"; -import { UniqueKeyColumnConstraintContext } from "./SqlParser"; -import { CommentColumnConstraintContext } from "./SqlParser"; -import { FormatColumnConstraintContext } from "./SqlParser"; -import { StorageColumnConstraintContext } from "./SqlParser"; -import { ReferenceColumnConstraintContext } from "./SqlParser"; -import { CollateColumnConstraintContext } from "./SqlParser"; -import { GeneratedColumnConstraintContext } from "./SqlParser"; -import { SerialDefaultColumnConstraintContext } from "./SqlParser"; -import { CheckColumnConstraintContext } from "./SqlParser"; -import { SubPartitionFunctionHashContext } from "./SqlParser"; -import { SubPartitionFunctionKeyContext } from "./SqlParser"; -import { PasswordAuthOptionContext } from "./SqlParser"; -import { StringAuthOptionContext } from "./SqlParser"; -import { HashAuthOptionContext } from "./SqlParser"; -import { SimpleAuthOptionContext } from "./SqlParser"; -import { SimpleFlushOptionContext } from "./SqlParser"; -import { ChannelFlushOptionContext } from "./SqlParser"; -import { TableFlushOptionContext } from "./SqlParser"; -import { CloseCursorContext } from "./SqlParser"; -import { FetchCursorContext } from "./SqlParser"; -import { OpenCursorContext } from "./SqlParser"; -import { TableSourceBaseContext } from "./SqlParser"; -import { TableSourceNestedContext } from "./SqlParser"; -import { PreciseScheduleContext } from "./SqlParser"; -import { IntervalScheduleContext } from "./SqlParser"; -import { PrimaryKeyTableConstraintContext } from "./SqlParser"; -import { UniqueKeyTableConstraintContext } from "./SqlParser"; -import { ForeignKeyTableConstraintContext } from "./SqlParser"; -import { CheckTableConstraintContext } from "./SqlParser"; -import { AlterUserMysqlV56Context } from "./SqlParser"; -import { AlterUserMysqlV57Context } from "./SqlParser"; -import { DescribeStatementsContext } from "./SqlParser"; -import { DescribeConnectionContext } from "./SqlParser"; -import { ColumnDeclarationContext } from "./SqlParser"; -import { ConstraintDeclarationContext } from "./SqlParser"; -import { IndexDeclarationContext } from "./SqlParser"; -import { SpecificFunctionCallContext } from "./SqlParser"; -import { AggregateFunctionCallContext } from "./SqlParser"; -import { ScalarFunctionCallContext } from "./SqlParser"; -import { UdfFunctionCallContext } from "./SqlParser"; -import { PasswordFunctionCallContext } from "./SqlParser"; -import { TableOptionEngineContext } from "./SqlParser"; -import { TableOptionAutoIncrementContext } from "./SqlParser"; -import { TableOptionAverageContext } from "./SqlParser"; -import { TableOptionCharsetContext } from "./SqlParser"; -import { TableOptionChecksumContext } from "./SqlParser"; -import { TableOptionCollateContext } from "./SqlParser"; -import { TableOptionCommentContext } from "./SqlParser"; -import { TableOptionCompressionContext } from "./SqlParser"; -import { TableOptionConnectionContext } from "./SqlParser"; -import { TableOptionDataDirectoryContext } from "./SqlParser"; -import { TableOptionDelayContext } from "./SqlParser"; -import { TableOptionEncryptionContext } from "./SqlParser"; -import { TableOptionIndexDirectoryContext } from "./SqlParser"; -import { TableOptionInsertMethodContext } from "./SqlParser"; -import { TableOptionKeyBlockSizeContext } from "./SqlParser"; -import { TableOptionMaxRowsContext } from "./SqlParser"; -import { TableOptionMinRowsContext } from "./SqlParser"; -import { TableOptionPackKeysContext } from "./SqlParser"; -import { TableOptionPasswordContext } from "./SqlParser"; -import { TableOptionRowFormatContext } from "./SqlParser"; -import { TableOptionRecalculationContext } from "./SqlParser"; -import { TableOptionPersistentContext } from "./SqlParser"; -import { TableOptionSamplePageContext } from "./SqlParser"; -import { TableOptionTablespaceContext } from "./SqlParser"; -import { TableOptionUnionContext } from "./SqlParser"; -import { ConstantExpressionAtomContext } from "./SqlParser"; -import { FullColumnNameExpressionAtomContext } from "./SqlParser"; -import { FunctionCallExpressionAtomContext } from "./SqlParser"; -import { CollateExpressionAtomContext } from "./SqlParser"; -import { MysqlVariableExpressionAtomContext } from "./SqlParser"; -import { UnaryExpressionAtomContext } from "./SqlParser"; -import { BinaryExpressionAtomContext } from "./SqlParser"; -import { NestedExpressionAtomContext } from "./SqlParser"; -import { NestedRowExpressionAtomContext } from "./SqlParser"; -import { ExistsExpessionAtomContext } from "./SqlParser"; -import { SubqueryExpessionAtomContext } from "./SqlParser"; -import { IntervalExpressionAtomContext } from "./SqlParser"; -import { BitExpressionAtomContext } from "./SqlParser"; -import { MathExpressionAtomContext } from "./SqlParser"; -import { RoutineCommentContext } from "./SqlParser"; -import { RoutineLanguageContext } from "./SqlParser"; -import { RoutineBehaviorContext } from "./SqlParser"; -import { RoutineDataContext } from "./SqlParser"; -import { RoutineSecurityContext } from "./SqlParser"; -import { CreateUserMysqlV56Context } from "./SqlParser"; -import { CreateUserMysqlV57Context } from "./SqlParser"; -import { CurrentSchemaPriviLevelContext } from "./SqlParser"; -import { GlobalPrivLevelContext } from "./SqlParser"; -import { DefiniteSchemaPrivLevelContext } from "./SqlParser"; -import { DefiniteFullTablePrivLevelContext } from "./SqlParser"; -import { DefiniteFullTablePrivLevel2Context } from "./SqlParser"; -import { DefiniteTablePrivLevelContext } from "./SqlParser"; -import { ShowMasterLogsContext } from "./SqlParser"; -import { ShowLogEventsContext } from "./SqlParser"; -import { ShowObjectFilterContext } from "./SqlParser"; -import { ShowColumnsContext } from "./SqlParser"; -import { ShowCreateDbContext } from "./SqlParser"; -import { ShowCreateFullIdObjectContext } from "./SqlParser"; -import { ShowCreateUserContext } from "./SqlParser"; -import { ShowEngineContext } from "./SqlParser"; -import { ShowGlobalInfoContext } from "./SqlParser"; -import { ShowErrorsContext } from "./SqlParser"; -import { ShowCountErrorsContext } from "./SqlParser"; -import { ShowSchemaFilterContext } from "./SqlParser"; -import { ShowRoutineContext } from "./SqlParser"; -import { ShowGrantsContext } from "./SqlParser"; -import { ShowIndexesContext } from "./SqlParser"; -import { ShowOpenTablesContext } from "./SqlParser"; -import { ShowProfileContext } from "./SqlParser"; -import { ShowSlaveStatusContext } from "./SqlParser"; -import { AlterSimpleDatabaseContext } from "./SqlParser"; -import { AlterUpgradeNameContext } from "./SqlParser"; -import { MasterStringOptionContext } from "./SqlParser"; -import { MasterDecimalOptionContext } from "./SqlParser"; -import { MasterBoolOptionContext } from "./SqlParser"; -import { MasterRealOptionContext } from "./SqlParser"; -import { MasterUidListOptionContext } from "./SqlParser"; -import { GtidsUntilOptionContext } from "./SqlParser"; -import { MasterLogUntilOptionContext } from "./SqlParser"; -import { RelayLogUntilOptionContext } from "./SqlParser"; -import { SqlGapsUntilOptionContext } from "./SqlParser"; -import { CopyCreateTableContext } from "./SqlParser"; -import { QueryCreateTableContext } from "./SqlParser"; -import { ColumnCreateTableContext } from "./SqlParser"; -import { PartitionFunctionHashContext } from "./SqlParser"; -import { PartitionFunctionKeyContext } from "./SqlParser"; -import { PartitionFunctionRangeContext } from "./SqlParser"; -import { PartitionFunctionListContext } from "./SqlParser"; -import { DetailRevokeContext } from "./SqlParser"; -import { ShortRevokeContext } from "./SqlParser"; -import { ProgramContext } from "./SqlParser"; -import { StatementContext } from "./SqlParser"; -import { SqlStatementsContext } from "./SqlParser"; -import { SqlStatementContext } from "./SqlParser"; -import { EmptyStatementContext } from "./SqlParser"; -import { DdlStatementContext } from "./SqlParser"; -import { DmlStatementContext } from "./SqlParser"; -import { TransactionStatementContext } from "./SqlParser"; -import { ReplicationStatementContext } from "./SqlParser"; -import { PreparedStatementContext } from "./SqlParser"; -import { CompoundStatementContext } from "./SqlParser"; -import { AdministrationStatementContext } from "./SqlParser"; -import { UtilityStatementContext } from "./SqlParser"; -import { CreateDatabaseContext } from "./SqlParser"; -import { CreateEventContext } from "./SqlParser"; -import { CreateIndexContext } from "./SqlParser"; -import { CreateLogfileGroupContext } from "./SqlParser"; -import { CreateProcedureContext } from "./SqlParser"; -import { CreateFunctionContext } from "./SqlParser"; -import { CreateServerContext } from "./SqlParser"; -import { CreateTableContext } from "./SqlParser"; -import { CreateTablespaceInnodbContext } from "./SqlParser"; -import { CreateTablespaceNdbContext } from "./SqlParser"; -import { CreateTriggerContext } from "./SqlParser"; -import { CreateViewContext } from "./SqlParser"; -import { CreateDatabaseOptionContext } from "./SqlParser"; -import { OwnerStatementContext } from "./SqlParser"; -import { ScheduleExpressionContext } from "./SqlParser"; -import { TimestampValueContext } from "./SqlParser"; -import { IntervalExprContext } from "./SqlParser"; -import { IntervalTypeContext } from "./SqlParser"; -import { EnableTypeContext } from "./SqlParser"; -import { IndexTypeContext } from "./SqlParser"; -import { IndexOptionContext } from "./SqlParser"; -import { ProcedureParameterContext } from "./SqlParser"; -import { FunctionParameterContext } from "./SqlParser"; -import { RoutineOptionContext } from "./SqlParser"; -import { ServerOptionContext } from "./SqlParser"; -import { CreateDefinitionsContext } from "./SqlParser"; -import { CreateDefinitionContext } from "./SqlParser"; -import { ColumnDefinitionContext } from "./SqlParser"; -import { ColumnConstraintContext } from "./SqlParser"; -import { TableConstraintContext } from "./SqlParser"; -import { ReferenceDefinitionContext } from "./SqlParser"; -import { ReferenceActionContext } from "./SqlParser"; -import { ReferenceControlTypeContext } from "./SqlParser"; -import { IndexColumnDefinitionContext } from "./SqlParser"; -import { TableOptionContext } from "./SqlParser"; -import { TablespaceStorageContext } from "./SqlParser"; -import { PartitionDefinitionsContext } from "./SqlParser"; -import { PartitionFunctionDefinitionContext } from "./SqlParser"; -import { SubpartitionFunctionDefinitionContext } from "./SqlParser"; -import { PartitionDefinitionContext } from "./SqlParser"; -import { PartitionDefinerAtomContext } from "./SqlParser"; -import { PartitionDefinerVectorContext } from "./SqlParser"; -import { SubpartitionDefinitionContext } from "./SqlParser"; -import { PartitionOptionContext } from "./SqlParser"; -import { AlterDatabaseContext } from "./SqlParser"; -import { AlterEventContext } from "./SqlParser"; -import { AlterFunctionContext } from "./SqlParser"; -import { AlterInstanceContext } from "./SqlParser"; -import { AlterLogfileGroupContext } from "./SqlParser"; -import { AlterProcedureContext } from "./SqlParser"; -import { AlterServerContext } from "./SqlParser"; -import { AlterTableContext } from "./SqlParser"; -import { AlterTablespaceContext } from "./SqlParser"; -import { AlterViewContext } from "./SqlParser"; -import { AlterSpecificationContext } from "./SqlParser"; -import { DropDatabaseContext } from "./SqlParser"; -import { DropEventContext } from "./SqlParser"; -import { DropIndexContext } from "./SqlParser"; -import { DropLogfileGroupContext } from "./SqlParser"; -import { DropProcedureContext } from "./SqlParser"; -import { DropFunctionContext } from "./SqlParser"; -import { DropServerContext } from "./SqlParser"; -import { DropTableContext } from "./SqlParser"; -import { DropTablespaceContext } from "./SqlParser"; -import { DropTriggerContext } from "./SqlParser"; -import { DropViewContext } from "./SqlParser"; -import { RenameTableContext } from "./SqlParser"; -import { RenameTableClauseContext } from "./SqlParser"; -import { TruncateTableContext } from "./SqlParser"; -import { CallStatementContext } from "./SqlParser"; -import { DeleteStatementContext } from "./SqlParser"; -import { DoStatementContext } from "./SqlParser"; -import { HandlerStatementContext } from "./SqlParser"; -import { InsertStatementContext } from "./SqlParser"; -import { LoadDataStatementContext } from "./SqlParser"; -import { LoadXmlStatementContext } from "./SqlParser"; -import { ReplaceStatementContext } from "./SqlParser"; -import { SelectStatementContext } from "./SqlParser"; -import { UpdateStatementContext } from "./SqlParser"; -import { InsertStatementValueContext } from "./SqlParser"; -import { UpdatedElementContext } from "./SqlParser"; -import { AssignmentFieldContext } from "./SqlParser"; -import { LockClauseContext } from "./SqlParser"; -import { SingleDeleteStatementContext } from "./SqlParser"; -import { MultipleDeleteStatementContext } from "./SqlParser"; -import { HandlerOpenStatementContext } from "./SqlParser"; -import { HandlerReadIndexStatementContext } from "./SqlParser"; -import { HandlerReadStatementContext } from "./SqlParser"; -import { HandlerCloseStatementContext } from "./SqlParser"; -import { SingleUpdateStatementContext } from "./SqlParser"; -import { MultipleUpdateStatementContext } from "./SqlParser"; -import { OrderByClauseContext } from "./SqlParser"; -import { OrderByExpressionContext } from "./SqlParser"; -import { TableSourcesContext } from "./SqlParser"; -import { TableSourceContext } from "./SqlParser"; -import { TableSourceItemContext } from "./SqlParser"; -import { IndexHintContext } from "./SqlParser"; -import { IndexHintTypeContext } from "./SqlParser"; -import { JoinPartContext } from "./SqlParser"; -import { QueryExpressionContext } from "./SqlParser"; -import { QueryExpressionNointoContext } from "./SqlParser"; -import { QuerySpecificationContext } from "./SqlParser"; -import { QuerySpecificationNointoContext } from "./SqlParser"; -import { UnionParenthesisContext } from "./SqlParser"; -import { UnionStatementContext } from "./SqlParser"; -import { SelectSpecContext } from "./SqlParser"; -import { SelectElementsContext } from "./SqlParser"; -import { SelectElementContext } from "./SqlParser"; -import { SelectIntoExpressionContext } from "./SqlParser"; -import { SelectFieldsIntoContext } from "./SqlParser"; -import { SelectLinesIntoContext } from "./SqlParser"; -import { FromClauseContext } from "./SqlParser"; -import { GroupByItemContext } from "./SqlParser"; -import { LimitClauseContext } from "./SqlParser"; -import { LimitClauseAtomContext } from "./SqlParser"; -import { StartTransactionContext } from "./SqlParser"; -import { BeginWorkContext } from "./SqlParser"; -import { CommitWorkContext } from "./SqlParser"; -import { RollbackWorkContext } from "./SqlParser"; -import { SavepointStatementContext } from "./SqlParser"; -import { RollbackStatementContext } from "./SqlParser"; -import { ReleaseStatementContext } from "./SqlParser"; -import { LockTablesContext } from "./SqlParser"; -import { UnlockTablesContext } from "./SqlParser"; -import { SetAutocommitStatementContext } from "./SqlParser"; -import { SetTransactionStatementContext } from "./SqlParser"; -import { TransactionModeContext } from "./SqlParser"; -import { LockTableElementContext } from "./SqlParser"; -import { LockActionContext } from "./SqlParser"; -import { TransactionOptionContext } from "./SqlParser"; -import { TransactionLevelContext } from "./SqlParser"; -import { ChangeMasterContext } from "./SqlParser"; -import { ChangeReplicationFilterContext } from "./SqlParser"; -import { PurgeBinaryLogsContext } from "./SqlParser"; -import { ResetMasterContext } from "./SqlParser"; -import { ResetSlaveContext } from "./SqlParser"; -import { StartSlaveContext } from "./SqlParser"; -import { StopSlaveContext } from "./SqlParser"; -import { StartGroupReplicationContext } from "./SqlParser"; -import { StopGroupReplicationContext } from "./SqlParser"; -import { MasterOptionContext } from "./SqlParser"; -import { StringMasterOptionContext } from "./SqlParser"; -import { DecimalMasterOptionContext } from "./SqlParser"; -import { BoolMasterOptionContext } from "./SqlParser"; -import { ChannelOptionContext } from "./SqlParser"; -import { ReplicationFilterContext } from "./SqlParser"; -import { TablePairContext } from "./SqlParser"; -import { ThreadTypeContext } from "./SqlParser"; -import { UntilOptionContext } from "./SqlParser"; -import { ConnectionOptionContext } from "./SqlParser"; -import { GtuidSetContext } from "./SqlParser"; -import { XaStartTransactionContext } from "./SqlParser"; -import { XaEndTransactionContext } from "./SqlParser"; -import { XaPrepareStatementContext } from "./SqlParser"; -import { XaCommitWorkContext } from "./SqlParser"; -import { XaRollbackWorkContext } from "./SqlParser"; -import { XaRecoverWorkContext } from "./SqlParser"; -import { PrepareStatementContext } from "./SqlParser"; -import { ExecuteStatementContext } from "./SqlParser"; -import { DeallocatePrepareContext } from "./SqlParser"; -import { RoutineBodyContext } from "./SqlParser"; -import { BlockStatementContext } from "./SqlParser"; -import { CaseStatementContext } from "./SqlParser"; -import { IfStatementContext } from "./SqlParser"; -import { IterateStatementContext } from "./SqlParser"; -import { LeaveStatementContext } from "./SqlParser"; -import { LoopStatementContext } from "./SqlParser"; -import { RepeatStatementContext } from "./SqlParser"; -import { ReturnStatementContext } from "./SqlParser"; -import { WhileStatementContext } from "./SqlParser"; -import { CursorStatementContext } from "./SqlParser"; -import { DeclareVariableContext } from "./SqlParser"; -import { DeclareConditionContext } from "./SqlParser"; -import { DeclareCursorContext } from "./SqlParser"; -import { DeclareHandlerContext } from "./SqlParser"; -import { HandlerConditionValueContext } from "./SqlParser"; -import { ProcedureSqlStatementContext } from "./SqlParser"; -import { CaseAlternativeContext } from "./SqlParser"; -import { ElifAlternativeContext } from "./SqlParser"; -import { AlterUserContext } from "./SqlParser"; -import { CreateUserContext } from "./SqlParser"; -import { DropUserContext } from "./SqlParser"; -import { GrantStatementContext } from "./SqlParser"; -import { GrantProxyContext } from "./SqlParser"; -import { RenameUserContext } from "./SqlParser"; -import { RevokeStatementContext } from "./SqlParser"; -import { RevokeProxyContext } from "./SqlParser"; -import { SetPasswordStatementContext } from "./SqlParser"; -import { UserSpecificationContext } from "./SqlParser"; -import { UserAuthOptionContext } from "./SqlParser"; -import { TlsOptionContext } from "./SqlParser"; -import { UserResourceOptionContext } from "./SqlParser"; -import { UserPasswordOptionContext } from "./SqlParser"; -import { UserLockOptionContext } from "./SqlParser"; -import { PrivelegeClauseContext } from "./SqlParser"; -import { PrivilegeContext } from "./SqlParser"; -import { PrivilegeLevelContext } from "./SqlParser"; -import { RenameUserClauseContext } from "./SqlParser"; -import { AnalyzeTableContext } from "./SqlParser"; -import { CheckTableContext } from "./SqlParser"; -import { ChecksumTableContext } from "./SqlParser"; -import { OptimizeTableContext } from "./SqlParser"; -import { RepairTableContext } from "./SqlParser"; -import { CheckTableOptionContext } from "./SqlParser"; -import { CreateUdfunctionContext } from "./SqlParser"; -import { InstallPluginContext } from "./SqlParser"; -import { UninstallPluginContext } from "./SqlParser"; -import { SetStatementContext } from "./SqlParser"; -import { ShowStatementContext } from "./SqlParser"; -import { VariableClauseContext } from "./SqlParser"; -import { ShowCommonEntityContext } from "./SqlParser"; -import { ShowFilterContext } from "./SqlParser"; -import { ShowGlobalInfoClauseContext } from "./SqlParser"; -import { ShowSchemaEntityContext } from "./SqlParser"; -import { ShowProfileTypeContext } from "./SqlParser"; -import { BinlogStatementContext } from "./SqlParser"; -import { CacheIndexStatementContext } from "./SqlParser"; -import { FlushStatementContext } from "./SqlParser"; -import { KillStatementContext } from "./SqlParser"; -import { LoadIndexIntoCacheContext } from "./SqlParser"; -import { ResetStatementContext } from "./SqlParser"; -import { ShutdownStatementContext } from "./SqlParser"; -import { TableIndexesContext } from "./SqlParser"; -import { FlushOptionContext } from "./SqlParser"; -import { FlushTableOptionContext } from "./SqlParser"; -import { LoadedTableIndexesContext } from "./SqlParser"; -import { SimpleDescribeStatementContext } from "./SqlParser"; -import { FullDescribeStatementContext } from "./SqlParser"; -import { HelpStatementContext } from "./SqlParser"; -import { UseStatementContext } from "./SqlParser"; -import { SignalStatementContext } from "./SqlParser"; -import { ResignalStatementContext } from "./SqlParser"; -import { SignalConditionInformationContext } from "./SqlParser"; -import { DiagnosticsStatementContext } from "./SqlParser"; -import { DiagnosticsConditionInformationNameContext } from "./SqlParser"; -import { DescribeObjectClauseContext } from "./SqlParser"; -import { FullIdContext } from "./SqlParser"; -import { TableNameContext } from "./SqlParser"; -import { FullColumnNameContext } from "./SqlParser"; -import { IndexColumnNameContext } from "./SqlParser"; -import { UserNameContext } from "./SqlParser"; -import { MysqlVariableContext } from "./SqlParser"; -import { CharsetNameContext } from "./SqlParser"; -import { CollationNameContext } from "./SqlParser"; -import { EngineNameContext } from "./SqlParser"; -import { UuidSetContext } from "./SqlParser"; -import { XidContext } from "./SqlParser"; -import { XuidStringIdContext } from "./SqlParser"; -import { AuthPluginContext } from "./SqlParser"; -import { UidContext } from "./SqlParser"; -import { SimpleIdContext } from "./SqlParser"; -import { DottedIdContext } from "./SqlParser"; -import { DecimalLiteralContext } from "./SqlParser"; -import { FileSizeLiteralContext } from "./SqlParser"; -import { StringLiteralContext } from "./SqlParser"; -import { BooleanLiteralContext } from "./SqlParser"; -import { HexadecimalLiteralContext } from "./SqlParser"; -import { NullNotnullContext } from "./SqlParser"; -import { ConstantContext } from "./SqlParser"; -import { DataTypeContext } from "./SqlParser"; -import { CollectionOptionsContext } from "./SqlParser"; -import { ConvertedDataTypeContext } from "./SqlParser"; -import { LengthOneDimensionContext } from "./SqlParser"; -import { LengthTwoDimensionContext } from "./SqlParser"; -import { LengthTwoOptionalDimensionContext } from "./SqlParser"; -import { UidListContext } from "./SqlParser"; -import { TablesContext } from "./SqlParser"; -import { IndexColumnNamesContext } from "./SqlParser"; -import { ExpressionsContext } from "./SqlParser"; -import { ExpressionsWithDefaultsContext } from "./SqlParser"; -import { ConstantsContext } from "./SqlParser"; -import { SimpleStringsContext } from "./SqlParser"; -import { UserVariablesContext } from "./SqlParser"; -import { DefaultValueContext } from "./SqlParser"; -import { CurrentTimestampContext } from "./SqlParser"; -import { ExpressionOrDefaultContext } from "./SqlParser"; -import { IfExistsContext } from "./SqlParser"; -import { IfNotExistsContext } from "./SqlParser"; -import { FunctionCallContext } from "./SqlParser"; -import { SpecificFunctionContext } from "./SqlParser"; -import { CaseFuncAlternativeContext } from "./SqlParser"; -import { LevelsInWeightStringContext } from "./SqlParser"; -import { LevelInWeightListElementContext } from "./SqlParser"; -import { AggregateWindowedFunctionContext } from "./SqlParser"; -import { ScalarFunctionNameContext } from "./SqlParser"; -import { PasswordFunctionClauseContext } from "./SqlParser"; -import { FunctionArgsContext } from "./SqlParser"; -import { FunctionArgContext } from "./SqlParser"; -import { ExpressionContext } from "./SqlParser"; -import { PredicateContext } from "./SqlParser"; -import { ExpressionAtomContext } from "./SqlParser"; -import { UnaryOperatorContext } from "./SqlParser"; -import { ComparisonOperatorContext } from "./SqlParser"; -import { LogicalOperatorContext } from "./SqlParser"; -import { BitOperatorContext } from "./SqlParser"; -import { MathOperatorContext } from "./SqlParser"; -import { CharsetNameBaseContext } from "./SqlParser"; -import { TransactionLevelBaseContext } from "./SqlParser"; -import { PrivilegesBaseContext } from "./SqlParser"; -import { IntervalTypeBaseContext } from "./SqlParser"; -import { DataTypeBaseContext } from "./SqlParser"; -import { KeywordsCanBeIdContext } from "./SqlParser"; -import { FunctionNameBaseContext } from "./SqlParser"; - - -/** - * This interface defines a complete generic visitor for a parse tree produced - * by `SqlParser`. - * - * @param The return type of the visit operation. Use `void` for - * operations with no return type. - */ -export interface SqlParserVisitor extends ParseTreeVisitor { - /** - * Visit a parse tree produced by the `handlerConditionCode` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => Result; - - /** - * Visit a parse tree produced by the `handlerConditionState` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionState?: (ctx: HandlerConditionStateContext) => Result; - - /** - * Visit a parse tree produced by the `handlerConditionName` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionName?: (ctx: HandlerConditionNameContext) => Result; - - /** - * Visit a parse tree produced by the `handlerConditionWarning` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => Result; - - /** - * Visit a parse tree produced by the `handlerConditionNotfound` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => Result; - - /** - * Visit a parse tree produced by the `handlerConditionException` - * labeled alternative in `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => Result; - - /** - * Visit a parse tree produced by the `levelWeightList` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLevelWeightList?: (ctx: LevelWeightListContext) => Result; - - /** - * Visit a parse tree produced by the `levelWeightRange` - * labeled alternative in `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLevelWeightRange?: (ctx: LevelWeightRangeContext) => Result; - - /** - * Visit a parse tree produced by the `inPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInPredicate?: (ctx: InPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `isNullPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIsNullPredicate?: (ctx: IsNullPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `binaryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBinaryComparasionPredicate?: (ctx: BinaryComparasionPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `subqueryComparasionPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubqueryComparasionPredicate?: (ctx: SubqueryComparasionPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `betweenPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBetweenPredicate?: (ctx: BetweenPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `soundsLikePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => Result; - - /** - * Visit a parse tree produced by the `likePredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLikePredicate?: (ctx: LikePredicateContext) => Result; - - /** - * Visit a parse tree produced by the `regexpPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRegexpPredicate?: (ctx: RegexpPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `expressionAtomPredicate` - * labeled alternative in `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => Result; - - /** - * Visit a parse tree produced by the `simpleIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleIndexDeclaration?: (ctx: SimpleIndexDeclarationContext) => Result; - - /** - * Visit a parse tree produced by the `specialIndexDeclaration` - * labeled alternative in `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSpecialIndexDeclaration?: (ctx: SpecialIndexDeclarationContext) => Result; - - /** - * Visit a parse tree produced by the `userConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserConnectionOption?: (ctx: UserConnectionOptionContext) => Result; - - /** - * Visit a parse tree produced by the `passwordConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => Result; - - /** - * Visit a parse tree produced by the `defaultAuthConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => Result; - - /** - * Visit a parse tree produced by the `pluginDirConnectionOption` - * labeled alternative in `SqlParser.connectionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionEngine` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionComment` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionDataDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionIndexDirectory` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionMaxRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionMinRows` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionTablespace` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => Result; - - /** - * Visit a parse tree produced by the `partitionOptionNodeGroup` - * labeled alternative in `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => Result; - - /** - * Visit a parse tree produced by the `simpleFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `dataTypeFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `valuesFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `caseFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCaseFunctionCall?: (ctx: CaseFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `charFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCharFunctionCall?: (ctx: CharFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `positionFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPositionFunctionCall?: (ctx: PositionFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `substrFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `trimFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTrimFunctionCall?: (ctx: TrimFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `weightFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitWeightFunctionCall?: (ctx: WeightFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `extractFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `getFormatFunctionCall` - * labeled alternative in `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `doDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDoDbReplication?: (ctx: DoDbReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `ignoreDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `doTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDoTableReplication?: (ctx: DoTableReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `ignoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `wildDoTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `wildIgnoreTableReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `rewriteDbReplication` - * labeled alternative in `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => Result; - - /** - * Visit a parse tree produced by the `innerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInnerJoin?: (ctx: InnerJoinContext) => Result; - - /** - * Visit a parse tree produced by the `straightJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStraightJoin?: (ctx: StraightJoinContext) => Result; - - /** - * Visit a parse tree produced by the `outerJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOuterJoin?: (ctx: OuterJoinContext) => Result; - - /** - * Visit a parse tree produced by the `naturalJoin` - * labeled alternative in `SqlParser.joinPart`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNaturalJoin?: (ctx: NaturalJoinContext) => Result; - - /** - * Visit a parse tree produced by the `setVariable` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetVariable?: (ctx: SetVariableContext) => Result; - - /** - * Visit a parse tree produced by the `setCharset` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetCharset?: (ctx: SetCharsetContext) => Result; - - /** - * Visit a parse tree produced by the `setNames` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetNames?: (ctx: SetNamesContext) => Result; - - /** - * Visit a parse tree produced by the `setPassword` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetPassword?: (ctx: SetPasswordContext) => Result; - - /** - * Visit a parse tree produced by the `setTransaction` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetTransaction?: (ctx: SetTransactionContext) => Result; - - /** - * Visit a parse tree produced by the `setAutocommit` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetAutocommit?: (ctx: SetAutocommitContext) => Result; - - /** - * Visit a parse tree produced by the `setNewValueInsideTrigger` - * labeled alternative in `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => Result; - - /** - * Visit a parse tree produced by the `selectStarElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectStarElement?: (ctx: SelectStarElementContext) => Result; - - /** - * Visit a parse tree produced by the `selectColumnElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectColumnElement?: (ctx: SelectColumnElementContext) => Result; - - /** - * Visit a parse tree produced by the `selectFunctionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectFunctionElement?: (ctx: SelectFunctionElementContext) => Result; - - /** - * Visit a parse tree produced by the `selectExpressionElement` - * labeled alternative in `SqlParser.selectElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectExpressionElement?: (ctx: SelectExpressionElementContext) => Result; - - /** - * Visit a parse tree produced by the `notExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNotExpression?: (ctx: NotExpressionContext) => Result; - - /** - * Visit a parse tree produced by the `logicalExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLogicalExpression?: (ctx: LogicalExpressionContext) => Result; - - /** - * Visit a parse tree produced by the `isExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIsExpression?: (ctx: IsExpressionContext) => Result; - - /** - * Visit a parse tree produced by the `predicateExpression` - * labeled alternative in `SqlParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPredicateExpression?: (ctx: PredicateExpressionContext) => Result; - - /** - * Visit a parse tree produced by the `atomTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAtomTableItem?: (ctx: AtomTableItemContext) => Result; - - /** - * Visit a parse tree produced by the `subqueryTableItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubqueryTableItem?: (ctx: SubqueryTableItemContext) => Result; - - /** - * Visit a parse tree produced by the `tableSourcesItem` - * labeled alternative in `SqlParser.tableSourceItem`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSourcesItem?: (ctx: TableSourcesItemContext) => Result; - - /** - * Visit a parse tree produced by the `selectIntoVariables` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => Result; - - /** - * Visit a parse tree produced by the `selectIntoDumpFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => Result; - - /** - * Visit a parse tree produced by the `selectIntoTextFile` - * labeled alternative in `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => Result; - - /** - * Visit a parse tree produced by the `alterByTableOption` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByTableOption?: (ctx: AlterByTableOptionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddColumn?: (ctx: AlterByAddColumnContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddColumns` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddIndex?: (ctx: AlterByAddIndexContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddUniqueKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddSpecialIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddCheckTableConstraint` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `alterBySetAlgorithm` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => Result; - - /** - * Visit a parse tree produced by the `alterByChangeDefault` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByChangeDefault?: (ctx: AlterByChangeDefaultContext) => Result; - - /** - * Visit a parse tree produced by the `alterByChangeColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRenameColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => Result; - - /** - * Visit a parse tree produced by the `alterByLock` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByLock?: (ctx: AlterByLockContext) => Result; - - /** - * Visit a parse tree produced by the `alterByModifyColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDropColumn` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDropColumn?: (ctx: AlterByDropColumnContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDropPrimaryKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRenameIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAlterIndexVisibility` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDropIndex` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDropIndex?: (ctx: AlterByDropIndexContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDropForeignKey` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDisableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDisableKeys?: (ctx: AlterByDisableKeysContext) => Result; - - /** - * Visit a parse tree produced by the `alterByEnableKeys` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByEnableKeys?: (ctx: AlterByEnableKeysContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRename` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRename?: (ctx: AlterByRenameContext) => Result; - - /** - * Visit a parse tree produced by the `alterByOrder` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByOrder?: (ctx: AlterByOrderContext) => Result; - - /** - * Visit a parse tree produced by the `alterByConvertCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDefaultCharset` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDiscardTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDiscardTablespace?: (ctx: AlterByDiscardTablespaceContext) => Result; - - /** - * Visit a parse tree produced by the `alterByImportTablespace` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByImportTablespace?: (ctx: AlterByImportTablespaceContext) => Result; - - /** - * Visit a parse tree produced by the `alterByForce` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByForce?: (ctx: AlterByForceContext) => Result; - - /** - * Visit a parse tree produced by the `alterByValidate` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByValidate?: (ctx: AlterByValidateContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAddPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDropPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByDiscardPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByImportPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByTruncatePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByCoalescePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByReorganizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByExchangePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByAnalyzePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByCheckPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByOptimizePartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRebuildPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRepairPartition` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => Result; - - /** - * Visit a parse tree produced by the `alterByRemovePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => Result; - - /** - * Visit a parse tree produced by the `alterByUpgradePartitioning` - * labeled alternative in `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => Result; - - /** - * Visit a parse tree produced by the `simpleSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleSelect?: (ctx: SimpleSelectContext) => Result; - - /** - * Visit a parse tree produced by the `parenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitParenthesisSelect?: (ctx: ParenthesisSelectContext) => Result; - - /** - * Visit a parse tree produced by the `unionSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnionSelect?: (ctx: UnionSelectContext) => Result; - - /** - * Visit a parse tree produced by the `unionParenthesisSelect` - * labeled alternative in `SqlParser.selectStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => Result; - - /** - * Visit a parse tree produced by the `stringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStringDataType?: (ctx: StringDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `nationalStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNationalStringDataType?: (ctx: NationalStringDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `nationalVaryingStringDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `dimensionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDimensionDataType?: (ctx: DimensionDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `simpleDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleDataType?: (ctx: SimpleDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `collectionDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCollectionDataType?: (ctx: CollectionDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `spatialDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSpatialDataType?: (ctx: SpatialDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `longVarcharDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `longVarbinaryDataType` - * labeled alternative in `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => Result; - - /** - * Visit a parse tree produced by the `partitionComparision` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionComparision?: (ctx: PartitionComparisionContext) => Result; - - /** - * Visit a parse tree produced by the `partitionListAtom` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionListAtom?: (ctx: PartitionListAtomContext) => Result; - - /** - * Visit a parse tree produced by the `partitionListVector` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionListVector?: (ctx: PartitionListVectorContext) => Result; - - /** - * Visit a parse tree produced by the `partitionSimple` - * labeled alternative in `SqlParser.partitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionSimple?: (ctx: PartitionSimpleContext) => Result; - - /** - * Visit a parse tree produced by the `nullColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNullColumnConstraint?: (ctx: NullColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `defaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `autoIncrementColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `primaryKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `uniqueKeyColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `commentColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `formatColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `storageColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `referenceColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `collateColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `generatedColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `serialDefaultColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `checkColumnConstraint` - * labeled alternative in `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCheckColumnConstraint?: (ctx: CheckColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `subPartitionFunctionHash` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => Result; - - /** - * Visit a parse tree produced by the `subPartitionFunctionKey` - * labeled alternative in `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => Result; - - /** - * Visit a parse tree produced by the `passwordAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPasswordAuthOption?: (ctx: PasswordAuthOptionContext) => Result; - - /** - * Visit a parse tree produced by the `stringAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStringAuthOption?: (ctx: StringAuthOptionContext) => Result; - - /** - * Visit a parse tree produced by the `hashAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHashAuthOption?: (ctx: HashAuthOptionContext) => Result; - - /** - * Visit a parse tree produced by the `simpleAuthOption` - * labeled alternative in `SqlParser.userAuthOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => Result; - - /** - * Visit a parse tree produced by the `simpleFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => Result; - - /** - * Visit a parse tree produced by the `channelFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitChannelFlushOption?: (ctx: ChannelFlushOptionContext) => Result; - - /** - * Visit a parse tree produced by the `tableFlushOption` - * labeled alternative in `SqlParser.flushOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableFlushOption?: (ctx: TableFlushOptionContext) => Result; - - /** - * Visit a parse tree produced by the `CloseCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCloseCursor?: (ctx: CloseCursorContext) => Result; - - /** - * Visit a parse tree produced by the `FetchCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFetchCursor?: (ctx: FetchCursorContext) => Result; - - /** - * Visit a parse tree produced by the `OpenCursor` - * labeled alternative in `SqlParser.cursorStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOpenCursor?: (ctx: OpenCursorContext) => Result; - - /** - * Visit a parse tree produced by the `tableSourceBase` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSourceBase?: (ctx: TableSourceBaseContext) => Result; - - /** - * Visit a parse tree produced by the `tableSourceNested` - * labeled alternative in `SqlParser.tableSource`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSourceNested?: (ctx: TableSourceNestedContext) => Result; - - /** - * Visit a parse tree produced by the `preciseSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPreciseSchedule?: (ctx: PreciseScheduleContext) => Result; - - /** - * Visit a parse tree produced by the `intervalSchedule` - * labeled alternative in `SqlParser.scheduleExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIntervalSchedule?: (ctx: IntervalScheduleContext) => Result; - - /** - * Visit a parse tree produced by the `primaryKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrimaryKeyTableConstraint?: (ctx: PrimaryKeyTableConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `uniqueKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUniqueKeyTableConstraint?: (ctx: UniqueKeyTableConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `foreignKeyTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitForeignKeyTableConstraint?: (ctx: ForeignKeyTableConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `checkTableConstraint` - * labeled alternative in `SqlParser.tableConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCheckTableConstraint?: (ctx: CheckTableConstraintContext) => Result; - - /** - * Visit a parse tree produced by the `alterUserMysqlV56` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterUserMysqlV56?: (ctx: AlterUserMysqlV56Context) => Result; - - /** - * Visit a parse tree produced by the `alterUserMysqlV57` - * labeled alternative in `SqlParser.alterUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterUserMysqlV57?: (ctx: AlterUserMysqlV57Context) => Result; - - /** - * Visit a parse tree produced by the `describeStatements` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDescribeStatements?: (ctx: DescribeStatementsContext) => Result; - - /** - * Visit a parse tree produced by the `describeConnection` - * labeled alternative in `SqlParser.describeObjectClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDescribeConnection?: (ctx: DescribeConnectionContext) => Result; - - /** - * Visit a parse tree produced by the `columnDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitColumnDeclaration?: (ctx: ColumnDeclarationContext) => Result; - - /** - * Visit a parse tree produced by the `constraintDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConstraintDeclaration?: (ctx: ConstraintDeclarationContext) => Result; - - /** - * Visit a parse tree produced by the `indexDeclaration` - * labeled alternative in `SqlParser.createDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexDeclaration?: (ctx: IndexDeclarationContext) => Result; - - /** - * Visit a parse tree produced by the `specificFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `aggregateFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `scalarFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `udfFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUdfFunctionCall?: (ctx: UdfFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `passwordFunctionCall` - * labeled alternative in `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionEngine` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionEngine?: (ctx: TableOptionEngineContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionAutoIncrement` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionAverage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionAverage?: (ctx: TableOptionAverageContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionCharset` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionCharset?: (ctx: TableOptionCharsetContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionChecksum` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionChecksum?: (ctx: TableOptionChecksumContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionCollate` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionCollate?: (ctx: TableOptionCollateContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionComment` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionComment?: (ctx: TableOptionCommentContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionCompression` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionCompression?: (ctx: TableOptionCompressionContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionConnection` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionConnection?: (ctx: TableOptionConnectionContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionDataDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionDelay` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionDelay?: (ctx: TableOptionDelayContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionEncryption` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionIndexDirectory` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionInsertMethod` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionKeyBlockSize` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionMaxRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionMinRows` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionPackKeys` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionPassword` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionPassword?: (ctx: TableOptionPasswordContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionRowFormat` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionRecalculation` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionPersistent` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionPersistent?: (ctx: TableOptionPersistentContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionSamplePage` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionTablespace` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => Result; - - /** - * Visit a parse tree produced by the `tableOptionUnion` - * labeled alternative in `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOptionUnion?: (ctx: TableOptionUnionContext) => Result; - - /** - * Visit a parse tree produced by the `constantExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `fullColumnNameExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFullColumnNameExpressionAtom?: (ctx: FullColumnNameExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `functionCallExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `collateExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `mysqlVariableExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `unaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `binaryExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `nestedExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `nestedRowExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `existsExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExistsExpessionAtom?: (ctx: ExistsExpessionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `subqueryExpessionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubqueryExpessionAtom?: (ctx: SubqueryExpessionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `intervalExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `bitExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBitExpressionAtom?: (ctx: BitExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `mathExpressionAtom` - * labeled alternative in `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMathExpressionAtom?: (ctx: MathExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by the `routineComment` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineComment?: (ctx: RoutineCommentContext) => Result; - - /** - * Visit a parse tree produced by the `routineLanguage` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineLanguage?: (ctx: RoutineLanguageContext) => Result; - - /** - * Visit a parse tree produced by the `routineBehavior` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineBehavior?: (ctx: RoutineBehaviorContext) => Result; - - /** - * Visit a parse tree produced by the `routineData` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineData?: (ctx: RoutineDataContext) => Result; - - /** - * Visit a parse tree produced by the `routineSecurity` - * labeled alternative in `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineSecurity?: (ctx: RoutineSecurityContext) => Result; - - /** - * Visit a parse tree produced by the `createUserMysqlV56` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateUserMysqlV56?: (ctx: CreateUserMysqlV56Context) => Result; - - /** - * Visit a parse tree produced by the `createUserMysqlV57` - * labeled alternative in `SqlParser.createUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateUserMysqlV57?: (ctx: CreateUserMysqlV57Context) => Result; - - /** - * Visit a parse tree produced by the `currentSchemaPriviLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => Result; - - /** - * Visit a parse tree produced by the `globalPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => Result; - - /** - * Visit a parse tree produced by the `definiteSchemaPrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => Result; - - /** - * Visit a parse tree produced by the `definiteFullTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => Result; - - /** - * Visit a parse tree produced by the `definiteFullTablePrivLevel2` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => Result; - - /** - * Visit a parse tree produced by the `definiteTablePrivLevel` - * labeled alternative in `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => Result; - - /** - * Visit a parse tree produced by the `showMasterLogs` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowMasterLogs?: (ctx: ShowMasterLogsContext) => Result; - - /** - * Visit a parse tree produced by the `showLogEvents` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowLogEvents?: (ctx: ShowLogEventsContext) => Result; - - /** - * Visit a parse tree produced by the `showObjectFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowObjectFilter?: (ctx: ShowObjectFilterContext) => Result; - - /** - * Visit a parse tree produced by the `showColumns` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowColumns?: (ctx: ShowColumnsContext) => Result; - - /** - * Visit a parse tree produced by the `showCreateDb` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowCreateDb?: (ctx: ShowCreateDbContext) => Result; - - /** - * Visit a parse tree produced by the `showCreateFullIdObject` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => Result; - - /** - * Visit a parse tree produced by the `showCreateUser` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowCreateUser?: (ctx: ShowCreateUserContext) => Result; - - /** - * Visit a parse tree produced by the `showEngine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowEngine?: (ctx: ShowEngineContext) => Result; - - /** - * Visit a parse tree produced by the `showGlobalInfo` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => Result; - - /** - * Visit a parse tree produced by the `showErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowErrors?: (ctx: ShowErrorsContext) => Result; - - /** - * Visit a parse tree produced by the `showCountErrors` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowCountErrors?: (ctx: ShowCountErrorsContext) => Result; - - /** - * Visit a parse tree produced by the `showSchemaFilter` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => Result; - - /** - * Visit a parse tree produced by the `showRoutine` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowRoutine?: (ctx: ShowRoutineContext) => Result; - - /** - * Visit a parse tree produced by the `showGrants` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowGrants?: (ctx: ShowGrantsContext) => Result; - - /** - * Visit a parse tree produced by the `showIndexes` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowIndexes?: (ctx: ShowIndexesContext) => Result; - - /** - * Visit a parse tree produced by the `showOpenTables` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowOpenTables?: (ctx: ShowOpenTablesContext) => Result; - - /** - * Visit a parse tree produced by the `showProfile` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowProfile?: (ctx: ShowProfileContext) => Result; - - /** - * Visit a parse tree produced by the `showSlaveStatus` - * labeled alternative in `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => Result; - - /** - * Visit a parse tree produced by the `alterSimpleDatabase` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => Result; - - /** - * Visit a parse tree produced by the `alterUpgradeName` - * labeled alternative in `SqlParser.alterDatabase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => Result; - - /** - * Visit a parse tree produced by the `masterStringOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterStringOption?: (ctx: MasterStringOptionContext) => Result; - - /** - * Visit a parse tree produced by the `masterDecimalOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => Result; - - /** - * Visit a parse tree produced by the `masterBoolOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterBoolOption?: (ctx: MasterBoolOptionContext) => Result; - - /** - * Visit a parse tree produced by the `masterRealOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterRealOption?: (ctx: MasterRealOptionContext) => Result; - - /** - * Visit a parse tree produced by the `masterUidListOption` - * labeled alternative in `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterUidListOption?: (ctx: MasterUidListOptionContext) => Result; - - /** - * Visit a parse tree produced by the `gtidsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => Result; - - /** - * Visit a parse tree produced by the `masterLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => Result; - - /** - * Visit a parse tree produced by the `relayLogUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => Result; - - /** - * Visit a parse tree produced by the `sqlGapsUntilOption` - * labeled alternative in `SqlParser.untilOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => Result; - - /** - * Visit a parse tree produced by the `copyCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCopyCreateTable?: (ctx: CopyCreateTableContext) => Result; - - /** - * Visit a parse tree produced by the `queryCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitQueryCreateTable?: (ctx: QueryCreateTableContext) => Result; - - /** - * Visit a parse tree produced by the `columnCreateTable` - * labeled alternative in `SqlParser.createTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitColumnCreateTable?: (ctx: ColumnCreateTableContext) => Result; - - /** - * Visit a parse tree produced by the `partitionFunctionHash` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => Result; - - /** - * Visit a parse tree produced by the `partitionFunctionKey` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => Result; - - /** - * Visit a parse tree produced by the `partitionFunctionRange` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => Result; - - /** - * Visit a parse tree produced by the `partitionFunctionList` - * labeled alternative in `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionFunctionList?: (ctx: PartitionFunctionListContext) => Result; - - /** - * Visit a parse tree produced by the `detailRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDetailRevoke?: (ctx: DetailRevokeContext) => Result; - - /** - * Visit a parse tree produced by the `shortRevoke` - * labeled alternative in `SqlParser.revokeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShortRevoke?: (ctx: ShortRevokeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.program`. - * @param ctx the parse tree - * @return the visitor result - */ - visitProgram?: (ctx: ProgramContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.statement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStatement?: (ctx: StatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.sqlStatements`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSqlStatements?: (ctx: SqlStatementsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.sqlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSqlStatement?: (ctx: SqlStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.emptyStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitEmptyStatement?: (ctx: EmptyStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.ddlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDdlStatement?: (ctx: DdlStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dmlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDmlStatement?: (ctx: DmlStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.transactionStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTransactionStatement?: (ctx: TransactionStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.replicationStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReplicationStatement?: (ctx: ReplicationStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.preparedStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPreparedStatement?: (ctx: PreparedStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.compoundStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCompoundStatement?: (ctx: CompoundStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.administrationStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAdministrationStatement?: (ctx: AdministrationStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.utilityStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUtilityStatement?: (ctx: UtilityStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createDatabase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateDatabase?: (ctx: CreateDatabaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createEvent`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateEvent?: (ctx: CreateEventContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createIndex`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateIndex?: (ctx: CreateIndexContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createLogfileGroup`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createProcedure`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateProcedure?: (ctx: CreateProcedureContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateFunction?: (ctx: CreateFunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createServer`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateServer?: (ctx: CreateServerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateTable?: (ctx: CreateTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createTablespaceInnodb`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createTablespaceNdb`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createTrigger`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateTrigger?: (ctx: CreateTriggerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createView`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateView?: (ctx: CreateViewContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createDatabaseOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.ownerStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOwnerStatement?: (ctx: OwnerStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.scheduleExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitScheduleExpression?: (ctx: ScheduleExpressionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.timestampValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTimestampValue?: (ctx: TimestampValueContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.intervalExpr`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIntervalExpr?: (ctx: IntervalExprContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.intervalType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIntervalType?: (ctx: IntervalTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.enableType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitEnableType?: (ctx: EnableTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexType?: (ctx: IndexTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexOption?: (ctx: IndexOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.procedureParameter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitProcedureParameter?: (ctx: ProcedureParameterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.functionParameter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionParameter?: (ctx: FunctionParameterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.routineOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineOption?: (ctx: RoutineOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.serverOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitServerOption?: (ctx: ServerOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createDefinitions`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateDefinitions?: (ctx: CreateDefinitionsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateDefinition?: (ctx: CreateDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.columnDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitColumnDefinition?: (ctx: ColumnDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.columnConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitColumnConstraint?: (ctx: ColumnConstraintContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableConstraint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableConstraint?: (ctx: TableConstraintContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.referenceDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReferenceDefinition?: (ctx: ReferenceDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.referenceAction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReferenceAction?: (ctx: ReferenceActionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.referenceControlType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReferenceControlType?: (ctx: ReferenceControlTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexColumnDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexColumnDefinition?: (ctx: IndexColumnDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableOption?: (ctx: TableOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tablespaceStorage`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTablespaceStorage?: (ctx: TablespaceStorageContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionDefinitions`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.subpartitionFunctionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionDefinition?: (ctx: PartitionDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionDefinerAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionDefinerVector`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.subpartitionDefinition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.partitionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPartitionOption?: (ctx: PartitionOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterDatabase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterDatabase?: (ctx: AlterDatabaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterEvent`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterEvent?: (ctx: AlterEventContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterFunction?: (ctx: AlterFunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterInstance`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterInstance?: (ctx: AlterInstanceContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterLogfileGroup`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterProcedure`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterProcedure?: (ctx: AlterProcedureContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterServer`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterServer?: (ctx: AlterServerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterTable?: (ctx: AlterTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterTablespace`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterTablespace?: (ctx: AlterTablespaceContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterView`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterView?: (ctx: AlterViewContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterSpecification?: (ctx: AlterSpecificationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropDatabase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropDatabase?: (ctx: DropDatabaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropEvent`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropEvent?: (ctx: DropEventContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropIndex`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropIndex?: (ctx: DropIndexContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropLogfileGroup`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropProcedure`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropProcedure?: (ctx: DropProcedureContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropFunction?: (ctx: DropFunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropServer`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropServer?: (ctx: DropServerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropTable?: (ctx: DropTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropTablespace`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropTablespace?: (ctx: DropTablespaceContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropTrigger`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropTrigger?: (ctx: DropTriggerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropView`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropView?: (ctx: DropViewContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.renameTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRenameTable?: (ctx: RenameTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.renameTableClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRenameTableClause?: (ctx: RenameTableClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.truncateTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTruncateTable?: (ctx: TruncateTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.callStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCallStatement?: (ctx: CallStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.deleteStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeleteStatement?: (ctx: DeleteStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.doStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDoStatement?: (ctx: DoStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerStatement?: (ctx: HandlerStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.insertStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInsertStatement?: (ctx: InsertStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.loadDataStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoadDataStatement?: (ctx: LoadDataStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.loadXmlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoadXmlStatement?: (ctx: LoadXmlStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.replaceStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReplaceStatement?: (ctx: ReplaceStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectStatement?: (ctx: SelectStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.updateStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUpdateStatement?: (ctx: UpdateStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.insertStatementValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInsertStatementValue?: (ctx: InsertStatementValueContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.updatedElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUpdatedElement?: (ctx: UpdatedElementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.assignmentField`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAssignmentField?: (ctx: AssignmentFieldContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lockClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLockClause?: (ctx: LockClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.singleDeleteStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.multipleDeleteStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerOpenStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerReadIndexStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerReadStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerReadStatement?: (ctx: HandlerReadStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerCloseStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.singleUpdateStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.multipleUpdateStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.orderByClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOrderByClause?: (ctx: OrderByClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.orderByExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOrderByExpression?: (ctx: OrderByExpressionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableSources`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSources?: (ctx: TableSourcesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableSource`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSource?: (ctx: TableSourceContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableSourceItem`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableSourceItem?: (ctx: TableSourceItemContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexHint`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexHint?: (ctx: IndexHintContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexHintType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexHintType?: (ctx: IndexHintTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.joinPart`. - * @param ctx the parse tree - * @return the visitor result - */ - visitJoinPart?: (ctx: JoinPartContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.queryExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitQueryExpression?: (ctx: QueryExpressionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.queryExpressionNointo`. - * @param ctx the parse tree - * @return the visitor result - */ - visitQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.querySpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitQuerySpecification?: (ctx: QuerySpecificationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.querySpecificationNointo`. - * @param ctx the parse tree - * @return the visitor result - */ - visitQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.unionParenthesis`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnionParenthesis?: (ctx: UnionParenthesisContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.unionStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnionStatement?: (ctx: UnionStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectSpec`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectSpec?: (ctx: SelectSpecContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectElements`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectElements?: (ctx: SelectElementsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectElement?: (ctx: SelectElementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectIntoExpression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectIntoExpression?: (ctx: SelectIntoExpressionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectFieldsInto`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.selectLinesInto`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSelectLinesInto?: (ctx: SelectLinesIntoContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.fromClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFromClause?: (ctx: FromClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.groupByItem`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGroupByItem?: (ctx: GroupByItemContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.limitClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLimitClause?: (ctx: LimitClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.limitClauseAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLimitClauseAtom?: (ctx: LimitClauseAtomContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.startTransaction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStartTransaction?: (ctx: StartTransactionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.beginWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBeginWork?: (ctx: BeginWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.commitWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCommitWork?: (ctx: CommitWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.rollbackWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRollbackWork?: (ctx: RollbackWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.savepointStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSavepointStatement?: (ctx: SavepointStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.rollbackStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRollbackStatement?: (ctx: RollbackStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.releaseStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReleaseStatement?: (ctx: ReleaseStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lockTables`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLockTables?: (ctx: LockTablesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.unlockTables`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnlockTables?: (ctx: UnlockTablesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.setAutocommitStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.setTransactionStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetTransactionStatement?: (ctx: SetTransactionStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.transactionMode`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTransactionMode?: (ctx: TransactionModeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lockTableElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLockTableElement?: (ctx: LockTableElementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lockAction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLockAction?: (ctx: LockActionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.transactionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTransactionOption?: (ctx: TransactionOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.transactionLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTransactionLevel?: (ctx: TransactionLevelContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.changeMaster`. - * @param ctx the parse tree - * @return the visitor result - */ - visitChangeMaster?: (ctx: ChangeMasterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.changeReplicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.purgeBinaryLogs`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.resetMaster`. - * @param ctx the parse tree - * @return the visitor result - */ - visitResetMaster?: (ctx: ResetMasterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.resetSlave`. - * @param ctx the parse tree - * @return the visitor result - */ - visitResetSlave?: (ctx: ResetSlaveContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.startSlave`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStartSlave?: (ctx: StartSlaveContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.stopSlave`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStopSlave?: (ctx: StopSlaveContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.startGroupReplication`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStartGroupReplication?: (ctx: StartGroupReplicationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.stopGroupReplication`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStopGroupReplication?: (ctx: StopGroupReplicationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.masterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMasterOption?: (ctx: MasterOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.stringMasterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStringMasterOption?: (ctx: StringMasterOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.decimalMasterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.boolMasterOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBoolMasterOption?: (ctx: BoolMasterOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.channelOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitChannelOption?: (ctx: ChannelOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.replicationFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReplicationFilter?: (ctx: ReplicationFilterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tablePair`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTablePair?: (ctx: TablePairContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.threadType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitThreadType?: (ctx: ThreadTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.untilOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUntilOption?: (ctx: UntilOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.connectionOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConnectionOption?: (ctx: ConnectionOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.gtuidSet`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGtuidSet?: (ctx: GtuidSetContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaStartTransaction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaStartTransaction?: (ctx: XaStartTransactionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaEndTransaction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaEndTransaction?: (ctx: XaEndTransactionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaPrepareStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaPrepareStatement?: (ctx: XaPrepareStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaCommitWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaCommitWork?: (ctx: XaCommitWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaRollbackWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaRollbackWork?: (ctx: XaRollbackWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xaRecoverWork`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXaRecoverWork?: (ctx: XaRecoverWorkContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.prepareStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrepareStatement?: (ctx: PrepareStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.executeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExecuteStatement?: (ctx: ExecuteStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.deallocatePrepare`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeallocatePrepare?: (ctx: DeallocatePrepareContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.routineBody`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRoutineBody?: (ctx: RoutineBodyContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.blockStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBlockStatement?: (ctx: BlockStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.caseStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCaseStatement?: (ctx: CaseStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.ifStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIfStatement?: (ctx: IfStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.iterateStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIterateStatement?: (ctx: IterateStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.leaveStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLeaveStatement?: (ctx: LeaveStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.loopStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoopStatement?: (ctx: LoopStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.repeatStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRepeatStatement?: (ctx: RepeatStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.returnStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitReturnStatement?: (ctx: ReturnStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.whileStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitWhileStatement?: (ctx: WhileStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.cursorStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCursorStatement?: (ctx: CursorStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.declareVariable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeclareVariable?: (ctx: DeclareVariableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.declareCondition`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeclareCondition?: (ctx: DeclareConditionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.declareCursor`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeclareCursor?: (ctx: DeclareCursorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.declareHandler`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDeclareHandler?: (ctx: DeclareHandlerContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.handlerConditionValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHandlerConditionValue?: (ctx: HandlerConditionValueContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.procedureSqlStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.caseAlternative`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCaseAlternative?: (ctx: CaseAlternativeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.elifAlternative`. - * @param ctx the parse tree - * @return the visitor result - */ - visitElifAlternative?: (ctx: ElifAlternativeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.alterUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAlterUser?: (ctx: AlterUserContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateUser?: (ctx: CreateUserContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dropUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDropUser?: (ctx: DropUserContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.grantStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGrantStatement?: (ctx: GrantStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.grantProxy`. - * @param ctx the parse tree - * @return the visitor result - */ - visitGrantProxy?: (ctx: GrantProxyContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.renameUser`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRenameUser?: (ctx: RenameUserContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.revokeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRevokeStatement?: (ctx: RevokeStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.revokeProxy`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRevokeProxy?: (ctx: RevokeProxyContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.setPasswordStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetPasswordStatement?: (ctx: SetPasswordStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userSpecification`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserSpecification?: (ctx: UserSpecificationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userAuthOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserAuthOption?: (ctx: UserAuthOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tlsOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTlsOption?: (ctx: TlsOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userResourceOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserResourceOption?: (ctx: UserResourceOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userPasswordOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserPasswordOption?: (ctx: UserPasswordOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userLockOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserLockOption?: (ctx: UserLockOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.privelegeClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrivelegeClause?: (ctx: PrivelegeClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.privilege`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrivilege?: (ctx: PrivilegeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.privilegeLevel`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrivilegeLevel?: (ctx: PrivilegeLevelContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.renameUserClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRenameUserClause?: (ctx: RenameUserClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.analyzeTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAnalyzeTable?: (ctx: AnalyzeTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.checkTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCheckTable?: (ctx: CheckTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.checksumTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitChecksumTable?: (ctx: ChecksumTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.optimizeTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitOptimizeTable?: (ctx: OptimizeTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.repairTable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitRepairTable?: (ctx: RepairTableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.checkTableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCheckTableOption?: (ctx: CheckTableOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.createUdfunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCreateUdfunction?: (ctx: CreateUdfunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.installPlugin`. - * @param ctx the parse tree - * @return the visitor result - */ - visitInstallPlugin?: (ctx: InstallPluginContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.uninstallPlugin`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUninstallPlugin?: (ctx: UninstallPluginContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.setStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSetStatement?: (ctx: SetStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowStatement?: (ctx: ShowStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.variableClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitVariableClause?: (ctx: VariableClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showCommonEntity`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowCommonEntity?: (ctx: ShowCommonEntityContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showFilter`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowFilter?: (ctx: ShowFilterContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showGlobalInfoClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showSchemaEntity`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.showProfileType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShowProfileType?: (ctx: ShowProfileTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.binlogStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBinlogStatement?: (ctx: BinlogStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.cacheIndexStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCacheIndexStatement?: (ctx: CacheIndexStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.flushStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFlushStatement?: (ctx: FlushStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.killStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitKillStatement?: (ctx: KillStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.loadIndexIntoCache`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.resetStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitResetStatement?: (ctx: ResetStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.shutdownStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitShutdownStatement?: (ctx: ShutdownStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableIndexes`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableIndexes?: (ctx: TableIndexesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.flushOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFlushOption?: (ctx: FlushOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.flushTableOption`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFlushTableOption?: (ctx: FlushTableOptionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.loadedTableIndexes`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.simpleDescribeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.fullDescribeStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFullDescribeStatement?: (ctx: FullDescribeStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.helpStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHelpStatement?: (ctx: HelpStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.useStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUseStatement?: (ctx: UseStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.signalStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSignalStatement?: (ctx: SignalStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.resignalStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitResignalStatement?: (ctx: ResignalStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.signalConditionInformation`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSignalConditionInformation?: (ctx: SignalConditionInformationContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.diagnosticsStatement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.diagnosticsConditionInformationName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.describeObjectClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.fullId`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFullId?: (ctx: FullIdContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tableName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTableName?: (ctx: TableNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.fullColumnName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFullColumnName?: (ctx: FullColumnNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexColumnName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexColumnName?: (ctx: IndexColumnNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserName?: (ctx: UserNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.mysqlVariable`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMysqlVariable?: (ctx: MysqlVariableContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.charsetName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCharsetName?: (ctx: CharsetNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.collationName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCollationName?: (ctx: CollationNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.engineName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitEngineName?: (ctx: EngineNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.uuidSet`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUuidSet?: (ctx: UuidSetContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xid`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXid?: (ctx: XidContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.xuidStringId`. - * @param ctx the parse tree - * @return the visitor result - */ - visitXuidStringId?: (ctx: XuidStringIdContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.authPlugin`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAuthPlugin?: (ctx: AuthPluginContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.uid`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUid?: (ctx: UidContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.simpleId`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleId?: (ctx: SimpleIdContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dottedId`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDottedId?: (ctx: DottedIdContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.decimalLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDecimalLiteral?: (ctx: DecimalLiteralContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.fileSizeLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFileSizeLiteral?: (ctx: FileSizeLiteralContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.stringLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitStringLiteral?: (ctx: StringLiteralContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.booleanLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBooleanLiteral?: (ctx: BooleanLiteralContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.hexadecimalLiteral`. - * @param ctx the parse tree - * @return the visitor result - */ - visitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.nullNotnull`. - * @param ctx the parse tree - * @return the visitor result - */ - visitNullNotnull?: (ctx: NullNotnullContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.constant`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConstant?: (ctx: ConstantContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDataType?: (ctx: DataTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.collectionOptions`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCollectionOptions?: (ctx: CollectionOptionsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.convertedDataType`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConvertedDataType?: (ctx: ConvertedDataTypeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lengthOneDimension`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLengthOneDimension?: (ctx: LengthOneDimensionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lengthTwoDimension`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.lengthTwoOptionalDimension`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.uidList`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUidList?: (ctx: UidListContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.tables`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTables?: (ctx: TablesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.indexColumnNames`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIndexColumnNames?: (ctx: IndexColumnNamesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.expressions`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressions?: (ctx: ExpressionsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.expressionsWithDefaults`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.constants`. - * @param ctx the parse tree - * @return the visitor result - */ - visitConstants?: (ctx: ConstantsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.simpleStrings`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSimpleStrings?: (ctx: SimpleStringsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.userVariables`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUserVariables?: (ctx: UserVariablesContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.defaultValue`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDefaultValue?: (ctx: DefaultValueContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.currentTimestamp`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCurrentTimestamp?: (ctx: CurrentTimestampContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.expressionOrDefault`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.ifExists`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIfExists?: (ctx: IfExistsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.ifNotExists`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIfNotExists?: (ctx: IfNotExistsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.functionCall`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionCall?: (ctx: FunctionCallContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.specificFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitSpecificFunction?: (ctx: SpecificFunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.caseFuncAlternative`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.levelsInWeightString`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.levelInWeightListElement`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.aggregateWindowedFunction`. - * @param ctx the parse tree - * @return the visitor result - */ - visitAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.scalarFunctionName`. - * @param ctx the parse tree - * @return the visitor result - */ - visitScalarFunctionName?: (ctx: ScalarFunctionNameContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.passwordFunctionClause`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.functionArgs`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionArgs?: (ctx: FunctionArgsContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.functionArg`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionArg?: (ctx: FunctionArgContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.expression`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpression?: (ctx: ExpressionContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.predicate`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPredicate?: (ctx: PredicateContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.expressionAtom`. - * @param ctx the parse tree - * @return the visitor result - */ - visitExpressionAtom?: (ctx: ExpressionAtomContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.unaryOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitUnaryOperator?: (ctx: UnaryOperatorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.comparisonOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitComparisonOperator?: (ctx: ComparisonOperatorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.logicalOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitLogicalOperator?: (ctx: LogicalOperatorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.bitOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitBitOperator?: (ctx: BitOperatorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.mathOperator`. - * @param ctx the parse tree - * @return the visitor result - */ - visitMathOperator?: (ctx: MathOperatorContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.charsetNameBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitCharsetNameBase?: (ctx: CharsetNameBaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.transactionLevelBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.privilegesBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitPrivilegesBase?: (ctx: PrivilegesBaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.intervalTypeBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.dataTypeBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitDataTypeBase?: (ctx: DataTypeBaseContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.keywordsCanBeId`. - * @param ctx the parse tree - * @return the visitor result - */ - visitKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => Result; - - /** - * Visit a parse tree produced by `SqlParser.functionNameBase`. - * @param ctx the parse tree - * @return the visitor result - */ - visitFunctionNameBase?: (ctx: FunctionNameBaseContext) => Result; -} - diff --git a/src/lib/mysql/MySqlLexer.interp b/src/lib/mysql/MySqlLexer.interp new file mode 100644 index 0000000..8574d91 --- /dev/null +++ b/src/lib/mysql/MySqlLexer.interp @@ -0,0 +1,2720 @@ +token literal names: +null +null +null +null +null +'ACTIVE' +'ADD' +'ALL' +'ALTER' +'ALWAYS' +'ANALYZE' +'AND' +'ARRAY' +'AS' +'ASC' +'ATTRIBUTE' +'BEFORE' +'BETWEEN' +'BOTH' +'BUCKETS' +'BY' +'CALL' +'CASCADE' +'CASE' +'CAST' +'CHANGE' +'CHARACTER' +'CHECK' +'COLLATE' +'COLUMN' +'CONDITION' +'CONSTRAINT' +'CONTINUE' +'CONVERT' +'CREATE' +'CROSS' +'CURRENT' +'CURRENT_USER' +'CURSOR' +'DATABASE' +'DATABASES' +'DECLARE' +'DEFAULT' +'DELAYED' +'DELETE' +'DESC' +'DESCRIBE' +'DETERMINISTIC' +'DIAGNOSTICS' +'DISTINCT' +'DISTINCTROW' +'DROP' +'EACH' +'ELSE' +'ELSEIF' +'EMPTY' +'ENCLOSED' +'ENFORCED' +'ESCAPED' +'EXCEPT' +'EXISTS' +'EXIT' +'EXPLAIN' +'FALSE' +'FETCH' +'FOR' +'FORCE' +'FOREIGN' +'FROM' +'FULLTEXT' +'GENERATE' +'GENERATED' +'GET' +'GRANT' +'GROUP' +'HAVING' +'HIGH_PRIORITY' +'HISTOGRAM' +'IF' +'IGNORE' +'IN' +'INACTIVE' +'INDEX' +'INFILE' +'INNER' +'INOUT' +'INSERT' +'INTERVAL' +'INTO' +'IS' +'ITERATE' +'JOIN' +'KEY' +'KEYS' +'KILL' +'LATERAL' +'LEADING' +'LEAVE' +'LEFT' +'LIKE' +'LIMIT' +'LINEAR' +'LINES' +'LOAD' +'LOCK' +'LOCKED' +'LOOP' +'LOW_PRIORITY' +'MASTER_BIND' +'MASTER_SSL_VERIFY_SERVER_CERT' +'MATCH' +'MAXVALUE' +'MODIFIES' +'NATURAL' +'NOT' +'NO_WRITE_TO_BINLOG' +'NULL' +'NUMBER' +'STREAM' +'ON' +'OPTIMIZE' +'OPTION' +'OPTIONAL' +'OPTIONALLY' +'OR' +'ORDER' +'OUT' +'OUTER' +'OUTFILE' +'OVER' +'PARTITION' +'PRIMARY' +'PROCEDURE' +'PURGE' +'RANGE' +'READ' +'READS' +'REFERENCE' +'REFERENCES' +'REGEXP' +'RELEASE' +'RENAME' +'REPEAT' +'REPLACE' +'REQUIRE' +'RESIGNAL' +'RESTRICT' +'RETAIN' +'RETURN' +'REVOKE' +'RIGHT' +'RLIKE' +'SCHEMA' +'SCHEMAS' +'SELECT' +'SET' +'SEPARATOR' +'SHOW' +'SIGNAL' +'SKIP' +'SKIP_QUERY_REWRITE' +'SPATIAL' +'SQL' +'SQLEXCEPTION' +'SQLSTATE' +'SQLWARNING' +'SQL_BIG_RESULT' +'SQL_CALC_FOUND_ROWS' +'SQL_SMALL_RESULT' +'SSL' +'STACKED' +'STARTING' +'STRAIGHT_JOIN' +'TABLE' +'TERMINATED' +'THEN' +'TO' +'TRAILING' +'TRIGGER' +'TRUE' +'UNDO' +'UNION' +'UNIQUE' +'UNLOCK' +'UNSIGNED' +'UPDATE' +'USAGE' +'USE' +'USING' +'VALUES' +'VCPU' +'WHEN' +'WHERE' +'WHILE' +'WITH' +'WRITE' +'XOR' +'ZEROFILL' +'TINYINT' +'SMALLINT' +'MEDIUMINT' +'MIDDLEINT' +'INT' +'INT1' +'INT2' +'INT3' +'INT4' +'INT8' +'INTEGER' +'BIGINT' +'REAL' +'DOUBLE' +'PRECISION' +'FLOAT' +'FLOAT4' +'FLOAT8' +'DECIMAL' +'DEC' +'NUMERIC' +'DATE' +'TIME' +'TIMESTAMP' +'DATETIME' +'YEAR' +'CHAR' +'VARCHAR' +'NVARCHAR' +'NATIONAL' +'BINARY' +'VARBINARY' +'TINYBLOB' +'BLOB' +'MEDIUMBLOB' +'LONG' +'LONGBLOB' +'TINYTEXT' +'TEXT' +'MEDIUMTEXT' +'LONGTEXT' +'ENUM' +'VARYING' +'SERIAL' +'YEAR_MONTH' +'DAY_HOUR' +'DAY_MINUTE' +'DAY_SECOND' +'HOUR_MINUTE' +'HOUR_SECOND' +'MINUTE_SECOND' +'SECOND_MICROSECOND' +'MINUTE_MICROSECOND' +'HOUR_MICROSECOND' +'DAY_MICROSECOND' +'JSON_TABLE' +'JSON_VALUE' +'NESTED' +'ORDINALITY' +'PATH' +'AVG' +'BIT_AND' +'BIT_OR' +'BIT_XOR' +'COUNT' +'CUME_DIST' +'DENSE_RANK' +'FIRST_VALUE' +'GROUP_CONCAT' +'LAG' +'LAST_VALUE' +'LEAD' +'MAX' +'MIN' +'NTILE' +'NTH_VALUE' +'PERCENT_RANK' +'RANK' +'ROW_NUMBER' +'STD' +'STDDEV' +'STDDEV_POP' +'STDDEV_SAMP' +'SUM' +'VAR_POP' +'VAR_SAMP' +'VARIANCE' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'LOCALTIME' +'CURDATE' +'CURTIME' +'DATE_ADD' +'DATE_SUB' +'EXTRACT' +'LOCALTIMESTAMP' +'NOW' +'POSITION' +'SUBSTR' +'SUBSTRING' +'SYSDATE' +'TRIM' +'UTC_DATE' +'UTC_TIME' +'UTC_TIMESTAMP' +'ACCOUNT' +'ACTION' +'AFTER' +'AGGREGATE' +'ALGORITHM' +'ANY' +'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS' +'AT' +'AUTHORS' +'AUTOCOMMIT' +'AUTOEXTEND_SIZE' +'AUTO_INCREMENT' +'AVG_ROW_LENGTH' +'BEGIN' +'BINLOG' +'BIT' +'BLOCK' +'BOOL' +'BOOLEAN' +'BTREE' +'CACHE' +'CASCADED' +'CHAIN' +'CHANGED' +'CHANNEL' +'CHECKSUM' +'CHALLENGE_RESPONSE' +'CIPHER' +'CLASS_ORIGIN' +'CLIENT' +'CLOSE' +'COALESCE' +'CODE' +'COLUMNS' +'COLUMN_FORMAT' +'COLUMN_NAME' +'COMMENT' +'COMMIT' +'COMPACT' +'COMPLETION' +'COMPONENT' +'COMPRESSED' +'COMPRESSION' +'CONCURRENT' +'CONNECT' +'CONNECTION' +'CONSISTENT' +'CONSTRAINT_CATALOG' +'CONSTRAINT_SCHEMA' +'CONSTRAINT_NAME' +'CONTAINS' +'CONTEXT' +'CONTRIBUTORS' +'COPY' +'CPU' +'CURSOR_NAME' +'DATA' +'DATAFILE' +'DEALLOCATE' +'DEFAULT_AUTH' +'DEFINER' +'DELAY_KEY_WRITE' +'DES_KEY_FILE' +'DIRECTORY' +'DISABLE' +'DISCARD' +'DISK' +'DO' +'DUMPFILE' +'DUPLICATE' +'DYNAMIC' +'ENABLE' +'ENCRYPTION' +'ENCRYPTION_KEY_ID' +'END' +'ENDS' +'ENGINE' +'ENGINES' +'ERROR' +'ERRORS' +'ESCAPE' +'EVENT' +'EVENTS' +'EVERY' +'EXCHANGE' +'EXCLUSIVE' +'EXPIRE' +'EXPORT' +'EXTENDED' +'EXTENT_SIZE' +'FACTOR' +'FAILED_LOGIN_ATTEMPTS' +'FAST' +'FAULTS' +'FIELDS' +'FILE_BLOCK_SIZE' +'FILTER' +'FINISH' +'FIRST' +'FIXED' +'FLUSH' +'FOLLOWING' +'FOLLOWS' +'FOUND' +'FULL' +'FUNCTION' +'GENERAL' +'GET_MASTER_PUBLIC_KEY' +'GET_SOURCE_PUBLIC_KEY' +'GLOBAL' +'GRANTS' +'GROUP_REPLICATION' +'GTID_ONLY' +'HANDLER' +'HASH' +'HELP' +'HISTORY' +'HOST' +'HOSTS' +'IDENTIFIED' +'IGNORE_SERVER_IDS' +'IMPORT' +'INDEXES' +'INITIAL' +'INITIAL_SIZE' +'INITIATE' +'INPLACE' +'INSERT_METHOD' +'INSTALL' +'INSTANCE' +'INSTANT' +'INVISIBLE' +'INVOKER' +'IO' +'IO_THREAD' +'IPC' +'ISOLATION' +'ISSUER' +'JSON' +'KEY_BLOCK_SIZE' +'LANGUAGE' +'LAST' +'LEAVES' +'LESS' +'LEVEL' +'LIST' +'LOCAL' +'LOGFILE' +'LOGS' +'MASTER' +'MASTER_AUTO_POSITION' +'MASTER_COMPRESSION_ALGORITHMS' +'MASTER_CONNECT_RETRY' +'MASTER_DELAY' +'MASTER_HEARTBEAT_PERIOD' +'MASTER_HOST' +'MASTER_LOG_FILE' +'MASTER_LOG_POS' +'MASTER_PASSWORD' +'MASTER_PORT' +'MASTER_PUBLIC_KEY_PATH' +'MASTER_RETRY_COUNT' +'MASTER_SSL' +'MASTER_SSL_CA' +'MASTER_SSL_CAPATH' +'MASTER_SSL_CERT' +'MASTER_SSL_CIPHER' +'MASTER_SSL_CRL' +'MASTER_SSL_CRLPATH' +'MASTER_SSL_KEY' +'MASTER_TLS_CIPHERSUITES' +'MASTER_TLS_VERSION' +'MASTER_USER' +'MASTER_ZSTD_COMPRESSION_LEVEL' +'MAX_CONNECTIONS_PER_HOUR' +'MAX_QUERIES_PER_HOUR' +'MAX_ROWS' +'MAX_SIZE' +'MAX_UPDATES_PER_HOUR' +'MAX_USER_CONNECTIONS' +'MEDIUM' +'MEMBER' +'MERGE' +'MESSAGE_TEXT' +'MID' +'MIGRATE' +'MIN_ROWS' +'MODE' +'MODIFY' +'MUTEX' +'MYSQL' +'MYSQL_ERRNO' +'NAME' +'NAMES' +'NCHAR' +'NETWORK_NAMESPACE' +'NEVER' +'NEXT' +'NO' +'NOWAIT' +'NODEGROUP' +'NONE' +'ODBC' +'OFF' +'OFFLINE' +'OFFSET' +'OF' +'OLD' +'OLD_PASSWORD' +'ONE' +'ONLINE' +'ONLY' +'OPEN' +'OPTIMIZER_COSTS' +'OPTIONS' +'OWNER' +'PACK_KEYS' +'PAGE' +'PAGE_CHECKSUM' +'PAGE_COMPRESSED' +'PAGE_COMPRESSION_LEVEL' +'PARSER' +'PARTIAL' +'PARTITIONING' +'PARTITIONS' +'PASSWORD' +'PASSWORD_LOCK_TIME' +'PERSIST' +'PERSIST_ONLY' +'PHASE' +'PLUGIN' +'PLUGIN_DIR' +'PLUGINS' +'PORT' +'PRECEDES' +'PRECEDING' +'PREPARE' +'PRESERVE' +'PREV' +'PRIVILEGE_CHECKS_USER' +'PROCESSLIST' +'PROFILE' +'PROFILES' +'PROXY' +'QUERY' +'QUICK' +'REBUILD' +'RECOVER' +'RECURSIVE' +'REDO_BUFFER_SIZE' +'REDUNDANT' +'REGISTRATION' +'RELAY' +'RELAY_LOG_FILE' +'RELAY_LOG_POS' +'RELAYLOG' +'REMOVE' +'REORGANIZE' +'REPAIR' +'REPLICA' +'REPLICAS' +'REPLICATE_DO_DB' +'REPLICATE_DO_TABLE' +'REPLICATE_IGNORE_DB' +'REPLICATE_IGNORE_TABLE' +'REPLICATE_REWRITE_DB' +'REPLICATE_WILD_DO_TABLE' +'REPLICATE_WILD_IGNORE_TABLE' +'REPLICATION' +'REQUIRE_ROW_FORMAT' +'REQUIRE_TABLE_PRIMARY_KEY_CHECK' +'RESET' +'RESTART' +'RESUME' +'RETURNED_SQLSTATE' +'RETURNING' +'RETURNS' +'REUSE' +'ROLE' +'ROLLBACK' +'ROLLUP' +'ROTATE' +'ROW' +'ROWS' +'ROW_FORMAT' +'SAVEPOINT' +'SCHEDULE' +'SECURITY' +'SERVER' +'SESSION' +'SHARE' +'SHARED' +'SIGNED' +'SIMPLE' +'SLAVE' +'SLOW' +'SNAPSHOT' +'SOCKET' +'SOME' +'SONAME' +'SOUNDS' +'SOURCE' +'SOURCE_BIND' +'SOURCE_HOST' +'SOURCE_USER' +'SOURCE_PASSWORD' +'SOURCE_PORT' +'SOURCE_LOG_FILE' +'SOURCE_LOG_POS' +'SOURCE_AUTO_POSITION' +'SOURCE_HEARTBEAT_PERIOD' +'SOURCE_CONNECT_RETRY' +'SOURCE_RETRY_COUNT' +'SOURCE_CONNECTION_AUTO_FAILOVER' +'SOURCE_DELAY' +'SOURCE_COMPRESSION_ALGORITHMS' +'SOURCE_ZSTD_COMPRESSION_LEVEL' +'SOURCE_SSL' +'SOURCE_SSL_CA' +'SOURCE_SSL_CAPATH' +'SOURCE_SSL_CERT' +'SOURCE_SSL_CRL' +'SOURCE_SSL_CRLPATH' +'SOURCE_SSL_KEY' +'SOURCE_SSL_CIPHER' +'SOURCE_SSL_VERIFY_SERVER_CERT' +'SOURCE_TLS_VERSION' +'SOURCE_TLS_CIPHERSUITES' +'SOURCE_PUBLIC_KEY_PATH' +'SQL_AFTER_GTIDS' +'SQL_AFTER_MTS_GAPS' +'SQL_BEFORE_GTIDS' +'SQL_BUFFER_RESULT' +'SQL_CACHE' +'SQL_NO_CACHE' +'SQL_THREAD' +'START' +'STARTS' +'STATS_AUTO_RECALC' +'STATS_PERSISTENT' +'STATS_SAMPLE_PAGES' +'STATUS' +'STOP' +'STORAGE' +'STORED' +'STRING' +'SUBCLASS_ORIGIN' +'SUBJECT' +'SUBPARTITION' +'SUBPARTITIONS' +'SUSPEND' +'SWAPS' +'SWITCHES' +'TABLE_NAME' +'TABLESPACE' +'TABLE_TYPE' +'TEMPORARY' +'TEMPTABLE' +'THAN' +'TRADITIONAL' +'TRANSACTION' +'TRANSACTIONAL' +'TREE' +'TRIGGERS' +'TRUNCATE' +'UNBOUNDED' +'UNDEFINED' +'UNDOFILE' +'UNDO_BUFFER_SIZE' +'UNINSTALL' +'UNKNOWN' +'UNREGISTER' +'UNTIL' +'UPGRADE' +'USER' +'USE_FRM' +'USER_RESOURCES' +'VALIDATION' +'VALUE' +'VARIABLES' +'VIEW' +'VIRTUAL' +'VISIBLE' +'WAIT' +'WARNINGS' +'WINDOW' +'WITHOUT' +'WORK' +'WRAPPER' +'X509' +'XA' +'XML' +'QUARTER' +'MONTH' +'DAY' +'HOUR' +'MINUTE' +'WEEK' +'SECOND' +'MICROSECOND' +'ADMIN' +'APPLICATION_PASSWORD_ADMIN' +'AUDIT_ABORT_EXEMPT' +'AUDIT_ADMIN' +'AUTHENTICATION' +'AUTHENTICATION_POLICY_ADMIN' +'BACKUP_ADMIN' +'BINLOG_ADMIN' +'BINLOG_ENCRYPTION_ADMIN' +'CLONE' +'CLONE_ADMIN' +'CONNECTION_ADMIN' +'ENCRYPTION_KEY_ADMIN' +'EXECUTE' +'FILE' +'FIREWALL_ADMIN' +'FIREWALL_EXEMPT' +'FIREWALL_USER' +'FLUSH_OPTIMIZER_COSTS' +'FLUSH_STATUS' +'FLUSH_TABLES' +'FLUSH_USER_RESOURCES' +'GROUP_REPLICATION_ADMIN' +'INNODB_REDO_LOG_ARCHIVE' +'INNODB_REDO_LOG_ENABLE' +'INVOKE' +'LAMBDA' +'NDB_STORED_USER' +'PASSWORDLESS_USER_ADMIN' +'PERSIST_RO_VARIABLES_ADMIN' +'PRIVILEGES' +'PROCESS' +'RELOAD' +'REPLICATION_APPLIER' +'REPLICATION_SLAVE_ADMIN' +'RESOURCE' +'RESOURCE_GROUP_ADMIN' +'RESOURCE_GROUP_USER' +'ROLE_ADMIN' +'ROUTINE' +'S3' +'SERVICE_CONNECTION_ADMIN' +null +'SET_USER_ID' +'SHOW_ROUTINE' +'SHUTDOWN' +'SUPER' +'SYSTEM_VARIABLES_ADMIN' +'TABLES' +'TABLE_ENCRYPTION_ADMIN' +'VERSION_TOKEN_ADMIN' +'XA_RECOVER_ADMIN' +'ARMSCII8' +'ASCII' +'BIG5' +'CP1250' +'CP1251' +'CP1256' +'CP1257' +'CP850' +'CP852' +'CP866' +'CP932' +'DEC8' +'EUCJPMS' +'EUCKR' +'GB18030' +'GB2312' +'GBK' +'GEOSTD8' +'GREEK' +'HEBREW' +'HP8' +'KEYBCS2' +'KOI8R' +'KOI8U' +'LATIN1' +'LATIN2' +'LATIN5' +'LATIN7' +'MACCE' +'MACROMAN' +'SJIS' +'SWE7' +'TIS620' +'UCS2' +'UJIS' +'UTF16' +'UTF16LE' +'UTF32' +'UTF8' +'UTF8MB3' +'UTF8MB4' +'ARCHIVE' +'BLACKHOLE' +'CSV' +'FEDERATED' +'INNODB' +'MEMORY' +'MRG_MYISAM' +'MYISAM' +'NDB' +'NDBCLUSTER' +'PERFORMANCE_SCHEMA' +'TOKUDB' +'REPEATABLE' +'COMMITTED' +'UNCOMMITTED' +'SERIALIZABLE' +'GEOMETRYCOLLECTION' +'GEOMCOLLECTION' +'GEOMETRY' +'LINESTRING' +'MULTILINESTRING' +'MULTIPOINT' +'MULTIPOLYGON' +'POINT' +'POLYGON' +'CATALOG_NAME' +'CHARSET' +'COLLATION' +'ENGINE_ATTRIBUTE' +'FORMAT' +'GET_FORMAT' +'INTERSECT' +'RANDOM' +'REVERSE' +'ROW_COUNT' +'SCHEMA_NAME' +'SECONDARY_ENGINE_ATTRIBUTE' +'SRID' +'SYSTEM' +'SYSTEM_USER' +'THREAD_PRIORITY' +'TP_CONNECTION_ADMIN' +'TYPE' +'WEIGHT_STRING' +':=' +'+=' +'-=' +'*=' +'/=' +'%=' +'&=' +'^=' +'|=' +'*' +'/' +'%' +'+' +'-' +'DIV' +'MOD' +'=' +'>' +'<' +'!' +'~' +'|' +'&' +'^' +'.' +'(' +')' +',' +';' +'@' +'0' +'1' +'2' +'3' +'\'' +'"' +'`' +':' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +SPACE +SPEC_MYSQL_COMMENT +COMMENT_INPUT +LINE_COMMENT +KW_ACTIVE +KW_ADD +KW_ALL +KW_ALTER +KW_ALWAYS +KW_ANALYZE +KW_AND +KW_ARRAY +KW_AS +KW_ASC +KW_ATTRIBUTE +KW_BEFORE +KW_BETWEEN +KW_BOTH +KW_BUCKETS +KW_BY +KW_CALL +KW_CASCADE +KW_CASE +KW_CAST +KW_CHANGE +KW_CHARACTER +KW_CHECK +KW_COLLATE +KW_COLUMN +KW_CONDITION +KW_CONSTRAINT +KW_CONTINUE +KW_CONVERT +KW_CREATE +KW_CROSS +KW_CURRENT +KW_CURRENT_USER +KW_CURSOR +KW_DATABASE +KW_DATABASES +KW_DECLARE +KW_DEFAULT +KW_DELAYED +KW_DELETE +KW_DESC +KW_DESCRIBE +KW_DETERMINISTIC +KW_DIAGNOSTICS +KW_DISTINCT +KW_DISTINCTROW +KW_DROP +KW_EACH +KW_ELSE +KW_ELSEIF +KW_EMPTY +KW_ENCLOSED +KW_ENFORCED +KW_ESCAPED +KW_EXCEPT +KW_EXISTS +KW_EXIT +KW_EXPLAIN +KW_FALSE +KW_FETCH +KW_FOR +KW_FORCE +KW_FOREIGN +KW_FROM +KW_FULLTEXT +KW_GENERATE +KW_GENERATED +KW_GET +KW_GRANT +KW_GROUP +KW_HAVING +KW_HIGH_PRIORITY +KW_HISTOGRAM +KW_IF +KW_IGNORE +KW_IN +KW_INACTIVE +KW_INDEX +KW_INFILE +KW_INNER +KW_INOUT +KW_INSERT +KW_INTERVAL +KW_INTO +KW_IS +KW_ITERATE +KW_JOIN +KW_KEY +KW_KEYS +KW_KILL +KW_LATERAL +KW_LEADING +KW_LEAVE +KW_LEFT +KW_LIKE +KW_LIMIT +KW_LINEAR +KW_LINES +KW_LOAD +KW_LOCK +KW_LOCKED +KW_LOOP +KW_LOW_PRIORITY +KW_MASTER_BIND +KW_MASTER_SSL_VERIFY_SERVER_CERT +KW_MATCH +KW_MAXVALUE +KW_MODIFIES +KW_NATURAL +KW_NOT +KW_NO_WRITE_TO_BINLOG +KW_NULL_LITERAL +KW_NUMBER +KW_STREAM +KW_ON +KW_OPTIMIZE +KW_OPTION +KW_OPTIONAL +KW_OPTIONALLY +KW_OR +KW_ORDER +KW_OUT +KW_OUTER +KW_OUTFILE +KW_OVER +KW_PARTITION +KW_PRIMARY +KW_PROCEDURE +KW_PURGE +KW_RANGE +KW_READ +KW_READS +KW_REFERENCE +KW_REFERENCES +KW_REGEXP +KW_RELEASE +KW_RENAME +KW_REPEAT +KW_REPLACE +KW_REQUIRE +KW_RESIGNAL +KW_RESTRICT +KW_RETAIN +KW_RETURN +KW_REVOKE +KW_RIGHT +KW_RLIKE +KW_SCHEMA +KW_SCHEMAS +KW_SELECT +KW_SET +KW_SEPARATOR +KW_SHOW +KW_SIGNAL +KW_SKIP +KW_SKIP_QUERY_REWRITE +KW_SPATIAL +KW_SQL +KW_SQLEXCEPTION +KW_SQLSTATE +KW_SQLWARNING +KW_SQL_BIG_RESULT +KW_SQL_CALC_FOUND_ROWS +KW_SQL_SMALL_RESULT +KW_SSL +KW_STACKED +KW_STARTING +KW_STRAIGHT_JOIN +KW_TABLE +KW_TERMINATED +KW_THEN +KW_TO +KW_TRAILING +KW_TRIGGER +KW_TRUE +KW_UNDO +KW_UNION +KW_UNIQUE +KW_UNLOCK +KW_UNSIGNED +KW_UPDATE +KW_USAGE +KW_USE +KW_USING +KW_VALUES +KW_VCPU +KW_WHEN +KW_WHERE +KW_WHILE +KW_WITH +KW_WRITE +KW_XOR +KW_ZEROFILL +KW_TINYINT +KW_SMALLINT +KW_MEDIUMINT +KW_MIDDLEINT +KW_INT +KW_INT1 +KW_INT2 +KW_INT3 +KW_INT4 +KW_INT8 +KW_INTEGER +KW_BIGINT +KW_REAL +KW_DOUBLE +KW_PRECISION +KW_FLOAT +KW_FLOAT4 +KW_FLOAT8 +KW_DECIMAL +KW_DEC +KW_NUMERIC +KW_DATE +KW_TIME +KW_TIMESTAMP +KW_DATETIME +KW_YEAR +KW_CHAR +KW_VARCHAR +KW_NVARCHAR +KW_NATIONAL +KW_BINARY +KW_VARBINARY +KW_TINYBLOB +KW_BLOB +KW_MEDIUMBLOB +KW_LONG +KW_LONGBLOB +KW_TINYTEXT +KW_TEXT +KW_MEDIUMTEXT +KW_LONGTEXT +KW_ENUM +KW_VARYING +KW_SERIAL +KW_YEAR_MONTH +KW_DAY_HOUR +KW_DAY_MINUTE +KW_DAY_SECOND +KW_HOUR_MINUTE +KW_HOUR_SECOND +KW_MINUTE_SECOND +KW_SECOND_MICROSECOND +KW_MINUTE_MICROSECOND +KW_HOUR_MICROSECOND +KW_DAY_MICROSECOND +KW_JSON_TABLE +KW_JSON_VALUE +KW_NESTED +KW_ORDINALITY +KW_PATH +KW_AVG +KW_BIT_AND +KW_BIT_OR +KW_BIT_XOR +KW_COUNT +KW_CUME_DIST +KW_DENSE_RANK +KW_FIRST_VALUE +KW_GROUP_CONCAT +KW_LAG +KW_LAST_VALUE +KW_LEAD +KW_MAX +KW_MIN +KW_NTILE +KW_NTH_VALUE +KW_PERCENT_RANK +KW_RANK +KW_ROW_NUMBER +KW_STD +KW_STDDEV +KW_STDDEV_POP +KW_STDDEV_SAMP +KW_SUM +KW_VAR_POP +KW_VAR_SAMP +KW_VARIANCE +KW_CURRENT_DATE +KW_CURRENT_TIME +KW_CURRENT_TIMESTAMP +KW_LOCALTIME +KW_CURDATE +KW_CURTIME +KW_DATE_ADD +KW_DATE_SUB +KW_EXTRACT +KW_LOCALTIMESTAMP +KW_NOW +KW_POSITION +KW_SUBSTR +KW_SUBSTRING +KW_SYSDATE +KW_TRIM +KW_UTC_DATE +KW_UTC_TIME +KW_UTC_TIMESTAMP +KW_ACCOUNT +KW_ACTION +KW_AFTER +KW_AGGREGATE +KW_ALGORITHM +KW_ANY +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS +KW_AT +KW_AUTHORS +KW_AUTOCOMMIT +KW_AUTOEXTEND_SIZE +KW_AUTO_INCREMENT +KW_AVG_ROW_LENGTH +KW_BEGIN +KW_BINLOG +KW_BIT +KW_BLOCK +KW_BOOL +KW_BOOLEAN +KW_BTREE +KW_CACHE +KW_CASCADED +KW_CHAIN +KW_CHANGED +KW_CHANNEL +KW_CHECKSUM +KW_CHALLENGE_RESPONSE +KW_CIPHER +KW_CLASS_ORIGIN +KW_CLIENT +KW_CLOSE +KW_COALESCE +KW_CODE +KW_COLUMNS +KW_COLUMN_FORMAT +KW_COLUMN_NAME +KW_COMMENT +KW_COMMIT +KW_COMPACT +KW_COMPLETION +KW_COMPONENT +KW_COMPRESSED +KW_COMPRESSION +KW_CONCURRENT +KW_CONNECT +KW_CONNECTION +KW_CONSISTENT +KW_CONSTRAINT_CATALOG +KW_CONSTRAINT_SCHEMA +KW_CONSTRAINT_NAME +KW_CONTAINS +KW_CONTEXT +KW_CONTRIBUTORS +KW_COPY +KW_CPU +KW_CURSOR_NAME +KW_DATA +KW_DATAFILE +KW_DEALLOCATE +KW_DEFAULT_AUTH +KW_DEFINER +KW_DELAY_KEY_WRITE +KW_DES_KEY_FILE +KW_DIRECTORY +KW_DISABLE +KW_DISCARD +KW_DISK +KW_DO +KW_DUMPFILE +KW_DUPLICATE +KW_DYNAMIC +KW_ENABLE +KW_ENCRYPTION +KW_ENCRYPTION_KEY_ID +KW_END +KW_ENDS +KW_ENGINE +KW_ENGINES +KW_ERROR +KW_ERRORS +KW_ESCAPE +KW_EVENT +KW_EVENTS +KW_EVERY +KW_EXCHANGE +KW_EXCLUSIVE +KW_EXPIRE +KW_EXPORT +KW_EXTENDED +KW_EXTENT_SIZE +KW_FACTOR +KW_FAILED_LOGIN_ATTEMPTS +KW_FAST +KW_FAULTS +KW_FIELDS +KW_FILE_BLOCK_SIZE +KW_FILTER +KW_FINISH +KW_FIRST +KW_FIXED +KW_FLUSH +KW_FOLLOWING +KW_FOLLOWS +KW_FOUND +KW_FULL +KW_FUNCTION +KW_GENERAL +KW_GET_MASTER_PUBLIC_KEY +KW_GET_SOURCE_PUBLIC_KEY +KW_GLOBAL +KW_GRANTS +KW_GROUP_REPLICATION +KW_GTID_ONLY +KW_HANDLER +KW_HASH +KW_HELP +KW_HISTORY +KW_HOST +KW_HOSTS +KW_IDENTIFIED +KW_IGNORE_SERVER_IDS +KW_IMPORT +KW_INDEXES +KW_INITIAL +KW_INITIAL_SIZE +KW_INITIATE +KW_INPLACE +KW_INSERT_METHOD +KW_INSTALL +KW_INSTANCE +KW_INSTANT +KW_INVISIBLE +KW_INVOKER +KW_IO +KW_IO_THREAD +KW_IPC +KW_ISOLATION +KW_ISSUER +KW_JSON +KW_KEY_BLOCK_SIZE +KW_LANGUAGE +KW_LAST +KW_LEAVES +KW_LESS +KW_LEVEL +KW_LIST +KW_LOCAL +KW_LOGFILE +KW_LOGS +KW_MASTER +KW_MASTER_AUTO_POSITION +KW_MASTER_COMPRESSION_ALGORITHMS +KW_MASTER_CONNECT_RETRY +KW_MASTER_DELAY +KW_MASTER_HEARTBEAT_PERIOD +KW_MASTER_HOST +KW_MASTER_LOG_FILE +KW_MASTER_LOG_POS +KW_MASTER_PASSWORD +KW_MASTER_PORT +KW_MASTER_PUBLIC_KEY_PATH +KW_MASTER_RETRY_COUNT +KW_MASTER_SSL +KW_MASTER_SSL_CA +KW_MASTER_SSL_CAPATH +KW_MASTER_SSL_CERT +KW_MASTER_SSL_CIPHER +KW_MASTER_SSL_CRL +KW_MASTER_SSL_CRLPATH +KW_MASTER_SSL_KEY +KW_MASTER_TLS_CIPHERSUITES +KW_MASTER_TLS_VERSION +KW_MASTER_USER +KW_MASTER_ZSTD_COMPRESSION_LEVEL +KW_MAX_CONNECTIONS_PER_HOUR +KW_MAX_QUERIES_PER_HOUR +KW_MAX_ROWS +KW_MAX_SIZE +KW_MAX_UPDATES_PER_HOUR +KW_MAX_USER_CONNECTIONS +KW_MEDIUM +KW_MEMBER +KW_MERGE +KW_MESSAGE_TEXT +KW_MID +KW_MIGRATE +KW_MIN_ROWS +KW_MODE +KW_MODIFY +KW_MUTEX +KW_MYSQL +KW_MYSQL_ERRNO +KW_NAME +KW_NAMES +KW_NCHAR +KW_NETWORK_NAMESPACE +KW_NEVER +KW_NEXT +KW_NO +KW_NOWAIT +KW_NODEGROUP +KW_NONE +KW_ODBC +KW_OFF +KW_OFFLINE +KW_OFFSET +KW_OF +KW_OLD +KW_OLD_PASSWORD +KW_ONE +KW_ONLINE +KW_ONLY +KW_OPEN +KW_OPTIMIZER_COSTS +KW_OPTIONS +KW_OWNER +KW_PACK_KEYS +KW_PAGE +KW_PAGE_CHECKSUM +KW_PAGE_COMPRESSED +KW_PAGE_COMPRESSION_LEVEL +KW_PARSER +KW_PARTIAL +KW_PARTITIONING +KW_PARTITIONS +KW_PASSWORD +KW_PASSWORD_LOCK_TIME +KW_PERSIST +KW_PERSIST_ONLY +KW_PHASE +KW_PLUGIN +KW_PLUGIN_DIR +KW_PLUGINS +KW_PORT +KW_PRECEDES +KW_PRECEDING +KW_PREPARE +KW_PRESERVE +KW_PREV +KW_PRIVILEGE_CHECKS_USER +KW_PROCESSLIST +KW_PROFILE +KW_PROFILES +KW_PROXY +KW_QUERY +KW_QUICK +KW_REBUILD +KW_RECOVER +KW_RECURSIVE +KW_REDO_BUFFER_SIZE +KW_REDUNDANT +KW_REGISTRATION +KW_RELAY +KW_RELAY_LOG_FILE +KW_RELAY_LOG_POS +KW_RELAYLOG +KW_REMOVE +KW_REORGANIZE +KW_REPAIR +KW_REPLICA +KW_REPLICAS +KW_REPLICATE_DO_DB +KW_REPLICATE_DO_TABLE +KW_REPLICATE_IGNORE_DB +KW_REPLICATE_IGNORE_TABLE +KW_REPLICATE_REWRITE_DB +KW_REPLICATE_WILD_DO_TABLE +KW_REPLICATE_WILD_IGNORE_TABLE +KW_REPLICATION +KW_REQUIRE_ROW_FORMAT +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK +KW_RESET +KW_RESTART +KW_RESUME +KW_RETURNED_SQLSTATE +KW_RETURNING +KW_RETURNS +KW_REUSE +KW_ROLE +KW_ROLLBACK +KW_ROLLUP +KW_ROTATE +KW_ROW +KW_ROWS +KW_ROW_FORMAT +KW_SAVEPOINT +KW_SCHEDULE +KW_SECURITY +KW_SERVER +KW_SESSION +KW_SHARE +KW_SHARED +KW_SIGNED +KW_SIMPLE +KW_SLAVE +KW_SLOW +KW_SNAPSHOT +KW_SOCKET +KW_SOME +KW_SONAME +KW_SOUNDS +KW_SOURCE +KW_SOURCE_BIND +KW_SOURCE_HOST +KW_SOURCE_USER +KW_SOURCE_PASSWORD +KW_SOURCE_PORT +KW_SOURCE_LOG_FILE +KW_SOURCE_LOG_POS +KW_SOURCE_AUTO_POSITION +KW_SOURCE_HEARTBEAT_PERIOD +KW_SOURCE_CONNECT_RETRY +KW_SOURCE_RETRY_COUNT +KW_SOURCE_CONNECTION_AUTO_FAILOVER +KW_SOURCE_DELAY +KW_SOURCE_COMPRESSION_ALGORITHMS +KW_SOURCE_ZSTD_COMPRESSION_LEVEL +KW_SOURCE_SSL +KW_SOURCE_SSL_CA +KW_SOURCE_SSL_CAPATH +KW_SOURCE_SSL_CERT +KW_SOURCE_SSL_CRL +KW_SOURCE_SSL_CRLPATH +KW_SOURCE_SSL_KEY +KW_SOURCE_SSL_CIPHER +KW_SOURCE_SSL_VERIFY_SERVER_CERT +KW_SOURCE_TLS_VERSION +KW_SOURCE_TLS_CIPHERSUITES +KW_SOURCE_PUBLIC_KEY_PATH +KW_SQL_AFTER_GTIDS +KW_SQL_AFTER_MTS_GAPS +KW_SQL_BEFORE_GTIDS +KW_SQL_BUFFER_RESULT +KW_SQL_CACHE +KW_SQL_NO_CACHE +KW_SQL_THREAD +KW_START +KW_STARTS +KW_STATS_AUTO_RECALC +KW_STATS_PERSISTENT +KW_STATS_SAMPLE_PAGES +KW_STATUS +KW_STOP +KW_STORAGE +KW_STORED +KW_STRING +KW_SUBCLASS_ORIGIN +KW_SUBJECT +KW_SUBPARTITION +KW_SUBPARTITIONS +KW_SUSPEND +KW_SWAPS +KW_SWITCHES +KW_TABLE_NAME +KW_TABLESPACE +KW_TABLE_TYPE +KW_TEMPORARY +KW_TEMPTABLE +KW_THAN +KW_TRADITIONAL +KW_TRANSACTION +KW_TRANSACTIONAL +KW_TREE +KW_TRIGGERS +KW_TRUNCATE +KW_UNBOUNDED +KW_UNDEFINED +KW_UNDOFILE +KW_UNDO_BUFFER_SIZE +KW_UNINSTALL +KW_UNKNOWN +KW_UNREGISTER +KW_UNTIL +KW_UPGRADE +KW_USER +KW_USE_FRM +KW_USER_RESOURCES +KW_VALIDATION +KW_VALUE +KW_VARIABLES +KW_VIEW +KW_VIRTUAL +KW_VISIBLE +KW_WAIT +KW_WARNINGS +KW_WINDOW +KW_WITHOUT +KW_WORK +KW_WRAPPER +KW_X509 +KW_XA +KW_XML +KW_QUARTER +KW_MONTH +KW_DAY +KW_HOUR +KW_MINUTE +KW_WEEK +KW_SECOND +KW_MICROSECOND +KW_ADMIN +KW_APPLICATION_PASSWORD_ADMIN +KW_AUDIT_ABORT_EXEMPT +KW_AUDIT_ADMIN +KW_AUTHENTICATION +KW_AUTHENTICATION_POLICY_ADMIN +KW_BACKUP_ADMIN +KW_BINLOG_ADMIN +KW_BINLOG_ENCRYPTION_ADMIN +KW_CLONE +KW_CLONE_ADMIN +KW_CONNECTION_ADMIN +KW_ENCRYPTION_KEY_ADMIN +KW_EXECUTE +KW_FILE +KW_FIREWALL_ADMIN +KW_FIREWALL_EXEMPT +KW_FIREWALL_USER +KW_FLUSH_OPTIMIZER_COSTS +KW_FLUSH_STATUS +KW_FLUSH_TABLES +KW_FLUSH_USER_RESOURCES +KW_GROUP_REPLICATION_ADMIN +KW_INNODB_REDO_LOG_ARCHIVE +KW_INNODB_REDO_LOG_ENABLE +KW_INVOKE +KW_LAMBDA +KW_NDB_STORED_USER +KW_PASSWORDLESS_USER_ADMIN +KW_PERSIST_RO_VARIABLES_ADMIN +KW_PRIVILEGES +KW_PROCESS +KW_RELOAD +KW_REPLICATION_APPLIER +KW_REPLICATION_SLAVE_ADMIN +KW_RESOURCE +KW_RESOURCE_GROUP_ADMIN +KW_RESOURCE_GROUP_USER +KW_ROLE_ADMIN +KW_ROUTINE +KW_S3 +KW_SERVICE_CONNECTION_ADMIN +KW_SESSION_VARIABLES_ADMIN +KW_SET_USER_ID +KW_SHOW_ROUTINE +KW_SHUTDOWN +KW_SUPER +KW_SYSTEM_VARIABLES_ADMIN +KW_TABLES +KW_TABLE_ENCRYPTION_ADMIN +KW_VERSION_TOKEN_ADMIN +KW_XA_RECOVER_ADMIN +KW_ARMSCII8 +KW_ASCII +KW_BIG5 +KW_CP1250 +KW_CP1251 +KW_CP1256 +KW_CP1257 +KW_CP850 +KW_CP852 +KW_CP866 +KW_CP932 +KW_DEC8 +KW_EUCJPMS +KW_EUCKR +KW_GB18030 +KW_GB2312 +KW_GBK +KW_GEOSTD8 +KW_GREEK +KW_HEBREW +KW_HP8 +KW_KEYBCS2 +KW_KOI8R +KW_KOI8U +KW_LATIN1 +KW_LATIN2 +KW_LATIN5 +KW_LATIN7 +KW_MACCE +KW_MACROMAN +KW_SJIS +KW_SWE7 +KW_TIS620 +KW_UCS2 +KW_UJIS +KW_UTF16 +KW_UTF16LE +KW_UTF32 +KW_UTF8 +KW_UTF8MB3 +KW_UTF8MB4 +KW_ARCHIVE +KW_BLACKHOLE +KW_CSV +KW_FEDERATED +KW_INNODB +KW_MEMORY +KW_MRG_MYISAM +KW_MYISAM +KW_NDB +KW_NDBCLUSTER +KW_PERFORMANCE_SCHEMA +KW_TOKUDB +KW_REPEATABLE +KW_COMMITTED +KW_UNCOMMITTED +KW_SERIALIZABLE +KW_GEOMETRYCOLLECTION +KW_GEOMCOLLECTION +KW_GEOMETRY +KW_LINESTRING +KW_MULTILINESTRING +KW_MULTIPOINT +KW_MULTIPOLYGON +KW_POINT +KW_POLYGON +KW_CATALOG_NAME +KW_CHARSET +KW_COLLATION +KW_ENGINE_ATTRIBUTE +KW_FORMAT +KW_GET_FORMAT +KW_INTERSECT +KW_RANDOM +KW_REVERSE +KW_ROW_COUNT +KW_SCHEMA_NAME +KW_SECONDARY_ENGINE_ATTRIBUTE +KW_SRID +KW_SYSTEM +KW_SYSTEM_USER +KW_THREAD_PRIORITY +KW_TP_CONNECTION_ADMIN +KW_TYPE +KW_WEIGHT_STRING +VAR_ASSIGN +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +STAR +DIVIDE +MODULE +PLUS +MINUS +DIV +MOD +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LR_BRACKET +RR_BRACKET +COMMA +SEMI +AT_SIGN +ZERO_DECIMAL +ONE_DECIMAL +TWO_DECIMAL +THREE_DECIMAL +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +CHARSET_REVERSE_QOUTE_STRING +FILESIZE_LITERAL +START_NATIONAL_STRING_LITERAL +STRING_LITERAL +DECIMAL_LITERAL +HEXADECIMAL_LITERAL +REAL_LITERAL +NULL_SPEC_LITERAL +BIT_STRING +STRING_CHARSET_NAME +DOT_ID +ID +REVERSE_QUOTE_ID +HOST_IP_ADDRESS +LOCAL_ID +GLOBAL_ID +PERSIST_ID +ERROR_RECONGNIGION + +rule names: +SPACE +SPEC_MYSQL_COMMENT +COMMENT_INPUT +LINE_COMMENT +KW_ACTIVE +KW_ADD +KW_ALL +KW_ALTER +KW_ALWAYS +KW_ANALYZE +KW_AND +KW_ARRAY +KW_AS +KW_ASC +KW_ATTRIBUTE +KW_BEFORE +KW_BETWEEN +KW_BOTH +KW_BUCKETS +KW_BY +KW_CALL +KW_CASCADE +KW_CASE +KW_CAST +KW_CHANGE +KW_CHARACTER +KW_CHECK +KW_COLLATE +KW_COLUMN +KW_CONDITION +KW_CONSTRAINT +KW_CONTINUE +KW_CONVERT +KW_CREATE +KW_CROSS +KW_CURRENT +KW_CURRENT_USER +KW_CURSOR +KW_DATABASE +KW_DATABASES +KW_DECLARE +KW_DEFAULT +KW_DELAYED +KW_DELETE +KW_DESC +KW_DESCRIBE +KW_DETERMINISTIC +KW_DIAGNOSTICS +KW_DISTINCT +KW_DISTINCTROW +KW_DROP +KW_EACH +KW_ELSE +KW_ELSEIF +KW_EMPTY +KW_ENCLOSED +KW_ENFORCED +KW_ESCAPED +KW_EXCEPT +KW_EXISTS +KW_EXIT +KW_EXPLAIN +KW_FALSE +KW_FETCH +KW_FOR +KW_FORCE +KW_FOREIGN +KW_FROM +KW_FULLTEXT +KW_GENERATE +KW_GENERATED +KW_GET +KW_GRANT +KW_GROUP +KW_HAVING +KW_HIGH_PRIORITY +KW_HISTOGRAM +KW_IF +KW_IGNORE +KW_IN +KW_INACTIVE +KW_INDEX +KW_INFILE +KW_INNER +KW_INOUT +KW_INSERT +KW_INTERVAL +KW_INTO +KW_IS +KW_ITERATE +KW_JOIN +KW_KEY +KW_KEYS +KW_KILL +KW_LATERAL +KW_LEADING +KW_LEAVE +KW_LEFT +KW_LIKE +KW_LIMIT +KW_LINEAR +KW_LINES +KW_LOAD +KW_LOCK +KW_LOCKED +KW_LOOP +KW_LOW_PRIORITY +KW_MASTER_BIND +KW_MASTER_SSL_VERIFY_SERVER_CERT +KW_MATCH +KW_MAXVALUE +KW_MODIFIES +KW_NATURAL +KW_NOT +KW_NO_WRITE_TO_BINLOG +KW_NULL_LITERAL +KW_NUMBER +KW_STREAM +KW_ON +KW_OPTIMIZE +KW_OPTION +KW_OPTIONAL +KW_OPTIONALLY +KW_OR +KW_ORDER +KW_OUT +KW_OUTER +KW_OUTFILE +KW_OVER +KW_PARTITION +KW_PRIMARY +KW_PROCEDURE +KW_PURGE +KW_RANGE +KW_READ +KW_READS +KW_REFERENCE +KW_REFERENCES +KW_REGEXP +KW_RELEASE +KW_RENAME +KW_REPEAT +KW_REPLACE +KW_REQUIRE +KW_RESIGNAL +KW_RESTRICT +KW_RETAIN +KW_RETURN +KW_REVOKE +KW_RIGHT +KW_RLIKE +KW_SCHEMA +KW_SCHEMAS +KW_SELECT +KW_SET +KW_SEPARATOR +KW_SHOW +KW_SIGNAL +KW_SKIP +KW_SKIP_QUERY_REWRITE +KW_SPATIAL +KW_SQL +KW_SQLEXCEPTION +KW_SQLSTATE +KW_SQLWARNING +KW_SQL_BIG_RESULT +KW_SQL_CALC_FOUND_ROWS +KW_SQL_SMALL_RESULT +KW_SSL +KW_STACKED +KW_STARTING +KW_STRAIGHT_JOIN +KW_TABLE +KW_TERMINATED +KW_THEN +KW_TO +KW_TRAILING +KW_TRIGGER +KW_TRUE +KW_UNDO +KW_UNION +KW_UNIQUE +KW_UNLOCK +KW_UNSIGNED +KW_UPDATE +KW_USAGE +KW_USE +KW_USING +KW_VALUES +KW_VCPU +KW_WHEN +KW_WHERE +KW_WHILE +KW_WITH +KW_WRITE +KW_XOR +KW_ZEROFILL +KW_TINYINT +KW_SMALLINT +KW_MEDIUMINT +KW_MIDDLEINT +KW_INT +KW_INT1 +KW_INT2 +KW_INT3 +KW_INT4 +KW_INT8 +KW_INTEGER +KW_BIGINT +KW_REAL +KW_DOUBLE +KW_PRECISION +KW_FLOAT +KW_FLOAT4 +KW_FLOAT8 +KW_DECIMAL +KW_DEC +KW_NUMERIC +KW_DATE +KW_TIME +KW_TIMESTAMP +KW_DATETIME +KW_YEAR +KW_CHAR +KW_VARCHAR +KW_NVARCHAR +KW_NATIONAL +KW_BINARY +KW_VARBINARY +KW_TINYBLOB +KW_BLOB +KW_MEDIUMBLOB +KW_LONG +KW_LONGBLOB +KW_TINYTEXT +KW_TEXT +KW_MEDIUMTEXT +KW_LONGTEXT +KW_ENUM +KW_VARYING +KW_SERIAL +KW_YEAR_MONTH +KW_DAY_HOUR +KW_DAY_MINUTE +KW_DAY_SECOND +KW_HOUR_MINUTE +KW_HOUR_SECOND +KW_MINUTE_SECOND +KW_SECOND_MICROSECOND +KW_MINUTE_MICROSECOND +KW_HOUR_MICROSECOND +KW_DAY_MICROSECOND +KW_JSON_TABLE +KW_JSON_VALUE +KW_NESTED +KW_ORDINALITY +KW_PATH +KW_AVG +KW_BIT_AND +KW_BIT_OR +KW_BIT_XOR +KW_COUNT +KW_CUME_DIST +KW_DENSE_RANK +KW_FIRST_VALUE +KW_GROUP_CONCAT +KW_LAG +KW_LAST_VALUE +KW_LEAD +KW_MAX +KW_MIN +KW_NTILE +KW_NTH_VALUE +KW_PERCENT_RANK +KW_RANK +KW_ROW_NUMBER +KW_STD +KW_STDDEV +KW_STDDEV_POP +KW_STDDEV_SAMP +KW_SUM +KW_VAR_POP +KW_VAR_SAMP +KW_VARIANCE +KW_CURRENT_DATE +KW_CURRENT_TIME +KW_CURRENT_TIMESTAMP +KW_LOCALTIME +KW_CURDATE +KW_CURTIME +KW_DATE_ADD +KW_DATE_SUB +KW_EXTRACT +KW_LOCALTIMESTAMP +KW_NOW +KW_POSITION +KW_SUBSTR +KW_SUBSTRING +KW_SYSDATE +KW_TRIM +KW_UTC_DATE +KW_UTC_TIME +KW_UTC_TIMESTAMP +KW_ACCOUNT +KW_ACTION +KW_AFTER +KW_AGGREGATE +KW_ALGORITHM +KW_ANY +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS +KW_AT +KW_AUTHORS +KW_AUTOCOMMIT +KW_AUTOEXTEND_SIZE +KW_AUTO_INCREMENT +KW_AVG_ROW_LENGTH +KW_BEGIN +KW_BINLOG +KW_BIT +KW_BLOCK +KW_BOOL +KW_BOOLEAN +KW_BTREE +KW_CACHE +KW_CASCADED +KW_CHAIN +KW_CHANGED +KW_CHANNEL +KW_CHECKSUM +KW_CHALLENGE_RESPONSE +KW_CIPHER +KW_CLASS_ORIGIN +KW_CLIENT +KW_CLOSE +KW_COALESCE +KW_CODE +KW_COLUMNS +KW_COLUMN_FORMAT +KW_COLUMN_NAME +KW_COMMENT +KW_COMMIT +KW_COMPACT +KW_COMPLETION +KW_COMPONENT +KW_COMPRESSED +KW_COMPRESSION +KW_CONCURRENT +KW_CONNECT +KW_CONNECTION +KW_CONSISTENT +KW_CONSTRAINT_CATALOG +KW_CONSTRAINT_SCHEMA +KW_CONSTRAINT_NAME +KW_CONTAINS +KW_CONTEXT +KW_CONTRIBUTORS +KW_COPY +KW_CPU +KW_CURSOR_NAME +KW_DATA +KW_DATAFILE +KW_DEALLOCATE +KW_DEFAULT_AUTH +KW_DEFINER +KW_DELAY_KEY_WRITE +KW_DES_KEY_FILE +KW_DIRECTORY +KW_DISABLE +KW_DISCARD +KW_DISK +KW_DO +KW_DUMPFILE +KW_DUPLICATE +KW_DYNAMIC +KW_ENABLE +KW_ENCRYPTION +KW_ENCRYPTION_KEY_ID +KW_END +KW_ENDS +KW_ENGINE +KW_ENGINES +KW_ERROR +KW_ERRORS +KW_ESCAPE +KW_EVENT +KW_EVENTS +KW_EVERY +KW_EXCHANGE +KW_EXCLUSIVE +KW_EXPIRE +KW_EXPORT +KW_EXTENDED +KW_EXTENT_SIZE +KW_FACTOR +KW_FAILED_LOGIN_ATTEMPTS +KW_FAST +KW_FAULTS +KW_FIELDS +KW_FILE_BLOCK_SIZE +KW_FILTER +KW_FINISH +KW_FIRST +KW_FIXED +KW_FLUSH +KW_FOLLOWING +KW_FOLLOWS +KW_FOUND +KW_FULL +KW_FUNCTION +KW_GENERAL +KW_GET_MASTER_PUBLIC_KEY +KW_GET_SOURCE_PUBLIC_KEY +KW_GLOBAL +KW_GRANTS +KW_GROUP_REPLICATION +KW_GTID_ONLY +KW_HANDLER +KW_HASH +KW_HELP +KW_HISTORY +KW_HOST +KW_HOSTS +KW_IDENTIFIED +KW_IGNORE_SERVER_IDS +KW_IMPORT +KW_INDEXES +KW_INITIAL +KW_INITIAL_SIZE +KW_INITIATE +KW_INPLACE +KW_INSERT_METHOD +KW_INSTALL +KW_INSTANCE +KW_INSTANT +KW_INVISIBLE +KW_INVOKER +KW_IO +KW_IO_THREAD +KW_IPC +KW_ISOLATION +KW_ISSUER +KW_JSON +KW_KEY_BLOCK_SIZE +KW_LANGUAGE +KW_LAST +KW_LEAVES +KW_LESS +KW_LEVEL +KW_LIST +KW_LOCAL +KW_LOGFILE +KW_LOGS +KW_MASTER +KW_MASTER_AUTO_POSITION +KW_MASTER_COMPRESSION_ALGORITHMS +KW_MASTER_CONNECT_RETRY +KW_MASTER_DELAY +KW_MASTER_HEARTBEAT_PERIOD +KW_MASTER_HOST +KW_MASTER_LOG_FILE +KW_MASTER_LOG_POS +KW_MASTER_PASSWORD +KW_MASTER_PORT +KW_MASTER_PUBLIC_KEY_PATH +KW_MASTER_RETRY_COUNT +KW_MASTER_SSL +KW_MASTER_SSL_CA +KW_MASTER_SSL_CAPATH +KW_MASTER_SSL_CERT +KW_MASTER_SSL_CIPHER +KW_MASTER_SSL_CRL +KW_MASTER_SSL_CRLPATH +KW_MASTER_SSL_KEY +KW_MASTER_TLS_CIPHERSUITES +KW_MASTER_TLS_VERSION +KW_MASTER_USER +KW_MASTER_ZSTD_COMPRESSION_LEVEL +KW_MAX_CONNECTIONS_PER_HOUR +KW_MAX_QUERIES_PER_HOUR +KW_MAX_ROWS +KW_MAX_SIZE +KW_MAX_UPDATES_PER_HOUR +KW_MAX_USER_CONNECTIONS +KW_MEDIUM +KW_MEMBER +KW_MERGE +KW_MESSAGE_TEXT +KW_MID +KW_MIGRATE +KW_MIN_ROWS +KW_MODE +KW_MODIFY +KW_MUTEX +KW_MYSQL +KW_MYSQL_ERRNO +KW_NAME +KW_NAMES +KW_NCHAR +KW_NETWORK_NAMESPACE +KW_NEVER +KW_NEXT +KW_NO +KW_NOWAIT +KW_NODEGROUP +KW_NONE +KW_ODBC +KW_OFF +KW_OFFLINE +KW_OFFSET +KW_OF +KW_OLD +KW_OLD_PASSWORD +KW_ONE +KW_ONLINE +KW_ONLY +KW_OPEN +KW_OPTIMIZER_COSTS +KW_OPTIONS +KW_OWNER +KW_PACK_KEYS +KW_PAGE +KW_PAGE_CHECKSUM +KW_PAGE_COMPRESSED +KW_PAGE_COMPRESSION_LEVEL +KW_PARSER +KW_PARTIAL +KW_PARTITIONING +KW_PARTITIONS +KW_PASSWORD +KW_PASSWORD_LOCK_TIME +KW_PERSIST +KW_PERSIST_ONLY +KW_PHASE +KW_PLUGIN +KW_PLUGIN_DIR +KW_PLUGINS +KW_PORT +KW_PRECEDES +KW_PRECEDING +KW_PREPARE +KW_PRESERVE +KW_PREV +KW_PRIVILEGE_CHECKS_USER +KW_PROCESSLIST +KW_PROFILE +KW_PROFILES +KW_PROXY +KW_QUERY +KW_QUICK +KW_REBUILD +KW_RECOVER +KW_RECURSIVE +KW_REDO_BUFFER_SIZE +KW_REDUNDANT +KW_REGISTRATION +KW_RELAY +KW_RELAY_LOG_FILE +KW_RELAY_LOG_POS +KW_RELAYLOG +KW_REMOVE +KW_REORGANIZE +KW_REPAIR +KW_REPLICA +KW_REPLICAS +KW_REPLICATE_DO_DB +KW_REPLICATE_DO_TABLE +KW_REPLICATE_IGNORE_DB +KW_REPLICATE_IGNORE_TABLE +KW_REPLICATE_REWRITE_DB +KW_REPLICATE_WILD_DO_TABLE +KW_REPLICATE_WILD_IGNORE_TABLE +KW_REPLICATION +KW_REQUIRE_ROW_FORMAT +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK +KW_RESET +KW_RESTART +KW_RESUME +KW_RETURNED_SQLSTATE +KW_RETURNING +KW_RETURNS +KW_REUSE +KW_ROLE +KW_ROLLBACK +KW_ROLLUP +KW_ROTATE +KW_ROW +KW_ROWS +KW_ROW_FORMAT +KW_SAVEPOINT +KW_SCHEDULE +KW_SECURITY +KW_SERVER +KW_SESSION +KW_SHARE +KW_SHARED +KW_SIGNED +KW_SIMPLE +KW_SLAVE +KW_SLOW +KW_SNAPSHOT +KW_SOCKET +KW_SOME +KW_SONAME +KW_SOUNDS +KW_SOURCE +KW_SOURCE_BIND +KW_SOURCE_HOST +KW_SOURCE_USER +KW_SOURCE_PASSWORD +KW_SOURCE_PORT +KW_SOURCE_LOG_FILE +KW_SOURCE_LOG_POS +KW_SOURCE_AUTO_POSITION +KW_SOURCE_HEARTBEAT_PERIOD +KW_SOURCE_CONNECT_RETRY +KW_SOURCE_RETRY_COUNT +KW_SOURCE_CONNECTION_AUTO_FAILOVER +KW_SOURCE_DELAY +KW_SOURCE_COMPRESSION_ALGORITHMS +KW_SOURCE_ZSTD_COMPRESSION_LEVEL +KW_SOURCE_SSL +KW_SOURCE_SSL_CA +KW_SOURCE_SSL_CAPATH +KW_SOURCE_SSL_CERT +KW_SOURCE_SSL_CRL +KW_SOURCE_SSL_CRLPATH +KW_SOURCE_SSL_KEY +KW_SOURCE_SSL_CIPHER +KW_SOURCE_SSL_VERIFY_SERVER_CERT +KW_SOURCE_TLS_VERSION +KW_SOURCE_TLS_CIPHERSUITES +KW_SOURCE_PUBLIC_KEY_PATH +KW_SQL_AFTER_GTIDS +KW_SQL_AFTER_MTS_GAPS +KW_SQL_BEFORE_GTIDS +KW_SQL_BUFFER_RESULT +KW_SQL_CACHE +KW_SQL_NO_CACHE +KW_SQL_THREAD +KW_START +KW_STARTS +KW_STATS_AUTO_RECALC +KW_STATS_PERSISTENT +KW_STATS_SAMPLE_PAGES +KW_STATUS +KW_STOP +KW_STORAGE +KW_STORED +KW_STRING +KW_SUBCLASS_ORIGIN +KW_SUBJECT +KW_SUBPARTITION +KW_SUBPARTITIONS +KW_SUSPEND +KW_SWAPS +KW_SWITCHES +KW_TABLE_NAME +KW_TABLESPACE +KW_TABLE_TYPE +KW_TEMPORARY +KW_TEMPTABLE +KW_THAN +KW_TRADITIONAL +KW_TRANSACTION +KW_TRANSACTIONAL +KW_TREE +KW_TRIGGERS +KW_TRUNCATE +KW_UNBOUNDED +KW_UNDEFINED +KW_UNDOFILE +KW_UNDO_BUFFER_SIZE +KW_UNINSTALL +KW_UNKNOWN +KW_UNREGISTER +KW_UNTIL +KW_UPGRADE +KW_USER +KW_USE_FRM +KW_USER_RESOURCES +KW_VALIDATION +KW_VALUE +KW_VARIABLES +KW_VIEW +KW_VIRTUAL +KW_VISIBLE +KW_WAIT +KW_WARNINGS +KW_WINDOW +KW_WITHOUT +KW_WORK +KW_WRAPPER +KW_X509 +KW_XA +KW_XML +KW_QUARTER +KW_MONTH +KW_DAY +KW_HOUR +KW_MINUTE +KW_WEEK +KW_SECOND +KW_MICROSECOND +KW_ADMIN +KW_APPLICATION_PASSWORD_ADMIN +KW_AUDIT_ABORT_EXEMPT +KW_AUDIT_ADMIN +KW_AUTHENTICATION +KW_AUTHENTICATION_POLICY_ADMIN +KW_BACKUP_ADMIN +KW_BINLOG_ADMIN +KW_BINLOG_ENCRYPTION_ADMIN +KW_CLONE +KW_CLONE_ADMIN +KW_CONNECTION_ADMIN +KW_ENCRYPTION_KEY_ADMIN +KW_EXECUTE +KW_FILE +KW_FIREWALL_ADMIN +KW_FIREWALL_EXEMPT +KW_FIREWALL_USER +KW_FLUSH_OPTIMIZER_COSTS +KW_FLUSH_STATUS +KW_FLUSH_TABLES +KW_FLUSH_USER_RESOURCES +KW_GROUP_REPLICATION_ADMIN +KW_INNODB_REDO_LOG_ARCHIVE +KW_INNODB_REDO_LOG_ENABLE +KW_INVOKE +KW_LAMBDA +KW_NDB_STORED_USER +KW_PASSWORDLESS_USER_ADMIN +KW_PERSIST_RO_VARIABLES_ADMIN +KW_PRIVILEGES +KW_PROCESS +KW_RELOAD +KW_REPLICATION_APPLIER +KW_REPLICATION_SLAVE_ADMIN +KW_RESOURCE +KW_RESOURCE_GROUP_ADMIN +KW_RESOURCE_GROUP_USER +KW_ROLE_ADMIN +KW_ROUTINE +KW_S3 +KW_SERVICE_CONNECTION_ADMIN +KW_SESSION_VARIABLES_ADMIN +KW_SET_USER_ID +KW_SHOW_ROUTINE +KW_SHUTDOWN +KW_SUPER +KW_SYSTEM_VARIABLES_ADMIN +KW_TABLES +KW_TABLE_ENCRYPTION_ADMIN +KW_VERSION_TOKEN_ADMIN +KW_XA_RECOVER_ADMIN +KW_ARMSCII8 +KW_ASCII +KW_BIG5 +KW_CP1250 +KW_CP1251 +KW_CP1256 +KW_CP1257 +KW_CP850 +KW_CP852 +KW_CP866 +KW_CP932 +KW_DEC8 +KW_EUCJPMS +KW_EUCKR +KW_GB18030 +KW_GB2312 +KW_GBK +KW_GEOSTD8 +KW_GREEK +KW_HEBREW +KW_HP8 +KW_KEYBCS2 +KW_KOI8R +KW_KOI8U +KW_LATIN1 +KW_LATIN2 +KW_LATIN5 +KW_LATIN7 +KW_MACCE +KW_MACROMAN +KW_SJIS +KW_SWE7 +KW_TIS620 +KW_UCS2 +KW_UJIS +KW_UTF16 +KW_UTF16LE +KW_UTF32 +KW_UTF8 +KW_UTF8MB3 +KW_UTF8MB4 +KW_ARCHIVE +KW_BLACKHOLE +KW_CSV +KW_FEDERATED +KW_INNODB +KW_MEMORY +KW_MRG_MYISAM +KW_MYISAM +KW_NDB +KW_NDBCLUSTER +KW_PERFORMANCE_SCHEMA +KW_TOKUDB +KW_REPEATABLE +KW_COMMITTED +KW_UNCOMMITTED +KW_SERIALIZABLE +KW_GEOMETRYCOLLECTION +KW_GEOMCOLLECTION +KW_GEOMETRY +KW_LINESTRING +KW_MULTILINESTRING +KW_MULTIPOINT +KW_MULTIPOLYGON +KW_POINT +KW_POLYGON +KW_CATALOG_NAME +KW_CHARSET +KW_COLLATION +KW_ENGINE_ATTRIBUTE +KW_FORMAT +KW_GET_FORMAT +KW_INTERSECT +KW_RANDOM +KW_REVERSE +KW_ROW_COUNT +KW_SCHEMA_NAME +KW_SECONDARY_ENGINE_ATTRIBUTE +KW_SRID +KW_SYSTEM +KW_SYSTEM_USER +KW_THREAD_PRIORITY +KW_TP_CONNECTION_ADMIN +KW_TYPE +KW_WEIGHT_STRING +VAR_ASSIGN +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +STAR +DIVIDE +MODULE +PLUS +MINUS +DIV +MOD +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LR_BRACKET +RR_BRACKET +COMMA +SEMI +AT_SIGN +ZERO_DECIMAL +ONE_DECIMAL +TWO_DECIMAL +THREE_DECIMAL +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +QUOTE_SYMB +CHARSET_REVERSE_QOUTE_STRING +FILESIZE_LITERAL +START_NATIONAL_STRING_LITERAL +STRING_LITERAL +DECIMAL_LITERAL +HEXADECIMAL_LITERAL +REAL_LITERAL +NULL_SPEC_LITERAL +BIT_STRING +STRING_CHARSET_NAME +DOT_ID +ID +REVERSE_QUOTE_ID +HOST_IP_ADDRESS +LOCAL_ID +GLOBAL_ID +PERSIST_ID +CHARSET_NAME +EXPONENT_NUM_PART +ID_LITERAL +DQUOTA_STRING +SQUOTA_STRING +BQUOTA_STRING +HEX_DIGIT +DEC_DIGIT +BIT_STRING_L +IP_ADDRESS +ERROR_RECONGNIGION + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN +null +null +MYSQLCOMMENT +ERRORCHANNEL + +mode names: +DEFAULT_MODE + +atn: +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 898, 10428, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 4, 318, 9, 318, 4, 319, 9, 319, 4, 320, 9, 320, 4, 321, 9, 321, 4, 322, 9, 322, 4, 323, 9, 323, 4, 324, 9, 324, 4, 325, 9, 325, 4, 326, 9, 326, 4, 327, 9, 327, 4, 328, 9, 328, 4, 329, 9, 329, 4, 330, 9, 330, 4, 331, 9, 331, 4, 332, 9, 332, 4, 333, 9, 333, 4, 334, 9, 334, 4, 335, 9, 335, 4, 336, 9, 336, 4, 337, 9, 337, 4, 338, 9, 338, 4, 339, 9, 339, 4, 340, 9, 340, 4, 341, 9, 341, 4, 342, 9, 342, 4, 343, 9, 343, 4, 344, 9, 344, 4, 345, 9, 345, 4, 346, 9, 346, 4, 347, 9, 347, 4, 348, 9, 348, 4, 349, 9, 349, 4, 350, 9, 350, 4, 351, 9, 351, 4, 352, 9, 352, 4, 353, 9, 353, 4, 354, 9, 354, 4, 355, 9, 355, 4, 356, 9, 356, 4, 357, 9, 357, 4, 358, 9, 358, 4, 359, 9, 359, 4, 360, 9, 360, 4, 361, 9, 361, 4, 362, 9, 362, 4, 363, 9, 363, 4, 364, 9, 364, 4, 365, 9, 365, 4, 366, 9, 366, 4, 367, 9, 367, 4, 368, 9, 368, 4, 369, 9, 369, 4, 370, 9, 370, 4, 371, 9, 371, 4, 372, 9, 372, 4, 373, 9, 373, 4, 374, 9, 374, 4, 375, 9, 375, 4, 376, 9, 376, 4, 377, 9, 377, 4, 378, 9, 378, 4, 379, 9, 379, 4, 380, 9, 380, 4, 381, 9, 381, 4, 382, 9, 382, 4, 383, 9, 383, 4, 384, 9, 384, 4, 385, 9, 385, 4, 386, 9, 386, 4, 387, 9, 387, 4, 388, 9, 388, 4, 389, 9, 389, 4, 390, 9, 390, 4, 391, 9, 391, 4, 392, 9, 392, 4, 393, 9, 393, 4, 394, 9, 394, 4, 395, 9, 395, 4, 396, 9, 396, 4, 397, 9, 397, 4, 398, 9, 398, 4, 399, 9, 399, 4, 400, 9, 400, 4, 401, 9, 401, 4, 402, 9, 402, 4, 403, 9, 403, 4, 404, 9, 404, 4, 405, 9, 405, 4, 406, 9, 406, 4, 407, 9, 407, 4, 408, 9, 408, 4, 409, 9, 409, 4, 410, 9, 410, 4, 411, 9, 411, 4, 412, 9, 412, 4, 413, 9, 413, 4, 414, 9, 414, 4, 415, 9, 415, 4, 416, 9, 416, 4, 417, 9, 417, 4, 418, 9, 418, 4, 419, 9, 419, 4, 420, 9, 420, 4, 421, 9, 421, 4, 422, 9, 422, 4, 423, 9, 423, 4, 424, 9, 424, 4, 425, 9, 425, 4, 426, 9, 426, 4, 427, 9, 427, 4, 428, 9, 428, 4, 429, 9, 429, 4, 430, 9, 430, 4, 431, 9, 431, 4, 432, 9, 432, 4, 433, 9, 433, 4, 434, 9, 434, 4, 435, 9, 435, 4, 436, 9, 436, 4, 437, 9, 437, 4, 438, 9, 438, 4, 439, 9, 439, 4, 440, 9, 440, 4, 441, 9, 441, 4, 442, 9, 442, 4, 443, 9, 443, 4, 444, 9, 444, 4, 445, 9, 445, 4, 446, 9, 446, 4, 447, 9, 447, 4, 448, 9, 448, 4, 449, 9, 449, 4, 450, 9, 450, 4, 451, 9, 451, 4, 452, 9, 452, 4, 453, 9, 453, 4, 454, 9, 454, 4, 455, 9, 455, 4, 456, 9, 456, 4, 457, 9, 457, 4, 458, 9, 458, 4, 459, 9, 459, 4, 460, 9, 460, 4, 461, 9, 461, 4, 462, 9, 462, 4, 463, 9, 463, 4, 464, 9, 464, 4, 465, 9, 465, 4, 466, 9, 466, 4, 467, 9, 467, 4, 468, 9, 468, 4, 469, 9, 469, 4, 470, 9, 470, 4, 471, 9, 471, 4, 472, 9, 472, 4, 473, 9, 473, 4, 474, 9, 474, 4, 475, 9, 475, 4, 476, 9, 476, 4, 477, 9, 477, 4, 478, 9, 478, 4, 479, 9, 479, 4, 480, 9, 480, 4, 481, 9, 481, 4, 482, 9, 482, 4, 483, 9, 483, 4, 484, 9, 484, 4, 485, 9, 485, 4, 486, 9, 486, 4, 487, 9, 487, 4, 488, 9, 488, 4, 489, 9, 489, 4, 490, 9, 490, 4, 491, 9, 491, 4, 492, 9, 492, 4, 493, 9, 493, 4, 494, 9, 494, 4, 495, 9, 495, 4, 496, 9, 496, 4, 497, 9, 497, 4, 498, 9, 498, 4, 499, 9, 499, 4, 500, 9, 500, 4, 501, 9, 501, 4, 502, 9, 502, 4, 503, 9, 503, 4, 504, 9, 504, 4, 505, 9, 505, 4, 506, 9, 506, 4, 507, 9, 507, 4, 508, 9, 508, 4, 509, 9, 509, 4, 510, 9, 510, 4, 511, 9, 511, 4, 512, 9, 512, 4, 513, 9, 513, 4, 514, 9, 514, 4, 515, 9, 515, 4, 516, 9, 516, 4, 517, 9, 517, 4, 518, 9, 518, 4, 519, 9, 519, 4, 520, 9, 520, 4, 521, 9, 521, 4, 522, 9, 522, 4, 523, 9, 523, 4, 524, 9, 524, 4, 525, 9, 525, 4, 526, 9, 526, 4, 527, 9, 527, 4, 528, 9, 528, 4, 529, 9, 529, 4, 530, 9, 530, 4, 531, 9, 531, 4, 532, 9, 532, 4, 533, 9, 533, 4, 534, 9, 534, 4, 535, 9, 535, 4, 536, 9, 536, 4, 537, 9, 537, 4, 538, 9, 538, 4, 539, 9, 539, 4, 540, 9, 540, 4, 541, 9, 541, 4, 542, 9, 542, 4, 543, 9, 543, 4, 544, 9, 544, 4, 545, 9, 545, 4, 546, 9, 546, 4, 547, 9, 547, 4, 548, 9, 548, 4, 549, 9, 549, 4, 550, 9, 550, 4, 551, 9, 551, 4, 552, 9, 552, 4, 553, 9, 553, 4, 554, 9, 554, 4, 555, 9, 555, 4, 556, 9, 556, 4, 557, 9, 557, 4, 558, 9, 558, 4, 559, 9, 559, 4, 560, 9, 560, 4, 561, 9, 561, 4, 562, 9, 562, 4, 563, 9, 563, 4, 564, 9, 564, 4, 565, 9, 565, 4, 566, 9, 566, 4, 567, 9, 567, 4, 568, 9, 568, 4, 569, 9, 569, 4, 570, 9, 570, 4, 571, 9, 571, 4, 572, 9, 572, 4, 573, 9, 573, 4, 574, 9, 574, 4, 575, 9, 575, 4, 576, 9, 576, 4, 577, 9, 577, 4, 578, 9, 578, 4, 579, 9, 579, 4, 580, 9, 580, 4, 581, 9, 581, 4, 582, 9, 582, 4, 583, 9, 583, 4, 584, 9, 584, 4, 585, 9, 585, 4, 586, 9, 586, 4, 587, 9, 587, 4, 588, 9, 588, 4, 589, 9, 589, 4, 590, 9, 590, 4, 591, 9, 591, 4, 592, 9, 592, 4, 593, 9, 593, 4, 594, 9, 594, 4, 595, 9, 595, 4, 596, 9, 596, 4, 597, 9, 597, 4, 598, 9, 598, 4, 599, 9, 599, 4, 600, 9, 600, 4, 601, 9, 601, 4, 602, 9, 602, 4, 603, 9, 603, 4, 604, 9, 604, 4, 605, 9, 605, 4, 606, 9, 606, 4, 607, 9, 607, 4, 608, 9, 608, 4, 609, 9, 609, 4, 610, 9, 610, 4, 611, 9, 611, 4, 612, 9, 612, 4, 613, 9, 613, 4, 614, 9, 614, 4, 615, 9, 615, 4, 616, 9, 616, 4, 617, 9, 617, 4, 618, 9, 618, 4, 619, 9, 619, 4, 620, 9, 620, 4, 621, 9, 621, 4, 622, 9, 622, 4, 623, 9, 623, 4, 624, 9, 624, 4, 625, 9, 625, 4, 626, 9, 626, 4, 627, 9, 627, 4, 628, 9, 628, 4, 629, 9, 629, 4, 630, 9, 630, 4, 631, 9, 631, 4, 632, 9, 632, 4, 633, 9, 633, 4, 634, 9, 634, 4, 635, 9, 635, 4, 636, 9, 636, 4, 637, 9, 637, 4, 638, 9, 638, 4, 639, 9, 639, 4, 640, 9, 640, 4, 641, 9, 641, 4, 642, 9, 642, 4, 643, 9, 643, 4, 644, 9, 644, 4, 645, 9, 645, 4, 646, 9, 646, 4, 647, 9, 647, 4, 648, 9, 648, 4, 649, 9, 649, 4, 650, 9, 650, 4, 651, 9, 651, 4, 652, 9, 652, 4, 653, 9, 653, 4, 654, 9, 654, 4, 655, 9, 655, 4, 656, 9, 656, 4, 657, 9, 657, 4, 658, 9, 658, 4, 659, 9, 659, 4, 660, 9, 660, 4, 661, 9, 661, 4, 662, 9, 662, 4, 663, 9, 663, 4, 664, 9, 664, 4, 665, 9, 665, 4, 666, 9, 666, 4, 667, 9, 667, 4, 668, 9, 668, 4, 669, 9, 669, 4, 670, 9, 670, 4, 671, 9, 671, 4, 672, 9, 672, 4, 673, 9, 673, 4, 674, 9, 674, 4, 675, 9, 675, 4, 676, 9, 676, 4, 677, 9, 677, 4, 678, 9, 678, 4, 679, 9, 679, 4, 680, 9, 680, 4, 681, 9, 681, 4, 682, 9, 682, 4, 683, 9, 683, 4, 684, 9, 684, 4, 685, 9, 685, 4, 686, 9, 686, 4, 687, 9, 687, 4, 688, 9, 688, 4, 689, 9, 689, 4, 690, 9, 690, 4, 691, 9, 691, 4, 692, 9, 692, 4, 693, 9, 693, 4, 694, 9, 694, 4, 695, 9, 695, 4, 696, 9, 696, 4, 697, 9, 697, 4, 698, 9, 698, 4, 699, 9, 699, 4, 700, 9, 700, 4, 701, 9, 701, 4, 702, 9, 702, 4, 703, 9, 703, 4, 704, 9, 704, 4, 705, 9, 705, 4, 706, 9, 706, 4, 707, 9, 707, 4, 708, 9, 708, 4, 709, 9, 709, 4, 710, 9, 710, 4, 711, 9, 711, 4, 712, 9, 712, 4, 713, 9, 713, 4, 714, 9, 714, 4, 715, 9, 715, 4, 716, 9, 716, 4, 717, 9, 717, 4, 718, 9, 718, 4, 719, 9, 719, 4, 720, 9, 720, 4, 721, 9, 721, 4, 722, 9, 722, 4, 723, 9, 723, 4, 724, 9, 724, 4, 725, 9, 725, 4, 726, 9, 726, 4, 727, 9, 727, 4, 728, 9, 728, 4, 729, 9, 729, 4, 730, 9, 730, 4, 731, 9, 731, 4, 732, 9, 732, 4, 733, 9, 733, 4, 734, 9, 734, 4, 735, 9, 735, 4, 736, 9, 736, 4, 737, 9, 737, 4, 738, 9, 738, 4, 739, 9, 739, 4, 740, 9, 740, 4, 741, 9, 741, 4, 742, 9, 742, 4, 743, 9, 743, 4, 744, 9, 744, 4, 745, 9, 745, 4, 746, 9, 746, 4, 747, 9, 747, 4, 748, 9, 748, 4, 749, 9, 749, 4, 750, 9, 750, 4, 751, 9, 751, 4, 752, 9, 752, 4, 753, 9, 753, 4, 754, 9, 754, 4, 755, 9, 755, 4, 756, 9, 756, 4, 757, 9, 757, 4, 758, 9, 758, 4, 759, 9, 759, 4, 760, 9, 760, 4, 761, 9, 761, 4, 762, 9, 762, 4, 763, 9, 763, 4, 764, 9, 764, 4, 765, 9, 765, 4, 766, 9, 766, 4, 767, 9, 767, 4, 768, 9, 768, 4, 769, 9, 769, 4, 770, 9, 770, 4, 771, 9, 771, 4, 772, 9, 772, 4, 773, 9, 773, 4, 774, 9, 774, 4, 775, 9, 775, 4, 776, 9, 776, 4, 777, 9, 777, 4, 778, 9, 778, 4, 779, 9, 779, 4, 780, 9, 780, 4, 781, 9, 781, 4, 782, 9, 782, 4, 783, 9, 783, 4, 784, 9, 784, 4, 785, 9, 785, 4, 786, 9, 786, 4, 787, 9, 787, 4, 788, 9, 788, 4, 789, 9, 789, 4, 790, 9, 790, 4, 791, 9, 791, 4, 792, 9, 792, 4, 793, 9, 793, 4, 794, 9, 794, 4, 795, 9, 795, 4, 796, 9, 796, 4, 797, 9, 797, 4, 798, 9, 798, 4, 799, 9, 799, 4, 800, 9, 800, 4, 801, 9, 801, 4, 802, 9, 802, 4, 803, 9, 803, 4, 804, 9, 804, 4, 805, 9, 805, 4, 806, 9, 806, 4, 807, 9, 807, 4, 808, 9, 808, 4, 809, 9, 809, 4, 810, 9, 810, 4, 811, 9, 811, 4, 812, 9, 812, 4, 813, 9, 813, 4, 814, 9, 814, 4, 815, 9, 815, 4, 816, 9, 816, 4, 817, 9, 817, 4, 818, 9, 818, 4, 819, 9, 819, 4, 820, 9, 820, 4, 821, 9, 821, 4, 822, 9, 822, 4, 823, 9, 823, 4, 824, 9, 824, 4, 825, 9, 825, 4, 826, 9, 826, 4, 827, 9, 827, 4, 828, 9, 828, 4, 829, 9, 829, 4, 830, 9, 830, 4, 831, 9, 831, 4, 832, 9, 832, 4, 833, 9, 833, 4, 834, 9, 834, 4, 835, 9, 835, 4, 836, 9, 836, 4, 837, 9, 837, 4, 838, 9, 838, 4, 839, 9, 839, 4, 840, 9, 840, 4, 841, 9, 841, 4, 842, 9, 842, 4, 843, 9, 843, 4, 844, 9, 844, 4, 845, 9, 845, 4, 846, 9, 846, 4, 847, 9, 847, 4, 848, 9, 848, 4, 849, 9, 849, 4, 850, 9, 850, 4, 851, 9, 851, 4, 852, 9, 852, 4, 853, 9, 853, 4, 854, 9, 854, 4, 855, 9, 855, 4, 856, 9, 856, 4, 857, 9, 857, 4, 858, 9, 858, 4, 859, 9, 859, 4, 860, 9, 860, 4, 861, 9, 861, 4, 862, 9, 862, 4, 863, 9, 863, 4, 864, 9, 864, 4, 865, 9, 865, 4, 866, 9, 866, 4, 867, 9, 867, 4, 868, 9, 868, 4, 869, 9, 869, 4, 870, 9, 870, 4, 871, 9, 871, 4, 872, 9, 872, 4, 873, 9, 873, 4, 874, 9, 874, 4, 875, 9, 875, 4, 876, 9, 876, 4, 877, 9, 877, 4, 878, 9, 878, 4, 879, 9, 879, 4, 880, 9, 880, 4, 881, 9, 881, 4, 882, 9, 882, 4, 883, 9, 883, 4, 884, 9, 884, 4, 885, 9, 885, 4, 886, 9, 886, 4, 887, 9, 887, 4, 888, 9, 888, 4, 889, 9, 889, 4, 890, 9, 890, 4, 891, 9, 891, 4, 892, 9, 892, 4, 893, 9, 893, 4, 894, 9, 894, 4, 895, 9, 895, 4, 896, 9, 896, 4, 897, 9, 897, 4, 898, 9, 898, 4, 899, 9, 899, 4, 900, 9, 900, 4, 901, 9, 901, 4, 902, 9, 902, 4, 903, 9, 903, 4, 904, 9, 904, 4, 905, 9, 905, 4, 906, 9, 906, 4, 907, 9, 907, 4, 908, 9, 908, 3, 2, 6, 2, 1819, 10, 2, 13, 2, 14, 2, 1820, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 1830, 10, 3, 13, 3, 14, 3, 1831, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 1843, 10, 4, 12, 4, 14, 4, 1846, 11, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 7, 5, 1857, 10, 5, 12, 5, 14, 5, 1860, 11, 5, 3, 5, 5, 5, 1863, 10, 5, 3, 5, 7, 5, 1866, 10, 5, 12, 5, 14, 5, 1869, 11, 5, 3, 5, 5, 5, 1872, 10, 5, 3, 5, 3, 5, 5, 5, 1876, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 1882, 10, 5, 3, 5, 3, 5, 5, 5, 1886, 10, 5, 5, 5, 1888, 10, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 3, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 3, 276, 3, 276, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 282, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 296, 3, 296, 3, 296, 3, 296, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 312, 3, 312, 3, 312, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 320, 3, 320, 3, 320, 3, 320, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 323, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 341, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 3, 342, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 343, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 344, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 345, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 346, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 347, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 348, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 349, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 350, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 353, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 354, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 355, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 356, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 358, 3, 358, 3, 358, 3, 358, 3, 358, 3, 359, 3, 359, 3, 359, 3, 359, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 360, 3, 361, 3, 361, 3, 361, 3, 361, 3, 361, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 362, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 363, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 364, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 366, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 367, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 371, 3, 371, 3, 371, 3, 371, 3, 371, 3, 372, 3, 372, 3, 372, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 373, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 376, 3, 376, 3, 376, 3, 376, 3, 376, 3, 376, 3, 376, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 377, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 379, 3, 379, 3, 379, 3, 379, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 381, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 382, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 383, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 384, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 389, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 393, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 394, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 395, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 396, 3, 397, 3, 397, 3, 397, 3, 397, 3, 397, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 403, 3, 403, 3, 403, 3, 403, 3, 403, 3, 403, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 404, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 408, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 413, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 415, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 416, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 417, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 418, 3, 419, 3, 419, 3, 419, 3, 419, 3, 419, 3, 420, 3, 420, 3, 420, 3, 420, 3, 420, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 421, 3, 422, 3, 422, 3, 422, 3, 422, 3, 422, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 423, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 424, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 425, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 426, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 427, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 428, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 429, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 430, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 431, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 432, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 433, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 434, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 435, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 436, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 437, 3, 438, 3, 438, 3, 438, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 439, 3, 440, 3, 440, 3, 440, 3, 440, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 441, 3, 442, 3, 442, 3, 442, 3, 442, 3, 442, 3, 442, 3, 442, 3, 443, 3, 443, 3, 443, 3, 443, 3, 443, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 444, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 445, 3, 446, 3, 446, 3, 446, 3, 446, 3, 446, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 447, 3, 448, 3, 448, 3, 448, 3, 448, 3, 448, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 3, 449, 3, 450, 3, 450, 3, 450, 3, 450, 3, 450, 3, 451, 3, 451, 3, 451, 3, 451, 3, 451, 3, 451, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 452, 3, 453, 3, 453, 3, 453, 3, 453, 3, 453, 3, 454, 3, 454, 3, 454, 3, 454, 3, 454, 3, 454, 3, 454, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 455, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 456, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 457, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 458, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 459, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 460, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 461, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 462, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 463, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 464, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 465, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 466, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 467, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 468, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 469, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 470, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 471, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 472, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 473, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 474, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 475, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 476, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 477, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 478, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 479, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 480, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 481, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 482, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 483, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 484, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 485, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 486, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 487, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 488, 3, 489, 3, 489, 3, 489, 3, 489, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 490, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 491, 3, 492, 3, 492, 3, 492, 3, 492, 3, 492, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 493, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 494, 3, 495, 3, 495, 3, 495, 3, 495, 3, 495, 3, 495, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 496, 3, 497, 3, 497, 3, 497, 3, 497, 3, 497, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 498, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 499, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 500, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 501, 3, 502, 3, 502, 3, 502, 3, 502, 3, 502, 3, 503, 3, 503, 3, 503, 3, 504, 3, 504, 3, 504, 3, 504, 3, 504, 3, 504, 3, 504, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 505, 3, 506, 3, 506, 3, 506, 3, 506, 3, 506, 3, 507, 3, 507, 3, 507, 3, 507, 3, 507, 3, 508, 3, 508, 3, 508, 3, 508, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 509, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 510, 3, 511, 3, 511, 3, 511, 3, 512, 3, 512, 3, 512, 3, 512, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 513, 3, 514, 3, 514, 3, 514, 3, 514, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 515, 3, 516, 3, 516, 3, 516, 3, 516, 3, 516, 3, 517, 3, 517, 3, 517, 3, 517, 3, 517, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 518, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 519, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 520, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 521, 3, 522, 3, 522, 3, 522, 3, 522, 3, 522, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 523, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 524, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 525, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 526, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 527, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 528, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 529, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 530, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 531, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 532, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 533, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 534, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 535, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 536, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 537, 3, 538, 3, 538, 3, 538, 3, 538, 3, 538, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 539, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 540, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 541, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 542, 3, 543, 3, 543, 3, 543, 3, 543, 3, 543, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 544, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 545, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 546, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 547, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 548, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 549, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 550, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 551, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 552, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 553, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 554, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 555, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 556, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 557, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 558, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 559, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 560, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 561, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 562, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 563, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 564, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 565, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 566, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 567, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 568, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 569, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 570, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 571, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 572, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 573, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 574, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 575, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 576, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 577, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 578, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 579, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 580, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 581, 3, 582, 3, 582, 3, 582, 3, 582, 3, 582, 3, 582, 3, 583, 3, 583, 3, 583, 3, 583, 3, 583, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 584, 3, 585, 3, 585, 3, 585, 3, 585, 3, 585, 3, 585, 3, 585, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 586, 3, 587, 3, 587, 3, 587, 3, 587, 3, 588, 3, 588, 3, 588, 3, 588, 3, 588, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 589, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 590, 3, 591, 3, 591, 3, 591, 3, 591, 3, 591, 3, 591, 3, 591, 3, 591, 3, 591, 3, 592, 3, 592, 3, 592, 3, 592, 3, 592, 3, 592, 3, 592, 3, 592, 3, 592, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 593, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 594, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 595, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 596, 3, 597, 3, 597, 3, 597, 3, 597, 3, 597, 3, 597, 3, 597, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 598, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 599, 3, 600, 3, 600, 3, 600, 3, 600, 3, 600, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 601, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 602, 3, 603, 3, 603, 3, 603, 3, 603, 3, 603, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 604, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 605, 3, 606, 3, 606, 3, 606, 3, 606, 3, 606, 3, 606, 3, 606, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 607, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 608, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 609, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 610, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 611, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 612, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 613, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 614, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 615, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 616, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 617, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 618, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 619, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 620, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 621, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 622, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 623, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 624, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 625, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 626, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 627, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 628, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 629, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 630, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 631, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 632, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 633, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 634, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 635, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 636, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 637, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 638, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 639, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 640, 3, 641, 3, 641, 3, 641, 3, 641, 3, 641, 3, 641, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 642, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 643, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 644, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 645, 3, 646, 3, 646, 3, 646, 3, 646, 3, 646, 3, 646, 3, 646, 3, 647, 3, 647, 3, 647, 3, 647, 3, 647, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 648, 3, 649, 3, 649, 3, 649, 3, 649, 3, 649, 3, 649, 3, 649, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 650, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 651, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 652, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 653, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 654, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 655, 3, 656, 3, 656, 3, 656, 3, 656, 3, 656, 3, 656, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 657, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 658, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 659, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 660, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 661, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 662, 3, 663, 3, 663, 3, 663, 3, 663, 3, 663, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 664, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 665, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 666, 3, 667, 3, 667, 3, 667, 3, 667, 3, 667, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 668, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 669, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 670, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 671, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 672, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 673, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 674, 3, 675, 3, 675, 3, 675, 3, 675, 3, 675, 3, 675, 3, 675, 3, 675, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 676, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 677, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 678, 3, 679, 3, 679, 3, 679, 3, 679, 3, 679, 3, 680, 3, 680, 3, 680, 3, 680, 3, 680, 3, 680, 3, 680, 3, 680, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 681, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 682, 3, 683, 3, 683, 3, 683, 3, 683, 3, 683, 3, 683, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 684, 3, 685, 3, 685, 3, 685, 3, 685, 3, 685, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 686, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 687, 3, 688, 3, 688, 3, 688, 3, 688, 3, 688, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 689, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 690, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 691, 3, 692, 3, 692, 3, 692, 3, 692, 3, 692, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 693, 3, 694, 3, 694, 3, 694, 3, 694, 3, 694, 3, 695, 3, 695, 3, 695, 3, 696, 3, 696, 3, 696, 3, 696, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 697, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 698, 3, 699, 3, 699, 3, 699, 3, 699, 3, 700, 3, 700, 3, 700, 3, 700, 3, 700, 3, 701, 3, 701, 3, 701, 3, 701, 3, 701, 3, 701, 3, 701, 3, 702, 3, 702, 3, 702, 3, 702, 3, 702, 3, 703, 3, 703, 3, 703, 3, 703, 3, 703, 3, 703, 3, 703, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 704, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 705, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 706, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 707, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 708, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 709, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 710, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 711, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 712, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 713, 3, 714, 3, 714, 3, 714, 3, 714, 3, 714, 3, 714, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 715, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 716, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 717, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 718, 3, 719, 3, 719, 3, 719, 3, 719, 3, 719, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 720, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 721, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 722, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 723, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 724, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 725, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 726, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 727, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 728, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 729, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 730, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 731, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 732, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 733, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 734, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 735, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 736, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 737, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 738, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 739, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 740, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 741, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 742, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 743, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 744, 3, 745, 3, 745, 3, 745, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 746, 3, 747, 5, 747, 9142, 10, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 3, 747, 5, 747, 9169, 10, 747, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 748, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 749, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 750, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 751, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 752, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 753, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 754, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 755, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 756, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 757, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 758, 3, 759, 3, 759, 3, 759, 3, 759, 3, 759, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 760, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 761, 3, 762, 3, 762, 3, 762, 3, 762, 3, 762, 3, 762, 3, 762, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 763, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 764, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 765, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 766, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 767, 3, 768, 3, 768, 3, 768, 3, 768, 3, 768, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 769, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 770, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 771, 3, 772, 3, 772, 3, 772, 3, 772, 3, 772, 3, 772, 3, 772, 3, 773, 3, 773, 3, 773, 3, 773, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 774, 3, 775, 3, 775, 3, 775, 3, 775, 3, 775, 3, 775, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 776, 3, 777, 3, 777, 3, 777, 3, 777, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 778, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 779, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 780, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 781, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 782, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 783, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 784, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 785, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 786, 3, 787, 3, 787, 3, 787, 3, 787, 3, 787, 3, 788, 3, 788, 3, 788, 3, 788, 3, 788, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 789, 3, 790, 3, 790, 3, 790, 3, 790, 3, 790, 3, 791, 3, 791, 3, 791, 3, 791, 3, 791, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 792, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 793, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 794, 3, 795, 3, 795, 3, 795, 3, 795, 3, 795, 3, 796, 3, 796, 3, 796, 3, 796, 3, 796, 3, 796, 3, 796, 3, 796, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 797, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 798, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 799, 3, 800, 3, 800, 3, 800, 3, 800, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 801, 3, 802, 3, 802, 3, 802, 3, 802, 3, 802, 3, 802, 3, 802, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 803, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 804, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 805, 3, 806, 3, 806, 3, 806, 3, 806, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 807, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 808, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 809, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 810, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 811, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 812, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 813, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 814, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 815, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 816, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 817, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 818, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 819, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 820, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 821, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 822, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 823, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 824, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 825, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 826, 3, 827, 3, 827, 3, 827, 3, 827, 3, 827, 3, 827, 3, 827, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 828, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 829, 3, 830, 3, 830, 3, 830, 3, 830, 3, 830, 3, 830, 3, 830, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 831, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 832, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 833, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 834, 3, 835, 3, 835, 3, 835, 3, 835, 3, 835, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 836, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 837, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 838, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 839, 3, 840, 3, 840, 3, 840, 3, 840, 3, 840, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 841, 3, 842, 3, 842, 3, 842, 3, 843, 3, 843, 3, 843, 3, 844, 3, 844, 3, 844, 3, 845, 3, 845, 3, 845, 3, 846, 3, 846, 3, 846, 3, 847, 3, 847, 3, 847, 3, 848, 3, 848, 3, 848, 3, 849, 3, 849, 3, 849, 3, 850, 3, 850, 3, 850, 3, 851, 3, 851, 3, 852, 3, 852, 3, 853, 3, 853, 3, 854, 3, 854, 3, 855, 3, 855, 3, 856, 3, 856, 3, 856, 3, 856, 3, 857, 3, 857, 3, 857, 3, 857, 3, 858, 3, 858, 3, 859, 3, 859, 3, 860, 3, 860, 3, 861, 3, 861, 3, 862, 3, 862, 3, 863, 3, 863, 3, 864, 3, 864, 3, 865, 3, 865, 3, 866, 3, 866, 3, 867, 3, 867, 3, 868, 3, 868, 3, 869, 3, 869, 3, 870, 3, 870, 3, 871, 3, 871, 3, 872, 3, 872, 3, 873, 3, 873, 3, 874, 3, 874, 3, 875, 3, 875, 3, 876, 3, 876, 3, 877, 3, 877, 3, 878, 3, 878, 3, 879, 3, 879, 3, 880, 3, 880, 3, 880, 5, 880, 10137, 10, 880, 3, 881, 3, 881, 3, 881, 3, 881, 3, 882, 6, 882, 10144, 10, 882, 13, 882, 14, 882, 10145, 3, 882, 3, 882, 3, 883, 3, 883, 3, 883, 3, 884, 3, 884, 3, 884, 5, 884, 10156, 10, 884, 3, 885, 6, 885, 10159, 10, 885, 13, 885, 14, 885, 10160, 3, 886, 3, 886, 3, 886, 3, 886, 3, 886, 6, 886, 10168, 10, 886, 13, 886, 14, 886, 10169, 3, 886, 3, 886, 3, 886, 3, 886, 3, 886, 3, 886, 6, 886, 10178, 10, 886, 13, 886, 14, 886, 10179, 5, 886, 10182, 10, 886, 3, 887, 7, 887, 10185, 10, 887, 12, 887, 14, 887, 10188, 11, 887, 3, 887, 3, 887, 6, 887, 10192, 10, 887, 13, 887, 14, 887, 10193, 3, 887, 6, 887, 10197, 10, 887, 13, 887, 14, 887, 10198, 3, 887, 3, 887, 3, 887, 3, 887, 7, 887, 10205, 10, 887, 12, 887, 14, 887, 10208, 11, 887, 3, 887, 3, 887, 6, 887, 10212, 10, 887, 13, 887, 14, 887, 10213, 3, 887, 3, 887, 3, 887, 6, 887, 10219, 10, 887, 13, 887, 14, 887, 10220, 3, 887, 3, 887, 5, 887, 10225, 10, 887, 3, 888, 3, 888, 3, 888, 3, 889, 3, 889, 3, 890, 3, 890, 3, 890, 3, 891, 3, 891, 3, 891, 3, 892, 3, 892, 3, 893, 3, 893, 3, 894, 3, 894, 3, 894, 3, 895, 3, 895, 3, 895, 6, 895, 10248, 10, 895, 13, 895, 14, 895, 10249, 5, 895, 10252, 10, 895, 3, 896, 3, 896, 3, 896, 6, 896, 10257, 10, 896, 13, 896, 14, 896, 10258, 3, 896, 5, 896, 10262, 10, 896, 3, 897, 3, 897, 3, 897, 6, 897, 10267, 10, 897, 13, 897, 14, 897, 10268, 3, 897, 5, 897, 10272, 10, 897, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 3, 898, 5, 898, 10315, 10, 898, 3, 899, 3, 899, 5, 899, 10319, 10, 899, 3, 899, 6, 899, 10322, 10, 899, 13, 899, 14, 899, 10323, 3, 900, 7, 900, 10327, 10, 900, 12, 900, 14, 900, 10330, 11, 900, 3, 900, 6, 900, 10333, 10, 900, 13, 900, 14, 900, 10334, 3, 900, 7, 900, 10338, 10, 900, 12, 900, 14, 900, 10341, 11, 900, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 3, 901, 7, 901, 10349, 10, 901, 12, 901, 14, 901, 10352, 11, 901, 3, 901, 3, 901, 3, 902, 3, 902, 3, 902, 3, 902, 3, 902, 3, 902, 7, 902, 10362, 10, 902, 12, 902, 14, 902, 10365, 11, 902, 3, 902, 3, 902, 3, 903, 3, 903, 3, 903, 3, 903, 7, 903, 10373, 10, 903, 12, 903, 14, 903, 10376, 11, 903, 3, 903, 3, 903, 3, 904, 3, 904, 3, 905, 3, 905, 3, 906, 3, 906, 3, 906, 6, 906, 10387, 10, 906, 13, 906, 14, 906, 10388, 3, 906, 3, 906, 3, 907, 6, 907, 10394, 10, 907, 13, 907, 14, 907, 10395, 3, 907, 3, 907, 6, 907, 10400, 10, 907, 13, 907, 14, 907, 10401, 3, 907, 7, 907, 10405, 10, 907, 12, 907, 14, 907, 10408, 11, 907, 3, 907, 3, 907, 7, 907, 10412, 10, 907, 12, 907, 14, 907, 10415, 11, 907, 3, 907, 3, 907, 6, 907, 10419, 10, 907, 13, 907, 14, 907, 10420, 5, 907, 10423, 10, 907, 3, 908, 3, 908, 3, 908, 3, 908, 6, 1831, 1844, 10328, 10334, 2, 2, 909, 3, 2, 3, 5, 2, 4, 7, 2, 5, 9, 2, 6, 11, 2, 7, 13, 2, 8, 15, 2, 9, 17, 2, 10, 19, 2, 11, 21, 2, 12, 23, 2, 13, 25, 2, 14, 27, 2, 15, 29, 2, 16, 31, 2, 17, 33, 2, 18, 35, 2, 19, 37, 2, 20, 39, 2, 21, 41, 2, 22, 43, 2, 23, 45, 2, 24, 47, 2, 25, 49, 2, 26, 51, 2, 27, 53, 2, 28, 55, 2, 29, 57, 2, 30, 59, 2, 31, 61, 2, 32, 63, 2, 33, 65, 2, 34, 67, 2, 35, 69, 2, 36, 71, 2, 37, 73, 2, 38, 75, 2, 39, 77, 2, 40, 79, 2, 41, 81, 2, 42, 83, 2, 43, 85, 2, 44, 87, 2, 45, 89, 2, 46, 91, 2, 47, 93, 2, 48, 95, 2, 49, 97, 2, 50, 99, 2, 51, 101, 2, 52, 103, 2, 53, 105, 2, 54, 107, 2, 55, 109, 2, 56, 111, 2, 57, 113, 2, 58, 115, 2, 59, 117, 2, 60, 119, 2, 61, 121, 2, 62, 123, 2, 63, 125, 2, 64, 127, 2, 65, 129, 2, 66, 131, 2, 67, 133, 2, 68, 135, 2, 69, 137, 2, 70, 139, 2, 71, 141, 2, 72, 143, 2, 73, 145, 2, 74, 147, 2, 75, 149, 2, 76, 151, 2, 77, 153, 2, 78, 155, 2, 79, 157, 2, 80, 159, 2, 81, 161, 2, 82, 163, 2, 83, 165, 2, 84, 167, 2, 85, 169, 2, 86, 171, 2, 87, 173, 2, 88, 175, 2, 89, 177, 2, 90, 179, 2, 91, 181, 2, 92, 183, 2, 93, 185, 2, 94, 187, 2, 95, 189, 2, 96, 191, 2, 97, 193, 2, 98, 195, 2, 99, 197, 2, 100, 199, 2, 101, 201, 2, 102, 203, 2, 103, 205, 2, 104, 207, 2, 105, 209, 2, 106, 211, 2, 107, 213, 2, 108, 215, 2, 109, 217, 2, 110, 219, 2, 111, 221, 2, 112, 223, 2, 113, 225, 2, 114, 227, 2, 115, 229, 2, 116, 231, 2, 117, 233, 2, 118, 235, 2, 119, 237, 2, 120, 239, 2, 121, 241, 2, 122, 243, 2, 123, 245, 2, 124, 247, 2, 125, 249, 2, 126, 251, 2, 127, 253, 2, 128, 255, 2, 129, 257, 2, 130, 259, 2, 131, 261, 2, 132, 263, 2, 133, 265, 2, 134, 267, 2, 135, 269, 2, 136, 271, 2, 137, 273, 2, 138, 275, 2, 139, 277, 2, 140, 279, 2, 141, 281, 2, 142, 283, 2, 143, 285, 2, 144, 287, 2, 145, 289, 2, 146, 291, 2, 147, 293, 2, 148, 295, 2, 149, 297, 2, 150, 299, 2, 151, 301, 2, 152, 303, 2, 153, 305, 2, 154, 307, 2, 155, 309, 2, 156, 311, 2, 157, 313, 2, 158, 315, 2, 159, 317, 2, 160, 319, 2, 161, 321, 2, 162, 323, 2, 163, 325, 2, 164, 327, 2, 165, 329, 2, 166, 331, 2, 167, 333, 2, 168, 335, 2, 169, 337, 2, 170, 339, 2, 171, 341, 2, 172, 343, 2, 173, 345, 2, 174, 347, 2, 175, 349, 2, 176, 351, 2, 177, 353, 2, 178, 355, 2, 179, 357, 2, 180, 359, 2, 181, 361, 2, 182, 363, 2, 183, 365, 2, 184, 367, 2, 185, 369, 2, 186, 371, 2, 187, 373, 2, 188, 375, 2, 189, 377, 2, 190, 379, 2, 191, 381, 2, 192, 383, 2, 193, 385, 2, 194, 387, 2, 195, 389, 2, 196, 391, 2, 197, 393, 2, 198, 395, 2, 199, 397, 2, 200, 399, 2, 201, 401, 2, 202, 403, 2, 203, 405, 2, 204, 407, 2, 205, 409, 2, 206, 411, 2, 207, 413, 2, 208, 415, 2, 209, 417, 2, 210, 419, 2, 211, 421, 2, 212, 423, 2, 213, 425, 2, 214, 427, 2, 215, 429, 2, 216, 431, 2, 217, 433, 2, 218, 435, 2, 219, 437, 2, 220, 439, 2, 221, 441, 2, 222, 443, 2, 223, 445, 2, 224, 447, 2, 225, 449, 2, 226, 451, 2, 227, 453, 2, 228, 455, 2, 229, 457, 2, 230, 459, 2, 231, 461, 2, 232, 463, 2, 233, 465, 2, 234, 467, 2, 235, 469, 2, 236, 471, 2, 237, 473, 2, 238, 475, 2, 239, 477, 2, 240, 479, 2, 241, 481, 2, 242, 483, 2, 243, 485, 2, 244, 487, 2, 245, 489, 2, 246, 491, 2, 247, 493, 2, 248, 495, 2, 249, 497, 2, 250, 499, 2, 251, 501, 2, 252, 503, 2, 253, 505, 2, 254, 507, 2, 255, 509, 2, 256, 511, 2, 257, 513, 2, 258, 515, 2, 259, 517, 2, 260, 519, 2, 261, 521, 2, 262, 523, 2, 263, 525, 2, 264, 527, 2, 265, 529, 2, 266, 531, 2, 267, 533, 2, 268, 535, 2, 269, 537, 2, 270, 539, 2, 271, 541, 2, 272, 543, 2, 273, 545, 2, 274, 547, 2, 275, 549, 2, 276, 551, 2, 277, 553, 2, 278, 555, 2, 279, 557, 2, 280, 559, 2, 281, 561, 2, 282, 563, 2, 283, 565, 2, 284, 567, 2, 285, 569, 2, 286, 571, 2, 287, 573, 2, 288, 575, 2, 289, 577, 2, 290, 579, 2, 291, 581, 2, 292, 583, 2, 293, 585, 2, 294, 587, 2, 295, 589, 2, 296, 591, 2, 297, 593, 2, 298, 595, 2, 299, 597, 2, 300, 599, 2, 301, 601, 2, 302, 603, 2, 303, 605, 2, 304, 607, 2, 305, 609, 2, 306, 611, 2, 307, 613, 2, 308, 615, 2, 309, 617, 2, 310, 619, 2, 311, 621, 2, 312, 623, 2, 313, 625, 2, 314, 627, 2, 315, 629, 2, 316, 631, 2, 317, 633, 2, 318, 635, 2, 319, 637, 2, 320, 639, 2, 321, 641, 2, 322, 643, 2, 323, 645, 2, 324, 647, 2, 325, 649, 2, 326, 651, 2, 327, 653, 2, 328, 655, 2, 329, 657, 2, 330, 659, 2, 331, 661, 2, 332, 663, 2, 333, 665, 2, 334, 667, 2, 335, 669, 2, 336, 671, 2, 337, 673, 2, 338, 675, 2, 339, 677, 2, 340, 679, 2, 341, 681, 2, 342, 683, 2, 343, 685, 2, 344, 687, 2, 345, 689, 2, 346, 691, 2, 347, 693, 2, 348, 695, 2, 349, 697, 2, 350, 699, 2, 351, 701, 2, 352, 703, 2, 353, 705, 2, 354, 707, 2, 355, 709, 2, 356, 711, 2, 357, 713, 2, 358, 715, 2, 359, 717, 2, 360, 719, 2, 361, 721, 2, 362, 723, 2, 363, 725, 2, 364, 727, 2, 365, 729, 2, 366, 731, 2, 367, 733, 2, 368, 735, 2, 369, 737, 2, 370, 739, 2, 371, 741, 2, 372, 743, 2, 373, 745, 2, 374, 747, 2, 375, 749, 2, 376, 751, 2, 377, 753, 2, 378, 755, 2, 379, 757, 2, 380, 759, 2, 381, 761, 2, 382, 763, 2, 383, 765, 2, 384, 767, 2, 385, 769, 2, 386, 771, 2, 387, 773, 2, 388, 775, 2, 389, 777, 2, 390, 779, 2, 391, 781, 2, 392, 783, 2, 393, 785, 2, 394, 787, 2, 395, 789, 2, 396, 791, 2, 397, 793, 2, 398, 795, 2, 399, 797, 2, 400, 799, 2, 401, 801, 2, 402, 803, 2, 403, 805, 2, 404, 807, 2, 405, 809, 2, 406, 811, 2, 407, 813, 2, 408, 815, 2, 409, 817, 2, 410, 819, 2, 411, 821, 2, 412, 823, 2, 413, 825, 2, 414, 827, 2, 415, 829, 2, 416, 831, 2, 417, 833, 2, 418, 835, 2, 419, 837, 2, 420, 839, 2, 421, 841, 2, 422, 843, 2, 423, 845, 2, 424, 847, 2, 425, 849, 2, 426, 851, 2, 427, 853, 2, 428, 855, 2, 429, 857, 2, 430, 859, 2, 431, 861, 2, 432, 863, 2, 433, 865, 2, 434, 867, 2, 435, 869, 2, 436, 871, 2, 437, 873, 2, 438, 875, 2, 439, 877, 2, 440, 879, 2, 441, 881, 2, 442, 883, 2, 443, 885, 2, 444, 887, 2, 445, 889, 2, 446, 891, 2, 447, 893, 2, 448, 895, 2, 449, 897, 2, 450, 899, 2, 451, 901, 2, 452, 903, 2, 453, 905, 2, 454, 907, 2, 455, 909, 2, 456, 911, 2, 457, 913, 2, 458, 915, 2, 459, 917, 2, 460, 919, 2, 461, 921, 2, 462, 923, 2, 463, 925, 2, 464, 927, 2, 465, 929, 2, 466, 931, 2, 467, 933, 2, 468, 935, 2, 469, 937, 2, 470, 939, 2, 471, 941, 2, 472, 943, 2, 473, 945, 2, 474, 947, 2, 475, 949, 2, 476, 951, 2, 477, 953, 2, 478, 955, 2, 479, 957, 2, 480, 959, 2, 481, 961, 2, 482, 963, 2, 483, 965, 2, 484, 967, 2, 485, 969, 2, 486, 971, 2, 487, 973, 2, 488, 975, 2, 489, 977, 2, 490, 979, 2, 491, 981, 2, 492, 983, 2, 493, 985, 2, 494, 987, 2, 495, 989, 2, 496, 991, 2, 497, 993, 2, 498, 995, 2, 499, 997, 2, 500, 999, 2, 501, 1001, 2, 502, 1003, 2, 503, 1005, 2, 504, 1007, 2, 505, 1009, 2, 506, 1011, 2, 507, 1013, 2, 508, 1015, 2, 509, 1017, 2, 510, 1019, 2, 511, 1021, 2, 512, 1023, 2, 513, 1025, 2, 514, 1027, 2, 515, 1029, 2, 516, 1031, 2, 517, 1033, 2, 518, 1035, 2, 519, 1037, 2, 520, 1039, 2, 521, 1041, 2, 522, 1043, 2, 523, 1045, 2, 524, 1047, 2, 525, 1049, 2, 526, 1051, 2, 527, 1053, 2, 528, 1055, 2, 529, 1057, 2, 530, 1059, 2, 531, 1061, 2, 532, 1063, 2, 533, 1065, 2, 534, 1067, 2, 535, 1069, 2, 536, 1071, 2, 537, 1073, 2, 538, 1075, 2, 539, 1077, 2, 540, 1079, 2, 541, 1081, 2, 542, 1083, 2, 543, 1085, 2, 544, 1087, 2, 545, 1089, 2, 546, 1091, 2, 547, 1093, 2, 548, 1095, 2, 549, 1097, 2, 550, 1099, 2, 551, 1101, 2, 552, 1103, 2, 553, 1105, 2, 554, 1107, 2, 555, 1109, 2, 556, 1111, 2, 557, 1113, 2, 558, 1115, 2, 559, 1117, 2, 560, 1119, 2, 561, 1121, 2, 562, 1123, 2, 563, 1125, 2, 564, 1127, 2, 565, 1129, 2, 566, 1131, 2, 567, 1133, 2, 568, 1135, 2, 569, 1137, 2, 570, 1139, 2, 571, 1141, 2, 572, 1143, 2, 573, 1145, 2, 574, 1147, 2, 575, 1149, 2, 576, 1151, 2, 577, 1153, 2, 578, 1155, 2, 579, 1157, 2, 580, 1159, 2, 581, 1161, 2, 582, 1163, 2, 583, 1165, 2, 584, 1167, 2, 585, 1169, 2, 586, 1171, 2, 587, 1173, 2, 588, 1175, 2, 589, 1177, 2, 590, 1179, 2, 591, 1181, 2, 592, 1183, 2, 593, 1185, 2, 594, 1187, 2, 595, 1189, 2, 596, 1191, 2, 597, 1193, 2, 598, 1195, 2, 599, 1197, 2, 600, 1199, 2, 601, 1201, 2, 602, 1203, 2, 603, 1205, 2, 604, 1207, 2, 605, 1209, 2, 606, 1211, 2, 607, 1213, 2, 608, 1215, 2, 609, 1217, 2, 610, 1219, 2, 611, 1221, 2, 612, 1223, 2, 613, 1225, 2, 614, 1227, 2, 615, 1229, 2, 616, 1231, 2, 617, 1233, 2, 618, 1235, 2, 619, 1237, 2, 620, 1239, 2, 621, 1241, 2, 622, 1243, 2, 623, 1245, 2, 624, 1247, 2, 625, 1249, 2, 626, 1251, 2, 627, 1253, 2, 628, 1255, 2, 629, 1257, 2, 630, 1259, 2, 631, 1261, 2, 632, 1263, 2, 633, 1265, 2, 634, 1267, 2, 635, 1269, 2, 636, 1271, 2, 637, 1273, 2, 638, 1275, 2, 639, 1277, 2, 640, 1279, 2, 641, 1281, 2, 642, 1283, 2, 643, 1285, 2, 644, 1287, 2, 645, 1289, 2, 646, 1291, 2, 647, 1293, 2, 648, 1295, 2, 649, 1297, 2, 650, 1299, 2, 651, 1301, 2, 652, 1303, 2, 653, 1305, 2, 654, 1307, 2, 655, 1309, 2, 656, 1311, 2, 657, 1313, 2, 658, 1315, 2, 659, 1317, 2, 660, 1319, 2, 661, 1321, 2, 662, 1323, 2, 663, 1325, 2, 664, 1327, 2, 665, 1329, 2, 666, 1331, 2, 667, 1333, 2, 668, 1335, 2, 669, 1337, 2, 670, 1339, 2, 671, 1341, 2, 672, 1343, 2, 673, 1345, 2, 674, 1347, 2, 675, 1349, 2, 676, 1351, 2, 677, 1353, 2, 678, 1355, 2, 679, 1357, 2, 680, 1359, 2, 681, 1361, 2, 682, 1363, 2, 683, 1365, 2, 684, 1367, 2, 685, 1369, 2, 686, 1371, 2, 687, 1373, 2, 688, 1375, 2, 689, 1377, 2, 690, 1379, 2, 691, 1381, 2, 692, 1383, 2, 693, 1385, 2, 694, 1387, 2, 695, 1389, 2, 696, 1391, 2, 697, 1393, 2, 698, 1395, 2, 699, 1397, 2, 700, 1399, 2, 701, 1401, 2, 702, 1403, 2, 703, 1405, 2, 704, 1407, 2, 705, 1409, 2, 706, 1411, 2, 707, 1413, 2, 708, 1415, 2, 709, 1417, 2, 710, 1419, 2, 711, 1421, 2, 712, 1423, 2, 713, 1425, 2, 714, 1427, 2, 715, 1429, 2, 716, 1431, 2, 717, 1433, 2, 718, 1435, 2, 719, 1437, 2, 720, 1439, 2, 721, 1441, 2, 722, 1443, 2, 723, 1445, 2, 724, 1447, 2, 725, 1449, 2, 726, 1451, 2, 727, 1453, 2, 728, 1455, 2, 729, 1457, 2, 730, 1459, 2, 731, 1461, 2, 732, 1463, 2, 733, 1465, 2, 734, 1467, 2, 735, 1469, 2, 736, 1471, 2, 737, 1473, 2, 738, 1475, 2, 739, 1477, 2, 740, 1479, 2, 741, 1481, 2, 742, 1483, 2, 743, 1485, 2, 744, 1487, 2, 745, 1489, 2, 746, 1491, 2, 747, 1493, 2, 748, 1495, 2, 749, 1497, 2, 750, 1499, 2, 751, 1501, 2, 752, 1503, 2, 753, 1505, 2, 754, 1507, 2, 755, 1509, 2, 756, 1511, 2, 757, 1513, 2, 758, 1515, 2, 759, 1517, 2, 760, 1519, 2, 761, 1521, 2, 762, 1523, 2, 763, 1525, 2, 764, 1527, 2, 765, 1529, 2, 766, 1531, 2, 767, 1533, 2, 768, 1535, 2, 769, 1537, 2, 770, 1539, 2, 771, 1541, 2, 772, 1543, 2, 773, 1545, 2, 774, 1547, 2, 775, 1549, 2, 776, 1551, 2, 777, 1553, 2, 778, 1555, 2, 779, 1557, 2, 780, 1559, 2, 781, 1561, 2, 782, 1563, 2, 783, 1565, 2, 784, 1567, 2, 785, 1569, 2, 786, 1571, 2, 787, 1573, 2, 788, 1575, 2, 789, 1577, 2, 790, 1579, 2, 791, 1581, 2, 792, 1583, 2, 793, 1585, 2, 794, 1587, 2, 795, 1589, 2, 796, 1591, 2, 797, 1593, 2, 798, 1595, 2, 799, 1597, 2, 800, 1599, 2, 801, 1601, 2, 802, 1603, 2, 803, 1605, 2, 804, 1607, 2, 805, 1609, 2, 806, 1611, 2, 807, 1613, 2, 808, 1615, 2, 809, 1617, 2, 810, 1619, 2, 811, 1621, 2, 812, 1623, 2, 813, 1625, 2, 814, 1627, 2, 815, 1629, 2, 816, 1631, 2, 817, 1633, 2, 818, 1635, 2, 819, 1637, 2, 820, 1639, 2, 821, 1641, 2, 822, 1643, 2, 823, 1645, 2, 824, 1647, 2, 825, 1649, 2, 826, 1651, 2, 827, 1653, 2, 828, 1655, 2, 829, 1657, 2, 830, 1659, 2, 831, 1661, 2, 832, 1663, 2, 833, 1665, 2, 834, 1667, 2, 835, 1669, 2, 836, 1671, 2, 837, 1673, 2, 838, 1675, 2, 839, 1677, 2, 840, 1679, 2, 841, 1681, 2, 842, 1683, 2, 843, 1685, 2, 844, 1687, 2, 845, 1689, 2, 846, 1691, 2, 847, 1693, 2, 848, 1695, 2, 849, 1697, 2, 850, 1699, 2, 851, 1701, 2, 852, 1703, 2, 853, 1705, 2, 854, 1707, 2, 855, 1709, 2, 856, 1711, 2, 857, 1713, 2, 858, 1715, 2, 859, 1717, 2, 860, 1719, 2, 861, 1721, 2, 862, 1723, 2, 863, 1725, 2, 864, 1727, 2, 865, 1729, 2, 866, 1731, 2, 867, 1733, 2, 868, 1735, 2, 869, 1737, 2, 870, 1739, 2, 871, 1741, 2, 872, 1743, 2, 873, 1745, 2, 874, 1747, 2, 875, 1749, 2, 876, 1751, 2, 877, 1753, 2, 878, 1755, 2, 879, 1757, 2, 880, 1759, 2, 2, 1761, 2, 881, 1763, 2, 882, 1765, 2, 883, 1767, 2, 884, 1769, 2, 885, 1771, 2, 886, 1773, 2, 887, 1775, 2, 888, 1777, 2, 889, 1779, 2, 890, 1781, 2, 891, 1783, 2, 892, 1785, 2, 893, 1787, 2, 894, 1789, 2, 895, 1791, 2, 896, 1793, 2, 897, 1795, 2, 2, 1797, 2, 2, 1799, 2, 2, 1801, 2, 2, 1803, 2, 2, 1805, 2, 2, 1807, 2, 2, 1809, 2, 2, 1811, 2, 2, 1813, 2, 2, 1815, 2, 898, 3, 2, 18, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 11, 11, 34, 34, 4, 2, 12, 12, 15, 15, 6, 2, 73, 73, 77, 77, 79, 79, 86, 86, 8, 2, 38, 38, 48, 48, 50, 59, 67, 92, 97, 97, 130, 1, 4, 2, 45, 45, 47, 47, 7, 2, 38, 38, 50, 59, 67, 92, 97, 97, 130, 1, 6, 2, 38, 38, 67, 92, 97, 97, 130, 1, 4, 2, 36, 36, 94, 94, 4, 2, 41, 41, 94, 94, 3, 2, 98, 98, 4, 2, 50, 59, 67, 72, 3, 2, 50, 59, 3, 2, 50, 51, 4, 2, 48, 48, 50, 59, 4, 2, 50, 60, 67, 72, 2, 10513, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 519, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 535, 3, 2, 2, 2, 2, 537, 3, 2, 2, 2, 2, 539, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 545, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 2, 559, 3, 2, 2, 2, 2, 561, 3, 2, 2, 2, 2, 563, 3, 2, 2, 2, 2, 565, 3, 2, 2, 2, 2, 567, 3, 2, 2, 2, 2, 569, 3, 2, 2, 2, 2, 571, 3, 2, 2, 2, 2, 573, 3, 2, 2, 2, 2, 575, 3, 2, 2, 2, 2, 577, 3, 2, 2, 2, 2, 579, 3, 2, 2, 2, 2, 581, 3, 2, 2, 2, 2, 583, 3, 2, 2, 2, 2, 585, 3, 2, 2, 2, 2, 587, 3, 2, 2, 2, 2, 589, 3, 2, 2, 2, 2, 591, 3, 2, 2, 2, 2, 593, 3, 2, 2, 2, 2, 595, 3, 2, 2, 2, 2, 597, 3, 2, 2, 2, 2, 599, 3, 2, 2, 2, 2, 601, 3, 2, 2, 2, 2, 603, 3, 2, 2, 2, 2, 605, 3, 2, 2, 2, 2, 607, 3, 2, 2, 2, 2, 609, 3, 2, 2, 2, 2, 611, 3, 2, 2, 2, 2, 613, 3, 2, 2, 2, 2, 615, 3, 2, 2, 2, 2, 617, 3, 2, 2, 2, 2, 619, 3, 2, 2, 2, 2, 621, 3, 2, 2, 2, 2, 623, 3, 2, 2, 2, 2, 625, 3, 2, 2, 2, 2, 627, 3, 2, 2, 2, 2, 629, 3, 2, 2, 2, 2, 631, 3, 2, 2, 2, 2, 633, 3, 2, 2, 2, 2, 635, 3, 2, 2, 2, 2, 637, 3, 2, 2, 2, 2, 639, 3, 2, 2, 2, 2, 641, 3, 2, 2, 2, 2, 643, 3, 2, 2, 2, 2, 645, 3, 2, 2, 2, 2, 647, 3, 2, 2, 2, 2, 649, 3, 2, 2, 2, 2, 651, 3, 2, 2, 2, 2, 653, 3, 2, 2, 2, 2, 655, 3, 2, 2, 2, 2, 657, 3, 2, 2, 2, 2, 659, 3, 2, 2, 2, 2, 661, 3, 2, 2, 2, 2, 663, 3, 2, 2, 2, 2, 665, 3, 2, 2, 2, 2, 667, 3, 2, 2, 2, 2, 669, 3, 2, 2, 2, 2, 671, 3, 2, 2, 2, 2, 673, 3, 2, 2, 2, 2, 675, 3, 2, 2, 2, 2, 677, 3, 2, 2, 2, 2, 679, 3, 2, 2, 2, 2, 681, 3, 2, 2, 2, 2, 683, 3, 2, 2, 2, 2, 685, 3, 2, 2, 2, 2, 687, 3, 2, 2, 2, 2, 689, 3, 2, 2, 2, 2, 691, 3, 2, 2, 2, 2, 693, 3, 2, 2, 2, 2, 695, 3, 2, 2, 2, 2, 697, 3, 2, 2, 2, 2, 699, 3, 2, 2, 2, 2, 701, 3, 2, 2, 2, 2, 703, 3, 2, 2, 2, 2, 705, 3, 2, 2, 2, 2, 707, 3, 2, 2, 2, 2, 709, 3, 2, 2, 2, 2, 711, 3, 2, 2, 2, 2, 713, 3, 2, 2, 2, 2, 715, 3, 2, 2, 2, 2, 717, 3, 2, 2, 2, 2, 719, 3, 2, 2, 2, 2, 721, 3, 2, 2, 2, 2, 723, 3, 2, 2, 2, 2, 725, 3, 2, 2, 2, 2, 727, 3, 2, 2, 2, 2, 729, 3, 2, 2, 2, 2, 731, 3, 2, 2, 2, 2, 733, 3, 2, 2, 2, 2, 735, 3, 2, 2, 2, 2, 737, 3, 2, 2, 2, 2, 739, 3, 2, 2, 2, 2, 741, 3, 2, 2, 2, 2, 743, 3, 2, 2, 2, 2, 745, 3, 2, 2, 2, 2, 747, 3, 2, 2, 2, 2, 749, 3, 2, 2, 2, 2, 751, 3, 2, 2, 2, 2, 753, 3, 2, 2, 2, 2, 755, 3, 2, 2, 2, 2, 757, 3, 2, 2, 2, 2, 759, 3, 2, 2, 2, 2, 761, 3, 2, 2, 2, 2, 763, 3, 2, 2, 2, 2, 765, 3, 2, 2, 2, 2, 767, 3, 2, 2, 2, 2, 769, 3, 2, 2, 2, 2, 771, 3, 2, 2, 2, 2, 773, 3, 2, 2, 2, 2, 775, 3, 2, 2, 2, 2, 777, 3, 2, 2, 2, 2, 779, 3, 2, 2, 2, 2, 781, 3, 2, 2, 2, 2, 783, 3, 2, 2, 2, 2, 785, 3, 2, 2, 2, 2, 787, 3, 2, 2, 2, 2, 789, 3, 2, 2, 2, 2, 791, 3, 2, 2, 2, 2, 793, 3, 2, 2, 2, 2, 795, 3, 2, 2, 2, 2, 797, 3, 2, 2, 2, 2, 799, 3, 2, 2, 2, 2, 801, 3, 2, 2, 2, 2, 803, 3, 2, 2, 2, 2, 805, 3, 2, 2, 2, 2, 807, 3, 2, 2, 2, 2, 809, 3, 2, 2, 2, 2, 811, 3, 2, 2, 2, 2, 813, 3, 2, 2, 2, 2, 815, 3, 2, 2, 2, 2, 817, 3, 2, 2, 2, 2, 819, 3, 2, 2, 2, 2, 821, 3, 2, 2, 2, 2, 823, 3, 2, 2, 2, 2, 825, 3, 2, 2, 2, 2, 827, 3, 2, 2, 2, 2, 829, 3, 2, 2, 2, 2, 831, 3, 2, 2, 2, 2, 833, 3, 2, 2, 2, 2, 835, 3, 2, 2, 2, 2, 837, 3, 2, 2, 2, 2, 839, 3, 2, 2, 2, 2, 841, 3, 2, 2, 2, 2, 843, 3, 2, 2, 2, 2, 845, 3, 2, 2, 2, 2, 847, 3, 2, 2, 2, 2, 849, 3, 2, 2, 2, 2, 851, 3, 2, 2, 2, 2, 853, 3, 2, 2, 2, 2, 855, 3, 2, 2, 2, 2, 857, 3, 2, 2, 2, 2, 859, 3, 2, 2, 2, 2, 861, 3, 2, 2, 2, 2, 863, 3, 2, 2, 2, 2, 865, 3, 2, 2, 2, 2, 867, 3, 2, 2, 2, 2, 869, 3, 2, 2, 2, 2, 871, 3, 2, 2, 2, 2, 873, 3, 2, 2, 2, 2, 875, 3, 2, 2, 2, 2, 877, 3, 2, 2, 2, 2, 879, 3, 2, 2, 2, 2, 881, 3, 2, 2, 2, 2, 883, 3, 2, 2, 2, 2, 885, 3, 2, 2, 2, 2, 887, 3, 2, 2, 2, 2, 889, 3, 2, 2, 2, 2, 891, 3, 2, 2, 2, 2, 893, 3, 2, 2, 2, 2, 895, 3, 2, 2, 2, 2, 897, 3, 2, 2, 2, 2, 899, 3, 2, 2, 2, 2, 901, 3, 2, 2, 2, 2, 903, 3, 2, 2, 2, 2, 905, 3, 2, 2, 2, 2, 907, 3, 2, 2, 2, 2, 909, 3, 2, 2, 2, 2, 911, 3, 2, 2, 2, 2, 913, 3, 2, 2, 2, 2, 915, 3, 2, 2, 2, 2, 917, 3, 2, 2, 2, 2, 919, 3, 2, 2, 2, 2, 921, 3, 2, 2, 2, 2, 923, 3, 2, 2, 2, 2, 925, 3, 2, 2, 2, 2, 927, 3, 2, 2, 2, 2, 929, 3, 2, 2, 2, 2, 931, 3, 2, 2, 2, 2, 933, 3, 2, 2, 2, 2, 935, 3, 2, 2, 2, 2, 937, 3, 2, 2, 2, 2, 939, 3, 2, 2, 2, 2, 941, 3, 2, 2, 2, 2, 943, 3, 2, 2, 2, 2, 945, 3, 2, 2, 2, 2, 947, 3, 2, 2, 2, 2, 949, 3, 2, 2, 2, 2, 951, 3, 2, 2, 2, 2, 953, 3, 2, 2, 2, 2, 955, 3, 2, 2, 2, 2, 957, 3, 2, 2, 2, 2, 959, 3, 2, 2, 2, 2, 961, 3, 2, 2, 2, 2, 963, 3, 2, 2, 2, 2, 965, 3, 2, 2, 2, 2, 967, 3, 2, 2, 2, 2, 969, 3, 2, 2, 2, 2, 971, 3, 2, 2, 2, 2, 973, 3, 2, 2, 2, 2, 975, 3, 2, 2, 2, 2, 977, 3, 2, 2, 2, 2, 979, 3, 2, 2, 2, 2, 981, 3, 2, 2, 2, 2, 983, 3, 2, 2, 2, 2, 985, 3, 2, 2, 2, 2, 987, 3, 2, 2, 2, 2, 989, 3, 2, 2, 2, 2, 991, 3, 2, 2, 2, 2, 993, 3, 2, 2, 2, 2, 995, 3, 2, 2, 2, 2, 997, 3, 2, 2, 2, 2, 999, 3, 2, 2, 2, 2, 1001, 3, 2, 2, 2, 2, 1003, 3, 2, 2, 2, 2, 1005, 3, 2, 2, 2, 2, 1007, 3, 2, 2, 2, 2, 1009, 3, 2, 2, 2, 2, 1011, 3, 2, 2, 2, 2, 1013, 3, 2, 2, 2, 2, 1015, 3, 2, 2, 2, 2, 1017, 3, 2, 2, 2, 2, 1019, 3, 2, 2, 2, 2, 1021, 3, 2, 2, 2, 2, 1023, 3, 2, 2, 2, 2, 1025, 3, 2, 2, 2, 2, 1027, 3, 2, 2, 2, 2, 1029, 3, 2, 2, 2, 2, 1031, 3, 2, 2, 2, 2, 1033, 3, 2, 2, 2, 2, 1035, 3, 2, 2, 2, 2, 1037, 3, 2, 2, 2, 2, 1039, 3, 2, 2, 2, 2, 1041, 3, 2, 2, 2, 2, 1043, 3, 2, 2, 2, 2, 1045, 3, 2, 2, 2, 2, 1047, 3, 2, 2, 2, 2, 1049, 3, 2, 2, 2, 2, 1051, 3, 2, 2, 2, 2, 1053, 3, 2, 2, 2, 2, 1055, 3, 2, 2, 2, 2, 1057, 3, 2, 2, 2, 2, 1059, 3, 2, 2, 2, 2, 1061, 3, 2, 2, 2, 2, 1063, 3, 2, 2, 2, 2, 1065, 3, 2, 2, 2, 2, 1067, 3, 2, 2, 2, 2, 1069, 3, 2, 2, 2, 2, 1071, 3, 2, 2, 2, 2, 1073, 3, 2, 2, 2, 2, 1075, 3, 2, 2, 2, 2, 1077, 3, 2, 2, 2, 2, 1079, 3, 2, 2, 2, 2, 1081, 3, 2, 2, 2, 2, 1083, 3, 2, 2, 2, 2, 1085, 3, 2, 2, 2, 2, 1087, 3, 2, 2, 2, 2, 1089, 3, 2, 2, 2, 2, 1091, 3, 2, 2, 2, 2, 1093, 3, 2, 2, 2, 2, 1095, 3, 2, 2, 2, 2, 1097, 3, 2, 2, 2, 2, 1099, 3, 2, 2, 2, 2, 1101, 3, 2, 2, 2, 2, 1103, 3, 2, 2, 2, 2, 1105, 3, 2, 2, 2, 2, 1107, 3, 2, 2, 2, 2, 1109, 3, 2, 2, 2, 2, 1111, 3, 2, 2, 2, 2, 1113, 3, 2, 2, 2, 2, 1115, 3, 2, 2, 2, 2, 1117, 3, 2, 2, 2, 2, 1119, 3, 2, 2, 2, 2, 1121, 3, 2, 2, 2, 2, 1123, 3, 2, 2, 2, 2, 1125, 3, 2, 2, 2, 2, 1127, 3, 2, 2, 2, 2, 1129, 3, 2, 2, 2, 2, 1131, 3, 2, 2, 2, 2, 1133, 3, 2, 2, 2, 2, 1135, 3, 2, 2, 2, 2, 1137, 3, 2, 2, 2, 2, 1139, 3, 2, 2, 2, 2, 1141, 3, 2, 2, 2, 2, 1143, 3, 2, 2, 2, 2, 1145, 3, 2, 2, 2, 2, 1147, 3, 2, 2, 2, 2, 1149, 3, 2, 2, 2, 2, 1151, 3, 2, 2, 2, 2, 1153, 3, 2, 2, 2, 2, 1155, 3, 2, 2, 2, 2, 1157, 3, 2, 2, 2, 2, 1159, 3, 2, 2, 2, 2, 1161, 3, 2, 2, 2, 2, 1163, 3, 2, 2, 2, 2, 1165, 3, 2, 2, 2, 2, 1167, 3, 2, 2, 2, 2, 1169, 3, 2, 2, 2, 2, 1171, 3, 2, 2, 2, 2, 1173, 3, 2, 2, 2, 2, 1175, 3, 2, 2, 2, 2, 1177, 3, 2, 2, 2, 2, 1179, 3, 2, 2, 2, 2, 1181, 3, 2, 2, 2, 2, 1183, 3, 2, 2, 2, 2, 1185, 3, 2, 2, 2, 2, 1187, 3, 2, 2, 2, 2, 1189, 3, 2, 2, 2, 2, 1191, 3, 2, 2, 2, 2, 1193, 3, 2, 2, 2, 2, 1195, 3, 2, 2, 2, 2, 1197, 3, 2, 2, 2, 2, 1199, 3, 2, 2, 2, 2, 1201, 3, 2, 2, 2, 2, 1203, 3, 2, 2, 2, 2, 1205, 3, 2, 2, 2, 2, 1207, 3, 2, 2, 2, 2, 1209, 3, 2, 2, 2, 2, 1211, 3, 2, 2, 2, 2, 1213, 3, 2, 2, 2, 2, 1215, 3, 2, 2, 2, 2, 1217, 3, 2, 2, 2, 2, 1219, 3, 2, 2, 2, 2, 1221, 3, 2, 2, 2, 2, 1223, 3, 2, 2, 2, 2, 1225, 3, 2, 2, 2, 2, 1227, 3, 2, 2, 2, 2, 1229, 3, 2, 2, 2, 2, 1231, 3, 2, 2, 2, 2, 1233, 3, 2, 2, 2, 2, 1235, 3, 2, 2, 2, 2, 1237, 3, 2, 2, 2, 2, 1239, 3, 2, 2, 2, 2, 1241, 3, 2, 2, 2, 2, 1243, 3, 2, 2, 2, 2, 1245, 3, 2, 2, 2, 2, 1247, 3, 2, 2, 2, 2, 1249, 3, 2, 2, 2, 2, 1251, 3, 2, 2, 2, 2, 1253, 3, 2, 2, 2, 2, 1255, 3, 2, 2, 2, 2, 1257, 3, 2, 2, 2, 2, 1259, 3, 2, 2, 2, 2, 1261, 3, 2, 2, 2, 2, 1263, 3, 2, 2, 2, 2, 1265, 3, 2, 2, 2, 2, 1267, 3, 2, 2, 2, 2, 1269, 3, 2, 2, 2, 2, 1271, 3, 2, 2, 2, 2, 1273, 3, 2, 2, 2, 2, 1275, 3, 2, 2, 2, 2, 1277, 3, 2, 2, 2, 2, 1279, 3, 2, 2, 2, 2, 1281, 3, 2, 2, 2, 2, 1283, 3, 2, 2, 2, 2, 1285, 3, 2, 2, 2, 2, 1287, 3, 2, 2, 2, 2, 1289, 3, 2, 2, 2, 2, 1291, 3, 2, 2, 2, 2, 1293, 3, 2, 2, 2, 2, 1295, 3, 2, 2, 2, 2, 1297, 3, 2, 2, 2, 2, 1299, 3, 2, 2, 2, 2, 1301, 3, 2, 2, 2, 2, 1303, 3, 2, 2, 2, 2, 1305, 3, 2, 2, 2, 2, 1307, 3, 2, 2, 2, 2, 1309, 3, 2, 2, 2, 2, 1311, 3, 2, 2, 2, 2, 1313, 3, 2, 2, 2, 2, 1315, 3, 2, 2, 2, 2, 1317, 3, 2, 2, 2, 2, 1319, 3, 2, 2, 2, 2, 1321, 3, 2, 2, 2, 2, 1323, 3, 2, 2, 2, 2, 1325, 3, 2, 2, 2, 2, 1327, 3, 2, 2, 2, 2, 1329, 3, 2, 2, 2, 2, 1331, 3, 2, 2, 2, 2, 1333, 3, 2, 2, 2, 2, 1335, 3, 2, 2, 2, 2, 1337, 3, 2, 2, 2, 2, 1339, 3, 2, 2, 2, 2, 1341, 3, 2, 2, 2, 2, 1343, 3, 2, 2, 2, 2, 1345, 3, 2, 2, 2, 2, 1347, 3, 2, 2, 2, 2, 1349, 3, 2, 2, 2, 2, 1351, 3, 2, 2, 2, 2, 1353, 3, 2, 2, 2, 2, 1355, 3, 2, 2, 2, 2, 1357, 3, 2, 2, 2, 2, 1359, 3, 2, 2, 2, 2, 1361, 3, 2, 2, 2, 2, 1363, 3, 2, 2, 2, 2, 1365, 3, 2, 2, 2, 2, 1367, 3, 2, 2, 2, 2, 1369, 3, 2, 2, 2, 2, 1371, 3, 2, 2, 2, 2, 1373, 3, 2, 2, 2, 2, 1375, 3, 2, 2, 2, 2, 1377, 3, 2, 2, 2, 2, 1379, 3, 2, 2, 2, 2, 1381, 3, 2, 2, 2, 2, 1383, 3, 2, 2, 2, 2, 1385, 3, 2, 2, 2, 2, 1387, 3, 2, 2, 2, 2, 1389, 3, 2, 2, 2, 2, 1391, 3, 2, 2, 2, 2, 1393, 3, 2, 2, 2, 2, 1395, 3, 2, 2, 2, 2, 1397, 3, 2, 2, 2, 2, 1399, 3, 2, 2, 2, 2, 1401, 3, 2, 2, 2, 2, 1403, 3, 2, 2, 2, 2, 1405, 3, 2, 2, 2, 2, 1407, 3, 2, 2, 2, 2, 1409, 3, 2, 2, 2, 2, 1411, 3, 2, 2, 2, 2, 1413, 3, 2, 2, 2, 2, 1415, 3, 2, 2, 2, 2, 1417, 3, 2, 2, 2, 2, 1419, 3, 2, 2, 2, 2, 1421, 3, 2, 2, 2, 2, 1423, 3, 2, 2, 2, 2, 1425, 3, 2, 2, 2, 2, 1427, 3, 2, 2, 2, 2, 1429, 3, 2, 2, 2, 2, 1431, 3, 2, 2, 2, 2, 1433, 3, 2, 2, 2, 2, 1435, 3, 2, 2, 2, 2, 1437, 3, 2, 2, 2, 2, 1439, 3, 2, 2, 2, 2, 1441, 3, 2, 2, 2, 2, 1443, 3, 2, 2, 2, 2, 1445, 3, 2, 2, 2, 2, 1447, 3, 2, 2, 2, 2, 1449, 3, 2, 2, 2, 2, 1451, 3, 2, 2, 2, 2, 1453, 3, 2, 2, 2, 2, 1455, 3, 2, 2, 2, 2, 1457, 3, 2, 2, 2, 2, 1459, 3, 2, 2, 2, 2, 1461, 3, 2, 2, 2, 2, 1463, 3, 2, 2, 2, 2, 1465, 3, 2, 2, 2, 2, 1467, 3, 2, 2, 2, 2, 1469, 3, 2, 2, 2, 2, 1471, 3, 2, 2, 2, 2, 1473, 3, 2, 2, 2, 2, 1475, 3, 2, 2, 2, 2, 1477, 3, 2, 2, 2, 2, 1479, 3, 2, 2, 2, 2, 1481, 3, 2, 2, 2, 2, 1483, 3, 2, 2, 2, 2, 1485, 3, 2, 2, 2, 2, 1487, 3, 2, 2, 2, 2, 1489, 3, 2, 2, 2, 2, 1491, 3, 2, 2, 2, 2, 1493, 3, 2, 2, 2, 2, 1495, 3, 2, 2, 2, 2, 1497, 3, 2, 2, 2, 2, 1499, 3, 2, 2, 2, 2, 1501, 3, 2, 2, 2, 2, 1503, 3, 2, 2, 2, 2, 1505, 3, 2, 2, 2, 2, 1507, 3, 2, 2, 2, 2, 1509, 3, 2, 2, 2, 2, 1511, 3, 2, 2, 2, 2, 1513, 3, 2, 2, 2, 2, 1515, 3, 2, 2, 2, 2, 1517, 3, 2, 2, 2, 2, 1519, 3, 2, 2, 2, 2, 1521, 3, 2, 2, 2, 2, 1523, 3, 2, 2, 2, 2, 1525, 3, 2, 2, 2, 2, 1527, 3, 2, 2, 2, 2, 1529, 3, 2, 2, 2, 2, 1531, 3, 2, 2, 2, 2, 1533, 3, 2, 2, 2, 2, 1535, 3, 2, 2, 2, 2, 1537, 3, 2, 2, 2, 2, 1539, 3, 2, 2, 2, 2, 1541, 3, 2, 2, 2, 2, 1543, 3, 2, 2, 2, 2, 1545, 3, 2, 2, 2, 2, 1547, 3, 2, 2, 2, 2, 1549, 3, 2, 2, 2, 2, 1551, 3, 2, 2, 2, 2, 1553, 3, 2, 2, 2, 2, 1555, 3, 2, 2, 2, 2, 1557, 3, 2, 2, 2, 2, 1559, 3, 2, 2, 2, 2, 1561, 3, 2, 2, 2, 2, 1563, 3, 2, 2, 2, 2, 1565, 3, 2, 2, 2, 2, 1567, 3, 2, 2, 2, 2, 1569, 3, 2, 2, 2, 2, 1571, 3, 2, 2, 2, 2, 1573, 3, 2, 2, 2, 2, 1575, 3, 2, 2, 2, 2, 1577, 3, 2, 2, 2, 2, 1579, 3, 2, 2, 2, 2, 1581, 3, 2, 2, 2, 2, 1583, 3, 2, 2, 2, 2, 1585, 3, 2, 2, 2, 2, 1587, 3, 2, 2, 2, 2, 1589, 3, 2, 2, 2, 2, 1591, 3, 2, 2, 2, 2, 1593, 3, 2, 2, 2, 2, 1595, 3, 2, 2, 2, 2, 1597, 3, 2, 2, 2, 2, 1599, 3, 2, 2, 2, 2, 1601, 3, 2, 2, 2, 2, 1603, 3, 2, 2, 2, 2, 1605, 3, 2, 2, 2, 2, 1607, 3, 2, 2, 2, 2, 1609, 3, 2, 2, 2, 2, 1611, 3, 2, 2, 2, 2, 1613, 3, 2, 2, 2, 2, 1615, 3, 2, 2, 2, 2, 1617, 3, 2, 2, 2, 2, 1619, 3, 2, 2, 2, 2, 1621, 3, 2, 2, 2, 2, 1623, 3, 2, 2, 2, 2, 1625, 3, 2, 2, 2, 2, 1627, 3, 2, 2, 2, 2, 1629, 3, 2, 2, 2, 2, 1631, 3, 2, 2, 2, 2, 1633, 3, 2, 2, 2, 2, 1635, 3, 2, 2, 2, 2, 1637, 3, 2, 2, 2, 2, 1639, 3, 2, 2, 2, 2, 1641, 3, 2, 2, 2, 2, 1643, 3, 2, 2, 2, 2, 1645, 3, 2, 2, 2, 2, 1647, 3, 2, 2, 2, 2, 1649, 3, 2, 2, 2, 2, 1651, 3, 2, 2, 2, 2, 1653, 3, 2, 2, 2, 2, 1655, 3, 2, 2, 2, 2, 1657, 3, 2, 2, 2, 2, 1659, 3, 2, 2, 2, 2, 1661, 3, 2, 2, 2, 2, 1663, 3, 2, 2, 2, 2, 1665, 3, 2, 2, 2, 2, 1667, 3, 2, 2, 2, 2, 1669, 3, 2, 2, 2, 2, 1671, 3, 2, 2, 2, 2, 1673, 3, 2, 2, 2, 2, 1675, 3, 2, 2, 2, 2, 1677, 3, 2, 2, 2, 2, 1679, 3, 2, 2, 2, 2, 1681, 3, 2, 2, 2, 2, 1683, 3, 2, 2, 2, 2, 1685, 3, 2, 2, 2, 2, 1687, 3, 2, 2, 2, 2, 1689, 3, 2, 2, 2, 2, 1691, 3, 2, 2, 2, 2, 1693, 3, 2, 2, 2, 2, 1695, 3, 2, 2, 2, 2, 1697, 3, 2, 2, 2, 2, 1699, 3, 2, 2, 2, 2, 1701, 3, 2, 2, 2, 2, 1703, 3, 2, 2, 2, 2, 1705, 3, 2, 2, 2, 2, 1707, 3, 2, 2, 2, 2, 1709, 3, 2, 2, 2, 2, 1711, 3, 2, 2, 2, 2, 1713, 3, 2, 2, 2, 2, 1715, 3, 2, 2, 2, 2, 1717, 3, 2, 2, 2, 2, 1719, 3, 2, 2, 2, 2, 1721, 3, 2, 2, 2, 2, 1723, 3, 2, 2, 2, 2, 1725, 3, 2, 2, 2, 2, 1727, 3, 2, 2, 2, 2, 1729, 3, 2, 2, 2, 2, 1731, 3, 2, 2, 2, 2, 1733, 3, 2, 2, 2, 2, 1735, 3, 2, 2, 2, 2, 1737, 3, 2, 2, 2, 2, 1739, 3, 2, 2, 2, 2, 1741, 3, 2, 2, 2, 2, 1743, 3, 2, 2, 2, 2, 1745, 3, 2, 2, 2, 2, 1747, 3, 2, 2, 2, 2, 1749, 3, 2, 2, 2, 2, 1751, 3, 2, 2, 2, 2, 1753, 3, 2, 2, 2, 2, 1755, 3, 2, 2, 2, 2, 1757, 3, 2, 2, 2, 2, 1761, 3, 2, 2, 2, 2, 1763, 3, 2, 2, 2, 2, 1765, 3, 2, 2, 2, 2, 1767, 3, 2, 2, 2, 2, 1769, 3, 2, 2, 2, 2, 1771, 3, 2, 2, 2, 2, 1773, 3, 2, 2, 2, 2, 1775, 3, 2, 2, 2, 2, 1777, 3, 2, 2, 2, 2, 1779, 3, 2, 2, 2, 2, 1781, 3, 2, 2, 2, 2, 1783, 3, 2, 2, 2, 2, 1785, 3, 2, 2, 2, 2, 1787, 3, 2, 2, 2, 2, 1789, 3, 2, 2, 2, 2, 1791, 3, 2, 2, 2, 2, 1793, 3, 2, 2, 2, 2, 1815, 3, 2, 2, 2, 3, 1818, 3, 2, 2, 2, 5, 1824, 3, 2, 2, 2, 7, 1838, 3, 2, 2, 2, 9, 1887, 3, 2, 2, 2, 11, 1891, 3, 2, 2, 2, 13, 1898, 3, 2, 2, 2, 15, 1902, 3, 2, 2, 2, 17, 1906, 3, 2, 2, 2, 19, 1912, 3, 2, 2, 2, 21, 1919, 3, 2, 2, 2, 23, 1927, 3, 2, 2, 2, 25, 1931, 3, 2, 2, 2, 27, 1937, 3, 2, 2, 2, 29, 1940, 3, 2, 2, 2, 31, 1944, 3, 2, 2, 2, 33, 1954, 3, 2, 2, 2, 35, 1961, 3, 2, 2, 2, 37, 1969, 3, 2, 2, 2, 39, 1974, 3, 2, 2, 2, 41, 1982, 3, 2, 2, 2, 43, 1985, 3, 2, 2, 2, 45, 1990, 3, 2, 2, 2, 47, 1998, 3, 2, 2, 2, 49, 2003, 3, 2, 2, 2, 51, 2008, 3, 2, 2, 2, 53, 2015, 3, 2, 2, 2, 55, 2025, 3, 2, 2, 2, 57, 2031, 3, 2, 2, 2, 59, 2039, 3, 2, 2, 2, 61, 2046, 3, 2, 2, 2, 63, 2056, 3, 2, 2, 2, 65, 2067, 3, 2, 2, 2, 67, 2076, 3, 2, 2, 2, 69, 2084, 3, 2, 2, 2, 71, 2091, 3, 2, 2, 2, 73, 2097, 3, 2, 2, 2, 75, 2105, 3, 2, 2, 2, 77, 2118, 3, 2, 2, 2, 79, 2125, 3, 2, 2, 2, 81, 2134, 3, 2, 2, 2, 83, 2144, 3, 2, 2, 2, 85, 2152, 3, 2, 2, 2, 87, 2160, 3, 2, 2, 2, 89, 2168, 3, 2, 2, 2, 91, 2175, 3, 2, 2, 2, 93, 2180, 3, 2, 2, 2, 95, 2189, 3, 2, 2, 2, 97, 2203, 3, 2, 2, 2, 99, 2215, 3, 2, 2, 2, 101, 2224, 3, 2, 2, 2, 103, 2236, 3, 2, 2, 2, 105, 2241, 3, 2, 2, 2, 107, 2246, 3, 2, 2, 2, 109, 2251, 3, 2, 2, 2, 111, 2258, 3, 2, 2, 2, 113, 2264, 3, 2, 2, 2, 115, 2273, 3, 2, 2, 2, 117, 2282, 3, 2, 2, 2, 119, 2290, 3, 2, 2, 2, 121, 2297, 3, 2, 2, 2, 123, 2304, 3, 2, 2, 2, 125, 2309, 3, 2, 2, 2, 127, 2317, 3, 2, 2, 2, 129, 2323, 3, 2, 2, 2, 131, 2329, 3, 2, 2, 2, 133, 2333, 3, 2, 2, 2, 135, 2339, 3, 2, 2, 2, 137, 2347, 3, 2, 2, 2, 139, 2352, 3, 2, 2, 2, 141, 2361, 3, 2, 2, 2, 143, 2370, 3, 2, 2, 2, 145, 2380, 3, 2, 2, 2, 147, 2384, 3, 2, 2, 2, 149, 2390, 3, 2, 2, 2, 151, 2396, 3, 2, 2, 2, 153, 2403, 3, 2, 2, 2, 155, 2417, 3, 2, 2, 2, 157, 2427, 3, 2, 2, 2, 159, 2430, 3, 2, 2, 2, 161, 2437, 3, 2, 2, 2, 163, 2440, 3, 2, 2, 2, 165, 2449, 3, 2, 2, 2, 167, 2455, 3, 2, 2, 2, 169, 2462, 3, 2, 2, 2, 171, 2468, 3, 2, 2, 2, 173, 2474, 3, 2, 2, 2, 175, 2481, 3, 2, 2, 2, 177, 2490, 3, 2, 2, 2, 179, 2495, 3, 2, 2, 2, 181, 2498, 3, 2, 2, 2, 183, 2506, 3, 2, 2, 2, 185, 2511, 3, 2, 2, 2, 187, 2515, 3, 2, 2, 2, 189, 2520, 3, 2, 2, 2, 191, 2525, 3, 2, 2, 2, 193, 2533, 3, 2, 2, 2, 195, 2541, 3, 2, 2, 2, 197, 2547, 3, 2, 2, 2, 199, 2552, 3, 2, 2, 2, 201, 2557, 3, 2, 2, 2, 203, 2563, 3, 2, 2, 2, 205, 2570, 3, 2, 2, 2, 207, 2576, 3, 2, 2, 2, 209, 2581, 3, 2, 2, 2, 211, 2586, 3, 2, 2, 2, 213, 2593, 3, 2, 2, 2, 215, 2598, 3, 2, 2, 2, 217, 2611, 3, 2, 2, 2, 219, 2623, 3, 2, 2, 2, 221, 2653, 3, 2, 2, 2, 223, 2659, 3, 2, 2, 2, 225, 2668, 3, 2, 2, 2, 227, 2677, 3, 2, 2, 2, 229, 2685, 3, 2, 2, 2, 231, 2689, 3, 2, 2, 2, 233, 2708, 3, 2, 2, 2, 235, 2713, 3, 2, 2, 2, 237, 2720, 3, 2, 2, 2, 239, 2727, 3, 2, 2, 2, 241, 2730, 3, 2, 2, 2, 243, 2739, 3, 2, 2, 2, 245, 2746, 3, 2, 2, 2, 247, 2755, 3, 2, 2, 2, 249, 2766, 3, 2, 2, 2, 251, 2769, 3, 2, 2, 2, 253, 2775, 3, 2, 2, 2, 255, 2779, 3, 2, 2, 2, 257, 2785, 3, 2, 2, 2, 259, 2793, 3, 2, 2, 2, 261, 2798, 3, 2, 2, 2, 263, 2808, 3, 2, 2, 2, 265, 2816, 3, 2, 2, 2, 267, 2826, 3, 2, 2, 2, 269, 2832, 3, 2, 2, 2, 271, 2838, 3, 2, 2, 2, 273, 2843, 3, 2, 2, 2, 275, 2849, 3, 2, 2, 2, 277, 2859, 3, 2, 2, 2, 279, 2870, 3, 2, 2, 2, 281, 2877, 3, 2, 2, 2, 283, 2885, 3, 2, 2, 2, 285, 2892, 3, 2, 2, 2, 287, 2899, 3, 2, 2, 2, 289, 2907, 3, 2, 2, 2, 291, 2915, 3, 2, 2, 2, 293, 2924, 3, 2, 2, 2, 295, 2933, 3, 2, 2, 2, 297, 2940, 3, 2, 2, 2, 299, 2947, 3, 2, 2, 2, 301, 2954, 3, 2, 2, 2, 303, 2960, 3, 2, 2, 2, 305, 2966, 3, 2, 2, 2, 307, 2973, 3, 2, 2, 2, 309, 2981, 3, 2, 2, 2, 311, 2988, 3, 2, 2, 2, 313, 2992, 3, 2, 2, 2, 315, 3002, 3, 2, 2, 2, 317, 3007, 3, 2, 2, 2, 319, 3014, 3, 2, 2, 2, 321, 3019, 3, 2, 2, 2, 323, 3038, 3, 2, 2, 2, 325, 3046, 3, 2, 2, 2, 327, 3050, 3, 2, 2, 2, 329, 3063, 3, 2, 2, 2, 331, 3072, 3, 2, 2, 2, 333, 3083, 3, 2, 2, 2, 335, 3098, 3, 2, 2, 2, 337, 3118, 3, 2, 2, 2, 339, 3135, 3, 2, 2, 2, 341, 3139, 3, 2, 2, 2, 343, 3147, 3, 2, 2, 2, 345, 3156, 3, 2, 2, 2, 347, 3170, 3, 2, 2, 2, 349, 3176, 3, 2, 2, 2, 351, 3187, 3, 2, 2, 2, 353, 3192, 3, 2, 2, 2, 355, 3195, 3, 2, 2, 2, 357, 3204, 3, 2, 2, 2, 359, 3212, 3, 2, 2, 2, 361, 3217, 3, 2, 2, 2, 363, 3222, 3, 2, 2, 2, 365, 3228, 3, 2, 2, 2, 367, 3235, 3, 2, 2, 2, 369, 3242, 3, 2, 2, 2, 371, 3251, 3, 2, 2, 2, 373, 3258, 3, 2, 2, 2, 375, 3264, 3, 2, 2, 2, 377, 3268, 3, 2, 2, 2, 379, 3274, 3, 2, 2, 2, 381, 3281, 3, 2, 2, 2, 383, 3286, 3, 2, 2, 2, 385, 3291, 3, 2, 2, 2, 387, 3297, 3, 2, 2, 2, 389, 3303, 3, 2, 2, 2, 391, 3308, 3, 2, 2, 2, 393, 3314, 3, 2, 2, 2, 395, 3318, 3, 2, 2, 2, 397, 3327, 3, 2, 2, 2, 399, 3335, 3, 2, 2, 2, 401, 3344, 3, 2, 2, 2, 403, 3354, 3, 2, 2, 2, 405, 3364, 3, 2, 2, 2, 407, 3368, 3, 2, 2, 2, 409, 3373, 3, 2, 2, 2, 411, 3378, 3, 2, 2, 2, 413, 3383, 3, 2, 2, 2, 415, 3388, 3, 2, 2, 2, 417, 3393, 3, 2, 2, 2, 419, 3401, 3, 2, 2, 2, 421, 3408, 3, 2, 2, 2, 423, 3413, 3, 2, 2, 2, 425, 3420, 3, 2, 2, 2, 427, 3430, 3, 2, 2, 2, 429, 3436, 3, 2, 2, 2, 431, 3443, 3, 2, 2, 2, 433, 3450, 3, 2, 2, 2, 435, 3458, 3, 2, 2, 2, 437, 3462, 3, 2, 2, 2, 439, 3470, 3, 2, 2, 2, 441, 3475, 3, 2, 2, 2, 443, 3480, 3, 2, 2, 2, 445, 3490, 3, 2, 2, 2, 447, 3499, 3, 2, 2, 2, 449, 3504, 3, 2, 2, 2, 451, 3509, 3, 2, 2, 2, 453, 3517, 3, 2, 2, 2, 455, 3526, 3, 2, 2, 2, 457, 3535, 3, 2, 2, 2, 459, 3542, 3, 2, 2, 2, 461, 3552, 3, 2, 2, 2, 463, 3561, 3, 2, 2, 2, 465, 3566, 3, 2, 2, 2, 467, 3577, 3, 2, 2, 2, 469, 3582, 3, 2, 2, 2, 471, 3591, 3, 2, 2, 2, 473, 3600, 3, 2, 2, 2, 475, 3605, 3, 2, 2, 2, 477, 3616, 3, 2, 2, 2, 479, 3625, 3, 2, 2, 2, 481, 3630, 3, 2, 2, 2, 483, 3638, 3, 2, 2, 2, 485, 3645, 3, 2, 2, 2, 487, 3656, 3, 2, 2, 2, 489, 3665, 3, 2, 2, 2, 491, 3676, 3, 2, 2, 2, 493, 3687, 3, 2, 2, 2, 495, 3699, 3, 2, 2, 2, 497, 3711, 3, 2, 2, 2, 499, 3725, 3, 2, 2, 2, 501, 3744, 3, 2, 2, 2, 503, 3763, 3, 2, 2, 2, 505, 3780, 3, 2, 2, 2, 507, 3796, 3, 2, 2, 2, 509, 3807, 3, 2, 2, 2, 511, 3818, 3, 2, 2, 2, 513, 3825, 3, 2, 2, 2, 515, 3836, 3, 2, 2, 2, 517, 3841, 3, 2, 2, 2, 519, 3845, 3, 2, 2, 2, 521, 3853, 3, 2, 2, 2, 523, 3860, 3, 2, 2, 2, 525, 3868, 3, 2, 2, 2, 527, 3874, 3, 2, 2, 2, 529, 3884, 3, 2, 2, 2, 531, 3895, 3, 2, 2, 2, 533, 3907, 3, 2, 2, 2, 535, 3920, 3, 2, 2, 2, 537, 3924, 3, 2, 2, 2, 539, 3935, 3, 2, 2, 2, 541, 3940, 3, 2, 2, 2, 543, 3944, 3, 2, 2, 2, 545, 3948, 3, 2, 2, 2, 547, 3954, 3, 2, 2, 2, 549, 3964, 3, 2, 2, 2, 551, 3977, 3, 2, 2, 2, 553, 3982, 3, 2, 2, 2, 555, 3993, 3, 2, 2, 2, 557, 3997, 3, 2, 2, 2, 559, 4004, 3, 2, 2, 2, 561, 4015, 3, 2, 2, 2, 563, 4027, 3, 2, 2, 2, 565, 4031, 3, 2, 2, 2, 567, 4039, 3, 2, 2, 2, 569, 4048, 3, 2, 2, 2, 571, 4057, 3, 2, 2, 2, 573, 4070, 3, 2, 2, 2, 575, 4083, 3, 2, 2, 2, 577, 4101, 3, 2, 2, 2, 579, 4111, 3, 2, 2, 2, 581, 4119, 3, 2, 2, 2, 583, 4127, 3, 2, 2, 2, 585, 4136, 3, 2, 2, 2, 587, 4145, 3, 2, 2, 2, 589, 4153, 3, 2, 2, 2, 591, 4168, 3, 2, 2, 2, 593, 4172, 3, 2, 2, 2, 595, 4181, 3, 2, 2, 2, 597, 4188, 3, 2, 2, 2, 599, 4198, 3, 2, 2, 2, 601, 4206, 3, 2, 2, 2, 603, 4211, 3, 2, 2, 2, 605, 4220, 3, 2, 2, 2, 607, 4229, 3, 2, 2, 2, 609, 4243, 3, 2, 2, 2, 611, 4251, 3, 2, 2, 2, 613, 4258, 3, 2, 2, 2, 615, 4264, 3, 2, 2, 2, 617, 4274, 3, 2, 2, 2, 619, 4284, 3, 2, 2, 2, 621, 4288, 3, 2, 2, 2, 623, 4327, 3, 2, 2, 2, 625, 4330, 3, 2, 2, 2, 627, 4338, 3, 2, 2, 2, 629, 4349, 3, 2, 2, 2, 631, 4365, 3, 2, 2, 2, 633, 4380, 3, 2, 2, 2, 635, 4395, 3, 2, 2, 2, 637, 4401, 3, 2, 2, 2, 639, 4408, 3, 2, 2, 2, 641, 4412, 3, 2, 2, 2, 643, 4418, 3, 2, 2, 2, 645, 4423, 3, 2, 2, 2, 647, 4431, 3, 2, 2, 2, 649, 4437, 3, 2, 2, 2, 651, 4443, 3, 2, 2, 2, 653, 4452, 3, 2, 2, 2, 655, 4458, 3, 2, 2, 2, 657, 4466, 3, 2, 2, 2, 659, 4474, 3, 2, 2, 2, 661, 4483, 3, 2, 2, 2, 663, 4502, 3, 2, 2, 2, 665, 4509, 3, 2, 2, 2, 667, 4522, 3, 2, 2, 2, 669, 4529, 3, 2, 2, 2, 671, 4535, 3, 2, 2, 2, 673, 4544, 3, 2, 2, 2, 675, 4549, 3, 2, 2, 2, 677, 4557, 3, 2, 2, 2, 679, 4571, 3, 2, 2, 2, 681, 4583, 3, 2, 2, 2, 683, 4591, 3, 2, 2, 2, 685, 4598, 3, 2, 2, 2, 687, 4606, 3, 2, 2, 2, 689, 4617, 3, 2, 2, 2, 691, 4627, 3, 2, 2, 2, 693, 4638, 3, 2, 2, 2, 695, 4650, 3, 2, 2, 2, 697, 4661, 3, 2, 2, 2, 699, 4669, 3, 2, 2, 2, 701, 4680, 3, 2, 2, 2, 703, 4691, 3, 2, 2, 2, 705, 4710, 3, 2, 2, 2, 707, 4728, 3, 2, 2, 2, 709, 4744, 3, 2, 2, 2, 711, 4753, 3, 2, 2, 2, 713, 4761, 3, 2, 2, 2, 715, 4774, 3, 2, 2, 2, 717, 4779, 3, 2, 2, 2, 719, 4783, 3, 2, 2, 2, 721, 4795, 3, 2, 2, 2, 723, 4800, 3, 2, 2, 2, 725, 4809, 3, 2, 2, 2, 727, 4820, 3, 2, 2, 2, 729, 4833, 3, 2, 2, 2, 731, 4841, 3, 2, 2, 2, 733, 4857, 3, 2, 2, 2, 735, 4870, 3, 2, 2, 2, 737, 4880, 3, 2, 2, 2, 739, 4888, 3, 2, 2, 2, 741, 4896, 3, 2, 2, 2, 743, 4901, 3, 2, 2, 2, 745, 4904, 3, 2, 2, 2, 747, 4913, 3, 2, 2, 2, 749, 4923, 3, 2, 2, 2, 751, 4931, 3, 2, 2, 2, 753, 4938, 3, 2, 2, 2, 755, 4949, 3, 2, 2, 2, 757, 4967, 3, 2, 2, 2, 759, 4971, 3, 2, 2, 2, 761, 4976, 3, 2, 2, 2, 763, 4983, 3, 2, 2, 2, 765, 4991, 3, 2, 2, 2, 767, 4997, 3, 2, 2, 2, 769, 5004, 3, 2, 2, 2, 771, 5011, 3, 2, 2, 2, 773, 5017, 3, 2, 2, 2, 775, 5024, 3, 2, 2, 2, 777, 5030, 3, 2, 2, 2, 779, 5039, 3, 2, 2, 2, 781, 5049, 3, 2, 2, 2, 783, 5056, 3, 2, 2, 2, 785, 5063, 3, 2, 2, 2, 787, 5072, 3, 2, 2, 2, 789, 5084, 3, 2, 2, 2, 791, 5091, 3, 2, 2, 2, 793, 5113, 3, 2, 2, 2, 795, 5118, 3, 2, 2, 2, 797, 5125, 3, 2, 2, 2, 799, 5132, 3, 2, 2, 2, 801, 5148, 3, 2, 2, 2, 803, 5155, 3, 2, 2, 2, 805, 5162, 3, 2, 2, 2, 807, 5168, 3, 2, 2, 2, 809, 5174, 3, 2, 2, 2, 811, 5180, 3, 2, 2, 2, 813, 5190, 3, 2, 2, 2, 815, 5198, 3, 2, 2, 2, 817, 5204, 3, 2, 2, 2, 819, 5209, 3, 2, 2, 2, 821, 5218, 3, 2, 2, 2, 823, 5226, 3, 2, 2, 2, 825, 5248, 3, 2, 2, 2, 827, 5270, 3, 2, 2, 2, 829, 5277, 3, 2, 2, 2, 831, 5284, 3, 2, 2, 2, 833, 5302, 3, 2, 2, 2, 835, 5312, 3, 2, 2, 2, 837, 5320, 3, 2, 2, 2, 839, 5325, 3, 2, 2, 2, 841, 5330, 3, 2, 2, 2, 843, 5338, 3, 2, 2, 2, 845, 5343, 3, 2, 2, 2, 847, 5349, 3, 2, 2, 2, 849, 5360, 3, 2, 2, 2, 851, 5378, 3, 2, 2, 2, 853, 5385, 3, 2, 2, 2, 855, 5393, 3, 2, 2, 2, 857, 5401, 3, 2, 2, 2, 859, 5414, 3, 2, 2, 2, 861, 5423, 3, 2, 2, 2, 863, 5431, 3, 2, 2, 2, 865, 5445, 3, 2, 2, 2, 867, 5453, 3, 2, 2, 2, 869, 5462, 3, 2, 2, 2, 871, 5470, 3, 2, 2, 2, 873, 5480, 3, 2, 2, 2, 875, 5488, 3, 2, 2, 2, 877, 5491, 3, 2, 2, 2, 879, 5501, 3, 2, 2, 2, 881, 5505, 3, 2, 2, 2, 883, 5515, 3, 2, 2, 2, 885, 5522, 3, 2, 2, 2, 887, 5527, 3, 2, 2, 2, 889, 5542, 3, 2, 2, 2, 891, 5551, 3, 2, 2, 2, 893, 5556, 3, 2, 2, 2, 895, 5563, 3, 2, 2, 2, 897, 5568, 3, 2, 2, 2, 899, 5574, 3, 2, 2, 2, 901, 5579, 3, 2, 2, 2, 903, 5585, 3, 2, 2, 2, 905, 5593, 3, 2, 2, 2, 907, 5598, 3, 2, 2, 2, 909, 5605, 3, 2, 2, 2, 911, 5626, 3, 2, 2, 2, 913, 5656, 3, 2, 2, 2, 915, 5677, 3, 2, 2, 2, 917, 5690, 3, 2, 2, 2, 919, 5714, 3, 2, 2, 2, 921, 5726, 3, 2, 2, 2, 923, 5742, 3, 2, 2, 2, 925, 5757, 3, 2, 2, 2, 927, 5773, 3, 2, 2, 2, 929, 5785, 3, 2, 2, 2, 931, 5808, 3, 2, 2, 2, 933, 5827, 3, 2, 2, 2, 935, 5838, 3, 2, 2, 2, 937, 5852, 3, 2, 2, 2, 939, 5870, 3, 2, 2, 2, 941, 5886, 3, 2, 2, 2, 943, 5904, 3, 2, 2, 2, 945, 5919, 3, 2, 2, 2, 947, 5938, 3, 2, 2, 2, 949, 5953, 3, 2, 2, 2, 951, 5977, 3, 2, 2, 2, 953, 5996, 3, 2, 2, 2, 955, 6008, 3, 2, 2, 2, 957, 6038, 3, 2, 2, 2, 959, 6063, 3, 2, 2, 2, 961, 6084, 3, 2, 2, 2, 963, 6093, 3, 2, 2, 2, 965, 6102, 3, 2, 2, 2, 967, 6123, 3, 2, 2, 2, 969, 6144, 3, 2, 2, 2, 971, 6151, 3, 2, 2, 2, 973, 6158, 3, 2, 2, 2, 975, 6164, 3, 2, 2, 2, 977, 6177, 3, 2, 2, 2, 979, 6181, 3, 2, 2, 2, 981, 6189, 3, 2, 2, 2, 983, 6198, 3, 2, 2, 2, 985, 6203, 3, 2, 2, 2, 987, 6210, 3, 2, 2, 2, 989, 6216, 3, 2, 2, 2, 991, 6222, 3, 2, 2, 2, 993, 6234, 3, 2, 2, 2, 995, 6239, 3, 2, 2, 2, 997, 6245, 3, 2, 2, 2, 999, 6251, 3, 2, 2, 2, 1001, 6269, 3, 2, 2, 2, 1003, 6275, 3, 2, 2, 2, 1005, 6280, 3, 2, 2, 2, 1007, 6283, 3, 2, 2, 2, 1009, 6290, 3, 2, 2, 2, 1011, 6300, 3, 2, 2, 2, 1013, 6305, 3, 2, 2, 2, 1015, 6310, 3, 2, 2, 2, 1017, 6314, 3, 2, 2, 2, 1019, 6322, 3, 2, 2, 2, 1021, 6329, 3, 2, 2, 2, 1023, 6332, 3, 2, 2, 2, 1025, 6336, 3, 2, 2, 2, 1027, 6349, 3, 2, 2, 2, 1029, 6353, 3, 2, 2, 2, 1031, 6360, 3, 2, 2, 2, 1033, 6365, 3, 2, 2, 2, 1035, 6370, 3, 2, 2, 2, 1037, 6386, 3, 2, 2, 2, 1039, 6394, 3, 2, 2, 2, 1041, 6400, 3, 2, 2, 2, 1043, 6410, 3, 2, 2, 2, 1045, 6415, 3, 2, 2, 2, 1047, 6429, 3, 2, 2, 2, 1049, 6445, 3, 2, 2, 2, 1051, 6468, 3, 2, 2, 2, 1053, 6475, 3, 2, 2, 2, 1055, 6483, 3, 2, 2, 2, 1057, 6496, 3, 2, 2, 2, 1059, 6507, 3, 2, 2, 2, 1061, 6516, 3, 2, 2, 2, 1063, 6535, 3, 2, 2, 2, 1065, 6543, 3, 2, 2, 2, 1067, 6556, 3, 2, 2, 2, 1069, 6562, 3, 2, 2, 2, 1071, 6569, 3, 2, 2, 2, 1073, 6580, 3, 2, 2, 2, 1075, 6588, 3, 2, 2, 2, 1077, 6593, 3, 2, 2, 2, 1079, 6602, 3, 2, 2, 2, 1081, 6612, 3, 2, 2, 2, 1083, 6620, 3, 2, 2, 2, 1085, 6629, 3, 2, 2, 2, 1087, 6634, 3, 2, 2, 2, 1089, 6656, 3, 2, 2, 2, 1091, 6668, 3, 2, 2, 2, 1093, 6676, 3, 2, 2, 2, 1095, 6685, 3, 2, 2, 2, 1097, 6691, 3, 2, 2, 2, 1099, 6697, 3, 2, 2, 2, 1101, 6703, 3, 2, 2, 2, 1103, 6711, 3, 2, 2, 2, 1105, 6719, 3, 2, 2, 2, 1107, 6729, 3, 2, 2, 2, 1109, 6746, 3, 2, 2, 2, 1111, 6756, 3, 2, 2, 2, 1113, 6769, 3, 2, 2, 2, 1115, 6775, 3, 2, 2, 2, 1117, 6790, 3, 2, 2, 2, 1119, 6804, 3, 2, 2, 2, 1121, 6813, 3, 2, 2, 2, 1123, 6820, 3, 2, 2, 2, 1125, 6831, 3, 2, 2, 2, 1127, 6838, 3, 2, 2, 2, 1129, 6846, 3, 2, 2, 2, 1131, 6855, 3, 2, 2, 2, 1133, 6871, 3, 2, 2, 2, 1135, 6890, 3, 2, 2, 2, 1137, 6910, 3, 2, 2, 2, 1139, 6933, 3, 2, 2, 2, 1141, 6954, 3, 2, 2, 2, 1143, 6978, 3, 2, 2, 2, 1145, 7006, 3, 2, 2, 2, 1147, 7018, 3, 2, 2, 2, 1149, 7037, 3, 2, 2, 2, 1151, 7069, 3, 2, 2, 2, 1153, 7075, 3, 2, 2, 2, 1155, 7083, 3, 2, 2, 2, 1157, 7090, 3, 2, 2, 2, 1159, 7108, 3, 2, 2, 2, 1161, 7118, 3, 2, 2, 2, 1163, 7126, 3, 2, 2, 2, 1165, 7132, 3, 2, 2, 2, 1167, 7137, 3, 2, 2, 2, 1169, 7146, 3, 2, 2, 2, 1171, 7153, 3, 2, 2, 2, 1173, 7160, 3, 2, 2, 2, 1175, 7164, 3, 2, 2, 2, 1177, 7169, 3, 2, 2, 2, 1179, 7180, 3, 2, 2, 2, 1181, 7190, 3, 2, 2, 2, 1183, 7199, 3, 2, 2, 2, 1185, 7208, 3, 2, 2, 2, 1187, 7215, 3, 2, 2, 2, 1189, 7223, 3, 2, 2, 2, 1191, 7229, 3, 2, 2, 2, 1193, 7236, 3, 2, 2, 2, 1195, 7243, 3, 2, 2, 2, 1197, 7250, 3, 2, 2, 2, 1199, 7256, 3, 2, 2, 2, 1201, 7261, 3, 2, 2, 2, 1203, 7270, 3, 2, 2, 2, 1205, 7277, 3, 2, 2, 2, 1207, 7282, 3, 2, 2, 2, 1209, 7289, 3, 2, 2, 2, 1211, 7296, 3, 2, 2, 2, 1213, 7303, 3, 2, 2, 2, 1215, 7315, 3, 2, 2, 2, 1217, 7327, 3, 2, 2, 2, 1219, 7339, 3, 2, 2, 2, 1221, 7355, 3, 2, 2, 2, 1223, 7367, 3, 2, 2, 2, 1225, 7383, 3, 2, 2, 2, 1227, 7398, 3, 2, 2, 2, 1229, 7419, 3, 2, 2, 2, 1231, 7443, 3, 2, 2, 2, 1233, 7464, 3, 2, 2, 2, 1235, 7483, 3, 2, 2, 2, 1237, 7515, 3, 2, 2, 2, 1239, 7528, 3, 2, 2, 2, 1241, 7558, 3, 2, 2, 2, 1243, 7588, 3, 2, 2, 2, 1245, 7599, 3, 2, 2, 2, 1247, 7613, 3, 2, 2, 2, 1249, 7631, 3, 2, 2, 2, 1251, 7647, 3, 2, 2, 2, 1253, 7662, 3, 2, 2, 2, 1255, 7681, 3, 2, 2, 2, 1257, 7696, 3, 2, 2, 2, 1259, 7714, 3, 2, 2, 2, 1261, 7744, 3, 2, 2, 2, 1263, 7763, 3, 2, 2, 2, 1265, 7787, 3, 2, 2, 2, 1267, 7810, 3, 2, 2, 2, 1269, 7826, 3, 2, 2, 2, 1271, 7845, 3, 2, 2, 2, 1273, 7862, 3, 2, 2, 2, 1275, 7880, 3, 2, 2, 2, 1277, 7890, 3, 2, 2, 2, 1279, 7903, 3, 2, 2, 2, 1281, 7914, 3, 2, 2, 2, 1283, 7920, 3, 2, 2, 2, 1285, 7927, 3, 2, 2, 2, 1287, 7945, 3, 2, 2, 2, 1289, 7962, 3, 2, 2, 2, 1291, 7981, 3, 2, 2, 2, 1293, 7988, 3, 2, 2, 2, 1295, 7993, 3, 2, 2, 2, 1297, 8001, 3, 2, 2, 2, 1299, 8008, 3, 2, 2, 2, 1301, 8015, 3, 2, 2, 2, 1303, 8031, 3, 2, 2, 2, 1305, 8039, 3, 2, 2, 2, 1307, 8052, 3, 2, 2, 2, 1309, 8066, 3, 2, 2, 2, 1311, 8074, 3, 2, 2, 2, 1313, 8080, 3, 2, 2, 2, 1315, 8089, 3, 2, 2, 2, 1317, 8100, 3, 2, 2, 2, 1319, 8111, 3, 2, 2, 2, 1321, 8122, 3, 2, 2, 2, 1323, 8132, 3, 2, 2, 2, 1325, 8142, 3, 2, 2, 2, 1327, 8147, 3, 2, 2, 2, 1329, 8159, 3, 2, 2, 2, 1331, 8171, 3, 2, 2, 2, 1333, 8185, 3, 2, 2, 2, 1335, 8190, 3, 2, 2, 2, 1337, 8199, 3, 2, 2, 2, 1339, 8208, 3, 2, 2, 2, 1341, 8218, 3, 2, 2, 2, 1343, 8228, 3, 2, 2, 2, 1345, 8237, 3, 2, 2, 2, 1347, 8254, 3, 2, 2, 2, 1349, 8264, 3, 2, 2, 2, 1351, 8272, 3, 2, 2, 2, 1353, 8283, 3, 2, 2, 2, 1355, 8289, 3, 2, 2, 2, 1357, 8297, 3, 2, 2, 2, 1359, 8302, 3, 2, 2, 2, 1361, 8310, 3, 2, 2, 2, 1363, 8325, 3, 2, 2, 2, 1365, 8336, 3, 2, 2, 2, 1367, 8342, 3, 2, 2, 2, 1369, 8352, 3, 2, 2, 2, 1371, 8357, 3, 2, 2, 2, 1373, 8365, 3, 2, 2, 2, 1375, 8373, 3, 2, 2, 2, 1377, 8378, 3, 2, 2, 2, 1379, 8387, 3, 2, 2, 2, 1381, 8394, 3, 2, 2, 2, 1383, 8402, 3, 2, 2, 2, 1385, 8407, 3, 2, 2, 2, 1387, 8415, 3, 2, 2, 2, 1389, 8420, 3, 2, 2, 2, 1391, 8423, 3, 2, 2, 2, 1393, 8427, 3, 2, 2, 2, 1395, 8435, 3, 2, 2, 2, 1397, 8441, 3, 2, 2, 2, 1399, 8445, 3, 2, 2, 2, 1401, 8450, 3, 2, 2, 2, 1403, 8457, 3, 2, 2, 2, 1405, 8462, 3, 2, 2, 2, 1407, 8469, 3, 2, 2, 2, 1409, 8481, 3, 2, 2, 2, 1411, 8487, 3, 2, 2, 2, 1413, 8514, 3, 2, 2, 2, 1415, 8533, 3, 2, 2, 2, 1417, 8545, 3, 2, 2, 2, 1419, 8560, 3, 2, 2, 2, 1421, 8588, 3, 2, 2, 2, 1423, 8601, 3, 2, 2, 2, 1425, 8614, 3, 2, 2, 2, 1427, 8638, 3, 2, 2, 2, 1429, 8644, 3, 2, 2, 2, 1431, 8656, 3, 2, 2, 2, 1433, 8673, 3, 2, 2, 2, 1435, 8694, 3, 2, 2, 2, 1437, 8702, 3, 2, 2, 2, 1439, 8707, 3, 2, 2, 2, 1441, 8722, 3, 2, 2, 2, 1443, 8738, 3, 2, 2, 2, 1445, 8752, 3, 2, 2, 2, 1447, 8774, 3, 2, 2, 2, 1449, 8787, 3, 2, 2, 2, 1451, 8800, 3, 2, 2, 2, 1453, 8821, 3, 2, 2, 2, 1455, 8845, 3, 2, 2, 2, 1457, 8869, 3, 2, 2, 2, 1459, 8892, 3, 2, 2, 2, 1461, 8899, 3, 2, 2, 2, 1463, 8906, 3, 2, 2, 2, 1465, 8922, 3, 2, 2, 2, 1467, 8946, 3, 2, 2, 2, 1469, 8973, 3, 2, 2, 2, 1471, 8984, 3, 2, 2, 2, 1473, 8992, 3, 2, 2, 2, 1475, 8999, 3, 2, 2, 2, 1477, 9019, 3, 2, 2, 2, 1479, 9043, 3, 2, 2, 2, 1481, 9052, 3, 2, 2, 2, 1483, 9073, 3, 2, 2, 2, 1485, 9093, 3, 2, 2, 2, 1487, 9104, 3, 2, 2, 2, 1489, 9112, 3, 2, 2, 2, 1491, 9115, 3, 2, 2, 2, 1493, 9141, 3, 2, 2, 2, 1495, 9170, 3, 2, 2, 2, 1497, 9182, 3, 2, 2, 2, 1499, 9195, 3, 2, 2, 2, 1501, 9204, 3, 2, 2, 2, 1503, 9210, 3, 2, 2, 2, 1505, 9233, 3, 2, 2, 2, 1507, 9240, 3, 2, 2, 2, 1509, 9263, 3, 2, 2, 2, 1511, 9283, 3, 2, 2, 2, 1513, 9300, 3, 2, 2, 2, 1515, 9309, 3, 2, 2, 2, 1517, 9315, 3, 2, 2, 2, 1519, 9320, 3, 2, 2, 2, 1521, 9327, 3, 2, 2, 2, 1523, 9334, 3, 2, 2, 2, 1525, 9341, 3, 2, 2, 2, 1527, 9348, 3, 2, 2, 2, 1529, 9354, 3, 2, 2, 2, 1531, 9360, 3, 2, 2, 2, 1533, 9366, 3, 2, 2, 2, 1535, 9372, 3, 2, 2, 2, 1537, 9377, 3, 2, 2, 2, 1539, 9385, 3, 2, 2, 2, 1541, 9391, 3, 2, 2, 2, 1543, 9399, 3, 2, 2, 2, 1545, 9406, 3, 2, 2, 2, 1547, 9410, 3, 2, 2, 2, 1549, 9418, 3, 2, 2, 2, 1551, 9424, 3, 2, 2, 2, 1553, 9431, 3, 2, 2, 2, 1555, 9435, 3, 2, 2, 2, 1557, 9443, 3, 2, 2, 2, 1559, 9449, 3, 2, 2, 2, 1561, 9455, 3, 2, 2, 2, 1563, 9462, 3, 2, 2, 2, 1565, 9469, 3, 2, 2, 2, 1567, 9476, 3, 2, 2, 2, 1569, 9483, 3, 2, 2, 2, 1571, 9489, 3, 2, 2, 2, 1573, 9498, 3, 2, 2, 2, 1575, 9503, 3, 2, 2, 2, 1577, 9508, 3, 2, 2, 2, 1579, 9515, 3, 2, 2, 2, 1581, 9520, 3, 2, 2, 2, 1583, 9525, 3, 2, 2, 2, 1585, 9531, 3, 2, 2, 2, 1587, 9539, 3, 2, 2, 2, 1589, 9545, 3, 2, 2, 2, 1591, 9550, 3, 2, 2, 2, 1593, 9558, 3, 2, 2, 2, 1595, 9566, 3, 2, 2, 2, 1597, 9574, 3, 2, 2, 2, 1599, 9584, 3, 2, 2, 2, 1601, 9588, 3, 2, 2, 2, 1603, 9598, 3, 2, 2, 2, 1605, 9605, 3, 2, 2, 2, 1607, 9612, 3, 2, 2, 2, 1609, 9623, 3, 2, 2, 2, 1611, 9630, 3, 2, 2, 2, 1613, 9634, 3, 2, 2, 2, 1615, 9645, 3, 2, 2, 2, 1617, 9664, 3, 2, 2, 2, 1619, 9671, 3, 2, 2, 2, 1621, 9682, 3, 2, 2, 2, 1623, 9692, 3, 2, 2, 2, 1625, 9704, 3, 2, 2, 2, 1627, 9717, 3, 2, 2, 2, 1629, 9736, 3, 2, 2, 2, 1631, 9751, 3, 2, 2, 2, 1633, 9760, 3, 2, 2, 2, 1635, 9771, 3, 2, 2, 2, 1637, 9787, 3, 2, 2, 2, 1639, 9798, 3, 2, 2, 2, 1641, 9811, 3, 2, 2, 2, 1643, 9817, 3, 2, 2, 2, 1645, 9825, 3, 2, 2, 2, 1647, 9838, 3, 2, 2, 2, 1649, 9846, 3, 2, 2, 2, 1651, 9856, 3, 2, 2, 2, 1653, 9873, 3, 2, 2, 2, 1655, 9880, 3, 2, 2, 2, 1657, 9891, 3, 2, 2, 2, 1659, 9901, 3, 2, 2, 2, 1661, 9908, 3, 2, 2, 2, 1663, 9916, 3, 2, 2, 2, 1665, 9926, 3, 2, 2, 2, 1667, 9938, 3, 2, 2, 2, 1669, 9965, 3, 2, 2, 2, 1671, 9970, 3, 2, 2, 2, 1673, 9977, 3, 2, 2, 2, 1675, 9989, 3, 2, 2, 2, 1677, 10005, 3, 2, 2, 2, 1679, 10025, 3, 2, 2, 2, 1681, 10030, 3, 2, 2, 2, 1683, 10044, 3, 2, 2, 2, 1685, 10047, 3, 2, 2, 2, 1687, 10050, 3, 2, 2, 2, 1689, 10053, 3, 2, 2, 2, 1691, 10056, 3, 2, 2, 2, 1693, 10059, 3, 2, 2, 2, 1695, 10062, 3, 2, 2, 2, 1697, 10065, 3, 2, 2, 2, 1699, 10068, 3, 2, 2, 2, 1701, 10071, 3, 2, 2, 2, 1703, 10073, 3, 2, 2, 2, 1705, 10075, 3, 2, 2, 2, 1707, 10077, 3, 2, 2, 2, 1709, 10079, 3, 2, 2, 2, 1711, 10081, 3, 2, 2, 2, 1713, 10085, 3, 2, 2, 2, 1715, 10089, 3, 2, 2, 2, 1717, 10091, 3, 2, 2, 2, 1719, 10093, 3, 2, 2, 2, 1721, 10095, 3, 2, 2, 2, 1723, 10097, 3, 2, 2, 2, 1725, 10099, 3, 2, 2, 2, 1727, 10101, 3, 2, 2, 2, 1729, 10103, 3, 2, 2, 2, 1731, 10105, 3, 2, 2, 2, 1733, 10107, 3, 2, 2, 2, 1735, 10109, 3, 2, 2, 2, 1737, 10111, 3, 2, 2, 2, 1739, 10113, 3, 2, 2, 2, 1741, 10115, 3, 2, 2, 2, 1743, 10117, 3, 2, 2, 2, 1745, 10119, 3, 2, 2, 2, 1747, 10121, 3, 2, 2, 2, 1749, 10123, 3, 2, 2, 2, 1751, 10125, 3, 2, 2, 2, 1753, 10127, 3, 2, 2, 2, 1755, 10129, 3, 2, 2, 2, 1757, 10131, 3, 2, 2, 2, 1759, 10136, 3, 2, 2, 2, 1761, 10138, 3, 2, 2, 2, 1763, 10143, 3, 2, 2, 2, 1765, 10149, 3, 2, 2, 2, 1767, 10155, 3, 2, 2, 2, 1769, 10158, 3, 2, 2, 2, 1771, 10181, 3, 2, 2, 2, 1773, 10224, 3, 2, 2, 2, 1775, 10226, 3, 2, 2, 2, 1777, 10229, 3, 2, 2, 2, 1779, 10231, 3, 2, 2, 2, 1781, 10234, 3, 2, 2, 2, 1783, 10237, 3, 2, 2, 2, 1785, 10239, 3, 2, 2, 2, 1787, 10241, 3, 2, 2, 2, 1789, 10244, 3, 2, 2, 2, 1791, 10253, 3, 2, 2, 2, 1793, 10263, 3, 2, 2, 2, 1795, 10314, 3, 2, 2, 2, 1797, 10316, 3, 2, 2, 2, 1799, 10328, 3, 2, 2, 2, 1801, 10342, 3, 2, 2, 2, 1803, 10355, 3, 2, 2, 2, 1805, 10368, 3, 2, 2, 2, 1807, 10379, 3, 2, 2, 2, 1809, 10381, 3, 2, 2, 2, 1811, 10383, 3, 2, 2, 2, 1813, 10422, 3, 2, 2, 2, 1815, 10424, 3, 2, 2, 2, 1817, 1819, 9, 2, 2, 2, 1818, 1817, 3, 2, 2, 2, 1819, 1820, 3, 2, 2, 2, 1820, 1818, 3, 2, 2, 2, 1820, 1821, 3, 2, 2, 2, 1821, 1822, 3, 2, 2, 2, 1822, 1823, 8, 2, 2, 2, 1823, 4, 3, 2, 2, 2, 1824, 1825, 7, 49, 2, 2, 1825, 1826, 7, 44, 2, 2, 1826, 1827, 7, 35, 2, 2, 1827, 1829, 3, 2, 2, 2, 1828, 1830, 11, 2, 2, 2, 1829, 1828, 3, 2, 2, 2, 1830, 1831, 3, 2, 2, 2, 1831, 1832, 3, 2, 2, 2, 1831, 1829, 3, 2, 2, 2, 1832, 1833, 3, 2, 2, 2, 1833, 1834, 7, 44, 2, 2, 1834, 1835, 7, 49, 2, 2, 1835, 1836, 3, 2, 2, 2, 1836, 1837, 8, 3, 3, 2, 1837, 6, 3, 2, 2, 2, 1838, 1839, 7, 49, 2, 2, 1839, 1840, 7, 44, 2, 2, 1840, 1844, 3, 2, 2, 2, 1841, 1843, 11, 2, 2, 2, 1842, 1841, 3, 2, 2, 2, 1843, 1846, 3, 2, 2, 2, 1844, 1845, 3, 2, 2, 2, 1844, 1842, 3, 2, 2, 2, 1845, 1847, 3, 2, 2, 2, 1846, 1844, 3, 2, 2, 2, 1847, 1848, 7, 44, 2, 2, 1848, 1849, 7, 49, 2, 2, 1849, 1850, 3, 2, 2, 2, 1850, 1851, 8, 4, 2, 2, 1851, 8, 3, 2, 2, 2, 1852, 1853, 7, 47, 2, 2, 1853, 1854, 7, 47, 2, 2, 1854, 1858, 3, 2, 2, 2, 1855, 1857, 9, 3, 2, 2, 1856, 1855, 3, 2, 2, 2, 1857, 1860, 3, 2, 2, 2, 1858, 1856, 3, 2, 2, 2, 1858, 1859, 3, 2, 2, 2, 1859, 1863, 3, 2, 2, 2, 1860, 1858, 3, 2, 2, 2, 1861, 1863, 7, 37, 2, 2, 1862, 1852, 3, 2, 2, 2, 1862, 1861, 3, 2, 2, 2, 1863, 1867, 3, 2, 2, 2, 1864, 1866, 10, 4, 2, 2, 1865, 1864, 3, 2, 2, 2, 1866, 1869, 3, 2, 2, 2, 1867, 1865, 3, 2, 2, 2, 1867, 1868, 3, 2, 2, 2, 1868, 1875, 3, 2, 2, 2, 1869, 1867, 3, 2, 2, 2, 1870, 1872, 7, 15, 2, 2, 1871, 1870, 3, 2, 2, 2, 1871, 1872, 3, 2, 2, 2, 1872, 1873, 3, 2, 2, 2, 1873, 1876, 7, 12, 2, 2, 1874, 1876, 7, 2, 2, 3, 1875, 1871, 3, 2, 2, 2, 1875, 1874, 3, 2, 2, 2, 1876, 1888, 3, 2, 2, 2, 1877, 1878, 7, 47, 2, 2, 1878, 1879, 7, 47, 2, 2, 1879, 1885, 3, 2, 2, 2, 1880, 1882, 7, 15, 2, 2, 1881, 1880, 3, 2, 2, 2, 1881, 1882, 3, 2, 2, 2, 1882, 1883, 3, 2, 2, 2, 1883, 1886, 7, 12, 2, 2, 1884, 1886, 7, 2, 2, 3, 1885, 1881, 3, 2, 2, 2, 1885, 1884, 3, 2, 2, 2, 1886, 1888, 3, 2, 2, 2, 1887, 1862, 3, 2, 2, 2, 1887, 1877, 3, 2, 2, 2, 1888, 1889, 3, 2, 2, 2, 1889, 1890, 8, 5, 2, 2, 1890, 10, 3, 2, 2, 2, 1891, 1892, 7, 67, 2, 2, 1892, 1893, 7, 69, 2, 2, 1893, 1894, 7, 86, 2, 2, 1894, 1895, 7, 75, 2, 2, 1895, 1896, 7, 88, 2, 2, 1896, 1897, 7, 71, 2, 2, 1897, 12, 3, 2, 2, 2, 1898, 1899, 7, 67, 2, 2, 1899, 1900, 7, 70, 2, 2, 1900, 1901, 7, 70, 2, 2, 1901, 14, 3, 2, 2, 2, 1902, 1903, 7, 67, 2, 2, 1903, 1904, 7, 78, 2, 2, 1904, 1905, 7, 78, 2, 2, 1905, 16, 3, 2, 2, 2, 1906, 1907, 7, 67, 2, 2, 1907, 1908, 7, 78, 2, 2, 1908, 1909, 7, 86, 2, 2, 1909, 1910, 7, 71, 2, 2, 1910, 1911, 7, 84, 2, 2, 1911, 18, 3, 2, 2, 2, 1912, 1913, 7, 67, 2, 2, 1913, 1914, 7, 78, 2, 2, 1914, 1915, 7, 89, 2, 2, 1915, 1916, 7, 67, 2, 2, 1916, 1917, 7, 91, 2, 2, 1917, 1918, 7, 85, 2, 2, 1918, 20, 3, 2, 2, 2, 1919, 1920, 7, 67, 2, 2, 1920, 1921, 7, 80, 2, 2, 1921, 1922, 7, 67, 2, 2, 1922, 1923, 7, 78, 2, 2, 1923, 1924, 7, 91, 2, 2, 1924, 1925, 7, 92, 2, 2, 1925, 1926, 7, 71, 2, 2, 1926, 22, 3, 2, 2, 2, 1927, 1928, 7, 67, 2, 2, 1928, 1929, 7, 80, 2, 2, 1929, 1930, 7, 70, 2, 2, 1930, 24, 3, 2, 2, 2, 1931, 1932, 7, 67, 2, 2, 1932, 1933, 7, 84, 2, 2, 1933, 1934, 7, 84, 2, 2, 1934, 1935, 7, 67, 2, 2, 1935, 1936, 7, 91, 2, 2, 1936, 26, 3, 2, 2, 2, 1937, 1938, 7, 67, 2, 2, 1938, 1939, 7, 85, 2, 2, 1939, 28, 3, 2, 2, 2, 1940, 1941, 7, 67, 2, 2, 1941, 1942, 7, 85, 2, 2, 1942, 1943, 7, 69, 2, 2, 1943, 30, 3, 2, 2, 2, 1944, 1945, 7, 67, 2, 2, 1945, 1946, 7, 86, 2, 2, 1946, 1947, 7, 86, 2, 2, 1947, 1948, 7, 84, 2, 2, 1948, 1949, 7, 75, 2, 2, 1949, 1950, 7, 68, 2, 2, 1950, 1951, 7, 87, 2, 2, 1951, 1952, 7, 86, 2, 2, 1952, 1953, 7, 71, 2, 2, 1953, 32, 3, 2, 2, 2, 1954, 1955, 7, 68, 2, 2, 1955, 1956, 7, 71, 2, 2, 1956, 1957, 7, 72, 2, 2, 1957, 1958, 7, 81, 2, 2, 1958, 1959, 7, 84, 2, 2, 1959, 1960, 7, 71, 2, 2, 1960, 34, 3, 2, 2, 2, 1961, 1962, 7, 68, 2, 2, 1962, 1963, 7, 71, 2, 2, 1963, 1964, 7, 86, 2, 2, 1964, 1965, 7, 89, 2, 2, 1965, 1966, 7, 71, 2, 2, 1966, 1967, 7, 71, 2, 2, 1967, 1968, 7, 80, 2, 2, 1968, 36, 3, 2, 2, 2, 1969, 1970, 7, 68, 2, 2, 1970, 1971, 7, 81, 2, 2, 1971, 1972, 7, 86, 2, 2, 1972, 1973, 7, 74, 2, 2, 1973, 38, 3, 2, 2, 2, 1974, 1975, 7, 68, 2, 2, 1975, 1976, 7, 87, 2, 2, 1976, 1977, 7, 69, 2, 2, 1977, 1978, 7, 77, 2, 2, 1978, 1979, 7, 71, 2, 2, 1979, 1980, 7, 86, 2, 2, 1980, 1981, 7, 85, 2, 2, 1981, 40, 3, 2, 2, 2, 1982, 1983, 7, 68, 2, 2, 1983, 1984, 7, 91, 2, 2, 1984, 42, 3, 2, 2, 2, 1985, 1986, 7, 69, 2, 2, 1986, 1987, 7, 67, 2, 2, 1987, 1988, 7, 78, 2, 2, 1988, 1989, 7, 78, 2, 2, 1989, 44, 3, 2, 2, 2, 1990, 1991, 7, 69, 2, 2, 1991, 1992, 7, 67, 2, 2, 1992, 1993, 7, 85, 2, 2, 1993, 1994, 7, 69, 2, 2, 1994, 1995, 7, 67, 2, 2, 1995, 1996, 7, 70, 2, 2, 1996, 1997, 7, 71, 2, 2, 1997, 46, 3, 2, 2, 2, 1998, 1999, 7, 69, 2, 2, 1999, 2000, 7, 67, 2, 2, 2000, 2001, 7, 85, 2, 2, 2001, 2002, 7, 71, 2, 2, 2002, 48, 3, 2, 2, 2, 2003, 2004, 7, 69, 2, 2, 2004, 2005, 7, 67, 2, 2, 2005, 2006, 7, 85, 2, 2, 2006, 2007, 7, 86, 2, 2, 2007, 50, 3, 2, 2, 2, 2008, 2009, 7, 69, 2, 2, 2009, 2010, 7, 74, 2, 2, 2010, 2011, 7, 67, 2, 2, 2011, 2012, 7, 80, 2, 2, 2012, 2013, 7, 73, 2, 2, 2013, 2014, 7, 71, 2, 2, 2014, 52, 3, 2, 2, 2, 2015, 2016, 7, 69, 2, 2, 2016, 2017, 7, 74, 2, 2, 2017, 2018, 7, 67, 2, 2, 2018, 2019, 7, 84, 2, 2, 2019, 2020, 7, 67, 2, 2, 2020, 2021, 7, 69, 2, 2, 2021, 2022, 7, 86, 2, 2, 2022, 2023, 7, 71, 2, 2, 2023, 2024, 7, 84, 2, 2, 2024, 54, 3, 2, 2, 2, 2025, 2026, 7, 69, 2, 2, 2026, 2027, 7, 74, 2, 2, 2027, 2028, 7, 71, 2, 2, 2028, 2029, 7, 69, 2, 2, 2029, 2030, 7, 77, 2, 2, 2030, 56, 3, 2, 2, 2, 2031, 2032, 7, 69, 2, 2, 2032, 2033, 7, 81, 2, 2, 2033, 2034, 7, 78, 2, 2, 2034, 2035, 7, 78, 2, 2, 2035, 2036, 7, 67, 2, 2, 2036, 2037, 7, 86, 2, 2, 2037, 2038, 7, 71, 2, 2, 2038, 58, 3, 2, 2, 2, 2039, 2040, 7, 69, 2, 2, 2040, 2041, 7, 81, 2, 2, 2041, 2042, 7, 78, 2, 2, 2042, 2043, 7, 87, 2, 2, 2043, 2044, 7, 79, 2, 2, 2044, 2045, 7, 80, 2, 2, 2045, 60, 3, 2, 2, 2, 2046, 2047, 7, 69, 2, 2, 2047, 2048, 7, 81, 2, 2, 2048, 2049, 7, 80, 2, 2, 2049, 2050, 7, 70, 2, 2, 2050, 2051, 7, 75, 2, 2, 2051, 2052, 7, 86, 2, 2, 2052, 2053, 7, 75, 2, 2, 2053, 2054, 7, 81, 2, 2, 2054, 2055, 7, 80, 2, 2, 2055, 62, 3, 2, 2, 2, 2056, 2057, 7, 69, 2, 2, 2057, 2058, 7, 81, 2, 2, 2058, 2059, 7, 80, 2, 2, 2059, 2060, 7, 85, 2, 2, 2060, 2061, 7, 86, 2, 2, 2061, 2062, 7, 84, 2, 2, 2062, 2063, 7, 67, 2, 2, 2063, 2064, 7, 75, 2, 2, 2064, 2065, 7, 80, 2, 2, 2065, 2066, 7, 86, 2, 2, 2066, 64, 3, 2, 2, 2, 2067, 2068, 7, 69, 2, 2, 2068, 2069, 7, 81, 2, 2, 2069, 2070, 7, 80, 2, 2, 2070, 2071, 7, 86, 2, 2, 2071, 2072, 7, 75, 2, 2, 2072, 2073, 7, 80, 2, 2, 2073, 2074, 7, 87, 2, 2, 2074, 2075, 7, 71, 2, 2, 2075, 66, 3, 2, 2, 2, 2076, 2077, 7, 69, 2, 2, 2077, 2078, 7, 81, 2, 2, 2078, 2079, 7, 80, 2, 2, 2079, 2080, 7, 88, 2, 2, 2080, 2081, 7, 71, 2, 2, 2081, 2082, 7, 84, 2, 2, 2082, 2083, 7, 86, 2, 2, 2083, 68, 3, 2, 2, 2, 2084, 2085, 7, 69, 2, 2, 2085, 2086, 7, 84, 2, 2, 2086, 2087, 7, 71, 2, 2, 2087, 2088, 7, 67, 2, 2, 2088, 2089, 7, 86, 2, 2, 2089, 2090, 7, 71, 2, 2, 2090, 70, 3, 2, 2, 2, 2091, 2092, 7, 69, 2, 2, 2092, 2093, 7, 84, 2, 2, 2093, 2094, 7, 81, 2, 2, 2094, 2095, 7, 85, 2, 2, 2095, 2096, 7, 85, 2, 2, 2096, 72, 3, 2, 2, 2, 2097, 2098, 7, 69, 2, 2, 2098, 2099, 7, 87, 2, 2, 2099, 2100, 7, 84, 2, 2, 2100, 2101, 7, 84, 2, 2, 2101, 2102, 7, 71, 2, 2, 2102, 2103, 7, 80, 2, 2, 2103, 2104, 7, 86, 2, 2, 2104, 74, 3, 2, 2, 2, 2105, 2106, 7, 69, 2, 2, 2106, 2107, 7, 87, 2, 2, 2107, 2108, 7, 84, 2, 2, 2108, 2109, 7, 84, 2, 2, 2109, 2110, 7, 71, 2, 2, 2110, 2111, 7, 80, 2, 2, 2111, 2112, 7, 86, 2, 2, 2112, 2113, 7, 97, 2, 2, 2113, 2114, 7, 87, 2, 2, 2114, 2115, 7, 85, 2, 2, 2115, 2116, 7, 71, 2, 2, 2116, 2117, 7, 84, 2, 2, 2117, 76, 3, 2, 2, 2, 2118, 2119, 7, 69, 2, 2, 2119, 2120, 7, 87, 2, 2, 2120, 2121, 7, 84, 2, 2, 2121, 2122, 7, 85, 2, 2, 2122, 2123, 7, 81, 2, 2, 2123, 2124, 7, 84, 2, 2, 2124, 78, 3, 2, 2, 2, 2125, 2126, 7, 70, 2, 2, 2126, 2127, 7, 67, 2, 2, 2127, 2128, 7, 86, 2, 2, 2128, 2129, 7, 67, 2, 2, 2129, 2130, 7, 68, 2, 2, 2130, 2131, 7, 67, 2, 2, 2131, 2132, 7, 85, 2, 2, 2132, 2133, 7, 71, 2, 2, 2133, 80, 3, 2, 2, 2, 2134, 2135, 7, 70, 2, 2, 2135, 2136, 7, 67, 2, 2, 2136, 2137, 7, 86, 2, 2, 2137, 2138, 7, 67, 2, 2, 2138, 2139, 7, 68, 2, 2, 2139, 2140, 7, 67, 2, 2, 2140, 2141, 7, 85, 2, 2, 2141, 2142, 7, 71, 2, 2, 2142, 2143, 7, 85, 2, 2, 2143, 82, 3, 2, 2, 2, 2144, 2145, 7, 70, 2, 2, 2145, 2146, 7, 71, 2, 2, 2146, 2147, 7, 69, 2, 2, 2147, 2148, 7, 78, 2, 2, 2148, 2149, 7, 67, 2, 2, 2149, 2150, 7, 84, 2, 2, 2150, 2151, 7, 71, 2, 2, 2151, 84, 3, 2, 2, 2, 2152, 2153, 7, 70, 2, 2, 2153, 2154, 7, 71, 2, 2, 2154, 2155, 7, 72, 2, 2, 2155, 2156, 7, 67, 2, 2, 2156, 2157, 7, 87, 2, 2, 2157, 2158, 7, 78, 2, 2, 2158, 2159, 7, 86, 2, 2, 2159, 86, 3, 2, 2, 2, 2160, 2161, 7, 70, 2, 2, 2161, 2162, 7, 71, 2, 2, 2162, 2163, 7, 78, 2, 2, 2163, 2164, 7, 67, 2, 2, 2164, 2165, 7, 91, 2, 2, 2165, 2166, 7, 71, 2, 2, 2166, 2167, 7, 70, 2, 2, 2167, 88, 3, 2, 2, 2, 2168, 2169, 7, 70, 2, 2, 2169, 2170, 7, 71, 2, 2, 2170, 2171, 7, 78, 2, 2, 2171, 2172, 7, 71, 2, 2, 2172, 2173, 7, 86, 2, 2, 2173, 2174, 7, 71, 2, 2, 2174, 90, 3, 2, 2, 2, 2175, 2176, 7, 70, 2, 2, 2176, 2177, 7, 71, 2, 2, 2177, 2178, 7, 85, 2, 2, 2178, 2179, 7, 69, 2, 2, 2179, 92, 3, 2, 2, 2, 2180, 2181, 7, 70, 2, 2, 2181, 2182, 7, 71, 2, 2, 2182, 2183, 7, 85, 2, 2, 2183, 2184, 7, 69, 2, 2, 2184, 2185, 7, 84, 2, 2, 2185, 2186, 7, 75, 2, 2, 2186, 2187, 7, 68, 2, 2, 2187, 2188, 7, 71, 2, 2, 2188, 94, 3, 2, 2, 2, 2189, 2190, 7, 70, 2, 2, 2190, 2191, 7, 71, 2, 2, 2191, 2192, 7, 86, 2, 2, 2192, 2193, 7, 71, 2, 2, 2193, 2194, 7, 84, 2, 2, 2194, 2195, 7, 79, 2, 2, 2195, 2196, 7, 75, 2, 2, 2196, 2197, 7, 80, 2, 2, 2197, 2198, 7, 75, 2, 2, 2198, 2199, 7, 85, 2, 2, 2199, 2200, 7, 86, 2, 2, 2200, 2201, 7, 75, 2, 2, 2201, 2202, 7, 69, 2, 2, 2202, 96, 3, 2, 2, 2, 2203, 2204, 7, 70, 2, 2, 2204, 2205, 7, 75, 2, 2, 2205, 2206, 7, 67, 2, 2, 2206, 2207, 7, 73, 2, 2, 2207, 2208, 7, 80, 2, 2, 2208, 2209, 7, 81, 2, 2, 2209, 2210, 7, 85, 2, 2, 2210, 2211, 7, 86, 2, 2, 2211, 2212, 7, 75, 2, 2, 2212, 2213, 7, 69, 2, 2, 2213, 2214, 7, 85, 2, 2, 2214, 98, 3, 2, 2, 2, 2215, 2216, 7, 70, 2, 2, 2216, 2217, 7, 75, 2, 2, 2217, 2218, 7, 85, 2, 2, 2218, 2219, 7, 86, 2, 2, 2219, 2220, 7, 75, 2, 2, 2220, 2221, 7, 80, 2, 2, 2221, 2222, 7, 69, 2, 2, 2222, 2223, 7, 86, 2, 2, 2223, 100, 3, 2, 2, 2, 2224, 2225, 7, 70, 2, 2, 2225, 2226, 7, 75, 2, 2, 2226, 2227, 7, 85, 2, 2, 2227, 2228, 7, 86, 2, 2, 2228, 2229, 7, 75, 2, 2, 2229, 2230, 7, 80, 2, 2, 2230, 2231, 7, 69, 2, 2, 2231, 2232, 7, 86, 2, 2, 2232, 2233, 7, 84, 2, 2, 2233, 2234, 7, 81, 2, 2, 2234, 2235, 7, 89, 2, 2, 2235, 102, 3, 2, 2, 2, 2236, 2237, 7, 70, 2, 2, 2237, 2238, 7, 84, 2, 2, 2238, 2239, 7, 81, 2, 2, 2239, 2240, 7, 82, 2, 2, 2240, 104, 3, 2, 2, 2, 2241, 2242, 7, 71, 2, 2, 2242, 2243, 7, 67, 2, 2, 2243, 2244, 7, 69, 2, 2, 2244, 2245, 7, 74, 2, 2, 2245, 106, 3, 2, 2, 2, 2246, 2247, 7, 71, 2, 2, 2247, 2248, 7, 78, 2, 2, 2248, 2249, 7, 85, 2, 2, 2249, 2250, 7, 71, 2, 2, 2250, 108, 3, 2, 2, 2, 2251, 2252, 7, 71, 2, 2, 2252, 2253, 7, 78, 2, 2, 2253, 2254, 7, 85, 2, 2, 2254, 2255, 7, 71, 2, 2, 2255, 2256, 7, 75, 2, 2, 2256, 2257, 7, 72, 2, 2, 2257, 110, 3, 2, 2, 2, 2258, 2259, 7, 71, 2, 2, 2259, 2260, 7, 79, 2, 2, 2260, 2261, 7, 82, 2, 2, 2261, 2262, 7, 86, 2, 2, 2262, 2263, 7, 91, 2, 2, 2263, 112, 3, 2, 2, 2, 2264, 2265, 7, 71, 2, 2, 2265, 2266, 7, 80, 2, 2, 2266, 2267, 7, 69, 2, 2, 2267, 2268, 7, 78, 2, 2, 2268, 2269, 7, 81, 2, 2, 2269, 2270, 7, 85, 2, 2, 2270, 2271, 7, 71, 2, 2, 2271, 2272, 7, 70, 2, 2, 2272, 114, 3, 2, 2, 2, 2273, 2274, 7, 71, 2, 2, 2274, 2275, 7, 80, 2, 2, 2275, 2276, 7, 72, 2, 2, 2276, 2277, 7, 81, 2, 2, 2277, 2278, 7, 84, 2, 2, 2278, 2279, 7, 69, 2, 2, 2279, 2280, 7, 71, 2, 2, 2280, 2281, 7, 70, 2, 2, 2281, 116, 3, 2, 2, 2, 2282, 2283, 7, 71, 2, 2, 2283, 2284, 7, 85, 2, 2, 2284, 2285, 7, 69, 2, 2, 2285, 2286, 7, 67, 2, 2, 2286, 2287, 7, 82, 2, 2, 2287, 2288, 7, 71, 2, 2, 2288, 2289, 7, 70, 2, 2, 2289, 118, 3, 2, 2, 2, 2290, 2291, 7, 71, 2, 2, 2291, 2292, 7, 90, 2, 2, 2292, 2293, 7, 69, 2, 2, 2293, 2294, 7, 71, 2, 2, 2294, 2295, 7, 82, 2, 2, 2295, 2296, 7, 86, 2, 2, 2296, 120, 3, 2, 2, 2, 2297, 2298, 7, 71, 2, 2, 2298, 2299, 7, 90, 2, 2, 2299, 2300, 7, 75, 2, 2, 2300, 2301, 7, 85, 2, 2, 2301, 2302, 7, 86, 2, 2, 2302, 2303, 7, 85, 2, 2, 2303, 122, 3, 2, 2, 2, 2304, 2305, 7, 71, 2, 2, 2305, 2306, 7, 90, 2, 2, 2306, 2307, 7, 75, 2, 2, 2307, 2308, 7, 86, 2, 2, 2308, 124, 3, 2, 2, 2, 2309, 2310, 7, 71, 2, 2, 2310, 2311, 7, 90, 2, 2, 2311, 2312, 7, 82, 2, 2, 2312, 2313, 7, 78, 2, 2, 2313, 2314, 7, 67, 2, 2, 2314, 2315, 7, 75, 2, 2, 2315, 2316, 7, 80, 2, 2, 2316, 126, 3, 2, 2, 2, 2317, 2318, 7, 72, 2, 2, 2318, 2319, 7, 67, 2, 2, 2319, 2320, 7, 78, 2, 2, 2320, 2321, 7, 85, 2, 2, 2321, 2322, 7, 71, 2, 2, 2322, 128, 3, 2, 2, 2, 2323, 2324, 7, 72, 2, 2, 2324, 2325, 7, 71, 2, 2, 2325, 2326, 7, 86, 2, 2, 2326, 2327, 7, 69, 2, 2, 2327, 2328, 7, 74, 2, 2, 2328, 130, 3, 2, 2, 2, 2329, 2330, 7, 72, 2, 2, 2330, 2331, 7, 81, 2, 2, 2331, 2332, 7, 84, 2, 2, 2332, 132, 3, 2, 2, 2, 2333, 2334, 7, 72, 2, 2, 2334, 2335, 7, 81, 2, 2, 2335, 2336, 7, 84, 2, 2, 2336, 2337, 7, 69, 2, 2, 2337, 2338, 7, 71, 2, 2, 2338, 134, 3, 2, 2, 2, 2339, 2340, 7, 72, 2, 2, 2340, 2341, 7, 81, 2, 2, 2341, 2342, 7, 84, 2, 2, 2342, 2343, 7, 71, 2, 2, 2343, 2344, 7, 75, 2, 2, 2344, 2345, 7, 73, 2, 2, 2345, 2346, 7, 80, 2, 2, 2346, 136, 3, 2, 2, 2, 2347, 2348, 7, 72, 2, 2, 2348, 2349, 7, 84, 2, 2, 2349, 2350, 7, 81, 2, 2, 2350, 2351, 7, 79, 2, 2, 2351, 138, 3, 2, 2, 2, 2352, 2353, 7, 72, 2, 2, 2353, 2354, 7, 87, 2, 2, 2354, 2355, 7, 78, 2, 2, 2355, 2356, 7, 78, 2, 2, 2356, 2357, 7, 86, 2, 2, 2357, 2358, 7, 71, 2, 2, 2358, 2359, 7, 90, 2, 2, 2359, 2360, 7, 86, 2, 2, 2360, 140, 3, 2, 2, 2, 2361, 2362, 7, 73, 2, 2, 2362, 2363, 7, 71, 2, 2, 2363, 2364, 7, 80, 2, 2, 2364, 2365, 7, 71, 2, 2, 2365, 2366, 7, 84, 2, 2, 2366, 2367, 7, 67, 2, 2, 2367, 2368, 7, 86, 2, 2, 2368, 2369, 7, 71, 2, 2, 2369, 142, 3, 2, 2, 2, 2370, 2371, 7, 73, 2, 2, 2371, 2372, 7, 71, 2, 2, 2372, 2373, 7, 80, 2, 2, 2373, 2374, 7, 71, 2, 2, 2374, 2375, 7, 84, 2, 2, 2375, 2376, 7, 67, 2, 2, 2376, 2377, 7, 86, 2, 2, 2377, 2378, 7, 71, 2, 2, 2378, 2379, 7, 70, 2, 2, 2379, 144, 3, 2, 2, 2, 2380, 2381, 7, 73, 2, 2, 2381, 2382, 7, 71, 2, 2, 2382, 2383, 7, 86, 2, 2, 2383, 146, 3, 2, 2, 2, 2384, 2385, 7, 73, 2, 2, 2385, 2386, 7, 84, 2, 2, 2386, 2387, 7, 67, 2, 2, 2387, 2388, 7, 80, 2, 2, 2388, 2389, 7, 86, 2, 2, 2389, 148, 3, 2, 2, 2, 2390, 2391, 7, 73, 2, 2, 2391, 2392, 7, 84, 2, 2, 2392, 2393, 7, 81, 2, 2, 2393, 2394, 7, 87, 2, 2, 2394, 2395, 7, 82, 2, 2, 2395, 150, 3, 2, 2, 2, 2396, 2397, 7, 74, 2, 2, 2397, 2398, 7, 67, 2, 2, 2398, 2399, 7, 88, 2, 2, 2399, 2400, 7, 75, 2, 2, 2400, 2401, 7, 80, 2, 2, 2401, 2402, 7, 73, 2, 2, 2402, 152, 3, 2, 2, 2, 2403, 2404, 7, 74, 2, 2, 2404, 2405, 7, 75, 2, 2, 2405, 2406, 7, 73, 2, 2, 2406, 2407, 7, 74, 2, 2, 2407, 2408, 7, 97, 2, 2, 2408, 2409, 7, 82, 2, 2, 2409, 2410, 7, 84, 2, 2, 2410, 2411, 7, 75, 2, 2, 2411, 2412, 7, 81, 2, 2, 2412, 2413, 7, 84, 2, 2, 2413, 2414, 7, 75, 2, 2, 2414, 2415, 7, 86, 2, 2, 2415, 2416, 7, 91, 2, 2, 2416, 154, 3, 2, 2, 2, 2417, 2418, 7, 74, 2, 2, 2418, 2419, 7, 75, 2, 2, 2419, 2420, 7, 85, 2, 2, 2420, 2421, 7, 86, 2, 2, 2421, 2422, 7, 81, 2, 2, 2422, 2423, 7, 73, 2, 2, 2423, 2424, 7, 84, 2, 2, 2424, 2425, 7, 67, 2, 2, 2425, 2426, 7, 79, 2, 2, 2426, 156, 3, 2, 2, 2, 2427, 2428, 7, 75, 2, 2, 2428, 2429, 7, 72, 2, 2, 2429, 158, 3, 2, 2, 2, 2430, 2431, 7, 75, 2, 2, 2431, 2432, 7, 73, 2, 2, 2432, 2433, 7, 80, 2, 2, 2433, 2434, 7, 81, 2, 2, 2434, 2435, 7, 84, 2, 2, 2435, 2436, 7, 71, 2, 2, 2436, 160, 3, 2, 2, 2, 2437, 2438, 7, 75, 2, 2, 2438, 2439, 7, 80, 2, 2, 2439, 162, 3, 2, 2, 2, 2440, 2441, 7, 75, 2, 2, 2441, 2442, 7, 80, 2, 2, 2442, 2443, 7, 67, 2, 2, 2443, 2444, 7, 69, 2, 2, 2444, 2445, 7, 86, 2, 2, 2445, 2446, 7, 75, 2, 2, 2446, 2447, 7, 88, 2, 2, 2447, 2448, 7, 71, 2, 2, 2448, 164, 3, 2, 2, 2, 2449, 2450, 7, 75, 2, 2, 2450, 2451, 7, 80, 2, 2, 2451, 2452, 7, 70, 2, 2, 2452, 2453, 7, 71, 2, 2, 2453, 2454, 7, 90, 2, 2, 2454, 166, 3, 2, 2, 2, 2455, 2456, 7, 75, 2, 2, 2456, 2457, 7, 80, 2, 2, 2457, 2458, 7, 72, 2, 2, 2458, 2459, 7, 75, 2, 2, 2459, 2460, 7, 78, 2, 2, 2460, 2461, 7, 71, 2, 2, 2461, 168, 3, 2, 2, 2, 2462, 2463, 7, 75, 2, 2, 2463, 2464, 7, 80, 2, 2, 2464, 2465, 7, 80, 2, 2, 2465, 2466, 7, 71, 2, 2, 2466, 2467, 7, 84, 2, 2, 2467, 170, 3, 2, 2, 2, 2468, 2469, 7, 75, 2, 2, 2469, 2470, 7, 80, 2, 2, 2470, 2471, 7, 81, 2, 2, 2471, 2472, 7, 87, 2, 2, 2472, 2473, 7, 86, 2, 2, 2473, 172, 3, 2, 2, 2, 2474, 2475, 7, 75, 2, 2, 2475, 2476, 7, 80, 2, 2, 2476, 2477, 7, 85, 2, 2, 2477, 2478, 7, 71, 2, 2, 2478, 2479, 7, 84, 2, 2, 2479, 2480, 7, 86, 2, 2, 2480, 174, 3, 2, 2, 2, 2481, 2482, 7, 75, 2, 2, 2482, 2483, 7, 80, 2, 2, 2483, 2484, 7, 86, 2, 2, 2484, 2485, 7, 71, 2, 2, 2485, 2486, 7, 84, 2, 2, 2486, 2487, 7, 88, 2, 2, 2487, 2488, 7, 67, 2, 2, 2488, 2489, 7, 78, 2, 2, 2489, 176, 3, 2, 2, 2, 2490, 2491, 7, 75, 2, 2, 2491, 2492, 7, 80, 2, 2, 2492, 2493, 7, 86, 2, 2, 2493, 2494, 7, 81, 2, 2, 2494, 178, 3, 2, 2, 2, 2495, 2496, 7, 75, 2, 2, 2496, 2497, 7, 85, 2, 2, 2497, 180, 3, 2, 2, 2, 2498, 2499, 7, 75, 2, 2, 2499, 2500, 7, 86, 2, 2, 2500, 2501, 7, 71, 2, 2, 2501, 2502, 7, 84, 2, 2, 2502, 2503, 7, 67, 2, 2, 2503, 2504, 7, 86, 2, 2, 2504, 2505, 7, 71, 2, 2, 2505, 182, 3, 2, 2, 2, 2506, 2507, 7, 76, 2, 2, 2507, 2508, 7, 81, 2, 2, 2508, 2509, 7, 75, 2, 2, 2509, 2510, 7, 80, 2, 2, 2510, 184, 3, 2, 2, 2, 2511, 2512, 7, 77, 2, 2, 2512, 2513, 7, 71, 2, 2, 2513, 2514, 7, 91, 2, 2, 2514, 186, 3, 2, 2, 2, 2515, 2516, 7, 77, 2, 2, 2516, 2517, 7, 71, 2, 2, 2517, 2518, 7, 91, 2, 2, 2518, 2519, 7, 85, 2, 2, 2519, 188, 3, 2, 2, 2, 2520, 2521, 7, 77, 2, 2, 2521, 2522, 7, 75, 2, 2, 2522, 2523, 7, 78, 2, 2, 2523, 2524, 7, 78, 2, 2, 2524, 190, 3, 2, 2, 2, 2525, 2526, 7, 78, 2, 2, 2526, 2527, 7, 67, 2, 2, 2527, 2528, 7, 86, 2, 2, 2528, 2529, 7, 71, 2, 2, 2529, 2530, 7, 84, 2, 2, 2530, 2531, 7, 67, 2, 2, 2531, 2532, 7, 78, 2, 2, 2532, 192, 3, 2, 2, 2, 2533, 2534, 7, 78, 2, 2, 2534, 2535, 7, 71, 2, 2, 2535, 2536, 7, 67, 2, 2, 2536, 2537, 7, 70, 2, 2, 2537, 2538, 7, 75, 2, 2, 2538, 2539, 7, 80, 2, 2, 2539, 2540, 7, 73, 2, 2, 2540, 194, 3, 2, 2, 2, 2541, 2542, 7, 78, 2, 2, 2542, 2543, 7, 71, 2, 2, 2543, 2544, 7, 67, 2, 2, 2544, 2545, 7, 88, 2, 2, 2545, 2546, 7, 71, 2, 2, 2546, 196, 3, 2, 2, 2, 2547, 2548, 7, 78, 2, 2, 2548, 2549, 7, 71, 2, 2, 2549, 2550, 7, 72, 2, 2, 2550, 2551, 7, 86, 2, 2, 2551, 198, 3, 2, 2, 2, 2552, 2553, 7, 78, 2, 2, 2553, 2554, 7, 75, 2, 2, 2554, 2555, 7, 77, 2, 2, 2555, 2556, 7, 71, 2, 2, 2556, 200, 3, 2, 2, 2, 2557, 2558, 7, 78, 2, 2, 2558, 2559, 7, 75, 2, 2, 2559, 2560, 7, 79, 2, 2, 2560, 2561, 7, 75, 2, 2, 2561, 2562, 7, 86, 2, 2, 2562, 202, 3, 2, 2, 2, 2563, 2564, 7, 78, 2, 2, 2564, 2565, 7, 75, 2, 2, 2565, 2566, 7, 80, 2, 2, 2566, 2567, 7, 71, 2, 2, 2567, 2568, 7, 67, 2, 2, 2568, 2569, 7, 84, 2, 2, 2569, 204, 3, 2, 2, 2, 2570, 2571, 7, 78, 2, 2, 2571, 2572, 7, 75, 2, 2, 2572, 2573, 7, 80, 2, 2, 2573, 2574, 7, 71, 2, 2, 2574, 2575, 7, 85, 2, 2, 2575, 206, 3, 2, 2, 2, 2576, 2577, 7, 78, 2, 2, 2577, 2578, 7, 81, 2, 2, 2578, 2579, 7, 67, 2, 2, 2579, 2580, 7, 70, 2, 2, 2580, 208, 3, 2, 2, 2, 2581, 2582, 7, 78, 2, 2, 2582, 2583, 7, 81, 2, 2, 2583, 2584, 7, 69, 2, 2, 2584, 2585, 7, 77, 2, 2, 2585, 210, 3, 2, 2, 2, 2586, 2587, 7, 78, 2, 2, 2587, 2588, 7, 81, 2, 2, 2588, 2589, 7, 69, 2, 2, 2589, 2590, 7, 77, 2, 2, 2590, 2591, 7, 71, 2, 2, 2591, 2592, 7, 70, 2, 2, 2592, 212, 3, 2, 2, 2, 2593, 2594, 7, 78, 2, 2, 2594, 2595, 7, 81, 2, 2, 2595, 2596, 7, 81, 2, 2, 2596, 2597, 7, 82, 2, 2, 2597, 214, 3, 2, 2, 2, 2598, 2599, 7, 78, 2, 2, 2599, 2600, 7, 81, 2, 2, 2600, 2601, 7, 89, 2, 2, 2601, 2602, 7, 97, 2, 2, 2602, 2603, 7, 82, 2, 2, 2603, 2604, 7, 84, 2, 2, 2604, 2605, 7, 75, 2, 2, 2605, 2606, 7, 81, 2, 2, 2606, 2607, 7, 84, 2, 2, 2607, 2608, 7, 75, 2, 2, 2608, 2609, 7, 86, 2, 2, 2609, 2610, 7, 91, 2, 2, 2610, 216, 3, 2, 2, 2, 2611, 2612, 7, 79, 2, 2, 2612, 2613, 7, 67, 2, 2, 2613, 2614, 7, 85, 2, 2, 2614, 2615, 7, 86, 2, 2, 2615, 2616, 7, 71, 2, 2, 2616, 2617, 7, 84, 2, 2, 2617, 2618, 7, 97, 2, 2, 2618, 2619, 7, 68, 2, 2, 2619, 2620, 7, 75, 2, 2, 2620, 2621, 7, 80, 2, 2, 2621, 2622, 7, 70, 2, 2, 2622, 218, 3, 2, 2, 2, 2623, 2624, 7, 79, 2, 2, 2624, 2625, 7, 67, 2, 2, 2625, 2626, 7, 85, 2, 2, 2626, 2627, 7, 86, 2, 2, 2627, 2628, 7, 71, 2, 2, 2628, 2629, 7, 84, 2, 2, 2629, 2630, 7, 97, 2, 2, 2630, 2631, 7, 85, 2, 2, 2631, 2632, 7, 85, 2, 2, 2632, 2633, 7, 78, 2, 2, 2633, 2634, 7, 97, 2, 2, 2634, 2635, 7, 88, 2, 2, 2635, 2636, 7, 71, 2, 2, 2636, 2637, 7, 84, 2, 2, 2637, 2638, 7, 75, 2, 2, 2638, 2639, 7, 72, 2, 2, 2639, 2640, 7, 91, 2, 2, 2640, 2641, 7, 97, 2, 2, 2641, 2642, 7, 85, 2, 2, 2642, 2643, 7, 71, 2, 2, 2643, 2644, 7, 84, 2, 2, 2644, 2645, 7, 88, 2, 2, 2645, 2646, 7, 71, 2, 2, 2646, 2647, 7, 84, 2, 2, 2647, 2648, 7, 97, 2, 2, 2648, 2649, 7, 69, 2, 2, 2649, 2650, 7, 71, 2, 2, 2650, 2651, 7, 84, 2, 2, 2651, 2652, 7, 86, 2, 2, 2652, 220, 3, 2, 2, 2, 2653, 2654, 7, 79, 2, 2, 2654, 2655, 7, 67, 2, 2, 2655, 2656, 7, 86, 2, 2, 2656, 2657, 7, 69, 2, 2, 2657, 2658, 7, 74, 2, 2, 2658, 222, 3, 2, 2, 2, 2659, 2660, 7, 79, 2, 2, 2660, 2661, 7, 67, 2, 2, 2661, 2662, 7, 90, 2, 2, 2662, 2663, 7, 88, 2, 2, 2663, 2664, 7, 67, 2, 2, 2664, 2665, 7, 78, 2, 2, 2665, 2666, 7, 87, 2, 2, 2666, 2667, 7, 71, 2, 2, 2667, 224, 3, 2, 2, 2, 2668, 2669, 7, 79, 2, 2, 2669, 2670, 7, 81, 2, 2, 2670, 2671, 7, 70, 2, 2, 2671, 2672, 7, 75, 2, 2, 2672, 2673, 7, 72, 2, 2, 2673, 2674, 7, 75, 2, 2, 2674, 2675, 7, 71, 2, 2, 2675, 2676, 7, 85, 2, 2, 2676, 226, 3, 2, 2, 2, 2677, 2678, 7, 80, 2, 2, 2678, 2679, 7, 67, 2, 2, 2679, 2680, 7, 86, 2, 2, 2680, 2681, 7, 87, 2, 2, 2681, 2682, 7, 84, 2, 2, 2682, 2683, 7, 67, 2, 2, 2683, 2684, 7, 78, 2, 2, 2684, 228, 3, 2, 2, 2, 2685, 2686, 7, 80, 2, 2, 2686, 2687, 7, 81, 2, 2, 2687, 2688, 7, 86, 2, 2, 2688, 230, 3, 2, 2, 2, 2689, 2690, 7, 80, 2, 2, 2690, 2691, 7, 81, 2, 2, 2691, 2692, 7, 97, 2, 2, 2692, 2693, 7, 89, 2, 2, 2693, 2694, 7, 84, 2, 2, 2694, 2695, 7, 75, 2, 2, 2695, 2696, 7, 86, 2, 2, 2696, 2697, 7, 71, 2, 2, 2697, 2698, 7, 97, 2, 2, 2698, 2699, 7, 86, 2, 2, 2699, 2700, 7, 81, 2, 2, 2700, 2701, 7, 97, 2, 2, 2701, 2702, 7, 68, 2, 2, 2702, 2703, 7, 75, 2, 2, 2703, 2704, 7, 80, 2, 2, 2704, 2705, 7, 78, 2, 2, 2705, 2706, 7, 81, 2, 2, 2706, 2707, 7, 73, 2, 2, 2707, 232, 3, 2, 2, 2, 2708, 2709, 7, 80, 2, 2, 2709, 2710, 7, 87, 2, 2, 2710, 2711, 7, 78, 2, 2, 2711, 2712, 7, 78, 2, 2, 2712, 234, 3, 2, 2, 2, 2713, 2714, 7, 80, 2, 2, 2714, 2715, 7, 87, 2, 2, 2715, 2716, 7, 79, 2, 2, 2716, 2717, 7, 68, 2, 2, 2717, 2718, 7, 71, 2, 2, 2718, 2719, 7, 84, 2, 2, 2719, 236, 3, 2, 2, 2, 2720, 2721, 7, 85, 2, 2, 2721, 2722, 7, 86, 2, 2, 2722, 2723, 7, 84, 2, 2, 2723, 2724, 7, 71, 2, 2, 2724, 2725, 7, 67, 2, 2, 2725, 2726, 7, 79, 2, 2, 2726, 238, 3, 2, 2, 2, 2727, 2728, 7, 81, 2, 2, 2728, 2729, 7, 80, 2, 2, 2729, 240, 3, 2, 2, 2, 2730, 2731, 7, 81, 2, 2, 2731, 2732, 7, 82, 2, 2, 2732, 2733, 7, 86, 2, 2, 2733, 2734, 7, 75, 2, 2, 2734, 2735, 7, 79, 2, 2, 2735, 2736, 7, 75, 2, 2, 2736, 2737, 7, 92, 2, 2, 2737, 2738, 7, 71, 2, 2, 2738, 242, 3, 2, 2, 2, 2739, 2740, 7, 81, 2, 2, 2740, 2741, 7, 82, 2, 2, 2741, 2742, 7, 86, 2, 2, 2742, 2743, 7, 75, 2, 2, 2743, 2744, 7, 81, 2, 2, 2744, 2745, 7, 80, 2, 2, 2745, 244, 3, 2, 2, 2, 2746, 2747, 7, 81, 2, 2, 2747, 2748, 7, 82, 2, 2, 2748, 2749, 7, 86, 2, 2, 2749, 2750, 7, 75, 2, 2, 2750, 2751, 7, 81, 2, 2, 2751, 2752, 7, 80, 2, 2, 2752, 2753, 7, 67, 2, 2, 2753, 2754, 7, 78, 2, 2, 2754, 246, 3, 2, 2, 2, 2755, 2756, 7, 81, 2, 2, 2756, 2757, 7, 82, 2, 2, 2757, 2758, 7, 86, 2, 2, 2758, 2759, 7, 75, 2, 2, 2759, 2760, 7, 81, 2, 2, 2760, 2761, 7, 80, 2, 2, 2761, 2762, 7, 67, 2, 2, 2762, 2763, 7, 78, 2, 2, 2763, 2764, 7, 78, 2, 2, 2764, 2765, 7, 91, 2, 2, 2765, 248, 3, 2, 2, 2, 2766, 2767, 7, 81, 2, 2, 2767, 2768, 7, 84, 2, 2, 2768, 250, 3, 2, 2, 2, 2769, 2770, 7, 81, 2, 2, 2770, 2771, 7, 84, 2, 2, 2771, 2772, 7, 70, 2, 2, 2772, 2773, 7, 71, 2, 2, 2773, 2774, 7, 84, 2, 2, 2774, 252, 3, 2, 2, 2, 2775, 2776, 7, 81, 2, 2, 2776, 2777, 7, 87, 2, 2, 2777, 2778, 7, 86, 2, 2, 2778, 254, 3, 2, 2, 2, 2779, 2780, 7, 81, 2, 2, 2780, 2781, 7, 87, 2, 2, 2781, 2782, 7, 86, 2, 2, 2782, 2783, 7, 71, 2, 2, 2783, 2784, 7, 84, 2, 2, 2784, 256, 3, 2, 2, 2, 2785, 2786, 7, 81, 2, 2, 2786, 2787, 7, 87, 2, 2, 2787, 2788, 7, 86, 2, 2, 2788, 2789, 7, 72, 2, 2, 2789, 2790, 7, 75, 2, 2, 2790, 2791, 7, 78, 2, 2, 2791, 2792, 7, 71, 2, 2, 2792, 258, 3, 2, 2, 2, 2793, 2794, 7, 81, 2, 2, 2794, 2795, 7, 88, 2, 2, 2795, 2796, 7, 71, 2, 2, 2796, 2797, 7, 84, 2, 2, 2797, 260, 3, 2, 2, 2, 2798, 2799, 7, 82, 2, 2, 2799, 2800, 7, 67, 2, 2, 2800, 2801, 7, 84, 2, 2, 2801, 2802, 7, 86, 2, 2, 2802, 2803, 7, 75, 2, 2, 2803, 2804, 7, 86, 2, 2, 2804, 2805, 7, 75, 2, 2, 2805, 2806, 7, 81, 2, 2, 2806, 2807, 7, 80, 2, 2, 2807, 262, 3, 2, 2, 2, 2808, 2809, 7, 82, 2, 2, 2809, 2810, 7, 84, 2, 2, 2810, 2811, 7, 75, 2, 2, 2811, 2812, 7, 79, 2, 2, 2812, 2813, 7, 67, 2, 2, 2813, 2814, 7, 84, 2, 2, 2814, 2815, 7, 91, 2, 2, 2815, 264, 3, 2, 2, 2, 2816, 2817, 7, 82, 2, 2, 2817, 2818, 7, 84, 2, 2, 2818, 2819, 7, 81, 2, 2, 2819, 2820, 7, 69, 2, 2, 2820, 2821, 7, 71, 2, 2, 2821, 2822, 7, 70, 2, 2, 2822, 2823, 7, 87, 2, 2, 2823, 2824, 7, 84, 2, 2, 2824, 2825, 7, 71, 2, 2, 2825, 266, 3, 2, 2, 2, 2826, 2827, 7, 82, 2, 2, 2827, 2828, 7, 87, 2, 2, 2828, 2829, 7, 84, 2, 2, 2829, 2830, 7, 73, 2, 2, 2830, 2831, 7, 71, 2, 2, 2831, 268, 3, 2, 2, 2, 2832, 2833, 7, 84, 2, 2, 2833, 2834, 7, 67, 2, 2, 2834, 2835, 7, 80, 2, 2, 2835, 2836, 7, 73, 2, 2, 2836, 2837, 7, 71, 2, 2, 2837, 270, 3, 2, 2, 2, 2838, 2839, 7, 84, 2, 2, 2839, 2840, 7, 71, 2, 2, 2840, 2841, 7, 67, 2, 2, 2841, 2842, 7, 70, 2, 2, 2842, 272, 3, 2, 2, 2, 2843, 2844, 7, 84, 2, 2, 2844, 2845, 7, 71, 2, 2, 2845, 2846, 7, 67, 2, 2, 2846, 2847, 7, 70, 2, 2, 2847, 2848, 7, 85, 2, 2, 2848, 274, 3, 2, 2, 2, 2849, 2850, 7, 84, 2, 2, 2850, 2851, 7, 71, 2, 2, 2851, 2852, 7, 72, 2, 2, 2852, 2853, 7, 71, 2, 2, 2853, 2854, 7, 84, 2, 2, 2854, 2855, 7, 71, 2, 2, 2855, 2856, 7, 80, 2, 2, 2856, 2857, 7, 69, 2, 2, 2857, 2858, 7, 71, 2, 2, 2858, 276, 3, 2, 2, 2, 2859, 2860, 7, 84, 2, 2, 2860, 2861, 7, 71, 2, 2, 2861, 2862, 7, 72, 2, 2, 2862, 2863, 7, 71, 2, 2, 2863, 2864, 7, 84, 2, 2, 2864, 2865, 7, 71, 2, 2, 2865, 2866, 7, 80, 2, 2, 2866, 2867, 7, 69, 2, 2, 2867, 2868, 7, 71, 2, 2, 2868, 2869, 7, 85, 2, 2, 2869, 278, 3, 2, 2, 2, 2870, 2871, 7, 84, 2, 2, 2871, 2872, 7, 71, 2, 2, 2872, 2873, 7, 73, 2, 2, 2873, 2874, 7, 71, 2, 2, 2874, 2875, 7, 90, 2, 2, 2875, 2876, 7, 82, 2, 2, 2876, 280, 3, 2, 2, 2, 2877, 2878, 7, 84, 2, 2, 2878, 2879, 7, 71, 2, 2, 2879, 2880, 7, 78, 2, 2, 2880, 2881, 7, 71, 2, 2, 2881, 2882, 7, 67, 2, 2, 2882, 2883, 7, 85, 2, 2, 2883, 2884, 7, 71, 2, 2, 2884, 282, 3, 2, 2, 2, 2885, 2886, 7, 84, 2, 2, 2886, 2887, 7, 71, 2, 2, 2887, 2888, 7, 80, 2, 2, 2888, 2889, 7, 67, 2, 2, 2889, 2890, 7, 79, 2, 2, 2890, 2891, 7, 71, 2, 2, 2891, 284, 3, 2, 2, 2, 2892, 2893, 7, 84, 2, 2, 2893, 2894, 7, 71, 2, 2, 2894, 2895, 7, 82, 2, 2, 2895, 2896, 7, 71, 2, 2, 2896, 2897, 7, 67, 2, 2, 2897, 2898, 7, 86, 2, 2, 2898, 286, 3, 2, 2, 2, 2899, 2900, 7, 84, 2, 2, 2900, 2901, 7, 71, 2, 2, 2901, 2902, 7, 82, 2, 2, 2902, 2903, 7, 78, 2, 2, 2903, 2904, 7, 67, 2, 2, 2904, 2905, 7, 69, 2, 2, 2905, 2906, 7, 71, 2, 2, 2906, 288, 3, 2, 2, 2, 2907, 2908, 7, 84, 2, 2, 2908, 2909, 7, 71, 2, 2, 2909, 2910, 7, 83, 2, 2, 2910, 2911, 7, 87, 2, 2, 2911, 2912, 7, 75, 2, 2, 2912, 2913, 7, 84, 2, 2, 2913, 2914, 7, 71, 2, 2, 2914, 290, 3, 2, 2, 2, 2915, 2916, 7, 84, 2, 2, 2916, 2917, 7, 71, 2, 2, 2917, 2918, 7, 85, 2, 2, 2918, 2919, 7, 75, 2, 2, 2919, 2920, 7, 73, 2, 2, 2920, 2921, 7, 80, 2, 2, 2921, 2922, 7, 67, 2, 2, 2922, 2923, 7, 78, 2, 2, 2923, 292, 3, 2, 2, 2, 2924, 2925, 7, 84, 2, 2, 2925, 2926, 7, 71, 2, 2, 2926, 2927, 7, 85, 2, 2, 2927, 2928, 7, 86, 2, 2, 2928, 2929, 7, 84, 2, 2, 2929, 2930, 7, 75, 2, 2, 2930, 2931, 7, 69, 2, 2, 2931, 2932, 7, 86, 2, 2, 2932, 294, 3, 2, 2, 2, 2933, 2934, 7, 84, 2, 2, 2934, 2935, 7, 71, 2, 2, 2935, 2936, 7, 86, 2, 2, 2936, 2937, 7, 67, 2, 2, 2937, 2938, 7, 75, 2, 2, 2938, 2939, 7, 80, 2, 2, 2939, 296, 3, 2, 2, 2, 2940, 2941, 7, 84, 2, 2, 2941, 2942, 7, 71, 2, 2, 2942, 2943, 7, 86, 2, 2, 2943, 2944, 7, 87, 2, 2, 2944, 2945, 7, 84, 2, 2, 2945, 2946, 7, 80, 2, 2, 2946, 298, 3, 2, 2, 2, 2947, 2948, 7, 84, 2, 2, 2948, 2949, 7, 71, 2, 2, 2949, 2950, 7, 88, 2, 2, 2950, 2951, 7, 81, 2, 2, 2951, 2952, 7, 77, 2, 2, 2952, 2953, 7, 71, 2, 2, 2953, 300, 3, 2, 2, 2, 2954, 2955, 7, 84, 2, 2, 2955, 2956, 7, 75, 2, 2, 2956, 2957, 7, 73, 2, 2, 2957, 2958, 7, 74, 2, 2, 2958, 2959, 7, 86, 2, 2, 2959, 302, 3, 2, 2, 2, 2960, 2961, 7, 84, 2, 2, 2961, 2962, 7, 78, 2, 2, 2962, 2963, 7, 75, 2, 2, 2963, 2964, 7, 77, 2, 2, 2964, 2965, 7, 71, 2, 2, 2965, 304, 3, 2, 2, 2, 2966, 2967, 7, 85, 2, 2, 2967, 2968, 7, 69, 2, 2, 2968, 2969, 7, 74, 2, 2, 2969, 2970, 7, 71, 2, 2, 2970, 2971, 7, 79, 2, 2, 2971, 2972, 7, 67, 2, 2, 2972, 306, 3, 2, 2, 2, 2973, 2974, 7, 85, 2, 2, 2974, 2975, 7, 69, 2, 2, 2975, 2976, 7, 74, 2, 2, 2976, 2977, 7, 71, 2, 2, 2977, 2978, 7, 79, 2, 2, 2978, 2979, 7, 67, 2, 2, 2979, 2980, 7, 85, 2, 2, 2980, 308, 3, 2, 2, 2, 2981, 2982, 7, 85, 2, 2, 2982, 2983, 7, 71, 2, 2, 2983, 2984, 7, 78, 2, 2, 2984, 2985, 7, 71, 2, 2, 2985, 2986, 7, 69, 2, 2, 2986, 2987, 7, 86, 2, 2, 2987, 310, 3, 2, 2, 2, 2988, 2989, 7, 85, 2, 2, 2989, 2990, 7, 71, 2, 2, 2990, 2991, 7, 86, 2, 2, 2991, 312, 3, 2, 2, 2, 2992, 2993, 7, 85, 2, 2, 2993, 2994, 7, 71, 2, 2, 2994, 2995, 7, 82, 2, 2, 2995, 2996, 7, 67, 2, 2, 2996, 2997, 7, 84, 2, 2, 2997, 2998, 7, 67, 2, 2, 2998, 2999, 7, 86, 2, 2, 2999, 3000, 7, 81, 2, 2, 3000, 3001, 7, 84, 2, 2, 3001, 314, 3, 2, 2, 2, 3002, 3003, 7, 85, 2, 2, 3003, 3004, 7, 74, 2, 2, 3004, 3005, 7, 81, 2, 2, 3005, 3006, 7, 89, 2, 2, 3006, 316, 3, 2, 2, 2, 3007, 3008, 7, 85, 2, 2, 3008, 3009, 7, 75, 2, 2, 3009, 3010, 7, 73, 2, 2, 3010, 3011, 7, 80, 2, 2, 3011, 3012, 7, 67, 2, 2, 3012, 3013, 7, 78, 2, 2, 3013, 318, 3, 2, 2, 2, 3014, 3015, 7, 85, 2, 2, 3015, 3016, 7, 77, 2, 2, 3016, 3017, 7, 75, 2, 2, 3017, 3018, 7, 82, 2, 2, 3018, 320, 3, 2, 2, 2, 3019, 3020, 7, 85, 2, 2, 3020, 3021, 7, 77, 2, 2, 3021, 3022, 7, 75, 2, 2, 3022, 3023, 7, 82, 2, 2, 3023, 3024, 7, 97, 2, 2, 3024, 3025, 7, 83, 2, 2, 3025, 3026, 7, 87, 2, 2, 3026, 3027, 7, 71, 2, 2, 3027, 3028, 7, 84, 2, 2, 3028, 3029, 7, 91, 2, 2, 3029, 3030, 7, 97, 2, 2, 3030, 3031, 7, 84, 2, 2, 3031, 3032, 7, 71, 2, 2, 3032, 3033, 7, 89, 2, 2, 3033, 3034, 7, 84, 2, 2, 3034, 3035, 7, 75, 2, 2, 3035, 3036, 7, 86, 2, 2, 3036, 3037, 7, 71, 2, 2, 3037, 322, 3, 2, 2, 2, 3038, 3039, 7, 85, 2, 2, 3039, 3040, 7, 82, 2, 2, 3040, 3041, 7, 67, 2, 2, 3041, 3042, 7, 86, 2, 2, 3042, 3043, 7, 75, 2, 2, 3043, 3044, 7, 67, 2, 2, 3044, 3045, 7, 78, 2, 2, 3045, 324, 3, 2, 2, 2, 3046, 3047, 7, 85, 2, 2, 3047, 3048, 7, 83, 2, 2, 3048, 3049, 7, 78, 2, 2, 3049, 326, 3, 2, 2, 2, 3050, 3051, 7, 85, 2, 2, 3051, 3052, 7, 83, 2, 2, 3052, 3053, 7, 78, 2, 2, 3053, 3054, 7, 71, 2, 2, 3054, 3055, 7, 90, 2, 2, 3055, 3056, 7, 69, 2, 2, 3056, 3057, 7, 71, 2, 2, 3057, 3058, 7, 82, 2, 2, 3058, 3059, 7, 86, 2, 2, 3059, 3060, 7, 75, 2, 2, 3060, 3061, 7, 81, 2, 2, 3061, 3062, 7, 80, 2, 2, 3062, 328, 3, 2, 2, 2, 3063, 3064, 7, 85, 2, 2, 3064, 3065, 7, 83, 2, 2, 3065, 3066, 7, 78, 2, 2, 3066, 3067, 7, 85, 2, 2, 3067, 3068, 7, 86, 2, 2, 3068, 3069, 7, 67, 2, 2, 3069, 3070, 7, 86, 2, 2, 3070, 3071, 7, 71, 2, 2, 3071, 330, 3, 2, 2, 2, 3072, 3073, 7, 85, 2, 2, 3073, 3074, 7, 83, 2, 2, 3074, 3075, 7, 78, 2, 2, 3075, 3076, 7, 89, 2, 2, 3076, 3077, 7, 67, 2, 2, 3077, 3078, 7, 84, 2, 2, 3078, 3079, 7, 80, 2, 2, 3079, 3080, 7, 75, 2, 2, 3080, 3081, 7, 80, 2, 2, 3081, 3082, 7, 73, 2, 2, 3082, 332, 3, 2, 2, 2, 3083, 3084, 7, 85, 2, 2, 3084, 3085, 7, 83, 2, 2, 3085, 3086, 7, 78, 2, 2, 3086, 3087, 7, 97, 2, 2, 3087, 3088, 7, 68, 2, 2, 3088, 3089, 7, 75, 2, 2, 3089, 3090, 7, 73, 2, 2, 3090, 3091, 7, 97, 2, 2, 3091, 3092, 7, 84, 2, 2, 3092, 3093, 7, 71, 2, 2, 3093, 3094, 7, 85, 2, 2, 3094, 3095, 7, 87, 2, 2, 3095, 3096, 7, 78, 2, 2, 3096, 3097, 7, 86, 2, 2, 3097, 334, 3, 2, 2, 2, 3098, 3099, 7, 85, 2, 2, 3099, 3100, 7, 83, 2, 2, 3100, 3101, 7, 78, 2, 2, 3101, 3102, 7, 97, 2, 2, 3102, 3103, 7, 69, 2, 2, 3103, 3104, 7, 67, 2, 2, 3104, 3105, 7, 78, 2, 2, 3105, 3106, 7, 69, 2, 2, 3106, 3107, 7, 97, 2, 2, 3107, 3108, 7, 72, 2, 2, 3108, 3109, 7, 81, 2, 2, 3109, 3110, 7, 87, 2, 2, 3110, 3111, 7, 80, 2, 2, 3111, 3112, 7, 70, 2, 2, 3112, 3113, 7, 97, 2, 2, 3113, 3114, 7, 84, 2, 2, 3114, 3115, 7, 81, 2, 2, 3115, 3116, 7, 89, 2, 2, 3116, 3117, 7, 85, 2, 2, 3117, 336, 3, 2, 2, 2, 3118, 3119, 7, 85, 2, 2, 3119, 3120, 7, 83, 2, 2, 3120, 3121, 7, 78, 2, 2, 3121, 3122, 7, 97, 2, 2, 3122, 3123, 7, 85, 2, 2, 3123, 3124, 7, 79, 2, 2, 3124, 3125, 7, 67, 2, 2, 3125, 3126, 7, 78, 2, 2, 3126, 3127, 7, 78, 2, 2, 3127, 3128, 7, 97, 2, 2, 3128, 3129, 7, 84, 2, 2, 3129, 3130, 7, 71, 2, 2, 3130, 3131, 7, 85, 2, 2, 3131, 3132, 7, 87, 2, 2, 3132, 3133, 7, 78, 2, 2, 3133, 3134, 7, 86, 2, 2, 3134, 338, 3, 2, 2, 2, 3135, 3136, 7, 85, 2, 2, 3136, 3137, 7, 85, 2, 2, 3137, 3138, 7, 78, 2, 2, 3138, 340, 3, 2, 2, 2, 3139, 3140, 7, 85, 2, 2, 3140, 3141, 7, 86, 2, 2, 3141, 3142, 7, 67, 2, 2, 3142, 3143, 7, 69, 2, 2, 3143, 3144, 7, 77, 2, 2, 3144, 3145, 7, 71, 2, 2, 3145, 3146, 7, 70, 2, 2, 3146, 342, 3, 2, 2, 2, 3147, 3148, 7, 85, 2, 2, 3148, 3149, 7, 86, 2, 2, 3149, 3150, 7, 67, 2, 2, 3150, 3151, 7, 84, 2, 2, 3151, 3152, 7, 86, 2, 2, 3152, 3153, 7, 75, 2, 2, 3153, 3154, 7, 80, 2, 2, 3154, 3155, 7, 73, 2, 2, 3155, 344, 3, 2, 2, 2, 3156, 3157, 7, 85, 2, 2, 3157, 3158, 7, 86, 2, 2, 3158, 3159, 7, 84, 2, 2, 3159, 3160, 7, 67, 2, 2, 3160, 3161, 7, 75, 2, 2, 3161, 3162, 7, 73, 2, 2, 3162, 3163, 7, 74, 2, 2, 3163, 3164, 7, 86, 2, 2, 3164, 3165, 7, 97, 2, 2, 3165, 3166, 7, 76, 2, 2, 3166, 3167, 7, 81, 2, 2, 3167, 3168, 7, 75, 2, 2, 3168, 3169, 7, 80, 2, 2, 3169, 346, 3, 2, 2, 2, 3170, 3171, 7, 86, 2, 2, 3171, 3172, 7, 67, 2, 2, 3172, 3173, 7, 68, 2, 2, 3173, 3174, 7, 78, 2, 2, 3174, 3175, 7, 71, 2, 2, 3175, 348, 3, 2, 2, 2, 3176, 3177, 7, 86, 2, 2, 3177, 3178, 7, 71, 2, 2, 3178, 3179, 7, 84, 2, 2, 3179, 3180, 7, 79, 2, 2, 3180, 3181, 7, 75, 2, 2, 3181, 3182, 7, 80, 2, 2, 3182, 3183, 7, 67, 2, 2, 3183, 3184, 7, 86, 2, 2, 3184, 3185, 7, 71, 2, 2, 3185, 3186, 7, 70, 2, 2, 3186, 350, 3, 2, 2, 2, 3187, 3188, 7, 86, 2, 2, 3188, 3189, 7, 74, 2, 2, 3189, 3190, 7, 71, 2, 2, 3190, 3191, 7, 80, 2, 2, 3191, 352, 3, 2, 2, 2, 3192, 3193, 7, 86, 2, 2, 3193, 3194, 7, 81, 2, 2, 3194, 354, 3, 2, 2, 2, 3195, 3196, 7, 86, 2, 2, 3196, 3197, 7, 84, 2, 2, 3197, 3198, 7, 67, 2, 2, 3198, 3199, 7, 75, 2, 2, 3199, 3200, 7, 78, 2, 2, 3200, 3201, 7, 75, 2, 2, 3201, 3202, 7, 80, 2, 2, 3202, 3203, 7, 73, 2, 2, 3203, 356, 3, 2, 2, 2, 3204, 3205, 7, 86, 2, 2, 3205, 3206, 7, 84, 2, 2, 3206, 3207, 7, 75, 2, 2, 3207, 3208, 7, 73, 2, 2, 3208, 3209, 7, 73, 2, 2, 3209, 3210, 7, 71, 2, 2, 3210, 3211, 7, 84, 2, 2, 3211, 358, 3, 2, 2, 2, 3212, 3213, 7, 86, 2, 2, 3213, 3214, 7, 84, 2, 2, 3214, 3215, 7, 87, 2, 2, 3215, 3216, 7, 71, 2, 2, 3216, 360, 3, 2, 2, 2, 3217, 3218, 7, 87, 2, 2, 3218, 3219, 7, 80, 2, 2, 3219, 3220, 7, 70, 2, 2, 3220, 3221, 7, 81, 2, 2, 3221, 362, 3, 2, 2, 2, 3222, 3223, 7, 87, 2, 2, 3223, 3224, 7, 80, 2, 2, 3224, 3225, 7, 75, 2, 2, 3225, 3226, 7, 81, 2, 2, 3226, 3227, 7, 80, 2, 2, 3227, 364, 3, 2, 2, 2, 3228, 3229, 7, 87, 2, 2, 3229, 3230, 7, 80, 2, 2, 3230, 3231, 7, 75, 2, 2, 3231, 3232, 7, 83, 2, 2, 3232, 3233, 7, 87, 2, 2, 3233, 3234, 7, 71, 2, 2, 3234, 366, 3, 2, 2, 2, 3235, 3236, 7, 87, 2, 2, 3236, 3237, 7, 80, 2, 2, 3237, 3238, 7, 78, 2, 2, 3238, 3239, 7, 81, 2, 2, 3239, 3240, 7, 69, 2, 2, 3240, 3241, 7, 77, 2, 2, 3241, 368, 3, 2, 2, 2, 3242, 3243, 7, 87, 2, 2, 3243, 3244, 7, 80, 2, 2, 3244, 3245, 7, 85, 2, 2, 3245, 3246, 7, 75, 2, 2, 3246, 3247, 7, 73, 2, 2, 3247, 3248, 7, 80, 2, 2, 3248, 3249, 7, 71, 2, 2, 3249, 3250, 7, 70, 2, 2, 3250, 370, 3, 2, 2, 2, 3251, 3252, 7, 87, 2, 2, 3252, 3253, 7, 82, 2, 2, 3253, 3254, 7, 70, 2, 2, 3254, 3255, 7, 67, 2, 2, 3255, 3256, 7, 86, 2, 2, 3256, 3257, 7, 71, 2, 2, 3257, 372, 3, 2, 2, 2, 3258, 3259, 7, 87, 2, 2, 3259, 3260, 7, 85, 2, 2, 3260, 3261, 7, 67, 2, 2, 3261, 3262, 7, 73, 2, 2, 3262, 3263, 7, 71, 2, 2, 3263, 374, 3, 2, 2, 2, 3264, 3265, 7, 87, 2, 2, 3265, 3266, 7, 85, 2, 2, 3266, 3267, 7, 71, 2, 2, 3267, 376, 3, 2, 2, 2, 3268, 3269, 7, 87, 2, 2, 3269, 3270, 7, 85, 2, 2, 3270, 3271, 7, 75, 2, 2, 3271, 3272, 7, 80, 2, 2, 3272, 3273, 7, 73, 2, 2, 3273, 378, 3, 2, 2, 2, 3274, 3275, 7, 88, 2, 2, 3275, 3276, 7, 67, 2, 2, 3276, 3277, 7, 78, 2, 2, 3277, 3278, 7, 87, 2, 2, 3278, 3279, 7, 71, 2, 2, 3279, 3280, 7, 85, 2, 2, 3280, 380, 3, 2, 2, 2, 3281, 3282, 7, 88, 2, 2, 3282, 3283, 7, 69, 2, 2, 3283, 3284, 7, 82, 2, 2, 3284, 3285, 7, 87, 2, 2, 3285, 382, 3, 2, 2, 2, 3286, 3287, 7, 89, 2, 2, 3287, 3288, 7, 74, 2, 2, 3288, 3289, 7, 71, 2, 2, 3289, 3290, 7, 80, 2, 2, 3290, 384, 3, 2, 2, 2, 3291, 3292, 7, 89, 2, 2, 3292, 3293, 7, 74, 2, 2, 3293, 3294, 7, 71, 2, 2, 3294, 3295, 7, 84, 2, 2, 3295, 3296, 7, 71, 2, 2, 3296, 386, 3, 2, 2, 2, 3297, 3298, 7, 89, 2, 2, 3298, 3299, 7, 74, 2, 2, 3299, 3300, 7, 75, 2, 2, 3300, 3301, 7, 78, 2, 2, 3301, 3302, 7, 71, 2, 2, 3302, 388, 3, 2, 2, 2, 3303, 3304, 7, 89, 2, 2, 3304, 3305, 7, 75, 2, 2, 3305, 3306, 7, 86, 2, 2, 3306, 3307, 7, 74, 2, 2, 3307, 390, 3, 2, 2, 2, 3308, 3309, 7, 89, 2, 2, 3309, 3310, 7, 84, 2, 2, 3310, 3311, 7, 75, 2, 2, 3311, 3312, 7, 86, 2, 2, 3312, 3313, 7, 71, 2, 2, 3313, 392, 3, 2, 2, 2, 3314, 3315, 7, 90, 2, 2, 3315, 3316, 7, 81, 2, 2, 3316, 3317, 7, 84, 2, 2, 3317, 394, 3, 2, 2, 2, 3318, 3319, 7, 92, 2, 2, 3319, 3320, 7, 71, 2, 2, 3320, 3321, 7, 84, 2, 2, 3321, 3322, 7, 81, 2, 2, 3322, 3323, 7, 72, 2, 2, 3323, 3324, 7, 75, 2, 2, 3324, 3325, 7, 78, 2, 2, 3325, 3326, 7, 78, 2, 2, 3326, 396, 3, 2, 2, 2, 3327, 3328, 7, 86, 2, 2, 3328, 3329, 7, 75, 2, 2, 3329, 3330, 7, 80, 2, 2, 3330, 3331, 7, 91, 2, 2, 3331, 3332, 7, 75, 2, 2, 3332, 3333, 7, 80, 2, 2, 3333, 3334, 7, 86, 2, 2, 3334, 398, 3, 2, 2, 2, 3335, 3336, 7, 85, 2, 2, 3336, 3337, 7, 79, 2, 2, 3337, 3338, 7, 67, 2, 2, 3338, 3339, 7, 78, 2, 2, 3339, 3340, 7, 78, 2, 2, 3340, 3341, 7, 75, 2, 2, 3341, 3342, 7, 80, 2, 2, 3342, 3343, 7, 86, 2, 2, 3343, 400, 3, 2, 2, 2, 3344, 3345, 7, 79, 2, 2, 3345, 3346, 7, 71, 2, 2, 3346, 3347, 7, 70, 2, 2, 3347, 3348, 7, 75, 2, 2, 3348, 3349, 7, 87, 2, 2, 3349, 3350, 7, 79, 2, 2, 3350, 3351, 7, 75, 2, 2, 3351, 3352, 7, 80, 2, 2, 3352, 3353, 7, 86, 2, 2, 3353, 402, 3, 2, 2, 2, 3354, 3355, 7, 79, 2, 2, 3355, 3356, 7, 75, 2, 2, 3356, 3357, 7, 70, 2, 2, 3357, 3358, 7, 70, 2, 2, 3358, 3359, 7, 78, 2, 2, 3359, 3360, 7, 71, 2, 2, 3360, 3361, 7, 75, 2, 2, 3361, 3362, 7, 80, 2, 2, 3362, 3363, 7, 86, 2, 2, 3363, 404, 3, 2, 2, 2, 3364, 3365, 7, 75, 2, 2, 3365, 3366, 7, 80, 2, 2, 3366, 3367, 7, 86, 2, 2, 3367, 406, 3, 2, 2, 2, 3368, 3369, 7, 75, 2, 2, 3369, 3370, 7, 80, 2, 2, 3370, 3371, 7, 86, 2, 2, 3371, 3372, 7, 51, 2, 2, 3372, 408, 3, 2, 2, 2, 3373, 3374, 7, 75, 2, 2, 3374, 3375, 7, 80, 2, 2, 3375, 3376, 7, 86, 2, 2, 3376, 3377, 7, 52, 2, 2, 3377, 410, 3, 2, 2, 2, 3378, 3379, 7, 75, 2, 2, 3379, 3380, 7, 80, 2, 2, 3380, 3381, 7, 86, 2, 2, 3381, 3382, 7, 53, 2, 2, 3382, 412, 3, 2, 2, 2, 3383, 3384, 7, 75, 2, 2, 3384, 3385, 7, 80, 2, 2, 3385, 3386, 7, 86, 2, 2, 3386, 3387, 7, 54, 2, 2, 3387, 414, 3, 2, 2, 2, 3388, 3389, 7, 75, 2, 2, 3389, 3390, 7, 80, 2, 2, 3390, 3391, 7, 86, 2, 2, 3391, 3392, 7, 58, 2, 2, 3392, 416, 3, 2, 2, 2, 3393, 3394, 7, 75, 2, 2, 3394, 3395, 7, 80, 2, 2, 3395, 3396, 7, 86, 2, 2, 3396, 3397, 7, 71, 2, 2, 3397, 3398, 7, 73, 2, 2, 3398, 3399, 7, 71, 2, 2, 3399, 3400, 7, 84, 2, 2, 3400, 418, 3, 2, 2, 2, 3401, 3402, 7, 68, 2, 2, 3402, 3403, 7, 75, 2, 2, 3403, 3404, 7, 73, 2, 2, 3404, 3405, 7, 75, 2, 2, 3405, 3406, 7, 80, 2, 2, 3406, 3407, 7, 86, 2, 2, 3407, 420, 3, 2, 2, 2, 3408, 3409, 7, 84, 2, 2, 3409, 3410, 7, 71, 2, 2, 3410, 3411, 7, 67, 2, 2, 3411, 3412, 7, 78, 2, 2, 3412, 422, 3, 2, 2, 2, 3413, 3414, 7, 70, 2, 2, 3414, 3415, 7, 81, 2, 2, 3415, 3416, 7, 87, 2, 2, 3416, 3417, 7, 68, 2, 2, 3417, 3418, 7, 78, 2, 2, 3418, 3419, 7, 71, 2, 2, 3419, 424, 3, 2, 2, 2, 3420, 3421, 7, 82, 2, 2, 3421, 3422, 7, 84, 2, 2, 3422, 3423, 7, 71, 2, 2, 3423, 3424, 7, 69, 2, 2, 3424, 3425, 7, 75, 2, 2, 3425, 3426, 7, 85, 2, 2, 3426, 3427, 7, 75, 2, 2, 3427, 3428, 7, 81, 2, 2, 3428, 3429, 7, 80, 2, 2, 3429, 426, 3, 2, 2, 2, 3430, 3431, 7, 72, 2, 2, 3431, 3432, 7, 78, 2, 2, 3432, 3433, 7, 81, 2, 2, 3433, 3434, 7, 67, 2, 2, 3434, 3435, 7, 86, 2, 2, 3435, 428, 3, 2, 2, 2, 3436, 3437, 7, 72, 2, 2, 3437, 3438, 7, 78, 2, 2, 3438, 3439, 7, 81, 2, 2, 3439, 3440, 7, 67, 2, 2, 3440, 3441, 7, 86, 2, 2, 3441, 3442, 7, 54, 2, 2, 3442, 430, 3, 2, 2, 2, 3443, 3444, 7, 72, 2, 2, 3444, 3445, 7, 78, 2, 2, 3445, 3446, 7, 81, 2, 2, 3446, 3447, 7, 67, 2, 2, 3447, 3448, 7, 86, 2, 2, 3448, 3449, 7, 58, 2, 2, 3449, 432, 3, 2, 2, 2, 3450, 3451, 7, 70, 2, 2, 3451, 3452, 7, 71, 2, 2, 3452, 3453, 7, 69, 2, 2, 3453, 3454, 7, 75, 2, 2, 3454, 3455, 7, 79, 2, 2, 3455, 3456, 7, 67, 2, 2, 3456, 3457, 7, 78, 2, 2, 3457, 434, 3, 2, 2, 2, 3458, 3459, 7, 70, 2, 2, 3459, 3460, 7, 71, 2, 2, 3460, 3461, 7, 69, 2, 2, 3461, 436, 3, 2, 2, 2, 3462, 3463, 7, 80, 2, 2, 3463, 3464, 7, 87, 2, 2, 3464, 3465, 7, 79, 2, 2, 3465, 3466, 7, 71, 2, 2, 3466, 3467, 7, 84, 2, 2, 3467, 3468, 7, 75, 2, 2, 3468, 3469, 7, 69, 2, 2, 3469, 438, 3, 2, 2, 2, 3470, 3471, 7, 70, 2, 2, 3471, 3472, 7, 67, 2, 2, 3472, 3473, 7, 86, 2, 2, 3473, 3474, 7, 71, 2, 2, 3474, 440, 3, 2, 2, 2, 3475, 3476, 7, 86, 2, 2, 3476, 3477, 7, 75, 2, 2, 3477, 3478, 7, 79, 2, 2, 3478, 3479, 7, 71, 2, 2, 3479, 442, 3, 2, 2, 2, 3480, 3481, 7, 86, 2, 2, 3481, 3482, 7, 75, 2, 2, 3482, 3483, 7, 79, 2, 2, 3483, 3484, 7, 71, 2, 2, 3484, 3485, 7, 85, 2, 2, 3485, 3486, 7, 86, 2, 2, 3486, 3487, 7, 67, 2, 2, 3487, 3488, 7, 79, 2, 2, 3488, 3489, 7, 82, 2, 2, 3489, 444, 3, 2, 2, 2, 3490, 3491, 7, 70, 2, 2, 3491, 3492, 7, 67, 2, 2, 3492, 3493, 7, 86, 2, 2, 3493, 3494, 7, 71, 2, 2, 3494, 3495, 7, 86, 2, 2, 3495, 3496, 7, 75, 2, 2, 3496, 3497, 7, 79, 2, 2, 3497, 3498, 7, 71, 2, 2, 3498, 446, 3, 2, 2, 2, 3499, 3500, 7, 91, 2, 2, 3500, 3501, 7, 71, 2, 2, 3501, 3502, 7, 67, 2, 2, 3502, 3503, 7, 84, 2, 2, 3503, 448, 3, 2, 2, 2, 3504, 3505, 7, 69, 2, 2, 3505, 3506, 7, 74, 2, 2, 3506, 3507, 7, 67, 2, 2, 3507, 3508, 7, 84, 2, 2, 3508, 450, 3, 2, 2, 2, 3509, 3510, 7, 88, 2, 2, 3510, 3511, 7, 67, 2, 2, 3511, 3512, 7, 84, 2, 2, 3512, 3513, 7, 69, 2, 2, 3513, 3514, 7, 74, 2, 2, 3514, 3515, 7, 67, 2, 2, 3515, 3516, 7, 84, 2, 2, 3516, 452, 3, 2, 2, 2, 3517, 3518, 7, 80, 2, 2, 3518, 3519, 7, 88, 2, 2, 3519, 3520, 7, 67, 2, 2, 3520, 3521, 7, 84, 2, 2, 3521, 3522, 7, 69, 2, 2, 3522, 3523, 7, 74, 2, 2, 3523, 3524, 7, 67, 2, 2, 3524, 3525, 7, 84, 2, 2, 3525, 454, 3, 2, 2, 2, 3526, 3527, 7, 80, 2, 2, 3527, 3528, 7, 67, 2, 2, 3528, 3529, 7, 86, 2, 2, 3529, 3530, 7, 75, 2, 2, 3530, 3531, 7, 81, 2, 2, 3531, 3532, 7, 80, 2, 2, 3532, 3533, 7, 67, 2, 2, 3533, 3534, 7, 78, 2, 2, 3534, 456, 3, 2, 2, 2, 3535, 3536, 7, 68, 2, 2, 3536, 3537, 7, 75, 2, 2, 3537, 3538, 7, 80, 2, 2, 3538, 3539, 7, 67, 2, 2, 3539, 3540, 7, 84, 2, 2, 3540, 3541, 7, 91, 2, 2, 3541, 458, 3, 2, 2, 2, 3542, 3543, 7, 88, 2, 2, 3543, 3544, 7, 67, 2, 2, 3544, 3545, 7, 84, 2, 2, 3545, 3546, 7, 68, 2, 2, 3546, 3547, 7, 75, 2, 2, 3547, 3548, 7, 80, 2, 2, 3548, 3549, 7, 67, 2, 2, 3549, 3550, 7, 84, 2, 2, 3550, 3551, 7, 91, 2, 2, 3551, 460, 3, 2, 2, 2, 3552, 3553, 7, 86, 2, 2, 3553, 3554, 7, 75, 2, 2, 3554, 3555, 7, 80, 2, 2, 3555, 3556, 7, 91, 2, 2, 3556, 3557, 7, 68, 2, 2, 3557, 3558, 7, 78, 2, 2, 3558, 3559, 7, 81, 2, 2, 3559, 3560, 7, 68, 2, 2, 3560, 462, 3, 2, 2, 2, 3561, 3562, 7, 68, 2, 2, 3562, 3563, 7, 78, 2, 2, 3563, 3564, 7, 81, 2, 2, 3564, 3565, 7, 68, 2, 2, 3565, 464, 3, 2, 2, 2, 3566, 3567, 7, 79, 2, 2, 3567, 3568, 7, 71, 2, 2, 3568, 3569, 7, 70, 2, 2, 3569, 3570, 7, 75, 2, 2, 3570, 3571, 7, 87, 2, 2, 3571, 3572, 7, 79, 2, 2, 3572, 3573, 7, 68, 2, 2, 3573, 3574, 7, 78, 2, 2, 3574, 3575, 7, 81, 2, 2, 3575, 3576, 7, 68, 2, 2, 3576, 466, 3, 2, 2, 2, 3577, 3578, 7, 78, 2, 2, 3578, 3579, 7, 81, 2, 2, 3579, 3580, 7, 80, 2, 2, 3580, 3581, 7, 73, 2, 2, 3581, 468, 3, 2, 2, 2, 3582, 3583, 7, 78, 2, 2, 3583, 3584, 7, 81, 2, 2, 3584, 3585, 7, 80, 2, 2, 3585, 3586, 7, 73, 2, 2, 3586, 3587, 7, 68, 2, 2, 3587, 3588, 7, 78, 2, 2, 3588, 3589, 7, 81, 2, 2, 3589, 3590, 7, 68, 2, 2, 3590, 470, 3, 2, 2, 2, 3591, 3592, 7, 86, 2, 2, 3592, 3593, 7, 75, 2, 2, 3593, 3594, 7, 80, 2, 2, 3594, 3595, 7, 91, 2, 2, 3595, 3596, 7, 86, 2, 2, 3596, 3597, 7, 71, 2, 2, 3597, 3598, 7, 90, 2, 2, 3598, 3599, 7, 86, 2, 2, 3599, 472, 3, 2, 2, 2, 3600, 3601, 7, 86, 2, 2, 3601, 3602, 7, 71, 2, 2, 3602, 3603, 7, 90, 2, 2, 3603, 3604, 7, 86, 2, 2, 3604, 474, 3, 2, 2, 2, 3605, 3606, 7, 79, 2, 2, 3606, 3607, 7, 71, 2, 2, 3607, 3608, 7, 70, 2, 2, 3608, 3609, 7, 75, 2, 2, 3609, 3610, 7, 87, 2, 2, 3610, 3611, 7, 79, 2, 2, 3611, 3612, 7, 86, 2, 2, 3612, 3613, 7, 71, 2, 2, 3613, 3614, 7, 90, 2, 2, 3614, 3615, 7, 86, 2, 2, 3615, 476, 3, 2, 2, 2, 3616, 3617, 7, 78, 2, 2, 3617, 3618, 7, 81, 2, 2, 3618, 3619, 7, 80, 2, 2, 3619, 3620, 7, 73, 2, 2, 3620, 3621, 7, 86, 2, 2, 3621, 3622, 7, 71, 2, 2, 3622, 3623, 7, 90, 2, 2, 3623, 3624, 7, 86, 2, 2, 3624, 478, 3, 2, 2, 2, 3625, 3626, 7, 71, 2, 2, 3626, 3627, 7, 80, 2, 2, 3627, 3628, 7, 87, 2, 2, 3628, 3629, 7, 79, 2, 2, 3629, 480, 3, 2, 2, 2, 3630, 3631, 7, 88, 2, 2, 3631, 3632, 7, 67, 2, 2, 3632, 3633, 7, 84, 2, 2, 3633, 3634, 7, 91, 2, 2, 3634, 3635, 7, 75, 2, 2, 3635, 3636, 7, 80, 2, 2, 3636, 3637, 7, 73, 2, 2, 3637, 482, 3, 2, 2, 2, 3638, 3639, 7, 85, 2, 2, 3639, 3640, 7, 71, 2, 2, 3640, 3641, 7, 84, 2, 2, 3641, 3642, 7, 75, 2, 2, 3642, 3643, 7, 67, 2, 2, 3643, 3644, 7, 78, 2, 2, 3644, 484, 3, 2, 2, 2, 3645, 3646, 7, 91, 2, 2, 3646, 3647, 7, 71, 2, 2, 3647, 3648, 7, 67, 2, 2, 3648, 3649, 7, 84, 2, 2, 3649, 3650, 7, 97, 2, 2, 3650, 3651, 7, 79, 2, 2, 3651, 3652, 7, 81, 2, 2, 3652, 3653, 7, 80, 2, 2, 3653, 3654, 7, 86, 2, 2, 3654, 3655, 7, 74, 2, 2, 3655, 486, 3, 2, 2, 2, 3656, 3657, 7, 70, 2, 2, 3657, 3658, 7, 67, 2, 2, 3658, 3659, 7, 91, 2, 2, 3659, 3660, 7, 97, 2, 2, 3660, 3661, 7, 74, 2, 2, 3661, 3662, 7, 81, 2, 2, 3662, 3663, 7, 87, 2, 2, 3663, 3664, 7, 84, 2, 2, 3664, 488, 3, 2, 2, 2, 3665, 3666, 7, 70, 2, 2, 3666, 3667, 7, 67, 2, 2, 3667, 3668, 7, 91, 2, 2, 3668, 3669, 7, 97, 2, 2, 3669, 3670, 7, 79, 2, 2, 3670, 3671, 7, 75, 2, 2, 3671, 3672, 7, 80, 2, 2, 3672, 3673, 7, 87, 2, 2, 3673, 3674, 7, 86, 2, 2, 3674, 3675, 7, 71, 2, 2, 3675, 490, 3, 2, 2, 2, 3676, 3677, 7, 70, 2, 2, 3677, 3678, 7, 67, 2, 2, 3678, 3679, 7, 91, 2, 2, 3679, 3680, 7, 97, 2, 2, 3680, 3681, 7, 85, 2, 2, 3681, 3682, 7, 71, 2, 2, 3682, 3683, 7, 69, 2, 2, 3683, 3684, 7, 81, 2, 2, 3684, 3685, 7, 80, 2, 2, 3685, 3686, 7, 70, 2, 2, 3686, 492, 3, 2, 2, 2, 3687, 3688, 7, 74, 2, 2, 3688, 3689, 7, 81, 2, 2, 3689, 3690, 7, 87, 2, 2, 3690, 3691, 7, 84, 2, 2, 3691, 3692, 7, 97, 2, 2, 3692, 3693, 7, 79, 2, 2, 3693, 3694, 7, 75, 2, 2, 3694, 3695, 7, 80, 2, 2, 3695, 3696, 7, 87, 2, 2, 3696, 3697, 7, 86, 2, 2, 3697, 3698, 7, 71, 2, 2, 3698, 494, 3, 2, 2, 2, 3699, 3700, 7, 74, 2, 2, 3700, 3701, 7, 81, 2, 2, 3701, 3702, 7, 87, 2, 2, 3702, 3703, 7, 84, 2, 2, 3703, 3704, 7, 97, 2, 2, 3704, 3705, 7, 85, 2, 2, 3705, 3706, 7, 71, 2, 2, 3706, 3707, 7, 69, 2, 2, 3707, 3708, 7, 81, 2, 2, 3708, 3709, 7, 80, 2, 2, 3709, 3710, 7, 70, 2, 2, 3710, 496, 3, 2, 2, 2, 3711, 3712, 7, 79, 2, 2, 3712, 3713, 7, 75, 2, 2, 3713, 3714, 7, 80, 2, 2, 3714, 3715, 7, 87, 2, 2, 3715, 3716, 7, 86, 2, 2, 3716, 3717, 7, 71, 2, 2, 3717, 3718, 7, 97, 2, 2, 3718, 3719, 7, 85, 2, 2, 3719, 3720, 7, 71, 2, 2, 3720, 3721, 7, 69, 2, 2, 3721, 3722, 7, 81, 2, 2, 3722, 3723, 7, 80, 2, 2, 3723, 3724, 7, 70, 2, 2, 3724, 498, 3, 2, 2, 2, 3725, 3726, 7, 85, 2, 2, 3726, 3727, 7, 71, 2, 2, 3727, 3728, 7, 69, 2, 2, 3728, 3729, 7, 81, 2, 2, 3729, 3730, 7, 80, 2, 2, 3730, 3731, 7, 70, 2, 2, 3731, 3732, 7, 97, 2, 2, 3732, 3733, 7, 79, 2, 2, 3733, 3734, 7, 75, 2, 2, 3734, 3735, 7, 69, 2, 2, 3735, 3736, 7, 84, 2, 2, 3736, 3737, 7, 81, 2, 2, 3737, 3738, 7, 85, 2, 2, 3738, 3739, 7, 71, 2, 2, 3739, 3740, 7, 69, 2, 2, 3740, 3741, 7, 81, 2, 2, 3741, 3742, 7, 80, 2, 2, 3742, 3743, 7, 70, 2, 2, 3743, 500, 3, 2, 2, 2, 3744, 3745, 7, 79, 2, 2, 3745, 3746, 7, 75, 2, 2, 3746, 3747, 7, 80, 2, 2, 3747, 3748, 7, 87, 2, 2, 3748, 3749, 7, 86, 2, 2, 3749, 3750, 7, 71, 2, 2, 3750, 3751, 7, 97, 2, 2, 3751, 3752, 7, 79, 2, 2, 3752, 3753, 7, 75, 2, 2, 3753, 3754, 7, 69, 2, 2, 3754, 3755, 7, 84, 2, 2, 3755, 3756, 7, 81, 2, 2, 3756, 3757, 7, 85, 2, 2, 3757, 3758, 7, 71, 2, 2, 3758, 3759, 7, 69, 2, 2, 3759, 3760, 7, 81, 2, 2, 3760, 3761, 7, 80, 2, 2, 3761, 3762, 7, 70, 2, 2, 3762, 502, 3, 2, 2, 2, 3763, 3764, 7, 74, 2, 2, 3764, 3765, 7, 81, 2, 2, 3765, 3766, 7, 87, 2, 2, 3766, 3767, 7, 84, 2, 2, 3767, 3768, 7, 97, 2, 2, 3768, 3769, 7, 79, 2, 2, 3769, 3770, 7, 75, 2, 2, 3770, 3771, 7, 69, 2, 2, 3771, 3772, 7, 84, 2, 2, 3772, 3773, 7, 81, 2, 2, 3773, 3774, 7, 85, 2, 2, 3774, 3775, 7, 71, 2, 2, 3775, 3776, 7, 69, 2, 2, 3776, 3777, 7, 81, 2, 2, 3777, 3778, 7, 80, 2, 2, 3778, 3779, 7, 70, 2, 2, 3779, 504, 3, 2, 2, 2, 3780, 3781, 7, 70, 2, 2, 3781, 3782, 7, 67, 2, 2, 3782, 3783, 7, 91, 2, 2, 3783, 3784, 7, 97, 2, 2, 3784, 3785, 7, 79, 2, 2, 3785, 3786, 7, 75, 2, 2, 3786, 3787, 7, 69, 2, 2, 3787, 3788, 7, 84, 2, 2, 3788, 3789, 7, 81, 2, 2, 3789, 3790, 7, 85, 2, 2, 3790, 3791, 7, 71, 2, 2, 3791, 3792, 7, 69, 2, 2, 3792, 3793, 7, 81, 2, 2, 3793, 3794, 7, 80, 2, 2, 3794, 3795, 7, 70, 2, 2, 3795, 506, 3, 2, 2, 2, 3796, 3797, 7, 76, 2, 2, 3797, 3798, 7, 85, 2, 2, 3798, 3799, 7, 81, 2, 2, 3799, 3800, 7, 80, 2, 2, 3800, 3801, 7, 97, 2, 2, 3801, 3802, 7, 86, 2, 2, 3802, 3803, 7, 67, 2, 2, 3803, 3804, 7, 68, 2, 2, 3804, 3805, 7, 78, 2, 2, 3805, 3806, 7, 71, 2, 2, 3806, 508, 3, 2, 2, 2, 3807, 3808, 7, 76, 2, 2, 3808, 3809, 7, 85, 2, 2, 3809, 3810, 7, 81, 2, 2, 3810, 3811, 7, 80, 2, 2, 3811, 3812, 7, 97, 2, 2, 3812, 3813, 7, 88, 2, 2, 3813, 3814, 7, 67, 2, 2, 3814, 3815, 7, 78, 2, 2, 3815, 3816, 7, 87, 2, 2, 3816, 3817, 7, 71, 2, 2, 3817, 510, 3, 2, 2, 2, 3818, 3819, 7, 80, 2, 2, 3819, 3820, 7, 71, 2, 2, 3820, 3821, 7, 85, 2, 2, 3821, 3822, 7, 86, 2, 2, 3822, 3823, 7, 71, 2, 2, 3823, 3824, 7, 70, 2, 2, 3824, 512, 3, 2, 2, 2, 3825, 3826, 7, 81, 2, 2, 3826, 3827, 7, 84, 2, 2, 3827, 3828, 7, 70, 2, 2, 3828, 3829, 7, 75, 2, 2, 3829, 3830, 7, 80, 2, 2, 3830, 3831, 7, 67, 2, 2, 3831, 3832, 7, 78, 2, 2, 3832, 3833, 7, 75, 2, 2, 3833, 3834, 7, 86, 2, 2, 3834, 3835, 7, 91, 2, 2, 3835, 514, 3, 2, 2, 2, 3836, 3837, 7, 82, 2, 2, 3837, 3838, 7, 67, 2, 2, 3838, 3839, 7, 86, 2, 2, 3839, 3840, 7, 74, 2, 2, 3840, 516, 3, 2, 2, 2, 3841, 3842, 7, 67, 2, 2, 3842, 3843, 7, 88, 2, 2, 3843, 3844, 7, 73, 2, 2, 3844, 518, 3, 2, 2, 2, 3845, 3846, 7, 68, 2, 2, 3846, 3847, 7, 75, 2, 2, 3847, 3848, 7, 86, 2, 2, 3848, 3849, 7, 97, 2, 2, 3849, 3850, 7, 67, 2, 2, 3850, 3851, 7, 80, 2, 2, 3851, 3852, 7, 70, 2, 2, 3852, 520, 3, 2, 2, 2, 3853, 3854, 7, 68, 2, 2, 3854, 3855, 7, 75, 2, 2, 3855, 3856, 7, 86, 2, 2, 3856, 3857, 7, 97, 2, 2, 3857, 3858, 7, 81, 2, 2, 3858, 3859, 7, 84, 2, 2, 3859, 522, 3, 2, 2, 2, 3860, 3861, 7, 68, 2, 2, 3861, 3862, 7, 75, 2, 2, 3862, 3863, 7, 86, 2, 2, 3863, 3864, 7, 97, 2, 2, 3864, 3865, 7, 90, 2, 2, 3865, 3866, 7, 81, 2, 2, 3866, 3867, 7, 84, 2, 2, 3867, 524, 3, 2, 2, 2, 3868, 3869, 7, 69, 2, 2, 3869, 3870, 7, 81, 2, 2, 3870, 3871, 7, 87, 2, 2, 3871, 3872, 7, 80, 2, 2, 3872, 3873, 7, 86, 2, 2, 3873, 526, 3, 2, 2, 2, 3874, 3875, 7, 69, 2, 2, 3875, 3876, 7, 87, 2, 2, 3876, 3877, 7, 79, 2, 2, 3877, 3878, 7, 71, 2, 2, 3878, 3879, 7, 97, 2, 2, 3879, 3880, 7, 70, 2, 2, 3880, 3881, 7, 75, 2, 2, 3881, 3882, 7, 85, 2, 2, 3882, 3883, 7, 86, 2, 2, 3883, 528, 3, 2, 2, 2, 3884, 3885, 7, 70, 2, 2, 3885, 3886, 7, 71, 2, 2, 3886, 3887, 7, 80, 2, 2, 3887, 3888, 7, 85, 2, 2, 3888, 3889, 7, 71, 2, 2, 3889, 3890, 7, 97, 2, 2, 3890, 3891, 7, 84, 2, 2, 3891, 3892, 7, 67, 2, 2, 3892, 3893, 7, 80, 2, 2, 3893, 3894, 7, 77, 2, 2, 3894, 530, 3, 2, 2, 2, 3895, 3896, 7, 72, 2, 2, 3896, 3897, 7, 75, 2, 2, 3897, 3898, 7, 84, 2, 2, 3898, 3899, 7, 85, 2, 2, 3899, 3900, 7, 86, 2, 2, 3900, 3901, 7, 97, 2, 2, 3901, 3902, 7, 88, 2, 2, 3902, 3903, 7, 67, 2, 2, 3903, 3904, 7, 78, 2, 2, 3904, 3905, 7, 87, 2, 2, 3905, 3906, 7, 71, 2, 2, 3906, 532, 3, 2, 2, 2, 3907, 3908, 7, 73, 2, 2, 3908, 3909, 7, 84, 2, 2, 3909, 3910, 7, 81, 2, 2, 3910, 3911, 7, 87, 2, 2, 3911, 3912, 7, 82, 2, 2, 3912, 3913, 7, 97, 2, 2, 3913, 3914, 7, 69, 2, 2, 3914, 3915, 7, 81, 2, 2, 3915, 3916, 7, 80, 2, 2, 3916, 3917, 7, 69, 2, 2, 3917, 3918, 7, 67, 2, 2, 3918, 3919, 7, 86, 2, 2, 3919, 534, 3, 2, 2, 2, 3920, 3921, 7, 78, 2, 2, 3921, 3922, 7, 67, 2, 2, 3922, 3923, 7, 73, 2, 2, 3923, 536, 3, 2, 2, 2, 3924, 3925, 7, 78, 2, 2, 3925, 3926, 7, 67, 2, 2, 3926, 3927, 7, 85, 2, 2, 3927, 3928, 7, 86, 2, 2, 3928, 3929, 7, 97, 2, 2, 3929, 3930, 7, 88, 2, 2, 3930, 3931, 7, 67, 2, 2, 3931, 3932, 7, 78, 2, 2, 3932, 3933, 7, 87, 2, 2, 3933, 3934, 7, 71, 2, 2, 3934, 538, 3, 2, 2, 2, 3935, 3936, 7, 78, 2, 2, 3936, 3937, 7, 71, 2, 2, 3937, 3938, 7, 67, 2, 2, 3938, 3939, 7, 70, 2, 2, 3939, 540, 3, 2, 2, 2, 3940, 3941, 7, 79, 2, 2, 3941, 3942, 7, 67, 2, 2, 3942, 3943, 7, 90, 2, 2, 3943, 542, 3, 2, 2, 2, 3944, 3945, 7, 79, 2, 2, 3945, 3946, 7, 75, 2, 2, 3946, 3947, 7, 80, 2, 2, 3947, 544, 3, 2, 2, 2, 3948, 3949, 7, 80, 2, 2, 3949, 3950, 7, 86, 2, 2, 3950, 3951, 7, 75, 2, 2, 3951, 3952, 7, 78, 2, 2, 3952, 3953, 7, 71, 2, 2, 3953, 546, 3, 2, 2, 2, 3954, 3955, 7, 80, 2, 2, 3955, 3956, 7, 86, 2, 2, 3956, 3957, 7, 74, 2, 2, 3957, 3958, 7, 97, 2, 2, 3958, 3959, 7, 88, 2, 2, 3959, 3960, 7, 67, 2, 2, 3960, 3961, 7, 78, 2, 2, 3961, 3962, 7, 87, 2, 2, 3962, 3963, 7, 71, 2, 2, 3963, 548, 3, 2, 2, 2, 3964, 3965, 7, 82, 2, 2, 3965, 3966, 7, 71, 2, 2, 3966, 3967, 7, 84, 2, 2, 3967, 3968, 7, 69, 2, 2, 3968, 3969, 7, 71, 2, 2, 3969, 3970, 7, 80, 2, 2, 3970, 3971, 7, 86, 2, 2, 3971, 3972, 7, 97, 2, 2, 3972, 3973, 7, 84, 2, 2, 3973, 3974, 7, 67, 2, 2, 3974, 3975, 7, 80, 2, 2, 3975, 3976, 7, 77, 2, 2, 3976, 550, 3, 2, 2, 2, 3977, 3978, 7, 84, 2, 2, 3978, 3979, 7, 67, 2, 2, 3979, 3980, 7, 80, 2, 2, 3980, 3981, 7, 77, 2, 2, 3981, 552, 3, 2, 2, 2, 3982, 3983, 7, 84, 2, 2, 3983, 3984, 7, 81, 2, 2, 3984, 3985, 7, 89, 2, 2, 3985, 3986, 7, 97, 2, 2, 3986, 3987, 7, 80, 2, 2, 3987, 3988, 7, 87, 2, 2, 3988, 3989, 7, 79, 2, 2, 3989, 3990, 7, 68, 2, 2, 3990, 3991, 7, 71, 2, 2, 3991, 3992, 7, 84, 2, 2, 3992, 554, 3, 2, 2, 2, 3993, 3994, 7, 85, 2, 2, 3994, 3995, 7, 86, 2, 2, 3995, 3996, 7, 70, 2, 2, 3996, 556, 3, 2, 2, 2, 3997, 3998, 7, 85, 2, 2, 3998, 3999, 7, 86, 2, 2, 3999, 4000, 7, 70, 2, 2, 4000, 4001, 7, 70, 2, 2, 4001, 4002, 7, 71, 2, 2, 4002, 4003, 7, 88, 2, 2, 4003, 558, 3, 2, 2, 2, 4004, 4005, 7, 85, 2, 2, 4005, 4006, 7, 86, 2, 2, 4006, 4007, 7, 70, 2, 2, 4007, 4008, 7, 70, 2, 2, 4008, 4009, 7, 71, 2, 2, 4009, 4010, 7, 88, 2, 2, 4010, 4011, 7, 97, 2, 2, 4011, 4012, 7, 82, 2, 2, 4012, 4013, 7, 81, 2, 2, 4013, 4014, 7, 82, 2, 2, 4014, 560, 3, 2, 2, 2, 4015, 4016, 7, 85, 2, 2, 4016, 4017, 7, 86, 2, 2, 4017, 4018, 7, 70, 2, 2, 4018, 4019, 7, 70, 2, 2, 4019, 4020, 7, 71, 2, 2, 4020, 4021, 7, 88, 2, 2, 4021, 4022, 7, 97, 2, 2, 4022, 4023, 7, 85, 2, 2, 4023, 4024, 7, 67, 2, 2, 4024, 4025, 7, 79, 2, 2, 4025, 4026, 7, 82, 2, 2, 4026, 562, 3, 2, 2, 2, 4027, 4028, 7, 85, 2, 2, 4028, 4029, 7, 87, 2, 2, 4029, 4030, 7, 79, 2, 2, 4030, 564, 3, 2, 2, 2, 4031, 4032, 7, 88, 2, 2, 4032, 4033, 7, 67, 2, 2, 4033, 4034, 7, 84, 2, 2, 4034, 4035, 7, 97, 2, 2, 4035, 4036, 7, 82, 2, 2, 4036, 4037, 7, 81, 2, 2, 4037, 4038, 7, 82, 2, 2, 4038, 566, 3, 2, 2, 2, 4039, 4040, 7, 88, 2, 2, 4040, 4041, 7, 67, 2, 2, 4041, 4042, 7, 84, 2, 2, 4042, 4043, 7, 97, 2, 2, 4043, 4044, 7, 85, 2, 2, 4044, 4045, 7, 67, 2, 2, 4045, 4046, 7, 79, 2, 2, 4046, 4047, 7, 82, 2, 2, 4047, 568, 3, 2, 2, 2, 4048, 4049, 7, 88, 2, 2, 4049, 4050, 7, 67, 2, 2, 4050, 4051, 7, 84, 2, 2, 4051, 4052, 7, 75, 2, 2, 4052, 4053, 7, 67, 2, 2, 4053, 4054, 7, 80, 2, 2, 4054, 4055, 7, 69, 2, 2, 4055, 4056, 7, 71, 2, 2, 4056, 570, 3, 2, 2, 2, 4057, 4058, 7, 69, 2, 2, 4058, 4059, 7, 87, 2, 2, 4059, 4060, 7, 84, 2, 2, 4060, 4061, 7, 84, 2, 2, 4061, 4062, 7, 71, 2, 2, 4062, 4063, 7, 80, 2, 2, 4063, 4064, 7, 86, 2, 2, 4064, 4065, 7, 97, 2, 2, 4065, 4066, 7, 70, 2, 2, 4066, 4067, 7, 67, 2, 2, 4067, 4068, 7, 86, 2, 2, 4068, 4069, 7, 71, 2, 2, 4069, 572, 3, 2, 2, 2, 4070, 4071, 7, 69, 2, 2, 4071, 4072, 7, 87, 2, 2, 4072, 4073, 7, 84, 2, 2, 4073, 4074, 7, 84, 2, 2, 4074, 4075, 7, 71, 2, 2, 4075, 4076, 7, 80, 2, 2, 4076, 4077, 7, 86, 2, 2, 4077, 4078, 7, 97, 2, 2, 4078, 4079, 7, 86, 2, 2, 4079, 4080, 7, 75, 2, 2, 4080, 4081, 7, 79, 2, 2, 4081, 4082, 7, 71, 2, 2, 4082, 574, 3, 2, 2, 2, 4083, 4084, 7, 69, 2, 2, 4084, 4085, 7, 87, 2, 2, 4085, 4086, 7, 84, 2, 2, 4086, 4087, 7, 84, 2, 2, 4087, 4088, 7, 71, 2, 2, 4088, 4089, 7, 80, 2, 2, 4089, 4090, 7, 86, 2, 2, 4090, 4091, 7, 97, 2, 2, 4091, 4092, 7, 86, 2, 2, 4092, 4093, 7, 75, 2, 2, 4093, 4094, 7, 79, 2, 2, 4094, 4095, 7, 71, 2, 2, 4095, 4096, 7, 85, 2, 2, 4096, 4097, 7, 86, 2, 2, 4097, 4098, 7, 67, 2, 2, 4098, 4099, 7, 79, 2, 2, 4099, 4100, 7, 82, 2, 2, 4100, 576, 3, 2, 2, 2, 4101, 4102, 7, 78, 2, 2, 4102, 4103, 7, 81, 2, 2, 4103, 4104, 7, 69, 2, 2, 4104, 4105, 7, 67, 2, 2, 4105, 4106, 7, 78, 2, 2, 4106, 4107, 7, 86, 2, 2, 4107, 4108, 7, 75, 2, 2, 4108, 4109, 7, 79, 2, 2, 4109, 4110, 7, 71, 2, 2, 4110, 578, 3, 2, 2, 2, 4111, 4112, 7, 69, 2, 2, 4112, 4113, 7, 87, 2, 2, 4113, 4114, 7, 84, 2, 2, 4114, 4115, 7, 70, 2, 2, 4115, 4116, 7, 67, 2, 2, 4116, 4117, 7, 86, 2, 2, 4117, 4118, 7, 71, 2, 2, 4118, 580, 3, 2, 2, 2, 4119, 4120, 7, 69, 2, 2, 4120, 4121, 7, 87, 2, 2, 4121, 4122, 7, 84, 2, 2, 4122, 4123, 7, 86, 2, 2, 4123, 4124, 7, 75, 2, 2, 4124, 4125, 7, 79, 2, 2, 4125, 4126, 7, 71, 2, 2, 4126, 582, 3, 2, 2, 2, 4127, 4128, 7, 70, 2, 2, 4128, 4129, 7, 67, 2, 2, 4129, 4130, 7, 86, 2, 2, 4130, 4131, 7, 71, 2, 2, 4131, 4132, 7, 97, 2, 2, 4132, 4133, 7, 67, 2, 2, 4133, 4134, 7, 70, 2, 2, 4134, 4135, 7, 70, 2, 2, 4135, 584, 3, 2, 2, 2, 4136, 4137, 7, 70, 2, 2, 4137, 4138, 7, 67, 2, 2, 4138, 4139, 7, 86, 2, 2, 4139, 4140, 7, 71, 2, 2, 4140, 4141, 7, 97, 2, 2, 4141, 4142, 7, 85, 2, 2, 4142, 4143, 7, 87, 2, 2, 4143, 4144, 7, 68, 2, 2, 4144, 586, 3, 2, 2, 2, 4145, 4146, 7, 71, 2, 2, 4146, 4147, 7, 90, 2, 2, 4147, 4148, 7, 86, 2, 2, 4148, 4149, 7, 84, 2, 2, 4149, 4150, 7, 67, 2, 2, 4150, 4151, 7, 69, 2, 2, 4151, 4152, 7, 86, 2, 2, 4152, 588, 3, 2, 2, 2, 4153, 4154, 7, 78, 2, 2, 4154, 4155, 7, 81, 2, 2, 4155, 4156, 7, 69, 2, 2, 4156, 4157, 7, 67, 2, 2, 4157, 4158, 7, 78, 2, 2, 4158, 4159, 7, 86, 2, 2, 4159, 4160, 7, 75, 2, 2, 4160, 4161, 7, 79, 2, 2, 4161, 4162, 7, 71, 2, 2, 4162, 4163, 7, 85, 2, 2, 4163, 4164, 7, 86, 2, 2, 4164, 4165, 7, 67, 2, 2, 4165, 4166, 7, 79, 2, 2, 4166, 4167, 7, 82, 2, 2, 4167, 590, 3, 2, 2, 2, 4168, 4169, 7, 80, 2, 2, 4169, 4170, 7, 81, 2, 2, 4170, 4171, 7, 89, 2, 2, 4171, 592, 3, 2, 2, 2, 4172, 4173, 7, 82, 2, 2, 4173, 4174, 7, 81, 2, 2, 4174, 4175, 7, 85, 2, 2, 4175, 4176, 7, 75, 2, 2, 4176, 4177, 7, 86, 2, 2, 4177, 4178, 7, 75, 2, 2, 4178, 4179, 7, 81, 2, 2, 4179, 4180, 7, 80, 2, 2, 4180, 594, 3, 2, 2, 2, 4181, 4182, 7, 85, 2, 2, 4182, 4183, 7, 87, 2, 2, 4183, 4184, 7, 68, 2, 2, 4184, 4185, 7, 85, 2, 2, 4185, 4186, 7, 86, 2, 2, 4186, 4187, 7, 84, 2, 2, 4187, 596, 3, 2, 2, 2, 4188, 4189, 7, 85, 2, 2, 4189, 4190, 7, 87, 2, 2, 4190, 4191, 7, 68, 2, 2, 4191, 4192, 7, 85, 2, 2, 4192, 4193, 7, 86, 2, 2, 4193, 4194, 7, 84, 2, 2, 4194, 4195, 7, 75, 2, 2, 4195, 4196, 7, 80, 2, 2, 4196, 4197, 7, 73, 2, 2, 4197, 598, 3, 2, 2, 2, 4198, 4199, 7, 85, 2, 2, 4199, 4200, 7, 91, 2, 2, 4200, 4201, 7, 85, 2, 2, 4201, 4202, 7, 70, 2, 2, 4202, 4203, 7, 67, 2, 2, 4203, 4204, 7, 86, 2, 2, 4204, 4205, 7, 71, 2, 2, 4205, 600, 3, 2, 2, 2, 4206, 4207, 7, 86, 2, 2, 4207, 4208, 7, 84, 2, 2, 4208, 4209, 7, 75, 2, 2, 4209, 4210, 7, 79, 2, 2, 4210, 602, 3, 2, 2, 2, 4211, 4212, 7, 87, 2, 2, 4212, 4213, 7, 86, 2, 2, 4213, 4214, 7, 69, 2, 2, 4214, 4215, 7, 97, 2, 2, 4215, 4216, 7, 70, 2, 2, 4216, 4217, 7, 67, 2, 2, 4217, 4218, 7, 86, 2, 2, 4218, 4219, 7, 71, 2, 2, 4219, 604, 3, 2, 2, 2, 4220, 4221, 7, 87, 2, 2, 4221, 4222, 7, 86, 2, 2, 4222, 4223, 7, 69, 2, 2, 4223, 4224, 7, 97, 2, 2, 4224, 4225, 7, 86, 2, 2, 4225, 4226, 7, 75, 2, 2, 4226, 4227, 7, 79, 2, 2, 4227, 4228, 7, 71, 2, 2, 4228, 606, 3, 2, 2, 2, 4229, 4230, 7, 87, 2, 2, 4230, 4231, 7, 86, 2, 2, 4231, 4232, 7, 69, 2, 2, 4232, 4233, 7, 97, 2, 2, 4233, 4234, 7, 86, 2, 2, 4234, 4235, 7, 75, 2, 2, 4235, 4236, 7, 79, 2, 2, 4236, 4237, 7, 71, 2, 2, 4237, 4238, 7, 85, 2, 2, 4238, 4239, 7, 86, 2, 2, 4239, 4240, 7, 67, 2, 2, 4240, 4241, 7, 79, 2, 2, 4241, 4242, 7, 82, 2, 2, 4242, 608, 3, 2, 2, 2, 4243, 4244, 7, 67, 2, 2, 4244, 4245, 7, 69, 2, 2, 4245, 4246, 7, 69, 2, 2, 4246, 4247, 7, 81, 2, 2, 4247, 4248, 7, 87, 2, 2, 4248, 4249, 7, 80, 2, 2, 4249, 4250, 7, 86, 2, 2, 4250, 610, 3, 2, 2, 2, 4251, 4252, 7, 67, 2, 2, 4252, 4253, 7, 69, 2, 2, 4253, 4254, 7, 86, 2, 2, 4254, 4255, 7, 75, 2, 2, 4255, 4256, 7, 81, 2, 2, 4256, 4257, 7, 80, 2, 2, 4257, 612, 3, 2, 2, 2, 4258, 4259, 7, 67, 2, 2, 4259, 4260, 7, 72, 2, 2, 4260, 4261, 7, 86, 2, 2, 4261, 4262, 7, 71, 2, 2, 4262, 4263, 7, 84, 2, 2, 4263, 614, 3, 2, 2, 2, 4264, 4265, 7, 67, 2, 2, 4265, 4266, 7, 73, 2, 2, 4266, 4267, 7, 73, 2, 2, 4267, 4268, 7, 84, 2, 2, 4268, 4269, 7, 71, 2, 2, 4269, 4270, 7, 73, 2, 2, 4270, 4271, 7, 67, 2, 2, 4271, 4272, 7, 86, 2, 2, 4272, 4273, 7, 71, 2, 2, 4273, 616, 3, 2, 2, 2, 4274, 4275, 7, 67, 2, 2, 4275, 4276, 7, 78, 2, 2, 4276, 4277, 7, 73, 2, 2, 4277, 4278, 7, 81, 2, 2, 4278, 4279, 7, 84, 2, 2, 4279, 4280, 7, 75, 2, 2, 4280, 4281, 7, 86, 2, 2, 4281, 4282, 7, 74, 2, 2, 4282, 4283, 7, 79, 2, 2, 4283, 618, 3, 2, 2, 2, 4284, 4285, 7, 67, 2, 2, 4285, 4286, 7, 80, 2, 2, 4286, 4287, 7, 91, 2, 2, 4287, 620, 3, 2, 2, 2, 4288, 4289, 7, 67, 2, 2, 4289, 4290, 7, 85, 2, 2, 4290, 4291, 7, 85, 2, 2, 4291, 4292, 7, 75, 2, 2, 4292, 4293, 7, 73, 2, 2, 4293, 4294, 7, 80, 2, 2, 4294, 4295, 7, 97, 2, 2, 4295, 4296, 7, 73, 2, 2, 4296, 4297, 7, 86, 2, 2, 4297, 4298, 7, 75, 2, 2, 4298, 4299, 7, 70, 2, 2, 4299, 4300, 7, 85, 2, 2, 4300, 4301, 7, 97, 2, 2, 4301, 4302, 7, 86, 2, 2, 4302, 4303, 7, 81, 2, 2, 4303, 4304, 7, 97, 2, 2, 4304, 4305, 7, 67, 2, 2, 4305, 4306, 7, 80, 2, 2, 4306, 4307, 7, 81, 2, 2, 4307, 4308, 7, 80, 2, 2, 4308, 4309, 7, 91, 2, 2, 4309, 4310, 7, 79, 2, 2, 4310, 4311, 7, 81, 2, 2, 4311, 4312, 7, 87, 2, 2, 4312, 4313, 7, 85, 2, 2, 4313, 4314, 7, 97, 2, 2, 4314, 4315, 7, 86, 2, 2, 4315, 4316, 7, 84, 2, 2, 4316, 4317, 7, 67, 2, 2, 4317, 4318, 7, 80, 2, 2, 4318, 4319, 7, 85, 2, 2, 4319, 4320, 7, 67, 2, 2, 4320, 4321, 7, 69, 2, 2, 4321, 4322, 7, 86, 2, 2, 4322, 4323, 7, 75, 2, 2, 4323, 4324, 7, 81, 2, 2, 4324, 4325, 7, 80, 2, 2, 4325, 4326, 7, 85, 2, 2, 4326, 622, 3, 2, 2, 2, 4327, 4328, 7, 67, 2, 2, 4328, 4329, 7, 86, 2, 2, 4329, 624, 3, 2, 2, 2, 4330, 4331, 7, 67, 2, 2, 4331, 4332, 7, 87, 2, 2, 4332, 4333, 7, 86, 2, 2, 4333, 4334, 7, 74, 2, 2, 4334, 4335, 7, 81, 2, 2, 4335, 4336, 7, 84, 2, 2, 4336, 4337, 7, 85, 2, 2, 4337, 626, 3, 2, 2, 2, 4338, 4339, 7, 67, 2, 2, 4339, 4340, 7, 87, 2, 2, 4340, 4341, 7, 86, 2, 2, 4341, 4342, 7, 81, 2, 2, 4342, 4343, 7, 69, 2, 2, 4343, 4344, 7, 81, 2, 2, 4344, 4345, 7, 79, 2, 2, 4345, 4346, 7, 79, 2, 2, 4346, 4347, 7, 75, 2, 2, 4347, 4348, 7, 86, 2, 2, 4348, 628, 3, 2, 2, 2, 4349, 4350, 7, 67, 2, 2, 4350, 4351, 7, 87, 2, 2, 4351, 4352, 7, 86, 2, 2, 4352, 4353, 7, 81, 2, 2, 4353, 4354, 7, 71, 2, 2, 4354, 4355, 7, 90, 2, 2, 4355, 4356, 7, 86, 2, 2, 4356, 4357, 7, 71, 2, 2, 4357, 4358, 7, 80, 2, 2, 4358, 4359, 7, 70, 2, 2, 4359, 4360, 7, 97, 2, 2, 4360, 4361, 7, 85, 2, 2, 4361, 4362, 7, 75, 2, 2, 4362, 4363, 7, 92, 2, 2, 4363, 4364, 7, 71, 2, 2, 4364, 630, 3, 2, 2, 2, 4365, 4366, 7, 67, 2, 2, 4366, 4367, 7, 87, 2, 2, 4367, 4368, 7, 86, 2, 2, 4368, 4369, 7, 81, 2, 2, 4369, 4370, 7, 97, 2, 2, 4370, 4371, 7, 75, 2, 2, 4371, 4372, 7, 80, 2, 2, 4372, 4373, 7, 69, 2, 2, 4373, 4374, 7, 84, 2, 2, 4374, 4375, 7, 71, 2, 2, 4375, 4376, 7, 79, 2, 2, 4376, 4377, 7, 71, 2, 2, 4377, 4378, 7, 80, 2, 2, 4378, 4379, 7, 86, 2, 2, 4379, 632, 3, 2, 2, 2, 4380, 4381, 7, 67, 2, 2, 4381, 4382, 7, 88, 2, 2, 4382, 4383, 7, 73, 2, 2, 4383, 4384, 7, 97, 2, 2, 4384, 4385, 7, 84, 2, 2, 4385, 4386, 7, 81, 2, 2, 4386, 4387, 7, 89, 2, 2, 4387, 4388, 7, 97, 2, 2, 4388, 4389, 7, 78, 2, 2, 4389, 4390, 7, 71, 2, 2, 4390, 4391, 7, 80, 2, 2, 4391, 4392, 7, 73, 2, 2, 4392, 4393, 7, 86, 2, 2, 4393, 4394, 7, 74, 2, 2, 4394, 634, 3, 2, 2, 2, 4395, 4396, 7, 68, 2, 2, 4396, 4397, 7, 71, 2, 2, 4397, 4398, 7, 73, 2, 2, 4398, 4399, 7, 75, 2, 2, 4399, 4400, 7, 80, 2, 2, 4400, 636, 3, 2, 2, 2, 4401, 4402, 7, 68, 2, 2, 4402, 4403, 7, 75, 2, 2, 4403, 4404, 7, 80, 2, 2, 4404, 4405, 7, 78, 2, 2, 4405, 4406, 7, 81, 2, 2, 4406, 4407, 7, 73, 2, 2, 4407, 638, 3, 2, 2, 2, 4408, 4409, 7, 68, 2, 2, 4409, 4410, 7, 75, 2, 2, 4410, 4411, 7, 86, 2, 2, 4411, 640, 3, 2, 2, 2, 4412, 4413, 7, 68, 2, 2, 4413, 4414, 7, 78, 2, 2, 4414, 4415, 7, 81, 2, 2, 4415, 4416, 7, 69, 2, 2, 4416, 4417, 7, 77, 2, 2, 4417, 642, 3, 2, 2, 2, 4418, 4419, 7, 68, 2, 2, 4419, 4420, 7, 81, 2, 2, 4420, 4421, 7, 81, 2, 2, 4421, 4422, 7, 78, 2, 2, 4422, 644, 3, 2, 2, 2, 4423, 4424, 7, 68, 2, 2, 4424, 4425, 7, 81, 2, 2, 4425, 4426, 7, 81, 2, 2, 4426, 4427, 7, 78, 2, 2, 4427, 4428, 7, 71, 2, 2, 4428, 4429, 7, 67, 2, 2, 4429, 4430, 7, 80, 2, 2, 4430, 646, 3, 2, 2, 2, 4431, 4432, 7, 68, 2, 2, 4432, 4433, 7, 86, 2, 2, 4433, 4434, 7, 84, 2, 2, 4434, 4435, 7, 71, 2, 2, 4435, 4436, 7, 71, 2, 2, 4436, 648, 3, 2, 2, 2, 4437, 4438, 7, 69, 2, 2, 4438, 4439, 7, 67, 2, 2, 4439, 4440, 7, 69, 2, 2, 4440, 4441, 7, 74, 2, 2, 4441, 4442, 7, 71, 2, 2, 4442, 650, 3, 2, 2, 2, 4443, 4444, 7, 69, 2, 2, 4444, 4445, 7, 67, 2, 2, 4445, 4446, 7, 85, 2, 2, 4446, 4447, 7, 69, 2, 2, 4447, 4448, 7, 67, 2, 2, 4448, 4449, 7, 70, 2, 2, 4449, 4450, 7, 71, 2, 2, 4450, 4451, 7, 70, 2, 2, 4451, 652, 3, 2, 2, 2, 4452, 4453, 7, 69, 2, 2, 4453, 4454, 7, 74, 2, 2, 4454, 4455, 7, 67, 2, 2, 4455, 4456, 7, 75, 2, 2, 4456, 4457, 7, 80, 2, 2, 4457, 654, 3, 2, 2, 2, 4458, 4459, 7, 69, 2, 2, 4459, 4460, 7, 74, 2, 2, 4460, 4461, 7, 67, 2, 2, 4461, 4462, 7, 80, 2, 2, 4462, 4463, 7, 73, 2, 2, 4463, 4464, 7, 71, 2, 2, 4464, 4465, 7, 70, 2, 2, 4465, 656, 3, 2, 2, 2, 4466, 4467, 7, 69, 2, 2, 4467, 4468, 7, 74, 2, 2, 4468, 4469, 7, 67, 2, 2, 4469, 4470, 7, 80, 2, 2, 4470, 4471, 7, 80, 2, 2, 4471, 4472, 7, 71, 2, 2, 4472, 4473, 7, 78, 2, 2, 4473, 658, 3, 2, 2, 2, 4474, 4475, 7, 69, 2, 2, 4475, 4476, 7, 74, 2, 2, 4476, 4477, 7, 71, 2, 2, 4477, 4478, 7, 69, 2, 2, 4478, 4479, 7, 77, 2, 2, 4479, 4480, 7, 85, 2, 2, 4480, 4481, 7, 87, 2, 2, 4481, 4482, 7, 79, 2, 2, 4482, 660, 3, 2, 2, 2, 4483, 4484, 7, 69, 2, 2, 4484, 4485, 7, 74, 2, 2, 4485, 4486, 7, 67, 2, 2, 4486, 4487, 7, 78, 2, 2, 4487, 4488, 7, 78, 2, 2, 4488, 4489, 7, 71, 2, 2, 4489, 4490, 7, 80, 2, 2, 4490, 4491, 7, 73, 2, 2, 4491, 4492, 7, 71, 2, 2, 4492, 4493, 7, 97, 2, 2, 4493, 4494, 7, 84, 2, 2, 4494, 4495, 7, 71, 2, 2, 4495, 4496, 7, 85, 2, 2, 4496, 4497, 7, 82, 2, 2, 4497, 4498, 7, 81, 2, 2, 4498, 4499, 7, 80, 2, 2, 4499, 4500, 7, 85, 2, 2, 4500, 4501, 7, 71, 2, 2, 4501, 662, 3, 2, 2, 2, 4502, 4503, 7, 69, 2, 2, 4503, 4504, 7, 75, 2, 2, 4504, 4505, 7, 82, 2, 2, 4505, 4506, 7, 74, 2, 2, 4506, 4507, 7, 71, 2, 2, 4507, 4508, 7, 84, 2, 2, 4508, 664, 3, 2, 2, 2, 4509, 4510, 7, 69, 2, 2, 4510, 4511, 7, 78, 2, 2, 4511, 4512, 7, 67, 2, 2, 4512, 4513, 7, 85, 2, 2, 4513, 4514, 7, 85, 2, 2, 4514, 4515, 7, 97, 2, 2, 4515, 4516, 7, 81, 2, 2, 4516, 4517, 7, 84, 2, 2, 4517, 4518, 7, 75, 2, 2, 4518, 4519, 7, 73, 2, 2, 4519, 4520, 7, 75, 2, 2, 4520, 4521, 7, 80, 2, 2, 4521, 666, 3, 2, 2, 2, 4522, 4523, 7, 69, 2, 2, 4523, 4524, 7, 78, 2, 2, 4524, 4525, 7, 75, 2, 2, 4525, 4526, 7, 71, 2, 2, 4526, 4527, 7, 80, 2, 2, 4527, 4528, 7, 86, 2, 2, 4528, 668, 3, 2, 2, 2, 4529, 4530, 7, 69, 2, 2, 4530, 4531, 7, 78, 2, 2, 4531, 4532, 7, 81, 2, 2, 4532, 4533, 7, 85, 2, 2, 4533, 4534, 7, 71, 2, 2, 4534, 670, 3, 2, 2, 2, 4535, 4536, 7, 69, 2, 2, 4536, 4537, 7, 81, 2, 2, 4537, 4538, 7, 67, 2, 2, 4538, 4539, 7, 78, 2, 2, 4539, 4540, 7, 71, 2, 2, 4540, 4541, 7, 85, 2, 2, 4541, 4542, 7, 69, 2, 2, 4542, 4543, 7, 71, 2, 2, 4543, 672, 3, 2, 2, 2, 4544, 4545, 7, 69, 2, 2, 4545, 4546, 7, 81, 2, 2, 4546, 4547, 7, 70, 2, 2, 4547, 4548, 7, 71, 2, 2, 4548, 674, 3, 2, 2, 2, 4549, 4550, 7, 69, 2, 2, 4550, 4551, 7, 81, 2, 2, 4551, 4552, 7, 78, 2, 2, 4552, 4553, 7, 87, 2, 2, 4553, 4554, 7, 79, 2, 2, 4554, 4555, 7, 80, 2, 2, 4555, 4556, 7, 85, 2, 2, 4556, 676, 3, 2, 2, 2, 4557, 4558, 7, 69, 2, 2, 4558, 4559, 7, 81, 2, 2, 4559, 4560, 7, 78, 2, 2, 4560, 4561, 7, 87, 2, 2, 4561, 4562, 7, 79, 2, 2, 4562, 4563, 7, 80, 2, 2, 4563, 4564, 7, 97, 2, 2, 4564, 4565, 7, 72, 2, 2, 4565, 4566, 7, 81, 2, 2, 4566, 4567, 7, 84, 2, 2, 4567, 4568, 7, 79, 2, 2, 4568, 4569, 7, 67, 2, 2, 4569, 4570, 7, 86, 2, 2, 4570, 678, 3, 2, 2, 2, 4571, 4572, 7, 69, 2, 2, 4572, 4573, 7, 81, 2, 2, 4573, 4574, 7, 78, 2, 2, 4574, 4575, 7, 87, 2, 2, 4575, 4576, 7, 79, 2, 2, 4576, 4577, 7, 80, 2, 2, 4577, 4578, 7, 97, 2, 2, 4578, 4579, 7, 80, 2, 2, 4579, 4580, 7, 67, 2, 2, 4580, 4581, 7, 79, 2, 2, 4581, 4582, 7, 71, 2, 2, 4582, 680, 3, 2, 2, 2, 4583, 4584, 7, 69, 2, 2, 4584, 4585, 7, 81, 2, 2, 4585, 4586, 7, 79, 2, 2, 4586, 4587, 7, 79, 2, 2, 4587, 4588, 7, 71, 2, 2, 4588, 4589, 7, 80, 2, 2, 4589, 4590, 7, 86, 2, 2, 4590, 682, 3, 2, 2, 2, 4591, 4592, 7, 69, 2, 2, 4592, 4593, 7, 81, 2, 2, 4593, 4594, 7, 79, 2, 2, 4594, 4595, 7, 79, 2, 2, 4595, 4596, 7, 75, 2, 2, 4596, 4597, 7, 86, 2, 2, 4597, 684, 3, 2, 2, 2, 4598, 4599, 7, 69, 2, 2, 4599, 4600, 7, 81, 2, 2, 4600, 4601, 7, 79, 2, 2, 4601, 4602, 7, 82, 2, 2, 4602, 4603, 7, 67, 2, 2, 4603, 4604, 7, 69, 2, 2, 4604, 4605, 7, 86, 2, 2, 4605, 686, 3, 2, 2, 2, 4606, 4607, 7, 69, 2, 2, 4607, 4608, 7, 81, 2, 2, 4608, 4609, 7, 79, 2, 2, 4609, 4610, 7, 82, 2, 2, 4610, 4611, 7, 78, 2, 2, 4611, 4612, 7, 71, 2, 2, 4612, 4613, 7, 86, 2, 2, 4613, 4614, 7, 75, 2, 2, 4614, 4615, 7, 81, 2, 2, 4615, 4616, 7, 80, 2, 2, 4616, 688, 3, 2, 2, 2, 4617, 4618, 7, 69, 2, 2, 4618, 4619, 7, 81, 2, 2, 4619, 4620, 7, 79, 2, 2, 4620, 4621, 7, 82, 2, 2, 4621, 4622, 7, 81, 2, 2, 4622, 4623, 7, 80, 2, 2, 4623, 4624, 7, 71, 2, 2, 4624, 4625, 7, 80, 2, 2, 4625, 4626, 7, 86, 2, 2, 4626, 690, 3, 2, 2, 2, 4627, 4628, 7, 69, 2, 2, 4628, 4629, 7, 81, 2, 2, 4629, 4630, 7, 79, 2, 2, 4630, 4631, 7, 82, 2, 2, 4631, 4632, 7, 84, 2, 2, 4632, 4633, 7, 71, 2, 2, 4633, 4634, 7, 85, 2, 2, 4634, 4635, 7, 85, 2, 2, 4635, 4636, 7, 71, 2, 2, 4636, 4637, 7, 70, 2, 2, 4637, 692, 3, 2, 2, 2, 4638, 4639, 7, 69, 2, 2, 4639, 4640, 7, 81, 2, 2, 4640, 4641, 7, 79, 2, 2, 4641, 4642, 7, 82, 2, 2, 4642, 4643, 7, 84, 2, 2, 4643, 4644, 7, 71, 2, 2, 4644, 4645, 7, 85, 2, 2, 4645, 4646, 7, 85, 2, 2, 4646, 4647, 7, 75, 2, 2, 4647, 4648, 7, 81, 2, 2, 4648, 4649, 7, 80, 2, 2, 4649, 694, 3, 2, 2, 2, 4650, 4651, 7, 69, 2, 2, 4651, 4652, 7, 81, 2, 2, 4652, 4653, 7, 80, 2, 2, 4653, 4654, 7, 69, 2, 2, 4654, 4655, 7, 87, 2, 2, 4655, 4656, 7, 84, 2, 2, 4656, 4657, 7, 84, 2, 2, 4657, 4658, 7, 71, 2, 2, 4658, 4659, 7, 80, 2, 2, 4659, 4660, 7, 86, 2, 2, 4660, 696, 3, 2, 2, 2, 4661, 4662, 7, 69, 2, 2, 4662, 4663, 7, 81, 2, 2, 4663, 4664, 7, 80, 2, 2, 4664, 4665, 7, 80, 2, 2, 4665, 4666, 7, 71, 2, 2, 4666, 4667, 7, 69, 2, 2, 4667, 4668, 7, 86, 2, 2, 4668, 698, 3, 2, 2, 2, 4669, 4670, 7, 69, 2, 2, 4670, 4671, 7, 81, 2, 2, 4671, 4672, 7, 80, 2, 2, 4672, 4673, 7, 80, 2, 2, 4673, 4674, 7, 71, 2, 2, 4674, 4675, 7, 69, 2, 2, 4675, 4676, 7, 86, 2, 2, 4676, 4677, 7, 75, 2, 2, 4677, 4678, 7, 81, 2, 2, 4678, 4679, 7, 80, 2, 2, 4679, 700, 3, 2, 2, 2, 4680, 4681, 7, 69, 2, 2, 4681, 4682, 7, 81, 2, 2, 4682, 4683, 7, 80, 2, 2, 4683, 4684, 7, 85, 2, 2, 4684, 4685, 7, 75, 2, 2, 4685, 4686, 7, 85, 2, 2, 4686, 4687, 7, 86, 2, 2, 4687, 4688, 7, 71, 2, 2, 4688, 4689, 7, 80, 2, 2, 4689, 4690, 7, 86, 2, 2, 4690, 702, 3, 2, 2, 2, 4691, 4692, 7, 69, 2, 2, 4692, 4693, 7, 81, 2, 2, 4693, 4694, 7, 80, 2, 2, 4694, 4695, 7, 85, 2, 2, 4695, 4696, 7, 86, 2, 2, 4696, 4697, 7, 84, 2, 2, 4697, 4698, 7, 67, 2, 2, 4698, 4699, 7, 75, 2, 2, 4699, 4700, 7, 80, 2, 2, 4700, 4701, 7, 86, 2, 2, 4701, 4702, 7, 97, 2, 2, 4702, 4703, 7, 69, 2, 2, 4703, 4704, 7, 67, 2, 2, 4704, 4705, 7, 86, 2, 2, 4705, 4706, 7, 67, 2, 2, 4706, 4707, 7, 78, 2, 2, 4707, 4708, 7, 81, 2, 2, 4708, 4709, 7, 73, 2, 2, 4709, 704, 3, 2, 2, 2, 4710, 4711, 7, 69, 2, 2, 4711, 4712, 7, 81, 2, 2, 4712, 4713, 7, 80, 2, 2, 4713, 4714, 7, 85, 2, 2, 4714, 4715, 7, 86, 2, 2, 4715, 4716, 7, 84, 2, 2, 4716, 4717, 7, 67, 2, 2, 4717, 4718, 7, 75, 2, 2, 4718, 4719, 7, 80, 2, 2, 4719, 4720, 7, 86, 2, 2, 4720, 4721, 7, 97, 2, 2, 4721, 4722, 7, 85, 2, 2, 4722, 4723, 7, 69, 2, 2, 4723, 4724, 7, 74, 2, 2, 4724, 4725, 7, 71, 2, 2, 4725, 4726, 7, 79, 2, 2, 4726, 4727, 7, 67, 2, 2, 4727, 706, 3, 2, 2, 2, 4728, 4729, 7, 69, 2, 2, 4729, 4730, 7, 81, 2, 2, 4730, 4731, 7, 80, 2, 2, 4731, 4732, 7, 85, 2, 2, 4732, 4733, 7, 86, 2, 2, 4733, 4734, 7, 84, 2, 2, 4734, 4735, 7, 67, 2, 2, 4735, 4736, 7, 75, 2, 2, 4736, 4737, 7, 80, 2, 2, 4737, 4738, 7, 86, 2, 2, 4738, 4739, 7, 97, 2, 2, 4739, 4740, 7, 80, 2, 2, 4740, 4741, 7, 67, 2, 2, 4741, 4742, 7, 79, 2, 2, 4742, 4743, 7, 71, 2, 2, 4743, 708, 3, 2, 2, 2, 4744, 4745, 7, 69, 2, 2, 4745, 4746, 7, 81, 2, 2, 4746, 4747, 7, 80, 2, 2, 4747, 4748, 7, 86, 2, 2, 4748, 4749, 7, 67, 2, 2, 4749, 4750, 7, 75, 2, 2, 4750, 4751, 7, 80, 2, 2, 4751, 4752, 7, 85, 2, 2, 4752, 710, 3, 2, 2, 2, 4753, 4754, 7, 69, 2, 2, 4754, 4755, 7, 81, 2, 2, 4755, 4756, 7, 80, 2, 2, 4756, 4757, 7, 86, 2, 2, 4757, 4758, 7, 71, 2, 2, 4758, 4759, 7, 90, 2, 2, 4759, 4760, 7, 86, 2, 2, 4760, 712, 3, 2, 2, 2, 4761, 4762, 7, 69, 2, 2, 4762, 4763, 7, 81, 2, 2, 4763, 4764, 7, 80, 2, 2, 4764, 4765, 7, 86, 2, 2, 4765, 4766, 7, 84, 2, 2, 4766, 4767, 7, 75, 2, 2, 4767, 4768, 7, 68, 2, 2, 4768, 4769, 7, 87, 2, 2, 4769, 4770, 7, 86, 2, 2, 4770, 4771, 7, 81, 2, 2, 4771, 4772, 7, 84, 2, 2, 4772, 4773, 7, 85, 2, 2, 4773, 714, 3, 2, 2, 2, 4774, 4775, 7, 69, 2, 2, 4775, 4776, 7, 81, 2, 2, 4776, 4777, 7, 82, 2, 2, 4777, 4778, 7, 91, 2, 2, 4778, 716, 3, 2, 2, 2, 4779, 4780, 7, 69, 2, 2, 4780, 4781, 7, 82, 2, 2, 4781, 4782, 7, 87, 2, 2, 4782, 718, 3, 2, 2, 2, 4783, 4784, 7, 69, 2, 2, 4784, 4785, 7, 87, 2, 2, 4785, 4786, 7, 84, 2, 2, 4786, 4787, 7, 85, 2, 2, 4787, 4788, 7, 81, 2, 2, 4788, 4789, 7, 84, 2, 2, 4789, 4790, 7, 97, 2, 2, 4790, 4791, 7, 80, 2, 2, 4791, 4792, 7, 67, 2, 2, 4792, 4793, 7, 79, 2, 2, 4793, 4794, 7, 71, 2, 2, 4794, 720, 3, 2, 2, 2, 4795, 4796, 7, 70, 2, 2, 4796, 4797, 7, 67, 2, 2, 4797, 4798, 7, 86, 2, 2, 4798, 4799, 7, 67, 2, 2, 4799, 722, 3, 2, 2, 2, 4800, 4801, 7, 70, 2, 2, 4801, 4802, 7, 67, 2, 2, 4802, 4803, 7, 86, 2, 2, 4803, 4804, 7, 67, 2, 2, 4804, 4805, 7, 72, 2, 2, 4805, 4806, 7, 75, 2, 2, 4806, 4807, 7, 78, 2, 2, 4807, 4808, 7, 71, 2, 2, 4808, 724, 3, 2, 2, 2, 4809, 4810, 7, 70, 2, 2, 4810, 4811, 7, 71, 2, 2, 4811, 4812, 7, 67, 2, 2, 4812, 4813, 7, 78, 2, 2, 4813, 4814, 7, 78, 2, 2, 4814, 4815, 7, 81, 2, 2, 4815, 4816, 7, 69, 2, 2, 4816, 4817, 7, 67, 2, 2, 4817, 4818, 7, 86, 2, 2, 4818, 4819, 7, 71, 2, 2, 4819, 726, 3, 2, 2, 2, 4820, 4821, 7, 70, 2, 2, 4821, 4822, 7, 71, 2, 2, 4822, 4823, 7, 72, 2, 2, 4823, 4824, 7, 67, 2, 2, 4824, 4825, 7, 87, 2, 2, 4825, 4826, 7, 78, 2, 2, 4826, 4827, 7, 86, 2, 2, 4827, 4828, 7, 97, 2, 2, 4828, 4829, 7, 67, 2, 2, 4829, 4830, 7, 87, 2, 2, 4830, 4831, 7, 86, 2, 2, 4831, 4832, 7, 74, 2, 2, 4832, 728, 3, 2, 2, 2, 4833, 4834, 7, 70, 2, 2, 4834, 4835, 7, 71, 2, 2, 4835, 4836, 7, 72, 2, 2, 4836, 4837, 7, 75, 2, 2, 4837, 4838, 7, 80, 2, 2, 4838, 4839, 7, 71, 2, 2, 4839, 4840, 7, 84, 2, 2, 4840, 730, 3, 2, 2, 2, 4841, 4842, 7, 70, 2, 2, 4842, 4843, 7, 71, 2, 2, 4843, 4844, 7, 78, 2, 2, 4844, 4845, 7, 67, 2, 2, 4845, 4846, 7, 91, 2, 2, 4846, 4847, 7, 97, 2, 2, 4847, 4848, 7, 77, 2, 2, 4848, 4849, 7, 71, 2, 2, 4849, 4850, 7, 91, 2, 2, 4850, 4851, 7, 97, 2, 2, 4851, 4852, 7, 89, 2, 2, 4852, 4853, 7, 84, 2, 2, 4853, 4854, 7, 75, 2, 2, 4854, 4855, 7, 86, 2, 2, 4855, 4856, 7, 71, 2, 2, 4856, 732, 3, 2, 2, 2, 4857, 4858, 7, 70, 2, 2, 4858, 4859, 7, 71, 2, 2, 4859, 4860, 7, 85, 2, 2, 4860, 4861, 7, 97, 2, 2, 4861, 4862, 7, 77, 2, 2, 4862, 4863, 7, 71, 2, 2, 4863, 4864, 7, 91, 2, 2, 4864, 4865, 7, 97, 2, 2, 4865, 4866, 7, 72, 2, 2, 4866, 4867, 7, 75, 2, 2, 4867, 4868, 7, 78, 2, 2, 4868, 4869, 7, 71, 2, 2, 4869, 734, 3, 2, 2, 2, 4870, 4871, 7, 70, 2, 2, 4871, 4872, 7, 75, 2, 2, 4872, 4873, 7, 84, 2, 2, 4873, 4874, 7, 71, 2, 2, 4874, 4875, 7, 69, 2, 2, 4875, 4876, 7, 86, 2, 2, 4876, 4877, 7, 81, 2, 2, 4877, 4878, 7, 84, 2, 2, 4878, 4879, 7, 91, 2, 2, 4879, 736, 3, 2, 2, 2, 4880, 4881, 7, 70, 2, 2, 4881, 4882, 7, 75, 2, 2, 4882, 4883, 7, 85, 2, 2, 4883, 4884, 7, 67, 2, 2, 4884, 4885, 7, 68, 2, 2, 4885, 4886, 7, 78, 2, 2, 4886, 4887, 7, 71, 2, 2, 4887, 738, 3, 2, 2, 2, 4888, 4889, 7, 70, 2, 2, 4889, 4890, 7, 75, 2, 2, 4890, 4891, 7, 85, 2, 2, 4891, 4892, 7, 69, 2, 2, 4892, 4893, 7, 67, 2, 2, 4893, 4894, 7, 84, 2, 2, 4894, 4895, 7, 70, 2, 2, 4895, 740, 3, 2, 2, 2, 4896, 4897, 7, 70, 2, 2, 4897, 4898, 7, 75, 2, 2, 4898, 4899, 7, 85, 2, 2, 4899, 4900, 7, 77, 2, 2, 4900, 742, 3, 2, 2, 2, 4901, 4902, 7, 70, 2, 2, 4902, 4903, 7, 81, 2, 2, 4903, 744, 3, 2, 2, 2, 4904, 4905, 7, 70, 2, 2, 4905, 4906, 7, 87, 2, 2, 4906, 4907, 7, 79, 2, 2, 4907, 4908, 7, 82, 2, 2, 4908, 4909, 7, 72, 2, 2, 4909, 4910, 7, 75, 2, 2, 4910, 4911, 7, 78, 2, 2, 4911, 4912, 7, 71, 2, 2, 4912, 746, 3, 2, 2, 2, 4913, 4914, 7, 70, 2, 2, 4914, 4915, 7, 87, 2, 2, 4915, 4916, 7, 82, 2, 2, 4916, 4917, 7, 78, 2, 2, 4917, 4918, 7, 75, 2, 2, 4918, 4919, 7, 69, 2, 2, 4919, 4920, 7, 67, 2, 2, 4920, 4921, 7, 86, 2, 2, 4921, 4922, 7, 71, 2, 2, 4922, 748, 3, 2, 2, 2, 4923, 4924, 7, 70, 2, 2, 4924, 4925, 7, 91, 2, 2, 4925, 4926, 7, 80, 2, 2, 4926, 4927, 7, 67, 2, 2, 4927, 4928, 7, 79, 2, 2, 4928, 4929, 7, 75, 2, 2, 4929, 4930, 7, 69, 2, 2, 4930, 750, 3, 2, 2, 2, 4931, 4932, 7, 71, 2, 2, 4932, 4933, 7, 80, 2, 2, 4933, 4934, 7, 67, 2, 2, 4934, 4935, 7, 68, 2, 2, 4935, 4936, 7, 78, 2, 2, 4936, 4937, 7, 71, 2, 2, 4937, 752, 3, 2, 2, 2, 4938, 4939, 7, 71, 2, 2, 4939, 4940, 7, 80, 2, 2, 4940, 4941, 7, 69, 2, 2, 4941, 4942, 7, 84, 2, 2, 4942, 4943, 7, 91, 2, 2, 4943, 4944, 7, 82, 2, 2, 4944, 4945, 7, 86, 2, 2, 4945, 4946, 7, 75, 2, 2, 4946, 4947, 7, 81, 2, 2, 4947, 4948, 7, 80, 2, 2, 4948, 754, 3, 2, 2, 2, 4949, 4950, 7, 71, 2, 2, 4950, 4951, 7, 80, 2, 2, 4951, 4952, 7, 69, 2, 2, 4952, 4953, 7, 84, 2, 2, 4953, 4954, 7, 91, 2, 2, 4954, 4955, 7, 82, 2, 2, 4955, 4956, 7, 86, 2, 2, 4956, 4957, 7, 75, 2, 2, 4957, 4958, 7, 81, 2, 2, 4958, 4959, 7, 80, 2, 2, 4959, 4960, 7, 97, 2, 2, 4960, 4961, 7, 77, 2, 2, 4961, 4962, 7, 71, 2, 2, 4962, 4963, 7, 91, 2, 2, 4963, 4964, 7, 97, 2, 2, 4964, 4965, 7, 75, 2, 2, 4965, 4966, 7, 70, 2, 2, 4966, 756, 3, 2, 2, 2, 4967, 4968, 7, 71, 2, 2, 4968, 4969, 7, 80, 2, 2, 4969, 4970, 7, 70, 2, 2, 4970, 758, 3, 2, 2, 2, 4971, 4972, 7, 71, 2, 2, 4972, 4973, 7, 80, 2, 2, 4973, 4974, 7, 70, 2, 2, 4974, 4975, 7, 85, 2, 2, 4975, 760, 3, 2, 2, 2, 4976, 4977, 7, 71, 2, 2, 4977, 4978, 7, 80, 2, 2, 4978, 4979, 7, 73, 2, 2, 4979, 4980, 7, 75, 2, 2, 4980, 4981, 7, 80, 2, 2, 4981, 4982, 7, 71, 2, 2, 4982, 762, 3, 2, 2, 2, 4983, 4984, 7, 71, 2, 2, 4984, 4985, 7, 80, 2, 2, 4985, 4986, 7, 73, 2, 2, 4986, 4987, 7, 75, 2, 2, 4987, 4988, 7, 80, 2, 2, 4988, 4989, 7, 71, 2, 2, 4989, 4990, 7, 85, 2, 2, 4990, 764, 3, 2, 2, 2, 4991, 4992, 7, 71, 2, 2, 4992, 4993, 7, 84, 2, 2, 4993, 4994, 7, 84, 2, 2, 4994, 4995, 7, 81, 2, 2, 4995, 4996, 7, 84, 2, 2, 4996, 766, 3, 2, 2, 2, 4997, 4998, 7, 71, 2, 2, 4998, 4999, 7, 84, 2, 2, 4999, 5000, 7, 84, 2, 2, 5000, 5001, 7, 81, 2, 2, 5001, 5002, 7, 84, 2, 2, 5002, 5003, 7, 85, 2, 2, 5003, 768, 3, 2, 2, 2, 5004, 5005, 7, 71, 2, 2, 5005, 5006, 7, 85, 2, 2, 5006, 5007, 7, 69, 2, 2, 5007, 5008, 7, 67, 2, 2, 5008, 5009, 7, 82, 2, 2, 5009, 5010, 7, 71, 2, 2, 5010, 770, 3, 2, 2, 2, 5011, 5012, 7, 71, 2, 2, 5012, 5013, 7, 88, 2, 2, 5013, 5014, 7, 71, 2, 2, 5014, 5015, 7, 80, 2, 2, 5015, 5016, 7, 86, 2, 2, 5016, 772, 3, 2, 2, 2, 5017, 5018, 7, 71, 2, 2, 5018, 5019, 7, 88, 2, 2, 5019, 5020, 7, 71, 2, 2, 5020, 5021, 7, 80, 2, 2, 5021, 5022, 7, 86, 2, 2, 5022, 5023, 7, 85, 2, 2, 5023, 774, 3, 2, 2, 2, 5024, 5025, 7, 71, 2, 2, 5025, 5026, 7, 88, 2, 2, 5026, 5027, 7, 71, 2, 2, 5027, 5028, 7, 84, 2, 2, 5028, 5029, 7, 91, 2, 2, 5029, 776, 3, 2, 2, 2, 5030, 5031, 7, 71, 2, 2, 5031, 5032, 7, 90, 2, 2, 5032, 5033, 7, 69, 2, 2, 5033, 5034, 7, 74, 2, 2, 5034, 5035, 7, 67, 2, 2, 5035, 5036, 7, 80, 2, 2, 5036, 5037, 7, 73, 2, 2, 5037, 5038, 7, 71, 2, 2, 5038, 778, 3, 2, 2, 2, 5039, 5040, 7, 71, 2, 2, 5040, 5041, 7, 90, 2, 2, 5041, 5042, 7, 69, 2, 2, 5042, 5043, 7, 78, 2, 2, 5043, 5044, 7, 87, 2, 2, 5044, 5045, 7, 85, 2, 2, 5045, 5046, 7, 75, 2, 2, 5046, 5047, 7, 88, 2, 2, 5047, 5048, 7, 71, 2, 2, 5048, 780, 3, 2, 2, 2, 5049, 5050, 7, 71, 2, 2, 5050, 5051, 7, 90, 2, 2, 5051, 5052, 7, 82, 2, 2, 5052, 5053, 7, 75, 2, 2, 5053, 5054, 7, 84, 2, 2, 5054, 5055, 7, 71, 2, 2, 5055, 782, 3, 2, 2, 2, 5056, 5057, 7, 71, 2, 2, 5057, 5058, 7, 90, 2, 2, 5058, 5059, 7, 82, 2, 2, 5059, 5060, 7, 81, 2, 2, 5060, 5061, 7, 84, 2, 2, 5061, 5062, 7, 86, 2, 2, 5062, 784, 3, 2, 2, 2, 5063, 5064, 7, 71, 2, 2, 5064, 5065, 7, 90, 2, 2, 5065, 5066, 7, 86, 2, 2, 5066, 5067, 7, 71, 2, 2, 5067, 5068, 7, 80, 2, 2, 5068, 5069, 7, 70, 2, 2, 5069, 5070, 7, 71, 2, 2, 5070, 5071, 7, 70, 2, 2, 5071, 786, 3, 2, 2, 2, 5072, 5073, 7, 71, 2, 2, 5073, 5074, 7, 90, 2, 2, 5074, 5075, 7, 86, 2, 2, 5075, 5076, 7, 71, 2, 2, 5076, 5077, 7, 80, 2, 2, 5077, 5078, 7, 86, 2, 2, 5078, 5079, 7, 97, 2, 2, 5079, 5080, 7, 85, 2, 2, 5080, 5081, 7, 75, 2, 2, 5081, 5082, 7, 92, 2, 2, 5082, 5083, 7, 71, 2, 2, 5083, 788, 3, 2, 2, 2, 5084, 5085, 7, 72, 2, 2, 5085, 5086, 7, 67, 2, 2, 5086, 5087, 7, 69, 2, 2, 5087, 5088, 7, 86, 2, 2, 5088, 5089, 7, 81, 2, 2, 5089, 5090, 7, 84, 2, 2, 5090, 790, 3, 2, 2, 2, 5091, 5092, 7, 72, 2, 2, 5092, 5093, 7, 67, 2, 2, 5093, 5094, 7, 75, 2, 2, 5094, 5095, 7, 78, 2, 2, 5095, 5096, 7, 71, 2, 2, 5096, 5097, 7, 70, 2, 2, 5097, 5098, 7, 97, 2, 2, 5098, 5099, 7, 78, 2, 2, 5099, 5100, 7, 81, 2, 2, 5100, 5101, 7, 73, 2, 2, 5101, 5102, 7, 75, 2, 2, 5102, 5103, 7, 80, 2, 2, 5103, 5104, 7, 97, 2, 2, 5104, 5105, 7, 67, 2, 2, 5105, 5106, 7, 86, 2, 2, 5106, 5107, 7, 86, 2, 2, 5107, 5108, 7, 71, 2, 2, 5108, 5109, 7, 79, 2, 2, 5109, 5110, 7, 82, 2, 2, 5110, 5111, 7, 86, 2, 2, 5111, 5112, 7, 85, 2, 2, 5112, 792, 3, 2, 2, 2, 5113, 5114, 7, 72, 2, 2, 5114, 5115, 7, 67, 2, 2, 5115, 5116, 7, 85, 2, 2, 5116, 5117, 7, 86, 2, 2, 5117, 794, 3, 2, 2, 2, 5118, 5119, 7, 72, 2, 2, 5119, 5120, 7, 67, 2, 2, 5120, 5121, 7, 87, 2, 2, 5121, 5122, 7, 78, 2, 2, 5122, 5123, 7, 86, 2, 2, 5123, 5124, 7, 85, 2, 2, 5124, 796, 3, 2, 2, 2, 5125, 5126, 7, 72, 2, 2, 5126, 5127, 7, 75, 2, 2, 5127, 5128, 7, 71, 2, 2, 5128, 5129, 7, 78, 2, 2, 5129, 5130, 7, 70, 2, 2, 5130, 5131, 7, 85, 2, 2, 5131, 798, 3, 2, 2, 2, 5132, 5133, 7, 72, 2, 2, 5133, 5134, 7, 75, 2, 2, 5134, 5135, 7, 78, 2, 2, 5135, 5136, 7, 71, 2, 2, 5136, 5137, 7, 97, 2, 2, 5137, 5138, 7, 68, 2, 2, 5138, 5139, 7, 78, 2, 2, 5139, 5140, 7, 81, 2, 2, 5140, 5141, 7, 69, 2, 2, 5141, 5142, 7, 77, 2, 2, 5142, 5143, 7, 97, 2, 2, 5143, 5144, 7, 85, 2, 2, 5144, 5145, 7, 75, 2, 2, 5145, 5146, 7, 92, 2, 2, 5146, 5147, 7, 71, 2, 2, 5147, 800, 3, 2, 2, 2, 5148, 5149, 7, 72, 2, 2, 5149, 5150, 7, 75, 2, 2, 5150, 5151, 7, 78, 2, 2, 5151, 5152, 7, 86, 2, 2, 5152, 5153, 7, 71, 2, 2, 5153, 5154, 7, 84, 2, 2, 5154, 802, 3, 2, 2, 2, 5155, 5156, 7, 72, 2, 2, 5156, 5157, 7, 75, 2, 2, 5157, 5158, 7, 80, 2, 2, 5158, 5159, 7, 75, 2, 2, 5159, 5160, 7, 85, 2, 2, 5160, 5161, 7, 74, 2, 2, 5161, 804, 3, 2, 2, 2, 5162, 5163, 7, 72, 2, 2, 5163, 5164, 7, 75, 2, 2, 5164, 5165, 7, 84, 2, 2, 5165, 5166, 7, 85, 2, 2, 5166, 5167, 7, 86, 2, 2, 5167, 806, 3, 2, 2, 2, 5168, 5169, 7, 72, 2, 2, 5169, 5170, 7, 75, 2, 2, 5170, 5171, 7, 90, 2, 2, 5171, 5172, 7, 71, 2, 2, 5172, 5173, 7, 70, 2, 2, 5173, 808, 3, 2, 2, 2, 5174, 5175, 7, 72, 2, 2, 5175, 5176, 7, 78, 2, 2, 5176, 5177, 7, 87, 2, 2, 5177, 5178, 7, 85, 2, 2, 5178, 5179, 7, 74, 2, 2, 5179, 810, 3, 2, 2, 2, 5180, 5181, 7, 72, 2, 2, 5181, 5182, 7, 81, 2, 2, 5182, 5183, 7, 78, 2, 2, 5183, 5184, 7, 78, 2, 2, 5184, 5185, 7, 81, 2, 2, 5185, 5186, 7, 89, 2, 2, 5186, 5187, 7, 75, 2, 2, 5187, 5188, 7, 80, 2, 2, 5188, 5189, 7, 73, 2, 2, 5189, 812, 3, 2, 2, 2, 5190, 5191, 7, 72, 2, 2, 5191, 5192, 7, 81, 2, 2, 5192, 5193, 7, 78, 2, 2, 5193, 5194, 7, 78, 2, 2, 5194, 5195, 7, 81, 2, 2, 5195, 5196, 7, 89, 2, 2, 5196, 5197, 7, 85, 2, 2, 5197, 814, 3, 2, 2, 2, 5198, 5199, 7, 72, 2, 2, 5199, 5200, 7, 81, 2, 2, 5200, 5201, 7, 87, 2, 2, 5201, 5202, 7, 80, 2, 2, 5202, 5203, 7, 70, 2, 2, 5203, 816, 3, 2, 2, 2, 5204, 5205, 7, 72, 2, 2, 5205, 5206, 7, 87, 2, 2, 5206, 5207, 7, 78, 2, 2, 5207, 5208, 7, 78, 2, 2, 5208, 818, 3, 2, 2, 2, 5209, 5210, 7, 72, 2, 2, 5210, 5211, 7, 87, 2, 2, 5211, 5212, 7, 80, 2, 2, 5212, 5213, 7, 69, 2, 2, 5213, 5214, 7, 86, 2, 2, 5214, 5215, 7, 75, 2, 2, 5215, 5216, 7, 81, 2, 2, 5216, 5217, 7, 80, 2, 2, 5217, 820, 3, 2, 2, 2, 5218, 5219, 7, 73, 2, 2, 5219, 5220, 7, 71, 2, 2, 5220, 5221, 7, 80, 2, 2, 5221, 5222, 7, 71, 2, 2, 5222, 5223, 7, 84, 2, 2, 5223, 5224, 7, 67, 2, 2, 5224, 5225, 7, 78, 2, 2, 5225, 822, 3, 2, 2, 2, 5226, 5227, 7, 73, 2, 2, 5227, 5228, 7, 71, 2, 2, 5228, 5229, 7, 86, 2, 2, 5229, 5230, 7, 97, 2, 2, 5230, 5231, 7, 79, 2, 2, 5231, 5232, 7, 67, 2, 2, 5232, 5233, 7, 85, 2, 2, 5233, 5234, 7, 86, 2, 2, 5234, 5235, 7, 71, 2, 2, 5235, 5236, 7, 84, 2, 2, 5236, 5237, 7, 97, 2, 2, 5237, 5238, 7, 82, 2, 2, 5238, 5239, 7, 87, 2, 2, 5239, 5240, 7, 68, 2, 2, 5240, 5241, 7, 78, 2, 2, 5241, 5242, 7, 75, 2, 2, 5242, 5243, 7, 69, 2, 2, 5243, 5244, 7, 97, 2, 2, 5244, 5245, 7, 77, 2, 2, 5245, 5246, 7, 71, 2, 2, 5246, 5247, 7, 91, 2, 2, 5247, 824, 3, 2, 2, 2, 5248, 5249, 7, 73, 2, 2, 5249, 5250, 7, 71, 2, 2, 5250, 5251, 7, 86, 2, 2, 5251, 5252, 7, 97, 2, 2, 5252, 5253, 7, 85, 2, 2, 5253, 5254, 7, 81, 2, 2, 5254, 5255, 7, 87, 2, 2, 5255, 5256, 7, 84, 2, 2, 5256, 5257, 7, 69, 2, 2, 5257, 5258, 7, 71, 2, 2, 5258, 5259, 7, 97, 2, 2, 5259, 5260, 7, 82, 2, 2, 5260, 5261, 7, 87, 2, 2, 5261, 5262, 7, 68, 2, 2, 5262, 5263, 7, 78, 2, 2, 5263, 5264, 7, 75, 2, 2, 5264, 5265, 7, 69, 2, 2, 5265, 5266, 7, 97, 2, 2, 5266, 5267, 7, 77, 2, 2, 5267, 5268, 7, 71, 2, 2, 5268, 5269, 7, 91, 2, 2, 5269, 826, 3, 2, 2, 2, 5270, 5271, 7, 73, 2, 2, 5271, 5272, 7, 78, 2, 2, 5272, 5273, 7, 81, 2, 2, 5273, 5274, 7, 68, 2, 2, 5274, 5275, 7, 67, 2, 2, 5275, 5276, 7, 78, 2, 2, 5276, 828, 3, 2, 2, 2, 5277, 5278, 7, 73, 2, 2, 5278, 5279, 7, 84, 2, 2, 5279, 5280, 7, 67, 2, 2, 5280, 5281, 7, 80, 2, 2, 5281, 5282, 7, 86, 2, 2, 5282, 5283, 7, 85, 2, 2, 5283, 830, 3, 2, 2, 2, 5284, 5285, 7, 73, 2, 2, 5285, 5286, 7, 84, 2, 2, 5286, 5287, 7, 81, 2, 2, 5287, 5288, 7, 87, 2, 2, 5288, 5289, 7, 82, 2, 2, 5289, 5290, 7, 97, 2, 2, 5290, 5291, 7, 84, 2, 2, 5291, 5292, 7, 71, 2, 2, 5292, 5293, 7, 82, 2, 2, 5293, 5294, 7, 78, 2, 2, 5294, 5295, 7, 75, 2, 2, 5295, 5296, 7, 69, 2, 2, 5296, 5297, 7, 67, 2, 2, 5297, 5298, 7, 86, 2, 2, 5298, 5299, 7, 75, 2, 2, 5299, 5300, 7, 81, 2, 2, 5300, 5301, 7, 80, 2, 2, 5301, 832, 3, 2, 2, 2, 5302, 5303, 7, 73, 2, 2, 5303, 5304, 7, 86, 2, 2, 5304, 5305, 7, 75, 2, 2, 5305, 5306, 7, 70, 2, 2, 5306, 5307, 7, 97, 2, 2, 5307, 5308, 7, 81, 2, 2, 5308, 5309, 7, 80, 2, 2, 5309, 5310, 7, 78, 2, 2, 5310, 5311, 7, 91, 2, 2, 5311, 834, 3, 2, 2, 2, 5312, 5313, 7, 74, 2, 2, 5313, 5314, 7, 67, 2, 2, 5314, 5315, 7, 80, 2, 2, 5315, 5316, 7, 70, 2, 2, 5316, 5317, 7, 78, 2, 2, 5317, 5318, 7, 71, 2, 2, 5318, 5319, 7, 84, 2, 2, 5319, 836, 3, 2, 2, 2, 5320, 5321, 7, 74, 2, 2, 5321, 5322, 7, 67, 2, 2, 5322, 5323, 7, 85, 2, 2, 5323, 5324, 7, 74, 2, 2, 5324, 838, 3, 2, 2, 2, 5325, 5326, 7, 74, 2, 2, 5326, 5327, 7, 71, 2, 2, 5327, 5328, 7, 78, 2, 2, 5328, 5329, 7, 82, 2, 2, 5329, 840, 3, 2, 2, 2, 5330, 5331, 7, 74, 2, 2, 5331, 5332, 7, 75, 2, 2, 5332, 5333, 7, 85, 2, 2, 5333, 5334, 7, 86, 2, 2, 5334, 5335, 7, 81, 2, 2, 5335, 5336, 7, 84, 2, 2, 5336, 5337, 7, 91, 2, 2, 5337, 842, 3, 2, 2, 2, 5338, 5339, 7, 74, 2, 2, 5339, 5340, 7, 81, 2, 2, 5340, 5341, 7, 85, 2, 2, 5341, 5342, 7, 86, 2, 2, 5342, 844, 3, 2, 2, 2, 5343, 5344, 7, 74, 2, 2, 5344, 5345, 7, 81, 2, 2, 5345, 5346, 7, 85, 2, 2, 5346, 5347, 7, 86, 2, 2, 5347, 5348, 7, 85, 2, 2, 5348, 846, 3, 2, 2, 2, 5349, 5350, 7, 75, 2, 2, 5350, 5351, 7, 70, 2, 2, 5351, 5352, 7, 71, 2, 2, 5352, 5353, 7, 80, 2, 2, 5353, 5354, 7, 86, 2, 2, 5354, 5355, 7, 75, 2, 2, 5355, 5356, 7, 72, 2, 2, 5356, 5357, 7, 75, 2, 2, 5357, 5358, 7, 71, 2, 2, 5358, 5359, 7, 70, 2, 2, 5359, 848, 3, 2, 2, 2, 5360, 5361, 7, 75, 2, 2, 5361, 5362, 7, 73, 2, 2, 5362, 5363, 7, 80, 2, 2, 5363, 5364, 7, 81, 2, 2, 5364, 5365, 7, 84, 2, 2, 5365, 5366, 7, 71, 2, 2, 5366, 5367, 7, 97, 2, 2, 5367, 5368, 7, 85, 2, 2, 5368, 5369, 7, 71, 2, 2, 5369, 5370, 7, 84, 2, 2, 5370, 5371, 7, 88, 2, 2, 5371, 5372, 7, 71, 2, 2, 5372, 5373, 7, 84, 2, 2, 5373, 5374, 7, 97, 2, 2, 5374, 5375, 7, 75, 2, 2, 5375, 5376, 7, 70, 2, 2, 5376, 5377, 7, 85, 2, 2, 5377, 850, 3, 2, 2, 2, 5378, 5379, 7, 75, 2, 2, 5379, 5380, 7, 79, 2, 2, 5380, 5381, 7, 82, 2, 2, 5381, 5382, 7, 81, 2, 2, 5382, 5383, 7, 84, 2, 2, 5383, 5384, 7, 86, 2, 2, 5384, 852, 3, 2, 2, 2, 5385, 5386, 7, 75, 2, 2, 5386, 5387, 7, 80, 2, 2, 5387, 5388, 7, 70, 2, 2, 5388, 5389, 7, 71, 2, 2, 5389, 5390, 7, 90, 2, 2, 5390, 5391, 7, 71, 2, 2, 5391, 5392, 7, 85, 2, 2, 5392, 854, 3, 2, 2, 2, 5393, 5394, 7, 75, 2, 2, 5394, 5395, 7, 80, 2, 2, 5395, 5396, 7, 75, 2, 2, 5396, 5397, 7, 86, 2, 2, 5397, 5398, 7, 75, 2, 2, 5398, 5399, 7, 67, 2, 2, 5399, 5400, 7, 78, 2, 2, 5400, 856, 3, 2, 2, 2, 5401, 5402, 7, 75, 2, 2, 5402, 5403, 7, 80, 2, 2, 5403, 5404, 7, 75, 2, 2, 5404, 5405, 7, 86, 2, 2, 5405, 5406, 7, 75, 2, 2, 5406, 5407, 7, 67, 2, 2, 5407, 5408, 7, 78, 2, 2, 5408, 5409, 7, 97, 2, 2, 5409, 5410, 7, 85, 2, 2, 5410, 5411, 7, 75, 2, 2, 5411, 5412, 7, 92, 2, 2, 5412, 5413, 7, 71, 2, 2, 5413, 858, 3, 2, 2, 2, 5414, 5415, 7, 75, 2, 2, 5415, 5416, 7, 80, 2, 2, 5416, 5417, 7, 75, 2, 2, 5417, 5418, 7, 86, 2, 2, 5418, 5419, 7, 75, 2, 2, 5419, 5420, 7, 67, 2, 2, 5420, 5421, 7, 86, 2, 2, 5421, 5422, 7, 71, 2, 2, 5422, 860, 3, 2, 2, 2, 5423, 5424, 7, 75, 2, 2, 5424, 5425, 7, 80, 2, 2, 5425, 5426, 7, 82, 2, 2, 5426, 5427, 7, 78, 2, 2, 5427, 5428, 7, 67, 2, 2, 5428, 5429, 7, 69, 2, 2, 5429, 5430, 7, 71, 2, 2, 5430, 862, 3, 2, 2, 2, 5431, 5432, 7, 75, 2, 2, 5432, 5433, 7, 80, 2, 2, 5433, 5434, 7, 85, 2, 2, 5434, 5435, 7, 71, 2, 2, 5435, 5436, 7, 84, 2, 2, 5436, 5437, 7, 86, 2, 2, 5437, 5438, 7, 97, 2, 2, 5438, 5439, 7, 79, 2, 2, 5439, 5440, 7, 71, 2, 2, 5440, 5441, 7, 86, 2, 2, 5441, 5442, 7, 74, 2, 2, 5442, 5443, 7, 81, 2, 2, 5443, 5444, 7, 70, 2, 2, 5444, 864, 3, 2, 2, 2, 5445, 5446, 7, 75, 2, 2, 5446, 5447, 7, 80, 2, 2, 5447, 5448, 7, 85, 2, 2, 5448, 5449, 7, 86, 2, 2, 5449, 5450, 7, 67, 2, 2, 5450, 5451, 7, 78, 2, 2, 5451, 5452, 7, 78, 2, 2, 5452, 866, 3, 2, 2, 2, 5453, 5454, 7, 75, 2, 2, 5454, 5455, 7, 80, 2, 2, 5455, 5456, 7, 85, 2, 2, 5456, 5457, 7, 86, 2, 2, 5457, 5458, 7, 67, 2, 2, 5458, 5459, 7, 80, 2, 2, 5459, 5460, 7, 69, 2, 2, 5460, 5461, 7, 71, 2, 2, 5461, 868, 3, 2, 2, 2, 5462, 5463, 7, 75, 2, 2, 5463, 5464, 7, 80, 2, 2, 5464, 5465, 7, 85, 2, 2, 5465, 5466, 7, 86, 2, 2, 5466, 5467, 7, 67, 2, 2, 5467, 5468, 7, 80, 2, 2, 5468, 5469, 7, 86, 2, 2, 5469, 870, 3, 2, 2, 2, 5470, 5471, 7, 75, 2, 2, 5471, 5472, 7, 80, 2, 2, 5472, 5473, 7, 88, 2, 2, 5473, 5474, 7, 75, 2, 2, 5474, 5475, 7, 85, 2, 2, 5475, 5476, 7, 75, 2, 2, 5476, 5477, 7, 68, 2, 2, 5477, 5478, 7, 78, 2, 2, 5478, 5479, 7, 71, 2, 2, 5479, 872, 3, 2, 2, 2, 5480, 5481, 7, 75, 2, 2, 5481, 5482, 7, 80, 2, 2, 5482, 5483, 7, 88, 2, 2, 5483, 5484, 7, 81, 2, 2, 5484, 5485, 7, 77, 2, 2, 5485, 5486, 7, 71, 2, 2, 5486, 5487, 7, 84, 2, 2, 5487, 874, 3, 2, 2, 2, 5488, 5489, 7, 75, 2, 2, 5489, 5490, 7, 81, 2, 2, 5490, 876, 3, 2, 2, 2, 5491, 5492, 7, 75, 2, 2, 5492, 5493, 7, 81, 2, 2, 5493, 5494, 7, 97, 2, 2, 5494, 5495, 7, 86, 2, 2, 5495, 5496, 7, 74, 2, 2, 5496, 5497, 7, 84, 2, 2, 5497, 5498, 7, 71, 2, 2, 5498, 5499, 7, 67, 2, 2, 5499, 5500, 7, 70, 2, 2, 5500, 878, 3, 2, 2, 2, 5501, 5502, 7, 75, 2, 2, 5502, 5503, 7, 82, 2, 2, 5503, 5504, 7, 69, 2, 2, 5504, 880, 3, 2, 2, 2, 5505, 5506, 7, 75, 2, 2, 5506, 5507, 7, 85, 2, 2, 5507, 5508, 7, 81, 2, 2, 5508, 5509, 7, 78, 2, 2, 5509, 5510, 7, 67, 2, 2, 5510, 5511, 7, 86, 2, 2, 5511, 5512, 7, 75, 2, 2, 5512, 5513, 7, 81, 2, 2, 5513, 5514, 7, 80, 2, 2, 5514, 882, 3, 2, 2, 2, 5515, 5516, 7, 75, 2, 2, 5516, 5517, 7, 85, 2, 2, 5517, 5518, 7, 85, 2, 2, 5518, 5519, 7, 87, 2, 2, 5519, 5520, 7, 71, 2, 2, 5520, 5521, 7, 84, 2, 2, 5521, 884, 3, 2, 2, 2, 5522, 5523, 7, 76, 2, 2, 5523, 5524, 7, 85, 2, 2, 5524, 5525, 7, 81, 2, 2, 5525, 5526, 7, 80, 2, 2, 5526, 886, 3, 2, 2, 2, 5527, 5528, 7, 77, 2, 2, 5528, 5529, 7, 71, 2, 2, 5529, 5530, 7, 91, 2, 2, 5530, 5531, 7, 97, 2, 2, 5531, 5532, 7, 68, 2, 2, 5532, 5533, 7, 78, 2, 2, 5533, 5534, 7, 81, 2, 2, 5534, 5535, 7, 69, 2, 2, 5535, 5536, 7, 77, 2, 2, 5536, 5537, 7, 97, 2, 2, 5537, 5538, 7, 85, 2, 2, 5538, 5539, 7, 75, 2, 2, 5539, 5540, 7, 92, 2, 2, 5540, 5541, 7, 71, 2, 2, 5541, 888, 3, 2, 2, 2, 5542, 5543, 7, 78, 2, 2, 5543, 5544, 7, 67, 2, 2, 5544, 5545, 7, 80, 2, 2, 5545, 5546, 7, 73, 2, 2, 5546, 5547, 7, 87, 2, 2, 5547, 5548, 7, 67, 2, 2, 5548, 5549, 7, 73, 2, 2, 5549, 5550, 7, 71, 2, 2, 5550, 890, 3, 2, 2, 2, 5551, 5552, 7, 78, 2, 2, 5552, 5553, 7, 67, 2, 2, 5553, 5554, 7, 85, 2, 2, 5554, 5555, 7, 86, 2, 2, 5555, 892, 3, 2, 2, 2, 5556, 5557, 7, 78, 2, 2, 5557, 5558, 7, 71, 2, 2, 5558, 5559, 7, 67, 2, 2, 5559, 5560, 7, 88, 2, 2, 5560, 5561, 7, 71, 2, 2, 5561, 5562, 7, 85, 2, 2, 5562, 894, 3, 2, 2, 2, 5563, 5564, 7, 78, 2, 2, 5564, 5565, 7, 71, 2, 2, 5565, 5566, 7, 85, 2, 2, 5566, 5567, 7, 85, 2, 2, 5567, 896, 3, 2, 2, 2, 5568, 5569, 7, 78, 2, 2, 5569, 5570, 7, 71, 2, 2, 5570, 5571, 7, 88, 2, 2, 5571, 5572, 7, 71, 2, 2, 5572, 5573, 7, 78, 2, 2, 5573, 898, 3, 2, 2, 2, 5574, 5575, 7, 78, 2, 2, 5575, 5576, 7, 75, 2, 2, 5576, 5577, 7, 85, 2, 2, 5577, 5578, 7, 86, 2, 2, 5578, 900, 3, 2, 2, 2, 5579, 5580, 7, 78, 2, 2, 5580, 5581, 7, 81, 2, 2, 5581, 5582, 7, 69, 2, 2, 5582, 5583, 7, 67, 2, 2, 5583, 5584, 7, 78, 2, 2, 5584, 902, 3, 2, 2, 2, 5585, 5586, 7, 78, 2, 2, 5586, 5587, 7, 81, 2, 2, 5587, 5588, 7, 73, 2, 2, 5588, 5589, 7, 72, 2, 2, 5589, 5590, 7, 75, 2, 2, 5590, 5591, 7, 78, 2, 2, 5591, 5592, 7, 71, 2, 2, 5592, 904, 3, 2, 2, 2, 5593, 5594, 7, 78, 2, 2, 5594, 5595, 7, 81, 2, 2, 5595, 5596, 7, 73, 2, 2, 5596, 5597, 7, 85, 2, 2, 5597, 906, 3, 2, 2, 2, 5598, 5599, 7, 79, 2, 2, 5599, 5600, 7, 67, 2, 2, 5600, 5601, 7, 85, 2, 2, 5601, 5602, 7, 86, 2, 2, 5602, 5603, 7, 71, 2, 2, 5603, 5604, 7, 84, 2, 2, 5604, 908, 3, 2, 2, 2, 5605, 5606, 7, 79, 2, 2, 5606, 5607, 7, 67, 2, 2, 5607, 5608, 7, 85, 2, 2, 5608, 5609, 7, 86, 2, 2, 5609, 5610, 7, 71, 2, 2, 5610, 5611, 7, 84, 2, 2, 5611, 5612, 7, 97, 2, 2, 5612, 5613, 7, 67, 2, 2, 5613, 5614, 7, 87, 2, 2, 5614, 5615, 7, 86, 2, 2, 5615, 5616, 7, 81, 2, 2, 5616, 5617, 7, 97, 2, 2, 5617, 5618, 7, 82, 2, 2, 5618, 5619, 7, 81, 2, 2, 5619, 5620, 7, 85, 2, 2, 5620, 5621, 7, 75, 2, 2, 5621, 5622, 7, 86, 2, 2, 5622, 5623, 7, 75, 2, 2, 5623, 5624, 7, 81, 2, 2, 5624, 5625, 7, 80, 2, 2, 5625, 910, 3, 2, 2, 2, 5626, 5627, 7, 79, 2, 2, 5627, 5628, 7, 67, 2, 2, 5628, 5629, 7, 85, 2, 2, 5629, 5630, 7, 86, 2, 2, 5630, 5631, 7, 71, 2, 2, 5631, 5632, 7, 84, 2, 2, 5632, 5633, 7, 97, 2, 2, 5633, 5634, 7, 69, 2, 2, 5634, 5635, 7, 81, 2, 2, 5635, 5636, 7, 79, 2, 2, 5636, 5637, 7, 82, 2, 2, 5637, 5638, 7, 84, 2, 2, 5638, 5639, 7, 71, 2, 2, 5639, 5640, 7, 85, 2, 2, 5640, 5641, 7, 85, 2, 2, 5641, 5642, 7, 75, 2, 2, 5642, 5643, 7, 81, 2, 2, 5643, 5644, 7, 80, 2, 2, 5644, 5645, 7, 97, 2, 2, 5645, 5646, 7, 67, 2, 2, 5646, 5647, 7, 78, 2, 2, 5647, 5648, 7, 73, 2, 2, 5648, 5649, 7, 81, 2, 2, 5649, 5650, 7, 84, 2, 2, 5650, 5651, 7, 75, 2, 2, 5651, 5652, 7, 86, 2, 2, 5652, 5653, 7, 74, 2, 2, 5653, 5654, 7, 79, 2, 2, 5654, 5655, 7, 85, 2, 2, 5655, 912, 3, 2, 2, 2, 5656, 5657, 7, 79, 2, 2, 5657, 5658, 7, 67, 2, 2, 5658, 5659, 7, 85, 2, 2, 5659, 5660, 7, 86, 2, 2, 5660, 5661, 7, 71, 2, 2, 5661, 5662, 7, 84, 2, 2, 5662, 5663, 7, 97, 2, 2, 5663, 5664, 7, 69, 2, 2, 5664, 5665, 7, 81, 2, 2, 5665, 5666, 7, 80, 2, 2, 5666, 5667, 7, 80, 2, 2, 5667, 5668, 7, 71, 2, 2, 5668, 5669, 7, 69, 2, 2, 5669, 5670, 7, 86, 2, 2, 5670, 5671, 7, 97, 2, 2, 5671, 5672, 7, 84, 2, 2, 5672, 5673, 7, 71, 2, 2, 5673, 5674, 7, 86, 2, 2, 5674, 5675, 7, 84, 2, 2, 5675, 5676, 7, 91, 2, 2, 5676, 914, 3, 2, 2, 2, 5677, 5678, 7, 79, 2, 2, 5678, 5679, 7, 67, 2, 2, 5679, 5680, 7, 85, 2, 2, 5680, 5681, 7, 86, 2, 2, 5681, 5682, 7, 71, 2, 2, 5682, 5683, 7, 84, 2, 2, 5683, 5684, 7, 97, 2, 2, 5684, 5685, 7, 70, 2, 2, 5685, 5686, 7, 71, 2, 2, 5686, 5687, 7, 78, 2, 2, 5687, 5688, 7, 67, 2, 2, 5688, 5689, 7, 91, 2, 2, 5689, 916, 3, 2, 2, 2, 5690, 5691, 7, 79, 2, 2, 5691, 5692, 7, 67, 2, 2, 5692, 5693, 7, 85, 2, 2, 5693, 5694, 7, 86, 2, 2, 5694, 5695, 7, 71, 2, 2, 5695, 5696, 7, 84, 2, 2, 5696, 5697, 7, 97, 2, 2, 5697, 5698, 7, 74, 2, 2, 5698, 5699, 7, 71, 2, 2, 5699, 5700, 7, 67, 2, 2, 5700, 5701, 7, 84, 2, 2, 5701, 5702, 7, 86, 2, 2, 5702, 5703, 7, 68, 2, 2, 5703, 5704, 7, 71, 2, 2, 5704, 5705, 7, 67, 2, 2, 5705, 5706, 7, 86, 2, 2, 5706, 5707, 7, 97, 2, 2, 5707, 5708, 7, 82, 2, 2, 5708, 5709, 7, 71, 2, 2, 5709, 5710, 7, 84, 2, 2, 5710, 5711, 7, 75, 2, 2, 5711, 5712, 7, 81, 2, 2, 5712, 5713, 7, 70, 2, 2, 5713, 918, 3, 2, 2, 2, 5714, 5715, 7, 79, 2, 2, 5715, 5716, 7, 67, 2, 2, 5716, 5717, 7, 85, 2, 2, 5717, 5718, 7, 86, 2, 2, 5718, 5719, 7, 71, 2, 2, 5719, 5720, 7, 84, 2, 2, 5720, 5721, 7, 97, 2, 2, 5721, 5722, 7, 74, 2, 2, 5722, 5723, 7, 81, 2, 2, 5723, 5724, 7, 85, 2, 2, 5724, 5725, 7, 86, 2, 2, 5725, 920, 3, 2, 2, 2, 5726, 5727, 7, 79, 2, 2, 5727, 5728, 7, 67, 2, 2, 5728, 5729, 7, 85, 2, 2, 5729, 5730, 7, 86, 2, 2, 5730, 5731, 7, 71, 2, 2, 5731, 5732, 7, 84, 2, 2, 5732, 5733, 7, 97, 2, 2, 5733, 5734, 7, 78, 2, 2, 5734, 5735, 7, 81, 2, 2, 5735, 5736, 7, 73, 2, 2, 5736, 5737, 7, 97, 2, 2, 5737, 5738, 7, 72, 2, 2, 5738, 5739, 7, 75, 2, 2, 5739, 5740, 7, 78, 2, 2, 5740, 5741, 7, 71, 2, 2, 5741, 922, 3, 2, 2, 2, 5742, 5743, 7, 79, 2, 2, 5743, 5744, 7, 67, 2, 2, 5744, 5745, 7, 85, 2, 2, 5745, 5746, 7, 86, 2, 2, 5746, 5747, 7, 71, 2, 2, 5747, 5748, 7, 84, 2, 2, 5748, 5749, 7, 97, 2, 2, 5749, 5750, 7, 78, 2, 2, 5750, 5751, 7, 81, 2, 2, 5751, 5752, 7, 73, 2, 2, 5752, 5753, 7, 97, 2, 2, 5753, 5754, 7, 82, 2, 2, 5754, 5755, 7, 81, 2, 2, 5755, 5756, 7, 85, 2, 2, 5756, 924, 3, 2, 2, 2, 5757, 5758, 7, 79, 2, 2, 5758, 5759, 7, 67, 2, 2, 5759, 5760, 7, 85, 2, 2, 5760, 5761, 7, 86, 2, 2, 5761, 5762, 7, 71, 2, 2, 5762, 5763, 7, 84, 2, 2, 5763, 5764, 7, 97, 2, 2, 5764, 5765, 7, 82, 2, 2, 5765, 5766, 7, 67, 2, 2, 5766, 5767, 7, 85, 2, 2, 5767, 5768, 7, 85, 2, 2, 5768, 5769, 7, 89, 2, 2, 5769, 5770, 7, 81, 2, 2, 5770, 5771, 7, 84, 2, 2, 5771, 5772, 7, 70, 2, 2, 5772, 926, 3, 2, 2, 2, 5773, 5774, 7, 79, 2, 2, 5774, 5775, 7, 67, 2, 2, 5775, 5776, 7, 85, 2, 2, 5776, 5777, 7, 86, 2, 2, 5777, 5778, 7, 71, 2, 2, 5778, 5779, 7, 84, 2, 2, 5779, 5780, 7, 97, 2, 2, 5780, 5781, 7, 82, 2, 2, 5781, 5782, 7, 81, 2, 2, 5782, 5783, 7, 84, 2, 2, 5783, 5784, 7, 86, 2, 2, 5784, 928, 3, 2, 2, 2, 5785, 5786, 7, 79, 2, 2, 5786, 5787, 7, 67, 2, 2, 5787, 5788, 7, 85, 2, 2, 5788, 5789, 7, 86, 2, 2, 5789, 5790, 7, 71, 2, 2, 5790, 5791, 7, 84, 2, 2, 5791, 5792, 7, 97, 2, 2, 5792, 5793, 7, 82, 2, 2, 5793, 5794, 7, 87, 2, 2, 5794, 5795, 7, 68, 2, 2, 5795, 5796, 7, 78, 2, 2, 5796, 5797, 7, 75, 2, 2, 5797, 5798, 7, 69, 2, 2, 5798, 5799, 7, 97, 2, 2, 5799, 5800, 7, 77, 2, 2, 5800, 5801, 7, 71, 2, 2, 5801, 5802, 7, 91, 2, 2, 5802, 5803, 7, 97, 2, 2, 5803, 5804, 7, 82, 2, 2, 5804, 5805, 7, 67, 2, 2, 5805, 5806, 7, 86, 2, 2, 5806, 5807, 7, 74, 2, 2, 5807, 930, 3, 2, 2, 2, 5808, 5809, 7, 79, 2, 2, 5809, 5810, 7, 67, 2, 2, 5810, 5811, 7, 85, 2, 2, 5811, 5812, 7, 86, 2, 2, 5812, 5813, 7, 71, 2, 2, 5813, 5814, 7, 84, 2, 2, 5814, 5815, 7, 97, 2, 2, 5815, 5816, 7, 84, 2, 2, 5816, 5817, 7, 71, 2, 2, 5817, 5818, 7, 86, 2, 2, 5818, 5819, 7, 84, 2, 2, 5819, 5820, 7, 91, 2, 2, 5820, 5821, 7, 97, 2, 2, 5821, 5822, 7, 69, 2, 2, 5822, 5823, 7, 81, 2, 2, 5823, 5824, 7, 87, 2, 2, 5824, 5825, 7, 80, 2, 2, 5825, 5826, 7, 86, 2, 2, 5826, 932, 3, 2, 2, 2, 5827, 5828, 7, 79, 2, 2, 5828, 5829, 7, 67, 2, 2, 5829, 5830, 7, 85, 2, 2, 5830, 5831, 7, 86, 2, 2, 5831, 5832, 7, 71, 2, 2, 5832, 5833, 7, 84, 2, 2, 5833, 5834, 7, 97, 2, 2, 5834, 5835, 7, 85, 2, 2, 5835, 5836, 7, 85, 2, 2, 5836, 5837, 7, 78, 2, 2, 5837, 934, 3, 2, 2, 2, 5838, 5839, 7, 79, 2, 2, 5839, 5840, 7, 67, 2, 2, 5840, 5841, 7, 85, 2, 2, 5841, 5842, 7, 86, 2, 2, 5842, 5843, 7, 71, 2, 2, 5843, 5844, 7, 84, 2, 2, 5844, 5845, 7, 97, 2, 2, 5845, 5846, 7, 85, 2, 2, 5846, 5847, 7, 85, 2, 2, 5847, 5848, 7, 78, 2, 2, 5848, 5849, 7, 97, 2, 2, 5849, 5850, 7, 69, 2, 2, 5850, 5851, 7, 67, 2, 2, 5851, 936, 3, 2, 2, 2, 5852, 5853, 7, 79, 2, 2, 5853, 5854, 7, 67, 2, 2, 5854, 5855, 7, 85, 2, 2, 5855, 5856, 7, 86, 2, 2, 5856, 5857, 7, 71, 2, 2, 5857, 5858, 7, 84, 2, 2, 5858, 5859, 7, 97, 2, 2, 5859, 5860, 7, 85, 2, 2, 5860, 5861, 7, 85, 2, 2, 5861, 5862, 7, 78, 2, 2, 5862, 5863, 7, 97, 2, 2, 5863, 5864, 7, 69, 2, 2, 5864, 5865, 7, 67, 2, 2, 5865, 5866, 7, 82, 2, 2, 5866, 5867, 7, 67, 2, 2, 5867, 5868, 7, 86, 2, 2, 5868, 5869, 7, 74, 2, 2, 5869, 938, 3, 2, 2, 2, 5870, 5871, 7, 79, 2, 2, 5871, 5872, 7, 67, 2, 2, 5872, 5873, 7, 85, 2, 2, 5873, 5874, 7, 86, 2, 2, 5874, 5875, 7, 71, 2, 2, 5875, 5876, 7, 84, 2, 2, 5876, 5877, 7, 97, 2, 2, 5877, 5878, 7, 85, 2, 2, 5878, 5879, 7, 85, 2, 2, 5879, 5880, 7, 78, 2, 2, 5880, 5881, 7, 97, 2, 2, 5881, 5882, 7, 69, 2, 2, 5882, 5883, 7, 71, 2, 2, 5883, 5884, 7, 84, 2, 2, 5884, 5885, 7, 86, 2, 2, 5885, 940, 3, 2, 2, 2, 5886, 5887, 7, 79, 2, 2, 5887, 5888, 7, 67, 2, 2, 5888, 5889, 7, 85, 2, 2, 5889, 5890, 7, 86, 2, 2, 5890, 5891, 7, 71, 2, 2, 5891, 5892, 7, 84, 2, 2, 5892, 5893, 7, 97, 2, 2, 5893, 5894, 7, 85, 2, 2, 5894, 5895, 7, 85, 2, 2, 5895, 5896, 7, 78, 2, 2, 5896, 5897, 7, 97, 2, 2, 5897, 5898, 7, 69, 2, 2, 5898, 5899, 7, 75, 2, 2, 5899, 5900, 7, 82, 2, 2, 5900, 5901, 7, 74, 2, 2, 5901, 5902, 7, 71, 2, 2, 5902, 5903, 7, 84, 2, 2, 5903, 942, 3, 2, 2, 2, 5904, 5905, 7, 79, 2, 2, 5905, 5906, 7, 67, 2, 2, 5906, 5907, 7, 85, 2, 2, 5907, 5908, 7, 86, 2, 2, 5908, 5909, 7, 71, 2, 2, 5909, 5910, 7, 84, 2, 2, 5910, 5911, 7, 97, 2, 2, 5911, 5912, 7, 85, 2, 2, 5912, 5913, 7, 85, 2, 2, 5913, 5914, 7, 78, 2, 2, 5914, 5915, 7, 97, 2, 2, 5915, 5916, 7, 69, 2, 2, 5916, 5917, 7, 84, 2, 2, 5917, 5918, 7, 78, 2, 2, 5918, 944, 3, 2, 2, 2, 5919, 5920, 7, 79, 2, 2, 5920, 5921, 7, 67, 2, 2, 5921, 5922, 7, 85, 2, 2, 5922, 5923, 7, 86, 2, 2, 5923, 5924, 7, 71, 2, 2, 5924, 5925, 7, 84, 2, 2, 5925, 5926, 7, 97, 2, 2, 5926, 5927, 7, 85, 2, 2, 5927, 5928, 7, 85, 2, 2, 5928, 5929, 7, 78, 2, 2, 5929, 5930, 7, 97, 2, 2, 5930, 5931, 7, 69, 2, 2, 5931, 5932, 7, 84, 2, 2, 5932, 5933, 7, 78, 2, 2, 5933, 5934, 7, 82, 2, 2, 5934, 5935, 7, 67, 2, 2, 5935, 5936, 7, 86, 2, 2, 5936, 5937, 7, 74, 2, 2, 5937, 946, 3, 2, 2, 2, 5938, 5939, 7, 79, 2, 2, 5939, 5940, 7, 67, 2, 2, 5940, 5941, 7, 85, 2, 2, 5941, 5942, 7, 86, 2, 2, 5942, 5943, 7, 71, 2, 2, 5943, 5944, 7, 84, 2, 2, 5944, 5945, 7, 97, 2, 2, 5945, 5946, 7, 85, 2, 2, 5946, 5947, 7, 85, 2, 2, 5947, 5948, 7, 78, 2, 2, 5948, 5949, 7, 97, 2, 2, 5949, 5950, 7, 77, 2, 2, 5950, 5951, 7, 71, 2, 2, 5951, 5952, 7, 91, 2, 2, 5952, 948, 3, 2, 2, 2, 5953, 5954, 7, 79, 2, 2, 5954, 5955, 7, 67, 2, 2, 5955, 5956, 7, 85, 2, 2, 5956, 5957, 7, 86, 2, 2, 5957, 5958, 7, 71, 2, 2, 5958, 5959, 7, 84, 2, 2, 5959, 5960, 7, 97, 2, 2, 5960, 5961, 7, 86, 2, 2, 5961, 5962, 7, 78, 2, 2, 5962, 5963, 7, 85, 2, 2, 5963, 5964, 7, 97, 2, 2, 5964, 5965, 7, 69, 2, 2, 5965, 5966, 7, 75, 2, 2, 5966, 5967, 7, 82, 2, 2, 5967, 5968, 7, 74, 2, 2, 5968, 5969, 7, 71, 2, 2, 5969, 5970, 7, 84, 2, 2, 5970, 5971, 7, 85, 2, 2, 5971, 5972, 7, 87, 2, 2, 5972, 5973, 7, 75, 2, 2, 5973, 5974, 7, 86, 2, 2, 5974, 5975, 7, 71, 2, 2, 5975, 5976, 7, 85, 2, 2, 5976, 950, 3, 2, 2, 2, 5977, 5978, 7, 79, 2, 2, 5978, 5979, 7, 67, 2, 2, 5979, 5980, 7, 85, 2, 2, 5980, 5981, 7, 86, 2, 2, 5981, 5982, 7, 71, 2, 2, 5982, 5983, 7, 84, 2, 2, 5983, 5984, 7, 97, 2, 2, 5984, 5985, 7, 86, 2, 2, 5985, 5986, 7, 78, 2, 2, 5986, 5987, 7, 85, 2, 2, 5987, 5988, 7, 97, 2, 2, 5988, 5989, 7, 88, 2, 2, 5989, 5990, 7, 71, 2, 2, 5990, 5991, 7, 84, 2, 2, 5991, 5992, 7, 85, 2, 2, 5992, 5993, 7, 75, 2, 2, 5993, 5994, 7, 81, 2, 2, 5994, 5995, 7, 80, 2, 2, 5995, 952, 3, 2, 2, 2, 5996, 5997, 7, 79, 2, 2, 5997, 5998, 7, 67, 2, 2, 5998, 5999, 7, 85, 2, 2, 5999, 6000, 7, 86, 2, 2, 6000, 6001, 7, 71, 2, 2, 6001, 6002, 7, 84, 2, 2, 6002, 6003, 7, 97, 2, 2, 6003, 6004, 7, 87, 2, 2, 6004, 6005, 7, 85, 2, 2, 6005, 6006, 7, 71, 2, 2, 6006, 6007, 7, 84, 2, 2, 6007, 954, 3, 2, 2, 2, 6008, 6009, 7, 79, 2, 2, 6009, 6010, 7, 67, 2, 2, 6010, 6011, 7, 85, 2, 2, 6011, 6012, 7, 86, 2, 2, 6012, 6013, 7, 71, 2, 2, 6013, 6014, 7, 84, 2, 2, 6014, 6015, 7, 97, 2, 2, 6015, 6016, 7, 92, 2, 2, 6016, 6017, 7, 85, 2, 2, 6017, 6018, 7, 86, 2, 2, 6018, 6019, 7, 70, 2, 2, 6019, 6020, 7, 97, 2, 2, 6020, 6021, 7, 69, 2, 2, 6021, 6022, 7, 81, 2, 2, 6022, 6023, 7, 79, 2, 2, 6023, 6024, 7, 82, 2, 2, 6024, 6025, 7, 84, 2, 2, 6025, 6026, 7, 71, 2, 2, 6026, 6027, 7, 85, 2, 2, 6027, 6028, 7, 85, 2, 2, 6028, 6029, 7, 75, 2, 2, 6029, 6030, 7, 81, 2, 2, 6030, 6031, 7, 80, 2, 2, 6031, 6032, 7, 97, 2, 2, 6032, 6033, 7, 78, 2, 2, 6033, 6034, 7, 71, 2, 2, 6034, 6035, 7, 88, 2, 2, 6035, 6036, 7, 71, 2, 2, 6036, 6037, 7, 78, 2, 2, 6037, 956, 3, 2, 2, 2, 6038, 6039, 7, 79, 2, 2, 6039, 6040, 7, 67, 2, 2, 6040, 6041, 7, 90, 2, 2, 6041, 6042, 7, 97, 2, 2, 6042, 6043, 7, 69, 2, 2, 6043, 6044, 7, 81, 2, 2, 6044, 6045, 7, 80, 2, 2, 6045, 6046, 7, 80, 2, 2, 6046, 6047, 7, 71, 2, 2, 6047, 6048, 7, 69, 2, 2, 6048, 6049, 7, 86, 2, 2, 6049, 6050, 7, 75, 2, 2, 6050, 6051, 7, 81, 2, 2, 6051, 6052, 7, 80, 2, 2, 6052, 6053, 7, 85, 2, 2, 6053, 6054, 7, 97, 2, 2, 6054, 6055, 7, 82, 2, 2, 6055, 6056, 7, 71, 2, 2, 6056, 6057, 7, 84, 2, 2, 6057, 6058, 7, 97, 2, 2, 6058, 6059, 7, 74, 2, 2, 6059, 6060, 7, 81, 2, 2, 6060, 6061, 7, 87, 2, 2, 6061, 6062, 7, 84, 2, 2, 6062, 958, 3, 2, 2, 2, 6063, 6064, 7, 79, 2, 2, 6064, 6065, 7, 67, 2, 2, 6065, 6066, 7, 90, 2, 2, 6066, 6067, 7, 97, 2, 2, 6067, 6068, 7, 83, 2, 2, 6068, 6069, 7, 87, 2, 2, 6069, 6070, 7, 71, 2, 2, 6070, 6071, 7, 84, 2, 2, 6071, 6072, 7, 75, 2, 2, 6072, 6073, 7, 71, 2, 2, 6073, 6074, 7, 85, 2, 2, 6074, 6075, 7, 97, 2, 2, 6075, 6076, 7, 82, 2, 2, 6076, 6077, 7, 71, 2, 2, 6077, 6078, 7, 84, 2, 2, 6078, 6079, 7, 97, 2, 2, 6079, 6080, 7, 74, 2, 2, 6080, 6081, 7, 81, 2, 2, 6081, 6082, 7, 87, 2, 2, 6082, 6083, 7, 84, 2, 2, 6083, 960, 3, 2, 2, 2, 6084, 6085, 7, 79, 2, 2, 6085, 6086, 7, 67, 2, 2, 6086, 6087, 7, 90, 2, 2, 6087, 6088, 7, 97, 2, 2, 6088, 6089, 7, 84, 2, 2, 6089, 6090, 7, 81, 2, 2, 6090, 6091, 7, 89, 2, 2, 6091, 6092, 7, 85, 2, 2, 6092, 962, 3, 2, 2, 2, 6093, 6094, 7, 79, 2, 2, 6094, 6095, 7, 67, 2, 2, 6095, 6096, 7, 90, 2, 2, 6096, 6097, 7, 97, 2, 2, 6097, 6098, 7, 85, 2, 2, 6098, 6099, 7, 75, 2, 2, 6099, 6100, 7, 92, 2, 2, 6100, 6101, 7, 71, 2, 2, 6101, 964, 3, 2, 2, 2, 6102, 6103, 7, 79, 2, 2, 6103, 6104, 7, 67, 2, 2, 6104, 6105, 7, 90, 2, 2, 6105, 6106, 7, 97, 2, 2, 6106, 6107, 7, 87, 2, 2, 6107, 6108, 7, 82, 2, 2, 6108, 6109, 7, 70, 2, 2, 6109, 6110, 7, 67, 2, 2, 6110, 6111, 7, 86, 2, 2, 6111, 6112, 7, 71, 2, 2, 6112, 6113, 7, 85, 2, 2, 6113, 6114, 7, 97, 2, 2, 6114, 6115, 7, 82, 2, 2, 6115, 6116, 7, 71, 2, 2, 6116, 6117, 7, 84, 2, 2, 6117, 6118, 7, 97, 2, 2, 6118, 6119, 7, 74, 2, 2, 6119, 6120, 7, 81, 2, 2, 6120, 6121, 7, 87, 2, 2, 6121, 6122, 7, 84, 2, 2, 6122, 966, 3, 2, 2, 2, 6123, 6124, 7, 79, 2, 2, 6124, 6125, 7, 67, 2, 2, 6125, 6126, 7, 90, 2, 2, 6126, 6127, 7, 97, 2, 2, 6127, 6128, 7, 87, 2, 2, 6128, 6129, 7, 85, 2, 2, 6129, 6130, 7, 71, 2, 2, 6130, 6131, 7, 84, 2, 2, 6131, 6132, 7, 97, 2, 2, 6132, 6133, 7, 69, 2, 2, 6133, 6134, 7, 81, 2, 2, 6134, 6135, 7, 80, 2, 2, 6135, 6136, 7, 80, 2, 2, 6136, 6137, 7, 71, 2, 2, 6137, 6138, 7, 69, 2, 2, 6138, 6139, 7, 86, 2, 2, 6139, 6140, 7, 75, 2, 2, 6140, 6141, 7, 81, 2, 2, 6141, 6142, 7, 80, 2, 2, 6142, 6143, 7, 85, 2, 2, 6143, 968, 3, 2, 2, 2, 6144, 6145, 7, 79, 2, 2, 6145, 6146, 7, 71, 2, 2, 6146, 6147, 7, 70, 2, 2, 6147, 6148, 7, 75, 2, 2, 6148, 6149, 7, 87, 2, 2, 6149, 6150, 7, 79, 2, 2, 6150, 970, 3, 2, 2, 2, 6151, 6152, 7, 79, 2, 2, 6152, 6153, 7, 71, 2, 2, 6153, 6154, 7, 79, 2, 2, 6154, 6155, 7, 68, 2, 2, 6155, 6156, 7, 71, 2, 2, 6156, 6157, 7, 84, 2, 2, 6157, 972, 3, 2, 2, 2, 6158, 6159, 7, 79, 2, 2, 6159, 6160, 7, 71, 2, 2, 6160, 6161, 7, 84, 2, 2, 6161, 6162, 7, 73, 2, 2, 6162, 6163, 7, 71, 2, 2, 6163, 974, 3, 2, 2, 2, 6164, 6165, 7, 79, 2, 2, 6165, 6166, 7, 71, 2, 2, 6166, 6167, 7, 85, 2, 2, 6167, 6168, 7, 85, 2, 2, 6168, 6169, 7, 67, 2, 2, 6169, 6170, 7, 73, 2, 2, 6170, 6171, 7, 71, 2, 2, 6171, 6172, 7, 97, 2, 2, 6172, 6173, 7, 86, 2, 2, 6173, 6174, 7, 71, 2, 2, 6174, 6175, 7, 90, 2, 2, 6175, 6176, 7, 86, 2, 2, 6176, 976, 3, 2, 2, 2, 6177, 6178, 7, 79, 2, 2, 6178, 6179, 7, 75, 2, 2, 6179, 6180, 7, 70, 2, 2, 6180, 978, 3, 2, 2, 2, 6181, 6182, 7, 79, 2, 2, 6182, 6183, 7, 75, 2, 2, 6183, 6184, 7, 73, 2, 2, 6184, 6185, 7, 84, 2, 2, 6185, 6186, 7, 67, 2, 2, 6186, 6187, 7, 86, 2, 2, 6187, 6188, 7, 71, 2, 2, 6188, 980, 3, 2, 2, 2, 6189, 6190, 7, 79, 2, 2, 6190, 6191, 7, 75, 2, 2, 6191, 6192, 7, 80, 2, 2, 6192, 6193, 7, 97, 2, 2, 6193, 6194, 7, 84, 2, 2, 6194, 6195, 7, 81, 2, 2, 6195, 6196, 7, 89, 2, 2, 6196, 6197, 7, 85, 2, 2, 6197, 982, 3, 2, 2, 2, 6198, 6199, 7, 79, 2, 2, 6199, 6200, 7, 81, 2, 2, 6200, 6201, 7, 70, 2, 2, 6201, 6202, 7, 71, 2, 2, 6202, 984, 3, 2, 2, 2, 6203, 6204, 7, 79, 2, 2, 6204, 6205, 7, 81, 2, 2, 6205, 6206, 7, 70, 2, 2, 6206, 6207, 7, 75, 2, 2, 6207, 6208, 7, 72, 2, 2, 6208, 6209, 7, 91, 2, 2, 6209, 986, 3, 2, 2, 2, 6210, 6211, 7, 79, 2, 2, 6211, 6212, 7, 87, 2, 2, 6212, 6213, 7, 86, 2, 2, 6213, 6214, 7, 71, 2, 2, 6214, 6215, 7, 90, 2, 2, 6215, 988, 3, 2, 2, 2, 6216, 6217, 7, 79, 2, 2, 6217, 6218, 7, 91, 2, 2, 6218, 6219, 7, 85, 2, 2, 6219, 6220, 7, 83, 2, 2, 6220, 6221, 7, 78, 2, 2, 6221, 990, 3, 2, 2, 2, 6222, 6223, 7, 79, 2, 2, 6223, 6224, 7, 91, 2, 2, 6224, 6225, 7, 85, 2, 2, 6225, 6226, 7, 83, 2, 2, 6226, 6227, 7, 78, 2, 2, 6227, 6228, 7, 97, 2, 2, 6228, 6229, 7, 71, 2, 2, 6229, 6230, 7, 84, 2, 2, 6230, 6231, 7, 84, 2, 2, 6231, 6232, 7, 80, 2, 2, 6232, 6233, 7, 81, 2, 2, 6233, 992, 3, 2, 2, 2, 6234, 6235, 7, 80, 2, 2, 6235, 6236, 7, 67, 2, 2, 6236, 6237, 7, 79, 2, 2, 6237, 6238, 7, 71, 2, 2, 6238, 994, 3, 2, 2, 2, 6239, 6240, 7, 80, 2, 2, 6240, 6241, 7, 67, 2, 2, 6241, 6242, 7, 79, 2, 2, 6242, 6243, 7, 71, 2, 2, 6243, 6244, 7, 85, 2, 2, 6244, 996, 3, 2, 2, 2, 6245, 6246, 7, 80, 2, 2, 6246, 6247, 7, 69, 2, 2, 6247, 6248, 7, 74, 2, 2, 6248, 6249, 7, 67, 2, 2, 6249, 6250, 7, 84, 2, 2, 6250, 998, 3, 2, 2, 2, 6251, 6252, 7, 80, 2, 2, 6252, 6253, 7, 71, 2, 2, 6253, 6254, 7, 86, 2, 2, 6254, 6255, 7, 89, 2, 2, 6255, 6256, 7, 81, 2, 2, 6256, 6257, 7, 84, 2, 2, 6257, 6258, 7, 77, 2, 2, 6258, 6259, 7, 97, 2, 2, 6259, 6260, 7, 80, 2, 2, 6260, 6261, 7, 67, 2, 2, 6261, 6262, 7, 79, 2, 2, 6262, 6263, 7, 71, 2, 2, 6263, 6264, 7, 85, 2, 2, 6264, 6265, 7, 82, 2, 2, 6265, 6266, 7, 67, 2, 2, 6266, 6267, 7, 69, 2, 2, 6267, 6268, 7, 71, 2, 2, 6268, 1000, 3, 2, 2, 2, 6269, 6270, 7, 80, 2, 2, 6270, 6271, 7, 71, 2, 2, 6271, 6272, 7, 88, 2, 2, 6272, 6273, 7, 71, 2, 2, 6273, 6274, 7, 84, 2, 2, 6274, 1002, 3, 2, 2, 2, 6275, 6276, 7, 80, 2, 2, 6276, 6277, 7, 71, 2, 2, 6277, 6278, 7, 90, 2, 2, 6278, 6279, 7, 86, 2, 2, 6279, 1004, 3, 2, 2, 2, 6280, 6281, 7, 80, 2, 2, 6281, 6282, 7, 81, 2, 2, 6282, 1006, 3, 2, 2, 2, 6283, 6284, 7, 80, 2, 2, 6284, 6285, 7, 81, 2, 2, 6285, 6286, 7, 89, 2, 2, 6286, 6287, 7, 67, 2, 2, 6287, 6288, 7, 75, 2, 2, 6288, 6289, 7, 86, 2, 2, 6289, 1008, 3, 2, 2, 2, 6290, 6291, 7, 80, 2, 2, 6291, 6292, 7, 81, 2, 2, 6292, 6293, 7, 70, 2, 2, 6293, 6294, 7, 71, 2, 2, 6294, 6295, 7, 73, 2, 2, 6295, 6296, 7, 84, 2, 2, 6296, 6297, 7, 81, 2, 2, 6297, 6298, 7, 87, 2, 2, 6298, 6299, 7, 82, 2, 2, 6299, 1010, 3, 2, 2, 2, 6300, 6301, 7, 80, 2, 2, 6301, 6302, 7, 81, 2, 2, 6302, 6303, 7, 80, 2, 2, 6303, 6304, 7, 71, 2, 2, 6304, 1012, 3, 2, 2, 2, 6305, 6306, 7, 81, 2, 2, 6306, 6307, 7, 70, 2, 2, 6307, 6308, 7, 68, 2, 2, 6308, 6309, 7, 69, 2, 2, 6309, 1014, 3, 2, 2, 2, 6310, 6311, 7, 81, 2, 2, 6311, 6312, 7, 72, 2, 2, 6312, 6313, 7, 72, 2, 2, 6313, 1016, 3, 2, 2, 2, 6314, 6315, 7, 81, 2, 2, 6315, 6316, 7, 72, 2, 2, 6316, 6317, 7, 72, 2, 2, 6317, 6318, 7, 78, 2, 2, 6318, 6319, 7, 75, 2, 2, 6319, 6320, 7, 80, 2, 2, 6320, 6321, 7, 71, 2, 2, 6321, 1018, 3, 2, 2, 2, 6322, 6323, 7, 81, 2, 2, 6323, 6324, 7, 72, 2, 2, 6324, 6325, 7, 72, 2, 2, 6325, 6326, 7, 85, 2, 2, 6326, 6327, 7, 71, 2, 2, 6327, 6328, 7, 86, 2, 2, 6328, 1020, 3, 2, 2, 2, 6329, 6330, 7, 81, 2, 2, 6330, 6331, 7, 72, 2, 2, 6331, 1022, 3, 2, 2, 2, 6332, 6333, 7, 81, 2, 2, 6333, 6334, 7, 78, 2, 2, 6334, 6335, 7, 70, 2, 2, 6335, 1024, 3, 2, 2, 2, 6336, 6337, 7, 81, 2, 2, 6337, 6338, 7, 78, 2, 2, 6338, 6339, 7, 70, 2, 2, 6339, 6340, 7, 97, 2, 2, 6340, 6341, 7, 82, 2, 2, 6341, 6342, 7, 67, 2, 2, 6342, 6343, 7, 85, 2, 2, 6343, 6344, 7, 85, 2, 2, 6344, 6345, 7, 89, 2, 2, 6345, 6346, 7, 81, 2, 2, 6346, 6347, 7, 84, 2, 2, 6347, 6348, 7, 70, 2, 2, 6348, 1026, 3, 2, 2, 2, 6349, 6350, 7, 81, 2, 2, 6350, 6351, 7, 80, 2, 2, 6351, 6352, 7, 71, 2, 2, 6352, 1028, 3, 2, 2, 2, 6353, 6354, 7, 81, 2, 2, 6354, 6355, 7, 80, 2, 2, 6355, 6356, 7, 78, 2, 2, 6356, 6357, 7, 75, 2, 2, 6357, 6358, 7, 80, 2, 2, 6358, 6359, 7, 71, 2, 2, 6359, 1030, 3, 2, 2, 2, 6360, 6361, 7, 81, 2, 2, 6361, 6362, 7, 80, 2, 2, 6362, 6363, 7, 78, 2, 2, 6363, 6364, 7, 91, 2, 2, 6364, 1032, 3, 2, 2, 2, 6365, 6366, 7, 81, 2, 2, 6366, 6367, 7, 82, 2, 2, 6367, 6368, 7, 71, 2, 2, 6368, 6369, 7, 80, 2, 2, 6369, 1034, 3, 2, 2, 2, 6370, 6371, 7, 81, 2, 2, 6371, 6372, 7, 82, 2, 2, 6372, 6373, 7, 86, 2, 2, 6373, 6374, 7, 75, 2, 2, 6374, 6375, 7, 79, 2, 2, 6375, 6376, 7, 75, 2, 2, 6376, 6377, 7, 92, 2, 2, 6377, 6378, 7, 71, 2, 2, 6378, 6379, 7, 84, 2, 2, 6379, 6380, 7, 97, 2, 2, 6380, 6381, 7, 69, 2, 2, 6381, 6382, 7, 81, 2, 2, 6382, 6383, 7, 85, 2, 2, 6383, 6384, 7, 86, 2, 2, 6384, 6385, 7, 85, 2, 2, 6385, 1036, 3, 2, 2, 2, 6386, 6387, 7, 81, 2, 2, 6387, 6388, 7, 82, 2, 2, 6388, 6389, 7, 86, 2, 2, 6389, 6390, 7, 75, 2, 2, 6390, 6391, 7, 81, 2, 2, 6391, 6392, 7, 80, 2, 2, 6392, 6393, 7, 85, 2, 2, 6393, 1038, 3, 2, 2, 2, 6394, 6395, 7, 81, 2, 2, 6395, 6396, 7, 89, 2, 2, 6396, 6397, 7, 80, 2, 2, 6397, 6398, 7, 71, 2, 2, 6398, 6399, 7, 84, 2, 2, 6399, 1040, 3, 2, 2, 2, 6400, 6401, 7, 82, 2, 2, 6401, 6402, 7, 67, 2, 2, 6402, 6403, 7, 69, 2, 2, 6403, 6404, 7, 77, 2, 2, 6404, 6405, 7, 97, 2, 2, 6405, 6406, 7, 77, 2, 2, 6406, 6407, 7, 71, 2, 2, 6407, 6408, 7, 91, 2, 2, 6408, 6409, 7, 85, 2, 2, 6409, 1042, 3, 2, 2, 2, 6410, 6411, 7, 82, 2, 2, 6411, 6412, 7, 67, 2, 2, 6412, 6413, 7, 73, 2, 2, 6413, 6414, 7, 71, 2, 2, 6414, 1044, 3, 2, 2, 2, 6415, 6416, 7, 82, 2, 2, 6416, 6417, 7, 67, 2, 2, 6417, 6418, 7, 73, 2, 2, 6418, 6419, 7, 71, 2, 2, 6419, 6420, 7, 97, 2, 2, 6420, 6421, 7, 69, 2, 2, 6421, 6422, 7, 74, 2, 2, 6422, 6423, 7, 71, 2, 2, 6423, 6424, 7, 69, 2, 2, 6424, 6425, 7, 77, 2, 2, 6425, 6426, 7, 85, 2, 2, 6426, 6427, 7, 87, 2, 2, 6427, 6428, 7, 79, 2, 2, 6428, 1046, 3, 2, 2, 2, 6429, 6430, 7, 82, 2, 2, 6430, 6431, 7, 67, 2, 2, 6431, 6432, 7, 73, 2, 2, 6432, 6433, 7, 71, 2, 2, 6433, 6434, 7, 97, 2, 2, 6434, 6435, 7, 69, 2, 2, 6435, 6436, 7, 81, 2, 2, 6436, 6437, 7, 79, 2, 2, 6437, 6438, 7, 82, 2, 2, 6438, 6439, 7, 84, 2, 2, 6439, 6440, 7, 71, 2, 2, 6440, 6441, 7, 85, 2, 2, 6441, 6442, 7, 85, 2, 2, 6442, 6443, 7, 71, 2, 2, 6443, 6444, 7, 70, 2, 2, 6444, 1048, 3, 2, 2, 2, 6445, 6446, 7, 82, 2, 2, 6446, 6447, 7, 67, 2, 2, 6447, 6448, 7, 73, 2, 2, 6448, 6449, 7, 71, 2, 2, 6449, 6450, 7, 97, 2, 2, 6450, 6451, 7, 69, 2, 2, 6451, 6452, 7, 81, 2, 2, 6452, 6453, 7, 79, 2, 2, 6453, 6454, 7, 82, 2, 2, 6454, 6455, 7, 84, 2, 2, 6455, 6456, 7, 71, 2, 2, 6456, 6457, 7, 85, 2, 2, 6457, 6458, 7, 85, 2, 2, 6458, 6459, 7, 75, 2, 2, 6459, 6460, 7, 81, 2, 2, 6460, 6461, 7, 80, 2, 2, 6461, 6462, 7, 97, 2, 2, 6462, 6463, 7, 78, 2, 2, 6463, 6464, 7, 71, 2, 2, 6464, 6465, 7, 88, 2, 2, 6465, 6466, 7, 71, 2, 2, 6466, 6467, 7, 78, 2, 2, 6467, 1050, 3, 2, 2, 2, 6468, 6469, 7, 82, 2, 2, 6469, 6470, 7, 67, 2, 2, 6470, 6471, 7, 84, 2, 2, 6471, 6472, 7, 85, 2, 2, 6472, 6473, 7, 71, 2, 2, 6473, 6474, 7, 84, 2, 2, 6474, 1052, 3, 2, 2, 2, 6475, 6476, 7, 82, 2, 2, 6476, 6477, 7, 67, 2, 2, 6477, 6478, 7, 84, 2, 2, 6478, 6479, 7, 86, 2, 2, 6479, 6480, 7, 75, 2, 2, 6480, 6481, 7, 67, 2, 2, 6481, 6482, 7, 78, 2, 2, 6482, 1054, 3, 2, 2, 2, 6483, 6484, 7, 82, 2, 2, 6484, 6485, 7, 67, 2, 2, 6485, 6486, 7, 84, 2, 2, 6486, 6487, 7, 86, 2, 2, 6487, 6488, 7, 75, 2, 2, 6488, 6489, 7, 86, 2, 2, 6489, 6490, 7, 75, 2, 2, 6490, 6491, 7, 81, 2, 2, 6491, 6492, 7, 80, 2, 2, 6492, 6493, 7, 75, 2, 2, 6493, 6494, 7, 80, 2, 2, 6494, 6495, 7, 73, 2, 2, 6495, 1056, 3, 2, 2, 2, 6496, 6497, 7, 82, 2, 2, 6497, 6498, 7, 67, 2, 2, 6498, 6499, 7, 84, 2, 2, 6499, 6500, 7, 86, 2, 2, 6500, 6501, 7, 75, 2, 2, 6501, 6502, 7, 86, 2, 2, 6502, 6503, 7, 75, 2, 2, 6503, 6504, 7, 81, 2, 2, 6504, 6505, 7, 80, 2, 2, 6505, 6506, 7, 85, 2, 2, 6506, 1058, 3, 2, 2, 2, 6507, 6508, 7, 82, 2, 2, 6508, 6509, 7, 67, 2, 2, 6509, 6510, 7, 85, 2, 2, 6510, 6511, 7, 85, 2, 2, 6511, 6512, 7, 89, 2, 2, 6512, 6513, 7, 81, 2, 2, 6513, 6514, 7, 84, 2, 2, 6514, 6515, 7, 70, 2, 2, 6515, 1060, 3, 2, 2, 2, 6516, 6517, 7, 82, 2, 2, 6517, 6518, 7, 67, 2, 2, 6518, 6519, 7, 85, 2, 2, 6519, 6520, 7, 85, 2, 2, 6520, 6521, 7, 89, 2, 2, 6521, 6522, 7, 81, 2, 2, 6522, 6523, 7, 84, 2, 2, 6523, 6524, 7, 70, 2, 2, 6524, 6525, 7, 97, 2, 2, 6525, 6526, 7, 78, 2, 2, 6526, 6527, 7, 81, 2, 2, 6527, 6528, 7, 69, 2, 2, 6528, 6529, 7, 77, 2, 2, 6529, 6530, 7, 97, 2, 2, 6530, 6531, 7, 86, 2, 2, 6531, 6532, 7, 75, 2, 2, 6532, 6533, 7, 79, 2, 2, 6533, 6534, 7, 71, 2, 2, 6534, 1062, 3, 2, 2, 2, 6535, 6536, 7, 82, 2, 2, 6536, 6537, 7, 71, 2, 2, 6537, 6538, 7, 84, 2, 2, 6538, 6539, 7, 85, 2, 2, 6539, 6540, 7, 75, 2, 2, 6540, 6541, 7, 85, 2, 2, 6541, 6542, 7, 86, 2, 2, 6542, 1064, 3, 2, 2, 2, 6543, 6544, 7, 82, 2, 2, 6544, 6545, 7, 71, 2, 2, 6545, 6546, 7, 84, 2, 2, 6546, 6547, 7, 85, 2, 2, 6547, 6548, 7, 75, 2, 2, 6548, 6549, 7, 85, 2, 2, 6549, 6550, 7, 86, 2, 2, 6550, 6551, 7, 97, 2, 2, 6551, 6552, 7, 81, 2, 2, 6552, 6553, 7, 80, 2, 2, 6553, 6554, 7, 78, 2, 2, 6554, 6555, 7, 91, 2, 2, 6555, 1066, 3, 2, 2, 2, 6556, 6557, 7, 82, 2, 2, 6557, 6558, 7, 74, 2, 2, 6558, 6559, 7, 67, 2, 2, 6559, 6560, 7, 85, 2, 2, 6560, 6561, 7, 71, 2, 2, 6561, 1068, 3, 2, 2, 2, 6562, 6563, 7, 82, 2, 2, 6563, 6564, 7, 78, 2, 2, 6564, 6565, 7, 87, 2, 2, 6565, 6566, 7, 73, 2, 2, 6566, 6567, 7, 75, 2, 2, 6567, 6568, 7, 80, 2, 2, 6568, 1070, 3, 2, 2, 2, 6569, 6570, 7, 82, 2, 2, 6570, 6571, 7, 78, 2, 2, 6571, 6572, 7, 87, 2, 2, 6572, 6573, 7, 73, 2, 2, 6573, 6574, 7, 75, 2, 2, 6574, 6575, 7, 80, 2, 2, 6575, 6576, 7, 97, 2, 2, 6576, 6577, 7, 70, 2, 2, 6577, 6578, 7, 75, 2, 2, 6578, 6579, 7, 84, 2, 2, 6579, 1072, 3, 2, 2, 2, 6580, 6581, 7, 82, 2, 2, 6581, 6582, 7, 78, 2, 2, 6582, 6583, 7, 87, 2, 2, 6583, 6584, 7, 73, 2, 2, 6584, 6585, 7, 75, 2, 2, 6585, 6586, 7, 80, 2, 2, 6586, 6587, 7, 85, 2, 2, 6587, 1074, 3, 2, 2, 2, 6588, 6589, 7, 82, 2, 2, 6589, 6590, 7, 81, 2, 2, 6590, 6591, 7, 84, 2, 2, 6591, 6592, 7, 86, 2, 2, 6592, 1076, 3, 2, 2, 2, 6593, 6594, 7, 82, 2, 2, 6594, 6595, 7, 84, 2, 2, 6595, 6596, 7, 71, 2, 2, 6596, 6597, 7, 69, 2, 2, 6597, 6598, 7, 71, 2, 2, 6598, 6599, 7, 70, 2, 2, 6599, 6600, 7, 71, 2, 2, 6600, 6601, 7, 85, 2, 2, 6601, 1078, 3, 2, 2, 2, 6602, 6603, 7, 82, 2, 2, 6603, 6604, 7, 84, 2, 2, 6604, 6605, 7, 71, 2, 2, 6605, 6606, 7, 69, 2, 2, 6606, 6607, 7, 71, 2, 2, 6607, 6608, 7, 70, 2, 2, 6608, 6609, 7, 75, 2, 2, 6609, 6610, 7, 80, 2, 2, 6610, 6611, 7, 73, 2, 2, 6611, 1080, 3, 2, 2, 2, 6612, 6613, 7, 82, 2, 2, 6613, 6614, 7, 84, 2, 2, 6614, 6615, 7, 71, 2, 2, 6615, 6616, 7, 82, 2, 2, 6616, 6617, 7, 67, 2, 2, 6617, 6618, 7, 84, 2, 2, 6618, 6619, 7, 71, 2, 2, 6619, 1082, 3, 2, 2, 2, 6620, 6621, 7, 82, 2, 2, 6621, 6622, 7, 84, 2, 2, 6622, 6623, 7, 71, 2, 2, 6623, 6624, 7, 85, 2, 2, 6624, 6625, 7, 71, 2, 2, 6625, 6626, 7, 84, 2, 2, 6626, 6627, 7, 88, 2, 2, 6627, 6628, 7, 71, 2, 2, 6628, 1084, 3, 2, 2, 2, 6629, 6630, 7, 82, 2, 2, 6630, 6631, 7, 84, 2, 2, 6631, 6632, 7, 71, 2, 2, 6632, 6633, 7, 88, 2, 2, 6633, 1086, 3, 2, 2, 2, 6634, 6635, 7, 82, 2, 2, 6635, 6636, 7, 84, 2, 2, 6636, 6637, 7, 75, 2, 2, 6637, 6638, 7, 88, 2, 2, 6638, 6639, 7, 75, 2, 2, 6639, 6640, 7, 78, 2, 2, 6640, 6641, 7, 71, 2, 2, 6641, 6642, 7, 73, 2, 2, 6642, 6643, 7, 71, 2, 2, 6643, 6644, 7, 97, 2, 2, 6644, 6645, 7, 69, 2, 2, 6645, 6646, 7, 74, 2, 2, 6646, 6647, 7, 71, 2, 2, 6647, 6648, 7, 69, 2, 2, 6648, 6649, 7, 77, 2, 2, 6649, 6650, 7, 85, 2, 2, 6650, 6651, 7, 97, 2, 2, 6651, 6652, 7, 87, 2, 2, 6652, 6653, 7, 85, 2, 2, 6653, 6654, 7, 71, 2, 2, 6654, 6655, 7, 84, 2, 2, 6655, 1088, 3, 2, 2, 2, 6656, 6657, 7, 82, 2, 2, 6657, 6658, 7, 84, 2, 2, 6658, 6659, 7, 81, 2, 2, 6659, 6660, 7, 69, 2, 2, 6660, 6661, 7, 71, 2, 2, 6661, 6662, 7, 85, 2, 2, 6662, 6663, 7, 85, 2, 2, 6663, 6664, 7, 78, 2, 2, 6664, 6665, 7, 75, 2, 2, 6665, 6666, 7, 85, 2, 2, 6666, 6667, 7, 86, 2, 2, 6667, 1090, 3, 2, 2, 2, 6668, 6669, 7, 82, 2, 2, 6669, 6670, 7, 84, 2, 2, 6670, 6671, 7, 81, 2, 2, 6671, 6672, 7, 72, 2, 2, 6672, 6673, 7, 75, 2, 2, 6673, 6674, 7, 78, 2, 2, 6674, 6675, 7, 71, 2, 2, 6675, 1092, 3, 2, 2, 2, 6676, 6677, 7, 82, 2, 2, 6677, 6678, 7, 84, 2, 2, 6678, 6679, 7, 81, 2, 2, 6679, 6680, 7, 72, 2, 2, 6680, 6681, 7, 75, 2, 2, 6681, 6682, 7, 78, 2, 2, 6682, 6683, 7, 71, 2, 2, 6683, 6684, 7, 85, 2, 2, 6684, 1094, 3, 2, 2, 2, 6685, 6686, 7, 82, 2, 2, 6686, 6687, 7, 84, 2, 2, 6687, 6688, 7, 81, 2, 2, 6688, 6689, 7, 90, 2, 2, 6689, 6690, 7, 91, 2, 2, 6690, 1096, 3, 2, 2, 2, 6691, 6692, 7, 83, 2, 2, 6692, 6693, 7, 87, 2, 2, 6693, 6694, 7, 71, 2, 2, 6694, 6695, 7, 84, 2, 2, 6695, 6696, 7, 91, 2, 2, 6696, 1098, 3, 2, 2, 2, 6697, 6698, 7, 83, 2, 2, 6698, 6699, 7, 87, 2, 2, 6699, 6700, 7, 75, 2, 2, 6700, 6701, 7, 69, 2, 2, 6701, 6702, 7, 77, 2, 2, 6702, 1100, 3, 2, 2, 2, 6703, 6704, 7, 84, 2, 2, 6704, 6705, 7, 71, 2, 2, 6705, 6706, 7, 68, 2, 2, 6706, 6707, 7, 87, 2, 2, 6707, 6708, 7, 75, 2, 2, 6708, 6709, 7, 78, 2, 2, 6709, 6710, 7, 70, 2, 2, 6710, 1102, 3, 2, 2, 2, 6711, 6712, 7, 84, 2, 2, 6712, 6713, 7, 71, 2, 2, 6713, 6714, 7, 69, 2, 2, 6714, 6715, 7, 81, 2, 2, 6715, 6716, 7, 88, 2, 2, 6716, 6717, 7, 71, 2, 2, 6717, 6718, 7, 84, 2, 2, 6718, 1104, 3, 2, 2, 2, 6719, 6720, 7, 84, 2, 2, 6720, 6721, 7, 71, 2, 2, 6721, 6722, 7, 69, 2, 2, 6722, 6723, 7, 87, 2, 2, 6723, 6724, 7, 84, 2, 2, 6724, 6725, 7, 85, 2, 2, 6725, 6726, 7, 75, 2, 2, 6726, 6727, 7, 88, 2, 2, 6727, 6728, 7, 71, 2, 2, 6728, 1106, 3, 2, 2, 2, 6729, 6730, 7, 84, 2, 2, 6730, 6731, 7, 71, 2, 2, 6731, 6732, 7, 70, 2, 2, 6732, 6733, 7, 81, 2, 2, 6733, 6734, 7, 97, 2, 2, 6734, 6735, 7, 68, 2, 2, 6735, 6736, 7, 87, 2, 2, 6736, 6737, 7, 72, 2, 2, 6737, 6738, 7, 72, 2, 2, 6738, 6739, 7, 71, 2, 2, 6739, 6740, 7, 84, 2, 2, 6740, 6741, 7, 97, 2, 2, 6741, 6742, 7, 85, 2, 2, 6742, 6743, 7, 75, 2, 2, 6743, 6744, 7, 92, 2, 2, 6744, 6745, 7, 71, 2, 2, 6745, 1108, 3, 2, 2, 2, 6746, 6747, 7, 84, 2, 2, 6747, 6748, 7, 71, 2, 2, 6748, 6749, 7, 70, 2, 2, 6749, 6750, 7, 87, 2, 2, 6750, 6751, 7, 80, 2, 2, 6751, 6752, 7, 70, 2, 2, 6752, 6753, 7, 67, 2, 2, 6753, 6754, 7, 80, 2, 2, 6754, 6755, 7, 86, 2, 2, 6755, 1110, 3, 2, 2, 2, 6756, 6757, 7, 84, 2, 2, 6757, 6758, 7, 71, 2, 2, 6758, 6759, 7, 73, 2, 2, 6759, 6760, 7, 75, 2, 2, 6760, 6761, 7, 85, 2, 2, 6761, 6762, 7, 86, 2, 2, 6762, 6763, 7, 84, 2, 2, 6763, 6764, 7, 67, 2, 2, 6764, 6765, 7, 86, 2, 2, 6765, 6766, 7, 75, 2, 2, 6766, 6767, 7, 81, 2, 2, 6767, 6768, 7, 80, 2, 2, 6768, 1112, 3, 2, 2, 2, 6769, 6770, 7, 84, 2, 2, 6770, 6771, 7, 71, 2, 2, 6771, 6772, 7, 78, 2, 2, 6772, 6773, 7, 67, 2, 2, 6773, 6774, 7, 91, 2, 2, 6774, 1114, 3, 2, 2, 2, 6775, 6776, 7, 84, 2, 2, 6776, 6777, 7, 71, 2, 2, 6777, 6778, 7, 78, 2, 2, 6778, 6779, 7, 67, 2, 2, 6779, 6780, 7, 91, 2, 2, 6780, 6781, 7, 97, 2, 2, 6781, 6782, 7, 78, 2, 2, 6782, 6783, 7, 81, 2, 2, 6783, 6784, 7, 73, 2, 2, 6784, 6785, 7, 97, 2, 2, 6785, 6786, 7, 72, 2, 2, 6786, 6787, 7, 75, 2, 2, 6787, 6788, 7, 78, 2, 2, 6788, 6789, 7, 71, 2, 2, 6789, 1116, 3, 2, 2, 2, 6790, 6791, 7, 84, 2, 2, 6791, 6792, 7, 71, 2, 2, 6792, 6793, 7, 78, 2, 2, 6793, 6794, 7, 67, 2, 2, 6794, 6795, 7, 91, 2, 2, 6795, 6796, 7, 97, 2, 2, 6796, 6797, 7, 78, 2, 2, 6797, 6798, 7, 81, 2, 2, 6798, 6799, 7, 73, 2, 2, 6799, 6800, 7, 97, 2, 2, 6800, 6801, 7, 82, 2, 2, 6801, 6802, 7, 81, 2, 2, 6802, 6803, 7, 85, 2, 2, 6803, 1118, 3, 2, 2, 2, 6804, 6805, 7, 84, 2, 2, 6805, 6806, 7, 71, 2, 2, 6806, 6807, 7, 78, 2, 2, 6807, 6808, 7, 67, 2, 2, 6808, 6809, 7, 91, 2, 2, 6809, 6810, 7, 78, 2, 2, 6810, 6811, 7, 81, 2, 2, 6811, 6812, 7, 73, 2, 2, 6812, 1120, 3, 2, 2, 2, 6813, 6814, 7, 84, 2, 2, 6814, 6815, 7, 71, 2, 2, 6815, 6816, 7, 79, 2, 2, 6816, 6817, 7, 81, 2, 2, 6817, 6818, 7, 88, 2, 2, 6818, 6819, 7, 71, 2, 2, 6819, 1122, 3, 2, 2, 2, 6820, 6821, 7, 84, 2, 2, 6821, 6822, 7, 71, 2, 2, 6822, 6823, 7, 81, 2, 2, 6823, 6824, 7, 84, 2, 2, 6824, 6825, 7, 73, 2, 2, 6825, 6826, 7, 67, 2, 2, 6826, 6827, 7, 80, 2, 2, 6827, 6828, 7, 75, 2, 2, 6828, 6829, 7, 92, 2, 2, 6829, 6830, 7, 71, 2, 2, 6830, 1124, 3, 2, 2, 2, 6831, 6832, 7, 84, 2, 2, 6832, 6833, 7, 71, 2, 2, 6833, 6834, 7, 82, 2, 2, 6834, 6835, 7, 67, 2, 2, 6835, 6836, 7, 75, 2, 2, 6836, 6837, 7, 84, 2, 2, 6837, 1126, 3, 2, 2, 2, 6838, 6839, 7, 84, 2, 2, 6839, 6840, 7, 71, 2, 2, 6840, 6841, 7, 82, 2, 2, 6841, 6842, 7, 78, 2, 2, 6842, 6843, 7, 75, 2, 2, 6843, 6844, 7, 69, 2, 2, 6844, 6845, 7, 67, 2, 2, 6845, 1128, 3, 2, 2, 2, 6846, 6847, 7, 84, 2, 2, 6847, 6848, 7, 71, 2, 2, 6848, 6849, 7, 82, 2, 2, 6849, 6850, 7, 78, 2, 2, 6850, 6851, 7, 75, 2, 2, 6851, 6852, 7, 69, 2, 2, 6852, 6853, 7, 67, 2, 2, 6853, 6854, 7, 85, 2, 2, 6854, 1130, 3, 2, 2, 2, 6855, 6856, 7, 84, 2, 2, 6856, 6857, 7, 71, 2, 2, 6857, 6858, 7, 82, 2, 2, 6858, 6859, 7, 78, 2, 2, 6859, 6860, 7, 75, 2, 2, 6860, 6861, 7, 69, 2, 2, 6861, 6862, 7, 67, 2, 2, 6862, 6863, 7, 86, 2, 2, 6863, 6864, 7, 71, 2, 2, 6864, 6865, 7, 97, 2, 2, 6865, 6866, 7, 70, 2, 2, 6866, 6867, 7, 81, 2, 2, 6867, 6868, 7, 97, 2, 2, 6868, 6869, 7, 70, 2, 2, 6869, 6870, 7, 68, 2, 2, 6870, 1132, 3, 2, 2, 2, 6871, 6872, 7, 84, 2, 2, 6872, 6873, 7, 71, 2, 2, 6873, 6874, 7, 82, 2, 2, 6874, 6875, 7, 78, 2, 2, 6875, 6876, 7, 75, 2, 2, 6876, 6877, 7, 69, 2, 2, 6877, 6878, 7, 67, 2, 2, 6878, 6879, 7, 86, 2, 2, 6879, 6880, 7, 71, 2, 2, 6880, 6881, 7, 97, 2, 2, 6881, 6882, 7, 70, 2, 2, 6882, 6883, 7, 81, 2, 2, 6883, 6884, 7, 97, 2, 2, 6884, 6885, 7, 86, 2, 2, 6885, 6886, 7, 67, 2, 2, 6886, 6887, 7, 68, 2, 2, 6887, 6888, 7, 78, 2, 2, 6888, 6889, 7, 71, 2, 2, 6889, 1134, 3, 2, 2, 2, 6890, 6891, 7, 84, 2, 2, 6891, 6892, 7, 71, 2, 2, 6892, 6893, 7, 82, 2, 2, 6893, 6894, 7, 78, 2, 2, 6894, 6895, 7, 75, 2, 2, 6895, 6896, 7, 69, 2, 2, 6896, 6897, 7, 67, 2, 2, 6897, 6898, 7, 86, 2, 2, 6898, 6899, 7, 71, 2, 2, 6899, 6900, 7, 97, 2, 2, 6900, 6901, 7, 75, 2, 2, 6901, 6902, 7, 73, 2, 2, 6902, 6903, 7, 80, 2, 2, 6903, 6904, 7, 81, 2, 2, 6904, 6905, 7, 84, 2, 2, 6905, 6906, 7, 71, 2, 2, 6906, 6907, 7, 97, 2, 2, 6907, 6908, 7, 70, 2, 2, 6908, 6909, 7, 68, 2, 2, 6909, 1136, 3, 2, 2, 2, 6910, 6911, 7, 84, 2, 2, 6911, 6912, 7, 71, 2, 2, 6912, 6913, 7, 82, 2, 2, 6913, 6914, 7, 78, 2, 2, 6914, 6915, 7, 75, 2, 2, 6915, 6916, 7, 69, 2, 2, 6916, 6917, 7, 67, 2, 2, 6917, 6918, 7, 86, 2, 2, 6918, 6919, 7, 71, 2, 2, 6919, 6920, 7, 97, 2, 2, 6920, 6921, 7, 75, 2, 2, 6921, 6922, 7, 73, 2, 2, 6922, 6923, 7, 80, 2, 2, 6923, 6924, 7, 81, 2, 2, 6924, 6925, 7, 84, 2, 2, 6925, 6926, 7, 71, 2, 2, 6926, 6927, 7, 97, 2, 2, 6927, 6928, 7, 86, 2, 2, 6928, 6929, 7, 67, 2, 2, 6929, 6930, 7, 68, 2, 2, 6930, 6931, 7, 78, 2, 2, 6931, 6932, 7, 71, 2, 2, 6932, 1138, 3, 2, 2, 2, 6933, 6934, 7, 84, 2, 2, 6934, 6935, 7, 71, 2, 2, 6935, 6936, 7, 82, 2, 2, 6936, 6937, 7, 78, 2, 2, 6937, 6938, 7, 75, 2, 2, 6938, 6939, 7, 69, 2, 2, 6939, 6940, 7, 67, 2, 2, 6940, 6941, 7, 86, 2, 2, 6941, 6942, 7, 71, 2, 2, 6942, 6943, 7, 97, 2, 2, 6943, 6944, 7, 84, 2, 2, 6944, 6945, 7, 71, 2, 2, 6945, 6946, 7, 89, 2, 2, 6946, 6947, 7, 84, 2, 2, 6947, 6948, 7, 75, 2, 2, 6948, 6949, 7, 86, 2, 2, 6949, 6950, 7, 71, 2, 2, 6950, 6951, 7, 97, 2, 2, 6951, 6952, 7, 70, 2, 2, 6952, 6953, 7, 68, 2, 2, 6953, 1140, 3, 2, 2, 2, 6954, 6955, 7, 84, 2, 2, 6955, 6956, 7, 71, 2, 2, 6956, 6957, 7, 82, 2, 2, 6957, 6958, 7, 78, 2, 2, 6958, 6959, 7, 75, 2, 2, 6959, 6960, 7, 69, 2, 2, 6960, 6961, 7, 67, 2, 2, 6961, 6962, 7, 86, 2, 2, 6962, 6963, 7, 71, 2, 2, 6963, 6964, 7, 97, 2, 2, 6964, 6965, 7, 89, 2, 2, 6965, 6966, 7, 75, 2, 2, 6966, 6967, 7, 78, 2, 2, 6967, 6968, 7, 70, 2, 2, 6968, 6969, 7, 97, 2, 2, 6969, 6970, 7, 70, 2, 2, 6970, 6971, 7, 81, 2, 2, 6971, 6972, 7, 97, 2, 2, 6972, 6973, 7, 86, 2, 2, 6973, 6974, 7, 67, 2, 2, 6974, 6975, 7, 68, 2, 2, 6975, 6976, 7, 78, 2, 2, 6976, 6977, 7, 71, 2, 2, 6977, 1142, 3, 2, 2, 2, 6978, 6979, 7, 84, 2, 2, 6979, 6980, 7, 71, 2, 2, 6980, 6981, 7, 82, 2, 2, 6981, 6982, 7, 78, 2, 2, 6982, 6983, 7, 75, 2, 2, 6983, 6984, 7, 69, 2, 2, 6984, 6985, 7, 67, 2, 2, 6985, 6986, 7, 86, 2, 2, 6986, 6987, 7, 71, 2, 2, 6987, 6988, 7, 97, 2, 2, 6988, 6989, 7, 89, 2, 2, 6989, 6990, 7, 75, 2, 2, 6990, 6991, 7, 78, 2, 2, 6991, 6992, 7, 70, 2, 2, 6992, 6993, 7, 97, 2, 2, 6993, 6994, 7, 75, 2, 2, 6994, 6995, 7, 73, 2, 2, 6995, 6996, 7, 80, 2, 2, 6996, 6997, 7, 81, 2, 2, 6997, 6998, 7, 84, 2, 2, 6998, 6999, 7, 71, 2, 2, 6999, 7000, 7, 97, 2, 2, 7000, 7001, 7, 86, 2, 2, 7001, 7002, 7, 67, 2, 2, 7002, 7003, 7, 68, 2, 2, 7003, 7004, 7, 78, 2, 2, 7004, 7005, 7, 71, 2, 2, 7005, 1144, 3, 2, 2, 2, 7006, 7007, 7, 84, 2, 2, 7007, 7008, 7, 71, 2, 2, 7008, 7009, 7, 82, 2, 2, 7009, 7010, 7, 78, 2, 2, 7010, 7011, 7, 75, 2, 2, 7011, 7012, 7, 69, 2, 2, 7012, 7013, 7, 67, 2, 2, 7013, 7014, 7, 86, 2, 2, 7014, 7015, 7, 75, 2, 2, 7015, 7016, 7, 81, 2, 2, 7016, 7017, 7, 80, 2, 2, 7017, 1146, 3, 2, 2, 2, 7018, 7019, 7, 84, 2, 2, 7019, 7020, 7, 71, 2, 2, 7020, 7021, 7, 83, 2, 2, 7021, 7022, 7, 87, 2, 2, 7022, 7023, 7, 75, 2, 2, 7023, 7024, 7, 84, 2, 2, 7024, 7025, 7, 71, 2, 2, 7025, 7026, 7, 97, 2, 2, 7026, 7027, 7, 84, 2, 2, 7027, 7028, 7, 81, 2, 2, 7028, 7029, 7, 89, 2, 2, 7029, 7030, 7, 97, 2, 2, 7030, 7031, 7, 72, 2, 2, 7031, 7032, 7, 81, 2, 2, 7032, 7033, 7, 84, 2, 2, 7033, 7034, 7, 79, 2, 2, 7034, 7035, 7, 67, 2, 2, 7035, 7036, 7, 86, 2, 2, 7036, 1148, 3, 2, 2, 2, 7037, 7038, 7, 84, 2, 2, 7038, 7039, 7, 71, 2, 2, 7039, 7040, 7, 83, 2, 2, 7040, 7041, 7, 87, 2, 2, 7041, 7042, 7, 75, 2, 2, 7042, 7043, 7, 84, 2, 2, 7043, 7044, 7, 71, 2, 2, 7044, 7045, 7, 97, 2, 2, 7045, 7046, 7, 86, 2, 2, 7046, 7047, 7, 67, 2, 2, 7047, 7048, 7, 68, 2, 2, 7048, 7049, 7, 78, 2, 2, 7049, 7050, 7, 71, 2, 2, 7050, 7051, 7, 97, 2, 2, 7051, 7052, 7, 82, 2, 2, 7052, 7053, 7, 84, 2, 2, 7053, 7054, 7, 75, 2, 2, 7054, 7055, 7, 79, 2, 2, 7055, 7056, 7, 67, 2, 2, 7056, 7057, 7, 84, 2, 2, 7057, 7058, 7, 91, 2, 2, 7058, 7059, 7, 97, 2, 2, 7059, 7060, 7, 77, 2, 2, 7060, 7061, 7, 71, 2, 2, 7061, 7062, 7, 91, 2, 2, 7062, 7063, 7, 97, 2, 2, 7063, 7064, 7, 69, 2, 2, 7064, 7065, 7, 74, 2, 2, 7065, 7066, 7, 71, 2, 2, 7066, 7067, 7, 69, 2, 2, 7067, 7068, 7, 77, 2, 2, 7068, 1150, 3, 2, 2, 2, 7069, 7070, 7, 84, 2, 2, 7070, 7071, 7, 71, 2, 2, 7071, 7072, 7, 85, 2, 2, 7072, 7073, 7, 71, 2, 2, 7073, 7074, 7, 86, 2, 2, 7074, 1152, 3, 2, 2, 2, 7075, 7076, 7, 84, 2, 2, 7076, 7077, 7, 71, 2, 2, 7077, 7078, 7, 85, 2, 2, 7078, 7079, 7, 86, 2, 2, 7079, 7080, 7, 67, 2, 2, 7080, 7081, 7, 84, 2, 2, 7081, 7082, 7, 86, 2, 2, 7082, 1154, 3, 2, 2, 2, 7083, 7084, 7, 84, 2, 2, 7084, 7085, 7, 71, 2, 2, 7085, 7086, 7, 85, 2, 2, 7086, 7087, 7, 87, 2, 2, 7087, 7088, 7, 79, 2, 2, 7088, 7089, 7, 71, 2, 2, 7089, 1156, 3, 2, 2, 2, 7090, 7091, 7, 84, 2, 2, 7091, 7092, 7, 71, 2, 2, 7092, 7093, 7, 86, 2, 2, 7093, 7094, 7, 87, 2, 2, 7094, 7095, 7, 84, 2, 2, 7095, 7096, 7, 80, 2, 2, 7096, 7097, 7, 71, 2, 2, 7097, 7098, 7, 70, 2, 2, 7098, 7099, 7, 97, 2, 2, 7099, 7100, 7, 85, 2, 2, 7100, 7101, 7, 83, 2, 2, 7101, 7102, 7, 78, 2, 2, 7102, 7103, 7, 85, 2, 2, 7103, 7104, 7, 86, 2, 2, 7104, 7105, 7, 67, 2, 2, 7105, 7106, 7, 86, 2, 2, 7106, 7107, 7, 71, 2, 2, 7107, 1158, 3, 2, 2, 2, 7108, 7109, 7, 84, 2, 2, 7109, 7110, 7, 71, 2, 2, 7110, 7111, 7, 86, 2, 2, 7111, 7112, 7, 87, 2, 2, 7112, 7113, 7, 84, 2, 2, 7113, 7114, 7, 80, 2, 2, 7114, 7115, 7, 75, 2, 2, 7115, 7116, 7, 80, 2, 2, 7116, 7117, 7, 73, 2, 2, 7117, 1160, 3, 2, 2, 2, 7118, 7119, 7, 84, 2, 2, 7119, 7120, 7, 71, 2, 2, 7120, 7121, 7, 86, 2, 2, 7121, 7122, 7, 87, 2, 2, 7122, 7123, 7, 84, 2, 2, 7123, 7124, 7, 80, 2, 2, 7124, 7125, 7, 85, 2, 2, 7125, 1162, 3, 2, 2, 2, 7126, 7127, 7, 84, 2, 2, 7127, 7128, 7, 71, 2, 2, 7128, 7129, 7, 87, 2, 2, 7129, 7130, 7, 85, 2, 2, 7130, 7131, 7, 71, 2, 2, 7131, 1164, 3, 2, 2, 2, 7132, 7133, 7, 84, 2, 2, 7133, 7134, 7, 81, 2, 2, 7134, 7135, 7, 78, 2, 2, 7135, 7136, 7, 71, 2, 2, 7136, 1166, 3, 2, 2, 2, 7137, 7138, 7, 84, 2, 2, 7138, 7139, 7, 81, 2, 2, 7139, 7140, 7, 78, 2, 2, 7140, 7141, 7, 78, 2, 2, 7141, 7142, 7, 68, 2, 2, 7142, 7143, 7, 67, 2, 2, 7143, 7144, 7, 69, 2, 2, 7144, 7145, 7, 77, 2, 2, 7145, 1168, 3, 2, 2, 2, 7146, 7147, 7, 84, 2, 2, 7147, 7148, 7, 81, 2, 2, 7148, 7149, 7, 78, 2, 2, 7149, 7150, 7, 78, 2, 2, 7150, 7151, 7, 87, 2, 2, 7151, 7152, 7, 82, 2, 2, 7152, 1170, 3, 2, 2, 2, 7153, 7154, 7, 84, 2, 2, 7154, 7155, 7, 81, 2, 2, 7155, 7156, 7, 86, 2, 2, 7156, 7157, 7, 67, 2, 2, 7157, 7158, 7, 86, 2, 2, 7158, 7159, 7, 71, 2, 2, 7159, 1172, 3, 2, 2, 2, 7160, 7161, 7, 84, 2, 2, 7161, 7162, 7, 81, 2, 2, 7162, 7163, 7, 89, 2, 2, 7163, 1174, 3, 2, 2, 2, 7164, 7165, 7, 84, 2, 2, 7165, 7166, 7, 81, 2, 2, 7166, 7167, 7, 89, 2, 2, 7167, 7168, 7, 85, 2, 2, 7168, 1176, 3, 2, 2, 2, 7169, 7170, 7, 84, 2, 2, 7170, 7171, 7, 81, 2, 2, 7171, 7172, 7, 89, 2, 2, 7172, 7173, 7, 97, 2, 2, 7173, 7174, 7, 72, 2, 2, 7174, 7175, 7, 81, 2, 2, 7175, 7176, 7, 84, 2, 2, 7176, 7177, 7, 79, 2, 2, 7177, 7178, 7, 67, 2, 2, 7178, 7179, 7, 86, 2, 2, 7179, 1178, 3, 2, 2, 2, 7180, 7181, 7, 85, 2, 2, 7181, 7182, 7, 67, 2, 2, 7182, 7183, 7, 88, 2, 2, 7183, 7184, 7, 71, 2, 2, 7184, 7185, 7, 82, 2, 2, 7185, 7186, 7, 81, 2, 2, 7186, 7187, 7, 75, 2, 2, 7187, 7188, 7, 80, 2, 2, 7188, 7189, 7, 86, 2, 2, 7189, 1180, 3, 2, 2, 2, 7190, 7191, 7, 85, 2, 2, 7191, 7192, 7, 69, 2, 2, 7192, 7193, 7, 74, 2, 2, 7193, 7194, 7, 71, 2, 2, 7194, 7195, 7, 70, 2, 2, 7195, 7196, 7, 87, 2, 2, 7196, 7197, 7, 78, 2, 2, 7197, 7198, 7, 71, 2, 2, 7198, 1182, 3, 2, 2, 2, 7199, 7200, 7, 85, 2, 2, 7200, 7201, 7, 71, 2, 2, 7201, 7202, 7, 69, 2, 2, 7202, 7203, 7, 87, 2, 2, 7203, 7204, 7, 84, 2, 2, 7204, 7205, 7, 75, 2, 2, 7205, 7206, 7, 86, 2, 2, 7206, 7207, 7, 91, 2, 2, 7207, 1184, 3, 2, 2, 2, 7208, 7209, 7, 85, 2, 2, 7209, 7210, 7, 71, 2, 2, 7210, 7211, 7, 84, 2, 2, 7211, 7212, 7, 88, 2, 2, 7212, 7213, 7, 71, 2, 2, 7213, 7214, 7, 84, 2, 2, 7214, 1186, 3, 2, 2, 2, 7215, 7216, 7, 85, 2, 2, 7216, 7217, 7, 71, 2, 2, 7217, 7218, 7, 85, 2, 2, 7218, 7219, 7, 85, 2, 2, 7219, 7220, 7, 75, 2, 2, 7220, 7221, 7, 81, 2, 2, 7221, 7222, 7, 80, 2, 2, 7222, 1188, 3, 2, 2, 2, 7223, 7224, 7, 85, 2, 2, 7224, 7225, 7, 74, 2, 2, 7225, 7226, 7, 67, 2, 2, 7226, 7227, 7, 84, 2, 2, 7227, 7228, 7, 71, 2, 2, 7228, 1190, 3, 2, 2, 2, 7229, 7230, 7, 85, 2, 2, 7230, 7231, 7, 74, 2, 2, 7231, 7232, 7, 67, 2, 2, 7232, 7233, 7, 84, 2, 2, 7233, 7234, 7, 71, 2, 2, 7234, 7235, 7, 70, 2, 2, 7235, 1192, 3, 2, 2, 2, 7236, 7237, 7, 85, 2, 2, 7237, 7238, 7, 75, 2, 2, 7238, 7239, 7, 73, 2, 2, 7239, 7240, 7, 80, 2, 2, 7240, 7241, 7, 71, 2, 2, 7241, 7242, 7, 70, 2, 2, 7242, 1194, 3, 2, 2, 2, 7243, 7244, 7, 85, 2, 2, 7244, 7245, 7, 75, 2, 2, 7245, 7246, 7, 79, 2, 2, 7246, 7247, 7, 82, 2, 2, 7247, 7248, 7, 78, 2, 2, 7248, 7249, 7, 71, 2, 2, 7249, 1196, 3, 2, 2, 2, 7250, 7251, 7, 85, 2, 2, 7251, 7252, 7, 78, 2, 2, 7252, 7253, 7, 67, 2, 2, 7253, 7254, 7, 88, 2, 2, 7254, 7255, 7, 71, 2, 2, 7255, 1198, 3, 2, 2, 2, 7256, 7257, 7, 85, 2, 2, 7257, 7258, 7, 78, 2, 2, 7258, 7259, 7, 81, 2, 2, 7259, 7260, 7, 89, 2, 2, 7260, 1200, 3, 2, 2, 2, 7261, 7262, 7, 85, 2, 2, 7262, 7263, 7, 80, 2, 2, 7263, 7264, 7, 67, 2, 2, 7264, 7265, 7, 82, 2, 2, 7265, 7266, 7, 85, 2, 2, 7266, 7267, 7, 74, 2, 2, 7267, 7268, 7, 81, 2, 2, 7268, 7269, 7, 86, 2, 2, 7269, 1202, 3, 2, 2, 2, 7270, 7271, 7, 85, 2, 2, 7271, 7272, 7, 81, 2, 2, 7272, 7273, 7, 69, 2, 2, 7273, 7274, 7, 77, 2, 2, 7274, 7275, 7, 71, 2, 2, 7275, 7276, 7, 86, 2, 2, 7276, 1204, 3, 2, 2, 2, 7277, 7278, 7, 85, 2, 2, 7278, 7279, 7, 81, 2, 2, 7279, 7280, 7, 79, 2, 2, 7280, 7281, 7, 71, 2, 2, 7281, 1206, 3, 2, 2, 2, 7282, 7283, 7, 85, 2, 2, 7283, 7284, 7, 81, 2, 2, 7284, 7285, 7, 80, 2, 2, 7285, 7286, 7, 67, 2, 2, 7286, 7287, 7, 79, 2, 2, 7287, 7288, 7, 71, 2, 2, 7288, 1208, 3, 2, 2, 2, 7289, 7290, 7, 85, 2, 2, 7290, 7291, 7, 81, 2, 2, 7291, 7292, 7, 87, 2, 2, 7292, 7293, 7, 80, 2, 2, 7293, 7294, 7, 70, 2, 2, 7294, 7295, 7, 85, 2, 2, 7295, 1210, 3, 2, 2, 2, 7296, 7297, 7, 85, 2, 2, 7297, 7298, 7, 81, 2, 2, 7298, 7299, 7, 87, 2, 2, 7299, 7300, 7, 84, 2, 2, 7300, 7301, 7, 69, 2, 2, 7301, 7302, 7, 71, 2, 2, 7302, 1212, 3, 2, 2, 2, 7303, 7304, 7, 85, 2, 2, 7304, 7305, 7, 81, 2, 2, 7305, 7306, 7, 87, 2, 2, 7306, 7307, 7, 84, 2, 2, 7307, 7308, 7, 69, 2, 2, 7308, 7309, 7, 71, 2, 2, 7309, 7310, 7, 97, 2, 2, 7310, 7311, 7, 68, 2, 2, 7311, 7312, 7, 75, 2, 2, 7312, 7313, 7, 80, 2, 2, 7313, 7314, 7, 70, 2, 2, 7314, 1214, 3, 2, 2, 2, 7315, 7316, 7, 85, 2, 2, 7316, 7317, 7, 81, 2, 2, 7317, 7318, 7, 87, 2, 2, 7318, 7319, 7, 84, 2, 2, 7319, 7320, 7, 69, 2, 2, 7320, 7321, 7, 71, 2, 2, 7321, 7322, 7, 97, 2, 2, 7322, 7323, 7, 74, 2, 2, 7323, 7324, 7, 81, 2, 2, 7324, 7325, 7, 85, 2, 2, 7325, 7326, 7, 86, 2, 2, 7326, 1216, 3, 2, 2, 2, 7327, 7328, 7, 85, 2, 2, 7328, 7329, 7, 81, 2, 2, 7329, 7330, 7, 87, 2, 2, 7330, 7331, 7, 84, 2, 2, 7331, 7332, 7, 69, 2, 2, 7332, 7333, 7, 71, 2, 2, 7333, 7334, 7, 97, 2, 2, 7334, 7335, 7, 87, 2, 2, 7335, 7336, 7, 85, 2, 2, 7336, 7337, 7, 71, 2, 2, 7337, 7338, 7, 84, 2, 2, 7338, 1218, 3, 2, 2, 2, 7339, 7340, 7, 85, 2, 2, 7340, 7341, 7, 81, 2, 2, 7341, 7342, 7, 87, 2, 2, 7342, 7343, 7, 84, 2, 2, 7343, 7344, 7, 69, 2, 2, 7344, 7345, 7, 71, 2, 2, 7345, 7346, 7, 97, 2, 2, 7346, 7347, 7, 82, 2, 2, 7347, 7348, 7, 67, 2, 2, 7348, 7349, 7, 85, 2, 2, 7349, 7350, 7, 85, 2, 2, 7350, 7351, 7, 89, 2, 2, 7351, 7352, 7, 81, 2, 2, 7352, 7353, 7, 84, 2, 2, 7353, 7354, 7, 70, 2, 2, 7354, 1220, 3, 2, 2, 2, 7355, 7356, 7, 85, 2, 2, 7356, 7357, 7, 81, 2, 2, 7357, 7358, 7, 87, 2, 2, 7358, 7359, 7, 84, 2, 2, 7359, 7360, 7, 69, 2, 2, 7360, 7361, 7, 71, 2, 2, 7361, 7362, 7, 97, 2, 2, 7362, 7363, 7, 82, 2, 2, 7363, 7364, 7, 81, 2, 2, 7364, 7365, 7, 84, 2, 2, 7365, 7366, 7, 86, 2, 2, 7366, 1222, 3, 2, 2, 2, 7367, 7368, 7, 85, 2, 2, 7368, 7369, 7, 81, 2, 2, 7369, 7370, 7, 87, 2, 2, 7370, 7371, 7, 84, 2, 2, 7371, 7372, 7, 69, 2, 2, 7372, 7373, 7, 71, 2, 2, 7373, 7374, 7, 97, 2, 2, 7374, 7375, 7, 78, 2, 2, 7375, 7376, 7, 81, 2, 2, 7376, 7377, 7, 73, 2, 2, 7377, 7378, 7, 97, 2, 2, 7378, 7379, 7, 72, 2, 2, 7379, 7380, 7, 75, 2, 2, 7380, 7381, 7, 78, 2, 2, 7381, 7382, 7, 71, 2, 2, 7382, 1224, 3, 2, 2, 2, 7383, 7384, 7, 85, 2, 2, 7384, 7385, 7, 81, 2, 2, 7385, 7386, 7, 87, 2, 2, 7386, 7387, 7, 84, 2, 2, 7387, 7388, 7, 69, 2, 2, 7388, 7389, 7, 71, 2, 2, 7389, 7390, 7, 97, 2, 2, 7390, 7391, 7, 78, 2, 2, 7391, 7392, 7, 81, 2, 2, 7392, 7393, 7, 73, 2, 2, 7393, 7394, 7, 97, 2, 2, 7394, 7395, 7, 82, 2, 2, 7395, 7396, 7, 81, 2, 2, 7396, 7397, 7, 85, 2, 2, 7397, 1226, 3, 2, 2, 2, 7398, 7399, 7, 85, 2, 2, 7399, 7400, 7, 81, 2, 2, 7400, 7401, 7, 87, 2, 2, 7401, 7402, 7, 84, 2, 2, 7402, 7403, 7, 69, 2, 2, 7403, 7404, 7, 71, 2, 2, 7404, 7405, 7, 97, 2, 2, 7405, 7406, 7, 67, 2, 2, 7406, 7407, 7, 87, 2, 2, 7407, 7408, 7, 86, 2, 2, 7408, 7409, 7, 81, 2, 2, 7409, 7410, 7, 97, 2, 2, 7410, 7411, 7, 82, 2, 2, 7411, 7412, 7, 81, 2, 2, 7412, 7413, 7, 85, 2, 2, 7413, 7414, 7, 75, 2, 2, 7414, 7415, 7, 86, 2, 2, 7415, 7416, 7, 75, 2, 2, 7416, 7417, 7, 81, 2, 2, 7417, 7418, 7, 80, 2, 2, 7418, 1228, 3, 2, 2, 2, 7419, 7420, 7, 85, 2, 2, 7420, 7421, 7, 81, 2, 2, 7421, 7422, 7, 87, 2, 2, 7422, 7423, 7, 84, 2, 2, 7423, 7424, 7, 69, 2, 2, 7424, 7425, 7, 71, 2, 2, 7425, 7426, 7, 97, 2, 2, 7426, 7427, 7, 74, 2, 2, 7427, 7428, 7, 71, 2, 2, 7428, 7429, 7, 67, 2, 2, 7429, 7430, 7, 84, 2, 2, 7430, 7431, 7, 86, 2, 2, 7431, 7432, 7, 68, 2, 2, 7432, 7433, 7, 71, 2, 2, 7433, 7434, 7, 67, 2, 2, 7434, 7435, 7, 86, 2, 2, 7435, 7436, 7, 97, 2, 2, 7436, 7437, 7, 82, 2, 2, 7437, 7438, 7, 71, 2, 2, 7438, 7439, 7, 84, 2, 2, 7439, 7440, 7, 75, 2, 2, 7440, 7441, 7, 81, 2, 2, 7441, 7442, 7, 70, 2, 2, 7442, 1230, 3, 2, 2, 2, 7443, 7444, 7, 85, 2, 2, 7444, 7445, 7, 81, 2, 2, 7445, 7446, 7, 87, 2, 2, 7446, 7447, 7, 84, 2, 2, 7447, 7448, 7, 69, 2, 2, 7448, 7449, 7, 71, 2, 2, 7449, 7450, 7, 97, 2, 2, 7450, 7451, 7, 69, 2, 2, 7451, 7452, 7, 81, 2, 2, 7452, 7453, 7, 80, 2, 2, 7453, 7454, 7, 80, 2, 2, 7454, 7455, 7, 71, 2, 2, 7455, 7456, 7, 69, 2, 2, 7456, 7457, 7, 86, 2, 2, 7457, 7458, 7, 97, 2, 2, 7458, 7459, 7, 84, 2, 2, 7459, 7460, 7, 71, 2, 2, 7460, 7461, 7, 86, 2, 2, 7461, 7462, 7, 84, 2, 2, 7462, 7463, 7, 91, 2, 2, 7463, 1232, 3, 2, 2, 2, 7464, 7465, 7, 85, 2, 2, 7465, 7466, 7, 81, 2, 2, 7466, 7467, 7, 87, 2, 2, 7467, 7468, 7, 84, 2, 2, 7468, 7469, 7, 69, 2, 2, 7469, 7470, 7, 71, 2, 2, 7470, 7471, 7, 97, 2, 2, 7471, 7472, 7, 84, 2, 2, 7472, 7473, 7, 71, 2, 2, 7473, 7474, 7, 86, 2, 2, 7474, 7475, 7, 84, 2, 2, 7475, 7476, 7, 91, 2, 2, 7476, 7477, 7, 97, 2, 2, 7477, 7478, 7, 69, 2, 2, 7478, 7479, 7, 81, 2, 2, 7479, 7480, 7, 87, 2, 2, 7480, 7481, 7, 80, 2, 2, 7481, 7482, 7, 86, 2, 2, 7482, 1234, 3, 2, 2, 2, 7483, 7484, 7, 85, 2, 2, 7484, 7485, 7, 81, 2, 2, 7485, 7486, 7, 87, 2, 2, 7486, 7487, 7, 84, 2, 2, 7487, 7488, 7, 69, 2, 2, 7488, 7489, 7, 71, 2, 2, 7489, 7490, 7, 97, 2, 2, 7490, 7491, 7, 69, 2, 2, 7491, 7492, 7, 81, 2, 2, 7492, 7493, 7, 80, 2, 2, 7493, 7494, 7, 80, 2, 2, 7494, 7495, 7, 71, 2, 2, 7495, 7496, 7, 69, 2, 2, 7496, 7497, 7, 86, 2, 2, 7497, 7498, 7, 75, 2, 2, 7498, 7499, 7, 81, 2, 2, 7499, 7500, 7, 80, 2, 2, 7500, 7501, 7, 97, 2, 2, 7501, 7502, 7, 67, 2, 2, 7502, 7503, 7, 87, 2, 2, 7503, 7504, 7, 86, 2, 2, 7504, 7505, 7, 81, 2, 2, 7505, 7506, 7, 97, 2, 2, 7506, 7507, 7, 72, 2, 2, 7507, 7508, 7, 67, 2, 2, 7508, 7509, 7, 75, 2, 2, 7509, 7510, 7, 78, 2, 2, 7510, 7511, 7, 81, 2, 2, 7511, 7512, 7, 88, 2, 2, 7512, 7513, 7, 71, 2, 2, 7513, 7514, 7, 84, 2, 2, 7514, 1236, 3, 2, 2, 2, 7515, 7516, 7, 85, 2, 2, 7516, 7517, 7, 81, 2, 2, 7517, 7518, 7, 87, 2, 2, 7518, 7519, 7, 84, 2, 2, 7519, 7520, 7, 69, 2, 2, 7520, 7521, 7, 71, 2, 2, 7521, 7522, 7, 97, 2, 2, 7522, 7523, 7, 70, 2, 2, 7523, 7524, 7, 71, 2, 2, 7524, 7525, 7, 78, 2, 2, 7525, 7526, 7, 67, 2, 2, 7526, 7527, 7, 91, 2, 2, 7527, 1238, 3, 2, 2, 2, 7528, 7529, 7, 85, 2, 2, 7529, 7530, 7, 81, 2, 2, 7530, 7531, 7, 87, 2, 2, 7531, 7532, 7, 84, 2, 2, 7532, 7533, 7, 69, 2, 2, 7533, 7534, 7, 71, 2, 2, 7534, 7535, 7, 97, 2, 2, 7535, 7536, 7, 69, 2, 2, 7536, 7537, 7, 81, 2, 2, 7537, 7538, 7, 79, 2, 2, 7538, 7539, 7, 82, 2, 2, 7539, 7540, 7, 84, 2, 2, 7540, 7541, 7, 71, 2, 2, 7541, 7542, 7, 85, 2, 2, 7542, 7543, 7, 85, 2, 2, 7543, 7544, 7, 75, 2, 2, 7544, 7545, 7, 81, 2, 2, 7545, 7546, 7, 80, 2, 2, 7546, 7547, 7, 97, 2, 2, 7547, 7548, 7, 67, 2, 2, 7548, 7549, 7, 78, 2, 2, 7549, 7550, 7, 73, 2, 2, 7550, 7551, 7, 81, 2, 2, 7551, 7552, 7, 84, 2, 2, 7552, 7553, 7, 75, 2, 2, 7553, 7554, 7, 86, 2, 2, 7554, 7555, 7, 74, 2, 2, 7555, 7556, 7, 79, 2, 2, 7556, 7557, 7, 85, 2, 2, 7557, 1240, 3, 2, 2, 2, 7558, 7559, 7, 85, 2, 2, 7559, 7560, 7, 81, 2, 2, 7560, 7561, 7, 87, 2, 2, 7561, 7562, 7, 84, 2, 2, 7562, 7563, 7, 69, 2, 2, 7563, 7564, 7, 71, 2, 2, 7564, 7565, 7, 97, 2, 2, 7565, 7566, 7, 92, 2, 2, 7566, 7567, 7, 85, 2, 2, 7567, 7568, 7, 86, 2, 2, 7568, 7569, 7, 70, 2, 2, 7569, 7570, 7, 97, 2, 2, 7570, 7571, 7, 69, 2, 2, 7571, 7572, 7, 81, 2, 2, 7572, 7573, 7, 79, 2, 2, 7573, 7574, 7, 82, 2, 2, 7574, 7575, 7, 84, 2, 2, 7575, 7576, 7, 71, 2, 2, 7576, 7577, 7, 85, 2, 2, 7577, 7578, 7, 85, 2, 2, 7578, 7579, 7, 75, 2, 2, 7579, 7580, 7, 81, 2, 2, 7580, 7581, 7, 80, 2, 2, 7581, 7582, 7, 97, 2, 2, 7582, 7583, 7, 78, 2, 2, 7583, 7584, 7, 71, 2, 2, 7584, 7585, 7, 88, 2, 2, 7585, 7586, 7, 71, 2, 2, 7586, 7587, 7, 78, 2, 2, 7587, 1242, 3, 2, 2, 2, 7588, 7589, 7, 85, 2, 2, 7589, 7590, 7, 81, 2, 2, 7590, 7591, 7, 87, 2, 2, 7591, 7592, 7, 84, 2, 2, 7592, 7593, 7, 69, 2, 2, 7593, 7594, 7, 71, 2, 2, 7594, 7595, 7, 97, 2, 2, 7595, 7596, 7, 85, 2, 2, 7596, 7597, 7, 85, 2, 2, 7597, 7598, 7, 78, 2, 2, 7598, 1244, 3, 2, 2, 2, 7599, 7600, 7, 85, 2, 2, 7600, 7601, 7, 81, 2, 2, 7601, 7602, 7, 87, 2, 2, 7602, 7603, 7, 84, 2, 2, 7603, 7604, 7, 69, 2, 2, 7604, 7605, 7, 71, 2, 2, 7605, 7606, 7, 97, 2, 2, 7606, 7607, 7, 85, 2, 2, 7607, 7608, 7, 85, 2, 2, 7608, 7609, 7, 78, 2, 2, 7609, 7610, 7, 97, 2, 2, 7610, 7611, 7, 69, 2, 2, 7611, 7612, 7, 67, 2, 2, 7612, 1246, 3, 2, 2, 2, 7613, 7614, 7, 85, 2, 2, 7614, 7615, 7, 81, 2, 2, 7615, 7616, 7, 87, 2, 2, 7616, 7617, 7, 84, 2, 2, 7617, 7618, 7, 69, 2, 2, 7618, 7619, 7, 71, 2, 2, 7619, 7620, 7, 97, 2, 2, 7620, 7621, 7, 85, 2, 2, 7621, 7622, 7, 85, 2, 2, 7622, 7623, 7, 78, 2, 2, 7623, 7624, 7, 97, 2, 2, 7624, 7625, 7, 69, 2, 2, 7625, 7626, 7, 67, 2, 2, 7626, 7627, 7, 82, 2, 2, 7627, 7628, 7, 67, 2, 2, 7628, 7629, 7, 86, 2, 2, 7629, 7630, 7, 74, 2, 2, 7630, 1248, 3, 2, 2, 2, 7631, 7632, 7, 85, 2, 2, 7632, 7633, 7, 81, 2, 2, 7633, 7634, 7, 87, 2, 2, 7634, 7635, 7, 84, 2, 2, 7635, 7636, 7, 69, 2, 2, 7636, 7637, 7, 71, 2, 2, 7637, 7638, 7, 97, 2, 2, 7638, 7639, 7, 85, 2, 2, 7639, 7640, 7, 85, 2, 2, 7640, 7641, 7, 78, 2, 2, 7641, 7642, 7, 97, 2, 2, 7642, 7643, 7, 69, 2, 2, 7643, 7644, 7, 71, 2, 2, 7644, 7645, 7, 84, 2, 2, 7645, 7646, 7, 86, 2, 2, 7646, 1250, 3, 2, 2, 2, 7647, 7648, 7, 85, 2, 2, 7648, 7649, 7, 81, 2, 2, 7649, 7650, 7, 87, 2, 2, 7650, 7651, 7, 84, 2, 2, 7651, 7652, 7, 69, 2, 2, 7652, 7653, 7, 71, 2, 2, 7653, 7654, 7, 97, 2, 2, 7654, 7655, 7, 85, 2, 2, 7655, 7656, 7, 85, 2, 2, 7656, 7657, 7, 78, 2, 2, 7657, 7658, 7, 97, 2, 2, 7658, 7659, 7, 69, 2, 2, 7659, 7660, 7, 84, 2, 2, 7660, 7661, 7, 78, 2, 2, 7661, 1252, 3, 2, 2, 2, 7662, 7663, 7, 85, 2, 2, 7663, 7664, 7, 81, 2, 2, 7664, 7665, 7, 87, 2, 2, 7665, 7666, 7, 84, 2, 2, 7666, 7667, 7, 69, 2, 2, 7667, 7668, 7, 71, 2, 2, 7668, 7669, 7, 97, 2, 2, 7669, 7670, 7, 85, 2, 2, 7670, 7671, 7, 85, 2, 2, 7671, 7672, 7, 78, 2, 2, 7672, 7673, 7, 97, 2, 2, 7673, 7674, 7, 69, 2, 2, 7674, 7675, 7, 84, 2, 2, 7675, 7676, 7, 78, 2, 2, 7676, 7677, 7, 82, 2, 2, 7677, 7678, 7, 67, 2, 2, 7678, 7679, 7, 86, 2, 2, 7679, 7680, 7, 74, 2, 2, 7680, 1254, 3, 2, 2, 2, 7681, 7682, 7, 85, 2, 2, 7682, 7683, 7, 81, 2, 2, 7683, 7684, 7, 87, 2, 2, 7684, 7685, 7, 84, 2, 2, 7685, 7686, 7, 69, 2, 2, 7686, 7687, 7, 71, 2, 2, 7687, 7688, 7, 97, 2, 2, 7688, 7689, 7, 85, 2, 2, 7689, 7690, 7, 85, 2, 2, 7690, 7691, 7, 78, 2, 2, 7691, 7692, 7, 97, 2, 2, 7692, 7693, 7, 77, 2, 2, 7693, 7694, 7, 71, 2, 2, 7694, 7695, 7, 91, 2, 2, 7695, 1256, 3, 2, 2, 2, 7696, 7697, 7, 85, 2, 2, 7697, 7698, 7, 81, 2, 2, 7698, 7699, 7, 87, 2, 2, 7699, 7700, 7, 84, 2, 2, 7700, 7701, 7, 69, 2, 2, 7701, 7702, 7, 71, 2, 2, 7702, 7703, 7, 97, 2, 2, 7703, 7704, 7, 85, 2, 2, 7704, 7705, 7, 85, 2, 2, 7705, 7706, 7, 78, 2, 2, 7706, 7707, 7, 97, 2, 2, 7707, 7708, 7, 69, 2, 2, 7708, 7709, 7, 75, 2, 2, 7709, 7710, 7, 82, 2, 2, 7710, 7711, 7, 74, 2, 2, 7711, 7712, 7, 71, 2, 2, 7712, 7713, 7, 84, 2, 2, 7713, 1258, 3, 2, 2, 2, 7714, 7715, 7, 85, 2, 2, 7715, 7716, 7, 81, 2, 2, 7716, 7717, 7, 87, 2, 2, 7717, 7718, 7, 84, 2, 2, 7718, 7719, 7, 69, 2, 2, 7719, 7720, 7, 71, 2, 2, 7720, 7721, 7, 97, 2, 2, 7721, 7722, 7, 85, 2, 2, 7722, 7723, 7, 85, 2, 2, 7723, 7724, 7, 78, 2, 2, 7724, 7725, 7, 97, 2, 2, 7725, 7726, 7, 88, 2, 2, 7726, 7727, 7, 71, 2, 2, 7727, 7728, 7, 84, 2, 2, 7728, 7729, 7, 75, 2, 2, 7729, 7730, 7, 72, 2, 2, 7730, 7731, 7, 91, 2, 2, 7731, 7732, 7, 97, 2, 2, 7732, 7733, 7, 85, 2, 2, 7733, 7734, 7, 71, 2, 2, 7734, 7735, 7, 84, 2, 2, 7735, 7736, 7, 88, 2, 2, 7736, 7737, 7, 71, 2, 2, 7737, 7738, 7, 84, 2, 2, 7738, 7739, 7, 97, 2, 2, 7739, 7740, 7, 69, 2, 2, 7740, 7741, 7, 71, 2, 2, 7741, 7742, 7, 84, 2, 2, 7742, 7743, 7, 86, 2, 2, 7743, 1260, 3, 2, 2, 2, 7744, 7745, 7, 85, 2, 2, 7745, 7746, 7, 81, 2, 2, 7746, 7747, 7, 87, 2, 2, 7747, 7748, 7, 84, 2, 2, 7748, 7749, 7, 69, 2, 2, 7749, 7750, 7, 71, 2, 2, 7750, 7751, 7, 97, 2, 2, 7751, 7752, 7, 86, 2, 2, 7752, 7753, 7, 78, 2, 2, 7753, 7754, 7, 85, 2, 2, 7754, 7755, 7, 97, 2, 2, 7755, 7756, 7, 88, 2, 2, 7756, 7757, 7, 71, 2, 2, 7757, 7758, 7, 84, 2, 2, 7758, 7759, 7, 85, 2, 2, 7759, 7760, 7, 75, 2, 2, 7760, 7761, 7, 81, 2, 2, 7761, 7762, 7, 80, 2, 2, 7762, 1262, 3, 2, 2, 2, 7763, 7764, 7, 85, 2, 2, 7764, 7765, 7, 81, 2, 2, 7765, 7766, 7, 87, 2, 2, 7766, 7767, 7, 84, 2, 2, 7767, 7768, 7, 69, 2, 2, 7768, 7769, 7, 71, 2, 2, 7769, 7770, 7, 97, 2, 2, 7770, 7771, 7, 86, 2, 2, 7771, 7772, 7, 78, 2, 2, 7772, 7773, 7, 85, 2, 2, 7773, 7774, 7, 97, 2, 2, 7774, 7775, 7, 69, 2, 2, 7775, 7776, 7, 75, 2, 2, 7776, 7777, 7, 82, 2, 2, 7777, 7778, 7, 74, 2, 2, 7778, 7779, 7, 71, 2, 2, 7779, 7780, 7, 84, 2, 2, 7780, 7781, 7, 85, 2, 2, 7781, 7782, 7, 87, 2, 2, 7782, 7783, 7, 75, 2, 2, 7783, 7784, 7, 86, 2, 2, 7784, 7785, 7, 71, 2, 2, 7785, 7786, 7, 85, 2, 2, 7786, 1264, 3, 2, 2, 2, 7787, 7788, 7, 85, 2, 2, 7788, 7789, 7, 81, 2, 2, 7789, 7790, 7, 87, 2, 2, 7790, 7791, 7, 84, 2, 2, 7791, 7792, 7, 69, 2, 2, 7792, 7793, 7, 71, 2, 2, 7793, 7794, 7, 97, 2, 2, 7794, 7795, 7, 82, 2, 2, 7795, 7796, 7, 87, 2, 2, 7796, 7797, 7, 68, 2, 2, 7797, 7798, 7, 78, 2, 2, 7798, 7799, 7, 75, 2, 2, 7799, 7800, 7, 69, 2, 2, 7800, 7801, 7, 97, 2, 2, 7801, 7802, 7, 77, 2, 2, 7802, 7803, 7, 71, 2, 2, 7803, 7804, 7, 91, 2, 2, 7804, 7805, 7, 97, 2, 2, 7805, 7806, 7, 82, 2, 2, 7806, 7807, 7, 67, 2, 2, 7807, 7808, 7, 86, 2, 2, 7808, 7809, 7, 74, 2, 2, 7809, 1266, 3, 2, 2, 2, 7810, 7811, 7, 85, 2, 2, 7811, 7812, 7, 83, 2, 2, 7812, 7813, 7, 78, 2, 2, 7813, 7814, 7, 97, 2, 2, 7814, 7815, 7, 67, 2, 2, 7815, 7816, 7, 72, 2, 2, 7816, 7817, 7, 86, 2, 2, 7817, 7818, 7, 71, 2, 2, 7818, 7819, 7, 84, 2, 2, 7819, 7820, 7, 97, 2, 2, 7820, 7821, 7, 73, 2, 2, 7821, 7822, 7, 86, 2, 2, 7822, 7823, 7, 75, 2, 2, 7823, 7824, 7, 70, 2, 2, 7824, 7825, 7, 85, 2, 2, 7825, 1268, 3, 2, 2, 2, 7826, 7827, 7, 85, 2, 2, 7827, 7828, 7, 83, 2, 2, 7828, 7829, 7, 78, 2, 2, 7829, 7830, 7, 97, 2, 2, 7830, 7831, 7, 67, 2, 2, 7831, 7832, 7, 72, 2, 2, 7832, 7833, 7, 86, 2, 2, 7833, 7834, 7, 71, 2, 2, 7834, 7835, 7, 84, 2, 2, 7835, 7836, 7, 97, 2, 2, 7836, 7837, 7, 79, 2, 2, 7837, 7838, 7, 86, 2, 2, 7838, 7839, 7, 85, 2, 2, 7839, 7840, 7, 97, 2, 2, 7840, 7841, 7, 73, 2, 2, 7841, 7842, 7, 67, 2, 2, 7842, 7843, 7, 82, 2, 2, 7843, 7844, 7, 85, 2, 2, 7844, 1270, 3, 2, 2, 2, 7845, 7846, 7, 85, 2, 2, 7846, 7847, 7, 83, 2, 2, 7847, 7848, 7, 78, 2, 2, 7848, 7849, 7, 97, 2, 2, 7849, 7850, 7, 68, 2, 2, 7850, 7851, 7, 71, 2, 2, 7851, 7852, 7, 72, 2, 2, 7852, 7853, 7, 81, 2, 2, 7853, 7854, 7, 84, 2, 2, 7854, 7855, 7, 71, 2, 2, 7855, 7856, 7, 97, 2, 2, 7856, 7857, 7, 73, 2, 2, 7857, 7858, 7, 86, 2, 2, 7858, 7859, 7, 75, 2, 2, 7859, 7860, 7, 70, 2, 2, 7860, 7861, 7, 85, 2, 2, 7861, 1272, 3, 2, 2, 2, 7862, 7863, 7, 85, 2, 2, 7863, 7864, 7, 83, 2, 2, 7864, 7865, 7, 78, 2, 2, 7865, 7866, 7, 97, 2, 2, 7866, 7867, 7, 68, 2, 2, 7867, 7868, 7, 87, 2, 2, 7868, 7869, 7, 72, 2, 2, 7869, 7870, 7, 72, 2, 2, 7870, 7871, 7, 71, 2, 2, 7871, 7872, 7, 84, 2, 2, 7872, 7873, 7, 97, 2, 2, 7873, 7874, 7, 84, 2, 2, 7874, 7875, 7, 71, 2, 2, 7875, 7876, 7, 85, 2, 2, 7876, 7877, 7, 87, 2, 2, 7877, 7878, 7, 78, 2, 2, 7878, 7879, 7, 86, 2, 2, 7879, 1274, 3, 2, 2, 2, 7880, 7881, 7, 85, 2, 2, 7881, 7882, 7, 83, 2, 2, 7882, 7883, 7, 78, 2, 2, 7883, 7884, 7, 97, 2, 2, 7884, 7885, 7, 69, 2, 2, 7885, 7886, 7, 67, 2, 2, 7886, 7887, 7, 69, 2, 2, 7887, 7888, 7, 74, 2, 2, 7888, 7889, 7, 71, 2, 2, 7889, 1276, 3, 2, 2, 2, 7890, 7891, 7, 85, 2, 2, 7891, 7892, 7, 83, 2, 2, 7892, 7893, 7, 78, 2, 2, 7893, 7894, 7, 97, 2, 2, 7894, 7895, 7, 80, 2, 2, 7895, 7896, 7, 81, 2, 2, 7896, 7897, 7, 97, 2, 2, 7897, 7898, 7, 69, 2, 2, 7898, 7899, 7, 67, 2, 2, 7899, 7900, 7, 69, 2, 2, 7900, 7901, 7, 74, 2, 2, 7901, 7902, 7, 71, 2, 2, 7902, 1278, 3, 2, 2, 2, 7903, 7904, 7, 85, 2, 2, 7904, 7905, 7, 83, 2, 2, 7905, 7906, 7, 78, 2, 2, 7906, 7907, 7, 97, 2, 2, 7907, 7908, 7, 86, 2, 2, 7908, 7909, 7, 74, 2, 2, 7909, 7910, 7, 84, 2, 2, 7910, 7911, 7, 71, 2, 2, 7911, 7912, 7, 67, 2, 2, 7912, 7913, 7, 70, 2, 2, 7913, 1280, 3, 2, 2, 2, 7914, 7915, 7, 85, 2, 2, 7915, 7916, 7, 86, 2, 2, 7916, 7917, 7, 67, 2, 2, 7917, 7918, 7, 84, 2, 2, 7918, 7919, 7, 86, 2, 2, 7919, 1282, 3, 2, 2, 2, 7920, 7921, 7, 85, 2, 2, 7921, 7922, 7, 86, 2, 2, 7922, 7923, 7, 67, 2, 2, 7923, 7924, 7, 84, 2, 2, 7924, 7925, 7, 86, 2, 2, 7925, 7926, 7, 85, 2, 2, 7926, 1284, 3, 2, 2, 2, 7927, 7928, 7, 85, 2, 2, 7928, 7929, 7, 86, 2, 2, 7929, 7930, 7, 67, 2, 2, 7930, 7931, 7, 86, 2, 2, 7931, 7932, 7, 85, 2, 2, 7932, 7933, 7, 97, 2, 2, 7933, 7934, 7, 67, 2, 2, 7934, 7935, 7, 87, 2, 2, 7935, 7936, 7, 86, 2, 2, 7936, 7937, 7, 81, 2, 2, 7937, 7938, 7, 97, 2, 2, 7938, 7939, 7, 84, 2, 2, 7939, 7940, 7, 71, 2, 2, 7940, 7941, 7, 69, 2, 2, 7941, 7942, 7, 67, 2, 2, 7942, 7943, 7, 78, 2, 2, 7943, 7944, 7, 69, 2, 2, 7944, 1286, 3, 2, 2, 2, 7945, 7946, 7, 85, 2, 2, 7946, 7947, 7, 86, 2, 2, 7947, 7948, 7, 67, 2, 2, 7948, 7949, 7, 86, 2, 2, 7949, 7950, 7, 85, 2, 2, 7950, 7951, 7, 97, 2, 2, 7951, 7952, 7, 82, 2, 2, 7952, 7953, 7, 71, 2, 2, 7953, 7954, 7, 84, 2, 2, 7954, 7955, 7, 85, 2, 2, 7955, 7956, 7, 75, 2, 2, 7956, 7957, 7, 85, 2, 2, 7957, 7958, 7, 86, 2, 2, 7958, 7959, 7, 71, 2, 2, 7959, 7960, 7, 80, 2, 2, 7960, 7961, 7, 86, 2, 2, 7961, 1288, 3, 2, 2, 2, 7962, 7963, 7, 85, 2, 2, 7963, 7964, 7, 86, 2, 2, 7964, 7965, 7, 67, 2, 2, 7965, 7966, 7, 86, 2, 2, 7966, 7967, 7, 85, 2, 2, 7967, 7968, 7, 97, 2, 2, 7968, 7969, 7, 85, 2, 2, 7969, 7970, 7, 67, 2, 2, 7970, 7971, 7, 79, 2, 2, 7971, 7972, 7, 82, 2, 2, 7972, 7973, 7, 78, 2, 2, 7973, 7974, 7, 71, 2, 2, 7974, 7975, 7, 97, 2, 2, 7975, 7976, 7, 82, 2, 2, 7976, 7977, 7, 67, 2, 2, 7977, 7978, 7, 73, 2, 2, 7978, 7979, 7, 71, 2, 2, 7979, 7980, 7, 85, 2, 2, 7980, 1290, 3, 2, 2, 2, 7981, 7982, 7, 85, 2, 2, 7982, 7983, 7, 86, 2, 2, 7983, 7984, 7, 67, 2, 2, 7984, 7985, 7, 86, 2, 2, 7985, 7986, 7, 87, 2, 2, 7986, 7987, 7, 85, 2, 2, 7987, 1292, 3, 2, 2, 2, 7988, 7989, 7, 85, 2, 2, 7989, 7990, 7, 86, 2, 2, 7990, 7991, 7, 81, 2, 2, 7991, 7992, 7, 82, 2, 2, 7992, 1294, 3, 2, 2, 2, 7993, 7994, 7, 85, 2, 2, 7994, 7995, 7, 86, 2, 2, 7995, 7996, 7, 81, 2, 2, 7996, 7997, 7, 84, 2, 2, 7997, 7998, 7, 67, 2, 2, 7998, 7999, 7, 73, 2, 2, 7999, 8000, 7, 71, 2, 2, 8000, 1296, 3, 2, 2, 2, 8001, 8002, 7, 85, 2, 2, 8002, 8003, 7, 86, 2, 2, 8003, 8004, 7, 81, 2, 2, 8004, 8005, 7, 84, 2, 2, 8005, 8006, 7, 71, 2, 2, 8006, 8007, 7, 70, 2, 2, 8007, 1298, 3, 2, 2, 2, 8008, 8009, 7, 85, 2, 2, 8009, 8010, 7, 86, 2, 2, 8010, 8011, 7, 84, 2, 2, 8011, 8012, 7, 75, 2, 2, 8012, 8013, 7, 80, 2, 2, 8013, 8014, 7, 73, 2, 2, 8014, 1300, 3, 2, 2, 2, 8015, 8016, 7, 85, 2, 2, 8016, 8017, 7, 87, 2, 2, 8017, 8018, 7, 68, 2, 2, 8018, 8019, 7, 69, 2, 2, 8019, 8020, 7, 78, 2, 2, 8020, 8021, 7, 67, 2, 2, 8021, 8022, 7, 85, 2, 2, 8022, 8023, 7, 85, 2, 2, 8023, 8024, 7, 97, 2, 2, 8024, 8025, 7, 81, 2, 2, 8025, 8026, 7, 84, 2, 2, 8026, 8027, 7, 75, 2, 2, 8027, 8028, 7, 73, 2, 2, 8028, 8029, 7, 75, 2, 2, 8029, 8030, 7, 80, 2, 2, 8030, 1302, 3, 2, 2, 2, 8031, 8032, 7, 85, 2, 2, 8032, 8033, 7, 87, 2, 2, 8033, 8034, 7, 68, 2, 2, 8034, 8035, 7, 76, 2, 2, 8035, 8036, 7, 71, 2, 2, 8036, 8037, 7, 69, 2, 2, 8037, 8038, 7, 86, 2, 2, 8038, 1304, 3, 2, 2, 2, 8039, 8040, 7, 85, 2, 2, 8040, 8041, 7, 87, 2, 2, 8041, 8042, 7, 68, 2, 2, 8042, 8043, 7, 82, 2, 2, 8043, 8044, 7, 67, 2, 2, 8044, 8045, 7, 84, 2, 2, 8045, 8046, 7, 86, 2, 2, 8046, 8047, 7, 75, 2, 2, 8047, 8048, 7, 86, 2, 2, 8048, 8049, 7, 75, 2, 2, 8049, 8050, 7, 81, 2, 2, 8050, 8051, 7, 80, 2, 2, 8051, 1306, 3, 2, 2, 2, 8052, 8053, 7, 85, 2, 2, 8053, 8054, 7, 87, 2, 2, 8054, 8055, 7, 68, 2, 2, 8055, 8056, 7, 82, 2, 2, 8056, 8057, 7, 67, 2, 2, 8057, 8058, 7, 84, 2, 2, 8058, 8059, 7, 86, 2, 2, 8059, 8060, 7, 75, 2, 2, 8060, 8061, 7, 86, 2, 2, 8061, 8062, 7, 75, 2, 2, 8062, 8063, 7, 81, 2, 2, 8063, 8064, 7, 80, 2, 2, 8064, 8065, 7, 85, 2, 2, 8065, 1308, 3, 2, 2, 2, 8066, 8067, 7, 85, 2, 2, 8067, 8068, 7, 87, 2, 2, 8068, 8069, 7, 85, 2, 2, 8069, 8070, 7, 82, 2, 2, 8070, 8071, 7, 71, 2, 2, 8071, 8072, 7, 80, 2, 2, 8072, 8073, 7, 70, 2, 2, 8073, 1310, 3, 2, 2, 2, 8074, 8075, 7, 85, 2, 2, 8075, 8076, 7, 89, 2, 2, 8076, 8077, 7, 67, 2, 2, 8077, 8078, 7, 82, 2, 2, 8078, 8079, 7, 85, 2, 2, 8079, 1312, 3, 2, 2, 2, 8080, 8081, 7, 85, 2, 2, 8081, 8082, 7, 89, 2, 2, 8082, 8083, 7, 75, 2, 2, 8083, 8084, 7, 86, 2, 2, 8084, 8085, 7, 69, 2, 2, 8085, 8086, 7, 74, 2, 2, 8086, 8087, 7, 71, 2, 2, 8087, 8088, 7, 85, 2, 2, 8088, 1314, 3, 2, 2, 2, 8089, 8090, 7, 86, 2, 2, 8090, 8091, 7, 67, 2, 2, 8091, 8092, 7, 68, 2, 2, 8092, 8093, 7, 78, 2, 2, 8093, 8094, 7, 71, 2, 2, 8094, 8095, 7, 97, 2, 2, 8095, 8096, 7, 80, 2, 2, 8096, 8097, 7, 67, 2, 2, 8097, 8098, 7, 79, 2, 2, 8098, 8099, 7, 71, 2, 2, 8099, 1316, 3, 2, 2, 2, 8100, 8101, 7, 86, 2, 2, 8101, 8102, 7, 67, 2, 2, 8102, 8103, 7, 68, 2, 2, 8103, 8104, 7, 78, 2, 2, 8104, 8105, 7, 71, 2, 2, 8105, 8106, 7, 85, 2, 2, 8106, 8107, 7, 82, 2, 2, 8107, 8108, 7, 67, 2, 2, 8108, 8109, 7, 69, 2, 2, 8109, 8110, 7, 71, 2, 2, 8110, 1318, 3, 2, 2, 2, 8111, 8112, 7, 86, 2, 2, 8112, 8113, 7, 67, 2, 2, 8113, 8114, 7, 68, 2, 2, 8114, 8115, 7, 78, 2, 2, 8115, 8116, 7, 71, 2, 2, 8116, 8117, 7, 97, 2, 2, 8117, 8118, 7, 86, 2, 2, 8118, 8119, 7, 91, 2, 2, 8119, 8120, 7, 82, 2, 2, 8120, 8121, 7, 71, 2, 2, 8121, 1320, 3, 2, 2, 2, 8122, 8123, 7, 86, 2, 2, 8123, 8124, 7, 71, 2, 2, 8124, 8125, 7, 79, 2, 2, 8125, 8126, 7, 82, 2, 2, 8126, 8127, 7, 81, 2, 2, 8127, 8128, 7, 84, 2, 2, 8128, 8129, 7, 67, 2, 2, 8129, 8130, 7, 84, 2, 2, 8130, 8131, 7, 91, 2, 2, 8131, 1322, 3, 2, 2, 2, 8132, 8133, 7, 86, 2, 2, 8133, 8134, 7, 71, 2, 2, 8134, 8135, 7, 79, 2, 2, 8135, 8136, 7, 82, 2, 2, 8136, 8137, 7, 86, 2, 2, 8137, 8138, 7, 67, 2, 2, 8138, 8139, 7, 68, 2, 2, 8139, 8140, 7, 78, 2, 2, 8140, 8141, 7, 71, 2, 2, 8141, 1324, 3, 2, 2, 2, 8142, 8143, 7, 86, 2, 2, 8143, 8144, 7, 74, 2, 2, 8144, 8145, 7, 67, 2, 2, 8145, 8146, 7, 80, 2, 2, 8146, 1326, 3, 2, 2, 2, 8147, 8148, 7, 86, 2, 2, 8148, 8149, 7, 84, 2, 2, 8149, 8150, 7, 67, 2, 2, 8150, 8151, 7, 70, 2, 2, 8151, 8152, 7, 75, 2, 2, 8152, 8153, 7, 86, 2, 2, 8153, 8154, 7, 75, 2, 2, 8154, 8155, 7, 81, 2, 2, 8155, 8156, 7, 80, 2, 2, 8156, 8157, 7, 67, 2, 2, 8157, 8158, 7, 78, 2, 2, 8158, 1328, 3, 2, 2, 2, 8159, 8160, 7, 86, 2, 2, 8160, 8161, 7, 84, 2, 2, 8161, 8162, 7, 67, 2, 2, 8162, 8163, 7, 80, 2, 2, 8163, 8164, 7, 85, 2, 2, 8164, 8165, 7, 67, 2, 2, 8165, 8166, 7, 69, 2, 2, 8166, 8167, 7, 86, 2, 2, 8167, 8168, 7, 75, 2, 2, 8168, 8169, 7, 81, 2, 2, 8169, 8170, 7, 80, 2, 2, 8170, 1330, 3, 2, 2, 2, 8171, 8172, 7, 86, 2, 2, 8172, 8173, 7, 84, 2, 2, 8173, 8174, 7, 67, 2, 2, 8174, 8175, 7, 80, 2, 2, 8175, 8176, 7, 85, 2, 2, 8176, 8177, 7, 67, 2, 2, 8177, 8178, 7, 69, 2, 2, 8178, 8179, 7, 86, 2, 2, 8179, 8180, 7, 75, 2, 2, 8180, 8181, 7, 81, 2, 2, 8181, 8182, 7, 80, 2, 2, 8182, 8183, 7, 67, 2, 2, 8183, 8184, 7, 78, 2, 2, 8184, 1332, 3, 2, 2, 2, 8185, 8186, 7, 86, 2, 2, 8186, 8187, 7, 84, 2, 2, 8187, 8188, 7, 71, 2, 2, 8188, 8189, 7, 71, 2, 2, 8189, 1334, 3, 2, 2, 2, 8190, 8191, 7, 86, 2, 2, 8191, 8192, 7, 84, 2, 2, 8192, 8193, 7, 75, 2, 2, 8193, 8194, 7, 73, 2, 2, 8194, 8195, 7, 73, 2, 2, 8195, 8196, 7, 71, 2, 2, 8196, 8197, 7, 84, 2, 2, 8197, 8198, 7, 85, 2, 2, 8198, 1336, 3, 2, 2, 2, 8199, 8200, 7, 86, 2, 2, 8200, 8201, 7, 84, 2, 2, 8201, 8202, 7, 87, 2, 2, 8202, 8203, 7, 80, 2, 2, 8203, 8204, 7, 69, 2, 2, 8204, 8205, 7, 67, 2, 2, 8205, 8206, 7, 86, 2, 2, 8206, 8207, 7, 71, 2, 2, 8207, 1338, 3, 2, 2, 2, 8208, 8209, 7, 87, 2, 2, 8209, 8210, 7, 80, 2, 2, 8210, 8211, 7, 68, 2, 2, 8211, 8212, 7, 81, 2, 2, 8212, 8213, 7, 87, 2, 2, 8213, 8214, 7, 80, 2, 2, 8214, 8215, 7, 70, 2, 2, 8215, 8216, 7, 71, 2, 2, 8216, 8217, 7, 70, 2, 2, 8217, 1340, 3, 2, 2, 2, 8218, 8219, 7, 87, 2, 2, 8219, 8220, 7, 80, 2, 2, 8220, 8221, 7, 70, 2, 2, 8221, 8222, 7, 71, 2, 2, 8222, 8223, 7, 72, 2, 2, 8223, 8224, 7, 75, 2, 2, 8224, 8225, 7, 80, 2, 2, 8225, 8226, 7, 71, 2, 2, 8226, 8227, 7, 70, 2, 2, 8227, 1342, 3, 2, 2, 2, 8228, 8229, 7, 87, 2, 2, 8229, 8230, 7, 80, 2, 2, 8230, 8231, 7, 70, 2, 2, 8231, 8232, 7, 81, 2, 2, 8232, 8233, 7, 72, 2, 2, 8233, 8234, 7, 75, 2, 2, 8234, 8235, 7, 78, 2, 2, 8235, 8236, 7, 71, 2, 2, 8236, 1344, 3, 2, 2, 2, 8237, 8238, 7, 87, 2, 2, 8238, 8239, 7, 80, 2, 2, 8239, 8240, 7, 70, 2, 2, 8240, 8241, 7, 81, 2, 2, 8241, 8242, 7, 97, 2, 2, 8242, 8243, 7, 68, 2, 2, 8243, 8244, 7, 87, 2, 2, 8244, 8245, 7, 72, 2, 2, 8245, 8246, 7, 72, 2, 2, 8246, 8247, 7, 71, 2, 2, 8247, 8248, 7, 84, 2, 2, 8248, 8249, 7, 97, 2, 2, 8249, 8250, 7, 85, 2, 2, 8250, 8251, 7, 75, 2, 2, 8251, 8252, 7, 92, 2, 2, 8252, 8253, 7, 71, 2, 2, 8253, 1346, 3, 2, 2, 2, 8254, 8255, 7, 87, 2, 2, 8255, 8256, 7, 80, 2, 2, 8256, 8257, 7, 75, 2, 2, 8257, 8258, 7, 80, 2, 2, 8258, 8259, 7, 85, 2, 2, 8259, 8260, 7, 86, 2, 2, 8260, 8261, 7, 67, 2, 2, 8261, 8262, 7, 78, 2, 2, 8262, 8263, 7, 78, 2, 2, 8263, 1348, 3, 2, 2, 2, 8264, 8265, 7, 87, 2, 2, 8265, 8266, 7, 80, 2, 2, 8266, 8267, 7, 77, 2, 2, 8267, 8268, 7, 80, 2, 2, 8268, 8269, 7, 81, 2, 2, 8269, 8270, 7, 89, 2, 2, 8270, 8271, 7, 80, 2, 2, 8271, 1350, 3, 2, 2, 2, 8272, 8273, 7, 87, 2, 2, 8273, 8274, 7, 80, 2, 2, 8274, 8275, 7, 84, 2, 2, 8275, 8276, 7, 71, 2, 2, 8276, 8277, 7, 73, 2, 2, 8277, 8278, 7, 75, 2, 2, 8278, 8279, 7, 85, 2, 2, 8279, 8280, 7, 86, 2, 2, 8280, 8281, 7, 71, 2, 2, 8281, 8282, 7, 84, 2, 2, 8282, 1352, 3, 2, 2, 2, 8283, 8284, 7, 87, 2, 2, 8284, 8285, 7, 80, 2, 2, 8285, 8286, 7, 86, 2, 2, 8286, 8287, 7, 75, 2, 2, 8287, 8288, 7, 78, 2, 2, 8288, 1354, 3, 2, 2, 2, 8289, 8290, 7, 87, 2, 2, 8290, 8291, 7, 82, 2, 2, 8291, 8292, 7, 73, 2, 2, 8292, 8293, 7, 84, 2, 2, 8293, 8294, 7, 67, 2, 2, 8294, 8295, 7, 70, 2, 2, 8295, 8296, 7, 71, 2, 2, 8296, 1356, 3, 2, 2, 2, 8297, 8298, 7, 87, 2, 2, 8298, 8299, 7, 85, 2, 2, 8299, 8300, 7, 71, 2, 2, 8300, 8301, 7, 84, 2, 2, 8301, 1358, 3, 2, 2, 2, 8302, 8303, 7, 87, 2, 2, 8303, 8304, 7, 85, 2, 2, 8304, 8305, 7, 71, 2, 2, 8305, 8306, 7, 97, 2, 2, 8306, 8307, 7, 72, 2, 2, 8307, 8308, 7, 84, 2, 2, 8308, 8309, 7, 79, 2, 2, 8309, 1360, 3, 2, 2, 2, 8310, 8311, 7, 87, 2, 2, 8311, 8312, 7, 85, 2, 2, 8312, 8313, 7, 71, 2, 2, 8313, 8314, 7, 84, 2, 2, 8314, 8315, 7, 97, 2, 2, 8315, 8316, 7, 84, 2, 2, 8316, 8317, 7, 71, 2, 2, 8317, 8318, 7, 85, 2, 2, 8318, 8319, 7, 81, 2, 2, 8319, 8320, 7, 87, 2, 2, 8320, 8321, 7, 84, 2, 2, 8321, 8322, 7, 69, 2, 2, 8322, 8323, 7, 71, 2, 2, 8323, 8324, 7, 85, 2, 2, 8324, 1362, 3, 2, 2, 2, 8325, 8326, 7, 88, 2, 2, 8326, 8327, 7, 67, 2, 2, 8327, 8328, 7, 78, 2, 2, 8328, 8329, 7, 75, 2, 2, 8329, 8330, 7, 70, 2, 2, 8330, 8331, 7, 67, 2, 2, 8331, 8332, 7, 86, 2, 2, 8332, 8333, 7, 75, 2, 2, 8333, 8334, 7, 81, 2, 2, 8334, 8335, 7, 80, 2, 2, 8335, 1364, 3, 2, 2, 2, 8336, 8337, 7, 88, 2, 2, 8337, 8338, 7, 67, 2, 2, 8338, 8339, 7, 78, 2, 2, 8339, 8340, 7, 87, 2, 2, 8340, 8341, 7, 71, 2, 2, 8341, 1366, 3, 2, 2, 2, 8342, 8343, 7, 88, 2, 2, 8343, 8344, 7, 67, 2, 2, 8344, 8345, 7, 84, 2, 2, 8345, 8346, 7, 75, 2, 2, 8346, 8347, 7, 67, 2, 2, 8347, 8348, 7, 68, 2, 2, 8348, 8349, 7, 78, 2, 2, 8349, 8350, 7, 71, 2, 2, 8350, 8351, 7, 85, 2, 2, 8351, 1368, 3, 2, 2, 2, 8352, 8353, 7, 88, 2, 2, 8353, 8354, 7, 75, 2, 2, 8354, 8355, 7, 71, 2, 2, 8355, 8356, 7, 89, 2, 2, 8356, 1370, 3, 2, 2, 2, 8357, 8358, 7, 88, 2, 2, 8358, 8359, 7, 75, 2, 2, 8359, 8360, 7, 84, 2, 2, 8360, 8361, 7, 86, 2, 2, 8361, 8362, 7, 87, 2, 2, 8362, 8363, 7, 67, 2, 2, 8363, 8364, 7, 78, 2, 2, 8364, 1372, 3, 2, 2, 2, 8365, 8366, 7, 88, 2, 2, 8366, 8367, 7, 75, 2, 2, 8367, 8368, 7, 85, 2, 2, 8368, 8369, 7, 75, 2, 2, 8369, 8370, 7, 68, 2, 2, 8370, 8371, 7, 78, 2, 2, 8371, 8372, 7, 71, 2, 2, 8372, 1374, 3, 2, 2, 2, 8373, 8374, 7, 89, 2, 2, 8374, 8375, 7, 67, 2, 2, 8375, 8376, 7, 75, 2, 2, 8376, 8377, 7, 86, 2, 2, 8377, 1376, 3, 2, 2, 2, 8378, 8379, 7, 89, 2, 2, 8379, 8380, 7, 67, 2, 2, 8380, 8381, 7, 84, 2, 2, 8381, 8382, 7, 80, 2, 2, 8382, 8383, 7, 75, 2, 2, 8383, 8384, 7, 80, 2, 2, 8384, 8385, 7, 73, 2, 2, 8385, 8386, 7, 85, 2, 2, 8386, 1378, 3, 2, 2, 2, 8387, 8388, 7, 89, 2, 2, 8388, 8389, 7, 75, 2, 2, 8389, 8390, 7, 80, 2, 2, 8390, 8391, 7, 70, 2, 2, 8391, 8392, 7, 81, 2, 2, 8392, 8393, 7, 89, 2, 2, 8393, 1380, 3, 2, 2, 2, 8394, 8395, 7, 89, 2, 2, 8395, 8396, 7, 75, 2, 2, 8396, 8397, 7, 86, 2, 2, 8397, 8398, 7, 74, 2, 2, 8398, 8399, 7, 81, 2, 2, 8399, 8400, 7, 87, 2, 2, 8400, 8401, 7, 86, 2, 2, 8401, 1382, 3, 2, 2, 2, 8402, 8403, 7, 89, 2, 2, 8403, 8404, 7, 81, 2, 2, 8404, 8405, 7, 84, 2, 2, 8405, 8406, 7, 77, 2, 2, 8406, 1384, 3, 2, 2, 2, 8407, 8408, 7, 89, 2, 2, 8408, 8409, 7, 84, 2, 2, 8409, 8410, 7, 67, 2, 2, 8410, 8411, 7, 82, 2, 2, 8411, 8412, 7, 82, 2, 2, 8412, 8413, 7, 71, 2, 2, 8413, 8414, 7, 84, 2, 2, 8414, 1386, 3, 2, 2, 2, 8415, 8416, 7, 90, 2, 2, 8416, 8417, 7, 55, 2, 2, 8417, 8418, 7, 50, 2, 2, 8418, 8419, 7, 59, 2, 2, 8419, 1388, 3, 2, 2, 2, 8420, 8421, 7, 90, 2, 2, 8421, 8422, 7, 67, 2, 2, 8422, 1390, 3, 2, 2, 2, 8423, 8424, 7, 90, 2, 2, 8424, 8425, 7, 79, 2, 2, 8425, 8426, 7, 78, 2, 2, 8426, 1392, 3, 2, 2, 2, 8427, 8428, 7, 83, 2, 2, 8428, 8429, 7, 87, 2, 2, 8429, 8430, 7, 67, 2, 2, 8430, 8431, 7, 84, 2, 2, 8431, 8432, 7, 86, 2, 2, 8432, 8433, 7, 71, 2, 2, 8433, 8434, 7, 84, 2, 2, 8434, 1394, 3, 2, 2, 2, 8435, 8436, 7, 79, 2, 2, 8436, 8437, 7, 81, 2, 2, 8437, 8438, 7, 80, 2, 2, 8438, 8439, 7, 86, 2, 2, 8439, 8440, 7, 74, 2, 2, 8440, 1396, 3, 2, 2, 2, 8441, 8442, 7, 70, 2, 2, 8442, 8443, 7, 67, 2, 2, 8443, 8444, 7, 91, 2, 2, 8444, 1398, 3, 2, 2, 2, 8445, 8446, 7, 74, 2, 2, 8446, 8447, 7, 81, 2, 2, 8447, 8448, 7, 87, 2, 2, 8448, 8449, 7, 84, 2, 2, 8449, 1400, 3, 2, 2, 2, 8450, 8451, 7, 79, 2, 2, 8451, 8452, 7, 75, 2, 2, 8452, 8453, 7, 80, 2, 2, 8453, 8454, 7, 87, 2, 2, 8454, 8455, 7, 86, 2, 2, 8455, 8456, 7, 71, 2, 2, 8456, 1402, 3, 2, 2, 2, 8457, 8458, 7, 89, 2, 2, 8458, 8459, 7, 71, 2, 2, 8459, 8460, 7, 71, 2, 2, 8460, 8461, 7, 77, 2, 2, 8461, 1404, 3, 2, 2, 2, 8462, 8463, 7, 85, 2, 2, 8463, 8464, 7, 71, 2, 2, 8464, 8465, 7, 69, 2, 2, 8465, 8466, 7, 81, 2, 2, 8466, 8467, 7, 80, 2, 2, 8467, 8468, 7, 70, 2, 2, 8468, 1406, 3, 2, 2, 2, 8469, 8470, 7, 79, 2, 2, 8470, 8471, 7, 75, 2, 2, 8471, 8472, 7, 69, 2, 2, 8472, 8473, 7, 84, 2, 2, 8473, 8474, 7, 81, 2, 2, 8474, 8475, 7, 85, 2, 2, 8475, 8476, 7, 71, 2, 2, 8476, 8477, 7, 69, 2, 2, 8477, 8478, 7, 81, 2, 2, 8478, 8479, 7, 80, 2, 2, 8479, 8480, 7, 70, 2, 2, 8480, 1408, 3, 2, 2, 2, 8481, 8482, 7, 67, 2, 2, 8482, 8483, 7, 70, 2, 2, 8483, 8484, 7, 79, 2, 2, 8484, 8485, 7, 75, 2, 2, 8485, 8486, 7, 80, 2, 2, 8486, 1410, 3, 2, 2, 2, 8487, 8488, 7, 67, 2, 2, 8488, 8489, 7, 82, 2, 2, 8489, 8490, 7, 82, 2, 2, 8490, 8491, 7, 78, 2, 2, 8491, 8492, 7, 75, 2, 2, 8492, 8493, 7, 69, 2, 2, 8493, 8494, 7, 67, 2, 2, 8494, 8495, 7, 86, 2, 2, 8495, 8496, 7, 75, 2, 2, 8496, 8497, 7, 81, 2, 2, 8497, 8498, 7, 80, 2, 2, 8498, 8499, 7, 97, 2, 2, 8499, 8500, 7, 82, 2, 2, 8500, 8501, 7, 67, 2, 2, 8501, 8502, 7, 85, 2, 2, 8502, 8503, 7, 85, 2, 2, 8503, 8504, 7, 89, 2, 2, 8504, 8505, 7, 81, 2, 2, 8505, 8506, 7, 84, 2, 2, 8506, 8507, 7, 70, 2, 2, 8507, 8508, 7, 97, 2, 2, 8508, 8509, 7, 67, 2, 2, 8509, 8510, 7, 70, 2, 2, 8510, 8511, 7, 79, 2, 2, 8511, 8512, 7, 75, 2, 2, 8512, 8513, 7, 80, 2, 2, 8513, 1412, 3, 2, 2, 2, 8514, 8515, 7, 67, 2, 2, 8515, 8516, 7, 87, 2, 2, 8516, 8517, 7, 70, 2, 2, 8517, 8518, 7, 75, 2, 2, 8518, 8519, 7, 86, 2, 2, 8519, 8520, 7, 97, 2, 2, 8520, 8521, 7, 67, 2, 2, 8521, 8522, 7, 68, 2, 2, 8522, 8523, 7, 81, 2, 2, 8523, 8524, 7, 84, 2, 2, 8524, 8525, 7, 86, 2, 2, 8525, 8526, 7, 97, 2, 2, 8526, 8527, 7, 71, 2, 2, 8527, 8528, 7, 90, 2, 2, 8528, 8529, 7, 71, 2, 2, 8529, 8530, 7, 79, 2, 2, 8530, 8531, 7, 82, 2, 2, 8531, 8532, 7, 86, 2, 2, 8532, 1414, 3, 2, 2, 2, 8533, 8534, 7, 67, 2, 2, 8534, 8535, 7, 87, 2, 2, 8535, 8536, 7, 70, 2, 2, 8536, 8537, 7, 75, 2, 2, 8537, 8538, 7, 86, 2, 2, 8538, 8539, 7, 97, 2, 2, 8539, 8540, 7, 67, 2, 2, 8540, 8541, 7, 70, 2, 2, 8541, 8542, 7, 79, 2, 2, 8542, 8543, 7, 75, 2, 2, 8543, 8544, 7, 80, 2, 2, 8544, 1416, 3, 2, 2, 2, 8545, 8546, 7, 67, 2, 2, 8546, 8547, 7, 87, 2, 2, 8547, 8548, 7, 86, 2, 2, 8548, 8549, 7, 74, 2, 2, 8549, 8550, 7, 71, 2, 2, 8550, 8551, 7, 80, 2, 2, 8551, 8552, 7, 86, 2, 2, 8552, 8553, 7, 75, 2, 2, 8553, 8554, 7, 69, 2, 2, 8554, 8555, 7, 67, 2, 2, 8555, 8556, 7, 86, 2, 2, 8556, 8557, 7, 75, 2, 2, 8557, 8558, 7, 81, 2, 2, 8558, 8559, 7, 80, 2, 2, 8559, 1418, 3, 2, 2, 2, 8560, 8561, 7, 67, 2, 2, 8561, 8562, 7, 87, 2, 2, 8562, 8563, 7, 86, 2, 2, 8563, 8564, 7, 74, 2, 2, 8564, 8565, 7, 71, 2, 2, 8565, 8566, 7, 80, 2, 2, 8566, 8567, 7, 86, 2, 2, 8567, 8568, 7, 75, 2, 2, 8568, 8569, 7, 69, 2, 2, 8569, 8570, 7, 67, 2, 2, 8570, 8571, 7, 86, 2, 2, 8571, 8572, 7, 75, 2, 2, 8572, 8573, 7, 81, 2, 2, 8573, 8574, 7, 80, 2, 2, 8574, 8575, 7, 97, 2, 2, 8575, 8576, 7, 82, 2, 2, 8576, 8577, 7, 81, 2, 2, 8577, 8578, 7, 78, 2, 2, 8578, 8579, 7, 75, 2, 2, 8579, 8580, 7, 69, 2, 2, 8580, 8581, 7, 91, 2, 2, 8581, 8582, 7, 97, 2, 2, 8582, 8583, 7, 67, 2, 2, 8583, 8584, 7, 70, 2, 2, 8584, 8585, 7, 79, 2, 2, 8585, 8586, 7, 75, 2, 2, 8586, 8587, 7, 80, 2, 2, 8587, 1420, 3, 2, 2, 2, 8588, 8589, 7, 68, 2, 2, 8589, 8590, 7, 67, 2, 2, 8590, 8591, 7, 69, 2, 2, 8591, 8592, 7, 77, 2, 2, 8592, 8593, 7, 87, 2, 2, 8593, 8594, 7, 82, 2, 2, 8594, 8595, 7, 97, 2, 2, 8595, 8596, 7, 67, 2, 2, 8596, 8597, 7, 70, 2, 2, 8597, 8598, 7, 79, 2, 2, 8598, 8599, 7, 75, 2, 2, 8599, 8600, 7, 80, 2, 2, 8600, 1422, 3, 2, 2, 2, 8601, 8602, 7, 68, 2, 2, 8602, 8603, 7, 75, 2, 2, 8603, 8604, 7, 80, 2, 2, 8604, 8605, 7, 78, 2, 2, 8605, 8606, 7, 81, 2, 2, 8606, 8607, 7, 73, 2, 2, 8607, 8608, 7, 97, 2, 2, 8608, 8609, 7, 67, 2, 2, 8609, 8610, 7, 70, 2, 2, 8610, 8611, 7, 79, 2, 2, 8611, 8612, 7, 75, 2, 2, 8612, 8613, 7, 80, 2, 2, 8613, 1424, 3, 2, 2, 2, 8614, 8615, 7, 68, 2, 2, 8615, 8616, 7, 75, 2, 2, 8616, 8617, 7, 80, 2, 2, 8617, 8618, 7, 78, 2, 2, 8618, 8619, 7, 81, 2, 2, 8619, 8620, 7, 73, 2, 2, 8620, 8621, 7, 97, 2, 2, 8621, 8622, 7, 71, 2, 2, 8622, 8623, 7, 80, 2, 2, 8623, 8624, 7, 69, 2, 2, 8624, 8625, 7, 84, 2, 2, 8625, 8626, 7, 91, 2, 2, 8626, 8627, 7, 82, 2, 2, 8627, 8628, 7, 86, 2, 2, 8628, 8629, 7, 75, 2, 2, 8629, 8630, 7, 81, 2, 2, 8630, 8631, 7, 80, 2, 2, 8631, 8632, 7, 97, 2, 2, 8632, 8633, 7, 67, 2, 2, 8633, 8634, 7, 70, 2, 2, 8634, 8635, 7, 79, 2, 2, 8635, 8636, 7, 75, 2, 2, 8636, 8637, 7, 80, 2, 2, 8637, 1426, 3, 2, 2, 2, 8638, 8639, 7, 69, 2, 2, 8639, 8640, 7, 78, 2, 2, 8640, 8641, 7, 81, 2, 2, 8641, 8642, 7, 80, 2, 2, 8642, 8643, 7, 71, 2, 2, 8643, 1428, 3, 2, 2, 2, 8644, 8645, 7, 69, 2, 2, 8645, 8646, 7, 78, 2, 2, 8646, 8647, 7, 81, 2, 2, 8647, 8648, 7, 80, 2, 2, 8648, 8649, 7, 71, 2, 2, 8649, 8650, 7, 97, 2, 2, 8650, 8651, 7, 67, 2, 2, 8651, 8652, 7, 70, 2, 2, 8652, 8653, 7, 79, 2, 2, 8653, 8654, 7, 75, 2, 2, 8654, 8655, 7, 80, 2, 2, 8655, 1430, 3, 2, 2, 2, 8656, 8657, 7, 69, 2, 2, 8657, 8658, 7, 81, 2, 2, 8658, 8659, 7, 80, 2, 2, 8659, 8660, 7, 80, 2, 2, 8660, 8661, 7, 71, 2, 2, 8661, 8662, 7, 69, 2, 2, 8662, 8663, 7, 86, 2, 2, 8663, 8664, 7, 75, 2, 2, 8664, 8665, 7, 81, 2, 2, 8665, 8666, 7, 80, 2, 2, 8666, 8667, 7, 97, 2, 2, 8667, 8668, 7, 67, 2, 2, 8668, 8669, 7, 70, 2, 2, 8669, 8670, 7, 79, 2, 2, 8670, 8671, 7, 75, 2, 2, 8671, 8672, 7, 80, 2, 2, 8672, 1432, 3, 2, 2, 2, 8673, 8674, 7, 71, 2, 2, 8674, 8675, 7, 80, 2, 2, 8675, 8676, 7, 69, 2, 2, 8676, 8677, 7, 84, 2, 2, 8677, 8678, 7, 91, 2, 2, 8678, 8679, 7, 82, 2, 2, 8679, 8680, 7, 86, 2, 2, 8680, 8681, 7, 75, 2, 2, 8681, 8682, 7, 81, 2, 2, 8682, 8683, 7, 80, 2, 2, 8683, 8684, 7, 97, 2, 2, 8684, 8685, 7, 77, 2, 2, 8685, 8686, 7, 71, 2, 2, 8686, 8687, 7, 91, 2, 2, 8687, 8688, 7, 97, 2, 2, 8688, 8689, 7, 67, 2, 2, 8689, 8690, 7, 70, 2, 2, 8690, 8691, 7, 79, 2, 2, 8691, 8692, 7, 75, 2, 2, 8692, 8693, 7, 80, 2, 2, 8693, 1434, 3, 2, 2, 2, 8694, 8695, 7, 71, 2, 2, 8695, 8696, 7, 90, 2, 2, 8696, 8697, 7, 71, 2, 2, 8697, 8698, 7, 69, 2, 2, 8698, 8699, 7, 87, 2, 2, 8699, 8700, 7, 86, 2, 2, 8700, 8701, 7, 71, 2, 2, 8701, 1436, 3, 2, 2, 2, 8702, 8703, 7, 72, 2, 2, 8703, 8704, 7, 75, 2, 2, 8704, 8705, 7, 78, 2, 2, 8705, 8706, 7, 71, 2, 2, 8706, 1438, 3, 2, 2, 2, 8707, 8708, 7, 72, 2, 2, 8708, 8709, 7, 75, 2, 2, 8709, 8710, 7, 84, 2, 2, 8710, 8711, 7, 71, 2, 2, 8711, 8712, 7, 89, 2, 2, 8712, 8713, 7, 67, 2, 2, 8713, 8714, 7, 78, 2, 2, 8714, 8715, 7, 78, 2, 2, 8715, 8716, 7, 97, 2, 2, 8716, 8717, 7, 67, 2, 2, 8717, 8718, 7, 70, 2, 2, 8718, 8719, 7, 79, 2, 2, 8719, 8720, 7, 75, 2, 2, 8720, 8721, 7, 80, 2, 2, 8721, 1440, 3, 2, 2, 2, 8722, 8723, 7, 72, 2, 2, 8723, 8724, 7, 75, 2, 2, 8724, 8725, 7, 84, 2, 2, 8725, 8726, 7, 71, 2, 2, 8726, 8727, 7, 89, 2, 2, 8727, 8728, 7, 67, 2, 2, 8728, 8729, 7, 78, 2, 2, 8729, 8730, 7, 78, 2, 2, 8730, 8731, 7, 97, 2, 2, 8731, 8732, 7, 71, 2, 2, 8732, 8733, 7, 90, 2, 2, 8733, 8734, 7, 71, 2, 2, 8734, 8735, 7, 79, 2, 2, 8735, 8736, 7, 82, 2, 2, 8736, 8737, 7, 86, 2, 2, 8737, 1442, 3, 2, 2, 2, 8738, 8739, 7, 72, 2, 2, 8739, 8740, 7, 75, 2, 2, 8740, 8741, 7, 84, 2, 2, 8741, 8742, 7, 71, 2, 2, 8742, 8743, 7, 89, 2, 2, 8743, 8744, 7, 67, 2, 2, 8744, 8745, 7, 78, 2, 2, 8745, 8746, 7, 78, 2, 2, 8746, 8747, 7, 97, 2, 2, 8747, 8748, 7, 87, 2, 2, 8748, 8749, 7, 85, 2, 2, 8749, 8750, 7, 71, 2, 2, 8750, 8751, 7, 84, 2, 2, 8751, 1444, 3, 2, 2, 2, 8752, 8753, 7, 72, 2, 2, 8753, 8754, 7, 78, 2, 2, 8754, 8755, 7, 87, 2, 2, 8755, 8756, 7, 85, 2, 2, 8756, 8757, 7, 74, 2, 2, 8757, 8758, 7, 97, 2, 2, 8758, 8759, 7, 81, 2, 2, 8759, 8760, 7, 82, 2, 2, 8760, 8761, 7, 86, 2, 2, 8761, 8762, 7, 75, 2, 2, 8762, 8763, 7, 79, 2, 2, 8763, 8764, 7, 75, 2, 2, 8764, 8765, 7, 92, 2, 2, 8765, 8766, 7, 71, 2, 2, 8766, 8767, 7, 84, 2, 2, 8767, 8768, 7, 97, 2, 2, 8768, 8769, 7, 69, 2, 2, 8769, 8770, 7, 81, 2, 2, 8770, 8771, 7, 85, 2, 2, 8771, 8772, 7, 86, 2, 2, 8772, 8773, 7, 85, 2, 2, 8773, 1446, 3, 2, 2, 2, 8774, 8775, 7, 72, 2, 2, 8775, 8776, 7, 78, 2, 2, 8776, 8777, 7, 87, 2, 2, 8777, 8778, 7, 85, 2, 2, 8778, 8779, 7, 74, 2, 2, 8779, 8780, 7, 97, 2, 2, 8780, 8781, 7, 85, 2, 2, 8781, 8782, 7, 86, 2, 2, 8782, 8783, 7, 67, 2, 2, 8783, 8784, 7, 86, 2, 2, 8784, 8785, 7, 87, 2, 2, 8785, 8786, 7, 85, 2, 2, 8786, 1448, 3, 2, 2, 2, 8787, 8788, 7, 72, 2, 2, 8788, 8789, 7, 78, 2, 2, 8789, 8790, 7, 87, 2, 2, 8790, 8791, 7, 85, 2, 2, 8791, 8792, 7, 74, 2, 2, 8792, 8793, 7, 97, 2, 2, 8793, 8794, 7, 86, 2, 2, 8794, 8795, 7, 67, 2, 2, 8795, 8796, 7, 68, 2, 2, 8796, 8797, 7, 78, 2, 2, 8797, 8798, 7, 71, 2, 2, 8798, 8799, 7, 85, 2, 2, 8799, 1450, 3, 2, 2, 2, 8800, 8801, 7, 72, 2, 2, 8801, 8802, 7, 78, 2, 2, 8802, 8803, 7, 87, 2, 2, 8803, 8804, 7, 85, 2, 2, 8804, 8805, 7, 74, 2, 2, 8805, 8806, 7, 97, 2, 2, 8806, 8807, 7, 87, 2, 2, 8807, 8808, 7, 85, 2, 2, 8808, 8809, 7, 71, 2, 2, 8809, 8810, 7, 84, 2, 2, 8810, 8811, 7, 97, 2, 2, 8811, 8812, 7, 84, 2, 2, 8812, 8813, 7, 71, 2, 2, 8813, 8814, 7, 85, 2, 2, 8814, 8815, 7, 81, 2, 2, 8815, 8816, 7, 87, 2, 2, 8816, 8817, 7, 84, 2, 2, 8817, 8818, 7, 69, 2, 2, 8818, 8819, 7, 71, 2, 2, 8819, 8820, 7, 85, 2, 2, 8820, 1452, 3, 2, 2, 2, 8821, 8822, 7, 73, 2, 2, 8822, 8823, 7, 84, 2, 2, 8823, 8824, 7, 81, 2, 2, 8824, 8825, 7, 87, 2, 2, 8825, 8826, 7, 82, 2, 2, 8826, 8827, 7, 97, 2, 2, 8827, 8828, 7, 84, 2, 2, 8828, 8829, 7, 71, 2, 2, 8829, 8830, 7, 82, 2, 2, 8830, 8831, 7, 78, 2, 2, 8831, 8832, 7, 75, 2, 2, 8832, 8833, 7, 69, 2, 2, 8833, 8834, 7, 67, 2, 2, 8834, 8835, 7, 86, 2, 2, 8835, 8836, 7, 75, 2, 2, 8836, 8837, 7, 81, 2, 2, 8837, 8838, 7, 80, 2, 2, 8838, 8839, 7, 97, 2, 2, 8839, 8840, 7, 67, 2, 2, 8840, 8841, 7, 70, 2, 2, 8841, 8842, 7, 79, 2, 2, 8842, 8843, 7, 75, 2, 2, 8843, 8844, 7, 80, 2, 2, 8844, 1454, 3, 2, 2, 2, 8845, 8846, 7, 75, 2, 2, 8846, 8847, 7, 80, 2, 2, 8847, 8848, 7, 80, 2, 2, 8848, 8849, 7, 81, 2, 2, 8849, 8850, 7, 70, 2, 2, 8850, 8851, 7, 68, 2, 2, 8851, 8852, 7, 97, 2, 2, 8852, 8853, 7, 84, 2, 2, 8853, 8854, 7, 71, 2, 2, 8854, 8855, 7, 70, 2, 2, 8855, 8856, 7, 81, 2, 2, 8856, 8857, 7, 97, 2, 2, 8857, 8858, 7, 78, 2, 2, 8858, 8859, 7, 81, 2, 2, 8859, 8860, 7, 73, 2, 2, 8860, 8861, 7, 97, 2, 2, 8861, 8862, 7, 67, 2, 2, 8862, 8863, 7, 84, 2, 2, 8863, 8864, 7, 69, 2, 2, 8864, 8865, 7, 74, 2, 2, 8865, 8866, 7, 75, 2, 2, 8866, 8867, 7, 88, 2, 2, 8867, 8868, 7, 71, 2, 2, 8868, 1456, 3, 2, 2, 2, 8869, 8870, 7, 75, 2, 2, 8870, 8871, 7, 80, 2, 2, 8871, 8872, 7, 80, 2, 2, 8872, 8873, 7, 81, 2, 2, 8873, 8874, 7, 70, 2, 2, 8874, 8875, 7, 68, 2, 2, 8875, 8876, 7, 97, 2, 2, 8876, 8877, 7, 84, 2, 2, 8877, 8878, 7, 71, 2, 2, 8878, 8879, 7, 70, 2, 2, 8879, 8880, 7, 81, 2, 2, 8880, 8881, 7, 97, 2, 2, 8881, 8882, 7, 78, 2, 2, 8882, 8883, 7, 81, 2, 2, 8883, 8884, 7, 73, 2, 2, 8884, 8885, 7, 97, 2, 2, 8885, 8886, 7, 71, 2, 2, 8886, 8887, 7, 80, 2, 2, 8887, 8888, 7, 67, 2, 2, 8888, 8889, 7, 68, 2, 2, 8889, 8890, 7, 78, 2, 2, 8890, 8891, 7, 71, 2, 2, 8891, 1458, 3, 2, 2, 2, 8892, 8893, 7, 75, 2, 2, 8893, 8894, 7, 80, 2, 2, 8894, 8895, 7, 88, 2, 2, 8895, 8896, 7, 81, 2, 2, 8896, 8897, 7, 77, 2, 2, 8897, 8898, 7, 71, 2, 2, 8898, 1460, 3, 2, 2, 2, 8899, 8900, 7, 78, 2, 2, 8900, 8901, 7, 67, 2, 2, 8901, 8902, 7, 79, 2, 2, 8902, 8903, 7, 68, 2, 2, 8903, 8904, 7, 70, 2, 2, 8904, 8905, 7, 67, 2, 2, 8905, 1462, 3, 2, 2, 2, 8906, 8907, 7, 80, 2, 2, 8907, 8908, 7, 70, 2, 2, 8908, 8909, 7, 68, 2, 2, 8909, 8910, 7, 97, 2, 2, 8910, 8911, 7, 85, 2, 2, 8911, 8912, 7, 86, 2, 2, 8912, 8913, 7, 81, 2, 2, 8913, 8914, 7, 84, 2, 2, 8914, 8915, 7, 71, 2, 2, 8915, 8916, 7, 70, 2, 2, 8916, 8917, 7, 97, 2, 2, 8917, 8918, 7, 87, 2, 2, 8918, 8919, 7, 85, 2, 2, 8919, 8920, 7, 71, 2, 2, 8920, 8921, 7, 84, 2, 2, 8921, 1464, 3, 2, 2, 2, 8922, 8923, 7, 82, 2, 2, 8923, 8924, 7, 67, 2, 2, 8924, 8925, 7, 85, 2, 2, 8925, 8926, 7, 85, 2, 2, 8926, 8927, 7, 89, 2, 2, 8927, 8928, 7, 81, 2, 2, 8928, 8929, 7, 84, 2, 2, 8929, 8930, 7, 70, 2, 2, 8930, 8931, 7, 78, 2, 2, 8931, 8932, 7, 71, 2, 2, 8932, 8933, 7, 85, 2, 2, 8933, 8934, 7, 85, 2, 2, 8934, 8935, 7, 97, 2, 2, 8935, 8936, 7, 87, 2, 2, 8936, 8937, 7, 85, 2, 2, 8937, 8938, 7, 71, 2, 2, 8938, 8939, 7, 84, 2, 2, 8939, 8940, 7, 97, 2, 2, 8940, 8941, 7, 67, 2, 2, 8941, 8942, 7, 70, 2, 2, 8942, 8943, 7, 79, 2, 2, 8943, 8944, 7, 75, 2, 2, 8944, 8945, 7, 80, 2, 2, 8945, 1466, 3, 2, 2, 2, 8946, 8947, 7, 82, 2, 2, 8947, 8948, 7, 71, 2, 2, 8948, 8949, 7, 84, 2, 2, 8949, 8950, 7, 85, 2, 2, 8950, 8951, 7, 75, 2, 2, 8951, 8952, 7, 85, 2, 2, 8952, 8953, 7, 86, 2, 2, 8953, 8954, 7, 97, 2, 2, 8954, 8955, 7, 84, 2, 2, 8955, 8956, 7, 81, 2, 2, 8956, 8957, 7, 97, 2, 2, 8957, 8958, 7, 88, 2, 2, 8958, 8959, 7, 67, 2, 2, 8959, 8960, 7, 84, 2, 2, 8960, 8961, 7, 75, 2, 2, 8961, 8962, 7, 67, 2, 2, 8962, 8963, 7, 68, 2, 2, 8963, 8964, 7, 78, 2, 2, 8964, 8965, 7, 71, 2, 2, 8965, 8966, 7, 85, 2, 2, 8966, 8967, 7, 97, 2, 2, 8967, 8968, 7, 67, 2, 2, 8968, 8969, 7, 70, 2, 2, 8969, 8970, 7, 79, 2, 2, 8970, 8971, 7, 75, 2, 2, 8971, 8972, 7, 80, 2, 2, 8972, 1468, 3, 2, 2, 2, 8973, 8974, 7, 82, 2, 2, 8974, 8975, 7, 84, 2, 2, 8975, 8976, 7, 75, 2, 2, 8976, 8977, 7, 88, 2, 2, 8977, 8978, 7, 75, 2, 2, 8978, 8979, 7, 78, 2, 2, 8979, 8980, 7, 71, 2, 2, 8980, 8981, 7, 73, 2, 2, 8981, 8982, 7, 71, 2, 2, 8982, 8983, 7, 85, 2, 2, 8983, 1470, 3, 2, 2, 2, 8984, 8985, 7, 82, 2, 2, 8985, 8986, 7, 84, 2, 2, 8986, 8987, 7, 81, 2, 2, 8987, 8988, 7, 69, 2, 2, 8988, 8989, 7, 71, 2, 2, 8989, 8990, 7, 85, 2, 2, 8990, 8991, 7, 85, 2, 2, 8991, 1472, 3, 2, 2, 2, 8992, 8993, 7, 84, 2, 2, 8993, 8994, 7, 71, 2, 2, 8994, 8995, 7, 78, 2, 2, 8995, 8996, 7, 81, 2, 2, 8996, 8997, 7, 67, 2, 2, 8997, 8998, 7, 70, 2, 2, 8998, 1474, 3, 2, 2, 2, 8999, 9000, 7, 84, 2, 2, 9000, 9001, 7, 71, 2, 2, 9001, 9002, 7, 82, 2, 2, 9002, 9003, 7, 78, 2, 2, 9003, 9004, 7, 75, 2, 2, 9004, 9005, 7, 69, 2, 2, 9005, 9006, 7, 67, 2, 2, 9006, 9007, 7, 86, 2, 2, 9007, 9008, 7, 75, 2, 2, 9008, 9009, 7, 81, 2, 2, 9009, 9010, 7, 80, 2, 2, 9010, 9011, 7, 97, 2, 2, 9011, 9012, 7, 67, 2, 2, 9012, 9013, 7, 82, 2, 2, 9013, 9014, 7, 82, 2, 2, 9014, 9015, 7, 78, 2, 2, 9015, 9016, 7, 75, 2, 2, 9016, 9017, 7, 71, 2, 2, 9017, 9018, 7, 84, 2, 2, 9018, 1476, 3, 2, 2, 2, 9019, 9020, 7, 84, 2, 2, 9020, 9021, 7, 71, 2, 2, 9021, 9022, 7, 82, 2, 2, 9022, 9023, 7, 78, 2, 2, 9023, 9024, 7, 75, 2, 2, 9024, 9025, 7, 69, 2, 2, 9025, 9026, 7, 67, 2, 2, 9026, 9027, 7, 86, 2, 2, 9027, 9028, 7, 75, 2, 2, 9028, 9029, 7, 81, 2, 2, 9029, 9030, 7, 80, 2, 2, 9030, 9031, 7, 97, 2, 2, 9031, 9032, 7, 85, 2, 2, 9032, 9033, 7, 78, 2, 2, 9033, 9034, 7, 67, 2, 2, 9034, 9035, 7, 88, 2, 2, 9035, 9036, 7, 71, 2, 2, 9036, 9037, 7, 97, 2, 2, 9037, 9038, 7, 67, 2, 2, 9038, 9039, 7, 70, 2, 2, 9039, 9040, 7, 79, 2, 2, 9040, 9041, 7, 75, 2, 2, 9041, 9042, 7, 80, 2, 2, 9042, 1478, 3, 2, 2, 2, 9043, 9044, 7, 84, 2, 2, 9044, 9045, 7, 71, 2, 2, 9045, 9046, 7, 85, 2, 2, 9046, 9047, 7, 81, 2, 2, 9047, 9048, 7, 87, 2, 2, 9048, 9049, 7, 84, 2, 2, 9049, 9050, 7, 69, 2, 2, 9050, 9051, 7, 71, 2, 2, 9051, 1480, 3, 2, 2, 2, 9052, 9053, 7, 84, 2, 2, 9053, 9054, 7, 71, 2, 2, 9054, 9055, 7, 85, 2, 2, 9055, 9056, 7, 81, 2, 2, 9056, 9057, 7, 87, 2, 2, 9057, 9058, 7, 84, 2, 2, 9058, 9059, 7, 69, 2, 2, 9059, 9060, 7, 71, 2, 2, 9060, 9061, 7, 97, 2, 2, 9061, 9062, 7, 73, 2, 2, 9062, 9063, 7, 84, 2, 2, 9063, 9064, 7, 81, 2, 2, 9064, 9065, 7, 87, 2, 2, 9065, 9066, 7, 82, 2, 2, 9066, 9067, 7, 97, 2, 2, 9067, 9068, 7, 67, 2, 2, 9068, 9069, 7, 70, 2, 2, 9069, 9070, 7, 79, 2, 2, 9070, 9071, 7, 75, 2, 2, 9071, 9072, 7, 80, 2, 2, 9072, 1482, 3, 2, 2, 2, 9073, 9074, 7, 84, 2, 2, 9074, 9075, 7, 71, 2, 2, 9075, 9076, 7, 85, 2, 2, 9076, 9077, 7, 81, 2, 2, 9077, 9078, 7, 87, 2, 2, 9078, 9079, 7, 84, 2, 2, 9079, 9080, 7, 69, 2, 2, 9080, 9081, 7, 71, 2, 2, 9081, 9082, 7, 97, 2, 2, 9082, 9083, 7, 73, 2, 2, 9083, 9084, 7, 84, 2, 2, 9084, 9085, 7, 81, 2, 2, 9085, 9086, 7, 87, 2, 2, 9086, 9087, 7, 82, 2, 2, 9087, 9088, 7, 97, 2, 2, 9088, 9089, 7, 87, 2, 2, 9089, 9090, 7, 85, 2, 2, 9090, 9091, 7, 71, 2, 2, 9091, 9092, 7, 84, 2, 2, 9092, 1484, 3, 2, 2, 2, 9093, 9094, 7, 84, 2, 2, 9094, 9095, 7, 81, 2, 2, 9095, 9096, 7, 78, 2, 2, 9096, 9097, 7, 71, 2, 2, 9097, 9098, 7, 97, 2, 2, 9098, 9099, 7, 67, 2, 2, 9099, 9100, 7, 70, 2, 2, 9100, 9101, 7, 79, 2, 2, 9101, 9102, 7, 75, 2, 2, 9102, 9103, 7, 80, 2, 2, 9103, 1486, 3, 2, 2, 2, 9104, 9105, 7, 84, 2, 2, 9105, 9106, 7, 81, 2, 2, 9106, 9107, 7, 87, 2, 2, 9107, 9108, 7, 86, 2, 2, 9108, 9109, 7, 75, 2, 2, 9109, 9110, 7, 80, 2, 2, 9110, 9111, 7, 71, 2, 2, 9111, 1488, 3, 2, 2, 2, 9112, 9113, 7, 85, 2, 2, 9113, 9114, 7, 53, 2, 2, 9114, 1490, 3, 2, 2, 2, 9115, 9116, 7, 85, 2, 2, 9116, 9117, 7, 71, 2, 2, 9117, 9118, 7, 84, 2, 2, 9118, 9119, 7, 88, 2, 2, 9119, 9120, 7, 75, 2, 2, 9120, 9121, 7, 69, 2, 2, 9121, 9122, 7, 71, 2, 2, 9122, 9123, 7, 97, 2, 2, 9123, 9124, 7, 69, 2, 2, 9124, 9125, 7, 81, 2, 2, 9125, 9126, 7, 80, 2, 2, 9126, 9127, 7, 80, 2, 2, 9127, 9128, 7, 71, 2, 2, 9128, 9129, 7, 69, 2, 2, 9129, 9130, 7, 86, 2, 2, 9130, 9131, 7, 75, 2, 2, 9131, 9132, 7, 81, 2, 2, 9132, 9133, 7, 80, 2, 2, 9133, 9134, 7, 97, 2, 2, 9134, 9135, 7, 67, 2, 2, 9135, 9136, 7, 70, 2, 2, 9136, 9137, 7, 79, 2, 2, 9137, 9138, 7, 75, 2, 2, 9138, 9139, 7, 80, 2, 2, 9139, 1492, 3, 2, 2, 2, 9140, 9142, 5, 1759, 880, 2, 9141, 9140, 3, 2, 2, 2, 9141, 9142, 3, 2, 2, 2, 9142, 9143, 3, 2, 2, 2, 9143, 9144, 7, 85, 2, 2, 9144, 9145, 7, 71, 2, 2, 9145, 9146, 7, 85, 2, 2, 9146, 9147, 7, 85, 2, 2, 9147, 9148, 7, 75, 2, 2, 9148, 9149, 7, 81, 2, 2, 9149, 9150, 7, 80, 2, 2, 9150, 9151, 7, 97, 2, 2, 9151, 9152, 7, 88, 2, 2, 9152, 9153, 7, 67, 2, 2, 9153, 9154, 7, 84, 2, 2, 9154, 9155, 7, 75, 2, 2, 9155, 9156, 7, 67, 2, 2, 9156, 9157, 7, 68, 2, 2, 9157, 9158, 7, 78, 2, 2, 9158, 9159, 7, 71, 2, 2, 9159, 9160, 7, 85, 2, 2, 9160, 9161, 7, 97, 2, 2, 9161, 9162, 7, 67, 2, 2, 9162, 9163, 7, 70, 2, 2, 9163, 9164, 7, 79, 2, 2, 9164, 9165, 7, 75, 2, 2, 9165, 9166, 7, 80, 2, 2, 9166, 9168, 3, 2, 2, 2, 9167, 9169, 5, 1759, 880, 2, 9168, 9167, 3, 2, 2, 2, 9168, 9169, 3, 2, 2, 2, 9169, 1494, 3, 2, 2, 2, 9170, 9171, 7, 85, 2, 2, 9171, 9172, 7, 71, 2, 2, 9172, 9173, 7, 86, 2, 2, 9173, 9174, 7, 97, 2, 2, 9174, 9175, 7, 87, 2, 2, 9175, 9176, 7, 85, 2, 2, 9176, 9177, 7, 71, 2, 2, 9177, 9178, 7, 84, 2, 2, 9178, 9179, 7, 97, 2, 2, 9179, 9180, 7, 75, 2, 2, 9180, 9181, 7, 70, 2, 2, 9181, 1496, 3, 2, 2, 2, 9182, 9183, 7, 85, 2, 2, 9183, 9184, 7, 74, 2, 2, 9184, 9185, 7, 81, 2, 2, 9185, 9186, 7, 89, 2, 2, 9186, 9187, 7, 97, 2, 2, 9187, 9188, 7, 84, 2, 2, 9188, 9189, 7, 81, 2, 2, 9189, 9190, 7, 87, 2, 2, 9190, 9191, 7, 86, 2, 2, 9191, 9192, 7, 75, 2, 2, 9192, 9193, 7, 80, 2, 2, 9193, 9194, 7, 71, 2, 2, 9194, 1498, 3, 2, 2, 2, 9195, 9196, 7, 85, 2, 2, 9196, 9197, 7, 74, 2, 2, 9197, 9198, 7, 87, 2, 2, 9198, 9199, 7, 86, 2, 2, 9199, 9200, 7, 70, 2, 2, 9200, 9201, 7, 81, 2, 2, 9201, 9202, 7, 89, 2, 2, 9202, 9203, 7, 80, 2, 2, 9203, 1500, 3, 2, 2, 2, 9204, 9205, 7, 85, 2, 2, 9205, 9206, 7, 87, 2, 2, 9206, 9207, 7, 82, 2, 2, 9207, 9208, 7, 71, 2, 2, 9208, 9209, 7, 84, 2, 2, 9209, 1502, 3, 2, 2, 2, 9210, 9211, 7, 85, 2, 2, 9211, 9212, 7, 91, 2, 2, 9212, 9213, 7, 85, 2, 2, 9213, 9214, 7, 86, 2, 2, 9214, 9215, 7, 71, 2, 2, 9215, 9216, 7, 79, 2, 2, 9216, 9217, 7, 97, 2, 2, 9217, 9218, 7, 88, 2, 2, 9218, 9219, 7, 67, 2, 2, 9219, 9220, 7, 84, 2, 2, 9220, 9221, 7, 75, 2, 2, 9221, 9222, 7, 67, 2, 2, 9222, 9223, 7, 68, 2, 2, 9223, 9224, 7, 78, 2, 2, 9224, 9225, 7, 71, 2, 2, 9225, 9226, 7, 85, 2, 2, 9226, 9227, 7, 97, 2, 2, 9227, 9228, 7, 67, 2, 2, 9228, 9229, 7, 70, 2, 2, 9229, 9230, 7, 79, 2, 2, 9230, 9231, 7, 75, 2, 2, 9231, 9232, 7, 80, 2, 2, 9232, 1504, 3, 2, 2, 2, 9233, 9234, 7, 86, 2, 2, 9234, 9235, 7, 67, 2, 2, 9235, 9236, 7, 68, 2, 2, 9236, 9237, 7, 78, 2, 2, 9237, 9238, 7, 71, 2, 2, 9238, 9239, 7, 85, 2, 2, 9239, 1506, 3, 2, 2, 2, 9240, 9241, 7, 86, 2, 2, 9241, 9242, 7, 67, 2, 2, 9242, 9243, 7, 68, 2, 2, 9243, 9244, 7, 78, 2, 2, 9244, 9245, 7, 71, 2, 2, 9245, 9246, 7, 97, 2, 2, 9246, 9247, 7, 71, 2, 2, 9247, 9248, 7, 80, 2, 2, 9248, 9249, 7, 69, 2, 2, 9249, 9250, 7, 84, 2, 2, 9250, 9251, 7, 91, 2, 2, 9251, 9252, 7, 82, 2, 2, 9252, 9253, 7, 86, 2, 2, 9253, 9254, 7, 75, 2, 2, 9254, 9255, 7, 81, 2, 2, 9255, 9256, 7, 80, 2, 2, 9256, 9257, 7, 97, 2, 2, 9257, 9258, 7, 67, 2, 2, 9258, 9259, 7, 70, 2, 2, 9259, 9260, 7, 79, 2, 2, 9260, 9261, 7, 75, 2, 2, 9261, 9262, 7, 80, 2, 2, 9262, 1508, 3, 2, 2, 2, 9263, 9264, 7, 88, 2, 2, 9264, 9265, 7, 71, 2, 2, 9265, 9266, 7, 84, 2, 2, 9266, 9267, 7, 85, 2, 2, 9267, 9268, 7, 75, 2, 2, 9268, 9269, 7, 81, 2, 2, 9269, 9270, 7, 80, 2, 2, 9270, 9271, 7, 97, 2, 2, 9271, 9272, 7, 86, 2, 2, 9272, 9273, 7, 81, 2, 2, 9273, 9274, 7, 77, 2, 2, 9274, 9275, 7, 71, 2, 2, 9275, 9276, 7, 80, 2, 2, 9276, 9277, 7, 97, 2, 2, 9277, 9278, 7, 67, 2, 2, 9278, 9279, 7, 70, 2, 2, 9279, 9280, 7, 79, 2, 2, 9280, 9281, 7, 75, 2, 2, 9281, 9282, 7, 80, 2, 2, 9282, 1510, 3, 2, 2, 2, 9283, 9284, 7, 90, 2, 2, 9284, 9285, 7, 67, 2, 2, 9285, 9286, 7, 97, 2, 2, 9286, 9287, 7, 84, 2, 2, 9287, 9288, 7, 71, 2, 2, 9288, 9289, 7, 69, 2, 2, 9289, 9290, 7, 81, 2, 2, 9290, 9291, 7, 88, 2, 2, 9291, 9292, 7, 71, 2, 2, 9292, 9293, 7, 84, 2, 2, 9293, 9294, 7, 97, 2, 2, 9294, 9295, 7, 67, 2, 2, 9295, 9296, 7, 70, 2, 2, 9296, 9297, 7, 79, 2, 2, 9297, 9298, 7, 75, 2, 2, 9298, 9299, 7, 80, 2, 2, 9299, 1512, 3, 2, 2, 2, 9300, 9301, 7, 67, 2, 2, 9301, 9302, 7, 84, 2, 2, 9302, 9303, 7, 79, 2, 2, 9303, 9304, 7, 85, 2, 2, 9304, 9305, 7, 69, 2, 2, 9305, 9306, 7, 75, 2, 2, 9306, 9307, 7, 75, 2, 2, 9307, 9308, 7, 58, 2, 2, 9308, 1514, 3, 2, 2, 2, 9309, 9310, 7, 67, 2, 2, 9310, 9311, 7, 85, 2, 2, 9311, 9312, 7, 69, 2, 2, 9312, 9313, 7, 75, 2, 2, 9313, 9314, 7, 75, 2, 2, 9314, 1516, 3, 2, 2, 2, 9315, 9316, 7, 68, 2, 2, 9316, 9317, 7, 75, 2, 2, 9317, 9318, 7, 73, 2, 2, 9318, 9319, 7, 55, 2, 2, 9319, 1518, 3, 2, 2, 2, 9320, 9321, 7, 69, 2, 2, 9321, 9322, 7, 82, 2, 2, 9322, 9323, 7, 51, 2, 2, 9323, 9324, 7, 52, 2, 2, 9324, 9325, 7, 55, 2, 2, 9325, 9326, 7, 50, 2, 2, 9326, 1520, 3, 2, 2, 2, 9327, 9328, 7, 69, 2, 2, 9328, 9329, 7, 82, 2, 2, 9329, 9330, 7, 51, 2, 2, 9330, 9331, 7, 52, 2, 2, 9331, 9332, 7, 55, 2, 2, 9332, 9333, 7, 51, 2, 2, 9333, 1522, 3, 2, 2, 2, 9334, 9335, 7, 69, 2, 2, 9335, 9336, 7, 82, 2, 2, 9336, 9337, 7, 51, 2, 2, 9337, 9338, 7, 52, 2, 2, 9338, 9339, 7, 55, 2, 2, 9339, 9340, 7, 56, 2, 2, 9340, 1524, 3, 2, 2, 2, 9341, 9342, 7, 69, 2, 2, 9342, 9343, 7, 82, 2, 2, 9343, 9344, 7, 51, 2, 2, 9344, 9345, 7, 52, 2, 2, 9345, 9346, 7, 55, 2, 2, 9346, 9347, 7, 57, 2, 2, 9347, 1526, 3, 2, 2, 2, 9348, 9349, 7, 69, 2, 2, 9349, 9350, 7, 82, 2, 2, 9350, 9351, 7, 58, 2, 2, 9351, 9352, 7, 55, 2, 2, 9352, 9353, 7, 50, 2, 2, 9353, 1528, 3, 2, 2, 2, 9354, 9355, 7, 69, 2, 2, 9355, 9356, 7, 82, 2, 2, 9356, 9357, 7, 58, 2, 2, 9357, 9358, 7, 55, 2, 2, 9358, 9359, 7, 52, 2, 2, 9359, 1530, 3, 2, 2, 2, 9360, 9361, 7, 69, 2, 2, 9361, 9362, 7, 82, 2, 2, 9362, 9363, 7, 58, 2, 2, 9363, 9364, 7, 56, 2, 2, 9364, 9365, 7, 56, 2, 2, 9365, 1532, 3, 2, 2, 2, 9366, 9367, 7, 69, 2, 2, 9367, 9368, 7, 82, 2, 2, 9368, 9369, 7, 59, 2, 2, 9369, 9370, 7, 53, 2, 2, 9370, 9371, 7, 52, 2, 2, 9371, 1534, 3, 2, 2, 2, 9372, 9373, 7, 70, 2, 2, 9373, 9374, 7, 71, 2, 2, 9374, 9375, 7, 69, 2, 2, 9375, 9376, 7, 58, 2, 2, 9376, 1536, 3, 2, 2, 2, 9377, 9378, 7, 71, 2, 2, 9378, 9379, 7, 87, 2, 2, 9379, 9380, 7, 69, 2, 2, 9380, 9381, 7, 76, 2, 2, 9381, 9382, 7, 82, 2, 2, 9382, 9383, 7, 79, 2, 2, 9383, 9384, 7, 85, 2, 2, 9384, 1538, 3, 2, 2, 2, 9385, 9386, 7, 71, 2, 2, 9386, 9387, 7, 87, 2, 2, 9387, 9388, 7, 69, 2, 2, 9388, 9389, 7, 77, 2, 2, 9389, 9390, 7, 84, 2, 2, 9390, 1540, 3, 2, 2, 2, 9391, 9392, 7, 73, 2, 2, 9392, 9393, 7, 68, 2, 2, 9393, 9394, 7, 51, 2, 2, 9394, 9395, 7, 58, 2, 2, 9395, 9396, 7, 50, 2, 2, 9396, 9397, 7, 53, 2, 2, 9397, 9398, 7, 50, 2, 2, 9398, 1542, 3, 2, 2, 2, 9399, 9400, 7, 73, 2, 2, 9400, 9401, 7, 68, 2, 2, 9401, 9402, 7, 52, 2, 2, 9402, 9403, 7, 53, 2, 2, 9403, 9404, 7, 51, 2, 2, 9404, 9405, 7, 52, 2, 2, 9405, 1544, 3, 2, 2, 2, 9406, 9407, 7, 73, 2, 2, 9407, 9408, 7, 68, 2, 2, 9408, 9409, 7, 77, 2, 2, 9409, 1546, 3, 2, 2, 2, 9410, 9411, 7, 73, 2, 2, 9411, 9412, 7, 71, 2, 2, 9412, 9413, 7, 81, 2, 2, 9413, 9414, 7, 85, 2, 2, 9414, 9415, 7, 86, 2, 2, 9415, 9416, 7, 70, 2, 2, 9416, 9417, 7, 58, 2, 2, 9417, 1548, 3, 2, 2, 2, 9418, 9419, 7, 73, 2, 2, 9419, 9420, 7, 84, 2, 2, 9420, 9421, 7, 71, 2, 2, 9421, 9422, 7, 71, 2, 2, 9422, 9423, 7, 77, 2, 2, 9423, 1550, 3, 2, 2, 2, 9424, 9425, 7, 74, 2, 2, 9425, 9426, 7, 71, 2, 2, 9426, 9427, 7, 68, 2, 2, 9427, 9428, 7, 84, 2, 2, 9428, 9429, 7, 71, 2, 2, 9429, 9430, 7, 89, 2, 2, 9430, 1552, 3, 2, 2, 2, 9431, 9432, 7, 74, 2, 2, 9432, 9433, 7, 82, 2, 2, 9433, 9434, 7, 58, 2, 2, 9434, 1554, 3, 2, 2, 2, 9435, 9436, 7, 77, 2, 2, 9436, 9437, 7, 71, 2, 2, 9437, 9438, 7, 91, 2, 2, 9438, 9439, 7, 68, 2, 2, 9439, 9440, 7, 69, 2, 2, 9440, 9441, 7, 85, 2, 2, 9441, 9442, 7, 52, 2, 2, 9442, 1556, 3, 2, 2, 2, 9443, 9444, 7, 77, 2, 2, 9444, 9445, 7, 81, 2, 2, 9445, 9446, 7, 75, 2, 2, 9446, 9447, 7, 58, 2, 2, 9447, 9448, 7, 84, 2, 2, 9448, 1558, 3, 2, 2, 2, 9449, 9450, 7, 77, 2, 2, 9450, 9451, 7, 81, 2, 2, 9451, 9452, 7, 75, 2, 2, 9452, 9453, 7, 58, 2, 2, 9453, 9454, 7, 87, 2, 2, 9454, 1560, 3, 2, 2, 2, 9455, 9456, 7, 78, 2, 2, 9456, 9457, 7, 67, 2, 2, 9457, 9458, 7, 86, 2, 2, 9458, 9459, 7, 75, 2, 2, 9459, 9460, 7, 80, 2, 2, 9460, 9461, 7, 51, 2, 2, 9461, 1562, 3, 2, 2, 2, 9462, 9463, 7, 78, 2, 2, 9463, 9464, 7, 67, 2, 2, 9464, 9465, 7, 86, 2, 2, 9465, 9466, 7, 75, 2, 2, 9466, 9467, 7, 80, 2, 2, 9467, 9468, 7, 52, 2, 2, 9468, 1564, 3, 2, 2, 2, 9469, 9470, 7, 78, 2, 2, 9470, 9471, 7, 67, 2, 2, 9471, 9472, 7, 86, 2, 2, 9472, 9473, 7, 75, 2, 2, 9473, 9474, 7, 80, 2, 2, 9474, 9475, 7, 55, 2, 2, 9475, 1566, 3, 2, 2, 2, 9476, 9477, 7, 78, 2, 2, 9477, 9478, 7, 67, 2, 2, 9478, 9479, 7, 86, 2, 2, 9479, 9480, 7, 75, 2, 2, 9480, 9481, 7, 80, 2, 2, 9481, 9482, 7, 57, 2, 2, 9482, 1568, 3, 2, 2, 2, 9483, 9484, 7, 79, 2, 2, 9484, 9485, 7, 67, 2, 2, 9485, 9486, 7, 69, 2, 2, 9486, 9487, 7, 69, 2, 2, 9487, 9488, 7, 71, 2, 2, 9488, 1570, 3, 2, 2, 2, 9489, 9490, 7, 79, 2, 2, 9490, 9491, 7, 67, 2, 2, 9491, 9492, 7, 69, 2, 2, 9492, 9493, 7, 84, 2, 2, 9493, 9494, 7, 81, 2, 2, 9494, 9495, 7, 79, 2, 2, 9495, 9496, 7, 67, 2, 2, 9496, 9497, 7, 80, 2, 2, 9497, 1572, 3, 2, 2, 2, 9498, 9499, 7, 85, 2, 2, 9499, 9500, 7, 76, 2, 2, 9500, 9501, 7, 75, 2, 2, 9501, 9502, 7, 85, 2, 2, 9502, 1574, 3, 2, 2, 2, 9503, 9504, 7, 85, 2, 2, 9504, 9505, 7, 89, 2, 2, 9505, 9506, 7, 71, 2, 2, 9506, 9507, 7, 57, 2, 2, 9507, 1576, 3, 2, 2, 2, 9508, 9509, 7, 86, 2, 2, 9509, 9510, 7, 75, 2, 2, 9510, 9511, 7, 85, 2, 2, 9511, 9512, 7, 56, 2, 2, 9512, 9513, 7, 52, 2, 2, 9513, 9514, 7, 50, 2, 2, 9514, 1578, 3, 2, 2, 2, 9515, 9516, 7, 87, 2, 2, 9516, 9517, 7, 69, 2, 2, 9517, 9518, 7, 85, 2, 2, 9518, 9519, 7, 52, 2, 2, 9519, 1580, 3, 2, 2, 2, 9520, 9521, 7, 87, 2, 2, 9521, 9522, 7, 76, 2, 2, 9522, 9523, 7, 75, 2, 2, 9523, 9524, 7, 85, 2, 2, 9524, 1582, 3, 2, 2, 2, 9525, 9526, 7, 87, 2, 2, 9526, 9527, 7, 86, 2, 2, 9527, 9528, 7, 72, 2, 2, 9528, 9529, 7, 51, 2, 2, 9529, 9530, 7, 56, 2, 2, 9530, 1584, 3, 2, 2, 2, 9531, 9532, 7, 87, 2, 2, 9532, 9533, 7, 86, 2, 2, 9533, 9534, 7, 72, 2, 2, 9534, 9535, 7, 51, 2, 2, 9535, 9536, 7, 56, 2, 2, 9536, 9537, 7, 78, 2, 2, 9537, 9538, 7, 71, 2, 2, 9538, 1586, 3, 2, 2, 2, 9539, 9540, 7, 87, 2, 2, 9540, 9541, 7, 86, 2, 2, 9541, 9542, 7, 72, 2, 2, 9542, 9543, 7, 53, 2, 2, 9543, 9544, 7, 52, 2, 2, 9544, 1588, 3, 2, 2, 2, 9545, 9546, 7, 87, 2, 2, 9546, 9547, 7, 86, 2, 2, 9547, 9548, 7, 72, 2, 2, 9548, 9549, 7, 58, 2, 2, 9549, 1590, 3, 2, 2, 2, 9550, 9551, 7, 87, 2, 2, 9551, 9552, 7, 86, 2, 2, 9552, 9553, 7, 72, 2, 2, 9553, 9554, 7, 58, 2, 2, 9554, 9555, 7, 79, 2, 2, 9555, 9556, 7, 68, 2, 2, 9556, 9557, 7, 53, 2, 2, 9557, 1592, 3, 2, 2, 2, 9558, 9559, 7, 87, 2, 2, 9559, 9560, 7, 86, 2, 2, 9560, 9561, 7, 72, 2, 2, 9561, 9562, 7, 58, 2, 2, 9562, 9563, 7, 79, 2, 2, 9563, 9564, 7, 68, 2, 2, 9564, 9565, 7, 54, 2, 2, 9565, 1594, 3, 2, 2, 2, 9566, 9567, 7, 67, 2, 2, 9567, 9568, 7, 84, 2, 2, 9568, 9569, 7, 69, 2, 2, 9569, 9570, 7, 74, 2, 2, 9570, 9571, 7, 75, 2, 2, 9571, 9572, 7, 88, 2, 2, 9572, 9573, 7, 71, 2, 2, 9573, 1596, 3, 2, 2, 2, 9574, 9575, 7, 68, 2, 2, 9575, 9576, 7, 78, 2, 2, 9576, 9577, 7, 67, 2, 2, 9577, 9578, 7, 69, 2, 2, 9578, 9579, 7, 77, 2, 2, 9579, 9580, 7, 74, 2, 2, 9580, 9581, 7, 81, 2, 2, 9581, 9582, 7, 78, 2, 2, 9582, 9583, 7, 71, 2, 2, 9583, 1598, 3, 2, 2, 2, 9584, 9585, 7, 69, 2, 2, 9585, 9586, 7, 85, 2, 2, 9586, 9587, 7, 88, 2, 2, 9587, 1600, 3, 2, 2, 2, 9588, 9589, 7, 72, 2, 2, 9589, 9590, 7, 71, 2, 2, 9590, 9591, 7, 70, 2, 2, 9591, 9592, 7, 71, 2, 2, 9592, 9593, 7, 84, 2, 2, 9593, 9594, 7, 67, 2, 2, 9594, 9595, 7, 86, 2, 2, 9595, 9596, 7, 71, 2, 2, 9596, 9597, 7, 70, 2, 2, 9597, 1602, 3, 2, 2, 2, 9598, 9599, 7, 75, 2, 2, 9599, 9600, 7, 80, 2, 2, 9600, 9601, 7, 80, 2, 2, 9601, 9602, 7, 81, 2, 2, 9602, 9603, 7, 70, 2, 2, 9603, 9604, 7, 68, 2, 2, 9604, 1604, 3, 2, 2, 2, 9605, 9606, 7, 79, 2, 2, 9606, 9607, 7, 71, 2, 2, 9607, 9608, 7, 79, 2, 2, 9608, 9609, 7, 81, 2, 2, 9609, 9610, 7, 84, 2, 2, 9610, 9611, 7, 91, 2, 2, 9611, 1606, 3, 2, 2, 2, 9612, 9613, 7, 79, 2, 2, 9613, 9614, 7, 84, 2, 2, 9614, 9615, 7, 73, 2, 2, 9615, 9616, 7, 97, 2, 2, 9616, 9617, 7, 79, 2, 2, 9617, 9618, 7, 91, 2, 2, 9618, 9619, 7, 75, 2, 2, 9619, 9620, 7, 85, 2, 2, 9620, 9621, 7, 67, 2, 2, 9621, 9622, 7, 79, 2, 2, 9622, 1608, 3, 2, 2, 2, 9623, 9624, 7, 79, 2, 2, 9624, 9625, 7, 91, 2, 2, 9625, 9626, 7, 75, 2, 2, 9626, 9627, 7, 85, 2, 2, 9627, 9628, 7, 67, 2, 2, 9628, 9629, 7, 79, 2, 2, 9629, 1610, 3, 2, 2, 2, 9630, 9631, 7, 80, 2, 2, 9631, 9632, 7, 70, 2, 2, 9632, 9633, 7, 68, 2, 2, 9633, 1612, 3, 2, 2, 2, 9634, 9635, 7, 80, 2, 2, 9635, 9636, 7, 70, 2, 2, 9636, 9637, 7, 68, 2, 2, 9637, 9638, 7, 69, 2, 2, 9638, 9639, 7, 78, 2, 2, 9639, 9640, 7, 87, 2, 2, 9640, 9641, 7, 85, 2, 2, 9641, 9642, 7, 86, 2, 2, 9642, 9643, 7, 71, 2, 2, 9643, 9644, 7, 84, 2, 2, 9644, 1614, 3, 2, 2, 2, 9645, 9646, 7, 82, 2, 2, 9646, 9647, 7, 71, 2, 2, 9647, 9648, 7, 84, 2, 2, 9648, 9649, 7, 72, 2, 2, 9649, 9650, 7, 81, 2, 2, 9650, 9651, 7, 84, 2, 2, 9651, 9652, 7, 79, 2, 2, 9652, 9653, 7, 67, 2, 2, 9653, 9654, 7, 80, 2, 2, 9654, 9655, 7, 69, 2, 2, 9655, 9656, 7, 71, 2, 2, 9656, 9657, 7, 97, 2, 2, 9657, 9658, 7, 85, 2, 2, 9658, 9659, 7, 69, 2, 2, 9659, 9660, 7, 74, 2, 2, 9660, 9661, 7, 71, 2, 2, 9661, 9662, 7, 79, 2, 2, 9662, 9663, 7, 67, 2, 2, 9663, 1616, 3, 2, 2, 2, 9664, 9665, 7, 86, 2, 2, 9665, 9666, 7, 81, 2, 2, 9666, 9667, 7, 77, 2, 2, 9667, 9668, 7, 87, 2, 2, 9668, 9669, 7, 70, 2, 2, 9669, 9670, 7, 68, 2, 2, 9670, 1618, 3, 2, 2, 2, 9671, 9672, 7, 84, 2, 2, 9672, 9673, 7, 71, 2, 2, 9673, 9674, 7, 82, 2, 2, 9674, 9675, 7, 71, 2, 2, 9675, 9676, 7, 67, 2, 2, 9676, 9677, 7, 86, 2, 2, 9677, 9678, 7, 67, 2, 2, 9678, 9679, 7, 68, 2, 2, 9679, 9680, 7, 78, 2, 2, 9680, 9681, 7, 71, 2, 2, 9681, 1620, 3, 2, 2, 2, 9682, 9683, 7, 69, 2, 2, 9683, 9684, 7, 81, 2, 2, 9684, 9685, 7, 79, 2, 2, 9685, 9686, 7, 79, 2, 2, 9686, 9687, 7, 75, 2, 2, 9687, 9688, 7, 86, 2, 2, 9688, 9689, 7, 86, 2, 2, 9689, 9690, 7, 71, 2, 2, 9690, 9691, 7, 70, 2, 2, 9691, 1622, 3, 2, 2, 2, 9692, 9693, 7, 87, 2, 2, 9693, 9694, 7, 80, 2, 2, 9694, 9695, 7, 69, 2, 2, 9695, 9696, 7, 81, 2, 2, 9696, 9697, 7, 79, 2, 2, 9697, 9698, 7, 79, 2, 2, 9698, 9699, 7, 75, 2, 2, 9699, 9700, 7, 86, 2, 2, 9700, 9701, 7, 86, 2, 2, 9701, 9702, 7, 71, 2, 2, 9702, 9703, 7, 70, 2, 2, 9703, 1624, 3, 2, 2, 2, 9704, 9705, 7, 85, 2, 2, 9705, 9706, 7, 71, 2, 2, 9706, 9707, 7, 84, 2, 2, 9707, 9708, 7, 75, 2, 2, 9708, 9709, 7, 67, 2, 2, 9709, 9710, 7, 78, 2, 2, 9710, 9711, 7, 75, 2, 2, 9711, 9712, 7, 92, 2, 2, 9712, 9713, 7, 67, 2, 2, 9713, 9714, 7, 68, 2, 2, 9714, 9715, 7, 78, 2, 2, 9715, 9716, 7, 71, 2, 2, 9716, 1626, 3, 2, 2, 2, 9717, 9718, 7, 73, 2, 2, 9718, 9719, 7, 71, 2, 2, 9719, 9720, 7, 81, 2, 2, 9720, 9721, 7, 79, 2, 2, 9721, 9722, 7, 71, 2, 2, 9722, 9723, 7, 86, 2, 2, 9723, 9724, 7, 84, 2, 2, 9724, 9725, 7, 91, 2, 2, 9725, 9726, 7, 69, 2, 2, 9726, 9727, 7, 81, 2, 2, 9727, 9728, 7, 78, 2, 2, 9728, 9729, 7, 78, 2, 2, 9729, 9730, 7, 71, 2, 2, 9730, 9731, 7, 69, 2, 2, 9731, 9732, 7, 86, 2, 2, 9732, 9733, 7, 75, 2, 2, 9733, 9734, 7, 81, 2, 2, 9734, 9735, 7, 80, 2, 2, 9735, 1628, 3, 2, 2, 2, 9736, 9737, 7, 73, 2, 2, 9737, 9738, 7, 71, 2, 2, 9738, 9739, 7, 81, 2, 2, 9739, 9740, 7, 79, 2, 2, 9740, 9741, 7, 69, 2, 2, 9741, 9742, 7, 81, 2, 2, 9742, 9743, 7, 78, 2, 2, 9743, 9744, 7, 78, 2, 2, 9744, 9745, 7, 71, 2, 2, 9745, 9746, 7, 69, 2, 2, 9746, 9747, 7, 86, 2, 2, 9747, 9748, 7, 75, 2, 2, 9748, 9749, 7, 81, 2, 2, 9749, 9750, 7, 80, 2, 2, 9750, 1630, 3, 2, 2, 2, 9751, 9752, 7, 73, 2, 2, 9752, 9753, 7, 71, 2, 2, 9753, 9754, 7, 81, 2, 2, 9754, 9755, 7, 79, 2, 2, 9755, 9756, 7, 71, 2, 2, 9756, 9757, 7, 86, 2, 2, 9757, 9758, 7, 84, 2, 2, 9758, 9759, 7, 91, 2, 2, 9759, 1632, 3, 2, 2, 2, 9760, 9761, 7, 78, 2, 2, 9761, 9762, 7, 75, 2, 2, 9762, 9763, 7, 80, 2, 2, 9763, 9764, 7, 71, 2, 2, 9764, 9765, 7, 85, 2, 2, 9765, 9766, 7, 86, 2, 2, 9766, 9767, 7, 84, 2, 2, 9767, 9768, 7, 75, 2, 2, 9768, 9769, 7, 80, 2, 2, 9769, 9770, 7, 73, 2, 2, 9770, 1634, 3, 2, 2, 2, 9771, 9772, 7, 79, 2, 2, 9772, 9773, 7, 87, 2, 2, 9773, 9774, 7, 78, 2, 2, 9774, 9775, 7, 86, 2, 2, 9775, 9776, 7, 75, 2, 2, 9776, 9777, 7, 78, 2, 2, 9777, 9778, 7, 75, 2, 2, 9778, 9779, 7, 80, 2, 2, 9779, 9780, 7, 71, 2, 2, 9780, 9781, 7, 85, 2, 2, 9781, 9782, 7, 86, 2, 2, 9782, 9783, 7, 84, 2, 2, 9783, 9784, 7, 75, 2, 2, 9784, 9785, 7, 80, 2, 2, 9785, 9786, 7, 73, 2, 2, 9786, 1636, 3, 2, 2, 2, 9787, 9788, 7, 79, 2, 2, 9788, 9789, 7, 87, 2, 2, 9789, 9790, 7, 78, 2, 2, 9790, 9791, 7, 86, 2, 2, 9791, 9792, 7, 75, 2, 2, 9792, 9793, 7, 82, 2, 2, 9793, 9794, 7, 81, 2, 2, 9794, 9795, 7, 75, 2, 2, 9795, 9796, 7, 80, 2, 2, 9796, 9797, 7, 86, 2, 2, 9797, 1638, 3, 2, 2, 2, 9798, 9799, 7, 79, 2, 2, 9799, 9800, 7, 87, 2, 2, 9800, 9801, 7, 78, 2, 2, 9801, 9802, 7, 86, 2, 2, 9802, 9803, 7, 75, 2, 2, 9803, 9804, 7, 82, 2, 2, 9804, 9805, 7, 81, 2, 2, 9805, 9806, 7, 78, 2, 2, 9806, 9807, 7, 91, 2, 2, 9807, 9808, 7, 73, 2, 2, 9808, 9809, 7, 81, 2, 2, 9809, 9810, 7, 80, 2, 2, 9810, 1640, 3, 2, 2, 2, 9811, 9812, 7, 82, 2, 2, 9812, 9813, 7, 81, 2, 2, 9813, 9814, 7, 75, 2, 2, 9814, 9815, 7, 80, 2, 2, 9815, 9816, 7, 86, 2, 2, 9816, 1642, 3, 2, 2, 2, 9817, 9818, 7, 82, 2, 2, 9818, 9819, 7, 81, 2, 2, 9819, 9820, 7, 78, 2, 2, 9820, 9821, 7, 91, 2, 2, 9821, 9822, 7, 73, 2, 2, 9822, 9823, 7, 81, 2, 2, 9823, 9824, 7, 80, 2, 2, 9824, 1644, 3, 2, 2, 2, 9825, 9826, 7, 69, 2, 2, 9826, 9827, 7, 67, 2, 2, 9827, 9828, 7, 86, 2, 2, 9828, 9829, 7, 67, 2, 2, 9829, 9830, 7, 78, 2, 2, 9830, 9831, 7, 81, 2, 2, 9831, 9832, 7, 73, 2, 2, 9832, 9833, 7, 97, 2, 2, 9833, 9834, 7, 80, 2, 2, 9834, 9835, 7, 67, 2, 2, 9835, 9836, 7, 79, 2, 2, 9836, 9837, 7, 71, 2, 2, 9837, 1646, 3, 2, 2, 2, 9838, 9839, 7, 69, 2, 2, 9839, 9840, 7, 74, 2, 2, 9840, 9841, 7, 67, 2, 2, 9841, 9842, 7, 84, 2, 2, 9842, 9843, 7, 85, 2, 2, 9843, 9844, 7, 71, 2, 2, 9844, 9845, 7, 86, 2, 2, 9845, 1648, 3, 2, 2, 2, 9846, 9847, 7, 69, 2, 2, 9847, 9848, 7, 81, 2, 2, 9848, 9849, 7, 78, 2, 2, 9849, 9850, 7, 78, 2, 2, 9850, 9851, 7, 67, 2, 2, 9851, 9852, 7, 86, 2, 2, 9852, 9853, 7, 75, 2, 2, 9853, 9854, 7, 81, 2, 2, 9854, 9855, 7, 80, 2, 2, 9855, 1650, 3, 2, 2, 2, 9856, 9857, 7, 71, 2, 2, 9857, 9858, 7, 80, 2, 2, 9858, 9859, 7, 73, 2, 2, 9859, 9860, 7, 75, 2, 2, 9860, 9861, 7, 80, 2, 2, 9861, 9862, 7, 71, 2, 2, 9862, 9863, 7, 97, 2, 2, 9863, 9864, 7, 67, 2, 2, 9864, 9865, 7, 86, 2, 2, 9865, 9866, 7, 86, 2, 2, 9866, 9867, 7, 84, 2, 2, 9867, 9868, 7, 75, 2, 2, 9868, 9869, 7, 68, 2, 2, 9869, 9870, 7, 87, 2, 2, 9870, 9871, 7, 86, 2, 2, 9871, 9872, 7, 71, 2, 2, 9872, 1652, 3, 2, 2, 2, 9873, 9874, 7, 72, 2, 2, 9874, 9875, 7, 81, 2, 2, 9875, 9876, 7, 84, 2, 2, 9876, 9877, 7, 79, 2, 2, 9877, 9878, 7, 67, 2, 2, 9878, 9879, 7, 86, 2, 2, 9879, 1654, 3, 2, 2, 2, 9880, 9881, 7, 73, 2, 2, 9881, 9882, 7, 71, 2, 2, 9882, 9883, 7, 86, 2, 2, 9883, 9884, 7, 97, 2, 2, 9884, 9885, 7, 72, 2, 2, 9885, 9886, 7, 81, 2, 2, 9886, 9887, 7, 84, 2, 2, 9887, 9888, 7, 79, 2, 2, 9888, 9889, 7, 67, 2, 2, 9889, 9890, 7, 86, 2, 2, 9890, 1656, 3, 2, 2, 2, 9891, 9892, 7, 75, 2, 2, 9892, 9893, 7, 80, 2, 2, 9893, 9894, 7, 86, 2, 2, 9894, 9895, 7, 71, 2, 2, 9895, 9896, 7, 84, 2, 2, 9896, 9897, 7, 85, 2, 2, 9897, 9898, 7, 71, 2, 2, 9898, 9899, 7, 69, 2, 2, 9899, 9900, 7, 86, 2, 2, 9900, 1658, 3, 2, 2, 2, 9901, 9902, 7, 84, 2, 2, 9902, 9903, 7, 67, 2, 2, 9903, 9904, 7, 80, 2, 2, 9904, 9905, 7, 70, 2, 2, 9905, 9906, 7, 81, 2, 2, 9906, 9907, 7, 79, 2, 2, 9907, 1660, 3, 2, 2, 2, 9908, 9909, 7, 84, 2, 2, 9909, 9910, 7, 71, 2, 2, 9910, 9911, 7, 88, 2, 2, 9911, 9912, 7, 71, 2, 2, 9912, 9913, 7, 84, 2, 2, 9913, 9914, 7, 85, 2, 2, 9914, 9915, 7, 71, 2, 2, 9915, 1662, 3, 2, 2, 2, 9916, 9917, 7, 84, 2, 2, 9917, 9918, 7, 81, 2, 2, 9918, 9919, 7, 89, 2, 2, 9919, 9920, 7, 97, 2, 2, 9920, 9921, 7, 69, 2, 2, 9921, 9922, 7, 81, 2, 2, 9922, 9923, 7, 87, 2, 2, 9923, 9924, 7, 80, 2, 2, 9924, 9925, 7, 86, 2, 2, 9925, 1664, 3, 2, 2, 2, 9926, 9927, 7, 85, 2, 2, 9927, 9928, 7, 69, 2, 2, 9928, 9929, 7, 74, 2, 2, 9929, 9930, 7, 71, 2, 2, 9930, 9931, 7, 79, 2, 2, 9931, 9932, 7, 67, 2, 2, 9932, 9933, 7, 97, 2, 2, 9933, 9934, 7, 80, 2, 2, 9934, 9935, 7, 67, 2, 2, 9935, 9936, 7, 79, 2, 2, 9936, 9937, 7, 71, 2, 2, 9937, 1666, 3, 2, 2, 2, 9938, 9939, 7, 85, 2, 2, 9939, 9940, 7, 71, 2, 2, 9940, 9941, 7, 69, 2, 2, 9941, 9942, 7, 81, 2, 2, 9942, 9943, 7, 80, 2, 2, 9943, 9944, 7, 70, 2, 2, 9944, 9945, 7, 67, 2, 2, 9945, 9946, 7, 84, 2, 2, 9946, 9947, 7, 91, 2, 2, 9947, 9948, 7, 97, 2, 2, 9948, 9949, 7, 71, 2, 2, 9949, 9950, 7, 80, 2, 2, 9950, 9951, 7, 73, 2, 2, 9951, 9952, 7, 75, 2, 2, 9952, 9953, 7, 80, 2, 2, 9953, 9954, 7, 71, 2, 2, 9954, 9955, 7, 97, 2, 2, 9955, 9956, 7, 67, 2, 2, 9956, 9957, 7, 86, 2, 2, 9957, 9958, 7, 86, 2, 2, 9958, 9959, 7, 84, 2, 2, 9959, 9960, 7, 75, 2, 2, 9960, 9961, 7, 68, 2, 2, 9961, 9962, 7, 87, 2, 2, 9962, 9963, 7, 86, 2, 2, 9963, 9964, 7, 71, 2, 2, 9964, 1668, 3, 2, 2, 2, 9965, 9966, 7, 85, 2, 2, 9966, 9967, 7, 84, 2, 2, 9967, 9968, 7, 75, 2, 2, 9968, 9969, 7, 70, 2, 2, 9969, 1670, 3, 2, 2, 2, 9970, 9971, 7, 85, 2, 2, 9971, 9972, 7, 91, 2, 2, 9972, 9973, 7, 85, 2, 2, 9973, 9974, 7, 86, 2, 2, 9974, 9975, 7, 71, 2, 2, 9975, 9976, 7, 79, 2, 2, 9976, 1672, 3, 2, 2, 2, 9977, 9978, 7, 85, 2, 2, 9978, 9979, 7, 91, 2, 2, 9979, 9980, 7, 85, 2, 2, 9980, 9981, 7, 86, 2, 2, 9981, 9982, 7, 71, 2, 2, 9982, 9983, 7, 79, 2, 2, 9983, 9984, 7, 97, 2, 2, 9984, 9985, 7, 87, 2, 2, 9985, 9986, 7, 85, 2, 2, 9986, 9987, 7, 71, 2, 2, 9987, 9988, 7, 84, 2, 2, 9988, 1674, 3, 2, 2, 2, 9989, 9990, 7, 86, 2, 2, 9990, 9991, 7, 74, 2, 2, 9991, 9992, 7, 84, 2, 2, 9992, 9993, 7, 71, 2, 2, 9993, 9994, 7, 67, 2, 2, 9994, 9995, 7, 70, 2, 2, 9995, 9996, 7, 97, 2, 2, 9996, 9997, 7, 82, 2, 2, 9997, 9998, 7, 84, 2, 2, 9998, 9999, 7, 75, 2, 2, 9999, 10000, 7, 81, 2, 2, 10000, 10001, 7, 84, 2, 2, 10001, 10002, 7, 75, 2, 2, 10002, 10003, 7, 86, 2, 2, 10003, 10004, 7, 91, 2, 2, 10004, 1676, 3, 2, 2, 2, 10005, 10006, 7, 86, 2, 2, 10006, 10007, 7, 82, 2, 2, 10007, 10008, 7, 97, 2, 2, 10008, 10009, 7, 69, 2, 2, 10009, 10010, 7, 81, 2, 2, 10010, 10011, 7, 80, 2, 2, 10011, 10012, 7, 80, 2, 2, 10012, 10013, 7, 71, 2, 2, 10013, 10014, 7, 69, 2, 2, 10014, 10015, 7, 86, 2, 2, 10015, 10016, 7, 75, 2, 2, 10016, 10017, 7, 81, 2, 2, 10017, 10018, 7, 80, 2, 2, 10018, 10019, 7, 97, 2, 2, 10019, 10020, 7, 67, 2, 2, 10020, 10021, 7, 70, 2, 2, 10021, 10022, 7, 79, 2, 2, 10022, 10023, 7, 75, 2, 2, 10023, 10024, 7, 80, 2, 2, 10024, 1678, 3, 2, 2, 2, 10025, 10026, 7, 86, 2, 2, 10026, 10027, 7, 91, 2, 2, 10027, 10028, 7, 82, 2, 2, 10028, 10029, 7, 71, 2, 2, 10029, 1680, 3, 2, 2, 2, 10030, 10031, 7, 89, 2, 2, 10031, 10032, 7, 71, 2, 2, 10032, 10033, 7, 75, 2, 2, 10033, 10034, 7, 73, 2, 2, 10034, 10035, 7, 74, 2, 2, 10035, 10036, 7, 86, 2, 2, 10036, 10037, 7, 97, 2, 2, 10037, 10038, 7, 85, 2, 2, 10038, 10039, 7, 86, 2, 2, 10039, 10040, 7, 84, 2, 2, 10040, 10041, 7, 75, 2, 2, 10041, 10042, 7, 80, 2, 2, 10042, 10043, 7, 73, 2, 2, 10043, 1682, 3, 2, 2, 2, 10044, 10045, 7, 60, 2, 2, 10045, 10046, 7, 63, 2, 2, 10046, 1684, 3, 2, 2, 2, 10047, 10048, 7, 45, 2, 2, 10048, 10049, 7, 63, 2, 2, 10049, 1686, 3, 2, 2, 2, 10050, 10051, 7, 47, 2, 2, 10051, 10052, 7, 63, 2, 2, 10052, 1688, 3, 2, 2, 2, 10053, 10054, 7, 44, 2, 2, 10054, 10055, 7, 63, 2, 2, 10055, 1690, 3, 2, 2, 2, 10056, 10057, 7, 49, 2, 2, 10057, 10058, 7, 63, 2, 2, 10058, 1692, 3, 2, 2, 2, 10059, 10060, 7, 39, 2, 2, 10060, 10061, 7, 63, 2, 2, 10061, 1694, 3, 2, 2, 2, 10062, 10063, 7, 40, 2, 2, 10063, 10064, 7, 63, 2, 2, 10064, 1696, 3, 2, 2, 2, 10065, 10066, 7, 96, 2, 2, 10066, 10067, 7, 63, 2, 2, 10067, 1698, 3, 2, 2, 2, 10068, 10069, 7, 126, 2, 2, 10069, 10070, 7, 63, 2, 2, 10070, 1700, 3, 2, 2, 2, 10071, 10072, 7, 44, 2, 2, 10072, 1702, 3, 2, 2, 2, 10073, 10074, 7, 49, 2, 2, 10074, 1704, 3, 2, 2, 2, 10075, 10076, 7, 39, 2, 2, 10076, 1706, 3, 2, 2, 2, 10077, 10078, 7, 45, 2, 2, 10078, 1708, 3, 2, 2, 2, 10079, 10080, 7, 47, 2, 2, 10080, 1710, 3, 2, 2, 2, 10081, 10082, 7, 70, 2, 2, 10082, 10083, 7, 75, 2, 2, 10083, 10084, 7, 88, 2, 2, 10084, 1712, 3, 2, 2, 2, 10085, 10086, 7, 79, 2, 2, 10086, 10087, 7, 81, 2, 2, 10087, 10088, 7, 70, 2, 2, 10088, 1714, 3, 2, 2, 2, 10089, 10090, 7, 63, 2, 2, 10090, 1716, 3, 2, 2, 2, 10091, 10092, 7, 64, 2, 2, 10092, 1718, 3, 2, 2, 2, 10093, 10094, 7, 62, 2, 2, 10094, 1720, 3, 2, 2, 2, 10095, 10096, 7, 35, 2, 2, 10096, 1722, 3, 2, 2, 2, 10097, 10098, 7, 128, 2, 2, 10098, 1724, 3, 2, 2, 2, 10099, 10100, 7, 126, 2, 2, 10100, 1726, 3, 2, 2, 2, 10101, 10102, 7, 40, 2, 2, 10102, 1728, 3, 2, 2, 2, 10103, 10104, 7, 96, 2, 2, 10104, 1730, 3, 2, 2, 2, 10105, 10106, 7, 48, 2, 2, 10106, 1732, 3, 2, 2, 2, 10107, 10108, 7, 42, 2, 2, 10108, 1734, 3, 2, 2, 2, 10109, 10110, 7, 43, 2, 2, 10110, 1736, 3, 2, 2, 2, 10111, 10112, 7, 46, 2, 2, 10112, 1738, 3, 2, 2, 2, 10113, 10114, 7, 61, 2, 2, 10114, 1740, 3, 2, 2, 2, 10115, 10116, 7, 66, 2, 2, 10116, 1742, 3, 2, 2, 2, 10117, 10118, 7, 50, 2, 2, 10118, 1744, 3, 2, 2, 2, 10119, 10120, 7, 51, 2, 2, 10120, 1746, 3, 2, 2, 2, 10121, 10122, 7, 52, 2, 2, 10122, 1748, 3, 2, 2, 2, 10123, 10124, 7, 53, 2, 2, 10124, 1750, 3, 2, 2, 2, 10125, 10126, 7, 41, 2, 2, 10126, 1752, 3, 2, 2, 2, 10127, 10128, 7, 36, 2, 2, 10128, 1754, 3, 2, 2, 2, 10129, 10130, 7, 98, 2, 2, 10130, 1756, 3, 2, 2, 2, 10131, 10132, 7, 60, 2, 2, 10132, 1758, 3, 2, 2, 2, 10133, 10137, 5, 1751, 876, 2, 10134, 10137, 5, 1753, 877, 2, 10135, 10137, 5, 1755, 878, 2, 10136, 10133, 3, 2, 2, 2, 10136, 10134, 3, 2, 2, 2, 10136, 10135, 3, 2, 2, 2, 10137, 1760, 3, 2, 2, 2, 10138, 10139, 7, 98, 2, 2, 10139, 10140, 5, 1795, 898, 2, 10140, 10141, 7, 98, 2, 2, 10141, 1762, 3, 2, 2, 2, 10142, 10144, 5, 1809, 905, 2, 10143, 10142, 3, 2, 2, 2, 10144, 10145, 3, 2, 2, 2, 10145, 10143, 3, 2, 2, 2, 10145, 10146, 3, 2, 2, 2, 10146, 10147, 3, 2, 2, 2, 10147, 10148, 9, 5, 2, 2, 10148, 1764, 3, 2, 2, 2, 10149, 10150, 7, 80, 2, 2, 10150, 10151, 5, 1803, 902, 2, 10151, 1766, 3, 2, 2, 2, 10152, 10156, 5, 1801, 901, 2, 10153, 10156, 5, 1803, 902, 2, 10154, 10156, 5, 1805, 903, 2, 10155, 10152, 3, 2, 2, 2, 10155, 10153, 3, 2, 2, 2, 10155, 10154, 3, 2, 2, 2, 10156, 1768, 3, 2, 2, 2, 10157, 10159, 5, 1809, 905, 2, 10158, 10157, 3, 2, 2, 2, 10159, 10160, 3, 2, 2, 2, 10160, 10158, 3, 2, 2, 2, 10160, 10161, 3, 2, 2, 2, 10161, 1770, 3, 2, 2, 2, 10162, 10163, 7, 90, 2, 2, 10163, 10167, 7, 41, 2, 2, 10164, 10165, 5, 1807, 904, 2, 10165, 10166, 5, 1807, 904, 2, 10166, 10168, 3, 2, 2, 2, 10167, 10164, 3, 2, 2, 2, 10168, 10169, 3, 2, 2, 2, 10169, 10167, 3, 2, 2, 2, 10169, 10170, 3, 2, 2, 2, 10170, 10171, 3, 2, 2, 2, 10171, 10172, 7, 41, 2, 2, 10172, 10182, 3, 2, 2, 2, 10173, 10174, 7, 50, 2, 2, 10174, 10175, 7, 90, 2, 2, 10175, 10177, 3, 2, 2, 2, 10176, 10178, 5, 1807, 904, 2, 10177, 10176, 3, 2, 2, 2, 10178, 10179, 3, 2, 2, 2, 10179, 10177, 3, 2, 2, 2, 10179, 10180, 3, 2, 2, 2, 10180, 10182, 3, 2, 2, 2, 10181, 10162, 3, 2, 2, 2, 10181, 10173, 3, 2, 2, 2, 10182, 1772, 3, 2, 2, 2, 10183, 10185, 5, 1809, 905, 2, 10184, 10183, 3, 2, 2, 2, 10185, 10188, 3, 2, 2, 2, 10186, 10184, 3, 2, 2, 2, 10186, 10187, 3, 2, 2, 2, 10187, 10189, 3, 2, 2, 2, 10188, 10186, 3, 2, 2, 2, 10189, 10191, 7, 48, 2, 2, 10190, 10192, 5, 1809, 905, 2, 10191, 10190, 3, 2, 2, 2, 10192, 10193, 3, 2, 2, 2, 10193, 10191, 3, 2, 2, 2, 10193, 10194, 3, 2, 2, 2, 10194, 10225, 3, 2, 2, 2, 10195, 10197, 5, 1809, 905, 2, 10196, 10195, 3, 2, 2, 2, 10197, 10198, 3, 2, 2, 2, 10198, 10196, 3, 2, 2, 2, 10198, 10199, 3, 2, 2, 2, 10199, 10200, 3, 2, 2, 2, 10200, 10201, 7, 48, 2, 2, 10201, 10202, 5, 1797, 899, 2, 10202, 10225, 3, 2, 2, 2, 10203, 10205, 5, 1809, 905, 2, 10204, 10203, 3, 2, 2, 2, 10205, 10208, 3, 2, 2, 2, 10206, 10204, 3, 2, 2, 2, 10206, 10207, 3, 2, 2, 2, 10207, 10209, 3, 2, 2, 2, 10208, 10206, 3, 2, 2, 2, 10209, 10211, 7, 48, 2, 2, 10210, 10212, 5, 1809, 905, 2, 10211, 10210, 3, 2, 2, 2, 10212, 10213, 3, 2, 2, 2, 10213, 10211, 3, 2, 2, 2, 10213, 10214, 3, 2, 2, 2, 10214, 10215, 3, 2, 2, 2, 10215, 10216, 5, 1797, 899, 2, 10216, 10225, 3, 2, 2, 2, 10217, 10219, 5, 1809, 905, 2, 10218, 10217, 3, 2, 2, 2, 10219, 10220, 3, 2, 2, 2, 10220, 10218, 3, 2, 2, 2, 10220, 10221, 3, 2, 2, 2, 10221, 10222, 3, 2, 2, 2, 10222, 10223, 5, 1797, 899, 2, 10223, 10225, 3, 2, 2, 2, 10224, 10186, 3, 2, 2, 2, 10224, 10196, 3, 2, 2, 2, 10224, 10206, 3, 2, 2, 2, 10224, 10218, 3, 2, 2, 2, 10225, 1774, 3, 2, 2, 2, 10226, 10227, 7, 94, 2, 2, 10227, 10228, 7, 80, 2, 2, 10228, 1776, 3, 2, 2, 2, 10229, 10230, 5, 1811, 906, 2, 10230, 1778, 3, 2, 2, 2, 10231, 10232, 7, 97, 2, 2, 10232, 10233, 5, 1795, 898, 2, 10233, 1780, 3, 2, 2, 2, 10234, 10235, 7, 48, 2, 2, 10235, 10236, 5, 1799, 900, 2, 10236, 1782, 3, 2, 2, 2, 10237, 10238, 5, 1799, 900, 2, 10238, 1784, 3, 2, 2, 2, 10239, 10240, 5, 1805, 903, 2, 10240, 1786, 3, 2, 2, 2, 10241, 10242, 5, 1741, 871, 2, 10242, 10243, 5, 1813, 907, 2, 10243, 1788, 3, 2, 2, 2, 10244, 10251, 5, 1741, 871, 2, 10245, 10252, 5, 1767, 884, 2, 10246, 10248, 9, 6, 2, 2, 10247, 10246, 3, 2, 2, 2, 10248, 10249, 3, 2, 2, 2, 10249, 10247, 3, 2, 2, 2, 10249, 10250, 3, 2, 2, 2, 10250, 10252, 3, 2, 2, 2, 10251, 10245, 3, 2, 2, 2, 10251, 10247, 3, 2, 2, 2, 10252, 1790, 3, 2, 2, 2, 10253, 10254, 5, 1741, 871, 2, 10254, 10261, 5, 1741, 871, 2, 10255, 10257, 9, 6, 2, 2, 10256, 10255, 3, 2, 2, 2, 10257, 10258, 3, 2, 2, 2, 10258, 10256, 3, 2, 2, 2, 10258, 10259, 3, 2, 2, 2, 10259, 10262, 3, 2, 2, 2, 10260, 10262, 5, 1805, 903, 2, 10261, 10256, 3, 2, 2, 2, 10261, 10260, 3, 2, 2, 2, 10262, 1792, 3, 2, 2, 2, 10263, 10264, 5, 1741, 871, 2, 10264, 10271, 5, 1741, 871, 2, 10265, 10267, 9, 6, 2, 2, 10266, 10265, 3, 2, 2, 2, 10267, 10268, 3, 2, 2, 2, 10268, 10266, 3, 2, 2, 2, 10268, 10269, 3, 2, 2, 2, 10269, 10272, 3, 2, 2, 2, 10270, 10272, 5, 1805, 903, 2, 10271, 10266, 3, 2, 2, 2, 10271, 10270, 3, 2, 2, 2, 10272, 1794, 3, 2, 2, 2, 10273, 10315, 5, 1513, 757, 2, 10274, 10315, 5, 1515, 758, 2, 10275, 10315, 5, 1517, 759, 2, 10276, 10315, 5, 457, 229, 2, 10277, 10315, 5, 1519, 760, 2, 10278, 10315, 5, 1521, 761, 2, 10279, 10315, 5, 1523, 762, 2, 10280, 10315, 5, 1525, 763, 2, 10281, 10315, 5, 1527, 764, 2, 10282, 10315, 5, 1529, 765, 2, 10283, 10315, 5, 1531, 766, 2, 10284, 10315, 5, 1533, 767, 2, 10285, 10315, 5, 1535, 768, 2, 10286, 10315, 5, 1537, 769, 2, 10287, 10315, 5, 1539, 770, 2, 10288, 10315, 5, 1543, 772, 2, 10289, 10315, 5, 1545, 773, 2, 10290, 10315, 5, 1547, 774, 2, 10291, 10315, 5, 1549, 775, 2, 10292, 10315, 5, 1551, 776, 2, 10293, 10315, 5, 1553, 777, 2, 10294, 10315, 5, 1555, 778, 2, 10295, 10315, 5, 1557, 779, 2, 10296, 10315, 5, 1559, 780, 2, 10297, 10315, 5, 1561, 781, 2, 10298, 10315, 5, 1563, 782, 2, 10299, 10315, 5, 1565, 783, 2, 10300, 10315, 5, 1567, 784, 2, 10301, 10315, 5, 1569, 785, 2, 10302, 10315, 5, 1571, 786, 2, 10303, 10315, 5, 1573, 787, 2, 10304, 10315, 5, 1575, 788, 2, 10305, 10315, 5, 1577, 789, 2, 10306, 10315, 5, 1579, 790, 2, 10307, 10315, 5, 1581, 791, 2, 10308, 10315, 5, 1583, 792, 2, 10309, 10315, 5, 1585, 793, 2, 10310, 10315, 5, 1587, 794, 2, 10311, 10315, 5, 1589, 795, 2, 10312, 10315, 5, 1591, 796, 2, 10313, 10315, 5, 1593, 797, 2, 10314, 10273, 3, 2, 2, 2, 10314, 10274, 3, 2, 2, 2, 10314, 10275, 3, 2, 2, 2, 10314, 10276, 3, 2, 2, 2, 10314, 10277, 3, 2, 2, 2, 10314, 10278, 3, 2, 2, 2, 10314, 10279, 3, 2, 2, 2, 10314, 10280, 3, 2, 2, 2, 10314, 10281, 3, 2, 2, 2, 10314, 10282, 3, 2, 2, 2, 10314, 10283, 3, 2, 2, 2, 10314, 10284, 3, 2, 2, 2, 10314, 10285, 3, 2, 2, 2, 10314, 10286, 3, 2, 2, 2, 10314, 10287, 3, 2, 2, 2, 10314, 10288, 3, 2, 2, 2, 10314, 10289, 3, 2, 2, 2, 10314, 10290, 3, 2, 2, 2, 10314, 10291, 3, 2, 2, 2, 10314, 10292, 3, 2, 2, 2, 10314, 10293, 3, 2, 2, 2, 10314, 10294, 3, 2, 2, 2, 10314, 10295, 3, 2, 2, 2, 10314, 10296, 3, 2, 2, 2, 10314, 10297, 3, 2, 2, 2, 10314, 10298, 3, 2, 2, 2, 10314, 10299, 3, 2, 2, 2, 10314, 10300, 3, 2, 2, 2, 10314, 10301, 3, 2, 2, 2, 10314, 10302, 3, 2, 2, 2, 10314, 10303, 3, 2, 2, 2, 10314, 10304, 3, 2, 2, 2, 10314, 10305, 3, 2, 2, 2, 10314, 10306, 3, 2, 2, 2, 10314, 10307, 3, 2, 2, 2, 10314, 10308, 3, 2, 2, 2, 10314, 10309, 3, 2, 2, 2, 10314, 10310, 3, 2, 2, 2, 10314, 10311, 3, 2, 2, 2, 10314, 10312, 3, 2, 2, 2, 10314, 10313, 3, 2, 2, 2, 10315, 1796, 3, 2, 2, 2, 10316, 10318, 7, 71, 2, 2, 10317, 10319, 9, 7, 2, 2, 10318, 10317, 3, 2, 2, 2, 10318, 10319, 3, 2, 2, 2, 10319, 10321, 3, 2, 2, 2, 10320, 10322, 5, 1809, 905, 2, 10321, 10320, 3, 2, 2, 2, 10322, 10323, 3, 2, 2, 2, 10323, 10321, 3, 2, 2, 2, 10323, 10324, 3, 2, 2, 2, 10324, 1798, 3, 2, 2, 2, 10325, 10327, 9, 8, 2, 2, 10326, 10325, 3, 2, 2, 2, 10327, 10330, 3, 2, 2, 2, 10328, 10329, 3, 2, 2, 2, 10328, 10326, 3, 2, 2, 2, 10329, 10332, 3, 2, 2, 2, 10330, 10328, 3, 2, 2, 2, 10331, 10333, 9, 9, 2, 2, 10332, 10331, 3, 2, 2, 2, 10333, 10334, 3, 2, 2, 2, 10334, 10335, 3, 2, 2, 2, 10334, 10332, 3, 2, 2, 2, 10335, 10339, 3, 2, 2, 2, 10336, 10338, 9, 8, 2, 2, 10337, 10336, 3, 2, 2, 2, 10338, 10341, 3, 2, 2, 2, 10339, 10337, 3, 2, 2, 2, 10339, 10340, 3, 2, 2, 2, 10340, 1800, 3, 2, 2, 2, 10341, 10339, 3, 2, 2, 2, 10342, 10350, 7, 36, 2, 2, 10343, 10344, 7, 94, 2, 2, 10344, 10349, 11, 2, 2, 2, 10345, 10346, 7, 36, 2, 2, 10346, 10349, 7, 36, 2, 2, 10347, 10349, 10, 10, 2, 2, 10348, 10343, 3, 2, 2, 2, 10348, 10345, 3, 2, 2, 2, 10348, 10347, 3, 2, 2, 2, 10349, 10352, 3, 2, 2, 2, 10350, 10348, 3, 2, 2, 2, 10350, 10351, 3, 2, 2, 2, 10351, 10353, 3, 2, 2, 2, 10352, 10350, 3, 2, 2, 2, 10353, 10354, 7, 36, 2, 2, 10354, 1802, 3, 2, 2, 2, 10355, 10363, 7, 41, 2, 2, 10356, 10357, 7, 94, 2, 2, 10357, 10362, 11, 2, 2, 2, 10358, 10359, 7, 41, 2, 2, 10359, 10362, 7, 41, 2, 2, 10360, 10362, 10, 11, 2, 2, 10361, 10356, 3, 2, 2, 2, 10361, 10358, 3, 2, 2, 2, 10361, 10360, 3, 2, 2, 2, 10362, 10365, 3, 2, 2, 2, 10363, 10361, 3, 2, 2, 2, 10363, 10364, 3, 2, 2, 2, 10364, 10366, 3, 2, 2, 2, 10365, 10363, 3, 2, 2, 2, 10366, 10367, 7, 41, 2, 2, 10367, 1804, 3, 2, 2, 2, 10368, 10374, 7, 98, 2, 2, 10369, 10373, 10, 12, 2, 2, 10370, 10371, 7, 98, 2, 2, 10371, 10373, 7, 98, 2, 2, 10372, 10369, 3, 2, 2, 2, 10372, 10370, 3, 2, 2, 2, 10373, 10376, 3, 2, 2, 2, 10374, 10372, 3, 2, 2, 2, 10374, 10375, 3, 2, 2, 2, 10375, 10377, 3, 2, 2, 2, 10376, 10374, 3, 2, 2, 2, 10377, 10378, 7, 98, 2, 2, 10378, 1806, 3, 2, 2, 2, 10379, 10380, 9, 13, 2, 2, 10380, 1808, 3, 2, 2, 2, 10381, 10382, 9, 14, 2, 2, 10382, 1810, 3, 2, 2, 2, 10383, 10384, 7, 68, 2, 2, 10384, 10386, 7, 41, 2, 2, 10385, 10387, 9, 15, 2, 2, 10386, 10385, 3, 2, 2, 2, 10387, 10388, 3, 2, 2, 2, 10388, 10386, 3, 2, 2, 2, 10388, 10389, 3, 2, 2, 2, 10389, 10390, 3, 2, 2, 2, 10390, 10391, 7, 41, 2, 2, 10391, 1812, 3, 2, 2, 2, 10392, 10394, 9, 14, 2, 2, 10393, 10392, 3, 2, 2, 2, 10394, 10395, 3, 2, 2, 2, 10395, 10393, 3, 2, 2, 2, 10395, 10396, 3, 2, 2, 2, 10396, 10397, 3, 2, 2, 2, 10397, 10399, 7, 48, 2, 2, 10398, 10400, 9, 16, 2, 2, 10399, 10398, 3, 2, 2, 2, 10400, 10401, 3, 2, 2, 2, 10401, 10399, 3, 2, 2, 2, 10401, 10402, 3, 2, 2, 2, 10402, 10423, 3, 2, 2, 2, 10403, 10405, 9, 13, 2, 2, 10404, 10403, 3, 2, 2, 2, 10405, 10408, 3, 2, 2, 2, 10406, 10404, 3, 2, 2, 2, 10406, 10407, 3, 2, 2, 2, 10407, 10409, 3, 2, 2, 2, 10408, 10406, 3, 2, 2, 2, 10409, 10413, 7, 60, 2, 2, 10410, 10412, 9, 13, 2, 2, 10411, 10410, 3, 2, 2, 2, 10412, 10415, 3, 2, 2, 2, 10413, 10411, 3, 2, 2, 2, 10413, 10414, 3, 2, 2, 2, 10414, 10416, 3, 2, 2, 2, 10415, 10413, 3, 2, 2, 2, 10416, 10418, 7, 60, 2, 2, 10417, 10419, 9, 17, 2, 2, 10418, 10417, 3, 2, 2, 2, 10419, 10420, 3, 2, 2, 2, 10420, 10418, 3, 2, 2, 2, 10420, 10421, 3, 2, 2, 2, 10421, 10423, 3, 2, 2, 2, 10422, 10393, 3, 2, 2, 2, 10422, 10406, 3, 2, 2, 2, 10423, 1814, 3, 2, 2, 2, 10424, 10425, 11, 2, 2, 2, 10425, 10426, 3, 2, 2, 2, 10426, 10427, 8, 908, 4, 2, 10427, 1816, 3, 2, 2, 2, 55, 2, 1820, 1831, 1844, 1858, 1862, 1867, 1871, 1875, 1881, 1885, 1887, 9141, 9168, 10136, 10145, 10155, 10160, 10169, 10179, 10181, 10186, 10193, 10198, 10206, 10213, 10220, 10224, 10249, 10251, 10258, 10261, 10268, 10271, 10314, 10318, 10323, 10328, 10334, 10339, 10348, 10350, 10361, 10363, 10372, 10374, 10388, 10395, 10401, 10406, 10413, 10420, 10422, 5, 2, 3, 2, 2, 4, 2, 2, 5, 2] \ No newline at end of file diff --git a/src/lib/mysql/MySqlLexer.tokens b/src/lib/mysql/MySqlLexer.tokens new file mode 100644 index 0000000..8c324d1 --- /dev/null +++ b/src/lib/mysql/MySqlLexer.tokens @@ -0,0 +1,1769 @@ +SPACE=1 +SPEC_MYSQL_COMMENT=2 +COMMENT_INPUT=3 +LINE_COMMENT=4 +KW_ACTIVE=5 +KW_ADD=6 +KW_ALL=7 +KW_ALTER=8 +KW_ALWAYS=9 +KW_ANALYZE=10 +KW_AND=11 +KW_ARRAY=12 +KW_AS=13 +KW_ASC=14 +KW_ATTRIBUTE=15 +KW_BEFORE=16 +KW_BETWEEN=17 +KW_BOTH=18 +KW_BUCKETS=19 +KW_BY=20 +KW_CALL=21 +KW_CASCADE=22 +KW_CASE=23 +KW_CAST=24 +KW_CHANGE=25 +KW_CHARACTER=26 +KW_CHECK=27 +KW_COLLATE=28 +KW_COLUMN=29 +KW_CONDITION=30 +KW_CONSTRAINT=31 +KW_CONTINUE=32 +KW_CONVERT=33 +KW_CREATE=34 +KW_CROSS=35 +KW_CURRENT=36 +KW_CURRENT_USER=37 +KW_CURSOR=38 +KW_DATABASE=39 +KW_DATABASES=40 +KW_DECLARE=41 +KW_DEFAULT=42 +KW_DELAYED=43 +KW_DELETE=44 +KW_DESC=45 +KW_DESCRIBE=46 +KW_DETERMINISTIC=47 +KW_DIAGNOSTICS=48 +KW_DISTINCT=49 +KW_DISTINCTROW=50 +KW_DROP=51 +KW_EACH=52 +KW_ELSE=53 +KW_ELSEIF=54 +KW_EMPTY=55 +KW_ENCLOSED=56 +KW_ENFORCED=57 +KW_ESCAPED=58 +KW_EXCEPT=59 +KW_EXISTS=60 +KW_EXIT=61 +KW_EXPLAIN=62 +KW_FALSE=63 +KW_FETCH=64 +KW_FOR=65 +KW_FORCE=66 +KW_FOREIGN=67 +KW_FROM=68 +KW_FULLTEXT=69 +KW_GENERATE=70 +KW_GENERATED=71 +KW_GET=72 +KW_GRANT=73 +KW_GROUP=74 +KW_HAVING=75 +KW_HIGH_PRIORITY=76 +KW_HISTOGRAM=77 +KW_IF=78 +KW_IGNORE=79 +KW_IN=80 +KW_INACTIVE=81 +KW_INDEX=82 +KW_INFILE=83 +KW_INNER=84 +KW_INOUT=85 +KW_INSERT=86 +KW_INTERVAL=87 +KW_INTO=88 +KW_IS=89 +KW_ITERATE=90 +KW_JOIN=91 +KW_KEY=92 +KW_KEYS=93 +KW_KILL=94 +KW_LATERAL=95 +KW_LEADING=96 +KW_LEAVE=97 +KW_LEFT=98 +KW_LIKE=99 +KW_LIMIT=100 +KW_LINEAR=101 +KW_LINES=102 +KW_LOAD=103 +KW_LOCK=104 +KW_LOCKED=105 +KW_LOOP=106 +KW_LOW_PRIORITY=107 +KW_MASTER_BIND=108 +KW_MASTER_SSL_VERIFY_SERVER_CERT=109 +KW_MATCH=110 +KW_MAXVALUE=111 +KW_MODIFIES=112 +KW_NATURAL=113 +KW_NOT=114 +KW_NO_WRITE_TO_BINLOG=115 +KW_NULL_LITERAL=116 +KW_NUMBER=117 +KW_STREAM=118 +KW_ON=119 +KW_OPTIMIZE=120 +KW_OPTION=121 +KW_OPTIONAL=122 +KW_OPTIONALLY=123 +KW_OR=124 +KW_ORDER=125 +KW_OUT=126 +KW_OUTER=127 +KW_OUTFILE=128 +KW_OVER=129 +KW_PARTITION=130 +KW_PRIMARY=131 +KW_PROCEDURE=132 +KW_PURGE=133 +KW_RANGE=134 +KW_READ=135 +KW_READS=136 +KW_REFERENCE=137 +KW_REFERENCES=138 +KW_REGEXP=139 +KW_RELEASE=140 +KW_RENAME=141 +KW_REPEAT=142 +KW_REPLACE=143 +KW_REQUIRE=144 +KW_RESIGNAL=145 +KW_RESTRICT=146 +KW_RETAIN=147 +KW_RETURN=148 +KW_REVOKE=149 +KW_RIGHT=150 +KW_RLIKE=151 +KW_SCHEMA=152 +KW_SCHEMAS=153 +KW_SELECT=154 +KW_SET=155 +KW_SEPARATOR=156 +KW_SHOW=157 +KW_SIGNAL=158 +KW_SKIP=159 +KW_SKIP_QUERY_REWRITE=160 +KW_SPATIAL=161 +KW_SQL=162 +KW_SQLEXCEPTION=163 +KW_SQLSTATE=164 +KW_SQLWARNING=165 +KW_SQL_BIG_RESULT=166 +KW_SQL_CALC_FOUND_ROWS=167 +KW_SQL_SMALL_RESULT=168 +KW_SSL=169 +KW_STACKED=170 +KW_STARTING=171 +KW_STRAIGHT_JOIN=172 +KW_TABLE=173 +KW_TERMINATED=174 +KW_THEN=175 +KW_TO=176 +KW_TRAILING=177 +KW_TRIGGER=178 +KW_TRUE=179 +KW_UNDO=180 +KW_UNION=181 +KW_UNIQUE=182 +KW_UNLOCK=183 +KW_UNSIGNED=184 +KW_UPDATE=185 +KW_USAGE=186 +KW_USE=187 +KW_USING=188 +KW_VALUES=189 +KW_VCPU=190 +KW_WHEN=191 +KW_WHERE=192 +KW_WHILE=193 +KW_WITH=194 +KW_WRITE=195 +KW_XOR=196 +KW_ZEROFILL=197 +KW_TINYINT=198 +KW_SMALLINT=199 +KW_MEDIUMINT=200 +KW_MIDDLEINT=201 +KW_INT=202 +KW_INT1=203 +KW_INT2=204 +KW_INT3=205 +KW_INT4=206 +KW_INT8=207 +KW_INTEGER=208 +KW_BIGINT=209 +KW_REAL=210 +KW_DOUBLE=211 +KW_PRECISION=212 +KW_FLOAT=213 +KW_FLOAT4=214 +KW_FLOAT8=215 +KW_DECIMAL=216 +KW_DEC=217 +KW_NUMERIC=218 +KW_DATE=219 +KW_TIME=220 +KW_TIMESTAMP=221 +KW_DATETIME=222 +KW_YEAR=223 +KW_CHAR=224 +KW_VARCHAR=225 +KW_NVARCHAR=226 +KW_NATIONAL=227 +KW_BINARY=228 +KW_VARBINARY=229 +KW_TINYBLOB=230 +KW_BLOB=231 +KW_MEDIUMBLOB=232 +KW_LONG=233 +KW_LONGBLOB=234 +KW_TINYTEXT=235 +KW_TEXT=236 +KW_MEDIUMTEXT=237 +KW_LONGTEXT=238 +KW_ENUM=239 +KW_VARYING=240 +KW_SERIAL=241 +KW_YEAR_MONTH=242 +KW_DAY_HOUR=243 +KW_DAY_MINUTE=244 +KW_DAY_SECOND=245 +KW_HOUR_MINUTE=246 +KW_HOUR_SECOND=247 +KW_MINUTE_SECOND=248 +KW_SECOND_MICROSECOND=249 +KW_MINUTE_MICROSECOND=250 +KW_HOUR_MICROSECOND=251 +KW_DAY_MICROSECOND=252 +KW_JSON_TABLE=253 +KW_JSON_VALUE=254 +KW_NESTED=255 +KW_ORDINALITY=256 +KW_PATH=257 +KW_AVG=258 +KW_BIT_AND=259 +KW_BIT_OR=260 +KW_BIT_XOR=261 +KW_COUNT=262 +KW_CUME_DIST=263 +KW_DENSE_RANK=264 +KW_FIRST_VALUE=265 +KW_GROUP_CONCAT=266 +KW_LAG=267 +KW_LAST_VALUE=268 +KW_LEAD=269 +KW_MAX=270 +KW_MIN=271 +KW_NTILE=272 +KW_NTH_VALUE=273 +KW_PERCENT_RANK=274 +KW_RANK=275 +KW_ROW_NUMBER=276 +KW_STD=277 +KW_STDDEV=278 +KW_STDDEV_POP=279 +KW_STDDEV_SAMP=280 +KW_SUM=281 +KW_VAR_POP=282 +KW_VAR_SAMP=283 +KW_VARIANCE=284 +KW_CURRENT_DATE=285 +KW_CURRENT_TIME=286 +KW_CURRENT_TIMESTAMP=287 +KW_LOCALTIME=288 +KW_CURDATE=289 +KW_CURTIME=290 +KW_DATE_ADD=291 +KW_DATE_SUB=292 +KW_EXTRACT=293 +KW_LOCALTIMESTAMP=294 +KW_NOW=295 +KW_POSITION=296 +KW_SUBSTR=297 +KW_SUBSTRING=298 +KW_SYSDATE=299 +KW_TRIM=300 +KW_UTC_DATE=301 +KW_UTC_TIME=302 +KW_UTC_TIMESTAMP=303 +KW_ACCOUNT=304 +KW_ACTION=305 +KW_AFTER=306 +KW_AGGREGATE=307 +KW_ALGORITHM=308 +KW_ANY=309 +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS=310 +KW_AT=311 +KW_AUTHORS=312 +KW_AUTOCOMMIT=313 +KW_AUTOEXTEND_SIZE=314 +KW_AUTO_INCREMENT=315 +KW_AVG_ROW_LENGTH=316 +KW_BEGIN=317 +KW_BINLOG=318 +KW_BIT=319 +KW_BLOCK=320 +KW_BOOL=321 +KW_BOOLEAN=322 +KW_BTREE=323 +KW_CACHE=324 +KW_CASCADED=325 +KW_CHAIN=326 +KW_CHANGED=327 +KW_CHANNEL=328 +KW_CHECKSUM=329 +KW_CHALLENGE_RESPONSE=330 +KW_CIPHER=331 +KW_CLASS_ORIGIN=332 +KW_CLIENT=333 +KW_CLOSE=334 +KW_COALESCE=335 +KW_CODE=336 +KW_COLUMNS=337 +KW_COLUMN_FORMAT=338 +KW_COLUMN_NAME=339 +KW_COMMENT=340 +KW_COMMIT=341 +KW_COMPACT=342 +KW_COMPLETION=343 +KW_COMPONENT=344 +KW_COMPRESSED=345 +KW_COMPRESSION=346 +KW_CONCURRENT=347 +KW_CONNECT=348 +KW_CONNECTION=349 +KW_CONSISTENT=350 +KW_CONSTRAINT_CATALOG=351 +KW_CONSTRAINT_SCHEMA=352 +KW_CONSTRAINT_NAME=353 +KW_CONTAINS=354 +KW_CONTEXT=355 +KW_CONTRIBUTORS=356 +KW_COPY=357 +KW_CPU=358 +KW_CURSOR_NAME=359 +KW_DATA=360 +KW_DATAFILE=361 +KW_DEALLOCATE=362 +KW_DEFAULT_AUTH=363 +KW_DEFINER=364 +KW_DELAY_KEY_WRITE=365 +KW_DES_KEY_FILE=366 +KW_DIRECTORY=367 +KW_DISABLE=368 +KW_DISCARD=369 +KW_DISK=370 +KW_DO=371 +KW_DUMPFILE=372 +KW_DUPLICATE=373 +KW_DYNAMIC=374 +KW_ENABLE=375 +KW_ENCRYPTION=376 +KW_ENCRYPTION_KEY_ID=377 +KW_END=378 +KW_ENDS=379 +KW_ENGINE=380 +KW_ENGINES=381 +KW_ERROR=382 +KW_ERRORS=383 +KW_ESCAPE=384 +KW_EVENT=385 +KW_EVENTS=386 +KW_EVERY=387 +KW_EXCHANGE=388 +KW_EXCLUSIVE=389 +KW_EXPIRE=390 +KW_EXPORT=391 +KW_EXTENDED=392 +KW_EXTENT_SIZE=393 +KW_FACTOR=394 +KW_FAILED_LOGIN_ATTEMPTS=395 +KW_FAST=396 +KW_FAULTS=397 +KW_FIELDS=398 +KW_FILE_BLOCK_SIZE=399 +KW_FILTER=400 +KW_FINISH=401 +KW_FIRST=402 +KW_FIXED=403 +KW_FLUSH=404 +KW_FOLLOWING=405 +KW_FOLLOWS=406 +KW_FOUND=407 +KW_FULL=408 +KW_FUNCTION=409 +KW_GENERAL=410 +KW_GET_MASTER_PUBLIC_KEY=411 +KW_GET_SOURCE_PUBLIC_KEY=412 +KW_GLOBAL=413 +KW_GRANTS=414 +KW_GROUP_REPLICATION=415 +KW_GTID_ONLY=416 +KW_HANDLER=417 +KW_HASH=418 +KW_HELP=419 +KW_HISTORY=420 +KW_HOST=421 +KW_HOSTS=422 +KW_IDENTIFIED=423 +KW_IGNORE_SERVER_IDS=424 +KW_IMPORT=425 +KW_INDEXES=426 +KW_INITIAL=427 +KW_INITIAL_SIZE=428 +KW_INITIATE=429 +KW_INPLACE=430 +KW_INSERT_METHOD=431 +KW_INSTALL=432 +KW_INSTANCE=433 +KW_INSTANT=434 +KW_INVISIBLE=435 +KW_INVOKER=436 +KW_IO=437 +KW_IO_THREAD=438 +KW_IPC=439 +KW_ISOLATION=440 +KW_ISSUER=441 +KW_JSON=442 +KW_KEY_BLOCK_SIZE=443 +KW_LANGUAGE=444 +KW_LAST=445 +KW_LEAVES=446 +KW_LESS=447 +KW_LEVEL=448 +KW_LIST=449 +KW_LOCAL=450 +KW_LOGFILE=451 +KW_LOGS=452 +KW_MASTER=453 +KW_MASTER_AUTO_POSITION=454 +KW_MASTER_COMPRESSION_ALGORITHMS=455 +KW_MASTER_CONNECT_RETRY=456 +KW_MASTER_DELAY=457 +KW_MASTER_HEARTBEAT_PERIOD=458 +KW_MASTER_HOST=459 +KW_MASTER_LOG_FILE=460 +KW_MASTER_LOG_POS=461 +KW_MASTER_PASSWORD=462 +KW_MASTER_PORT=463 +KW_MASTER_PUBLIC_KEY_PATH=464 +KW_MASTER_RETRY_COUNT=465 +KW_MASTER_SSL=466 +KW_MASTER_SSL_CA=467 +KW_MASTER_SSL_CAPATH=468 +KW_MASTER_SSL_CERT=469 +KW_MASTER_SSL_CIPHER=470 +KW_MASTER_SSL_CRL=471 +KW_MASTER_SSL_CRLPATH=472 +KW_MASTER_SSL_KEY=473 +KW_MASTER_TLS_CIPHERSUITES=474 +KW_MASTER_TLS_VERSION=475 +KW_MASTER_USER=476 +KW_MASTER_ZSTD_COMPRESSION_LEVEL=477 +KW_MAX_CONNECTIONS_PER_HOUR=478 +KW_MAX_QUERIES_PER_HOUR=479 +KW_MAX_ROWS=480 +KW_MAX_SIZE=481 +KW_MAX_UPDATES_PER_HOUR=482 +KW_MAX_USER_CONNECTIONS=483 +KW_MEDIUM=484 +KW_MEMBER=485 +KW_MERGE=486 +KW_MESSAGE_TEXT=487 +KW_MID=488 +KW_MIGRATE=489 +KW_MIN_ROWS=490 +KW_MODE=491 +KW_MODIFY=492 +KW_MUTEX=493 +KW_MYSQL=494 +KW_MYSQL_ERRNO=495 +KW_NAME=496 +KW_NAMES=497 +KW_NCHAR=498 +KW_NETWORK_NAMESPACE=499 +KW_NEVER=500 +KW_NEXT=501 +KW_NO=502 +KW_NOWAIT=503 +KW_NODEGROUP=504 +KW_NONE=505 +KW_ODBC=506 +KW_OFF=507 +KW_OFFLINE=508 +KW_OFFSET=509 +KW_OF=510 +KW_OLD=511 +KW_OLD_PASSWORD=512 +KW_ONE=513 +KW_ONLINE=514 +KW_ONLY=515 +KW_OPEN=516 +KW_OPTIMIZER_COSTS=517 +KW_OPTIONS=518 +KW_OWNER=519 +KW_PACK_KEYS=520 +KW_PAGE=521 +KW_PAGE_CHECKSUM=522 +KW_PAGE_COMPRESSED=523 +KW_PAGE_COMPRESSION_LEVEL=524 +KW_PARSER=525 +KW_PARTIAL=526 +KW_PARTITIONING=527 +KW_PARTITIONS=528 +KW_PASSWORD=529 +KW_PASSWORD_LOCK_TIME=530 +KW_PERSIST=531 +KW_PERSIST_ONLY=532 +KW_PHASE=533 +KW_PLUGIN=534 +KW_PLUGIN_DIR=535 +KW_PLUGINS=536 +KW_PORT=537 +KW_PRECEDES=538 +KW_PRECEDING=539 +KW_PREPARE=540 +KW_PRESERVE=541 +KW_PREV=542 +KW_PRIVILEGE_CHECKS_USER=543 +KW_PROCESSLIST=544 +KW_PROFILE=545 +KW_PROFILES=546 +KW_PROXY=547 +KW_QUERY=548 +KW_QUICK=549 +KW_REBUILD=550 +KW_RECOVER=551 +KW_RECURSIVE=552 +KW_REDO_BUFFER_SIZE=553 +KW_REDUNDANT=554 +KW_REGISTRATION=555 +KW_RELAY=556 +KW_RELAY_LOG_FILE=557 +KW_RELAY_LOG_POS=558 +KW_RELAYLOG=559 +KW_REMOVE=560 +KW_REORGANIZE=561 +KW_REPAIR=562 +KW_REPLICA=563 +KW_REPLICAS=564 +KW_REPLICATE_DO_DB=565 +KW_REPLICATE_DO_TABLE=566 +KW_REPLICATE_IGNORE_DB=567 +KW_REPLICATE_IGNORE_TABLE=568 +KW_REPLICATE_REWRITE_DB=569 +KW_REPLICATE_WILD_DO_TABLE=570 +KW_REPLICATE_WILD_IGNORE_TABLE=571 +KW_REPLICATION=572 +KW_REQUIRE_ROW_FORMAT=573 +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK=574 +KW_RESET=575 +KW_RESTART=576 +KW_RESUME=577 +KW_RETURNED_SQLSTATE=578 +KW_RETURNING=579 +KW_RETURNS=580 +KW_REUSE=581 +KW_ROLE=582 +KW_ROLLBACK=583 +KW_ROLLUP=584 +KW_ROTATE=585 +KW_ROW=586 +KW_ROWS=587 +KW_ROW_FORMAT=588 +KW_SAVEPOINT=589 +KW_SCHEDULE=590 +KW_SECURITY=591 +KW_SERVER=592 +KW_SESSION=593 +KW_SHARE=594 +KW_SHARED=595 +KW_SIGNED=596 +KW_SIMPLE=597 +KW_SLAVE=598 +KW_SLOW=599 +KW_SNAPSHOT=600 +KW_SOCKET=601 +KW_SOME=602 +KW_SONAME=603 +KW_SOUNDS=604 +KW_SOURCE=605 +KW_SOURCE_BIND=606 +KW_SOURCE_HOST=607 +KW_SOURCE_USER=608 +KW_SOURCE_PASSWORD=609 +KW_SOURCE_PORT=610 +KW_SOURCE_LOG_FILE=611 +KW_SOURCE_LOG_POS=612 +KW_SOURCE_AUTO_POSITION=613 +KW_SOURCE_HEARTBEAT_PERIOD=614 +KW_SOURCE_CONNECT_RETRY=615 +KW_SOURCE_RETRY_COUNT=616 +KW_SOURCE_CONNECTION_AUTO_FAILOVER=617 +KW_SOURCE_DELAY=618 +KW_SOURCE_COMPRESSION_ALGORITHMS=619 +KW_SOURCE_ZSTD_COMPRESSION_LEVEL=620 +KW_SOURCE_SSL=621 +KW_SOURCE_SSL_CA=622 +KW_SOURCE_SSL_CAPATH=623 +KW_SOURCE_SSL_CERT=624 +KW_SOURCE_SSL_CRL=625 +KW_SOURCE_SSL_CRLPATH=626 +KW_SOURCE_SSL_KEY=627 +KW_SOURCE_SSL_CIPHER=628 +KW_SOURCE_SSL_VERIFY_SERVER_CERT=629 +KW_SOURCE_TLS_VERSION=630 +KW_SOURCE_TLS_CIPHERSUITES=631 +KW_SOURCE_PUBLIC_KEY_PATH=632 +KW_SQL_AFTER_GTIDS=633 +KW_SQL_AFTER_MTS_GAPS=634 +KW_SQL_BEFORE_GTIDS=635 +KW_SQL_BUFFER_RESULT=636 +KW_SQL_CACHE=637 +KW_SQL_NO_CACHE=638 +KW_SQL_THREAD=639 +KW_START=640 +KW_STARTS=641 +KW_STATS_AUTO_RECALC=642 +KW_STATS_PERSISTENT=643 +KW_STATS_SAMPLE_PAGES=644 +KW_STATUS=645 +KW_STOP=646 +KW_STORAGE=647 +KW_STORED=648 +KW_STRING=649 +KW_SUBCLASS_ORIGIN=650 +KW_SUBJECT=651 +KW_SUBPARTITION=652 +KW_SUBPARTITIONS=653 +KW_SUSPEND=654 +KW_SWAPS=655 +KW_SWITCHES=656 +KW_TABLE_NAME=657 +KW_TABLESPACE=658 +KW_TABLE_TYPE=659 +KW_TEMPORARY=660 +KW_TEMPTABLE=661 +KW_THAN=662 +KW_TRADITIONAL=663 +KW_TRANSACTION=664 +KW_TRANSACTIONAL=665 +KW_TREE=666 +KW_TRIGGERS=667 +KW_TRUNCATE=668 +KW_UNBOUNDED=669 +KW_UNDEFINED=670 +KW_UNDOFILE=671 +KW_UNDO_BUFFER_SIZE=672 +KW_UNINSTALL=673 +KW_UNKNOWN=674 +KW_UNREGISTER=675 +KW_UNTIL=676 +KW_UPGRADE=677 +KW_USER=678 +KW_USE_FRM=679 +KW_USER_RESOURCES=680 +KW_VALIDATION=681 +KW_VALUE=682 +KW_VARIABLES=683 +KW_VIEW=684 +KW_VIRTUAL=685 +KW_VISIBLE=686 +KW_WAIT=687 +KW_WARNINGS=688 +KW_WINDOW=689 +KW_WITHOUT=690 +KW_WORK=691 +KW_WRAPPER=692 +KW_X509=693 +KW_XA=694 +KW_XML=695 +KW_QUARTER=696 +KW_MONTH=697 +KW_DAY=698 +KW_HOUR=699 +KW_MINUTE=700 +KW_WEEK=701 +KW_SECOND=702 +KW_MICROSECOND=703 +KW_ADMIN=704 +KW_APPLICATION_PASSWORD_ADMIN=705 +KW_AUDIT_ABORT_EXEMPT=706 +KW_AUDIT_ADMIN=707 +KW_AUTHENTICATION=708 +KW_AUTHENTICATION_POLICY_ADMIN=709 +KW_BACKUP_ADMIN=710 +KW_BINLOG_ADMIN=711 +KW_BINLOG_ENCRYPTION_ADMIN=712 +KW_CLONE=713 +KW_CLONE_ADMIN=714 +KW_CONNECTION_ADMIN=715 +KW_ENCRYPTION_KEY_ADMIN=716 +KW_EXECUTE=717 +KW_FILE=718 +KW_FIREWALL_ADMIN=719 +KW_FIREWALL_EXEMPT=720 +KW_FIREWALL_USER=721 +KW_FLUSH_OPTIMIZER_COSTS=722 +KW_FLUSH_STATUS=723 +KW_FLUSH_TABLES=724 +KW_FLUSH_USER_RESOURCES=725 +KW_GROUP_REPLICATION_ADMIN=726 +KW_INNODB_REDO_LOG_ARCHIVE=727 +KW_INNODB_REDO_LOG_ENABLE=728 +KW_INVOKE=729 +KW_LAMBDA=730 +KW_NDB_STORED_USER=731 +KW_PASSWORDLESS_USER_ADMIN=732 +KW_PERSIST_RO_VARIABLES_ADMIN=733 +KW_PRIVILEGES=734 +KW_PROCESS=735 +KW_RELOAD=736 +KW_REPLICATION_APPLIER=737 +KW_REPLICATION_SLAVE_ADMIN=738 +KW_RESOURCE=739 +KW_RESOURCE_GROUP_ADMIN=740 +KW_RESOURCE_GROUP_USER=741 +KW_ROLE_ADMIN=742 +KW_ROUTINE=743 +KW_S3=744 +KW_SERVICE_CONNECTION_ADMIN=745 +KW_SESSION_VARIABLES_ADMIN=746 +KW_SET_USER_ID=747 +KW_SHOW_ROUTINE=748 +KW_SHUTDOWN=749 +KW_SUPER=750 +KW_SYSTEM_VARIABLES_ADMIN=751 +KW_TABLES=752 +KW_TABLE_ENCRYPTION_ADMIN=753 +KW_VERSION_TOKEN_ADMIN=754 +KW_XA_RECOVER_ADMIN=755 +KW_ARMSCII8=756 +KW_ASCII=757 +KW_BIG5=758 +KW_CP1250=759 +KW_CP1251=760 +KW_CP1256=761 +KW_CP1257=762 +KW_CP850=763 +KW_CP852=764 +KW_CP866=765 +KW_CP932=766 +KW_DEC8=767 +KW_EUCJPMS=768 +KW_EUCKR=769 +KW_GB18030=770 +KW_GB2312=771 +KW_GBK=772 +KW_GEOSTD8=773 +KW_GREEK=774 +KW_HEBREW=775 +KW_HP8=776 +KW_KEYBCS2=777 +KW_KOI8R=778 +KW_KOI8U=779 +KW_LATIN1=780 +KW_LATIN2=781 +KW_LATIN5=782 +KW_LATIN7=783 +KW_MACCE=784 +KW_MACROMAN=785 +KW_SJIS=786 +KW_SWE7=787 +KW_TIS620=788 +KW_UCS2=789 +KW_UJIS=790 +KW_UTF16=791 +KW_UTF16LE=792 +KW_UTF32=793 +KW_UTF8=794 +KW_UTF8MB3=795 +KW_UTF8MB4=796 +KW_ARCHIVE=797 +KW_BLACKHOLE=798 +KW_CSV=799 +KW_FEDERATED=800 +KW_INNODB=801 +KW_MEMORY=802 +KW_MRG_MYISAM=803 +KW_MYISAM=804 +KW_NDB=805 +KW_NDBCLUSTER=806 +KW_PERFORMANCE_SCHEMA=807 +KW_TOKUDB=808 +KW_REPEATABLE=809 +KW_COMMITTED=810 +KW_UNCOMMITTED=811 +KW_SERIALIZABLE=812 +KW_GEOMETRYCOLLECTION=813 +KW_GEOMCOLLECTION=814 +KW_GEOMETRY=815 +KW_LINESTRING=816 +KW_MULTILINESTRING=817 +KW_MULTIPOINT=818 +KW_MULTIPOLYGON=819 +KW_POINT=820 +KW_POLYGON=821 +KW_CATALOG_NAME=822 +KW_CHARSET=823 +KW_COLLATION=824 +KW_ENGINE_ATTRIBUTE=825 +KW_FORMAT=826 +KW_GET_FORMAT=827 +KW_INTERSECT=828 +KW_RANDOM=829 +KW_REVERSE=830 +KW_ROW_COUNT=831 +KW_SCHEMA_NAME=832 +KW_SECONDARY_ENGINE_ATTRIBUTE=833 +KW_SRID=834 +KW_SYSTEM=835 +KW_SYSTEM_USER=836 +KW_THREAD_PRIORITY=837 +KW_TP_CONNECTION_ADMIN=838 +KW_TYPE=839 +KW_WEIGHT_STRING=840 +VAR_ASSIGN=841 +PLUS_ASSIGN=842 +MINUS_ASSIGN=843 +MULT_ASSIGN=844 +DIV_ASSIGN=845 +MOD_ASSIGN=846 +AND_ASSIGN=847 +XOR_ASSIGN=848 +OR_ASSIGN=849 +STAR=850 +DIVIDE=851 +MODULE=852 +PLUS=853 +MINUS=854 +DIV=855 +MOD=856 +EQUAL_SYMBOL=857 +GREATER_SYMBOL=858 +LESS_SYMBOL=859 +EXCLAMATION_SYMBOL=860 +BIT_NOT_OP=861 +BIT_OR_OP=862 +BIT_AND_OP=863 +BIT_XOR_OP=864 +DOT=865 +LR_BRACKET=866 +RR_BRACKET=867 +COMMA=868 +SEMI=869 +AT_SIGN=870 +ZERO_DECIMAL=871 +ONE_DECIMAL=872 +TWO_DECIMAL=873 +THREE_DECIMAL=874 +SINGLE_QUOTE_SYMB=875 +DOUBLE_QUOTE_SYMB=876 +REVERSE_QUOTE_SYMB=877 +COLON_SYMB=878 +CHARSET_REVERSE_QOUTE_STRING=879 +FILESIZE_LITERAL=880 +START_NATIONAL_STRING_LITERAL=881 +STRING_LITERAL=882 +DECIMAL_LITERAL=883 +HEXADECIMAL_LITERAL=884 +REAL_LITERAL=885 +NULL_SPEC_LITERAL=886 +BIT_STRING=887 +STRING_CHARSET_NAME=888 +DOT_ID=889 +ID=890 +REVERSE_QUOTE_ID=891 +HOST_IP_ADDRESS=892 +LOCAL_ID=893 +GLOBAL_ID=894 +PERSIST_ID=895 +ERROR_RECONGNIGION=896 +'ACTIVE'=5 +'ADD'=6 +'ALL'=7 +'ALTER'=8 +'ALWAYS'=9 +'ANALYZE'=10 +'AND'=11 +'ARRAY'=12 +'AS'=13 +'ASC'=14 +'ATTRIBUTE'=15 +'BEFORE'=16 +'BETWEEN'=17 +'BOTH'=18 +'BUCKETS'=19 +'BY'=20 +'CALL'=21 +'CASCADE'=22 +'CASE'=23 +'CAST'=24 +'CHANGE'=25 +'CHARACTER'=26 +'CHECK'=27 +'COLLATE'=28 +'COLUMN'=29 +'CONDITION'=30 +'CONSTRAINT'=31 +'CONTINUE'=32 +'CONVERT'=33 +'CREATE'=34 +'CROSS'=35 +'CURRENT'=36 +'CURRENT_USER'=37 +'CURSOR'=38 +'DATABASE'=39 +'DATABASES'=40 +'DECLARE'=41 +'DEFAULT'=42 +'DELAYED'=43 +'DELETE'=44 +'DESC'=45 +'DESCRIBE'=46 +'DETERMINISTIC'=47 +'DIAGNOSTICS'=48 +'DISTINCT'=49 +'DISTINCTROW'=50 +'DROP'=51 +'EACH'=52 +'ELSE'=53 +'ELSEIF'=54 +'EMPTY'=55 +'ENCLOSED'=56 +'ENFORCED'=57 +'ESCAPED'=58 +'EXCEPT'=59 +'EXISTS'=60 +'EXIT'=61 +'EXPLAIN'=62 +'FALSE'=63 +'FETCH'=64 +'FOR'=65 +'FORCE'=66 +'FOREIGN'=67 +'FROM'=68 +'FULLTEXT'=69 +'GENERATE'=70 +'GENERATED'=71 +'GET'=72 +'GRANT'=73 +'GROUP'=74 +'HAVING'=75 +'HIGH_PRIORITY'=76 +'HISTOGRAM'=77 +'IF'=78 +'IGNORE'=79 +'IN'=80 +'INACTIVE'=81 +'INDEX'=82 +'INFILE'=83 +'INNER'=84 +'INOUT'=85 +'INSERT'=86 +'INTERVAL'=87 +'INTO'=88 +'IS'=89 +'ITERATE'=90 +'JOIN'=91 +'KEY'=92 +'KEYS'=93 +'KILL'=94 +'LATERAL'=95 +'LEADING'=96 +'LEAVE'=97 +'LEFT'=98 +'LIKE'=99 +'LIMIT'=100 +'LINEAR'=101 +'LINES'=102 +'LOAD'=103 +'LOCK'=104 +'LOCKED'=105 +'LOOP'=106 +'LOW_PRIORITY'=107 +'MASTER_BIND'=108 +'MASTER_SSL_VERIFY_SERVER_CERT'=109 +'MATCH'=110 +'MAXVALUE'=111 +'MODIFIES'=112 +'NATURAL'=113 +'NOT'=114 +'NO_WRITE_TO_BINLOG'=115 +'NULL'=116 +'NUMBER'=117 +'STREAM'=118 +'ON'=119 +'OPTIMIZE'=120 +'OPTION'=121 +'OPTIONAL'=122 +'OPTIONALLY'=123 +'OR'=124 +'ORDER'=125 +'OUT'=126 +'OUTER'=127 +'OUTFILE'=128 +'OVER'=129 +'PARTITION'=130 +'PRIMARY'=131 +'PROCEDURE'=132 +'PURGE'=133 +'RANGE'=134 +'READ'=135 +'READS'=136 +'REFERENCE'=137 +'REFERENCES'=138 +'REGEXP'=139 +'RELEASE'=140 +'RENAME'=141 +'REPEAT'=142 +'REPLACE'=143 +'REQUIRE'=144 +'RESIGNAL'=145 +'RESTRICT'=146 +'RETAIN'=147 +'RETURN'=148 +'REVOKE'=149 +'RIGHT'=150 +'RLIKE'=151 +'SCHEMA'=152 +'SCHEMAS'=153 +'SELECT'=154 +'SET'=155 +'SEPARATOR'=156 +'SHOW'=157 +'SIGNAL'=158 +'SKIP'=159 +'SKIP_QUERY_REWRITE'=160 +'SPATIAL'=161 +'SQL'=162 +'SQLEXCEPTION'=163 +'SQLSTATE'=164 +'SQLWARNING'=165 +'SQL_BIG_RESULT'=166 +'SQL_CALC_FOUND_ROWS'=167 +'SQL_SMALL_RESULT'=168 +'SSL'=169 +'STACKED'=170 +'STARTING'=171 +'STRAIGHT_JOIN'=172 +'TABLE'=173 +'TERMINATED'=174 +'THEN'=175 +'TO'=176 +'TRAILING'=177 +'TRIGGER'=178 +'TRUE'=179 +'UNDO'=180 +'UNION'=181 +'UNIQUE'=182 +'UNLOCK'=183 +'UNSIGNED'=184 +'UPDATE'=185 +'USAGE'=186 +'USE'=187 +'USING'=188 +'VALUES'=189 +'VCPU'=190 +'WHEN'=191 +'WHERE'=192 +'WHILE'=193 +'WITH'=194 +'WRITE'=195 +'XOR'=196 +'ZEROFILL'=197 +'TINYINT'=198 +'SMALLINT'=199 +'MEDIUMINT'=200 +'MIDDLEINT'=201 +'INT'=202 +'INT1'=203 +'INT2'=204 +'INT3'=205 +'INT4'=206 +'INT8'=207 +'INTEGER'=208 +'BIGINT'=209 +'REAL'=210 +'DOUBLE'=211 +'PRECISION'=212 +'FLOAT'=213 +'FLOAT4'=214 +'FLOAT8'=215 +'DECIMAL'=216 +'DEC'=217 +'NUMERIC'=218 +'DATE'=219 +'TIME'=220 +'TIMESTAMP'=221 +'DATETIME'=222 +'YEAR'=223 +'CHAR'=224 +'VARCHAR'=225 +'NVARCHAR'=226 +'NATIONAL'=227 +'BINARY'=228 +'VARBINARY'=229 +'TINYBLOB'=230 +'BLOB'=231 +'MEDIUMBLOB'=232 +'LONG'=233 +'LONGBLOB'=234 +'TINYTEXT'=235 +'TEXT'=236 +'MEDIUMTEXT'=237 +'LONGTEXT'=238 +'ENUM'=239 +'VARYING'=240 +'SERIAL'=241 +'YEAR_MONTH'=242 +'DAY_HOUR'=243 +'DAY_MINUTE'=244 +'DAY_SECOND'=245 +'HOUR_MINUTE'=246 +'HOUR_SECOND'=247 +'MINUTE_SECOND'=248 +'SECOND_MICROSECOND'=249 +'MINUTE_MICROSECOND'=250 +'HOUR_MICROSECOND'=251 +'DAY_MICROSECOND'=252 +'JSON_TABLE'=253 +'JSON_VALUE'=254 +'NESTED'=255 +'ORDINALITY'=256 +'PATH'=257 +'AVG'=258 +'BIT_AND'=259 +'BIT_OR'=260 +'BIT_XOR'=261 +'COUNT'=262 +'CUME_DIST'=263 +'DENSE_RANK'=264 +'FIRST_VALUE'=265 +'GROUP_CONCAT'=266 +'LAG'=267 +'LAST_VALUE'=268 +'LEAD'=269 +'MAX'=270 +'MIN'=271 +'NTILE'=272 +'NTH_VALUE'=273 +'PERCENT_RANK'=274 +'RANK'=275 +'ROW_NUMBER'=276 +'STD'=277 +'STDDEV'=278 +'STDDEV_POP'=279 +'STDDEV_SAMP'=280 +'SUM'=281 +'VAR_POP'=282 +'VAR_SAMP'=283 +'VARIANCE'=284 +'CURRENT_DATE'=285 +'CURRENT_TIME'=286 +'CURRENT_TIMESTAMP'=287 +'LOCALTIME'=288 +'CURDATE'=289 +'CURTIME'=290 +'DATE_ADD'=291 +'DATE_SUB'=292 +'EXTRACT'=293 +'LOCALTIMESTAMP'=294 +'NOW'=295 +'POSITION'=296 +'SUBSTR'=297 +'SUBSTRING'=298 +'SYSDATE'=299 +'TRIM'=300 +'UTC_DATE'=301 +'UTC_TIME'=302 +'UTC_TIMESTAMP'=303 +'ACCOUNT'=304 +'ACTION'=305 +'AFTER'=306 +'AGGREGATE'=307 +'ALGORITHM'=308 +'ANY'=309 +'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS'=310 +'AT'=311 +'AUTHORS'=312 +'AUTOCOMMIT'=313 +'AUTOEXTEND_SIZE'=314 +'AUTO_INCREMENT'=315 +'AVG_ROW_LENGTH'=316 +'BEGIN'=317 +'BINLOG'=318 +'BIT'=319 +'BLOCK'=320 +'BOOL'=321 +'BOOLEAN'=322 +'BTREE'=323 +'CACHE'=324 +'CASCADED'=325 +'CHAIN'=326 +'CHANGED'=327 +'CHANNEL'=328 +'CHECKSUM'=329 +'CHALLENGE_RESPONSE'=330 +'CIPHER'=331 +'CLASS_ORIGIN'=332 +'CLIENT'=333 +'CLOSE'=334 +'COALESCE'=335 +'CODE'=336 +'COLUMNS'=337 +'COLUMN_FORMAT'=338 +'COLUMN_NAME'=339 +'COMMENT'=340 +'COMMIT'=341 +'COMPACT'=342 +'COMPLETION'=343 +'COMPONENT'=344 +'COMPRESSED'=345 +'COMPRESSION'=346 +'CONCURRENT'=347 +'CONNECT'=348 +'CONNECTION'=349 +'CONSISTENT'=350 +'CONSTRAINT_CATALOG'=351 +'CONSTRAINT_SCHEMA'=352 +'CONSTRAINT_NAME'=353 +'CONTAINS'=354 +'CONTEXT'=355 +'CONTRIBUTORS'=356 +'COPY'=357 +'CPU'=358 +'CURSOR_NAME'=359 +'DATA'=360 +'DATAFILE'=361 +'DEALLOCATE'=362 +'DEFAULT_AUTH'=363 +'DEFINER'=364 +'DELAY_KEY_WRITE'=365 +'DES_KEY_FILE'=366 +'DIRECTORY'=367 +'DISABLE'=368 +'DISCARD'=369 +'DISK'=370 +'DO'=371 +'DUMPFILE'=372 +'DUPLICATE'=373 +'DYNAMIC'=374 +'ENABLE'=375 +'ENCRYPTION'=376 +'ENCRYPTION_KEY_ID'=377 +'END'=378 +'ENDS'=379 +'ENGINE'=380 +'ENGINES'=381 +'ERROR'=382 +'ERRORS'=383 +'ESCAPE'=384 +'EVENT'=385 +'EVENTS'=386 +'EVERY'=387 +'EXCHANGE'=388 +'EXCLUSIVE'=389 +'EXPIRE'=390 +'EXPORT'=391 +'EXTENDED'=392 +'EXTENT_SIZE'=393 +'FACTOR'=394 +'FAILED_LOGIN_ATTEMPTS'=395 +'FAST'=396 +'FAULTS'=397 +'FIELDS'=398 +'FILE_BLOCK_SIZE'=399 +'FILTER'=400 +'FINISH'=401 +'FIRST'=402 +'FIXED'=403 +'FLUSH'=404 +'FOLLOWING'=405 +'FOLLOWS'=406 +'FOUND'=407 +'FULL'=408 +'FUNCTION'=409 +'GENERAL'=410 +'GET_MASTER_PUBLIC_KEY'=411 +'GET_SOURCE_PUBLIC_KEY'=412 +'GLOBAL'=413 +'GRANTS'=414 +'GROUP_REPLICATION'=415 +'GTID_ONLY'=416 +'HANDLER'=417 +'HASH'=418 +'HELP'=419 +'HISTORY'=420 +'HOST'=421 +'HOSTS'=422 +'IDENTIFIED'=423 +'IGNORE_SERVER_IDS'=424 +'IMPORT'=425 +'INDEXES'=426 +'INITIAL'=427 +'INITIAL_SIZE'=428 +'INITIATE'=429 +'INPLACE'=430 +'INSERT_METHOD'=431 +'INSTALL'=432 +'INSTANCE'=433 +'INSTANT'=434 +'INVISIBLE'=435 +'INVOKER'=436 +'IO'=437 +'IO_THREAD'=438 +'IPC'=439 +'ISOLATION'=440 +'ISSUER'=441 +'JSON'=442 +'KEY_BLOCK_SIZE'=443 +'LANGUAGE'=444 +'LAST'=445 +'LEAVES'=446 +'LESS'=447 +'LEVEL'=448 +'LIST'=449 +'LOCAL'=450 +'LOGFILE'=451 +'LOGS'=452 +'MASTER'=453 +'MASTER_AUTO_POSITION'=454 +'MASTER_COMPRESSION_ALGORITHMS'=455 +'MASTER_CONNECT_RETRY'=456 +'MASTER_DELAY'=457 +'MASTER_HEARTBEAT_PERIOD'=458 +'MASTER_HOST'=459 +'MASTER_LOG_FILE'=460 +'MASTER_LOG_POS'=461 +'MASTER_PASSWORD'=462 +'MASTER_PORT'=463 +'MASTER_PUBLIC_KEY_PATH'=464 +'MASTER_RETRY_COUNT'=465 +'MASTER_SSL'=466 +'MASTER_SSL_CA'=467 +'MASTER_SSL_CAPATH'=468 +'MASTER_SSL_CERT'=469 +'MASTER_SSL_CIPHER'=470 +'MASTER_SSL_CRL'=471 +'MASTER_SSL_CRLPATH'=472 +'MASTER_SSL_KEY'=473 +'MASTER_TLS_CIPHERSUITES'=474 +'MASTER_TLS_VERSION'=475 +'MASTER_USER'=476 +'MASTER_ZSTD_COMPRESSION_LEVEL'=477 +'MAX_CONNECTIONS_PER_HOUR'=478 +'MAX_QUERIES_PER_HOUR'=479 +'MAX_ROWS'=480 +'MAX_SIZE'=481 +'MAX_UPDATES_PER_HOUR'=482 +'MAX_USER_CONNECTIONS'=483 +'MEDIUM'=484 +'MEMBER'=485 +'MERGE'=486 +'MESSAGE_TEXT'=487 +'MID'=488 +'MIGRATE'=489 +'MIN_ROWS'=490 +'MODE'=491 +'MODIFY'=492 +'MUTEX'=493 +'MYSQL'=494 +'MYSQL_ERRNO'=495 +'NAME'=496 +'NAMES'=497 +'NCHAR'=498 +'NETWORK_NAMESPACE'=499 +'NEVER'=500 +'NEXT'=501 +'NO'=502 +'NOWAIT'=503 +'NODEGROUP'=504 +'NONE'=505 +'ODBC'=506 +'OFF'=507 +'OFFLINE'=508 +'OFFSET'=509 +'OF'=510 +'OLD'=511 +'OLD_PASSWORD'=512 +'ONE'=513 +'ONLINE'=514 +'ONLY'=515 +'OPEN'=516 +'OPTIMIZER_COSTS'=517 +'OPTIONS'=518 +'OWNER'=519 +'PACK_KEYS'=520 +'PAGE'=521 +'PAGE_CHECKSUM'=522 +'PAGE_COMPRESSED'=523 +'PAGE_COMPRESSION_LEVEL'=524 +'PARSER'=525 +'PARTIAL'=526 +'PARTITIONING'=527 +'PARTITIONS'=528 +'PASSWORD'=529 +'PASSWORD_LOCK_TIME'=530 +'PERSIST'=531 +'PERSIST_ONLY'=532 +'PHASE'=533 +'PLUGIN'=534 +'PLUGIN_DIR'=535 +'PLUGINS'=536 +'PORT'=537 +'PRECEDES'=538 +'PRECEDING'=539 +'PREPARE'=540 +'PRESERVE'=541 +'PREV'=542 +'PRIVILEGE_CHECKS_USER'=543 +'PROCESSLIST'=544 +'PROFILE'=545 +'PROFILES'=546 +'PROXY'=547 +'QUERY'=548 +'QUICK'=549 +'REBUILD'=550 +'RECOVER'=551 +'RECURSIVE'=552 +'REDO_BUFFER_SIZE'=553 +'REDUNDANT'=554 +'REGISTRATION'=555 +'RELAY'=556 +'RELAY_LOG_FILE'=557 +'RELAY_LOG_POS'=558 +'RELAYLOG'=559 +'REMOVE'=560 +'REORGANIZE'=561 +'REPAIR'=562 +'REPLICA'=563 +'REPLICAS'=564 +'REPLICATE_DO_DB'=565 +'REPLICATE_DO_TABLE'=566 +'REPLICATE_IGNORE_DB'=567 +'REPLICATE_IGNORE_TABLE'=568 +'REPLICATE_REWRITE_DB'=569 +'REPLICATE_WILD_DO_TABLE'=570 +'REPLICATE_WILD_IGNORE_TABLE'=571 +'REPLICATION'=572 +'REQUIRE_ROW_FORMAT'=573 +'REQUIRE_TABLE_PRIMARY_KEY_CHECK'=574 +'RESET'=575 +'RESTART'=576 +'RESUME'=577 +'RETURNED_SQLSTATE'=578 +'RETURNING'=579 +'RETURNS'=580 +'REUSE'=581 +'ROLE'=582 +'ROLLBACK'=583 +'ROLLUP'=584 +'ROTATE'=585 +'ROW'=586 +'ROWS'=587 +'ROW_FORMAT'=588 +'SAVEPOINT'=589 +'SCHEDULE'=590 +'SECURITY'=591 +'SERVER'=592 +'SESSION'=593 +'SHARE'=594 +'SHARED'=595 +'SIGNED'=596 +'SIMPLE'=597 +'SLAVE'=598 +'SLOW'=599 +'SNAPSHOT'=600 +'SOCKET'=601 +'SOME'=602 +'SONAME'=603 +'SOUNDS'=604 +'SOURCE'=605 +'SOURCE_BIND'=606 +'SOURCE_HOST'=607 +'SOURCE_USER'=608 +'SOURCE_PASSWORD'=609 +'SOURCE_PORT'=610 +'SOURCE_LOG_FILE'=611 +'SOURCE_LOG_POS'=612 +'SOURCE_AUTO_POSITION'=613 +'SOURCE_HEARTBEAT_PERIOD'=614 +'SOURCE_CONNECT_RETRY'=615 +'SOURCE_RETRY_COUNT'=616 +'SOURCE_CONNECTION_AUTO_FAILOVER'=617 +'SOURCE_DELAY'=618 +'SOURCE_COMPRESSION_ALGORITHMS'=619 +'SOURCE_ZSTD_COMPRESSION_LEVEL'=620 +'SOURCE_SSL'=621 +'SOURCE_SSL_CA'=622 +'SOURCE_SSL_CAPATH'=623 +'SOURCE_SSL_CERT'=624 +'SOURCE_SSL_CRL'=625 +'SOURCE_SSL_CRLPATH'=626 +'SOURCE_SSL_KEY'=627 +'SOURCE_SSL_CIPHER'=628 +'SOURCE_SSL_VERIFY_SERVER_CERT'=629 +'SOURCE_TLS_VERSION'=630 +'SOURCE_TLS_CIPHERSUITES'=631 +'SOURCE_PUBLIC_KEY_PATH'=632 +'SQL_AFTER_GTIDS'=633 +'SQL_AFTER_MTS_GAPS'=634 +'SQL_BEFORE_GTIDS'=635 +'SQL_BUFFER_RESULT'=636 +'SQL_CACHE'=637 +'SQL_NO_CACHE'=638 +'SQL_THREAD'=639 +'START'=640 +'STARTS'=641 +'STATS_AUTO_RECALC'=642 +'STATS_PERSISTENT'=643 +'STATS_SAMPLE_PAGES'=644 +'STATUS'=645 +'STOP'=646 +'STORAGE'=647 +'STORED'=648 +'STRING'=649 +'SUBCLASS_ORIGIN'=650 +'SUBJECT'=651 +'SUBPARTITION'=652 +'SUBPARTITIONS'=653 +'SUSPEND'=654 +'SWAPS'=655 +'SWITCHES'=656 +'TABLE_NAME'=657 +'TABLESPACE'=658 +'TABLE_TYPE'=659 +'TEMPORARY'=660 +'TEMPTABLE'=661 +'THAN'=662 +'TRADITIONAL'=663 +'TRANSACTION'=664 +'TRANSACTIONAL'=665 +'TREE'=666 +'TRIGGERS'=667 +'TRUNCATE'=668 +'UNBOUNDED'=669 +'UNDEFINED'=670 +'UNDOFILE'=671 +'UNDO_BUFFER_SIZE'=672 +'UNINSTALL'=673 +'UNKNOWN'=674 +'UNREGISTER'=675 +'UNTIL'=676 +'UPGRADE'=677 +'USER'=678 +'USE_FRM'=679 +'USER_RESOURCES'=680 +'VALIDATION'=681 +'VALUE'=682 +'VARIABLES'=683 +'VIEW'=684 +'VIRTUAL'=685 +'VISIBLE'=686 +'WAIT'=687 +'WARNINGS'=688 +'WINDOW'=689 +'WITHOUT'=690 +'WORK'=691 +'WRAPPER'=692 +'X509'=693 +'XA'=694 +'XML'=695 +'QUARTER'=696 +'MONTH'=697 +'DAY'=698 +'HOUR'=699 +'MINUTE'=700 +'WEEK'=701 +'SECOND'=702 +'MICROSECOND'=703 +'ADMIN'=704 +'APPLICATION_PASSWORD_ADMIN'=705 +'AUDIT_ABORT_EXEMPT'=706 +'AUDIT_ADMIN'=707 +'AUTHENTICATION'=708 +'AUTHENTICATION_POLICY_ADMIN'=709 +'BACKUP_ADMIN'=710 +'BINLOG_ADMIN'=711 +'BINLOG_ENCRYPTION_ADMIN'=712 +'CLONE'=713 +'CLONE_ADMIN'=714 +'CONNECTION_ADMIN'=715 +'ENCRYPTION_KEY_ADMIN'=716 +'EXECUTE'=717 +'FILE'=718 +'FIREWALL_ADMIN'=719 +'FIREWALL_EXEMPT'=720 +'FIREWALL_USER'=721 +'FLUSH_OPTIMIZER_COSTS'=722 +'FLUSH_STATUS'=723 +'FLUSH_TABLES'=724 +'FLUSH_USER_RESOURCES'=725 +'GROUP_REPLICATION_ADMIN'=726 +'INNODB_REDO_LOG_ARCHIVE'=727 +'INNODB_REDO_LOG_ENABLE'=728 +'INVOKE'=729 +'LAMBDA'=730 +'NDB_STORED_USER'=731 +'PASSWORDLESS_USER_ADMIN'=732 +'PERSIST_RO_VARIABLES_ADMIN'=733 +'PRIVILEGES'=734 +'PROCESS'=735 +'RELOAD'=736 +'REPLICATION_APPLIER'=737 +'REPLICATION_SLAVE_ADMIN'=738 +'RESOURCE'=739 +'RESOURCE_GROUP_ADMIN'=740 +'RESOURCE_GROUP_USER'=741 +'ROLE_ADMIN'=742 +'ROUTINE'=743 +'S3'=744 +'SERVICE_CONNECTION_ADMIN'=745 +'SET_USER_ID'=747 +'SHOW_ROUTINE'=748 +'SHUTDOWN'=749 +'SUPER'=750 +'SYSTEM_VARIABLES_ADMIN'=751 +'TABLES'=752 +'TABLE_ENCRYPTION_ADMIN'=753 +'VERSION_TOKEN_ADMIN'=754 +'XA_RECOVER_ADMIN'=755 +'ARMSCII8'=756 +'ASCII'=757 +'BIG5'=758 +'CP1250'=759 +'CP1251'=760 +'CP1256'=761 +'CP1257'=762 +'CP850'=763 +'CP852'=764 +'CP866'=765 +'CP932'=766 +'DEC8'=767 +'EUCJPMS'=768 +'EUCKR'=769 +'GB18030'=770 +'GB2312'=771 +'GBK'=772 +'GEOSTD8'=773 +'GREEK'=774 +'HEBREW'=775 +'HP8'=776 +'KEYBCS2'=777 +'KOI8R'=778 +'KOI8U'=779 +'LATIN1'=780 +'LATIN2'=781 +'LATIN5'=782 +'LATIN7'=783 +'MACCE'=784 +'MACROMAN'=785 +'SJIS'=786 +'SWE7'=787 +'TIS620'=788 +'UCS2'=789 +'UJIS'=790 +'UTF16'=791 +'UTF16LE'=792 +'UTF32'=793 +'UTF8'=794 +'UTF8MB3'=795 +'UTF8MB4'=796 +'ARCHIVE'=797 +'BLACKHOLE'=798 +'CSV'=799 +'FEDERATED'=800 +'INNODB'=801 +'MEMORY'=802 +'MRG_MYISAM'=803 +'MYISAM'=804 +'NDB'=805 +'NDBCLUSTER'=806 +'PERFORMANCE_SCHEMA'=807 +'TOKUDB'=808 +'REPEATABLE'=809 +'COMMITTED'=810 +'UNCOMMITTED'=811 +'SERIALIZABLE'=812 +'GEOMETRYCOLLECTION'=813 +'GEOMCOLLECTION'=814 +'GEOMETRY'=815 +'LINESTRING'=816 +'MULTILINESTRING'=817 +'MULTIPOINT'=818 +'MULTIPOLYGON'=819 +'POINT'=820 +'POLYGON'=821 +'CATALOG_NAME'=822 +'CHARSET'=823 +'COLLATION'=824 +'ENGINE_ATTRIBUTE'=825 +'FORMAT'=826 +'GET_FORMAT'=827 +'INTERSECT'=828 +'RANDOM'=829 +'REVERSE'=830 +'ROW_COUNT'=831 +'SCHEMA_NAME'=832 +'SECONDARY_ENGINE_ATTRIBUTE'=833 +'SRID'=834 +'SYSTEM'=835 +'SYSTEM_USER'=836 +'THREAD_PRIORITY'=837 +'TP_CONNECTION_ADMIN'=838 +'TYPE'=839 +'WEIGHT_STRING'=840 +':='=841 +'+='=842 +'-='=843 +'*='=844 +'/='=845 +'%='=846 +'&='=847 +'^='=848 +'|='=849 +'*'=850 +'/'=851 +'%'=852 +'+'=853 +'-'=854 +'DIV'=855 +'MOD'=856 +'='=857 +'>'=858 +'<'=859 +'!'=860 +'~'=861 +'|'=862 +'&'=863 +'^'=864 +'.'=865 +'('=866 +')'=867 +','=868 +';'=869 +'@'=870 +'0'=871 +'1'=872 +'2'=873 +'3'=874 +'\''=875 +'"'=876 +'`'=877 +':'=878 diff --git a/src/lib/mysql/MySqlLexer.ts b/src/lib/mysql/MySqlLexer.ts new file mode 100644 index 0000000..ccecf7d --- /dev/null +++ b/src/lib/mysql/MySqlLexer.ts @@ -0,0 +1,6918 @@ +// Generated from /Users/liuyi/Desktop/Projects/dtstack/dt-sql-parser/src/grammar/mysql/MySqlLexer.g4 by ANTLR 4.9.0-SNAPSHOT + + +import { ATN } from "antlr4ts/atn/ATN"; +import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; +import { CharStream } from "antlr4ts/CharStream"; +import { Lexer } from "antlr4ts/Lexer"; +import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator"; +import { NotNull } from "antlr4ts/Decorators"; +import { Override } from "antlr4ts/Decorators"; +import { RuleContext } from "antlr4ts/RuleContext"; +import { Vocabulary } from "antlr4ts/Vocabulary"; +import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; + +import * as Utils from "antlr4ts/misc/Utils"; + + +export class MySqlLexer extends Lexer { + public static readonly SPACE = 1; + public static readonly SPEC_MYSQL_COMMENT = 2; + public static readonly COMMENT_INPUT = 3; + public static readonly LINE_COMMENT = 4; + public static readonly KW_ACTIVE = 5; + public static readonly KW_ADD = 6; + public static readonly KW_ALL = 7; + public static readonly KW_ALTER = 8; + public static readonly KW_ALWAYS = 9; + public static readonly KW_ANALYZE = 10; + public static readonly KW_AND = 11; + public static readonly KW_ARRAY = 12; + public static readonly KW_AS = 13; + public static readonly KW_ASC = 14; + public static readonly KW_ATTRIBUTE = 15; + public static readonly KW_BEFORE = 16; + public static readonly KW_BETWEEN = 17; + public static readonly KW_BOTH = 18; + public static readonly KW_BUCKETS = 19; + public static readonly KW_BY = 20; + public static readonly KW_CALL = 21; + public static readonly KW_CASCADE = 22; + public static readonly KW_CASE = 23; + public static readonly KW_CAST = 24; + public static readonly KW_CHANGE = 25; + public static readonly KW_CHARACTER = 26; + public static readonly KW_CHECK = 27; + public static readonly KW_COLLATE = 28; + public static readonly KW_COLUMN = 29; + public static readonly KW_CONDITION = 30; + public static readonly KW_CONSTRAINT = 31; + public static readonly KW_CONTINUE = 32; + public static readonly KW_CONVERT = 33; + public static readonly KW_CREATE = 34; + public static readonly KW_CROSS = 35; + public static readonly KW_CURRENT = 36; + public static readonly KW_CURRENT_USER = 37; + public static readonly KW_CURSOR = 38; + public static readonly KW_DATABASE = 39; + public static readonly KW_DATABASES = 40; + public static readonly KW_DECLARE = 41; + public static readonly KW_DEFAULT = 42; + public static readonly KW_DELAYED = 43; + public static readonly KW_DELETE = 44; + public static readonly KW_DESC = 45; + public static readonly KW_DESCRIBE = 46; + public static readonly KW_DETERMINISTIC = 47; + public static readonly KW_DIAGNOSTICS = 48; + public static readonly KW_DISTINCT = 49; + public static readonly KW_DISTINCTROW = 50; + public static readonly KW_DROP = 51; + public static readonly KW_EACH = 52; + public static readonly KW_ELSE = 53; + public static readonly KW_ELSEIF = 54; + public static readonly KW_EMPTY = 55; + public static readonly KW_ENCLOSED = 56; + public static readonly KW_ENFORCED = 57; + public static readonly KW_ESCAPED = 58; + public static readonly KW_EXCEPT = 59; + public static readonly KW_EXISTS = 60; + public static readonly KW_EXIT = 61; + public static readonly KW_EXPLAIN = 62; + public static readonly KW_FALSE = 63; + public static readonly KW_FETCH = 64; + public static readonly KW_FOR = 65; + public static readonly KW_FORCE = 66; + public static readonly KW_FOREIGN = 67; + public static readonly KW_FROM = 68; + public static readonly KW_FULLTEXT = 69; + public static readonly KW_GENERATE = 70; + public static readonly KW_GENERATED = 71; + public static readonly KW_GET = 72; + public static readonly KW_GRANT = 73; + public static readonly KW_GROUP = 74; + public static readonly KW_HAVING = 75; + public static readonly KW_HIGH_PRIORITY = 76; + public static readonly KW_HISTOGRAM = 77; + public static readonly KW_IF = 78; + public static readonly KW_IGNORE = 79; + public static readonly KW_IN = 80; + public static readonly KW_INACTIVE = 81; + public static readonly KW_INDEX = 82; + public static readonly KW_INFILE = 83; + public static readonly KW_INNER = 84; + public static readonly KW_INOUT = 85; + public static readonly KW_INSERT = 86; + public static readonly KW_INTERVAL = 87; + public static readonly KW_INTO = 88; + public static readonly KW_IS = 89; + public static readonly KW_ITERATE = 90; + public static readonly KW_JOIN = 91; + public static readonly KW_KEY = 92; + public static readonly KW_KEYS = 93; + public static readonly KW_KILL = 94; + public static readonly KW_LATERAL = 95; + public static readonly KW_LEADING = 96; + public static readonly KW_LEAVE = 97; + public static readonly KW_LEFT = 98; + public static readonly KW_LIKE = 99; + public static readonly KW_LIMIT = 100; + public static readonly KW_LINEAR = 101; + public static readonly KW_LINES = 102; + public static readonly KW_LOAD = 103; + public static readonly KW_LOCK = 104; + public static readonly KW_LOCKED = 105; + public static readonly KW_LOOP = 106; + public static readonly KW_LOW_PRIORITY = 107; + public static readonly KW_MASTER_BIND = 108; + public static readonly KW_MASTER_SSL_VERIFY_SERVER_CERT = 109; + public static readonly KW_MATCH = 110; + public static readonly KW_MAXVALUE = 111; + public static readonly KW_MODIFIES = 112; + public static readonly KW_NATURAL = 113; + public static readonly KW_NOT = 114; + public static readonly KW_NO_WRITE_TO_BINLOG = 115; + public static readonly KW_NULL_LITERAL = 116; + public static readonly KW_NUMBER = 117; + public static readonly KW_STREAM = 118; + public static readonly KW_ON = 119; + public static readonly KW_OPTIMIZE = 120; + public static readonly KW_OPTION = 121; + public static readonly KW_OPTIONAL = 122; + public static readonly KW_OPTIONALLY = 123; + public static readonly KW_OR = 124; + public static readonly KW_ORDER = 125; + public static readonly KW_OUT = 126; + public static readonly KW_OUTER = 127; + public static readonly KW_OUTFILE = 128; + public static readonly KW_OVER = 129; + public static readonly KW_PARTITION = 130; + public static readonly KW_PRIMARY = 131; + public static readonly KW_PROCEDURE = 132; + public static readonly KW_PURGE = 133; + public static readonly KW_RANGE = 134; + public static readonly KW_READ = 135; + public static readonly KW_READS = 136; + public static readonly KW_REFERENCE = 137; + public static readonly KW_REFERENCES = 138; + public static readonly KW_REGEXP = 139; + public static readonly KW_RELEASE = 140; + public static readonly KW_RENAME = 141; + public static readonly KW_REPEAT = 142; + public static readonly KW_REPLACE = 143; + public static readonly KW_REQUIRE = 144; + public static readonly KW_RESIGNAL = 145; + public static readonly KW_RESTRICT = 146; + public static readonly KW_RETAIN = 147; + public static readonly KW_RETURN = 148; + public static readonly KW_REVOKE = 149; + public static readonly KW_RIGHT = 150; + public static readonly KW_RLIKE = 151; + public static readonly KW_SCHEMA = 152; + public static readonly KW_SCHEMAS = 153; + public static readonly KW_SELECT = 154; + public static readonly KW_SET = 155; + public static readonly KW_SEPARATOR = 156; + public static readonly KW_SHOW = 157; + public static readonly KW_SIGNAL = 158; + public static readonly KW_SKIP = 159; + public static readonly KW_SKIP_QUERY_REWRITE = 160; + public static readonly KW_SPATIAL = 161; + public static readonly KW_SQL = 162; + public static readonly KW_SQLEXCEPTION = 163; + public static readonly KW_SQLSTATE = 164; + public static readonly KW_SQLWARNING = 165; + public static readonly KW_SQL_BIG_RESULT = 166; + public static readonly KW_SQL_CALC_FOUND_ROWS = 167; + public static readonly KW_SQL_SMALL_RESULT = 168; + public static readonly KW_SSL = 169; + public static readonly KW_STACKED = 170; + public static readonly KW_STARTING = 171; + public static readonly KW_STRAIGHT_JOIN = 172; + public static readonly KW_TABLE = 173; + public static readonly KW_TERMINATED = 174; + public static readonly KW_THEN = 175; + public static readonly KW_TO = 176; + public static readonly KW_TRAILING = 177; + public static readonly KW_TRIGGER = 178; + public static readonly KW_TRUE = 179; + public static readonly KW_UNDO = 180; + public static readonly KW_UNION = 181; + public static readonly KW_UNIQUE = 182; + public static readonly KW_UNLOCK = 183; + public static readonly KW_UNSIGNED = 184; + public static readonly KW_UPDATE = 185; + public static readonly KW_USAGE = 186; + public static readonly KW_USE = 187; + public static readonly KW_USING = 188; + public static readonly KW_VALUES = 189; + public static readonly KW_VCPU = 190; + public static readonly KW_WHEN = 191; + public static readonly KW_WHERE = 192; + public static readonly KW_WHILE = 193; + public static readonly KW_WITH = 194; + public static readonly KW_WRITE = 195; + public static readonly KW_XOR = 196; + public static readonly KW_ZEROFILL = 197; + public static readonly KW_TINYINT = 198; + public static readonly KW_SMALLINT = 199; + public static readonly KW_MEDIUMINT = 200; + public static readonly KW_MIDDLEINT = 201; + public static readonly KW_INT = 202; + public static readonly KW_INT1 = 203; + public static readonly KW_INT2 = 204; + public static readonly KW_INT3 = 205; + public static readonly KW_INT4 = 206; + public static readonly KW_INT8 = 207; + public static readonly KW_INTEGER = 208; + public static readonly KW_BIGINT = 209; + public static readonly KW_REAL = 210; + public static readonly KW_DOUBLE = 211; + public static readonly KW_PRECISION = 212; + public static readonly KW_FLOAT = 213; + public static readonly KW_FLOAT4 = 214; + public static readonly KW_FLOAT8 = 215; + public static readonly KW_DECIMAL = 216; + public static readonly KW_DEC = 217; + public static readonly KW_NUMERIC = 218; + public static readonly KW_DATE = 219; + public static readonly KW_TIME = 220; + public static readonly KW_TIMESTAMP = 221; + public static readonly KW_DATETIME = 222; + public static readonly KW_YEAR = 223; + public static readonly KW_CHAR = 224; + public static readonly KW_VARCHAR = 225; + public static readonly KW_NVARCHAR = 226; + public static readonly KW_NATIONAL = 227; + public static readonly KW_BINARY = 228; + public static readonly KW_VARBINARY = 229; + public static readonly KW_TINYBLOB = 230; + public static readonly KW_BLOB = 231; + public static readonly KW_MEDIUMBLOB = 232; + public static readonly KW_LONG = 233; + public static readonly KW_LONGBLOB = 234; + public static readonly KW_TINYTEXT = 235; + public static readonly KW_TEXT = 236; + public static readonly KW_MEDIUMTEXT = 237; + public static readonly KW_LONGTEXT = 238; + public static readonly KW_ENUM = 239; + public static readonly KW_VARYING = 240; + public static readonly KW_SERIAL = 241; + public static readonly KW_YEAR_MONTH = 242; + public static readonly KW_DAY_HOUR = 243; + public static readonly KW_DAY_MINUTE = 244; + public static readonly KW_DAY_SECOND = 245; + public static readonly KW_HOUR_MINUTE = 246; + public static readonly KW_HOUR_SECOND = 247; + public static readonly KW_MINUTE_SECOND = 248; + public static readonly KW_SECOND_MICROSECOND = 249; + public static readonly KW_MINUTE_MICROSECOND = 250; + public static readonly KW_HOUR_MICROSECOND = 251; + public static readonly KW_DAY_MICROSECOND = 252; + public static readonly KW_JSON_TABLE = 253; + public static readonly KW_JSON_VALUE = 254; + public static readonly KW_NESTED = 255; + public static readonly KW_ORDINALITY = 256; + public static readonly KW_PATH = 257; + public static readonly KW_AVG = 258; + public static readonly KW_BIT_AND = 259; + public static readonly KW_BIT_OR = 260; + public static readonly KW_BIT_XOR = 261; + public static readonly KW_COUNT = 262; + public static readonly KW_CUME_DIST = 263; + public static readonly KW_DENSE_RANK = 264; + public static readonly KW_FIRST_VALUE = 265; + public static readonly KW_GROUP_CONCAT = 266; + public static readonly KW_LAG = 267; + public static readonly KW_LAST_VALUE = 268; + public static readonly KW_LEAD = 269; + public static readonly KW_MAX = 270; + public static readonly KW_MIN = 271; + public static readonly KW_NTILE = 272; + public static readonly KW_NTH_VALUE = 273; + public static readonly KW_PERCENT_RANK = 274; + public static readonly KW_RANK = 275; + public static readonly KW_ROW_NUMBER = 276; + public static readonly KW_STD = 277; + public static readonly KW_STDDEV = 278; + public static readonly KW_STDDEV_POP = 279; + public static readonly KW_STDDEV_SAMP = 280; + public static readonly KW_SUM = 281; + public static readonly KW_VAR_POP = 282; + public static readonly KW_VAR_SAMP = 283; + public static readonly KW_VARIANCE = 284; + public static readonly KW_CURRENT_DATE = 285; + public static readonly KW_CURRENT_TIME = 286; + public static readonly KW_CURRENT_TIMESTAMP = 287; + public static readonly KW_LOCALTIME = 288; + public static readonly KW_CURDATE = 289; + public static readonly KW_CURTIME = 290; + public static readonly KW_DATE_ADD = 291; + public static readonly KW_DATE_SUB = 292; + public static readonly KW_EXTRACT = 293; + public static readonly KW_LOCALTIMESTAMP = 294; + public static readonly KW_NOW = 295; + public static readonly KW_POSITION = 296; + public static readonly KW_SUBSTR = 297; + public static readonly KW_SUBSTRING = 298; + public static readonly KW_SYSDATE = 299; + public static readonly KW_TRIM = 300; + public static readonly KW_UTC_DATE = 301; + public static readonly KW_UTC_TIME = 302; + public static readonly KW_UTC_TIMESTAMP = 303; + public static readonly KW_ACCOUNT = 304; + public static readonly KW_ACTION = 305; + public static readonly KW_AFTER = 306; + public static readonly KW_AGGREGATE = 307; + public static readonly KW_ALGORITHM = 308; + public static readonly KW_ANY = 309; + public static readonly KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = 310; + public static readonly KW_AT = 311; + public static readonly KW_AUTHORS = 312; + public static readonly KW_AUTOCOMMIT = 313; + public static readonly KW_AUTOEXTEND_SIZE = 314; + public static readonly KW_AUTO_INCREMENT = 315; + public static readonly KW_AVG_ROW_LENGTH = 316; + public static readonly KW_BEGIN = 317; + public static readonly KW_BINLOG = 318; + public static readonly KW_BIT = 319; + public static readonly KW_BLOCK = 320; + public static readonly KW_BOOL = 321; + public static readonly KW_BOOLEAN = 322; + public static readonly KW_BTREE = 323; + public static readonly KW_CACHE = 324; + public static readonly KW_CASCADED = 325; + public static readonly KW_CHAIN = 326; + public static readonly KW_CHANGED = 327; + public static readonly KW_CHANNEL = 328; + public static readonly KW_CHECKSUM = 329; + public static readonly KW_CHALLENGE_RESPONSE = 330; + public static readonly KW_CIPHER = 331; + public static readonly KW_CLASS_ORIGIN = 332; + public static readonly KW_CLIENT = 333; + public static readonly KW_CLOSE = 334; + public static readonly KW_COALESCE = 335; + public static readonly KW_CODE = 336; + public static readonly KW_COLUMNS = 337; + public static readonly KW_COLUMN_FORMAT = 338; + public static readonly KW_COLUMN_NAME = 339; + public static readonly KW_COMMENT = 340; + public static readonly KW_COMMIT = 341; + public static readonly KW_COMPACT = 342; + public static readonly KW_COMPLETION = 343; + public static readonly KW_COMPONENT = 344; + public static readonly KW_COMPRESSED = 345; + public static readonly KW_COMPRESSION = 346; + public static readonly KW_CONCURRENT = 347; + public static readonly KW_CONNECT = 348; + public static readonly KW_CONNECTION = 349; + public static readonly KW_CONSISTENT = 350; + public static readonly KW_CONSTRAINT_CATALOG = 351; + public static readonly KW_CONSTRAINT_SCHEMA = 352; + public static readonly KW_CONSTRAINT_NAME = 353; + public static readonly KW_CONTAINS = 354; + public static readonly KW_CONTEXT = 355; + public static readonly KW_CONTRIBUTORS = 356; + public static readonly KW_COPY = 357; + public static readonly KW_CPU = 358; + public static readonly KW_CURSOR_NAME = 359; + public static readonly KW_DATA = 360; + public static readonly KW_DATAFILE = 361; + public static readonly KW_DEALLOCATE = 362; + public static readonly KW_DEFAULT_AUTH = 363; + public static readonly KW_DEFINER = 364; + public static readonly KW_DELAY_KEY_WRITE = 365; + public static readonly KW_DES_KEY_FILE = 366; + public static readonly KW_DIRECTORY = 367; + public static readonly KW_DISABLE = 368; + public static readonly KW_DISCARD = 369; + public static readonly KW_DISK = 370; + public static readonly KW_DO = 371; + public static readonly KW_DUMPFILE = 372; + public static readonly KW_DUPLICATE = 373; + public static readonly KW_DYNAMIC = 374; + public static readonly KW_ENABLE = 375; + public static readonly KW_ENCRYPTION = 376; + public static readonly KW_ENCRYPTION_KEY_ID = 377; + public static readonly KW_END = 378; + public static readonly KW_ENDS = 379; + public static readonly KW_ENGINE = 380; + public static readonly KW_ENGINES = 381; + public static readonly KW_ERROR = 382; + public static readonly KW_ERRORS = 383; + public static readonly KW_ESCAPE = 384; + public static readonly KW_EVENT = 385; + public static readonly KW_EVENTS = 386; + public static readonly KW_EVERY = 387; + public static readonly KW_EXCHANGE = 388; + public static readonly KW_EXCLUSIVE = 389; + public static readonly KW_EXPIRE = 390; + public static readonly KW_EXPORT = 391; + public static readonly KW_EXTENDED = 392; + public static readonly KW_EXTENT_SIZE = 393; + public static readonly KW_FACTOR = 394; + public static readonly KW_FAILED_LOGIN_ATTEMPTS = 395; + public static readonly KW_FAST = 396; + public static readonly KW_FAULTS = 397; + public static readonly KW_FIELDS = 398; + public static readonly KW_FILE_BLOCK_SIZE = 399; + public static readonly KW_FILTER = 400; + public static readonly KW_FINISH = 401; + public static readonly KW_FIRST = 402; + public static readonly KW_FIXED = 403; + public static readonly KW_FLUSH = 404; + public static readonly KW_FOLLOWING = 405; + public static readonly KW_FOLLOWS = 406; + public static readonly KW_FOUND = 407; + public static readonly KW_FULL = 408; + public static readonly KW_FUNCTION = 409; + public static readonly KW_GENERAL = 410; + public static readonly KW_GET_MASTER_PUBLIC_KEY = 411; + public static readonly KW_GET_SOURCE_PUBLIC_KEY = 412; + public static readonly KW_GLOBAL = 413; + public static readonly KW_GRANTS = 414; + public static readonly KW_GROUP_REPLICATION = 415; + public static readonly KW_GTID_ONLY = 416; + public static readonly KW_HANDLER = 417; + public static readonly KW_HASH = 418; + public static readonly KW_HELP = 419; + public static readonly KW_HISTORY = 420; + public static readonly KW_HOST = 421; + public static readonly KW_HOSTS = 422; + public static readonly KW_IDENTIFIED = 423; + public static readonly KW_IGNORE_SERVER_IDS = 424; + public static readonly KW_IMPORT = 425; + public static readonly KW_INDEXES = 426; + public static readonly KW_INITIAL = 427; + public static readonly KW_INITIAL_SIZE = 428; + public static readonly KW_INITIATE = 429; + public static readonly KW_INPLACE = 430; + public static readonly KW_INSERT_METHOD = 431; + public static readonly KW_INSTALL = 432; + public static readonly KW_INSTANCE = 433; + public static readonly KW_INSTANT = 434; + public static readonly KW_INVISIBLE = 435; + public static readonly KW_INVOKER = 436; + public static readonly KW_IO = 437; + public static readonly KW_IO_THREAD = 438; + public static readonly KW_IPC = 439; + public static readonly KW_ISOLATION = 440; + public static readonly KW_ISSUER = 441; + public static readonly KW_JSON = 442; + public static readonly KW_KEY_BLOCK_SIZE = 443; + public static readonly KW_LANGUAGE = 444; + public static readonly KW_LAST = 445; + public static readonly KW_LEAVES = 446; + public static readonly KW_LESS = 447; + public static readonly KW_LEVEL = 448; + public static readonly KW_LIST = 449; + public static readonly KW_LOCAL = 450; + public static readonly KW_LOGFILE = 451; + public static readonly KW_LOGS = 452; + public static readonly KW_MASTER = 453; + public static readonly KW_MASTER_AUTO_POSITION = 454; + public static readonly KW_MASTER_COMPRESSION_ALGORITHMS = 455; + public static readonly KW_MASTER_CONNECT_RETRY = 456; + public static readonly KW_MASTER_DELAY = 457; + public static readonly KW_MASTER_HEARTBEAT_PERIOD = 458; + public static readonly KW_MASTER_HOST = 459; + public static readonly KW_MASTER_LOG_FILE = 460; + public static readonly KW_MASTER_LOG_POS = 461; + public static readonly KW_MASTER_PASSWORD = 462; + public static readonly KW_MASTER_PORT = 463; + public static readonly KW_MASTER_PUBLIC_KEY_PATH = 464; + public static readonly KW_MASTER_RETRY_COUNT = 465; + public static readonly KW_MASTER_SSL = 466; + public static readonly KW_MASTER_SSL_CA = 467; + public static readonly KW_MASTER_SSL_CAPATH = 468; + public static readonly KW_MASTER_SSL_CERT = 469; + public static readonly KW_MASTER_SSL_CIPHER = 470; + public static readonly KW_MASTER_SSL_CRL = 471; + public static readonly KW_MASTER_SSL_CRLPATH = 472; + public static readonly KW_MASTER_SSL_KEY = 473; + public static readonly KW_MASTER_TLS_CIPHERSUITES = 474; + public static readonly KW_MASTER_TLS_VERSION = 475; + public static readonly KW_MASTER_USER = 476; + public static readonly KW_MASTER_ZSTD_COMPRESSION_LEVEL = 477; + public static readonly KW_MAX_CONNECTIONS_PER_HOUR = 478; + public static readonly KW_MAX_QUERIES_PER_HOUR = 479; + public static readonly KW_MAX_ROWS = 480; + public static readonly KW_MAX_SIZE = 481; + public static readonly KW_MAX_UPDATES_PER_HOUR = 482; + public static readonly KW_MAX_USER_CONNECTIONS = 483; + public static readonly KW_MEDIUM = 484; + public static readonly KW_MEMBER = 485; + public static readonly KW_MERGE = 486; + public static readonly KW_MESSAGE_TEXT = 487; + public static readonly KW_MID = 488; + public static readonly KW_MIGRATE = 489; + public static readonly KW_MIN_ROWS = 490; + public static readonly KW_MODE = 491; + public static readonly KW_MODIFY = 492; + public static readonly KW_MUTEX = 493; + public static readonly KW_MYSQL = 494; + public static readonly KW_MYSQL_ERRNO = 495; + public static readonly KW_NAME = 496; + public static readonly KW_NAMES = 497; + public static readonly KW_NCHAR = 498; + public static readonly KW_NETWORK_NAMESPACE = 499; + public static readonly KW_NEVER = 500; + public static readonly KW_NEXT = 501; + public static readonly KW_NO = 502; + public static readonly KW_NOWAIT = 503; + public static readonly KW_NODEGROUP = 504; + public static readonly KW_NONE = 505; + public static readonly KW_ODBC = 506; + public static readonly KW_OFF = 507; + public static readonly KW_OFFLINE = 508; + public static readonly KW_OFFSET = 509; + public static readonly KW_OF = 510; + public static readonly KW_OLD = 511; + public static readonly KW_OLD_PASSWORD = 512; + public static readonly KW_ONE = 513; + public static readonly KW_ONLINE = 514; + public static readonly KW_ONLY = 515; + public static readonly KW_OPEN = 516; + public static readonly KW_OPTIMIZER_COSTS = 517; + public static readonly KW_OPTIONS = 518; + public static readonly KW_OWNER = 519; + public static readonly KW_PACK_KEYS = 520; + public static readonly KW_PAGE = 521; + public static readonly KW_PAGE_CHECKSUM = 522; + public static readonly KW_PAGE_COMPRESSED = 523; + public static readonly KW_PAGE_COMPRESSION_LEVEL = 524; + public static readonly KW_PARSER = 525; + public static readonly KW_PARTIAL = 526; + public static readonly KW_PARTITIONING = 527; + public static readonly KW_PARTITIONS = 528; + public static readonly KW_PASSWORD = 529; + public static readonly KW_PASSWORD_LOCK_TIME = 530; + public static readonly KW_PERSIST = 531; + public static readonly KW_PERSIST_ONLY = 532; + public static readonly KW_PHASE = 533; + public static readonly KW_PLUGIN = 534; + public static readonly KW_PLUGIN_DIR = 535; + public static readonly KW_PLUGINS = 536; + public static readonly KW_PORT = 537; + public static readonly KW_PRECEDES = 538; + public static readonly KW_PRECEDING = 539; + public static readonly KW_PREPARE = 540; + public static readonly KW_PRESERVE = 541; + public static readonly KW_PREV = 542; + public static readonly KW_PRIVILEGE_CHECKS_USER = 543; + public static readonly KW_PROCESSLIST = 544; + public static readonly KW_PROFILE = 545; + public static readonly KW_PROFILES = 546; + public static readonly KW_PROXY = 547; + public static readonly KW_QUERY = 548; + public static readonly KW_QUICK = 549; + public static readonly KW_REBUILD = 550; + public static readonly KW_RECOVER = 551; + public static readonly KW_RECURSIVE = 552; + public static readonly KW_REDO_BUFFER_SIZE = 553; + public static readonly KW_REDUNDANT = 554; + public static readonly KW_REGISTRATION = 555; + public static readonly KW_RELAY = 556; + public static readonly KW_RELAY_LOG_FILE = 557; + public static readonly KW_RELAY_LOG_POS = 558; + public static readonly KW_RELAYLOG = 559; + public static readonly KW_REMOVE = 560; + public static readonly KW_REORGANIZE = 561; + public static readonly KW_REPAIR = 562; + public static readonly KW_REPLICA = 563; + public static readonly KW_REPLICAS = 564; + public static readonly KW_REPLICATE_DO_DB = 565; + public static readonly KW_REPLICATE_DO_TABLE = 566; + public static readonly KW_REPLICATE_IGNORE_DB = 567; + public static readonly KW_REPLICATE_IGNORE_TABLE = 568; + public static readonly KW_REPLICATE_REWRITE_DB = 569; + public static readonly KW_REPLICATE_WILD_DO_TABLE = 570; + public static readonly KW_REPLICATE_WILD_IGNORE_TABLE = 571; + public static readonly KW_REPLICATION = 572; + public static readonly KW_REQUIRE_ROW_FORMAT = 573; + public static readonly KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK = 574; + public static readonly KW_RESET = 575; + public static readonly KW_RESTART = 576; + public static readonly KW_RESUME = 577; + public static readonly KW_RETURNED_SQLSTATE = 578; + public static readonly KW_RETURNING = 579; + public static readonly KW_RETURNS = 580; + public static readonly KW_REUSE = 581; + public static readonly KW_ROLE = 582; + public static readonly KW_ROLLBACK = 583; + public static readonly KW_ROLLUP = 584; + public static readonly KW_ROTATE = 585; + public static readonly KW_ROW = 586; + public static readonly KW_ROWS = 587; + public static readonly KW_ROW_FORMAT = 588; + public static readonly KW_SAVEPOINT = 589; + public static readonly KW_SCHEDULE = 590; + public static readonly KW_SECURITY = 591; + public static readonly KW_SERVER = 592; + public static readonly KW_SESSION = 593; + public static readonly KW_SHARE = 594; + public static readonly KW_SHARED = 595; + public static readonly KW_SIGNED = 596; + public static readonly KW_SIMPLE = 597; + public static readonly KW_SLAVE = 598; + public static readonly KW_SLOW = 599; + public static readonly KW_SNAPSHOT = 600; + public static readonly KW_SOCKET = 601; + public static readonly KW_SOME = 602; + public static readonly KW_SONAME = 603; + public static readonly KW_SOUNDS = 604; + public static readonly KW_SOURCE = 605; + public static readonly KW_SOURCE_BIND = 606; + public static readonly KW_SOURCE_HOST = 607; + public static readonly KW_SOURCE_USER = 608; + public static readonly KW_SOURCE_PASSWORD = 609; + public static readonly KW_SOURCE_PORT = 610; + public static readonly KW_SOURCE_LOG_FILE = 611; + public static readonly KW_SOURCE_LOG_POS = 612; + public static readonly KW_SOURCE_AUTO_POSITION = 613; + public static readonly KW_SOURCE_HEARTBEAT_PERIOD = 614; + public static readonly KW_SOURCE_CONNECT_RETRY = 615; + public static readonly KW_SOURCE_RETRY_COUNT = 616; + public static readonly KW_SOURCE_CONNECTION_AUTO_FAILOVER = 617; + public static readonly KW_SOURCE_DELAY = 618; + public static readonly KW_SOURCE_COMPRESSION_ALGORITHMS = 619; + public static readonly KW_SOURCE_ZSTD_COMPRESSION_LEVEL = 620; + public static readonly KW_SOURCE_SSL = 621; + public static readonly KW_SOURCE_SSL_CA = 622; + public static readonly KW_SOURCE_SSL_CAPATH = 623; + public static readonly KW_SOURCE_SSL_CERT = 624; + public static readonly KW_SOURCE_SSL_CRL = 625; + public static readonly KW_SOURCE_SSL_CRLPATH = 626; + public static readonly KW_SOURCE_SSL_KEY = 627; + public static readonly KW_SOURCE_SSL_CIPHER = 628; + public static readonly KW_SOURCE_SSL_VERIFY_SERVER_CERT = 629; + public static readonly KW_SOURCE_TLS_VERSION = 630; + public static readonly KW_SOURCE_TLS_CIPHERSUITES = 631; + public static readonly KW_SOURCE_PUBLIC_KEY_PATH = 632; + public static readonly KW_SQL_AFTER_GTIDS = 633; + public static readonly KW_SQL_AFTER_MTS_GAPS = 634; + public static readonly KW_SQL_BEFORE_GTIDS = 635; + public static readonly KW_SQL_BUFFER_RESULT = 636; + public static readonly KW_SQL_CACHE = 637; + public static readonly KW_SQL_NO_CACHE = 638; + public static readonly KW_SQL_THREAD = 639; + public static readonly KW_START = 640; + public static readonly KW_STARTS = 641; + public static readonly KW_STATS_AUTO_RECALC = 642; + public static readonly KW_STATS_PERSISTENT = 643; + public static readonly KW_STATS_SAMPLE_PAGES = 644; + public static readonly KW_STATUS = 645; + public static readonly KW_STOP = 646; + public static readonly KW_STORAGE = 647; + public static readonly KW_STORED = 648; + public static readonly KW_STRING = 649; + public static readonly KW_SUBCLASS_ORIGIN = 650; + public static readonly KW_SUBJECT = 651; + public static readonly KW_SUBPARTITION = 652; + public static readonly KW_SUBPARTITIONS = 653; + public static readonly KW_SUSPEND = 654; + public static readonly KW_SWAPS = 655; + public static readonly KW_SWITCHES = 656; + public static readonly KW_TABLE_NAME = 657; + public static readonly KW_TABLESPACE = 658; + public static readonly KW_TABLE_TYPE = 659; + public static readonly KW_TEMPORARY = 660; + public static readonly KW_TEMPTABLE = 661; + public static readonly KW_THAN = 662; + public static readonly KW_TRADITIONAL = 663; + public static readonly KW_TRANSACTION = 664; + public static readonly KW_TRANSACTIONAL = 665; + public static readonly KW_TREE = 666; + public static readonly KW_TRIGGERS = 667; + public static readonly KW_TRUNCATE = 668; + public static readonly KW_UNBOUNDED = 669; + public static readonly KW_UNDEFINED = 670; + public static readonly KW_UNDOFILE = 671; + public static readonly KW_UNDO_BUFFER_SIZE = 672; + public static readonly KW_UNINSTALL = 673; + public static readonly KW_UNKNOWN = 674; + public static readonly KW_UNREGISTER = 675; + public static readonly KW_UNTIL = 676; + public static readonly KW_UPGRADE = 677; + public static readonly KW_USER = 678; + public static readonly KW_USE_FRM = 679; + public static readonly KW_USER_RESOURCES = 680; + public static readonly KW_VALIDATION = 681; + public static readonly KW_VALUE = 682; + public static readonly KW_VARIABLES = 683; + public static readonly KW_VIEW = 684; + public static readonly KW_VIRTUAL = 685; + public static readonly KW_VISIBLE = 686; + public static readonly KW_WAIT = 687; + public static readonly KW_WARNINGS = 688; + public static readonly KW_WINDOW = 689; + public static readonly KW_WITHOUT = 690; + public static readonly KW_WORK = 691; + public static readonly KW_WRAPPER = 692; + public static readonly KW_X509 = 693; + public static readonly KW_XA = 694; + public static readonly KW_XML = 695; + public static readonly KW_QUARTER = 696; + public static readonly KW_MONTH = 697; + public static readonly KW_DAY = 698; + public static readonly KW_HOUR = 699; + public static readonly KW_MINUTE = 700; + public static readonly KW_WEEK = 701; + public static readonly KW_SECOND = 702; + public static readonly KW_MICROSECOND = 703; + public static readonly KW_ADMIN = 704; + public static readonly KW_APPLICATION_PASSWORD_ADMIN = 705; + public static readonly KW_AUDIT_ABORT_EXEMPT = 706; + public static readonly KW_AUDIT_ADMIN = 707; + public static readonly KW_AUTHENTICATION = 708; + public static readonly KW_AUTHENTICATION_POLICY_ADMIN = 709; + public static readonly KW_BACKUP_ADMIN = 710; + public static readonly KW_BINLOG_ADMIN = 711; + public static readonly KW_BINLOG_ENCRYPTION_ADMIN = 712; + public static readonly KW_CLONE = 713; + public static readonly KW_CLONE_ADMIN = 714; + public static readonly KW_CONNECTION_ADMIN = 715; + public static readonly KW_ENCRYPTION_KEY_ADMIN = 716; + public static readonly KW_EXECUTE = 717; + public static readonly KW_FILE = 718; + public static readonly KW_FIREWALL_ADMIN = 719; + public static readonly KW_FIREWALL_EXEMPT = 720; + public static readonly KW_FIREWALL_USER = 721; + public static readonly KW_FLUSH_OPTIMIZER_COSTS = 722; + public static readonly KW_FLUSH_STATUS = 723; + public static readonly KW_FLUSH_TABLES = 724; + public static readonly KW_FLUSH_USER_RESOURCES = 725; + public static readonly KW_GROUP_REPLICATION_ADMIN = 726; + public static readonly KW_INNODB_REDO_LOG_ARCHIVE = 727; + public static readonly KW_INNODB_REDO_LOG_ENABLE = 728; + public static readonly KW_INVOKE = 729; + public static readonly KW_LAMBDA = 730; + public static readonly KW_NDB_STORED_USER = 731; + public static readonly KW_PASSWORDLESS_USER_ADMIN = 732; + public static readonly KW_PERSIST_RO_VARIABLES_ADMIN = 733; + public static readonly KW_PRIVILEGES = 734; + public static readonly KW_PROCESS = 735; + public static readonly KW_RELOAD = 736; + public static readonly KW_REPLICATION_APPLIER = 737; + public static readonly KW_REPLICATION_SLAVE_ADMIN = 738; + public static readonly KW_RESOURCE = 739; + public static readonly KW_RESOURCE_GROUP_ADMIN = 740; + public static readonly KW_RESOURCE_GROUP_USER = 741; + public static readonly KW_ROLE_ADMIN = 742; + public static readonly KW_ROUTINE = 743; + public static readonly KW_S3 = 744; + public static readonly KW_SERVICE_CONNECTION_ADMIN = 745; + public static readonly KW_SESSION_VARIABLES_ADMIN = 746; + public static readonly KW_SET_USER_ID = 747; + public static readonly KW_SHOW_ROUTINE = 748; + public static readonly KW_SHUTDOWN = 749; + public static readonly KW_SUPER = 750; + public static readonly KW_SYSTEM_VARIABLES_ADMIN = 751; + public static readonly KW_TABLES = 752; + public static readonly KW_TABLE_ENCRYPTION_ADMIN = 753; + public static readonly KW_VERSION_TOKEN_ADMIN = 754; + public static readonly KW_XA_RECOVER_ADMIN = 755; + public static readonly KW_ARMSCII8 = 756; + public static readonly KW_ASCII = 757; + public static readonly KW_BIG5 = 758; + public static readonly KW_CP1250 = 759; + public static readonly KW_CP1251 = 760; + public static readonly KW_CP1256 = 761; + public static readonly KW_CP1257 = 762; + public static readonly KW_CP850 = 763; + public static readonly KW_CP852 = 764; + public static readonly KW_CP866 = 765; + public static readonly KW_CP932 = 766; + public static readonly KW_DEC8 = 767; + public static readonly KW_EUCJPMS = 768; + public static readonly KW_EUCKR = 769; + public static readonly KW_GB18030 = 770; + public static readonly KW_GB2312 = 771; + public static readonly KW_GBK = 772; + public static readonly KW_GEOSTD8 = 773; + public static readonly KW_GREEK = 774; + public static readonly KW_HEBREW = 775; + public static readonly KW_HP8 = 776; + public static readonly KW_KEYBCS2 = 777; + public static readonly KW_KOI8R = 778; + public static readonly KW_KOI8U = 779; + public static readonly KW_LATIN1 = 780; + public static readonly KW_LATIN2 = 781; + public static readonly KW_LATIN5 = 782; + public static readonly KW_LATIN7 = 783; + public static readonly KW_MACCE = 784; + public static readonly KW_MACROMAN = 785; + public static readonly KW_SJIS = 786; + public static readonly KW_SWE7 = 787; + public static readonly KW_TIS620 = 788; + public static readonly KW_UCS2 = 789; + public static readonly KW_UJIS = 790; + public static readonly KW_UTF16 = 791; + public static readonly KW_UTF16LE = 792; + public static readonly KW_UTF32 = 793; + public static readonly KW_UTF8 = 794; + public static readonly KW_UTF8MB3 = 795; + public static readonly KW_UTF8MB4 = 796; + public static readonly KW_ARCHIVE = 797; + public static readonly KW_BLACKHOLE = 798; + public static readonly KW_CSV = 799; + public static readonly KW_FEDERATED = 800; + public static readonly KW_INNODB = 801; + public static readonly KW_MEMORY = 802; + public static readonly KW_MRG_MYISAM = 803; + public static readonly KW_MYISAM = 804; + public static readonly KW_NDB = 805; + public static readonly KW_NDBCLUSTER = 806; + public static readonly KW_PERFORMANCE_SCHEMA = 807; + public static readonly KW_TOKUDB = 808; + public static readonly KW_REPEATABLE = 809; + public static readonly KW_COMMITTED = 810; + public static readonly KW_UNCOMMITTED = 811; + public static readonly KW_SERIALIZABLE = 812; + public static readonly KW_GEOMETRYCOLLECTION = 813; + public static readonly KW_GEOMCOLLECTION = 814; + public static readonly KW_GEOMETRY = 815; + public static readonly KW_LINESTRING = 816; + public static readonly KW_MULTILINESTRING = 817; + public static readonly KW_MULTIPOINT = 818; + public static readonly KW_MULTIPOLYGON = 819; + public static readonly KW_POINT = 820; + public static readonly KW_POLYGON = 821; + public static readonly KW_CATALOG_NAME = 822; + public static readonly KW_CHARSET = 823; + public static readonly KW_COLLATION = 824; + public static readonly KW_ENGINE_ATTRIBUTE = 825; + public static readonly KW_FORMAT = 826; + public static readonly KW_GET_FORMAT = 827; + public static readonly KW_INTERSECT = 828; + public static readonly KW_RANDOM = 829; + public static readonly KW_REVERSE = 830; + public static readonly KW_ROW_COUNT = 831; + public static readonly KW_SCHEMA_NAME = 832; + public static readonly KW_SECONDARY_ENGINE_ATTRIBUTE = 833; + public static readonly KW_SRID = 834; + public static readonly KW_SYSTEM = 835; + public static readonly KW_SYSTEM_USER = 836; + public static readonly KW_THREAD_PRIORITY = 837; + public static readonly KW_TP_CONNECTION_ADMIN = 838; + public static readonly KW_TYPE = 839; + public static readonly KW_WEIGHT_STRING = 840; + public static readonly VAR_ASSIGN = 841; + public static readonly PLUS_ASSIGN = 842; + public static readonly MINUS_ASSIGN = 843; + public static readonly MULT_ASSIGN = 844; + public static readonly DIV_ASSIGN = 845; + public static readonly MOD_ASSIGN = 846; + public static readonly AND_ASSIGN = 847; + public static readonly XOR_ASSIGN = 848; + public static readonly OR_ASSIGN = 849; + public static readonly STAR = 850; + public static readonly DIVIDE = 851; + public static readonly MODULE = 852; + public static readonly PLUS = 853; + public static readonly MINUS = 854; + public static readonly DIV = 855; + public static readonly MOD = 856; + public static readonly EQUAL_SYMBOL = 857; + public static readonly GREATER_SYMBOL = 858; + public static readonly LESS_SYMBOL = 859; + public static readonly EXCLAMATION_SYMBOL = 860; + public static readonly BIT_NOT_OP = 861; + public static readonly BIT_OR_OP = 862; + public static readonly BIT_AND_OP = 863; + public static readonly BIT_XOR_OP = 864; + public static readonly DOT = 865; + public static readonly LR_BRACKET = 866; + public static readonly RR_BRACKET = 867; + public static readonly COMMA = 868; + public static readonly SEMI = 869; + public static readonly AT_SIGN = 870; + public static readonly ZERO_DECIMAL = 871; + public static readonly ONE_DECIMAL = 872; + public static readonly TWO_DECIMAL = 873; + public static readonly THREE_DECIMAL = 874; + public static readonly SINGLE_QUOTE_SYMB = 875; + public static readonly DOUBLE_QUOTE_SYMB = 876; + public static readonly REVERSE_QUOTE_SYMB = 877; + public static readonly COLON_SYMB = 878; + public static readonly CHARSET_REVERSE_QOUTE_STRING = 879; + public static readonly FILESIZE_LITERAL = 880; + public static readonly START_NATIONAL_STRING_LITERAL = 881; + public static readonly STRING_LITERAL = 882; + public static readonly DECIMAL_LITERAL = 883; + public static readonly HEXADECIMAL_LITERAL = 884; + public static readonly REAL_LITERAL = 885; + public static readonly NULL_SPEC_LITERAL = 886; + public static readonly BIT_STRING = 887; + public static readonly STRING_CHARSET_NAME = 888; + public static readonly DOT_ID = 889; + public static readonly ID = 890; + public static readonly REVERSE_QUOTE_ID = 891; + public static readonly HOST_IP_ADDRESS = 892; + public static readonly LOCAL_ID = 893; + public static readonly GLOBAL_ID = 894; + public static readonly PERSIST_ID = 895; + public static readonly ERROR_RECONGNIGION = 896; + public static readonly MYSQLCOMMENT = 2; + public static readonly ERRORCHANNEL = 3; + + // tslint:disable:no-trailing-whitespace + public static readonly channelNames: string[] = [ + "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "MYSQLCOMMENT", "ERRORCHANNEL", + ]; + + // tslint:disable:no-trailing-whitespace + public static readonly modeNames: string[] = [ + "DEFAULT_MODE", + ]; + + public static readonly ruleNames: string[] = [ + "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", "KW_ACTIVE", + "KW_ADD", "KW_ALL", "KW_ALTER", "KW_ALWAYS", "KW_ANALYZE", "KW_AND", "KW_ARRAY", + "KW_AS", "KW_ASC", "KW_ATTRIBUTE", "KW_BEFORE", "KW_BETWEEN", "KW_BOTH", + "KW_BUCKETS", "KW_BY", "KW_CALL", "KW_CASCADE", "KW_CASE", "KW_CAST", + "KW_CHANGE", "KW_CHARACTER", "KW_CHECK", "KW_COLLATE", "KW_COLUMN", "KW_CONDITION", + "KW_CONSTRAINT", "KW_CONTINUE", "KW_CONVERT", "KW_CREATE", "KW_CROSS", + "KW_CURRENT", "KW_CURRENT_USER", "KW_CURSOR", "KW_DATABASE", "KW_DATABASES", + "KW_DECLARE", "KW_DEFAULT", "KW_DELAYED", "KW_DELETE", "KW_DESC", "KW_DESCRIBE", + "KW_DETERMINISTIC", "KW_DIAGNOSTICS", "KW_DISTINCT", "KW_DISTINCTROW", + "KW_DROP", "KW_EACH", "KW_ELSE", "KW_ELSEIF", "KW_EMPTY", "KW_ENCLOSED", + "KW_ENFORCED", "KW_ESCAPED", "KW_EXCEPT", "KW_EXISTS", "KW_EXIT", "KW_EXPLAIN", + "KW_FALSE", "KW_FETCH", "KW_FOR", "KW_FORCE", "KW_FOREIGN", "KW_FROM", + "KW_FULLTEXT", "KW_GENERATE", "KW_GENERATED", "KW_GET", "KW_GRANT", "KW_GROUP", + "KW_HAVING", "KW_HIGH_PRIORITY", "KW_HISTOGRAM", "KW_IF", "KW_IGNORE", + "KW_IN", "KW_INACTIVE", "KW_INDEX", "KW_INFILE", "KW_INNER", "KW_INOUT", + "KW_INSERT", "KW_INTERVAL", "KW_INTO", "KW_IS", "KW_ITERATE", "KW_JOIN", + "KW_KEY", "KW_KEYS", "KW_KILL", "KW_LATERAL", "KW_LEADING", "KW_LEAVE", + "KW_LEFT", "KW_LIKE", "KW_LIMIT", "KW_LINEAR", "KW_LINES", "KW_LOAD", + "KW_LOCK", "KW_LOCKED", "KW_LOOP", "KW_LOW_PRIORITY", "KW_MASTER_BIND", + "KW_MASTER_SSL_VERIFY_SERVER_CERT", "KW_MATCH", "KW_MAXVALUE", "KW_MODIFIES", + "KW_NATURAL", "KW_NOT", "KW_NO_WRITE_TO_BINLOG", "KW_NULL_LITERAL", "KW_NUMBER", + "KW_STREAM", "KW_ON", "KW_OPTIMIZE", "KW_OPTION", "KW_OPTIONAL", "KW_OPTIONALLY", + "KW_OR", "KW_ORDER", "KW_OUT", "KW_OUTER", "KW_OUTFILE", "KW_OVER", "KW_PARTITION", + "KW_PRIMARY", "KW_PROCEDURE", "KW_PURGE", "KW_RANGE", "KW_READ", "KW_READS", + "KW_REFERENCE", "KW_REFERENCES", "KW_REGEXP", "KW_RELEASE", "KW_RENAME", + "KW_REPEAT", "KW_REPLACE", "KW_REQUIRE", "KW_RESIGNAL", "KW_RESTRICT", + "KW_RETAIN", "KW_RETURN", "KW_REVOKE", "KW_RIGHT", "KW_RLIKE", "KW_SCHEMA", + "KW_SCHEMAS", "KW_SELECT", "KW_SET", "KW_SEPARATOR", "KW_SHOW", "KW_SIGNAL", + "KW_SKIP", "KW_SKIP_QUERY_REWRITE", "KW_SPATIAL", "KW_SQL", "KW_SQLEXCEPTION", + "KW_SQLSTATE", "KW_SQLWARNING", "KW_SQL_BIG_RESULT", "KW_SQL_CALC_FOUND_ROWS", + "KW_SQL_SMALL_RESULT", "KW_SSL", "KW_STACKED", "KW_STARTING", "KW_STRAIGHT_JOIN", + "KW_TABLE", "KW_TERMINATED", "KW_THEN", "KW_TO", "KW_TRAILING", "KW_TRIGGER", + "KW_TRUE", "KW_UNDO", "KW_UNION", "KW_UNIQUE", "KW_UNLOCK", "KW_UNSIGNED", + "KW_UPDATE", "KW_USAGE", "KW_USE", "KW_USING", "KW_VALUES", "KW_VCPU", + "KW_WHEN", "KW_WHERE", "KW_WHILE", "KW_WITH", "KW_WRITE", "KW_XOR", "KW_ZEROFILL", + "KW_TINYINT", "KW_SMALLINT", "KW_MEDIUMINT", "KW_MIDDLEINT", "KW_INT", + "KW_INT1", "KW_INT2", "KW_INT3", "KW_INT4", "KW_INT8", "KW_INTEGER", "KW_BIGINT", + "KW_REAL", "KW_DOUBLE", "KW_PRECISION", "KW_FLOAT", "KW_FLOAT4", "KW_FLOAT8", + "KW_DECIMAL", "KW_DEC", "KW_NUMERIC", "KW_DATE", "KW_TIME", "KW_TIMESTAMP", + "KW_DATETIME", "KW_YEAR", "KW_CHAR", "KW_VARCHAR", "KW_NVARCHAR", "KW_NATIONAL", + "KW_BINARY", "KW_VARBINARY", "KW_TINYBLOB", "KW_BLOB", "KW_MEDIUMBLOB", + "KW_LONG", "KW_LONGBLOB", "KW_TINYTEXT", "KW_TEXT", "KW_MEDIUMTEXT", "KW_LONGTEXT", + "KW_ENUM", "KW_VARYING", "KW_SERIAL", "KW_YEAR_MONTH", "KW_DAY_HOUR", + "KW_DAY_MINUTE", "KW_DAY_SECOND", "KW_HOUR_MINUTE", "KW_HOUR_SECOND", + "KW_MINUTE_SECOND", "KW_SECOND_MICROSECOND", "KW_MINUTE_MICROSECOND", + "KW_HOUR_MICROSECOND", "KW_DAY_MICROSECOND", "KW_JSON_TABLE", "KW_JSON_VALUE", + "KW_NESTED", "KW_ORDINALITY", "KW_PATH", "KW_AVG", "KW_BIT_AND", "KW_BIT_OR", + "KW_BIT_XOR", "KW_COUNT", "KW_CUME_DIST", "KW_DENSE_RANK", "KW_FIRST_VALUE", + "KW_GROUP_CONCAT", "KW_LAG", "KW_LAST_VALUE", "KW_LEAD", "KW_MAX", "KW_MIN", + "KW_NTILE", "KW_NTH_VALUE", "KW_PERCENT_RANK", "KW_RANK", "KW_ROW_NUMBER", + "KW_STD", "KW_STDDEV", "KW_STDDEV_POP", "KW_STDDEV_SAMP", "KW_SUM", "KW_VAR_POP", + "KW_VAR_SAMP", "KW_VARIANCE", "KW_CURRENT_DATE", "KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", + "KW_LOCALTIME", "KW_CURDATE", "KW_CURTIME", "KW_DATE_ADD", "KW_DATE_SUB", + "KW_EXTRACT", "KW_LOCALTIMESTAMP", "KW_NOW", "KW_POSITION", "KW_SUBSTR", + "KW_SUBSTRING", "KW_SYSDATE", "KW_TRIM", "KW_UTC_DATE", "KW_UTC_TIME", + "KW_UTC_TIMESTAMP", "KW_ACCOUNT", "KW_ACTION", "KW_AFTER", "KW_AGGREGATE", + "KW_ALGORITHM", "KW_ANY", "KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS", + "KW_AT", "KW_AUTHORS", "KW_AUTOCOMMIT", "KW_AUTOEXTEND_SIZE", "KW_AUTO_INCREMENT", + "KW_AVG_ROW_LENGTH", "KW_BEGIN", "KW_BINLOG", "KW_BIT", "KW_BLOCK", "KW_BOOL", + "KW_BOOLEAN", "KW_BTREE", "KW_CACHE", "KW_CASCADED", "KW_CHAIN", "KW_CHANGED", + "KW_CHANNEL", "KW_CHECKSUM", "KW_CHALLENGE_RESPONSE", "KW_CIPHER", "KW_CLASS_ORIGIN", + "KW_CLIENT", "KW_CLOSE", "KW_COALESCE", "KW_CODE", "KW_COLUMNS", "KW_COLUMN_FORMAT", + "KW_COLUMN_NAME", "KW_COMMENT", "KW_COMMIT", "KW_COMPACT", "KW_COMPLETION", + "KW_COMPONENT", "KW_COMPRESSED", "KW_COMPRESSION", "KW_CONCURRENT", "KW_CONNECT", + "KW_CONNECTION", "KW_CONSISTENT", "KW_CONSTRAINT_CATALOG", "KW_CONSTRAINT_SCHEMA", + "KW_CONSTRAINT_NAME", "KW_CONTAINS", "KW_CONTEXT", "KW_CONTRIBUTORS", + "KW_COPY", "KW_CPU", "KW_CURSOR_NAME", "KW_DATA", "KW_DATAFILE", "KW_DEALLOCATE", + "KW_DEFAULT_AUTH", "KW_DEFINER", "KW_DELAY_KEY_WRITE", "KW_DES_KEY_FILE", + "KW_DIRECTORY", "KW_DISABLE", "KW_DISCARD", "KW_DISK", "KW_DO", "KW_DUMPFILE", + "KW_DUPLICATE", "KW_DYNAMIC", "KW_ENABLE", "KW_ENCRYPTION", "KW_ENCRYPTION_KEY_ID", + "KW_END", "KW_ENDS", "KW_ENGINE", "KW_ENGINES", "KW_ERROR", "KW_ERRORS", + "KW_ESCAPE", "KW_EVENT", "KW_EVENTS", "KW_EVERY", "KW_EXCHANGE", "KW_EXCLUSIVE", + "KW_EXPIRE", "KW_EXPORT", "KW_EXTENDED", "KW_EXTENT_SIZE", "KW_FACTOR", + "KW_FAILED_LOGIN_ATTEMPTS", "KW_FAST", "KW_FAULTS", "KW_FIELDS", "KW_FILE_BLOCK_SIZE", + "KW_FILTER", "KW_FINISH", "KW_FIRST", "KW_FIXED", "KW_FLUSH", "KW_FOLLOWING", + "KW_FOLLOWS", "KW_FOUND", "KW_FULL", "KW_FUNCTION", "KW_GENERAL", "KW_GET_MASTER_PUBLIC_KEY", + "KW_GET_SOURCE_PUBLIC_KEY", "KW_GLOBAL", "KW_GRANTS", "KW_GROUP_REPLICATION", + "KW_GTID_ONLY", "KW_HANDLER", "KW_HASH", "KW_HELP", "KW_HISTORY", "KW_HOST", + "KW_HOSTS", "KW_IDENTIFIED", "KW_IGNORE_SERVER_IDS", "KW_IMPORT", "KW_INDEXES", + "KW_INITIAL", "KW_INITIAL_SIZE", "KW_INITIATE", "KW_INPLACE", "KW_INSERT_METHOD", + "KW_INSTALL", "KW_INSTANCE", "KW_INSTANT", "KW_INVISIBLE", "KW_INVOKER", + "KW_IO", "KW_IO_THREAD", "KW_IPC", "KW_ISOLATION", "KW_ISSUER", "KW_JSON", + "KW_KEY_BLOCK_SIZE", "KW_LANGUAGE", "KW_LAST", "KW_LEAVES", "KW_LESS", + "KW_LEVEL", "KW_LIST", "KW_LOCAL", "KW_LOGFILE", "KW_LOGS", "KW_MASTER", + "KW_MASTER_AUTO_POSITION", "KW_MASTER_COMPRESSION_ALGORITHMS", "KW_MASTER_CONNECT_RETRY", + "KW_MASTER_DELAY", "KW_MASTER_HEARTBEAT_PERIOD", "KW_MASTER_HOST", "KW_MASTER_LOG_FILE", + "KW_MASTER_LOG_POS", "KW_MASTER_PASSWORD", "KW_MASTER_PORT", "KW_MASTER_PUBLIC_KEY_PATH", + "KW_MASTER_RETRY_COUNT", "KW_MASTER_SSL", "KW_MASTER_SSL_CA", "KW_MASTER_SSL_CAPATH", + "KW_MASTER_SSL_CERT", "KW_MASTER_SSL_CIPHER", "KW_MASTER_SSL_CRL", "KW_MASTER_SSL_CRLPATH", + "KW_MASTER_SSL_KEY", "KW_MASTER_TLS_CIPHERSUITES", "KW_MASTER_TLS_VERSION", + "KW_MASTER_USER", "KW_MASTER_ZSTD_COMPRESSION_LEVEL", "KW_MAX_CONNECTIONS_PER_HOUR", + "KW_MAX_QUERIES_PER_HOUR", "KW_MAX_ROWS", "KW_MAX_SIZE", "KW_MAX_UPDATES_PER_HOUR", + "KW_MAX_USER_CONNECTIONS", "KW_MEDIUM", "KW_MEMBER", "KW_MERGE", "KW_MESSAGE_TEXT", + "KW_MID", "KW_MIGRATE", "KW_MIN_ROWS", "KW_MODE", "KW_MODIFY", "KW_MUTEX", + "KW_MYSQL", "KW_MYSQL_ERRNO", "KW_NAME", "KW_NAMES", "KW_NCHAR", "KW_NETWORK_NAMESPACE", + "KW_NEVER", "KW_NEXT", "KW_NO", "KW_NOWAIT", "KW_NODEGROUP", "KW_NONE", + "KW_ODBC", "KW_OFF", "KW_OFFLINE", "KW_OFFSET", "KW_OF", "KW_OLD", "KW_OLD_PASSWORD", + "KW_ONE", "KW_ONLINE", "KW_ONLY", "KW_OPEN", "KW_OPTIMIZER_COSTS", "KW_OPTIONS", + "KW_OWNER", "KW_PACK_KEYS", "KW_PAGE", "KW_PAGE_CHECKSUM", "KW_PAGE_COMPRESSED", + "KW_PAGE_COMPRESSION_LEVEL", "KW_PARSER", "KW_PARTIAL", "KW_PARTITIONING", + "KW_PARTITIONS", "KW_PASSWORD", "KW_PASSWORD_LOCK_TIME", "KW_PERSIST", + "KW_PERSIST_ONLY", "KW_PHASE", "KW_PLUGIN", "KW_PLUGIN_DIR", "KW_PLUGINS", + "KW_PORT", "KW_PRECEDES", "KW_PRECEDING", "KW_PREPARE", "KW_PRESERVE", + "KW_PREV", "KW_PRIVILEGE_CHECKS_USER", "KW_PROCESSLIST", "KW_PROFILE", + "KW_PROFILES", "KW_PROXY", "KW_QUERY", "KW_QUICK", "KW_REBUILD", "KW_RECOVER", + "KW_RECURSIVE", "KW_REDO_BUFFER_SIZE", "KW_REDUNDANT", "KW_REGISTRATION", + "KW_RELAY", "KW_RELAY_LOG_FILE", "KW_RELAY_LOG_POS", "KW_RELAYLOG", "KW_REMOVE", + "KW_REORGANIZE", "KW_REPAIR", "KW_REPLICA", "KW_REPLICAS", "KW_REPLICATE_DO_DB", + "KW_REPLICATE_DO_TABLE", "KW_REPLICATE_IGNORE_DB", "KW_REPLICATE_IGNORE_TABLE", + "KW_REPLICATE_REWRITE_DB", "KW_REPLICATE_WILD_DO_TABLE", "KW_REPLICATE_WILD_IGNORE_TABLE", + "KW_REPLICATION", "KW_REQUIRE_ROW_FORMAT", "KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK", + "KW_RESET", "KW_RESTART", "KW_RESUME", "KW_RETURNED_SQLSTATE", "KW_RETURNING", + "KW_RETURNS", "KW_REUSE", "KW_ROLE", "KW_ROLLBACK", "KW_ROLLUP", "KW_ROTATE", + "KW_ROW", "KW_ROWS", "KW_ROW_FORMAT", "KW_SAVEPOINT", "KW_SCHEDULE", "KW_SECURITY", + "KW_SERVER", "KW_SESSION", "KW_SHARE", "KW_SHARED", "KW_SIGNED", "KW_SIMPLE", + "KW_SLAVE", "KW_SLOW", "KW_SNAPSHOT", "KW_SOCKET", "KW_SOME", "KW_SONAME", + "KW_SOUNDS", "KW_SOURCE", "KW_SOURCE_BIND", "KW_SOURCE_HOST", "KW_SOURCE_USER", + "KW_SOURCE_PASSWORD", "KW_SOURCE_PORT", "KW_SOURCE_LOG_FILE", "KW_SOURCE_LOG_POS", + "KW_SOURCE_AUTO_POSITION", "KW_SOURCE_HEARTBEAT_PERIOD", "KW_SOURCE_CONNECT_RETRY", + "KW_SOURCE_RETRY_COUNT", "KW_SOURCE_CONNECTION_AUTO_FAILOVER", "KW_SOURCE_DELAY", + "KW_SOURCE_COMPRESSION_ALGORITHMS", "KW_SOURCE_ZSTD_COMPRESSION_LEVEL", + "KW_SOURCE_SSL", "KW_SOURCE_SSL_CA", "KW_SOURCE_SSL_CAPATH", "KW_SOURCE_SSL_CERT", + "KW_SOURCE_SSL_CRL", "KW_SOURCE_SSL_CRLPATH", "KW_SOURCE_SSL_KEY", "KW_SOURCE_SSL_CIPHER", + "KW_SOURCE_SSL_VERIFY_SERVER_CERT", "KW_SOURCE_TLS_VERSION", "KW_SOURCE_TLS_CIPHERSUITES", + "KW_SOURCE_PUBLIC_KEY_PATH", "KW_SQL_AFTER_GTIDS", "KW_SQL_AFTER_MTS_GAPS", + "KW_SQL_BEFORE_GTIDS", "KW_SQL_BUFFER_RESULT", "KW_SQL_CACHE", "KW_SQL_NO_CACHE", + "KW_SQL_THREAD", "KW_START", "KW_STARTS", "KW_STATS_AUTO_RECALC", "KW_STATS_PERSISTENT", + "KW_STATS_SAMPLE_PAGES", "KW_STATUS", "KW_STOP", "KW_STORAGE", "KW_STORED", + "KW_STRING", "KW_SUBCLASS_ORIGIN", "KW_SUBJECT", "KW_SUBPARTITION", "KW_SUBPARTITIONS", + "KW_SUSPEND", "KW_SWAPS", "KW_SWITCHES", "KW_TABLE_NAME", "KW_TABLESPACE", + "KW_TABLE_TYPE", "KW_TEMPORARY", "KW_TEMPTABLE", "KW_THAN", "KW_TRADITIONAL", + "KW_TRANSACTION", "KW_TRANSACTIONAL", "KW_TREE", "KW_TRIGGERS", "KW_TRUNCATE", + "KW_UNBOUNDED", "KW_UNDEFINED", "KW_UNDOFILE", "KW_UNDO_BUFFER_SIZE", + "KW_UNINSTALL", "KW_UNKNOWN", "KW_UNREGISTER", "KW_UNTIL", "KW_UPGRADE", + "KW_USER", "KW_USE_FRM", "KW_USER_RESOURCES", "KW_VALIDATION", "KW_VALUE", + "KW_VARIABLES", "KW_VIEW", "KW_VIRTUAL", "KW_VISIBLE", "KW_WAIT", "KW_WARNINGS", + "KW_WINDOW", "KW_WITHOUT", "KW_WORK", "KW_WRAPPER", "KW_X509", "KW_XA", + "KW_XML", "KW_QUARTER", "KW_MONTH", "KW_DAY", "KW_HOUR", "KW_MINUTE", + "KW_WEEK", "KW_SECOND", "KW_MICROSECOND", "KW_ADMIN", "KW_APPLICATION_PASSWORD_ADMIN", + "KW_AUDIT_ABORT_EXEMPT", "KW_AUDIT_ADMIN", "KW_AUTHENTICATION", "KW_AUTHENTICATION_POLICY_ADMIN", + "KW_BACKUP_ADMIN", "KW_BINLOG_ADMIN", "KW_BINLOG_ENCRYPTION_ADMIN", "KW_CLONE", + "KW_CLONE_ADMIN", "KW_CONNECTION_ADMIN", "KW_ENCRYPTION_KEY_ADMIN", "KW_EXECUTE", + "KW_FILE", "KW_FIREWALL_ADMIN", "KW_FIREWALL_EXEMPT", "KW_FIREWALL_USER", + "KW_FLUSH_OPTIMIZER_COSTS", "KW_FLUSH_STATUS", "KW_FLUSH_TABLES", "KW_FLUSH_USER_RESOURCES", + "KW_GROUP_REPLICATION_ADMIN", "KW_INNODB_REDO_LOG_ARCHIVE", "KW_INNODB_REDO_LOG_ENABLE", + "KW_INVOKE", "KW_LAMBDA", "KW_NDB_STORED_USER", "KW_PASSWORDLESS_USER_ADMIN", + "KW_PERSIST_RO_VARIABLES_ADMIN", "KW_PRIVILEGES", "KW_PROCESS", "KW_RELOAD", + "KW_REPLICATION_APPLIER", "KW_REPLICATION_SLAVE_ADMIN", "KW_RESOURCE", + "KW_RESOURCE_GROUP_ADMIN", "KW_RESOURCE_GROUP_USER", "KW_ROLE_ADMIN", + "KW_ROUTINE", "KW_S3", "KW_SERVICE_CONNECTION_ADMIN", "KW_SESSION_VARIABLES_ADMIN", + "KW_SET_USER_ID", "KW_SHOW_ROUTINE", "KW_SHUTDOWN", "KW_SUPER", "KW_SYSTEM_VARIABLES_ADMIN", + "KW_TABLES", "KW_TABLE_ENCRYPTION_ADMIN", "KW_VERSION_TOKEN_ADMIN", "KW_XA_RECOVER_ADMIN", + "KW_ARMSCII8", "KW_ASCII", "KW_BIG5", "KW_CP1250", "KW_CP1251", "KW_CP1256", + "KW_CP1257", "KW_CP850", "KW_CP852", "KW_CP866", "KW_CP932", "KW_DEC8", + "KW_EUCJPMS", "KW_EUCKR", "KW_GB18030", "KW_GB2312", "KW_GBK", "KW_GEOSTD8", + "KW_GREEK", "KW_HEBREW", "KW_HP8", "KW_KEYBCS2", "KW_KOI8R", "KW_KOI8U", + "KW_LATIN1", "KW_LATIN2", "KW_LATIN5", "KW_LATIN7", "KW_MACCE", "KW_MACROMAN", + "KW_SJIS", "KW_SWE7", "KW_TIS620", "KW_UCS2", "KW_UJIS", "KW_UTF16", "KW_UTF16LE", + "KW_UTF32", "KW_UTF8", "KW_UTF8MB3", "KW_UTF8MB4", "KW_ARCHIVE", "KW_BLACKHOLE", + "KW_CSV", "KW_FEDERATED", "KW_INNODB", "KW_MEMORY", "KW_MRG_MYISAM", "KW_MYISAM", + "KW_NDB", "KW_NDBCLUSTER", "KW_PERFORMANCE_SCHEMA", "KW_TOKUDB", "KW_REPEATABLE", + "KW_COMMITTED", "KW_UNCOMMITTED", "KW_SERIALIZABLE", "KW_GEOMETRYCOLLECTION", + "KW_GEOMCOLLECTION", "KW_GEOMETRY", "KW_LINESTRING", "KW_MULTILINESTRING", + "KW_MULTIPOINT", "KW_MULTIPOLYGON", "KW_POINT", "KW_POLYGON", "KW_CATALOG_NAME", + "KW_CHARSET", "KW_COLLATION", "KW_ENGINE_ATTRIBUTE", "KW_FORMAT", "KW_GET_FORMAT", + "KW_INTERSECT", "KW_RANDOM", "KW_REVERSE", "KW_ROW_COUNT", "KW_SCHEMA_NAME", + "KW_SECONDARY_ENGINE_ATTRIBUTE", "KW_SRID", "KW_SYSTEM", "KW_SYSTEM_USER", + "KW_THREAD_PRIORITY", "KW_TP_CONNECTION_ADMIN", "KW_TYPE", "KW_WEIGHT_STRING", + "VAR_ASSIGN", "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", + "MOD_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", + "MODULE", "PLUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", + "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "THREE_DECIMAL", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", "COLON_SYMB", "QUOTE_SYMB", + "CHARSET_REVERSE_QOUTE_STRING", "FILESIZE_LITERAL", "START_NATIONAL_STRING_LITERAL", + "STRING_LITERAL", "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "REAL_LITERAL", + "NULL_SPEC_LITERAL", "BIT_STRING", "STRING_CHARSET_NAME", "DOT_ID", "ID", + "REVERSE_QUOTE_ID", "HOST_IP_ADDRESS", "LOCAL_ID", "GLOBAL_ID", "PERSIST_ID", + "CHARSET_NAME", "EXPONENT_NUM_PART", "ID_LITERAL", "DQUOTA_STRING", "SQUOTA_STRING", + "BQUOTA_STRING", "HEX_DIGIT", "DEC_DIGIT", "BIT_STRING_L", "IP_ADDRESS", + "ERROR_RECONGNIGION", + ]; + + private static readonly _LITERAL_NAMES: Array = [ + undefined, undefined, undefined, undefined, undefined, "'ACTIVE'", "'ADD'", + "'ALL'", "'ALTER'", "'ALWAYS'", "'ANALYZE'", "'AND'", "'ARRAY'", "'AS'", + "'ASC'", "'ATTRIBUTE'", "'BEFORE'", "'BETWEEN'", "'BOTH'", "'BUCKETS'", + "'BY'", "'CALL'", "'CASCADE'", "'CASE'", "'CAST'", "'CHANGE'", "'CHARACTER'", + "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", "'CONSTRAINT'", "'CONTINUE'", + "'CONVERT'", "'CREATE'", "'CROSS'", "'CURRENT'", "'CURRENT_USER'", "'CURSOR'", + "'DATABASE'", "'DATABASES'", "'DECLARE'", "'DEFAULT'", "'DELAYED'", "'DELETE'", + "'DESC'", "'DESCRIBE'", "'DETERMINISTIC'", "'DIAGNOSTICS'", "'DISTINCT'", + "'DISTINCTROW'", "'DROP'", "'EACH'", "'ELSE'", "'ELSEIF'", "'EMPTY'", + "'ENCLOSED'", "'ENFORCED'", "'ESCAPED'", "'EXCEPT'", "'EXISTS'", "'EXIT'", + "'EXPLAIN'", "'FALSE'", "'FETCH'", "'FOR'", "'FORCE'", "'FOREIGN'", "'FROM'", + "'FULLTEXT'", "'GENERATE'", "'GENERATED'", "'GET'", "'GRANT'", "'GROUP'", + "'HAVING'", "'HIGH_PRIORITY'", "'HISTOGRAM'", "'IF'", "'IGNORE'", "'IN'", + "'INACTIVE'", "'INDEX'", "'INFILE'", "'INNER'", "'INOUT'", "'INSERT'", + "'INTERVAL'", "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", "'KEYS'", + "'KILL'", "'LATERAL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", "'LIMIT'", + "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", "'LOCKED'", "'LOOP'", "'LOW_PRIORITY'", + "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", "'MATCH'", "'MAXVALUE'", + "'MODIFIES'", "'NATURAL'", "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", + "'NUMBER'", "'STREAM'", "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONAL'", + "'OPTIONALLY'", "'OR'", "'ORDER'", "'OUT'", "'OUTER'", "'OUTFILE'", "'OVER'", + "'PARTITION'", "'PRIMARY'", "'PROCEDURE'", "'PURGE'", "'RANGE'", "'READ'", + "'READS'", "'REFERENCE'", "'REFERENCES'", "'REGEXP'", "'RELEASE'", "'RENAME'", + "'REPEAT'", "'REPLACE'", "'REQUIRE'", "'RESIGNAL'", "'RESTRICT'", "'RETAIN'", + "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", "'SCHEMA'", "'SCHEMAS'", + "'SELECT'", "'SET'", "'SEPARATOR'", "'SHOW'", "'SIGNAL'", "'SKIP'", "'SKIP_QUERY_REWRITE'", + "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", "'SQLSTATE'", "'SQLWARNING'", + "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", "'SQL_SMALL_RESULT'", "'SSL'", + "'STACKED'", "'STARTING'", "'STRAIGHT_JOIN'", "'TABLE'", "'TERMINATED'", + "'THEN'", "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", "'UNDO'", "'UNION'", + "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", "'USAGE'", "'USE'", + "'USING'", "'VALUES'", "'VCPU'", "'WHEN'", "'WHERE'", "'WHILE'", "'WITH'", + "'WRITE'", "'XOR'", "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", "'MEDIUMINT'", + "'MIDDLEINT'", "'INT'", "'INT1'", "'INT2'", "'INT3'", "'INT4'", "'INT8'", + "'INTEGER'", "'BIGINT'", "'REAL'", "'DOUBLE'", "'PRECISION'", "'FLOAT'", + "'FLOAT4'", "'FLOAT8'", "'DECIMAL'", "'DEC'", "'NUMERIC'", "'DATE'", "'TIME'", + "'TIMESTAMP'", "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", "'NVARCHAR'", + "'NATIONAL'", "'BINARY'", "'VARBINARY'", "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", + "'LONG'", "'LONGBLOB'", "'TINYTEXT'", "'TEXT'", "'MEDIUMTEXT'", "'LONGTEXT'", + "'ENUM'", "'VARYING'", "'SERIAL'", "'YEAR_MONTH'", "'DAY_HOUR'", "'DAY_MINUTE'", + "'DAY_SECOND'", "'HOUR_MINUTE'", "'HOUR_SECOND'", "'MINUTE_SECOND'", "'SECOND_MICROSECOND'", + "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", "'DAY_MICROSECOND'", "'JSON_TABLE'", + "'JSON_VALUE'", "'NESTED'", "'ORDINALITY'", "'PATH'", "'AVG'", "'BIT_AND'", + "'BIT_OR'", "'BIT_XOR'", "'COUNT'", "'CUME_DIST'", "'DENSE_RANK'", "'FIRST_VALUE'", + "'GROUP_CONCAT'", "'LAG'", "'LAST_VALUE'", "'LEAD'", "'MAX'", "'MIN'", + "'NTILE'", "'NTH_VALUE'", "'PERCENT_RANK'", "'RANK'", "'ROW_NUMBER'", + "'STD'", "'STDDEV'", "'STDDEV_POP'", "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", + "'VAR_SAMP'", "'VARIANCE'", "'CURRENT_DATE'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'LOCALTIME'", "'CURDATE'", "'CURTIME'", "'DATE_ADD'", "'DATE_SUB'", "'EXTRACT'", + "'LOCALTIMESTAMP'", "'NOW'", "'POSITION'", "'SUBSTR'", "'SUBSTRING'", + "'SYSDATE'", "'TRIM'", "'UTC_DATE'", "'UTC_TIME'", "'UTC_TIMESTAMP'", + "'ACCOUNT'", "'ACTION'", "'AFTER'", "'AGGREGATE'", "'ALGORITHM'", "'ANY'", + "'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS'", "'AT'", "'AUTHORS'", "'AUTOCOMMIT'", + "'AUTOEXTEND_SIZE'", "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", "'BEGIN'", + "'BINLOG'", "'BIT'", "'BLOCK'", "'BOOL'", "'BOOLEAN'", "'BTREE'", "'CACHE'", + "'CASCADED'", "'CHAIN'", "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", "'CHALLENGE_RESPONSE'", + "'CIPHER'", "'CLASS_ORIGIN'", "'CLIENT'", "'CLOSE'", "'COALESCE'", "'CODE'", + "'COLUMNS'", "'COLUMN_FORMAT'", "'COLUMN_NAME'", "'COMMENT'", "'COMMIT'", + "'COMPACT'", "'COMPLETION'", "'COMPONENT'", "'COMPRESSED'", "'COMPRESSION'", + "'CONCURRENT'", "'CONNECT'", "'CONNECTION'", "'CONSISTENT'", "'CONSTRAINT_CATALOG'", + "'CONSTRAINT_SCHEMA'", "'CONSTRAINT_NAME'", "'CONTAINS'", "'CONTEXT'", + "'CONTRIBUTORS'", "'COPY'", "'CPU'", "'CURSOR_NAME'", "'DATA'", "'DATAFILE'", + "'DEALLOCATE'", "'DEFAULT_AUTH'", "'DEFINER'", "'DELAY_KEY_WRITE'", "'DES_KEY_FILE'", + "'DIRECTORY'", "'DISABLE'", "'DISCARD'", "'DISK'", "'DO'", "'DUMPFILE'", + "'DUPLICATE'", "'DYNAMIC'", "'ENABLE'", "'ENCRYPTION'", "'ENCRYPTION_KEY_ID'", + "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", "'ERROR'", "'ERRORS'", "'ESCAPE'", + "'EVENT'", "'EVENTS'", "'EVERY'", "'EXCHANGE'", "'EXCLUSIVE'", "'EXPIRE'", + "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", "'FACTOR'", "'FAILED_LOGIN_ATTEMPTS'", + "'FAST'", "'FAULTS'", "'FIELDS'", "'FILE_BLOCK_SIZE'", "'FILTER'", "'FINISH'", + "'FIRST'", "'FIXED'", "'FLUSH'", "'FOLLOWING'", "'FOLLOWS'", "'FOUND'", + "'FULL'", "'FUNCTION'", "'GENERAL'", "'GET_MASTER_PUBLIC_KEY'", "'GET_SOURCE_PUBLIC_KEY'", + "'GLOBAL'", "'GRANTS'", "'GROUP_REPLICATION'", "'GTID_ONLY'", "'HANDLER'", + "'HASH'", "'HELP'", "'HISTORY'", "'HOST'", "'HOSTS'", "'IDENTIFIED'", + "'IGNORE_SERVER_IDS'", "'IMPORT'", "'INDEXES'", "'INITIAL'", "'INITIAL_SIZE'", + "'INITIATE'", "'INPLACE'", "'INSERT_METHOD'", "'INSTALL'", "'INSTANCE'", + "'INSTANT'", "'INVISIBLE'", "'INVOKER'", "'IO'", "'IO_THREAD'", "'IPC'", + "'ISOLATION'", "'ISSUER'", "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", + "'LAST'", "'LEAVES'", "'LESS'", "'LEVEL'", "'LIST'", "'LOCAL'", "'LOGFILE'", + "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", "'MASTER_COMPRESSION_ALGORITHMS'", + "'MASTER_CONNECT_RETRY'", "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", + "'MASTER_HOST'", "'MASTER_LOG_FILE'", "'MASTER_LOG_POS'", "'MASTER_PASSWORD'", + "'MASTER_PORT'", "'MASTER_PUBLIC_KEY_PATH'", "'MASTER_RETRY_COUNT'", "'MASTER_SSL'", + "'MASTER_SSL_CA'", "'MASTER_SSL_CAPATH'", "'MASTER_SSL_CERT'", "'MASTER_SSL_CIPHER'", + "'MASTER_SSL_CRL'", "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", "'MASTER_TLS_CIPHERSUITES'", + "'MASTER_TLS_VERSION'", "'MASTER_USER'", "'MASTER_ZSTD_COMPRESSION_LEVEL'", + "'MAX_CONNECTIONS_PER_HOUR'", "'MAX_QUERIES_PER_HOUR'", "'MAX_ROWS'", + "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", "'MAX_USER_CONNECTIONS'", "'MEDIUM'", + "'MEMBER'", "'MERGE'", "'MESSAGE_TEXT'", "'MID'", "'MIGRATE'", "'MIN_ROWS'", + "'MODE'", "'MODIFY'", "'MUTEX'", "'MYSQL'", "'MYSQL_ERRNO'", "'NAME'", + "'NAMES'", "'NCHAR'", "'NETWORK_NAMESPACE'", "'NEVER'", "'NEXT'", "'NO'", + "'NOWAIT'", "'NODEGROUP'", "'NONE'", "'ODBC'", "'OFF'", "'OFFLINE'", "'OFFSET'", + "'OF'", "'OLD'", "'OLD_PASSWORD'", "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", + "'OPTIMIZER_COSTS'", "'OPTIONS'", "'OWNER'", "'PACK_KEYS'", "'PAGE'", + "'PAGE_CHECKSUM'", "'PAGE_COMPRESSED'", "'PAGE_COMPRESSION_LEVEL'", "'PARSER'", + "'PARTIAL'", "'PARTITIONING'", "'PARTITIONS'", "'PASSWORD'", "'PASSWORD_LOCK_TIME'", + "'PERSIST'", "'PERSIST_ONLY'", "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", + "'PLUGINS'", "'PORT'", "'PRECEDES'", "'PRECEDING'", "'PREPARE'", "'PRESERVE'", + "'PREV'", "'PRIVILEGE_CHECKS_USER'", "'PROCESSLIST'", "'PROFILE'", "'PROFILES'", + "'PROXY'", "'QUERY'", "'QUICK'", "'REBUILD'", "'RECOVER'", "'RECURSIVE'", + "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'REGISTRATION'", "'RELAY'", "'RELAY_LOG_FILE'", + "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", "'REPAIR'", + "'REPLICA'", "'REPLICAS'", "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", + "'REPLICATE_IGNORE_DB'", "'REPLICATE_IGNORE_TABLE'", "'REPLICATE_REWRITE_DB'", + "'REPLICATE_WILD_DO_TABLE'", "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", + "'REQUIRE_ROW_FORMAT'", "'REQUIRE_TABLE_PRIMARY_KEY_CHECK'", "'RESET'", + "'RESTART'", "'RESUME'", "'RETURNED_SQLSTATE'", "'RETURNING'", "'RETURNS'", + "'REUSE'", "'ROLE'", "'ROLLBACK'", "'ROLLUP'", "'ROTATE'", "'ROW'", "'ROWS'", + "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", "'SECURITY'", "'SERVER'", + "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", "'SIMPLE'", "'SLAVE'", + "'SLOW'", "'SNAPSHOT'", "'SOCKET'", "'SOME'", "'SONAME'", "'SOUNDS'", + "'SOURCE'", "'SOURCE_BIND'", "'SOURCE_HOST'", "'SOURCE_USER'", "'SOURCE_PASSWORD'", + "'SOURCE_PORT'", "'SOURCE_LOG_FILE'", "'SOURCE_LOG_POS'", "'SOURCE_AUTO_POSITION'", + "'SOURCE_HEARTBEAT_PERIOD'", "'SOURCE_CONNECT_RETRY'", "'SOURCE_RETRY_COUNT'", + "'SOURCE_CONNECTION_AUTO_FAILOVER'", "'SOURCE_DELAY'", "'SOURCE_COMPRESSION_ALGORITHMS'", + "'SOURCE_ZSTD_COMPRESSION_LEVEL'", "'SOURCE_SSL'", "'SOURCE_SSL_CA'", + "'SOURCE_SSL_CAPATH'", "'SOURCE_SSL_CERT'", "'SOURCE_SSL_CRL'", "'SOURCE_SSL_CRLPATH'", + "'SOURCE_SSL_KEY'", "'SOURCE_SSL_CIPHER'", "'SOURCE_SSL_VERIFY_SERVER_CERT'", + "'SOURCE_TLS_VERSION'", "'SOURCE_TLS_CIPHERSUITES'", "'SOURCE_PUBLIC_KEY_PATH'", + "'SQL_AFTER_GTIDS'", "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", "'SQL_BUFFER_RESULT'", + "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", "'START'", "'STARTS'", + "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", "'STATS_SAMPLE_PAGES'", "'STATUS'", + "'STOP'", "'STORAGE'", "'STORED'", "'STRING'", "'SUBCLASS_ORIGIN'", "'SUBJECT'", + "'SUBPARTITION'", "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", "'SWITCHES'", + "'TABLE_NAME'", "'TABLESPACE'", "'TABLE_TYPE'", "'TEMPORARY'", "'TEMPTABLE'", + "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", "'TRANSACTIONAL'", "'TREE'", + "'TRIGGERS'", "'TRUNCATE'", "'UNBOUNDED'", "'UNDEFINED'", "'UNDOFILE'", + "'UNDO_BUFFER_SIZE'", "'UNINSTALL'", "'UNKNOWN'", "'UNREGISTER'", "'UNTIL'", + "'UPGRADE'", "'USER'", "'USE_FRM'", "'USER_RESOURCES'", "'VALIDATION'", + "'VALUE'", "'VARIABLES'", "'VIEW'", "'VIRTUAL'", "'VISIBLE'", "'WAIT'", + "'WARNINGS'", "'WINDOW'", "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", + "'XA'", "'XML'", "'QUARTER'", "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", + "'WEEK'", "'SECOND'", "'MICROSECOND'", "'ADMIN'", "'APPLICATION_PASSWORD_ADMIN'", + "'AUDIT_ABORT_EXEMPT'", "'AUDIT_ADMIN'", "'AUTHENTICATION'", "'AUTHENTICATION_POLICY_ADMIN'", + "'BACKUP_ADMIN'", "'BINLOG_ADMIN'", "'BINLOG_ENCRYPTION_ADMIN'", "'CLONE'", + "'CLONE_ADMIN'", "'CONNECTION_ADMIN'", "'ENCRYPTION_KEY_ADMIN'", "'EXECUTE'", + "'FILE'", "'FIREWALL_ADMIN'", "'FIREWALL_EXEMPT'", "'FIREWALL_USER'", + "'FLUSH_OPTIMIZER_COSTS'", "'FLUSH_STATUS'", "'FLUSH_TABLES'", "'FLUSH_USER_RESOURCES'", + "'GROUP_REPLICATION_ADMIN'", "'INNODB_REDO_LOG_ARCHIVE'", "'INNODB_REDO_LOG_ENABLE'", + "'INVOKE'", "'LAMBDA'", "'NDB_STORED_USER'", "'PASSWORDLESS_USER_ADMIN'", + "'PERSIST_RO_VARIABLES_ADMIN'", "'PRIVILEGES'", "'PROCESS'", "'RELOAD'", + "'REPLICATION_APPLIER'", "'REPLICATION_SLAVE_ADMIN'", "'RESOURCE'", "'RESOURCE_GROUP_ADMIN'", + "'RESOURCE_GROUP_USER'", "'ROLE_ADMIN'", "'ROUTINE'", "'S3'", "'SERVICE_CONNECTION_ADMIN'", + undefined, "'SET_USER_ID'", "'SHOW_ROUTINE'", "'SHUTDOWN'", "'SUPER'", + "'SYSTEM_VARIABLES_ADMIN'", "'TABLES'", "'TABLE_ENCRYPTION_ADMIN'", "'VERSION_TOKEN_ADMIN'", + "'XA_RECOVER_ADMIN'", "'ARMSCII8'", "'ASCII'", "'BIG5'", "'CP1250'", "'CP1251'", + "'CP1256'", "'CP1257'", "'CP850'", "'CP852'", "'CP866'", "'CP932'", "'DEC8'", + "'EUCJPMS'", "'EUCKR'", "'GB18030'", "'GB2312'", "'GBK'", "'GEOSTD8'", + "'GREEK'", "'HEBREW'", "'HP8'", "'KEYBCS2'", "'KOI8R'", "'KOI8U'", "'LATIN1'", + "'LATIN2'", "'LATIN5'", "'LATIN7'", "'MACCE'", "'MACROMAN'", "'SJIS'", + "'SWE7'", "'TIS620'", "'UCS2'", "'UJIS'", "'UTF16'", "'UTF16LE'", "'UTF32'", + "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", "'ARCHIVE'", "'BLACKHOLE'", "'CSV'", + "'FEDERATED'", "'INNODB'", "'MEMORY'", "'MRG_MYISAM'", "'MYISAM'", "'NDB'", + "'NDBCLUSTER'", "'PERFORMANCE_SCHEMA'", "'TOKUDB'", "'REPEATABLE'", "'COMMITTED'", + "'UNCOMMITTED'", "'SERIALIZABLE'", "'GEOMETRYCOLLECTION'", "'GEOMCOLLECTION'", + "'GEOMETRY'", "'LINESTRING'", "'MULTILINESTRING'", "'MULTIPOINT'", "'MULTIPOLYGON'", + "'POINT'", "'POLYGON'", "'CATALOG_NAME'", "'CHARSET'", "'COLLATION'", + "'ENGINE_ATTRIBUTE'", "'FORMAT'", "'GET_FORMAT'", "'INTERSECT'", "'RANDOM'", + "'REVERSE'", "'ROW_COUNT'", "'SCHEMA_NAME'", "'SECONDARY_ENGINE_ATTRIBUTE'", + "'SRID'", "'SYSTEM'", "'SYSTEM_USER'", "'THREAD_PRIORITY'", "'TP_CONNECTION_ADMIN'", + "'TYPE'", "'WEIGHT_STRING'", "':='", "'+='", "'-='", "'*='", "'/='", "'%='", + "'&='", "'^='", "'|='", "'*'", "'/'", "'%'", "'+'", "'-'", "'DIV'", "'MOD'", + "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", "'^'", "'.'", "'('", + "')'", "','", "';'", "'@'", "'0'", "'1'", "'2'", "'3'", "'''", "'\"'", + "'`'", "':'", + ]; + private static readonly _SYMBOLIC_NAMES: Array = [ + undefined, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", + "KW_ACTIVE", "KW_ADD", "KW_ALL", "KW_ALTER", "KW_ALWAYS", "KW_ANALYZE", + "KW_AND", "KW_ARRAY", "KW_AS", "KW_ASC", "KW_ATTRIBUTE", "KW_BEFORE", + "KW_BETWEEN", "KW_BOTH", "KW_BUCKETS", "KW_BY", "KW_CALL", "KW_CASCADE", + "KW_CASE", "KW_CAST", "KW_CHANGE", "KW_CHARACTER", "KW_CHECK", "KW_COLLATE", + "KW_COLUMN", "KW_CONDITION", "KW_CONSTRAINT", "KW_CONTINUE", "KW_CONVERT", + "KW_CREATE", "KW_CROSS", "KW_CURRENT", "KW_CURRENT_USER", "KW_CURSOR", + "KW_DATABASE", "KW_DATABASES", "KW_DECLARE", "KW_DEFAULT", "KW_DELAYED", + "KW_DELETE", "KW_DESC", "KW_DESCRIBE", "KW_DETERMINISTIC", "KW_DIAGNOSTICS", + "KW_DISTINCT", "KW_DISTINCTROW", "KW_DROP", "KW_EACH", "KW_ELSE", "KW_ELSEIF", + "KW_EMPTY", "KW_ENCLOSED", "KW_ENFORCED", "KW_ESCAPED", "KW_EXCEPT", "KW_EXISTS", + "KW_EXIT", "KW_EXPLAIN", "KW_FALSE", "KW_FETCH", "KW_FOR", "KW_FORCE", + "KW_FOREIGN", "KW_FROM", "KW_FULLTEXT", "KW_GENERATE", "KW_GENERATED", + "KW_GET", "KW_GRANT", "KW_GROUP", "KW_HAVING", "KW_HIGH_PRIORITY", "KW_HISTOGRAM", + "KW_IF", "KW_IGNORE", "KW_IN", "KW_INACTIVE", "KW_INDEX", "KW_INFILE", + "KW_INNER", "KW_INOUT", "KW_INSERT", "KW_INTERVAL", "KW_INTO", "KW_IS", + "KW_ITERATE", "KW_JOIN", "KW_KEY", "KW_KEYS", "KW_KILL", "KW_LATERAL", + "KW_LEADING", "KW_LEAVE", "KW_LEFT", "KW_LIKE", "KW_LIMIT", "KW_LINEAR", + "KW_LINES", "KW_LOAD", "KW_LOCK", "KW_LOCKED", "KW_LOOP", "KW_LOW_PRIORITY", + "KW_MASTER_BIND", "KW_MASTER_SSL_VERIFY_SERVER_CERT", "KW_MATCH", "KW_MAXVALUE", + "KW_MODIFIES", "KW_NATURAL", "KW_NOT", "KW_NO_WRITE_TO_BINLOG", "KW_NULL_LITERAL", + "KW_NUMBER", "KW_STREAM", "KW_ON", "KW_OPTIMIZE", "KW_OPTION", "KW_OPTIONAL", + "KW_OPTIONALLY", "KW_OR", "KW_ORDER", "KW_OUT", "KW_OUTER", "KW_OUTFILE", + "KW_OVER", "KW_PARTITION", "KW_PRIMARY", "KW_PROCEDURE", "KW_PURGE", "KW_RANGE", + "KW_READ", "KW_READS", "KW_REFERENCE", "KW_REFERENCES", "KW_REGEXP", "KW_RELEASE", + "KW_RENAME", "KW_REPEAT", "KW_REPLACE", "KW_REQUIRE", "KW_RESIGNAL", "KW_RESTRICT", + "KW_RETAIN", "KW_RETURN", "KW_REVOKE", "KW_RIGHT", "KW_RLIKE", "KW_SCHEMA", + "KW_SCHEMAS", "KW_SELECT", "KW_SET", "KW_SEPARATOR", "KW_SHOW", "KW_SIGNAL", + "KW_SKIP", "KW_SKIP_QUERY_REWRITE", "KW_SPATIAL", "KW_SQL", "KW_SQLEXCEPTION", + "KW_SQLSTATE", "KW_SQLWARNING", "KW_SQL_BIG_RESULT", "KW_SQL_CALC_FOUND_ROWS", + "KW_SQL_SMALL_RESULT", "KW_SSL", "KW_STACKED", "KW_STARTING", "KW_STRAIGHT_JOIN", + "KW_TABLE", "KW_TERMINATED", "KW_THEN", "KW_TO", "KW_TRAILING", "KW_TRIGGER", + "KW_TRUE", "KW_UNDO", "KW_UNION", "KW_UNIQUE", "KW_UNLOCK", "KW_UNSIGNED", + "KW_UPDATE", "KW_USAGE", "KW_USE", "KW_USING", "KW_VALUES", "KW_VCPU", + "KW_WHEN", "KW_WHERE", "KW_WHILE", "KW_WITH", "KW_WRITE", "KW_XOR", "KW_ZEROFILL", + "KW_TINYINT", "KW_SMALLINT", "KW_MEDIUMINT", "KW_MIDDLEINT", "KW_INT", + "KW_INT1", "KW_INT2", "KW_INT3", "KW_INT4", "KW_INT8", "KW_INTEGER", "KW_BIGINT", + "KW_REAL", "KW_DOUBLE", "KW_PRECISION", "KW_FLOAT", "KW_FLOAT4", "KW_FLOAT8", + "KW_DECIMAL", "KW_DEC", "KW_NUMERIC", "KW_DATE", "KW_TIME", "KW_TIMESTAMP", + "KW_DATETIME", "KW_YEAR", "KW_CHAR", "KW_VARCHAR", "KW_NVARCHAR", "KW_NATIONAL", + "KW_BINARY", "KW_VARBINARY", "KW_TINYBLOB", "KW_BLOB", "KW_MEDIUMBLOB", + "KW_LONG", "KW_LONGBLOB", "KW_TINYTEXT", "KW_TEXT", "KW_MEDIUMTEXT", "KW_LONGTEXT", + "KW_ENUM", "KW_VARYING", "KW_SERIAL", "KW_YEAR_MONTH", "KW_DAY_HOUR", + "KW_DAY_MINUTE", "KW_DAY_SECOND", "KW_HOUR_MINUTE", "KW_HOUR_SECOND", + "KW_MINUTE_SECOND", "KW_SECOND_MICROSECOND", "KW_MINUTE_MICROSECOND", + "KW_HOUR_MICROSECOND", "KW_DAY_MICROSECOND", "KW_JSON_TABLE", "KW_JSON_VALUE", + "KW_NESTED", "KW_ORDINALITY", "KW_PATH", "KW_AVG", "KW_BIT_AND", "KW_BIT_OR", + "KW_BIT_XOR", "KW_COUNT", "KW_CUME_DIST", "KW_DENSE_RANK", "KW_FIRST_VALUE", + "KW_GROUP_CONCAT", "KW_LAG", "KW_LAST_VALUE", "KW_LEAD", "KW_MAX", "KW_MIN", + "KW_NTILE", "KW_NTH_VALUE", "KW_PERCENT_RANK", "KW_RANK", "KW_ROW_NUMBER", + "KW_STD", "KW_STDDEV", "KW_STDDEV_POP", "KW_STDDEV_SAMP", "KW_SUM", "KW_VAR_POP", + "KW_VAR_SAMP", "KW_VARIANCE", "KW_CURRENT_DATE", "KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", + "KW_LOCALTIME", "KW_CURDATE", "KW_CURTIME", "KW_DATE_ADD", "KW_DATE_SUB", + "KW_EXTRACT", "KW_LOCALTIMESTAMP", "KW_NOW", "KW_POSITION", "KW_SUBSTR", + "KW_SUBSTRING", "KW_SYSDATE", "KW_TRIM", "KW_UTC_DATE", "KW_UTC_TIME", + "KW_UTC_TIMESTAMP", "KW_ACCOUNT", "KW_ACTION", "KW_AFTER", "KW_AGGREGATE", + "KW_ALGORITHM", "KW_ANY", "KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS", + "KW_AT", "KW_AUTHORS", "KW_AUTOCOMMIT", "KW_AUTOEXTEND_SIZE", "KW_AUTO_INCREMENT", + "KW_AVG_ROW_LENGTH", "KW_BEGIN", "KW_BINLOG", "KW_BIT", "KW_BLOCK", "KW_BOOL", + "KW_BOOLEAN", "KW_BTREE", "KW_CACHE", "KW_CASCADED", "KW_CHAIN", "KW_CHANGED", + "KW_CHANNEL", "KW_CHECKSUM", "KW_CHALLENGE_RESPONSE", "KW_CIPHER", "KW_CLASS_ORIGIN", + "KW_CLIENT", "KW_CLOSE", "KW_COALESCE", "KW_CODE", "KW_COLUMNS", "KW_COLUMN_FORMAT", + "KW_COLUMN_NAME", "KW_COMMENT", "KW_COMMIT", "KW_COMPACT", "KW_COMPLETION", + "KW_COMPONENT", "KW_COMPRESSED", "KW_COMPRESSION", "KW_CONCURRENT", "KW_CONNECT", + "KW_CONNECTION", "KW_CONSISTENT", "KW_CONSTRAINT_CATALOG", "KW_CONSTRAINT_SCHEMA", + "KW_CONSTRAINT_NAME", "KW_CONTAINS", "KW_CONTEXT", "KW_CONTRIBUTORS", + "KW_COPY", "KW_CPU", "KW_CURSOR_NAME", "KW_DATA", "KW_DATAFILE", "KW_DEALLOCATE", + "KW_DEFAULT_AUTH", "KW_DEFINER", "KW_DELAY_KEY_WRITE", "KW_DES_KEY_FILE", + "KW_DIRECTORY", "KW_DISABLE", "KW_DISCARD", "KW_DISK", "KW_DO", "KW_DUMPFILE", + "KW_DUPLICATE", "KW_DYNAMIC", "KW_ENABLE", "KW_ENCRYPTION", "KW_ENCRYPTION_KEY_ID", + "KW_END", "KW_ENDS", "KW_ENGINE", "KW_ENGINES", "KW_ERROR", "KW_ERRORS", + "KW_ESCAPE", "KW_EVENT", "KW_EVENTS", "KW_EVERY", "KW_EXCHANGE", "KW_EXCLUSIVE", + "KW_EXPIRE", "KW_EXPORT", "KW_EXTENDED", "KW_EXTENT_SIZE", "KW_FACTOR", + "KW_FAILED_LOGIN_ATTEMPTS", "KW_FAST", "KW_FAULTS", "KW_FIELDS", "KW_FILE_BLOCK_SIZE", + "KW_FILTER", "KW_FINISH", "KW_FIRST", "KW_FIXED", "KW_FLUSH", "KW_FOLLOWING", + "KW_FOLLOWS", "KW_FOUND", "KW_FULL", "KW_FUNCTION", "KW_GENERAL", "KW_GET_MASTER_PUBLIC_KEY", + "KW_GET_SOURCE_PUBLIC_KEY", "KW_GLOBAL", "KW_GRANTS", "KW_GROUP_REPLICATION", + "KW_GTID_ONLY", "KW_HANDLER", "KW_HASH", "KW_HELP", "KW_HISTORY", "KW_HOST", + "KW_HOSTS", "KW_IDENTIFIED", "KW_IGNORE_SERVER_IDS", "KW_IMPORT", "KW_INDEXES", + "KW_INITIAL", "KW_INITIAL_SIZE", "KW_INITIATE", "KW_INPLACE", "KW_INSERT_METHOD", + "KW_INSTALL", "KW_INSTANCE", "KW_INSTANT", "KW_INVISIBLE", "KW_INVOKER", + "KW_IO", "KW_IO_THREAD", "KW_IPC", "KW_ISOLATION", "KW_ISSUER", "KW_JSON", + "KW_KEY_BLOCK_SIZE", "KW_LANGUAGE", "KW_LAST", "KW_LEAVES", "KW_LESS", + "KW_LEVEL", "KW_LIST", "KW_LOCAL", "KW_LOGFILE", "KW_LOGS", "KW_MASTER", + "KW_MASTER_AUTO_POSITION", "KW_MASTER_COMPRESSION_ALGORITHMS", "KW_MASTER_CONNECT_RETRY", + "KW_MASTER_DELAY", "KW_MASTER_HEARTBEAT_PERIOD", "KW_MASTER_HOST", "KW_MASTER_LOG_FILE", + "KW_MASTER_LOG_POS", "KW_MASTER_PASSWORD", "KW_MASTER_PORT", "KW_MASTER_PUBLIC_KEY_PATH", + "KW_MASTER_RETRY_COUNT", "KW_MASTER_SSL", "KW_MASTER_SSL_CA", "KW_MASTER_SSL_CAPATH", + "KW_MASTER_SSL_CERT", "KW_MASTER_SSL_CIPHER", "KW_MASTER_SSL_CRL", "KW_MASTER_SSL_CRLPATH", + "KW_MASTER_SSL_KEY", "KW_MASTER_TLS_CIPHERSUITES", "KW_MASTER_TLS_VERSION", + "KW_MASTER_USER", "KW_MASTER_ZSTD_COMPRESSION_LEVEL", "KW_MAX_CONNECTIONS_PER_HOUR", + "KW_MAX_QUERIES_PER_HOUR", "KW_MAX_ROWS", "KW_MAX_SIZE", "KW_MAX_UPDATES_PER_HOUR", + "KW_MAX_USER_CONNECTIONS", "KW_MEDIUM", "KW_MEMBER", "KW_MERGE", "KW_MESSAGE_TEXT", + "KW_MID", "KW_MIGRATE", "KW_MIN_ROWS", "KW_MODE", "KW_MODIFY", "KW_MUTEX", + "KW_MYSQL", "KW_MYSQL_ERRNO", "KW_NAME", "KW_NAMES", "KW_NCHAR", "KW_NETWORK_NAMESPACE", + "KW_NEVER", "KW_NEXT", "KW_NO", "KW_NOWAIT", "KW_NODEGROUP", "KW_NONE", + "KW_ODBC", "KW_OFF", "KW_OFFLINE", "KW_OFFSET", "KW_OF", "KW_OLD", "KW_OLD_PASSWORD", + "KW_ONE", "KW_ONLINE", "KW_ONLY", "KW_OPEN", "KW_OPTIMIZER_COSTS", "KW_OPTIONS", + "KW_OWNER", "KW_PACK_KEYS", "KW_PAGE", "KW_PAGE_CHECKSUM", "KW_PAGE_COMPRESSED", + "KW_PAGE_COMPRESSION_LEVEL", "KW_PARSER", "KW_PARTIAL", "KW_PARTITIONING", + "KW_PARTITIONS", "KW_PASSWORD", "KW_PASSWORD_LOCK_TIME", "KW_PERSIST", + "KW_PERSIST_ONLY", "KW_PHASE", "KW_PLUGIN", "KW_PLUGIN_DIR", "KW_PLUGINS", + "KW_PORT", "KW_PRECEDES", "KW_PRECEDING", "KW_PREPARE", "KW_PRESERVE", + "KW_PREV", "KW_PRIVILEGE_CHECKS_USER", "KW_PROCESSLIST", "KW_PROFILE", + "KW_PROFILES", "KW_PROXY", "KW_QUERY", "KW_QUICK", "KW_REBUILD", "KW_RECOVER", + "KW_RECURSIVE", "KW_REDO_BUFFER_SIZE", "KW_REDUNDANT", "KW_REGISTRATION", + "KW_RELAY", "KW_RELAY_LOG_FILE", "KW_RELAY_LOG_POS", "KW_RELAYLOG", "KW_REMOVE", + "KW_REORGANIZE", "KW_REPAIR", "KW_REPLICA", "KW_REPLICAS", "KW_REPLICATE_DO_DB", + "KW_REPLICATE_DO_TABLE", "KW_REPLICATE_IGNORE_DB", "KW_REPLICATE_IGNORE_TABLE", + "KW_REPLICATE_REWRITE_DB", "KW_REPLICATE_WILD_DO_TABLE", "KW_REPLICATE_WILD_IGNORE_TABLE", + "KW_REPLICATION", "KW_REQUIRE_ROW_FORMAT", "KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK", + "KW_RESET", "KW_RESTART", "KW_RESUME", "KW_RETURNED_SQLSTATE", "KW_RETURNING", + "KW_RETURNS", "KW_REUSE", "KW_ROLE", "KW_ROLLBACK", "KW_ROLLUP", "KW_ROTATE", + "KW_ROW", "KW_ROWS", "KW_ROW_FORMAT", "KW_SAVEPOINT", "KW_SCHEDULE", "KW_SECURITY", + "KW_SERVER", "KW_SESSION", "KW_SHARE", "KW_SHARED", "KW_SIGNED", "KW_SIMPLE", + "KW_SLAVE", "KW_SLOW", "KW_SNAPSHOT", "KW_SOCKET", "KW_SOME", "KW_SONAME", + "KW_SOUNDS", "KW_SOURCE", "KW_SOURCE_BIND", "KW_SOURCE_HOST", "KW_SOURCE_USER", + "KW_SOURCE_PASSWORD", "KW_SOURCE_PORT", "KW_SOURCE_LOG_FILE", "KW_SOURCE_LOG_POS", + "KW_SOURCE_AUTO_POSITION", "KW_SOURCE_HEARTBEAT_PERIOD", "KW_SOURCE_CONNECT_RETRY", + "KW_SOURCE_RETRY_COUNT", "KW_SOURCE_CONNECTION_AUTO_FAILOVER", "KW_SOURCE_DELAY", + "KW_SOURCE_COMPRESSION_ALGORITHMS", "KW_SOURCE_ZSTD_COMPRESSION_LEVEL", + "KW_SOURCE_SSL", "KW_SOURCE_SSL_CA", "KW_SOURCE_SSL_CAPATH", "KW_SOURCE_SSL_CERT", + "KW_SOURCE_SSL_CRL", "KW_SOURCE_SSL_CRLPATH", "KW_SOURCE_SSL_KEY", "KW_SOURCE_SSL_CIPHER", + "KW_SOURCE_SSL_VERIFY_SERVER_CERT", "KW_SOURCE_TLS_VERSION", "KW_SOURCE_TLS_CIPHERSUITES", + "KW_SOURCE_PUBLIC_KEY_PATH", "KW_SQL_AFTER_GTIDS", "KW_SQL_AFTER_MTS_GAPS", + "KW_SQL_BEFORE_GTIDS", "KW_SQL_BUFFER_RESULT", "KW_SQL_CACHE", "KW_SQL_NO_CACHE", + "KW_SQL_THREAD", "KW_START", "KW_STARTS", "KW_STATS_AUTO_RECALC", "KW_STATS_PERSISTENT", + "KW_STATS_SAMPLE_PAGES", "KW_STATUS", "KW_STOP", "KW_STORAGE", "KW_STORED", + "KW_STRING", "KW_SUBCLASS_ORIGIN", "KW_SUBJECT", "KW_SUBPARTITION", "KW_SUBPARTITIONS", + "KW_SUSPEND", "KW_SWAPS", "KW_SWITCHES", "KW_TABLE_NAME", "KW_TABLESPACE", + "KW_TABLE_TYPE", "KW_TEMPORARY", "KW_TEMPTABLE", "KW_THAN", "KW_TRADITIONAL", + "KW_TRANSACTION", "KW_TRANSACTIONAL", "KW_TREE", "KW_TRIGGERS", "KW_TRUNCATE", + "KW_UNBOUNDED", "KW_UNDEFINED", "KW_UNDOFILE", "KW_UNDO_BUFFER_SIZE", + "KW_UNINSTALL", "KW_UNKNOWN", "KW_UNREGISTER", "KW_UNTIL", "KW_UPGRADE", + "KW_USER", "KW_USE_FRM", "KW_USER_RESOURCES", "KW_VALIDATION", "KW_VALUE", + "KW_VARIABLES", "KW_VIEW", "KW_VIRTUAL", "KW_VISIBLE", "KW_WAIT", "KW_WARNINGS", + "KW_WINDOW", "KW_WITHOUT", "KW_WORK", "KW_WRAPPER", "KW_X509", "KW_XA", + "KW_XML", "KW_QUARTER", "KW_MONTH", "KW_DAY", "KW_HOUR", "KW_MINUTE", + "KW_WEEK", "KW_SECOND", "KW_MICROSECOND", "KW_ADMIN", "KW_APPLICATION_PASSWORD_ADMIN", + "KW_AUDIT_ABORT_EXEMPT", "KW_AUDIT_ADMIN", "KW_AUTHENTICATION", "KW_AUTHENTICATION_POLICY_ADMIN", + "KW_BACKUP_ADMIN", "KW_BINLOG_ADMIN", "KW_BINLOG_ENCRYPTION_ADMIN", "KW_CLONE", + "KW_CLONE_ADMIN", "KW_CONNECTION_ADMIN", "KW_ENCRYPTION_KEY_ADMIN", "KW_EXECUTE", + "KW_FILE", "KW_FIREWALL_ADMIN", "KW_FIREWALL_EXEMPT", "KW_FIREWALL_USER", + "KW_FLUSH_OPTIMIZER_COSTS", "KW_FLUSH_STATUS", "KW_FLUSH_TABLES", "KW_FLUSH_USER_RESOURCES", + "KW_GROUP_REPLICATION_ADMIN", "KW_INNODB_REDO_LOG_ARCHIVE", "KW_INNODB_REDO_LOG_ENABLE", + "KW_INVOKE", "KW_LAMBDA", "KW_NDB_STORED_USER", "KW_PASSWORDLESS_USER_ADMIN", + "KW_PERSIST_RO_VARIABLES_ADMIN", "KW_PRIVILEGES", "KW_PROCESS", "KW_RELOAD", + "KW_REPLICATION_APPLIER", "KW_REPLICATION_SLAVE_ADMIN", "KW_RESOURCE", + "KW_RESOURCE_GROUP_ADMIN", "KW_RESOURCE_GROUP_USER", "KW_ROLE_ADMIN", + "KW_ROUTINE", "KW_S3", "KW_SERVICE_CONNECTION_ADMIN", "KW_SESSION_VARIABLES_ADMIN", + "KW_SET_USER_ID", "KW_SHOW_ROUTINE", "KW_SHUTDOWN", "KW_SUPER", "KW_SYSTEM_VARIABLES_ADMIN", + "KW_TABLES", "KW_TABLE_ENCRYPTION_ADMIN", "KW_VERSION_TOKEN_ADMIN", "KW_XA_RECOVER_ADMIN", + "KW_ARMSCII8", "KW_ASCII", "KW_BIG5", "KW_CP1250", "KW_CP1251", "KW_CP1256", + "KW_CP1257", "KW_CP850", "KW_CP852", "KW_CP866", "KW_CP932", "KW_DEC8", + "KW_EUCJPMS", "KW_EUCKR", "KW_GB18030", "KW_GB2312", "KW_GBK", "KW_GEOSTD8", + "KW_GREEK", "KW_HEBREW", "KW_HP8", "KW_KEYBCS2", "KW_KOI8R", "KW_KOI8U", + "KW_LATIN1", "KW_LATIN2", "KW_LATIN5", "KW_LATIN7", "KW_MACCE", "KW_MACROMAN", + "KW_SJIS", "KW_SWE7", "KW_TIS620", "KW_UCS2", "KW_UJIS", "KW_UTF16", "KW_UTF16LE", + "KW_UTF32", "KW_UTF8", "KW_UTF8MB3", "KW_UTF8MB4", "KW_ARCHIVE", "KW_BLACKHOLE", + "KW_CSV", "KW_FEDERATED", "KW_INNODB", "KW_MEMORY", "KW_MRG_MYISAM", "KW_MYISAM", + "KW_NDB", "KW_NDBCLUSTER", "KW_PERFORMANCE_SCHEMA", "KW_TOKUDB", "KW_REPEATABLE", + "KW_COMMITTED", "KW_UNCOMMITTED", "KW_SERIALIZABLE", "KW_GEOMETRYCOLLECTION", + "KW_GEOMCOLLECTION", "KW_GEOMETRY", "KW_LINESTRING", "KW_MULTILINESTRING", + "KW_MULTIPOINT", "KW_MULTIPOLYGON", "KW_POINT", "KW_POLYGON", "KW_CATALOG_NAME", + "KW_CHARSET", "KW_COLLATION", "KW_ENGINE_ATTRIBUTE", "KW_FORMAT", "KW_GET_FORMAT", + "KW_INTERSECT", "KW_RANDOM", "KW_REVERSE", "KW_ROW_COUNT", "KW_SCHEMA_NAME", + "KW_SECONDARY_ENGINE_ATTRIBUTE", "KW_SRID", "KW_SYSTEM", "KW_SYSTEM_USER", + "KW_THREAD_PRIORITY", "KW_TP_CONNECTION_ADMIN", "KW_TYPE", "KW_WEIGHT_STRING", + "VAR_ASSIGN", "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", + "MOD_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", + "MODULE", "PLUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", + "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "THREE_DECIMAL", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", + "FILESIZE_LITERAL", "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", + "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", + "BIT_STRING", "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", + "HOST_IP_ADDRESS", "LOCAL_ID", "GLOBAL_ID", "PERSIST_ID", "ERROR_RECONGNIGION", + ]; + public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(MySqlLexer._LITERAL_NAMES, MySqlLexer._SYMBOLIC_NAMES, []); + + // @Override + // @NotNull + public get vocabulary(): Vocabulary { + return MySqlLexer.VOCABULARY; + } + // tslint:enable:no-trailing-whitespace + + + constructor(input: CharStream) { + super(input); + this._interp = new LexerATNSimulator(MySqlLexer._ATN, this); + } + + // @Override + public get grammarFileName(): string { return "MySqlLexer.g4"; } + + // @Override + public get ruleNames(): string[] { return MySqlLexer.ruleNames; } + + // @Override + public get serializedATN(): string { return MySqlLexer._serializedATN; } + + // @Override + public get channelNames(): string[] { return MySqlLexer.channelNames; } + + // @Override + public get modeNames(): string[] { return MySqlLexer.modeNames; } + + private static readonly _serializedATNSegments: number = 18; + private static readonly _serializedATNSegment0: string = + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\u0382\u28BC\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\x04\u0259\t\u0259\x04\u025A\t\u025A" + + "\x04\u025B\t\u025B\x04\u025C\t\u025C\x04\u025D\t\u025D\x04\u025E\t\u025E" + + "\x04\u025F\t\u025F\x04\u0260\t\u0260\x04\u0261\t\u0261\x04\u0262\t\u0262" + + "\x04\u0263\t\u0263\x04\u0264\t\u0264\x04\u0265\t\u0265\x04\u0266\t\u0266" + + "\x04\u0267\t\u0267\x04\u0268\t\u0268\x04\u0269\t\u0269\x04\u026A\t\u026A" + + "\x04\u026B\t\u026B\x04\u026C\t\u026C\x04\u026D\t\u026D\x04\u026E\t\u026E" + + "\x04\u026F\t\u026F\x04\u0270\t\u0270\x04\u0271\t\u0271\x04\u0272\t\u0272" + + "\x04\u0273\t\u0273\x04\u0274\t\u0274\x04\u0275\t\u0275\x04\u0276\t\u0276" + + "\x04\u0277\t\u0277\x04\u0278\t\u0278\x04\u0279\t\u0279\x04\u027A\t\u027A" + + "\x04\u027B\t\u027B\x04\u027C\t\u027C\x04\u027D\t\u027D\x04\u027E\t\u027E" + + "\x04\u027F\t\u027F\x04\u0280\t\u0280\x04\u0281\t\u0281\x04\u0282\t\u0282" + + "\x04\u0283\t\u0283\x04\u0284\t\u0284\x04\u0285\t\u0285\x04\u0286\t\u0286" + + "\x04\u0287\t\u0287\x04\u0288\t\u0288\x04\u0289\t\u0289\x04\u028A\t\u028A" + + "\x04\u028B\t\u028B\x04\u028C\t\u028C\x04\u028D\t\u028D\x04\u028E\t\u028E" + + "\x04\u028F\t\u028F\x04\u0290\t\u0290\x04\u0291\t\u0291\x04\u0292\t\u0292" + + "\x04\u0293\t\u0293\x04\u0294\t\u0294\x04\u0295\t\u0295\x04\u0296\t\u0296" + + "\x04\u0297\t\u0297\x04\u0298\t\u0298\x04\u0299\t\u0299\x04\u029A\t\u029A" + + "\x04\u029B\t\u029B\x04\u029C\t\u029C\x04\u029D\t\u029D\x04\u029E\t\u029E" + + "\x04\u029F\t\u029F\x04\u02A0\t\u02A0\x04\u02A1\t\u02A1\x04\u02A2\t\u02A2" + + "\x04\u02A3\t\u02A3\x04\u02A4\t\u02A4\x04\u02A5\t\u02A5\x04\u02A6\t\u02A6" + + "\x04\u02A7\t\u02A7\x04\u02A8\t\u02A8\x04\u02A9\t\u02A9\x04\u02AA\t\u02AA" + + "\x04\u02AB\t\u02AB\x04\u02AC\t\u02AC\x04\u02AD\t\u02AD\x04\u02AE\t\u02AE" + + "\x04\u02AF\t\u02AF\x04\u02B0\t\u02B0\x04\u02B1\t\u02B1\x04\u02B2\t\u02B2" + + "\x04\u02B3\t\u02B3\x04\u02B4\t\u02B4\x04\u02B5\t\u02B5\x04\u02B6\t\u02B6" + + "\x04\u02B7\t\u02B7\x04\u02B8\t\u02B8\x04\u02B9\t\u02B9\x04\u02BA\t\u02BA" + + "\x04\u02BB\t\u02BB\x04\u02BC\t\u02BC\x04\u02BD\t\u02BD\x04\u02BE\t\u02BE" + + "\x04\u02BF\t\u02BF\x04\u02C0\t\u02C0\x04\u02C1\t\u02C1\x04\u02C2\t\u02C2" + + "\x04\u02C3\t\u02C3\x04\u02C4\t\u02C4\x04\u02C5\t\u02C5\x04\u02C6\t\u02C6" + + "\x04\u02C7\t\u02C7\x04\u02C8\t\u02C8\x04\u02C9\t\u02C9\x04\u02CA\t\u02CA" + + "\x04\u02CB\t\u02CB\x04\u02CC\t\u02CC\x04\u02CD\t\u02CD\x04\u02CE\t\u02CE" + + "\x04\u02CF\t\u02CF\x04\u02D0\t\u02D0\x04\u02D1\t\u02D1\x04\u02D2\t\u02D2" + + "\x04\u02D3\t\u02D3\x04\u02D4\t\u02D4\x04\u02D5\t\u02D5\x04\u02D6\t\u02D6" + + "\x04\u02D7\t\u02D7\x04\u02D8\t\u02D8\x04\u02D9\t\u02D9\x04\u02DA\t\u02DA" + + "\x04\u02DB\t\u02DB\x04\u02DC\t\u02DC\x04\u02DD\t\u02DD\x04\u02DE\t\u02DE" + + "\x04\u02DF\t\u02DF\x04\u02E0\t\u02E0\x04\u02E1\t\u02E1\x04\u02E2\t\u02E2" + + "\x04\u02E3\t\u02E3\x04\u02E4\t\u02E4\x04\u02E5\t\u02E5\x04\u02E6\t\u02E6" + + "\x04\u02E7\t\u02E7\x04\u02E8\t\u02E8\x04\u02E9\t\u02E9\x04\u02EA\t\u02EA" + + "\x04\u02EB\t\u02EB\x04\u02EC\t\u02EC\x04\u02ED\t\u02ED\x04\u02EE\t\u02EE" + + "\x04\u02EF\t\u02EF\x04\u02F0\t\u02F0\x04\u02F1\t\u02F1\x04\u02F2\t\u02F2" + + "\x04\u02F3\t\u02F3\x04\u02F4\t\u02F4\x04\u02F5\t\u02F5\x04\u02F6\t\u02F6" + + "\x04\u02F7\t\u02F7\x04\u02F8\t\u02F8\x04\u02F9\t\u02F9\x04\u02FA\t\u02FA" + + "\x04\u02FB\t\u02FB\x04\u02FC\t\u02FC\x04\u02FD\t\u02FD\x04\u02FE\t\u02FE" + + "\x04\u02FF\t\u02FF\x04\u0300\t\u0300\x04\u0301\t\u0301\x04\u0302\t\u0302" + + "\x04\u0303\t\u0303\x04\u0304\t\u0304\x04\u0305\t\u0305\x04\u0306\t\u0306" + + "\x04\u0307\t\u0307\x04\u0308\t\u0308\x04\u0309\t\u0309\x04\u030A\t\u030A" + + "\x04\u030B\t\u030B\x04\u030C\t\u030C\x04\u030D\t\u030D\x04\u030E\t\u030E" + + "\x04\u030F\t\u030F\x04\u0310\t\u0310\x04\u0311\t\u0311\x04\u0312\t\u0312" + + "\x04\u0313\t\u0313\x04\u0314\t\u0314\x04\u0315\t\u0315\x04\u0316\t\u0316" + + "\x04\u0317\t\u0317\x04\u0318\t\u0318\x04\u0319\t\u0319\x04\u031A\t\u031A" + + "\x04\u031B\t\u031B\x04\u031C\t\u031C\x04\u031D\t\u031D\x04\u031E\t\u031E" + + "\x04\u031F\t\u031F\x04\u0320\t\u0320\x04\u0321\t\u0321\x04\u0322\t\u0322" + + "\x04\u0323\t\u0323\x04\u0324\t\u0324\x04\u0325\t\u0325\x04\u0326\t\u0326" + + "\x04\u0327\t\u0327\x04\u0328\t\u0328\x04\u0329\t\u0329\x04\u032A\t\u032A" + + "\x04\u032B\t\u032B\x04\u032C\t\u032C\x04\u032D\t\u032D\x04\u032E\t\u032E" + + "\x04\u032F\t\u032F\x04\u0330\t\u0330\x04\u0331\t\u0331\x04\u0332\t\u0332" + + "\x04\u0333\t\u0333\x04\u0334\t\u0334\x04\u0335\t\u0335\x04\u0336\t\u0336" + + "\x04\u0337\t\u0337\x04\u0338\t\u0338\x04\u0339\t\u0339\x04\u033A\t\u033A" + + "\x04\u033B\t\u033B\x04\u033C\t\u033C\x04\u033D\t\u033D\x04\u033E\t\u033E" + + "\x04\u033F\t\u033F\x04\u0340\t\u0340\x04\u0341\t\u0341\x04\u0342\t\u0342" + + "\x04\u0343\t\u0343\x04\u0344\t\u0344\x04\u0345\t\u0345\x04\u0346\t\u0346" + + "\x04\u0347\t\u0347\x04\u0348\t\u0348\x04\u0349\t\u0349\x04\u034A\t\u034A" + + "\x04\u034B\t\u034B\x04\u034C\t\u034C\x04\u034D\t\u034D\x04\u034E\t\u034E" + + "\x04\u034F\t\u034F\x04\u0350\t\u0350\x04\u0351\t\u0351\x04\u0352\t\u0352" + + "\x04\u0353\t\u0353\x04\u0354\t\u0354\x04\u0355\t\u0355\x04\u0356\t\u0356" + + "\x04\u0357\t\u0357\x04\u0358\t\u0358\x04\u0359\t\u0359\x04\u035A\t\u035A" + + "\x04\u035B\t\u035B\x04\u035C\t\u035C\x04\u035D\t\u035D\x04\u035E\t\u035E" + + "\x04\u035F\t\u035F\x04\u0360\t\u0360\x04\u0361\t\u0361\x04\u0362\t\u0362" + + "\x04\u0363\t\u0363\x04\u0364\t\u0364\x04\u0365\t\u0365\x04\u0366\t\u0366" + + "\x04\u0367\t\u0367\x04\u0368\t\u0368\x04\u0369\t\u0369\x04\u036A\t\u036A" + + "\x04\u036B\t\u036B\x04\u036C\t\u036C\x04\u036D\t\u036D\x04\u036E\t\u036E" + + "\x04\u036F\t\u036F\x04\u0370\t\u0370\x04\u0371\t\u0371\x04\u0372\t\u0372" + + "\x04\u0373\t\u0373\x04\u0374\t\u0374\x04\u0375\t\u0375\x04\u0376\t\u0376" + + "\x04\u0377\t\u0377\x04\u0378\t\u0378\x04\u0379\t\u0379\x04\u037A\t\u037A" + + "\x04\u037B\t\u037B\x04\u037C\t\u037C\x04\u037D\t\u037D\x04\u037E\t\u037E" + + "\x04\u037F\t\u037F\x04\u0380\t\u0380\x04\u0381\t\u0381\x04\u0382\t\u0382" + + "\x04\u0383\t\u0383\x04\u0384\t\u0384\x04\u0385\t\u0385\x04\u0386\t\u0386" + + "\x04\u0387\t\u0387\x04\u0388\t\u0388\x04\u0389\t\u0389\x04\u038A\t\u038A" + + "\x04\u038B\t\u038B\x04\u038C\t\u038C\x03\x02\x06\x02\u071B\n\x02\r\x02" + + "\x0E\x02\u071C\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" + + "\x06\x03\u0726\n\x03\r\x03\x0E\x03\u0727\x03\x03\x03\x03\x03\x03\x03\x03" + + "\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x07\x04\u0733\n\x04\f\x04\x0E" + + "\x04\u0736\v\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03\x05" + + "\x03\x05\x03\x05\x07\x05\u0741\n\x05\f\x05\x0E\x05\u0744\v\x05\x03\x05" + + "\x05\x05\u0747\n\x05\x03\x05\x07\x05\u074A\n\x05\f\x05\x0E\x05\u074D\v" + + "\x05\x03\x05\x05\x05\u0750\n\x05\x03\x05\x03\x05\x05\x05\u0754\n\x05\x03" + + "\x05\x03\x05\x03\x05\x03\x05\x05\x05\u075A\n\x05\x03\x05\x03\x05\x05\x05" + + "\u075E\n\x05\x05\x05\u0760\n\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06" + + "\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\b" + + "\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03" + + "\n\x03\n\x03\n\x03\n\x03\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03" + + "\v\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\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\x10" + + "\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03\x11" + + "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12" + + "\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13" + + "\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x15" + + "\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x17\x03\x17" + + "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18" + + "\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A" + + "\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + + "\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C" + + "\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + + "\x03\x1D\x03\x1D\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\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,\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\x030\x030\x030\x030\x030\x031\x031\x03" + + "1\x031\x031\x031\x031\x031\x031\x031\x031\x031\x032\x032\x032\x032\x03" + + "2\x032\x032\x032\x032\x033\x033\x033\x033\x033\x033\x033\x033\x033\x03" + + "3\x033\x033\x034\x034\x034\x034\x034\x035\x035\x035\x035\x035\x036\x03" + + "6\x036\x036\x036\x037\x037\x037\x037\x037\x037\x037\x038\x038\x038\x03" + + "8\x038\x038\x039\x039\x039\x039\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@\x03A\x03A\x03A\x03A\x03A\x03A\x03B\x03B\x03" + + "B\x03B\x03C\x03C\x03C\x03C\x03C\x03C\x03D\x03D\x03D\x03D\x03D\x03D\x03" + + "D\x03D\x03E\x03E\x03E\x03E\x03E\x03F\x03F\x03F\x03F\x03F\x03F\x03F\x03" + + "F\x03F\x03G\x03G\x03G\x03G\x03G\x03G\x03G\x03G\x03G\x03H\x03H\x03H\x03" + + "H\x03H\x03H\x03H\x03H\x03H\x03H\x03I\x03I\x03I\x03I\x03J\x03J\x03J\x03" + + "J\x03J\x03J\x03K\x03K\x03K\x03K\x03K\x03K\x03L\x03L\x03L\x03L\x03L\x03" + + "L\x03L\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03" + + "M\x03M\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03O\x03O\x03" + + "O\x03P\x03P\x03P\x03P\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03" + + "R\x03R\x03R\x03R\x03R\x03R\x03S\x03S\x03S\x03S\x03S\x03S\x03T\x03T\x03" + + "T\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03U\x03U\x03V\x03V\x03V\x03" + + "V\x03V\x03V\x03W\x03W\x03W\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03" + + "X\x03X\x03X"; + private static readonly _serializedATNSegment1: string = + "\x03X\x03X\x03Y\x03Y\x03Y\x03Y\x03Y\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`\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03b\x03" + + "b\x03b\x03b\x03b\x03b\x03c\x03c\x03c\x03c\x03c\x03d\x03d\x03d\x03d\x03" + + "d\x03e\x03e\x03e\x03e\x03e\x03e\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03" + + "g\x03g\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03h\x03i\x03i\x03i\x03" + + "i\x03i\x03j\x03j\x03j\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03k\x03" + + "l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03m\x03" + + "m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03n\x03n\x03n\x03" + + "n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03" + + "n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03o\x03" + + "o\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x03p\x03p\x03p\x03p\x03" + + "q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03r\x03" + + "r\x03r\x03r\x03s\x03s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03" + + "t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03" + + "u\x03u\x03u\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03w\x03w\x03w\x03w\x03" + + "w\x03w\x03w\x03x\x03x\x03x\x03y\x03y\x03y\x03y\x03y\x03y\x03y\x03y\x03" + + "y\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\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\x81\x03\x81\x03\x81\x03\x82\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\x84\x03\x84\x03\x84\x03\x84\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\x85\x03\x85\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03" + + "\x87\x03\x87\x03\x87\x03\x87\x03\x87\x03\x87\x03\x88\x03\x88\x03\x88\x03" + + "\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x8A\x03" + + "\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03" + + "\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\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\x8C\x03" + + "\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03" + + "\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8F\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\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03" + + "\x91\x03\x91\x03\x92\x03\x92\x03\x92\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\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03" + + "\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\x03\x95\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\x99\x03" + + "\x99\x03\x99\x03\x99\x03\x99\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9A\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\x9C\x03\x9C\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03" + + "\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9E\x03" + + "\x9E\x03\x9E\x03\x9E\x03\x9E\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03" + + "\x9F\x03\x9F\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA1\x03\xA1\x03" + + "\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03" + + "\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA2\x03" + + "\xA2\x03\xA2\x03\xA2\x03\xA2\x03\xA2\x03\xA2\x03\xA2\x03\xA3\x03\xA3\x03" + + "\xA3\x03\xA3\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03" + + "\xA4\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\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA6\x03" + + "\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA7\x03" + + "\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03" + + "\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA7\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03" + + "\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03" + + "\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA9\x03\xA9\x03" + + "\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03" + + "\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xA9\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" + + "\xAC\x03\xAC\x03\xAC\x03\xAC\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" + + "\xAD\x03\xAD\x03\xAD\x03\xAD\x03\xAD\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\xAF\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\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\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\xB5\x03\xB5\x03" + + "\xB5\x03\xB5\x03\xB5\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\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\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\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\xBF\x03" + + "\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\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\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC4\x03" + + "\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC4\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\xC6\x03" + + "\xC7\x03\xC7\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\xC8\x03\xC9\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\xCA\x03\xCA\x03" + + "\xCA\x03\xCB\x03\xCB\x03\xCB\x03\xCB\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03" + + "\xCC\x03\xCD\x03\xCD\x03\xCD\x03\xCD\x03\xCD\x03\xCE\x03\xCE\x03\xCE\x03" + + "\xCE\x03\xCE\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xD0\x03\xD0\x03" + + "\xD0\x03\xD0\x03\xD0\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03\xD1\x03" + + "\xD1\x03\xD1\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\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\xD5\x03\xD5\x03\xD5\x03\xD6\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\xD8\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\xDA\x03\xDA\x03\xDA\x03\xDA\x03" + + "\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB\x03\xDB\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\xDE\x03\xDE\x03\xDE\x03\xDE\x03" + + "\xDE\x03\xDF\x03\xDF\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" + + "\xE2\x03\xE3\x03\xE3\x03\xE3\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\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\xE6\x03" + + "\xE7\x03\xE7\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\xE9\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" + + "\xEB\x03\xEB\x03\xEB\x03\xEC\x03\xEC\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\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\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF1\x03\xF1\x03\xF1\x03" + + "\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x03" + + "\xF2\x03\xF2\x03\xF2\x03\xF3\x03\xF3\x03\xF3\x03\xF3\x03\xF3\x03\xF3\x03" + + "\xF3\x03\xF3\x03\xF3\x03\xF3\x03\xF3\x03\xF4\x03\xF4\x03\xF4\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\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" + + "\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\xF8\x03\xF8\x03\xF9\x03\xF9\x03\xF9\x03" + + "\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03" + + "\xF9\x03\xF9\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03" + + "\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\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\xFB\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\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\xFD\x03" + + "\xFD\x03\xFD\x03\xFD\x03\xFD\x03\xFD\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\xFE\x03\xFF\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\u0101\x03\u0101\x03\u0101\x03" + + "\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03" + + "\u0101\x03\u0102\x03\u0102\x03\u0102\x03\u0102\x03\u0102\x03\u0103\x03" + + "\u0103\x03\u0103\x03\u0103\x03\u0104\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\u0105\x03\u0106\x03\u0106\x03\u0106\x03" + + "\u0106\x03\u0106\x03\u0106\x03\u0106\x03\u0106\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0108\x03\u0108\x03\u0108\x03" + + "\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03" + + "\u0109\x03\u0109\x03\u0109\x03\u0109\x03\u0109\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\u010A\x03\u010A\x03\u010A\x03" + + "\u010A\x03\u010A\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03" + + "\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03" + + "\u010B\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010D\x03\u010D\x03" + + "\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010D\x03" + + "\u010D\x03\u010D\x03\u010E\x03\u010E\x03\u010E\x03\u010E\x03\u010E\x03" + + "\u010F\x03\u010F\x03\u010F\x03\u010F\x03\u0110\x03\u0110\x03\u0110\x03" + + "\u0110\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03" + + "\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x03" + + "\u0112\x03\u0112\x03\u0112\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03" + + "\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03" + + "\u0113\x03\u0113\x03\u0114\x03\u0114\x03\u0114\x03\u0114\x03\u0114\x03" + + "\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0115\x03" + + "\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0116\x03\u0116\x03\u0116\x03" + + "\u0116\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03" + + "\u0117\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03" + + "\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0119\x03\u0119\x03" + + "\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03" + + "\u0119\x03\u0119\x03\u0119\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x03" + + "\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03" + + "\u011B\x03\u011C\x03\u011C\x03\u011C\x03\u011C\x03\u011C\x03\u011C\x03" + + "\u011C\x03\u011C\x03\u011C\x03\u011D\x03\u011D\x03\u011D\x03\u011D\x03" + + "\u011D\x03\u011D\x03\u011D\x03\u011D\x03\u011D\x03\u011E\x03\u011E\x03" + + "\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011E\x03" + + "\u011E\x03\u011E\x03\u011E\x03\u011E\x03\u011F\x03\u011F\x03\u011F\x03" + + "\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03" + + "\u011F\x03\u011F\x03\u011F\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03" + + "\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03" + + "\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03\u0120\x03" + + "\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0121\x03" + + "\u0121\x03\u0121\x03\u0121\x03\u0122\x03\u0122\x03\u0122\x03\u0122\x03" + + "\u0122\x03\u0122\x03\u0122\x03\u0122\x03\u0123\x03\u0123\x03\u0123\x03" + + "\u0123\x03\u0123\x03\u0123\x03\u0123\x03\u0123\x03\u0124\x03\u0124\x03" + + "\u0124\x03\u0124\x03\u0124\x03\u0124\x03\u0124\x03\u0124\x03\u0124\x03" + + "\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03" + + "\u0125\x03\u0125\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03\u0126\x03" + + "\u0126\x03\u0126\x03\u0126\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03" + + "\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0127\x03" + + "\u0127\x03\u0127\x03\u0127\x03\u0127\x03\u0128\x03\u0128\x03\u0128\x03" + + "\u0128\x03\u0129\x03\u0129\x03\u0129\x03\u0129\x03\u0129\x03\u0129\x03" + + "\u0129\x03\u0129\x03\u0129\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03" + + "\u012A\x03\u012A\x03\u012A\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03" + + "\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x03\u012C\x03" + + "\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03" + + "\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012E\x03\u012E\x03" + + "\u012E\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03" + + "\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03\u012F\x03" + + "\u012F\x03\u012F\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03" + + "\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03" + + "\u0130\x03\u0130\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03\u0131\x03" + + "\u0131\x03\u0131\x03\u0131\x03\u0132\x03\u0132\x03\u0132\x03\u0132\x03" + + "\u0132\x03\u0132\x03\u0132\x03\u0133\x03\u0133\x03\u0133\x03\u0133\x03" + + "\u0133\x03\u0133\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03" + + "\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0135\x03\u0135\x03" + + "\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135\x03" + + "\u0135\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03\u0137\x03" + + "\u0137\x03\u0137\x03\u0138\x03\u0138\x03\u0138\x03\u0139\x03\u0139\x03" + + "\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u013A\x03" + + "\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03\u013A\x03" + + "\u013A\x03\u013A\x03\u013A\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03" + + "\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03" + + "\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013C\x03\u013C\x03" + + "\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03" + + "\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013C\x03\u013D\x03" + + "\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03" + + "\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03\u013D\x03" + + "\u013E\x03\u013E\x03\u013E\x03\u013E\x03\u013E\x03\u013E\x03\u013F\x03" + + "\u013F\x03\u013F\x03\u013F\x03\u013F\x03\u013F\x03\u013F\x03\u0140\x03" + + "\u0140\x03\u0140\x03\u0140\x03\u0141\x03\u0141\x03\u0141\x03\u0141\x03" + + "\u0141\x03\u0141\x03\u0142\x03\u0142\x03\u0142\x03\u0142\x03\u0142\x03" + + "\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03\u0143\x03" + + "\u0143\x03\u0144\x03\u0144\x03\u0144\x03\u0144\x03\u0144\x03\u0144\x03" + + "\u0145\x03\u0145\x03\u0145\x03\u0145\x03\u0145\x03\u0145\x03\u0146\x03" + + "\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03\u0146\x03" + + "\u0146\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03\u0147\x03" + + "\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03\u0148\x03" + + "\u0148\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03\u0149\x03" + + "\u0149\x03\u0149\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03\u014A\x03" + + "\u014A\x03\u014A\x03\u014A\x03\u014A\x03\u014B\x03\u014B\x03\u014B\x03" + + "\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03" + + "\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03\u014B\x03" + + "\u014B\x03\u014B\x03\u014C\x03\u014C\x03\u014C\x03\u014C\x03\u014C\x03" + + "\u014C\x03\u014C\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03" + + "\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03\u014D\x03" + + "\u014D\x03\u014E\x03\u014E\x03\u014E\x03\u014E\x03\u014E\x03\u014E\x03" + + "\u014E\x03\u014F\x03\u014F\x03\u014F\x03\u014F\x03\u014F\x03\u014F\x03" + + "\u0150\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03\u0150\x03" + + "\u0150\x03\u0150\x03\u0151\x03\u0151\x03\u0151\x03\u0151\x03\u0151\x03" + + "\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03\u0152\x03" + + "\u0152\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03" + + "\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03\u0153\x03" + + "\u0153\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03" + + "\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0155\x03" + + "\u0155\x03\u0155\x03\u0155\x03\u0155\x03\u0155\x03\u0155\x03\u0155\x03" + + "\u0156\x03\u0156\x03\u0156\x03\u0156\x03\u0156\x03\u0156\x03\u0156\x03" + + "\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0157\x03\u0157\x03" + + "\u0157\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03" + + "\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0158\x03\u0159\x03\u0159\x03" + + "\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u0159\x03\u0159\x03" + + "\u0159\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03" + + "\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015A\x03\u015B\x03\u015B\x03" + + "\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015B\x03\u015B\x03" + + "\u015B\x03\u015B\x03\u015B\x03\u015C\x03\u015C\x03\u015C\x03\u015C\x03" + + "\u015C\x03\u015C\x03\u015C\x03\u015C\x03\u015C\x03\u015C\x03\u015C\x03" + + "\u015D\x03\u015D\x03\u015D\x03\u015D\x03\u015D\x03\u015D\x03\u015D\x03" + + "\u015D\x03\u015E\x03\u015E\x03\u015E\x03\u015E\x03\u015E\x03\u015E\x03" + + "\u015E\x03\u015E\x03\u015E\x03\u015E\x03\u015E\x03\u015F\x03\u015F\x03" + + "\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03" + + "\u015F\x03\u015F\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03" + + "\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03" + + "\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03" + + "\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03" + + "\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0161\x03" + + "\u0161\x03\u0161\x03\u0161\x03\u0161\x03\u0162\x03\u0162\x03\u0162\x03" + + "\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0162\x03" + + "\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0162\x03\u0163\x03" + + "\u0163\x03\u0163\x03\u0163\x03\u0163\x03\u0163\x03\u0163\x03\u0163\x03" + + "\u0163\x03\u0164\x03\u0164\x03\u0164\x03\u0164\x03\u0164\x03\u0164\x03" + + "\u0164\x03\u0164\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03" + + "\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03" + + "\u0165\x03\u0166\x03\u0166\x03\u0166\x03\u0166\x03\u0166\x03\u0167\x03" + + "\u0167\x03\u0167\x03\u0167\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03" + + "\u0168\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03\u0168\x03" + + "\u0168\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u0169\x03\u016A\x03" + + "\u016A\x03\u016A\x03\u016A\x03\u016A\x03\u016A\x03\u016A\x03\u016A\x03" + + "\u016A\x03\u016B\x03\u016B\x03\u016B\x03\u016B\x03\u016B\x03\u016B\x03" + + "\u016B\x03\u016B\x03\u016B\x03\u016B\x03\u016B\x03\u016C\x03\u016C\x03" + + "\u016C\x03\u016C\x03\u016C\x03\u016C\x03\u016C\x03\u016C\x03\u016C\x03" + + "\u016C\x03\u016C\x03\u016C\x03\u016C\x03\u016D\x03\u016D\x03\u016D\x03" + + "\u016D\x03\u016D\x03\u016D\x03\u016D\x03\u016D\x03\u016E\x03\u016E\x03" + + "\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03" + + "\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03\u016E\x03" + + "\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03" + + "\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u016F\x03\u0170\x03" + + "\u0170\x03\u0170\x03\u0170\x03\u0170\x03\u0170\x03\u0170\x03\u0170\x03" + + "\u0170\x03\u0170\x03\u0171\x03\u0171\x03\u0171\x03\u0171\x03\u0171\x03" + + "\u0171\x03\u0171\x03\u0171\x03\u0172\x03\u0172\x03\u0172\x03\u0172\x03" + + "\u0172\x03\u0172\x03\u0172\x03\u0172\x03\u0173\x03\u0173\x03\u0173\x03" + + "\u0173\x03\u0173\x03\u0174\x03\u0174\x03\u0174\x03\u0175\x03\u0175\x03" + + "\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03\u0175\x03" + + "\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x03" + + "\u0176\x03\u0176\x03\u0176\x03\u0177\x03\u0177\x03\u0177\x03\u0177\x03" + + "\u0177\x03\u0177\x03\u0177\x03\u0177\x03\u0178\x03\u0178\x03\u0178\x03" + + "\u0178\x03\u0178\x03\u0178\x03\u0178\x03\u0179\x03\u0179\x03\u0179\x03" + + "\u0179\x03\u0179\x03\u0179\x03\u0179\x03\u0179\x03\u0179\x03\u0179\x03" + + "\u0179\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03" + + "\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03" + + "\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017A\x03\u017B\x03\u017B\x03" + + "\u017B\x03\u017B\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03" + + "\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03\u017D\x03" + + "\u017E\x03\u017E\x03\u017E\x03\u017E\x03\u017E"; + private static readonly _serializedATNSegment2: string = + "\x03\u017E\x03\u017E\x03\u017E\x03\u017F\x03\u017F\x03\u017F\x03\u017F" + + "\x03\u017F\x03\u017F\x03\u0180\x03\u0180\x03\u0180\x03\u0180\x03\u0180" + + "\x03\u0180\x03\u0180\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181" + + "\x03\u0181\x03\u0181\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0183\x03\u0183\x03\u0183\x03\u0183\x03\u0183\x03\u0183" + + "\x03\u0183\x03\u0184\x03\u0184\x03\u0184\x03\u0184\x03\u0184\x03\u0184" + + "\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185\x03\u0185" + + "\x03\u0185\x03\u0185\x03\u0186\x03\u0186\x03\u0186\x03\u0186\x03\u0186" + + "\x03\u0186\x03\u0186\x03\u0186\x03\u0186\x03\u0186\x03\u0187\x03\u0187" + + "\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0188\x03\u0188" + + "\x03\u0188\x03\u0188\x03\u0188\x03\u0188\x03\u0188\x03\u0189\x03\u0189" + + "\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189\x03\u0189" + + "\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A" + + "\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018A\x03\u018B\x03\u018B" + + "\x03\u018B\x03\u018B\x03\u018B\x03\u018B\x03\u018B\x03\u018C\x03\u018C" + + "\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C" + + "\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C" + + "\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018C\x03\u018D" + + "\x03\u018D\x03\u018D\x03\u018D\x03\u018D\x03\u018E\x03\u018E\x03\u018E" + + "\x03\u018E\x03\u018E\x03\u018E\x03\u018E\x03\u018F\x03\u018F\x03\u018F" + + "\x03\u018F\x03\u018F\x03\u018F\x03\u018F\x03\u0190\x03\u0190\x03\u0190" + + "\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0190" + + "\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x03\u0191" + + "\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0192" + + "\x03\u0192\x03\u0192\x03\u0192\x03\u0192\x03\u0192\x03\u0192\x03\u0193" + + "\x03\u0193\x03\u0193\x03\u0193\x03\u0193\x03\u0193\x03\u0194\x03\u0194" + + "\x03\u0194\x03\u0194\x03\u0194\x03\u0194\x03\u0195\x03\u0195\x03\u0195" + + "\x03\u0195\x03\u0195\x03\u0195\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0197" + + "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0198\x03\u0199" + + "\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u019A\x03\u019A\x03\u019A" + + "\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019B" + + "\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B" + + "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C" + + "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C" + + "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x03\u019C" + + "\x03\u019C\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D" + + "\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D" + + "\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D\x03\u019D" + + "\x03\u019D\x03\u019D\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E" + + "\x03\u019E\x03\u019E\x03\u019F\x03\u019F\x03\u019F\x03\u019F\x03\u019F" + + "\x03\u019F\x03\u019F\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0" + + "\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0" + + "\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A0\x03\u01A1" + + "\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1\x03\u01A1" + + "\x03\u01A1\x03\u01A1\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A2" + + "\x03\u01A2\x03\u01A2\x03\u01A2\x03\u01A3\x03\u01A3\x03\u01A3\x03\u01A3" + + "\x03\u01A3\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A4\x03\u01A5" + + "\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5\x03\u01A5" + + "\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A6\x03\u01A7\x03\u01A7" + + "\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A7\x03\u01A8\x03\u01A8\x03\u01A8" + + "\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8\x03\u01A8" + + "\x03\u01A8\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9" + + "\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9" + + "\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01A9\x03\u01AA\x03\u01AA" + + "\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AA\x03\u01AB\x03\u01AB" + + "\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AB\x03\u01AC" + + "\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC\x03\u01AC" + + "\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD" + + "\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AD\x03\u01AE" + + "\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE\x03\u01AE" + + "\x03\u01AE\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF\x03\u01AF" + + "\x03\u01AF\x03\u01AF\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0" + + "\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0\x03\u01B0" + + "\x03\u01B0\x03\u01B0\x03\u01B1\x03\u01B1\x03\u01B1\x03\u01B1\x03\u01B1" + + "\x03\u01B1\x03\u01B1\x03\u01B1\x03\u01B2\x03\u01B2\x03\u01B2\x03\u01B2" + + "\x03\u01B2\x03\u01B2\x03\u01B2\x03\u01B2\x03\u01B2\x03\u01B3\x03\u01B3" + + "\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B3\x03\u01B4" + + "\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B4\x03\u01B4" + + "\x03\u01B4\x03\u01B4\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B5" + + "\x03\u01B5\x03\u01B5\x03\u01B5\x03\u01B6\x03\u01B6\x03\u01B6\x03\u01B7" + + "\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7\x03\u01B7" + + "\x03\u01B7\x03\u01B7\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B8\x03\u01B9" + + "\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9\x03\u01B9" + + "\x03\u01B9\x03\u01B9\x03\u01BA\x03\u01BA\x03\u01BA\x03\u01BA\x03\u01BA" + + "\x03\u01BA\x03\u01BA\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB\x03\u01BB" + + "\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC" + + "\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC\x03\u01BC" + + "\x03\u01BC\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BD" + + "\x03\u01BD\x03\u01BD\x03\u01BD\x03\u01BE\x03\u01BE\x03\u01BE\x03\u01BE" + + "\x03\u01BE\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01BF\x03\u01BF" + + "\x03\u01BF\x03\u01C0\x03\u01C0\x03\u01C0\x03\u01C0\x03\u01C0\x03\u01C1" + + "\x03\u01C1\x03\u01C1\x03\u01C1\x03\u01C1\x03\u01C1\x03\u01C2\x03\u01C2" + + "\x03\u01C2\x03\u01C2\x03\u01C2\x03\u01C3\x03\u01C3\x03\u01C3\x03\u01C3" + + "\x03\u01C3\x03\u01C3\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C4" + + "\x03\u01C4\x03\u01C4\x03\u01C4\x03\u01C5\x03\u01C5\x03\u01C5\x03\u01C5" + + "\x03\u01C5\x03\u01C6\x03\u01C6\x03\u01C6\x03\u01C6\x03\u01C6\x03\u01C6" + + "\x03\u01C6\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7" + + "\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7" + + "\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7\x03\u01C7" + + "\x03\u01C7\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8" + + "\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8" + + "\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8" + + "\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C8" + + "\x03\u01C8\x03\u01C8\x03\u01C8\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9" + + "\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9" + + "\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01C9" + + "\x03\u01C9\x03\u01C9\x03\u01C9\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA" + + "\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA\x03\u01CA" + + "\x03\u01CA\x03\u01CA\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB" + + "\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB" + + "\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB" + + "\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CB\x03\u01CC\x03\u01CC" + + "\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CC" + + "\x03\u01CC\x03\u01CC\x03\u01CC\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD" + + "\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD" + + "\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CD\x03\u01CE\x03\u01CE" + + "\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE" + + "\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CE\x03\u01CF" + + "\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF" + + "\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF\x03\u01CF" + + "\x03\u01CF\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0" + + "\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D0\x03\u01D1" + + "\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1" + + "\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1" + + "\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1\x03\u01D1" + + "\x03\u01D1\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2" + + "\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2" + + "\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D2\x03\u01D3" + + "\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D3" + + "\x03\u01D3\x03\u01D3\x03\u01D3\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4" + + "\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D4" + + "\x03\u01D4\x03\u01D4\x03\u01D4\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5" + + "\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5" + + "\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5\x03\u01D5" + + "\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6" + + "\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6\x03\u01D6" + + "\x03\u01D6\x03\u01D6\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7" + + "\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7" + + "\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D7\x03\u01D8" + + "\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8" + + "\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8\x03\u01D8" + + "\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9" + + "\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9" + + "\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01D9\x03\u01DA\x03\u01DA" + + "\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA" + + "\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DA\x03\u01DB" + + "\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB" + + "\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB" + + "\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB\x03\u01DB" + + "\x03\u01DB\x03\u01DB\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC" + + "\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC" + + "\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC\x03\u01DC" + + "\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD" + + "\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DD\x03\u01DE\x03\u01DE" + + "\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE" + + "\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE" + + "\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE" + + "\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE\x03\u01DE" + + "\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF" + + "\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF" + + "\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF" + + "\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01DF\x03\u01E0\x03\u01E0\x03\u01E0" + + "\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0" + + "\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0" + + "\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E0\x03\u01E1\x03\u01E1\x03\u01E1" + + "\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E1\x03\u01E2" + + "\x03\u01E2\x03\u01E2\x03\u01E2\x03\u01E2\x03\u01E2\x03\u01E2\x03\u01E2" + + "\x03\u01E2\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3" + + "\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3" + + "\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3\x03\u01E3" + + "\x03\u01E3\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4" + + "\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4" + + "\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4\x03\u01E4" + + "\x03\u01E4\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5\x03\u01E5" + + "\x03\u01E5\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E6\x03\u01E6" + + "\x03\u01E6\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7\x03\u01E7" + + "\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8" + + "\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E8\x03\u01E9" + + "\x03\u01E9\x03\u01E9\x03\u01E9\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA" + + "\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EA\x03\u01EB\x03\u01EB\x03\u01EB" + + "\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EB\x03\u01EC" + + "\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01EC\x03\u01ED\x03\u01ED\x03\u01ED" + + "\x03\u01ED\x03\u01ED\x03\u01ED\x03\u01ED\x03\u01EE\x03\u01EE\x03\u01EE" + + "\x03\u01EE\x03\u01EE\x03\u01EE\x03\u01EF\x03\u01EF\x03\u01EF\x03\u01EF" + + "\x03\u01EF\x03\u01EF\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0" + + "\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0\x03\u01F0" + + "\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F1\x03\u01F2\x03\u01F2" + + "\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F2\x03\u01F3\x03\u01F3\x03\u01F3" + + "\x03\u01F3\x03\u01F3\x03\u01F3\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + + "\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + + "\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4\x03\u01F4" + + "\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F5\x03\u01F6" + + "\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F6\x03\u01F7\x03\u01F7\x03\u01F7" + + "\x03\u01F8\x03\u01F8\x03\u01F8\x03\u01F8\x03\u01F8\x03\u01F8\x03\u01F8" + + "\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01F9" + + "\x03\u01F9\x03\u01F9\x03\u01F9\x03\u01FA\x03\u01FA\x03\u01FA\x03\u01FA" + + "\x03\u01FA\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FB\x03\u01FC" + + "\x03\u01FC\x03\u01FC\x03\u01FC\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD" + + "\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FD\x03\u01FE\x03\u01FE\x03\u01FE" + + "\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FE\x03\u01FF\x03\u01FF\x03\u01FF" + + "\x03\u0200\x03\u0200\x03\u0200\x03\u0200\x03\u0201\x03\u0201\x03\u0201" + + "\x03\u0201\x03\u0201\x03\u0201\x03\u0201\x03\u0201\x03\u0201\x03\u0201" + + "\x03\u0201\x03\u0201\x03\u0201\x03\u0202\x03\u0202\x03\u0202\x03\u0202" + + "\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203\x03\u0203" + + "\x03\u0204\x03\u0204\x03\u0204\x03\u0204\x03\u0204\x03\u0205\x03\u0205" + + "\x03\u0205\x03\u0205\x03\u0205\x03\u0206\x03\u0206\x03\u0206\x03\u0206" + + "\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206" + + "\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0206\x03\u0207\x03\u0207" + + "\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0207\x03\u0208" + + "\x03\u0208\x03\u0208\x03\u0208\x03\u0208\x03\u0208\x03\u0209\x03\u0209" + + "\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u0209\x03\u0209" + + "\x03\u0209\x03\u020A\x03\u020A\x03\u020A\x03\u020A\x03\u020A\x03\u020B" + + "\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B" + + "\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020B\x03\u020C" + + "\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C" + + "\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C\x03\u020C" + + "\x03\u020C\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D" + + "\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D" + + "\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D\x03\u020D" + + "\x03\u020D\x03\u020D\x03\u020D\x03\u020E\x03\u020E\x03\u020E\x03\u020E" + + "\x03\u020E\x03\u020E\x03\u020E\x03\u020F\x03\u020F\x03\u020F\x03\u020F" + + "\x03\u020F\x03\u020F\x03\u020F\x03\u020F\x03\u0210\x03\u0210\x03\u0210" + + "\x03\u0210\x03\u0210\x03\u0210\x03\u0210\x03\u0210\x03\u0210\x03\u0210" + + "\x03\u0210\x03\u0210\x03\u0210\x03\u0211\x03\u0211\x03\u0211\x03\u0211" + + "\x03\u0211\x03\u0211\x03\u0211\x03\u0211\x03\u0211\x03\u0211\x03\u0211" + + "\x03\u0212\x03\u0212\x03\u0212\x03\u0212\x03\u0212\x03\u0212\x03\u0212" + + "\x03\u0212\x03\u0212\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213" + + "\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213" + + "\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213\x03\u0213" + + "\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214\x03\u0214" + + "\x03\u0214\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215" + + "\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215\x03\u0215" + + "\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0216\x03\u0217" + + "\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0217\x03\u0218" + + "\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0218\x03\u0218" + + "\x03\u0218\x03\u0218\x03\u0218\x03\u0219\x03\u0219\x03\u0219\x03\u0219" + + "\x03\u0219\x03\u0219\x03\u0219\x03\u0219\x03\u021A\x03\u021A\x03\u021A" + + "\x03\u021A\x03\u021A\x03\u021B\x03\u021B\x03\u021B\x03\u021B\x03\u021B" + + "\x03\u021B\x03\u021B\x03\u021B\x03\u021B\x03\u021C\x03\u021C\x03\u021C" + + "\x03\u021C\x03\u021C\x03\u021C\x03\u021C\x03\u021C\x03\u021C\x03\u021C" + + "\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D\x03\u021D" + + "\x03\u021D\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E\x03\u021E" + + "\x03\u021E\x03\u021E\x03\u021E\x03\u021F\x03\u021F\x03\u021F\x03\u021F" + + "\x03\u021F\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220" + + "\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220" + + "\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220\x03\u0220" + + "\x03\u0220\x03\u0220\x03\u0221\x03\u0221\x03\u0221\x03\u0221\x03\u0221" + + "\x03\u0221\x03\u0221\x03\u0221\x03\u0221\x03\u0221\x03\u0221\x03\u0221" + + "\x03\u0222\x03\u0222\x03\u0222\x03\u0222\x03\u0222\x03\u0222\x03\u0222" + + "\x03\u0222\x03\u0223\x03\u0223\x03\u0223\x03\u0223\x03\u0223\x03\u0223" + + "\x03\u0223\x03\u0223\x03\u0223\x03\u0224\x03\u0224\x03\u0224\x03\u0224" + + "\x03\u0224\x03\u0224\x03\u0225\x03\u0225\x03\u0225\x03\u0225\x03\u0225" + + "\x03\u0225\x03\u0226\x03\u0226\x03\u0226\x03\u0226\x03\u0226\x03\u0226" + + "\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227\x03\u0227" + + "\x03\u0227\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228\x03\u0228" + + "\x03\u0228\x03\u0228\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u0229" + + "\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u0229\x03\u022A\x03\u022A" + + "\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A" + + "\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A\x03\u022A" + + "\x03\u022A\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022B" + + "\x03\u022B\x03\u022B\x03\u022B\x03\u022B\x03\u022C\x03\u022C\x03\u022C" + + "\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C\x03\u022C" + + "\x03\u022C\x03\u022C\x03\u022C\x03\u022D\x03\u022D\x03\u022D\x03\u022D" + + "\x03\u022D\x03\u022D\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E" + + "\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E\x03\u022E" + + "\x03\u022E\x03\u022E\x03\u022E\x03\u022F\x03\u022F\x03\u022F\x03\u022F" + + "\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F\x03\u022F" + + "\x03\u022F\x03\u022F\x03\u022F\x03\u0230\x03\u0230\x03\u0230\x03\u0230" + + "\x03\u0230\x03\u0230\x03\u0230\x03\u0230\x03\u0230\x03\u0231\x03\u0231" + + "\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0231\x03\u0232\x03\u0232" + + "\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232\x03\u0232" + + "\x03\u0232\x03\u0232\x03\u0233\x03\u0233\x03\u0233\x03\u0233\x03\u0233" + + "\x03\u0233\x03\u0233\x03\u0234\x03\u0234\x03\u0234\x03\u0234\x03\u0234" + + "\x03\u0234\x03\u0234\x03\u0234\x03\u0235\x03\u0235\x03\u0235\x03\u0235" + + "\x03\u0235\x03\u0235\x03\u0235\x03\u0235\x03\u0235\x03\u0236\x03\u0236" + + "\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236" + + "\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236\x03\u0236" + + "\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237" + + "\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237" + + "\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0237\x03\u0238\x03\u0238" + + "\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238" + + "\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0238" + + "\x03\u0238\x03\u0238\x03\u0238\x03\u0238\x03\u0239\x03\u0239\x03\u0239" + + "\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239" + + "\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239" + + "\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u0239\x03\u023A" + + "\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A" + + "\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A" + + "\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023A\x03\u023B" + + "\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B" + + "\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B" + + "\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B\x03\u023B" + + "\x03\u023B\x03\u023B\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C" + + "\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C" + + "\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C" + + "\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C\x03\u023C" + + "\x03\u023C\x03\u023C\x03\u023D\x03\u023D\x03\u023D\x03\u023D\x03\u023D" + + "\x03\u023D\x03\u023D\x03\u023D\x03\u023D\x03\u023D\x03\u023D\x03\u023D" + + "\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E" + + "\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E" + + "\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023E\x03\u023F\x03\u023F" + + "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F" + + "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F" + + "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F" + + "\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F\x03\u023F" + + "\x03\u023F\x03\u023F\x03\u0240\x03\u0240\x03\u0240\x03\u0240\x03\u0240" + + "\x03\u0240\x03\u0241\x03\u0241\x03\u0241\x03\u0241\x03\u0241\x03\u0241" + + "\x03\u0241\x03\u0241\x03\u0242\x03\u0242\x03\u0242\x03\u0242\x03\u0242" + + "\x03\u0242\x03\u0242\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243" + + "\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243" + + "\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0243\x03\u0244" + + "\x03\u0244\x03\u0244\x03\u0244\x03\u0244\x03\u0244\x03\u0244\x03\u0244" + + "\x03\u0244\x03\u0244\x03\u0245\x03\u0245\x03\u0245\x03\u0245\x03\u0245" + + "\x03\u0245\x03\u0245\x03\u0245\x03\u0246\x03\u0246\x03\u0246\x03\u0246" + + "\x03\u0246\x03\u0246\x03\u0247\x03\u0247\x03\u0247\x03\u0247\x03\u0247" + + "\x03\u0248\x03\u0248\x03\u0248\x03\u0248\x03\u0248\x03\u0248\x03\u0248" + + "\x03\u0248\x03\u0248\x03\u0249\x03\u0249\x03\u0249\x03\u0249\x03\u0249" + + "\x03\u0249\x03\u0249\x03\u024A\x03\u024A\x03\u024A\x03\u024A\x03\u024A" + + "\x03\u024A\x03\u024A\x03\u024B\x03\u024B\x03\u024B\x03\u024B\x03\u024C" + + "\x03\u024C\x03\u024C\x03\u024C\x03\u024C\x03\u024D\x03\u024D\x03\u024D" + + "\x03\u024D\x03\u024D\x03\u024D\x03\u024D\x03\u024D\x03\u024D\x03\u024D" + + "\x03\u024D\x03\u024E\x03\u024E\x03\u024E\x03\u024E\x03\u024E\x03\u024E" + + "\x03\u024E\x03\u024E\x03\u024E\x03\u024E\x03\u024F\x03\u024F\x03\u024F" + + "\x03\u024F\x03\u024F\x03\u024F\x03\u024F\x03\u024F\x03\u024F\x03\u0250" + + "\x03\u0250\x03\u0250\x03\u0250\x03\u0250\x03\u0250\x03\u0250\x03\u0250" + + "\x03\u0250\x03\u0251\x03\u0251\x03\u0251\x03\u0251\x03\u0251\x03\u0251" + + "\x03\u0251\x03\u0252\x03\u0252\x03\u0252\x03\u0252\x03\u0252\x03\u0252" + + "\x03\u0252\x03\u0252\x03\u0253\x03\u0253\x03\u0253\x03\u0253\x03\u0253" + + "\x03\u0253\x03\u0254\x03\u0254\x03\u0254\x03\u0254\x03\u0254\x03\u0254" + + "\x03\u0254\x03\u0255\x03\u0255\x03\u0255\x03\u0255\x03\u0255\x03\u0255" + + "\x03\u0255\x03\u0256\x03\u0256\x03\u0256\x03\u0256\x03\u0256\x03\u0256" + + "\x03\u0256\x03\u0257\x03\u0257\x03\u0257\x03\u0257\x03\u0257\x03\u0257" + + "\x03\u0258\x03\u0258\x03\u0258\x03\u0258\x03\u0258\x03\u0259\x03\u0259" + + "\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u0259\x03\u0259" + + "\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A\x03\u025A" + + "\x03\u025B\x03\u025B\x03\u025B\x03\u025B\x03\u025B\x03\u025C\x03\u025C" + + "\x03\u025C\x03\u025C\x03\u025C\x03\u025C\x03\u025C\x03\u025D\x03\u025D" + + "\x03\u025D\x03\u025D\x03\u025D\x03\u025D\x03\u025D\x03\u025E\x03\u025E" + + "\x03\u025E\x03\u025E\x03\u025E\x03\u025E\x03\u025E\x03\u025F\x03\u025F" + + "\x03\u025F\x03\u025F\x03\u025F\x03\u025F\x03\u025F\x03\u025F\x03\u025F" + + "\x03\u025F\x03\u025F\x03\u025F\x03\u0260\x03\u0260\x03\u0260\x03\u0260" + + "\x03\u0260\x03\u0260\x03\u0260\x03\u0260\x03\u0260\x03\u0260\x03\u0260" + + "\x03\u0260\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261" + + "\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0261\x03\u0262" + + "\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262" + + "\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262\x03\u0262" + + "\x03\u0262\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263" + + "\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0263\x03\u0264" + + "\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + + "\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264\x03\u0264" + + "\x03\u0264\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265" + + "\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265\x03\u0265" + + "\x03\u0265\x03\u0265\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266" + + "\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266" + + "\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266\x03\u0266" + + "\x03\u0266\x03\u0266\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267" + + "\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267" + + "\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267" + + "\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0267\x03\u0268\x03\u0268" + + "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268" + + "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268" + + "\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0268\x03\u0269\x03\u0269" + + "\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269" + + "\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269\x03\u0269" + + "\x03\u0269\x03\u0269\x03\u0269\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + + "\x03\u026A"; + private static readonly _serializedATNSegment3: string = + "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + + "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + + "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A" + + "\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026A\x03\u026B" + + "\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B" + + "\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026B\x03\u026C\x03\u026C" + + "\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + + "\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + + "\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + + "\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C\x03\u026C" + + "\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + + "\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + + "\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + + "\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D\x03\u026D" + + "\x03\u026D\x03\u026D\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E" + + "\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026E\x03\u026F" + + "\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F" + + "\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u026F\x03\u0270" + + "\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270" + + "\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270\x03\u0270" + + "\x03\u0270\x03\u0270\x03\u0270\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + + "\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271" + + "\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0271\x03\u0272\x03\u0272" + + "\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272" + + "\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0272\x03\u0273" + + "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273" + + "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0273" + + "\x03\u0273\x03\u0273\x03\u0273\x03\u0273\x03\u0274\x03\u0274\x03\u0274" + + "\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274" + + "\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0274\x03\u0275\x03\u0275" + + "\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275" + + "\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275\x03\u0275" + + "\x03\u0275\x03\u0275\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + + "\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + + "\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + + "\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0276" + + "\x03\u0276\x03\u0276\x03\u0276\x03\u0276\x03\u0277\x03\u0277\x03\u0277" + + "\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + + "\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277\x03\u0277" + + "\x03\u0277\x03\u0277\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278" + + "\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278" + + "\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278" + + "\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0278\x03\u0279\x03\u0279" + + "\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279" + + "\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279" + + "\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279\x03\u0279" + + "\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A" + + "\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A\x03\u027A" + + "\x03\u027A\x03\u027A\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + + "\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + + "\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B\x03\u027B" + + "\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C" + + "\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C\x03\u027C" + + "\x03\u027C\x03\u027C\x03\u027C\x03\u027D\x03\u027D\x03\u027D\x03\u027D" + + "\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D" + + "\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D\x03\u027D" + + "\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E\x03\u027E" + + "\x03\u027E\x03\u027E\x03\u027E\x03\u027F\x03\u027F\x03\u027F\x03\u027F" + + "\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u027F\x03\u027F" + + "\x03\u027F\x03\u027F\x03\u0280\x03\u0280\x03\u0280\x03\u0280\x03\u0280" + + "\x03\u0280\x03\u0280\x03\u0280\x03\u0280\x03\u0280\x03\u0280\x03\u0281" + + "\x03\u0281\x03\u0281\x03\u0281\x03\u0281\x03\u0281\x03\u0282\x03\u0282" + + "\x03\u0282\x03\u0282\x03\u0282\x03\u0282\x03\u0282\x03\u0283\x03\u0283" + + "\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283" + + "\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283\x03\u0283" + + "\x03\u0283\x03\u0283\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0284" + + "\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0284" + + "\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0284\x03\u0285\x03\u0285" + + "\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285" + + "\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285\x03\u0285" + + "\x03\u0285\x03\u0285\x03\u0285\x03\u0286\x03\u0286\x03\u0286\x03\u0286" + + "\x03\u0286\x03\u0286\x03\u0286\x03\u0287\x03\u0287\x03\u0287\x03\u0287" + + "\x03\u0287\x03\u0288\x03\u0288\x03\u0288\x03\u0288\x03\u0288\x03\u0288" + + "\x03\u0288\x03\u0288\x03\u0289\x03\u0289\x03\u0289\x03\u0289\x03\u0289" + + "\x03\u0289\x03\u0289\x03\u028A\x03\u028A\x03\u028A\x03\u028A\x03\u028A" + + "\x03\u028A\x03\u028A\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028B" + + "\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028B" + + "\x03\u028B\x03\u028B\x03\u028B\x03\u028B\x03\u028C\x03\u028C\x03\u028C" + + "\x03\u028C\x03\u028C\x03\u028C\x03\u028C\x03\u028C\x03\u028D\x03\u028D" + + "\x03\u028D\x03\u028D\x03\u028D\x03\u028D\x03\u028D\x03\u028D\x03\u028D" + + "\x03\u028D\x03\u028D\x03\u028D\x03\u028D\x03\u028E\x03\u028E\x03\u028E" + + "\x03\u028E\x03\u028E\x03\u028E\x03\u028E\x03\u028E\x03\u028E\x03\u028E" + + "\x03\u028E\x03\u028E\x03\u028E\x03\u028E\x03\u028F\x03\u028F\x03\u028F" + + "\x03\u028F\x03\u028F\x03\u028F\x03\u028F\x03\u028F\x03\u0290\x03\u0290" + + "\x03\u0290\x03\u0290\x03\u0290\x03\u0290\x03\u0291\x03\u0291\x03\u0291" + + "\x03\u0291\x03\u0291\x03\u0291\x03\u0291\x03\u0291\x03\u0291\x03\u0292" + + "\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292\x03\u0292" + + "\x03\u0292\x03\u0292\x03\u0292\x03\u0293\x03\u0293\x03\u0293\x03\u0293" + + "\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0293\x03\u0293" + + "\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0294" + + "\x03\u0294\x03\u0294\x03\u0294\x03\u0294\x03\u0295\x03\u0295\x03\u0295" + + "\x03\u0295\x03\u0295\x03\u0295\x03\u0295\x03\u0295\x03\u0295\x03\u0295" + + "\x03\u0296\x03\u0296\x03\u0296\x03\u0296\x03\u0296\x03\u0296\x03\u0296" + + "\x03\u0296\x03\u0296\x03\u0296\x03\u0297\x03\u0297\x03\u0297\x03\u0297" + + "\x03\u0297\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0298" + + "\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0298\x03\u0299" + + "\x03\u0299\x03\u0299\x03\u0299\x03\u0299\x03\u0299\x03\u0299\x03\u0299" + + "\x03\u0299\x03\u0299\x03\u0299\x03\u0299\x03\u029A\x03\u029A\x03\u029A" + + "\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029A" + + "\x03\u029A\x03\u029A\x03\u029A\x03\u029A\x03\u029B\x03\u029B\x03\u029B" + + "\x03\u029B\x03\u029B\x03\u029C\x03\u029C\x03\u029C\x03\u029C\x03\u029C" + + "\x03\u029C\x03\u029C\x03\u029C\x03\u029C\x03\u029D\x03\u029D\x03\u029D" + + "\x03\u029D\x03\u029D\x03\u029D\x03\u029D\x03\u029D\x03\u029D\x03\u029E" + + "\x03\u029E\x03\u029E\x03\u029E\x03\u029E\x03\u029E\x03\u029E\x03\u029E" + + "\x03\u029E\x03\u029E\x03\u029F\x03\u029F\x03\u029F\x03\u029F\x03\u029F" + + "\x03\u029F\x03\u029F\x03\u029F\x03\u029F\x03\u029F\x03\u02A0\x03\u02A0" + + "\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A0\x03\u02A0" + + "\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1" + + "\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A1" + + "\x03\u02A1\x03\u02A1\x03\u02A1\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A2" + + "\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A2\x03\u02A3" + + "\x03\u02A3\x03\u02A3\x03\u02A3\x03\u02A3\x03\u02A3\x03\u02A3\x03\u02A3" + + "\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4" + + "\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A4\x03\u02A5\x03\u02A5\x03\u02A5" + + "\x03\u02A5\x03\u02A5\x03\u02A5\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A6" + + "\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A6\x03\u02A7\x03\u02A7\x03\u02A7" + + "\x03\u02A7\x03\u02A7\x03\u02A8\x03\u02A8\x03\u02A8\x03\u02A8\x03\u02A8" + + "\x03\u02A8\x03\u02A8\x03\u02A8\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9" + + "\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9" + + "\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02A9\x03\u02AA\x03\u02AA\x03\u02AA" + + "\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA\x03\u02AA" + + "\x03\u02AA\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB\x03\u02AB" + + "\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AC" + + "\x03\u02AC\x03\u02AC\x03\u02AC\x03\u02AD\x03\u02AD\x03\u02AD\x03\u02AD" + + "\x03\u02AD\x03\u02AE\x03\u02AE\x03\u02AE\x03\u02AE\x03\u02AE\x03\u02AE" + + "\x03\u02AE\x03\u02AE\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02AF" + + "\x03\u02AF\x03\u02AF\x03\u02AF\x03\u02B0\x03\u02B0\x03\u02B0\x03\u02B0" + + "\x03\u02B0\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B1" + + "\x03\u02B1\x03\u02B1\x03\u02B1\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B2" + + "\x03\u02B2\x03\u02B2\x03\u02B2\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3" + + "\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B3\x03\u02B4\x03\u02B4\x03\u02B4" + + "\x03\u02B4\x03\u02B4\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B5" + + "\x03\u02B5\x03\u02B5\x03\u02B5\x03\u02B6\x03\u02B6\x03\u02B6\x03\u02B6" + + "\x03\u02B6\x03\u02B7\x03\u02B7\x03\u02B7\x03\u02B8\x03\u02B8\x03\u02B8" + + "\x03\u02B8\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9\x03\u02B9" + + "\x03\u02B9\x03\u02B9\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA\x03\u02BA" + + "\x03\u02BA\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BB\x03\u02BC\x03\u02BC" + + "\x03\u02BC\x03\u02BC\x03\u02BC\x03\u02BD\x03\u02BD\x03\u02BD\x03\u02BD" + + "\x03\u02BD\x03\u02BD\x03\u02BD\x03\u02BE\x03\u02BE\x03\u02BE\x03\u02BE" + + "\x03\u02BE\x03\u02BF\x03\u02BF\x03\u02BF\x03\u02BF\x03\u02BF\x03\u02BF" + + "\x03\u02BF\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0" + + "\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C0\x03\u02C1" + + "\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C1\x03\u02C2\x03\u02C2" + + "\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2" + + "\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2" + + "\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2" + + "\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C2\x03\u02C3\x03\u02C3\x03\u02C3" + + "\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3" + + "\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3\x03\u02C3" + + "\x03\u02C3\x03\u02C3\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4" + + "\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4\x03\u02C4" + + "\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5" + + "\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5\x03\u02C5" + + "\x03\u02C5\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6" + + "\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6" + + "\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6" + + "\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6\x03\u02C6" + + "\x03\u02C6\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7" + + "\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7\x03\u02C7" + + "\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8" + + "\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C8\x03\u02C9" + + "\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9" + + "\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9" + + "\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9\x03\u02C9" + + "\x03\u02C9\x03\u02C9\x03\u02CA\x03\u02CA\x03\u02CA\x03\u02CA\x03\u02CA" + + "\x03\u02CA\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB" + + "\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CB\x03\u02CC" + + "\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC" + + "\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC\x03\u02CC" + + "\x03\u02CC\x03\u02CC\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + + "\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + + "\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD\x03\u02CD" + + "\x03\u02CD\x03\u02CD\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CE" + + "\x03\u02CE\x03\u02CE\x03\u02CE\x03\u02CF\x03\u02CF\x03\u02CF\x03\u02CF" + + "\x03\u02CF\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0" + + "\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0\x03\u02D0" + + "\x03\u02D0\x03\u02D0\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1" + + "\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1" + + "\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D1\x03\u02D2\x03\u02D2\x03\u02D2" + + "\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2" + + "\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D2\x03\u02D3\x03\u02D3\x03\u02D3" + + "\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3" + + "\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3" + + "\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D3\x03\u02D4\x03\u02D4" + + "\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4" + + "\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D4\x03\u02D5\x03\u02D5\x03\u02D5" + + "\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D5" + + "\x03\u02D5\x03\u02D5\x03\u02D5\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6" + + "\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6" + + "\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D6" + + "\x03\u02D6\x03\u02D6\x03\u02D6\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7" + + "\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7" + + "\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7" + + "\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D7\x03\u02D8" + + "\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8" + + "\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8" + + "\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8\x03\u02D8" + + "\x03\u02D8\x03\u02D8\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9" + + "\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9" + + "\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9" + + "\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02D9\x03\u02DA\x03\u02DA\x03\u02DA" + + "\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DA\x03\u02DB\x03\u02DB\x03\u02DB" + + "\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DB\x03\u02DC\x03\u02DC\x03\u02DC" + + "\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC" + + "\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DC\x03\u02DD" + + "\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD" + + "\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD" + + "\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD\x03\u02DD" + + "\x03\u02DD\x03\u02DD\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE" + + "\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE" + + "\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE" + + "\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE\x03\u02DE" + + "\x03\u02DE\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF" + + "\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02DF\x03\u02E0\x03\u02E0" + + "\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E0\x03\u02E1" + + "\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E1\x03\u02E2" + + "\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2" + + "\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2" + + "\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E2\x03\u02E3\x03\u02E3" + + "\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3" + + "\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3" + + "\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3\x03\u02E3" + + "\x03\u02E3\x03\u02E4\x03\u02E4\x03\u02E4\x03\u02E4\x03\u02E4\x03\u02E4" + + "\x03\u02E4\x03\u02E4\x03\u02E4\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5" + + "\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5" + + "\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E5" + + "\x03\u02E5\x03\u02E5\x03\u02E5\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6" + + "\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6" + + "\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6\x03\u02E6" + + "\x03\u02E6\x03\u02E6\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E7" + + "\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E7\x03\u02E8" + + "\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8\x03\u02E8" + + "\x03\u02E9\x03\u02E9\x03\u02E9\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + + "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + + "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + + "\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA\x03\u02EA" + + "\x03\u02EB\x05\u02EB\u23B6\n\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + + "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + + "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + + "\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB\x03\u02EB" + + "\x05\u02EB\u23D1\n\u02EB\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC" + + "\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC\x03\u02EC" + + "\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED" + + "\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02ED\x03\u02EE" + + "\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE\x03\u02EE" + + "\x03\u02EE\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF\x03\u02EF" + + "\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0" + + "\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0" + + "\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0\x03\u02F0" + + "\x03\u02F0\x03\u02F0\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1\x03\u02F1" + + "\x03\u02F1\x03\u02F1\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2" + + "\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2" + + "\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2" + + "\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F2\x03\u02F3\x03\u02F3\x03\u02F3" + + "\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3" + + "\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F3" + + "\x03\u02F3\x03\u02F3\x03\u02F3\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4" + + "\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4" + + "\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F4\x03\u02F5" + + "\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5\x03\u02F5" + + "\x03\u02F5\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6\x03\u02F6" + + "\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F7\x03\u02F8\x03\u02F8" + + "\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F8\x03\u02F9\x03\u02F9" + + "\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02F9\x03\u02FA\x03\u02FA" + + "\x03\u02FA\x03\u02FA\x03\u02FA\x03\u02FA\x03\u02FA\x03\u02FB\x03\u02FB" + + "\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FB\x03\u02FC\x03\u02FC" + + "\x03\u02FC\x03\u02FC\x03\u02FC\x03\u02FC\x03\u02FD\x03\u02FD\x03\u02FD" + + "\x03\u02FD\x03\u02FD\x03\u02FD\x03\u02FE\x03\u02FE\x03\u02FE\x03\u02FE" + + "\x03\u02FE\x03\u02FE\x03\u02FF\x03\u02FF\x03\u02FF\x03\u02FF\x03\u02FF" + + "\x03\u02FF\x03\u0300\x03\u0300\x03\u0300\x03\u0300\x03\u0300\x03\u0301" + + "\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301\x03\u0301" + + "\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0302\x03\u0303" + + "\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303\x03\u0303" + + "\x03\u0304\x03\u0304\x03\u0304\x03\u0304\x03\u0304\x03\u0304\x03\u0304" + + "\x03\u0305\x03\u0305\x03\u0305\x03\u0305\x03\u0306\x03\u0306\x03\u0306" + + "\x03\u0306\x03\u0306\x03\u0306\x03\u0306\x03\u0306\x03\u0307\x03\u0307" + + "\x03\u0307\x03\u0307\x03\u0307\x03\u0307\x03\u0308\x03\u0308\x03\u0308" + + "\x03\u0308\x03\u0308\x03\u0308\x03\u0308\x03\u0309\x03\u0309\x03\u0309" + + "\x03\u0309\x03\u030A\x03\u030A\x03\u030A\x03\u030A\x03\u030A\x03\u030A" + + "\x03\u030A\x03\u030A\x03\u030B\x03\u030B\x03\u030B\x03\u030B\x03\u030B" + + "\x03\u030B\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C\x03\u030C" + + "\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D\x03\u030D" + + "\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E\x03\u030E" + + "\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F\x03\u030F" + + "\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310\x03\u0310" + + "\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0311\x03\u0312" + + "\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312\x03\u0312" + + "\x03\u0312\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0313\x03\u0314" + + "\x03\u0314\x03\u0314\x03\u0314\x03\u0314\x03\u0315\x03\u0315\x03\u0315" + + "\x03\u0315\x03\u0315\x03\u0315\x03\u0315\x03\u0316\x03\u0316\x03\u0316" + + "\x03\u0316\x03\u0316\x03\u0317\x03\u0317\x03\u0317\x03\u0317\x03\u0317" + + "\x03\u0318\x03\u0318\x03\u0318\x03\u0318\x03\u0318\x03\u0318\x03\u0319" + + "\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319\x03\u0319" + + "\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031A\x03\u031B" + + "\x03\u031B\x03\u031B\x03\u031B\x03\u031B\x03\u031C\x03\u031C\x03\u031C" + + "\x03\u031C\x03\u031C\x03\u031C\x03\u031C\x03\u031C\x03\u031D\x03\u031D" + + "\x03\u031D\x03\u031D\x03\u031D\x03\u031D\x03\u031D\x03\u031D\x03\u031E" + + "\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E\x03\u031E" + + "\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F\x03\u031F" + + "\x03\u031F\x03\u031F\x03\u031F\x03\u0320\x03\u0320\x03\u0320\x03\u0320" + + "\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321\x03\u0321" + + "\x03\u0321\x03\u0321\x03\u0321\x03\u0322\x03\u0322\x03\u0322\x03\u0322" + + "\x03\u0322\x03\u0322\x03\u0322\x03\u0323\x03\u0323\x03\u0323\x03\u0323" + + "\x03\u0323\x03\u0323\x03\u0323\x03\u0324\x03\u0324\x03\u0324\x03\u0324" + + "\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324\x03\u0324" + + "\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325\x03\u0325" + + "\x03\u0326\x03\u0326\x03\u0326\x03\u0326\x03\u0327\x03\u0327\x03\u0327" + + "\x03\u0327\x03\u0327\x03\u0327\x03\u0327\x03\u0327\x03\u0327\x03\u0327" + + "\x03\u0327\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328" + + "\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328" + + "\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0328\x03\u0329" + + "\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u0329\x03\u032A" + + "\x03\u032A\x03\u032A\x03\u032A\x03\u032A\x03\u032A\x03\u032A\x03\u032A" + + "\x03\u032A\x03\u032A\x03\u032A\x03\u032B\x03\u032B\x03\u032B\x03\u032B" + + "\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032B\x03\u032C" + + "\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032C" + + "\x03\u032C\x03\u032C\x03\u032C\x03\u032C\x03\u032D\x03\u032D\x03\u032D" + + "\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032D\x03\u032D" + + "\x03\u032D\x03\u032D\x03\u032D\x03\u032E\x03\u032E\x03\u032E\x03\u032E" + + "\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E" + + "\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E\x03\u032E" + + "\x03\u032E\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F" + + "\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F\x03\u032F" + + "\x03\u032F\x03\u032F\x03\u0330\x03\u0330\x03\u0330\x03\u0330\x03\u0330" + + "\x03\u0330\x03\u0330\x03\u0330\x03\u0330\x03\u0331\x03\u0331\x03\u0331" + + "\x03\u0331\x03\u0331\x03\u0331\x03\u0331\x03\u0331\x03\u0331\x03\u0331" + + "\x03\u0331\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0332" + + "\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0332\x03\u0332" + + "\x03\u0332\x03\u0332\x03\u0332\x03\u0333\x03\u0333\x03\u0333\x03\u0333" + + "\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333\x03\u0333" + + "\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334" + + "\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0334\x03\u0335" + + "\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0335\x03\u0336\x03\u0336" + + "\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0336\x03\u0337" + + "\x03\u0337\x03\u0337\x03\u0337\x03\u0337\x03\u0337\x03\u0337\x03\u0337" + + "\x03\u0337\x03\u0337\x03\u0337\x03\u0337\x03\u0337\x03\u0338\x03\u0338" + + "\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0338\x03\u0339" + + "\x03\u0339\x03\u0339\x03\u0339\x03\u0339\x03\u0339\x03\u0339\x03\u0339" + + "\x03\u0339\x03\u0339\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033A" + + "\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033A" + + "\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033A\x03\u033B\x03\u033B" + + "\x03\u033B\x03\u033B\x03\u033B\x03\u033B\x03\u033B\x03\u033C\x03\u033C" + + "\x03\u033C\x03\u033C\x03\u033C\x03\u033C\x03\u033C\x03\u033C\x03\u033C" + + "\x03\u033C\x03\u033C\x03\u033D\x03\u033D\x03\u033D\x03\u033D\x03\u033D" + + "\x03\u033D\x03\u033D\x03\u033D\x03\u033D\x03\u033D\x03\u033E\x03\u033E" + + "\x03\u033E\x03\u033E\x03\u033E\x03\u033E\x03\u033E\x03\u033F\x03\u033F" + + "\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u033F\x03\u0340" + + "\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340\x03\u0340" + + "\x03\u0340\x03\u0340\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341" + + "\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341\x03\u0341" + + "\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342" + + "\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342" + + "\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342" + + "\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0342\x03\u0343" + + "\x03\u0343\x03\u0343\x03\u0343\x03\u0343\x03\u0344\x03\u0344\x03\u0344" + + "\x03\u0344\x03\u0344\x03\u0344\x03\u0344\x03\u0345\x03\u0345\x03\u0345" + + "\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345\x03\u0345"; + private static readonly _serializedATNSegment4: string = + "\x03\u0345\x03\u0345\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0346" + + "\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0346" + + "\x03\u0346\x03\u0346\x03\u0346\x03\u0346\x03\u0347\x03\u0347\x03\u0347" + + "\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347" + + "\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347\x03\u0347" + + "\x03\u0347\x03\u0347\x03\u0347\x03\u0348\x03\u0348\x03\u0348\x03\u0348" + + "\x03\u0348\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349" + + "\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349\x03\u0349" + + "\x03\u0349\x03\u034A\x03\u034A\x03\u034A\x03\u034B\x03\u034B\x03\u034B" + + "\x03\u034C\x03\u034C\x03\u034C\x03\u034D\x03\u034D\x03\u034D\x03\u034E" + + "\x03\u034E\x03\u034E\x03\u034F\x03\u034F\x03\u034F\x03\u0350\x03\u0350" + + "\x03\u0350\x03\u0351\x03\u0351\x03\u0351\x03\u0352\x03\u0352\x03\u0352" + + "\x03\u0353\x03\u0353\x03\u0354\x03\u0354\x03\u0355\x03\u0355\x03\u0356" + + "\x03\u0356\x03\u0357\x03\u0357\x03\u0358\x03\u0358\x03\u0358\x03\u0358" + + "\x03\u0359\x03\u0359\x03\u0359\x03\u0359\x03\u035A\x03\u035A\x03\u035B" + + "\x03\u035B\x03\u035C\x03\u035C\x03\u035D\x03\u035D\x03\u035E\x03\u035E" + + "\x03\u035F\x03\u035F\x03\u0360\x03\u0360\x03\u0361\x03\u0361\x03\u0362" + + "\x03\u0362\x03\u0363\x03\u0363\x03\u0364\x03\u0364\x03\u0365\x03\u0365" + + "\x03\u0366\x03\u0366\x03\u0367\x03\u0367\x03\u0368\x03\u0368\x03\u0369" + + "\x03\u0369\x03\u036A\x03\u036A\x03\u036B\x03\u036B\x03\u036C\x03\u036C" + + "\x03\u036D\x03\u036D\x03\u036E\x03\u036E\x03\u036F\x03\u036F\x03\u0370" + + "\x03\u0370\x03\u0370\x05\u0370\u2799\n\u0370\x03\u0371\x03\u0371\x03\u0371" + + "\x03\u0371\x03\u0372\x06\u0372\u27A0\n\u0372\r\u0372\x0E\u0372\u27A1\x03" + + "\u0372\x03\u0372\x03\u0373\x03\u0373\x03\u0373\x03\u0374\x03\u0374\x03" + + "\u0374\x05\u0374\u27AC\n\u0374\x03\u0375\x06\u0375\u27AF\n\u0375\r\u0375" + + "\x0E\u0375\u27B0\x03\u0376\x03\u0376\x03\u0376\x03\u0376\x03\u0376\x06" + + "\u0376\u27B8\n\u0376\r\u0376\x0E\u0376\u27B9\x03\u0376\x03\u0376\x03\u0376" + + "\x03\u0376\x03\u0376\x03\u0376\x06\u0376\u27C2\n\u0376\r\u0376\x0E\u0376" + + "\u27C3\x05\u0376\u27C6\n\u0376\x03\u0377\x07\u0377\u27C9\n\u0377\f\u0377" + + "\x0E\u0377\u27CC\v\u0377\x03\u0377\x03\u0377\x06\u0377\u27D0\n\u0377\r" + + "\u0377\x0E\u0377\u27D1\x03\u0377\x06\u0377\u27D5\n\u0377\r\u0377\x0E\u0377" + + "\u27D6\x03\u0377\x03\u0377\x03\u0377\x03\u0377\x07\u0377\u27DD\n\u0377" + + "\f\u0377\x0E\u0377\u27E0\v\u0377\x03\u0377\x03\u0377\x06\u0377\u27E4\n" + + "\u0377\r\u0377\x0E\u0377\u27E5\x03\u0377\x03\u0377\x03\u0377\x06\u0377" + + "\u27EB\n\u0377\r\u0377\x0E\u0377\u27EC\x03\u0377\x03\u0377\x05\u0377\u27F1" + + "\n\u0377\x03\u0378\x03\u0378\x03\u0378\x03\u0379\x03\u0379\x03\u037A\x03" + + "\u037A\x03\u037A\x03\u037B\x03\u037B\x03\u037B\x03\u037C\x03\u037C\x03" + + "\u037D\x03\u037D\x03\u037E\x03\u037E\x03\u037E\x03\u037F\x03\u037F\x03" + + "\u037F\x06\u037F\u2808\n\u037F\r\u037F\x0E\u037F\u2809\x05\u037F\u280C" + + "\n\u037F\x03\u0380\x03\u0380\x03\u0380\x06\u0380\u2811\n\u0380\r\u0380" + + "\x0E\u0380\u2812\x03\u0380\x05\u0380\u2816\n\u0380\x03\u0381\x03\u0381" + + "\x03\u0381\x06\u0381\u281B\n\u0381\r\u0381\x0E\u0381\u281C\x03\u0381\x05" + + "\u0381\u2820\n\u0381\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382\x03\u0382" + + "\x03\u0382\x05\u0382\u284B\n\u0382\x03\u0383\x03\u0383\x05\u0383\u284F" + + "\n\u0383\x03\u0383\x06\u0383\u2852\n\u0383\r\u0383\x0E\u0383\u2853\x03" + + "\u0384\x07\u0384\u2857\n\u0384\f\u0384\x0E\u0384\u285A\v\u0384\x03\u0384" + + "\x06\u0384\u285D\n\u0384\r\u0384\x0E\u0384\u285E\x03\u0384\x07\u0384\u2862" + + "\n\u0384\f\u0384\x0E\u0384\u2865\v\u0384\x03\u0385\x03\u0385\x03\u0385" + + "\x03\u0385\x03\u0385\x03\u0385\x07\u0385\u286D\n\u0385\f\u0385\x0E\u0385" + + "\u2870\v\u0385\x03\u0385\x03\u0385\x03\u0386\x03\u0386\x03\u0386\x03\u0386" + + "\x03\u0386\x03\u0386\x07\u0386\u287A\n\u0386\f\u0386\x0E\u0386\u287D\v" + + "\u0386\x03\u0386\x03\u0386\x03\u0387\x03\u0387\x03\u0387\x03\u0387\x07" + + "\u0387\u2885\n\u0387\f\u0387\x0E\u0387\u2888\v\u0387\x03\u0387\x03\u0387" + + "\x03\u0388\x03\u0388\x03\u0389\x03\u0389\x03\u038A\x03\u038A\x03\u038A" + + "\x06\u038A\u2893\n\u038A\r\u038A\x0E\u038A\u2894\x03\u038A\x03\u038A\x03" + + "\u038B\x06\u038B\u289A\n\u038B\r\u038B\x0E\u038B\u289B\x03\u038B\x03\u038B" + + "\x06\u038B\u28A0\n\u038B\r\u038B\x0E\u038B\u28A1\x03\u038B\x07\u038B\u28A5" + + "\n\u038B\f\u038B\x0E\u038B\u28A8\v\u038B\x03\u038B\x03\u038B\x07\u038B" + + "\u28AC\n\u038B\f\u038B\x0E\u038B\u28AF\v\u038B\x03\u038B\x03\u038B\x06" + + "\u038B\u28B3\n\u038B\r\u038B\x0E\u038B\u28B4\x05\u038B\u28B7\n\u038B\x03" + + "\u038C\x03\u038C\x03\u038C\x03\u038C\x06\u0727\u0734\u2858\u285E\x02\x02" + + "\u038D\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b" + + "\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02" + + "\x0F\x1D\x02\x10\x1F\x02\x11!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02" + + "\x16+\x02\x17-\x02\x18/\x02\x191\x02\x1A3\x02\x1B5\x02\x1C7\x02\x1D9\x02" + + "\x1E;\x02\x1F=\x02 ?\x02!A\x02\"C\x02#E\x02$G\x02%I\x02&K\x02\'M\x02(" + + "O\x02)Q\x02*S\x02+U\x02,W\x02-Y\x02.[\x02/]\x020_\x021a\x022c\x023e\x02" + + "4g\x025i\x026k\x027m\x028o\x029q\x02:s\x02;u\x02{\x02?}\x02" + + "@\x7F\x02A\x81\x02B\x83\x02C\x85\x02D\x87\x02E\x89\x02F\x8B\x02G\x8D\x02" + + "H\x8F\x02I\x91\x02J\x93\x02K\x95\x02L\x97\x02M\x99\x02N\x9B\x02O\x9D\x02" + + "P\x9F\x02Q\xA1\x02R\xA3\x02S\xA5\x02T\xA7\x02U\xA9\x02V\xAB\x02W\xAD\x02" + + "X\xAF\x02Y\xB1\x02Z\xB3\x02[\xB5\x02\\\xB7\x02]\xB9\x02^\xBB\x02_\xBD" + + "\x02`\xBF\x02a\xC1\x02b\xC3\x02c\xC5\x02d\xC7\x02e\xC9\x02f\xCB\x02g\xCD" + + "\x02h\xCF\x02i\xD1\x02j\xD3\x02k\xD5\x02l\xD7\x02m\xD9\x02n\xDB\x02o\xDD" + + "\x02p\xDF\x02q\xE1\x02r\xE3\x02s\xE5\x02t\xE7\x02u\xE9\x02v\xEB\x02w\xED" + + "\x02x\xEF\x02y\xF1\x02z\xF3\x02{\xF5\x02|\xF7\x02}\xF9\x02~\xFB\x02\x7F" + + "\xFD\x02\x80\xFF\x02\x81\u0101\x02\x82\u0103\x02\x83\u0105\x02\x84\u0107" + + "\x02\x85\u0109\x02\x86\u010B\x02\x87\u010D\x02\x88\u010F\x02\x89\u0111" + + "\x02\x8A\u0113\x02\x8B\u0115\x02\x8C\u0117\x02\x8D\u0119\x02\x8E\u011B" + + "\x02\x8F\u011D\x02\x90\u011F\x02\x91\u0121\x02\x92\u0123\x02\x93\u0125" + + "\x02\x94\u0127\x02\x95\u0129\x02\x96\u012B\x02\x97\u012D\x02\x98\u012F" + + "\x02\x99\u0131\x02\x9A\u0133\x02\x9B\u0135\x02\x9C\u0137\x02\x9D\u0139" + + "\x02\x9E\u013B\x02\x9F\u013D\x02\xA0\u013F\x02\xA1\u0141\x02\xA2\u0143" + + "\x02\xA3\u0145\x02\xA4\u0147\x02\xA5\u0149\x02\xA6\u014B\x02\xA7\u014D" + + "\x02\xA8\u014F\x02\xA9\u0151\x02\xAA\u0153\x02\xAB\u0155\x02\xAC\u0157" + + "\x02\xAD\u0159\x02\xAE\u015B\x02\xAF\u015D\x02\xB0\u015F\x02\xB1\u0161" + + "\x02\xB2\u0163\x02\xB3\u0165\x02\xB4\u0167\x02\xB5\u0169\x02\xB6\u016B" + + "\x02\xB7\u016D\x02\xB8\u016F\x02\xB9\u0171\x02\xBA\u0173\x02\xBB\u0175" + + "\x02\xBC\u0177\x02\xBD\u0179\x02\xBE\u017B\x02\xBF\u017D\x02\xC0\u017F" + + "\x02\xC1\u0181\x02\xC2\u0183\x02\xC3\u0185\x02\xC4\u0187\x02\xC5\u0189" + + "\x02\xC6\u018B\x02\xC7\u018D\x02\xC8\u018F\x02\xC9\u0191\x02\xCA\u0193" + + "\x02\xCB\u0195\x02\xCC\u0197\x02\xCD\u0199\x02\xCE\u019B\x02\xCF\u019D" + + "\x02\xD0\u019F\x02\xD1\u01A1\x02\xD2\u01A3\x02\xD3\u01A5\x02\xD4\u01A7" + + "\x02\xD5\u01A9\x02\xD6\u01AB\x02\xD7\u01AD\x02\xD8\u01AF\x02\xD9\u01B1" + + "\x02\xDA\u01B3\x02\xDB\u01B5\x02\xDC\u01B7\x02\xDD\u01B9\x02\xDE\u01BB" + + "\x02\xDF\u01BD\x02\xE0\u01BF\x02\xE1\u01C1\x02\xE2\u01C3\x02\xE3\u01C5" + + "\x02\xE4\u01C7\x02\xE5\u01C9\x02\xE6\u01CB\x02\xE7\u01CD\x02\xE8\u01CF" + + "\x02\xE9\u01D1\x02\xEA\u01D3\x02\xEB\u01D5\x02\xEC\u01D7\x02\xED\u01D9" + + "\x02\xEE\u01DB\x02\xEF\u01DD\x02\xF0\u01DF\x02\xF1\u01E1\x02\xF2\u01E3" + + "\x02\xF3\u01E5\x02\xF4\u01E7\x02\xF5\u01E9\x02\xF6\u01EB\x02\xF7\u01ED" + + "\x02\xF8\u01EF\x02\xF9\u01F1\x02\xFA\u01F3\x02\xFB\u01F5\x02\xFC\u01F7" + + "\x02\xFD\u01F9\x02\xFE\u01FB\x02\xFF\u01FD\x02\u0100\u01FF\x02\u0101\u0201" + + "\x02\u0102\u0203\x02\u0103\u0205\x02\u0104\u0207\x02\u0105\u0209\x02\u0106" + + "\u020B\x02\u0107\u020D\x02\u0108\u020F\x02\u0109\u0211\x02\u010A\u0213" + + "\x02\u010B\u0215\x02\u010C\u0217\x02\u010D\u0219\x02\u010E\u021B\x02\u010F" + + "\u021D\x02\u0110\u021F\x02\u0111\u0221\x02\u0112\u0223\x02\u0113\u0225" + + "\x02\u0114\u0227\x02\u0115\u0229\x02\u0116\u022B\x02\u0117\u022D\x02\u0118" + + "\u022F\x02\u0119\u0231\x02\u011A\u0233\x02\u011B\u0235\x02\u011C\u0237" + + "\x02\u011D\u0239\x02\u011E\u023B\x02\u011F\u023D\x02\u0120\u023F\x02\u0121" + + "\u0241\x02\u0122\u0243\x02\u0123\u0245\x02\u0124\u0247\x02\u0125\u0249" + + "\x02\u0126\u024B\x02\u0127\u024D\x02\u0128\u024F\x02\u0129\u0251\x02\u012A" + + "\u0253\x02\u012B\u0255\x02\u012C\u0257\x02\u012D\u0259\x02\u012E\u025B" + + "\x02\u012F\u025D\x02\u0130\u025F\x02\u0131\u0261\x02\u0132\u0263\x02\u0133" + + "\u0265\x02\u0134\u0267\x02\u0135\u0269\x02\u0136\u026B\x02\u0137\u026D" + + "\x02\u0138\u026F\x02\u0139\u0271\x02\u013A\u0273\x02\u013B\u0275\x02\u013C" + + "\u0277\x02\u013D\u0279\x02\u013E\u027B\x02\u013F\u027D\x02\u0140\u027F" + + "\x02\u0141\u0281\x02\u0142\u0283\x02\u0143\u0285\x02\u0144\u0287\x02\u0145" + + "\u0289\x02\u0146\u028B\x02\u0147\u028D\x02\u0148\u028F\x02\u0149\u0291" + + "\x02\u014A\u0293\x02\u014B\u0295\x02\u014C\u0297\x02\u014D\u0299\x02\u014E" + + "\u029B\x02\u014F\u029D\x02\u0150\u029F\x02\u0151\u02A1\x02\u0152\u02A3" + + "\x02\u0153\u02A5\x02\u0154\u02A7\x02\u0155\u02A9\x02\u0156\u02AB\x02\u0157" + + "\u02AD\x02\u0158\u02AF\x02\u0159\u02B1\x02\u015A\u02B3\x02\u015B\u02B5" + + "\x02\u015C\u02B7\x02\u015D\u02B9\x02\u015E\u02BB\x02\u015F\u02BD\x02\u0160" + + "\u02BF\x02\u0161\u02C1\x02\u0162\u02C3\x02\u0163\u02C5\x02\u0164\u02C7" + + "\x02\u0165\u02C9\x02\u0166\u02CB\x02\u0167\u02CD\x02\u0168\u02CF\x02\u0169" + + "\u02D1\x02\u016A\u02D3\x02\u016B\u02D5\x02\u016C\u02D7\x02\u016D\u02D9" + + "\x02\u016E\u02DB\x02\u016F\u02DD\x02\u0170\u02DF\x02\u0171\u02E1\x02\u0172" + + "\u02E3\x02\u0173\u02E5\x02\u0174\u02E7\x02\u0175\u02E9\x02\u0176\u02EB" + + "\x02\u0177\u02ED\x02\u0178\u02EF\x02\u0179\u02F1\x02\u017A\u02F3\x02\u017B" + + "\u02F5\x02\u017C\u02F7\x02\u017D\u02F9\x02\u017E\u02FB\x02\u017F\u02FD" + + "\x02\u0180\u02FF\x02\u0181\u0301\x02\u0182\u0303\x02\u0183\u0305\x02\u0184" + + "\u0307\x02\u0185\u0309\x02\u0186\u030B\x02\u0187\u030D\x02\u0188\u030F" + + "\x02\u0189\u0311\x02\u018A\u0313\x02\u018B\u0315\x02\u018C\u0317\x02\u018D" + + "\u0319\x02\u018E\u031B\x02\u018F\u031D\x02\u0190\u031F\x02\u0191\u0321" + + "\x02\u0192\u0323\x02\u0193\u0325\x02\u0194\u0327\x02\u0195\u0329\x02\u0196" + + "\u032B\x02\u0197\u032D\x02\u0198\u032F\x02\u0199\u0331\x02\u019A\u0333" + + "\x02\u019B\u0335\x02\u019C\u0337\x02\u019D\u0339\x02\u019E\u033B\x02\u019F" + + "\u033D\x02\u01A0\u033F\x02\u01A1\u0341\x02\u01A2\u0343\x02\u01A3\u0345" + + "\x02\u01A4\u0347\x02\u01A5\u0349\x02\u01A6\u034B\x02\u01A7\u034D\x02\u01A8" + + "\u034F\x02\u01A9\u0351\x02\u01AA\u0353\x02\u01AB\u0355\x02\u01AC\u0357" + + "\x02\u01AD\u0359\x02\u01AE\u035B\x02\u01AF\u035D\x02\u01B0\u035F\x02\u01B1" + + "\u0361\x02\u01B2\u0363\x02\u01B3\u0365\x02\u01B4\u0367\x02\u01B5\u0369" + + "\x02\u01B6\u036B\x02\u01B7\u036D\x02\u01B8\u036F\x02\u01B9\u0371\x02\u01BA" + + "\u0373\x02\u01BB\u0375\x02\u01BC\u0377\x02\u01BD\u0379\x02\u01BE\u037B" + + "\x02\u01BF\u037D\x02\u01C0\u037F\x02\u01C1\u0381\x02\u01C2\u0383\x02\u01C3" + + "\u0385\x02\u01C4\u0387\x02\u01C5\u0389\x02\u01C6\u038B\x02\u01C7\u038D" + + "\x02\u01C8\u038F\x02\u01C9\u0391\x02\u01CA\u0393\x02\u01CB\u0395\x02\u01CC" + + "\u0397\x02\u01CD\u0399\x02\u01CE\u039B\x02\u01CF\u039D\x02\u01D0\u039F" + + "\x02\u01D1\u03A1\x02\u01D2\u03A3\x02\u01D3\u03A5\x02\u01D4\u03A7\x02\u01D5" + + "\u03A9\x02\u01D6\u03AB\x02\u01D7\u03AD\x02\u01D8\u03AF\x02\u01D9\u03B1" + + "\x02\u01DA\u03B3\x02\u01DB\u03B5\x02\u01DC\u03B7\x02\u01DD\u03B9\x02\u01DE" + + "\u03BB\x02\u01DF\u03BD\x02\u01E0\u03BF\x02\u01E1\u03C1\x02\u01E2\u03C3" + + "\x02\u01E3\u03C5\x02\u01E4\u03C7\x02\u01E5\u03C9\x02\u01E6\u03CB\x02\u01E7" + + "\u03CD\x02\u01E8\u03CF\x02\u01E9\u03D1\x02\u01EA\u03D3\x02\u01EB\u03D5" + + "\x02\u01EC\u03D7\x02\u01ED\u03D9\x02\u01EE\u03DB\x02\u01EF\u03DD\x02\u01F0" + + "\u03DF\x02\u01F1\u03E1\x02\u01F2\u03E3\x02\u01F3\u03E5\x02\u01F4\u03E7" + + "\x02\u01F5\u03E9\x02\u01F6\u03EB\x02\u01F7\u03ED\x02\u01F8\u03EF\x02\u01F9" + + "\u03F1\x02\u01FA\u03F3\x02\u01FB\u03F5\x02\u01FC\u03F7\x02\u01FD\u03F9" + + "\x02\u01FE\u03FB\x02\u01FF\u03FD\x02\u0200\u03FF\x02\u0201\u0401\x02\u0202" + + "\u0403\x02\u0203\u0405\x02\u0204\u0407\x02\u0205\u0409\x02\u0206\u040B" + + "\x02\u0207\u040D\x02\u0208\u040F\x02\u0209\u0411\x02\u020A\u0413\x02\u020B" + + "\u0415\x02\u020C\u0417\x02\u020D\u0419\x02\u020E\u041B\x02\u020F\u041D" + + "\x02\u0210\u041F\x02\u0211\u0421\x02\u0212\u0423\x02\u0213\u0425\x02\u0214" + + "\u0427\x02\u0215\u0429\x02\u0216\u042B\x02\u0217\u042D\x02\u0218\u042F" + + "\x02\u0219\u0431\x02\u021A\u0433\x02\u021B\u0435\x02\u021C\u0437\x02\u021D" + + "\u0439\x02\u021E\u043B\x02\u021F\u043D\x02\u0220\u043F\x02\u0221\u0441" + + "\x02\u0222\u0443\x02\u0223\u0445\x02\u0224\u0447\x02\u0225\u0449\x02\u0226" + + "\u044B\x02\u0227\u044D\x02\u0228\u044F\x02\u0229\u0451\x02\u022A\u0453" + + "\x02\u022B\u0455\x02\u022C\u0457\x02\u022D\u0459\x02\u022E\u045B\x02\u022F" + + "\u045D\x02\u0230\u045F\x02\u0231\u0461\x02\u0232\u0463\x02\u0233\u0465" + + "\x02\u0234\u0467\x02\u0235\u0469\x02\u0236\u046B\x02\u0237\u046D\x02\u0238" + + "\u046F\x02\u0239\u0471\x02\u023A\u0473\x02\u023B\u0475\x02\u023C\u0477" + + "\x02\u023D\u0479\x02\u023E\u047B\x02\u023F\u047D\x02\u0240\u047F\x02\u0241" + + "\u0481\x02\u0242\u0483\x02\u0243\u0485\x02\u0244\u0487\x02\u0245\u0489" + + "\x02\u0246\u048B\x02\u0247\u048D\x02\u0248\u048F\x02\u0249\u0491\x02\u024A" + + "\u0493\x02\u024B\u0495\x02\u024C\u0497\x02\u024D\u0499\x02\u024E\u049B" + + "\x02\u024F\u049D\x02\u0250\u049F\x02\u0251\u04A1\x02\u0252\u04A3\x02\u0253" + + "\u04A5\x02\u0254\u04A7\x02\u0255\u04A9\x02\u0256\u04AB\x02\u0257\u04AD" + + "\x02\u0258\u04AF\x02\u0259\u04B1\x02\u025A\u04B3\x02\u025B\u04B5\x02\u025C" + + "\u04B7\x02\u025D\u04B9\x02\u025E\u04BB\x02\u025F\u04BD\x02\u0260\u04BF" + + "\x02\u0261\u04C1\x02\u0262\u04C3\x02\u0263\u04C5\x02\u0264\u04C7\x02\u0265" + + "\u04C9\x02\u0266\u04CB\x02\u0267\u04CD\x02\u0268\u04CF\x02\u0269\u04D1" + + "\x02\u026A\u04D3\x02\u026B\u04D5\x02\u026C\u04D7\x02\u026D\u04D9\x02\u026E" + + "\u04DB\x02\u026F\u04DD\x02\u0270\u04DF\x02\u0271\u04E1\x02\u0272\u04E3" + + "\x02\u0273\u04E5\x02\u0274\u04E7\x02\u0275\u04E9\x02\u0276\u04EB\x02\u0277" + + "\u04ED\x02\u0278\u04EF\x02\u0279\u04F1\x02\u027A\u04F3\x02\u027B\u04F5" + + "\x02\u027C\u04F7\x02\u027D\u04F9\x02\u027E\u04FB\x02\u027F\u04FD\x02\u0280" + + "\u04FF\x02\u0281\u0501\x02\u0282\u0503\x02\u0283\u0505\x02\u0284\u0507" + + "\x02\u0285\u0509\x02\u0286\u050B\x02\u0287\u050D\x02\u0288\u050F\x02\u0289" + + "\u0511\x02\u028A\u0513\x02\u028B\u0515\x02\u028C\u0517\x02\u028D\u0519" + + "\x02\u028E\u051B\x02\u028F\u051D\x02\u0290\u051F\x02\u0291\u0521\x02\u0292" + + "\u0523\x02\u0293\u0525\x02\u0294\u0527\x02\u0295\u0529\x02\u0296\u052B" + + "\x02\u0297\u052D\x02\u0298\u052F\x02\u0299\u0531\x02\u029A\u0533\x02\u029B" + + "\u0535\x02\u029C\u0537\x02\u029D\u0539\x02\u029E\u053B\x02\u029F\u053D" + + "\x02\u02A0\u053F\x02\u02A1\u0541\x02\u02A2\u0543\x02\u02A3\u0545\x02\u02A4" + + "\u0547\x02\u02A5\u0549\x02\u02A6\u054B\x02\u02A7\u054D\x02\u02A8\u054F" + + "\x02\u02A9\u0551\x02\u02AA\u0553\x02\u02AB\u0555\x02\u02AC\u0557\x02\u02AD" + + "\u0559\x02\u02AE\u055B\x02\u02AF\u055D\x02\u02B0\u055F\x02\u02B1\u0561" + + "\x02\u02B2\u0563\x02\u02B3\u0565\x02\u02B4\u0567\x02\u02B5\u0569\x02\u02B6" + + "\u056B\x02\u02B7\u056D\x02\u02B8\u056F\x02\u02B9\u0571\x02\u02BA\u0573" + + "\x02\u02BB\u0575\x02\u02BC\u0577\x02\u02BD\u0579\x02\u02BE\u057B\x02\u02BF" + + "\u057D\x02\u02C0\u057F\x02\u02C1\u0581\x02\u02C2\u0583\x02\u02C3\u0585" + + "\x02\u02C4\u0587\x02\u02C5\u0589\x02\u02C6\u058B\x02\u02C7\u058D\x02\u02C8" + + "\u058F\x02\u02C9\u0591\x02\u02CA\u0593\x02\u02CB\u0595\x02\u02CC\u0597" + + "\x02\u02CD\u0599\x02\u02CE\u059B\x02\u02CF\u059D\x02\u02D0\u059F\x02\u02D1" + + "\u05A1\x02\u02D2\u05A3\x02\u02D3\u05A5\x02\u02D4\u05A7\x02\u02D5\u05A9" + + "\x02\u02D6\u05AB\x02\u02D7\u05AD\x02\u02D8\u05AF\x02\u02D9\u05B1\x02\u02DA" + + "\u05B3\x02\u02DB\u05B5\x02\u02DC\u05B7\x02\u02DD\u05B9\x02\u02DE\u05BB" + + "\x02\u02DF\u05BD\x02\u02E0\u05BF\x02\u02E1\u05C1\x02\u02E2\u05C3\x02\u02E3" + + "\u05C5\x02\u02E4\u05C7\x02\u02E5\u05C9\x02\u02E6\u05CB\x02\u02E7\u05CD" + + "\x02\u02E8\u05CF\x02\u02E9\u05D1\x02\u02EA\u05D3\x02\u02EB\u05D5\x02\u02EC" + + "\u05D7\x02\u02ED\u05D9\x02\u02EE\u05DB\x02\u02EF\u05DD\x02\u02F0\u05DF" + + "\x02\u02F1\u05E1\x02\u02F2\u05E3\x02\u02F3\u05E5\x02\u02F4\u05E7\x02\u02F5" + + "\u05E9\x02\u02F6\u05EB\x02\u02F7\u05ED\x02\u02F8\u05EF\x02\u02F9\u05F1" + + "\x02\u02FA\u05F3\x02\u02FB\u05F5\x02\u02FC\u05F7\x02\u02FD\u05F9\x02\u02FE" + + "\u05FB\x02\u02FF\u05FD\x02\u0300\u05FF\x02\u0301\u0601\x02\u0302\u0603" + + "\x02\u0303\u0605\x02\u0304\u0607\x02\u0305\u0609\x02\u0306\u060B\x02\u0307" + + "\u060D\x02\u0308\u060F\x02\u0309\u0611\x02\u030A\u0613\x02\u030B\u0615" + + "\x02\u030C\u0617\x02\u030D\u0619\x02\u030E\u061B\x02\u030F\u061D\x02\u0310" + + "\u061F\x02\u0311\u0621\x02\u0312\u0623\x02\u0313\u0625\x02\u0314\u0627" + + "\x02\u0315\u0629\x02\u0316\u062B\x02\u0317\u062D\x02\u0318\u062F\x02\u0319" + + "\u0631\x02\u031A\u0633\x02\u031B\u0635\x02\u031C\u0637\x02\u031D\u0639" + + "\x02\u031E\u063B\x02\u031F\u063D\x02\u0320\u063F\x02\u0321\u0641\x02\u0322" + + "\u0643\x02\u0323\u0645\x02\u0324\u0647\x02\u0325\u0649\x02\u0326\u064B" + + "\x02\u0327\u064D\x02\u0328\u064F\x02\u0329\u0651\x02\u032A\u0653\x02\u032B" + + "\u0655\x02\u032C\u0657\x02\u032D\u0659\x02\u032E\u065B\x02\u032F\u065D" + + "\x02\u0330\u065F\x02\u0331\u0661\x02\u0332\u0663\x02\u0333\u0665\x02\u0334" + + "\u0667\x02\u0335\u0669\x02\u0336\u066B\x02\u0337\u066D\x02\u0338\u066F" + + "\x02\u0339\u0671\x02\u033A\u0673\x02\u033B\u0675\x02\u033C\u0677\x02\u033D" + + "\u0679\x02\u033E\u067B\x02\u033F\u067D\x02\u0340\u067F\x02\u0341\u0681" + + "\x02\u0342\u0683\x02\u0343\u0685\x02\u0344\u0687\x02\u0345\u0689\x02\u0346" + + "\u068B\x02\u0347\u068D\x02\u0348\u068F\x02\u0349\u0691\x02\u034A\u0693" + + "\x02\u034B\u0695\x02\u034C\u0697\x02\u034D\u0699\x02\u034E\u069B\x02\u034F" + + "\u069D\x02\u0350\u069F\x02\u0351\u06A1\x02\u0352\u06A3\x02\u0353\u06A5" + + "\x02\u0354\u06A7\x02\u0355\u06A9\x02\u0356\u06AB\x02\u0357\u06AD\x02\u0358" + + "\u06AF\x02\u0359\u06B1\x02\u035A\u06B3\x02\u035B\u06B5\x02\u035C\u06B7" + + "\x02\u035D\u06B9\x02\u035E\u06BB\x02\u035F\u06BD\x02\u0360\u06BF\x02\u0361" + + "\u06C1\x02\u0362\u06C3\x02\u0363\u06C5\x02\u0364\u06C7\x02\u0365\u06C9" + + "\x02\u0366\u06CB\x02\u0367\u06CD\x02\u0368\u06CF\x02\u0369\u06D1\x02\u036A" + + "\u06D3\x02\u036B\u06D5\x02\u036C\u06D7\x02\u036D\u06D9\x02\u036E\u06DB" + + "\x02\u036F\u06DD\x02\u0370\u06DF\x02\x02\u06E1\x02\u0371\u06E3\x02\u0372" + + "\u06E5\x02\u0373\u06E7\x02\u0374\u06E9\x02\u0375\u06EB\x02\u0376\u06ED" + + "\x02\u0377\u06EF\x02\u0378\u06F1\x02\u0379\u06F3\x02\u037A\u06F5\x02\u037B" + + "\u06F7\x02\u037C\u06F9\x02\u037D\u06FB\x02\u037E\u06FD\x02\u037F\u06FF" + + "\x02\u0380\u0701\x02\u0381\u0703\x02\x02\u0705\x02\x02\u0707\x02\x02\u0709" + + "\x02\x02\u070B\x02\x02\u070D\x02\x02\u070F\x02\x02\u0711\x02\x02\u0713" + + "\x02\x02\u0715\x02\x02\u0717\x02\u0382\x03\x02\x12\x05\x02\v\f\x0F\x0F" + + "\"\"\x04\x02\v\v\"\"\x04\x02\f\f\x0F\x0F\x06\x02IIMMOOVV\b\x02&&002;C" + + "\\aa\x82\x01\x04\x02--//\x07\x02&&2;C\\aa\x82\x01\x06\x02&&C\\aa\x82\x01" + + "\x04\x02$$^^\x04\x02))^^\x03\x02bb\x04\x022;CH\x03\x022;\x03\x0223\x04" + + "\x02002;\x04\x022\x03\x02\x02\x02\u0808\u0809" + + "\x07E\x02\x02\u0809\u080A\x07Q\x02\x02\u080A\u080B\x07P\x02\x02\u080B" + + "\u080C\x07U\x02\x02\u080C\u080D\x07V\x02\x02\u080D\u080E\x07T\x02\x02" + + "\u080E\u080F\x07C\x02\x02\u080F\u0810\x07K\x02\x02\u0810\u0811\x07P\x02" + + "\x02\u0811\u0812\x07V\x02\x02\u0812@\x03\x02\x02\x02\u0813\u0814\x07E" + + "\x02\x02\u0814\u0815\x07Q\x02\x02\u0815\u0816\x07P\x02\x02\u0816\u0817" + + "\x07V\x02\x02\u0817\u0818\x07K\x02\x02\u0818\u0819\x07P\x02\x02\u0819" + + "\u081A\x07W\x02\x02\u081A\u081B\x07G\x02\x02\u081BB\x03\x02\x02\x02\u081C" + + "\u081D\x07E\x02\x02\u081D\u081E\x07Q\x02\x02\u081E\u081F\x07P\x02\x02" + + "\u081F\u0820\x07X\x02\x02\u0820\u0821\x07G\x02\x02\u0821\u0822\x07T\x02" + + "\x02\u0822\u0823\x07V\x02\x02\u0823D\x03\x02\x02\x02\u0824\u0825\x07E" + + "\x02\x02\u0825\u0826\x07T\x02\x02\u0826\u0827\x07G\x02\x02\u0827\u0828" + + "\x07C\x02\x02\u0828\u0829\x07V\x02\x02\u0829\u082A\x07G\x02\x02\u082A" + + "F\x03\x02\x02\x02\u082B\u082C\x07E\x02\x02\u082C\u082D\x07T\x02\x02\u082D" + + "\u082E\x07Q\x02\x02\u082E\u082F\x07U\x02\x02\u082F\u0830\x07U\x02\x02" + + "\u0830H\x03\x02\x02\x02\u0831\u0832\x07E\x02\x02\u0832\u0833\x07W\x02" + + "\x02\u0833\u0834\x07T\x02\x02\u0834\u0835\x07T\x02\x02\u0835\u0836\x07" + + "G\x02\x02\u0836\u0837\x07P\x02\x02\u0837\u0838\x07V\x02\x02\u0838J\x03" + + "\x02\x02\x02\u0839\u083A\x07E\x02\x02\u083A\u083B\x07W\x02\x02\u083B\u083C" + + "\x07T\x02\x02\u083C\u083D\x07T\x02\x02\u083D\u083E\x07G\x02\x02\u083E" + + "\u083F\x07P\x02\x02\u083F\u0840\x07V\x02\x02\u0840\u0841\x07a\x02\x02" + + "\u0841\u0842\x07W\x02\x02\u0842\u0843\x07U\x02\x02\u0843\u0844\x07G\x02" + + "\x02\u0844\u0845\x07T\x02\x02\u0845L\x03\x02\x02\x02\u0846\u0847\x07E" + + "\x02\x02\u0847\u0848\x07W\x02\x02\u0848\u0849\x07T\x02\x02\u0849\u084A" + + "\x07U\x02\x02\u084A\u084B\x07Q\x02\x02\u084B\u084C\x07T\x02\x02\u084C" + + "N\x03\x02\x02\x02\u084D\u084E\x07F\x02\x02\u084E\u084F\x07C\x02\x02\u084F" + + "\u0850\x07V\x02\x02\u0850\u0851\x07C\x02\x02\u0851\u0852\x07D\x02\x02" + + "\u0852\u0853\x07C\x02\x02\u0853\u0854\x07U\x02\x02\u0854\u0855\x07G\x02" + + "\x02\u0855P\x03\x02\x02\x02\u0856\u0857\x07F\x02\x02\u0857\u0858\x07C" + + "\x02\x02\u0858\u0859\x07V\x02\x02\u0859\u085A\x07C\x02\x02\u085A\u085B" + + "\x07D\x02\x02\u085B\u085C\x07C\x02\x02\u085C\u085D\x07U\x02\x02\u085D" + + "\u085E\x07G\x02\x02\u085E\u085F\x07U\x02\x02\u085FR\x03\x02\x02\x02\u0860" + + "\u0861\x07F\x02\x02\u0861\u0862\x07G\x02\x02\u0862\u0863\x07E\x02\x02" + + "\u0863\u0864\x07N\x02\x02\u0864\u0865\x07C\x02\x02\u0865\u0866\x07T\x02" + + "\x02\u0866\u0867\x07G\x02\x02\u0867T\x03\x02\x02\x02\u0868\u0869\x07F" + + "\x02\x02\u0869\u086A\x07G\x02\x02\u086A\u086B\x07H\x02\x02\u086B\u086C" + + "\x07C\x02\x02\u086C\u086D\x07W\x02\x02\u086D\u086E\x07N\x02\x02\u086E" + + "\u086F\x07V\x02\x02\u086FV\x03\x02\x02\x02\u0870\u0871\x07F\x02\x02\u0871" + + "\u0872\x07G\x02\x02\u0872\u0873\x07N\x02\x02\u0873\u0874\x07C\x02\x02" + + "\u0874\u0875\x07[\x02\x02\u0875\u0876\x07G\x02\x02\u0876\u0877\x07F\x02" + + "\x02\u0877X\x03\x02\x02\x02\u0878\u0879\x07F\x02\x02\u0879\u087A\x07G" + + "\x02\x02\u087A\u087B\x07N\x02\x02\u087B\u087C\x07G\x02\x02\u087C\u087D" + + "\x07V\x02\x02\u087D\u087E\x07G\x02\x02\u087EZ\x03\x02\x02\x02\u087F\u0880" + + "\x07F\x02\x02\u0880\u0881\x07G\x02\x02\u0881\u0882\x07U\x02\x02\u0882" + + "\u0883\x07E\x02\x02\u0883\\\x03\x02\x02\x02\u0884\u0885\x07F\x02\x02\u0885" + + "\u0886\x07G\x02\x02\u0886\u0887\x07U\x02\x02\u0887\u0888\x07E\x02\x02" + + "\u0888\u0889\x07T\x02\x02\u0889\u088A\x07K\x02\x02\u088A\u088B\x07D\x02" + + "\x02\u088B\u088C\x07G\x02\x02\u088C^\x03\x02\x02\x02\u088D\u088E\x07F" + + "\x02\x02\u088E\u088F\x07G\x02\x02\u088F\u0890\x07V\x02\x02\u0890\u0891" + + "\x07G\x02\x02\u0891\u0892\x07T\x02\x02\u0892\u0893\x07O\x02\x02\u0893" + + "\u0894\x07K\x02\x02\u0894\u0895\x07P\x02\x02\u0895\u0896\x07K\x02\x02" + + "\u0896\u0897\x07U\x02\x02\u0897\u0898\x07V\x02\x02\u0898\u0899\x07K\x02" + + "\x02\u0899\u089A\x07E\x02\x02\u089A`\x03\x02\x02\x02\u089B\u089C\x07F" + + "\x02\x02\u089C\u089D\x07K\x02\x02\u089D\u089E\x07C\x02\x02\u089E\u089F" + + "\x07I\x02\x02\u089F\u08A0\x07P\x02\x02\u08A0\u08A1\x07Q\x02\x02\u08A1" + + "\u08A2\x07U\x02\x02\u08A2\u08A3\x07V\x02\x02\u08A3\u08A4\x07K\x02\x02" + + "\u08A4\u08A5\x07E\x02\x02\u08A5\u08A6\x07U\x02\x02\u08A6b\x03\x02\x02" + + "\x02\u08A7\u08A8\x07F\x02\x02\u08A8\u08A9\x07K\x02\x02\u08A9\u08AA\x07" + + "U\x02\x02\u08AA\u08AB\x07V\x02\x02\u08AB\u08AC\x07K\x02\x02\u08AC\u08AD" + + "\x07P\x02\x02\u08AD\u08AE\x07E\x02\x02\u08AE\u08AF\x07V\x02\x02\u08AF" + + "d\x03\x02\x02\x02\u08B0\u08B1\x07F\x02\x02\u08B1\u08B2\x07K\x02\x02\u08B2" + + "\u08B3\x07U\x02\x02\u08B3\u08B4\x07V\x02\x02\u08B4\u08B5\x07K\x02\x02" + + "\u08B5\u08B6\x07P\x02\x02\u08B6\u08B7\x07E\x02\x02\u08B7\u08B8\x07V\x02" + + "\x02\u08B8\u08B9\x07T\x02\x02\u08B9\u08BA\x07Q\x02\x02\u08BA\u08BB\x07" + + "Y\x02\x02\u08BBf\x03\x02\x02\x02\u08BC\u08BD\x07F\x02\x02\u08BD\u08BE" + + "\x07T\x02\x02\u08BE\u08BF\x07Q\x02\x02\u08BF\u08C0\x07R\x02\x02\u08C0" + + "h\x03\x02\x02\x02\u08C1\u08C2\x07G\x02\x02\u08C2\u08C3\x07C\x02\x02\u08C3" + + "\u08C4\x07E\x02\x02\u08C4\u08C5\x07J\x02\x02\u08C5j\x03\x02\x02\x02\u08C6" + + "\u08C7\x07G\x02\x02\u08C7\u08C8\x07N\x02\x02\u08C8\u08C9\x07U\x02\x02" + + "\u08C9\u08CA\x07G\x02\x02\u08CAl\x03\x02\x02\x02\u08CB\u08CC\x07G\x02" + + "\x02\u08CC\u08CD\x07N\x02\x02\u08CD\u08CE\x07U\x02\x02\u08CE\u08CF\x07" + + "G\x02\x02\u08CF\u08D0\x07K\x02\x02\u08D0\u08D1\x07H\x02\x02\u08D1n\x03" + + "\x02\x02\x02\u08D2\u08D3\x07G\x02\x02\u08D3\u08D4\x07O\x02\x02\u08D4\u08D5" + + "\x07R\x02\x02\u08D5\u08D6\x07V\x02\x02\u08D6\u08D7\x07[\x02\x02\u08D7" + + "p\x03\x02\x02\x02\u08D8\u08D9\x07G\x02\x02\u08D9\u08DA\x07P\x02\x02\u08DA" + + "\u08DB\x07E\x02\x02\u08DB\u08DC\x07N\x02\x02\u08DC\u08DD\x07Q\x02\x02" + + "\u08DD\u08DE\x07U\x02\x02\u08DE\u08DF\x07G\x02\x02\u08DF\u08E0\x07F\x02" + + "\x02\u08E0r\x03\x02\x02\x02\u08E1\u08E2\x07G\x02\x02\u08E2\u08E3\x07P" + + "\x02\x02\u08E3\u08E4\x07H\x02\x02\u08E4\u08E5\x07Q\x02\x02\u08E5\u08E6" + + "\x07T\x02\x02\u08E6\u08E7\x07E\x02\x02\u08E7\u08E8\x07G\x02\x02\u08E8" + + "\u08E9\x07F\x02\x02\u08E9t\x03\x02\x02\x02\u08EA\u08EB\x07G\x02\x02\u08EB" + + "\u08EC\x07U\x02\x02\u08EC\u08ED\x07E\x02\x02\u08ED\u08EE\x07C\x02\x02" + + "\u08EE\u08EF\x07R\x02\x02\u08EF\u08F0\x07G\x02\x02\u08F0\u08F1\x07F\x02" + + "\x02\u08F1v\x03\x02\x02\x02\u08F2\u08F3\x07G\x02\x02\u08F3\u08F4\x07Z" + + "\x02\x02\u08F4\u08F5\x07E\x02\x02\u08F5\u08F6\x07G\x02\x02\u08F6\u08F7" + + "\x07R\x02\x02\u08F7\u08F8\x07V\x02\x02\u08F8x\x03\x02\x02\x02\u08F9\u08FA" + + "\x07G\x02\x02\u08FA\u08FB\x07Z\x02\x02\u08FB\u08FC\x07K\x02\x02\u08FC" + + "\u08FD\x07U\x02\x02\u08FD\u08FE\x07V\x02\x02\u08FE\u08FF\x07U\x02\x02" + + "\u08FFz\x03\x02\x02\x02\u0900\u0901\x07G\x02\x02\u0901\u0902\x07Z\x02" + + "\x02\u0902\u0903\x07K\x02\x02\u0903\u0904\x07V\x02\x02\u0904|\x03\x02" + + "\x02\x02\u0905\u0906\x07G\x02\x02\u0906\u0907\x07Z\x02\x02\u0907\u0908" + + "\x07R\x02\x02\u0908\u0909\x07N\x02\x02\u0909\u090A\x07C\x02\x02\u090A" + + "\u090B\x07K\x02\x02\u090B\u090C\x07P\x02\x02\u090C~\x03\x02\x02\x02\u090D" + + "\u090E\x07H\x02\x02\u090E\u090F\x07C\x02\x02\u090F\u0910\x07N\x02\x02" + + "\u0910\u0911\x07U\x02\x02\u0911\u0912\x07G\x02\x02\u0912\x80\x03\x02\x02" + + "\x02\u0913\u0914\x07H\x02\x02\u0914\u0915\x07G\x02\x02\u0915\u0916\x07" + + "V\x02\x02\u0916\u0917\x07E\x02\x02\u0917\u0918\x07J\x02\x02\u0918\x82" + + "\x03\x02\x02\x02\u0919\u091A\x07H\x02\x02\u091A\u091B\x07Q\x02\x02\u091B" + + "\u091C\x07T\x02\x02\u091C\x84\x03\x02\x02\x02\u091D\u091E\x07H\x02\x02" + + "\u091E\u091F\x07Q\x02\x02\u091F\u0920\x07T\x02\x02\u0920\u0921\x07E\x02" + + "\x02\u0921\u0922\x07G\x02\x02\u0922\x86\x03\x02\x02\x02\u0923\u0924\x07" + + "H\x02\x02\u0924\u0925\x07Q\x02\x02\u0925\u0926\x07T\x02\x02\u0926\u0927" + + "\x07G\x02\x02\u0927\u0928\x07K\x02\x02\u0928\u0929\x07I\x02\x02\u0929" + + "\u092A\x07P\x02\x02\u092A\x88\x03\x02\x02\x02\u092B\u092C\x07H\x02\x02" + + "\u092C\u092D\x07T\x02\x02\u092D\u092E\x07Q\x02\x02\u092E\u092F\x07O\x02" + + "\x02\u092F\x8A\x03\x02\x02\x02\u0930\u0931\x07H\x02\x02\u0931\u0932\x07" + + "W\x02\x02\u0932\u0933\x07N\x02\x02\u0933\u0934\x07N\x02\x02\u0934\u0935" + + "\x07V\x02\x02\u0935\u0936\x07G\x02\x02\u0936\u0937\x07Z\x02\x02\u0937" + + "\u0938\x07V\x02\x02\u0938\x8C\x03\x02\x02\x02\u0939\u093A\x07I\x02\x02" + + "\u093A\u093B\x07G\x02\x02\u093B\u093C\x07P\x02\x02\u093C\u093D\x07G\x02" + + "\x02\u093D\u093E\x07T\x02\x02\u093E\u093F\x07C\x02\x02\u093F\u0940\x07" + + "V\x02\x02\u0940\u0941\x07G\x02\x02\u0941\x8E\x03\x02\x02\x02\u0942\u0943" + + "\x07I\x02\x02\u0943\u0944\x07G\x02\x02\u0944\u0945\x07P\x02\x02\u0945" + + "\u0946\x07G\x02\x02\u0946\u0947\x07T\x02\x02\u0947\u0948\x07C\x02\x02" + + "\u0948\u0949\x07V\x02\x02\u0949\u094A\x07G\x02\x02\u094A\u094B\x07F\x02" + + "\x02\u094B\x90\x03\x02\x02\x02\u094C\u094D\x07I\x02\x02\u094D\u094E\x07" + + "G\x02\x02\u094E\u094F\x07V\x02\x02\u094F\x92\x03\x02\x02\x02\u0950\u0951" + + "\x07I\x02\x02\u0951\u0952\x07T\x02\x02\u0952\u0953\x07C\x02\x02\u0953" + + "\u0954\x07P\x02\x02\u0954\u0955\x07V\x02\x02\u0955\x94\x03\x02\x02\x02" + + "\u0956\u0957\x07I\x02\x02\u0957\u0958\x07T\x02\x02\u0958\u0959\x07Q\x02" + + "\x02\u0959\u095A\x07W\x02\x02\u095A\u095B\x07R\x02\x02\u095B\x96\x03\x02" + + "\x02\x02\u095C\u095D\x07J\x02\x02\u095D\u095E\x07C\x02\x02\u095E\u095F" + + "\x07X\x02\x02\u095F\u0960\x07K\x02\x02\u0960\u0961\x07P\x02\x02\u0961" + + "\u0962\x07I\x02\x02\u0962\x98\x03\x02\x02\x02\u0963\u0964\x07J\x02\x02" + + "\u0964\u0965\x07K\x02\x02\u0965\u0966\x07I\x02\x02\u0966\u0967\x07J\x02" + + "\x02\u0967\u0968\x07a\x02\x02\u0968\u0969\x07R\x02\x02\u0969\u096A\x07" + + "T\x02\x02\u096A\u096B\x07K\x02\x02\u096B\u096C\x07Q\x02\x02\u096C\u096D" + + "\x07T\x02\x02\u096D\u096E\x07K\x02\x02\u096E\u096F\x07V\x02\x02\u096F" + + "\u0970\x07[\x02\x02\u0970\x9A\x03\x02\x02\x02\u0971\u0972\x07J\x02\x02" + + "\u0972\u0973\x07K\x02\x02\u0973\u0974\x07U\x02\x02\u0974\u0975\x07V\x02" + + "\x02\u0975\u0976\x07Q\x02\x02\u0976\u0977\x07I\x02\x02\u0977\u0978\x07" + + "T\x02\x02\u0978\u0979\x07C\x02\x02\u0979\u097A\x07O\x02\x02\u097A\x9C" + + "\x03\x02\x02\x02\u097B\u097C\x07K\x02\x02\u097C\u097D\x07H\x02\x02\u097D" + + "\x9E\x03\x02\x02\x02\u097E\u097F\x07K\x02\x02\u097F\u0980\x07I\x02\x02" + + "\u0980\u0981\x07P\x02\x02\u0981\u0982\x07Q\x02\x02\u0982\u0983\x07T\x02" + + "\x02\u0983\u0984\x07G\x02\x02\u0984\xA0\x03\x02\x02\x02\u0985\u0986\x07" + + "K\x02\x02\u0986\u0987\x07P\x02\x02\u0987\xA2\x03\x02\x02\x02\u0988\u0989" + + "\x07K\x02\x02\u0989\u098A\x07P\x02\x02\u098A\u098B\x07C\x02\x02\u098B" + + "\u098C\x07E\x02\x02\u098C\u098D\x07V\x02\x02\u098D\u098E\x07K\x02\x02" + + "\u098E\u098F\x07X\x02\x02\u098F\u0990\x07G\x02\x02\u0990\xA4\x03\x02\x02" + + "\x02\u0991\u0992\x07K\x02\x02\u0992\u0993\x07P\x02\x02\u0993\u0994\x07" + + "F\x02\x02\u0994\u0995\x07G\x02\x02\u0995\u0996\x07Z\x02\x02\u0996\xA6" + + "\x03\x02\x02\x02\u0997\u0998\x07K\x02\x02\u0998\u0999\x07P\x02\x02\u0999" + + "\u099A\x07H\x02\x02\u099A\u099B\x07K\x02\x02\u099B\u099C\x07N\x02\x02" + + "\u099C\u099D\x07G\x02\x02\u099D\xA8\x03\x02\x02\x02\u099E\u099F\x07K\x02" + + "\x02\u099F\u09A0\x07P\x02\x02\u09A0\u09A1\x07P\x02\x02\u09A1\u09A2\x07" + + "G\x02\x02\u09A2\u09A3\x07T\x02\x02\u09A3\xAA\x03\x02\x02\x02\u09A4\u09A5" + + "\x07K\x02\x02\u09A5\u09A6\x07P\x02\x02\u09A6\u09A7\x07Q\x02\x02\u09A7" + + "\u09A8\x07W\x02\x02\u09A8\u09A9\x07V\x02\x02\u09A9\xAC\x03\x02\x02\x02" + + "\u09AA\u09AB\x07K\x02\x02\u09AB\u09AC\x07P\x02\x02\u09AC\u09AD\x07U\x02" + + "\x02\u09AD\u09AE\x07G\x02\x02\u09AE\u09AF\x07T\x02\x02\u09AF\u09B0\x07" + + "V\x02\x02\u09B0\xAE\x03\x02\x02\x02\u09B1\u09B2\x07K\x02\x02\u09B2\u09B3" + + "\x07P\x02\x02\u09B3\u09B4\x07V\x02\x02\u09B4\u09B5\x07G\x02\x02\u09B5" + + "\u09B6\x07T\x02\x02\u09B6\u09B7\x07X\x02\x02\u09B7\u09B8\x07C\x02\x02" + + "\u09B8\u09B9\x07N\x02\x02\u09B9\xB0\x03\x02\x02\x02\u09BA\u09BB\x07K\x02" + + "\x02\u09BB\u09BC\x07P\x02\x02\u09BC\u09BD\x07V\x02\x02\u09BD\u09BE\x07" + + "Q\x02\x02\u09BE\xB2\x03\x02\x02\x02\u09BF\u09C0\x07K\x02\x02\u09C0\u09C1" + + "\x07U\x02\x02\u09C1\xB4\x03\x02\x02\x02\u09C2\u09C3\x07K\x02\x02\u09C3" + + "\u09C4\x07V\x02\x02\u09C4\u09C5\x07G\x02\x02\u09C5\u09C6\x07T\x02\x02" + + "\u09C6\u09C7\x07C\x02\x02\u09C7\u09C8\x07V\x02\x02\u09C8\u09C9\x07G\x02" + + "\x02\u09C9\xB6\x03\x02\x02\x02\u09CA\u09CB\x07L\x02\x02\u09CB\u09CC\x07" + + "Q\x02\x02\u09CC\u09CD\x07K\x02\x02\u09CD\u09CE\x07P\x02\x02\u09CE\xB8" + + "\x03\x02\x02\x02\u09CF\u09D0\x07M\x02\x02\u09D0\u09D1\x07G\x02\x02\u09D1" + + "\u09D2\x07[\x02\x02\u09D2\xBA\x03\x02\x02\x02\u09D3\u09D4\x07M\x02\x02" + + "\u09D4\u09D5\x07G\x02\x02\u09D5\u09D6\x07[\x02\x02\u09D6\u09D7\x07U\x02" + + "\x02\u09D7\xBC\x03\x02\x02\x02\u09D8\u09D9\x07M\x02\x02\u09D9\u09DA\x07" + + "K\x02\x02\u09DA\u09DB\x07N\x02\x02\u09DB\u09DC\x07N\x02\x02\u09DC\xBE" + + "\x03\x02\x02\x02\u09DD\u09DE\x07N\x02\x02\u09DE\u09DF\x07C\x02\x02\u09DF" + + "\u09E0\x07V\x02\x02\u09E0\u09E1\x07G\x02\x02\u09E1\u09E2\x07T\x02\x02" + + "\u09E2\u09E3\x07C\x02\x02\u09E3\u09E4\x07N\x02\x02\u09E4\xC0\x03\x02\x02" + + "\x02\u09E5\u09E6\x07N\x02\x02\u09E6\u09E7\x07G\x02\x02\u09E7\u09E8\x07" + + "C\x02\x02\u09E8\u09E9\x07F\x02\x02\u09E9\u09EA\x07K\x02\x02\u09EA\u09EB" + + "\x07P\x02\x02\u09EB\u09EC\x07I\x02\x02\u09EC\xC2\x03\x02\x02\x02\u09ED" + + "\u09EE\x07N\x02\x02\u09EE\u09EF\x07G\x02\x02\u09EF\u09F0\x07C\x02\x02" + + "\u09F0\u09F1\x07X\x02\x02\u09F1\u09F2\x07G\x02\x02\u09F2\xC4\x03\x02\x02" + + "\x02\u09F3\u09F4\x07N\x02\x02\u09F4\u09F5\x07G\x02\x02\u09F5\u09F6\x07" + + "H\x02\x02\u09F6\u09F7\x07V\x02\x02\u09F7\xC6\x03\x02\x02\x02\u09F8\u09F9" + + "\x07N\x02\x02\u09F9\u09FA\x07K\x02\x02\u09FA\u09FB\x07M\x02\x02\u09FB" + + "\u09FC\x07G\x02\x02\u09FC\xC8\x03\x02\x02\x02\u09FD\u09FE\x07N\x02\x02" + + "\u09FE\u09FF\x07K\x02\x02\u09FF\u0A00\x07O\x02\x02\u0A00\u0A01\x07K\x02" + + "\x02\u0A01\u0A02\x07V\x02\x02\u0A02\xCA\x03\x02\x02\x02\u0A03\u0A04\x07" + + "N\x02\x02\u0A04\u0A05\x07K\x02\x02\u0A05\u0A06\x07P\x02\x02\u0A06\u0A07" + + "\x07G\x02\x02\u0A07\u0A08\x07C\x02\x02\u0A08\u0A09\x07T\x02\x02\u0A09" + + "\xCC\x03\x02\x02\x02\u0A0A\u0A0B\x07N\x02\x02\u0A0B\u0A0C\x07K\x02\x02" + + "\u0A0C\u0A0D\x07P\x02\x02\u0A0D\u0A0E\x07G\x02\x02\u0A0E\u0A0F\x07U\x02" + + "\x02\u0A0F\xCE\x03\x02\x02\x02\u0A10\u0A11\x07N\x02\x02\u0A11\u0A12\x07" + + "Q\x02\x02\u0A12\u0A13\x07C\x02\x02\u0A13\u0A14\x07F\x02\x02\u0A14\xD0" + + "\x03\x02\x02\x02\u0A15\u0A16\x07N\x02\x02\u0A16\u0A17\x07Q\x02\x02\u0A17" + + "\u0A18\x07E\x02\x02\u0A18\u0A19\x07M\x02\x02\u0A19\xD2\x03\x02\x02\x02" + + "\u0A1A\u0A1B\x07N\x02\x02\u0A1B\u0A1C\x07Q\x02\x02\u0A1C\u0A1D\x07E\x02" + + "\x02\u0A1D\u0A1E\x07M\x02\x02\u0A1E\u0A1F\x07G\x02\x02\u0A1F\u0A20\x07" + + "F\x02\x02\u0A20\xD4\x03\x02\x02\x02\u0A21\u0A22\x07N\x02\x02\u0A22\u0A23" + + "\x07Q\x02\x02\u0A23\u0A24\x07Q\x02\x02\u0A24\u0A25\x07R\x02\x02\u0A25" + + "\xD6\x03\x02\x02\x02\u0A26\u0A27\x07N\x02\x02\u0A27\u0A28\x07Q\x02\x02" + + "\u0A28\u0A29\x07Y\x02\x02\u0A29\u0A2A\x07a\x02\x02\u0A2A\u0A2B\x07R\x02" + + "\x02\u0A2B\u0A2C\x07T\x02\x02\u0A2C\u0A2D\x07K\x02\x02\u0A2D\u0A2E\x07" + + "Q\x02\x02\u0A2E\u0A2F\x07T\x02\x02\u0A2F\u0A30\x07K\x02\x02\u0A30\u0A31" + + "\x07V\x02\x02\u0A31\u0A32\x07[\x02\x02\u0A32\xD8\x03\x02\x02\x02\u0A33" + + "\u0A34\x07O\x02\x02\u0A34\u0A35\x07C\x02\x02\u0A35\u0A36\x07U\x02\x02" + + "\u0A36\u0A37\x07V\x02\x02\u0A37\u0A38\x07G\x02\x02\u0A38\u0A39\x07T\x02" + + "\x02\u0A39\u0A3A\x07a\x02\x02\u0A3A\u0A3B\x07D\x02\x02\u0A3B\u0A3C\x07" + + "K\x02\x02\u0A3C\u0A3D\x07P\x02\x02\u0A3D\u0A3E\x07F\x02\x02\u0A3E\xDA" + + "\x03\x02\x02\x02\u0A3F\u0A40\x07O\x02\x02\u0A40\u0A41\x07C\x02\x02\u0A41" + + "\u0A42\x07U\x02\x02\u0A42\u0A43\x07V\x02\x02\u0A43\u0A44\x07G\x02\x02" + + "\u0A44\u0A45\x07T\x02\x02\u0A45\u0A46\x07a\x02\x02\u0A46\u0A47\x07U\x02" + + "\x02\u0A47\u0A48\x07U\x02\x02\u0A48\u0A49\x07N\x02\x02\u0A49\u0A4A\x07" + + "a\x02\x02\u0A4A\u0A4B\x07X\x02\x02\u0A4B\u0A4C\x07G\x02\x02\u0A4C\u0A4D" + + "\x07T\x02\x02\u0A4D\u0A4E\x07K\x02\x02\u0A4E\u0A4F\x07H\x02\x02\u0A4F" + + "\u0A50\x07[\x02\x02\u0A50\u0A51\x07a\x02\x02\u0A51\u0A52\x07U\x02\x02" + + "\u0A52\u0A53\x07G\x02\x02\u0A53\u0A54\x07T\x02\x02\u0A54\u0A55\x07X\x02" + + "\x02\u0A55\u0A56\x07G\x02\x02\u0A56\u0A57\x07T\x02\x02\u0A57\u0A58\x07" + + "a\x02\x02\u0A58\u0A59\x07E\x02\x02\u0A59\u0A5A\x07G\x02\x02\u0A5A\u0A5B" + + "\x07T\x02\x02\u0A5B\u0A5C\x07V\x02\x02\u0A5C\xDC\x03\x02\x02\x02\u0A5D" + + "\u0A5E\x07O\x02\x02\u0A5E\u0A5F\x07C\x02\x02\u0A5F\u0A60\x07V\x02\x02" + + "\u0A60\u0A61\x07E\x02\x02\u0A61\u0A62\x07J\x02\x02\u0A62\xDE\x03\x02\x02" + + "\x02\u0A63\u0A64\x07O\x02\x02\u0A64\u0A65\x07C\x02\x02\u0A65\u0A66\x07" + + "Z\x02\x02\u0A66\u0A67\x07X\x02\x02\u0A67\u0A68\x07C\x02\x02\u0A68\u0A69" + + "\x07N\x02\x02\u0A69\u0A6A\x07W\x02\x02\u0A6A\u0A6B\x07G\x02\x02\u0A6B" + + "\xE0\x03\x02\x02\x02\u0A6C\u0A6D\x07O\x02\x02\u0A6D\u0A6E\x07Q\x02\x02" + + "\u0A6E\u0A6F\x07F\x02\x02\u0A6F\u0A70\x07K\x02\x02\u0A70\u0A71\x07H\x02" + + "\x02\u0A71\u0A72\x07K\x02\x02\u0A72\u0A73\x07G\x02\x02\u0A73\u0A74\x07" + + "U\x02\x02\u0A74\xE2\x03\x02\x02\x02\u0A75\u0A76\x07P\x02\x02\u0A76\u0A77" + + "\x07C\x02\x02\u0A77\u0A78\x07V\x02\x02\u0A78\u0A79\x07W\x02\x02\u0A79" + + "\u0A7A\x07T\x02\x02\u0A7A\u0A7B\x07C\x02\x02\u0A7B\u0A7C\x07N\x02\x02" + + "\u0A7C\xE4\x03\x02\x02\x02\u0A7D\u0A7E\x07P\x02\x02\u0A7E\u0A7F\x07Q\x02" + + "\x02\u0A7F\u0A80\x07V\x02\x02\u0A80\xE6\x03\x02\x02\x02\u0A81\u0A82\x07" + + "P\x02\x02\u0A82\u0A83\x07Q\x02\x02\u0A83\u0A84\x07a\x02\x02\u0A84\u0A85" + + "\x07Y\x02\x02\u0A85\u0A86\x07T\x02\x02\u0A86\u0A87\x07K\x02\x02\u0A87" + + "\u0A88\x07V\x02\x02\u0A88\u0A89\x07G\x02\x02\u0A89\u0A8A\x07a\x02\x02" + + "\u0A8A\u0A8B\x07V\x02\x02\u0A8B\u0A8C\x07Q\x02\x02\u0A8C\u0A8D\x07a\x02" + + "\x02\u0A8D\u0A8E\x07D\x02\x02\u0A8E\u0A8F\x07K\x02\x02\u0A8F\u0A90\x07" + + "P\x02\x02\u0A90\u0A91"; + private static readonly _serializedATNSegment8: string = + "\x07N\x02\x02\u0A91\u0A92\x07Q\x02\x02\u0A92\u0A93\x07I\x02\x02\u0A93" + + "\xE8\x03\x02\x02\x02\u0A94\u0A95\x07P\x02\x02\u0A95\u0A96\x07W\x02\x02" + + "\u0A96\u0A97\x07N\x02\x02\u0A97\u0A98\x07N\x02\x02\u0A98\xEA\x03\x02\x02" + + "\x02\u0A99\u0A9A\x07P\x02\x02\u0A9A\u0A9B\x07W\x02\x02\u0A9B\u0A9C\x07" + + "O\x02\x02\u0A9C\u0A9D\x07D\x02\x02\u0A9D\u0A9E\x07G\x02\x02\u0A9E\u0A9F" + + "\x07T\x02\x02\u0A9F\xEC\x03\x02\x02\x02\u0AA0\u0AA1\x07U\x02\x02\u0AA1" + + "\u0AA2\x07V\x02\x02\u0AA2\u0AA3\x07T\x02\x02\u0AA3\u0AA4\x07G\x02\x02" + + "\u0AA4\u0AA5\x07C\x02\x02\u0AA5\u0AA6\x07O\x02\x02\u0AA6\xEE\x03\x02\x02" + + "\x02\u0AA7\u0AA8\x07Q\x02\x02\u0AA8\u0AA9\x07P\x02\x02\u0AA9\xF0\x03\x02" + + "\x02\x02\u0AAA\u0AAB\x07Q\x02\x02\u0AAB\u0AAC\x07R\x02\x02\u0AAC\u0AAD" + + "\x07V\x02\x02\u0AAD\u0AAE\x07K\x02\x02\u0AAE\u0AAF\x07O\x02\x02\u0AAF" + + "\u0AB0\x07K\x02\x02\u0AB0\u0AB1\x07\\\x02\x02\u0AB1\u0AB2\x07G\x02\x02" + + "\u0AB2\xF2\x03\x02\x02\x02\u0AB3\u0AB4\x07Q\x02\x02\u0AB4\u0AB5\x07R\x02" + + "\x02\u0AB5\u0AB6\x07V\x02\x02\u0AB6\u0AB7\x07K\x02\x02\u0AB7\u0AB8\x07" + + "Q\x02\x02\u0AB8\u0AB9\x07P\x02\x02\u0AB9\xF4\x03\x02\x02\x02\u0ABA\u0ABB" + + "\x07Q\x02\x02\u0ABB\u0ABC\x07R\x02\x02\u0ABC\u0ABD\x07V\x02\x02\u0ABD" + + "\u0ABE\x07K\x02\x02\u0ABE\u0ABF\x07Q\x02\x02\u0ABF\u0AC0\x07P\x02\x02" + + "\u0AC0\u0AC1\x07C\x02\x02\u0AC1\u0AC2\x07N\x02\x02\u0AC2\xF6\x03\x02\x02" + + "\x02\u0AC3\u0AC4\x07Q\x02\x02\u0AC4\u0AC5\x07R\x02\x02\u0AC5\u0AC6\x07" + + "V\x02\x02\u0AC6\u0AC7\x07K\x02\x02\u0AC7\u0AC8\x07Q\x02\x02\u0AC8\u0AC9" + + "\x07P\x02\x02\u0AC9\u0ACA\x07C\x02\x02\u0ACA\u0ACB\x07N\x02\x02\u0ACB" + + "\u0ACC\x07N\x02\x02\u0ACC\u0ACD\x07[\x02\x02\u0ACD\xF8\x03\x02\x02\x02" + + "\u0ACE\u0ACF\x07Q\x02\x02\u0ACF\u0AD0\x07T\x02\x02\u0AD0\xFA\x03\x02\x02" + + "\x02\u0AD1\u0AD2\x07Q\x02\x02\u0AD2\u0AD3\x07T\x02\x02\u0AD3\u0AD4\x07" + + "F\x02\x02\u0AD4\u0AD5\x07G\x02\x02\u0AD5\u0AD6\x07T\x02\x02\u0AD6\xFC" + + "\x03\x02\x02\x02\u0AD7\u0AD8\x07Q\x02\x02\u0AD8\u0AD9\x07W\x02\x02\u0AD9" + + "\u0ADA\x07V\x02\x02\u0ADA\xFE\x03\x02\x02\x02\u0ADB\u0ADC\x07Q\x02\x02" + + "\u0ADC\u0ADD\x07W\x02\x02\u0ADD\u0ADE\x07V\x02\x02\u0ADE\u0ADF\x07G\x02" + + "\x02\u0ADF\u0AE0\x07T\x02\x02\u0AE0\u0100\x03\x02\x02\x02\u0AE1\u0AE2" + + "\x07Q\x02\x02\u0AE2\u0AE3\x07W\x02\x02\u0AE3\u0AE4\x07V\x02\x02\u0AE4" + + "\u0AE5\x07H\x02\x02\u0AE5\u0AE6\x07K\x02\x02\u0AE6\u0AE7\x07N\x02\x02" + + "\u0AE7\u0AE8\x07G\x02\x02\u0AE8\u0102\x03\x02\x02\x02\u0AE9\u0AEA\x07" + + "Q\x02\x02\u0AEA\u0AEB\x07X\x02\x02\u0AEB\u0AEC\x07G\x02\x02\u0AEC\u0AED" + + "\x07T\x02\x02\u0AED\u0104\x03\x02\x02\x02\u0AEE\u0AEF\x07R\x02\x02\u0AEF" + + "\u0AF0\x07C\x02\x02\u0AF0\u0AF1\x07T\x02\x02\u0AF1\u0AF2\x07V\x02\x02" + + "\u0AF2\u0AF3\x07K\x02\x02\u0AF3\u0AF4\x07V\x02\x02\u0AF4\u0AF5\x07K\x02" + + "\x02\u0AF5\u0AF6\x07Q\x02\x02\u0AF6\u0AF7\x07P\x02\x02\u0AF7\u0106\x03" + + "\x02\x02\x02\u0AF8\u0AF9\x07R\x02\x02\u0AF9\u0AFA\x07T\x02\x02\u0AFA\u0AFB" + + "\x07K\x02\x02\u0AFB\u0AFC\x07O\x02\x02\u0AFC\u0AFD\x07C\x02\x02\u0AFD" + + "\u0AFE\x07T\x02\x02\u0AFE\u0AFF\x07[\x02\x02\u0AFF\u0108\x03\x02\x02\x02" + + "\u0B00\u0B01\x07R\x02\x02\u0B01\u0B02\x07T\x02\x02\u0B02\u0B03\x07Q\x02" + + "\x02\u0B03\u0B04\x07E\x02\x02\u0B04\u0B05\x07G\x02\x02\u0B05\u0B06\x07" + + "F\x02\x02\u0B06\u0B07\x07W\x02\x02\u0B07\u0B08\x07T\x02\x02\u0B08\u0B09" + + "\x07G\x02\x02\u0B09\u010A\x03\x02\x02\x02\u0B0A\u0B0B\x07R\x02\x02\u0B0B" + + "\u0B0C\x07W\x02\x02\u0B0C\u0B0D\x07T\x02\x02\u0B0D\u0B0E\x07I\x02\x02" + + "\u0B0E\u0B0F\x07G\x02\x02\u0B0F\u010C\x03\x02\x02\x02\u0B10\u0B11\x07" + + "T\x02\x02\u0B11\u0B12\x07C\x02\x02\u0B12\u0B13\x07P\x02\x02\u0B13\u0B14" + + "\x07I\x02\x02\u0B14\u0B15\x07G\x02\x02\u0B15\u010E\x03\x02\x02\x02\u0B16" + + "\u0B17\x07T\x02\x02\u0B17\u0B18\x07G\x02\x02\u0B18\u0B19\x07C\x02\x02" + + "\u0B19\u0B1A\x07F\x02\x02\u0B1A\u0110\x03\x02\x02\x02\u0B1B\u0B1C\x07" + + "T\x02\x02\u0B1C\u0B1D\x07G\x02\x02\u0B1D\u0B1E\x07C\x02\x02\u0B1E\u0B1F" + + "\x07F\x02\x02\u0B1F\u0B20\x07U\x02\x02\u0B20\u0112\x03\x02\x02\x02\u0B21" + + "\u0B22\x07T\x02\x02\u0B22\u0B23\x07G\x02\x02\u0B23\u0B24\x07H\x02\x02" + + "\u0B24\u0B25\x07G\x02\x02\u0B25\u0B26\x07T\x02\x02\u0B26\u0B27\x07G\x02" + + "\x02\u0B27\u0B28\x07P\x02\x02\u0B28\u0B29\x07E\x02\x02\u0B29\u0B2A\x07" + + "G\x02\x02\u0B2A\u0114\x03\x02\x02\x02\u0B2B\u0B2C\x07T\x02\x02\u0B2C\u0B2D" + + "\x07G\x02\x02\u0B2D\u0B2E\x07H\x02\x02\u0B2E\u0B2F\x07G\x02\x02\u0B2F" + + "\u0B30\x07T\x02\x02\u0B30\u0B31\x07G\x02\x02\u0B31\u0B32\x07P\x02\x02" + + "\u0B32\u0B33\x07E\x02\x02\u0B33\u0B34\x07G\x02\x02\u0B34\u0B35\x07U\x02" + + "\x02\u0B35\u0116\x03\x02\x02\x02\u0B36\u0B37\x07T\x02\x02\u0B37\u0B38" + + "\x07G\x02\x02\u0B38\u0B39\x07I\x02\x02\u0B39\u0B3A\x07G\x02\x02\u0B3A" + + "\u0B3B\x07Z\x02\x02\u0B3B\u0B3C\x07R\x02\x02\u0B3C\u0118\x03\x02\x02\x02" + + "\u0B3D\u0B3E\x07T\x02\x02\u0B3E\u0B3F\x07G\x02\x02\u0B3F\u0B40\x07N\x02" + + "\x02\u0B40\u0B41\x07G\x02\x02\u0B41\u0B42\x07C\x02\x02\u0B42\u0B43\x07" + + "U\x02\x02\u0B43\u0B44\x07G\x02\x02\u0B44\u011A\x03\x02\x02\x02\u0B45\u0B46" + + "\x07T\x02\x02\u0B46\u0B47\x07G\x02\x02\u0B47\u0B48\x07P\x02\x02\u0B48" + + "\u0B49\x07C\x02\x02\u0B49\u0B4A\x07O\x02\x02\u0B4A\u0B4B\x07G\x02\x02" + + "\u0B4B\u011C\x03\x02\x02\x02\u0B4C\u0B4D\x07T\x02\x02\u0B4D\u0B4E\x07" + + "G\x02\x02\u0B4E\u0B4F\x07R\x02\x02\u0B4F\u0B50\x07G\x02\x02\u0B50\u0B51" + + "\x07C\x02\x02\u0B51\u0B52\x07V\x02\x02\u0B52\u011E\x03\x02\x02\x02\u0B53" + + "\u0B54\x07T\x02\x02\u0B54\u0B55\x07G\x02\x02\u0B55\u0B56\x07R\x02\x02" + + "\u0B56\u0B57\x07N\x02\x02\u0B57\u0B58\x07C\x02\x02\u0B58\u0B59\x07E\x02" + + "\x02\u0B59\u0B5A\x07G\x02\x02\u0B5A\u0120\x03\x02\x02\x02\u0B5B\u0B5C" + + "\x07T\x02\x02\u0B5C\u0B5D\x07G\x02\x02\u0B5D\u0B5E\x07S\x02\x02\u0B5E" + + "\u0B5F\x07W\x02\x02\u0B5F\u0B60\x07K\x02\x02\u0B60\u0B61\x07T\x02\x02" + + "\u0B61\u0B62\x07G\x02\x02\u0B62\u0122\x03\x02\x02\x02\u0B63\u0B64\x07" + + "T\x02\x02\u0B64\u0B65\x07G\x02\x02\u0B65\u0B66\x07U\x02\x02\u0B66\u0B67" + + "\x07K\x02\x02\u0B67\u0B68\x07I\x02\x02\u0B68\u0B69\x07P\x02\x02\u0B69" + + "\u0B6A\x07C\x02\x02\u0B6A\u0B6B\x07N\x02\x02\u0B6B\u0124\x03\x02\x02\x02" + + "\u0B6C\u0B6D\x07T\x02\x02\u0B6D\u0B6E\x07G\x02\x02\u0B6E\u0B6F\x07U\x02" + + "\x02\u0B6F\u0B70\x07V\x02\x02\u0B70\u0B71\x07T\x02\x02\u0B71\u0B72\x07" + + "K\x02\x02\u0B72\u0B73\x07E\x02\x02\u0B73\u0B74\x07V\x02\x02\u0B74\u0126" + + "\x03\x02\x02\x02\u0B75\u0B76\x07T\x02\x02\u0B76\u0B77\x07G\x02\x02\u0B77" + + "\u0B78\x07V\x02\x02\u0B78\u0B79\x07C\x02\x02\u0B79\u0B7A\x07K\x02\x02" + + "\u0B7A\u0B7B\x07P\x02\x02\u0B7B\u0128\x03\x02\x02\x02\u0B7C\u0B7D\x07" + + "T\x02\x02\u0B7D\u0B7E\x07G\x02\x02\u0B7E\u0B7F\x07V\x02\x02\u0B7F\u0B80" + + "\x07W\x02\x02\u0B80\u0B81\x07T\x02\x02\u0B81\u0B82\x07P\x02\x02\u0B82" + + "\u012A\x03\x02\x02\x02\u0B83\u0B84\x07T\x02\x02\u0B84\u0B85\x07G\x02\x02" + + "\u0B85\u0B86\x07X\x02\x02\u0B86\u0B87\x07Q\x02\x02\u0B87\u0B88\x07M\x02" + + "\x02\u0B88\u0B89\x07G\x02\x02\u0B89\u012C\x03\x02\x02\x02\u0B8A\u0B8B" + + "\x07T\x02\x02\u0B8B\u0B8C\x07K\x02\x02\u0B8C\u0B8D\x07I\x02\x02\u0B8D" + + "\u0B8E\x07J\x02\x02\u0B8E\u0B8F\x07V\x02\x02\u0B8F\u012E\x03\x02\x02\x02" + + "\u0B90\u0B91\x07T\x02\x02\u0B91\u0B92\x07N\x02\x02\u0B92\u0B93\x07K\x02" + + "\x02\u0B93\u0B94\x07M\x02\x02\u0B94\u0B95\x07G\x02\x02\u0B95\u0130\x03" + + "\x02\x02\x02\u0B96\u0B97\x07U\x02\x02\u0B97\u0B98\x07E\x02\x02\u0B98\u0B99" + + "\x07J\x02\x02\u0B99\u0B9A\x07G\x02\x02\u0B9A\u0B9B\x07O\x02\x02\u0B9B" + + "\u0B9C\x07C\x02\x02\u0B9C\u0132\x03\x02\x02\x02\u0B9D\u0B9E\x07U\x02\x02" + + "\u0B9E\u0B9F\x07E\x02\x02\u0B9F\u0BA0\x07J\x02\x02\u0BA0\u0BA1\x07G\x02" + + "\x02\u0BA1\u0BA2\x07O\x02\x02\u0BA2\u0BA3\x07C\x02\x02\u0BA3\u0BA4\x07" + + "U\x02\x02\u0BA4\u0134\x03\x02\x02\x02\u0BA5\u0BA6\x07U\x02\x02\u0BA6\u0BA7" + + "\x07G\x02\x02\u0BA7\u0BA8\x07N\x02\x02\u0BA8\u0BA9\x07G\x02\x02\u0BA9" + + "\u0BAA\x07E\x02\x02\u0BAA\u0BAB\x07V\x02\x02\u0BAB\u0136\x03\x02\x02\x02" + + "\u0BAC\u0BAD\x07U\x02\x02\u0BAD\u0BAE\x07G\x02\x02\u0BAE\u0BAF\x07V\x02" + + "\x02\u0BAF\u0138\x03\x02\x02\x02\u0BB0\u0BB1\x07U\x02\x02\u0BB1\u0BB2" + + "\x07G\x02\x02\u0BB2\u0BB3\x07R\x02\x02\u0BB3\u0BB4\x07C\x02\x02\u0BB4" + + "\u0BB5\x07T\x02\x02\u0BB5\u0BB6\x07C\x02\x02\u0BB6\u0BB7\x07V\x02\x02" + + "\u0BB7\u0BB8\x07Q\x02\x02\u0BB8\u0BB9\x07T\x02\x02\u0BB9\u013A\x03\x02" + + "\x02\x02\u0BBA\u0BBB\x07U\x02\x02\u0BBB\u0BBC\x07J\x02\x02\u0BBC\u0BBD" + + "\x07Q\x02\x02\u0BBD\u0BBE\x07Y\x02\x02\u0BBE\u013C\x03\x02\x02\x02\u0BBF" + + "\u0BC0\x07U\x02\x02\u0BC0\u0BC1\x07K\x02\x02\u0BC1\u0BC2\x07I\x02\x02" + + "\u0BC2\u0BC3\x07P\x02\x02\u0BC3\u0BC4\x07C\x02\x02\u0BC4\u0BC5\x07N\x02" + + "\x02\u0BC5\u013E\x03\x02\x02\x02\u0BC6\u0BC7\x07U\x02\x02\u0BC7\u0BC8" + + "\x07M\x02\x02\u0BC8\u0BC9\x07K\x02\x02\u0BC9\u0BCA\x07R\x02\x02\u0BCA" + + "\u0140\x03\x02\x02\x02\u0BCB\u0BCC\x07U\x02\x02\u0BCC\u0BCD\x07M\x02\x02" + + "\u0BCD\u0BCE\x07K\x02\x02\u0BCE\u0BCF\x07R\x02\x02\u0BCF\u0BD0\x07a\x02" + + "\x02\u0BD0\u0BD1\x07S\x02\x02\u0BD1\u0BD2\x07W\x02\x02\u0BD2\u0BD3\x07" + + "G\x02\x02\u0BD3\u0BD4\x07T\x02\x02\u0BD4\u0BD5\x07[\x02\x02\u0BD5\u0BD6" + + "\x07a\x02\x02\u0BD6\u0BD7\x07T\x02\x02\u0BD7\u0BD8\x07G\x02\x02\u0BD8" + + "\u0BD9\x07Y\x02\x02\u0BD9\u0BDA\x07T\x02\x02\u0BDA\u0BDB\x07K\x02\x02" + + "\u0BDB\u0BDC\x07V\x02\x02\u0BDC\u0BDD\x07G\x02\x02\u0BDD\u0142\x03\x02" + + "\x02\x02\u0BDE\u0BDF\x07U\x02\x02\u0BDF\u0BE0\x07R\x02\x02\u0BE0\u0BE1" + + "\x07C\x02\x02\u0BE1\u0BE2\x07V\x02\x02\u0BE2\u0BE3\x07K\x02\x02\u0BE3" + + "\u0BE4\x07C\x02\x02\u0BE4\u0BE5\x07N\x02\x02\u0BE5\u0144\x03\x02\x02\x02" + + "\u0BE6\u0BE7\x07U\x02\x02\u0BE7\u0BE8\x07S\x02\x02\u0BE8\u0BE9\x07N\x02" + + "\x02\u0BE9\u0146\x03\x02\x02\x02\u0BEA\u0BEB\x07U\x02\x02\u0BEB\u0BEC" + + "\x07S\x02\x02\u0BEC\u0BED\x07N\x02\x02\u0BED\u0BEE\x07G\x02\x02\u0BEE" + + "\u0BEF\x07Z\x02\x02\u0BEF\u0BF0\x07E\x02\x02\u0BF0\u0BF1\x07G\x02\x02" + + "\u0BF1\u0BF2\x07R\x02\x02\u0BF2\u0BF3\x07V\x02\x02\u0BF3\u0BF4\x07K\x02" + + "\x02\u0BF4\u0BF5\x07Q\x02\x02\u0BF5\u0BF6\x07P\x02\x02\u0BF6\u0148\x03" + + "\x02\x02\x02\u0BF7\u0BF8\x07U\x02\x02\u0BF8\u0BF9\x07S\x02\x02\u0BF9\u0BFA" + + "\x07N\x02\x02\u0BFA\u0BFB\x07U\x02\x02\u0BFB\u0BFC\x07V\x02\x02\u0BFC" + + "\u0BFD\x07C\x02\x02\u0BFD\u0BFE\x07V\x02\x02\u0BFE\u0BFF\x07G\x02\x02" + + "\u0BFF\u014A\x03\x02\x02\x02\u0C00\u0C01\x07U\x02\x02\u0C01\u0C02\x07" + + "S\x02\x02\u0C02\u0C03\x07N\x02\x02\u0C03\u0C04\x07Y\x02\x02\u0C04\u0C05" + + "\x07C\x02\x02\u0C05\u0C06\x07T\x02\x02\u0C06\u0C07\x07P\x02\x02\u0C07" + + "\u0C08\x07K\x02\x02\u0C08\u0C09\x07P\x02\x02\u0C09\u0C0A\x07I\x02\x02" + + "\u0C0A\u014C\x03\x02\x02\x02\u0C0B\u0C0C\x07U\x02\x02\u0C0C\u0C0D\x07" + + "S\x02\x02\u0C0D\u0C0E\x07N\x02\x02\u0C0E\u0C0F\x07a\x02\x02\u0C0F\u0C10" + + "\x07D\x02\x02\u0C10\u0C11\x07K\x02\x02\u0C11\u0C12\x07I\x02\x02\u0C12" + + "\u0C13\x07a\x02\x02\u0C13\u0C14\x07T\x02\x02\u0C14\u0C15\x07G\x02\x02" + + "\u0C15\u0C16\x07U\x02\x02\u0C16\u0C17\x07W\x02\x02\u0C17\u0C18\x07N\x02" + + "\x02\u0C18\u0C19\x07V\x02\x02\u0C19\u014E\x03\x02\x02\x02\u0C1A\u0C1B" + + "\x07U\x02\x02\u0C1B\u0C1C\x07S\x02\x02\u0C1C\u0C1D\x07N\x02\x02\u0C1D" + + "\u0C1E\x07a\x02\x02\u0C1E\u0C1F\x07E\x02\x02\u0C1F\u0C20\x07C\x02\x02" + + "\u0C20\u0C21\x07N\x02\x02\u0C21\u0C22\x07E\x02\x02\u0C22\u0C23\x07a\x02" + + "\x02\u0C23\u0C24\x07H\x02\x02\u0C24\u0C25\x07Q\x02\x02\u0C25\u0C26\x07" + + "W\x02\x02\u0C26\u0C27\x07P\x02\x02\u0C27\u0C28\x07F\x02\x02\u0C28\u0C29" + + "\x07a\x02\x02\u0C29\u0C2A\x07T\x02\x02\u0C2A\u0C2B\x07Q\x02\x02\u0C2B" + + "\u0C2C\x07Y\x02\x02\u0C2C\u0C2D\x07U\x02\x02\u0C2D\u0150\x03\x02\x02\x02" + + "\u0C2E\u0C2F\x07U\x02\x02\u0C2F\u0C30\x07S\x02\x02\u0C30\u0C31\x07N\x02" + + "\x02\u0C31\u0C32\x07a\x02\x02\u0C32\u0C33\x07U\x02\x02\u0C33\u0C34\x07" + + "O\x02\x02\u0C34\u0C35\x07C\x02\x02\u0C35\u0C36\x07N\x02\x02\u0C36\u0C37" + + "\x07N\x02\x02\u0C37\u0C38\x07a\x02\x02\u0C38\u0C39\x07T\x02\x02\u0C39" + + "\u0C3A\x07G\x02\x02\u0C3A\u0C3B\x07U\x02\x02\u0C3B\u0C3C\x07W\x02\x02" + + "\u0C3C\u0C3D\x07N\x02\x02\u0C3D\u0C3E\x07V\x02\x02\u0C3E\u0152\x03\x02" + + "\x02\x02\u0C3F\u0C40\x07U\x02\x02\u0C40\u0C41\x07U\x02\x02\u0C41\u0C42" + + "\x07N\x02\x02\u0C42\u0154\x03\x02\x02\x02\u0C43\u0C44\x07U\x02\x02\u0C44" + + "\u0C45\x07V\x02\x02\u0C45\u0C46\x07C\x02\x02\u0C46\u0C47\x07E\x02\x02" + + "\u0C47\u0C48\x07M\x02\x02\u0C48\u0C49\x07G\x02\x02\u0C49\u0C4A\x07F\x02" + + "\x02\u0C4A\u0156\x03\x02\x02\x02\u0C4B\u0C4C\x07U\x02\x02\u0C4C\u0C4D" + + "\x07V\x02\x02\u0C4D\u0C4E\x07C\x02\x02\u0C4E\u0C4F\x07T\x02\x02\u0C4F" + + "\u0C50\x07V\x02\x02\u0C50\u0C51\x07K\x02\x02\u0C51\u0C52\x07P\x02\x02" + + "\u0C52\u0C53\x07I\x02\x02\u0C53\u0158\x03\x02\x02\x02\u0C54\u0C55\x07" + + "U\x02\x02\u0C55\u0C56\x07V\x02\x02\u0C56\u0C57\x07T\x02\x02\u0C57\u0C58" + + "\x07C\x02\x02\u0C58\u0C59\x07K\x02\x02\u0C59\u0C5A\x07I\x02\x02\u0C5A" + + "\u0C5B\x07J\x02\x02\u0C5B\u0C5C\x07V\x02\x02\u0C5C\u0C5D\x07a\x02\x02" + + "\u0C5D\u0C5E\x07L\x02\x02\u0C5E\u0C5F\x07Q\x02\x02\u0C5F\u0C60\x07K\x02" + + "\x02\u0C60\u0C61\x07P\x02\x02\u0C61\u015A\x03\x02\x02\x02\u0C62\u0C63" + + "\x07V\x02\x02\u0C63\u0C64\x07C\x02\x02\u0C64\u0C65\x07D\x02\x02\u0C65" + + "\u0C66\x07N\x02\x02\u0C66\u0C67\x07G\x02\x02\u0C67\u015C\x03\x02\x02\x02" + + "\u0C68\u0C69\x07V\x02\x02\u0C69\u0C6A\x07G\x02\x02\u0C6A\u0C6B\x07T\x02" + + "\x02\u0C6B\u0C6C\x07O\x02\x02\u0C6C\u0C6D\x07K\x02\x02\u0C6D\u0C6E\x07" + + "P\x02\x02\u0C6E\u0C6F\x07C\x02\x02\u0C6F\u0C70\x07V\x02\x02\u0C70\u0C71" + + "\x07G\x02\x02\u0C71\u0C72\x07F\x02\x02\u0C72\u015E\x03\x02\x02\x02\u0C73" + + "\u0C74\x07V\x02\x02\u0C74\u0C75\x07J\x02\x02\u0C75\u0C76\x07G\x02\x02" + + "\u0C76\u0C77\x07P\x02\x02\u0C77\u0160\x03\x02\x02\x02\u0C78\u0C79\x07" + + "V\x02\x02\u0C79\u0C7A\x07Q\x02\x02\u0C7A\u0162\x03\x02\x02\x02\u0C7B\u0C7C" + + "\x07V\x02\x02\u0C7C\u0C7D\x07T\x02\x02\u0C7D\u0C7E\x07C\x02\x02\u0C7E" + + "\u0C7F\x07K\x02\x02\u0C7F\u0C80\x07N\x02\x02\u0C80\u0C81\x07K\x02\x02" + + "\u0C81\u0C82\x07P\x02\x02\u0C82\u0C83\x07I\x02\x02\u0C83\u0164\x03\x02" + + "\x02\x02\u0C84\u0C85\x07V\x02\x02\u0C85\u0C86\x07T\x02\x02\u0C86\u0C87" + + "\x07K\x02\x02\u0C87\u0C88\x07I\x02\x02\u0C88\u0C89\x07I\x02\x02\u0C89" + + "\u0C8A\x07G\x02\x02\u0C8A\u0C8B\x07T\x02\x02\u0C8B\u0166\x03\x02\x02\x02" + + "\u0C8C\u0C8D\x07V\x02\x02\u0C8D\u0C8E\x07T\x02\x02\u0C8E\u0C8F\x07W\x02" + + "\x02\u0C8F\u0C90\x07G\x02\x02\u0C90\u0168\x03\x02\x02\x02\u0C91\u0C92" + + "\x07W\x02\x02\u0C92\u0C93\x07P\x02\x02\u0C93\u0C94\x07F\x02\x02\u0C94" + + "\u0C95\x07Q\x02\x02\u0C95\u016A\x03\x02\x02\x02\u0C96\u0C97\x07W\x02\x02" + + "\u0C97\u0C98\x07P\x02\x02\u0C98\u0C99\x07K\x02\x02\u0C99\u0C9A\x07Q\x02" + + "\x02\u0C9A\u0C9B\x07P\x02\x02\u0C9B\u016C\x03\x02\x02\x02\u0C9C\u0C9D" + + "\x07W\x02\x02\u0C9D\u0C9E\x07P\x02\x02\u0C9E\u0C9F\x07K\x02\x02\u0C9F" + + "\u0CA0\x07S\x02\x02\u0CA0\u0CA1\x07W\x02\x02\u0CA1\u0CA2\x07G\x02\x02" + + "\u0CA2\u016E\x03\x02\x02\x02\u0CA3\u0CA4\x07W\x02\x02\u0CA4\u0CA5\x07" + + "P\x02\x02\u0CA5\u0CA6\x07N\x02\x02\u0CA6\u0CA7\x07Q\x02\x02\u0CA7\u0CA8" + + "\x07E\x02\x02\u0CA8\u0CA9\x07M\x02\x02\u0CA9\u0170\x03\x02\x02\x02\u0CAA" + + "\u0CAB\x07W\x02\x02\u0CAB\u0CAC\x07P\x02\x02\u0CAC\u0CAD\x07U\x02\x02" + + "\u0CAD\u0CAE\x07K\x02\x02\u0CAE\u0CAF\x07I\x02\x02\u0CAF\u0CB0\x07P\x02" + + "\x02\u0CB0\u0CB1\x07G\x02\x02\u0CB1\u0CB2\x07F\x02\x02\u0CB2\u0172\x03" + + "\x02\x02\x02\u0CB3\u0CB4\x07W\x02\x02\u0CB4\u0CB5\x07R\x02\x02\u0CB5\u0CB6" + + "\x07F\x02\x02\u0CB6\u0CB7\x07C\x02\x02\u0CB7\u0CB8\x07V\x02\x02\u0CB8" + + "\u0CB9\x07G\x02\x02\u0CB9\u0174\x03\x02\x02\x02\u0CBA\u0CBB\x07W\x02\x02" + + "\u0CBB\u0CBC\x07U\x02\x02\u0CBC\u0CBD\x07C\x02\x02\u0CBD\u0CBE\x07I\x02" + + "\x02\u0CBE\u0CBF\x07G\x02\x02\u0CBF\u0176\x03\x02\x02\x02\u0CC0\u0CC1" + + "\x07W\x02\x02\u0CC1\u0CC2\x07U\x02\x02\u0CC2\u0CC3\x07G\x02\x02\u0CC3" + + "\u0178\x03\x02\x02\x02\u0CC4\u0CC5\x07W\x02\x02\u0CC5\u0CC6\x07U\x02\x02" + + "\u0CC6\u0CC7\x07K\x02\x02\u0CC7\u0CC8\x07P\x02\x02\u0CC8\u0CC9\x07I\x02" + + "\x02\u0CC9\u017A\x03\x02\x02\x02\u0CCA\u0CCB\x07X\x02\x02\u0CCB\u0CCC" + + "\x07C\x02\x02\u0CCC\u0CCD\x07N\x02\x02\u0CCD\u0CCE\x07W\x02\x02\u0CCE" + + "\u0CCF\x07G\x02\x02\u0CCF\u0CD0\x07U\x02\x02\u0CD0\u017C\x03\x02\x02\x02" + + "\u0CD1\u0CD2\x07X\x02\x02\u0CD2\u0CD3\x07E\x02\x02\u0CD3\u0CD4\x07R\x02" + + "\x02\u0CD4\u0CD5\x07W\x02\x02\u0CD5\u017E\x03\x02\x02\x02\u0CD6\u0CD7" + + "\x07Y\x02\x02\u0CD7\u0CD8\x07J\x02\x02\u0CD8\u0CD9\x07G\x02\x02\u0CD9" + + "\u0CDA\x07P\x02\x02\u0CDA\u0180\x03\x02\x02\x02\u0CDB\u0CDC\x07Y\x02\x02" + + "\u0CDC\u0CDD\x07J\x02\x02\u0CDD\u0CDE\x07G\x02\x02\u0CDE\u0CDF\x07T\x02" + + "\x02\u0CDF\u0CE0\x07G\x02\x02\u0CE0\u0182\x03\x02\x02\x02\u0CE1\u0CE2" + + "\x07Y\x02\x02\u0CE2\u0CE3\x07J\x02\x02\u0CE3\u0CE4\x07K\x02\x02\u0CE4" + + "\u0CE5\x07N\x02\x02\u0CE5\u0CE6\x07G\x02\x02\u0CE6\u0184\x03\x02\x02\x02" + + "\u0CE7\u0CE8\x07Y\x02\x02\u0CE8\u0CE9\x07K\x02\x02\u0CE9\u0CEA\x07V\x02" + + "\x02\u0CEA\u0CEB\x07J\x02\x02\u0CEB\u0186\x03\x02\x02\x02\u0CEC\u0CED" + + "\x07Y\x02\x02\u0CED\u0CEE\x07T\x02\x02\u0CEE\u0CEF\x07K\x02\x02\u0CEF" + + "\u0CF0\x07V\x02\x02\u0CF0\u0CF1\x07G\x02\x02\u0CF1\u0188\x03\x02\x02\x02" + + "\u0CF2\u0CF3\x07Z\x02\x02\u0CF3\u0CF4\x07Q\x02\x02\u0CF4\u0CF5\x07T\x02" + + "\x02\u0CF5\u018A\x03\x02\x02\x02\u0CF6\u0CF7\x07\\\x02\x02\u0CF7\u0CF8" + + "\x07G\x02\x02\u0CF8\u0CF9\x07T\x02\x02\u0CF9\u0CFA\x07Q\x02\x02\u0CFA" + + "\u0CFB\x07H\x02\x02\u0CFB\u0CFC\x07K\x02\x02\u0CFC\u0CFD\x07N\x02\x02" + + "\u0CFD\u0CFE\x07N\x02\x02\u0CFE\u018C\x03\x02\x02\x02\u0CFF\u0D00\x07" + + "V\x02\x02\u0D00\u0D01\x07K\x02\x02\u0D01\u0D02\x07P\x02\x02\u0D02\u0D03" + + "\x07[\x02\x02\u0D03\u0D04\x07K\x02\x02\u0D04\u0D05\x07P\x02\x02\u0D05" + + "\u0D06\x07V\x02\x02\u0D06\u018E\x03\x02\x02\x02\u0D07\u0D08\x07U\x02\x02" + + "\u0D08\u0D09\x07O\x02\x02\u0D09\u0D0A\x07C\x02\x02\u0D0A\u0D0B\x07N\x02" + + "\x02\u0D0B\u0D0C\x07N\x02\x02\u0D0C\u0D0D\x07K\x02\x02\u0D0D\u0D0E\x07" + + "P\x02\x02\u0D0E\u0D0F\x07V\x02\x02\u0D0F\u0190\x03\x02\x02\x02\u0D10\u0D11" + + "\x07O\x02\x02\u0D11\u0D12\x07G\x02\x02\u0D12\u0D13\x07F\x02\x02\u0D13" + + "\u0D14\x07K\x02\x02\u0D14\u0D15\x07W\x02\x02\u0D15\u0D16\x07O\x02\x02" + + "\u0D16\u0D17\x07K\x02\x02\u0D17\u0D18\x07P\x02\x02\u0D18\u0D19\x07V\x02" + + "\x02\u0D19\u0192\x03\x02\x02\x02\u0D1A\u0D1B\x07O\x02\x02\u0D1B\u0D1C" + + "\x07K\x02\x02\u0D1C\u0D1D\x07F\x02\x02\u0D1D\u0D1E\x07F\x02\x02\u0D1E" + + "\u0D1F\x07N\x02\x02\u0D1F\u0D20\x07G\x02\x02\u0D20\u0D21\x07K\x02\x02" + + "\u0D21\u0D22\x07P\x02\x02\u0D22\u0D23\x07V\x02\x02\u0D23\u0194\x03\x02" + + "\x02\x02\u0D24\u0D25\x07K\x02\x02\u0D25\u0D26\x07P\x02\x02\u0D26\u0D27" + + "\x07V\x02\x02\u0D27\u0196\x03\x02\x02\x02\u0D28\u0D29\x07K\x02\x02\u0D29" + + "\u0D2A\x07P\x02\x02\u0D2A\u0D2B\x07V\x02\x02\u0D2B\u0D2C\x073\x02\x02" + + "\u0D2C\u0198\x03\x02\x02\x02\u0D2D\u0D2E\x07K\x02\x02\u0D2E\u0D2F\x07" + + "P\x02\x02\u0D2F\u0D30\x07V\x02\x02\u0D30\u0D31\x074\x02\x02\u0D31\u019A" + + "\x03\x02\x02\x02\u0D32\u0D33\x07K\x02\x02\u0D33\u0D34\x07P\x02\x02\u0D34" + + "\u0D35\x07V\x02\x02\u0D35\u0D36\x075\x02\x02\u0D36\u019C\x03\x02\x02\x02" + + "\u0D37\u0D38\x07K\x02\x02\u0D38\u0D39\x07P\x02\x02\u0D39\u0D3A\x07V\x02" + + "\x02\u0D3A\u0D3B\x076\x02\x02\u0D3B\u019E\x03\x02\x02\x02\u0D3C\u0D3D" + + "\x07K\x02\x02\u0D3D\u0D3E\x07P\x02\x02\u0D3E\u0D3F\x07V\x02\x02\u0D3F" + + "\u0D40\x07:\x02\x02\u0D40\u01A0\x03\x02\x02\x02\u0D41\u0D42\x07K\x02\x02" + + "\u0D42\u0D43\x07P\x02\x02\u0D43\u0D44\x07V\x02\x02\u0D44\u0D45\x07G\x02" + + "\x02\u0D45\u0D46\x07I\x02\x02\u0D46\u0D47\x07G\x02\x02\u0D47\u0D48\x07" + + "T\x02\x02\u0D48\u01A2\x03\x02\x02\x02\u0D49\u0D4A\x07D\x02\x02\u0D4A\u0D4B" + + "\x07K\x02\x02\u0D4B\u0D4C\x07I\x02\x02\u0D4C\u0D4D\x07K\x02\x02\u0D4D" + + "\u0D4E\x07P\x02\x02\u0D4E\u0D4F\x07V\x02\x02\u0D4F\u01A4\x03\x02\x02\x02" + + "\u0D50\u0D51\x07T\x02\x02\u0D51\u0D52\x07G\x02\x02\u0D52\u0D53\x07C\x02" + + "\x02\u0D53\u0D54\x07N\x02\x02\u0D54\u01A6\x03\x02\x02\x02\u0D55\u0D56" + + "\x07F\x02\x02\u0D56\u0D57\x07Q\x02\x02\u0D57\u0D58\x07W\x02\x02\u0D58" + + "\u0D59\x07D\x02\x02\u0D59\u0D5A\x07N\x02\x02\u0D5A\u0D5B\x07G\x02\x02" + + "\u0D5B\u01A8\x03\x02\x02\x02\u0D5C\u0D5D\x07R\x02\x02\u0D5D\u0D5E\x07" + + "T\x02\x02\u0D5E\u0D5F\x07G\x02\x02\u0D5F\u0D60\x07E\x02\x02\u0D60\u0D61" + + "\x07K\x02\x02\u0D61\u0D62\x07U\x02\x02\u0D62\u0D63\x07K\x02\x02\u0D63" + + "\u0D64\x07Q\x02\x02\u0D64\u0D65\x07P\x02\x02\u0D65\u01AA\x03\x02\x02\x02" + + "\u0D66\u0D67\x07H\x02\x02\u0D67\u0D68\x07N\x02\x02\u0D68\u0D69\x07Q\x02" + + "\x02\u0D69\u0D6A\x07C\x02\x02\u0D6A\u0D6B\x07V\x02\x02\u0D6B\u01AC\x03" + + "\x02\x02\x02\u0D6C\u0D6D\x07H\x02\x02\u0D6D\u0D6E\x07N\x02\x02\u0D6E\u0D6F" + + "\x07Q\x02\x02\u0D6F\u0D70\x07C\x02\x02\u0D70\u0D71\x07V\x02\x02\u0D71" + + "\u0D72\x076\x02\x02\u0D72\u01AE\x03\x02\x02\x02\u0D73\u0D74\x07H\x02\x02" + + "\u0D74\u0D75\x07N\x02\x02\u0D75\u0D76\x07Q\x02\x02\u0D76\u0D77\x07C\x02" + + "\x02\u0D77\u0D78\x07V\x02\x02\u0D78\u0D79\x07:\x02\x02\u0D79\u01B0\x03" + + "\x02\x02\x02\u0D7A\u0D7B\x07F\x02\x02\u0D7B\u0D7C\x07G\x02\x02\u0D7C\u0D7D" + + "\x07E\x02\x02\u0D7D\u0D7E\x07K\x02\x02\u0D7E\u0D7F\x07O\x02\x02\u0D7F" + + "\u0D80\x07C\x02\x02\u0D80\u0D81\x07N\x02\x02\u0D81\u01B2\x03\x02\x02\x02" + + "\u0D82\u0D83\x07F\x02\x02\u0D83\u0D84\x07G\x02\x02\u0D84\u0D85\x07E\x02" + + "\x02\u0D85\u01B4\x03\x02\x02\x02\u0D86\u0D87\x07P\x02\x02\u0D87\u0D88" + + "\x07W\x02\x02\u0D88\u0D89\x07O\x02\x02\u0D89\u0D8A\x07G\x02\x02\u0D8A" + + "\u0D8B\x07T\x02\x02\u0D8B\u0D8C\x07K\x02\x02\u0D8C\u0D8D\x07E\x02\x02" + + "\u0D8D\u01B6\x03\x02\x02\x02\u0D8E\u0D8F\x07F\x02\x02\u0D8F\u0D90\x07" + + "C\x02\x02\u0D90\u0D91\x07V\x02\x02\u0D91\u0D92\x07G\x02\x02\u0D92\u01B8" + + "\x03\x02\x02\x02\u0D93\u0D94\x07V\x02\x02\u0D94\u0D95\x07K\x02\x02\u0D95" + + "\u0D96\x07O\x02\x02\u0D96\u0D97\x07G\x02\x02\u0D97\u01BA\x03\x02\x02\x02" + + "\u0D98\u0D99\x07V\x02\x02\u0D99\u0D9A\x07K\x02\x02\u0D9A\u0D9B\x07O\x02" + + "\x02\u0D9B\u0D9C\x07G\x02\x02\u0D9C\u0D9D\x07U\x02\x02\u0D9D\u0D9E\x07" + + "V\x02\x02\u0D9E\u0D9F\x07C\x02\x02\u0D9F\u0DA0\x07O\x02\x02\u0DA0\u0DA1" + + "\x07R\x02\x02\u0DA1\u01BC\x03\x02\x02\x02\u0DA2\u0DA3\x07F\x02\x02\u0DA3" + + "\u0DA4\x07C\x02\x02\u0DA4\u0DA5\x07V\x02\x02\u0DA5\u0DA6\x07G\x02\x02" + + "\u0DA6\u0DA7\x07V\x02\x02\u0DA7\u0DA8\x07K\x02\x02\u0DA8\u0DA9\x07O\x02" + + "\x02\u0DA9\u0DAA\x07G\x02\x02\u0DAA\u01BE\x03\x02\x02\x02\u0DAB\u0DAC" + + "\x07[\x02\x02\u0DAC\u0DAD\x07G\x02\x02\u0DAD\u0DAE\x07C\x02\x02\u0DAE" + + "\u0DAF\x07T\x02\x02\u0DAF\u01C0\x03\x02\x02\x02\u0DB0\u0DB1\x07E\x02\x02" + + "\u0DB1\u0DB2\x07J\x02\x02\u0DB2\u0DB3\x07C\x02\x02\u0DB3\u0DB4\x07T\x02" + + "\x02\u0DB4\u01C2\x03\x02\x02\x02\u0DB5\u0DB6\x07X\x02\x02\u0DB6\u0DB7" + + "\x07C\x02\x02\u0DB7\u0DB8\x07T\x02\x02\u0DB8\u0DB9\x07E\x02\x02\u0DB9" + + "\u0DBA\x07J\x02\x02\u0DBA\u0DBB\x07C\x02\x02\u0DBB\u0DBC\x07T\x02\x02" + + "\u0DBC\u01C4\x03\x02\x02\x02\u0DBD\u0DBE\x07P\x02\x02\u0DBE\u0DBF\x07" + + "X\x02\x02\u0DBF\u0DC0\x07C\x02\x02\u0DC0\u0DC1\x07T\x02\x02\u0DC1\u0DC2" + + "\x07E\x02\x02\u0DC2\u0DC3\x07J\x02\x02\u0DC3\u0DC4\x07C\x02\x02\u0DC4" + + "\u0DC5\x07T\x02\x02\u0DC5\u01C6\x03\x02\x02\x02\u0DC6\u0DC7\x07P\x02\x02" + + "\u0DC7\u0DC8\x07C\x02\x02\u0DC8\u0DC9\x07V\x02\x02\u0DC9\u0DCA\x07K\x02" + + "\x02\u0DCA\u0DCB\x07Q\x02\x02\u0DCB\u0DCC\x07P\x02\x02\u0DCC\u0DCD\x07" + + "C\x02\x02\u0DCD\u0DCE\x07N\x02\x02\u0DCE\u01C8\x03\x02\x02\x02\u0DCF\u0DD0" + + "\x07D\x02\x02\u0DD0\u0DD1\x07K\x02\x02\u0DD1\u0DD2\x07P"; + private static readonly _serializedATNSegment9: string = + "\x02\x02\u0DD2\u0DD3\x07C\x02\x02\u0DD3\u0DD4\x07T\x02\x02\u0DD4\u0DD5" + + "\x07[\x02\x02\u0DD5\u01CA\x03\x02\x02\x02\u0DD6\u0DD7\x07X\x02\x02\u0DD7" + + "\u0DD8\x07C\x02\x02\u0DD8\u0DD9\x07T\x02\x02\u0DD9\u0DDA\x07D\x02\x02" + + "\u0DDA\u0DDB\x07K\x02\x02\u0DDB\u0DDC\x07P\x02\x02\u0DDC\u0DDD\x07C\x02" + + "\x02\u0DDD\u0DDE\x07T\x02\x02\u0DDE\u0DDF\x07[\x02\x02\u0DDF\u01CC\x03" + + "\x02\x02\x02\u0DE0\u0DE1\x07V\x02\x02\u0DE1\u0DE2\x07K\x02\x02\u0DE2\u0DE3" + + "\x07P\x02\x02\u0DE3\u0DE4\x07[\x02\x02\u0DE4\u0DE5\x07D\x02\x02\u0DE5" + + "\u0DE6\x07N\x02\x02\u0DE6\u0DE7\x07Q\x02\x02\u0DE7\u0DE8\x07D\x02\x02" + + "\u0DE8\u01CE\x03\x02\x02\x02\u0DE9\u0DEA\x07D\x02\x02\u0DEA\u0DEB\x07" + + "N\x02\x02\u0DEB\u0DEC\x07Q\x02\x02\u0DEC\u0DED\x07D\x02\x02\u0DED\u01D0" + + "\x03\x02\x02\x02\u0DEE\u0DEF\x07O\x02\x02\u0DEF\u0DF0\x07G\x02\x02\u0DF0" + + "\u0DF1\x07F\x02\x02\u0DF1\u0DF2\x07K\x02\x02\u0DF2\u0DF3\x07W\x02\x02" + + "\u0DF3\u0DF4\x07O\x02\x02\u0DF4\u0DF5\x07D\x02\x02\u0DF5\u0DF6\x07N\x02" + + "\x02\u0DF6\u0DF7\x07Q\x02\x02\u0DF7\u0DF8\x07D\x02\x02\u0DF8\u01D2\x03" + + "\x02\x02\x02\u0DF9\u0DFA\x07N\x02\x02\u0DFA\u0DFB\x07Q\x02\x02\u0DFB\u0DFC" + + "\x07P\x02\x02\u0DFC\u0DFD\x07I\x02\x02\u0DFD\u01D4\x03\x02\x02\x02\u0DFE" + + "\u0DFF\x07N\x02\x02\u0DFF\u0E00\x07Q\x02\x02\u0E00\u0E01\x07P\x02\x02" + + "\u0E01\u0E02\x07I\x02\x02\u0E02\u0E03\x07D\x02\x02\u0E03\u0E04\x07N\x02" + + "\x02\u0E04\u0E05\x07Q\x02\x02\u0E05\u0E06\x07D\x02\x02\u0E06\u01D6\x03" + + "\x02\x02\x02\u0E07\u0E08\x07V\x02\x02\u0E08\u0E09\x07K\x02\x02\u0E09\u0E0A" + + "\x07P\x02\x02\u0E0A\u0E0B\x07[\x02\x02\u0E0B\u0E0C\x07V\x02\x02\u0E0C" + + "\u0E0D\x07G\x02\x02\u0E0D\u0E0E\x07Z\x02\x02\u0E0E\u0E0F\x07V\x02\x02" + + "\u0E0F\u01D8\x03\x02\x02\x02\u0E10\u0E11\x07V\x02\x02\u0E11\u0E12\x07" + + "G\x02\x02\u0E12\u0E13\x07Z\x02\x02\u0E13\u0E14\x07V\x02\x02\u0E14\u01DA" + + "\x03\x02\x02\x02\u0E15\u0E16\x07O\x02\x02\u0E16\u0E17\x07G\x02\x02\u0E17" + + "\u0E18\x07F\x02\x02\u0E18\u0E19\x07K\x02\x02\u0E19\u0E1A\x07W\x02\x02" + + "\u0E1A\u0E1B\x07O\x02\x02\u0E1B\u0E1C\x07V\x02\x02\u0E1C\u0E1D\x07G\x02" + + "\x02\u0E1D\u0E1E\x07Z\x02\x02\u0E1E\u0E1F\x07V\x02\x02\u0E1F\u01DC\x03" + + "\x02\x02\x02\u0E20\u0E21\x07N\x02\x02\u0E21\u0E22\x07Q\x02\x02\u0E22\u0E23" + + "\x07P\x02\x02\u0E23\u0E24\x07I\x02\x02\u0E24\u0E25\x07V\x02\x02\u0E25" + + "\u0E26\x07G\x02\x02\u0E26\u0E27\x07Z\x02\x02\u0E27\u0E28\x07V\x02\x02" + + "\u0E28\u01DE\x03\x02\x02\x02\u0E29\u0E2A\x07G\x02\x02\u0E2A\u0E2B\x07" + + "P\x02\x02\u0E2B\u0E2C\x07W\x02\x02\u0E2C\u0E2D\x07O\x02\x02\u0E2D\u01E0" + + "\x03\x02\x02\x02\u0E2E\u0E2F\x07X\x02\x02\u0E2F\u0E30\x07C\x02\x02\u0E30" + + "\u0E31\x07T\x02\x02\u0E31\u0E32\x07[\x02\x02\u0E32\u0E33\x07K\x02\x02" + + "\u0E33\u0E34\x07P\x02\x02\u0E34\u0E35\x07I\x02\x02\u0E35\u01E2\x03\x02" + + "\x02\x02\u0E36\u0E37\x07U\x02\x02\u0E37\u0E38\x07G\x02\x02\u0E38\u0E39" + + "\x07T\x02\x02\u0E39\u0E3A\x07K\x02\x02\u0E3A\u0E3B\x07C\x02\x02\u0E3B" + + "\u0E3C\x07N\x02\x02\u0E3C\u01E4\x03\x02\x02\x02\u0E3D\u0E3E\x07[\x02\x02" + + "\u0E3E\u0E3F\x07G\x02\x02\u0E3F\u0E40\x07C\x02\x02\u0E40\u0E41\x07T\x02" + + "\x02\u0E41\u0E42\x07a\x02\x02\u0E42\u0E43\x07O\x02\x02\u0E43\u0E44\x07" + + "Q\x02\x02\u0E44\u0E45\x07P\x02\x02\u0E45\u0E46\x07V\x02\x02\u0E46\u0E47" + + "\x07J\x02\x02\u0E47\u01E6\x03\x02\x02\x02\u0E48\u0E49\x07F\x02\x02\u0E49" + + "\u0E4A\x07C\x02\x02\u0E4A\u0E4B\x07[\x02\x02\u0E4B\u0E4C\x07a\x02\x02" + + "\u0E4C\u0E4D\x07J\x02\x02\u0E4D\u0E4E\x07Q\x02\x02\u0E4E\u0E4F\x07W\x02" + + "\x02\u0E4F\u0E50\x07T\x02\x02\u0E50\u01E8\x03\x02\x02\x02\u0E51\u0E52" + + "\x07F\x02\x02\u0E52\u0E53\x07C\x02\x02\u0E53\u0E54\x07[\x02\x02\u0E54" + + "\u0E55\x07a\x02\x02\u0E55\u0E56\x07O\x02\x02\u0E56\u0E57\x07K\x02\x02" + + "\u0E57\u0E58\x07P\x02\x02\u0E58\u0E59\x07W\x02\x02\u0E59\u0E5A\x07V\x02" + + "\x02\u0E5A\u0E5B\x07G\x02\x02\u0E5B\u01EA\x03\x02\x02\x02\u0E5C\u0E5D" + + "\x07F\x02\x02\u0E5D\u0E5E\x07C\x02\x02\u0E5E\u0E5F\x07[\x02\x02\u0E5F" + + "\u0E60\x07a\x02\x02\u0E60\u0E61\x07U\x02\x02\u0E61\u0E62\x07G\x02\x02" + + "\u0E62\u0E63\x07E\x02\x02\u0E63\u0E64\x07Q\x02\x02\u0E64\u0E65\x07P\x02" + + "\x02\u0E65\u0E66\x07F\x02\x02\u0E66\u01EC\x03\x02\x02\x02\u0E67\u0E68" + + "\x07J\x02\x02\u0E68\u0E69\x07Q\x02\x02\u0E69\u0E6A\x07W\x02\x02\u0E6A" + + "\u0E6B\x07T\x02\x02\u0E6B\u0E6C\x07a\x02\x02\u0E6C\u0E6D\x07O\x02\x02" + + "\u0E6D\u0E6E\x07K\x02\x02\u0E6E\u0E6F\x07P\x02\x02\u0E6F\u0E70\x07W\x02" + + "\x02\u0E70\u0E71\x07V\x02\x02\u0E71\u0E72\x07G\x02\x02\u0E72\u01EE\x03" + + "\x02\x02\x02\u0E73\u0E74\x07J\x02\x02\u0E74\u0E75\x07Q\x02\x02\u0E75\u0E76" + + "\x07W\x02\x02\u0E76\u0E77\x07T\x02\x02\u0E77\u0E78\x07a\x02\x02\u0E78" + + "\u0E79\x07U\x02\x02\u0E79\u0E7A\x07G\x02\x02\u0E7A\u0E7B\x07E\x02\x02" + + "\u0E7B\u0E7C\x07Q\x02\x02\u0E7C\u0E7D\x07P\x02\x02\u0E7D\u0E7E\x07F\x02" + + "\x02\u0E7E\u01F0\x03\x02\x02\x02\u0E7F\u0E80\x07O\x02\x02\u0E80\u0E81" + + "\x07K\x02\x02\u0E81\u0E82\x07P\x02\x02\u0E82\u0E83\x07W\x02\x02\u0E83" + + "\u0E84\x07V\x02\x02\u0E84\u0E85\x07G\x02\x02\u0E85\u0E86\x07a\x02\x02" + + "\u0E86\u0E87\x07U\x02\x02\u0E87\u0E88\x07G\x02\x02\u0E88\u0E89\x07E\x02" + + "\x02\u0E89\u0E8A\x07Q\x02\x02\u0E8A\u0E8B\x07P\x02\x02\u0E8B\u0E8C\x07" + + "F\x02\x02\u0E8C\u01F2\x03\x02\x02\x02\u0E8D\u0E8E\x07U\x02\x02\u0E8E\u0E8F" + + "\x07G\x02\x02\u0E8F\u0E90\x07E\x02\x02\u0E90\u0E91\x07Q\x02\x02\u0E91" + + "\u0E92\x07P\x02\x02\u0E92\u0E93\x07F\x02\x02\u0E93\u0E94\x07a\x02\x02" + + "\u0E94\u0E95\x07O\x02\x02\u0E95\u0E96\x07K\x02\x02\u0E96\u0E97\x07E\x02" + + "\x02\u0E97\u0E98\x07T\x02\x02\u0E98\u0E99\x07Q\x02\x02\u0E99\u0E9A\x07" + + "U\x02\x02\u0E9A\u0E9B\x07G\x02\x02\u0E9B\u0E9C\x07E\x02\x02\u0E9C\u0E9D" + + "\x07Q\x02\x02\u0E9D\u0E9E\x07P\x02\x02\u0E9E\u0E9F\x07F\x02\x02\u0E9F" + + "\u01F4\x03\x02\x02\x02\u0EA0\u0EA1\x07O\x02\x02\u0EA1\u0EA2\x07K\x02\x02" + + "\u0EA2\u0EA3\x07P\x02\x02\u0EA3\u0EA4\x07W\x02\x02\u0EA4\u0EA5\x07V\x02" + + "\x02\u0EA5\u0EA6\x07G\x02\x02\u0EA6\u0EA7\x07a\x02\x02\u0EA7\u0EA8\x07" + + "O\x02\x02\u0EA8\u0EA9\x07K\x02\x02\u0EA9\u0EAA\x07E\x02\x02\u0EAA\u0EAB" + + "\x07T\x02\x02\u0EAB\u0EAC\x07Q\x02\x02\u0EAC\u0EAD\x07U\x02\x02\u0EAD" + + "\u0EAE\x07G\x02\x02\u0EAE\u0EAF\x07E\x02\x02\u0EAF\u0EB0\x07Q\x02\x02" + + "\u0EB0\u0EB1\x07P\x02\x02\u0EB1\u0EB2\x07F\x02\x02\u0EB2\u01F6\x03\x02" + + "\x02\x02\u0EB3\u0EB4\x07J\x02\x02\u0EB4\u0EB5\x07Q\x02\x02\u0EB5\u0EB6" + + "\x07W\x02\x02\u0EB6\u0EB7\x07T\x02\x02\u0EB7\u0EB8\x07a\x02\x02\u0EB8" + + "\u0EB9\x07O\x02\x02\u0EB9\u0EBA\x07K\x02\x02\u0EBA\u0EBB\x07E\x02\x02" + + "\u0EBB\u0EBC\x07T\x02\x02\u0EBC\u0EBD\x07Q\x02\x02\u0EBD\u0EBE\x07U\x02" + + "\x02\u0EBE\u0EBF\x07G\x02\x02\u0EBF\u0EC0\x07E\x02\x02\u0EC0\u0EC1\x07" + + "Q\x02\x02\u0EC1\u0EC2\x07P\x02\x02\u0EC2\u0EC3\x07F\x02\x02\u0EC3\u01F8" + + "\x03\x02\x02\x02\u0EC4\u0EC5\x07F\x02\x02\u0EC5\u0EC6\x07C\x02\x02\u0EC6" + + "\u0EC7\x07[\x02\x02\u0EC7\u0EC8\x07a\x02\x02\u0EC8\u0EC9\x07O\x02\x02" + + "\u0EC9\u0ECA\x07K\x02\x02\u0ECA\u0ECB\x07E\x02\x02\u0ECB\u0ECC\x07T\x02" + + "\x02\u0ECC\u0ECD\x07Q\x02\x02\u0ECD\u0ECE\x07U\x02\x02\u0ECE\u0ECF\x07" + + "G\x02\x02\u0ECF\u0ED0\x07E\x02\x02\u0ED0\u0ED1\x07Q\x02\x02\u0ED1\u0ED2" + + "\x07P\x02\x02\u0ED2\u0ED3\x07F\x02\x02\u0ED3\u01FA\x03\x02\x02\x02\u0ED4" + + "\u0ED5\x07L\x02\x02\u0ED5\u0ED6\x07U\x02\x02\u0ED6\u0ED7\x07Q\x02\x02" + + "\u0ED7\u0ED8\x07P\x02\x02\u0ED8\u0ED9\x07a\x02\x02\u0ED9\u0EDA\x07V\x02" + + "\x02\u0EDA\u0EDB\x07C\x02\x02\u0EDB\u0EDC\x07D\x02\x02\u0EDC\u0EDD\x07" + + "N\x02\x02\u0EDD\u0EDE\x07G\x02\x02\u0EDE\u01FC\x03\x02\x02\x02\u0EDF\u0EE0" + + "\x07L\x02\x02\u0EE0\u0EE1\x07U\x02\x02\u0EE1\u0EE2\x07Q\x02\x02\u0EE2" + + "\u0EE3\x07P\x02\x02\u0EE3\u0EE4\x07a\x02\x02\u0EE4\u0EE5\x07X\x02\x02" + + "\u0EE5\u0EE6\x07C\x02\x02\u0EE6\u0EE7\x07N\x02\x02\u0EE7\u0EE8\x07W\x02" + + "\x02\u0EE8\u0EE9\x07G\x02\x02\u0EE9\u01FE\x03\x02\x02\x02\u0EEA\u0EEB" + + "\x07P\x02\x02\u0EEB\u0EEC\x07G\x02\x02\u0EEC\u0EED\x07U\x02\x02\u0EED" + + "\u0EEE\x07V\x02\x02\u0EEE\u0EEF\x07G\x02\x02\u0EEF\u0EF0\x07F\x02\x02" + + "\u0EF0\u0200\x03\x02\x02\x02\u0EF1\u0EF2\x07Q\x02\x02\u0EF2\u0EF3\x07" + + "T\x02\x02\u0EF3\u0EF4\x07F\x02\x02\u0EF4\u0EF5\x07K\x02\x02\u0EF5\u0EF6" + + "\x07P\x02\x02\u0EF6\u0EF7\x07C\x02\x02\u0EF7\u0EF8\x07N\x02\x02\u0EF8" + + "\u0EF9\x07K\x02\x02\u0EF9\u0EFA\x07V\x02\x02\u0EFA\u0EFB\x07[\x02\x02" + + "\u0EFB\u0202\x03\x02\x02\x02\u0EFC\u0EFD\x07R\x02\x02\u0EFD\u0EFE\x07" + + "C\x02\x02\u0EFE\u0EFF\x07V\x02\x02\u0EFF\u0F00\x07J\x02\x02\u0F00\u0204" + + "\x03\x02\x02\x02\u0F01\u0F02\x07C\x02\x02\u0F02\u0F03\x07X\x02\x02\u0F03" + + "\u0F04\x07I\x02\x02\u0F04\u0206\x03\x02\x02\x02\u0F05\u0F06\x07D\x02\x02" + + "\u0F06\u0F07\x07K\x02\x02\u0F07\u0F08\x07V\x02\x02\u0F08\u0F09\x07a\x02" + + "\x02\u0F09\u0F0A\x07C\x02\x02\u0F0A\u0F0B\x07P\x02\x02\u0F0B\u0F0C\x07" + + "F\x02\x02\u0F0C\u0208\x03\x02\x02\x02\u0F0D\u0F0E\x07D\x02\x02\u0F0E\u0F0F" + + "\x07K\x02\x02\u0F0F\u0F10\x07V\x02\x02\u0F10\u0F11\x07a\x02\x02\u0F11" + + "\u0F12\x07Q\x02\x02\u0F12\u0F13\x07T\x02\x02\u0F13\u020A\x03\x02\x02\x02" + + "\u0F14\u0F15\x07D\x02\x02\u0F15\u0F16\x07K\x02\x02\u0F16\u0F17\x07V\x02" + + "\x02\u0F17\u0F18\x07a\x02\x02\u0F18\u0F19\x07Z\x02\x02\u0F19\u0F1A\x07" + + "Q\x02\x02\u0F1A\u0F1B\x07T\x02\x02\u0F1B\u020C\x03\x02\x02\x02\u0F1C\u0F1D" + + "\x07E\x02\x02\u0F1D\u0F1E\x07Q\x02\x02\u0F1E\u0F1F\x07W\x02\x02\u0F1F" + + "\u0F20\x07P\x02\x02\u0F20\u0F21\x07V\x02\x02\u0F21\u020E\x03\x02\x02\x02" + + "\u0F22\u0F23\x07E\x02\x02\u0F23\u0F24\x07W\x02\x02\u0F24\u0F25\x07O\x02" + + "\x02\u0F25\u0F26\x07G\x02\x02\u0F26\u0F27\x07a\x02\x02\u0F27\u0F28\x07" + + "F\x02\x02\u0F28\u0F29\x07K\x02\x02\u0F29\u0F2A\x07U\x02\x02\u0F2A\u0F2B" + + "\x07V\x02\x02\u0F2B\u0210\x03\x02\x02\x02\u0F2C\u0F2D\x07F\x02\x02\u0F2D" + + "\u0F2E\x07G\x02\x02\u0F2E\u0F2F\x07P\x02\x02\u0F2F\u0F30\x07U\x02\x02" + + "\u0F30\u0F31\x07G\x02\x02\u0F31\u0F32\x07a\x02\x02\u0F32\u0F33\x07T\x02" + + "\x02\u0F33\u0F34\x07C\x02\x02\u0F34\u0F35\x07P\x02\x02\u0F35\u0F36\x07" + + "M\x02\x02\u0F36\u0212\x03\x02\x02\x02\u0F37\u0F38\x07H\x02\x02\u0F38\u0F39" + + "\x07K\x02\x02\u0F39\u0F3A\x07T\x02\x02\u0F3A\u0F3B\x07U\x02\x02\u0F3B" + + "\u0F3C\x07V\x02\x02\u0F3C\u0F3D\x07a\x02\x02\u0F3D\u0F3E\x07X\x02\x02" + + "\u0F3E\u0F3F\x07C\x02\x02\u0F3F\u0F40\x07N\x02\x02\u0F40\u0F41\x07W\x02" + + "\x02\u0F41\u0F42\x07G\x02\x02\u0F42\u0214\x03\x02\x02\x02\u0F43\u0F44" + + "\x07I\x02\x02\u0F44\u0F45\x07T\x02\x02\u0F45\u0F46\x07Q\x02\x02\u0F46" + + "\u0F47\x07W\x02\x02\u0F47\u0F48\x07R\x02\x02\u0F48\u0F49\x07a\x02\x02" + + "\u0F49\u0F4A\x07E\x02\x02\u0F4A\u0F4B\x07Q\x02\x02\u0F4B\u0F4C\x07P\x02" + + "\x02\u0F4C\u0F4D\x07E\x02\x02\u0F4D\u0F4E\x07C\x02\x02\u0F4E\u0F4F\x07" + + "V\x02\x02\u0F4F\u0216\x03\x02\x02\x02\u0F50\u0F51\x07N\x02\x02\u0F51\u0F52" + + "\x07C\x02\x02\u0F52\u0F53\x07I\x02\x02\u0F53\u0218\x03\x02\x02\x02\u0F54" + + "\u0F55\x07N\x02\x02\u0F55\u0F56\x07C\x02\x02\u0F56\u0F57\x07U\x02\x02" + + "\u0F57\u0F58\x07V\x02\x02\u0F58\u0F59\x07a\x02\x02\u0F59\u0F5A\x07X\x02" + + "\x02\u0F5A\u0F5B\x07C\x02\x02\u0F5B\u0F5C\x07N\x02\x02\u0F5C\u0F5D\x07" + + "W\x02\x02\u0F5D\u0F5E\x07G\x02\x02\u0F5E\u021A\x03\x02\x02\x02\u0F5F\u0F60" + + "\x07N\x02\x02\u0F60\u0F61\x07G\x02\x02\u0F61\u0F62\x07C\x02\x02\u0F62" + + "\u0F63\x07F\x02\x02\u0F63\u021C\x03\x02\x02\x02\u0F64\u0F65\x07O\x02\x02" + + "\u0F65\u0F66\x07C\x02\x02\u0F66\u0F67\x07Z\x02\x02\u0F67\u021E\x03\x02" + + "\x02\x02\u0F68\u0F69\x07O\x02\x02\u0F69\u0F6A\x07K\x02\x02\u0F6A\u0F6B" + + "\x07P\x02\x02\u0F6B\u0220\x03\x02\x02\x02\u0F6C\u0F6D\x07P\x02\x02\u0F6D" + + "\u0F6E\x07V\x02\x02\u0F6E\u0F6F\x07K\x02\x02\u0F6F\u0F70\x07N\x02\x02" + + "\u0F70\u0F71\x07G\x02\x02\u0F71\u0222\x03\x02\x02\x02\u0F72\u0F73\x07" + + "P\x02\x02\u0F73\u0F74\x07V\x02\x02\u0F74\u0F75\x07J\x02\x02\u0F75\u0F76" + + "\x07a\x02\x02\u0F76\u0F77\x07X\x02\x02\u0F77\u0F78\x07C\x02\x02\u0F78" + + "\u0F79\x07N\x02\x02\u0F79\u0F7A\x07W\x02\x02\u0F7A\u0F7B\x07G\x02\x02" + + "\u0F7B\u0224\x03\x02\x02\x02\u0F7C\u0F7D\x07R\x02\x02\u0F7D\u0F7E\x07" + + "G\x02\x02\u0F7E\u0F7F\x07T\x02\x02\u0F7F\u0F80\x07E\x02\x02\u0F80\u0F81" + + "\x07G\x02\x02\u0F81\u0F82\x07P\x02\x02\u0F82\u0F83\x07V\x02\x02\u0F83" + + "\u0F84\x07a\x02\x02\u0F84\u0F85\x07T\x02\x02\u0F85\u0F86\x07C\x02\x02" + + "\u0F86\u0F87\x07P\x02\x02\u0F87\u0F88\x07M\x02\x02\u0F88\u0226\x03\x02" + + "\x02\x02\u0F89\u0F8A\x07T\x02\x02\u0F8A\u0F8B\x07C\x02\x02\u0F8B\u0F8C" + + "\x07P\x02\x02\u0F8C\u0F8D\x07M\x02\x02\u0F8D\u0228\x03\x02\x02\x02\u0F8E" + + "\u0F8F\x07T\x02\x02\u0F8F\u0F90\x07Q\x02\x02\u0F90\u0F91\x07Y\x02\x02" + + "\u0F91\u0F92\x07a\x02\x02\u0F92\u0F93\x07P\x02\x02\u0F93\u0F94\x07W\x02" + + "\x02\u0F94\u0F95\x07O\x02\x02\u0F95\u0F96\x07D\x02\x02\u0F96\u0F97\x07" + + "G\x02\x02\u0F97\u0F98\x07T\x02\x02\u0F98\u022A\x03\x02\x02\x02\u0F99\u0F9A" + + "\x07U\x02\x02\u0F9A\u0F9B\x07V\x02\x02\u0F9B\u0F9C\x07F\x02\x02\u0F9C" + + "\u022C\x03\x02\x02\x02\u0F9D\u0F9E\x07U\x02\x02\u0F9E\u0F9F\x07V\x02\x02" + + "\u0F9F\u0FA0\x07F\x02\x02\u0FA0\u0FA1\x07F\x02\x02\u0FA1\u0FA2\x07G\x02" + + "\x02\u0FA2\u0FA3\x07X\x02\x02\u0FA3\u022E\x03\x02\x02\x02\u0FA4\u0FA5" + + "\x07U\x02\x02\u0FA5\u0FA6\x07V\x02\x02\u0FA6\u0FA7\x07F\x02\x02\u0FA7" + + "\u0FA8\x07F\x02\x02\u0FA8\u0FA9\x07G\x02\x02\u0FA9\u0FAA\x07X\x02\x02" + + "\u0FAA\u0FAB\x07a\x02\x02\u0FAB\u0FAC\x07R\x02\x02\u0FAC\u0FAD\x07Q\x02" + + "\x02\u0FAD\u0FAE\x07R\x02\x02\u0FAE\u0230\x03\x02\x02\x02\u0FAF\u0FB0" + + "\x07U\x02\x02\u0FB0\u0FB1\x07V\x02\x02\u0FB1\u0FB2\x07F\x02\x02\u0FB2" + + "\u0FB3\x07F\x02\x02\u0FB3\u0FB4\x07G\x02\x02\u0FB4\u0FB5\x07X\x02\x02" + + "\u0FB5\u0FB6\x07a\x02\x02\u0FB6\u0FB7\x07U\x02\x02\u0FB7\u0FB8\x07C\x02" + + "\x02\u0FB8\u0FB9\x07O\x02\x02\u0FB9\u0FBA\x07R\x02\x02\u0FBA\u0232\x03" + + "\x02\x02\x02\u0FBB\u0FBC\x07U\x02\x02\u0FBC\u0FBD\x07W\x02\x02\u0FBD\u0FBE" + + "\x07O\x02\x02\u0FBE\u0234\x03\x02\x02\x02\u0FBF\u0FC0\x07X\x02\x02\u0FC0" + + "\u0FC1\x07C\x02\x02\u0FC1\u0FC2\x07T\x02\x02\u0FC2\u0FC3\x07a\x02\x02" + + "\u0FC3\u0FC4\x07R\x02\x02\u0FC4\u0FC5\x07Q\x02\x02\u0FC5\u0FC6\x07R\x02" + + "\x02\u0FC6\u0236\x03\x02\x02\x02\u0FC7\u0FC8\x07X\x02\x02\u0FC8\u0FC9" + + "\x07C\x02\x02\u0FC9\u0FCA\x07T\x02\x02\u0FCA\u0FCB\x07a\x02\x02\u0FCB" + + "\u0FCC\x07U\x02\x02\u0FCC\u0FCD\x07C\x02\x02\u0FCD\u0FCE\x07O\x02\x02" + + "\u0FCE\u0FCF\x07R\x02\x02\u0FCF\u0238\x03\x02\x02\x02\u0FD0\u0FD1\x07" + + "X\x02\x02\u0FD1\u0FD2\x07C\x02\x02\u0FD2\u0FD3\x07T\x02\x02\u0FD3\u0FD4" + + "\x07K\x02\x02\u0FD4\u0FD5\x07C\x02\x02\u0FD5\u0FD6\x07P\x02\x02\u0FD6" + + "\u0FD7\x07E\x02\x02\u0FD7\u0FD8\x07G\x02\x02\u0FD8\u023A\x03\x02\x02\x02" + + "\u0FD9\u0FDA\x07E\x02\x02\u0FDA\u0FDB\x07W\x02\x02\u0FDB\u0FDC\x07T\x02" + + "\x02\u0FDC\u0FDD\x07T\x02\x02\u0FDD\u0FDE\x07G\x02\x02\u0FDE\u0FDF\x07" + + "P\x02\x02\u0FDF\u0FE0\x07V\x02\x02\u0FE0\u0FE1\x07a\x02\x02\u0FE1\u0FE2" + + "\x07F\x02\x02\u0FE2\u0FE3\x07C\x02\x02\u0FE3\u0FE4\x07V\x02\x02\u0FE4" + + "\u0FE5\x07G\x02\x02\u0FE5\u023C\x03\x02\x02\x02\u0FE6\u0FE7\x07E\x02\x02" + + "\u0FE7\u0FE8\x07W\x02\x02\u0FE8\u0FE9\x07T\x02\x02\u0FE9\u0FEA\x07T\x02" + + "\x02\u0FEA\u0FEB\x07G\x02\x02\u0FEB\u0FEC\x07P\x02\x02\u0FEC\u0FED\x07" + + "V\x02\x02\u0FED\u0FEE\x07a\x02\x02\u0FEE\u0FEF\x07V\x02\x02\u0FEF\u0FF0" + + "\x07K\x02\x02\u0FF0\u0FF1\x07O\x02\x02\u0FF1\u0FF2\x07G\x02\x02\u0FF2" + + "\u023E\x03\x02\x02\x02\u0FF3\u0FF4\x07E\x02\x02\u0FF4\u0FF5\x07W\x02\x02" + + "\u0FF5\u0FF6\x07T\x02\x02\u0FF6\u0FF7\x07T\x02\x02\u0FF7\u0FF8\x07G\x02" + + "\x02\u0FF8\u0FF9\x07P\x02\x02\u0FF9\u0FFA\x07V\x02\x02\u0FFA\u0FFB\x07" + + "a\x02\x02\u0FFB\u0FFC\x07V\x02\x02\u0FFC\u0FFD\x07K\x02\x02\u0FFD\u0FFE" + + "\x07O\x02\x02\u0FFE\u0FFF\x07G\x02\x02\u0FFF\u1000\x07U\x02\x02\u1000" + + "\u1001\x07V\x02\x02\u1001\u1002\x07C\x02\x02\u1002\u1003\x07O\x02\x02" + + "\u1003\u1004\x07R\x02\x02\u1004\u0240\x03\x02\x02\x02\u1005\u1006\x07" + + "N\x02\x02\u1006\u1007\x07Q\x02\x02\u1007\u1008\x07E\x02\x02\u1008\u1009" + + "\x07C\x02\x02\u1009\u100A\x07N\x02\x02\u100A\u100B\x07V\x02\x02\u100B" + + "\u100C\x07K\x02\x02\u100C\u100D\x07O\x02\x02\u100D\u100E\x07G\x02\x02" + + "\u100E\u0242\x03\x02\x02\x02\u100F\u1010\x07E\x02\x02\u1010\u1011\x07" + + "W\x02\x02\u1011\u1012\x07T\x02\x02\u1012\u1013\x07F\x02\x02\u1013\u1014" + + "\x07C\x02\x02\u1014\u1015\x07V\x02\x02\u1015\u1016\x07G\x02\x02\u1016" + + "\u0244\x03\x02\x02\x02\u1017\u1018\x07E\x02\x02\u1018\u1019\x07W\x02\x02" + + "\u1019\u101A\x07T\x02\x02\u101A\u101B\x07V\x02\x02\u101B\u101C\x07K\x02" + + "\x02\u101C\u101D\x07O\x02\x02\u101D\u101E\x07G\x02\x02\u101E\u0246\x03" + + "\x02\x02\x02\u101F\u1020\x07F\x02\x02\u1020\u1021\x07C\x02\x02\u1021\u1022" + + "\x07V\x02\x02\u1022\u1023\x07G\x02\x02\u1023\u1024\x07a\x02\x02\u1024" + + "\u1025\x07C\x02\x02\u1025\u1026\x07F\x02\x02\u1026\u1027\x07F\x02\x02" + + "\u1027\u0248\x03\x02\x02\x02\u1028\u1029\x07F\x02\x02\u1029\u102A\x07" + + "C\x02\x02\u102A\u102B\x07V\x02\x02\u102B\u102C\x07G\x02\x02\u102C\u102D" + + "\x07a\x02\x02\u102D\u102E\x07U\x02\x02\u102E\u102F\x07W\x02\x02\u102F" + + "\u1030\x07D\x02\x02\u1030\u024A\x03\x02\x02\x02\u1031\u1032\x07G\x02\x02" + + "\u1032\u1033\x07Z\x02\x02\u1033\u1034\x07V\x02\x02\u1034\u1035\x07T\x02" + + "\x02\u1035\u1036\x07C\x02\x02\u1036\u1037\x07E\x02\x02\u1037\u1038\x07" + + "V\x02\x02\u1038\u024C\x03\x02\x02\x02\u1039\u103A\x07N\x02\x02\u103A\u103B" + + "\x07Q\x02\x02\u103B\u103C\x07E\x02\x02\u103C\u103D\x07C\x02\x02\u103D" + + "\u103E\x07N\x02\x02\u103E\u103F\x07V\x02\x02\u103F\u1040\x07K\x02\x02" + + "\u1040\u1041\x07O\x02\x02\u1041\u1042\x07G\x02\x02\u1042\u1043\x07U\x02" + + "\x02\u1043\u1044\x07V\x02\x02\u1044\u1045\x07C\x02\x02\u1045\u1046\x07" + + "O\x02\x02\u1046\u1047\x07R\x02\x02\u1047\u024E\x03\x02\x02\x02\u1048\u1049" + + "\x07P\x02\x02\u1049\u104A\x07Q\x02\x02\u104A\u104B\x07Y\x02\x02\u104B" + + "\u0250\x03\x02\x02\x02\u104C\u104D\x07R\x02\x02\u104D\u104E\x07Q\x02\x02" + + "\u104E\u104F\x07U\x02\x02\u104F\u1050\x07K\x02\x02\u1050\u1051\x07V\x02" + + "\x02\u1051\u1052\x07K\x02\x02\u1052\u1053\x07Q\x02\x02\u1053\u1054\x07" + + "P\x02\x02\u1054\u0252\x03\x02\x02\x02\u1055\u1056\x07U\x02\x02\u1056\u1057" + + "\x07W\x02\x02\u1057\u1058\x07D\x02\x02\u1058\u1059\x07U\x02\x02\u1059" + + "\u105A\x07V\x02\x02\u105A\u105B\x07T\x02\x02\u105B\u0254\x03\x02\x02\x02" + + "\u105C\u105D\x07U\x02\x02\u105D\u105E\x07W\x02\x02\u105E\u105F\x07D\x02" + + "\x02\u105F\u1060\x07U\x02\x02\u1060\u1061\x07V\x02\x02\u1061\u1062\x07" + + "T\x02\x02\u1062\u1063\x07K\x02\x02\u1063\u1064\x07P\x02\x02\u1064\u1065" + + "\x07I\x02\x02\u1065\u0256\x03\x02\x02\x02\u1066\u1067\x07U\x02\x02\u1067" + + "\u1068\x07[\x02\x02\u1068\u1069\x07U\x02\x02\u1069\u106A\x07F\x02\x02" + + "\u106A\u106B\x07C\x02\x02\u106B\u106C\x07V\x02\x02\u106C\u106D\x07G\x02" + + "\x02\u106D\u0258\x03\x02\x02\x02\u106E\u106F\x07V\x02\x02\u106F\u1070" + + "\x07T\x02\x02\u1070\u1071\x07K\x02\x02\u1071\u1072\x07O\x02\x02\u1072" + + "\u025A\x03\x02\x02\x02\u1073\u1074\x07W\x02\x02\u1074\u1075\x07V\x02\x02" + + "\u1075\u1076\x07E\x02\x02\u1076\u1077\x07a\x02\x02\u1077\u1078\x07F\x02" + + "\x02\u1078\u1079\x07C\x02\x02\u1079\u107A\x07V\x02\x02\u107A\u107B\x07" + + "G\x02\x02\u107B\u025C\x03\x02\x02\x02\u107C\u107D\x07W\x02\x02\u107D\u107E" + + "\x07V\x02\x02\u107E\u107F\x07E\x02\x02\u107F\u1080\x07a\x02\x02\u1080" + + "\u1081\x07V\x02\x02\u1081\u1082\x07K\x02\x02\u1082\u1083\x07O\x02\x02" + + "\u1083\u1084\x07G\x02\x02\u1084\u025E\x03\x02\x02\x02\u1085\u1086\x07" + + "W\x02\x02\u1086\u1087\x07V\x02\x02\u1087\u1088\x07E\x02\x02\u1088\u1089" + + "\x07a\x02\x02\u1089\u108A\x07V\x02\x02\u108A\u108B\x07K\x02\x02\u108B" + + "\u108C\x07O\x02\x02\u108C\u108D\x07G\x02\x02\u108D\u108E\x07U\x02\x02" + + "\u108E\u108F\x07V\x02\x02\u108F\u1090\x07C\x02\x02\u1090\u1091\x07O\x02" + + "\x02\u1091\u1092\x07R\x02\x02\u1092\u0260\x03\x02\x02\x02\u1093\u1094" + + "\x07C\x02\x02\u1094\u1095\x07E\x02\x02\u1095\u1096\x07E\x02\x02\u1096" + + "\u1097\x07Q\x02\x02\u1097\u1098\x07W\x02\x02\u1098\u1099\x07P\x02\x02" + + "\u1099\u109A\x07V\x02\x02\u109A\u0262\x03\x02\x02\x02\u109B\u109C\x07" + + "C\x02\x02\u109C\u109D\x07E\x02\x02\u109D\u109E\x07V\x02\x02\u109E\u109F" + + "\x07K\x02\x02\u109F\u10A0\x07Q\x02\x02\u10A0\u10A1\x07P\x02\x02\u10A1" + + "\u0264\x03\x02\x02\x02\u10A2\u10A3\x07C\x02\x02\u10A3\u10A4\x07H\x02\x02" + + "\u10A4\u10A5\x07V\x02\x02\u10A5\u10A6\x07G\x02\x02\u10A6\u10A7\x07T\x02" + + "\x02\u10A7\u0266\x03\x02\x02\x02\u10A8\u10A9\x07C\x02\x02\u10A9\u10AA" + + "\x07I\x02\x02\u10AA\u10AB\x07I\x02\x02\u10AB\u10AC\x07T\x02\x02\u10AC" + + "\u10AD\x07G\x02\x02\u10AD\u10AE\x07I\x02\x02\u10AE\u10AF\x07C\x02\x02" + + "\u10AF\u10B0\x07V\x02\x02\u10B0\u10B1\x07G\x02\x02\u10B1\u0268\x03\x02" + + "\x02\x02\u10B2\u10B3\x07C\x02\x02\u10B3\u10B4\x07N\x02\x02\u10B4\u10B5" + + "\x07I\x02\x02\u10B5\u10B6\x07Q\x02\x02\u10B6\u10B7\x07T\x02\x02\u10B7" + + "\u10B8\x07K\x02\x02\u10B8\u10B9\x07V\x02\x02\u10B9\u10BA\x07J\x02\x02" + + "\u10BA\u10BB\x07O\x02\x02\u10BB\u026A\x03\x02\x02\x02\u10BC\u10BD\x07" + + "C\x02\x02\u10BD\u10BE\x07P\x02\x02\u10BE\u10BF\x07[\x02\x02\u10BF\u026C" + + "\x03\x02\x02\x02\u10C0\u10C1\x07C\x02\x02\u10C1\u10C2\x07U\x02\x02\u10C2" + + "\u10C3\x07U\x02\x02\u10C3\u10C4\x07K\x02\x02\u10C4\u10C5\x07I\x02\x02" + + "\u10C5\u10C6\x07P\x02\x02\u10C6\u10C7\x07a\x02\x02\u10C7\u10C8\x07I\x02" + + "\x02\u10C8\u10C9\x07V\x02\x02\u10C9\u10CA\x07K\x02\x02\u10CA\u10CB\x07" + + "F\x02\x02\u10CB\u10CC\x07U\x02\x02\u10CC\u10CD\x07a\x02\x02\u10CD\u10CE" + + "\x07V\x02\x02\u10CE\u10CF\x07Q\x02\x02\u10CF\u10D0\x07a\x02\x02\u10D0" + + "\u10D1\x07C\x02\x02\u10D1\u10D2\x07P\x02\x02\u10D2\u10D3\x07Q\x02\x02" + + "\u10D3\u10D4\x07P\x02\x02\u10D4\u10D5\x07[\x02\x02\u10D5\u10D6\x07O\x02" + + "\x02\u10D6\u10D7\x07Q\x02\x02\u10D7\u10D8\x07W\x02\x02\u10D8\u10D9\x07" + + "U\x02\x02\u10D9\u10DA\x07a\x02\x02\u10DA\u10DB\x07V\x02\x02\u10DB\u10DC" + + "\x07T\x02\x02\u10DC\u10DD\x07C\x02\x02\u10DD\u10DE\x07P\x02\x02\u10DE" + + "\u10DF\x07U\x02\x02\u10DF\u10E0\x07C\x02\x02\u10E0\u10E1\x07E\x02\x02" + + "\u10E1\u10E2\x07V\x02\x02\u10E2\u10E3\x07K\x02\x02\u10E3\u10E4\x07Q\x02" + + "\x02\u10E4\u10E5\x07P\x02\x02\u10E5\u10E6\x07U\x02\x02\u10E6\u026E\x03" + + "\x02\x02\x02\u10E7\u10E8\x07C\x02\x02\u10E8\u10E9\x07V\x02\x02\u10E9\u0270" + + "\x03\x02\x02\x02\u10EA\u10EB\x07C\x02\x02\u10EB\u10EC\x07W\x02\x02\u10EC" + + "\u10ED\x07V\x02\x02\u10ED\u10EE\x07J\x02\x02\u10EE\u10EF\x07Q\x02\x02" + + "\u10EF\u10F0\x07T\x02\x02\u10F0\u10F1\x07U\x02\x02\u10F1\u0272\x03\x02" + + "\x02\x02\u10F2\u10F3\x07C\x02\x02\u10F3\u10F4\x07W\x02\x02\u10F4\u10F5" + + "\x07V\x02\x02\u10F5\u10F6\x07Q\x02\x02\u10F6\u10F7\x07E\x02\x02\u10F7" + + "\u10F8\x07Q\x02\x02\u10F8\u10F9\x07O\x02\x02\u10F9\u10FA\x07O\x02\x02" + + "\u10FA\u10FB\x07K\x02\x02\u10FB\u10FC\x07V\x02\x02\u10FC\u0274\x03\x02" + + "\x02\x02\u10FD\u10FE\x07C\x02\x02\u10FE\u10FF\x07W\x02\x02\u10FF\u1100" + + "\x07V\x02\x02\u1100\u1101\x07Q\x02\x02\u1101\u1102\x07G\x02\x02\u1102" + + "\u1103\x07Z\x02\x02\u1103\u1104\x07V\x02\x02\u1104\u1105\x07G\x02\x02" + + "\u1105\u1106\x07P\x02\x02\u1106\u1107\x07F\x02\x02\u1107\u1108\x07a\x02" + + "\x02\u1108\u1109\x07U\x02\x02\u1109\u110A\x07K\x02\x02\u110A\u110B\x07" + + "\\\x02\x02\u110B\u110C\x07G\x02\x02\u110C\u0276\x03\x02\x02\x02\u110D" + + "\u110E\x07C\x02\x02\u110E\u110F\x07W\x02\x02\u110F\u1110\x07V\x02\x02" + + "\u1110\u1111\x07Q\x02\x02\u1111\u1112\x07a\x02\x02\u1112\u1113\x07K\x02" + + "\x02"; + private static readonly _serializedATNSegment10: string = + "\u1113\u1114\x07P\x02\x02\u1114\u1115\x07E\x02\x02\u1115\u1116\x07T\x02" + + "\x02\u1116\u1117\x07G\x02\x02\u1117\u1118\x07O\x02\x02\u1118\u1119\x07" + + "G\x02\x02\u1119\u111A\x07P\x02\x02\u111A\u111B\x07V\x02\x02\u111B\u0278" + + "\x03\x02\x02\x02\u111C\u111D\x07C\x02\x02\u111D\u111E\x07X\x02\x02\u111E" + + "\u111F\x07I\x02\x02\u111F\u1120\x07a\x02\x02\u1120\u1121\x07T\x02\x02" + + "\u1121\u1122\x07Q\x02\x02\u1122\u1123\x07Y\x02\x02\u1123\u1124\x07a\x02" + + "\x02\u1124\u1125\x07N\x02\x02\u1125\u1126\x07G\x02\x02\u1126\u1127\x07" + + "P\x02\x02\u1127\u1128\x07I\x02\x02\u1128\u1129\x07V\x02\x02\u1129\u112A" + + "\x07J\x02\x02\u112A\u027A\x03\x02\x02\x02\u112B\u112C\x07D\x02\x02\u112C" + + "\u112D\x07G\x02\x02\u112D\u112E\x07I\x02\x02\u112E\u112F\x07K\x02\x02" + + "\u112F\u1130\x07P\x02\x02\u1130\u027C\x03\x02\x02\x02\u1131\u1132\x07" + + "D\x02\x02\u1132\u1133\x07K\x02\x02\u1133\u1134\x07P\x02\x02\u1134\u1135" + + "\x07N\x02\x02\u1135\u1136\x07Q\x02\x02\u1136\u1137\x07I\x02\x02\u1137" + + "\u027E\x03\x02\x02\x02\u1138\u1139\x07D\x02\x02\u1139\u113A\x07K\x02\x02" + + "\u113A\u113B\x07V\x02\x02\u113B\u0280\x03\x02\x02\x02\u113C\u113D\x07" + + "D\x02\x02\u113D\u113E\x07N\x02\x02\u113E\u113F\x07Q\x02\x02\u113F\u1140" + + "\x07E\x02\x02\u1140\u1141\x07M\x02\x02\u1141\u0282\x03\x02\x02\x02\u1142" + + "\u1143\x07D\x02\x02\u1143\u1144\x07Q\x02\x02\u1144\u1145\x07Q\x02\x02" + + "\u1145\u1146\x07N\x02\x02\u1146\u0284\x03\x02\x02\x02\u1147\u1148\x07" + + "D\x02\x02\u1148\u1149\x07Q\x02\x02\u1149\u114A\x07Q\x02\x02\u114A\u114B" + + "\x07N\x02\x02\u114B\u114C\x07G\x02\x02\u114C\u114D\x07C\x02\x02\u114D" + + "\u114E\x07P\x02\x02\u114E\u0286\x03\x02\x02\x02\u114F\u1150\x07D\x02\x02" + + "\u1150\u1151\x07V\x02\x02\u1151\u1152\x07T\x02\x02\u1152\u1153\x07G\x02" + + "\x02\u1153\u1154\x07G\x02\x02\u1154\u0288\x03\x02\x02\x02\u1155\u1156" + + "\x07E\x02\x02\u1156\u1157\x07C\x02\x02\u1157\u1158\x07E\x02\x02\u1158" + + "\u1159\x07J\x02\x02\u1159\u115A\x07G\x02\x02\u115A\u028A\x03\x02\x02\x02" + + "\u115B\u115C\x07E\x02\x02\u115C\u115D\x07C\x02\x02\u115D\u115E\x07U\x02" + + "\x02\u115E\u115F\x07E\x02\x02\u115F\u1160\x07C\x02\x02\u1160\u1161\x07" + + "F\x02\x02\u1161\u1162\x07G\x02\x02\u1162\u1163\x07F\x02\x02\u1163\u028C" + + "\x03\x02\x02\x02\u1164\u1165\x07E\x02\x02\u1165\u1166\x07J\x02\x02\u1166" + + "\u1167\x07C\x02\x02\u1167\u1168\x07K\x02\x02\u1168\u1169\x07P\x02\x02" + + "\u1169\u028E\x03\x02\x02\x02\u116A\u116B\x07E\x02\x02\u116B\u116C\x07" + + "J\x02\x02\u116C\u116D\x07C\x02\x02\u116D\u116E\x07P\x02\x02\u116E\u116F" + + "\x07I\x02\x02\u116F\u1170\x07G\x02\x02\u1170\u1171\x07F\x02\x02\u1171" + + "\u0290\x03\x02\x02\x02\u1172\u1173\x07E\x02\x02\u1173\u1174\x07J\x02\x02" + + "\u1174\u1175\x07C\x02\x02\u1175\u1176\x07P\x02\x02\u1176\u1177\x07P\x02" + + "\x02\u1177\u1178\x07G\x02\x02\u1178\u1179\x07N\x02\x02\u1179\u0292\x03" + + "\x02\x02\x02\u117A\u117B\x07E\x02\x02\u117B\u117C\x07J\x02\x02\u117C\u117D" + + "\x07G\x02\x02\u117D\u117E\x07E\x02\x02\u117E\u117F\x07M\x02\x02\u117F" + + "\u1180\x07U\x02\x02\u1180\u1181\x07W\x02\x02\u1181\u1182\x07O\x02\x02" + + "\u1182\u0294\x03\x02\x02\x02\u1183\u1184\x07E\x02\x02\u1184\u1185\x07" + + "J\x02\x02\u1185\u1186\x07C\x02\x02\u1186\u1187\x07N\x02\x02\u1187\u1188" + + "\x07N\x02\x02\u1188\u1189\x07G\x02\x02\u1189\u118A\x07P\x02\x02\u118A" + + "\u118B\x07I\x02\x02\u118B\u118C\x07G\x02\x02\u118C\u118D\x07a\x02\x02" + + "\u118D\u118E\x07T\x02\x02\u118E\u118F\x07G\x02\x02\u118F\u1190\x07U\x02" + + "\x02\u1190\u1191\x07R\x02\x02\u1191\u1192\x07Q\x02\x02\u1192\u1193\x07" + + "P\x02\x02\u1193\u1194\x07U\x02\x02\u1194\u1195\x07G\x02\x02\u1195\u0296" + + "\x03\x02\x02\x02\u1196\u1197\x07E\x02\x02\u1197\u1198\x07K\x02\x02\u1198" + + "\u1199\x07R\x02\x02\u1199\u119A\x07J\x02\x02\u119A\u119B\x07G\x02\x02" + + "\u119B\u119C\x07T\x02\x02\u119C\u0298\x03\x02\x02\x02\u119D\u119E\x07" + + "E\x02\x02\u119E\u119F\x07N\x02\x02\u119F\u11A0\x07C\x02\x02\u11A0\u11A1" + + "\x07U\x02\x02\u11A1\u11A2\x07U\x02\x02\u11A2\u11A3\x07a\x02\x02\u11A3" + + "\u11A4\x07Q\x02\x02\u11A4\u11A5\x07T\x02\x02\u11A5\u11A6\x07K\x02\x02" + + "\u11A6\u11A7\x07I\x02\x02\u11A7\u11A8\x07K\x02\x02\u11A8\u11A9\x07P\x02" + + "\x02\u11A9\u029A\x03\x02\x02\x02\u11AA\u11AB\x07E\x02\x02\u11AB\u11AC" + + "\x07N\x02\x02\u11AC\u11AD\x07K\x02\x02\u11AD\u11AE\x07G\x02\x02\u11AE" + + "\u11AF\x07P\x02\x02\u11AF\u11B0\x07V\x02\x02\u11B0\u029C\x03\x02\x02\x02" + + "\u11B1\u11B2\x07E\x02\x02\u11B2\u11B3\x07N\x02\x02\u11B3\u11B4\x07Q\x02" + + "\x02\u11B4\u11B5\x07U\x02\x02\u11B5\u11B6\x07G\x02\x02\u11B6\u029E\x03" + + "\x02\x02\x02\u11B7\u11B8\x07E\x02\x02\u11B8\u11B9\x07Q\x02\x02\u11B9\u11BA" + + "\x07C\x02\x02\u11BA\u11BB\x07N\x02\x02\u11BB\u11BC\x07G\x02\x02\u11BC" + + "\u11BD\x07U\x02\x02\u11BD\u11BE\x07E\x02\x02\u11BE\u11BF\x07G\x02\x02" + + "\u11BF\u02A0\x03\x02\x02\x02\u11C0\u11C1\x07E\x02\x02\u11C1\u11C2\x07" + + "Q\x02\x02\u11C2\u11C3\x07F\x02\x02\u11C3\u11C4\x07G\x02\x02\u11C4\u02A2" + + "\x03\x02\x02\x02\u11C5\u11C6\x07E\x02\x02\u11C6\u11C7\x07Q\x02\x02\u11C7" + + "\u11C8\x07N\x02\x02\u11C8\u11C9\x07W\x02\x02\u11C9\u11CA\x07O\x02\x02" + + "\u11CA\u11CB\x07P\x02\x02\u11CB\u11CC\x07U\x02\x02\u11CC\u02A4\x03\x02" + + "\x02\x02\u11CD\u11CE\x07E\x02\x02\u11CE\u11CF\x07Q\x02\x02\u11CF\u11D0" + + "\x07N\x02\x02\u11D0\u11D1\x07W\x02\x02\u11D1\u11D2\x07O\x02\x02\u11D2" + + "\u11D3\x07P\x02\x02\u11D3\u11D4\x07a\x02\x02\u11D4\u11D5\x07H\x02\x02" + + "\u11D5\u11D6\x07Q\x02\x02\u11D6\u11D7\x07T\x02\x02\u11D7\u11D8\x07O\x02" + + "\x02\u11D8\u11D9\x07C\x02\x02\u11D9\u11DA\x07V\x02\x02\u11DA\u02A6\x03" + + "\x02\x02\x02\u11DB\u11DC\x07E\x02\x02\u11DC\u11DD\x07Q\x02\x02\u11DD\u11DE" + + "\x07N\x02\x02\u11DE\u11DF\x07W\x02\x02\u11DF\u11E0\x07O\x02\x02\u11E0" + + "\u11E1\x07P\x02\x02\u11E1\u11E2\x07a\x02\x02\u11E2\u11E3\x07P\x02\x02" + + "\u11E3\u11E4\x07C\x02\x02\u11E4\u11E5\x07O\x02\x02\u11E5\u11E6\x07G\x02" + + "\x02\u11E6\u02A8\x03\x02\x02\x02\u11E7\u11E8\x07E\x02\x02\u11E8\u11E9" + + "\x07Q\x02\x02\u11E9\u11EA\x07O\x02\x02\u11EA\u11EB\x07O\x02\x02\u11EB" + + "\u11EC\x07G\x02\x02\u11EC\u11ED\x07P\x02\x02\u11ED\u11EE\x07V\x02\x02" + + "\u11EE\u02AA\x03\x02\x02\x02\u11EF\u11F0\x07E\x02\x02\u11F0\u11F1\x07" + + "Q\x02\x02\u11F1\u11F2\x07O\x02\x02\u11F2\u11F3\x07O\x02\x02\u11F3\u11F4" + + "\x07K\x02\x02\u11F4\u11F5\x07V\x02\x02\u11F5\u02AC\x03\x02\x02\x02\u11F6" + + "\u11F7\x07E\x02\x02\u11F7\u11F8\x07Q\x02\x02\u11F8\u11F9\x07O\x02\x02" + + "\u11F9\u11FA\x07R\x02\x02\u11FA\u11FB\x07C\x02\x02\u11FB\u11FC\x07E\x02" + + "\x02\u11FC\u11FD\x07V\x02\x02\u11FD\u02AE\x03\x02\x02\x02\u11FE\u11FF" + + "\x07E\x02\x02\u11FF\u1200\x07Q\x02\x02\u1200\u1201\x07O\x02\x02\u1201" + + "\u1202\x07R\x02\x02\u1202\u1203\x07N\x02\x02\u1203\u1204\x07G\x02\x02" + + "\u1204\u1205\x07V\x02\x02\u1205\u1206\x07K\x02\x02\u1206\u1207\x07Q\x02" + + "\x02\u1207\u1208\x07P\x02\x02\u1208\u02B0\x03\x02\x02\x02\u1209\u120A" + + "\x07E\x02\x02\u120A\u120B\x07Q\x02\x02\u120B\u120C\x07O\x02\x02\u120C" + + "\u120D\x07R\x02\x02\u120D\u120E\x07Q\x02\x02\u120E\u120F\x07P\x02\x02" + + "\u120F\u1210\x07G\x02\x02\u1210\u1211\x07P\x02\x02\u1211\u1212\x07V\x02" + + "\x02\u1212\u02B2\x03\x02\x02\x02\u1213\u1214\x07E\x02\x02\u1214\u1215" + + "\x07Q\x02\x02\u1215\u1216\x07O\x02\x02\u1216\u1217\x07R\x02\x02\u1217" + + "\u1218\x07T\x02\x02\u1218\u1219\x07G\x02\x02\u1219\u121A\x07U\x02\x02" + + "\u121A\u121B\x07U\x02\x02\u121B\u121C\x07G\x02\x02\u121C\u121D\x07F\x02" + + "\x02\u121D\u02B4\x03\x02\x02\x02\u121E\u121F\x07E\x02\x02\u121F\u1220" + + "\x07Q\x02\x02\u1220\u1221\x07O\x02\x02\u1221\u1222\x07R\x02\x02\u1222" + + "\u1223\x07T\x02\x02\u1223\u1224\x07G\x02\x02\u1224\u1225\x07U\x02\x02" + + "\u1225\u1226\x07U\x02\x02\u1226\u1227\x07K\x02\x02\u1227\u1228\x07Q\x02" + + "\x02\u1228\u1229\x07P\x02\x02\u1229\u02B6\x03\x02\x02\x02\u122A\u122B" + + "\x07E\x02\x02\u122B\u122C\x07Q\x02\x02\u122C\u122D\x07P\x02\x02\u122D" + + "\u122E\x07E\x02\x02\u122E\u122F\x07W\x02\x02\u122F\u1230\x07T\x02\x02" + + "\u1230\u1231\x07T\x02\x02\u1231\u1232\x07G\x02\x02\u1232\u1233\x07P\x02" + + "\x02\u1233\u1234\x07V\x02\x02\u1234\u02B8\x03\x02\x02\x02\u1235\u1236" + + "\x07E\x02\x02\u1236\u1237\x07Q\x02\x02\u1237\u1238\x07P\x02\x02\u1238" + + "\u1239\x07P\x02\x02\u1239\u123A\x07G\x02\x02\u123A\u123B\x07E\x02\x02" + + "\u123B\u123C\x07V\x02\x02\u123C\u02BA\x03\x02\x02\x02\u123D\u123E\x07" + + "E\x02\x02\u123E\u123F\x07Q\x02\x02\u123F\u1240\x07P\x02\x02\u1240\u1241" + + "\x07P\x02\x02\u1241\u1242\x07G\x02\x02\u1242\u1243\x07E\x02\x02\u1243" + + "\u1244\x07V\x02\x02\u1244\u1245\x07K\x02\x02\u1245\u1246\x07Q\x02\x02" + + "\u1246\u1247\x07P\x02\x02\u1247\u02BC\x03\x02\x02\x02\u1248\u1249\x07" + + "E\x02\x02\u1249\u124A\x07Q\x02\x02\u124A\u124B\x07P\x02\x02\u124B\u124C" + + "\x07U\x02\x02\u124C\u124D\x07K\x02\x02\u124D\u124E\x07U\x02\x02\u124E" + + "\u124F\x07V\x02\x02\u124F\u1250\x07G\x02\x02\u1250\u1251\x07P\x02\x02" + + "\u1251\u1252\x07V\x02\x02\u1252\u02BE\x03\x02\x02\x02\u1253\u1254\x07" + + "E\x02\x02\u1254\u1255\x07Q\x02\x02\u1255\u1256\x07P\x02\x02\u1256\u1257" + + "\x07U\x02\x02\u1257\u1258\x07V\x02\x02\u1258\u1259\x07T\x02\x02\u1259" + + "\u125A\x07C\x02\x02\u125A\u125B\x07K\x02\x02\u125B\u125C\x07P\x02\x02" + + "\u125C\u125D\x07V\x02\x02\u125D\u125E\x07a\x02\x02\u125E\u125F\x07E\x02" + + "\x02\u125F\u1260\x07C\x02\x02\u1260\u1261\x07V\x02\x02\u1261\u1262\x07" + + "C\x02\x02\u1262\u1263\x07N\x02\x02\u1263\u1264\x07Q\x02\x02\u1264\u1265" + + "\x07I\x02\x02\u1265\u02C0\x03\x02\x02\x02\u1266\u1267\x07E\x02\x02\u1267" + + "\u1268\x07Q\x02\x02\u1268\u1269\x07P\x02\x02\u1269\u126A\x07U\x02\x02" + + "\u126A\u126B\x07V\x02\x02\u126B\u126C\x07T\x02\x02\u126C\u126D\x07C\x02" + + "\x02\u126D\u126E\x07K\x02\x02\u126E\u126F\x07P\x02\x02\u126F\u1270\x07" + + "V\x02\x02\u1270\u1271\x07a\x02\x02\u1271\u1272\x07U\x02\x02\u1272\u1273" + + "\x07E\x02\x02\u1273\u1274\x07J\x02\x02\u1274\u1275\x07G\x02\x02\u1275" + + "\u1276\x07O\x02\x02\u1276\u1277\x07C\x02\x02\u1277\u02C2\x03\x02\x02\x02" + + "\u1278\u1279\x07E\x02\x02\u1279\u127A\x07Q\x02\x02\u127A\u127B\x07P\x02" + + "\x02\u127B\u127C\x07U\x02\x02\u127C\u127D\x07V\x02\x02\u127D\u127E\x07" + + "T\x02\x02\u127E\u127F\x07C\x02\x02\u127F\u1280\x07K\x02\x02\u1280\u1281" + + "\x07P\x02\x02\u1281\u1282\x07V\x02\x02\u1282\u1283\x07a\x02\x02\u1283" + + "\u1284\x07P\x02\x02\u1284\u1285\x07C\x02\x02\u1285\u1286\x07O\x02\x02" + + "\u1286\u1287\x07G\x02\x02\u1287\u02C4\x03\x02\x02\x02\u1288\u1289\x07" + + "E\x02\x02\u1289\u128A\x07Q\x02\x02\u128A\u128B\x07P\x02\x02\u128B\u128C" + + "\x07V\x02\x02\u128C\u128D\x07C\x02\x02\u128D\u128E\x07K\x02\x02\u128E" + + "\u128F\x07P\x02\x02\u128F\u1290\x07U\x02\x02\u1290\u02C6\x03\x02\x02\x02" + + "\u1291\u1292\x07E\x02\x02\u1292\u1293\x07Q\x02\x02\u1293\u1294\x07P\x02" + + "\x02\u1294\u1295\x07V\x02\x02\u1295\u1296\x07G\x02\x02\u1296\u1297\x07" + + "Z\x02\x02\u1297\u1298\x07V\x02\x02\u1298\u02C8\x03\x02\x02\x02\u1299\u129A" + + "\x07E\x02\x02\u129A\u129B\x07Q\x02\x02\u129B\u129C\x07P\x02\x02\u129C" + + "\u129D\x07V\x02\x02\u129D\u129E\x07T\x02\x02\u129E\u129F\x07K\x02\x02" + + "\u129F\u12A0\x07D\x02\x02\u12A0\u12A1\x07W\x02\x02\u12A1\u12A2\x07V\x02" + + "\x02\u12A2\u12A3\x07Q\x02\x02\u12A3\u12A4\x07T\x02\x02\u12A4\u12A5\x07" + + "U\x02\x02\u12A5\u02CA\x03\x02\x02\x02\u12A6\u12A7\x07E\x02\x02\u12A7\u12A8" + + "\x07Q\x02\x02\u12A8\u12A9\x07R\x02\x02\u12A9\u12AA\x07[\x02\x02\u12AA" + + "\u02CC\x03\x02\x02\x02\u12AB\u12AC\x07E\x02\x02\u12AC\u12AD\x07R\x02\x02" + + "\u12AD\u12AE\x07W\x02\x02\u12AE\u02CE\x03\x02\x02\x02\u12AF\u12B0\x07" + + "E\x02\x02\u12B0\u12B1\x07W\x02\x02\u12B1\u12B2\x07T\x02\x02\u12B2\u12B3" + + "\x07U\x02\x02\u12B3\u12B4\x07Q\x02\x02\u12B4\u12B5\x07T\x02\x02\u12B5" + + "\u12B6\x07a\x02\x02\u12B6\u12B7\x07P\x02\x02\u12B7\u12B8\x07C\x02\x02" + + "\u12B8\u12B9\x07O\x02\x02\u12B9\u12BA\x07G\x02\x02\u12BA\u02D0\x03\x02" + + "\x02\x02\u12BB\u12BC\x07F\x02\x02\u12BC\u12BD\x07C\x02\x02\u12BD\u12BE" + + "\x07V\x02\x02\u12BE\u12BF\x07C\x02\x02\u12BF\u02D2\x03\x02\x02\x02\u12C0" + + "\u12C1\x07F\x02\x02\u12C1\u12C2\x07C\x02\x02\u12C2\u12C3\x07V\x02\x02" + + "\u12C3\u12C4\x07C\x02\x02\u12C4\u12C5\x07H\x02\x02\u12C5\u12C6\x07K\x02" + + "\x02\u12C6\u12C7\x07N\x02\x02\u12C7\u12C8\x07G\x02\x02\u12C8\u02D4\x03" + + "\x02\x02\x02\u12C9\u12CA\x07F\x02\x02\u12CA\u12CB\x07G\x02\x02\u12CB\u12CC" + + "\x07C\x02\x02\u12CC\u12CD\x07N\x02\x02\u12CD\u12CE\x07N\x02\x02\u12CE" + + "\u12CF\x07Q\x02\x02\u12CF\u12D0\x07E\x02\x02\u12D0\u12D1\x07C\x02\x02" + + "\u12D1\u12D2\x07V\x02\x02\u12D2\u12D3\x07G\x02\x02\u12D3\u02D6\x03\x02" + + "\x02\x02\u12D4\u12D5\x07F\x02\x02\u12D5\u12D6\x07G\x02\x02\u12D6\u12D7" + + "\x07H\x02\x02\u12D7\u12D8\x07C\x02\x02\u12D8\u12D9\x07W\x02\x02\u12D9" + + "\u12DA\x07N\x02\x02\u12DA\u12DB\x07V\x02\x02\u12DB\u12DC\x07a\x02\x02" + + "\u12DC\u12DD\x07C\x02\x02\u12DD\u12DE\x07W\x02\x02\u12DE\u12DF\x07V\x02" + + "\x02\u12DF\u12E0\x07J\x02\x02\u12E0\u02D8\x03\x02\x02\x02\u12E1\u12E2" + + "\x07F\x02\x02\u12E2\u12E3\x07G\x02\x02\u12E3\u12E4\x07H\x02\x02\u12E4" + + "\u12E5\x07K\x02\x02\u12E5\u12E6\x07P\x02\x02\u12E6\u12E7\x07G\x02\x02" + + "\u12E7\u12E8\x07T\x02\x02\u12E8\u02DA\x03\x02\x02\x02\u12E9\u12EA\x07" + + "F\x02\x02\u12EA\u12EB\x07G\x02\x02\u12EB\u12EC\x07N\x02\x02\u12EC\u12ED" + + "\x07C\x02\x02\u12ED\u12EE\x07[\x02\x02\u12EE\u12EF\x07a\x02\x02\u12EF" + + "\u12F0\x07M\x02\x02\u12F0\u12F1\x07G\x02\x02\u12F1\u12F2\x07[\x02\x02" + + "\u12F2\u12F3\x07a\x02\x02\u12F3\u12F4\x07Y\x02\x02\u12F4\u12F5\x07T\x02" + + "\x02\u12F5\u12F6\x07K\x02\x02\u12F6\u12F7\x07V\x02\x02\u12F7\u12F8\x07" + + "G\x02\x02\u12F8\u02DC\x03\x02\x02\x02\u12F9\u12FA\x07F\x02\x02\u12FA\u12FB" + + "\x07G\x02\x02\u12FB\u12FC\x07U\x02\x02\u12FC\u12FD\x07a\x02\x02\u12FD" + + "\u12FE\x07M\x02\x02\u12FE\u12FF\x07G\x02\x02\u12FF\u1300\x07[\x02\x02" + + "\u1300\u1301\x07a\x02\x02\u1301\u1302\x07H\x02\x02\u1302\u1303\x07K\x02" + + "\x02\u1303\u1304\x07N\x02\x02\u1304\u1305\x07G\x02\x02\u1305\u02DE\x03" + + "\x02\x02\x02\u1306\u1307\x07F\x02\x02\u1307\u1308\x07K\x02\x02\u1308\u1309" + + "\x07T\x02\x02\u1309\u130A\x07G\x02\x02\u130A\u130B\x07E\x02\x02\u130B" + + "\u130C\x07V\x02\x02\u130C\u130D\x07Q\x02\x02\u130D\u130E\x07T\x02\x02" + + "\u130E\u130F\x07[\x02\x02\u130F\u02E0\x03\x02\x02\x02\u1310\u1311\x07" + + "F\x02\x02\u1311\u1312\x07K\x02\x02\u1312\u1313\x07U\x02\x02\u1313\u1314" + + "\x07C\x02\x02\u1314\u1315\x07D\x02\x02\u1315\u1316\x07N\x02\x02\u1316" + + "\u1317\x07G\x02\x02\u1317\u02E2\x03\x02\x02\x02\u1318\u1319\x07F\x02\x02" + + "\u1319\u131A\x07K\x02\x02\u131A\u131B\x07U\x02\x02\u131B\u131C\x07E\x02" + + "\x02\u131C\u131D\x07C\x02\x02\u131D\u131E\x07T\x02\x02\u131E\u131F\x07" + + "F\x02\x02\u131F\u02E4\x03\x02\x02\x02\u1320\u1321\x07F\x02\x02\u1321\u1322" + + "\x07K\x02\x02\u1322\u1323\x07U\x02\x02\u1323\u1324\x07M\x02\x02\u1324" + + "\u02E6\x03\x02\x02\x02\u1325\u1326\x07F\x02\x02\u1326\u1327\x07Q\x02\x02" + + "\u1327\u02E8\x03\x02\x02\x02\u1328\u1329\x07F\x02\x02\u1329\u132A\x07" + + "W\x02\x02\u132A\u132B\x07O\x02\x02\u132B\u132C\x07R\x02\x02\u132C\u132D" + + "\x07H\x02\x02\u132D\u132E\x07K\x02\x02\u132E\u132F\x07N\x02\x02\u132F" + + "\u1330\x07G\x02\x02\u1330\u02EA\x03\x02\x02\x02\u1331\u1332\x07F\x02\x02" + + "\u1332\u1333\x07W\x02\x02\u1333\u1334\x07R\x02\x02\u1334\u1335\x07N\x02" + + "\x02\u1335\u1336\x07K\x02\x02\u1336\u1337\x07E\x02\x02\u1337\u1338\x07" + + "C\x02\x02\u1338\u1339\x07V\x02\x02\u1339\u133A\x07G\x02\x02\u133A\u02EC" + + "\x03\x02\x02\x02\u133B\u133C\x07F\x02\x02\u133C\u133D\x07[\x02\x02\u133D" + + "\u133E\x07P\x02\x02\u133E\u133F\x07C\x02\x02\u133F\u1340\x07O\x02\x02" + + "\u1340\u1341\x07K\x02\x02\u1341\u1342\x07E\x02\x02\u1342\u02EE\x03\x02" + + "\x02\x02\u1343\u1344\x07G\x02\x02\u1344\u1345\x07P\x02\x02\u1345\u1346" + + "\x07C\x02\x02\u1346\u1347\x07D\x02\x02\u1347\u1348\x07N\x02\x02\u1348" + + "\u1349\x07G\x02\x02\u1349\u02F0\x03\x02\x02\x02\u134A\u134B\x07G\x02\x02" + + "\u134B\u134C\x07P\x02\x02\u134C\u134D\x07E\x02\x02\u134D\u134E\x07T\x02" + + "\x02\u134E\u134F\x07[\x02\x02\u134F\u1350\x07R\x02\x02\u1350\u1351\x07" + + "V\x02\x02\u1351\u1352\x07K\x02\x02\u1352\u1353\x07Q\x02\x02\u1353\u1354" + + "\x07P\x02\x02\u1354\u02F2\x03\x02\x02\x02\u1355\u1356\x07G\x02\x02\u1356" + + "\u1357\x07P\x02\x02\u1357\u1358\x07E\x02\x02\u1358\u1359\x07T\x02\x02" + + "\u1359\u135A\x07[\x02\x02\u135A\u135B\x07R\x02\x02\u135B\u135C\x07V\x02" + + "\x02\u135C\u135D\x07K\x02\x02\u135D\u135E\x07Q\x02\x02\u135E\u135F\x07" + + "P\x02\x02\u135F\u1360\x07a\x02\x02\u1360\u1361\x07M\x02\x02\u1361\u1362" + + "\x07G\x02\x02\u1362\u1363\x07[\x02\x02\u1363\u1364\x07a\x02\x02\u1364" + + "\u1365\x07K\x02\x02\u1365\u1366\x07F\x02\x02\u1366\u02F4\x03\x02\x02\x02" + + "\u1367\u1368\x07G\x02\x02\u1368\u1369\x07P\x02\x02\u1369\u136A\x07F\x02" + + "\x02\u136A\u02F6\x03\x02\x02\x02\u136B\u136C\x07G\x02\x02\u136C\u136D" + + "\x07P\x02\x02\u136D\u136E\x07F\x02\x02\u136E\u136F\x07U\x02\x02\u136F" + + "\u02F8\x03\x02\x02\x02\u1370\u1371\x07G\x02\x02\u1371\u1372\x07P\x02\x02" + + "\u1372\u1373\x07I\x02\x02\u1373\u1374\x07K\x02\x02\u1374\u1375\x07P\x02" + + "\x02\u1375\u1376\x07G\x02\x02\u1376\u02FA\x03\x02\x02\x02\u1377\u1378" + + "\x07G\x02\x02\u1378\u1379\x07P\x02\x02\u1379\u137A\x07I\x02\x02\u137A" + + "\u137B\x07K\x02\x02\u137B\u137C\x07P\x02\x02\u137C\u137D\x07G\x02\x02" + + "\u137D\u137E\x07U\x02\x02\u137E\u02FC\x03\x02\x02\x02\u137F\u1380\x07" + + "G\x02\x02\u1380\u1381\x07T\x02\x02\u1381\u1382\x07T\x02\x02\u1382\u1383" + + "\x07Q\x02\x02\u1383\u1384\x07T\x02\x02\u1384\u02FE\x03\x02\x02\x02\u1385" + + "\u1386\x07G\x02\x02\u1386\u1387\x07T\x02\x02\u1387\u1388\x07T\x02\x02" + + "\u1388\u1389\x07Q\x02\x02\u1389\u138A\x07T\x02\x02\u138A\u138B\x07U\x02" + + "\x02\u138B\u0300\x03\x02\x02\x02\u138C\u138D\x07G\x02\x02\u138D\u138E" + + "\x07U\x02\x02\u138E\u138F\x07E\x02\x02\u138F\u1390\x07C\x02\x02\u1390" + + "\u1391\x07R\x02\x02\u1391\u1392\x07G\x02\x02\u1392\u0302\x03\x02\x02\x02" + + "\u1393\u1394\x07G\x02\x02\u1394\u1395\x07X\x02\x02\u1395\u1396\x07G\x02" + + "\x02\u1396\u1397\x07P\x02\x02\u1397\u1398\x07V\x02\x02\u1398\u0304\x03" + + "\x02\x02\x02\u1399\u139A\x07G\x02\x02\u139A\u139B\x07X\x02\x02\u139B\u139C" + + "\x07G\x02\x02\u139C\u139D\x07P\x02\x02\u139D\u139E\x07V\x02\x02\u139E" + + "\u139F\x07U\x02\x02\u139F\u0306\x03\x02\x02\x02\u13A0\u13A1\x07G\x02\x02" + + "\u13A1\u13A2\x07X\x02\x02\u13A2\u13A3\x07G\x02\x02\u13A3\u13A4\x07T\x02" + + "\x02\u13A4\u13A5\x07[\x02\x02\u13A5\u0308\x03\x02\x02\x02\u13A6\u13A7" + + "\x07G\x02\x02\u13A7\u13A8\x07Z\x02\x02\u13A8\u13A9\x07E\x02\x02\u13A9" + + "\u13AA\x07J\x02\x02\u13AA\u13AB\x07C\x02\x02\u13AB\u13AC\x07P\x02\x02" + + "\u13AC\u13AD\x07I\x02\x02\u13AD\u13AE\x07G\x02\x02\u13AE\u030A\x03\x02" + + "\x02\x02\u13AF\u13B0\x07G\x02\x02\u13B0\u13B1\x07Z\x02\x02\u13B1\u13B2" + + "\x07E\x02\x02\u13B2\u13B3\x07N\x02\x02\u13B3\u13B4\x07W\x02\x02\u13B4" + + "\u13B5\x07U\x02\x02\u13B5\u13B6\x07K\x02\x02\u13B6\u13B7\x07X\x02\x02" + + "\u13B7\u13B8\x07G\x02\x02\u13B8\u030C\x03\x02\x02\x02\u13B9\u13BA\x07" + + "G\x02\x02\u13BA\u13BB\x07Z\x02\x02\u13BB\u13BC\x07R\x02\x02\u13BC\u13BD" + + "\x07K\x02\x02\u13BD\u13BE\x07T\x02\x02\u13BE\u13BF\x07G\x02\x02\u13BF" + + "\u030E\x03\x02\x02\x02\u13C0\u13C1\x07G\x02\x02\u13C1\u13C2\x07Z\x02\x02" + + "\u13C2\u13C3\x07R\x02\x02\u13C3\u13C4\x07Q\x02\x02\u13C4\u13C5\x07T\x02" + + "\x02\u13C5\u13C6\x07V\x02\x02\u13C6\u0310\x03\x02\x02\x02\u13C7\u13C8" + + "\x07G\x02\x02\u13C8\u13C9\x07Z\x02\x02\u13C9\u13CA\x07V\x02\x02\u13CA" + + "\u13CB\x07G\x02\x02\u13CB\u13CC\x07P\x02\x02\u13CC\u13CD\x07F\x02\x02" + + "\u13CD\u13CE\x07G\x02\x02\u13CE\u13CF\x07F\x02\x02\u13CF\u0312\x03\x02" + + "\x02\x02\u13D0\u13D1\x07G\x02\x02\u13D1\u13D2\x07Z\x02\x02\u13D2\u13D3" + + "\x07V\x02\x02\u13D3\u13D4\x07G\x02\x02\u13D4\u13D5\x07P\x02\x02\u13D5" + + "\u13D6\x07V\x02\x02\u13D6\u13D7\x07a\x02\x02\u13D7\u13D8\x07U\x02\x02" + + "\u13D8\u13D9\x07K\x02\x02\u13D9\u13DA\x07\\\x02\x02\u13DA\u13DB\x07G\x02" + + "\x02\u13DB\u0314\x03\x02\x02\x02\u13DC\u13DD\x07H\x02\x02\u13DD\u13DE" + + "\x07C\x02\x02\u13DE\u13DF\x07E\x02\x02\u13DF\u13E0\x07V\x02\x02\u13E0" + + "\u13E1\x07Q\x02\x02\u13E1\u13E2\x07T\x02\x02\u13E2\u0316\x03\x02\x02\x02" + + "\u13E3\u13E4\x07H\x02\x02\u13E4\u13E5\x07C\x02\x02\u13E5\u13E6\x07K\x02" + + "\x02\u13E6\u13E7\x07N\x02\x02\u13E7\u13E8\x07G\x02\x02\u13E8\u13E9\x07" + + "F\x02\x02\u13E9\u13EA\x07a\x02\x02\u13EA\u13EB\x07N\x02\x02\u13EB\u13EC" + + "\x07Q\x02\x02\u13EC\u13ED\x07I\x02\x02\u13ED\u13EE\x07K\x02\x02\u13EE" + + "\u13EF\x07P\x02\x02\u13EF\u13F0\x07a\x02\x02\u13F0\u13F1\x07C\x02\x02" + + "\u13F1\u13F2\x07V\x02\x02\u13F2\u13F3\x07V\x02\x02\u13F3\u13F4\x07G\x02" + + "\x02\u13F4\u13F5\x07O\x02\x02\u13F5\u13F6\x07R\x02\x02\u13F6\u13F7\x07" + + "V\x02\x02\u13F7\u13F8\x07U\x02\x02\u13F8\u0318\x03\x02\x02\x02\u13F9\u13FA" + + "\x07H\x02\x02\u13FA\u13FB\x07C\x02\x02\u13FB\u13FC\x07U\x02\x02\u13FC" + + "\u13FD\x07V\x02\x02\u13FD\u031A\x03\x02\x02\x02\u13FE\u13FF\x07H\x02\x02" + + "\u13FF\u1400\x07C\x02\x02\u1400\u1401\x07W\x02\x02\u1401\u1402\x07N\x02" + + "\x02\u1402\u1403\x07V\x02\x02\u1403\u1404\x07U\x02\x02\u1404\u031C\x03" + + "\x02\x02\x02\u1405\u1406\x07H\x02\x02\u1406\u1407\x07K\x02\x02\u1407\u1408" + + "\x07G\x02\x02\u1408\u1409\x07N\x02\x02\u1409\u140A\x07F\x02\x02\u140A" + + "\u140B\x07U\x02\x02\u140B\u031E\x03\x02\x02\x02\u140C\u140D\x07H\x02\x02" + + "\u140D\u140E\x07K\x02\x02\u140E\u140F\x07N\x02\x02\u140F\u1410\x07G\x02" + + "\x02\u1410\u1411\x07a\x02\x02\u1411\u1412\x07D\x02\x02\u1412\u1413\x07" + + "N\x02\x02\u1413\u1414\x07Q\x02\x02\u1414\u1415\x07E\x02\x02\u1415\u1416" + + "\x07M\x02\x02\u1416\u1417\x07a\x02\x02\u1417\u1418\x07U\x02\x02\u1418" + + "\u1419\x07K\x02\x02\u1419\u141A\x07\\\x02\x02\u141A\u141B\x07G\x02\x02" + + "\u141B\u0320\x03\x02\x02\x02\u141C\u141D\x07H\x02\x02\u141D\u141E\x07" + + "K\x02\x02\u141E\u141F\x07N\x02\x02\u141F\u1420\x07V\x02\x02\u1420\u1421" + + "\x07G\x02\x02\u1421\u1422\x07T\x02\x02\u1422\u0322\x03\x02\x02\x02\u1423" + + "\u1424\x07H\x02\x02\u1424\u1425\x07K\x02\x02\u1425\u1426\x07P\x02\x02" + + "\u1426\u1427\x07K\x02\x02\u1427\u1428\x07U\x02\x02\u1428\u1429\x07J\x02" + + "\x02\u1429\u0324\x03\x02\x02\x02\u142A\u142B\x07H\x02\x02\u142B\u142C" + + "\x07K\x02\x02\u142C\u142D\x07T\x02\x02\u142D\u142E\x07U\x02\x02\u142E" + + "\u142F\x07V\x02\x02\u142F\u0326\x03\x02\x02\x02\u1430\u1431\x07H\x02\x02" + + "\u1431\u1432\x07K\x02\x02\u1432\u1433\x07Z\x02\x02\u1433\u1434\x07G\x02" + + "\x02\u1434\u1435\x07F\x02\x02\u1435\u0328\x03\x02\x02\x02\u1436\u1437" + + "\x07H\x02\x02\u1437\u1438\x07N\x02\x02\u1438\u1439\x07W\x02\x02\u1439" + + "\u143A\x07U\x02\x02\u143A\u143B\x07J\x02\x02\u143B\u032A\x03\x02\x02\x02" + + "\u143C\u143D\x07H\x02\x02\u143D\u143E\x07Q\x02\x02\u143E\u143F\x07N\x02" + + "\x02\u143F\u1440\x07N\x02\x02\u1440\u1441\x07Q\x02\x02\u1441\u1442\x07" + + "Y\x02\x02\u1442\u1443\x07K\x02\x02\u1443\u1444\x07P\x02\x02\u1444\u1445" + + "\x07I\x02\x02\u1445\u032C\x03\x02\x02\x02\u1446\u1447\x07H\x02\x02\u1447" + + "\u1448\x07Q\x02\x02\u1448\u1449\x07N\x02\x02\u1449\u144A\x07N\x02\x02" + + "\u144A\u144B\x07Q\x02\x02\u144B\u144C\x07Y\x02\x02\u144C\u144D\x07U\x02" + + "\x02\u144D\u032E\x03\x02\x02\x02\u144E\u144F\x07H\x02\x02\u144F\u1450" + + "\x07Q\x02\x02\u1450\u1451\x07W\x02\x02\u1451\u1452\x07P\x02\x02\u1452" + + "\u1453\x07F\x02\x02\u1453\u0330\x03\x02\x02\x02\u1454\u1455"; + private static readonly _serializedATNSegment11: string = + "\x07H\x02\x02\u1455\u1456\x07W\x02\x02\u1456\u1457\x07N\x02\x02\u1457" + + "\u1458\x07N\x02\x02\u1458\u0332\x03\x02\x02\x02\u1459\u145A\x07H\x02\x02" + + "\u145A\u145B\x07W\x02\x02\u145B\u145C\x07P\x02\x02\u145C\u145D\x07E\x02" + + "\x02\u145D\u145E\x07V\x02\x02\u145E\u145F\x07K\x02\x02\u145F\u1460\x07" + + "Q\x02\x02\u1460\u1461\x07P\x02\x02\u1461\u0334\x03\x02\x02\x02\u1462\u1463" + + "\x07I\x02\x02\u1463\u1464\x07G\x02\x02\u1464\u1465\x07P\x02\x02\u1465" + + "\u1466\x07G\x02\x02\u1466\u1467\x07T\x02\x02\u1467\u1468\x07C\x02\x02" + + "\u1468\u1469\x07N\x02\x02\u1469\u0336\x03\x02\x02\x02\u146A\u146B\x07" + + "I\x02\x02\u146B\u146C\x07G\x02\x02\u146C\u146D\x07V\x02\x02\u146D\u146E" + + "\x07a\x02\x02\u146E\u146F\x07O\x02\x02\u146F\u1470\x07C\x02\x02\u1470" + + "\u1471\x07U\x02\x02\u1471\u1472\x07V\x02\x02\u1472\u1473\x07G\x02\x02" + + "\u1473\u1474\x07T\x02\x02\u1474\u1475\x07a\x02\x02\u1475\u1476\x07R\x02" + + "\x02\u1476\u1477\x07W\x02\x02\u1477\u1478\x07D\x02\x02\u1478\u1479\x07" + + "N\x02\x02\u1479\u147A\x07K\x02\x02\u147A\u147B\x07E\x02\x02\u147B\u147C" + + "\x07a\x02\x02\u147C\u147D\x07M\x02\x02\u147D\u147E\x07G\x02\x02\u147E" + + "\u147F\x07[\x02\x02\u147F\u0338\x03\x02\x02\x02\u1480\u1481\x07I\x02\x02" + + "\u1481\u1482\x07G\x02\x02\u1482\u1483\x07V\x02\x02\u1483\u1484\x07a\x02" + + "\x02\u1484\u1485\x07U\x02\x02\u1485\u1486\x07Q\x02\x02\u1486\u1487\x07" + + "W\x02\x02\u1487\u1488\x07T\x02\x02\u1488\u1489\x07E\x02\x02\u1489\u148A" + + "\x07G\x02\x02\u148A\u148B\x07a\x02\x02\u148B\u148C\x07R\x02\x02\u148C" + + "\u148D\x07W\x02\x02\u148D\u148E\x07D\x02\x02\u148E\u148F\x07N\x02\x02" + + "\u148F\u1490\x07K\x02\x02\u1490\u1491\x07E\x02\x02\u1491\u1492\x07a\x02" + + "\x02\u1492\u1493\x07M\x02\x02\u1493\u1494\x07G\x02\x02\u1494\u1495\x07" + + "[\x02\x02\u1495\u033A\x03\x02\x02\x02\u1496\u1497\x07I\x02\x02\u1497\u1498" + + "\x07N\x02\x02\u1498\u1499\x07Q\x02\x02\u1499\u149A\x07D\x02\x02\u149A" + + "\u149B\x07C\x02\x02\u149B\u149C\x07N\x02\x02\u149C\u033C\x03\x02\x02\x02" + + "\u149D\u149E\x07I\x02\x02\u149E\u149F\x07T\x02\x02\u149F\u14A0\x07C\x02" + + "\x02\u14A0\u14A1\x07P\x02\x02\u14A1\u14A2\x07V\x02\x02\u14A2\u14A3\x07" + + "U\x02\x02\u14A3\u033E\x03\x02\x02\x02\u14A4\u14A5\x07I\x02\x02\u14A5\u14A6" + + "\x07T\x02\x02\u14A6\u14A7\x07Q\x02\x02\u14A7\u14A8\x07W\x02\x02\u14A8" + + "\u14A9\x07R\x02\x02\u14A9\u14AA\x07a\x02\x02\u14AA\u14AB\x07T\x02\x02" + + "\u14AB\u14AC\x07G\x02\x02\u14AC\u14AD\x07R\x02\x02\u14AD\u14AE\x07N\x02" + + "\x02\u14AE\u14AF\x07K\x02\x02\u14AF\u14B0\x07E\x02\x02\u14B0\u14B1\x07" + + "C\x02\x02\u14B1\u14B2\x07V\x02\x02\u14B2\u14B3\x07K\x02\x02\u14B3\u14B4" + + "\x07Q\x02\x02\u14B4\u14B5\x07P\x02\x02\u14B5\u0340\x03\x02\x02\x02\u14B6" + + "\u14B7\x07I\x02\x02\u14B7\u14B8\x07V\x02\x02\u14B8\u14B9\x07K\x02\x02" + + "\u14B9\u14BA\x07F\x02\x02\u14BA\u14BB\x07a\x02\x02\u14BB\u14BC\x07Q\x02" + + "\x02\u14BC\u14BD\x07P\x02\x02\u14BD\u14BE\x07N\x02\x02\u14BE\u14BF\x07" + + "[\x02\x02\u14BF\u0342\x03\x02\x02\x02\u14C0\u14C1\x07J\x02\x02\u14C1\u14C2" + + "\x07C\x02\x02\u14C2\u14C3\x07P\x02\x02\u14C3\u14C4\x07F\x02\x02\u14C4" + + "\u14C5\x07N\x02\x02\u14C5\u14C6\x07G\x02\x02\u14C6\u14C7\x07T\x02\x02" + + "\u14C7\u0344\x03\x02\x02\x02\u14C8\u14C9\x07J\x02\x02\u14C9\u14CA\x07" + + "C\x02\x02\u14CA\u14CB\x07U\x02\x02\u14CB\u14CC\x07J\x02\x02\u14CC\u0346" + + "\x03\x02\x02\x02\u14CD\u14CE\x07J\x02\x02\u14CE\u14CF\x07G\x02\x02\u14CF" + + "\u14D0\x07N\x02\x02\u14D0\u14D1\x07R\x02\x02\u14D1\u0348\x03\x02\x02\x02" + + "\u14D2\u14D3\x07J\x02\x02\u14D3\u14D4\x07K\x02\x02\u14D4\u14D5\x07U\x02" + + "\x02\u14D5\u14D6\x07V\x02\x02\u14D6\u14D7\x07Q\x02\x02\u14D7\u14D8\x07" + + "T\x02\x02\u14D8\u14D9\x07[\x02\x02\u14D9\u034A\x03\x02\x02\x02\u14DA\u14DB" + + "\x07J\x02\x02\u14DB\u14DC\x07Q\x02\x02\u14DC\u14DD\x07U\x02\x02\u14DD" + + "\u14DE\x07V\x02\x02\u14DE\u034C\x03\x02\x02\x02\u14DF\u14E0\x07J\x02\x02" + + "\u14E0\u14E1\x07Q\x02\x02\u14E1\u14E2\x07U\x02\x02\u14E2\u14E3\x07V\x02" + + "\x02\u14E3\u14E4\x07U\x02\x02\u14E4\u034E\x03\x02\x02\x02\u14E5\u14E6" + + "\x07K\x02\x02\u14E6\u14E7\x07F\x02\x02\u14E7\u14E8\x07G\x02\x02\u14E8" + + "\u14E9\x07P\x02\x02\u14E9\u14EA\x07V\x02\x02\u14EA\u14EB\x07K\x02\x02" + + "\u14EB\u14EC\x07H\x02\x02\u14EC\u14ED\x07K\x02\x02\u14ED\u14EE\x07G\x02" + + "\x02\u14EE\u14EF\x07F\x02\x02\u14EF\u0350\x03\x02\x02\x02\u14F0\u14F1" + + "\x07K\x02\x02\u14F1\u14F2\x07I\x02\x02\u14F2\u14F3\x07P\x02\x02\u14F3" + + "\u14F4\x07Q\x02\x02\u14F4\u14F5\x07T\x02\x02\u14F5\u14F6\x07G\x02\x02" + + "\u14F6\u14F7\x07a\x02\x02\u14F7\u14F8\x07U\x02\x02\u14F8\u14F9\x07G\x02" + + "\x02\u14F9\u14FA\x07T\x02\x02\u14FA\u14FB\x07X\x02\x02\u14FB\u14FC\x07" + + "G\x02\x02\u14FC\u14FD\x07T\x02\x02\u14FD\u14FE\x07a\x02\x02\u14FE\u14FF" + + "\x07K\x02\x02\u14FF\u1500\x07F\x02\x02\u1500\u1501\x07U\x02\x02\u1501" + + "\u0352\x03\x02\x02\x02\u1502\u1503\x07K\x02\x02\u1503\u1504\x07O\x02\x02" + + "\u1504\u1505\x07R\x02\x02\u1505\u1506\x07Q\x02\x02\u1506\u1507\x07T\x02" + + "\x02\u1507\u1508\x07V\x02\x02\u1508\u0354\x03\x02\x02\x02\u1509\u150A" + + "\x07K\x02\x02\u150A\u150B\x07P\x02\x02\u150B\u150C\x07F\x02\x02\u150C" + + "\u150D\x07G\x02\x02\u150D\u150E\x07Z\x02\x02\u150E\u150F\x07G\x02\x02" + + "\u150F\u1510\x07U\x02\x02\u1510\u0356\x03\x02\x02\x02\u1511\u1512\x07" + + "K\x02\x02\u1512\u1513\x07P\x02\x02\u1513\u1514\x07K\x02\x02\u1514\u1515" + + "\x07V\x02\x02\u1515\u1516\x07K\x02\x02\u1516\u1517\x07C\x02\x02\u1517" + + "\u1518\x07N\x02\x02\u1518\u0358\x03\x02\x02\x02\u1519\u151A\x07K\x02\x02" + + "\u151A\u151B\x07P\x02\x02\u151B\u151C\x07K\x02\x02\u151C\u151D\x07V\x02" + + "\x02\u151D\u151E\x07K\x02\x02\u151E\u151F\x07C\x02\x02\u151F\u1520\x07" + + "N\x02\x02\u1520\u1521\x07a\x02\x02\u1521\u1522\x07U\x02\x02\u1522\u1523" + + "\x07K\x02\x02\u1523\u1524\x07\\\x02\x02\u1524\u1525\x07G\x02\x02\u1525" + + "\u035A\x03\x02\x02\x02\u1526\u1527\x07K\x02\x02\u1527\u1528\x07P\x02\x02" + + "\u1528\u1529\x07K\x02\x02\u1529\u152A\x07V\x02\x02\u152A\u152B\x07K\x02" + + "\x02\u152B\u152C\x07C\x02\x02\u152C\u152D\x07V\x02\x02\u152D\u152E\x07" + + "G\x02\x02\u152E\u035C\x03\x02\x02\x02\u152F\u1530\x07K\x02\x02\u1530\u1531" + + "\x07P\x02\x02\u1531\u1532\x07R\x02\x02\u1532\u1533\x07N\x02\x02\u1533" + + "\u1534\x07C\x02\x02\u1534\u1535\x07E\x02\x02\u1535\u1536\x07G\x02\x02" + + "\u1536\u035E\x03\x02\x02\x02\u1537\u1538\x07K\x02\x02\u1538\u1539\x07" + + "P\x02\x02\u1539\u153A\x07U\x02\x02\u153A\u153B\x07G\x02\x02\u153B\u153C" + + "\x07T\x02\x02\u153C\u153D\x07V\x02\x02\u153D\u153E\x07a\x02\x02\u153E" + + "\u153F\x07O\x02\x02\u153F\u1540\x07G\x02\x02\u1540\u1541\x07V\x02\x02" + + "\u1541\u1542\x07J\x02\x02\u1542\u1543\x07Q\x02\x02\u1543\u1544\x07F\x02" + + "\x02\u1544\u0360\x03\x02\x02\x02\u1545\u1546\x07K\x02\x02\u1546\u1547" + + "\x07P\x02\x02\u1547\u1548\x07U\x02\x02\u1548\u1549\x07V\x02\x02\u1549" + + "\u154A\x07C\x02\x02\u154A\u154B\x07N\x02\x02\u154B\u154C\x07N\x02\x02" + + "\u154C\u0362\x03\x02\x02\x02\u154D\u154E\x07K\x02\x02\u154E\u154F\x07" + + "P\x02\x02\u154F\u1550\x07U\x02\x02\u1550\u1551\x07V\x02\x02\u1551\u1552" + + "\x07C\x02\x02\u1552\u1553\x07P\x02\x02\u1553\u1554\x07E\x02\x02\u1554" + + "\u1555\x07G\x02\x02\u1555\u0364\x03\x02\x02\x02\u1556\u1557\x07K\x02\x02" + + "\u1557\u1558\x07P\x02\x02\u1558\u1559\x07U\x02\x02\u1559\u155A\x07V\x02" + + "\x02\u155A\u155B\x07C\x02\x02\u155B\u155C\x07P\x02\x02\u155C\u155D\x07" + + "V\x02\x02\u155D\u0366\x03\x02\x02\x02\u155E\u155F\x07K\x02\x02\u155F\u1560" + + "\x07P\x02\x02\u1560\u1561\x07X\x02\x02\u1561\u1562\x07K\x02\x02\u1562" + + "\u1563\x07U\x02\x02\u1563\u1564\x07K\x02\x02\u1564\u1565\x07D\x02\x02" + + "\u1565\u1566\x07N\x02\x02\u1566\u1567\x07G\x02\x02\u1567\u0368\x03\x02" + + "\x02\x02\u1568\u1569\x07K\x02\x02\u1569\u156A\x07P\x02\x02\u156A\u156B" + + "\x07X\x02\x02\u156B\u156C\x07Q\x02\x02\u156C\u156D\x07M\x02\x02\u156D" + + "\u156E\x07G\x02\x02\u156E\u156F\x07T\x02\x02\u156F\u036A\x03\x02\x02\x02" + + "\u1570\u1571\x07K\x02\x02\u1571\u1572\x07Q\x02\x02\u1572\u036C\x03\x02" + + "\x02\x02\u1573\u1574\x07K\x02\x02\u1574\u1575\x07Q\x02\x02\u1575\u1576" + + "\x07a\x02\x02\u1576\u1577\x07V\x02\x02\u1577\u1578\x07J\x02\x02\u1578" + + "\u1579\x07T\x02\x02\u1579\u157A\x07G\x02\x02\u157A\u157B\x07C\x02\x02" + + "\u157B\u157C\x07F\x02\x02\u157C\u036E\x03\x02\x02\x02\u157D\u157E\x07" + + "K\x02\x02\u157E\u157F\x07R\x02\x02\u157F\u1580\x07E\x02\x02\u1580\u0370" + + "\x03\x02\x02\x02\u1581\u1582\x07K\x02\x02\u1582\u1583\x07U\x02\x02\u1583" + + "\u1584\x07Q\x02\x02\u1584\u1585\x07N\x02\x02\u1585\u1586\x07C\x02\x02" + + "\u1586\u1587\x07V\x02\x02\u1587\u1588\x07K\x02\x02\u1588\u1589\x07Q\x02" + + "\x02\u1589\u158A\x07P\x02\x02\u158A\u0372\x03\x02\x02\x02\u158B\u158C" + + "\x07K\x02\x02\u158C\u158D\x07U\x02\x02\u158D\u158E\x07U\x02\x02\u158E" + + "\u158F\x07W\x02\x02\u158F\u1590\x07G\x02\x02\u1590\u1591\x07T\x02\x02" + + "\u1591\u0374\x03\x02\x02\x02\u1592\u1593\x07L\x02\x02\u1593\u1594\x07" + + "U\x02\x02\u1594\u1595\x07Q\x02\x02\u1595\u1596\x07P\x02\x02\u1596\u0376" + + "\x03\x02\x02\x02\u1597\u1598\x07M\x02\x02\u1598\u1599\x07G\x02\x02\u1599" + + "\u159A\x07[\x02\x02\u159A\u159B\x07a\x02\x02\u159B\u159C\x07D\x02\x02" + + "\u159C\u159D\x07N\x02\x02\u159D\u159E\x07Q\x02\x02\u159E\u159F\x07E\x02" + + "\x02\u159F\u15A0\x07M\x02\x02\u15A0\u15A1\x07a\x02\x02\u15A1\u15A2\x07" + + "U\x02\x02\u15A2\u15A3\x07K\x02\x02\u15A3\u15A4\x07\\\x02\x02\u15A4\u15A5" + + "\x07G\x02\x02\u15A5\u0378\x03\x02\x02\x02\u15A6\u15A7\x07N\x02\x02\u15A7" + + "\u15A8\x07C\x02\x02\u15A8\u15A9\x07P\x02\x02\u15A9\u15AA\x07I\x02\x02" + + "\u15AA\u15AB\x07W\x02\x02\u15AB\u15AC\x07C\x02\x02\u15AC\u15AD\x07I\x02" + + "\x02\u15AD\u15AE\x07G\x02\x02\u15AE\u037A\x03\x02\x02\x02\u15AF\u15B0" + + "\x07N\x02\x02\u15B0\u15B1\x07C\x02\x02\u15B1\u15B2\x07U\x02\x02\u15B2" + + "\u15B3\x07V\x02\x02\u15B3\u037C\x03\x02\x02\x02\u15B4\u15B5\x07N\x02\x02" + + "\u15B5\u15B6\x07G\x02\x02\u15B6\u15B7\x07C\x02\x02\u15B7\u15B8\x07X\x02" + + "\x02\u15B8\u15B9\x07G\x02\x02\u15B9\u15BA\x07U\x02\x02\u15BA\u037E\x03" + + "\x02\x02\x02\u15BB\u15BC\x07N\x02\x02\u15BC\u15BD\x07G\x02\x02\u15BD\u15BE" + + "\x07U\x02\x02\u15BE\u15BF\x07U\x02\x02\u15BF\u0380\x03\x02\x02\x02\u15C0" + + "\u15C1\x07N\x02\x02\u15C1\u15C2\x07G\x02\x02\u15C2\u15C3\x07X\x02\x02" + + "\u15C3\u15C4\x07G\x02\x02\u15C4\u15C5\x07N\x02\x02\u15C5\u0382\x03\x02" + + "\x02\x02\u15C6\u15C7\x07N\x02\x02\u15C7\u15C8\x07K\x02\x02\u15C8\u15C9" + + "\x07U\x02\x02\u15C9\u15CA\x07V\x02\x02\u15CA\u0384\x03\x02\x02\x02\u15CB" + + "\u15CC\x07N\x02\x02\u15CC\u15CD\x07Q\x02\x02\u15CD\u15CE\x07E\x02\x02" + + "\u15CE\u15CF\x07C\x02\x02\u15CF\u15D0\x07N\x02\x02\u15D0\u0386\x03\x02" + + "\x02\x02\u15D1\u15D2\x07N\x02\x02\u15D2\u15D3\x07Q\x02\x02\u15D3\u15D4" + + "\x07I\x02\x02\u15D4\u15D5\x07H\x02\x02\u15D5\u15D6\x07K\x02\x02\u15D6" + + "\u15D7\x07N\x02\x02\u15D7\u15D8\x07G\x02\x02\u15D8\u0388\x03\x02\x02\x02" + + "\u15D9\u15DA\x07N\x02\x02\u15DA\u15DB\x07Q\x02\x02\u15DB\u15DC\x07I\x02" + + "\x02\u15DC\u15DD\x07U\x02\x02\u15DD\u038A\x03\x02\x02\x02\u15DE\u15DF" + + "\x07O\x02\x02\u15DF\u15E0\x07C\x02\x02\u15E0\u15E1\x07U\x02\x02\u15E1" + + "\u15E2\x07V\x02\x02\u15E2\u15E3\x07G\x02\x02\u15E3\u15E4\x07T\x02\x02" + + "\u15E4\u038C\x03\x02\x02\x02\u15E5\u15E6\x07O\x02\x02\u15E6\u15E7\x07" + + "C\x02\x02\u15E7\u15E8\x07U\x02\x02\u15E8\u15E9\x07V\x02\x02\u15E9\u15EA" + + "\x07G\x02\x02\u15EA\u15EB\x07T\x02\x02\u15EB\u15EC\x07a\x02\x02\u15EC" + + "\u15ED\x07C\x02\x02\u15ED\u15EE\x07W\x02\x02\u15EE\u15EF\x07V\x02\x02" + + "\u15EF\u15F0\x07Q\x02\x02\u15F0\u15F1\x07a\x02\x02\u15F1\u15F2\x07R\x02" + + "\x02\u15F2\u15F3\x07Q\x02\x02\u15F3\u15F4\x07U\x02\x02\u15F4\u15F5\x07" + + "K\x02\x02\u15F5\u15F6\x07V\x02\x02\u15F6\u15F7\x07K\x02\x02\u15F7\u15F8" + + "\x07Q\x02\x02\u15F8\u15F9\x07P\x02\x02\u15F9\u038E\x03\x02\x02\x02\u15FA" + + "\u15FB\x07O\x02\x02\u15FB\u15FC\x07C\x02\x02\u15FC\u15FD\x07U\x02\x02" + + "\u15FD\u15FE\x07V\x02\x02\u15FE\u15FF\x07G\x02\x02\u15FF\u1600\x07T\x02" + + "\x02\u1600\u1601\x07a\x02\x02\u1601\u1602\x07E\x02\x02\u1602\u1603\x07" + + "Q\x02\x02\u1603\u1604\x07O\x02\x02\u1604\u1605\x07R\x02\x02\u1605\u1606" + + "\x07T\x02\x02\u1606\u1607\x07G\x02\x02\u1607\u1608\x07U\x02\x02\u1608" + + "\u1609\x07U\x02\x02\u1609\u160A\x07K\x02\x02\u160A\u160B\x07Q\x02\x02" + + "\u160B\u160C\x07P\x02\x02\u160C\u160D\x07a\x02\x02\u160D\u160E\x07C\x02" + + "\x02\u160E\u160F\x07N\x02\x02\u160F\u1610\x07I\x02\x02\u1610\u1611\x07" + + "Q\x02\x02\u1611\u1612\x07T\x02\x02\u1612\u1613\x07K\x02\x02\u1613\u1614" + + "\x07V\x02\x02\u1614\u1615\x07J\x02\x02\u1615\u1616\x07O\x02\x02\u1616" + + "\u1617\x07U\x02\x02\u1617\u0390\x03\x02\x02\x02\u1618\u1619\x07O\x02\x02" + + "\u1619\u161A\x07C\x02\x02\u161A\u161B\x07U\x02\x02\u161B\u161C\x07V\x02" + + "\x02\u161C\u161D\x07G\x02\x02\u161D\u161E\x07T\x02\x02\u161E\u161F\x07" + + "a\x02\x02\u161F\u1620\x07E\x02\x02\u1620\u1621\x07Q\x02\x02\u1621\u1622" + + "\x07P\x02\x02\u1622\u1623\x07P\x02\x02\u1623\u1624\x07G\x02\x02\u1624" + + "\u1625\x07E\x02\x02\u1625\u1626\x07V\x02\x02\u1626\u1627\x07a\x02\x02" + + "\u1627\u1628\x07T\x02\x02\u1628\u1629\x07G\x02\x02\u1629\u162A\x07V\x02" + + "\x02\u162A\u162B\x07T\x02\x02\u162B\u162C\x07[\x02\x02\u162C\u0392\x03" + + "\x02\x02\x02\u162D\u162E\x07O\x02\x02\u162E\u162F\x07C\x02\x02\u162F\u1630" + + "\x07U\x02\x02\u1630\u1631\x07V\x02\x02\u1631\u1632\x07G\x02\x02\u1632" + + "\u1633\x07T\x02\x02\u1633\u1634\x07a\x02\x02\u1634\u1635\x07F\x02\x02" + + "\u1635\u1636\x07G\x02\x02\u1636\u1637\x07N\x02\x02\u1637\u1638\x07C\x02" + + "\x02\u1638\u1639\x07[\x02\x02\u1639\u0394\x03\x02\x02\x02\u163A\u163B" + + "\x07O\x02\x02\u163B\u163C\x07C\x02\x02\u163C\u163D\x07U\x02\x02\u163D" + + "\u163E\x07V\x02\x02\u163E\u163F\x07G\x02\x02\u163F\u1640\x07T\x02\x02" + + "\u1640\u1641\x07a\x02\x02\u1641\u1642\x07J\x02\x02\u1642\u1643\x07G\x02" + + "\x02\u1643\u1644\x07C\x02\x02\u1644\u1645\x07T\x02\x02\u1645\u1646\x07" + + "V\x02\x02\u1646\u1647\x07D\x02\x02\u1647\u1648\x07G\x02\x02\u1648\u1649" + + "\x07C\x02\x02\u1649\u164A\x07V\x02\x02\u164A\u164B\x07a\x02\x02\u164B" + + "\u164C\x07R\x02\x02\u164C\u164D\x07G\x02\x02\u164D\u164E\x07T\x02\x02" + + "\u164E\u164F\x07K\x02\x02\u164F\u1650\x07Q\x02\x02\u1650\u1651\x07F\x02" + + "\x02\u1651\u0396\x03\x02\x02\x02\u1652\u1653\x07O\x02\x02\u1653\u1654" + + "\x07C\x02\x02\u1654\u1655\x07U\x02\x02\u1655\u1656\x07V\x02\x02\u1656" + + "\u1657\x07G\x02\x02\u1657\u1658\x07T\x02\x02\u1658\u1659\x07a\x02\x02" + + "\u1659\u165A\x07J\x02\x02\u165A\u165B\x07Q\x02\x02\u165B\u165C\x07U\x02" + + "\x02\u165C\u165D\x07V\x02\x02\u165D\u0398\x03\x02\x02\x02\u165E\u165F" + + "\x07O\x02\x02\u165F\u1660\x07C\x02\x02\u1660\u1661\x07U\x02\x02\u1661" + + "\u1662\x07V\x02\x02\u1662\u1663\x07G\x02\x02\u1663\u1664\x07T\x02\x02" + + "\u1664\u1665\x07a\x02\x02\u1665\u1666\x07N\x02\x02\u1666\u1667\x07Q\x02" + + "\x02\u1667\u1668\x07I\x02\x02\u1668\u1669\x07a\x02\x02\u1669\u166A\x07" + + "H\x02\x02\u166A\u166B\x07K\x02\x02\u166B\u166C\x07N\x02\x02\u166C\u166D" + + "\x07G\x02\x02\u166D\u039A\x03\x02\x02\x02\u166E\u166F\x07O\x02\x02\u166F" + + "\u1670\x07C\x02\x02\u1670\u1671\x07U\x02\x02\u1671\u1672\x07V\x02\x02" + + "\u1672\u1673\x07G\x02\x02\u1673\u1674\x07T\x02\x02\u1674\u1675\x07a\x02" + + "\x02\u1675\u1676\x07N\x02\x02\u1676\u1677\x07Q\x02\x02\u1677\u1678\x07" + + "I\x02\x02\u1678\u1679\x07a\x02\x02\u1679\u167A\x07R\x02\x02\u167A\u167B" + + "\x07Q\x02\x02\u167B\u167C\x07U\x02\x02\u167C\u039C\x03\x02\x02\x02\u167D" + + "\u167E\x07O\x02\x02\u167E\u167F\x07C\x02\x02\u167F\u1680\x07U\x02\x02" + + "\u1680\u1681\x07V\x02\x02\u1681\u1682\x07G\x02\x02\u1682\u1683\x07T\x02" + + "\x02\u1683\u1684\x07a\x02\x02\u1684\u1685\x07R\x02\x02\u1685\u1686\x07" + + "C\x02\x02\u1686\u1687\x07U\x02\x02\u1687\u1688\x07U\x02\x02\u1688\u1689" + + "\x07Y\x02\x02\u1689\u168A\x07Q\x02\x02\u168A\u168B\x07T\x02\x02\u168B" + + "\u168C\x07F\x02\x02\u168C\u039E\x03\x02\x02\x02\u168D\u168E\x07O\x02\x02" + + "\u168E\u168F\x07C\x02\x02\u168F\u1690\x07U\x02\x02\u1690\u1691\x07V\x02" + + "\x02\u1691\u1692\x07G\x02\x02\u1692\u1693\x07T\x02\x02\u1693\u1694\x07" + + "a\x02\x02\u1694\u1695\x07R\x02\x02\u1695\u1696\x07Q\x02\x02\u1696\u1697" + + "\x07T\x02\x02\u1697\u1698\x07V\x02\x02\u1698\u03A0\x03\x02\x02\x02\u1699" + + "\u169A\x07O\x02\x02\u169A\u169B\x07C\x02\x02\u169B\u169C\x07U\x02\x02" + + "\u169C\u169D\x07V\x02\x02\u169D\u169E\x07G\x02\x02\u169E\u169F\x07T\x02" + + "\x02\u169F\u16A0\x07a\x02\x02\u16A0\u16A1\x07R\x02\x02\u16A1\u16A2\x07" + + "W\x02\x02\u16A2\u16A3\x07D\x02\x02\u16A3\u16A4\x07N\x02\x02\u16A4\u16A5" + + "\x07K\x02\x02\u16A5\u16A6\x07E\x02\x02\u16A6\u16A7\x07a\x02\x02\u16A7" + + "\u16A8\x07M\x02\x02\u16A8\u16A9\x07G\x02\x02\u16A9\u16AA\x07[\x02\x02" + + "\u16AA\u16AB\x07a\x02\x02\u16AB\u16AC\x07R\x02\x02\u16AC\u16AD\x07C\x02" + + "\x02\u16AD\u16AE\x07V\x02\x02\u16AE\u16AF\x07J\x02\x02\u16AF\u03A2\x03" + + "\x02\x02\x02\u16B0\u16B1\x07O\x02\x02\u16B1\u16B2\x07C\x02\x02\u16B2\u16B3" + + "\x07U\x02\x02\u16B3\u16B4\x07V\x02\x02\u16B4\u16B5\x07G\x02\x02\u16B5" + + "\u16B6\x07T\x02\x02\u16B6\u16B7\x07a\x02\x02\u16B7\u16B8\x07T\x02\x02" + + "\u16B8\u16B9\x07G\x02\x02\u16B9\u16BA\x07V\x02\x02\u16BA\u16BB\x07T\x02" + + "\x02\u16BB\u16BC\x07[\x02\x02\u16BC\u16BD\x07a\x02\x02\u16BD\u16BE\x07" + + "E\x02\x02\u16BE\u16BF\x07Q\x02\x02\u16BF\u16C0\x07W\x02\x02\u16C0\u16C1" + + "\x07P\x02\x02\u16C1\u16C2\x07V\x02\x02\u16C2\u03A4\x03\x02\x02\x02\u16C3" + + "\u16C4\x07O\x02\x02\u16C4\u16C5\x07C\x02\x02\u16C5\u16C6\x07U\x02\x02" + + "\u16C6\u16C7\x07V\x02\x02\u16C7\u16C8\x07G\x02\x02\u16C8\u16C9\x07T\x02" + + "\x02\u16C9\u16CA\x07a\x02\x02\u16CA\u16CB\x07U\x02\x02\u16CB\u16CC\x07" + + "U\x02\x02\u16CC\u16CD\x07N\x02\x02\u16CD\u03A6\x03\x02\x02\x02\u16CE\u16CF" + + "\x07O\x02\x02\u16CF\u16D0\x07C\x02\x02\u16D0\u16D1\x07U\x02\x02\u16D1" + + "\u16D2\x07V\x02\x02\u16D2\u16D3\x07G\x02\x02\u16D3\u16D4\x07T\x02\x02" + + "\u16D4\u16D5\x07a\x02\x02\u16D5\u16D6\x07U\x02\x02\u16D6\u16D7\x07U\x02" + + "\x02\u16D7\u16D8\x07N\x02\x02\u16D8\u16D9\x07a\x02\x02\u16D9\u16DA\x07" + + "E\x02\x02\u16DA\u16DB\x07C\x02\x02\u16DB\u03A8\x03\x02\x02\x02\u16DC\u16DD" + + "\x07O\x02\x02\u16DD\u16DE\x07C\x02\x02\u16DE\u16DF\x07U\x02\x02\u16DF" + + "\u16E0\x07V\x02\x02\u16E0\u16E1\x07G\x02\x02\u16E1\u16E2\x07T\x02\x02" + + "\u16E2\u16E3\x07a\x02\x02\u16E3\u16E4\x07U\x02\x02\u16E4\u16E5\x07U\x02" + + "\x02\u16E5\u16E6\x07N\x02\x02\u16E6\u16E7\x07a\x02\x02\u16E7\u16E8\x07" + + "E\x02\x02\u16E8\u16E9\x07C\x02\x02\u16E9\u16EA\x07R\x02\x02\u16EA\u16EB" + + "\x07C\x02\x02\u16EB\u16EC\x07V\x02\x02\u16EC\u16ED\x07J\x02\x02\u16ED" + + "\u03AA\x03\x02\x02\x02\u16EE\u16EF\x07O\x02\x02\u16EF\u16F0\x07C\x02\x02" + + "\u16F0\u16F1\x07U\x02\x02\u16F1\u16F2\x07V\x02\x02\u16F2\u16F3\x07G\x02" + + "\x02\u16F3\u16F4\x07T\x02\x02\u16F4\u16F5\x07a\x02\x02\u16F5\u16F6\x07" + + "U\x02\x02\u16F6\u16F7\x07U\x02\x02\u16F7\u16F8\x07N\x02\x02\u16F8\u16F9" + + "\x07a\x02\x02\u16F9\u16FA\x07E\x02\x02\u16FA\u16FB\x07G\x02\x02\u16FB" + + "\u16FC\x07T\x02\x02\u16FC\u16FD\x07V\x02\x02\u16FD\u03AC\x03\x02\x02\x02" + + "\u16FE\u16FF\x07O\x02\x02\u16FF\u1700\x07C\x02\x02\u1700\u1701\x07U\x02" + + "\x02\u1701\u1702\x07V\x02\x02\u1702\u1703\x07G\x02\x02\u1703\u1704\x07" + + "T\x02\x02\u1704\u1705\x07a\x02\x02\u1705\u1706\x07U\x02\x02\u1706\u1707" + + "\x07U\x02\x02\u1707\u1708\x07N\x02\x02\u1708\u1709\x07a\x02\x02\u1709" + + "\u170A\x07E\x02\x02\u170A\u170B\x07K\x02\x02\u170B\u170C\x07R\x02\x02" + + "\u170C\u170D\x07J\x02\x02\u170D\u170E\x07G\x02\x02\u170E\u170F\x07T\x02" + + "\x02\u170F\u03AE\x03\x02\x02\x02\u1710\u1711\x07O\x02\x02\u1711\u1712" + + "\x07C\x02\x02\u1712\u1713\x07U\x02\x02\u1713\u1714\x07V\x02\x02\u1714" + + "\u1715\x07G\x02\x02\u1715\u1716\x07T\x02\x02\u1716\u1717\x07a\x02\x02" + + "\u1717\u1718\x07U\x02\x02\u1718\u1719\x07U\x02\x02\u1719\u171A\x07N\x02" + + "\x02\u171A\u171B\x07a\x02\x02\u171B\u171C\x07E\x02\x02\u171C\u171D\x07" + + "T\x02\x02\u171D\u171E\x07N\x02\x02\u171E\u03B0\x03\x02\x02\x02\u171F\u1720" + + "\x07O\x02\x02\u1720\u1721\x07C\x02\x02\u1721\u1722\x07U\x02\x02\u1722" + + "\u1723\x07V\x02\x02\u1723\u1724\x07G\x02\x02\u1724\u1725\x07T\x02\x02" + + "\u1725\u1726\x07a\x02\x02\u1726\u1727\x07U\x02\x02\u1727\u1728\x07U\x02" + + "\x02\u1728\u1729\x07N\x02\x02\u1729\u172A\x07a\x02\x02\u172A\u172B\x07" + + "E\x02\x02\u172B\u172C\x07T\x02\x02\u172C\u172D\x07N\x02\x02\u172D\u172E" + + "\x07R\x02\x02\u172E\u172F\x07C\x02\x02\u172F\u1730\x07V\x02\x02\u1730" + + "\u1731\x07J\x02\x02\u1731\u03B2\x03\x02\x02\x02\u1732\u1733\x07O\x02\x02" + + "\u1733\u1734\x07C\x02\x02\u1734\u1735\x07U\x02\x02\u1735\u1736\x07V\x02" + + "\x02\u1736\u1737\x07G\x02\x02\u1737\u1738\x07T\x02\x02\u1738\u1739\x07" + + "a\x02\x02\u1739\u173A\x07U\x02\x02\u173A\u173B\x07U\x02\x02\u173B\u173C" + + "\x07N\x02\x02\u173C\u173D\x07a\x02\x02\u173D\u173E\x07M\x02\x02\u173E" + + "\u173F\x07G\x02\x02\u173F\u1740\x07[\x02\x02\u1740\u03B4\x03\x02\x02\x02" + + "\u1741\u1742\x07O\x02\x02\u1742\u1743\x07C\x02\x02\u1743\u1744\x07U\x02" + + "\x02\u1744\u1745\x07V\x02\x02\u1745\u1746\x07G\x02\x02\u1746\u1747\x07" + + "T\x02\x02\u1747\u1748\x07a\x02\x02\u1748\u1749\x07V\x02\x02\u1749\u174A" + + "\x07N\x02\x02\u174A\u174B\x07U\x02\x02\u174B\u174C\x07a\x02\x02\u174C" + + "\u174D\x07E\x02\x02\u174D\u174E\x07K\x02\x02\u174E\u174F\x07R\x02\x02" + + "\u174F\u1750\x07J\x02\x02\u1750\u1751\x07G\x02\x02\u1751\u1752\x07T\x02" + + "\x02\u1752\u1753\x07U\x02\x02\u1753\u1754\x07W\x02\x02\u1754\u1755\x07" + + "K\x02\x02\u1755\u1756\x07V\x02\x02\u1756\u1757\x07G\x02\x02\u1757\u1758" + + "\x07U\x02\x02\u1758\u03B6\x03\x02\x02\x02\u1759\u175A\x07O\x02\x02\u175A" + + "\u175B\x07C\x02\x02\u175B\u175C\x07U\x02\x02\u175C\u175D\x07V\x02\x02" + + "\u175D\u175E\x07G\x02\x02\u175E\u175F\x07T\x02\x02\u175F\u1760\x07a\x02" + + "\x02\u1760\u1761\x07V\x02\x02\u1761\u1762\x07N\x02\x02\u1762\u1763\x07" + + "U\x02\x02\u1763\u1764\x07a\x02\x02\u1764\u1765\x07X\x02\x02\u1765\u1766" + + "\x07G\x02\x02\u1766\u1767\x07T\x02\x02\u1767\u1768\x07U\x02\x02\u1768" + + "\u1769\x07K\x02\x02\u1769\u176A\x07Q\x02\x02\u176A\u176B\x07P\x02\x02" + + "\u176B\u03B8\x03\x02\x02\x02\u176C\u176D\x07O\x02\x02\u176D\u176E\x07" + + "C\x02\x02\u176E\u176F\x07U\x02\x02\u176F\u1770\x07V\x02\x02\u1770\u1771" + + "\x07G\x02\x02\u1771\u1772\x07T\x02\x02\u1772\u1773\x07a\x02\x02\u1773" + + "\u1774\x07W\x02\x02\u1774\u1775\x07U\x02\x02\u1775\u1776\x07G\x02\x02" + + "\u1776\u1777\x07T\x02\x02\u1777\u03BA\x03\x02\x02\x02\u1778\u1779\x07" + + "O\x02\x02\u1779\u177A\x07C\x02\x02\u177A\u177B\x07U\x02\x02\u177B\u177C" + + "\x07V\x02\x02\u177C\u177D\x07G\x02\x02\u177D\u177E\x07T\x02\x02\u177E" + + "\u177F\x07a\x02\x02\u177F\u1780\x07\\\x02\x02\u1780\u1781\x07U\x02\x02" + + "\u1781\u1782\x07V\x02\x02\u1782\u1783\x07F\x02\x02\u1783\u1784\x07a\x02" + + "\x02\u1784\u1785\x07E\x02\x02\u1785\u1786\x07Q\x02\x02\u1786\u1787\x07" + + "O\x02\x02\u1787\u1788\x07R\x02\x02\u1788\u1789\x07T\x02\x02\u1789\u178A" + + "\x07G\x02\x02\u178A\u178B\x07U\x02\x02\u178B\u178C\x07U\x02\x02\u178C" + + "\u178D\x07K\x02\x02\u178D\u178E\x07Q\x02\x02\u178E\u178F\x07P\x02\x02" + + "\u178F\u1790\x07a\x02\x02\u1790\u1791\x07N\x02\x02\u1791\u1792\x07G\x02" + + "\x02\u1792\u1793\x07X\x02\x02\u1793\u1794\x07G\x02\x02\u1794\u1795\x07" + + "N\x02\x02\u1795\u03BC\x03\x02"; + private static readonly _serializedATNSegment12: string = + "\x02\x02\u1796\u1797\x07O\x02\x02\u1797\u1798\x07C\x02\x02\u1798\u1799" + + "\x07Z\x02\x02\u1799\u179A\x07a\x02\x02\u179A\u179B\x07E\x02\x02\u179B" + + "\u179C\x07Q\x02\x02\u179C\u179D\x07P\x02\x02\u179D\u179E\x07P\x02\x02" + + "\u179E\u179F\x07G\x02\x02\u179F\u17A0\x07E\x02\x02\u17A0\u17A1\x07V\x02" + + "\x02\u17A1\u17A2\x07K\x02\x02\u17A2\u17A3\x07Q\x02\x02\u17A3\u17A4\x07" + + "P\x02\x02\u17A4\u17A5\x07U\x02\x02\u17A5\u17A6\x07a\x02\x02\u17A6\u17A7" + + "\x07R\x02\x02\u17A7\u17A8\x07G\x02\x02\u17A8\u17A9\x07T\x02\x02\u17A9" + + "\u17AA\x07a\x02\x02\u17AA\u17AB\x07J\x02\x02\u17AB\u17AC\x07Q\x02\x02" + + "\u17AC\u17AD\x07W\x02\x02\u17AD\u17AE\x07T\x02\x02\u17AE\u03BE\x03\x02" + + "\x02\x02\u17AF\u17B0\x07O\x02\x02\u17B0\u17B1\x07C\x02\x02\u17B1\u17B2" + + "\x07Z\x02\x02\u17B2\u17B3\x07a\x02\x02\u17B3\u17B4\x07S\x02\x02\u17B4" + + "\u17B5\x07W\x02\x02\u17B5\u17B6\x07G\x02\x02\u17B6\u17B7\x07T\x02\x02" + + "\u17B7\u17B8\x07K\x02\x02\u17B8\u17B9\x07G\x02\x02\u17B9\u17BA\x07U\x02" + + "\x02\u17BA\u17BB\x07a\x02\x02\u17BB\u17BC\x07R\x02\x02\u17BC\u17BD\x07" + + "G\x02\x02\u17BD\u17BE\x07T\x02\x02\u17BE\u17BF\x07a\x02\x02\u17BF\u17C0" + + "\x07J\x02\x02\u17C0\u17C1\x07Q\x02\x02\u17C1\u17C2\x07W\x02\x02\u17C2" + + "\u17C3\x07T\x02\x02\u17C3\u03C0\x03\x02\x02\x02\u17C4\u17C5\x07O\x02\x02" + + "\u17C5\u17C6\x07C\x02\x02\u17C6\u17C7\x07Z\x02\x02\u17C7\u17C8\x07a\x02" + + "\x02\u17C8\u17C9\x07T\x02\x02\u17C9\u17CA\x07Q\x02\x02\u17CA\u17CB\x07" + + "Y\x02\x02\u17CB\u17CC\x07U\x02\x02\u17CC\u03C2\x03\x02\x02\x02\u17CD\u17CE" + + "\x07O\x02\x02\u17CE\u17CF\x07C\x02\x02\u17CF\u17D0\x07Z\x02\x02\u17D0" + + "\u17D1\x07a\x02\x02\u17D1\u17D2\x07U\x02\x02\u17D2\u17D3\x07K\x02\x02" + + "\u17D3\u17D4\x07\\\x02\x02\u17D4\u17D5\x07G\x02\x02\u17D5\u03C4\x03\x02" + + "\x02\x02\u17D6\u17D7\x07O\x02\x02\u17D7\u17D8\x07C\x02\x02\u17D8\u17D9" + + "\x07Z\x02\x02\u17D9\u17DA\x07a\x02\x02\u17DA\u17DB\x07W\x02\x02\u17DB" + + "\u17DC\x07R\x02\x02\u17DC\u17DD\x07F\x02\x02\u17DD\u17DE\x07C\x02\x02" + + "\u17DE\u17DF\x07V\x02\x02\u17DF\u17E0\x07G\x02\x02\u17E0\u17E1\x07U\x02" + + "\x02\u17E1\u17E2\x07a\x02\x02\u17E2\u17E3\x07R\x02\x02\u17E3\u17E4\x07" + + "G\x02\x02\u17E4\u17E5\x07T\x02\x02\u17E5\u17E6\x07a\x02\x02\u17E6\u17E7" + + "\x07J\x02\x02\u17E7\u17E8\x07Q\x02\x02\u17E8\u17E9\x07W\x02\x02\u17E9" + + "\u17EA\x07T\x02\x02\u17EA\u03C6\x03\x02\x02\x02\u17EB\u17EC\x07O\x02\x02" + + "\u17EC\u17ED\x07C\x02\x02\u17ED\u17EE\x07Z\x02\x02\u17EE\u17EF\x07a\x02" + + "\x02\u17EF\u17F0\x07W\x02\x02\u17F0\u17F1\x07U\x02\x02\u17F1\u17F2\x07" + + "G\x02\x02\u17F2\u17F3\x07T\x02\x02\u17F3\u17F4\x07a\x02\x02\u17F4\u17F5" + + "\x07E\x02\x02\u17F5\u17F6\x07Q\x02\x02\u17F6\u17F7\x07P\x02\x02\u17F7" + + "\u17F8\x07P\x02\x02\u17F8\u17F9\x07G\x02\x02\u17F9\u17FA\x07E\x02\x02" + + "\u17FA\u17FB\x07V\x02\x02\u17FB\u17FC\x07K\x02\x02\u17FC\u17FD\x07Q\x02" + + "\x02\u17FD\u17FE\x07P\x02\x02\u17FE\u17FF\x07U\x02\x02\u17FF\u03C8\x03" + + "\x02\x02\x02\u1800\u1801\x07O\x02\x02\u1801\u1802\x07G\x02\x02\u1802\u1803" + + "\x07F\x02\x02\u1803\u1804\x07K\x02\x02\u1804\u1805\x07W\x02\x02\u1805" + + "\u1806\x07O\x02\x02\u1806\u03CA\x03\x02\x02\x02\u1807\u1808\x07O\x02\x02" + + "\u1808\u1809\x07G\x02\x02\u1809\u180A\x07O\x02\x02\u180A\u180B\x07D\x02" + + "\x02\u180B\u180C\x07G\x02\x02\u180C\u180D\x07T\x02\x02\u180D\u03CC\x03" + + "\x02\x02\x02\u180E\u180F\x07O\x02\x02\u180F\u1810\x07G\x02\x02\u1810\u1811" + + "\x07T\x02\x02\u1811\u1812\x07I\x02\x02\u1812\u1813\x07G\x02\x02\u1813" + + "\u03CE\x03\x02\x02\x02\u1814\u1815\x07O\x02\x02\u1815\u1816\x07G\x02\x02" + + "\u1816\u1817\x07U\x02\x02\u1817\u1818\x07U\x02\x02\u1818\u1819\x07C\x02" + + "\x02\u1819\u181A\x07I\x02\x02\u181A\u181B\x07G\x02\x02\u181B\u181C\x07" + + "a\x02\x02\u181C\u181D\x07V\x02\x02\u181D\u181E\x07G\x02\x02\u181E\u181F" + + "\x07Z\x02\x02\u181F\u1820\x07V\x02\x02\u1820\u03D0\x03\x02\x02\x02\u1821" + + "\u1822\x07O\x02\x02\u1822\u1823\x07K\x02\x02\u1823\u1824\x07F\x02\x02" + + "\u1824\u03D2\x03\x02\x02\x02\u1825\u1826\x07O\x02\x02\u1826\u1827\x07" + + "K\x02\x02\u1827\u1828\x07I\x02\x02\u1828\u1829\x07T\x02\x02\u1829\u182A" + + "\x07C\x02\x02\u182A\u182B\x07V\x02\x02\u182B\u182C\x07G\x02\x02\u182C" + + "\u03D4\x03\x02\x02\x02\u182D\u182E\x07O\x02\x02\u182E\u182F\x07K\x02\x02" + + "\u182F\u1830\x07P\x02\x02\u1830\u1831\x07a\x02\x02\u1831\u1832\x07T\x02" + + "\x02\u1832\u1833\x07Q\x02\x02\u1833\u1834\x07Y\x02\x02\u1834\u1835\x07" + + "U\x02\x02\u1835\u03D6\x03\x02\x02\x02\u1836\u1837\x07O\x02\x02\u1837\u1838" + + "\x07Q\x02\x02\u1838\u1839\x07F\x02\x02\u1839\u183A\x07G\x02\x02\u183A" + + "\u03D8\x03\x02\x02\x02\u183B\u183C\x07O\x02\x02\u183C\u183D\x07Q\x02\x02" + + "\u183D\u183E\x07F\x02\x02\u183E\u183F\x07K\x02\x02\u183F\u1840\x07H\x02" + + "\x02\u1840\u1841\x07[\x02\x02\u1841\u03DA\x03\x02\x02\x02\u1842\u1843" + + "\x07O\x02\x02\u1843\u1844\x07W\x02\x02\u1844\u1845\x07V\x02\x02\u1845" + + "\u1846\x07G\x02\x02\u1846\u1847\x07Z\x02\x02\u1847\u03DC\x03\x02\x02\x02" + + "\u1848\u1849\x07O\x02\x02\u1849\u184A\x07[\x02\x02\u184A\u184B\x07U\x02" + + "\x02\u184B\u184C\x07S\x02\x02\u184C\u184D\x07N\x02\x02\u184D\u03DE\x03" + + "\x02\x02\x02\u184E\u184F\x07O\x02\x02\u184F\u1850\x07[\x02\x02\u1850\u1851" + + "\x07U\x02\x02\u1851\u1852\x07S\x02\x02\u1852\u1853\x07N\x02\x02\u1853" + + "\u1854\x07a\x02\x02\u1854\u1855\x07G\x02\x02\u1855\u1856\x07T\x02\x02" + + "\u1856\u1857\x07T\x02\x02\u1857\u1858\x07P\x02\x02\u1858\u1859\x07Q\x02" + + "\x02\u1859\u03E0\x03\x02\x02\x02\u185A\u185B\x07P\x02\x02\u185B\u185C" + + "\x07C\x02\x02\u185C\u185D\x07O\x02\x02\u185D\u185E\x07G\x02\x02\u185E" + + "\u03E2\x03\x02\x02\x02\u185F\u1860\x07P\x02\x02\u1860\u1861\x07C\x02\x02" + + "\u1861\u1862\x07O\x02\x02\u1862\u1863\x07G\x02\x02\u1863\u1864\x07U\x02" + + "\x02\u1864\u03E4\x03\x02\x02\x02\u1865\u1866\x07P\x02\x02\u1866\u1867" + + "\x07E\x02\x02\u1867\u1868\x07J\x02\x02\u1868\u1869\x07C\x02\x02\u1869" + + "\u186A\x07T\x02\x02\u186A\u03E6\x03\x02\x02\x02\u186B\u186C\x07P\x02\x02" + + "\u186C\u186D\x07G\x02\x02\u186D\u186E\x07V\x02\x02\u186E\u186F\x07Y\x02" + + "\x02\u186F\u1870\x07Q\x02\x02\u1870\u1871\x07T\x02\x02\u1871\u1872\x07" + + "M\x02\x02\u1872\u1873\x07a\x02\x02\u1873\u1874\x07P\x02\x02\u1874\u1875" + + "\x07C\x02\x02\u1875\u1876\x07O\x02\x02\u1876\u1877\x07G\x02\x02\u1877" + + "\u1878\x07U\x02\x02\u1878\u1879\x07R\x02\x02\u1879\u187A\x07C\x02\x02" + + "\u187A\u187B\x07E\x02\x02\u187B\u187C\x07G\x02\x02\u187C\u03E8\x03\x02" + + "\x02\x02\u187D\u187E\x07P\x02\x02\u187E\u187F\x07G\x02\x02\u187F\u1880" + + "\x07X\x02\x02\u1880\u1881\x07G\x02\x02\u1881\u1882\x07T\x02\x02\u1882" + + "\u03EA\x03\x02\x02\x02\u1883\u1884\x07P\x02\x02\u1884\u1885\x07G\x02\x02" + + "\u1885\u1886\x07Z\x02\x02\u1886\u1887\x07V\x02\x02\u1887\u03EC\x03\x02" + + "\x02\x02\u1888\u1889\x07P\x02\x02\u1889\u188A\x07Q\x02\x02\u188A\u03EE" + + "\x03\x02\x02\x02\u188B\u188C\x07P\x02\x02\u188C\u188D\x07Q\x02\x02\u188D" + + "\u188E\x07Y\x02\x02\u188E\u188F\x07C\x02\x02\u188F\u1890\x07K\x02\x02" + + "\u1890\u1891\x07V\x02\x02\u1891\u03F0\x03\x02\x02\x02\u1892\u1893\x07" + + "P\x02\x02\u1893\u1894\x07Q\x02\x02\u1894\u1895\x07F\x02\x02\u1895\u1896" + + "\x07G\x02\x02\u1896\u1897\x07I\x02\x02\u1897\u1898\x07T\x02\x02\u1898" + + "\u1899\x07Q\x02\x02\u1899\u189A\x07W\x02\x02\u189A\u189B\x07R\x02\x02" + + "\u189B\u03F2\x03\x02\x02\x02\u189C\u189D\x07P\x02\x02\u189D\u189E\x07" + + "Q\x02\x02\u189E\u189F\x07P\x02\x02\u189F\u18A0\x07G\x02\x02\u18A0\u03F4" + + "\x03\x02\x02\x02\u18A1\u18A2\x07Q\x02\x02\u18A2\u18A3\x07F\x02\x02\u18A3" + + "\u18A4\x07D\x02\x02\u18A4\u18A5\x07E\x02\x02\u18A5\u03F6\x03\x02\x02\x02" + + "\u18A6\u18A7\x07Q\x02\x02\u18A7\u18A8\x07H\x02\x02\u18A8\u18A9\x07H\x02" + + "\x02\u18A9\u03F8\x03\x02\x02\x02\u18AA\u18AB\x07Q\x02\x02\u18AB\u18AC" + + "\x07H\x02\x02\u18AC\u18AD\x07H\x02\x02\u18AD\u18AE\x07N\x02\x02\u18AE" + + "\u18AF\x07K\x02\x02\u18AF\u18B0\x07P\x02\x02\u18B0\u18B1\x07G\x02\x02" + + "\u18B1\u03FA\x03\x02\x02\x02\u18B2\u18B3\x07Q\x02\x02\u18B3\u18B4\x07" + + "H\x02\x02\u18B4\u18B5\x07H\x02\x02\u18B5\u18B6\x07U\x02\x02\u18B6\u18B7" + + "\x07G\x02\x02\u18B7\u18B8\x07V\x02\x02\u18B8\u03FC\x03\x02\x02\x02\u18B9" + + "\u18BA\x07Q\x02\x02\u18BA\u18BB\x07H\x02\x02\u18BB\u03FE\x03\x02\x02\x02" + + "\u18BC\u18BD\x07Q\x02\x02\u18BD\u18BE\x07N\x02\x02\u18BE\u18BF\x07F\x02" + + "\x02\u18BF\u0400\x03\x02\x02\x02\u18C0\u18C1\x07Q\x02\x02\u18C1\u18C2" + + "\x07N\x02\x02\u18C2\u18C3\x07F\x02\x02\u18C3\u18C4\x07a\x02\x02\u18C4" + + "\u18C5\x07R\x02\x02\u18C5\u18C6\x07C\x02\x02\u18C6\u18C7\x07U\x02\x02" + + "\u18C7\u18C8\x07U\x02\x02\u18C8\u18C9\x07Y\x02\x02\u18C9\u18CA\x07Q\x02" + + "\x02\u18CA\u18CB\x07T\x02\x02\u18CB\u18CC\x07F\x02\x02\u18CC\u0402\x03" + + "\x02\x02\x02\u18CD\u18CE\x07Q\x02\x02\u18CE\u18CF\x07P\x02\x02\u18CF\u18D0" + + "\x07G\x02\x02\u18D0\u0404\x03\x02\x02\x02\u18D1\u18D2\x07Q\x02\x02\u18D2" + + "\u18D3\x07P\x02\x02\u18D3\u18D4\x07N\x02\x02\u18D4\u18D5\x07K\x02\x02" + + "\u18D5\u18D6\x07P\x02\x02\u18D6\u18D7\x07G\x02\x02\u18D7\u0406\x03\x02" + + "\x02\x02\u18D8\u18D9\x07Q\x02\x02\u18D9\u18DA\x07P\x02\x02\u18DA\u18DB" + + "\x07N\x02\x02\u18DB\u18DC\x07[\x02\x02\u18DC\u0408\x03\x02\x02\x02\u18DD" + + "\u18DE\x07Q\x02\x02\u18DE\u18DF\x07R\x02\x02\u18DF\u18E0\x07G\x02\x02" + + "\u18E0\u18E1\x07P\x02\x02\u18E1\u040A\x03\x02\x02\x02\u18E2\u18E3\x07" + + "Q\x02\x02\u18E3\u18E4\x07R\x02\x02\u18E4\u18E5\x07V\x02\x02\u18E5\u18E6" + + "\x07K\x02\x02\u18E6\u18E7\x07O\x02\x02\u18E7\u18E8\x07K\x02\x02\u18E8" + + "\u18E9\x07\\\x02\x02\u18E9\u18EA\x07G\x02\x02\u18EA\u18EB\x07T\x02\x02" + + "\u18EB\u18EC\x07a\x02\x02\u18EC\u18ED\x07E\x02\x02\u18ED\u18EE\x07Q\x02" + + "\x02\u18EE\u18EF\x07U\x02\x02\u18EF\u18F0\x07V\x02\x02\u18F0\u18F1\x07" + + "U\x02\x02\u18F1\u040C\x03\x02\x02\x02\u18F2\u18F3\x07Q\x02\x02\u18F3\u18F4" + + "\x07R\x02\x02\u18F4\u18F5\x07V\x02\x02\u18F5\u18F6\x07K\x02\x02\u18F6" + + "\u18F7\x07Q\x02\x02\u18F7\u18F8\x07P\x02\x02\u18F8\u18F9\x07U\x02\x02" + + "\u18F9\u040E\x03\x02\x02\x02\u18FA\u18FB\x07Q\x02\x02\u18FB\u18FC\x07" + + "Y\x02\x02\u18FC\u18FD\x07P\x02\x02\u18FD\u18FE\x07G\x02\x02\u18FE\u18FF" + + "\x07T\x02\x02\u18FF\u0410\x03\x02\x02\x02\u1900\u1901\x07R\x02\x02\u1901" + + "\u1902\x07C\x02\x02\u1902\u1903\x07E\x02\x02\u1903\u1904\x07M\x02\x02" + + "\u1904\u1905\x07a\x02\x02\u1905\u1906\x07M\x02\x02\u1906\u1907\x07G\x02" + + "\x02\u1907\u1908\x07[\x02\x02\u1908\u1909\x07U\x02\x02\u1909\u0412\x03" + + "\x02\x02\x02\u190A\u190B\x07R\x02\x02\u190B\u190C\x07C\x02\x02\u190C\u190D" + + "\x07I\x02\x02\u190D\u190E\x07G\x02\x02\u190E\u0414\x03\x02\x02\x02\u190F" + + "\u1910\x07R\x02\x02\u1910\u1911\x07C\x02\x02\u1911\u1912\x07I\x02\x02" + + "\u1912\u1913\x07G\x02\x02\u1913\u1914\x07a\x02\x02\u1914\u1915\x07E\x02" + + "\x02\u1915\u1916\x07J\x02\x02\u1916\u1917\x07G\x02\x02\u1917\u1918\x07" + + "E\x02\x02\u1918\u1919\x07M\x02\x02\u1919\u191A\x07U\x02\x02\u191A\u191B" + + "\x07W\x02\x02\u191B\u191C\x07O\x02\x02\u191C\u0416\x03\x02\x02\x02\u191D" + + "\u191E\x07R\x02\x02\u191E\u191F\x07C\x02\x02\u191F\u1920\x07I\x02\x02" + + "\u1920\u1921\x07G\x02\x02\u1921\u1922\x07a\x02\x02\u1922\u1923\x07E\x02" + + "\x02\u1923\u1924\x07Q\x02\x02\u1924\u1925\x07O\x02\x02\u1925\u1926\x07" + + "R\x02\x02\u1926\u1927\x07T\x02\x02\u1927\u1928\x07G\x02\x02\u1928\u1929" + + "\x07U\x02\x02\u1929\u192A\x07U\x02\x02\u192A\u192B\x07G\x02\x02\u192B" + + "\u192C\x07F\x02\x02\u192C\u0418\x03\x02\x02\x02\u192D\u192E\x07R\x02\x02" + + "\u192E\u192F\x07C\x02\x02\u192F\u1930\x07I\x02\x02\u1930\u1931\x07G\x02" + + "\x02\u1931\u1932\x07a\x02\x02\u1932\u1933\x07E\x02\x02\u1933\u1934\x07" + + "Q\x02\x02\u1934\u1935\x07O\x02\x02\u1935\u1936\x07R\x02\x02\u1936\u1937" + + "\x07T\x02\x02\u1937\u1938\x07G\x02\x02\u1938\u1939\x07U\x02\x02\u1939" + + "\u193A\x07U\x02\x02\u193A\u193B\x07K\x02\x02\u193B\u193C\x07Q\x02\x02" + + "\u193C\u193D\x07P\x02\x02\u193D\u193E\x07a\x02\x02\u193E\u193F\x07N\x02" + + "\x02\u193F\u1940\x07G\x02\x02\u1940\u1941\x07X\x02\x02\u1941\u1942\x07" + + "G\x02\x02\u1942\u1943\x07N\x02\x02\u1943\u041A\x03\x02\x02\x02\u1944\u1945" + + "\x07R\x02\x02\u1945\u1946\x07C\x02\x02\u1946\u1947\x07T\x02\x02\u1947" + + "\u1948\x07U\x02\x02\u1948\u1949\x07G\x02\x02\u1949\u194A\x07T\x02\x02" + + "\u194A\u041C\x03\x02\x02\x02\u194B\u194C\x07R\x02\x02\u194C\u194D\x07" + + "C\x02\x02\u194D\u194E\x07T\x02\x02\u194E\u194F\x07V\x02\x02\u194F\u1950" + + "\x07K\x02\x02\u1950\u1951\x07C\x02\x02\u1951\u1952\x07N\x02\x02\u1952" + + "\u041E\x03\x02\x02\x02\u1953\u1954\x07R\x02\x02\u1954\u1955\x07C\x02\x02" + + "\u1955\u1956\x07T\x02\x02\u1956\u1957\x07V\x02\x02\u1957\u1958\x07K\x02" + + "\x02\u1958\u1959\x07V\x02\x02\u1959\u195A\x07K\x02\x02\u195A\u195B\x07" + + "Q\x02\x02\u195B\u195C\x07P\x02\x02\u195C\u195D\x07K\x02\x02\u195D\u195E" + + "\x07P\x02\x02\u195E\u195F\x07I\x02\x02\u195F\u0420\x03\x02\x02\x02\u1960" + + "\u1961\x07R\x02\x02\u1961\u1962\x07C\x02\x02\u1962\u1963\x07T\x02\x02" + + "\u1963\u1964\x07V\x02\x02\u1964\u1965\x07K\x02\x02\u1965\u1966\x07V\x02" + + "\x02\u1966\u1967\x07K\x02\x02\u1967\u1968\x07Q\x02\x02\u1968\u1969\x07" + + "P\x02\x02\u1969\u196A\x07U\x02\x02\u196A\u0422\x03\x02\x02\x02\u196B\u196C" + + "\x07R\x02\x02\u196C\u196D\x07C\x02\x02\u196D\u196E\x07U\x02\x02\u196E" + + "\u196F\x07U\x02\x02\u196F\u1970\x07Y\x02\x02\u1970\u1971\x07Q\x02\x02" + + "\u1971\u1972\x07T\x02\x02\u1972\u1973\x07F\x02\x02\u1973\u0424\x03\x02" + + "\x02\x02\u1974\u1975\x07R\x02\x02\u1975\u1976\x07C\x02\x02\u1976\u1977" + + "\x07U\x02\x02\u1977\u1978\x07U\x02\x02\u1978\u1979\x07Y\x02\x02\u1979" + + "\u197A\x07Q\x02\x02\u197A\u197B\x07T\x02\x02\u197B\u197C\x07F\x02\x02" + + "\u197C\u197D\x07a\x02\x02\u197D\u197E\x07N\x02\x02\u197E\u197F\x07Q\x02" + + "\x02\u197F\u1980\x07E\x02\x02\u1980\u1981\x07M\x02\x02\u1981\u1982\x07" + + "a\x02\x02\u1982\u1983\x07V\x02\x02\u1983\u1984\x07K\x02\x02\u1984\u1985" + + "\x07O\x02\x02\u1985\u1986\x07G\x02\x02\u1986\u0426\x03\x02\x02\x02\u1987" + + "\u1988\x07R\x02\x02\u1988\u1989\x07G\x02\x02\u1989\u198A\x07T\x02\x02" + + "\u198A\u198B\x07U\x02\x02\u198B\u198C\x07K\x02\x02\u198C\u198D\x07U\x02" + + "\x02\u198D\u198E\x07V\x02\x02\u198E\u0428\x03\x02\x02\x02\u198F\u1990" + + "\x07R\x02\x02\u1990\u1991\x07G\x02\x02\u1991\u1992\x07T\x02\x02\u1992" + + "\u1993\x07U\x02\x02\u1993\u1994\x07K\x02\x02\u1994\u1995\x07U\x02\x02" + + "\u1995\u1996\x07V\x02\x02\u1996\u1997\x07a\x02\x02\u1997\u1998\x07Q\x02" + + "\x02\u1998\u1999\x07P\x02\x02\u1999\u199A\x07N\x02\x02\u199A\u199B\x07" + + "[\x02\x02\u199B\u042A\x03\x02\x02\x02\u199C\u199D\x07R\x02\x02\u199D\u199E" + + "\x07J\x02\x02\u199E\u199F\x07C\x02\x02\u199F\u19A0\x07U\x02\x02\u19A0" + + "\u19A1\x07G\x02\x02\u19A1\u042C\x03\x02\x02\x02\u19A2\u19A3\x07R\x02\x02" + + "\u19A3\u19A4\x07N\x02\x02\u19A4\u19A5\x07W\x02\x02\u19A5\u19A6\x07I\x02" + + "\x02\u19A6\u19A7\x07K\x02\x02\u19A7\u19A8\x07P\x02\x02\u19A8\u042E\x03" + + "\x02\x02\x02\u19A9\u19AA\x07R\x02\x02\u19AA\u19AB\x07N\x02\x02\u19AB\u19AC" + + "\x07W\x02\x02\u19AC\u19AD\x07I\x02\x02\u19AD\u19AE\x07K\x02\x02\u19AE" + + "\u19AF\x07P\x02\x02\u19AF\u19B0\x07a\x02\x02\u19B0\u19B1\x07F\x02\x02" + + "\u19B1\u19B2\x07K\x02\x02\u19B2\u19B3\x07T\x02\x02\u19B3\u0430\x03\x02" + + "\x02\x02\u19B4\u19B5\x07R\x02\x02\u19B5\u19B6\x07N\x02\x02\u19B6\u19B7" + + "\x07W\x02\x02\u19B7\u19B8\x07I\x02\x02\u19B8\u19B9\x07K\x02\x02\u19B9" + + "\u19BA\x07P\x02\x02\u19BA\u19BB\x07U\x02\x02\u19BB\u0432\x03\x02\x02\x02" + + "\u19BC\u19BD\x07R\x02\x02\u19BD\u19BE\x07Q\x02\x02\u19BE\u19BF\x07T\x02" + + "\x02\u19BF\u19C0\x07V\x02\x02\u19C0\u0434\x03\x02\x02\x02\u19C1\u19C2" + + "\x07R\x02\x02\u19C2\u19C3\x07T\x02\x02\u19C3\u19C4\x07G\x02\x02\u19C4" + + "\u19C5\x07E\x02\x02\u19C5\u19C6\x07G\x02\x02\u19C6\u19C7\x07F\x02\x02" + + "\u19C7\u19C8\x07G\x02\x02\u19C8\u19C9\x07U\x02\x02\u19C9\u0436\x03\x02" + + "\x02\x02\u19CA\u19CB\x07R\x02\x02\u19CB\u19CC\x07T\x02\x02\u19CC\u19CD" + + "\x07G\x02\x02\u19CD\u19CE\x07E\x02\x02\u19CE\u19CF\x07G\x02\x02\u19CF" + + "\u19D0\x07F\x02\x02\u19D0\u19D1\x07K\x02\x02\u19D1\u19D2\x07P\x02\x02" + + "\u19D2\u19D3\x07I\x02\x02\u19D3\u0438\x03\x02\x02\x02\u19D4\u19D5\x07" + + "R\x02\x02\u19D5\u19D6\x07T\x02\x02\u19D6\u19D7\x07G\x02\x02\u19D7\u19D8" + + "\x07R\x02\x02\u19D8\u19D9\x07C\x02\x02\u19D9\u19DA\x07T\x02\x02\u19DA" + + "\u19DB\x07G\x02\x02\u19DB\u043A\x03\x02\x02\x02\u19DC\u19DD\x07R\x02\x02" + + "\u19DD\u19DE\x07T\x02\x02\u19DE\u19DF\x07G\x02\x02\u19DF\u19E0\x07U\x02" + + "\x02\u19E0\u19E1\x07G\x02\x02\u19E1\u19E2\x07T\x02\x02\u19E2\u19E3\x07" + + "X\x02\x02\u19E3\u19E4\x07G\x02\x02\u19E4\u043C\x03\x02\x02\x02\u19E5\u19E6" + + "\x07R\x02\x02\u19E6\u19E7\x07T\x02\x02\u19E7\u19E8\x07G\x02\x02\u19E8" + + "\u19E9\x07X\x02\x02\u19E9\u043E\x03\x02\x02\x02\u19EA\u19EB\x07R\x02\x02" + + "\u19EB\u19EC\x07T\x02\x02\u19EC\u19ED\x07K\x02\x02\u19ED\u19EE\x07X\x02" + + "\x02\u19EE\u19EF\x07K\x02\x02\u19EF\u19F0\x07N\x02\x02\u19F0\u19F1\x07" + + "G\x02\x02\u19F1\u19F2\x07I\x02\x02\u19F2\u19F3\x07G\x02\x02\u19F3\u19F4" + + "\x07a\x02\x02\u19F4\u19F5\x07E\x02\x02\u19F5\u19F6\x07J\x02\x02\u19F6" + + "\u19F7\x07G\x02\x02\u19F7\u19F8\x07E\x02\x02\u19F8\u19F9\x07M\x02\x02" + + "\u19F9\u19FA\x07U\x02\x02\u19FA\u19FB\x07a\x02\x02\u19FB\u19FC\x07W\x02" + + "\x02\u19FC\u19FD\x07U\x02\x02\u19FD\u19FE\x07G\x02\x02\u19FE\u19FF\x07" + + "T\x02\x02\u19FF\u0440\x03\x02\x02\x02\u1A00\u1A01\x07R\x02\x02\u1A01\u1A02" + + "\x07T\x02\x02\u1A02\u1A03\x07Q\x02\x02\u1A03\u1A04\x07E\x02\x02\u1A04" + + "\u1A05\x07G\x02\x02\u1A05\u1A06\x07U\x02\x02\u1A06\u1A07\x07U\x02\x02" + + "\u1A07\u1A08\x07N\x02\x02\u1A08\u1A09\x07K\x02\x02\u1A09\u1A0A\x07U\x02" + + "\x02\u1A0A\u1A0B\x07V\x02\x02\u1A0B\u0442\x03\x02\x02\x02\u1A0C\u1A0D" + + "\x07R\x02\x02\u1A0D\u1A0E\x07T\x02\x02\u1A0E\u1A0F\x07Q\x02\x02\u1A0F" + + "\u1A10\x07H\x02\x02\u1A10\u1A11\x07K\x02\x02\u1A11\u1A12\x07N\x02\x02" + + "\u1A12\u1A13\x07G\x02\x02\u1A13\u0444\x03\x02\x02\x02\u1A14\u1A15\x07" + + "R\x02\x02\u1A15\u1A16\x07T\x02\x02\u1A16\u1A17\x07Q\x02\x02\u1A17\u1A18" + + "\x07H\x02\x02\u1A18\u1A19\x07K\x02\x02\u1A19\u1A1A\x07N\x02\x02\u1A1A" + + "\u1A1B\x07G\x02\x02\u1A1B\u1A1C\x07U\x02\x02\u1A1C\u0446\x03\x02\x02\x02" + + "\u1A1D\u1A1E\x07R\x02\x02\u1A1E\u1A1F\x07T\x02\x02\u1A1F\u1A20\x07Q\x02" + + "\x02\u1A20\u1A21\x07Z\x02\x02\u1A21\u1A22\x07[\x02\x02\u1A22\u0448\x03" + + "\x02\x02\x02\u1A23\u1A24\x07S\x02\x02\u1A24\u1A25\x07W\x02\x02\u1A25\u1A26" + + "\x07G\x02\x02\u1A26\u1A27\x07T\x02\x02\u1A27\u1A28\x07[\x02\x02\u1A28" + + "\u044A\x03\x02\x02\x02\u1A29\u1A2A\x07S\x02\x02\u1A2A\u1A2B\x07W\x02\x02" + + "\u1A2B\u1A2C\x07K\x02\x02\u1A2C\u1A2D\x07E\x02\x02\u1A2D\u1A2E\x07M\x02" + + "\x02\u1A2E\u044C\x03\x02\x02\x02\u1A2F\u1A30\x07T\x02\x02\u1A30\u1A31" + + "\x07G\x02\x02\u1A31\u1A32\x07D\x02\x02\u1A32\u1A33\x07W\x02\x02\u1A33" + + "\u1A34\x07K\x02\x02\u1A34\u1A35\x07N\x02\x02\u1A35\u1A36\x07F\x02\x02" + + "\u1A36\u044E\x03\x02\x02\x02\u1A37\u1A38\x07T\x02\x02\u1A38\u1A39\x07" + + "G\x02\x02\u1A39\u1A3A\x07E\x02\x02\u1A3A\u1A3B\x07Q\x02\x02\u1A3B\u1A3C" + + "\x07X\x02\x02\u1A3C\u1A3D\x07G\x02\x02\u1A3D\u1A3E\x07T\x02\x02\u1A3E" + + "\u0450\x03\x02\x02\x02\u1A3F\u1A40\x07T\x02\x02\u1A40\u1A41\x07G\x02\x02" + + "\u1A41\u1A42\x07E\x02\x02\u1A42\u1A43\x07W\x02\x02\u1A43\u1A44\x07T\x02" + + "\x02\u1A44\u1A45\x07U\x02\x02\u1A45\u1A46\x07K\x02\x02\u1A46\u1A47\x07" + + "X\x02\x02\u1A47\u1A48\x07G\x02\x02\u1A48\u0452\x03\x02\x02\x02\u1A49\u1A4A" + + "\x07T\x02\x02\u1A4A\u1A4B\x07G\x02\x02\u1A4B\u1A4C\x07F\x02\x02\u1A4C" + + "\u1A4D\x07Q\x02\x02\u1A4D\u1A4E\x07a\x02\x02\u1A4E\u1A4F\x07D\x02\x02" + + "\u1A4F\u1A50\x07W\x02\x02\u1A50\u1A51\x07H\x02\x02\u1A51\u1A52\x07H\x02" + + "\x02\u1A52\u1A53\x07G\x02\x02\u1A53\u1A54\x07T\x02\x02\u1A54\u1A55\x07" + + "a\x02\x02\u1A55\u1A56\x07U\x02\x02\u1A56\u1A57\x07K\x02\x02\u1A57\u1A58" + + "\x07\\\x02\x02\u1A58\u1A59\x07G\x02\x02\u1A59\u0454\x03\x02\x02\x02\u1A5A" + + "\u1A5B\x07T\x02\x02\u1A5B\u1A5C\x07G\x02\x02\u1A5C\u1A5D\x07F\x02\x02" + + "\u1A5D\u1A5E\x07W\x02\x02\u1A5E\u1A5F\x07P\x02\x02\u1A5F\u1A60\x07F\x02" + + "\x02\u1A60\u1A61\x07C\x02\x02\u1A61\u1A62\x07P\x02\x02\u1A62\u1A63\x07" + + "V\x02\x02\u1A63\u0456\x03\x02\x02\x02\u1A64\u1A65\x07T\x02\x02\u1A65\u1A66" + + "\x07G\x02\x02\u1A66\u1A67\x07I\x02\x02\u1A67\u1A68\x07K\x02\x02\u1A68" + + "\u1A69\x07U\x02\x02\u1A69\u1A6A\x07V\x02\x02\u1A6A\u1A6B\x07T\x02\x02" + + "\u1A6B\u1A6C\x07C\x02\x02\u1A6C\u1A6D\x07V\x02\x02\u1A6D\u1A6E\x07K\x02" + + "\x02\u1A6E\u1A6F\x07Q\x02\x02\u1A6F\u1A70\x07P\x02\x02\u1A70\u0458\x03" + + "\x02\x02\x02\u1A71\u1A72\x07T\x02\x02\u1A72\u1A73\x07G\x02\x02\u1A73\u1A74" + + "\x07N\x02\x02\u1A74\u1A75\x07C\x02\x02\u1A75\u1A76\x07[\x02\x02\u1A76" + + "\u045A\x03\x02\x02\x02\u1A77\u1A78\x07T\x02\x02\u1A78\u1A79\x07G\x02\x02" + + "\u1A79\u1A7A\x07N\x02\x02\u1A7A\u1A7B\x07C\x02\x02\u1A7B\u1A7C\x07[\x02" + + "\x02\u1A7C\u1A7D\x07a\x02\x02\u1A7D\u1A7E\x07N\x02\x02\u1A7E\u1A7F\x07" + + "Q\x02\x02\u1A7F\u1A80\x07I\x02\x02\u1A80\u1A81\x07a\x02\x02\u1A81\u1A82" + + "\x07H\x02\x02\u1A82\u1A83\x07K\x02\x02\u1A83\u1A84\x07N\x02\x02\u1A84" + + "\u1A85\x07G\x02\x02\u1A85\u045C\x03\x02\x02\x02\u1A86\u1A87\x07T\x02\x02" + + "\u1A87\u1A88\x07G\x02\x02\u1A88\u1A89\x07N\x02\x02\u1A89\u1A8A\x07C\x02" + + "\x02\u1A8A\u1A8B\x07[\x02\x02\u1A8B\u1A8C\x07a\x02\x02\u1A8C\u1A8D\x07" + + "N\x02\x02\u1A8D\u1A8E\x07Q\x02\x02\u1A8E\u1A8F\x07I\x02\x02\u1A8F\u1A90" + + "\x07a\x02\x02\u1A90\u1A91\x07R\x02\x02\u1A91\u1A92\x07Q\x02\x02\u1A92" + + "\u1A93\x07U\x02\x02\u1A93\u045E\x03\x02\x02\x02\u1A94\u1A95\x07T\x02\x02" + + "\u1A95\u1A96\x07G\x02\x02\u1A96\u1A97\x07N\x02\x02\u1A97\u1A98\x07C\x02" + + "\x02\u1A98\u1A99\x07[\x02\x02\u1A99\u1A9A\x07N\x02\x02\u1A9A\u1A9B\x07" + + "Q\x02\x02\u1A9B\u1A9C\x07I\x02\x02\u1A9C\u0460\x03\x02\x02\x02\u1A9D\u1A9E" + + "\x07T\x02\x02\u1A9E\u1A9F\x07G\x02\x02\u1A9F\u1AA0\x07O\x02\x02\u1AA0" + + "\u1AA1\x07Q\x02\x02\u1AA1\u1AA2\x07X\x02\x02\u1AA2\u1AA3\x07G\x02\x02" + + "\u1AA3\u0462\x03\x02\x02\x02\u1AA4\u1AA5\x07T\x02\x02\u1AA5\u1AA6\x07" + + "G\x02\x02\u1AA6\u1AA7\x07Q\x02\x02\u1AA7\u1AA8\x07T\x02\x02\u1AA8\u1AA9" + + "\x07I\x02\x02\u1AA9\u1AAA\x07C\x02\x02\u1AAA\u1AAB\x07P\x02\x02\u1AAB" + + "\u1AAC\x07K\x02\x02\u1AAC\u1AAD\x07\\\x02\x02\u1AAD\u1AAE\x07G\x02\x02" + + "\u1AAE\u0464\x03\x02\x02\x02\u1AAF\u1AB0\x07T\x02\x02\u1AB0\u1AB1\x07" + + "G\x02\x02\u1AB1\u1AB2\x07R\x02\x02\u1AB2\u1AB3\x07C\x02\x02\u1AB3\u1AB4" + + "\x07K\x02\x02\u1AB4\u1AB5\x07T\x02\x02\u1AB5\u0466\x03\x02\x02\x02\u1AB6" + + "\u1AB7\x07T\x02\x02\u1AB7\u1AB8\x07G\x02\x02\u1AB8\u1AB9\x07R\x02\x02" + + "\u1AB9\u1ABA\x07N\x02\x02\u1ABA\u1ABB\x07K\x02\x02\u1ABB\u1ABC\x07E\x02" + + "\x02\u1ABC\u1ABD\x07C\x02\x02\u1ABD\u0468\x03\x02\x02\x02\u1ABE\u1ABF" + + "\x07T\x02\x02\u1ABF\u1AC0\x07G\x02\x02\u1AC0\u1AC1\x07R\x02\x02\u1AC1" + + "\u1AC2\x07N\x02\x02\u1AC2\u1AC3\x07K\x02\x02\u1AC3\u1AC4\x07E\x02\x02" + + "\u1AC4\u1AC5\x07C\x02\x02\u1AC5\u1AC6\x07U\x02\x02\u1AC6\u046A\x03\x02" + + "\x02\x02\u1AC7\u1AC8\x07T\x02\x02\u1AC8\u1AC9\x07G\x02\x02\u1AC9\u1ACA" + + "\x07R\x02\x02\u1ACA\u1ACB\x07N\x02\x02\u1ACB\u1ACC\x07K\x02\x02\u1ACC" + + "\u1ACD\x07E\x02\x02\u1ACD\u1ACE\x07C\x02\x02\u1ACE\u1ACF\x07V\x02\x02" + + "\u1ACF\u1AD0\x07G\x02\x02\u1AD0\u1AD1\x07a\x02\x02\u1AD1\u1AD2\x07F\x02" + + "\x02\u1AD2\u1AD3\x07Q\x02\x02\u1AD3\u1AD4\x07a\x02\x02\u1AD4\u1AD5\x07" + + "F\x02\x02\u1AD5\u1AD6\x07D\x02\x02\u1AD6\u046C\x03\x02\x02\x02"; + private static readonly _serializedATNSegment13: string = + "\u1AD7\u1AD8\x07T\x02\x02\u1AD8\u1AD9\x07G\x02\x02\u1AD9\u1ADA\x07R\x02" + + "\x02\u1ADA\u1ADB\x07N\x02\x02\u1ADB\u1ADC\x07K\x02\x02\u1ADC\u1ADD\x07" + + "E\x02\x02\u1ADD\u1ADE\x07C\x02\x02\u1ADE\u1ADF\x07V\x02\x02\u1ADF\u1AE0" + + "\x07G\x02\x02\u1AE0\u1AE1\x07a\x02\x02\u1AE1\u1AE2\x07F\x02\x02\u1AE2" + + "\u1AE3\x07Q\x02\x02\u1AE3\u1AE4\x07a\x02\x02\u1AE4\u1AE5\x07V\x02\x02" + + "\u1AE5\u1AE6\x07C\x02\x02\u1AE6\u1AE7\x07D\x02\x02\u1AE7\u1AE8\x07N\x02" + + "\x02\u1AE8\u1AE9\x07G\x02\x02\u1AE9\u046E\x03\x02\x02\x02\u1AEA\u1AEB" + + "\x07T\x02\x02\u1AEB\u1AEC\x07G\x02\x02\u1AEC\u1AED\x07R\x02\x02\u1AED" + + "\u1AEE\x07N\x02\x02\u1AEE\u1AEF\x07K\x02\x02\u1AEF\u1AF0\x07E\x02\x02" + + "\u1AF0\u1AF1\x07C\x02\x02\u1AF1\u1AF2\x07V\x02\x02\u1AF2\u1AF3\x07G\x02" + + "\x02\u1AF3\u1AF4\x07a\x02\x02\u1AF4\u1AF5\x07K\x02\x02\u1AF5\u1AF6\x07" + + "I\x02\x02\u1AF6\u1AF7\x07P\x02\x02\u1AF7\u1AF8\x07Q\x02\x02\u1AF8\u1AF9" + + "\x07T\x02\x02\u1AF9\u1AFA\x07G\x02\x02\u1AFA\u1AFB\x07a\x02\x02\u1AFB" + + "\u1AFC\x07F\x02\x02\u1AFC\u1AFD\x07D\x02\x02\u1AFD\u0470\x03\x02\x02\x02" + + "\u1AFE\u1AFF\x07T\x02\x02\u1AFF\u1B00\x07G\x02\x02\u1B00\u1B01\x07R\x02" + + "\x02\u1B01\u1B02\x07N\x02\x02\u1B02\u1B03\x07K\x02\x02\u1B03\u1B04\x07" + + "E\x02\x02\u1B04\u1B05\x07C\x02\x02\u1B05\u1B06\x07V\x02\x02\u1B06\u1B07" + + "\x07G\x02\x02\u1B07\u1B08\x07a\x02\x02\u1B08\u1B09\x07K\x02\x02\u1B09" + + "\u1B0A\x07I\x02\x02\u1B0A\u1B0B\x07P\x02\x02\u1B0B\u1B0C\x07Q\x02\x02" + + "\u1B0C\u1B0D\x07T\x02\x02\u1B0D\u1B0E\x07G\x02\x02\u1B0E\u1B0F\x07a\x02" + + "\x02\u1B0F\u1B10\x07V\x02\x02\u1B10\u1B11\x07C\x02\x02\u1B11\u1B12\x07" + + "D\x02\x02\u1B12\u1B13\x07N\x02\x02\u1B13\u1B14\x07G\x02\x02\u1B14\u0472" + + "\x03\x02\x02\x02\u1B15\u1B16\x07T\x02\x02\u1B16\u1B17\x07G\x02\x02\u1B17" + + "\u1B18\x07R\x02\x02\u1B18\u1B19\x07N\x02\x02\u1B19\u1B1A\x07K\x02\x02" + + "\u1B1A\u1B1B\x07E\x02\x02\u1B1B\u1B1C\x07C\x02\x02\u1B1C\u1B1D\x07V\x02" + + "\x02\u1B1D\u1B1E\x07G\x02\x02\u1B1E\u1B1F\x07a\x02\x02\u1B1F\u1B20\x07" + + "T\x02\x02\u1B20\u1B21\x07G\x02\x02\u1B21\u1B22\x07Y\x02\x02\u1B22\u1B23" + + "\x07T\x02\x02\u1B23\u1B24\x07K\x02\x02\u1B24\u1B25\x07V\x02\x02\u1B25" + + "\u1B26\x07G\x02\x02\u1B26\u1B27\x07a\x02\x02\u1B27\u1B28\x07F\x02\x02" + + "\u1B28\u1B29\x07D\x02\x02\u1B29\u0474\x03\x02\x02\x02\u1B2A\u1B2B\x07" + + "T\x02\x02\u1B2B\u1B2C\x07G\x02\x02\u1B2C\u1B2D\x07R\x02\x02\u1B2D\u1B2E" + + "\x07N\x02\x02\u1B2E\u1B2F\x07K\x02\x02\u1B2F\u1B30\x07E\x02\x02\u1B30" + + "\u1B31\x07C\x02\x02\u1B31\u1B32\x07V\x02\x02\u1B32\u1B33\x07G\x02\x02" + + "\u1B33\u1B34\x07a\x02\x02\u1B34\u1B35\x07Y\x02\x02\u1B35\u1B36\x07K\x02" + + "\x02\u1B36\u1B37\x07N\x02\x02\u1B37\u1B38\x07F\x02\x02\u1B38\u1B39\x07" + + "a\x02\x02\u1B39\u1B3A\x07F\x02\x02\u1B3A\u1B3B\x07Q\x02\x02\u1B3B\u1B3C" + + "\x07a\x02\x02\u1B3C\u1B3D\x07V\x02\x02\u1B3D\u1B3E\x07C\x02\x02\u1B3E" + + "\u1B3F\x07D\x02\x02\u1B3F\u1B40\x07N\x02\x02\u1B40\u1B41\x07G\x02\x02" + + "\u1B41\u0476\x03\x02\x02\x02\u1B42\u1B43\x07T\x02\x02\u1B43\u1B44\x07" + + "G\x02\x02\u1B44\u1B45\x07R\x02\x02\u1B45\u1B46\x07N\x02\x02\u1B46\u1B47" + + "\x07K\x02\x02\u1B47\u1B48\x07E\x02\x02\u1B48\u1B49\x07C\x02\x02\u1B49" + + "\u1B4A\x07V\x02\x02\u1B4A\u1B4B\x07G\x02\x02\u1B4B\u1B4C\x07a\x02\x02" + + "\u1B4C\u1B4D\x07Y\x02\x02\u1B4D\u1B4E\x07K\x02\x02\u1B4E\u1B4F\x07N\x02" + + "\x02\u1B4F\u1B50\x07F\x02\x02\u1B50\u1B51\x07a\x02\x02\u1B51\u1B52\x07" + + "K\x02\x02\u1B52\u1B53\x07I\x02\x02\u1B53\u1B54\x07P\x02\x02\u1B54\u1B55" + + "\x07Q\x02\x02\u1B55\u1B56\x07T\x02\x02\u1B56\u1B57\x07G\x02\x02\u1B57" + + "\u1B58\x07a\x02\x02\u1B58\u1B59\x07V\x02\x02\u1B59\u1B5A\x07C\x02\x02" + + "\u1B5A\u1B5B\x07D\x02\x02\u1B5B\u1B5C\x07N\x02\x02\u1B5C\u1B5D\x07G\x02" + + "\x02\u1B5D\u0478\x03\x02\x02\x02\u1B5E\u1B5F\x07T\x02\x02\u1B5F\u1B60" + + "\x07G\x02\x02\u1B60\u1B61\x07R\x02\x02\u1B61\u1B62\x07N\x02\x02\u1B62" + + "\u1B63\x07K\x02\x02\u1B63\u1B64\x07E\x02\x02\u1B64\u1B65\x07C\x02\x02" + + "\u1B65\u1B66\x07V\x02\x02\u1B66\u1B67\x07K\x02\x02\u1B67\u1B68\x07Q\x02" + + "\x02\u1B68\u1B69\x07P\x02\x02\u1B69\u047A\x03\x02\x02\x02\u1B6A\u1B6B" + + "\x07T\x02\x02\u1B6B\u1B6C\x07G\x02\x02\u1B6C\u1B6D\x07S\x02\x02\u1B6D" + + "\u1B6E\x07W\x02\x02\u1B6E\u1B6F\x07K\x02\x02\u1B6F\u1B70\x07T\x02\x02" + + "\u1B70\u1B71\x07G\x02\x02\u1B71\u1B72\x07a\x02\x02\u1B72\u1B73\x07T\x02" + + "\x02\u1B73\u1B74\x07Q\x02\x02\u1B74\u1B75\x07Y\x02\x02\u1B75\u1B76\x07" + + "a\x02\x02\u1B76\u1B77\x07H\x02\x02\u1B77\u1B78\x07Q\x02\x02\u1B78\u1B79" + + "\x07T\x02\x02\u1B79\u1B7A\x07O\x02\x02\u1B7A\u1B7B\x07C\x02\x02\u1B7B" + + "\u1B7C\x07V\x02\x02\u1B7C\u047C\x03\x02\x02\x02\u1B7D\u1B7E\x07T\x02\x02" + + "\u1B7E\u1B7F\x07G\x02\x02\u1B7F\u1B80\x07S\x02\x02\u1B80\u1B81\x07W\x02" + + "\x02\u1B81\u1B82\x07K\x02\x02\u1B82\u1B83\x07T\x02\x02\u1B83\u1B84\x07" + + "G\x02\x02\u1B84\u1B85\x07a\x02\x02\u1B85\u1B86\x07V\x02\x02\u1B86\u1B87" + + "\x07C\x02\x02\u1B87\u1B88\x07D\x02\x02\u1B88\u1B89\x07N\x02\x02\u1B89" + + "\u1B8A\x07G\x02\x02\u1B8A\u1B8B\x07a\x02\x02\u1B8B\u1B8C\x07R\x02\x02" + + "\u1B8C\u1B8D\x07T\x02\x02\u1B8D\u1B8E\x07K\x02\x02\u1B8E\u1B8F\x07O\x02" + + "\x02\u1B8F\u1B90\x07C\x02\x02\u1B90\u1B91\x07T\x02\x02\u1B91\u1B92\x07" + + "[\x02\x02\u1B92\u1B93\x07a\x02\x02\u1B93\u1B94\x07M\x02\x02\u1B94\u1B95" + + "\x07G\x02\x02\u1B95\u1B96\x07[\x02\x02\u1B96\u1B97\x07a\x02\x02\u1B97" + + "\u1B98\x07E\x02\x02\u1B98\u1B99\x07J\x02\x02\u1B99\u1B9A\x07G\x02\x02" + + "\u1B9A\u1B9B\x07E\x02\x02\u1B9B\u1B9C\x07M\x02\x02\u1B9C\u047E\x03\x02" + + "\x02\x02\u1B9D\u1B9E\x07T\x02\x02\u1B9E\u1B9F\x07G\x02\x02\u1B9F\u1BA0" + + "\x07U\x02\x02\u1BA0\u1BA1\x07G\x02\x02\u1BA1\u1BA2\x07V\x02\x02\u1BA2" + + "\u0480\x03\x02\x02\x02\u1BA3\u1BA4\x07T\x02\x02\u1BA4\u1BA5\x07G\x02\x02" + + "\u1BA5\u1BA6\x07U\x02\x02\u1BA6\u1BA7\x07V\x02\x02\u1BA7\u1BA8\x07C\x02" + + "\x02\u1BA8\u1BA9\x07T\x02\x02\u1BA9\u1BAA\x07V\x02\x02\u1BAA\u0482\x03" + + "\x02\x02\x02\u1BAB\u1BAC\x07T\x02\x02\u1BAC\u1BAD\x07G\x02\x02\u1BAD\u1BAE" + + "\x07U\x02\x02\u1BAE\u1BAF\x07W\x02\x02\u1BAF\u1BB0\x07O\x02\x02\u1BB0" + + "\u1BB1\x07G\x02\x02\u1BB1\u0484\x03\x02\x02\x02\u1BB2\u1BB3\x07T\x02\x02" + + "\u1BB3\u1BB4\x07G\x02\x02\u1BB4\u1BB5\x07V\x02\x02\u1BB5\u1BB6\x07W\x02" + + "\x02\u1BB6\u1BB7\x07T\x02\x02\u1BB7\u1BB8\x07P\x02\x02\u1BB8\u1BB9\x07" + + "G\x02\x02\u1BB9\u1BBA\x07F\x02\x02\u1BBA\u1BBB\x07a\x02\x02\u1BBB\u1BBC" + + "\x07U\x02\x02\u1BBC\u1BBD\x07S\x02\x02\u1BBD\u1BBE\x07N\x02\x02\u1BBE" + + "\u1BBF\x07U\x02\x02\u1BBF\u1BC0\x07V\x02\x02\u1BC0\u1BC1\x07C\x02\x02" + + "\u1BC1\u1BC2\x07V\x02\x02\u1BC2\u1BC3\x07G\x02\x02\u1BC3\u0486\x03\x02" + + "\x02\x02\u1BC4\u1BC5\x07T\x02\x02\u1BC5\u1BC6\x07G\x02\x02\u1BC6\u1BC7" + + "\x07V\x02\x02\u1BC7\u1BC8\x07W\x02\x02\u1BC8\u1BC9\x07T\x02\x02\u1BC9" + + "\u1BCA\x07P\x02\x02\u1BCA\u1BCB\x07K\x02\x02\u1BCB\u1BCC\x07P\x02\x02" + + "\u1BCC\u1BCD\x07I\x02\x02\u1BCD\u0488\x03\x02\x02\x02\u1BCE\u1BCF\x07" + + "T\x02\x02\u1BCF\u1BD0\x07G\x02\x02\u1BD0\u1BD1\x07V\x02\x02\u1BD1\u1BD2" + + "\x07W\x02\x02\u1BD2\u1BD3\x07T\x02\x02\u1BD3\u1BD4\x07P\x02\x02\u1BD4" + + "\u1BD5\x07U\x02\x02\u1BD5\u048A\x03\x02\x02\x02\u1BD6\u1BD7\x07T\x02\x02" + + "\u1BD7\u1BD8\x07G\x02\x02\u1BD8\u1BD9\x07W\x02\x02\u1BD9\u1BDA\x07U\x02" + + "\x02\u1BDA\u1BDB\x07G\x02\x02\u1BDB\u048C\x03\x02\x02\x02\u1BDC\u1BDD" + + "\x07T\x02\x02\u1BDD\u1BDE\x07Q\x02\x02\u1BDE\u1BDF\x07N\x02\x02\u1BDF" + + "\u1BE0\x07G\x02\x02\u1BE0\u048E\x03\x02\x02\x02\u1BE1\u1BE2\x07T\x02\x02" + + "\u1BE2\u1BE3\x07Q\x02\x02\u1BE3\u1BE4\x07N\x02\x02\u1BE4\u1BE5\x07N\x02" + + "\x02\u1BE5\u1BE6\x07D\x02\x02\u1BE6\u1BE7\x07C\x02\x02\u1BE7\u1BE8\x07" + + "E\x02\x02\u1BE8\u1BE9\x07M\x02\x02\u1BE9\u0490\x03\x02\x02\x02\u1BEA\u1BEB" + + "\x07T\x02\x02\u1BEB\u1BEC\x07Q\x02\x02\u1BEC\u1BED\x07N\x02\x02\u1BED" + + "\u1BEE\x07N\x02\x02\u1BEE\u1BEF\x07W\x02\x02\u1BEF\u1BF0\x07R\x02\x02" + + "\u1BF0\u0492\x03\x02\x02\x02\u1BF1\u1BF2\x07T\x02\x02\u1BF2\u1BF3\x07" + + "Q\x02\x02\u1BF3\u1BF4\x07V\x02\x02\u1BF4\u1BF5\x07C\x02\x02\u1BF5\u1BF6" + + "\x07V\x02\x02\u1BF6\u1BF7\x07G\x02\x02\u1BF7\u0494\x03\x02\x02\x02\u1BF8" + + "\u1BF9\x07T\x02\x02\u1BF9\u1BFA\x07Q\x02\x02\u1BFA\u1BFB\x07Y\x02\x02" + + "\u1BFB\u0496\x03\x02\x02\x02\u1BFC\u1BFD\x07T\x02\x02\u1BFD\u1BFE\x07" + + "Q\x02\x02\u1BFE\u1BFF\x07Y\x02\x02\u1BFF\u1C00\x07U\x02\x02\u1C00\u0498" + + "\x03\x02\x02\x02\u1C01\u1C02\x07T\x02\x02\u1C02\u1C03\x07Q\x02\x02\u1C03" + + "\u1C04\x07Y\x02\x02\u1C04\u1C05\x07a\x02\x02\u1C05\u1C06\x07H\x02\x02" + + "\u1C06\u1C07\x07Q\x02\x02\u1C07\u1C08\x07T\x02\x02\u1C08\u1C09\x07O\x02" + + "\x02\u1C09\u1C0A\x07C\x02\x02\u1C0A\u1C0B\x07V\x02\x02\u1C0B\u049A\x03" + + "\x02\x02\x02\u1C0C\u1C0D\x07U\x02\x02\u1C0D\u1C0E\x07C\x02\x02\u1C0E\u1C0F" + + "\x07X\x02\x02\u1C0F\u1C10\x07G\x02\x02\u1C10\u1C11\x07R\x02\x02\u1C11" + + "\u1C12\x07Q\x02\x02\u1C12\u1C13\x07K\x02\x02\u1C13\u1C14\x07P\x02\x02" + + "\u1C14\u1C15\x07V\x02\x02\u1C15\u049C\x03\x02\x02\x02\u1C16\u1C17\x07" + + "U\x02\x02\u1C17\u1C18\x07E\x02\x02\u1C18\u1C19\x07J\x02\x02\u1C19\u1C1A" + + "\x07G\x02\x02\u1C1A\u1C1B\x07F\x02\x02\u1C1B\u1C1C\x07W\x02\x02\u1C1C" + + "\u1C1D\x07N\x02\x02\u1C1D\u1C1E\x07G\x02\x02\u1C1E\u049E\x03\x02\x02\x02" + + "\u1C1F\u1C20\x07U\x02\x02\u1C20\u1C21\x07G\x02\x02\u1C21\u1C22\x07E\x02" + + "\x02\u1C22\u1C23\x07W\x02\x02\u1C23\u1C24\x07T\x02\x02\u1C24\u1C25\x07" + + "K\x02\x02\u1C25\u1C26\x07V\x02\x02\u1C26\u1C27\x07[\x02\x02\u1C27\u04A0" + + "\x03\x02\x02\x02\u1C28\u1C29\x07U\x02\x02\u1C29\u1C2A\x07G\x02\x02\u1C2A" + + "\u1C2B\x07T\x02\x02\u1C2B\u1C2C\x07X\x02\x02\u1C2C\u1C2D\x07G\x02\x02" + + "\u1C2D\u1C2E\x07T\x02\x02\u1C2E\u04A2\x03\x02\x02\x02\u1C2F\u1C30\x07" + + "U\x02\x02\u1C30\u1C31\x07G\x02\x02\u1C31\u1C32\x07U\x02\x02\u1C32\u1C33" + + "\x07U\x02\x02\u1C33\u1C34\x07K\x02\x02\u1C34\u1C35\x07Q\x02\x02\u1C35" + + "\u1C36\x07P\x02\x02\u1C36\u04A4\x03\x02\x02\x02\u1C37\u1C38\x07U\x02\x02" + + "\u1C38\u1C39\x07J\x02\x02\u1C39\u1C3A\x07C\x02\x02\u1C3A\u1C3B\x07T\x02" + + "\x02\u1C3B\u1C3C\x07G\x02\x02\u1C3C\u04A6\x03\x02\x02\x02\u1C3D\u1C3E" + + "\x07U\x02\x02\u1C3E\u1C3F\x07J\x02\x02\u1C3F\u1C40\x07C\x02\x02\u1C40" + + "\u1C41\x07T\x02\x02\u1C41\u1C42\x07G\x02\x02\u1C42\u1C43\x07F\x02\x02" + + "\u1C43\u04A8\x03\x02\x02\x02\u1C44\u1C45\x07U\x02\x02\u1C45\u1C46\x07" + + "K\x02\x02\u1C46\u1C47\x07I\x02\x02\u1C47\u1C48\x07P\x02\x02\u1C48\u1C49" + + "\x07G\x02\x02\u1C49\u1C4A\x07F\x02\x02\u1C4A\u04AA\x03\x02\x02\x02\u1C4B" + + "\u1C4C\x07U\x02\x02\u1C4C\u1C4D\x07K\x02\x02\u1C4D\u1C4E\x07O\x02\x02" + + "\u1C4E\u1C4F\x07R\x02\x02\u1C4F\u1C50\x07N\x02\x02\u1C50\u1C51\x07G\x02" + + "\x02\u1C51\u04AC\x03\x02\x02\x02\u1C52\u1C53\x07U\x02\x02\u1C53\u1C54" + + "\x07N\x02\x02\u1C54\u1C55\x07C\x02\x02\u1C55\u1C56\x07X\x02\x02\u1C56" + + "\u1C57\x07G\x02\x02\u1C57\u04AE\x03\x02\x02\x02\u1C58\u1C59\x07U\x02\x02" + + "\u1C59\u1C5A\x07N\x02\x02\u1C5A\u1C5B\x07Q\x02\x02\u1C5B\u1C5C\x07Y\x02" + + "\x02\u1C5C\u04B0\x03\x02\x02\x02\u1C5D\u1C5E\x07U\x02\x02\u1C5E\u1C5F" + + "\x07P\x02\x02\u1C5F\u1C60\x07C\x02\x02\u1C60\u1C61\x07R\x02\x02\u1C61" + + "\u1C62\x07U\x02\x02\u1C62\u1C63\x07J\x02\x02\u1C63\u1C64\x07Q\x02\x02" + + "\u1C64\u1C65\x07V\x02\x02\u1C65\u04B2\x03\x02\x02\x02\u1C66\u1C67\x07" + + "U\x02\x02\u1C67\u1C68\x07Q\x02\x02\u1C68\u1C69\x07E\x02\x02\u1C69\u1C6A" + + "\x07M\x02\x02\u1C6A\u1C6B\x07G\x02\x02\u1C6B\u1C6C\x07V\x02\x02\u1C6C" + + "\u04B4\x03\x02\x02\x02\u1C6D\u1C6E\x07U\x02\x02\u1C6E\u1C6F\x07Q\x02\x02" + + "\u1C6F\u1C70\x07O\x02\x02\u1C70\u1C71\x07G\x02\x02\u1C71\u04B6\x03\x02" + + "\x02\x02\u1C72\u1C73\x07U\x02\x02\u1C73\u1C74\x07Q\x02\x02\u1C74\u1C75" + + "\x07P\x02\x02\u1C75\u1C76\x07C\x02\x02\u1C76\u1C77\x07O\x02\x02\u1C77" + + "\u1C78\x07G\x02\x02\u1C78\u04B8\x03\x02\x02\x02\u1C79\u1C7A\x07U\x02\x02" + + "\u1C7A\u1C7B\x07Q\x02\x02\u1C7B\u1C7C\x07W\x02\x02\u1C7C\u1C7D\x07P\x02" + + "\x02\u1C7D\u1C7E\x07F\x02\x02\u1C7E\u1C7F\x07U\x02\x02\u1C7F\u04BA\x03" + + "\x02\x02\x02\u1C80\u1C81\x07U\x02\x02\u1C81\u1C82\x07Q\x02\x02\u1C82\u1C83" + + "\x07W\x02\x02\u1C83\u1C84\x07T\x02\x02\u1C84\u1C85\x07E\x02\x02\u1C85" + + "\u1C86\x07G\x02\x02\u1C86\u04BC\x03\x02\x02\x02\u1C87\u1C88\x07U\x02\x02" + + "\u1C88\u1C89\x07Q\x02\x02\u1C89\u1C8A\x07W\x02\x02\u1C8A\u1C8B\x07T\x02" + + "\x02\u1C8B\u1C8C\x07E\x02\x02\u1C8C\u1C8D\x07G\x02\x02\u1C8D\u1C8E\x07" + + "a\x02\x02\u1C8E\u1C8F\x07D\x02\x02\u1C8F\u1C90\x07K\x02\x02\u1C90\u1C91" + + "\x07P\x02\x02\u1C91\u1C92\x07F\x02\x02\u1C92\u04BE\x03\x02\x02\x02\u1C93" + + "\u1C94\x07U\x02\x02\u1C94\u1C95\x07Q\x02\x02\u1C95\u1C96\x07W\x02\x02" + + "\u1C96\u1C97\x07T\x02\x02\u1C97\u1C98\x07E\x02\x02\u1C98\u1C99\x07G\x02" + + "\x02\u1C99\u1C9A\x07a\x02\x02\u1C9A\u1C9B\x07J\x02\x02\u1C9B\u1C9C\x07" + + "Q\x02\x02\u1C9C\u1C9D\x07U\x02\x02\u1C9D\u1C9E\x07V\x02\x02\u1C9E\u04C0" + + "\x03\x02\x02\x02\u1C9F\u1CA0\x07U\x02\x02\u1CA0\u1CA1\x07Q\x02\x02\u1CA1" + + "\u1CA2\x07W\x02\x02\u1CA2\u1CA3\x07T\x02\x02\u1CA3\u1CA4\x07E\x02\x02" + + "\u1CA4\u1CA5\x07G\x02\x02\u1CA5\u1CA6\x07a\x02\x02\u1CA6\u1CA7\x07W\x02" + + "\x02\u1CA7\u1CA8\x07U\x02\x02\u1CA8\u1CA9\x07G\x02\x02\u1CA9\u1CAA\x07" + + "T\x02\x02\u1CAA\u04C2\x03\x02\x02\x02\u1CAB\u1CAC\x07U\x02\x02\u1CAC\u1CAD" + + "\x07Q\x02\x02\u1CAD\u1CAE\x07W\x02\x02\u1CAE\u1CAF\x07T\x02\x02\u1CAF" + + "\u1CB0\x07E\x02\x02\u1CB0\u1CB1\x07G\x02\x02\u1CB1\u1CB2\x07a\x02\x02" + + "\u1CB2\u1CB3\x07R\x02\x02\u1CB3\u1CB4\x07C\x02\x02\u1CB4\u1CB5\x07U\x02" + + "\x02\u1CB5\u1CB6\x07U\x02\x02\u1CB6\u1CB7\x07Y\x02\x02\u1CB7\u1CB8\x07" + + "Q\x02\x02\u1CB8\u1CB9\x07T\x02\x02\u1CB9\u1CBA\x07F\x02\x02\u1CBA\u04C4" + + "\x03\x02\x02\x02\u1CBB\u1CBC\x07U\x02\x02\u1CBC\u1CBD\x07Q\x02\x02\u1CBD" + + "\u1CBE\x07W\x02\x02\u1CBE\u1CBF\x07T\x02\x02\u1CBF\u1CC0\x07E\x02\x02" + + "\u1CC0\u1CC1\x07G\x02\x02\u1CC1\u1CC2\x07a\x02\x02\u1CC2\u1CC3\x07R\x02" + + "\x02\u1CC3\u1CC4\x07Q\x02\x02\u1CC4\u1CC5\x07T\x02\x02\u1CC5\u1CC6\x07" + + "V\x02\x02\u1CC6\u04C6\x03\x02\x02\x02\u1CC7\u1CC8\x07U\x02\x02\u1CC8\u1CC9" + + "\x07Q\x02\x02\u1CC9\u1CCA\x07W\x02\x02\u1CCA\u1CCB\x07T\x02\x02\u1CCB" + + "\u1CCC\x07E\x02\x02\u1CCC\u1CCD\x07G\x02\x02\u1CCD\u1CCE\x07a\x02\x02" + + "\u1CCE\u1CCF\x07N\x02\x02\u1CCF\u1CD0\x07Q\x02\x02\u1CD0\u1CD1\x07I\x02" + + "\x02\u1CD1\u1CD2\x07a\x02\x02\u1CD2\u1CD3\x07H\x02\x02\u1CD3\u1CD4\x07" + + "K\x02\x02\u1CD4\u1CD5\x07N\x02\x02\u1CD5\u1CD6\x07G\x02\x02\u1CD6\u04C8" + + "\x03\x02\x02\x02\u1CD7\u1CD8\x07U\x02\x02\u1CD8\u1CD9\x07Q\x02\x02\u1CD9" + + "\u1CDA\x07W\x02\x02\u1CDA\u1CDB\x07T\x02\x02\u1CDB\u1CDC\x07E\x02\x02" + + "\u1CDC\u1CDD\x07G\x02\x02\u1CDD\u1CDE\x07a\x02\x02\u1CDE\u1CDF\x07N\x02" + + "\x02\u1CDF\u1CE0\x07Q\x02\x02\u1CE0\u1CE1\x07I\x02\x02\u1CE1\u1CE2\x07" + + "a\x02\x02\u1CE2\u1CE3\x07R\x02\x02\u1CE3\u1CE4\x07Q\x02\x02\u1CE4\u1CE5" + + "\x07U\x02\x02\u1CE5\u04CA\x03\x02\x02\x02\u1CE6\u1CE7\x07U\x02\x02\u1CE7" + + "\u1CE8\x07Q\x02\x02\u1CE8\u1CE9\x07W\x02\x02\u1CE9\u1CEA\x07T\x02\x02" + + "\u1CEA\u1CEB\x07E\x02\x02\u1CEB\u1CEC\x07G\x02\x02\u1CEC\u1CED\x07a\x02" + + "\x02\u1CED\u1CEE\x07C\x02\x02\u1CEE\u1CEF\x07W\x02\x02\u1CEF\u1CF0\x07" + + "V\x02\x02\u1CF0\u1CF1\x07Q\x02\x02\u1CF1\u1CF2\x07a\x02\x02\u1CF2\u1CF3" + + "\x07R\x02\x02\u1CF3\u1CF4\x07Q\x02\x02\u1CF4\u1CF5\x07U\x02\x02\u1CF5" + + "\u1CF6\x07K\x02\x02\u1CF6\u1CF7\x07V\x02\x02\u1CF7\u1CF8\x07K\x02\x02" + + "\u1CF8\u1CF9\x07Q\x02\x02\u1CF9\u1CFA\x07P\x02\x02\u1CFA\u04CC\x03\x02" + + "\x02\x02\u1CFB\u1CFC\x07U\x02\x02\u1CFC\u1CFD\x07Q\x02\x02\u1CFD\u1CFE" + + "\x07W\x02\x02\u1CFE\u1CFF\x07T\x02\x02\u1CFF\u1D00\x07E\x02\x02\u1D00" + + "\u1D01\x07G\x02\x02\u1D01\u1D02\x07a\x02\x02\u1D02\u1D03\x07J\x02\x02" + + "\u1D03\u1D04\x07G\x02\x02\u1D04\u1D05\x07C\x02\x02\u1D05\u1D06\x07T\x02" + + "\x02\u1D06\u1D07\x07V\x02\x02\u1D07\u1D08\x07D\x02\x02\u1D08\u1D09\x07" + + "G\x02\x02\u1D09\u1D0A\x07C\x02\x02\u1D0A\u1D0B\x07V\x02\x02\u1D0B\u1D0C" + + "\x07a\x02\x02\u1D0C\u1D0D\x07R\x02\x02\u1D0D\u1D0E\x07G\x02\x02\u1D0E" + + "\u1D0F\x07T\x02\x02\u1D0F\u1D10\x07K\x02\x02\u1D10\u1D11\x07Q\x02\x02" + + "\u1D11\u1D12\x07F\x02\x02\u1D12\u04CE\x03\x02\x02\x02\u1D13\u1D14\x07" + + "U\x02\x02\u1D14\u1D15\x07Q\x02\x02\u1D15\u1D16\x07W\x02\x02\u1D16\u1D17" + + "\x07T\x02\x02\u1D17\u1D18\x07E\x02\x02\u1D18\u1D19\x07G\x02\x02\u1D19" + + "\u1D1A\x07a\x02\x02\u1D1A\u1D1B\x07E\x02\x02\u1D1B\u1D1C\x07Q\x02\x02" + + "\u1D1C\u1D1D\x07P\x02\x02\u1D1D\u1D1E\x07P\x02\x02\u1D1E\u1D1F\x07G\x02" + + "\x02\u1D1F\u1D20\x07E\x02\x02\u1D20\u1D21\x07V\x02\x02\u1D21\u1D22\x07" + + "a\x02\x02\u1D22\u1D23\x07T\x02\x02\u1D23\u1D24\x07G\x02\x02\u1D24\u1D25" + + "\x07V\x02\x02\u1D25\u1D26\x07T\x02\x02\u1D26\u1D27\x07[\x02\x02\u1D27" + + "\u04D0\x03\x02\x02\x02\u1D28\u1D29\x07U\x02\x02\u1D29\u1D2A\x07Q\x02\x02" + + "\u1D2A\u1D2B\x07W\x02\x02\u1D2B\u1D2C\x07T\x02\x02\u1D2C\u1D2D\x07E\x02" + + "\x02\u1D2D\u1D2E\x07G\x02\x02\u1D2E\u1D2F\x07a\x02\x02\u1D2F\u1D30\x07" + + "T\x02\x02\u1D30\u1D31\x07G\x02\x02\u1D31\u1D32\x07V\x02\x02\u1D32\u1D33" + + "\x07T\x02\x02\u1D33\u1D34\x07[\x02\x02\u1D34\u1D35\x07a\x02\x02\u1D35" + + "\u1D36\x07E\x02\x02\u1D36\u1D37\x07Q\x02\x02\u1D37\u1D38\x07W\x02\x02" + + "\u1D38\u1D39\x07P\x02\x02\u1D39\u1D3A\x07V\x02\x02\u1D3A\u04D2\x03\x02" + + "\x02\x02\u1D3B\u1D3C\x07U\x02\x02\u1D3C\u1D3D\x07Q\x02\x02\u1D3D\u1D3E" + + "\x07W\x02\x02\u1D3E\u1D3F\x07T\x02\x02\u1D3F\u1D40\x07E\x02\x02\u1D40" + + "\u1D41\x07G\x02\x02\u1D41\u1D42\x07a\x02\x02\u1D42\u1D43\x07E\x02\x02" + + "\u1D43\u1D44\x07Q\x02\x02\u1D44\u1D45\x07P\x02\x02\u1D45\u1D46\x07P\x02" + + "\x02\u1D46\u1D47\x07G\x02\x02\u1D47\u1D48\x07E\x02\x02\u1D48\u1D49\x07" + + "V\x02\x02\u1D49\u1D4A\x07K\x02\x02\u1D4A\u1D4B\x07Q\x02\x02\u1D4B\u1D4C" + + "\x07P\x02\x02\u1D4C\u1D4D\x07a\x02\x02\u1D4D\u1D4E\x07C\x02\x02\u1D4E" + + "\u1D4F\x07W\x02\x02\u1D4F\u1D50\x07V\x02\x02\u1D50\u1D51\x07Q\x02\x02" + + "\u1D51\u1D52\x07a\x02\x02\u1D52\u1D53\x07H\x02\x02\u1D53\u1D54\x07C\x02" + + "\x02\u1D54\u1D55\x07K\x02\x02\u1D55\u1D56\x07N\x02\x02\u1D56\u1D57\x07" + + "Q\x02\x02\u1D57\u1D58\x07X\x02\x02\u1D58\u1D59\x07G\x02\x02\u1D59\u1D5A" + + "\x07T\x02\x02\u1D5A\u04D4\x03\x02\x02\x02\u1D5B\u1D5C\x07U\x02\x02\u1D5C" + + "\u1D5D\x07Q\x02\x02\u1D5D\u1D5E\x07W\x02\x02\u1D5E\u1D5F\x07T\x02\x02" + + "\u1D5F\u1D60\x07E\x02\x02\u1D60\u1D61\x07G\x02\x02\u1D61\u1D62\x07a\x02" + + "\x02\u1D62\u1D63\x07F\x02\x02\u1D63\u1D64\x07G\x02\x02\u1D64\u1D65\x07" + + "N\x02\x02\u1D65\u1D66\x07C\x02\x02\u1D66\u1D67\x07[\x02\x02\u1D67\u04D6" + + "\x03\x02\x02\x02\u1D68\u1D69\x07U\x02\x02\u1D69\u1D6A\x07Q\x02\x02\u1D6A" + + "\u1D6B\x07W\x02\x02\u1D6B\u1D6C\x07T\x02\x02\u1D6C\u1D6D\x07E\x02\x02" + + "\u1D6D\u1D6E\x07G\x02\x02\u1D6E\u1D6F\x07a\x02\x02\u1D6F\u1D70\x07E\x02" + + "\x02\u1D70\u1D71\x07Q\x02\x02\u1D71\u1D72\x07O\x02\x02\u1D72\u1D73\x07" + + "R\x02\x02\u1D73\u1D74\x07T\x02\x02\u1D74\u1D75\x07G\x02\x02\u1D75\u1D76" + + "\x07U\x02\x02\u1D76\u1D77\x07U\x02\x02\u1D77\u1D78\x07K\x02\x02\u1D78" + + "\u1D79\x07Q\x02\x02\u1D79\u1D7A\x07P\x02\x02\u1D7A\u1D7B\x07a\x02\x02" + + "\u1D7B\u1D7C\x07C\x02\x02\u1D7C\u1D7D\x07N\x02\x02\u1D7D\u1D7E\x07I\x02" + + "\x02\u1D7E\u1D7F\x07Q\x02\x02\u1D7F\u1D80\x07T\x02\x02\u1D80\u1D81\x07" + + "K\x02\x02\u1D81\u1D82\x07V\x02\x02\u1D82\u1D83\x07J\x02\x02\u1D83\u1D84" + + "\x07O\x02\x02\u1D84\u1D85\x07U\x02\x02\u1D85\u04D8\x03\x02\x02\x02\u1D86" + + "\u1D87\x07U\x02\x02\u1D87\u1D88\x07Q\x02\x02\u1D88\u1D89\x07W\x02\x02" + + "\u1D89\u1D8A\x07T\x02\x02\u1D8A\u1D8B\x07E\x02\x02\u1D8B\u1D8C\x07G\x02" + + "\x02\u1D8C\u1D8D\x07a\x02\x02\u1D8D\u1D8E\x07\\\x02\x02\u1D8E\u1D8F\x07" + + "U\x02\x02\u1D8F\u1D90\x07V\x02\x02\u1D90\u1D91\x07F\x02\x02\u1D91\u1D92" + + "\x07a\x02\x02\u1D92\u1D93\x07E\x02\x02\u1D93\u1D94\x07Q\x02\x02\u1D94" + + "\u1D95\x07O\x02\x02\u1D95\u1D96\x07R\x02\x02\u1D96\u1D97\x07T\x02\x02" + + "\u1D97\u1D98\x07G\x02\x02\u1D98\u1D99\x07U\x02\x02\u1D99\u1D9A\x07U\x02" + + "\x02\u1D9A\u1D9B\x07K\x02\x02\u1D9B\u1D9C\x07Q\x02\x02\u1D9C\u1D9D\x07" + + "P\x02\x02\u1D9D\u1D9E\x07a\x02\x02\u1D9E\u1D9F\x07N\x02\x02\u1D9F\u1DA0" + + "\x07G\x02\x02\u1DA0\u1DA1\x07X\x02\x02\u1DA1\u1DA2\x07G\x02\x02\u1DA2" + + "\u1DA3\x07N\x02\x02\u1DA3\u04DA\x03\x02\x02\x02\u1DA4\u1DA5\x07U\x02\x02" + + "\u1DA5\u1DA6\x07Q\x02\x02\u1DA6\u1DA7\x07W\x02\x02\u1DA7\u1DA8\x07T\x02" + + "\x02\u1DA8\u1DA9\x07E\x02\x02\u1DA9\u1DAA\x07G\x02\x02\u1DAA\u1DAB\x07" + + "a\x02\x02\u1DAB\u1DAC\x07U\x02\x02\u1DAC\u1DAD\x07U\x02\x02\u1DAD\u1DAE" + + "\x07N\x02\x02\u1DAE\u04DC\x03\x02\x02\x02\u1DAF\u1DB0\x07U\x02\x02\u1DB0" + + "\u1DB1\x07Q\x02\x02\u1DB1\u1DB2\x07W\x02\x02\u1DB2\u1DB3\x07T\x02\x02" + + "\u1DB3\u1DB4\x07E\x02\x02\u1DB4\u1DB5\x07G\x02\x02\u1DB5\u1DB6\x07a\x02" + + "\x02\u1DB6\u1DB7\x07U\x02\x02\u1DB7\u1DB8\x07U\x02\x02\u1DB8\u1DB9\x07" + + "N\x02\x02\u1DB9\u1DBA\x07a\x02\x02\u1DBA\u1DBB\x07E\x02\x02\u1DBB\u1DBC" + + "\x07C\x02\x02\u1DBC\u04DE\x03\x02\x02\x02\u1DBD\u1DBE\x07U\x02\x02\u1DBE" + + "\u1DBF\x07Q\x02\x02\u1DBF\u1DC0\x07W\x02\x02\u1DC0\u1DC1\x07T\x02\x02" + + "\u1DC1\u1DC2\x07E\x02\x02\u1DC2\u1DC3\x07G\x02\x02\u1DC3\u1DC4\x07a\x02" + + "\x02\u1DC4\u1DC5\x07U\x02\x02\u1DC5\u1DC6\x07U\x02\x02\u1DC6\u1DC7\x07" + + "N\x02\x02\u1DC7\u1DC8\x07a\x02\x02\u1DC8\u1DC9\x07E\x02\x02\u1DC9\u1DCA" + + "\x07C\x02\x02\u1DCA\u1DCB\x07R\x02\x02\u1DCB\u1DCC\x07C\x02\x02\u1DCC" + + "\u1DCD\x07V\x02\x02\u1DCD\u1DCE\x07J\x02\x02\u1DCE\u04E0\x03\x02\x02\x02" + + "\u1DCF\u1DD0\x07U\x02\x02\u1DD0\u1DD1\x07Q\x02\x02\u1DD1\u1DD2\x07W\x02" + + "\x02\u1DD2\u1DD3\x07T\x02\x02\u1DD3\u1DD4\x07E\x02\x02\u1DD4\u1DD5\x07" + + "G\x02\x02\u1DD5\u1DD6\x07a\x02\x02\u1DD6\u1DD7\x07U\x02\x02\u1DD7\u1DD8" + + "\x07U\x02\x02\u1DD8\u1DD9\x07N\x02\x02\u1DD9\u1DDA\x07a\x02\x02\u1DDA" + + "\u1DDB\x07E\x02\x02\u1DDB\u1DDC\x07G\x02\x02\u1DDC\u1DDD\x07T\x02\x02" + + "\u1DDD\u1DDE\x07V\x02\x02\u1DDE\u04E2\x03\x02\x02\x02\u1DDF\u1DE0\x07" + + "U\x02\x02\u1DE0\u1DE1\x07Q\x02\x02\u1DE1\u1DE2\x07W\x02\x02\u1DE2\u1DE3" + + "\x07T\x02\x02\u1DE3\u1DE4\x07E\x02\x02\u1DE4\u1DE5\x07G\x02\x02\u1DE5" + + "\u1DE6\x07a\x02\x02\u1DE6\u1DE7\x07U\x02\x02\u1DE7\u1DE8\x07U\x02\x02" + + "\u1DE8\u1DE9\x07N\x02\x02\u1DE9\u1DEA\x07a\x02\x02\u1DEA\u1DEB\x07E\x02" + + "\x02\u1DEB\u1DEC\x07T\x02\x02\u1DEC\u1DED\x07N\x02\x02\u1DED\u04E4\x03" + + "\x02\x02\x02\u1DEE\u1DEF\x07U\x02\x02\u1DEF\u1DF0\x07Q\x02\x02\u1DF0\u1DF1" + + "\x07W\x02\x02\u1DF1\u1DF2\x07T\x02\x02\u1DF2\u1DF3\x07E\x02\x02\u1DF3" + + "\u1DF4\x07G\x02\x02\u1DF4\u1DF5\x07a\x02\x02\u1DF5\u1DF6\x07U\x02\x02" + + "\u1DF6\u1DF7\x07U\x02\x02\u1DF7\u1DF8\x07N\x02\x02\u1DF8\u1DF9\x07a\x02" + + "\x02\u1DF9\u1DFA\x07E\x02\x02\u1DFA\u1DFB\x07T\x02\x02\u1DFB\u1DFC\x07" + + "N\x02\x02\u1DFC\u1DFD\x07R\x02\x02\u1DFD\u1DFE\x07C\x02\x02\u1DFE\u1DFF" + + "\x07V\x02\x02\u1DFF\u1E00\x07J\x02\x02\u1E00\u04E6\x03\x02\x02\x02\u1E01" + + "\u1E02\x07U\x02\x02\u1E02\u1E03\x07Q\x02\x02\u1E03\u1E04\x07W\x02\x02" + + "\u1E04\u1E05\x07T\x02\x02\u1E05\u1E06\x07E\x02\x02\u1E06\u1E07\x07G\x02" + + "\x02\u1E07\u1E08\x07a\x02\x02\u1E08\u1E09\x07U\x02\x02\u1E09\u1E0A\x07" + + "U\x02\x02\u1E0A\u1E0B\x07N\x02\x02\u1E0B\u1E0C\x07a\x02\x02\u1E0C\u1E0D" + + "\x07M\x02\x02\u1E0D\u1E0E\x07G\x02\x02\u1E0E\u1E0F\x07[\x02\x02\u1E0F" + + "\u04E8\x03\x02\x02\x02\u1E10\u1E11\x07U\x02\x02\u1E11\u1E12\x07Q\x02\x02" + + "\u1E12\u1E13\x07W\x02\x02\u1E13\u1E14\x07T\x02\x02\u1E14\u1E15\x07E\x02" + + "\x02\u1E15\u1E16\x07G\x02\x02\u1E16\u1E17\x07a\x02\x02\u1E17\u1E18\x07" + + "U\x02\x02\u1E18\u1E19"; + private static readonly _serializedATNSegment14: string = + "\x07U\x02\x02\u1E19\u1E1A\x07N\x02\x02\u1E1A\u1E1B\x07a\x02\x02\u1E1B" + + "\u1E1C\x07E\x02\x02\u1E1C\u1E1D\x07K\x02\x02\u1E1D\u1E1E\x07R\x02\x02" + + "\u1E1E\u1E1F\x07J\x02\x02\u1E1F\u1E20\x07G\x02\x02\u1E20\u1E21\x07T\x02" + + "\x02\u1E21\u04EA\x03\x02\x02\x02\u1E22\u1E23\x07U\x02\x02\u1E23\u1E24" + + "\x07Q\x02\x02\u1E24\u1E25\x07W\x02\x02\u1E25\u1E26\x07T\x02\x02\u1E26" + + "\u1E27\x07E\x02\x02\u1E27\u1E28\x07G\x02\x02\u1E28\u1E29\x07a\x02\x02" + + "\u1E29\u1E2A\x07U\x02\x02\u1E2A\u1E2B\x07U\x02\x02\u1E2B\u1E2C\x07N\x02" + + "\x02\u1E2C\u1E2D\x07a\x02\x02\u1E2D\u1E2E\x07X\x02\x02\u1E2E\u1E2F\x07" + + "G\x02\x02\u1E2F\u1E30\x07T\x02\x02\u1E30\u1E31\x07K\x02\x02\u1E31\u1E32" + + "\x07H\x02\x02\u1E32\u1E33\x07[\x02\x02\u1E33\u1E34\x07a\x02\x02\u1E34" + + "\u1E35\x07U\x02\x02\u1E35\u1E36\x07G\x02\x02\u1E36\u1E37\x07T\x02\x02" + + "\u1E37\u1E38\x07X\x02\x02\u1E38\u1E39\x07G\x02\x02\u1E39\u1E3A\x07T\x02" + + "\x02\u1E3A\u1E3B\x07a\x02\x02\u1E3B\u1E3C\x07E\x02\x02\u1E3C\u1E3D\x07" + + "G\x02\x02\u1E3D\u1E3E\x07T\x02\x02\u1E3E\u1E3F\x07V\x02\x02\u1E3F\u04EC" + + "\x03\x02\x02\x02\u1E40\u1E41\x07U\x02\x02\u1E41\u1E42\x07Q\x02\x02\u1E42" + + "\u1E43\x07W\x02\x02\u1E43\u1E44\x07T\x02\x02\u1E44\u1E45\x07E\x02\x02" + + "\u1E45\u1E46\x07G\x02\x02\u1E46\u1E47\x07a\x02\x02\u1E47\u1E48\x07V\x02" + + "\x02\u1E48\u1E49\x07N\x02\x02\u1E49\u1E4A\x07U\x02\x02\u1E4A\u1E4B\x07" + + "a\x02\x02\u1E4B\u1E4C\x07X\x02\x02\u1E4C\u1E4D\x07G\x02\x02\u1E4D\u1E4E" + + "\x07T\x02\x02\u1E4E\u1E4F\x07U\x02\x02\u1E4F\u1E50\x07K\x02\x02\u1E50" + + "\u1E51\x07Q\x02\x02\u1E51\u1E52\x07P\x02\x02\u1E52\u04EE\x03\x02\x02\x02" + + "\u1E53\u1E54\x07U\x02\x02\u1E54\u1E55\x07Q\x02\x02\u1E55\u1E56\x07W\x02" + + "\x02\u1E56\u1E57\x07T\x02\x02\u1E57\u1E58\x07E\x02\x02\u1E58\u1E59\x07" + + "G\x02\x02\u1E59\u1E5A\x07a\x02\x02\u1E5A\u1E5B\x07V\x02\x02\u1E5B\u1E5C" + + "\x07N\x02\x02\u1E5C\u1E5D\x07U\x02\x02\u1E5D\u1E5E\x07a\x02\x02\u1E5E" + + "\u1E5F\x07E\x02\x02\u1E5F\u1E60\x07K\x02\x02\u1E60\u1E61\x07R\x02\x02" + + "\u1E61\u1E62\x07J\x02\x02\u1E62\u1E63\x07G\x02\x02\u1E63\u1E64\x07T\x02" + + "\x02\u1E64\u1E65\x07U\x02\x02\u1E65\u1E66\x07W\x02\x02\u1E66\u1E67\x07" + + "K\x02\x02\u1E67\u1E68\x07V\x02\x02\u1E68\u1E69\x07G\x02\x02\u1E69\u1E6A" + + "\x07U\x02\x02\u1E6A\u04F0\x03\x02\x02\x02\u1E6B\u1E6C\x07U\x02\x02\u1E6C" + + "\u1E6D\x07Q\x02\x02\u1E6D\u1E6E\x07W\x02\x02\u1E6E\u1E6F\x07T\x02\x02" + + "\u1E6F\u1E70\x07E\x02\x02\u1E70\u1E71\x07G\x02\x02\u1E71\u1E72\x07a\x02" + + "\x02\u1E72\u1E73\x07R\x02\x02\u1E73\u1E74\x07W\x02\x02\u1E74\u1E75\x07" + + "D\x02\x02\u1E75\u1E76\x07N\x02\x02\u1E76\u1E77\x07K\x02\x02\u1E77\u1E78" + + "\x07E\x02\x02\u1E78\u1E79\x07a\x02\x02\u1E79\u1E7A\x07M\x02\x02\u1E7A" + + "\u1E7B\x07G\x02\x02\u1E7B\u1E7C\x07[\x02\x02\u1E7C\u1E7D\x07a\x02\x02" + + "\u1E7D\u1E7E\x07R\x02\x02\u1E7E\u1E7F\x07C\x02\x02\u1E7F\u1E80\x07V\x02" + + "\x02\u1E80\u1E81\x07J\x02\x02\u1E81\u04F2\x03\x02\x02\x02\u1E82\u1E83" + + "\x07U\x02\x02\u1E83\u1E84\x07S\x02\x02\u1E84\u1E85\x07N\x02\x02\u1E85" + + "\u1E86\x07a\x02\x02\u1E86\u1E87\x07C\x02\x02\u1E87\u1E88\x07H\x02\x02" + + "\u1E88\u1E89\x07V\x02\x02\u1E89\u1E8A\x07G\x02\x02\u1E8A\u1E8B\x07T\x02" + + "\x02\u1E8B\u1E8C\x07a\x02\x02\u1E8C\u1E8D\x07I\x02\x02\u1E8D\u1E8E\x07" + + "V\x02\x02\u1E8E\u1E8F\x07K\x02\x02\u1E8F\u1E90\x07F\x02\x02\u1E90\u1E91" + + "\x07U\x02\x02\u1E91\u04F4\x03\x02\x02\x02\u1E92\u1E93\x07U\x02\x02\u1E93" + + "\u1E94\x07S\x02\x02\u1E94\u1E95\x07N\x02\x02\u1E95\u1E96\x07a\x02\x02" + + "\u1E96\u1E97\x07C\x02\x02\u1E97\u1E98\x07H\x02\x02\u1E98\u1E99\x07V\x02" + + "\x02\u1E99\u1E9A\x07G\x02\x02\u1E9A\u1E9B\x07T\x02\x02\u1E9B\u1E9C\x07" + + "a\x02\x02\u1E9C\u1E9D\x07O\x02\x02\u1E9D\u1E9E\x07V\x02\x02\u1E9E\u1E9F" + + "\x07U\x02\x02\u1E9F\u1EA0\x07a\x02\x02\u1EA0\u1EA1\x07I\x02\x02\u1EA1" + + "\u1EA2\x07C\x02\x02\u1EA2\u1EA3\x07R\x02\x02\u1EA3\u1EA4\x07U\x02\x02" + + "\u1EA4\u04F6\x03\x02\x02\x02\u1EA5\u1EA6\x07U\x02\x02\u1EA6\u1EA7\x07" + + "S\x02\x02\u1EA7\u1EA8\x07N\x02\x02\u1EA8\u1EA9\x07a\x02\x02\u1EA9\u1EAA" + + "\x07D\x02\x02\u1EAA\u1EAB\x07G\x02\x02\u1EAB\u1EAC\x07H\x02\x02\u1EAC" + + "\u1EAD\x07Q\x02\x02\u1EAD\u1EAE\x07T\x02\x02\u1EAE\u1EAF\x07G\x02\x02" + + "\u1EAF\u1EB0\x07a\x02\x02\u1EB0\u1EB1\x07I\x02\x02\u1EB1\u1EB2\x07V\x02" + + "\x02\u1EB2\u1EB3\x07K\x02\x02\u1EB3\u1EB4\x07F\x02\x02\u1EB4\u1EB5\x07" + + "U\x02\x02\u1EB5\u04F8\x03\x02\x02\x02\u1EB6\u1EB7\x07U\x02\x02\u1EB7\u1EB8" + + "\x07S\x02\x02\u1EB8\u1EB9\x07N\x02\x02\u1EB9\u1EBA\x07a\x02\x02\u1EBA" + + "\u1EBB\x07D\x02\x02\u1EBB\u1EBC\x07W\x02\x02\u1EBC\u1EBD\x07H\x02\x02" + + "\u1EBD\u1EBE\x07H\x02\x02\u1EBE\u1EBF\x07G\x02\x02\u1EBF\u1EC0\x07T\x02" + + "\x02\u1EC0\u1EC1\x07a\x02\x02\u1EC1\u1EC2\x07T\x02\x02\u1EC2\u1EC3\x07" + + "G\x02\x02\u1EC3\u1EC4\x07U\x02\x02\u1EC4\u1EC5\x07W\x02\x02\u1EC5\u1EC6" + + "\x07N\x02\x02\u1EC6\u1EC7\x07V\x02\x02\u1EC7\u04FA\x03\x02\x02\x02\u1EC8" + + "\u1EC9\x07U\x02\x02\u1EC9\u1ECA\x07S\x02\x02\u1ECA\u1ECB\x07N\x02\x02" + + "\u1ECB\u1ECC\x07a\x02\x02\u1ECC\u1ECD\x07E\x02\x02\u1ECD\u1ECE\x07C\x02" + + "\x02\u1ECE\u1ECF\x07E\x02\x02\u1ECF\u1ED0\x07J\x02\x02\u1ED0\u1ED1\x07" + + "G\x02\x02\u1ED1\u04FC\x03\x02\x02\x02\u1ED2\u1ED3\x07U\x02\x02\u1ED3\u1ED4" + + "\x07S\x02\x02\u1ED4\u1ED5\x07N\x02\x02\u1ED5\u1ED6\x07a\x02\x02\u1ED6" + + "\u1ED7\x07P\x02\x02\u1ED7\u1ED8\x07Q\x02\x02\u1ED8\u1ED9\x07a\x02\x02" + + "\u1ED9\u1EDA\x07E\x02\x02\u1EDA\u1EDB\x07C\x02\x02\u1EDB\u1EDC\x07E\x02" + + "\x02\u1EDC\u1EDD\x07J\x02\x02\u1EDD\u1EDE\x07G\x02\x02\u1EDE\u04FE\x03" + + "\x02\x02\x02\u1EDF\u1EE0\x07U\x02\x02\u1EE0\u1EE1\x07S\x02\x02\u1EE1\u1EE2" + + "\x07N\x02\x02\u1EE2\u1EE3\x07a\x02\x02\u1EE3\u1EE4\x07V\x02\x02\u1EE4" + + "\u1EE5\x07J\x02\x02\u1EE5\u1EE6\x07T\x02\x02\u1EE6\u1EE7\x07G\x02\x02" + + "\u1EE7\u1EE8\x07C\x02\x02\u1EE8\u1EE9\x07F\x02\x02\u1EE9\u0500\x03\x02" + + "\x02\x02\u1EEA\u1EEB\x07U\x02\x02\u1EEB\u1EEC\x07V\x02\x02\u1EEC\u1EED" + + "\x07C\x02\x02\u1EED\u1EEE\x07T\x02\x02\u1EEE\u1EEF\x07V\x02\x02\u1EEF" + + "\u0502\x03\x02\x02\x02\u1EF0\u1EF1\x07U\x02\x02\u1EF1\u1EF2\x07V\x02\x02" + + "\u1EF2\u1EF3\x07C\x02\x02\u1EF3\u1EF4\x07T\x02\x02\u1EF4\u1EF5\x07V\x02" + + "\x02\u1EF5\u1EF6\x07U\x02\x02\u1EF6\u0504\x03\x02\x02\x02\u1EF7\u1EF8" + + "\x07U\x02\x02\u1EF8\u1EF9\x07V\x02\x02\u1EF9\u1EFA\x07C\x02\x02\u1EFA" + + "\u1EFB\x07V\x02\x02\u1EFB\u1EFC\x07U\x02\x02\u1EFC\u1EFD\x07a\x02\x02" + + "\u1EFD\u1EFE\x07C\x02\x02\u1EFE\u1EFF\x07W\x02\x02\u1EFF\u1F00\x07V\x02" + + "\x02\u1F00\u1F01\x07Q\x02\x02\u1F01\u1F02\x07a\x02\x02\u1F02\u1F03\x07" + + "T\x02\x02\u1F03\u1F04\x07G\x02\x02\u1F04\u1F05\x07E\x02\x02\u1F05\u1F06" + + "\x07C\x02\x02\u1F06\u1F07\x07N\x02\x02\u1F07\u1F08\x07E\x02\x02\u1F08" + + "\u0506\x03\x02\x02\x02\u1F09\u1F0A\x07U\x02\x02\u1F0A\u1F0B\x07V\x02\x02" + + "\u1F0B\u1F0C\x07C\x02\x02\u1F0C\u1F0D\x07V\x02\x02\u1F0D\u1F0E\x07U\x02" + + "\x02\u1F0E\u1F0F\x07a\x02\x02\u1F0F\u1F10\x07R\x02\x02\u1F10\u1F11\x07" + + "G\x02\x02\u1F11\u1F12\x07T\x02\x02\u1F12\u1F13\x07U\x02\x02\u1F13\u1F14" + + "\x07K\x02\x02\u1F14\u1F15\x07U\x02\x02\u1F15\u1F16\x07V\x02\x02\u1F16" + + "\u1F17\x07G\x02\x02\u1F17\u1F18\x07P\x02\x02\u1F18\u1F19\x07V\x02\x02" + + "\u1F19\u0508\x03\x02\x02\x02\u1F1A\u1F1B\x07U\x02\x02\u1F1B\u1F1C\x07" + + "V\x02\x02\u1F1C\u1F1D\x07C\x02\x02\u1F1D\u1F1E\x07V\x02\x02\u1F1E\u1F1F" + + "\x07U\x02\x02\u1F1F\u1F20\x07a\x02\x02\u1F20\u1F21\x07U\x02\x02\u1F21" + + "\u1F22\x07C\x02\x02\u1F22\u1F23\x07O\x02\x02\u1F23\u1F24\x07R\x02\x02" + + "\u1F24\u1F25\x07N\x02\x02\u1F25\u1F26\x07G\x02\x02\u1F26\u1F27\x07a\x02" + + "\x02\u1F27\u1F28\x07R\x02\x02\u1F28\u1F29\x07C\x02\x02\u1F29\u1F2A\x07" + + "I\x02\x02\u1F2A\u1F2B\x07G\x02\x02\u1F2B\u1F2C\x07U\x02\x02\u1F2C\u050A" + + "\x03\x02\x02\x02\u1F2D\u1F2E\x07U\x02\x02\u1F2E\u1F2F\x07V\x02\x02\u1F2F" + + "\u1F30\x07C\x02\x02\u1F30\u1F31\x07V\x02\x02\u1F31\u1F32\x07W\x02\x02" + + "\u1F32\u1F33\x07U\x02\x02\u1F33\u050C\x03\x02\x02\x02\u1F34\u1F35\x07" + + "U\x02\x02\u1F35\u1F36\x07V\x02\x02\u1F36\u1F37\x07Q\x02\x02\u1F37\u1F38" + + "\x07R\x02\x02\u1F38\u050E\x03\x02\x02\x02\u1F39\u1F3A\x07U\x02\x02\u1F3A" + + "\u1F3B\x07V\x02\x02\u1F3B\u1F3C\x07Q\x02\x02\u1F3C\u1F3D\x07T\x02\x02" + + "\u1F3D\u1F3E\x07C\x02\x02\u1F3E\u1F3F\x07I\x02\x02\u1F3F\u1F40\x07G\x02" + + "\x02\u1F40\u0510\x03\x02\x02\x02\u1F41\u1F42\x07U\x02\x02\u1F42\u1F43" + + "\x07V\x02\x02\u1F43\u1F44\x07Q\x02\x02\u1F44\u1F45\x07T\x02\x02\u1F45" + + "\u1F46\x07G\x02\x02\u1F46\u1F47\x07F\x02\x02\u1F47\u0512\x03\x02\x02\x02" + + "\u1F48\u1F49\x07U\x02\x02\u1F49\u1F4A\x07V\x02\x02\u1F4A\u1F4B\x07T\x02" + + "\x02\u1F4B\u1F4C\x07K\x02\x02\u1F4C\u1F4D\x07P\x02\x02\u1F4D\u1F4E\x07" + + "I\x02\x02\u1F4E\u0514\x03\x02\x02\x02\u1F4F\u1F50\x07U\x02\x02\u1F50\u1F51" + + "\x07W\x02\x02\u1F51\u1F52\x07D\x02\x02\u1F52\u1F53\x07E\x02\x02\u1F53" + + "\u1F54\x07N\x02\x02\u1F54\u1F55\x07C\x02\x02\u1F55\u1F56\x07U\x02\x02" + + "\u1F56\u1F57\x07U\x02\x02\u1F57\u1F58\x07a\x02\x02\u1F58\u1F59\x07Q\x02" + + "\x02\u1F59\u1F5A\x07T\x02\x02\u1F5A\u1F5B\x07K\x02\x02\u1F5B\u1F5C\x07" + + "I\x02\x02\u1F5C\u1F5D\x07K\x02\x02\u1F5D\u1F5E\x07P\x02\x02\u1F5E\u0516" + + "\x03\x02\x02\x02\u1F5F\u1F60\x07U\x02\x02\u1F60\u1F61\x07W\x02\x02\u1F61" + + "\u1F62\x07D\x02\x02\u1F62\u1F63\x07L\x02\x02\u1F63\u1F64\x07G\x02\x02" + + "\u1F64\u1F65\x07E\x02\x02\u1F65\u1F66\x07V\x02\x02\u1F66\u0518\x03\x02" + + "\x02\x02\u1F67\u1F68\x07U\x02\x02\u1F68\u1F69\x07W\x02\x02\u1F69\u1F6A" + + "\x07D\x02\x02\u1F6A\u1F6B\x07R\x02\x02\u1F6B\u1F6C\x07C\x02\x02\u1F6C" + + "\u1F6D\x07T\x02\x02\u1F6D\u1F6E\x07V\x02\x02\u1F6E\u1F6F\x07K\x02\x02" + + "\u1F6F\u1F70\x07V\x02\x02\u1F70\u1F71\x07K\x02\x02\u1F71\u1F72\x07Q\x02" + + "\x02\u1F72\u1F73\x07P\x02\x02\u1F73\u051A\x03\x02\x02\x02\u1F74\u1F75" + + "\x07U\x02\x02\u1F75\u1F76\x07W\x02\x02\u1F76\u1F77\x07D\x02\x02\u1F77" + + "\u1F78\x07R\x02\x02\u1F78\u1F79\x07C\x02\x02\u1F79\u1F7A\x07T\x02\x02" + + "\u1F7A\u1F7B\x07V\x02\x02\u1F7B\u1F7C\x07K\x02\x02\u1F7C\u1F7D\x07V\x02" + + "\x02\u1F7D\u1F7E\x07K\x02\x02\u1F7E\u1F7F\x07Q\x02\x02\u1F7F\u1F80\x07" + + "P\x02\x02\u1F80\u1F81\x07U\x02\x02\u1F81\u051C\x03\x02\x02\x02\u1F82\u1F83" + + "\x07U\x02\x02\u1F83\u1F84\x07W\x02\x02\u1F84\u1F85\x07U\x02\x02\u1F85" + + "\u1F86\x07R\x02\x02\u1F86\u1F87\x07G\x02\x02\u1F87\u1F88\x07P\x02\x02" + + "\u1F88\u1F89\x07F\x02\x02\u1F89\u051E\x03\x02\x02\x02\u1F8A\u1F8B\x07" + + "U\x02\x02\u1F8B\u1F8C\x07Y\x02\x02\u1F8C\u1F8D\x07C\x02\x02\u1F8D\u1F8E" + + "\x07R\x02\x02\u1F8E\u1F8F\x07U\x02\x02\u1F8F\u0520\x03\x02\x02\x02\u1F90" + + "\u1F91\x07U\x02\x02\u1F91\u1F92\x07Y\x02\x02\u1F92\u1F93\x07K\x02\x02" + + "\u1F93\u1F94\x07V\x02\x02\u1F94\u1F95\x07E\x02\x02\u1F95\u1F96\x07J\x02" + + "\x02\u1F96\u1F97\x07G\x02\x02\u1F97\u1F98\x07U\x02\x02\u1F98\u0522\x03" + + "\x02\x02\x02\u1F99\u1F9A\x07V\x02\x02\u1F9A\u1F9B\x07C\x02\x02\u1F9B\u1F9C" + + "\x07D\x02\x02\u1F9C\u1F9D\x07N\x02\x02\u1F9D\u1F9E\x07G\x02\x02\u1F9E" + + "\u1F9F\x07a\x02\x02\u1F9F\u1FA0\x07P\x02\x02\u1FA0\u1FA1\x07C\x02\x02" + + "\u1FA1\u1FA2\x07O\x02\x02\u1FA2\u1FA3\x07G\x02\x02\u1FA3\u0524\x03\x02" + + "\x02\x02\u1FA4\u1FA5\x07V\x02\x02\u1FA5\u1FA6\x07C\x02\x02\u1FA6\u1FA7" + + "\x07D\x02\x02\u1FA7\u1FA8\x07N\x02\x02\u1FA8\u1FA9\x07G\x02\x02\u1FA9" + + "\u1FAA\x07U\x02\x02\u1FAA\u1FAB\x07R\x02\x02\u1FAB\u1FAC\x07C\x02\x02" + + "\u1FAC\u1FAD\x07E\x02\x02\u1FAD\u1FAE\x07G\x02\x02\u1FAE\u0526\x03\x02" + + "\x02\x02\u1FAF\u1FB0\x07V\x02\x02\u1FB0\u1FB1\x07C\x02\x02\u1FB1\u1FB2" + + "\x07D\x02\x02\u1FB2\u1FB3\x07N\x02\x02\u1FB3\u1FB4\x07G\x02\x02\u1FB4" + + "\u1FB5\x07a\x02\x02\u1FB5\u1FB6\x07V\x02\x02\u1FB6\u1FB7\x07[\x02\x02" + + "\u1FB7\u1FB8\x07R\x02\x02\u1FB8\u1FB9\x07G\x02\x02\u1FB9\u0528\x03\x02" + + "\x02\x02\u1FBA\u1FBB\x07V\x02\x02\u1FBB\u1FBC\x07G\x02\x02\u1FBC\u1FBD" + + "\x07O\x02\x02\u1FBD\u1FBE\x07R\x02\x02\u1FBE\u1FBF\x07Q\x02\x02\u1FBF" + + "\u1FC0\x07T\x02\x02\u1FC0\u1FC1\x07C\x02\x02\u1FC1\u1FC2\x07T\x02\x02" + + "\u1FC2\u1FC3\x07[\x02\x02\u1FC3\u052A\x03\x02\x02\x02\u1FC4\u1FC5\x07" + + "V\x02\x02\u1FC5\u1FC6\x07G\x02\x02\u1FC6\u1FC7\x07O\x02\x02\u1FC7\u1FC8" + + "\x07R\x02\x02\u1FC8\u1FC9\x07V\x02\x02\u1FC9\u1FCA\x07C\x02\x02\u1FCA" + + "\u1FCB\x07D\x02\x02\u1FCB\u1FCC\x07N\x02\x02\u1FCC\u1FCD\x07G\x02\x02" + + "\u1FCD\u052C\x03\x02\x02\x02\u1FCE\u1FCF\x07V\x02\x02\u1FCF\u1FD0\x07" + + "J\x02\x02\u1FD0\u1FD1\x07C\x02\x02\u1FD1\u1FD2\x07P\x02\x02\u1FD2\u052E" + + "\x03\x02\x02\x02\u1FD3\u1FD4\x07V\x02\x02\u1FD4\u1FD5\x07T\x02\x02\u1FD5" + + "\u1FD6\x07C\x02\x02\u1FD6\u1FD7\x07F\x02\x02\u1FD7\u1FD8\x07K\x02\x02" + + "\u1FD8\u1FD9\x07V\x02\x02\u1FD9\u1FDA\x07K\x02\x02\u1FDA\u1FDB\x07Q\x02" + + "\x02\u1FDB\u1FDC\x07P\x02\x02\u1FDC\u1FDD\x07C\x02\x02\u1FDD\u1FDE\x07" + + "N\x02\x02\u1FDE\u0530\x03\x02\x02\x02\u1FDF\u1FE0\x07V\x02\x02\u1FE0\u1FE1" + + "\x07T\x02\x02\u1FE1\u1FE2\x07C\x02\x02\u1FE2\u1FE3\x07P\x02\x02\u1FE3" + + "\u1FE4\x07U\x02\x02\u1FE4\u1FE5\x07C\x02\x02\u1FE5\u1FE6\x07E\x02\x02" + + "\u1FE6\u1FE7\x07V\x02\x02\u1FE7\u1FE8\x07K\x02\x02\u1FE8\u1FE9\x07Q\x02" + + "\x02\u1FE9\u1FEA\x07P\x02\x02\u1FEA\u0532\x03\x02\x02\x02\u1FEB\u1FEC" + + "\x07V\x02\x02\u1FEC\u1FED\x07T\x02\x02\u1FED\u1FEE\x07C\x02\x02\u1FEE" + + "\u1FEF\x07P\x02\x02\u1FEF\u1FF0\x07U\x02\x02\u1FF0\u1FF1\x07C\x02\x02" + + "\u1FF1\u1FF2\x07E\x02\x02\u1FF2\u1FF3\x07V\x02\x02\u1FF3\u1FF4\x07K\x02" + + "\x02\u1FF4\u1FF5\x07Q\x02\x02\u1FF5\u1FF6\x07P\x02\x02\u1FF6\u1FF7\x07" + + "C\x02\x02\u1FF7\u1FF8\x07N\x02\x02\u1FF8\u0534\x03\x02\x02\x02\u1FF9\u1FFA" + + "\x07V\x02\x02\u1FFA\u1FFB\x07T\x02\x02\u1FFB\u1FFC\x07G\x02\x02\u1FFC" + + "\u1FFD\x07G\x02\x02\u1FFD\u0536\x03\x02\x02\x02\u1FFE\u1FFF\x07V\x02\x02" + + "\u1FFF\u2000\x07T\x02\x02\u2000\u2001\x07K\x02\x02\u2001\u2002\x07I\x02" + + "\x02\u2002\u2003\x07I\x02\x02\u2003\u2004\x07G\x02\x02\u2004\u2005\x07" + + "T\x02\x02\u2005\u2006\x07U\x02\x02\u2006\u0538\x03\x02\x02\x02\u2007\u2008" + + "\x07V\x02\x02\u2008\u2009\x07T\x02\x02\u2009\u200A\x07W\x02\x02\u200A" + + "\u200B\x07P\x02\x02\u200B\u200C\x07E\x02\x02\u200C\u200D\x07C\x02\x02" + + "\u200D\u200E\x07V\x02\x02\u200E\u200F\x07G\x02\x02\u200F\u053A\x03\x02" + + "\x02\x02\u2010\u2011\x07W\x02\x02\u2011\u2012\x07P\x02\x02\u2012\u2013" + + "\x07D\x02\x02\u2013\u2014\x07Q\x02\x02\u2014\u2015\x07W\x02\x02\u2015" + + "\u2016\x07P\x02\x02\u2016\u2017\x07F\x02\x02\u2017\u2018\x07G\x02\x02" + + "\u2018\u2019\x07F\x02\x02\u2019\u053C\x03\x02\x02\x02\u201A\u201B\x07" + + "W\x02\x02\u201B\u201C\x07P\x02\x02\u201C\u201D\x07F\x02\x02\u201D\u201E" + + "\x07G\x02\x02\u201E\u201F\x07H\x02\x02\u201F\u2020\x07K\x02\x02\u2020" + + "\u2021\x07P\x02\x02\u2021\u2022\x07G\x02\x02\u2022\u2023\x07F\x02\x02" + + "\u2023\u053E\x03\x02\x02\x02\u2024\u2025\x07W\x02\x02\u2025\u2026\x07" + + "P\x02\x02\u2026\u2027\x07F\x02\x02\u2027\u2028\x07Q\x02\x02\u2028\u2029" + + "\x07H\x02\x02\u2029\u202A\x07K\x02\x02\u202A\u202B\x07N\x02\x02\u202B" + + "\u202C\x07G\x02\x02\u202C\u0540\x03\x02\x02\x02\u202D\u202E\x07W\x02\x02" + + "\u202E\u202F\x07P\x02\x02\u202F\u2030\x07F\x02\x02\u2030\u2031\x07Q\x02" + + "\x02\u2031\u2032\x07a\x02\x02\u2032\u2033\x07D\x02\x02\u2033\u2034\x07" + + "W\x02\x02\u2034\u2035\x07H\x02\x02\u2035\u2036\x07H\x02\x02\u2036\u2037" + + "\x07G\x02\x02\u2037\u2038\x07T\x02\x02\u2038\u2039\x07a\x02\x02\u2039" + + "\u203A\x07U\x02\x02\u203A\u203B\x07K\x02\x02\u203B\u203C\x07\\\x02\x02" + + "\u203C\u203D\x07G\x02\x02\u203D\u0542\x03\x02\x02\x02\u203E\u203F\x07" + + "W\x02\x02\u203F\u2040\x07P\x02\x02\u2040\u2041\x07K\x02\x02\u2041\u2042" + + "\x07P\x02\x02\u2042\u2043\x07U\x02\x02\u2043\u2044\x07V\x02\x02\u2044" + + "\u2045\x07C\x02\x02\u2045\u2046\x07N\x02\x02\u2046\u2047\x07N\x02\x02" + + "\u2047\u0544\x03\x02\x02\x02\u2048\u2049\x07W\x02\x02\u2049\u204A\x07" + + "P\x02\x02\u204A\u204B\x07M\x02\x02\u204B\u204C\x07P\x02\x02\u204C\u204D" + + "\x07Q\x02\x02\u204D\u204E\x07Y\x02\x02\u204E\u204F\x07P\x02\x02\u204F" + + "\u0546\x03\x02\x02\x02\u2050\u2051\x07W\x02\x02\u2051\u2052\x07P\x02\x02" + + "\u2052\u2053\x07T\x02\x02\u2053\u2054\x07G\x02\x02\u2054\u2055\x07I\x02" + + "\x02\u2055\u2056\x07K\x02\x02\u2056\u2057\x07U\x02\x02\u2057\u2058\x07" + + "V\x02\x02\u2058\u2059\x07G\x02\x02\u2059\u205A\x07T\x02\x02\u205A\u0548" + + "\x03\x02\x02\x02\u205B\u205C\x07W\x02\x02\u205C\u205D\x07P\x02\x02\u205D" + + "\u205E\x07V\x02\x02\u205E\u205F\x07K\x02\x02\u205F\u2060\x07N\x02\x02" + + "\u2060\u054A\x03\x02\x02\x02\u2061\u2062\x07W\x02\x02\u2062\u2063\x07" + + "R\x02\x02\u2063\u2064\x07I\x02\x02\u2064\u2065\x07T\x02\x02\u2065\u2066" + + "\x07C\x02\x02\u2066\u2067\x07F\x02\x02\u2067\u2068\x07G\x02\x02\u2068" + + "\u054C\x03\x02\x02\x02\u2069\u206A\x07W\x02\x02\u206A\u206B\x07U\x02\x02" + + "\u206B\u206C\x07G\x02\x02\u206C\u206D\x07T\x02\x02\u206D\u054E\x03\x02" + + "\x02\x02\u206E\u206F\x07W\x02\x02\u206F\u2070\x07U\x02\x02\u2070\u2071" + + "\x07G\x02\x02\u2071\u2072\x07a\x02\x02\u2072\u2073\x07H\x02\x02\u2073" + + "\u2074\x07T\x02\x02\u2074\u2075\x07O\x02\x02\u2075\u0550\x03\x02\x02\x02" + + "\u2076\u2077\x07W\x02\x02\u2077\u2078\x07U\x02\x02\u2078\u2079\x07G\x02" + + "\x02\u2079\u207A\x07T\x02\x02\u207A\u207B\x07a\x02\x02\u207B\u207C\x07" + + "T\x02\x02\u207C\u207D\x07G\x02\x02\u207D\u207E\x07U\x02\x02\u207E\u207F" + + "\x07Q\x02\x02\u207F\u2080\x07W\x02\x02\u2080\u2081\x07T\x02\x02\u2081" + + "\u2082\x07E\x02\x02\u2082\u2083\x07G\x02\x02\u2083\u2084\x07U\x02\x02" + + "\u2084\u0552\x03\x02\x02\x02\u2085\u2086\x07X\x02\x02\u2086\u2087\x07" + + "C\x02\x02\u2087\u2088\x07N\x02\x02\u2088\u2089\x07K\x02\x02\u2089\u208A" + + "\x07F\x02\x02\u208A\u208B\x07C\x02\x02\u208B\u208C\x07V\x02\x02\u208C" + + "\u208D\x07K\x02\x02\u208D\u208E\x07Q\x02\x02\u208E\u208F\x07P\x02\x02" + + "\u208F\u0554\x03\x02\x02\x02\u2090\u2091\x07X\x02\x02\u2091\u2092\x07" + + "C\x02\x02\u2092\u2093\x07N\x02\x02\u2093\u2094\x07W\x02\x02\u2094\u2095" + + "\x07G\x02\x02\u2095\u0556\x03\x02\x02\x02\u2096\u2097\x07X\x02\x02\u2097" + + "\u2098\x07C\x02\x02\u2098\u2099\x07T\x02\x02\u2099\u209A\x07K\x02\x02" + + "\u209A\u209B\x07C\x02\x02\u209B\u209C\x07D\x02\x02\u209C\u209D\x07N\x02" + + "\x02\u209D\u209E\x07G\x02\x02\u209E\u209F\x07U\x02\x02\u209F\u0558\x03" + + "\x02\x02\x02\u20A0\u20A1\x07X\x02\x02\u20A1\u20A2\x07K\x02\x02\u20A2\u20A3" + + "\x07G\x02\x02\u20A3\u20A4\x07Y\x02\x02\u20A4\u055A\x03\x02\x02\x02\u20A5" + + "\u20A6\x07X\x02\x02\u20A6\u20A7\x07K\x02\x02\u20A7\u20A8\x07T\x02\x02" + + "\u20A8\u20A9\x07V\x02\x02\u20A9\u20AA\x07W\x02\x02\u20AA\u20AB\x07C\x02" + + "\x02\u20AB\u20AC\x07N\x02\x02\u20AC\u055C\x03\x02\x02\x02\u20AD\u20AE" + + "\x07X\x02\x02\u20AE\u20AF\x07K\x02\x02\u20AF\u20B0\x07U\x02\x02\u20B0" + + "\u20B1\x07K\x02\x02\u20B1\u20B2\x07D\x02\x02\u20B2\u20B3\x07N\x02\x02" + + "\u20B3\u20B4\x07G\x02\x02\u20B4\u055E\x03\x02\x02\x02\u20B5\u20B6\x07" + + "Y\x02\x02\u20B6\u20B7\x07C\x02\x02\u20B7\u20B8\x07K\x02\x02\u20B8\u20B9" + + "\x07V\x02\x02\u20B9\u0560\x03\x02\x02\x02\u20BA\u20BB\x07Y\x02\x02\u20BB" + + "\u20BC\x07C\x02\x02\u20BC\u20BD\x07T\x02\x02\u20BD\u20BE\x07P\x02\x02" + + "\u20BE\u20BF\x07K\x02\x02\u20BF\u20C0\x07P\x02\x02\u20C0\u20C1\x07I\x02" + + "\x02\u20C1\u20C2\x07U\x02\x02\u20C2\u0562\x03\x02\x02\x02\u20C3\u20C4" + + "\x07Y\x02\x02\u20C4\u20C5\x07K\x02\x02\u20C5\u20C6\x07P\x02\x02\u20C6" + + "\u20C7\x07F\x02\x02\u20C7\u20C8\x07Q\x02\x02\u20C8\u20C9\x07Y\x02\x02" + + "\u20C9\u0564\x03\x02\x02\x02\u20CA\u20CB\x07Y\x02\x02\u20CB\u20CC\x07" + + "K\x02\x02\u20CC\u20CD\x07V\x02\x02\u20CD\u20CE\x07J\x02\x02\u20CE\u20CF" + + "\x07Q\x02\x02\u20CF\u20D0\x07W\x02\x02\u20D0\u20D1\x07V\x02\x02\u20D1" + + "\u0566\x03\x02\x02\x02\u20D2\u20D3\x07Y\x02\x02\u20D3\u20D4\x07Q\x02\x02" + + "\u20D4\u20D5\x07T\x02\x02\u20D5\u20D6\x07M\x02\x02\u20D6\u0568\x03\x02" + + "\x02\x02\u20D7\u20D8\x07Y\x02\x02\u20D8\u20D9\x07T\x02\x02\u20D9\u20DA" + + "\x07C\x02\x02\u20DA\u20DB\x07R\x02\x02\u20DB\u20DC\x07R\x02\x02\u20DC" + + "\u20DD\x07G\x02\x02\u20DD\u20DE\x07T\x02\x02\u20DE\u056A\x03\x02\x02\x02" + + "\u20DF\u20E0\x07Z\x02\x02\u20E0\u20E1\x077\x02\x02\u20E1\u20E2\x072\x02" + + "\x02\u20E2\u20E3\x07;\x02\x02\u20E3\u056C\x03\x02\x02\x02\u20E4\u20E5" + + "\x07Z\x02\x02\u20E5\u20E6\x07C\x02\x02\u20E6\u056E\x03\x02\x02\x02\u20E7" + + "\u20E8\x07Z\x02\x02\u20E8\u20E9\x07O\x02\x02\u20E9\u20EA\x07N\x02\x02" + + "\u20EA\u0570\x03\x02\x02\x02\u20EB\u20EC\x07S\x02\x02\u20EC\u20ED\x07" + + "W\x02\x02\u20ED\u20EE\x07C\x02\x02\u20EE\u20EF\x07T\x02\x02\u20EF\u20F0" + + "\x07V\x02\x02\u20F0\u20F1\x07G\x02\x02\u20F1\u20F2\x07T\x02\x02\u20F2" + + "\u0572\x03\x02\x02\x02\u20F3\u20F4\x07O\x02\x02\u20F4\u20F5\x07Q\x02\x02" + + "\u20F5\u20F6\x07P\x02\x02\u20F6\u20F7\x07V\x02\x02\u20F7\u20F8\x07J\x02" + + "\x02\u20F8\u0574\x03\x02\x02\x02\u20F9\u20FA\x07F\x02\x02\u20FA\u20FB" + + "\x07C\x02\x02\u20FB\u20FC\x07[\x02\x02\u20FC\u0576\x03\x02\x02\x02\u20FD" + + "\u20FE\x07J\x02\x02\u20FE\u20FF\x07Q\x02\x02\u20FF\u2100\x07W\x02\x02" + + "\u2100\u2101\x07T\x02\x02\u2101\u0578\x03\x02\x02\x02\u2102\u2103\x07" + + "O\x02\x02\u2103\u2104\x07K\x02\x02\u2104\u2105\x07P\x02\x02\u2105\u2106" + + "\x07W\x02\x02\u2106\u2107\x07V\x02\x02\u2107\u2108\x07G\x02\x02\u2108" + + "\u057A\x03\x02\x02\x02\u2109\u210A\x07Y\x02\x02\u210A\u210B\x07G\x02\x02" + + "\u210B\u210C\x07G\x02\x02\u210C\u210D\x07M\x02\x02\u210D\u057C\x03\x02" + + "\x02\x02\u210E\u210F\x07U\x02\x02\u210F\u2110\x07G\x02\x02\u2110\u2111" + + "\x07E\x02\x02\u2111\u2112\x07Q\x02\x02\u2112\u2113\x07P\x02\x02\u2113" + + "\u2114\x07F\x02\x02\u2114\u057E\x03\x02\x02\x02\u2115\u2116\x07O\x02\x02" + + "\u2116\u2117\x07K\x02\x02\u2117\u2118\x07E\x02\x02\u2118\u2119\x07T\x02" + + "\x02\u2119\u211A\x07Q\x02\x02\u211A\u211B\x07U\x02\x02\u211B\u211C\x07" + + "G\x02\x02\u211C\u211D\x07E\x02\x02\u211D\u211E\x07Q\x02\x02\u211E\u211F" + + "\x07P\x02\x02\u211F\u2120\x07F\x02\x02\u2120\u0580\x03\x02\x02\x02\u2121" + + "\u2122\x07C\x02\x02\u2122\u2123\x07F\x02\x02\u2123\u2124\x07O\x02\x02" + + "\u2124\u2125\x07K\x02\x02\u2125\u2126\x07P\x02\x02\u2126\u0582\x03\x02" + + "\x02\x02\u2127\u2128\x07C\x02\x02\u2128\u2129\x07R\x02\x02\u2129\u212A" + + "\x07R\x02\x02\u212A\u212B\x07N\x02\x02\u212B\u212C\x07K\x02\x02\u212C" + + "\u212D\x07E\x02\x02\u212D\u212E\x07C\x02\x02\u212E\u212F\x07V\x02\x02" + + "\u212F\u2130\x07K\x02\x02\u2130\u2131\x07Q\x02\x02\u2131\u2132\x07P\x02" + + "\x02\u2132\u2133\x07a\x02\x02\u2133\u2134\x07R\x02\x02\u2134\u2135\x07" + + "C\x02\x02\u2135\u2136\x07U\x02\x02\u2136\u2137\x07U\x02\x02\u2137\u2138" + + "\x07Y\x02\x02\u2138\u2139\x07Q\x02\x02\u2139\u213A\x07T\x02\x02\u213A" + + "\u213B\x07F\x02\x02\u213B\u213C\x07a\x02\x02\u213C\u213D\x07C\x02\x02" + + "\u213D\u213E\x07F\x02\x02\u213E\u213F\x07O\x02\x02\u213F\u2140\x07K\x02" + + "\x02\u2140\u2141\x07P\x02\x02\u2141\u0584\x03\x02\x02\x02\u2142\u2143" + + "\x07C\x02\x02\u2143\u2144\x07W\x02\x02\u2144\u2145\x07F\x02\x02\u2145" + + "\u2146\x07K\x02\x02\u2146\u2147\x07V\x02\x02\u2147\u2148\x07a\x02\x02" + + "\u2148\u2149\x07C\x02\x02\u2149\u214A\x07D\x02\x02\u214A\u214B\x07Q\x02" + + "\x02\u214B\u214C\x07T\x02\x02\u214C\u214D\x07V\x02\x02\u214D\u214E\x07" + + "a\x02\x02\u214E\u214F\x07G\x02\x02\u214F\u2150\x07Z\x02\x02\u2150\u2151" + + "\x07G\x02\x02\u2151\u2152\x07O\x02\x02\u2152\u2153\x07R\x02\x02\u2153" + + "\u2154\x07V\x02\x02\u2154\u0586\x03\x02\x02\x02\u2155\u2156\x07C\x02\x02" + + "\u2156\u2157\x07W\x02\x02\u2157\u2158\x07F\x02\x02\u2158\u2159\x07K\x02" + + "\x02\u2159\u215A\x07V"; + private static readonly _serializedATNSegment15: string = + "\x02\x02\u215A\u215B\x07a\x02\x02\u215B\u215C\x07C\x02\x02\u215C\u215D" + + "\x07F\x02\x02\u215D\u215E\x07O\x02\x02\u215E\u215F\x07K\x02\x02\u215F" + + "\u2160\x07P\x02\x02\u2160\u0588\x03\x02\x02\x02\u2161\u2162\x07C\x02\x02" + + "\u2162\u2163\x07W\x02\x02\u2163\u2164\x07V\x02\x02\u2164\u2165\x07J\x02" + + "\x02\u2165\u2166\x07G\x02\x02\u2166\u2167\x07P\x02\x02\u2167\u2168\x07" + + "V\x02\x02\u2168\u2169\x07K\x02\x02\u2169\u216A\x07E\x02\x02\u216A\u216B" + + "\x07C\x02\x02\u216B\u216C\x07V\x02\x02\u216C\u216D\x07K\x02\x02\u216D" + + "\u216E\x07Q\x02\x02\u216E\u216F\x07P\x02\x02\u216F\u058A\x03\x02\x02\x02" + + "\u2170\u2171\x07C\x02\x02\u2171\u2172\x07W\x02\x02\u2172\u2173\x07V\x02" + + "\x02\u2173\u2174\x07J\x02\x02\u2174\u2175\x07G\x02\x02\u2175\u2176\x07" + + "P\x02\x02\u2176\u2177\x07V\x02\x02\u2177\u2178\x07K\x02\x02\u2178\u2179" + + "\x07E\x02\x02\u2179\u217A\x07C\x02\x02\u217A\u217B\x07V\x02\x02\u217B" + + "\u217C\x07K\x02\x02\u217C\u217D\x07Q\x02\x02\u217D\u217E\x07P\x02\x02" + + "\u217E\u217F\x07a\x02\x02\u217F\u2180\x07R\x02\x02\u2180\u2181\x07Q\x02" + + "\x02\u2181\u2182\x07N\x02\x02\u2182\u2183\x07K\x02\x02\u2183\u2184\x07" + + "E\x02\x02\u2184\u2185\x07[\x02\x02\u2185\u2186\x07a\x02\x02\u2186\u2187" + + "\x07C\x02\x02\u2187\u2188\x07F\x02\x02\u2188\u2189\x07O\x02\x02\u2189" + + "\u218A\x07K\x02\x02\u218A\u218B\x07P\x02\x02\u218B\u058C\x03\x02\x02\x02" + + "\u218C\u218D\x07D\x02\x02\u218D\u218E\x07C\x02\x02\u218E\u218F\x07E\x02" + + "\x02\u218F\u2190\x07M\x02\x02\u2190\u2191\x07W\x02\x02\u2191\u2192\x07" + + "R\x02\x02\u2192\u2193\x07a\x02\x02\u2193\u2194\x07C\x02\x02\u2194\u2195" + + "\x07F\x02\x02\u2195\u2196\x07O\x02\x02\u2196\u2197\x07K\x02\x02\u2197" + + "\u2198\x07P\x02\x02\u2198\u058E\x03\x02\x02\x02\u2199\u219A\x07D\x02\x02" + + "\u219A\u219B\x07K\x02\x02\u219B\u219C\x07P\x02\x02\u219C\u219D\x07N\x02" + + "\x02\u219D\u219E\x07Q\x02\x02\u219E\u219F\x07I\x02\x02\u219F\u21A0\x07" + + "a\x02\x02\u21A0\u21A1\x07C\x02\x02\u21A1\u21A2\x07F\x02\x02\u21A2\u21A3" + + "\x07O\x02\x02\u21A3\u21A4\x07K\x02\x02\u21A4\u21A5\x07P\x02\x02\u21A5" + + "\u0590\x03\x02\x02\x02\u21A6\u21A7\x07D\x02\x02\u21A7\u21A8\x07K\x02\x02" + + "\u21A8\u21A9\x07P\x02\x02\u21A9\u21AA\x07N\x02\x02\u21AA\u21AB\x07Q\x02" + + "\x02\u21AB\u21AC\x07I\x02\x02\u21AC\u21AD\x07a\x02\x02\u21AD\u21AE\x07" + + "G\x02\x02\u21AE\u21AF\x07P\x02\x02\u21AF\u21B0\x07E\x02\x02\u21B0\u21B1" + + "\x07T\x02\x02\u21B1\u21B2\x07[\x02\x02\u21B2\u21B3\x07R\x02\x02\u21B3" + + "\u21B4\x07V\x02\x02\u21B4\u21B5\x07K\x02\x02\u21B5\u21B6\x07Q\x02\x02" + + "\u21B6\u21B7\x07P\x02\x02\u21B7\u21B8\x07a\x02\x02\u21B8\u21B9\x07C\x02" + + "\x02\u21B9\u21BA\x07F\x02\x02\u21BA\u21BB\x07O\x02\x02\u21BB\u21BC\x07" + + "K\x02\x02\u21BC\u21BD\x07P\x02\x02\u21BD\u0592\x03\x02\x02\x02\u21BE\u21BF" + + "\x07E\x02\x02\u21BF\u21C0\x07N\x02\x02\u21C0\u21C1\x07Q\x02\x02\u21C1" + + "\u21C2\x07P\x02\x02\u21C2\u21C3\x07G\x02\x02\u21C3\u0594\x03\x02\x02\x02" + + "\u21C4\u21C5\x07E\x02\x02\u21C5\u21C6\x07N\x02\x02\u21C6\u21C7\x07Q\x02" + + "\x02\u21C7\u21C8\x07P\x02\x02\u21C8\u21C9\x07G\x02\x02\u21C9\u21CA\x07" + + "a\x02\x02\u21CA\u21CB\x07C\x02\x02\u21CB\u21CC\x07F\x02\x02\u21CC\u21CD" + + "\x07O\x02\x02\u21CD\u21CE\x07K\x02\x02\u21CE\u21CF\x07P\x02\x02\u21CF" + + "\u0596\x03\x02\x02\x02\u21D0\u21D1\x07E\x02\x02\u21D1\u21D2\x07Q\x02\x02" + + "\u21D2\u21D3\x07P\x02\x02\u21D3\u21D4\x07P\x02\x02\u21D4\u21D5\x07G\x02" + + "\x02\u21D5\u21D6\x07E\x02\x02\u21D6\u21D7\x07V\x02\x02\u21D7\u21D8\x07" + + "K\x02\x02\u21D8\u21D9\x07Q\x02\x02\u21D9\u21DA\x07P\x02\x02\u21DA\u21DB" + + "\x07a\x02\x02\u21DB\u21DC\x07C\x02\x02\u21DC\u21DD\x07F\x02\x02\u21DD" + + "\u21DE\x07O\x02\x02\u21DE\u21DF\x07K\x02\x02\u21DF\u21E0\x07P\x02\x02" + + "\u21E0\u0598\x03\x02\x02\x02\u21E1\u21E2\x07G\x02\x02\u21E2\u21E3\x07" + + "P\x02\x02\u21E3\u21E4\x07E\x02\x02\u21E4\u21E5\x07T\x02\x02\u21E5\u21E6" + + "\x07[\x02\x02\u21E6\u21E7\x07R\x02\x02\u21E7\u21E8\x07V\x02\x02\u21E8" + + "\u21E9\x07K\x02\x02\u21E9\u21EA\x07Q\x02\x02\u21EA\u21EB\x07P\x02\x02" + + "\u21EB\u21EC\x07a\x02\x02\u21EC\u21ED\x07M\x02\x02\u21ED\u21EE\x07G\x02" + + "\x02\u21EE\u21EF\x07[\x02\x02\u21EF\u21F0\x07a\x02\x02\u21F0\u21F1\x07" + + "C\x02\x02\u21F1\u21F2\x07F\x02\x02\u21F2\u21F3\x07O\x02\x02\u21F3\u21F4" + + "\x07K\x02\x02\u21F4\u21F5\x07P\x02\x02\u21F5\u059A\x03\x02\x02\x02\u21F6" + + "\u21F7\x07G\x02\x02\u21F7\u21F8\x07Z\x02\x02\u21F8\u21F9\x07G\x02\x02" + + "\u21F9\u21FA\x07E\x02\x02\u21FA\u21FB\x07W\x02\x02\u21FB\u21FC\x07V\x02" + + "\x02\u21FC\u21FD\x07G\x02\x02\u21FD\u059C\x03\x02\x02\x02\u21FE\u21FF" + + "\x07H\x02\x02\u21FF\u2200\x07K\x02\x02\u2200\u2201\x07N\x02\x02\u2201" + + "\u2202\x07G\x02\x02\u2202\u059E\x03\x02\x02\x02\u2203\u2204\x07H\x02\x02" + + "\u2204\u2205\x07K\x02\x02\u2205\u2206\x07T\x02\x02\u2206\u2207\x07G\x02" + + "\x02\u2207\u2208\x07Y\x02\x02\u2208\u2209\x07C\x02\x02\u2209\u220A\x07" + + "N\x02\x02\u220A\u220B\x07N\x02\x02\u220B\u220C\x07a\x02\x02\u220C\u220D" + + "\x07C\x02\x02\u220D\u220E\x07F\x02\x02\u220E\u220F\x07O\x02\x02\u220F" + + "\u2210\x07K\x02\x02\u2210\u2211\x07P\x02\x02\u2211\u05A0\x03\x02\x02\x02" + + "\u2212\u2213\x07H\x02\x02\u2213\u2214\x07K\x02\x02\u2214\u2215\x07T\x02" + + "\x02\u2215\u2216\x07G\x02\x02\u2216\u2217\x07Y\x02\x02\u2217\u2218\x07" + + "C\x02\x02\u2218\u2219\x07N\x02\x02\u2219\u221A\x07N\x02\x02\u221A\u221B" + + "\x07a\x02\x02\u221B\u221C\x07G\x02\x02\u221C\u221D\x07Z\x02\x02\u221D" + + "\u221E\x07G\x02\x02\u221E\u221F\x07O\x02\x02\u221F\u2220\x07R\x02\x02" + + "\u2220\u2221\x07V\x02\x02\u2221\u05A2\x03\x02\x02\x02\u2222\u2223\x07" + + "H\x02\x02\u2223\u2224\x07K\x02\x02\u2224\u2225\x07T\x02\x02\u2225\u2226" + + "\x07G\x02\x02\u2226\u2227\x07Y\x02\x02\u2227\u2228\x07C\x02\x02\u2228" + + "\u2229\x07N\x02\x02\u2229\u222A\x07N\x02\x02\u222A\u222B\x07a\x02\x02" + + "\u222B\u222C\x07W\x02\x02\u222C\u222D\x07U\x02\x02\u222D\u222E\x07G\x02" + + "\x02\u222E\u222F\x07T\x02\x02\u222F\u05A4\x03\x02\x02\x02\u2230\u2231" + + "\x07H\x02\x02\u2231\u2232\x07N\x02\x02\u2232\u2233\x07W\x02\x02\u2233" + + "\u2234\x07U\x02\x02\u2234\u2235\x07J\x02\x02\u2235\u2236\x07a\x02\x02" + + "\u2236\u2237\x07Q\x02\x02\u2237\u2238\x07R\x02\x02\u2238\u2239\x07V\x02" + + "\x02\u2239\u223A\x07K\x02\x02\u223A\u223B\x07O\x02\x02\u223B\u223C\x07" + + "K\x02\x02\u223C\u223D\x07\\\x02\x02\u223D\u223E\x07G\x02\x02\u223E\u223F" + + "\x07T\x02\x02\u223F\u2240\x07a\x02\x02\u2240\u2241\x07E\x02\x02\u2241" + + "\u2242\x07Q\x02\x02\u2242\u2243\x07U\x02\x02\u2243\u2244\x07V\x02\x02" + + "\u2244\u2245\x07U\x02\x02\u2245\u05A6\x03\x02\x02\x02\u2246\u2247\x07" + + "H\x02\x02\u2247\u2248\x07N\x02\x02\u2248\u2249\x07W\x02\x02\u2249\u224A" + + "\x07U\x02\x02\u224A\u224B\x07J\x02\x02\u224B\u224C\x07a\x02\x02\u224C" + + "\u224D\x07U\x02\x02\u224D\u224E\x07V\x02\x02\u224E\u224F\x07C\x02\x02" + + "\u224F\u2250\x07V\x02\x02\u2250\u2251\x07W\x02\x02\u2251\u2252\x07U\x02" + + "\x02\u2252\u05A8\x03\x02\x02\x02\u2253\u2254\x07H\x02\x02\u2254\u2255" + + "\x07N\x02\x02\u2255\u2256\x07W\x02\x02\u2256\u2257\x07U\x02\x02\u2257" + + "\u2258\x07J\x02\x02\u2258\u2259\x07a\x02\x02\u2259\u225A\x07V\x02\x02" + + "\u225A\u225B\x07C\x02\x02\u225B\u225C\x07D\x02\x02\u225C\u225D\x07N\x02" + + "\x02\u225D\u225E\x07G\x02\x02\u225E\u225F\x07U\x02\x02\u225F\u05AA\x03" + + "\x02\x02\x02\u2260\u2261\x07H\x02\x02\u2261\u2262\x07N\x02\x02\u2262\u2263" + + "\x07W\x02\x02\u2263\u2264\x07U\x02\x02\u2264\u2265\x07J\x02\x02\u2265" + + "\u2266\x07a\x02\x02\u2266\u2267\x07W\x02\x02\u2267\u2268\x07U\x02\x02" + + "\u2268\u2269\x07G\x02\x02\u2269\u226A\x07T\x02\x02\u226A\u226B\x07a\x02" + + "\x02\u226B\u226C\x07T\x02\x02\u226C\u226D\x07G\x02\x02\u226D\u226E\x07" + + "U\x02\x02\u226E\u226F\x07Q\x02\x02\u226F\u2270\x07W\x02\x02\u2270\u2271" + + "\x07T\x02\x02\u2271\u2272\x07E\x02\x02\u2272\u2273\x07G\x02\x02\u2273" + + "\u2274\x07U\x02\x02\u2274\u05AC\x03\x02\x02\x02\u2275\u2276\x07I\x02\x02" + + "\u2276\u2277\x07T\x02\x02\u2277\u2278\x07Q\x02\x02\u2278\u2279\x07W\x02" + + "\x02\u2279\u227A\x07R\x02\x02\u227A\u227B\x07a\x02\x02\u227B\u227C\x07" + + "T\x02\x02\u227C\u227D\x07G\x02\x02\u227D\u227E\x07R\x02\x02\u227E\u227F" + + "\x07N\x02\x02\u227F\u2280\x07K\x02\x02\u2280\u2281\x07E\x02\x02\u2281" + + "\u2282\x07C\x02\x02\u2282\u2283\x07V\x02\x02\u2283\u2284\x07K\x02\x02" + + "\u2284\u2285\x07Q\x02\x02\u2285\u2286\x07P\x02\x02\u2286\u2287\x07a\x02" + + "\x02\u2287\u2288\x07C\x02\x02\u2288\u2289\x07F\x02\x02\u2289\u228A\x07" + + "O\x02\x02\u228A\u228B\x07K\x02\x02\u228B\u228C\x07P\x02\x02\u228C\u05AE" + + "\x03\x02\x02\x02\u228D\u228E\x07K\x02\x02\u228E\u228F\x07P\x02\x02\u228F" + + "\u2290\x07P\x02\x02\u2290\u2291\x07Q\x02\x02\u2291\u2292\x07F\x02\x02" + + "\u2292\u2293\x07D\x02\x02\u2293\u2294\x07a\x02\x02\u2294\u2295\x07T\x02" + + "\x02\u2295\u2296\x07G\x02\x02\u2296\u2297\x07F\x02\x02\u2297\u2298\x07" + + "Q\x02\x02\u2298\u2299\x07a\x02\x02\u2299\u229A\x07N\x02\x02\u229A\u229B" + + "\x07Q\x02\x02\u229B\u229C\x07I\x02\x02\u229C\u229D\x07a\x02\x02\u229D" + + "\u229E\x07C\x02\x02\u229E\u229F\x07T\x02\x02\u229F\u22A0\x07E\x02\x02" + + "\u22A0\u22A1\x07J\x02\x02\u22A1\u22A2\x07K\x02\x02\u22A2\u22A3\x07X\x02" + + "\x02\u22A3\u22A4\x07G\x02\x02\u22A4\u05B0\x03\x02\x02\x02\u22A5\u22A6" + + "\x07K\x02\x02\u22A6\u22A7\x07P\x02\x02\u22A7\u22A8\x07P\x02\x02\u22A8" + + "\u22A9\x07Q\x02\x02\u22A9\u22AA\x07F\x02\x02\u22AA\u22AB\x07D\x02\x02" + + "\u22AB\u22AC\x07a\x02\x02\u22AC\u22AD\x07T\x02\x02\u22AD\u22AE\x07G\x02" + + "\x02\u22AE\u22AF\x07F\x02\x02\u22AF\u22B0\x07Q\x02\x02\u22B0\u22B1\x07" + + "a\x02\x02\u22B1\u22B2\x07N\x02\x02\u22B2\u22B3\x07Q\x02\x02\u22B3\u22B4" + + "\x07I\x02\x02\u22B4\u22B5\x07a\x02\x02\u22B5\u22B6\x07G\x02\x02\u22B6" + + "\u22B7\x07P\x02\x02\u22B7\u22B8\x07C\x02\x02\u22B8\u22B9\x07D\x02\x02" + + "\u22B9\u22BA\x07N\x02\x02\u22BA\u22BB\x07G\x02\x02\u22BB\u05B2\x03\x02" + + "\x02\x02\u22BC\u22BD\x07K\x02\x02\u22BD\u22BE\x07P\x02\x02\u22BE\u22BF" + + "\x07X\x02\x02\u22BF\u22C0\x07Q\x02\x02\u22C0\u22C1\x07M\x02\x02\u22C1" + + "\u22C2\x07G\x02\x02\u22C2\u05B4\x03\x02\x02\x02\u22C3\u22C4\x07N\x02\x02" + + "\u22C4\u22C5\x07C\x02\x02\u22C5\u22C6\x07O\x02\x02\u22C6\u22C7\x07D\x02" + + "\x02\u22C7\u22C8\x07F\x02\x02\u22C8\u22C9\x07C\x02\x02\u22C9\u05B6\x03" + + "\x02\x02\x02\u22CA\u22CB\x07P\x02\x02\u22CB\u22CC\x07F\x02\x02\u22CC\u22CD" + + "\x07D\x02\x02\u22CD\u22CE\x07a\x02\x02\u22CE\u22CF\x07U\x02\x02\u22CF" + + "\u22D0\x07V\x02\x02\u22D0\u22D1\x07Q\x02\x02\u22D1\u22D2\x07T\x02\x02" + + "\u22D2\u22D3\x07G\x02\x02\u22D3\u22D4\x07F\x02\x02\u22D4\u22D5\x07a\x02" + + "\x02\u22D5\u22D6\x07W\x02\x02\u22D6\u22D7\x07U\x02\x02\u22D7\u22D8\x07" + + "G\x02\x02\u22D8\u22D9\x07T\x02\x02\u22D9\u05B8\x03\x02\x02\x02\u22DA\u22DB" + + "\x07R\x02\x02\u22DB\u22DC\x07C\x02\x02\u22DC\u22DD\x07U\x02\x02\u22DD" + + "\u22DE\x07U\x02\x02\u22DE\u22DF\x07Y\x02\x02\u22DF\u22E0\x07Q\x02\x02" + + "\u22E0\u22E1\x07T\x02\x02\u22E1\u22E2\x07F\x02\x02\u22E2\u22E3\x07N\x02" + + "\x02\u22E3\u22E4\x07G\x02\x02\u22E4\u22E5\x07U\x02\x02\u22E5\u22E6\x07" + + "U\x02\x02\u22E6\u22E7\x07a\x02\x02\u22E7\u22E8\x07W\x02\x02\u22E8\u22E9" + + "\x07U\x02\x02\u22E9\u22EA\x07G\x02\x02\u22EA\u22EB\x07T\x02\x02\u22EB" + + "\u22EC\x07a\x02\x02\u22EC\u22ED\x07C\x02\x02\u22ED\u22EE\x07F\x02\x02" + + "\u22EE\u22EF\x07O\x02\x02\u22EF\u22F0\x07K\x02\x02\u22F0\u22F1\x07P\x02" + + "\x02\u22F1\u05BA\x03\x02\x02\x02\u22F2\u22F3\x07R\x02\x02\u22F3\u22F4" + + "\x07G\x02\x02\u22F4\u22F5\x07T\x02\x02\u22F5\u22F6\x07U\x02\x02\u22F6" + + "\u22F7\x07K\x02\x02\u22F7\u22F8\x07U\x02\x02\u22F8\u22F9\x07V\x02\x02" + + "\u22F9\u22FA\x07a\x02\x02\u22FA\u22FB\x07T\x02\x02\u22FB\u22FC\x07Q\x02" + + "\x02\u22FC\u22FD\x07a\x02\x02\u22FD\u22FE\x07X\x02\x02\u22FE\u22FF\x07" + + "C\x02\x02\u22FF\u2300\x07T\x02\x02\u2300\u2301\x07K\x02\x02\u2301\u2302" + + "\x07C\x02\x02\u2302\u2303\x07D\x02\x02\u2303\u2304\x07N\x02\x02\u2304" + + "\u2305\x07G\x02\x02\u2305\u2306\x07U\x02\x02\u2306\u2307\x07a\x02\x02" + + "\u2307\u2308\x07C\x02\x02\u2308\u2309\x07F\x02\x02\u2309\u230A\x07O\x02" + + "\x02\u230A\u230B\x07K\x02\x02\u230B\u230C\x07P\x02\x02\u230C\u05BC\x03" + + "\x02\x02\x02\u230D\u230E\x07R\x02\x02\u230E\u230F\x07T\x02\x02\u230F\u2310" + + "\x07K\x02\x02\u2310\u2311\x07X\x02\x02\u2311\u2312\x07K\x02\x02\u2312" + + "\u2313\x07N\x02\x02\u2313\u2314\x07G\x02\x02\u2314\u2315\x07I\x02\x02" + + "\u2315\u2316\x07G\x02\x02\u2316\u2317\x07U\x02\x02\u2317\u05BE\x03\x02" + + "\x02\x02\u2318\u2319\x07R\x02\x02\u2319\u231A\x07T\x02\x02\u231A\u231B" + + "\x07Q\x02\x02\u231B\u231C\x07E\x02\x02\u231C\u231D\x07G\x02\x02\u231D" + + "\u231E\x07U\x02\x02\u231E\u231F\x07U\x02\x02\u231F\u05C0\x03\x02\x02\x02" + + "\u2320\u2321\x07T\x02\x02\u2321\u2322\x07G\x02\x02\u2322\u2323\x07N\x02" + + "\x02\u2323\u2324\x07Q\x02\x02\u2324\u2325\x07C\x02\x02\u2325\u2326\x07" + + "F\x02\x02\u2326\u05C2\x03\x02\x02\x02\u2327\u2328\x07T\x02\x02\u2328\u2329" + + "\x07G\x02\x02\u2329\u232A\x07R\x02\x02\u232A\u232B\x07N\x02\x02\u232B" + + "\u232C\x07K\x02\x02\u232C\u232D\x07E\x02\x02\u232D\u232E\x07C\x02\x02" + + "\u232E\u232F\x07V\x02\x02\u232F\u2330\x07K\x02\x02\u2330\u2331\x07Q\x02" + + "\x02\u2331\u2332\x07P\x02\x02\u2332\u2333\x07a\x02\x02\u2333\u2334\x07" + + "C\x02\x02\u2334\u2335\x07R\x02\x02\u2335\u2336\x07R\x02\x02\u2336\u2337" + + "\x07N\x02\x02\u2337\u2338\x07K\x02\x02\u2338\u2339\x07G\x02\x02\u2339" + + "\u233A\x07T\x02\x02\u233A\u05C4\x03\x02\x02\x02\u233B\u233C\x07T\x02\x02" + + "\u233C\u233D\x07G\x02\x02\u233D\u233E\x07R\x02\x02\u233E\u233F\x07N\x02" + + "\x02\u233F\u2340\x07K\x02\x02\u2340\u2341\x07E\x02\x02\u2341\u2342\x07" + + "C\x02\x02\u2342\u2343\x07V\x02\x02\u2343\u2344\x07K\x02\x02\u2344\u2345" + + "\x07Q\x02\x02\u2345\u2346\x07P\x02\x02\u2346\u2347\x07a\x02\x02\u2347" + + "\u2348\x07U\x02\x02\u2348\u2349\x07N\x02\x02\u2349\u234A\x07C\x02\x02" + + "\u234A\u234B\x07X\x02\x02\u234B\u234C\x07G\x02\x02\u234C\u234D\x07a\x02" + + "\x02\u234D\u234E\x07C\x02\x02\u234E\u234F\x07F\x02\x02\u234F\u2350\x07" + + "O\x02\x02\u2350\u2351\x07K\x02\x02\u2351\u2352\x07P\x02\x02\u2352\u05C6" + + "\x03\x02\x02\x02\u2353\u2354\x07T\x02\x02\u2354\u2355\x07G\x02\x02\u2355" + + "\u2356\x07U\x02\x02\u2356\u2357\x07Q\x02\x02\u2357\u2358\x07W\x02\x02" + + "\u2358\u2359\x07T\x02\x02\u2359\u235A\x07E\x02\x02\u235A\u235B\x07G\x02" + + "\x02\u235B\u05C8\x03\x02\x02\x02\u235C\u235D\x07T\x02\x02\u235D\u235E" + + "\x07G\x02\x02\u235E\u235F\x07U\x02\x02\u235F\u2360\x07Q\x02\x02\u2360" + + "\u2361\x07W\x02\x02\u2361\u2362\x07T\x02\x02\u2362\u2363\x07E\x02\x02" + + "\u2363\u2364\x07G\x02\x02\u2364\u2365\x07a\x02\x02\u2365\u2366\x07I\x02" + + "\x02\u2366\u2367\x07T\x02\x02\u2367\u2368\x07Q\x02\x02\u2368\u2369\x07" + + "W\x02\x02\u2369\u236A\x07R\x02\x02\u236A\u236B\x07a\x02\x02\u236B\u236C" + + "\x07C\x02\x02\u236C\u236D\x07F\x02\x02\u236D\u236E\x07O\x02\x02\u236E" + + "\u236F\x07K\x02\x02\u236F\u2370\x07P\x02\x02\u2370\u05CA\x03\x02\x02\x02" + + "\u2371\u2372\x07T\x02\x02\u2372\u2373\x07G\x02\x02\u2373\u2374\x07U\x02" + + "\x02\u2374\u2375\x07Q\x02\x02\u2375\u2376\x07W\x02\x02\u2376\u2377\x07" + + "T\x02\x02\u2377\u2378\x07E\x02\x02\u2378\u2379\x07G\x02\x02\u2379\u237A" + + "\x07a\x02\x02\u237A\u237B\x07I\x02\x02\u237B\u237C\x07T\x02\x02\u237C" + + "\u237D\x07Q\x02\x02\u237D\u237E\x07W\x02\x02\u237E\u237F\x07R\x02\x02" + + "\u237F\u2380\x07a\x02\x02\u2380\u2381\x07W\x02\x02\u2381\u2382\x07U\x02" + + "\x02\u2382\u2383\x07G\x02\x02\u2383\u2384\x07T\x02\x02\u2384\u05CC\x03" + + "\x02\x02\x02\u2385\u2386\x07T\x02\x02\u2386\u2387\x07Q\x02\x02\u2387\u2388" + + "\x07N\x02\x02\u2388\u2389\x07G\x02\x02\u2389\u238A\x07a\x02\x02\u238A" + + "\u238B\x07C\x02\x02\u238B\u238C\x07F\x02\x02\u238C\u238D\x07O\x02\x02" + + "\u238D\u238E\x07K\x02\x02\u238E\u238F\x07P\x02\x02\u238F\u05CE\x03\x02" + + "\x02\x02\u2390\u2391\x07T\x02\x02\u2391\u2392\x07Q\x02\x02\u2392\u2393" + + "\x07W\x02\x02\u2393\u2394\x07V\x02\x02\u2394\u2395\x07K\x02\x02\u2395" + + "\u2396\x07P\x02\x02\u2396\u2397\x07G\x02\x02\u2397\u05D0\x03\x02\x02\x02" + + "\u2398\u2399\x07U\x02\x02\u2399\u239A\x075\x02\x02\u239A\u05D2\x03\x02" + + "\x02\x02\u239B\u239C\x07U\x02\x02\u239C\u239D\x07G\x02\x02\u239D\u239E" + + "\x07T\x02\x02\u239E\u239F\x07X\x02\x02\u239F\u23A0\x07K\x02\x02\u23A0" + + "\u23A1\x07E\x02\x02\u23A1\u23A2\x07G\x02\x02\u23A2\u23A3\x07a\x02\x02" + + "\u23A3\u23A4\x07E\x02\x02\u23A4\u23A5\x07Q\x02\x02\u23A5\u23A6\x07P\x02" + + "\x02\u23A6\u23A7\x07P\x02\x02\u23A7\u23A8\x07G\x02\x02\u23A8\u23A9\x07" + + "E\x02\x02\u23A9\u23AA\x07V\x02\x02\u23AA\u23AB\x07K\x02\x02\u23AB\u23AC" + + "\x07Q\x02\x02\u23AC\u23AD\x07P\x02\x02\u23AD\u23AE\x07a\x02\x02\u23AE" + + "\u23AF\x07C\x02\x02\u23AF\u23B0\x07F\x02\x02\u23B0\u23B1\x07O\x02\x02" + + "\u23B1\u23B2\x07K\x02\x02\u23B2\u23B3\x07P\x02\x02\u23B3\u05D4\x03\x02" + + "\x02\x02\u23B4\u23B6\x05\u06DF\u0370\x02\u23B5\u23B4\x03\x02\x02\x02\u23B5" + + "\u23B6\x03\x02\x02\x02\u23B6\u23B7\x03\x02\x02\x02\u23B7\u23B8\x07U\x02" + + "\x02\u23B8\u23B9\x07G\x02\x02\u23B9\u23BA\x07U\x02\x02\u23BA\u23BB\x07" + + "U\x02\x02\u23BB\u23BC\x07K\x02\x02\u23BC\u23BD\x07Q\x02\x02\u23BD\u23BE" + + "\x07P\x02\x02\u23BE\u23BF\x07a\x02\x02\u23BF\u23C0\x07X\x02\x02\u23C0" + + "\u23C1\x07C\x02\x02\u23C1\u23C2\x07T\x02\x02\u23C2\u23C3\x07K\x02\x02" + + "\u23C3\u23C4\x07C\x02\x02\u23C4\u23C5\x07D\x02\x02\u23C5\u23C6\x07N\x02" + + "\x02\u23C6\u23C7\x07G\x02\x02\u23C7\u23C8\x07U\x02\x02\u23C8\u23C9\x07" + + "a\x02\x02\u23C9\u23CA\x07C\x02\x02\u23CA\u23CB\x07F\x02\x02\u23CB\u23CC" + + "\x07O\x02\x02\u23CC\u23CD\x07K\x02\x02\u23CD\u23CE\x07P\x02\x02\u23CE" + + "\u23D0\x03\x02\x02\x02\u23CF\u23D1\x05\u06DF\u0370\x02\u23D0\u23CF\x03" + + "\x02\x02\x02\u23D0\u23D1\x03\x02\x02\x02\u23D1\u05D6\x03\x02\x02\x02\u23D2" + + "\u23D3\x07U\x02\x02\u23D3\u23D4\x07G\x02\x02\u23D4\u23D5\x07V\x02\x02" + + "\u23D5\u23D6\x07a\x02\x02\u23D6\u23D7\x07W\x02\x02\u23D7\u23D8\x07U\x02" + + "\x02\u23D8\u23D9\x07G\x02\x02\u23D9\u23DA\x07T\x02\x02\u23DA\u23DB\x07" + + "a\x02\x02\u23DB\u23DC\x07K\x02\x02\u23DC\u23DD\x07F\x02\x02\u23DD\u05D8" + + "\x03\x02\x02\x02\u23DE\u23DF\x07U\x02\x02\u23DF\u23E0\x07J\x02\x02\u23E0" + + "\u23E1\x07Q\x02\x02\u23E1\u23E2\x07Y\x02\x02\u23E2\u23E3\x07a\x02\x02" + + "\u23E3\u23E4\x07T\x02\x02\u23E4\u23E5\x07Q\x02\x02\u23E5\u23E6\x07W\x02" + + "\x02\u23E6\u23E7\x07V\x02\x02\u23E7\u23E8\x07K\x02\x02\u23E8\u23E9\x07" + + "P\x02\x02\u23E9\u23EA\x07G\x02\x02\u23EA\u05DA\x03\x02\x02\x02\u23EB\u23EC" + + "\x07U\x02\x02\u23EC\u23ED\x07J\x02\x02\u23ED\u23EE\x07W\x02\x02\u23EE" + + "\u23EF\x07V\x02\x02\u23EF\u23F0\x07F\x02\x02\u23F0\u23F1\x07Q\x02\x02" + + "\u23F1\u23F2\x07Y\x02\x02\u23F2\u23F3\x07P\x02\x02\u23F3\u05DC\x03\x02" + + "\x02\x02\u23F4\u23F5\x07U\x02\x02\u23F5\u23F6\x07W\x02\x02\u23F6\u23F7" + + "\x07R\x02\x02\u23F7\u23F8\x07G\x02\x02\u23F8\u23F9\x07T\x02\x02\u23F9" + + "\u05DE\x03\x02\x02\x02\u23FA\u23FB\x07U\x02\x02\u23FB\u23FC\x07[\x02\x02" + + "\u23FC\u23FD\x07U\x02\x02\u23FD\u23FE\x07V\x02\x02\u23FE\u23FF\x07G\x02" + + "\x02\u23FF\u2400\x07O\x02\x02\u2400\u2401\x07a\x02\x02\u2401\u2402\x07" + + "X\x02\x02\u2402\u2403\x07C\x02\x02\u2403\u2404\x07T\x02\x02\u2404\u2405" + + "\x07K\x02\x02\u2405\u2406\x07C\x02\x02\u2406\u2407\x07D\x02\x02\u2407" + + "\u2408\x07N\x02\x02\u2408\u2409\x07G\x02\x02\u2409\u240A\x07U\x02\x02" + + "\u240A\u240B\x07a\x02\x02\u240B\u240C\x07C\x02\x02\u240C\u240D\x07F\x02" + + "\x02\u240D\u240E\x07O\x02\x02\u240E\u240F\x07K\x02\x02\u240F\u2410\x07" + + "P\x02\x02\u2410\u05E0\x03\x02\x02\x02\u2411\u2412\x07V\x02\x02\u2412\u2413" + + "\x07C\x02\x02\u2413\u2414\x07D\x02\x02\u2414\u2415\x07N\x02\x02\u2415" + + "\u2416\x07G\x02\x02\u2416\u2417\x07U\x02\x02\u2417\u05E2\x03\x02\x02\x02" + + "\u2418\u2419\x07V\x02\x02\u2419\u241A\x07C\x02\x02\u241A\u241B\x07D\x02" + + "\x02\u241B\u241C\x07N\x02\x02\u241C\u241D\x07G\x02\x02\u241D\u241E\x07" + + "a\x02\x02\u241E\u241F\x07G\x02\x02\u241F\u2420\x07P\x02\x02\u2420\u2421" + + "\x07E\x02\x02\u2421\u2422\x07T\x02\x02\u2422\u2423\x07[\x02\x02\u2423" + + "\u2424\x07R\x02\x02\u2424\u2425\x07V\x02\x02\u2425\u2426\x07K\x02\x02" + + "\u2426\u2427\x07Q\x02\x02\u2427\u2428\x07P\x02\x02\u2428\u2429\x07a\x02" + + "\x02\u2429\u242A\x07C\x02\x02\u242A\u242B\x07F\x02\x02\u242B\u242C\x07" + + "O\x02\x02\u242C\u242D\x07K\x02\x02\u242D\u242E\x07P\x02\x02\u242E\u05E4" + + "\x03\x02\x02\x02\u242F\u2430\x07X\x02\x02\u2430\u2431\x07G\x02\x02\u2431" + + "\u2432\x07T\x02\x02\u2432\u2433\x07U\x02\x02\u2433\u2434\x07K\x02\x02" + + "\u2434\u2435\x07Q\x02\x02\u2435\u2436\x07P\x02\x02\u2436\u2437\x07a\x02" + + "\x02\u2437\u2438\x07V\x02\x02\u2438\u2439\x07Q\x02\x02\u2439\u243A\x07" + + "M\x02\x02\u243A\u243B\x07G\x02\x02\u243B\u243C\x07P\x02\x02\u243C\u243D" + + "\x07a\x02\x02\u243D\u243E\x07C\x02\x02\u243E\u243F\x07F\x02\x02\u243F" + + "\u2440\x07O\x02\x02\u2440\u2441\x07K\x02\x02\u2441\u2442\x07P\x02\x02" + + "\u2442\u05E6\x03\x02\x02\x02\u2443\u2444\x07Z\x02\x02\u2444\u2445\x07" + + "C\x02\x02\u2445\u2446\x07a\x02\x02\u2446\u2447\x07T\x02\x02\u2447\u2448" + + "\x07G\x02\x02\u2448\u2449\x07E\x02\x02\u2449\u244A\x07Q\x02\x02\u244A" + + "\u244B\x07X\x02\x02\u244B\u244C\x07G\x02\x02\u244C\u244D\x07T\x02\x02" + + "\u244D\u244E\x07a\x02\x02\u244E\u244F\x07C\x02\x02\u244F\u2450\x07F\x02" + + "\x02\u2450\u2451\x07O\x02\x02\u2451\u2452\x07K\x02\x02\u2452\u2453\x07" + + "P\x02\x02\u2453\u05E8\x03\x02\x02\x02\u2454\u2455\x07C\x02\x02\u2455\u2456" + + "\x07T\x02\x02\u2456\u2457\x07O\x02\x02\u2457\u2458\x07U\x02\x02\u2458" + + "\u2459\x07E\x02\x02\u2459\u245A\x07K\x02\x02\u245A\u245B\x07K\x02\x02" + + "\u245B\u245C\x07:\x02\x02\u245C\u05EA\x03\x02\x02\x02\u245D\u245E\x07" + + "C\x02\x02\u245E\u245F\x07U\x02\x02\u245F\u2460\x07E\x02\x02\u2460\u2461" + + "\x07K\x02\x02\u2461\u2462\x07K\x02\x02\u2462\u05EC\x03\x02\x02\x02\u2463" + + "\u2464\x07D\x02\x02\u2464\u2465\x07K\x02\x02\u2465\u2466\x07I\x02\x02" + + "\u2466\u2467\x077\x02\x02\u2467\u05EE\x03\x02\x02\x02\u2468\u2469\x07" + + "E\x02\x02\u2469\u246A\x07R\x02\x02\u246A\u246B\x073\x02\x02\u246B\u246C" + + "\x074\x02\x02\u246C\u246D\x077\x02\x02\u246D\u246E\x072\x02\x02\u246E" + + "\u05F0\x03\x02\x02\x02\u246F\u2470\x07E\x02\x02\u2470\u2471\x07R\x02\x02" + + "\u2471\u2472\x073\x02\x02\u2472\u2473\x074\x02\x02\u2473\u2474\x077\x02" + + "\x02\u2474\u2475\x073\x02\x02\u2475\u05F2\x03\x02\x02\x02\u2476\u2477" + + "\x07E\x02\x02\u2477\u2478\x07R\x02\x02\u2478\u2479\x073\x02\x02\u2479" + + "\u247A\x074\x02\x02\u247A\u247B\x077\x02\x02\u247B\u247C\x078\x02\x02" + + "\u247C\u05F4\x03\x02\x02\x02\u247D\u247E\x07E\x02\x02\u247E\u247F\x07" + + "R\x02\x02\u247F\u2480\x073\x02\x02\u2480\u2481\x074\x02\x02\u2481\u2482" + + "\x077\x02\x02\u2482\u2483\x079\x02\x02\u2483\u05F6\x03\x02\x02\x02\u2484" + + "\u2485\x07E\x02\x02\u2485\u2486\x07R\x02\x02\u2486\u2487\x07:\x02\x02" + + "\u2487\u2488\x077\x02\x02\u2488\u2489\x072\x02\x02\u2489\u05F8\x03\x02" + + "\x02\x02\u248A\u248B\x07E\x02\x02\u248B\u248C\x07R\x02\x02\u248C\u248D" + + "\x07:\x02\x02\u248D\u248E\x077\x02\x02\u248E\u248F\x074\x02\x02\u248F" + + "\u05FA\x03\x02\x02\x02\u2490\u2491\x07E\x02\x02\u2491\u2492\x07R\x02\x02" + + "\u2492\u2493\x07:\x02\x02\u2493\u2494\x078\x02\x02\u2494\u2495\x078\x02" + + "\x02\u2495\u05FC\x03\x02\x02\x02\u2496\u2497\x07E\x02\x02\u2497\u2498" + + "\x07R\x02\x02\u2498\u2499\x07;\x02\x02"; + private static readonly _serializedATNSegment16: string = + "\u2499\u249A\x075\x02\x02\u249A\u249B\x074\x02\x02\u249B\u05FE\x03\x02" + + "\x02\x02\u249C\u249D\x07F\x02\x02\u249D\u249E\x07G\x02\x02\u249E\u249F" + + "\x07E\x02\x02\u249F\u24A0\x07:\x02\x02\u24A0\u0600\x03\x02\x02\x02\u24A1" + + "\u24A2\x07G\x02\x02\u24A2\u24A3\x07W\x02\x02\u24A3\u24A4\x07E\x02\x02" + + "\u24A4\u24A5\x07L\x02\x02\u24A5\u24A6\x07R\x02\x02\u24A6\u24A7\x07O\x02" + + "\x02\u24A7\u24A8\x07U\x02\x02\u24A8\u0602\x03\x02\x02\x02\u24A9\u24AA" + + "\x07G\x02\x02\u24AA\u24AB\x07W\x02\x02\u24AB\u24AC\x07E\x02\x02\u24AC" + + "\u24AD\x07M\x02\x02\u24AD\u24AE\x07T\x02\x02\u24AE\u0604\x03\x02\x02\x02" + + "\u24AF\u24B0\x07I\x02\x02\u24B0\u24B1\x07D\x02\x02\u24B1\u24B2\x073\x02" + + "\x02\u24B2\u24B3\x07:\x02\x02\u24B3\u24B4\x072\x02\x02\u24B4\u24B5\x07" + + "5\x02\x02\u24B5\u24B6\x072\x02\x02\u24B6\u0606\x03\x02\x02\x02\u24B7\u24B8" + + "\x07I\x02\x02\u24B8\u24B9\x07D\x02\x02\u24B9\u24BA\x074\x02\x02\u24BA" + + "\u24BB\x075\x02\x02\u24BB\u24BC\x073\x02\x02\u24BC\u24BD\x074\x02\x02" + + "\u24BD\u0608\x03\x02\x02\x02\u24BE\u24BF\x07I\x02\x02\u24BF\u24C0\x07" + + "D\x02\x02\u24C0\u24C1\x07M\x02\x02\u24C1\u060A\x03\x02\x02\x02\u24C2\u24C3" + + "\x07I\x02\x02\u24C3\u24C4\x07G\x02\x02\u24C4\u24C5\x07Q\x02\x02\u24C5" + + "\u24C6\x07U\x02\x02\u24C6\u24C7\x07V\x02\x02\u24C7\u24C8\x07F\x02\x02" + + "\u24C8\u24C9\x07:\x02\x02\u24C9\u060C\x03\x02\x02\x02\u24CA\u24CB\x07" + + "I\x02\x02\u24CB\u24CC\x07T\x02\x02\u24CC\u24CD\x07G\x02\x02\u24CD\u24CE" + + "\x07G\x02\x02\u24CE\u24CF\x07M\x02\x02\u24CF\u060E\x03\x02\x02\x02\u24D0" + + "\u24D1\x07J\x02\x02\u24D1\u24D2\x07G\x02\x02\u24D2\u24D3\x07D\x02\x02" + + "\u24D3\u24D4\x07T\x02\x02\u24D4\u24D5\x07G\x02\x02\u24D5\u24D6\x07Y\x02" + + "\x02\u24D6\u0610\x03\x02\x02\x02\u24D7\u24D8\x07J\x02\x02\u24D8\u24D9" + + "\x07R\x02\x02\u24D9\u24DA\x07:\x02\x02\u24DA\u0612\x03\x02\x02\x02\u24DB" + + "\u24DC\x07M\x02\x02\u24DC\u24DD\x07G\x02\x02\u24DD\u24DE\x07[\x02\x02" + + "\u24DE\u24DF\x07D\x02\x02\u24DF\u24E0\x07E\x02\x02\u24E0\u24E1\x07U\x02" + + "\x02\u24E1\u24E2\x074\x02\x02\u24E2\u0614\x03\x02\x02\x02\u24E3\u24E4" + + "\x07M\x02\x02\u24E4\u24E5\x07Q\x02\x02\u24E5\u24E6\x07K\x02\x02\u24E6" + + "\u24E7\x07:\x02\x02\u24E7\u24E8\x07T\x02\x02\u24E8\u0616\x03\x02\x02\x02" + + "\u24E9\u24EA\x07M\x02\x02\u24EA\u24EB\x07Q\x02\x02\u24EB\u24EC\x07K\x02" + + "\x02\u24EC\u24ED\x07:\x02\x02\u24ED\u24EE\x07W\x02\x02\u24EE\u0618\x03" + + "\x02\x02\x02\u24EF\u24F0\x07N\x02\x02\u24F0\u24F1\x07C\x02\x02\u24F1\u24F2" + + "\x07V\x02\x02\u24F2\u24F3\x07K\x02\x02\u24F3\u24F4\x07P\x02\x02\u24F4" + + "\u24F5\x073\x02\x02\u24F5\u061A\x03\x02\x02\x02\u24F6\u24F7\x07N\x02\x02" + + "\u24F7\u24F8\x07C\x02\x02\u24F8\u24F9\x07V\x02\x02\u24F9\u24FA\x07K\x02" + + "\x02\u24FA\u24FB\x07P\x02\x02\u24FB\u24FC\x074\x02\x02\u24FC\u061C\x03" + + "\x02\x02\x02\u24FD\u24FE\x07N\x02\x02\u24FE\u24FF\x07C\x02\x02\u24FF\u2500" + + "\x07V\x02\x02\u2500\u2501\x07K\x02\x02\u2501\u2502\x07P\x02\x02\u2502" + + "\u2503\x077\x02\x02\u2503\u061E\x03\x02\x02\x02\u2504\u2505\x07N\x02\x02" + + "\u2505\u2506\x07C\x02\x02\u2506\u2507\x07V\x02\x02\u2507\u2508\x07K\x02" + + "\x02\u2508\u2509\x07P\x02\x02\u2509\u250A\x079\x02\x02\u250A\u0620\x03" + + "\x02\x02\x02\u250B\u250C\x07O\x02\x02\u250C\u250D\x07C\x02\x02\u250D\u250E" + + "\x07E\x02\x02\u250E\u250F\x07E\x02\x02\u250F\u2510\x07G\x02\x02\u2510" + + "\u0622\x03\x02\x02\x02\u2511\u2512\x07O\x02\x02\u2512\u2513\x07C\x02\x02" + + "\u2513\u2514\x07E\x02\x02\u2514\u2515\x07T\x02\x02\u2515\u2516\x07Q\x02" + + "\x02\u2516\u2517\x07O\x02\x02\u2517\u2518\x07C\x02\x02\u2518\u2519\x07" + + "P\x02\x02\u2519\u0624\x03\x02\x02\x02\u251A\u251B\x07U\x02\x02\u251B\u251C" + + "\x07L\x02\x02\u251C\u251D\x07K\x02\x02\u251D\u251E\x07U\x02\x02\u251E" + + "\u0626\x03\x02\x02\x02\u251F\u2520\x07U\x02\x02\u2520\u2521\x07Y\x02\x02" + + "\u2521\u2522\x07G\x02\x02\u2522\u2523\x079\x02\x02\u2523\u0628\x03\x02" + + "\x02\x02\u2524\u2525\x07V\x02\x02\u2525\u2526\x07K\x02\x02\u2526\u2527" + + "\x07U\x02\x02\u2527\u2528\x078\x02\x02\u2528\u2529\x074\x02\x02\u2529" + + "\u252A\x072\x02\x02\u252A\u062A\x03\x02\x02\x02\u252B\u252C\x07W\x02\x02" + + "\u252C\u252D\x07E\x02\x02\u252D\u252E\x07U\x02\x02\u252E\u252F\x074\x02" + + "\x02\u252F\u062C\x03\x02\x02\x02\u2530\u2531\x07W\x02\x02\u2531\u2532" + + "\x07L\x02\x02\u2532\u2533\x07K\x02\x02\u2533\u2534\x07U\x02\x02\u2534" + + "\u062E\x03\x02\x02\x02\u2535\u2536\x07W\x02\x02\u2536\u2537\x07V\x02\x02" + + "\u2537\u2538\x07H\x02\x02\u2538\u2539\x073\x02\x02\u2539\u253A\x078\x02" + + "\x02\u253A\u0630\x03\x02\x02\x02\u253B\u253C\x07W\x02\x02\u253C\u253D" + + "\x07V\x02\x02\u253D\u253E\x07H\x02\x02\u253E\u253F\x073\x02\x02\u253F" + + "\u2540\x078\x02\x02\u2540\u2541\x07N\x02\x02\u2541\u2542\x07G\x02\x02" + + "\u2542\u0632\x03\x02\x02\x02\u2543\u2544\x07W\x02\x02\u2544\u2545\x07" + + "V\x02\x02\u2545\u2546\x07H\x02\x02\u2546\u2547\x075\x02\x02\u2547\u2548" + + "\x074\x02\x02\u2548\u0634\x03\x02\x02\x02\u2549\u254A\x07W\x02\x02\u254A" + + "\u254B\x07V\x02\x02\u254B\u254C\x07H\x02\x02\u254C\u254D\x07:\x02\x02" + + "\u254D\u0636\x03\x02\x02\x02\u254E\u254F\x07W\x02\x02\u254F\u2550\x07" + + "V\x02\x02\u2550\u2551\x07H\x02\x02\u2551\u2552\x07:\x02\x02\u2552\u2553" + + "\x07O\x02\x02\u2553\u2554\x07D\x02\x02\u2554\u2555\x075\x02\x02\u2555" + + "\u0638\x03\x02\x02\x02\u2556\u2557\x07W\x02\x02\u2557\u2558\x07V\x02\x02" + + "\u2558\u2559\x07H\x02\x02\u2559\u255A\x07:\x02\x02\u255A\u255B\x07O\x02" + + "\x02\u255B\u255C\x07D\x02\x02\u255C\u255D\x076\x02\x02\u255D\u063A\x03" + + "\x02\x02\x02\u255E\u255F\x07C\x02\x02\u255F\u2560\x07T\x02\x02\u2560\u2561" + + "\x07E\x02\x02\u2561\u2562\x07J\x02\x02\u2562\u2563\x07K\x02\x02\u2563" + + "\u2564\x07X\x02\x02\u2564\u2565\x07G\x02\x02\u2565\u063C\x03\x02\x02\x02" + + "\u2566\u2567\x07D\x02\x02\u2567\u2568\x07N\x02\x02\u2568\u2569\x07C\x02" + + "\x02\u2569\u256A\x07E\x02\x02\u256A\u256B\x07M\x02\x02\u256B\u256C\x07" + + "J\x02\x02\u256C\u256D\x07Q\x02\x02\u256D\u256E\x07N\x02\x02\u256E\u256F" + + "\x07G\x02\x02\u256F\u063E\x03\x02\x02\x02\u2570\u2571\x07E\x02\x02\u2571" + + "\u2572\x07U\x02\x02\u2572\u2573\x07X\x02\x02\u2573\u0640\x03\x02\x02\x02" + + "\u2574\u2575\x07H\x02\x02\u2575\u2576\x07G\x02\x02\u2576\u2577\x07F\x02" + + "\x02\u2577\u2578\x07G\x02\x02\u2578\u2579\x07T\x02\x02\u2579\u257A\x07" + + "C\x02\x02\u257A\u257B\x07V\x02\x02\u257B\u257C\x07G\x02\x02\u257C\u257D" + + "\x07F\x02\x02\u257D\u0642\x03\x02\x02\x02\u257E\u257F\x07K\x02\x02\u257F" + + "\u2580\x07P\x02\x02\u2580\u2581\x07P\x02\x02\u2581\u2582\x07Q\x02\x02" + + "\u2582\u2583\x07F\x02\x02\u2583\u2584\x07D\x02\x02\u2584\u0644\x03\x02" + + "\x02\x02\u2585\u2586\x07O\x02\x02\u2586\u2587\x07G\x02\x02\u2587\u2588" + + "\x07O\x02\x02\u2588\u2589\x07Q\x02\x02\u2589\u258A\x07T\x02\x02\u258A" + + "\u258B\x07[\x02\x02\u258B\u0646\x03\x02\x02\x02\u258C\u258D\x07O\x02\x02" + + "\u258D\u258E\x07T\x02\x02\u258E\u258F\x07I\x02\x02\u258F\u2590\x07a\x02" + + "\x02\u2590\u2591\x07O\x02\x02\u2591\u2592\x07[\x02\x02\u2592\u2593\x07" + + "K\x02\x02\u2593\u2594\x07U\x02\x02\u2594\u2595\x07C\x02\x02\u2595\u2596" + + "\x07O\x02\x02\u2596\u0648\x03\x02\x02\x02\u2597\u2598\x07O\x02\x02\u2598" + + "\u2599\x07[\x02\x02\u2599\u259A\x07K\x02\x02\u259A\u259B\x07U\x02\x02" + + "\u259B\u259C\x07C\x02\x02\u259C\u259D\x07O\x02\x02\u259D\u064A\x03\x02" + + "\x02\x02\u259E\u259F\x07P\x02\x02\u259F\u25A0\x07F\x02\x02\u25A0\u25A1" + + "\x07D\x02\x02\u25A1\u064C\x03\x02\x02\x02\u25A2\u25A3\x07P\x02\x02\u25A3" + + "\u25A4\x07F\x02\x02\u25A4\u25A5\x07D\x02\x02\u25A5\u25A6\x07E\x02\x02" + + "\u25A6\u25A7\x07N\x02\x02\u25A7\u25A8\x07W\x02\x02\u25A8\u25A9\x07U\x02" + + "\x02\u25A9\u25AA\x07V\x02\x02\u25AA\u25AB\x07G\x02\x02\u25AB\u25AC\x07" + + "T\x02\x02\u25AC\u064E\x03\x02\x02\x02\u25AD\u25AE\x07R\x02\x02\u25AE\u25AF" + + "\x07G\x02\x02\u25AF\u25B0\x07T\x02\x02\u25B0\u25B1\x07H\x02\x02\u25B1" + + "\u25B2\x07Q\x02\x02\u25B2\u25B3\x07T\x02\x02\u25B3\u25B4\x07O\x02\x02" + + "\u25B4\u25B5\x07C\x02\x02\u25B5\u25B6\x07P\x02\x02\u25B6\u25B7\x07E\x02" + + "\x02\u25B7\u25B8\x07G\x02\x02\u25B8\u25B9\x07a\x02\x02\u25B9\u25BA\x07" + + "U\x02\x02\u25BA\u25BB\x07E\x02\x02\u25BB\u25BC\x07J\x02\x02\u25BC\u25BD" + + "\x07G\x02\x02\u25BD\u25BE\x07O\x02\x02\u25BE\u25BF\x07C\x02\x02\u25BF" + + "\u0650\x03\x02\x02\x02\u25C0\u25C1\x07V\x02\x02\u25C1\u25C2\x07Q\x02\x02" + + "\u25C2\u25C3\x07M\x02\x02\u25C3\u25C4\x07W\x02\x02\u25C4\u25C5\x07F\x02" + + "\x02\u25C5\u25C6\x07D\x02\x02\u25C6\u0652\x03\x02\x02\x02\u25C7\u25C8" + + "\x07T\x02\x02\u25C8\u25C9\x07G\x02\x02\u25C9\u25CA\x07R\x02\x02\u25CA" + + "\u25CB\x07G\x02\x02\u25CB\u25CC\x07C\x02\x02\u25CC\u25CD\x07V\x02\x02" + + "\u25CD\u25CE\x07C\x02\x02\u25CE\u25CF\x07D\x02\x02\u25CF\u25D0\x07N\x02" + + "\x02\u25D0\u25D1\x07G\x02\x02\u25D1\u0654\x03\x02\x02\x02\u25D2\u25D3" + + "\x07E\x02\x02\u25D3\u25D4\x07Q\x02\x02\u25D4\u25D5\x07O\x02\x02\u25D5" + + "\u25D6\x07O\x02\x02\u25D6\u25D7\x07K\x02\x02\u25D7\u25D8\x07V\x02\x02" + + "\u25D8\u25D9\x07V\x02\x02\u25D9\u25DA\x07G\x02\x02\u25DA\u25DB\x07F\x02" + + "\x02\u25DB\u0656\x03\x02\x02\x02\u25DC\u25DD\x07W\x02\x02\u25DD\u25DE" + + "\x07P\x02\x02\u25DE\u25DF\x07E\x02\x02\u25DF\u25E0\x07Q\x02\x02\u25E0" + + "\u25E1\x07O\x02\x02\u25E1\u25E2\x07O\x02\x02\u25E2\u25E3\x07K\x02\x02" + + "\u25E3\u25E4\x07V\x02\x02\u25E4\u25E5\x07V\x02\x02\u25E5\u25E6\x07G\x02" + + "\x02\u25E6\u25E7\x07F\x02\x02\u25E7\u0658\x03\x02\x02\x02\u25E8\u25E9" + + "\x07U\x02\x02\u25E9\u25EA\x07G\x02\x02\u25EA\u25EB\x07T\x02\x02\u25EB" + + "\u25EC\x07K\x02\x02\u25EC\u25ED\x07C\x02\x02\u25ED\u25EE\x07N\x02\x02" + + "\u25EE\u25EF\x07K\x02\x02\u25EF\u25F0\x07\\\x02\x02\u25F0\u25F1\x07C\x02" + + "\x02\u25F1\u25F2\x07D\x02\x02\u25F2\u25F3\x07N\x02\x02\u25F3\u25F4\x07" + + "G\x02\x02\u25F4\u065A\x03\x02\x02\x02\u25F5\u25F6\x07I\x02\x02\u25F6\u25F7" + + "\x07G\x02\x02\u25F7\u25F8\x07Q\x02\x02\u25F8\u25F9\x07O\x02\x02\u25F9" + + "\u25FA\x07G\x02\x02\u25FA\u25FB\x07V\x02\x02\u25FB\u25FC\x07T\x02\x02" + + "\u25FC\u25FD\x07[\x02\x02\u25FD\u25FE\x07E\x02\x02\u25FE\u25FF\x07Q\x02" + + "\x02\u25FF\u2600\x07N\x02\x02\u2600\u2601\x07N\x02\x02\u2601\u2602\x07" + + "G\x02\x02\u2602\u2603\x07E\x02\x02\u2603\u2604\x07V\x02\x02\u2604\u2605" + + "\x07K\x02\x02\u2605\u2606\x07Q\x02\x02\u2606\u2607\x07P\x02\x02\u2607" + + "\u065C\x03\x02\x02\x02\u2608\u2609\x07I\x02\x02\u2609\u260A\x07G\x02\x02" + + "\u260A\u260B\x07Q\x02\x02\u260B\u260C\x07O\x02\x02\u260C\u260D\x07E\x02" + + "\x02\u260D\u260E\x07Q\x02\x02\u260E\u260F\x07N\x02\x02\u260F\u2610\x07" + + "N\x02\x02\u2610\u2611\x07G\x02\x02\u2611\u2612\x07E\x02\x02\u2612\u2613" + + "\x07V\x02\x02\u2613\u2614\x07K\x02\x02\u2614\u2615\x07Q\x02\x02\u2615" + + "\u2616\x07P\x02\x02\u2616\u065E\x03\x02\x02\x02\u2617\u2618\x07I\x02\x02" + + "\u2618\u2619\x07G\x02\x02\u2619\u261A\x07Q\x02\x02\u261A\u261B\x07O\x02" + + "\x02\u261B\u261C\x07G\x02\x02\u261C\u261D\x07V\x02\x02\u261D\u261E\x07" + + "T\x02\x02\u261E\u261F\x07[\x02\x02\u261F\u0660\x03\x02\x02\x02\u2620\u2621" + + "\x07N\x02\x02\u2621\u2622\x07K\x02\x02\u2622\u2623\x07P\x02\x02\u2623" + + "\u2624\x07G\x02\x02\u2624\u2625\x07U\x02\x02\u2625\u2626\x07V\x02\x02" + + "\u2626\u2627\x07T\x02\x02\u2627\u2628\x07K\x02\x02\u2628\u2629\x07P\x02" + + "\x02\u2629\u262A\x07I\x02\x02\u262A\u0662\x03\x02\x02\x02\u262B\u262C" + + "\x07O\x02\x02\u262C\u262D\x07W\x02\x02\u262D\u262E\x07N\x02\x02\u262E" + + "\u262F\x07V\x02\x02\u262F\u2630\x07K\x02\x02\u2630\u2631\x07N\x02\x02" + + "\u2631\u2632\x07K\x02\x02\u2632\u2633\x07P\x02\x02\u2633\u2634\x07G\x02" + + "\x02\u2634\u2635\x07U\x02\x02\u2635\u2636\x07V\x02\x02\u2636\u2637\x07" + + "T\x02\x02\u2637\u2638\x07K\x02\x02\u2638\u2639\x07P\x02\x02\u2639\u263A" + + "\x07I\x02\x02\u263A\u0664\x03\x02\x02\x02\u263B\u263C\x07O\x02\x02\u263C" + + "\u263D\x07W\x02\x02\u263D\u263E\x07N\x02\x02\u263E\u263F\x07V\x02\x02" + + "\u263F\u2640\x07K\x02\x02\u2640\u2641\x07R\x02\x02\u2641\u2642\x07Q\x02" + + "\x02\u2642\u2643\x07K\x02\x02\u2643\u2644\x07P\x02\x02\u2644\u2645\x07" + + "V\x02\x02\u2645\u0666\x03\x02\x02\x02\u2646\u2647\x07O\x02\x02\u2647\u2648" + + "\x07W\x02\x02\u2648\u2649\x07N\x02\x02\u2649\u264A\x07V\x02\x02\u264A" + + "\u264B\x07K\x02\x02\u264B\u264C\x07R\x02\x02\u264C\u264D\x07Q\x02\x02" + + "\u264D\u264E\x07N\x02\x02\u264E\u264F\x07[\x02\x02\u264F\u2650\x07I\x02" + + "\x02\u2650\u2651\x07Q\x02\x02\u2651\u2652\x07P\x02\x02\u2652\u0668\x03" + + "\x02\x02\x02\u2653\u2654\x07R\x02\x02\u2654\u2655\x07Q\x02\x02\u2655\u2656" + + "\x07K\x02\x02\u2656\u2657\x07P\x02\x02\u2657\u2658\x07V\x02\x02\u2658" + + "\u066A\x03\x02\x02\x02\u2659\u265A\x07R\x02\x02\u265A\u265B\x07Q\x02\x02" + + "\u265B\u265C\x07N\x02\x02\u265C\u265D\x07[\x02\x02\u265D\u265E\x07I\x02" + + "\x02\u265E\u265F\x07Q\x02\x02\u265F\u2660\x07P\x02\x02\u2660\u066C\x03" + + "\x02\x02\x02\u2661\u2662\x07E\x02\x02\u2662\u2663\x07C\x02\x02\u2663\u2664" + + "\x07V\x02\x02\u2664\u2665\x07C\x02\x02\u2665\u2666\x07N\x02\x02\u2666" + + "\u2667\x07Q\x02\x02\u2667\u2668\x07I\x02\x02\u2668\u2669\x07a\x02\x02" + + "\u2669\u266A\x07P\x02\x02\u266A\u266B\x07C\x02\x02\u266B\u266C\x07O\x02" + + "\x02\u266C\u266D\x07G\x02\x02\u266D\u066E\x03\x02\x02\x02\u266E\u266F" + + "\x07E\x02\x02\u266F\u2670\x07J\x02\x02\u2670\u2671\x07C\x02\x02\u2671" + + "\u2672\x07T\x02\x02\u2672\u2673\x07U\x02\x02\u2673\u2674\x07G\x02\x02" + + "\u2674\u2675\x07V\x02\x02\u2675\u0670\x03\x02\x02\x02\u2676\u2677\x07" + + "E\x02\x02\u2677\u2678\x07Q\x02\x02\u2678\u2679\x07N\x02\x02\u2679\u267A" + + "\x07N\x02\x02\u267A\u267B\x07C\x02\x02\u267B\u267C\x07V\x02\x02\u267C" + + "\u267D\x07K\x02\x02\u267D\u267E\x07Q\x02\x02\u267E\u267F\x07P\x02\x02" + + "\u267F\u0672\x03\x02\x02\x02\u2680\u2681\x07G\x02\x02\u2681\u2682\x07" + + "P\x02\x02\u2682\u2683\x07I\x02\x02\u2683\u2684\x07K\x02\x02\u2684\u2685" + + "\x07P\x02\x02\u2685\u2686\x07G\x02\x02\u2686\u2687\x07a\x02\x02\u2687" + + "\u2688\x07C\x02\x02\u2688\u2689\x07V\x02\x02\u2689\u268A\x07V\x02\x02" + + "\u268A\u268B\x07T\x02\x02\u268B\u268C\x07K\x02\x02\u268C\u268D\x07D\x02" + + "\x02\u268D\u268E\x07W\x02\x02\u268E\u268F\x07V\x02\x02\u268F\u2690\x07" + + "G\x02\x02\u2690\u0674\x03\x02\x02\x02\u2691\u2692\x07H\x02\x02\u2692\u2693" + + "\x07Q\x02\x02\u2693\u2694\x07T\x02\x02\u2694\u2695\x07O\x02\x02\u2695" + + "\u2696\x07C\x02\x02\u2696\u2697\x07V\x02\x02\u2697\u0676\x03\x02\x02\x02" + + "\u2698\u2699\x07I\x02\x02\u2699\u269A\x07G\x02\x02\u269A\u269B\x07V\x02" + + "\x02\u269B\u269C\x07a\x02\x02\u269C\u269D\x07H\x02\x02\u269D\u269E\x07" + + "Q\x02\x02\u269E\u269F\x07T\x02\x02\u269F\u26A0\x07O\x02\x02\u26A0\u26A1" + + "\x07C\x02\x02\u26A1\u26A2\x07V\x02\x02\u26A2\u0678\x03\x02\x02\x02\u26A3" + + "\u26A4\x07K\x02\x02\u26A4\u26A5\x07P\x02\x02\u26A5\u26A6\x07V\x02\x02" + + "\u26A6\u26A7\x07G\x02\x02\u26A7\u26A8\x07T\x02\x02\u26A8\u26A9\x07U\x02" + + "\x02\u26A9\u26AA\x07G\x02\x02\u26AA\u26AB\x07E\x02\x02\u26AB\u26AC\x07" + + "V\x02\x02\u26AC\u067A\x03\x02\x02\x02\u26AD\u26AE\x07T\x02\x02\u26AE\u26AF" + + "\x07C\x02\x02\u26AF\u26B0\x07P\x02\x02\u26B0\u26B1\x07F\x02\x02\u26B1" + + "\u26B2\x07Q\x02\x02\u26B2\u26B3\x07O\x02\x02\u26B3\u067C\x03\x02\x02\x02" + + "\u26B4\u26B5\x07T\x02\x02\u26B5\u26B6\x07G\x02\x02\u26B6\u26B7\x07X\x02" + + "\x02\u26B7\u26B8\x07G\x02\x02\u26B8\u26B9\x07T\x02\x02\u26B9\u26BA\x07" + + "U\x02\x02\u26BA\u26BB\x07G\x02\x02\u26BB\u067E\x03\x02\x02\x02\u26BC\u26BD" + + "\x07T\x02\x02\u26BD\u26BE\x07Q\x02\x02\u26BE\u26BF\x07Y\x02\x02\u26BF" + + "\u26C0\x07a\x02\x02\u26C0\u26C1\x07E\x02\x02\u26C1\u26C2\x07Q\x02\x02" + + "\u26C2\u26C3\x07W\x02\x02\u26C3\u26C4\x07P\x02\x02\u26C4\u26C5\x07V\x02" + + "\x02\u26C5\u0680\x03\x02\x02\x02\u26C6\u26C7\x07U\x02\x02\u26C7\u26C8" + + "\x07E\x02\x02\u26C8\u26C9\x07J\x02\x02\u26C9\u26CA\x07G\x02\x02\u26CA" + + "\u26CB\x07O\x02\x02\u26CB\u26CC\x07C\x02\x02\u26CC\u26CD\x07a\x02\x02" + + "\u26CD\u26CE\x07P\x02\x02\u26CE\u26CF\x07C\x02\x02\u26CF\u26D0\x07O\x02" + + "\x02\u26D0\u26D1\x07G\x02\x02\u26D1\u0682\x03\x02\x02\x02\u26D2\u26D3" + + "\x07U\x02\x02\u26D3\u26D4\x07G\x02\x02\u26D4\u26D5\x07E\x02\x02\u26D5" + + "\u26D6\x07Q\x02\x02\u26D6\u26D7\x07P\x02\x02\u26D7\u26D8\x07F\x02\x02" + + "\u26D8\u26D9\x07C\x02\x02\u26D9\u26DA\x07T\x02\x02\u26DA\u26DB\x07[\x02" + + "\x02\u26DB\u26DC\x07a\x02\x02\u26DC\u26DD\x07G\x02\x02\u26DD\u26DE\x07" + + "P\x02\x02\u26DE\u26DF\x07I\x02\x02\u26DF\u26E0\x07K\x02\x02\u26E0\u26E1" + + "\x07P\x02\x02\u26E1\u26E2\x07G\x02\x02\u26E2\u26E3\x07a\x02\x02\u26E3" + + "\u26E4\x07C\x02\x02\u26E4\u26E5\x07V\x02\x02\u26E5\u26E6\x07V\x02\x02" + + "\u26E6\u26E7\x07T\x02\x02\u26E7\u26E8\x07K\x02\x02\u26E8\u26E9\x07D\x02" + + "\x02\u26E9\u26EA\x07W\x02\x02\u26EA\u26EB\x07V\x02\x02\u26EB\u26EC\x07" + + "G\x02\x02\u26EC\u0684\x03\x02\x02\x02\u26ED\u26EE\x07U\x02\x02\u26EE\u26EF" + + "\x07T\x02\x02\u26EF\u26F0\x07K\x02\x02\u26F0\u26F1\x07F\x02\x02\u26F1" + + "\u0686\x03\x02\x02\x02\u26F2\u26F3\x07U\x02\x02\u26F3\u26F4\x07[\x02\x02" + + "\u26F4\u26F5\x07U\x02\x02\u26F5\u26F6\x07V\x02\x02\u26F6\u26F7\x07G\x02" + + "\x02\u26F7\u26F8\x07O\x02\x02\u26F8\u0688\x03\x02\x02\x02\u26F9\u26FA" + + "\x07U\x02\x02\u26FA\u26FB\x07[\x02\x02\u26FB\u26FC\x07U\x02\x02\u26FC" + + "\u26FD\x07V\x02\x02\u26FD\u26FE\x07G\x02\x02\u26FE\u26FF\x07O\x02\x02" + + "\u26FF\u2700\x07a\x02\x02\u2700\u2701\x07W\x02\x02\u2701\u2702\x07U\x02" + + "\x02\u2702\u2703\x07G\x02\x02\u2703\u2704\x07T\x02\x02\u2704\u068A\x03" + + "\x02\x02\x02\u2705\u2706\x07V\x02\x02\u2706\u2707\x07J\x02\x02\u2707\u2708" + + "\x07T\x02\x02\u2708\u2709\x07G\x02\x02\u2709\u270A\x07C\x02\x02\u270A" + + "\u270B\x07F\x02\x02\u270B\u270C\x07a\x02\x02\u270C\u270D\x07R\x02\x02" + + "\u270D\u270E\x07T\x02\x02\u270E\u270F\x07K\x02\x02\u270F\u2710\x07Q\x02" + + "\x02\u2710\u2711\x07T\x02\x02\u2711\u2712\x07K\x02\x02\u2712\u2713\x07" + + "V\x02\x02\u2713\u2714\x07[\x02\x02\u2714\u068C\x03\x02\x02\x02\u2715\u2716" + + "\x07V\x02\x02\u2716\u2717\x07R\x02\x02\u2717\u2718\x07a\x02\x02\u2718" + + "\u2719\x07E\x02\x02\u2719\u271A\x07Q\x02\x02\u271A\u271B\x07P\x02\x02" + + "\u271B\u271C\x07P\x02\x02\u271C\u271D\x07G\x02\x02\u271D\u271E\x07E\x02" + + "\x02\u271E\u271F\x07V\x02\x02\u271F\u2720\x07K\x02\x02\u2720\u2721\x07" + + "Q\x02\x02\u2721\u2722\x07P\x02\x02\u2722\u2723\x07a\x02\x02\u2723\u2724" + + "\x07C\x02\x02\u2724\u2725\x07F\x02\x02\u2725\u2726\x07O\x02\x02\u2726" + + "\u2727\x07K\x02\x02\u2727\u2728\x07P\x02\x02\u2728\u068E\x03\x02\x02\x02" + + "\u2729\u272A\x07V\x02\x02\u272A\u272B\x07[\x02\x02\u272B\u272C\x07R\x02" + + "\x02\u272C\u272D\x07G\x02\x02\u272D\u0690\x03\x02\x02\x02\u272E\u272F" + + "\x07Y\x02\x02\u272F\u2730\x07G\x02\x02\u2730\u2731\x07K\x02\x02\u2731" + + "\u2732\x07I\x02\x02\u2732\u2733\x07J\x02\x02\u2733\u2734\x07V\x02\x02" + + "\u2734\u2735\x07a\x02\x02\u2735\u2736\x07U\x02\x02\u2736\u2737\x07V\x02" + + "\x02\u2737\u2738\x07T\x02\x02\u2738\u2739\x07K\x02\x02\u2739\u273A\x07" + + "P\x02\x02\u273A\u273B\x07I\x02\x02\u273B\u0692\x03\x02\x02\x02\u273C\u273D" + + "\x07<\x02\x02\u273D\u273E\x07?\x02\x02\u273E\u0694\x03\x02\x02\x02\u273F" + + "\u2740\x07-\x02\x02\u2740\u2741\x07?\x02\x02\u2741\u0696\x03\x02\x02\x02" + + "\u2742\u2743\x07/\x02\x02\u2743\u2744\x07?\x02\x02\u2744\u0698\x03\x02" + + "\x02\x02\u2745\u2746\x07,\x02\x02\u2746\u2747\x07?\x02\x02\u2747\u069A" + + "\x03\x02\x02\x02\u2748\u2749\x071\x02\x02\u2749\u274A\x07?\x02\x02\u274A" + + "\u069C\x03\x02\x02\x02\u274B\u274C\x07\'\x02\x02\u274C\u274D\x07?\x02" + + "\x02\u274D\u069E\x03\x02\x02\x02\u274E\u274F\x07(\x02\x02\u274F\u2750" + + "\x07?\x02\x02\u2750\u06A0\x03\x02\x02\x02\u2751\u2752\x07`\x02\x02\u2752" + + "\u2753\x07?\x02\x02\u2753\u06A2\x03\x02\x02\x02\u2754\u2755\x07~\x02\x02" + + "\u2755\u2756\x07?\x02\x02\u2756\u06A4\x03\x02\x02\x02\u2757\u2758\x07" + + ",\x02\x02\u2758\u06A6\x03\x02\x02\x02\u2759\u275A\x071\x02\x02\u275A\u06A8" + + "\x03\x02\x02\x02\u275B\u275C\x07\'\x02\x02\u275C\u06AA\x03\x02\x02\x02" + + "\u275D\u275E\x07-\x02\x02\u275E\u06AC\x03\x02\x02\x02\u275F\u2760\x07" + + "/\x02\x02\u2760\u06AE\x03\x02\x02\x02\u2761\u2762\x07F\x02\x02\u2762\u2763" + + "\x07K\x02\x02\u2763\u2764\x07X\x02\x02\u2764\u06B0\x03\x02\x02\x02\u2765" + + "\u2766\x07O\x02\x02\u2766\u2767\x07Q\x02\x02\u2767\u2768\x07F\x02\x02" + + "\u2768\u06B2\x03\x02\x02\x02\u2769\u276A\x07?\x02\x02\u276A\u06B4\x03" + + "\x02\x02\x02\u276B\u276C\x07@\x02\x02\u276C\u06B6\x03\x02\x02\x02\u276D" + + "\u276E\x07>\x02\x02\u276E\u06B8\x03\x02\x02\x02\u276F\u2770\x07#\x02\x02" + + "\u2770\u06BA\x03\x02\x02\x02\u2771\u2772\x07\x80\x02\x02\u2772\u06BC\x03" + + "\x02\x02\x02\u2773\u2774\x07~\x02\x02\u2774\u06BE\x03\x02\x02\x02\u2775" + + "\u2776\x07(\x02\x02\u2776\u06C0\x03\x02\x02\x02\u2777\u2778\x07`\x02\x02" + + "\u2778\u06C2\x03\x02\x02\x02\u2779\u277A\x070\x02\x02\u277A\u06C4\x03" + + "\x02\x02\x02\u277B\u277C\x07*\x02\x02\u277C\u06C6\x03\x02\x02\x02\u277D" + + "\u277E\x07+\x02\x02\u277E\u06C8\x03\x02\x02\x02\u277F\u2780\x07.\x02\x02" + + "\u2780\u06CA\x03\x02\x02\x02\u2781\u2782\x07=\x02\x02\u2782\u06CC\x03" + + "\x02\x02\x02\u2783\u2784\x07B\x02\x02\u2784\u06CE\x03\x02\x02\x02\u2785" + + "\u2786\x072\x02\x02\u2786\u06D0\x03\x02\x02\x02\u2787\u2788\x073\x02\x02" + + "\u2788\u06D2\x03\x02\x02\x02\u2789\u278A\x074\x02\x02\u278A\u06D4\x03" + + "\x02\x02\x02\u278B\u278C\x075\x02\x02\u278C\u06D6\x03\x02\x02\x02\u278D" + + "\u278E\x07)\x02\x02\u278E\u06D8\x03\x02\x02\x02\u278F\u2790\x07$\x02\x02" + + "\u2790\u06DA\x03\x02\x02\x02\u2791\u2792\x07b\x02\x02\u2792\u06DC\x03" + + "\x02\x02\x02\u2793\u2794\x07<\x02\x02\u2794\u06DE\x03\x02\x02\x02\u2795" + + "\u2799\x05\u06D7\u036C\x02\u2796\u2799\x05\u06D9\u036D\x02\u2797\u2799" + + "\x05\u06DB\u036E\x02\u2798\u2795\x03\x02\x02\x02\u2798\u2796\x03\x02\x02" + + "\x02\u2798\u2797\x03\x02\x02\x02\u2799\u06E0\x03\x02\x02\x02\u279A\u279B" + + "\x07b\x02\x02\u279B\u279C\x05\u0703\u0382\x02\u279C\u279D\x07b\x02\x02" + + "\u279D\u06E2\x03\x02\x02\x02\u279E\u27A0\x05\u0711\u0389\x02\u279F\u279E" + + "\x03\x02\x02\x02\u27A0\u27A1\x03\x02\x02\x02\u27A1\u279F\x03\x02\x02\x02" + + "\u27A1\u27A2\x03\x02\x02\x02\u27A2\u27A3\x03\x02\x02\x02\u27A3\u27A4\t" + + "\x05\x02\x02\u27A4\u06E4\x03\x02\x02\x02\u27A5\u27A6\x07P\x02\x02\u27A6" + + "\u27A7\x05\u070B\u0386\x02\u27A7\u06E6\x03\x02\x02\x02\u27A8\u27AC\x05" + + "\u0709\u0385\x02\u27A9\u27AC\x05\u070B\u0386\x02\u27AA\u27AC\x05\u070D" + + "\u0387\x02\u27AB\u27A8\x03\x02\x02\x02\u27AB\u27A9\x03\x02\x02\x02\u27AB" + + "\u27AA\x03\x02\x02\x02\u27AC\u06E8\x03\x02\x02\x02\u27AD\u27AF\x05\u0711" + + "\u0389\x02\u27AE\u27AD\x03\x02\x02\x02\u27AF\u27B0\x03\x02\x02\x02\u27B0" + + "\u27AE\x03\x02\x02\x02\u27B0\u27B1\x03\x02\x02\x02\u27B1\u06EA\x03\x02" + + "\x02\x02\u27B2\u27B3\x07Z\x02\x02\u27B3\u27B7\x07)\x02\x02\u27B4\u27B5" + + "\x05\u070F\u0388\x02\u27B5\u27B6\x05\u070F\u0388\x02\u27B6\u27B8\x03\x02" + + "\x02\x02\u27B7\u27B4\x03\x02\x02\x02\u27B8\u27B9\x03\x02\x02\x02\u27B9" + + "\u27B7\x03\x02\x02\x02\u27B9\u27BA\x03\x02\x02\x02\u27BA\u27BB\x03\x02" + + "\x02\x02\u27BB\u27BC\x07)\x02\x02\u27BC\u27C6\x03\x02\x02\x02\u27BD\u27BE" + + "\x072\x02\x02\u27BE\u27BF\x07Z\x02\x02\u27BF\u27C1\x03\x02\x02\x02\u27C0" + + "\u27C2\x05\u070F\u0388\x02\u27C1\u27C0\x03\x02\x02\x02\u27C2\u27C3\x03" + + "\x02\x02\x02\u27C3\u27C1\x03\x02\x02\x02\u27C3\u27C4\x03\x02\x02\x02\u27C4" + + "\u27C6\x03\x02\x02\x02\u27C5\u27B2\x03\x02\x02\x02\u27C5\u27BD\x03\x02" + + "\x02\x02\u27C6\u06EC\x03\x02\x02\x02\u27C7\u27C9\x05\u0711\u0389\x02\u27C8" + + "\u27C7\x03\x02\x02\x02\u27C9\u27CC\x03\x02\x02\x02\u27CA\u27C8\x03\x02" + + "\x02\x02\u27CA\u27CB\x03\x02\x02\x02\u27CB\u27CD\x03\x02\x02\x02\u27CC" + + "\u27CA\x03\x02\x02\x02\u27CD\u27CF\x070\x02\x02\u27CE\u27D0\x05\u0711" + + "\u0389\x02\u27CF\u27CE\x03\x02\x02\x02\u27D0\u27D1"; + private static readonly _serializedATNSegment17: string = + "\x03\x02\x02\x02\u27D1\u27CF\x03\x02\x02\x02\u27D1\u27D2\x03\x02\x02\x02" + + "\u27D2\u27F1\x03\x02\x02\x02\u27D3\u27D5\x05\u0711\u0389\x02\u27D4\u27D3" + + "\x03\x02\x02\x02\u27D5\u27D6\x03\x02\x02\x02\u27D6\u27D4\x03\x02\x02\x02" + + "\u27D6\u27D7\x03\x02\x02\x02\u27D7\u27D8\x03\x02\x02\x02\u27D8\u27D9\x07" + + "0\x02\x02\u27D9\u27DA\x05\u0705\u0383\x02\u27DA\u27F1\x03\x02\x02\x02" + + "\u27DB\u27DD\x05\u0711\u0389\x02\u27DC\u27DB\x03\x02\x02\x02\u27DD\u27E0" + + "\x03\x02\x02\x02\u27DE\u27DC\x03\x02\x02\x02\u27DE\u27DF\x03\x02\x02\x02" + + "\u27DF\u27E1\x03\x02\x02\x02\u27E0\u27DE\x03\x02\x02\x02\u27E1\u27E3\x07" + + "0\x02\x02\u27E2\u27E4\x05\u0711\u0389\x02\u27E3\u27E2\x03\x02\x02\x02" + + "\u27E4\u27E5\x03\x02\x02\x02\u27E5\u27E3\x03\x02\x02\x02\u27E5\u27E6\x03" + + "\x02\x02\x02\u27E6\u27E7\x03\x02\x02\x02\u27E7\u27E8\x05\u0705\u0383\x02" + + "\u27E8\u27F1\x03\x02\x02\x02\u27E9\u27EB\x05\u0711\u0389\x02\u27EA\u27E9" + + "\x03\x02\x02\x02\u27EB\u27EC\x03\x02\x02\x02\u27EC\u27EA\x03\x02\x02\x02" + + "\u27EC\u27ED\x03\x02\x02\x02\u27ED\u27EE\x03\x02\x02\x02\u27EE\u27EF\x05" + + "\u0705\u0383\x02\u27EF\u27F1\x03\x02\x02\x02\u27F0\u27CA\x03\x02\x02\x02" + + "\u27F0\u27D4\x03\x02\x02\x02\u27F0\u27DE\x03\x02\x02\x02\u27F0\u27EA\x03" + + "\x02\x02\x02\u27F1\u06EE\x03\x02\x02\x02\u27F2\u27F3\x07^\x02\x02\u27F3" + + "\u27F4\x07P\x02\x02\u27F4\u06F0\x03\x02\x02\x02\u27F5\u27F6\x05\u0713" + + "\u038A\x02\u27F6\u06F2\x03\x02\x02\x02\u27F7\u27F8\x07a\x02\x02\u27F8" + + "\u27F9\x05\u0703\u0382\x02\u27F9\u06F4\x03\x02\x02\x02\u27FA\u27FB\x07" + + "0\x02\x02\u27FB\u27FC\x05\u0707\u0384\x02\u27FC\u06F6\x03\x02\x02\x02" + + "\u27FD\u27FE\x05\u0707\u0384\x02\u27FE\u06F8\x03\x02\x02\x02\u27FF\u2800" + + "\x05\u070D\u0387\x02\u2800\u06FA\x03\x02\x02\x02\u2801\u2802\x05\u06CD" + + "\u0367\x02\u2802\u2803\x05\u0715\u038B\x02\u2803\u06FC\x03\x02\x02\x02" + + "\u2804\u280B\x05\u06CD\u0367\x02\u2805\u280C\x05\u06E7\u0374\x02\u2806" + + "\u2808\t\x06\x02\x02\u2807\u2806\x03\x02\x02\x02\u2808\u2809\x03\x02\x02" + + "\x02\u2809\u2807\x03\x02\x02\x02\u2809\u280A\x03\x02\x02\x02\u280A\u280C" + + "\x03\x02\x02\x02\u280B\u2805\x03\x02\x02\x02\u280B\u2807\x03\x02\x02\x02" + + "\u280C\u06FE\x03\x02\x02\x02\u280D\u280E\x05\u06CD\u0367\x02\u280E\u2815" + + "\x05\u06CD\u0367\x02\u280F\u2811\t\x06\x02\x02\u2810\u280F\x03\x02\x02" + + "\x02\u2811\u2812\x03\x02\x02\x02\u2812\u2810\x03\x02\x02\x02\u2812\u2813" + + "\x03\x02\x02\x02\u2813\u2816\x03\x02\x02\x02\u2814\u2816\x05\u070D\u0387" + + "\x02\u2815\u2810\x03\x02\x02\x02\u2815\u2814\x03\x02\x02\x02\u2816\u0700" + + "\x03\x02\x02\x02\u2817\u2818\x05\u06CD\u0367\x02\u2818\u281F\x05\u06CD" + + "\u0367\x02\u2819\u281B\t\x06\x02\x02\u281A\u2819\x03\x02\x02\x02\u281B" + + "\u281C\x03\x02\x02\x02\u281C\u281A\x03\x02\x02\x02\u281C\u281D\x03\x02" + + "\x02\x02\u281D\u2820\x03\x02\x02\x02\u281E\u2820\x05\u070D\u0387\x02\u281F" + + "\u281A\x03\x02\x02\x02\u281F\u281E\x03\x02\x02\x02\u2820\u0702\x03\x02" + + "\x02\x02\u2821\u284B\x05\u05E9\u02F5\x02\u2822\u284B\x05\u05EB\u02F6\x02" + + "\u2823\u284B\x05\u05ED\u02F7\x02\u2824\u284B\x05\u01C9\xE5\x02\u2825\u284B" + + "\x05\u05EF\u02F8\x02\u2826\u284B\x05\u05F1\u02F9\x02\u2827\u284B\x05\u05F3" + + "\u02FA\x02\u2828\u284B\x05\u05F5\u02FB\x02\u2829\u284B\x05\u05F7\u02FC" + + "\x02\u282A\u284B\x05\u05F9\u02FD\x02\u282B\u284B\x05\u05FB\u02FE\x02\u282C" + + "\u284B\x05\u05FD\u02FF\x02\u282D\u284B\x05\u05FF\u0300\x02\u282E\u284B" + + "\x05\u0601\u0301\x02\u282F\u284B\x05\u0603\u0302\x02\u2830\u284B\x05\u0607" + + "\u0304\x02\u2831\u284B\x05\u0609\u0305\x02\u2832\u284B\x05\u060B\u0306" + + "\x02\u2833\u284B\x05\u060D\u0307\x02\u2834\u284B\x05\u060F\u0308\x02\u2835" + + "\u284B\x05\u0611\u0309\x02\u2836\u284B\x05\u0613\u030A\x02\u2837\u284B" + + "\x05\u0615\u030B\x02\u2838\u284B\x05\u0617\u030C\x02\u2839\u284B\x05\u0619" + + "\u030D\x02\u283A\u284B\x05\u061B\u030E\x02\u283B\u284B\x05\u061D\u030F" + + "\x02\u283C\u284B\x05\u061F\u0310\x02\u283D\u284B\x05\u0621\u0311\x02\u283E" + + "\u284B\x05\u0623\u0312\x02\u283F\u284B\x05\u0625\u0313\x02\u2840\u284B" + + "\x05\u0627\u0314\x02\u2841\u284B\x05\u0629\u0315\x02\u2842\u284B\x05\u062B" + + "\u0316\x02\u2843\u284B\x05\u062D\u0317\x02\u2844\u284B\x05\u062F\u0318" + + "\x02\u2845\u284B\x05\u0631\u0319\x02\u2846\u284B\x05\u0633\u031A\x02\u2847" + + "\u284B\x05\u0635\u031B\x02\u2848\u284B\x05\u0637\u031C\x02\u2849\u284B" + + "\x05\u0639\u031D\x02\u284A\u2821\x03\x02\x02\x02\u284A\u2822\x03\x02\x02" + + "\x02\u284A\u2823\x03\x02\x02\x02\u284A\u2824\x03\x02\x02\x02\u284A\u2825" + + "\x03\x02\x02\x02\u284A\u2826\x03\x02\x02\x02\u284A\u2827\x03\x02\x02\x02" + + "\u284A\u2828\x03\x02\x02\x02\u284A\u2829\x03\x02\x02\x02\u284A\u282A\x03" + + "\x02\x02\x02\u284A\u282B\x03\x02\x02\x02\u284A\u282C\x03\x02\x02\x02\u284A" + + "\u282D\x03\x02\x02\x02\u284A\u282E\x03\x02\x02\x02\u284A\u282F\x03\x02" + + "\x02\x02\u284A\u2830\x03\x02\x02\x02\u284A\u2831\x03\x02\x02\x02\u284A" + + "\u2832\x03\x02\x02\x02\u284A\u2833\x03\x02\x02\x02\u284A\u2834\x03\x02" + + "\x02\x02\u284A\u2835\x03\x02\x02\x02\u284A\u2836\x03\x02\x02\x02\u284A" + + "\u2837\x03\x02\x02\x02\u284A\u2838\x03\x02\x02\x02\u284A\u2839\x03\x02" + + "\x02\x02\u284A\u283A\x03\x02\x02\x02\u284A\u283B\x03\x02\x02\x02\u284A" + + "\u283C\x03\x02\x02\x02\u284A\u283D\x03\x02\x02\x02\u284A\u283E\x03\x02" + + "\x02\x02\u284A\u283F\x03\x02\x02\x02\u284A\u2840\x03\x02\x02\x02\u284A" + + "\u2841\x03\x02\x02\x02\u284A\u2842\x03\x02\x02\x02\u284A\u2843\x03\x02" + + "\x02\x02\u284A\u2844\x03\x02\x02\x02\u284A\u2845\x03\x02\x02\x02\u284A" + + "\u2846\x03\x02\x02\x02\u284A\u2847\x03\x02\x02\x02\u284A\u2848\x03\x02" + + "\x02\x02\u284A\u2849\x03\x02\x02\x02\u284B\u0704\x03\x02\x02\x02\u284C" + + "\u284E\x07G\x02\x02\u284D\u284F\t\x07\x02\x02\u284E\u284D\x03\x02\x02" + + "\x02\u284E\u284F\x03\x02\x02\x02\u284F\u2851\x03\x02\x02\x02\u2850\u2852" + + "\x05\u0711\u0389\x02\u2851\u2850\x03\x02\x02\x02\u2852\u2853\x03\x02\x02" + + "\x02\u2853\u2851\x03\x02\x02\x02\u2853\u2854\x03\x02\x02\x02\u2854\u0706" + + "\x03\x02\x02\x02\u2855\u2857\t\b\x02\x02\u2856\u2855\x03\x02\x02\x02\u2857" + + "\u285A\x03\x02\x02\x02\u2858\u2859\x03\x02\x02\x02\u2858\u2856\x03\x02" + + "\x02\x02\u2859\u285C\x03\x02\x02\x02\u285A\u2858\x03\x02\x02\x02\u285B" + + "\u285D\t\t\x02\x02\u285C\u285B\x03\x02\x02\x02\u285D\u285E\x03\x02\x02" + + "\x02\u285E\u285F\x03\x02\x02\x02\u285E\u285C\x03\x02\x02\x02\u285F\u2863" + + "\x03\x02\x02\x02\u2860\u2862\t\b\x02\x02\u2861\u2860\x03\x02\x02\x02\u2862" + + "\u2865\x03\x02\x02\x02\u2863\u2861\x03\x02\x02\x02\u2863\u2864\x03\x02" + + "\x02\x02\u2864\u0708\x03\x02\x02\x02\u2865\u2863\x03\x02\x02\x02\u2866" + + "\u286E\x07$\x02\x02\u2867\u2868\x07^\x02\x02\u2868\u286D\v\x02\x02\x02" + + "\u2869\u286A\x07$\x02\x02\u286A\u286D\x07$\x02\x02\u286B\u286D\n\n\x02" + + "\x02\u286C\u2867\x03\x02\x02\x02\u286C\u2869\x03\x02\x02\x02\u286C\u286B" + + "\x03\x02\x02\x02\u286D\u2870\x03\x02\x02\x02\u286E\u286C\x03\x02\x02\x02" + + "\u286E\u286F\x03\x02\x02\x02\u286F\u2871\x03\x02\x02\x02\u2870\u286E\x03" + + "\x02\x02\x02\u2871\u2872\x07$\x02\x02\u2872\u070A\x03\x02\x02\x02\u2873" + + "\u287B\x07)\x02\x02\u2874\u2875\x07^\x02\x02\u2875\u287A\v\x02\x02\x02" + + "\u2876\u2877\x07)\x02\x02\u2877\u287A\x07)\x02\x02\u2878\u287A\n\v\x02" + + "\x02\u2879\u2874\x03\x02\x02\x02\u2879\u2876\x03\x02\x02\x02\u2879\u2878" + + "\x03\x02\x02\x02\u287A\u287D\x03\x02\x02\x02\u287B\u2879\x03\x02\x02\x02" + + "\u287B\u287C\x03\x02\x02\x02\u287C\u287E\x03\x02\x02\x02\u287D\u287B\x03" + + "\x02\x02\x02\u287E\u287F\x07)\x02\x02\u287F\u070C\x03\x02\x02\x02\u2880" + + "\u2886\x07b\x02\x02\u2881\u2885\n\f\x02\x02\u2882\u2883\x07b\x02\x02\u2883" + + "\u2885\x07b\x02\x02\u2884\u2881\x03\x02\x02\x02\u2884\u2882\x03\x02\x02" + + "\x02\u2885\u2888\x03\x02\x02\x02\u2886\u2884\x03\x02\x02\x02\u2886\u2887" + + "\x03\x02\x02\x02\u2887\u2889\x03\x02\x02\x02\u2888\u2886\x03\x02\x02\x02" + + "\u2889\u288A\x07b\x02\x02\u288A\u070E\x03\x02\x02\x02\u288B\u288C\t\r" + + "\x02\x02\u288C\u0710\x03\x02\x02\x02\u288D\u288E\t\x0E\x02\x02\u288E\u0712" + + "\x03\x02\x02\x02\u288F\u2890\x07D\x02\x02\u2890\u2892\x07)\x02\x02\u2891" + + "\u2893\t\x0F\x02\x02\u2892\u2891\x03\x02\x02\x02\u2893\u2894\x03\x02\x02" + + "\x02\u2894\u2892\x03\x02\x02\x02\u2894\u2895\x03\x02\x02\x02\u2895\u2896" + + "\x03\x02\x02\x02\u2896\u2897\x07)\x02\x02\u2897\u0714\x03\x02\x02\x02" + + "\u2898\u289A\t\x0E\x02\x02\u2899\u2898\x03\x02\x02\x02\u289A\u289B\x03" + + "\x02\x02\x02\u289B\u2899\x03\x02\x02\x02\u289B\u289C\x03\x02\x02\x02\u289C" + + "\u289D\x03\x02\x02\x02\u289D\u289F\x070\x02\x02\u289E\u28A0\t\x10\x02" + + "\x02\u289F\u289E\x03\x02\x02\x02\u28A0\u28A1\x03\x02\x02\x02\u28A1\u289F" + + "\x03\x02\x02\x02\u28A1\u28A2\x03\x02\x02\x02\u28A2\u28B7\x03\x02\x02\x02" + + "\u28A3\u28A5\t\r\x02\x02\u28A4\u28A3\x03\x02\x02\x02\u28A5\u28A8\x03\x02" + + "\x02\x02\u28A6\u28A4\x03\x02\x02\x02\u28A6\u28A7\x03\x02\x02\x02\u28A7" + + "\u28A9\x03\x02\x02\x02\u28A8\u28A6\x03\x02\x02\x02\u28A9\u28AD\x07<\x02" + + "\x02\u28AA\u28AC\t\r\x02\x02\u28AB\u28AA\x03\x02\x02\x02\u28AC\u28AF\x03" + + "\x02\x02\x02\u28AD\u28AB\x03\x02\x02\x02\u28AD\u28AE\x03\x02\x02\x02\u28AE" + + "\u28B0\x03\x02\x02\x02\u28AF\u28AD\x03\x02\x02\x02\u28B0\u28B2\x07<\x02" + + "\x02\u28B1\u28B3\t\x11\x02\x02\u28B2\u28B1\x03\x02\x02\x02\u28B3\u28B4" + + "\x03\x02\x02\x02\u28B4\u28B2\x03\x02\x02\x02\u28B4\u28B5\x03\x02\x02\x02" + + "\u28B5\u28B7\x03\x02\x02\x02\u28B6\u2899\x03\x02\x02\x02\u28B6\u28A6\x03" + + "\x02\x02\x02\u28B7\u0716\x03\x02\x02\x02\u28B8\u28B9\v\x02\x02\x02\u28B9" + + "\u28BA\x03\x02\x02\x02\u28BA\u28BB\b\u038C\x04\x02\u28BB\u0718\x03\x02" + + "\x02\x027\x02\u071C\u0727\u0734\u0742\u0746\u074B\u074F\u0753\u0759\u075D" + + "\u075F\u23B5\u23D0\u2798\u27A1\u27AB\u27B0\u27B9\u27C3\u27C5\u27CA\u27D1" + + "\u27D6\u27DE\u27E5\u27EC\u27F0\u2809\u280B\u2812\u2815\u281C\u281F\u284A" + + "\u284E\u2853\u2858\u285E\u2863\u286C\u286E\u2879\u287B\u2884\u2886\u2894" + + "\u289B\u28A1\u28A6\u28AD\u28B4\u28B6\x05\x02\x03\x02\x02\x04\x02\x02\x05" + + "\x02"; + public static readonly _serializedATN: string = Utils.join( + [ + MySqlLexer._serializedATNSegment0, + MySqlLexer._serializedATNSegment1, + MySqlLexer._serializedATNSegment2, + MySqlLexer._serializedATNSegment3, + MySqlLexer._serializedATNSegment4, + MySqlLexer._serializedATNSegment5, + MySqlLexer._serializedATNSegment6, + MySqlLexer._serializedATNSegment7, + MySqlLexer._serializedATNSegment8, + MySqlLexer._serializedATNSegment9, + MySqlLexer._serializedATNSegment10, + MySqlLexer._serializedATNSegment11, + MySqlLexer._serializedATNSegment12, + MySqlLexer._serializedATNSegment13, + MySqlLexer._serializedATNSegment14, + MySqlLexer._serializedATNSegment15, + MySqlLexer._serializedATNSegment16, + MySqlLexer._serializedATNSegment17, + ], + "", + ); + public static __ATN: ATN; + public static get _ATN(): ATN { + if (!MySqlLexer.__ATN) { + MySqlLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(MySqlLexer._serializedATN)); + } + + return MySqlLexer.__ATN; + } + +} + diff --git a/src/lib/mysql/MySqlParser.interp b/src/lib/mysql/MySqlParser.interp new file mode 100644 index 0000000..29fc3eb --- /dev/null +++ b/src/lib/mysql/MySqlParser.interp @@ -0,0 +1,2223 @@ +token literal names: +null +null +null +null +null +'ACTIVE' +'ADD' +'ALL' +'ALTER' +'ALWAYS' +'ANALYZE' +'AND' +'ARRAY' +'AS' +'ASC' +'ATTRIBUTE' +'BEFORE' +'BETWEEN' +'BOTH' +'BUCKETS' +'BY' +'CALL' +'CASCADE' +'CASE' +'CAST' +'CHANGE' +'CHARACTER' +'CHECK' +'COLLATE' +'COLUMN' +'CONDITION' +'CONSTRAINT' +'CONTINUE' +'CONVERT' +'CREATE' +'CROSS' +'CURRENT' +'CURRENT_USER' +'CURSOR' +'DATABASE' +'DATABASES' +'DECLARE' +'DEFAULT' +'DELAYED' +'DELETE' +'DESC' +'DESCRIBE' +'DETERMINISTIC' +'DIAGNOSTICS' +'DISTINCT' +'DISTINCTROW' +'DROP' +'EACH' +'ELSE' +'ELSEIF' +'EMPTY' +'ENCLOSED' +'ENFORCED' +'ESCAPED' +'EXCEPT' +'EXISTS' +'EXIT' +'EXPLAIN' +'FALSE' +'FETCH' +'FOR' +'FORCE' +'FOREIGN' +'FROM' +'FULLTEXT' +'GENERATE' +'GENERATED' +'GET' +'GRANT' +'GROUP' +'HAVING' +'HIGH_PRIORITY' +'HISTOGRAM' +'IF' +'IGNORE' +'IN' +'INACTIVE' +'INDEX' +'INFILE' +'INNER' +'INOUT' +'INSERT' +'INTERVAL' +'INTO' +'IS' +'ITERATE' +'JOIN' +'KEY' +'KEYS' +'KILL' +'LATERAL' +'LEADING' +'LEAVE' +'LEFT' +'LIKE' +'LIMIT' +'LINEAR' +'LINES' +'LOAD' +'LOCK' +'LOCKED' +'LOOP' +'LOW_PRIORITY' +'MASTER_BIND' +'MASTER_SSL_VERIFY_SERVER_CERT' +'MATCH' +'MAXVALUE' +'MODIFIES' +'NATURAL' +'NOT' +'NO_WRITE_TO_BINLOG' +'NULL' +'NUMBER' +'STREAM' +'ON' +'OPTIMIZE' +'OPTION' +'OPTIONAL' +'OPTIONALLY' +'OR' +'ORDER' +'OUT' +'OUTER' +'OUTFILE' +'OVER' +'PARTITION' +'PRIMARY' +'PROCEDURE' +'PURGE' +'RANGE' +'READ' +'READS' +'REFERENCE' +'REFERENCES' +'REGEXP' +'RELEASE' +'RENAME' +'REPEAT' +'REPLACE' +'REQUIRE' +'RESIGNAL' +'RESTRICT' +'RETAIN' +'RETURN' +'REVOKE' +'RIGHT' +'RLIKE' +'SCHEMA' +'SCHEMAS' +'SELECT' +'SET' +'SEPARATOR' +'SHOW' +'SIGNAL' +'SKIP' +'SKIP_QUERY_REWRITE' +'SPATIAL' +'SQL' +'SQLEXCEPTION' +'SQLSTATE' +'SQLWARNING' +'SQL_BIG_RESULT' +'SQL_CALC_FOUND_ROWS' +'SQL_SMALL_RESULT' +'SSL' +'STACKED' +'STARTING' +'STRAIGHT_JOIN' +'TABLE' +'TERMINATED' +'THEN' +'TO' +'TRAILING' +'TRIGGER' +'TRUE' +'UNDO' +'UNION' +'UNIQUE' +'UNLOCK' +'UNSIGNED' +'UPDATE' +'USAGE' +'USE' +'USING' +'VALUES' +'VCPU' +'WHEN' +'WHERE' +'WHILE' +'WITH' +'WRITE' +'XOR' +'ZEROFILL' +'TINYINT' +'SMALLINT' +'MEDIUMINT' +'MIDDLEINT' +'INT' +'INT1' +'INT2' +'INT3' +'INT4' +'INT8' +'INTEGER' +'BIGINT' +'REAL' +'DOUBLE' +'PRECISION' +'FLOAT' +'FLOAT4' +'FLOAT8' +'DECIMAL' +'DEC' +'NUMERIC' +'DATE' +'TIME' +'TIMESTAMP' +'DATETIME' +'YEAR' +'CHAR' +'VARCHAR' +'NVARCHAR' +'NATIONAL' +'BINARY' +'VARBINARY' +'TINYBLOB' +'BLOB' +'MEDIUMBLOB' +'LONG' +'LONGBLOB' +'TINYTEXT' +'TEXT' +'MEDIUMTEXT' +'LONGTEXT' +'ENUM' +'VARYING' +'SERIAL' +'YEAR_MONTH' +'DAY_HOUR' +'DAY_MINUTE' +'DAY_SECOND' +'HOUR_MINUTE' +'HOUR_SECOND' +'MINUTE_SECOND' +'SECOND_MICROSECOND' +'MINUTE_MICROSECOND' +'HOUR_MICROSECOND' +'DAY_MICROSECOND' +'JSON_TABLE' +'JSON_VALUE' +'NESTED' +'ORDINALITY' +'PATH' +'AVG' +'BIT_AND' +'BIT_OR' +'BIT_XOR' +'COUNT' +'CUME_DIST' +'DENSE_RANK' +'FIRST_VALUE' +'GROUP_CONCAT' +'LAG' +'LAST_VALUE' +'LEAD' +'MAX' +'MIN' +'NTILE' +'NTH_VALUE' +'PERCENT_RANK' +'RANK' +'ROW_NUMBER' +'STD' +'STDDEV' +'STDDEV_POP' +'STDDEV_SAMP' +'SUM' +'VAR_POP' +'VAR_SAMP' +'VARIANCE' +'CURRENT_DATE' +'CURRENT_TIME' +'CURRENT_TIMESTAMP' +'LOCALTIME' +'CURDATE' +'CURTIME' +'DATE_ADD' +'DATE_SUB' +'EXTRACT' +'LOCALTIMESTAMP' +'NOW' +'POSITION' +'SUBSTR' +'SUBSTRING' +'SYSDATE' +'TRIM' +'UTC_DATE' +'UTC_TIME' +'UTC_TIMESTAMP' +'ACCOUNT' +'ACTION' +'AFTER' +'AGGREGATE' +'ALGORITHM' +'ANY' +'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS' +'AT' +'AUTHORS' +'AUTOCOMMIT' +'AUTOEXTEND_SIZE' +'AUTO_INCREMENT' +'AVG_ROW_LENGTH' +'BEGIN' +'BINLOG' +'BIT' +'BLOCK' +'BOOL' +'BOOLEAN' +'BTREE' +'CACHE' +'CASCADED' +'CHAIN' +'CHANGED' +'CHANNEL' +'CHECKSUM' +'CHALLENGE_RESPONSE' +'CIPHER' +'CLASS_ORIGIN' +'CLIENT' +'CLOSE' +'COALESCE' +'CODE' +'COLUMNS' +'COLUMN_FORMAT' +'COLUMN_NAME' +'COMMENT' +'COMMIT' +'COMPACT' +'COMPLETION' +'COMPONENT' +'COMPRESSED' +'COMPRESSION' +'CONCURRENT' +'CONNECT' +'CONNECTION' +'CONSISTENT' +'CONSTRAINT_CATALOG' +'CONSTRAINT_SCHEMA' +'CONSTRAINT_NAME' +'CONTAINS' +'CONTEXT' +'CONTRIBUTORS' +'COPY' +'CPU' +'CURSOR_NAME' +'DATA' +'DATAFILE' +'DEALLOCATE' +'DEFAULT_AUTH' +'DEFINER' +'DELAY_KEY_WRITE' +'DES_KEY_FILE' +'DIRECTORY' +'DISABLE' +'DISCARD' +'DISK' +'DO' +'DUMPFILE' +'DUPLICATE' +'DYNAMIC' +'ENABLE' +'ENCRYPTION' +'ENCRYPTION_KEY_ID' +'END' +'ENDS' +'ENGINE' +'ENGINES' +'ERROR' +'ERRORS' +'ESCAPE' +'EVENT' +'EVENTS' +'EVERY' +'EXCHANGE' +'EXCLUSIVE' +'EXPIRE' +'EXPORT' +'EXTENDED' +'EXTENT_SIZE' +'FACTOR' +'FAILED_LOGIN_ATTEMPTS' +'FAST' +'FAULTS' +'FIELDS' +'FILE_BLOCK_SIZE' +'FILTER' +'FINISH' +'FIRST' +'FIXED' +'FLUSH' +'FOLLOWING' +'FOLLOWS' +'FOUND' +'FULL' +'FUNCTION' +'GENERAL' +'GET_MASTER_PUBLIC_KEY' +'GET_SOURCE_PUBLIC_KEY' +'GLOBAL' +'GRANTS' +'GROUP_REPLICATION' +'GTID_ONLY' +'HANDLER' +'HASH' +'HELP' +'HISTORY' +'HOST' +'HOSTS' +'IDENTIFIED' +'IGNORE_SERVER_IDS' +'IMPORT' +'INDEXES' +'INITIAL' +'INITIAL_SIZE' +'INITIATE' +'INPLACE' +'INSERT_METHOD' +'INSTALL' +'INSTANCE' +'INSTANT' +'INVISIBLE' +'INVOKER' +'IO' +'IO_THREAD' +'IPC' +'ISOLATION' +'ISSUER' +'JSON' +'KEY_BLOCK_SIZE' +'LANGUAGE' +'LAST' +'LEAVES' +'LESS' +'LEVEL' +'LIST' +'LOCAL' +'LOGFILE' +'LOGS' +'MASTER' +'MASTER_AUTO_POSITION' +'MASTER_COMPRESSION_ALGORITHMS' +'MASTER_CONNECT_RETRY' +'MASTER_DELAY' +'MASTER_HEARTBEAT_PERIOD' +'MASTER_HOST' +'MASTER_LOG_FILE' +'MASTER_LOG_POS' +'MASTER_PASSWORD' +'MASTER_PORT' +'MASTER_PUBLIC_KEY_PATH' +'MASTER_RETRY_COUNT' +'MASTER_SSL' +'MASTER_SSL_CA' +'MASTER_SSL_CAPATH' +'MASTER_SSL_CERT' +'MASTER_SSL_CIPHER' +'MASTER_SSL_CRL' +'MASTER_SSL_CRLPATH' +'MASTER_SSL_KEY' +'MASTER_TLS_CIPHERSUITES' +'MASTER_TLS_VERSION' +'MASTER_USER' +'MASTER_ZSTD_COMPRESSION_LEVEL' +'MAX_CONNECTIONS_PER_HOUR' +'MAX_QUERIES_PER_HOUR' +'MAX_ROWS' +'MAX_SIZE' +'MAX_UPDATES_PER_HOUR' +'MAX_USER_CONNECTIONS' +'MEDIUM' +'MEMBER' +'MERGE' +'MESSAGE_TEXT' +'MID' +'MIGRATE' +'MIN_ROWS' +'MODE' +'MODIFY' +'MUTEX' +'MYSQL' +'MYSQL_ERRNO' +'NAME' +'NAMES' +'NCHAR' +'NETWORK_NAMESPACE' +'NEVER' +'NEXT' +'NO' +'NOWAIT' +'NODEGROUP' +'NONE' +'ODBC' +'OFF' +'OFFLINE' +'OFFSET' +'OF' +'OLD' +'OLD_PASSWORD' +'ONE' +'ONLINE' +'ONLY' +'OPEN' +'OPTIMIZER_COSTS' +'OPTIONS' +'OWNER' +'PACK_KEYS' +'PAGE' +'PAGE_CHECKSUM' +'PAGE_COMPRESSED' +'PAGE_COMPRESSION_LEVEL' +'PARSER' +'PARTIAL' +'PARTITIONING' +'PARTITIONS' +'PASSWORD' +'PASSWORD_LOCK_TIME' +'PERSIST' +'PERSIST_ONLY' +'PHASE' +'PLUGIN' +'PLUGIN_DIR' +'PLUGINS' +'PORT' +'PRECEDES' +'PRECEDING' +'PREPARE' +'PRESERVE' +'PREV' +'PRIVILEGE_CHECKS_USER' +'PROCESSLIST' +'PROFILE' +'PROFILES' +'PROXY' +'QUERY' +'QUICK' +'REBUILD' +'RECOVER' +'RECURSIVE' +'REDO_BUFFER_SIZE' +'REDUNDANT' +'REGISTRATION' +'RELAY' +'RELAY_LOG_FILE' +'RELAY_LOG_POS' +'RELAYLOG' +'REMOVE' +'REORGANIZE' +'REPAIR' +'REPLICA' +'REPLICAS' +'REPLICATE_DO_DB' +'REPLICATE_DO_TABLE' +'REPLICATE_IGNORE_DB' +'REPLICATE_IGNORE_TABLE' +'REPLICATE_REWRITE_DB' +'REPLICATE_WILD_DO_TABLE' +'REPLICATE_WILD_IGNORE_TABLE' +'REPLICATION' +'REQUIRE_ROW_FORMAT' +'REQUIRE_TABLE_PRIMARY_KEY_CHECK' +'RESET' +'RESTART' +'RESUME' +'RETURNED_SQLSTATE' +'RETURNING' +'RETURNS' +'REUSE' +'ROLE' +'ROLLBACK' +'ROLLUP' +'ROTATE' +'ROW' +'ROWS' +'ROW_FORMAT' +'SAVEPOINT' +'SCHEDULE' +'SECURITY' +'SERVER' +'SESSION' +'SHARE' +'SHARED' +'SIGNED' +'SIMPLE' +'SLAVE' +'SLOW' +'SNAPSHOT' +'SOCKET' +'SOME' +'SONAME' +'SOUNDS' +'SOURCE' +'SOURCE_BIND' +'SOURCE_HOST' +'SOURCE_USER' +'SOURCE_PASSWORD' +'SOURCE_PORT' +'SOURCE_LOG_FILE' +'SOURCE_LOG_POS' +'SOURCE_AUTO_POSITION' +'SOURCE_HEARTBEAT_PERIOD' +'SOURCE_CONNECT_RETRY' +'SOURCE_RETRY_COUNT' +'SOURCE_CONNECTION_AUTO_FAILOVER' +'SOURCE_DELAY' +'SOURCE_COMPRESSION_ALGORITHMS' +'SOURCE_ZSTD_COMPRESSION_LEVEL' +'SOURCE_SSL' +'SOURCE_SSL_CA' +'SOURCE_SSL_CAPATH' +'SOURCE_SSL_CERT' +'SOURCE_SSL_CRL' +'SOURCE_SSL_CRLPATH' +'SOURCE_SSL_KEY' +'SOURCE_SSL_CIPHER' +'SOURCE_SSL_VERIFY_SERVER_CERT' +'SOURCE_TLS_VERSION' +'SOURCE_TLS_CIPHERSUITES' +'SOURCE_PUBLIC_KEY_PATH' +'SQL_AFTER_GTIDS' +'SQL_AFTER_MTS_GAPS' +'SQL_BEFORE_GTIDS' +'SQL_BUFFER_RESULT' +'SQL_CACHE' +'SQL_NO_CACHE' +'SQL_THREAD' +'START' +'STARTS' +'STATS_AUTO_RECALC' +'STATS_PERSISTENT' +'STATS_SAMPLE_PAGES' +'STATUS' +'STOP' +'STORAGE' +'STORED' +'STRING' +'SUBCLASS_ORIGIN' +'SUBJECT' +'SUBPARTITION' +'SUBPARTITIONS' +'SUSPEND' +'SWAPS' +'SWITCHES' +'TABLE_NAME' +'TABLESPACE' +'TABLE_TYPE' +'TEMPORARY' +'TEMPTABLE' +'THAN' +'TRADITIONAL' +'TRANSACTION' +'TRANSACTIONAL' +'TREE' +'TRIGGERS' +'TRUNCATE' +'UNBOUNDED' +'UNDEFINED' +'UNDOFILE' +'UNDO_BUFFER_SIZE' +'UNINSTALL' +'UNKNOWN' +'UNREGISTER' +'UNTIL' +'UPGRADE' +'USER' +'USE_FRM' +'USER_RESOURCES' +'VALIDATION' +'VALUE' +'VARIABLES' +'VIEW' +'VIRTUAL' +'VISIBLE' +'WAIT' +'WARNINGS' +'WINDOW' +'WITHOUT' +'WORK' +'WRAPPER' +'X509' +'XA' +'XML' +'QUARTER' +'MONTH' +'DAY' +'HOUR' +'MINUTE' +'WEEK' +'SECOND' +'MICROSECOND' +'ADMIN' +'APPLICATION_PASSWORD_ADMIN' +'AUDIT_ABORT_EXEMPT' +'AUDIT_ADMIN' +'AUTHENTICATION' +'AUTHENTICATION_POLICY_ADMIN' +'BACKUP_ADMIN' +'BINLOG_ADMIN' +'BINLOG_ENCRYPTION_ADMIN' +'CLONE' +'CLONE_ADMIN' +'CONNECTION_ADMIN' +'ENCRYPTION_KEY_ADMIN' +'EXECUTE' +'FILE' +'FIREWALL_ADMIN' +'FIREWALL_EXEMPT' +'FIREWALL_USER' +'FLUSH_OPTIMIZER_COSTS' +'FLUSH_STATUS' +'FLUSH_TABLES' +'FLUSH_USER_RESOURCES' +'GROUP_REPLICATION_ADMIN' +'INNODB_REDO_LOG_ARCHIVE' +'INNODB_REDO_LOG_ENABLE' +'INVOKE' +'LAMBDA' +'NDB_STORED_USER' +'PASSWORDLESS_USER_ADMIN' +'PERSIST_RO_VARIABLES_ADMIN' +'PRIVILEGES' +'PROCESS' +'RELOAD' +'REPLICATION_APPLIER' +'REPLICATION_SLAVE_ADMIN' +'RESOURCE' +'RESOURCE_GROUP_ADMIN' +'RESOURCE_GROUP_USER' +'ROLE_ADMIN' +'ROUTINE' +'S3' +'SERVICE_CONNECTION_ADMIN' +null +'SET_USER_ID' +'SHOW_ROUTINE' +'SHUTDOWN' +'SUPER' +'SYSTEM_VARIABLES_ADMIN' +'TABLES' +'TABLE_ENCRYPTION_ADMIN' +'VERSION_TOKEN_ADMIN' +'XA_RECOVER_ADMIN' +'ARMSCII8' +'ASCII' +'BIG5' +'CP1250' +'CP1251' +'CP1256' +'CP1257' +'CP850' +'CP852' +'CP866' +'CP932' +'DEC8' +'EUCJPMS' +'EUCKR' +'GB18030' +'GB2312' +'GBK' +'GEOSTD8' +'GREEK' +'HEBREW' +'HP8' +'KEYBCS2' +'KOI8R' +'KOI8U' +'LATIN1' +'LATIN2' +'LATIN5' +'LATIN7' +'MACCE' +'MACROMAN' +'SJIS' +'SWE7' +'TIS620' +'UCS2' +'UJIS' +'UTF16' +'UTF16LE' +'UTF32' +'UTF8' +'UTF8MB3' +'UTF8MB4' +'ARCHIVE' +'BLACKHOLE' +'CSV' +'FEDERATED' +'INNODB' +'MEMORY' +'MRG_MYISAM' +'MYISAM' +'NDB' +'NDBCLUSTER' +'PERFORMANCE_SCHEMA' +'TOKUDB' +'REPEATABLE' +'COMMITTED' +'UNCOMMITTED' +'SERIALIZABLE' +'GEOMETRYCOLLECTION' +'GEOMCOLLECTION' +'GEOMETRY' +'LINESTRING' +'MULTILINESTRING' +'MULTIPOINT' +'MULTIPOLYGON' +'POINT' +'POLYGON' +'CATALOG_NAME' +'CHARSET' +'COLLATION' +'ENGINE_ATTRIBUTE' +'FORMAT' +'GET_FORMAT' +'INTERSECT' +'RANDOM' +'REVERSE' +'ROW_COUNT' +'SCHEMA_NAME' +'SECONDARY_ENGINE_ATTRIBUTE' +'SRID' +'SYSTEM' +'SYSTEM_USER' +'THREAD_PRIORITY' +'TP_CONNECTION_ADMIN' +'TYPE' +'WEIGHT_STRING' +':=' +'+=' +'-=' +'*=' +'/=' +'%=' +'&=' +'^=' +'|=' +'*' +'/' +'%' +'+' +'-' +'DIV' +'MOD' +'=' +'>' +'<' +'!' +'~' +'|' +'&' +'^' +'.' +'(' +')' +',' +';' +'@' +'0' +'1' +'2' +'3' +'\'' +'"' +'`' +':' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +SPACE +SPEC_MYSQL_COMMENT +COMMENT_INPUT +LINE_COMMENT +KW_ACTIVE +KW_ADD +KW_ALL +KW_ALTER +KW_ALWAYS +KW_ANALYZE +KW_AND +KW_ARRAY +KW_AS +KW_ASC +KW_ATTRIBUTE +KW_BEFORE +KW_BETWEEN +KW_BOTH +KW_BUCKETS +KW_BY +KW_CALL +KW_CASCADE +KW_CASE +KW_CAST +KW_CHANGE +KW_CHARACTER +KW_CHECK +KW_COLLATE +KW_COLUMN +KW_CONDITION +KW_CONSTRAINT +KW_CONTINUE +KW_CONVERT +KW_CREATE +KW_CROSS +KW_CURRENT +KW_CURRENT_USER +KW_CURSOR +KW_DATABASE +KW_DATABASES +KW_DECLARE +KW_DEFAULT +KW_DELAYED +KW_DELETE +KW_DESC +KW_DESCRIBE +KW_DETERMINISTIC +KW_DIAGNOSTICS +KW_DISTINCT +KW_DISTINCTROW +KW_DROP +KW_EACH +KW_ELSE +KW_ELSEIF +KW_EMPTY +KW_ENCLOSED +KW_ENFORCED +KW_ESCAPED +KW_EXCEPT +KW_EXISTS +KW_EXIT +KW_EXPLAIN +KW_FALSE +KW_FETCH +KW_FOR +KW_FORCE +KW_FOREIGN +KW_FROM +KW_FULLTEXT +KW_GENERATE +KW_GENERATED +KW_GET +KW_GRANT +KW_GROUP +KW_HAVING +KW_HIGH_PRIORITY +KW_HISTOGRAM +KW_IF +KW_IGNORE +KW_IN +KW_INACTIVE +KW_INDEX +KW_INFILE +KW_INNER +KW_INOUT +KW_INSERT +KW_INTERVAL +KW_INTO +KW_IS +KW_ITERATE +KW_JOIN +KW_KEY +KW_KEYS +KW_KILL +KW_LATERAL +KW_LEADING +KW_LEAVE +KW_LEFT +KW_LIKE +KW_LIMIT +KW_LINEAR +KW_LINES +KW_LOAD +KW_LOCK +KW_LOCKED +KW_LOOP +KW_LOW_PRIORITY +KW_MASTER_BIND +KW_MASTER_SSL_VERIFY_SERVER_CERT +KW_MATCH +KW_MAXVALUE +KW_MODIFIES +KW_NATURAL +KW_NOT +KW_NO_WRITE_TO_BINLOG +KW_NULL_LITERAL +KW_NUMBER +KW_STREAM +KW_ON +KW_OPTIMIZE +KW_OPTION +KW_OPTIONAL +KW_OPTIONALLY +KW_OR +KW_ORDER +KW_OUT +KW_OUTER +KW_OUTFILE +KW_OVER +KW_PARTITION +KW_PRIMARY +KW_PROCEDURE +KW_PURGE +KW_RANGE +KW_READ +KW_READS +KW_REFERENCE +KW_REFERENCES +KW_REGEXP +KW_RELEASE +KW_RENAME +KW_REPEAT +KW_REPLACE +KW_REQUIRE +KW_RESIGNAL +KW_RESTRICT +KW_RETAIN +KW_RETURN +KW_REVOKE +KW_RIGHT +KW_RLIKE +KW_SCHEMA +KW_SCHEMAS +KW_SELECT +KW_SET +KW_SEPARATOR +KW_SHOW +KW_SIGNAL +KW_SKIP +KW_SKIP_QUERY_REWRITE +KW_SPATIAL +KW_SQL +KW_SQLEXCEPTION +KW_SQLSTATE +KW_SQLWARNING +KW_SQL_BIG_RESULT +KW_SQL_CALC_FOUND_ROWS +KW_SQL_SMALL_RESULT +KW_SSL +KW_STACKED +KW_STARTING +KW_STRAIGHT_JOIN +KW_TABLE +KW_TERMINATED +KW_THEN +KW_TO +KW_TRAILING +KW_TRIGGER +KW_TRUE +KW_UNDO +KW_UNION +KW_UNIQUE +KW_UNLOCK +KW_UNSIGNED +KW_UPDATE +KW_USAGE +KW_USE +KW_USING +KW_VALUES +KW_VCPU +KW_WHEN +KW_WHERE +KW_WHILE +KW_WITH +KW_WRITE +KW_XOR +KW_ZEROFILL +KW_TINYINT +KW_SMALLINT +KW_MEDIUMINT +KW_MIDDLEINT +KW_INT +KW_INT1 +KW_INT2 +KW_INT3 +KW_INT4 +KW_INT8 +KW_INTEGER +KW_BIGINT +KW_REAL +KW_DOUBLE +KW_PRECISION +KW_FLOAT +KW_FLOAT4 +KW_FLOAT8 +KW_DECIMAL +KW_DEC +KW_NUMERIC +KW_DATE +KW_TIME +KW_TIMESTAMP +KW_DATETIME +KW_YEAR +KW_CHAR +KW_VARCHAR +KW_NVARCHAR +KW_NATIONAL +KW_BINARY +KW_VARBINARY +KW_TINYBLOB +KW_BLOB +KW_MEDIUMBLOB +KW_LONG +KW_LONGBLOB +KW_TINYTEXT +KW_TEXT +KW_MEDIUMTEXT +KW_LONGTEXT +KW_ENUM +KW_VARYING +KW_SERIAL +KW_YEAR_MONTH +KW_DAY_HOUR +KW_DAY_MINUTE +KW_DAY_SECOND +KW_HOUR_MINUTE +KW_HOUR_SECOND +KW_MINUTE_SECOND +KW_SECOND_MICROSECOND +KW_MINUTE_MICROSECOND +KW_HOUR_MICROSECOND +KW_DAY_MICROSECOND +KW_JSON_TABLE +KW_JSON_VALUE +KW_NESTED +KW_ORDINALITY +KW_PATH +KW_AVG +KW_BIT_AND +KW_BIT_OR +KW_BIT_XOR +KW_COUNT +KW_CUME_DIST +KW_DENSE_RANK +KW_FIRST_VALUE +KW_GROUP_CONCAT +KW_LAG +KW_LAST_VALUE +KW_LEAD +KW_MAX +KW_MIN +KW_NTILE +KW_NTH_VALUE +KW_PERCENT_RANK +KW_RANK +KW_ROW_NUMBER +KW_STD +KW_STDDEV +KW_STDDEV_POP +KW_STDDEV_SAMP +KW_SUM +KW_VAR_POP +KW_VAR_SAMP +KW_VARIANCE +KW_CURRENT_DATE +KW_CURRENT_TIME +KW_CURRENT_TIMESTAMP +KW_LOCALTIME +KW_CURDATE +KW_CURTIME +KW_DATE_ADD +KW_DATE_SUB +KW_EXTRACT +KW_LOCALTIMESTAMP +KW_NOW +KW_POSITION +KW_SUBSTR +KW_SUBSTRING +KW_SYSDATE +KW_TRIM +KW_UTC_DATE +KW_UTC_TIME +KW_UTC_TIMESTAMP +KW_ACCOUNT +KW_ACTION +KW_AFTER +KW_AGGREGATE +KW_ALGORITHM +KW_ANY +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS +KW_AT +KW_AUTHORS +KW_AUTOCOMMIT +KW_AUTOEXTEND_SIZE +KW_AUTO_INCREMENT +KW_AVG_ROW_LENGTH +KW_BEGIN +KW_BINLOG +KW_BIT +KW_BLOCK +KW_BOOL +KW_BOOLEAN +KW_BTREE +KW_CACHE +KW_CASCADED +KW_CHAIN +KW_CHANGED +KW_CHANNEL +KW_CHECKSUM +KW_CHALLENGE_RESPONSE +KW_CIPHER +KW_CLASS_ORIGIN +KW_CLIENT +KW_CLOSE +KW_COALESCE +KW_CODE +KW_COLUMNS +KW_COLUMN_FORMAT +KW_COLUMN_NAME +KW_COMMENT +KW_COMMIT +KW_COMPACT +KW_COMPLETION +KW_COMPONENT +KW_COMPRESSED +KW_COMPRESSION +KW_CONCURRENT +KW_CONNECT +KW_CONNECTION +KW_CONSISTENT +KW_CONSTRAINT_CATALOG +KW_CONSTRAINT_SCHEMA +KW_CONSTRAINT_NAME +KW_CONTAINS +KW_CONTEXT +KW_CONTRIBUTORS +KW_COPY +KW_CPU +KW_CURSOR_NAME +KW_DATA +KW_DATAFILE +KW_DEALLOCATE +KW_DEFAULT_AUTH +KW_DEFINER +KW_DELAY_KEY_WRITE +KW_DES_KEY_FILE +KW_DIRECTORY +KW_DISABLE +KW_DISCARD +KW_DISK +KW_DO +KW_DUMPFILE +KW_DUPLICATE +KW_DYNAMIC +KW_ENABLE +KW_ENCRYPTION +KW_ENCRYPTION_KEY_ID +KW_END +KW_ENDS +KW_ENGINE +KW_ENGINES +KW_ERROR +KW_ERRORS +KW_ESCAPE +KW_EVENT +KW_EVENTS +KW_EVERY +KW_EXCHANGE +KW_EXCLUSIVE +KW_EXPIRE +KW_EXPORT +KW_EXTENDED +KW_EXTENT_SIZE +KW_FACTOR +KW_FAILED_LOGIN_ATTEMPTS +KW_FAST +KW_FAULTS +KW_FIELDS +KW_FILE_BLOCK_SIZE +KW_FILTER +KW_FINISH +KW_FIRST +KW_FIXED +KW_FLUSH +KW_FOLLOWING +KW_FOLLOWS +KW_FOUND +KW_FULL +KW_FUNCTION +KW_GENERAL +KW_GET_MASTER_PUBLIC_KEY +KW_GET_SOURCE_PUBLIC_KEY +KW_GLOBAL +KW_GRANTS +KW_GROUP_REPLICATION +KW_GTID_ONLY +KW_HANDLER +KW_HASH +KW_HELP +KW_HISTORY +KW_HOST +KW_HOSTS +KW_IDENTIFIED +KW_IGNORE_SERVER_IDS +KW_IMPORT +KW_INDEXES +KW_INITIAL +KW_INITIAL_SIZE +KW_INITIATE +KW_INPLACE +KW_INSERT_METHOD +KW_INSTALL +KW_INSTANCE +KW_INSTANT +KW_INVISIBLE +KW_INVOKER +KW_IO +KW_IO_THREAD +KW_IPC +KW_ISOLATION +KW_ISSUER +KW_JSON +KW_KEY_BLOCK_SIZE +KW_LANGUAGE +KW_LAST +KW_LEAVES +KW_LESS +KW_LEVEL +KW_LIST +KW_LOCAL +KW_LOGFILE +KW_LOGS +KW_MASTER +KW_MASTER_AUTO_POSITION +KW_MASTER_COMPRESSION_ALGORITHMS +KW_MASTER_CONNECT_RETRY +KW_MASTER_DELAY +KW_MASTER_HEARTBEAT_PERIOD +KW_MASTER_HOST +KW_MASTER_LOG_FILE +KW_MASTER_LOG_POS +KW_MASTER_PASSWORD +KW_MASTER_PORT +KW_MASTER_PUBLIC_KEY_PATH +KW_MASTER_RETRY_COUNT +KW_MASTER_SSL +KW_MASTER_SSL_CA +KW_MASTER_SSL_CAPATH +KW_MASTER_SSL_CERT +KW_MASTER_SSL_CIPHER +KW_MASTER_SSL_CRL +KW_MASTER_SSL_CRLPATH +KW_MASTER_SSL_KEY +KW_MASTER_TLS_CIPHERSUITES +KW_MASTER_TLS_VERSION +KW_MASTER_USER +KW_MASTER_ZSTD_COMPRESSION_LEVEL +KW_MAX_CONNECTIONS_PER_HOUR +KW_MAX_QUERIES_PER_HOUR +KW_MAX_ROWS +KW_MAX_SIZE +KW_MAX_UPDATES_PER_HOUR +KW_MAX_USER_CONNECTIONS +KW_MEDIUM +KW_MEMBER +KW_MERGE +KW_MESSAGE_TEXT +KW_MID +KW_MIGRATE +KW_MIN_ROWS +KW_MODE +KW_MODIFY +KW_MUTEX +KW_MYSQL +KW_MYSQL_ERRNO +KW_NAME +KW_NAMES +KW_NCHAR +KW_NETWORK_NAMESPACE +KW_NEVER +KW_NEXT +KW_NO +KW_NOWAIT +KW_NODEGROUP +KW_NONE +KW_ODBC +KW_OFF +KW_OFFLINE +KW_OFFSET +KW_OF +KW_OLD +KW_OLD_PASSWORD +KW_ONE +KW_ONLINE +KW_ONLY +KW_OPEN +KW_OPTIMIZER_COSTS +KW_OPTIONS +KW_OWNER +KW_PACK_KEYS +KW_PAGE +KW_PAGE_CHECKSUM +KW_PAGE_COMPRESSED +KW_PAGE_COMPRESSION_LEVEL +KW_PARSER +KW_PARTIAL +KW_PARTITIONING +KW_PARTITIONS +KW_PASSWORD +KW_PASSWORD_LOCK_TIME +KW_PERSIST +KW_PERSIST_ONLY +KW_PHASE +KW_PLUGIN +KW_PLUGIN_DIR +KW_PLUGINS +KW_PORT +KW_PRECEDES +KW_PRECEDING +KW_PREPARE +KW_PRESERVE +KW_PREV +KW_PRIVILEGE_CHECKS_USER +KW_PROCESSLIST +KW_PROFILE +KW_PROFILES +KW_PROXY +KW_QUERY +KW_QUICK +KW_REBUILD +KW_RECOVER +KW_RECURSIVE +KW_REDO_BUFFER_SIZE +KW_REDUNDANT +KW_REGISTRATION +KW_RELAY +KW_RELAY_LOG_FILE +KW_RELAY_LOG_POS +KW_RELAYLOG +KW_REMOVE +KW_REORGANIZE +KW_REPAIR +KW_REPLICA +KW_REPLICAS +KW_REPLICATE_DO_DB +KW_REPLICATE_DO_TABLE +KW_REPLICATE_IGNORE_DB +KW_REPLICATE_IGNORE_TABLE +KW_REPLICATE_REWRITE_DB +KW_REPLICATE_WILD_DO_TABLE +KW_REPLICATE_WILD_IGNORE_TABLE +KW_REPLICATION +KW_REQUIRE_ROW_FORMAT +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK +KW_RESET +KW_RESTART +KW_RESUME +KW_RETURNED_SQLSTATE +KW_RETURNING +KW_RETURNS +KW_REUSE +KW_ROLE +KW_ROLLBACK +KW_ROLLUP +KW_ROTATE +KW_ROW +KW_ROWS +KW_ROW_FORMAT +KW_SAVEPOINT +KW_SCHEDULE +KW_SECURITY +KW_SERVER +KW_SESSION +KW_SHARE +KW_SHARED +KW_SIGNED +KW_SIMPLE +KW_SLAVE +KW_SLOW +KW_SNAPSHOT +KW_SOCKET +KW_SOME +KW_SONAME +KW_SOUNDS +KW_SOURCE +KW_SOURCE_BIND +KW_SOURCE_HOST +KW_SOURCE_USER +KW_SOURCE_PASSWORD +KW_SOURCE_PORT +KW_SOURCE_LOG_FILE +KW_SOURCE_LOG_POS +KW_SOURCE_AUTO_POSITION +KW_SOURCE_HEARTBEAT_PERIOD +KW_SOURCE_CONNECT_RETRY +KW_SOURCE_RETRY_COUNT +KW_SOURCE_CONNECTION_AUTO_FAILOVER +KW_SOURCE_DELAY +KW_SOURCE_COMPRESSION_ALGORITHMS +KW_SOURCE_ZSTD_COMPRESSION_LEVEL +KW_SOURCE_SSL +KW_SOURCE_SSL_CA +KW_SOURCE_SSL_CAPATH +KW_SOURCE_SSL_CERT +KW_SOURCE_SSL_CRL +KW_SOURCE_SSL_CRLPATH +KW_SOURCE_SSL_KEY +KW_SOURCE_SSL_CIPHER +KW_SOURCE_SSL_VERIFY_SERVER_CERT +KW_SOURCE_TLS_VERSION +KW_SOURCE_TLS_CIPHERSUITES +KW_SOURCE_PUBLIC_KEY_PATH +KW_SQL_AFTER_GTIDS +KW_SQL_AFTER_MTS_GAPS +KW_SQL_BEFORE_GTIDS +KW_SQL_BUFFER_RESULT +KW_SQL_CACHE +KW_SQL_NO_CACHE +KW_SQL_THREAD +KW_START +KW_STARTS +KW_STATS_AUTO_RECALC +KW_STATS_PERSISTENT +KW_STATS_SAMPLE_PAGES +KW_STATUS +KW_STOP +KW_STORAGE +KW_STORED +KW_STRING +KW_SUBCLASS_ORIGIN +KW_SUBJECT +KW_SUBPARTITION +KW_SUBPARTITIONS +KW_SUSPEND +KW_SWAPS +KW_SWITCHES +KW_TABLE_NAME +KW_TABLESPACE +KW_TABLE_TYPE +KW_TEMPORARY +KW_TEMPTABLE +KW_THAN +KW_TRADITIONAL +KW_TRANSACTION +KW_TRANSACTIONAL +KW_TREE +KW_TRIGGERS +KW_TRUNCATE +KW_UNBOUNDED +KW_UNDEFINED +KW_UNDOFILE +KW_UNDO_BUFFER_SIZE +KW_UNINSTALL +KW_UNKNOWN +KW_UNREGISTER +KW_UNTIL +KW_UPGRADE +KW_USER +KW_USE_FRM +KW_USER_RESOURCES +KW_VALIDATION +KW_VALUE +KW_VARIABLES +KW_VIEW +KW_VIRTUAL +KW_VISIBLE +KW_WAIT +KW_WARNINGS +KW_WINDOW +KW_WITHOUT +KW_WORK +KW_WRAPPER +KW_X509 +KW_XA +KW_XML +KW_QUARTER +KW_MONTH +KW_DAY +KW_HOUR +KW_MINUTE +KW_WEEK +KW_SECOND +KW_MICROSECOND +KW_ADMIN +KW_APPLICATION_PASSWORD_ADMIN +KW_AUDIT_ABORT_EXEMPT +KW_AUDIT_ADMIN +KW_AUTHENTICATION +KW_AUTHENTICATION_POLICY_ADMIN +KW_BACKUP_ADMIN +KW_BINLOG_ADMIN +KW_BINLOG_ENCRYPTION_ADMIN +KW_CLONE +KW_CLONE_ADMIN +KW_CONNECTION_ADMIN +KW_ENCRYPTION_KEY_ADMIN +KW_EXECUTE +KW_FILE +KW_FIREWALL_ADMIN +KW_FIREWALL_EXEMPT +KW_FIREWALL_USER +KW_FLUSH_OPTIMIZER_COSTS +KW_FLUSH_STATUS +KW_FLUSH_TABLES +KW_FLUSH_USER_RESOURCES +KW_GROUP_REPLICATION_ADMIN +KW_INNODB_REDO_LOG_ARCHIVE +KW_INNODB_REDO_LOG_ENABLE +KW_INVOKE +KW_LAMBDA +KW_NDB_STORED_USER +KW_PASSWORDLESS_USER_ADMIN +KW_PERSIST_RO_VARIABLES_ADMIN +KW_PRIVILEGES +KW_PROCESS +KW_RELOAD +KW_REPLICATION_APPLIER +KW_REPLICATION_SLAVE_ADMIN +KW_RESOURCE +KW_RESOURCE_GROUP_ADMIN +KW_RESOURCE_GROUP_USER +KW_ROLE_ADMIN +KW_ROUTINE +KW_S3 +KW_SERVICE_CONNECTION_ADMIN +KW_SESSION_VARIABLES_ADMIN +KW_SET_USER_ID +KW_SHOW_ROUTINE +KW_SHUTDOWN +KW_SUPER +KW_SYSTEM_VARIABLES_ADMIN +KW_TABLES +KW_TABLE_ENCRYPTION_ADMIN +KW_VERSION_TOKEN_ADMIN +KW_XA_RECOVER_ADMIN +KW_ARMSCII8 +KW_ASCII +KW_BIG5 +KW_CP1250 +KW_CP1251 +KW_CP1256 +KW_CP1257 +KW_CP850 +KW_CP852 +KW_CP866 +KW_CP932 +KW_DEC8 +KW_EUCJPMS +KW_EUCKR +KW_GB18030 +KW_GB2312 +KW_GBK +KW_GEOSTD8 +KW_GREEK +KW_HEBREW +KW_HP8 +KW_KEYBCS2 +KW_KOI8R +KW_KOI8U +KW_LATIN1 +KW_LATIN2 +KW_LATIN5 +KW_LATIN7 +KW_MACCE +KW_MACROMAN +KW_SJIS +KW_SWE7 +KW_TIS620 +KW_UCS2 +KW_UJIS +KW_UTF16 +KW_UTF16LE +KW_UTF32 +KW_UTF8 +KW_UTF8MB3 +KW_UTF8MB4 +KW_ARCHIVE +KW_BLACKHOLE +KW_CSV +KW_FEDERATED +KW_INNODB +KW_MEMORY +KW_MRG_MYISAM +KW_MYISAM +KW_NDB +KW_NDBCLUSTER +KW_PERFORMANCE_SCHEMA +KW_TOKUDB +KW_REPEATABLE +KW_COMMITTED +KW_UNCOMMITTED +KW_SERIALIZABLE +KW_GEOMETRYCOLLECTION +KW_GEOMCOLLECTION +KW_GEOMETRY +KW_LINESTRING +KW_MULTILINESTRING +KW_MULTIPOINT +KW_MULTIPOLYGON +KW_POINT +KW_POLYGON +KW_CATALOG_NAME +KW_CHARSET +KW_COLLATION +KW_ENGINE_ATTRIBUTE +KW_FORMAT +KW_GET_FORMAT +KW_INTERSECT +KW_RANDOM +KW_REVERSE +KW_ROW_COUNT +KW_SCHEMA_NAME +KW_SECONDARY_ENGINE_ATTRIBUTE +KW_SRID +KW_SYSTEM +KW_SYSTEM_USER +KW_THREAD_PRIORITY +KW_TP_CONNECTION_ADMIN +KW_TYPE +KW_WEIGHT_STRING +VAR_ASSIGN +PLUS_ASSIGN +MINUS_ASSIGN +MULT_ASSIGN +DIV_ASSIGN +MOD_ASSIGN +AND_ASSIGN +XOR_ASSIGN +OR_ASSIGN +STAR +DIVIDE +MODULE +PLUS +MINUS +DIV +MOD +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LR_BRACKET +RR_BRACKET +COMMA +SEMI +AT_SIGN +ZERO_DECIMAL +ONE_DECIMAL +TWO_DECIMAL +THREE_DECIMAL +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +CHARSET_REVERSE_QOUTE_STRING +FILESIZE_LITERAL +START_NATIONAL_STRING_LITERAL +STRING_LITERAL +DECIMAL_LITERAL +HEXADECIMAL_LITERAL +REAL_LITERAL +NULL_SPEC_LITERAL +BIT_STRING +STRING_CHARSET_NAME +DOT_ID +ID +REVERSE_QUOTE_ID +HOST_IP_ADDRESS +LOCAL_ID +GLOBAL_ID +PERSIST_ID +ERROR_RECONGNIGION + +rule names: +program +sqlStatements +sqlStatement +emptyStatement_ +ddlStatement +dmlStatement +transactionStatement +replicationStatement +preparedStatement +compoundStatement +administrationStatement +utilityStatement +createDatabase +createEvent +createIndex +createLogfileGroup +createProcedure +createRole +createServer +createTable +createTablespaceInnodb +createTablespaceNdb +createTrigger +withClause +commonTableExpressions +createView +createDatabaseOption +charSet +currentUserExpression +ownerStatement +scheduleExpression +timestampValue +intervalExpr +intervalType +enableType +indexType +indexOption +procedureParameter +routineOption +serverOption +createDefinitions +createDefinition +checkConstraintDefinition +constraintSymbol +columnDefinition +columnConstraint +referenceDefinition +referenceAction +referenceControlType +tableOption +tableType +tablespaceStorage +partitionDefinitions +partitionFunctionDefinition +subpartitionFunctionDefinition +partitionDefinition +partitionDefinerAtom +partitionDefinerVector +subpartitionDefinition +partitionOption +alterDatabase +alterEvent +alterFunction +alterInstance +alterLogfileGroup +alterProcedure +alterServer +alterTable +alterTablespace +alterView +alterOption +alterPartitionSpecification +dropDatabase +dropEvent +dropIndex +dropLogfileGroup +dropProcedure +dropFunction +dropServer +dropSpatial +dropTable +dropTablespace +dropTrigger +dropView +dropRole +setRole +renameTable +renameTableClause +truncateTable +callStatement +deleteStatement +doStatement +handlerStatement +insertStatement +asRowAlias +selectOrTableOrValues +interSectStatement +interSectQuery +loadDataStatement +loadXmlStatement +parenthesizedQuery +replaceStatement +selectStatement +setOperations +queryExpressionBody +queryItem +queryPrimary +updateStatement +valuesStatement +parenthesizedQueryExpression +queryBlock +replaceStatementValuesOrSelectOrTable +rowValuesList +setAssignmentList +updatedElement +assignmentField +lockClause +singleDeleteStatement +multipleDeleteStatement +handlerOpenStatement +handlerReadIndexStatement +handlerReadStatement +handlerCloseStatement +importTableStatement +singleUpdateStatement +multipleUpdateStatement +orderByClause +orderByExpression +tableSources +tableSource +tableSourceItem +fullColumnNames +indexHint +indexHintType +joinPart +joinSpec +queryExpression +queryExpressionNointo +querySpecification +querySpecificationNointo +unionParenthesis +unionStatement +lateralStatement +jsonTable +jsonColumnList +jsonColumn +jsonOnEmpty +jsonOnError +selectSpec +selectElements +selectElement +intoClause +selectFieldsInto +selectLinesInto +fromClause +groupByClause +havingClause +windowClause +groupByItem +limitClause +limitClauseAtom +startTransaction +beginWork +commitWork +rollbackWork +savepointStatement +rollbackStatement +releaseStatement +lockTables +unlockTables +setAutocommitStatement +setTransactionStatement +transactionMode +lockTableElement +lockAction +transactionOption +transactionLevel +changeMaster +changeReplicationFilter +changeReplicationSource +purgeBinaryLogs +startSlaveOrReplica +stopSlaveOrReplica +startGroupReplication +stopGroupReplication +masterOption +stringMasterOption +decimalMasterOption +boolMasterOption +v8NewMasterOption +replicationSourceOption +stringSourceOption +decimalSourceOption +boolSourceOption +otherSourceOption +channelOption +replicationFilter +tablePair +threadType +untilOption +connectionOptions +gtuidSet +xaStartTransaction +xaEndTransaction +xaPrepareStatement +xaCommitWork +xaRollbackWork +xaRecoverWork +prepareStatement +executeStatement +deallocatePrepare +routineBody +blockStatement +caseStatement +ifStatement +iterateStatement +leaveStatement +loopStatement +repeatStatement +returnStatement +whileStatement +cursorStatement +declareVariable +declareCondition +declareCursor +declareHandler +handlerConditionValue +procedureSqlStatement +caseAlternative +elifAlternative +alterUser +createUser +dropUser +grantStatement +roleOption +grantProxy +alterResourceGroup +createResourceGroup +dropResourceGroup +setResourceGroup +resourceGroupVcpuSpec +renameUser +revokeStatement +ignoreUnknownUser +privilegeObjectType +setPasswordStatement +userSpecification +alterUserAuthOption +createUserAuthOption +createUserInitialAuthOption +userAuthOption +authOptionClause +authenticationRule +tlsOption +userResourceOption +userPasswordOption +userLockOption +factorAuthOption +registrationOption +factor +privelegeClause +privilege +privilegeLevel +renameUserClause +analyzeTable +checkTable +checksumTable +optimizeTable +repairTable +tableActionOption +checkTableOption +createFunction +installComponent +variableExpr +uninstallComponent +installPlugin +uninstallPlugin +cloneStatement +setStatement +showStatement +variableClause +showCommonEntity +showFilter +showGlobalInfoClause +showSchemaEntity +showProfileType +binlogStatement +cacheIndexStatement +flushStatement +killStatement +loadIndexIntoCache +resetStatement +resetOption +resetPersist +resetAllChannel +reStartStatement +shutdownStatement +tableIndex +flushOption +flushTableOption +loadedTableIndexes +simpleDescribeStatement +fullDescribeStatement +analyzeDescribeStatement +helpStatement +useStatement +signalStatement +resignalStatement +signalConditionInformation +withStatement +tableStatement +diagnosticsStatement +diagnosticsConditionInformationName +describeObjectClause +databaseNameCreate +databaseName +functionNameCreate +functionName +viewNameCreate +viewName +indexNameCreate +indexNames +indexName +groupNameCreate +groupName +tableNameCreate +tableNames +tableName +userOrRoleNames +userOrRoleName +columnNameCreate +columnNames +columnName +tablespaceNameCreate +tablespaceName +partitionNameCreate +partitionNames +partitionName +indexColumnName +userHostPort +userAtHost +simpleUserName +hostName +userName +mysqlVariable +charsetName +collationName +engineName +engineNameBase +uuidSet +xid +xuidStringId +fullId +uidList +uid +simpleId +dottedId +decimalLiteral +fileSizeLiteral +stringLiteral +booleanLiteral +hexadecimalLiteral +nullNotnull +constant +dataType +collectionOptions +convertedDataType +lengthOneDimension +lengthTwoDimension +lengthTwoOptionalDimension +indexColumnNames +expressions +valuesOrValueList +expressionsWithDefaults +expressionOrDefault +constants +simpleStrings +userVariables +defaultValue +currentTimestamp +ifExists +ifNotExists +orReplace +functionCall +specificFunction +caseFuncAlternative +levelsInWeightString +levelInWeightListElement +aggregateWindowedFunction +nonAggregateWindowedFunction +overClause +windowSpec +windowName +frameClause +frameUnits +frameExtent +frameBetween +frameRange +partitionClause +scalarFunctionName +passwordFunctionClause +functionArgs +functionArg +expression +predicate +expressionAtom +unaryOperator +comparisonOperator +comparisonBase +logicalOperator +bitOperator +mathOperator +jsonOperator +charsetNameBase +transactionLevelBase +privilegesBase +intervalTypeBase +dataTypeBase +keywordsCanBeId +functionNameBase + + +atn: +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 898, 8111, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 4, 318, 9, 318, 4, 319, 9, 319, 4, 320, 9, 320, 4, 321, 9, 321, 4, 322, 9, 322, 4, 323, 9, 323, 4, 324, 9, 324, 4, 325, 9, 325, 4, 326, 9, 326, 4, 327, 9, 327, 4, 328, 9, 328, 4, 329, 9, 329, 4, 330, 9, 330, 4, 331, 9, 331, 4, 332, 9, 332, 4, 333, 9, 333, 4, 334, 9, 334, 4, 335, 9, 335, 4, 336, 9, 336, 4, 337, 9, 337, 4, 338, 9, 338, 4, 339, 9, 339, 4, 340, 9, 340, 4, 341, 9, 341, 4, 342, 9, 342, 4, 343, 9, 343, 4, 344, 9, 344, 4, 345, 9, 345, 4, 346, 9, 346, 4, 347, 9, 347, 4, 348, 9, 348, 4, 349, 9, 349, 4, 350, 9, 350, 4, 351, 9, 351, 4, 352, 9, 352, 4, 353, 9, 353, 4, 354, 9, 354, 4, 355, 9, 355, 4, 356, 9, 356, 4, 357, 9, 357, 4, 358, 9, 358, 4, 359, 9, 359, 4, 360, 9, 360, 4, 361, 9, 361, 4, 362, 9, 362, 4, 363, 9, 363, 4, 364, 9, 364, 4, 365, 9, 365, 4, 366, 9, 366, 4, 367, 9, 367, 4, 368, 9, 368, 4, 369, 9, 369, 4, 370, 9, 370, 4, 371, 9, 371, 4, 372, 9, 372, 4, 373, 9, 373, 4, 374, 9, 374, 4, 375, 9, 375, 4, 376, 9, 376, 4, 377, 9, 377, 4, 378, 9, 378, 4, 379, 9, 379, 4, 380, 9, 380, 4, 381, 9, 381, 4, 382, 9, 382, 4, 383, 9, 383, 4, 384, 9, 384, 4, 385, 9, 385, 4, 386, 9, 386, 4, 387, 9, 387, 4, 388, 9, 388, 4, 389, 9, 389, 4, 390, 9, 390, 4, 391, 9, 391, 4, 392, 9, 392, 4, 393, 9, 393, 4, 394, 9, 394, 4, 395, 9, 395, 4, 396, 9, 396, 4, 397, 9, 397, 4, 398, 9, 398, 4, 399, 9, 399, 4, 400, 9, 400, 4, 401, 9, 401, 4, 402, 9, 402, 4, 403, 9, 403, 4, 404, 9, 404, 4, 405, 9, 405, 4, 406, 9, 406, 4, 407, 9, 407, 4, 408, 9, 408, 4, 409, 9, 409, 4, 410, 9, 410, 4, 411, 9, 411, 4, 412, 9, 412, 4, 413, 9, 413, 4, 414, 9, 414, 4, 415, 9, 415, 4, 416, 9, 416, 4, 417, 9, 417, 4, 418, 9, 418, 4, 419, 9, 419, 4, 420, 9, 420, 4, 421, 9, 421, 3, 2, 5, 2, 844, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 7, 3, 850, 10, 3, 12, 3, 14, 3, 853, 11, 3, 3, 3, 3, 3, 5, 3, 857, 10, 3, 3, 3, 5, 3, 860, 10, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 869, 10, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 912, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 931, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 942, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 958, 10, 9, 3, 10, 3, 10, 3, 10, 5, 10, 963, 10, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 975, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 1010, 10, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 1020, 10, 13, 3, 14, 3, 14, 3, 14, 5, 14, 1025, 10, 14, 3, 14, 3, 14, 7, 14, 1029, 10, 14, 12, 14, 14, 14, 1032, 11, 14, 3, 15, 3, 15, 5, 15, 1036, 10, 15, 3, 15, 3, 15, 5, 15, 1040, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 1049, 10, 15, 3, 15, 5, 15, 1052, 10, 15, 3, 15, 5, 15, 1055, 10, 15, 3, 15, 3, 15, 5, 15, 1059, 10, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 5, 16, 1066, 10, 16, 3, 16, 5, 16, 1069, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 1074, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 1080, 10, 16, 12, 16, 14, 16, 1083, 11, 16, 3, 16, 3, 16, 5, 16, 1087, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 1092, 10, 16, 3, 16, 7, 16, 1095, 10, 16, 12, 16, 14, 16, 1098, 11, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 1109, 10, 17, 3, 17, 5, 17, 1112, 10, 17, 3, 17, 3, 17, 5, 17, 1116, 10, 17, 3, 17, 5, 17, 1119, 10, 17, 3, 17, 3, 17, 5, 17, 1123, 10, 17, 3, 17, 5, 17, 1126, 10, 17, 3, 17, 3, 17, 5, 17, 1130, 10, 17, 3, 17, 5, 17, 1133, 10, 17, 3, 17, 5, 17, 1136, 10, 17, 3, 17, 3, 17, 5, 17, 1140, 10, 17, 3, 17, 5, 17, 1143, 10, 17, 3, 17, 3, 17, 5, 17, 1147, 10, 17, 3, 17, 3, 17, 3, 18, 3, 18, 5, 18, 1153, 10, 18, 3, 18, 3, 18, 5, 18, 1157, 10, 18, 3, 18, 3, 18, 3, 18, 5, 18, 1162, 10, 18, 3, 18, 3, 18, 7, 18, 1166, 10, 18, 12, 18, 14, 18, 1169, 11, 18, 3, 18, 3, 18, 7, 18, 1173, 10, 18, 12, 18, 14, 18, 1176, 11, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 5, 19, 1183, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 1199, 10, 20, 12, 20, 14, 20, 1202, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 5, 21, 1208, 10, 21, 3, 21, 3, 21, 5, 21, 1212, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 1218, 10, 21, 3, 21, 7, 21, 1221, 10, 21, 12, 21, 14, 21, 1224, 11, 21, 5, 21, 1226, 10, 21, 3, 21, 5, 21, 1229, 10, 21, 3, 21, 3, 21, 5, 21, 1233, 10, 21, 3, 21, 3, 21, 5, 21, 1237, 10, 21, 3, 21, 3, 21, 5, 21, 1241, 10, 21, 3, 21, 3, 21, 5, 21, 1245, 10, 21, 3, 21, 7, 21, 1248, 10, 21, 12, 21, 14, 21, 1251, 11, 21, 5, 21, 1253, 10, 21, 3, 21, 5, 21, 1256, 10, 21, 3, 21, 5, 21, 1259, 10, 21, 3, 21, 5, 21, 1262, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 1268, 10, 21, 3, 21, 3, 21, 5, 21, 1272, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 1282, 10, 21, 5, 21, 1284, 10, 21, 3, 22, 3, 22, 5, 22, 1288, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1295, 10, 22, 3, 22, 3, 22, 5, 22, 1299, 10, 22, 3, 22, 5, 22, 1302, 10, 22, 3, 22, 3, 22, 3, 22, 5, 22, 1307, 10, 22, 3, 22, 3, 22, 5, 22, 1311, 10, 22, 3, 22, 5, 22, 1314, 10, 22, 3, 22, 3, 22, 5, 22, 1318, 10, 22, 3, 22, 5, 22, 1321, 10, 22, 3, 23, 3, 23, 5, 23, 1325, 10, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 1338, 10, 23, 3, 23, 5, 23, 1341, 10, 23, 3, 23, 3, 23, 5, 23, 1345, 10, 23, 3, 23, 5, 23, 1348, 10, 23, 3, 23, 3, 23, 5, 23, 1352, 10, 23, 3, 23, 5, 23, 1355, 10, 23, 3, 23, 3, 23, 5, 23, 1359, 10, 23, 3, 23, 5, 23, 1362, 10, 23, 3, 23, 3, 23, 5, 23, 1366, 10, 23, 3, 23, 5, 23, 1369, 10, 23, 3, 23, 5, 23, 1372, 10, 23, 3, 23, 3, 23, 5, 23, 1376, 10, 23, 3, 23, 5, 23, 1379, 10, 23, 3, 23, 3, 23, 5, 23, 1383, 10, 23, 3, 23, 3, 23, 3, 24, 3, 24, 5, 24, 1389, 10, 24, 3, 24, 3, 24, 5, 24, 1393, 10, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 5, 24, 1405, 10, 24, 3, 24, 3, 24, 3, 25, 3, 25, 5, 25, 1411, 10, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 1420, 10, 26, 12, 26, 14, 26, 1423, 11, 26, 3, 26, 3, 26, 5, 26, 1427, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 1435, 10, 26, 3, 27, 3, 27, 5, 27, 1439, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1444, 10, 27, 3, 27, 5, 27, 1447, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1452, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1460, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1465, 10, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1471, 10, 27, 3, 27, 3, 27, 3, 27, 5, 27, 1476, 10, 27, 3, 27, 3, 27, 5, 27, 1480, 10, 27, 5, 27, 1482, 10, 27, 3, 28, 5, 28, 1485, 10, 28, 3, 28, 3, 28, 5, 28, 1489, 10, 28, 3, 28, 3, 28, 5, 28, 1493, 10, 28, 3, 28, 5, 28, 1496, 10, 28, 3, 28, 3, 28, 5, 28, 1500, 10, 28, 3, 28, 3, 28, 5, 28, 1504, 10, 28, 3, 28, 3, 28, 5, 28, 1508, 10, 28, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 1514, 10, 28, 3, 28, 5, 28, 1517, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 1524, 10, 29, 3, 30, 3, 30, 3, 30, 5, 30, 1529, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 1535, 10, 31, 3, 32, 3, 32, 3, 32, 7, 32, 1540, 10, 32, 12, 32, 14, 32, 1543, 11, 32, 3, 32, 3, 32, 3, 32, 5, 32, 1548, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 1554, 10, 32, 12, 32, 14, 32, 1557, 11, 32, 5, 32, 1559, 10, 32, 3, 32, 3, 32, 3, 32, 7, 32, 1564, 10, 32, 12, 32, 14, 32, 1567, 11, 32, 5, 32, 1569, 10, 32, 5, 32, 1571, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 1577, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 1583, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 1600, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 1607, 10, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 5, 38, 1614, 10, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 5, 38, 1626, 10, 38, 3, 38, 3, 38, 3, 38, 5, 38, 1631, 10, 38, 3, 38, 5, 38, 1634, 10, 38, 3, 39, 5, 39, 1637, 10, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 1647, 10, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 1660, 10, 40, 3, 40, 3, 40, 3, 40, 5, 40, 1665, 10, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 1681, 10, 41, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 1687, 10, 42, 12, 42, 14, 42, 1690, 11, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1699, 10, 43, 3, 43, 5, 43, 1702, 10, 43, 3, 43, 3, 43, 7, 43, 1706, 10, 43, 12, 43, 14, 43, 1709, 11, 43, 3, 43, 3, 43, 5, 43, 1713, 10, 43, 3, 43, 5, 43, 1716, 10, 43, 3, 43, 3, 43, 7, 43, 1720, 10, 43, 12, 43, 14, 43, 1723, 11, 43, 3, 43, 5, 43, 1726, 10, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1731, 10, 43, 3, 43, 3, 43, 7, 43, 1735, 10, 43, 12, 43, 14, 43, 1738, 11, 43, 3, 43, 5, 43, 1741, 10, 43, 3, 43, 3, 43, 5, 43, 1745, 10, 43, 3, 43, 5, 43, 1748, 10, 43, 3, 43, 5, 43, 1751, 10, 43, 3, 43, 3, 43, 7, 43, 1755, 10, 43, 12, 43, 14, 43, 1758, 11, 43, 3, 43, 5, 43, 1761, 10, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1766, 10, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1777, 10, 43, 3, 44, 5, 44, 1780, 10, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 5, 44, 1787, 10, 44, 3, 44, 5, 44, 1790, 10, 44, 3, 45, 3, 45, 5, 45, 1794, 10, 45, 3, 46, 3, 46, 7, 46, 1798, 10, 46, 12, 46, 14, 46, 1801, 11, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1812, 10, 47, 3, 47, 5, 47, 1815, 10, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1820, 10, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1833, 10, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1840, 10, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 1846, 10, 47, 3, 48, 3, 48, 3, 48, 5, 48, 1851, 10, 48, 3, 48, 3, 48, 5, 48, 1855, 10, 48, 3, 48, 5, 48, 1858, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1866, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 1874, 10, 49, 5, 49, 1876, 10, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1886, 10, 50, 3, 51, 3, 51, 5, 51, 1890, 10, 51, 3, 51, 5, 51, 1893, 10, 51, 3, 51, 3, 51, 5, 51, 1897, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1902, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1907, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1912, 10, 51, 3, 51, 3, 51, 5, 51, 1916, 10, 51, 3, 51, 3, 51, 5, 51, 1920, 10, 51, 3, 51, 3, 51, 5, 51, 1924, 10, 51, 3, 51, 3, 51, 5, 51, 1928, 10, 51, 3, 51, 3, 51, 5, 51, 1932, 10, 51, 3, 51, 3, 51, 5, 51, 1936, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1941, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1946, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1951, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1957, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1962, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1967, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1972, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1977, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1982, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1988, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1993, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1998, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2003, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2008, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2013, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2018, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2023, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2030, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2035, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2040, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2045, 10, 51, 3, 51, 3, 51, 5, 51, 2049, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2054, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2062, 10, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2067, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 2073, 10, 51, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 2085, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 2092, 10, 54, 5, 54, 2094, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 2100, 10, 54, 12, 54, 14, 54, 2103, 11, 54, 3, 54, 3, 54, 5, 54, 2107, 10, 54, 3, 55, 5, 55, 2110, 10, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 2118, 10, 55, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 2124, 10, 55, 3, 55, 3, 55, 5, 55, 2128, 10, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 2141, 10, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 2153, 10, 55, 5, 55, 2155, 10, 55, 3, 56, 5, 56, 2158, 10, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 5, 56, 2166, 10, 56, 3, 56, 3, 56, 3, 56, 3, 56, 5, 56, 2172, 10, 56, 3, 56, 3, 56, 3, 56, 3, 56, 5, 56, 2178, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2189, 10, 57, 12, 57, 14, 57, 2192, 11, 57, 3, 57, 3, 57, 7, 57, 2196, 10, 57, 12, 57, 14, 57, 2199, 11, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2205, 10, 57, 12, 57, 14, 57, 2208, 11, 57, 3, 57, 3, 57, 5, 57, 2212, 10, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2221, 10, 57, 12, 57, 14, 57, 2224, 11, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2230, 10, 57, 12, 57, 14, 57, 2233, 11, 57, 3, 57, 3, 57, 5, 57, 2237, 10, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2247, 10, 57, 12, 57, 14, 57, 2250, 11, 57, 3, 57, 3, 57, 7, 57, 2254, 10, 57, 12, 57, 14, 57, 2257, 11, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2263, 10, 57, 12, 57, 14, 57, 2266, 11, 57, 3, 57, 3, 57, 5, 57, 2270, 10, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2280, 10, 57, 12, 57, 14, 57, 2283, 11, 57, 3, 57, 3, 57, 7, 57, 2287, 10, 57, 12, 57, 14, 57, 2290, 11, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2296, 10, 57, 12, 57, 14, 57, 2299, 11, 57, 3, 57, 3, 57, 5, 57, 2303, 10, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2308, 10, 57, 12, 57, 14, 57, 2311, 11, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 2317, 10, 57, 12, 57, 14, 57, 2320, 11, 57, 3, 57, 3, 57, 5, 57, 2324, 10, 57, 5, 57, 2326, 10, 57, 3, 58, 3, 58, 3, 58, 5, 58, 2331, 10, 58, 3, 59, 3, 59, 3, 59, 3, 59, 6, 59, 2337, 10, 59, 13, 59, 14, 59, 2338, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 7, 60, 2346, 10, 60, 12, 60, 14, 60, 2349, 11, 60, 3, 61, 5, 61, 2352, 10, 61, 3, 61, 5, 61, 2355, 10, 61, 3, 61, 3, 61, 5, 61, 2359, 10, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2364, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2370, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2376, 10, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2381, 10, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2386, 10, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2391, 10, 61, 3, 61, 3, 61, 3, 61, 5, 61, 2396, 10, 61, 3, 61, 5, 61, 2399, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 2404, 10, 62, 3, 62, 6, 62, 2407, 10, 62, 13, 62, 14, 62, 2408, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 5, 62, 2419, 10, 62, 3, 63, 3, 63, 5, 63, 2423, 10, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 2430, 10, 63, 3, 63, 3, 63, 3, 63, 5, 63, 2435, 10, 63, 3, 63, 5, 63, 2438, 10, 63, 3, 63, 3, 63, 3, 63, 5, 63, 2443, 10, 63, 3, 63, 5, 63, 2446, 10, 63, 3, 63, 3, 63, 5, 63, 2450, 10, 63, 3, 63, 3, 63, 5, 63, 2454, 10, 63, 3, 64, 3, 64, 3, 64, 3, 64, 7, 64, 2460, 10, 64, 12, 64, 14, 64, 2463, 11, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 2481, 10, 66, 3, 66, 5, 66, 2484, 10, 66, 3, 66, 5, 66, 2487, 10, 66, 3, 66, 3, 66, 5, 66, 2491, 10, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 7, 67, 2499, 10, 67, 12, 67, 14, 67, 2502, 11, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 7, 68, 2512, 10, 68, 12, 68, 14, 68, 2515, 11, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 7, 69, 2525, 10, 69, 12, 69, 14, 69, 2528, 11, 69, 5, 69, 2530, 10, 69, 3, 69, 3, 69, 7, 69, 2534, 10, 69, 12, 69, 14, 69, 2537, 11, 69, 5, 69, 2539, 10, 69, 3, 70, 3, 70, 5, 70, 2543, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 2552, 10, 70, 3, 70, 5, 70, 2555, 10, 70, 3, 70, 5, 70, 2558, 10, 70, 3, 70, 3, 70, 3, 70, 5, 70, 2563, 10, 70, 3, 70, 3, 70, 5, 70, 2567, 10, 70, 3, 70, 5, 70, 2570, 10, 70, 3, 70, 3, 70, 5, 70, 2574, 10, 70, 3, 70, 3, 70, 5, 70, 2578, 10, 70, 3, 70, 5, 70, 2581, 10, 70, 3, 70, 3, 70, 5, 70, 2585, 10, 70, 3, 70, 5, 70, 2588, 10, 70, 3, 70, 3, 70, 5, 70, 2592, 10, 70, 3, 70, 5, 70, 2595, 10, 70, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 2601, 10, 71, 3, 71, 5, 71, 2604, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 2609, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 2617, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 2623, 10, 71, 3, 71, 3, 71, 5, 71, 2627, 10, 71, 3, 72, 3, 72, 5, 72, 2631, 10, 72, 3, 72, 7, 72, 2634, 10, 72, 12, 72, 14, 72, 2637, 11, 72, 3, 72, 3, 72, 5, 72, 2641, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2648, 10, 72, 3, 72, 3, 72, 5, 72, 2652, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 7, 72, 2661, 10, 72, 12, 72, 14, 72, 2664, 11, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2671, 10, 72, 3, 72, 5, 72, 2674, 10, 72, 3, 72, 3, 72, 7, 72, 2678, 10, 72, 12, 72, 14, 72, 2681, 11, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2686, 10, 72, 3, 72, 5, 72, 2689, 10, 72, 3, 72, 3, 72, 7, 72, 2693, 10, 72, 12, 72, 14, 72, 2696, 11, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2701, 10, 72, 5, 72, 2703, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2708, 10, 72, 3, 72, 3, 72, 7, 72, 2712, 10, 72, 12, 72, 14, 72, 2715, 11, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2720, 10, 72, 5, 72, 2722, 10, 72, 3, 72, 3, 72, 5, 72, 2726, 10, 72, 3, 72, 5, 72, 2729, 10, 72, 3, 72, 5, 72, 2732, 10, 72, 3, 72, 3, 72, 7, 72, 2736, 10, 72, 12, 72, 14, 72, 2739, 11, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2744, 10, 72, 5, 72, 2746, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2751, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2758, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2767, 10, 72, 3, 72, 5, 72, 2770, 10, 72, 3, 72, 3, 72, 5, 72, 2774, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2779, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2789, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2798, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2806, 10, 72, 3, 72, 5, 72, 2809, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2817, 10, 72, 3, 72, 5, 72, 2820, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2827, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2832, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2840, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2856, 10, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2861, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2868, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2887, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 2893, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 2901, 10, 73, 12, 73, 14, 73, 2904, 11, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2915, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2922, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2929, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 2942, 10, 73, 12, 73, 14, 73, 2945, 11, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2957, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2963, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2969, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2975, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2981, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2987, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 2993, 10, 73, 3, 74, 3, 74, 3, 74, 5, 74, 2998, 10, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 5, 75, 3005, 10, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 5, 76, 3012, 10, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 3019, 10, 76, 3, 76, 3, 76, 3, 76, 5, 76, 3024, 10, 76, 3, 76, 7, 76, 3027, 10, 76, 12, 76, 14, 76, 3030, 11, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 3038, 10, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 5, 78, 3045, 10, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 5, 79, 3052, 10, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 5, 80, 3059, 10, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 5, 81, 3068, 10, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 3074, 10, 82, 3, 82, 3, 82, 5, 82, 3078, 10, 82, 3, 82, 3, 82, 5, 82, 3082, 10, 82, 3, 83, 3, 83, 5, 83, 3086, 10, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 3092, 10, 83, 3, 83, 5, 83, 3095, 10, 83, 3, 84, 3, 84, 3, 84, 5, 84, 3100, 10, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 5, 85, 3107, 10, 85, 3, 85, 3, 85, 3, 85, 7, 85, 3112, 10, 85, 12, 85, 14, 85, 3115, 11, 85, 3, 85, 5, 85, 3118, 10, 85, 3, 86, 3, 86, 3, 86, 5, 86, 3123, 10, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 3133, 10, 87, 3, 87, 3, 87, 3, 87, 3, 87, 7, 87, 3139, 10, 87, 12, 87, 14, 87, 3142, 11, 87, 3, 87, 3, 87, 3, 87, 5, 87, 3147, 10, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 7, 88, 3154, 10, 88, 12, 88, 14, 88, 3157, 11, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 5, 90, 3165, 10, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 5, 91, 3174, 10, 91, 3, 91, 5, 91, 3177, 10, 91, 3, 92, 3, 92, 5, 92, 3181, 10, 92, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 5, 94, 3190, 10, 94, 3, 95, 3, 95, 5, 95, 3194, 10, 95, 3, 95, 5, 95, 3197, 10, 95, 3, 95, 5, 95, 3200, 10, 95, 3, 95, 3, 95, 3, 95, 3, 95, 5, 95, 3206, 10, 95, 3, 95, 5, 95, 3209, 10, 95, 3, 95, 5, 95, 3212, 10, 95, 3, 95, 3, 95, 5, 95, 3216, 10, 95, 3, 95, 5, 95, 3219, 10, 95, 3, 95, 5, 95, 3222, 10, 95, 3, 95, 5, 95, 3225, 10, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 7, 95, 3234, 10, 95, 12, 95, 14, 95, 3237, 11, 95, 5, 95, 3239, 10, 95, 3, 96, 3, 96, 3, 96, 5, 96, 3244, 10, 96, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 3250, 10, 97, 3, 98, 3, 98, 3, 98, 5, 98, 3255, 10, 98, 3, 98, 6, 98, 3258, 10, 98, 13, 98, 14, 98, 3259, 3, 99, 5, 99, 3263, 10, 99, 3, 99, 3, 99, 5, 99, 3267, 10, 99, 3, 100, 3, 100, 3, 100, 5, 100, 3272, 10, 100, 3, 100, 5, 100, 3275, 10, 100, 3, 100, 3, 100, 3, 100, 5, 100, 3280, 10, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 5, 100, 3290, 10, 100, 3, 100, 3, 100, 3, 100, 5, 100, 3295, 10, 100, 3, 100, 3, 100, 6, 100, 3299, 10, 100, 13, 100, 14, 100, 3300, 5, 100, 3303, 10, 100, 3, 100, 3, 100, 6, 100, 3307, 10, 100, 13, 100, 14, 100, 3308, 5, 100, 3311, 10, 100, 3, 100, 3, 100, 3, 100, 3, 100, 5, 100, 3317, 10, 100, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 3323, 10, 100, 12, 100, 14, 100, 3326, 11, 100, 3, 100, 3, 100, 5, 100, 3330, 10, 100, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 3336, 10, 100, 12, 100, 14, 100, 3339, 11, 100, 5, 100, 3341, 10, 100, 3, 101, 3, 101, 3, 101, 5, 101, 3346, 10, 101, 3, 101, 5, 101, 3349, 10, 101, 3, 101, 3, 101, 3, 101, 5, 101, 3354, 10, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 3362, 10, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 3368, 10, 101, 3, 101, 3, 101, 5, 101, 3372, 10, 101, 5, 101, 3374, 10, 101, 3, 101, 3, 101, 3, 101, 3, 101, 5, 101, 3380, 10, 101, 3, 101, 3, 101, 3, 101, 3, 101, 7, 101, 3386, 10, 101, 12, 101, 14, 101, 3389, 11, 101, 3, 101, 3, 101, 5, 101, 3393, 10, 101, 3, 101, 3, 101, 3, 101, 3, 101, 7, 101, 3399, 10, 101, 12, 101, 14, 101, 3402, 11, 101, 5, 101, 3404, 10, 101, 3, 102, 3, 102, 3, 102, 5, 102, 3409, 10, 102, 3, 102, 5, 102, 3412, 10, 102, 3, 102, 3, 102, 5, 102, 3416, 10, 102, 3, 102, 5, 102, 3419, 10, 102, 3, 102, 5, 102, 3422, 10, 102, 3, 103, 3, 103, 5, 103, 3426, 10, 103, 3, 103, 5, 103, 3429, 10, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 3437, 10, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 3443, 10, 103, 3, 103, 3, 103, 5, 103, 3447, 10, 103, 3, 104, 3, 104, 5, 104, 3451, 10, 104, 3, 104, 3, 104, 5, 104, 3455, 10, 104, 3, 104, 5, 104, 3458, 10, 104, 3, 104, 3, 104, 5, 104, 3462, 10, 104, 3, 104, 3, 104, 6, 104, 3466, 10, 104, 13, 104, 14, 104, 3467, 3, 104, 3, 104, 5, 104, 3472, 10, 104, 3, 104, 3, 104, 5, 104, 3476, 10, 104, 5, 104, 3478, 10, 104, 3, 104, 5, 104, 3481, 10, 104, 3, 104, 5, 104, 3484, 10, 104, 3, 104, 5, 104, 3487, 10, 104, 3, 104, 3, 104, 6, 104, 3491, 10, 104, 13, 104, 14, 104, 3492, 3, 104, 3, 104, 5, 104, 3497, 10, 104, 3, 104, 5, 104, 3500, 10, 104, 3, 104, 5, 104, 3503, 10, 104, 3, 104, 5, 104, 3506, 10, 104, 3, 104, 5, 104, 3509, 10, 104, 3, 104, 3, 104, 3, 104, 6, 104, 3514, 10, 104, 13, 104, 14, 104, 3515, 5, 104, 3518, 10, 104, 3, 105, 5, 105, 3521, 10, 105, 3, 105, 3, 105, 5, 105, 3525, 10, 105, 3, 105, 5, 105, 3528, 10, 105, 3, 105, 5, 105, 3531, 10, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 3539, 10, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 3545, 10, 106, 3, 106, 7, 106, 3548, 10, 106, 12, 106, 14, 106, 3551, 11, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 5, 107, 3559, 10, 107, 3, 107, 7, 107, 3562, 10, 107, 12, 107, 14, 107, 3565, 11, 107, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 3571, 10, 108, 3, 108, 5, 108, 3574, 10, 108, 3, 108, 5, 108, 3577, 10, 108, 3, 108, 3, 108, 5, 108, 3581, 10, 108, 3, 109, 3, 109, 5, 109, 3585, 10, 109, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 3591, 10, 110, 3, 110, 3, 110, 5, 110, 3595, 10, 110, 3, 111, 3, 111, 3, 111, 7, 111, 3600, 10, 111, 12, 111, 14, 111, 3603, 11, 111, 3, 111, 5, 111, 3606, 10, 111, 3, 111, 5, 111, 3609, 10, 111, 3, 111, 5, 111, 3612, 10, 111, 3, 112, 3, 112, 3, 112, 5, 112, 3617, 10, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 3624, 10, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 7, 114, 3632, 10, 114, 12, 114, 14, 114, 3635, 11, 114, 3, 115, 3, 115, 3, 115, 3, 115, 7, 115, 3641, 10, 115, 12, 115, 14, 115, 3644, 11, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 5, 117, 3652, 10, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 7, 118, 3660, 10, 118, 12, 118, 14, 118, 3663, 11, 118, 5, 118, 3665, 10, 118, 3, 118, 3, 118, 5, 118, 3669, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 5, 118, 3675, 10, 118, 3, 119, 3, 119, 5, 119, 3679, 10, 119, 3, 119, 5, 119, 3682, 10, 119, 3, 119, 5, 119, 3685, 10, 119, 3, 119, 3, 119, 3, 119, 5, 119, 3690, 10, 119, 3, 119, 5, 119, 3693, 10, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 3700, 10, 119, 3, 119, 3, 119, 5, 119, 3704, 10, 119, 3, 119, 5, 119, 3707, 10, 119, 3, 119, 3, 119, 5, 119, 3711, 10, 119, 3, 120, 3, 120, 5, 120, 3715, 10, 120, 3, 120, 5, 120, 3718, 10, 120, 3, 120, 5, 120, 3721, 10, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3726, 10, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3732, 10, 120, 7, 120, 3734, 10, 120, 12, 120, 14, 120, 3737, 11, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3746, 10, 120, 3, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3752, 10, 120, 7, 120, 3754, 10, 120, 12, 120, 14, 120, 3757, 11, 120, 3, 120, 3, 120, 3, 120, 5, 120, 3762, 10, 120, 3, 120, 3, 120, 5, 120, 3766, 10, 120, 3, 121, 3, 121, 3, 121, 3, 121, 5, 121, 3772, 10, 121, 3, 121, 5, 121, 3775, 10, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 3787, 10, 122, 3, 122, 3, 122, 5, 122, 3791, 10, 122, 3, 122, 3, 122, 5, 122, 3795, 10, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 3803, 10, 123, 3, 123, 3, 123, 5, 123, 3807, 10, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 7, 125, 3819, 10, 125, 12, 125, 14, 125, 3822, 11, 125, 3, 126, 3, 126, 5, 126, 3826, 10, 126, 3, 126, 5, 126, 3829, 10, 126, 3, 126, 3, 126, 5, 126, 3833, 10, 126, 3, 126, 5, 126, 3836, 10, 126, 3, 126, 3, 126, 3, 126, 3, 126, 7, 126, 3842, 10, 126, 12, 126, 14, 126, 3845, 11, 126, 3, 126, 3, 126, 5, 126, 3849, 10, 126, 3, 126, 5, 126, 3852, 10, 126, 3, 126, 5, 126, 3855, 10, 126, 3, 127, 3, 127, 5, 127, 3859, 10, 127, 3, 127, 5, 127, 3862, 10, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 7, 127, 3869, 10, 127, 12, 127, 14, 127, 3872, 11, 127, 3, 127, 3, 127, 5, 127, 3876, 10, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 7, 128, 3883, 10, 128, 12, 128, 14, 128, 3886, 11, 128, 3, 129, 3, 129, 5, 129, 3890, 10, 129, 3, 130, 3, 130, 3, 130, 7, 130, 3895, 10, 130, 12, 130, 14, 130, 3898, 11, 130, 3, 131, 3, 131, 7, 131, 3902, 10, 131, 12, 131, 14, 131, 3905, 11, 131, 3, 131, 3, 131, 3, 131, 7, 131, 3910, 10, 131, 12, 131, 14, 131, 3913, 11, 131, 3, 131, 3, 131, 3, 131, 5, 131, 3918, 10, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 5, 132, 3926, 10, 132, 3, 132, 5, 132, 3929, 10, 132, 3, 132, 5, 132, 3932, 10, 132, 3, 132, 3, 132, 3, 132, 7, 132, 3937, 10, 132, 12, 132, 14, 132, 3940, 11, 132, 5, 132, 3942, 10, 132, 3, 132, 5, 132, 3945, 10, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 5, 132, 3952, 10, 132, 3, 132, 5, 132, 3955, 10, 132, 3, 132, 3, 132, 5, 132, 3959, 10, 132, 3, 132, 3, 132, 3, 132, 3, 132, 5, 132, 3965, 10, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 5, 134, 3975, 10, 134, 3, 134, 3, 134, 5, 134, 3979, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 5, 135, 3988, 10, 135, 3, 136, 5, 136, 3991, 10, 136, 3, 136, 3, 136, 5, 136, 3995, 10, 136, 3, 136, 3, 136, 7, 136, 3999, 10, 136, 12, 136, 14, 136, 4002, 11, 136, 3, 136, 3, 136, 3, 136, 7, 136, 4007, 10, 136, 12, 136, 14, 136, 4010, 11, 136, 3, 136, 3, 136, 5, 136, 4014, 10, 136, 3, 136, 3, 136, 5, 136, 4018, 10, 136, 3, 136, 3, 136, 7, 136, 4022, 10, 136, 12, 136, 14, 136, 4025, 11, 136, 3, 136, 3, 136, 3, 136, 5, 136, 4030, 10, 136, 3, 136, 5, 136, 4033, 10, 136, 5, 136, 4035, 10, 136, 3, 136, 3, 136, 5, 136, 4039, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 4048, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 4058, 10, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 4068, 10, 139, 3, 140, 3, 140, 7, 140, 4072, 10, 140, 12, 140, 14, 140, 4075, 11, 140, 3, 140, 3, 140, 5, 140, 4079, 10, 140, 3, 140, 3, 140, 5, 140, 4083, 10, 140, 3, 140, 5, 140, 4086, 10, 140, 3, 140, 5, 140, 4089, 10, 140, 3, 140, 5, 140, 4092, 10, 140, 3, 140, 5, 140, 4095, 10, 140, 3, 140, 3, 140, 7, 140, 4099, 10, 140, 12, 140, 14, 140, 4102, 11, 140, 3, 140, 3, 140, 3, 140, 5, 140, 4107, 10, 140, 3, 140, 5, 140, 4110, 10, 140, 3, 140, 5, 140, 4113, 10, 140, 3, 140, 5, 140, 4116, 10, 140, 3, 140, 5, 140, 4119, 10, 140, 3, 140, 5, 140, 4122, 10, 140, 5, 140, 4124, 10, 140, 3, 141, 3, 141, 7, 141, 4128, 10, 141, 12, 141, 14, 141, 4131, 11, 141, 3, 141, 3, 141, 3, 141, 5, 141, 4136, 10, 141, 3, 141, 5, 141, 4139, 10, 141, 3, 141, 5, 141, 4142, 10, 141, 3, 141, 5, 141, 4145, 10, 141, 3, 141, 5, 141, 4148, 10, 141, 3, 142, 3, 142, 5, 142, 4152, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 5, 143, 4158, 10, 143, 3, 143, 3, 143, 5, 143, 4162, 10, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 5, 144, 4170, 10, 144, 3, 144, 3, 144, 5, 144, 4174, 10, 144, 3, 144, 5, 144, 4177, 10, 144, 5, 144, 4179, 10, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 4192, 10, 145, 3, 145, 5, 145, 4195, 10, 145, 3, 146, 3, 146, 3, 146, 7, 146, 4200, 10, 146, 12, 146, 14, 146, 4203, 11, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 4212, 10, 147, 3, 147, 5, 147, 4215, 10, 147, 3, 147, 3, 147, 3, 147, 5, 147, 4220, 10, 147, 5, 147, 4222, 10, 147, 3, 147, 3, 147, 5, 147, 4226, 10, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 4234, 10, 147, 3, 148, 3, 148, 3, 148, 3, 148, 5, 148, 4240, 10, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 5, 149, 4249, 10, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 5, 150, 4262, 10, 150, 3, 151, 3, 151, 5, 151, 4266, 10, 151, 3, 151, 3, 151, 7, 151, 4270, 10, 151, 12, 151, 14, 151, 4273, 11, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 5, 152, 4281, 10, 152, 3, 152, 5, 152, 4284, 10, 152, 3, 152, 3, 152, 5, 152, 4288, 10, 152, 3, 152, 5, 152, 4291, 10, 152, 3, 152, 3, 152, 5, 152, 4295, 10, 152, 3, 152, 3, 152, 5, 152, 4299, 10, 152, 3, 152, 5, 152, 4302, 10, 152, 5, 152, 4304, 10, 152, 3, 153, 3, 153, 3, 153, 3, 153, 7, 153, 4310, 10, 153, 12, 153, 14, 153, 4313, 11, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 5, 153, 4324, 10, 153, 3, 153, 3, 153, 6, 153, 4328, 10, 153, 13, 153, 14, 153, 4329, 5, 153, 4332, 10, 153, 3, 153, 3, 153, 6, 153, 4336, 10, 153, 13, 153, 14, 153, 4337, 5, 153, 4340, 10, 153, 5, 153, 4342, 10, 153, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 4348, 10, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 4356, 10, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 5, 155, 4364, 10, 155, 3, 156, 3, 156, 5, 156, 4368, 10, 156, 3, 156, 3, 156, 5, 156, 4372, 10, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 7, 157, 4379, 10, 157, 12, 157, 14, 157, 4382, 11, 157, 3, 157, 3, 157, 5, 157, 4386, 10, 157, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 7, 159, 4404, 10, 159, 12, 159, 14, 159, 4407, 11, 159, 3, 160, 3, 160, 5, 160, 4411, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 4417, 10, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 4424, 10, 161, 3, 162, 3, 162, 3, 162, 5, 162, 4429, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 7, 163, 4436, 10, 163, 12, 163, 14, 163, 4439, 11, 163, 5, 163, 4441, 10, 163, 3, 164, 3, 164, 5, 164, 4445, 10, 164, 3, 165, 3, 165, 5, 165, 4449, 10, 165, 3, 165, 3, 165, 5, 165, 4453, 10, 165, 3, 165, 5, 165, 4456, 10, 165, 3, 165, 5, 165, 4459, 10, 165, 3, 165, 5, 165, 4462, 10, 165, 3, 166, 3, 166, 5, 166, 4466, 10, 166, 3, 166, 3, 166, 5, 166, 4470, 10, 166, 3, 166, 5, 166, 4473, 10, 166, 3, 166, 5, 166, 4476, 10, 166, 3, 166, 5, 166, 4479, 10, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 5, 168, 4486, 10, 168, 3, 168, 3, 168, 5, 168, 4490, 10, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 7, 170, 4503, 10, 170, 12, 170, 14, 170, 4506, 11, 170, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 5, 173, 4518, 10, 173, 3, 173, 3, 173, 3, 173, 3, 173, 7, 173, 4524, 10, 173, 12, 173, 14, 173, 4527, 11, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 4536, 10, 174, 3, 175, 3, 175, 5, 175, 4540, 10, 175, 3, 175, 5, 175, 4543, 10, 175, 3, 175, 3, 175, 3, 176, 3, 176, 5, 176, 4549, 10, 176, 3, 176, 5, 176, 4552, 10, 176, 3, 176, 5, 176, 4555, 10, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 5, 177, 4564, 10, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 5, 178, 4573, 10, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 7, 179, 4581, 10, 179, 12, 179, 14, 179, 4584, 11, 179, 3, 179, 5, 179, 4587, 10, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 7, 180, 4595, 10, 180, 12, 180, 14, 180, 4598, 11, 180, 3, 180, 5, 180, 4601, 10, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 7, 181, 4610, 10, 181, 12, 181, 14, 181, 4613, 11, 181, 3, 181, 5, 181, 4616, 10, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 4625, 10, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 7, 183, 4632, 10, 183, 12, 183, 14, 183, 4635, 11, 183, 5, 183, 4637, 10, 183, 3, 183, 3, 183, 5, 183, 4641, 10, 183, 3, 183, 7, 183, 4644, 10, 183, 12, 183, 14, 183, 4647, 11, 183, 3, 183, 5, 183, 4650, 10, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 7, 184, 4657, 10, 184, 12, 184, 14, 184, 4660, 11, 184, 5, 184, 4662, 10, 184, 3, 184, 5, 184, 4665, 10, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4672, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4678, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 4684, 10, 185, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 7, 187, 4708, 10, 187, 12, 187, 14, 187, 4711, 11, 187, 5, 187, 4713, 10, 187, 3, 187, 5, 187, 4716, 10, 187, 3, 188, 3, 188, 3, 189, 3, 189, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 4735, 10, 191, 5, 191, 4737, 10, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 7, 192, 4758, 10, 192, 12, 192, 14, 192, 4761, 11, 192, 5, 192, 4763, 10, 192, 3, 192, 5, 192, 4766, 10, 192, 3, 193, 3, 193, 3, 194, 3, 194, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 5, 196, 4785, 10, 196, 5, 196, 4787, 10, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 7, 198, 4799, 10, 198, 12, 198, 14, 198, 4802, 11, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 7, 198, 4812, 10, 198, 12, 198, 14, 198, 4815, 11, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 7, 198, 4849, 10, 198, 12, 198, 14, 198, 4852, 11, 198, 3, 198, 3, 198, 5, 198, 4856, 10, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 4891, 10, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 4905, 10, 202, 3, 203, 3, 203, 3, 203, 7, 203, 4910, 10, 203, 12, 203, 14, 203, 4913, 11, 203, 3, 203, 5, 203, 4916, 10, 203, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 4922, 10, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 4930, 10, 205, 5, 205, 4932, 10, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 4943, 10, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 4953, 10, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 4960, 10, 210, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 4966, 10, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 5, 213, 4974, 10, 213, 3, 214, 3, 214, 3, 214, 5, 214, 4979, 10, 214, 3, 214, 3, 214, 3, 214, 3, 214, 7, 214, 4985, 10, 214, 12, 214, 14, 214, 4988, 11, 214, 3, 214, 3, 214, 3, 214, 7, 214, 4993, 10, 214, 12, 214, 14, 214, 4996, 11, 214, 3, 214, 3, 214, 3, 214, 7, 214, 5001, 10, 214, 12, 214, 14, 214, 5004, 11, 214, 3, 214, 3, 214, 3, 214, 7, 214, 5009, 10, 214, 12, 214, 14, 214, 5012, 11, 214, 3, 214, 7, 214, 5015, 10, 214, 12, 214, 14, 214, 5018, 11, 214, 3, 214, 3, 214, 5, 214, 5022, 10, 214, 3, 215, 3, 215, 3, 215, 5, 215, 5027, 10, 215, 3, 215, 6, 215, 5030, 10, 215, 13, 215, 14, 215, 5031, 3, 215, 3, 215, 6, 215, 5036, 10, 215, 13, 215, 14, 215, 5037, 5, 215, 5040, 10, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 6, 216, 5049, 10, 216, 13, 216, 14, 216, 5050, 3, 216, 7, 216, 5054, 10, 216, 12, 216, 14, 216, 5057, 11, 216, 3, 216, 3, 216, 6, 216, 5061, 10, 216, 13, 216, 14, 216, 5062, 5, 216, 5065, 10, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 5, 219, 5079, 10, 219, 3, 219, 3, 219, 6, 219, 5083, 10, 219, 13, 219, 14, 219, 5084, 3, 219, 3, 219, 3, 219, 5, 219, 5090, 10, 219, 3, 220, 3, 220, 3, 220, 5, 220, 5095, 10, 220, 3, 220, 3, 220, 6, 220, 5099, 10, 220, 13, 220, 14, 220, 5100, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 5, 220, 5108, 10, 220, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 5, 222, 5116, 10, 222, 3, 222, 3, 222, 3, 222, 3, 222, 6, 222, 5122, 10, 222, 13, 222, 14, 222, 5123, 3, 222, 3, 222, 3, 222, 5, 222, 5129, 10, 222, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5135, 10, 223, 3, 223, 5, 223, 5138, 10, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 5, 223, 5146, 10, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 5, 224, 5153, 10, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 5, 225, 5162, 10, 225, 3, 225, 5, 225, 5165, 10, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 5180, 10, 227, 12, 227, 14, 227, 5183, 11, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 5, 228, 5190, 10, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 5, 228, 5198, 10, 228, 3, 229, 3, 229, 5, 229, 5202, 10, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 5, 230, 5209, 10, 230, 3, 230, 3, 230, 6, 230, 5213, 10, 230, 13, 230, 14, 230, 5214, 3, 231, 3, 231, 3, 231, 3, 231, 6, 231, 5221, 10, 231, 13, 231, 14, 231, 5222, 3, 232, 3, 232, 3, 232, 5, 232, 5228, 10, 232, 3, 232, 3, 232, 3, 232, 7, 232, 5233, 10, 232, 12, 232, 14, 232, 5236, 11, 232, 3, 232, 3, 232, 3, 232, 7, 232, 5241, 10, 232, 12, 232, 14, 232, 5244, 11, 232, 3, 232, 3, 232, 3, 232, 3, 232, 5, 232, 5250, 10, 232, 3, 232, 7, 232, 5253, 10, 232, 12, 232, 14, 232, 5256, 11, 232, 5, 232, 5258, 10, 232, 5, 232, 5260, 10, 232, 3, 232, 3, 232, 6, 232, 5264, 10, 232, 13, 232, 14, 232, 5265, 5, 232, 5268, 10, 232, 3, 232, 3, 232, 7, 232, 5272, 10, 232, 12, 232, 14, 232, 5275, 11, 232, 3, 232, 3, 232, 5, 232, 5279, 10, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 5, 232, 5286, 10, 232, 3, 233, 3, 233, 3, 233, 5, 233, 5291, 10, 233, 3, 233, 3, 233, 5, 233, 5295, 10, 233, 3, 233, 3, 233, 3, 233, 5, 233, 5300, 10, 233, 7, 233, 5302, 10, 233, 12, 233, 14, 233, 5305, 11, 233, 3, 233, 3, 233, 3, 233, 5, 233, 5310, 10, 233, 3, 233, 3, 233, 3, 233, 3, 233, 5, 233, 5316, 10, 233, 3, 233, 7, 233, 5319, 10, 233, 12, 233, 14, 233, 5322, 11, 233, 5, 233, 5324, 10, 233, 5, 233, 5326, 10, 233, 3, 233, 3, 233, 6, 233, 5330, 10, 233, 13, 233, 14, 233, 5331, 5, 233, 5334, 10, 233, 3, 233, 3, 233, 7, 233, 5338, 10, 233, 12, 233, 14, 233, 5341, 11, 233, 3, 233, 3, 233, 5, 233, 5345, 10, 233, 3, 234, 3, 234, 3, 234, 5, 234, 5350, 10, 234, 3, 234, 3, 234, 3, 234, 7, 234, 5355, 10, 234, 12, 234, 14, 234, 5358, 11, 234, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 5364, 10, 235, 12, 235, 14, 235, 5367, 11, 235, 3, 235, 3, 235, 5, 235, 5371, 10, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 5378, 10, 235, 12, 235, 14, 235, 5381, 11, 235, 3, 235, 5, 235, 5384, 10, 235, 3, 235, 3, 235, 3, 235, 3, 235, 5, 235, 5390, 10, 235, 3, 235, 7, 235, 5393, 10, 235, 12, 235, 14, 235, 5396, 11, 235, 5, 235, 5398, 10, 235, 5, 235, 5400, 10, 235, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 5406, 10, 235, 12, 235, 14, 235, 5409, 11, 235, 5, 235, 5411, 10, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 5, 235, 5418, 10, 235, 5, 235, 5420, 10, 235, 3, 235, 3, 235, 3, 235, 5, 235, 5425, 10, 235, 3, 235, 3, 235, 3, 235, 7, 235, 5430, 10, 235, 12, 235, 14, 235, 5433, 11, 235, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 5439, 10, 235, 12, 235, 14, 235, 5442, 11, 235, 3, 235, 3, 235, 3, 235, 5, 235, 5447, 10, 235, 5, 235, 5449, 10, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 5, 236, 5456, 10, 236, 3, 236, 5, 236, 5459, 10, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 7, 237, 5469, 10, 237, 12, 237, 14, 237, 5472, 11, 237, 3, 237, 3, 237, 3, 237, 5, 237, 5477, 10, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 5, 238, 5485, 10, 238, 3, 238, 5, 238, 5488, 10, 238, 3, 238, 3, 238, 5, 238, 5492, 10, 238, 3, 238, 5, 238, 5495, 10, 238, 3, 238, 3, 238, 5, 238, 5499, 10, 238, 5, 238, 5501, 10, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 5512, 10, 239, 3, 239, 5, 239, 5515, 10, 239, 3, 239, 3, 239, 5, 239, 5519, 10, 239, 3, 239, 5, 239, 5522, 10, 239, 3, 239, 5, 239, 5525, 10, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 5, 240, 5532, 10, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 7, 241, 5542, 10, 241, 12, 241, 14, 241, 5545, 11, 241, 5, 241, 5547, 10, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 5, 242, 5554, 10, 242, 3, 242, 3, 242, 7, 242, 5558, 10, 242, 12, 242, 14, 242, 5561, 11, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 7, 243, 5568, 10, 243, 12, 243, 14, 243, 5571, 11, 243, 3, 244, 3, 244, 5, 244, 5575, 10, 244, 3, 244, 3, 244, 3, 244, 7, 244, 5580, 10, 244, 12, 244, 14, 244, 5583, 11, 244, 3, 244, 3, 244, 5, 244, 5587, 10, 244, 3, 244, 3, 244, 3, 244, 3, 244, 5, 244, 5593, 10, 244, 3, 244, 3, 244, 5, 244, 5597, 10, 244, 3, 244, 3, 244, 5, 244, 5601, 10, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 5, 244, 5609, 10, 244, 3, 244, 3, 244, 5, 244, 5613, 10, 244, 3, 244, 3, 244, 5, 244, 5617, 10, 244, 3, 244, 3, 244, 3, 244, 3, 244, 5, 244, 5623, 10, 244, 5, 244, 5625, 10, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5637, 10, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5642, 10, 247, 3, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5648, 10, 247, 3, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5654, 10, 247, 3, 247, 3, 247, 5, 247, 5658, 10, 247, 3, 247, 3, 247, 3, 247, 5, 247, 5663, 10, 247, 5, 247, 5665, 10, 247, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 5, 249, 5697, 10, 249, 6, 249, 5699, 10, 249, 13, 249, 14, 249, 5700, 3, 249, 3, 249, 5, 249, 5705, 10, 249, 3, 249, 5, 249, 5708, 10, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 5717, 10, 250, 3, 250, 3, 250, 5, 250, 5721, 10, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 5730, 10, 250, 3, 250, 3, 250, 5, 250, 5734, 10, 250, 3, 250, 3, 250, 5, 250, 5738, 10, 250, 3, 250, 3, 250, 3, 250, 3, 250, 5, 250, 5744, 10, 250, 5, 250, 5746, 10, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 5, 251, 5755, 10, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 5, 251, 5765, 10, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 5, 252, 5792, 10, 252, 3, 253, 3, 253, 5, 253, 5796, 10, 253, 3, 253, 3, 253, 3, 253, 5, 253, 5801, 10, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 5, 254, 5808, 10, 254, 3, 254, 5, 254, 5811, 10, 254, 3, 254, 3, 254, 3, 254, 3, 254, 5, 254, 5817, 10, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 5, 255, 5827, 10, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 5, 256, 5837, 10, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5847, 10, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5853, 10, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5862, 10, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5868, 10, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 5, 257, 5875, 10, 257, 5, 257, 5877, 10, 257, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 5, 259, 5885, 10, 259, 3, 259, 3, 259, 3, 259, 3, 259, 5, 259, 5891, 10, 259, 3, 259, 3, 259, 5, 259, 5895, 10, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 5, 260, 5912, 10, 260, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 5, 262, 5922, 10, 262, 3, 263, 3, 263, 5, 263, 5926, 10, 263, 3, 263, 3, 263, 5, 263, 5930, 10, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 5, 263, 5940, 10, 263, 3, 263, 3, 263, 3, 263, 5, 263, 5945, 10, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 3, 263, 5, 263, 6017, 10, 263, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 5, 264, 6035, 10, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 5, 266, 6043, 10, 266, 3, 266, 3, 266, 3, 266, 3, 266, 5, 266, 6049, 10, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 5, 266, 6061, 10, 266, 3, 266, 3, 266, 5, 266, 6065, 10, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 5, 266, 6076, 10, 266, 3, 266, 3, 266, 5, 266, 6080, 10, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 5, 266, 6089, 10, 266, 3, 267, 3, 267, 3, 267, 3, 267, 7, 267, 6095, 10, 267, 12, 267, 14, 267, 6098, 11, 267, 3, 268, 3, 268, 3, 268, 3, 268, 5, 268, 6104, 10, 268, 3, 269, 3, 269, 5, 269, 6108, 10, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 5, 270, 6115, 10, 270, 3, 270, 3, 270, 3, 270, 5, 270, 6120, 10, 270, 3, 270, 5, 270, 6123, 10, 270, 3, 270, 5, 270, 6126, 10, 270, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 5, 272, 6137, 10, 272, 3, 273, 3, 273, 5, 273, 6141, 10, 273, 3, 273, 3, 273, 5, 273, 6145, 10, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 7, 274, 6158, 10, 274, 12, 274, 14, 274, 6161, 11, 274, 3, 274, 3, 274, 3, 274, 3, 274, 7, 274, 6167, 10, 274, 12, 274, 14, 274, 6170, 11, 274, 5, 274, 6172, 10, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 3, 276, 3, 276, 7, 276, 6184, 10, 276, 12, 276, 14, 276, 6187, 11, 276, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 5, 279, 6204, 10, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 5, 279, 6217, 10, 279, 3, 279, 5, 279, 6220, 10, 279, 3, 279, 3, 279, 5, 279, 6224, 10, 279, 3, 279, 5, 279, 6227, 10, 279, 5, 279, 6229, 10, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6236, 10, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6243, 10, 280, 7, 280, 6245, 10, 280, 12, 280, 14, 280, 6248, 11, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6254, 10, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 5, 280, 6261, 10, 280, 3, 280, 5, 280, 6264, 10, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 7, 280, 6278, 10, 280, 12, 280, 14, 280, 6281, 11, 280, 5, 280, 6283, 10, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6293, 10, 281, 3, 281, 3, 281, 5, 281, 6297, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6303, 10, 281, 3, 281, 5, 281, 6306, 10, 281, 3, 281, 5, 281, 6309, 10, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6314, 10, 281, 3, 281, 3, 281, 5, 281, 6318, 10, 281, 3, 281, 5, 281, 6321, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6328, 10, 281, 3, 281, 5, 281, 6331, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6337, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6373, 10, 281, 3, 281, 5, 281, 6376, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6388, 10, 281, 3, 281, 5, 281, 6391, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6407, 10, 281, 5, 281, 6409, 10, 281, 3, 281, 3, 281, 5, 281, 6413, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6420, 10, 281, 3, 281, 3, 281, 5, 281, 6424, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6431, 10, 281, 3, 281, 5, 281, 6434, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 7, 281, 6441, 10, 281, 12, 281, 14, 281, 6444, 11, 281, 5, 281, 6446, 10, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6451, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6457, 10, 281, 5, 281, 6459, 10, 281, 3, 281, 3, 281, 3, 281, 3, 281, 5, 281, 6465, 10, 281, 3, 281, 3, 281, 5, 281, 6469, 10, 281, 3, 282, 3, 282, 3, 282, 3, 282, 5, 282, 6475, 10, 282, 3, 282, 5, 282, 6478, 10, 282, 3, 282, 5, 282, 6481, 10, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 5, 283, 6494, 10, 283, 3, 283, 5, 283, 6497, 10, 283, 3, 284, 3, 284, 3, 284, 3, 284, 5, 284, 6503, 10, 284, 3, 285, 5, 285, 6506, 10, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 5, 285, 6514, 10, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 5, 285, 6522, 10, 285, 3, 286, 3, 286, 3, 286, 3, 286, 5, 286, 6528, 10, 286, 3, 286, 5, 286, 6531, 10, 286, 3, 286, 3, 286, 5, 286, 6535, 10, 286, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 5, 287, 6549, 10, 287, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 7, 289, 6559, 10, 289, 12, 289, 14, 289, 6562, 11, 289, 3, 289, 3, 289, 3, 289, 3, 289, 3, 289, 5, 289, 6569, 10, 289, 3, 289, 3, 289, 5, 289, 6573, 10, 289, 3, 289, 3, 289, 3, 289, 3, 290, 3, 290, 5, 290, 6580, 10, 290, 3, 290, 3, 290, 3, 290, 7, 290, 6585, 10, 290, 12, 290, 14, 290, 6588, 11, 290, 3, 291, 3, 291, 5, 291, 6592, 10, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 7, 292, 6603, 10, 292, 12, 292, 14, 292, 6606, 11, 292, 3, 293, 3, 293, 3, 293, 3, 293, 7, 293, 6612, 10, 293, 12, 293, 14, 293, 6615, 11, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 5, 294, 6622, 10, 294, 3, 295, 3, 295, 3, 295, 5, 295, 6627, 10, 295, 3, 295, 5, 295, 6630, 10, 295, 3, 296, 3, 296, 3, 296, 5, 296, 6635, 10, 296, 3, 296, 5, 296, 6638, 10, 296, 3, 297, 3, 297, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 5, 299, 6650, 10, 299, 3, 300, 3, 300, 3, 300, 5, 300, 6655, 10, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 5, 300, 6668, 10, 300, 5, 300, 6670, 10, 300, 3, 300, 3, 300, 3, 300, 5, 300, 6675, 10, 300, 3, 300, 3, 300, 5, 300, 6679, 10, 300, 3, 300, 5, 300, 6682, 10, 300, 5, 300, 6684, 10, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 5, 301, 6691, 10, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 302, 5, 302, 6698, 10, 302, 3, 302, 5, 302, 6701, 10, 302, 3, 302, 5, 302, 6704, 10, 302, 3, 302, 3, 302, 3, 302, 3, 302, 5, 302, 6710, 10, 302, 3, 302, 3, 302, 5, 302, 6714, 10, 302, 3, 303, 3, 303, 3, 303, 3, 303, 5, 303, 6720, 10, 303, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 5, 304, 6728, 10, 304, 3, 304, 3, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 5, 305, 6737, 10, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 308, 3, 308, 3, 308, 5, 308, 6750, 10, 308, 3, 308, 3, 308, 3, 308, 5, 308, 6755, 10, 308, 3, 308, 3, 308, 3, 308, 3, 308, 7, 308, 6761, 10, 308, 12, 308, 14, 308, 6764, 11, 308, 5, 308, 6766, 10, 308, 3, 309, 3, 309, 3, 309, 5, 309, 6771, 10, 309, 3, 309, 3, 309, 3, 309, 5, 309, 6776, 10, 309, 3, 309, 3, 309, 3, 309, 3, 309, 7, 309, 6782, 10, 309, 12, 309, 14, 309, 6785, 11, 309, 5, 309, 6787, 10, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 5, 310, 6795, 10, 310, 3, 311, 3, 311, 5, 311, 6799, 10, 311, 3, 311, 3, 311, 3, 311, 7, 311, 6804, 10, 311, 12, 311, 14, 311, 6807, 11, 311, 3, 312, 3, 312, 3, 312, 5, 312, 6812, 10, 312, 3, 312, 5, 312, 6815, 10, 312, 3, 313, 3, 313, 5, 313, 6819, 10, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 7, 313, 6830, 10, 313, 12, 313, 14, 313, 6833, 11, 313, 3, 313, 3, 313, 3, 313, 5, 313, 6838, 10, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 7, 313, 6848, 10, 313, 12, 313, 14, 313, 6851, 11, 313, 5, 313, 6853, 10, 313, 3, 314, 3, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 315, 5, 315, 6862, 10, 315, 3, 315, 3, 315, 3, 315, 5, 315, 6867, 10, 315, 3, 316, 3, 316, 3, 317, 3, 317, 3, 318, 3, 318, 3, 319, 3, 319, 3, 320, 3, 320, 3, 321, 3, 321, 3, 322, 3, 322, 3, 323, 3, 323, 3, 323, 7, 323, 6886, 10, 323, 12, 323, 14, 323, 6889, 11, 323, 3, 324, 3, 324, 3, 325, 3, 325, 3, 326, 3, 326, 3, 327, 3, 327, 3, 328, 3, 328, 3, 328, 7, 328, 6902, 10, 328, 12, 328, 14, 328, 6905, 11, 328, 3, 329, 3, 329, 3, 330, 3, 330, 3, 330, 7, 330, 6912, 10, 330, 12, 330, 14, 330, 6915, 11, 330, 3, 331, 3, 331, 5, 331, 6919, 10, 331, 3, 332, 3, 332, 3, 332, 5, 332, 6924, 10, 332, 5, 332, 6926, 10, 332, 3, 332, 5, 332, 6929, 10, 332, 3, 332, 3, 332, 5, 332, 6933, 10, 332, 5, 332, 6935, 10, 332, 3, 333, 3, 333, 3, 333, 7, 333, 6940, 10, 333, 12, 333, 14, 333, 6943, 11, 333, 3, 334, 3, 334, 3, 334, 5, 334, 6948, 10, 334, 5, 334, 6950, 10, 334, 3, 334, 5, 334, 6953, 10, 334, 3, 334, 3, 334, 5, 334, 6957, 10, 334, 5, 334, 6959, 10, 334, 3, 335, 3, 335, 3, 336, 3, 336, 3, 337, 3, 337, 3, 338, 3, 338, 3, 338, 7, 338, 6970, 10, 338, 12, 338, 14, 338, 6973, 11, 338, 3, 339, 3, 339, 3, 340, 3, 340, 3, 340, 3, 340, 3, 340, 5, 340, 6982, 10, 340, 3, 340, 5, 340, 6985, 10, 340, 3, 340, 5, 340, 6988, 10, 340, 3, 341, 3, 341, 3, 341, 3, 341, 3, 342, 3, 342, 3, 342, 3, 343, 3, 343, 3, 343, 3, 343, 5, 343, 7001, 10, 343, 3, 344, 3, 344, 3, 345, 3, 345, 5, 345, 7007, 10, 345, 3, 345, 5, 345, 7010, 10, 345, 3, 346, 3, 346, 3, 347, 3, 347, 3, 347, 3, 347, 5, 347, 7018, 10, 347, 3, 348, 3, 348, 3, 349, 3, 349, 3, 349, 5, 349, 7025, 10, 349, 3, 350, 3, 350, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 3, 351, 6, 351, 7043, 10, 351, 13, 351, 14, 351, 7044, 3, 352, 3, 352, 3, 352, 3, 352, 3, 352, 5, 352, 7052, 10, 352, 5, 352, 7054, 10, 352, 3, 353, 3, 353, 3, 353, 6, 353, 7059, 10, 353, 13, 353, 14, 353, 7060, 5, 353, 7063, 10, 353, 3, 354, 3, 354, 5, 354, 7067, 10, 354, 3, 355, 3, 355, 3, 355, 7, 355, 7072, 10, 355, 12, 355, 14, 355, 7075, 11, 355, 3, 356, 3, 356, 3, 356, 5, 356, 7080, 10, 356, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 3, 357, 5, 357, 7091, 10, 357, 3, 358, 3, 358, 3, 358, 5, 358, 7096, 10, 358, 3, 359, 3, 359, 3, 360, 3, 360, 5, 360, 7102, 10, 360, 3, 361, 5, 361, 7105, 10, 361, 3, 361, 3, 361, 5, 361, 7109, 10, 361, 3, 361, 6, 361, 7112, 10, 361, 13, 361, 14, 361, 7113, 3, 361, 5, 361, 7117, 10, 361, 3, 361, 3, 361, 5, 361, 7121, 10, 361, 3, 361, 3, 361, 5, 361, 7125, 10, 361, 5, 361, 7127, 10, 361, 3, 362, 3, 362, 3, 363, 5, 363, 7132, 10, 363, 3, 363, 3, 363, 3, 364, 5, 364, 7137, 10, 364, 3, 364, 3, 364, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 3, 365, 5, 365, 7150, 10, 365, 3, 365, 5, 365, 7153, 10, 365, 3, 366, 3, 366, 5, 366, 7157, 10, 366, 3, 366, 5, 366, 7160, 10, 366, 3, 366, 5, 366, 7163, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7168, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7173, 10, 366, 3, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7179, 10, 366, 3, 366, 5, 366, 7182, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7187, 10, 366, 3, 366, 5, 366, 7190, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7195, 10, 366, 3, 366, 5, 366, 7198, 10, 366, 3, 366, 3, 366, 5, 366, 7202, 10, 366, 3, 366, 7, 366, 7205, 10, 366, 12, 366, 14, 366, 7208, 11, 366, 3, 366, 3, 366, 5, 366, 7212, 10, 366, 3, 366, 7, 366, 7215, 10, 366, 12, 366, 14, 366, 7218, 11, 366, 3, 366, 3, 366, 5, 366, 7222, 10, 366, 3, 366, 5, 366, 7225, 10, 366, 3, 366, 7, 366, 7228, 10, 366, 12, 366, 14, 366, 7231, 11, 366, 3, 366, 3, 366, 5, 366, 7235, 10, 366, 3, 366, 7, 366, 7238, 10, 366, 12, 366, 14, 366, 7241, 11, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7246, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7251, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7256, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7261, 10, 366, 3, 366, 3, 366, 5, 366, 7265, 10, 366, 3, 366, 5, 366, 7268, 10, 366, 3, 366, 3, 366, 3, 366, 5, 366, 7273, 10, 366, 3, 366, 3, 366, 5, 366, 7277, 10, 366, 3, 366, 3, 366, 5, 366, 7281, 10, 366, 3, 367, 3, 367, 3, 367, 3, 367, 7, 367, 7287, 10, 367, 12, 367, 14, 367, 7290, 11, 367, 3, 367, 3, 367, 3, 368, 3, 368, 5, 368, 7296, 10, 368, 3, 368, 3, 368, 5, 368, 7300, 10, 368, 3, 368, 3, 368, 3, 368, 5, 368, 7305, 10, 368, 3, 368, 3, 368, 3, 368, 5, 368, 7310, 10, 368, 3, 368, 3, 368, 5, 368, 7314, 10, 368, 5, 368, 7316, 10, 368, 3, 368, 5, 368, 7319, 10, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 370, 3, 371, 3, 371, 3, 371, 3, 371, 5, 371, 7335, 10, 371, 3, 371, 3, 371, 3, 372, 3, 372, 3, 372, 3, 372, 7, 372, 7343, 10, 372, 12, 372, 14, 372, 7346, 11, 372, 3, 372, 3, 372, 3, 373, 3, 373, 3, 373, 7, 373, 7353, 10, 373, 12, 373, 14, 373, 7356, 11, 373, 3, 374, 3, 374, 3, 374, 3, 374, 7, 374, 7362, 10, 374, 12, 374, 14, 374, 7365, 11, 374, 3, 375, 3, 375, 3, 375, 3, 375, 7, 375, 7371, 10, 375, 12, 375, 14, 375, 7374, 11, 375, 3, 375, 3, 375, 3, 376, 3, 376, 5, 376, 7380, 10, 376, 3, 377, 3, 377, 3, 377, 7, 377, 7385, 10, 377, 12, 377, 14, 377, 7388, 11, 377, 3, 378, 3, 378, 3, 378, 7, 378, 7393, 10, 378, 12, 378, 14, 378, 7396, 11, 378, 3, 379, 3, 379, 3, 379, 7, 379, 7401, 10, 379, 12, 379, 14, 379, 7404, 11, 379, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 5, 380, 7415, 10, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 5, 380, 7422, 10, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 3, 380, 5, 380, 7432, 10, 380, 3, 381, 3, 381, 3, 381, 5, 381, 7437, 10, 381, 3, 381, 5, 381, 7440, 10, 381, 3, 381, 3, 381, 3, 381, 5, 381, 7445, 10, 381, 3, 381, 5, 381, 7448, 10, 381, 3, 382, 3, 382, 3, 382, 3, 383, 3, 383, 3, 383, 3, 383, 3, 384, 3, 384, 3, 384, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 5, 385, 7466, 10, 385, 3, 385, 3, 385, 3, 385, 3, 385, 3, 385, 5, 385, 7473, 10, 385, 3, 385, 3, 385, 3, 385, 5, 385, 7478, 10, 385, 3, 386, 3, 386, 3, 386, 5, 386, 7483, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 6, 386, 7515, 10, 386, 13, 386, 14, 386, 7516, 3, 386, 3, 386, 5, 386, 7521, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 6, 386, 7527, 10, 386, 13, 386, 14, 386, 7528, 3, 386, 3, 386, 5, 386, 7533, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7542, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7550, 10, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7555, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7563, 10, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7568, 10, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7573, 10, 386, 5, 386, 7575, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7584, 10, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7589, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7597, 10, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7602, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7610, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7618, 10, 386, 3, 386, 5, 386, 7621, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7631, 10, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 3, 386, 5, 386, 7649, 10, 386, 3, 386, 5, 386, 7652, 10, 386, 3, 386, 5, 386, 7655, 10, 386, 3, 386, 3, 386, 5, 386, 7659, 10, 386, 3, 387, 3, 387, 3, 387, 3, 387, 3, 387, 3, 388, 3, 388, 3, 388, 3, 388, 7, 388, 7670, 10, 388, 12, 388, 14, 388, 7673, 11, 388, 3, 388, 3, 388, 3, 388, 3, 388, 3, 388, 5, 388, 7680, 10, 388, 3, 389, 3, 389, 5, 389, 7684, 10, 389, 3, 390, 3, 390, 3, 390, 5, 390, 7689, 10, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7694, 10, 390, 3, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7700, 10, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7705, 10, 390, 3, 390, 3, 390, 5, 390, 7709, 10, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7714, 10, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7719, 10, 390, 3, 390, 3, 390, 3, 390, 5, 390, 7724, 10, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 3, 390, 7, 390, 7732, 10, 390, 12, 390, 14, 390, 7735, 11, 390, 5, 390, 7737, 10, 390, 3, 390, 3, 390, 5, 390, 7741, 10, 390, 3, 390, 3, 390, 5, 390, 7745, 10, 390, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 5, 391, 7752, 10, 391, 3, 391, 3, 391, 5, 391, 7756, 10, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 3, 391, 5, 391, 7785, 10, 391, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 3, 392, 5, 392, 7793, 10, 392, 3, 393, 5, 393, 7796, 10, 393, 3, 393, 5, 393, 7799, 10, 393, 3, 393, 5, 393, 7802, 10, 393, 3, 393, 5, 393, 7805, 10, 393, 3, 394, 3, 394, 3, 395, 3, 395, 3, 395, 3, 396, 3, 396, 3, 397, 3, 397, 5, 397, 7816, 10, 397, 3, 398, 3, 398, 3, 398, 3, 398, 3, 398, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 3, 399, 5, 399, 7830, 10, 399, 3, 400, 3, 400, 3, 400, 3, 400, 3, 400, 7, 400, 7837, 10, 400, 12, 400, 14, 400, 7840, 11, 400, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 3, 401, 5, 401, 7866, 10, 401, 3, 402, 3, 402, 3, 402, 3, 402, 3, 402, 3, 403, 3, 403, 3, 403, 7, 403, 7876, 10, 403, 12, 403, 14, 403, 7879, 11, 403, 3, 404, 3, 404, 3, 404, 3, 404, 5, 404, 7885, 10, 404, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 3, 405, 5, 405, 7893, 10, 405, 3, 405, 3, 405, 3, 405, 5, 405, 7898, 10, 405, 3, 405, 3, 405, 3, 405, 3, 405, 7, 405, 7904, 10, 405, 12, 405, 14, 405, 7907, 11, 405, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7918, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7931, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7937, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7943, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7959, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 5, 406, 7965, 10, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 3, 406, 7, 406, 7974, 10, 406, 12, 406, 14, 406, 7977, 11, 406, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 7, 407, 7996, 10, 407, 12, 407, 14, 407, 7999, 11, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 6, 407, 8008, 10, 407, 13, 407, 14, 407, 8009, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 5, 407, 8027, 10, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 3, 407, 7, 407, 8044, 10, 407, 12, 407, 14, 407, 8047, 11, 407, 3, 408, 3, 408, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 3, 409, 5, 409, 8059, 10, 409, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 3, 410, 5, 410, 8068, 10, 410, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 3, 411, 5, 411, 8077, 10, 411, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 3, 412, 5, 412, 8086, 10, 412, 3, 413, 3, 413, 3, 414, 3, 414, 3, 414, 3, 414, 3, 414, 5, 414, 8095, 10, 414, 3, 415, 3, 415, 3, 416, 3, 416, 3, 417, 3, 417, 3, 418, 3, 418, 3, 419, 3, 419, 3, 420, 3, 420, 3, 421, 3, 421, 3, 421, 2, 2, 7, 210, 212, 808, 810, 812, 422, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 100, 2, 102, 2, 104, 2, 106, 2, 108, 2, 110, 2, 112, 2, 114, 2, 116, 2, 118, 2, 120, 2, 122, 2, 124, 2, 126, 2, 128, 2, 130, 2, 132, 2, 134, 2, 136, 2, 138, 2, 140, 2, 142, 2, 144, 2, 146, 2, 148, 2, 150, 2, 152, 2, 154, 2, 156, 2, 158, 2, 160, 2, 162, 2, 164, 2, 166, 2, 168, 2, 170, 2, 172, 2, 174, 2, 176, 2, 178, 2, 180, 2, 182, 2, 184, 2, 186, 2, 188, 2, 190, 2, 192, 2, 194, 2, 196, 2, 198, 2, 200, 2, 202, 2, 204, 2, 206, 2, 208, 2, 210, 2, 212, 2, 214, 2, 216, 2, 218, 2, 220, 2, 222, 2, 224, 2, 226, 2, 228, 2, 230, 2, 232, 2, 234, 2, 236, 2, 238, 2, 240, 2, 242, 2, 244, 2, 246, 2, 248, 2, 250, 2, 252, 2, 254, 2, 256, 2, 258, 2, 260, 2, 262, 2, 264, 2, 266, 2, 268, 2, 270, 2, 272, 2, 274, 2, 276, 2, 278, 2, 280, 2, 282, 2, 284, 2, 286, 2, 288, 2, 290, 2, 292, 2, 294, 2, 296, 2, 298, 2, 300, 2, 302, 2, 304, 2, 306, 2, 308, 2, 310, 2, 312, 2, 314, 2, 316, 2, 318, 2, 320, 2, 322, 2, 324, 2, 326, 2, 328, 2, 330, 2, 332, 2, 334, 2, 336, 2, 338, 2, 340, 2, 342, 2, 344, 2, 346, 2, 348, 2, 350, 2, 352, 2, 354, 2, 356, 2, 358, 2, 360, 2, 362, 2, 364, 2, 366, 2, 368, 2, 370, 2, 372, 2, 374, 2, 376, 2, 378, 2, 380, 2, 382, 2, 384, 2, 386, 2, 388, 2, 390, 2, 392, 2, 394, 2, 396, 2, 398, 2, 400, 2, 402, 2, 404, 2, 406, 2, 408, 2, 410, 2, 412, 2, 414, 2, 416, 2, 418, 2, 420, 2, 422, 2, 424, 2, 426, 2, 428, 2, 430, 2, 432, 2, 434, 2, 436, 2, 438, 2, 440, 2, 442, 2, 444, 2, 446, 2, 448, 2, 450, 2, 452, 2, 454, 2, 456, 2, 458, 2, 460, 2, 462, 2, 464, 2, 466, 2, 468, 2, 470, 2, 472, 2, 474, 2, 476, 2, 478, 2, 480, 2, 482, 2, 484, 2, 486, 2, 488, 2, 490, 2, 492, 2, 494, 2, 496, 2, 498, 2, 500, 2, 502, 2, 504, 2, 506, 2, 508, 2, 510, 2, 512, 2, 514, 2, 516, 2, 518, 2, 520, 2, 522, 2, 524, 2, 526, 2, 528, 2, 530, 2, 532, 2, 534, 2, 536, 2, 538, 2, 540, 2, 542, 2, 544, 2, 546, 2, 548, 2, 550, 2, 552, 2, 554, 2, 556, 2, 558, 2, 560, 2, 562, 2, 564, 2, 566, 2, 568, 2, 570, 2, 572, 2, 574, 2, 576, 2, 578, 2, 580, 2, 582, 2, 584, 2, 586, 2, 588, 2, 590, 2, 592, 2, 594, 2, 596, 2, 598, 2, 600, 2, 602, 2, 604, 2, 606, 2, 608, 2, 610, 2, 612, 2, 614, 2, 616, 2, 618, 2, 620, 2, 622, 2, 624, 2, 626, 2, 628, 2, 630, 2, 632, 2, 634, 2, 636, 2, 638, 2, 640, 2, 642, 2, 644, 2, 646, 2, 648, 2, 650, 2, 652, 2, 654, 2, 656, 2, 658, 2, 660, 2, 662, 2, 664, 2, 666, 2, 668, 2, 670, 2, 672, 2, 674, 2, 676, 2, 678, 2, 680, 2, 682, 2, 684, 2, 686, 2, 688, 2, 690, 2, 692, 2, 694, 2, 696, 2, 698, 2, 700, 2, 702, 2, 704, 2, 706, 2, 708, 2, 710, 2, 712, 2, 714, 2, 716, 2, 718, 2, 720, 2, 722, 2, 724, 2, 726, 2, 728, 2, 730, 2, 732, 2, 734, 2, 736, 2, 738, 2, 740, 2, 742, 2, 744, 2, 746, 2, 748, 2, 750, 2, 752, 2, 754, 2, 756, 2, 758, 2, 760, 2, 762, 2, 764, 2, 766, 2, 768, 2, 770, 2, 772, 2, 774, 2, 776, 2, 778, 2, 780, 2, 782, 2, 784, 2, 786, 2, 788, 2, 790, 2, 792, 2, 794, 2, 796, 2, 798, 2, 800, 2, 802, 2, 804, 2, 806, 2, 808, 2, 810, 2, 812, 2, 814, 2, 816, 2, 818, 2, 820, 2, 822, 2, 824, 2, 826, 2, 828, 2, 830, 2, 832, 2, 834, 2, 836, 2, 838, 2, 840, 2, 2, 162, 4, 2, 41, 41, 154, 154, 4, 2, 510, 510, 516, 516, 5, 2, 71, 71, 163, 163, 184, 184, 5, 2, 44, 44, 359, 359, 432, 432, 6, 2, 44, 44, 391, 391, 507, 507, 597, 597, 4, 2, 496, 496, 884, 884, 4, 2, 81, 81, 145, 145, 4, 2, 18, 18, 308, 308, 5, 2, 46, 46, 88, 88, 187, 187, 4, 2, 408, 408, 540, 540, 5, 2, 488, 488, 663, 663, 672, 672, 4, 2, 366, 366, 438, 438, 4, 2, 327, 327, 452, 452, 4, 2, 44, 44, 873, 874, 4, 2, 39, 39, 680, 680, 4, 2, 325, 325, 420, 420, 4, 2, 437, 437, 688, 688, 5, 2, 82, 82, 87, 87, 128, 128, 4, 2, 84, 84, 94, 94, 4, 2, 71, 71, 163, 163, 5, 2, 44, 44, 376, 376, 405, 405, 5, 2, 44, 44, 372, 372, 804, 804, 4, 2, 650, 650, 687, 687, 5, 2, 410, 410, 528, 528, 599, 599, 4, 2, 331, 331, 524, 524, 3, 2, 873, 874, 4, 2, 884, 884, 892, 892, 4, 2, 84, 84, 362, 362, 4, 2, 525, 525, 884, 884, 4, 2, 526, 526, 884, 884, 5, 2, 404, 404, 447, 447, 504, 504, 9, 2, 44, 44, 344, 344, 347, 347, 376, 376, 405, 405, 556, 556, 892, 892, 4, 2, 496, 496, 508, 508, 3, 2, 874, 875, 4, 2, 8, 8, 53, 53, 4, 2, 7, 7, 83, 83, 4, 2, 29, 29, 33, 33, 6, 2, 44, 44, 359, 359, 432, 432, 436, 436, 4, 2, 370, 370, 377, 377, 4, 2, 371, 371, 427, 427, 4, 2, 15, 15, 178, 178, 4, 2, 196, 196, 692, 692, 4, 2, 24, 24, 148, 148, 5, 2, 45, 45, 78, 78, 109, 109, 4, 2, 9, 9, 51, 51, 4, 2, 109, 109, 349, 349, 4, 2, 339, 339, 400, 400, 4, 2, 104, 104, 589, 589, 4, 2, 45, 45, 109, 109, 5, 2, 61, 61, 183, 183, 830, 830, 4, 2, 187, 187, 596, 596, 4, 2, 161, 161, 505, 505, 6, 2, 404, 404, 447, 447, 503, 503, 544, 544, 4, 2, 404, 404, 503, 503, 4, 2, 16, 16, 47, 47, 5, 2, 68, 68, 81, 81, 189, 189, 4, 2, 37, 37, 86, 86, 4, 2, 100, 100, 152, 152, 4, 2, 9, 9, 51, 52, 3, 2, 639, 640, 4, 2, 175, 175, 754, 754, 4, 2, 415, 415, 595, 595, 4, 2, 230, 230, 455, 455, 4, 2, 565, 565, 600, 600, 10, 2, 110, 110, 457, 457, 461, 462, 464, 464, 466, 466, 469, 478, 501, 501, 559, 559, 8, 2, 458, 460, 463, 463, 465, 465, 467, 467, 479, 479, 560, 560, 9, 2, 111, 111, 413, 413, 418, 418, 456, 456, 468, 468, 575, 575, 619, 619, 4, 2, 118, 118, 884, 884, 4, 2, 120, 121, 509, 509, 9, 2, 501, 501, 559, 559, 608, 611, 613, 613, 621, 621, 624, 630, 632, 634, 8, 2, 560, 560, 612, 612, 614, 614, 616, 618, 620, 620, 622, 622, 9, 2, 414, 414, 418, 418, 575, 575, 615, 615, 619, 619, 623, 623, 631, 631, 5, 2, 72, 72, 120, 121, 509, 509, 4, 2, 440, 440, 641, 641, 4, 2, 635, 635, 637, 637, 4, 2, 319, 319, 642, 642, 4, 2, 93, 93, 579, 579, 4, 2, 53, 53, 364, 364, 5, 2, 34, 34, 63, 63, 182, 182, 4, 2, 17, 17, 342, 342, 4, 2, 680, 680, 837, 837, 5, 2, 134, 134, 175, 175, 411, 411, 5, 2, 8, 8, 53, 53, 494, 494, 5, 2, 15, 15, 22, 22, 190, 190, 4, 2, 44, 44, 124, 124, 4, 2, 106, 106, 185, 185, 3, 2, 875, 876, 4, 2, 335, 335, 600, 600, 4, 2, 42, 42, 686, 686, 4, 2, 394, 394, 551, 551, 4, 2, 117, 117, 452, 452, 6, 2, 210, 210, 212, 212, 218, 218, 651, 651, 5, 2, 415, 415, 533, 533, 896, 897, 4, 2, 843, 843, 859, 859, 4, 2, 320, 320, 561, 561, 4, 2, 70, 70, 82, 82, 5, 2, 134, 134, 180, 180, 387, 387, 4, 2, 495, 495, 647, 647, 4, 2, 385, 385, 690, 690, 5, 2, 84, 84, 95, 95, 428, 428, 6, 2, 415, 415, 452, 452, 533, 534, 595, 595, 4, 2, 647, 647, 685, 685, 4, 2, 351, 351, 550, 550, 8, 2, 230, 230, 382, 382, 384, 384, 412, 412, 558, 558, 601, 601, 4, 2, 47, 48, 64, 64, 5, 2, 444, 444, 665, 665, 668, 668, 12, 2, 334, 334, 341, 341, 353, 355, 361, 361, 489, 489, 497, 497, 652, 652, 659, 659, 824, 824, 834, 834, 4, 2, 38, 38, 172, 172, 4, 2, 119, 119, 833, 833, 13, 2, 334, 334, 341, 341, 353, 355, 361, 361, 489, 489, 497, 497, 580, 580, 652, 652, 659, 659, 824, 824, 834, 834, 4, 2, 872, 872, 894, 895, 3, 2, 895, 896, 4, 2, 350, 350, 799, 810, 5, 2, 873, 876, 885, 885, 887, 887, 4, 2, 65, 65, 181, 181, 4, 2, 118, 118, 888, 888, 7, 2, 28, 28, 226, 228, 235, 235, 237, 240, 500, 500, 4, 2, 28, 28, 226, 226, 4, 2, 28, 28, 226, 227, 3, 2, 200, 211, 5, 2, 186, 186, 199, 199, 598, 598, 4, 2, 215, 220, 405, 405, 8, 2, 221, 221, 232, 232, 234, 234, 236, 236, 243, 243, 323, 324, 6, 2, 222, 225, 230, 231, 233, 233, 321, 321, 4, 2, 157, 157, 241, 241, 4, 2, 444, 444, 815, 823, 4, 2, 230, 230, 500, 500, 7, 2, 204, 204, 210, 210, 221, 222, 224, 224, 444, 444, 3, 2, 218, 219, 4, 2, 186, 186, 598, 598, 4, 2, 204, 204, 210, 210, 4, 2, 191, 191, 684, 684, 4, 2, 289, 290, 296, 296, 5, 2, 154, 154, 287, 290, 305, 305, 3, 2, 299, 300, 5, 2, 20, 20, 98, 98, 179, 179, 4, 2, 226, 226, 230, 230, 4, 2, 221, 222, 224, 224, 5, 2, 16, 16, 47, 47, 832, 832, 5, 2, 260, 260, 272, 273, 283, 283, 5, 2, 261, 263, 279, 282, 284, 286, 4, 2, 269, 269, 271, 271, 4, 2, 267, 267, 270, 270, 4, 2, 265, 266, 276, 278, 4, 2, 136, 136, 589, 589, 4, 2, 407, 407, 541, 541, 4, 2, 514, 514, 531, 531, 4, 2, 116, 116, 862, 862, 5, 2, 65, 65, 181, 181, 676, 676, 4, 2, 141, 141, 153, 153, 5, 2, 9, 9, 311, 311, 604, 604, 5, 2, 116, 116, 855, 856, 862, 863, 3, 2, 852, 858, 4, 2, 230, 230, 758, 798, 3, 2, 811, 814, 7, 2, 719, 720, 736, 738, 745, 745, 751, 752, 754, 754, 3, 2, 698, 705, 5, 2, 221, 225, 238, 238, 241, 241, 78, 2, 14, 14, 17, 17, 21, 21, 32, 32, 38, 39, 44, 44, 50, 50, 57, 57, 59, 59, 61, 61, 76, 76, 97, 97, 119, 119, 124, 124, 127, 127, 133, 133, 162, 162, 172, 172, 243, 243, 257, 264, 268, 268, 272, 273, 279, 286, 306, 311, 313, 331, 333, 345, 347, 378, 380, 395, 397, 402, 404, 406, 408, 412, 415, 417, 419, 428, 430, 430, 432, 436, 438, 456, 458, 465, 467, 475, 477, 478, 480, 500, 502, 508, 510, 512, 514, 524, 527, 532, 535, 540, 542, 544, 546, 556, 558, 564, 567, 574, 577, 577, 579, 580, 582, 607, 635, 649, 651, 667, 669, 676, 678, 687, 689, 690, 692, 697, 706, 706, 708, 709, 711, 714, 716, 718, 721, 723, 728, 729, 731, 735, 739, 740, 742, 744, 746, 746, 748, 750, 753, 753, 755, 757, 804, 804, 824, 824, 827, 827, 834, 835, 840, 840, 26, 2, 41, 41, 100, 100, 152, 152, 154, 154, 221, 223, 225, 225, 255, 256, 264, 267, 269, 271, 274, 278, 298, 298, 437, 437, 688, 688, 698, 705, 748, 748, 815, 815, 818, 823, 825, 826, 828, 829, 831, 833, 836, 836, 838, 838, 842, 842, 858, 858, 2, 9492, 2, 843, 3, 2, 2, 2, 4, 851, 3, 2, 2, 2, 6, 868, 3, 2, 2, 2, 8, 870, 3, 2, 2, 2, 10, 911, 3, 2, 2, 2, 12, 930, 3, 2, 2, 2, 14, 941, 3, 2, 2, 2, 16, 957, 3, 2, 2, 2, 18, 962, 3, 2, 2, 2, 20, 974, 3, 2, 2, 2, 22, 1009, 3, 2, 2, 2, 24, 1019, 3, 2, 2, 2, 26, 1021, 3, 2, 2, 2, 28, 1033, 3, 2, 2, 2, 30, 1063, 3, 2, 2, 2, 32, 1099, 3, 2, 2, 2, 34, 1150, 3, 2, 2, 2, 36, 1179, 3, 2, 2, 2, 38, 1186, 3, 2, 2, 2, 40, 1283, 3, 2, 2, 2, 42, 1285, 3, 2, 2, 2, 44, 1322, 3, 2, 2, 2, 46, 1386, 3, 2, 2, 2, 48, 1408, 3, 2, 2, 2, 50, 1414, 3, 2, 2, 2, 52, 1436, 3, 2, 2, 2, 54, 1516, 3, 2, 2, 2, 56, 1523, 3, 2, 2, 2, 58, 1525, 3, 2, 2, 2, 60, 1530, 3, 2, 2, 2, 62, 1570, 3, 2, 2, 2, 64, 1576, 3, 2, 2, 2, 66, 1578, 3, 2, 2, 2, 68, 1599, 3, 2, 2, 2, 70, 1606, 3, 2, 2, 2, 72, 1608, 3, 2, 2, 2, 74, 1633, 3, 2, 2, 2, 76, 1636, 3, 2, 2, 2, 78, 1664, 3, 2, 2, 2, 80, 1680, 3, 2, 2, 2, 82, 1682, 3, 2, 2, 2, 84, 1776, 3, 2, 2, 2, 86, 1779, 3, 2, 2, 2, 88, 1791, 3, 2, 2, 2, 90, 1795, 3, 2, 2, 2, 92, 1845, 3, 2, 2, 2, 94, 1847, 3, 2, 2, 2, 96, 1875, 3, 2, 2, 2, 98, 1885, 3, 2, 2, 2, 100, 2072, 3, 2, 2, 2, 102, 2074, 3, 2, 2, 2, 104, 2076, 3, 2, 2, 2, 106, 2079, 3, 2, 2, 2, 108, 2154, 3, 2, 2, 2, 110, 2177, 3, 2, 2, 2, 112, 2325, 3, 2, 2, 2, 114, 2330, 3, 2, 2, 2, 116, 2332, 3, 2, 2, 2, 118, 2342, 3, 2, 2, 2, 120, 2398, 3, 2, 2, 2, 122, 2418, 3, 2, 2, 2, 124, 2420, 3, 2, 2, 2, 126, 2455, 3, 2, 2, 2, 128, 2464, 3, 2, 2, 2, 130, 2471, 3, 2, 2, 2, 132, 2494, 3, 2, 2, 2, 134, 2503, 3, 2, 2, 2, 136, 2518, 3, 2, 2, 2, 138, 2540, 3, 2, 2, 2, 140, 2596, 3, 2, 2, 2, 142, 2892, 3, 2, 2, 2, 144, 2992, 3, 2, 2, 2, 146, 2994, 3, 2, 2, 2, 148, 3001, 3, 2, 2, 2, 150, 3008, 3, 2, 2, 2, 152, 3031, 3, 2, 2, 2, 154, 3041, 3, 2, 2, 2, 156, 3048, 3, 2, 2, 2, 158, 3055, 3, 2, 2, 2, 160, 3062, 3, 2, 2, 2, 162, 3071, 3, 2, 2, 2, 164, 3083, 3, 2, 2, 2, 166, 3096, 3, 2, 2, 2, 168, 3103, 3, 2, 2, 2, 170, 3119, 3, 2, 2, 2, 172, 3146, 3, 2, 2, 2, 174, 3148, 3, 2, 2, 2, 176, 3158, 3, 2, 2, 2, 178, 3162, 3, 2, 2, 2, 180, 3168, 3, 2, 2, 2, 182, 3180, 3, 2, 2, 2, 184, 3182, 3, 2, 2, 2, 186, 3189, 3, 2, 2, 2, 188, 3191, 3, 2, 2, 2, 190, 3240, 3, 2, 2, 2, 192, 3249, 3, 2, 2, 2, 194, 3251, 3, 2, 2, 2, 196, 3262, 3, 2, 2, 2, 198, 3268, 3, 2, 2, 2, 200, 3342, 3, 2, 2, 2, 202, 3405, 3, 2, 2, 2, 204, 3423, 3, 2, 2, 2, 206, 3517, 3, 2, 2, 2, 208, 3520, 3, 2, 2, 2, 210, 3532, 3, 2, 2, 2, 212, 3552, 3, 2, 2, 2, 214, 3580, 3, 2, 2, 2, 216, 3584, 3, 2, 2, 2, 218, 3586, 3, 2, 2, 2, 220, 3596, 3, 2, 2, 2, 222, 3616, 3, 2, 2, 2, 224, 3623, 3, 2, 2, 2, 226, 3625, 3, 2, 2, 2, 228, 3636, 3, 2, 2, 2, 230, 3645, 3, 2, 2, 2, 232, 3651, 3, 2, 2, 2, 234, 3674, 3, 2, 2, 2, 236, 3676, 3, 2, 2, 2, 238, 3712, 3, 2, 2, 2, 240, 3767, 3, 2, 2, 2, 242, 3776, 3, 2, 2, 2, 244, 3796, 3, 2, 2, 2, 246, 3808, 3, 2, 2, 2, 248, 3812, 3, 2, 2, 2, 250, 3823, 3, 2, 2, 2, 252, 3856, 3, 2, 2, 2, 254, 3877, 3, 2, 2, 2, 256, 3887, 3, 2, 2, 2, 258, 3891, 3, 2, 2, 2, 260, 3917, 3, 2, 2, 2, 262, 3964, 3, 2, 2, 2, 264, 3966, 3, 2, 2, 2, 266, 3970, 3, 2, 2, 2, 268, 3987, 3, 2, 2, 2, 270, 4038, 3, 2, 2, 2, 272, 4047, 3, 2, 2, 2, 274, 4057, 3, 2, 2, 2, 276, 4067, 3, 2, 2, 2, 278, 4123, 3, 2, 2, 2, 280, 4125, 3, 2, 2, 2, 282, 4149, 3, 2, 2, 2, 284, 4155, 3, 2, 2, 2, 286, 4163, 3, 2, 2, 2, 288, 4180, 3, 2, 2, 2, 290, 4196, 3, 2, 2, 2, 292, 4233, 3, 2, 2, 2, 294, 4239, 3, 2, 2, 2, 296, 4248, 3, 2, 2, 2, 298, 4261, 3, 2, 2, 2, 300, 4265, 3, 2, 2, 2, 302, 4303, 3, 2, 2, 2, 304, 4341, 3, 2, 2, 2, 306, 4355, 3, 2, 2, 2, 308, 4363, 3, 2, 2, 2, 310, 4367, 3, 2, 2, 2, 312, 4373, 3, 2, 2, 2, 314, 4387, 3, 2, 2, 2, 316, 4390, 3, 2, 2, 2, 318, 4408, 3, 2, 2, 2, 320, 4412, 3, 2, 2, 2, 322, 4428, 3, 2, 2, 2, 324, 4430, 3, 2, 2, 2, 326, 4442, 3, 2, 2, 2, 328, 4446, 3, 2, 2, 2, 330, 4463, 3, 2, 2, 2, 332, 4480, 3, 2, 2, 2, 334, 4483, 3, 2, 2, 2, 336, 4493, 3, 2, 2, 2, 338, 4497, 3, 2, 2, 2, 340, 4507, 3, 2, 2, 2, 342, 4510, 3, 2, 2, 2, 344, 4515, 3, 2, 2, 2, 346, 4535, 3, 2, 2, 2, 348, 4537, 3, 2, 2, 2, 350, 4554, 3, 2, 2, 2, 352, 4563, 3, 2, 2, 2, 354, 4572, 3, 2, 2, 2, 356, 4574, 3, 2, 2, 2, 358, 4588, 3, 2, 2, 2, 360, 4602, 3, 2, 2, 2, 362, 4617, 3, 2, 2, 2, 364, 4626, 3, 2, 2, 2, 366, 4651, 3, 2, 2, 2, 368, 4666, 3, 2, 2, 2, 370, 4685, 3, 2, 2, 2, 372, 4715, 3, 2, 2, 2, 374, 4717, 3, 2, 2, 2, 376, 4719, 3, 2, 2, 2, 378, 4721, 3, 2, 2, 2, 380, 4736, 3, 2, 2, 2, 382, 4765, 3, 2, 2, 2, 384, 4767, 3, 2, 2, 2, 386, 4769, 3, 2, 2, 2, 388, 4771, 3, 2, 2, 2, 390, 4786, 3, 2, 2, 2, 392, 4788, 3, 2, 2, 2, 394, 4855, 3, 2, 2, 2, 396, 4857, 3, 2, 2, 2, 398, 4863, 3, 2, 2, 2, 400, 4890, 3, 2, 2, 2, 402, 4904, 3, 2, 2, 2, 404, 4915, 3, 2, 2, 2, 406, 4917, 3, 2, 2, 2, 408, 4923, 3, 2, 2, 2, 410, 4933, 3, 2, 2, 2, 412, 4937, 3, 2, 2, 2, 414, 4944, 3, 2, 2, 2, 416, 4948, 3, 2, 2, 2, 418, 4954, 3, 2, 2, 2, 420, 4961, 3, 2, 2, 2, 422, 4967, 3, 2, 2, 2, 424, 4973, 3, 2, 2, 2, 426, 4978, 3, 2, 2, 2, 428, 5023, 3, 2, 2, 2, 430, 5044, 3, 2, 2, 2, 432, 5069, 3, 2, 2, 2, 434, 5072, 3, 2, 2, 2, 436, 5078, 3, 2, 2, 2, 438, 5094, 3, 2, 2, 2, 440, 5109, 3, 2, 2, 2, 442, 5115, 3, 2, 2, 2, 444, 5145, 3, 2, 2, 2, 446, 5147, 3, 2, 2, 2, 448, 5154, 3, 2, 2, 2, 450, 5166, 3, 2, 2, 2, 452, 5172, 3, 2, 2, 2, 454, 5197, 3, 2, 2, 2, 456, 5201, 3, 2, 2, 2, 458, 5205, 3, 2, 2, 2, 460, 5216, 3, 2, 2, 2, 462, 5224, 3, 2, 2, 2, 464, 5287, 3, 2, 2, 2, 466, 5346, 3, 2, 2, 2, 468, 5448, 3, 2, 2, 2, 470, 5458, 3, 2, 2, 2, 472, 5460, 3, 2, 2, 2, 474, 5478, 3, 2, 2, 2, 476, 5502, 3, 2, 2, 2, 478, 5526, 3, 2, 2, 2, 480, 5533, 3, 2, 2, 2, 482, 5553, 3, 2, 2, 2, 484, 5562, 3, 2, 2, 2, 486, 5624, 3, 2, 2, 2, 488, 5626, 3, 2, 2, 2, 490, 5630, 3, 2, 2, 2, 492, 5664, 3, 2, 2, 2, 494, 5666, 3, 2, 2, 2, 496, 5707, 3, 2, 2, 2, 498, 5745, 3, 2, 2, 2, 500, 5764, 3, 2, 2, 2, 502, 5791, 3, 2, 2, 2, 504, 5795, 3, 2, 2, 2, 506, 5816, 3, 2, 2, 2, 508, 5826, 3, 2, 2, 2, 510, 5836, 3, 2, 2, 2, 512, 5876, 3, 2, 2, 2, 514, 5878, 3, 2, 2, 2, 516, 5881, 3, 2, 2, 2, 518, 5911, 3, 2, 2, 2, 520, 5913, 3, 2, 2, 2, 522, 5916, 3, 2, 2, 2, 524, 6016, 3, 2, 2, 2, 526, 6034, 3, 2, 2, 2, 528, 6036, 3, 2, 2, 2, 530, 6088, 3, 2, 2, 2, 532, 6090, 3, 2, 2, 2, 534, 6099, 3, 2, 2, 2, 536, 6105, 3, 2, 2, 2, 538, 6112, 3, 2, 2, 2, 540, 6127, 3, 2, 2, 2, 542, 6136, 3, 2, 2, 2, 544, 6138, 3, 2, 2, 2, 546, 6152, 3, 2, 2, 2, 548, 6173, 3, 2, 2, 2, 550, 6178, 3, 2, 2, 2, 552, 6188, 3, 2, 2, 2, 554, 6194, 3, 2, 2, 2, 556, 6228, 3, 2, 2, 2, 558, 6282, 3, 2, 2, 2, 560, 6468, 3, 2, 2, 2, 562, 6480, 3, 2, 2, 2, 564, 6496, 3, 2, 2, 2, 566, 6502, 3, 2, 2, 2, 568, 6521, 3, 2, 2, 2, 570, 6534, 3, 2, 2, 2, 572, 6548, 3, 2, 2, 2, 574, 6550, 3, 2, 2, 2, 576, 6553, 3, 2, 2, 2, 578, 6577, 3, 2, 2, 2, 580, 6589, 3, 2, 2, 2, 582, 6595, 3, 2, 2, 2, 584, 6607, 3, 2, 2, 2, 586, 6621, 3, 2, 2, 2, 588, 6623, 3, 2, 2, 2, 590, 6631, 3, 2, 2, 2, 592, 6639, 3, 2, 2, 2, 594, 6641, 3, 2, 2, 2, 596, 6643, 3, 2, 2, 2, 598, 6683, 3, 2, 2, 2, 600, 6690, 3, 2, 2, 2, 602, 6692, 3, 2, 2, 2, 604, 6715, 3, 2, 2, 2, 606, 6721, 3, 2, 2, 2, 608, 6731, 3, 2, 2, 2, 610, 6740, 3, 2, 2, 2, 612, 6743, 3, 2, 2, 2, 614, 6746, 3, 2, 2, 2, 616, 6767, 3, 2, 2, 2, 618, 6788, 3, 2, 2, 2, 620, 6796, 3, 2, 2, 2, 622, 6808, 3, 2, 2, 2, 624, 6816, 3, 2, 2, 2, 626, 6854, 3, 2, 2, 2, 628, 6866, 3, 2, 2, 2, 630, 6868, 3, 2, 2, 2, 632, 6870, 3, 2, 2, 2, 634, 6872, 3, 2, 2, 2, 636, 6874, 3, 2, 2, 2, 638, 6876, 3, 2, 2, 2, 640, 6878, 3, 2, 2, 2, 642, 6880, 3, 2, 2, 2, 644, 6882, 3, 2, 2, 2, 646, 6890, 3, 2, 2, 2, 648, 6892, 3, 2, 2, 2, 650, 6894, 3, 2, 2, 2, 652, 6896, 3, 2, 2, 2, 654, 6898, 3, 2, 2, 2, 656, 6906, 3, 2, 2, 2, 658, 6908, 3, 2, 2, 2, 660, 6918, 3, 2, 2, 2, 662, 6934, 3, 2, 2, 2, 664, 6936, 3, 2, 2, 2, 666, 6958, 3, 2, 2, 2, 668, 6960, 3, 2, 2, 2, 670, 6962, 3, 2, 2, 2, 672, 6964, 3, 2, 2, 2, 674, 6966, 3, 2, 2, 2, 676, 6974, 3, 2, 2, 2, 678, 6984, 3, 2, 2, 2, 680, 6989, 3, 2, 2, 2, 682, 6993, 3, 2, 2, 2, 684, 7000, 3, 2, 2, 2, 686, 7002, 3, 2, 2, 2, 688, 7009, 3, 2, 2, 2, 690, 7011, 3, 2, 2, 2, 692, 7017, 3, 2, 2, 2, 694, 7019, 3, 2, 2, 2, 696, 7024, 3, 2, 2, 2, 698, 7026, 3, 2, 2, 2, 700, 7028, 3, 2, 2, 2, 702, 7046, 3, 2, 2, 2, 704, 7062, 3, 2, 2, 2, 706, 7064, 3, 2, 2, 2, 708, 7068, 3, 2, 2, 2, 710, 7079, 3, 2, 2, 2, 712, 7090, 3, 2, 2, 2, 714, 7095, 3, 2, 2, 2, 716, 7097, 3, 2, 2, 2, 718, 7101, 3, 2, 2, 2, 720, 7126, 3, 2, 2, 2, 722, 7128, 3, 2, 2, 2, 724, 7131, 3, 2, 2, 2, 726, 7136, 3, 2, 2, 2, 728, 7152, 3, 2, 2, 2, 730, 7280, 3, 2, 2, 2, 732, 7282, 3, 2, 2, 2, 734, 7315, 3, 2, 2, 2, 736, 7320, 3, 2, 2, 2, 738, 7324, 3, 2, 2, 2, 740, 7330, 3, 2, 2, 2, 742, 7338, 3, 2, 2, 2, 744, 7349, 3, 2, 2, 2, 746, 7357, 3, 2, 2, 2, 748, 7366, 3, 2, 2, 2, 750, 7379, 3, 2, 2, 2, 752, 7381, 3, 2, 2, 2, 754, 7389, 3, 2, 2, 2, 756, 7397, 3, 2, 2, 2, 758, 7431, 3, 2, 2, 2, 760, 7447, 3, 2, 2, 2, 762, 7449, 3, 2, 2, 2, 764, 7452, 3, 2, 2, 2, 766, 7456, 3, 2, 2, 2, 768, 7477, 3, 2, 2, 2, 770, 7658, 3, 2, 2, 2, 772, 7660, 3, 2, 2, 2, 774, 7679, 3, 2, 2, 2, 776, 7681, 3, 2, 2, 2, 778, 7744, 3, 2, 2, 2, 780, 7784, 3, 2, 2, 2, 782, 7786, 3, 2, 2, 2, 784, 7795, 3, 2, 2, 2, 786, 7806, 3, 2, 2, 2, 788, 7808, 3, 2, 2, 2, 790, 7811, 3, 2, 2, 2, 792, 7815, 3, 2, 2, 2, 794, 7817, 3, 2, 2, 2, 796, 7829, 3, 2, 2, 2, 798, 7831, 3, 2, 2, 2, 800, 7865, 3, 2, 2, 2, 802, 7867, 3, 2, 2, 2, 804, 7872, 3, 2, 2, 2, 806, 7884, 3, 2, 2, 2, 808, 7897, 3, 2, 2, 2, 810, 7908, 3, 2, 2, 2, 812, 8026, 3, 2, 2, 2, 814, 8048, 3, 2, 2, 2, 816, 8058, 3, 2, 2, 2, 818, 8067, 3, 2, 2, 2, 820, 8076, 3, 2, 2, 2, 822, 8085, 3, 2, 2, 2, 824, 8087, 3, 2, 2, 2, 826, 8094, 3, 2, 2, 2, 828, 8096, 3, 2, 2, 2, 830, 8098, 3, 2, 2, 2, 832, 8100, 3, 2, 2, 2, 834, 8102, 3, 2, 2, 2, 836, 8104, 3, 2, 2, 2, 838, 8106, 3, 2, 2, 2, 840, 8108, 3, 2, 2, 2, 842, 844, 5, 4, 3, 2, 843, 842, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 846, 7, 2, 2, 3, 846, 3, 3, 2, 2, 2, 847, 850, 5, 6, 4, 2, 848, 850, 5, 8, 5, 2, 849, 847, 3, 2, 2, 2, 849, 848, 3, 2, 2, 2, 850, 853, 3, 2, 2, 2, 851, 849, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 859, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 854, 856, 5, 6, 4, 2, 855, 857, 7, 871, 2, 2, 856, 855, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 860, 3, 2, 2, 2, 858, 860, 5, 8, 5, 2, 859, 854, 3, 2, 2, 2, 859, 858, 3, 2, 2, 2, 860, 5, 3, 2, 2, 2, 861, 869, 5, 10, 6, 2, 862, 869, 5, 12, 7, 2, 863, 869, 5, 14, 8, 2, 864, 869, 5, 16, 9, 2, 865, 869, 5, 18, 10, 2, 866, 869, 5, 22, 12, 2, 867, 869, 5, 24, 13, 2, 868, 861, 3, 2, 2, 2, 868, 862, 3, 2, 2, 2, 868, 863, 3, 2, 2, 2, 868, 864, 3, 2, 2, 2, 868, 865, 3, 2, 2, 2, 868, 866, 3, 2, 2, 2, 868, 867, 3, 2, 2, 2, 869, 7, 3, 2, 2, 2, 870, 871, 7, 871, 2, 2, 871, 9, 3, 2, 2, 2, 872, 912, 5, 26, 14, 2, 873, 912, 5, 28, 15, 2, 874, 912, 5, 30, 16, 2, 875, 912, 5, 32, 17, 2, 876, 912, 5, 34, 18, 2, 877, 912, 5, 544, 273, 2, 878, 912, 5, 38, 20, 2, 879, 912, 5, 40, 21, 2, 880, 912, 5, 42, 22, 2, 881, 912, 5, 44, 23, 2, 882, 912, 5, 46, 24, 2, 883, 912, 5, 52, 27, 2, 884, 912, 5, 36, 19, 2, 885, 912, 5, 122, 62, 2, 886, 912, 5, 124, 63, 2, 887, 912, 5, 126, 64, 2, 888, 912, 5, 128, 65, 2, 889, 912, 5, 130, 66, 2, 890, 912, 5, 132, 67, 2, 891, 912, 5, 134, 68, 2, 892, 912, 5, 136, 69, 2, 893, 912, 5, 138, 70, 2, 894, 912, 5, 140, 71, 2, 895, 912, 5, 146, 74, 2, 896, 912, 5, 148, 75, 2, 897, 912, 5, 150, 76, 2, 898, 912, 5, 152, 77, 2, 899, 912, 5, 154, 78, 2, 900, 912, 5, 156, 79, 2, 901, 912, 5, 158, 80, 2, 902, 912, 5, 160, 81, 2, 903, 912, 5, 162, 82, 2, 904, 912, 5, 164, 83, 2, 905, 912, 5, 166, 84, 2, 906, 912, 5, 168, 85, 2, 907, 912, 5, 170, 86, 2, 908, 912, 5, 172, 87, 2, 909, 912, 5, 174, 88, 2, 910, 912, 5, 178, 90, 2, 911, 872, 3, 2, 2, 2, 911, 873, 3, 2, 2, 2, 911, 874, 3, 2, 2, 2, 911, 875, 3, 2, 2, 2, 911, 876, 3, 2, 2, 2, 911, 877, 3, 2, 2, 2, 911, 878, 3, 2, 2, 2, 911, 879, 3, 2, 2, 2, 911, 880, 3, 2, 2, 2, 911, 881, 3, 2, 2, 2, 911, 882, 3, 2, 2, 2, 911, 883, 3, 2, 2, 2, 911, 884, 3, 2, 2, 2, 911, 885, 3, 2, 2, 2, 911, 886, 3, 2, 2, 2, 911, 887, 3, 2, 2, 2, 911, 888, 3, 2, 2, 2, 911, 889, 3, 2, 2, 2, 911, 890, 3, 2, 2, 2, 911, 891, 3, 2, 2, 2, 911, 892, 3, 2, 2, 2, 911, 893, 3, 2, 2, 2, 911, 894, 3, 2, 2, 2, 911, 895, 3, 2, 2, 2, 911, 896, 3, 2, 2, 2, 911, 897, 3, 2, 2, 2, 911, 898, 3, 2, 2, 2, 911, 899, 3, 2, 2, 2, 911, 900, 3, 2, 2, 2, 911, 901, 3, 2, 2, 2, 911, 902, 3, 2, 2, 2, 911, 903, 3, 2, 2, 2, 911, 904, 3, 2, 2, 2, 911, 905, 3, 2, 2, 2, 911, 906, 3, 2, 2, 2, 911, 907, 3, 2, 2, 2, 911, 908, 3, 2, 2, 2, 911, 909, 3, 2, 2, 2, 911, 910, 3, 2, 2, 2, 912, 11, 3, 2, 2, 2, 913, 931, 5, 206, 104, 2, 914, 931, 5, 208, 105, 2, 915, 931, 5, 188, 95, 2, 916, 931, 5, 216, 109, 2, 917, 931, 5, 182, 92, 2, 918, 931, 5, 204, 103, 2, 919, 931, 5, 180, 91, 2, 920, 931, 5, 194, 98, 2, 921, 931, 5, 198, 100, 2, 922, 931, 5, 200, 101, 2, 923, 931, 5, 202, 102, 2, 924, 931, 5, 184, 93, 2, 925, 931, 5, 186, 94, 2, 926, 931, 5, 248, 125, 2, 927, 931, 5, 218, 110, 2, 928, 931, 5, 620, 311, 2, 929, 931, 5, 622, 312, 2, 930, 913, 3, 2, 2, 2, 930, 914, 3, 2, 2, 2, 930, 915, 3, 2, 2, 2, 930, 916, 3, 2, 2, 2, 930, 917, 3, 2, 2, 2, 930, 918, 3, 2, 2, 2, 930, 919, 3, 2, 2, 2, 930, 920, 3, 2, 2, 2, 930, 921, 3, 2, 2, 2, 930, 922, 3, 2, 2, 2, 930, 923, 3, 2, 2, 2, 930, 924, 3, 2, 2, 2, 930, 925, 3, 2, 2, 2, 930, 926, 3, 2, 2, 2, 930, 927, 3, 2, 2, 2, 930, 928, 3, 2, 2, 2, 930, 929, 3, 2, 2, 2, 931, 13, 3, 2, 2, 2, 932, 942, 5, 324, 163, 2, 933, 942, 5, 326, 164, 2, 934, 942, 5, 328, 165, 2, 935, 942, 5, 330, 166, 2, 936, 942, 5, 332, 167, 2, 937, 942, 5, 334, 168, 2, 938, 942, 5, 336, 169, 2, 939, 942, 5, 338, 170, 2, 940, 942, 5, 340, 171, 2, 941, 932, 3, 2, 2, 2, 941, 933, 3, 2, 2, 2, 941, 934, 3, 2, 2, 2, 941, 935, 3, 2, 2, 2, 941, 936, 3, 2, 2, 2, 941, 937, 3, 2, 2, 2, 941, 938, 3, 2, 2, 2, 941, 939, 3, 2, 2, 2, 941, 940, 3, 2, 2, 2, 942, 15, 3, 2, 2, 2, 943, 958, 5, 356, 179, 2, 944, 958, 5, 358, 180, 2, 945, 958, 5, 360, 181, 2, 946, 958, 5, 362, 182, 2, 947, 958, 5, 364, 183, 2, 948, 958, 5, 366, 184, 2, 949, 958, 5, 368, 185, 2, 950, 958, 5, 370, 186, 2, 951, 958, 5, 406, 204, 2, 952, 958, 5, 408, 205, 2, 953, 958, 5, 410, 206, 2, 954, 958, 5, 412, 207, 2, 955, 958, 5, 414, 208, 2, 956, 958, 5, 416, 209, 2, 957, 943, 3, 2, 2, 2, 957, 944, 3, 2, 2, 2, 957, 945, 3, 2, 2, 2, 957, 946, 3, 2, 2, 2, 957, 947, 3, 2, 2, 2, 957, 948, 3, 2, 2, 2, 957, 949, 3, 2, 2, 2, 957, 950, 3, 2, 2, 2, 957, 951, 3, 2, 2, 2, 957, 952, 3, 2, 2, 2, 957, 953, 3, 2, 2, 2, 957, 954, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 957, 956, 3, 2, 2, 2, 958, 17, 3, 2, 2, 2, 959, 963, 5, 418, 210, 2, 960, 963, 5, 420, 211, 2, 961, 963, 5, 422, 212, 2, 962, 959, 3, 2, 2, 2, 962, 960, 3, 2, 2, 2, 962, 961, 3, 2, 2, 2, 963, 19, 3, 2, 2, 2, 964, 975, 5, 426, 214, 2, 965, 975, 5, 428, 215, 2, 966, 975, 5, 430, 216, 2, 967, 975, 5, 434, 218, 2, 968, 975, 5, 436, 219, 2, 969, 975, 5, 438, 220, 2, 970, 975, 5, 442, 222, 2, 971, 975, 5, 432, 217, 2, 972, 975, 5, 440, 221, 2, 973, 975, 5, 444, 223, 2, 974, 964, 3, 2, 2, 2, 974, 965, 3, 2, 2, 2, 974, 966, 3, 2, 2, 2, 974, 967, 3, 2, 2, 2, 974, 968, 3, 2, 2, 2, 974, 969, 3, 2, 2, 2, 974, 970, 3, 2, 2, 2, 974, 971, 3, 2, 2, 2, 974, 972, 3, 2, 2, 2, 974, 973, 3, 2, 2, 2, 975, 21, 3, 2, 2, 2, 976, 1010, 5, 462, 232, 2, 977, 1010, 5, 464, 233, 2, 978, 1010, 5, 466, 234, 2, 979, 1010, 5, 468, 235, 2, 980, 1010, 5, 472, 237, 2, 981, 1010, 5, 484, 243, 2, 982, 1010, 5, 486, 244, 2, 983, 1010, 5, 474, 238, 2, 984, 1010, 5, 476, 239, 2, 985, 1010, 5, 478, 240, 2, 986, 1010, 5, 480, 241, 2, 987, 1010, 5, 530, 266, 2, 988, 1010, 5, 532, 267, 2, 989, 1010, 5, 534, 268, 2, 990, 1010, 5, 536, 269, 2, 991, 1010, 5, 538, 270, 2, 992, 1010, 5, 546, 274, 2, 993, 1010, 5, 550, 276, 2, 994, 1010, 5, 552, 277, 2, 995, 1010, 5, 554, 278, 2, 996, 1010, 5, 556, 279, 2, 997, 1010, 5, 558, 280, 2, 998, 1010, 5, 560, 281, 2, 999, 1010, 5, 574, 288, 2, 1000, 1010, 5, 576, 289, 2, 1001, 1010, 5, 578, 290, 2, 1002, 1010, 5, 580, 291, 2, 1003, 1010, 5, 582, 292, 2, 1004, 1010, 5, 584, 293, 2, 1005, 1010, 5, 588, 295, 2, 1006, 1010, 5, 590, 296, 2, 1007, 1010, 5, 592, 297, 2, 1008, 1010, 5, 594, 298, 2, 1009, 976, 3, 2, 2, 2, 1009, 977, 3, 2, 2, 2, 1009, 978, 3, 2, 2, 2, 1009, 979, 3, 2, 2, 2, 1009, 980, 3, 2, 2, 2, 1009, 981, 3, 2, 2, 2, 1009, 982, 3, 2, 2, 2, 1009, 983, 3, 2, 2, 2, 1009, 984, 3, 2, 2, 2, 1009, 985, 3, 2, 2, 2, 1009, 986, 3, 2, 2, 2, 1009, 987, 3, 2, 2, 2, 1009, 988, 3, 2, 2, 2, 1009, 989, 3, 2, 2, 2, 1009, 990, 3, 2, 2, 2, 1009, 991, 3, 2, 2, 2, 1009, 992, 3, 2, 2, 2, 1009, 993, 3, 2, 2, 2, 1009, 994, 3, 2, 2, 2, 1009, 995, 3, 2, 2, 2, 1009, 996, 3, 2, 2, 2, 1009, 997, 3, 2, 2, 2, 1009, 998, 3, 2, 2, 2, 1009, 999, 3, 2, 2, 2, 1009, 1000, 3, 2, 2, 2, 1009, 1001, 3, 2, 2, 2, 1009, 1002, 3, 2, 2, 2, 1009, 1003, 3, 2, 2, 2, 1009, 1004, 3, 2, 2, 2, 1009, 1005, 3, 2, 2, 2, 1009, 1006, 3, 2, 2, 2, 1009, 1007, 3, 2, 2, 2, 1009, 1008, 3, 2, 2, 2, 1010, 23, 3, 2, 2, 2, 1011, 1020, 5, 604, 303, 2, 1012, 1020, 5, 606, 304, 2, 1013, 1020, 5, 608, 305, 2, 1014, 1020, 5, 610, 306, 2, 1015, 1020, 5, 612, 307, 2, 1016, 1020, 5, 614, 308, 2, 1017, 1020, 5, 616, 309, 2, 1018, 1020, 5, 624, 313, 2, 1019, 1011, 3, 2, 2, 2, 1019, 1012, 3, 2, 2, 2, 1019, 1013, 3, 2, 2, 2, 1019, 1014, 3, 2, 2, 2, 1019, 1015, 3, 2, 2, 2, 1019, 1016, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1019, 1018, 3, 2, 2, 2, 1020, 25, 3, 2, 2, 2, 1021, 1022, 7, 36, 2, 2, 1022, 1024, 9, 2, 2, 2, 1023, 1025, 5, 764, 383, 2, 1024, 1023, 3, 2, 2, 2, 1024, 1025, 3, 2, 2, 2, 1025, 1026, 3, 2, 2, 2, 1026, 1030, 5, 630, 316, 2, 1027, 1029, 5, 54, 28, 2, 1028, 1027, 3, 2, 2, 2, 1029, 1032, 3, 2, 2, 2, 1030, 1028, 3, 2, 2, 2, 1030, 1031, 3, 2, 2, 2, 1031, 27, 3, 2, 2, 2, 1032, 1030, 3, 2, 2, 2, 1033, 1035, 7, 36, 2, 2, 1034, 1036, 5, 60, 31, 2, 1035, 1034, 3, 2, 2, 2, 1035, 1036, 3, 2, 2, 2, 1036, 1037, 3, 2, 2, 2, 1037, 1039, 7, 387, 2, 2, 1038, 1040, 5, 764, 383, 2, 1039, 1038, 3, 2, 2, 2, 1039, 1040, 3, 2, 2, 2, 1040, 1041, 3, 2, 2, 2, 1041, 1042, 5, 706, 354, 2, 1042, 1043, 7, 121, 2, 2, 1043, 1044, 7, 592, 2, 2, 1044, 1051, 5, 62, 32, 2, 1045, 1046, 7, 121, 2, 2, 1046, 1048, 7, 345, 2, 2, 1047, 1049, 7, 116, 2, 2, 1048, 1047, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1050, 3, 2, 2, 2, 1050, 1052, 7, 543, 2, 2, 1051, 1045, 3, 2, 2, 2, 1051, 1052, 3, 2, 2, 2, 1052, 1054, 3, 2, 2, 2, 1053, 1055, 5, 70, 36, 2, 1054, 1053, 3, 2, 2, 2, 1054, 1055, 3, 2, 2, 2, 1055, 1058, 3, 2, 2, 2, 1056, 1057, 7, 342, 2, 2, 1057, 1059, 7, 884, 2, 2, 1058, 1056, 3, 2, 2, 2, 1058, 1059, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1061, 7, 373, 2, 2, 1061, 1062, 5, 424, 213, 2, 1062, 29, 3, 2, 2, 2, 1063, 1065, 7, 36, 2, 2, 1064, 1066, 9, 3, 2, 2, 1065, 1064, 3, 2, 2, 2, 1065, 1066, 3, 2, 2, 2, 1066, 1068, 3, 2, 2, 2, 1067, 1069, 9, 4, 2, 2, 1068, 1067, 3, 2, 2, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 3, 2, 2, 2, 1070, 1071, 7, 84, 2, 2, 1071, 1073, 5, 642, 322, 2, 1072, 1074, 5, 72, 37, 2, 1073, 1072, 3, 2, 2, 2, 1073, 1074, 3, 2, 2, 2, 1074, 1075, 3, 2, 2, 2, 1075, 1076, 7, 121, 2, 2, 1076, 1077, 5, 656, 329, 2, 1077, 1081, 5, 742, 372, 2, 1078, 1080, 5, 74, 38, 2, 1079, 1078, 3, 2, 2, 2, 1080, 1083, 3, 2, 2, 2, 1081, 1079, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1096, 3, 2, 2, 2, 1083, 1081, 3, 2, 2, 2, 1084, 1086, 7, 310, 2, 2, 1085, 1087, 7, 859, 2, 2, 1086, 1085, 3, 2, 2, 2, 1086, 1087, 3, 2, 2, 2, 1087, 1088, 3, 2, 2, 2, 1088, 1095, 9, 5, 2, 2, 1089, 1091, 7, 106, 2, 2, 1090, 1092, 7, 859, 2, 2, 1091, 1090, 3, 2, 2, 2, 1091, 1092, 3, 2, 2, 2, 1092, 1093, 3, 2, 2, 2, 1093, 1095, 9, 6, 2, 2, 1094, 1084, 3, 2, 2, 2, 1094, 1089, 3, 2, 2, 2, 1095, 1098, 3, 2, 2, 2, 1096, 1094, 3, 2, 2, 2, 1096, 1097, 3, 2, 2, 2, 1097, 31, 3, 2, 2, 2, 1098, 1096, 3, 2, 2, 2, 1099, 1100, 7, 36, 2, 2, 1100, 1101, 7, 453, 2, 2, 1101, 1102, 7, 76, 2, 2, 1102, 1103, 5, 710, 356, 2, 1103, 1104, 7, 8, 2, 2, 1104, 1105, 7, 673, 2, 2, 1105, 1111, 7, 884, 2, 2, 1106, 1108, 7, 430, 2, 2, 1107, 1109, 7, 859, 2, 2, 1108, 1107, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1112, 5, 718, 360, 2, 1111, 1106, 3, 2, 2, 2, 1111, 1112, 3, 2, 2, 2, 1112, 1118, 3, 2, 2, 2, 1113, 1115, 7, 674, 2, 2, 1114, 1116, 7, 859, 2, 2, 1115, 1114, 3, 2, 2, 2, 1115, 1116, 3, 2, 2, 2, 1116, 1117, 3, 2, 2, 2, 1117, 1119, 5, 718, 360, 2, 1118, 1113, 3, 2, 2, 2, 1118, 1119, 3, 2, 2, 2, 1119, 1125, 3, 2, 2, 2, 1120, 1122, 7, 555, 2, 2, 1121, 1123, 7, 859, 2, 2, 1122, 1121, 3, 2, 2, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1126, 5, 718, 360, 2, 1125, 1120, 3, 2, 2, 2, 1125, 1126, 3, 2, 2, 2, 1126, 1132, 3, 2, 2, 2, 1127, 1129, 7, 506, 2, 2, 1128, 1130, 7, 859, 2, 2, 1129, 1128, 3, 2, 2, 2, 1129, 1130, 3, 2, 2, 2, 1130, 1131, 3, 2, 2, 2, 1131, 1133, 5, 710, 356, 2, 1132, 1127, 3, 2, 2, 2, 1132, 1133, 3, 2, 2, 2, 1133, 1135, 3, 2, 2, 2, 1134, 1136, 7, 689, 2, 2, 1135, 1134, 3, 2, 2, 2, 1135, 1136, 3, 2, 2, 2, 1136, 1142, 3, 2, 2, 2, 1137, 1139, 7, 342, 2, 2, 1138, 1140, 7, 859, 2, 2, 1139, 1138, 3, 2, 2, 2, 1139, 1140, 3, 2, 2, 2, 1140, 1141, 3, 2, 2, 2, 1141, 1143, 7, 884, 2, 2, 1142, 1137, 3, 2, 2, 2, 1142, 1143, 3, 2, 2, 2, 1143, 1144, 3, 2, 2, 2, 1144, 1146, 7, 382, 2, 2, 1145, 1147, 7, 859, 2, 2, 1146, 1145, 3, 2, 2, 2, 1146, 1147, 3, 2, 2, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1149, 5, 696, 349, 2, 1149, 33, 3, 2, 2, 2, 1150, 1152, 7, 36, 2, 2, 1151, 1153, 5, 60, 31, 2, 1152, 1151, 3, 2, 2, 2, 1152, 1153, 3, 2, 2, 2, 1153, 1154, 3, 2, 2, 2, 1154, 1156, 7, 134, 2, 2, 1155, 1157, 5, 764, 383, 2, 1156, 1155, 3, 2, 2, 2, 1156, 1157, 3, 2, 2, 2, 1157, 1158, 3, 2, 2, 2, 1158, 1159, 5, 706, 354, 2, 1159, 1161, 7, 868, 2, 2, 1160, 1162, 5, 76, 39, 2, 1161, 1160, 3, 2, 2, 2, 1161, 1162, 3, 2, 2, 2, 1162, 1167, 3, 2, 2, 2, 1163, 1164, 7, 870, 2, 2, 1164, 1166, 5, 76, 39, 2, 1165, 1163, 3, 2, 2, 2, 1166, 1169, 3, 2, 2, 2, 1167, 1165, 3, 2, 2, 2, 1167, 1168, 3, 2, 2, 2, 1168, 1170, 3, 2, 2, 2, 1169, 1167, 3, 2, 2, 2, 1170, 1174, 7, 869, 2, 2, 1171, 1173, 5, 78, 40, 2, 1172, 1171, 3, 2, 2, 2, 1173, 1176, 3, 2, 2, 2, 1174, 1172, 3, 2, 2, 2, 1174, 1175, 3, 2, 2, 2, 1175, 1177, 3, 2, 2, 2, 1176, 1174, 3, 2, 2, 2, 1177, 1178, 5, 424, 213, 2, 1178, 35, 3, 2, 2, 2, 1179, 1180, 7, 36, 2, 2, 1180, 1182, 7, 584, 2, 2, 1181, 1183, 5, 764, 383, 2, 1182, 1181, 3, 2, 2, 2, 1182, 1183, 3, 2, 2, 2, 1183, 1184, 3, 2, 2, 2, 1184, 1185, 5, 658, 330, 2, 1185, 37, 3, 2, 2, 2, 1186, 1187, 7, 36, 2, 2, 1187, 1188, 7, 594, 2, 2, 1188, 1189, 5, 710, 356, 2, 1189, 1190, 7, 69, 2, 2, 1190, 1191, 7, 362, 2, 2, 1191, 1192, 7, 694, 2, 2, 1192, 1193, 9, 7, 2, 2, 1193, 1194, 7, 520, 2, 2, 1194, 1195, 7, 868, 2, 2, 1195, 1200, 5, 80, 41, 2, 1196, 1197, 7, 870, 2, 2, 1197, 1199, 5, 80, 41, 2, 1198, 1196, 3, 2, 2, 2, 1199, 1202, 3, 2, 2, 2, 1200, 1198, 3, 2, 2, 2, 1200, 1201, 3, 2, 2, 2, 1201, 1203, 3, 2, 2, 2, 1202, 1200, 3, 2, 2, 2, 1203, 1204, 7, 869, 2, 2, 1204, 39, 3, 2, 2, 2, 1205, 1207, 7, 36, 2, 2, 1206, 1208, 7, 662, 2, 2, 1207, 1206, 3, 2, 2, 2, 1207, 1208, 3, 2, 2, 2, 1208, 1209, 3, 2, 2, 2, 1209, 1211, 7, 175, 2, 2, 1210, 1212, 5, 764, 383, 2, 1211, 1210, 3, 2, 2, 2, 1211, 1212, 3, 2, 2, 2, 1212, 1213, 3, 2, 2, 2, 1213, 1214, 5, 652, 327, 2, 1214, 1225, 5, 82, 42, 2, 1215, 1222, 5, 100, 51, 2, 1216, 1218, 7, 870, 2, 2, 1217, 1216, 3, 2, 2, 2, 1217, 1218, 3, 2, 2, 2, 1218, 1219, 3, 2, 2, 2, 1219, 1221, 5, 100, 51, 2, 1220, 1217, 3, 2, 2, 2, 1221, 1224, 3, 2, 2, 2, 1222, 1220, 3, 2, 2, 2, 1222, 1223, 3, 2, 2, 2, 1223, 1226, 3, 2, 2, 2, 1224, 1222, 3, 2, 2, 2, 1225, 1215, 3, 2, 2, 2, 1225, 1226, 3, 2, 2, 2, 1226, 1228, 3, 2, 2, 2, 1227, 1229, 5, 106, 54, 2, 1228, 1227, 3, 2, 2, 2, 1228, 1229, 3, 2, 2, 2, 1229, 1284, 3, 2, 2, 2, 1230, 1232, 7, 36, 2, 2, 1231, 1233, 7, 662, 2, 2, 1232, 1231, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 1234, 3, 2, 2, 2, 1234, 1236, 7, 175, 2, 2, 1235, 1237, 5, 764, 383, 2, 1236, 1235, 3, 2, 2, 2, 1236, 1237, 3, 2, 2, 2, 1237, 1238, 3, 2, 2, 2, 1238, 1240, 5, 652, 327, 2, 1239, 1241, 5, 82, 42, 2, 1240, 1239, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 1252, 3, 2, 2, 2, 1242, 1249, 5, 100, 51, 2, 1243, 1245, 7, 870, 2, 2, 1244, 1243, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1246, 3, 2, 2, 2, 1246, 1248, 5, 100, 51, 2, 1247, 1244, 3, 2, 2, 2, 1248, 1251, 3, 2, 2, 2, 1249, 1247, 3, 2, 2, 2, 1249, 1250, 3, 2, 2, 2, 1250, 1253, 3, 2, 2, 2, 1251, 1249, 3, 2, 2, 2, 1252, 1242, 3, 2, 2, 2, 1252, 1253, 3, 2, 2, 2, 1253, 1255, 3, 2, 2, 2, 1254, 1256, 5, 106, 54, 2, 1255, 1254, 3, 2, 2, 2, 1255, 1256, 3, 2, 2, 2, 1256, 1258, 3, 2, 2, 2, 1257, 1259, 9, 8, 2, 2, 1258, 1257, 3, 2, 2, 2, 1258, 1259, 3, 2, 2, 2, 1259, 1261, 3, 2, 2, 2, 1260, 1262, 7, 15, 2, 2, 1261, 1260, 3, 2, 2, 2, 1261, 1262, 3, 2, 2, 2, 1262, 1263, 3, 2, 2, 2, 1263, 1264, 5, 206, 104, 2, 1264, 1284, 3, 2, 2, 2, 1265, 1267, 7, 36, 2, 2, 1266, 1268, 7, 662, 2, 2, 1267, 1266, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 1269, 3, 2, 2, 2, 1269, 1271, 7, 175, 2, 2, 1270, 1272, 5, 764, 383, 2, 1271, 1270, 3, 2, 2, 2, 1271, 1272, 3, 2, 2, 2, 1272, 1273, 3, 2, 2, 2, 1273, 1281, 5, 652, 327, 2, 1274, 1275, 7, 101, 2, 2, 1275, 1282, 5, 656, 329, 2, 1276, 1277, 7, 868, 2, 2, 1277, 1278, 7, 101, 2, 2, 1278, 1279, 5, 656, 329, 2, 1279, 1280, 7, 869, 2, 2, 1280, 1282, 3, 2, 2, 2, 1281, 1274, 3, 2, 2, 2, 1281, 1276, 3, 2, 2, 2, 1282, 1284, 3, 2, 2, 2, 1283, 1205, 3, 2, 2, 2, 1283, 1230, 3, 2, 2, 2, 1283, 1265, 3, 2, 2, 2, 1284, 41, 3, 2, 2, 2, 1285, 1287, 7, 36, 2, 2, 1286, 1288, 7, 182, 2, 2, 1287, 1286, 3, 2, 2, 2, 1287, 1288, 3, 2, 2, 2, 1288, 1289, 3, 2, 2, 2, 1289, 1290, 7, 660, 2, 2, 1290, 1294, 5, 668, 335, 2, 1291, 1292, 7, 8, 2, 2, 1292, 1293, 7, 363, 2, 2, 1293, 1295, 7, 884, 2, 2, 1294, 1291, 3, 2, 2, 2, 1294, 1295, 3, 2, 2, 2, 1295, 1301, 3, 2, 2, 2, 1296, 1298, 7, 316, 2, 2, 1297, 1299, 7, 859, 2, 2, 1298, 1297, 3, 2, 2, 2, 1298, 1299, 3, 2, 2, 2, 1299, 1300, 3, 2, 2, 2, 1300, 1302, 5, 718, 360, 2, 1301, 1296, 3, 2, 2, 2, 1301, 1302, 3, 2, 2, 2, 1302, 1306, 3, 2, 2, 2, 1303, 1304, 7, 401, 2, 2, 1304, 1305, 7, 859, 2, 2, 1305, 1307, 5, 718, 360, 2, 1306, 1303, 3, 2, 2, 2, 1306, 1307, 3, 2, 2, 2, 1307, 1313, 3, 2, 2, 2, 1308, 1310, 7, 382, 2, 2, 1309, 1311, 7, 859, 2, 2, 1310, 1309, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1312, 3, 2, 2, 2, 1312, 1314, 5, 696, 349, 2, 1313, 1308, 3, 2, 2, 2, 1313, 1314, 3, 2, 2, 2, 1314, 1320, 3, 2, 2, 2, 1315, 1317, 7, 827, 2, 2, 1316, 1318, 7, 859, 2, 2, 1317, 1316, 3, 2, 2, 2, 1317, 1318, 3, 2, 2, 2, 1318, 1319, 3, 2, 2, 2, 1319, 1321, 7, 884, 2, 2, 1320, 1315, 3, 2, 2, 2, 1320, 1321, 3, 2, 2, 2, 1321, 43, 3, 2, 2, 2, 1322, 1324, 7, 36, 2, 2, 1323, 1325, 7, 182, 2, 2, 1324, 1323, 3, 2, 2, 2, 1324, 1325, 3, 2, 2, 2, 1325, 1326, 3, 2, 2, 2, 1326, 1327, 7, 660, 2, 2, 1327, 1328, 5, 668, 335, 2, 1328, 1329, 7, 8, 2, 2, 1329, 1330, 7, 363, 2, 2, 1330, 1331, 7, 884, 2, 2, 1331, 1332, 7, 189, 2, 2, 1332, 1333, 7, 453, 2, 2, 1333, 1334, 7, 76, 2, 2, 1334, 1340, 5, 710, 356, 2, 1335, 1337, 7, 395, 2, 2, 1336, 1338, 7, 859, 2, 2, 1337, 1336, 3, 2, 2, 2, 1337, 1338, 3, 2, 2, 2, 1338, 1339, 3, 2, 2, 2, 1339, 1341, 5, 718, 360, 2, 1340, 1335, 3, 2, 2, 2, 1340, 1341, 3, 2, 2, 2, 1341, 1347, 3, 2, 2, 2, 1342, 1344, 7, 430, 2, 2, 1343, 1345, 7, 859, 2, 2, 1344, 1343, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1346, 3, 2, 2, 2, 1346, 1348, 5, 718, 360, 2, 1347, 1342, 3, 2, 2, 2, 1347, 1348, 3, 2, 2, 2, 1348, 1354, 3, 2, 2, 2, 1349, 1351, 7, 316, 2, 2, 1350, 1352, 7, 859, 2, 2, 1351, 1350, 3, 2, 2, 2, 1351, 1352, 3, 2, 2, 2, 1352, 1353, 3, 2, 2, 2, 1353, 1355, 5, 718, 360, 2, 1354, 1349, 3, 2, 2, 2, 1354, 1355, 3, 2, 2, 2, 1355, 1361, 3, 2, 2, 2, 1356, 1358, 7, 483, 2, 2, 1357, 1359, 7, 859, 2, 2, 1358, 1357, 3, 2, 2, 2, 1358, 1359, 3, 2, 2, 2, 1359, 1360, 3, 2, 2, 2, 1360, 1362, 5, 718, 360, 2, 1361, 1356, 3, 2, 2, 2, 1361, 1362, 3, 2, 2, 2, 1362, 1368, 3, 2, 2, 2, 1363, 1365, 7, 506, 2, 2, 1364, 1366, 7, 859, 2, 2, 1365, 1364, 3, 2, 2, 2, 1365, 1366, 3, 2, 2, 2, 1366, 1367, 3, 2, 2, 2, 1367, 1369, 5, 710, 356, 2, 1368, 1363, 3, 2, 2, 2, 1368, 1369, 3, 2, 2, 2, 1369, 1371, 3, 2, 2, 2, 1370, 1372, 7, 689, 2, 2, 1371, 1370, 3, 2, 2, 2, 1371, 1372, 3, 2, 2, 2, 1372, 1378, 3, 2, 2, 2, 1373, 1375, 7, 342, 2, 2, 1374, 1376, 7, 859, 2, 2, 1375, 1374, 3, 2, 2, 2, 1375, 1376, 3, 2, 2, 2, 1376, 1377, 3, 2, 2, 2, 1377, 1379, 7, 884, 2, 2, 1378, 1373, 3, 2, 2, 2, 1378, 1379, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 1382, 7, 382, 2, 2, 1381, 1383, 7, 859, 2, 2, 1382, 1381, 3, 2, 2, 2, 1382, 1383, 3, 2, 2, 2, 1383, 1384, 3, 2, 2, 2, 1384, 1385, 5, 696, 349, 2, 1385, 45, 3, 2, 2, 2, 1386, 1388, 7, 36, 2, 2, 1387, 1389, 5, 60, 31, 2, 1388, 1387, 3, 2, 2, 2, 1388, 1389, 3, 2, 2, 2, 1389, 1390, 3, 2, 2, 2, 1390, 1392, 7, 180, 2, 2, 1391, 1393, 5, 764, 383, 2, 1392, 1391, 3, 2, 2, 2, 1392, 1393, 3, 2, 2, 2, 1393, 1394, 3, 2, 2, 2, 1394, 1395, 5, 706, 354, 2, 1395, 1396, 9, 9, 2, 2, 1396, 1397, 9, 10, 2, 2, 1397, 1398, 7, 121, 2, 2, 1398, 1399, 5, 656, 329, 2, 1399, 1400, 7, 67, 2, 2, 1400, 1401, 7, 54, 2, 2, 1401, 1404, 7, 588, 2, 2, 1402, 1403, 9, 11, 2, 2, 1403, 1405, 5, 706, 354, 2, 1404, 1402, 3, 2, 2, 2, 1404, 1405, 3, 2, 2, 2, 1405, 1406, 3, 2, 2, 2, 1406, 1407, 5, 424, 213, 2, 1407, 47, 3, 2, 2, 2, 1408, 1410, 7, 196, 2, 2, 1409, 1411, 7, 554, 2, 2, 1410, 1409, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1413, 5, 50, 26, 2, 1413, 49, 3, 2, 2, 2, 1414, 1426, 5, 710, 356, 2, 1415, 1416, 7, 868, 2, 2, 1416, 1421, 5, 710, 356, 2, 1417, 1418, 7, 870, 2, 2, 1418, 1420, 5, 710, 356, 2, 1419, 1417, 3, 2, 2, 2, 1420, 1423, 3, 2, 2, 2, 1421, 1419, 3, 2, 2, 2, 1421, 1422, 3, 2, 2, 2, 1422, 1424, 3, 2, 2, 2, 1423, 1421, 3, 2, 2, 2, 1424, 1425, 7, 869, 2, 2, 1425, 1427, 3, 2, 2, 2, 1426, 1415, 3, 2, 2, 2, 1426, 1427, 3, 2, 2, 2, 1427, 1428, 3, 2, 2, 2, 1428, 1429, 7, 15, 2, 2, 1429, 1430, 7, 868, 2, 2, 1430, 1431, 5, 12, 7, 2, 1431, 1434, 7, 869, 2, 2, 1432, 1433, 7, 870, 2, 2, 1433, 1435, 5, 50, 26, 2, 1434, 1432, 3, 2, 2, 2, 1434, 1435, 3, 2, 2, 2, 1435, 51, 3, 2, 2, 2, 1436, 1438, 7, 36, 2, 2, 1437, 1439, 5, 766, 384, 2, 1438, 1437, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1443, 3, 2, 2, 2, 1440, 1441, 7, 310, 2, 2, 1441, 1442, 7, 859, 2, 2, 1442, 1444, 9, 12, 2, 2, 1443, 1440, 3, 2, 2, 2, 1443, 1444, 3, 2, 2, 2, 1444, 1446, 3, 2, 2, 2, 1445, 1447, 5, 60, 31, 2, 1446, 1445, 3, 2, 2, 2, 1446, 1447, 3, 2, 2, 2, 1447, 1451, 3, 2, 2, 2, 1448, 1449, 7, 164, 2, 2, 1449, 1450, 7, 593, 2, 2, 1450, 1452, 9, 13, 2, 2, 1451, 1448, 3, 2, 2, 2, 1451, 1452, 3, 2, 2, 2, 1452, 1453, 3, 2, 2, 2, 1453, 1454, 7, 686, 2, 2, 1454, 1459, 5, 638, 320, 2, 1455, 1456, 7, 868, 2, 2, 1456, 1457, 5, 664, 333, 2, 1457, 1458, 7, 869, 2, 2, 1458, 1460, 3, 2, 2, 2, 1459, 1455, 3, 2, 2, 2, 1459, 1460, 3, 2, 2, 2, 1460, 1461, 3, 2, 2, 2, 1461, 1481, 7, 15, 2, 2, 1462, 1464, 7, 868, 2, 2, 1463, 1465, 5, 48, 25, 2, 1464, 1463, 3, 2, 2, 2, 1464, 1465, 3, 2, 2, 2, 1465, 1466, 3, 2, 2, 2, 1466, 1467, 5, 206, 104, 2, 1467, 1468, 7, 869, 2, 2, 1468, 1482, 3, 2, 2, 2, 1469, 1471, 5, 48, 25, 2, 1470, 1469, 3, 2, 2, 2, 1470, 1471, 3, 2, 2, 2, 1471, 1472, 3, 2, 2, 2, 1472, 1479, 5, 206, 104, 2, 1473, 1475, 7, 196, 2, 2, 1474, 1476, 9, 14, 2, 2, 1475, 1474, 3, 2, 2, 2, 1475, 1476, 3, 2, 2, 2, 1476, 1477, 3, 2, 2, 2, 1477, 1478, 7, 29, 2, 2, 1478, 1480, 7, 123, 2, 2, 1479, 1473, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1482, 3, 2, 2, 2, 1481, 1462, 3, 2, 2, 2, 1481, 1470, 3, 2, 2, 2, 1482, 53, 3, 2, 2, 2, 1483, 1485, 7, 44, 2, 2, 1484, 1483, 3, 2, 2, 2, 1484, 1485, 3, 2, 2, 2, 1485, 1486, 3, 2, 2, 2, 1486, 1488, 5, 56, 29, 2, 1487, 1489, 7, 859, 2, 2, 1488, 1487, 3, 2, 2, 2, 1488, 1489, 3, 2, 2, 2, 1489, 1492, 3, 2, 2, 2, 1490, 1493, 5, 692, 347, 2, 1491, 1493, 7, 44, 2, 2, 1492, 1490, 3, 2, 2, 2, 1492, 1491, 3, 2, 2, 2, 1493, 1517, 3, 2, 2, 2, 1494, 1496, 7, 44, 2, 2, 1495, 1494, 3, 2, 2, 2, 1495, 1496, 3, 2, 2, 2, 1496, 1497, 3, 2, 2, 2, 1497, 1499, 7, 30, 2, 2, 1498, 1500, 7, 859, 2, 2, 1499, 1498, 3, 2, 2, 2, 1499, 1500, 3, 2, 2, 2, 1500, 1501, 3, 2, 2, 2, 1501, 1517, 5, 694, 348, 2, 1502, 1504, 7, 44, 2, 2, 1503, 1502, 3, 2, 2, 2, 1503, 1504, 3, 2, 2, 2, 1504, 1505, 3, 2, 2, 2, 1505, 1507, 7, 378, 2, 2, 1506, 1508, 7, 859, 2, 2, 1507, 1506, 3, 2, 2, 2, 1507, 1508, 3, 2, 2, 2, 1508, 1509, 3, 2, 2, 2, 1509, 1517, 7, 884, 2, 2, 1510, 1511, 7, 137, 2, 2, 1511, 1513, 7, 517, 2, 2, 1512, 1514, 7, 859, 2, 2, 1513, 1512, 3, 2, 2, 2, 1513, 1514, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 1517, 9, 15, 2, 2, 1516, 1484, 3, 2, 2, 2, 1516, 1495, 3, 2, 2, 2, 1516, 1503, 3, 2, 2, 2, 1516, 1510, 3, 2, 2, 2, 1517, 55, 3, 2, 2, 2, 1518, 1519, 7, 28, 2, 2, 1519, 1524, 7, 157, 2, 2, 1520, 1524, 7, 825, 2, 2, 1521, 1522, 7, 226, 2, 2, 1522, 1524, 7, 157, 2, 2, 1523, 1518, 3, 2, 2, 2, 1523, 1520, 3, 2, 2, 2, 1523, 1521, 3, 2, 2, 2, 1524, 57, 3, 2, 2, 2, 1525, 1528, 9, 16, 2, 2, 1526, 1527, 7, 868, 2, 2, 1527, 1529, 7, 869, 2, 2, 1528, 1526, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 59, 3, 2, 2, 2, 1530, 1531, 7, 366, 2, 2, 1531, 1534, 7, 859, 2, 2, 1532, 1535, 5, 688, 345, 2, 1533, 1535, 5, 58, 30, 2, 1534, 1532, 3, 2, 2, 2, 1534, 1533, 3, 2, 2, 2, 1535, 61, 3, 2, 2, 2, 1536, 1537, 7, 313, 2, 2, 1537, 1541, 5, 64, 33, 2, 1538, 1540, 5, 66, 34, 2, 1539, 1538, 3, 2, 2, 2, 1540, 1543, 3, 2, 2, 2, 1541, 1539, 3, 2, 2, 2, 1541, 1542, 3, 2, 2, 2, 1542, 1571, 3, 2, 2, 2, 1543, 1541, 3, 2, 2, 2, 1544, 1547, 7, 389, 2, 2, 1545, 1548, 5, 716, 359, 2, 1546, 1548, 5, 808, 405, 2, 1547, 1545, 3, 2, 2, 2, 1547, 1546, 3, 2, 2, 2, 1548, 1549, 3, 2, 2, 2, 1549, 1558, 5, 68, 35, 2, 1550, 1551, 7, 643, 2, 2, 1551, 1555, 5, 64, 33, 2, 1552, 1554, 5, 66, 34, 2, 1553, 1552, 3, 2, 2, 2, 1554, 1557, 3, 2, 2, 2, 1555, 1553, 3, 2, 2, 2, 1555, 1556, 3, 2, 2, 2, 1556, 1559, 3, 2, 2, 2, 1557, 1555, 3, 2, 2, 2, 1558, 1550, 3, 2, 2, 2, 1558, 1559, 3, 2, 2, 2, 1559, 1568, 3, 2, 2, 2, 1560, 1561, 7, 381, 2, 2, 1561, 1565, 5, 64, 33, 2, 1562, 1564, 5, 66, 34, 2, 1563, 1562, 3, 2, 2, 2, 1564, 1567, 3, 2, 2, 2, 1565, 1563, 3, 2, 2, 2, 1565, 1566, 3, 2, 2, 2, 1566, 1569, 3, 2, 2, 2, 1567, 1565, 3, 2, 2, 2, 1568, 1560, 3, 2, 2, 2, 1568, 1569, 3, 2, 2, 2, 1569, 1571, 3, 2, 2, 2, 1570, 1536, 3, 2, 2, 2, 1570, 1544, 3, 2, 2, 2, 1571, 63, 3, 2, 2, 2, 1572, 1577, 7, 289, 2, 2, 1573, 1577, 5, 720, 361, 2, 1574, 1577, 5, 716, 359, 2, 1575, 1577, 5, 808, 405, 2, 1576, 1572, 3, 2, 2, 2, 1576, 1573, 3, 2, 2, 2, 1576, 1574, 3, 2, 2, 2, 1576, 1575, 3, 2, 2, 2, 1577, 65, 3, 2, 2, 2, 1578, 1579, 7, 855, 2, 2, 1579, 1582, 7, 89, 2, 2, 1580, 1583, 5, 716, 359, 2, 1581, 1583, 5, 808, 405, 2, 1582, 1580, 3, 2, 2, 2, 1582, 1581, 3, 2, 2, 2, 1583, 1584, 3, 2, 2, 2, 1584, 1585, 5, 68, 35, 2, 1585, 67, 3, 2, 2, 2, 1586, 1600, 5, 834, 418, 2, 1587, 1600, 7, 225, 2, 2, 1588, 1600, 7, 244, 2, 2, 1589, 1600, 7, 245, 2, 2, 1590, 1600, 7, 246, 2, 2, 1591, 1600, 7, 247, 2, 2, 1592, 1600, 7, 248, 2, 2, 1593, 1600, 7, 249, 2, 2, 1594, 1600, 7, 250, 2, 2, 1595, 1600, 7, 251, 2, 2, 1596, 1600, 7, 252, 2, 2, 1597, 1600, 7, 253, 2, 2, 1598, 1600, 7, 254, 2, 2, 1599, 1586, 3, 2, 2, 2, 1599, 1587, 3, 2, 2, 2, 1599, 1588, 3, 2, 2, 2, 1599, 1589, 3, 2, 2, 2, 1599, 1590, 3, 2, 2, 2, 1599, 1591, 3, 2, 2, 2, 1599, 1592, 3, 2, 2, 2, 1599, 1593, 3, 2, 2, 2, 1599, 1594, 3, 2, 2, 2, 1599, 1595, 3, 2, 2, 2, 1599, 1596, 3, 2, 2, 2, 1599, 1597, 3, 2, 2, 2, 1599, 1598, 3, 2, 2, 2, 1600, 69, 3, 2, 2, 2, 1601, 1607, 7, 377, 2, 2, 1602, 1607, 7, 370, 2, 2, 1603, 1604, 7, 370, 2, 2, 1604, 1605, 7, 121, 2, 2, 1605, 1607, 7, 600, 2, 2, 1606, 1601, 3, 2, 2, 2, 1606, 1602, 3, 2, 2, 2, 1606, 1603, 3, 2, 2, 2, 1607, 71, 3, 2, 2, 2, 1608, 1609, 7, 190, 2, 2, 1609, 1610, 9, 17, 2, 2, 1610, 73, 3, 2, 2, 2, 1611, 1613, 7, 445, 2, 2, 1612, 1614, 7, 859, 2, 2, 1613, 1612, 3, 2, 2, 2, 1613, 1614, 3, 2, 2, 2, 1614, 1615, 3, 2, 2, 2, 1615, 1634, 5, 718, 360, 2, 1616, 1634, 5, 72, 37, 2, 1617, 1618, 7, 196, 2, 2, 1618, 1619, 7, 527, 2, 2, 1619, 1634, 5, 710, 356, 2, 1620, 1621, 7, 342, 2, 2, 1621, 1634, 7, 884, 2, 2, 1622, 1634, 9, 18, 2, 2, 1623, 1625, 7, 827, 2, 2, 1624, 1626, 7, 859, 2, 2, 1625, 1624, 3, 2, 2, 2, 1625, 1626, 3, 2, 2, 2, 1626, 1627, 3, 2, 2, 2, 1627, 1634, 7, 884, 2, 2, 1628, 1630, 7, 835, 2, 2, 1629, 1631, 7, 859, 2, 2, 1630, 1629, 3, 2, 2, 2, 1630, 1631, 3, 2, 2, 2, 1631, 1632, 3, 2, 2, 2, 1632, 1634, 7, 884, 2, 2, 1633, 1611, 3, 2, 2, 2, 1633, 1616, 3, 2, 2, 2, 1633, 1617, 3, 2, 2, 2, 1633, 1620, 3, 2, 2, 2, 1633, 1622, 3, 2, 2, 2, 1633, 1623, 3, 2, 2, 2, 1633, 1628, 3, 2, 2, 2, 1634, 75, 3, 2, 2, 2, 1635, 1637, 9, 19, 2, 2, 1636, 1635, 3, 2, 2, 2, 1636, 1637, 3, 2, 2, 2, 1637, 1638, 3, 2, 2, 2, 1638, 1639, 5, 710, 356, 2, 1639, 1640, 5, 730, 366, 2, 1640, 77, 3, 2, 2, 2, 1641, 1642, 7, 342, 2, 2, 1642, 1665, 7, 884, 2, 2, 1643, 1644, 7, 446, 2, 2, 1644, 1665, 7, 164, 2, 2, 1645, 1647, 7, 116, 2, 2, 1646, 1645, 3, 2, 2, 2, 1646, 1647, 3, 2, 2, 2, 1647, 1648, 3, 2, 2, 2, 1648, 1665, 7, 49, 2, 2, 1649, 1650, 7, 356, 2, 2, 1650, 1660, 7, 164, 2, 2, 1651, 1652, 7, 504, 2, 2, 1652, 1660, 7, 164, 2, 2, 1653, 1654, 7, 138, 2, 2, 1654, 1655, 7, 164, 2, 2, 1655, 1660, 7, 362, 2, 2, 1656, 1657, 7, 114, 2, 2, 1657, 1658, 7, 164, 2, 2, 1658, 1660, 7, 362, 2, 2, 1659, 1649, 3, 2, 2, 2, 1659, 1651, 3, 2, 2, 2, 1659, 1653, 3, 2, 2, 2, 1659, 1656, 3, 2, 2, 2, 1660, 1665, 3, 2, 2, 2, 1661, 1662, 7, 164, 2, 2, 1662, 1663, 7, 593, 2, 2, 1663, 1665, 9, 13, 2, 2, 1664, 1641, 3, 2, 2, 2, 1664, 1643, 3, 2, 2, 2, 1664, 1646, 3, 2, 2, 2, 1664, 1659, 3, 2, 2, 2, 1664, 1661, 3, 2, 2, 2, 1665, 79, 3, 2, 2, 2, 1666, 1667, 7, 423, 2, 2, 1667, 1681, 7, 884, 2, 2, 1668, 1669, 7, 41, 2, 2, 1669, 1681, 7, 884, 2, 2, 1670, 1671, 7, 680, 2, 2, 1671, 1681, 7, 884, 2, 2, 1672, 1673, 7, 531, 2, 2, 1673, 1681, 7, 884, 2, 2, 1674, 1675, 7, 603, 2, 2, 1675, 1681, 7, 884, 2, 2, 1676, 1677, 7, 521, 2, 2, 1677, 1681, 7, 884, 2, 2, 1678, 1679, 7, 539, 2, 2, 1679, 1681, 5, 716, 359, 2, 1680, 1666, 3, 2, 2, 2, 1680, 1668, 3, 2, 2, 2, 1680, 1670, 3, 2, 2, 2, 1680, 1672, 3, 2, 2, 2, 1680, 1674, 3, 2, 2, 2, 1680, 1676, 3, 2, 2, 2, 1680, 1678, 3, 2, 2, 2, 1681, 81, 3, 2, 2, 2, 1682, 1683, 7, 868, 2, 2, 1683, 1688, 5, 84, 43, 2, 1684, 1685, 7, 870, 2, 2, 1685, 1687, 5, 84, 43, 2, 1686, 1684, 3, 2, 2, 2, 1687, 1690, 3, 2, 2, 2, 1688, 1686, 3, 2, 2, 2, 1688, 1689, 3, 2, 2, 2, 1689, 1691, 3, 2, 2, 2, 1690, 1688, 3, 2, 2, 2, 1691, 1692, 7, 869, 2, 2, 1692, 83, 3, 2, 2, 2, 1693, 1694, 5, 666, 334, 2, 1694, 1695, 5, 90, 46, 2, 1695, 1777, 3, 2, 2, 2, 1696, 1698, 9, 20, 2, 2, 1697, 1699, 5, 646, 324, 2, 1698, 1697, 3, 2, 2, 2, 1698, 1699, 3, 2, 2, 2, 1699, 1701, 3, 2, 2, 2, 1700, 1702, 5, 72, 37, 2, 1701, 1700, 3, 2, 2, 2, 1701, 1702, 3, 2, 2, 2, 1702, 1703, 3, 2, 2, 2, 1703, 1707, 5, 742, 372, 2, 1704, 1706, 5, 74, 38, 2, 1705, 1704, 3, 2, 2, 2, 1706, 1709, 3, 2, 2, 2, 1707, 1705, 3, 2, 2, 2, 1707, 1708, 3, 2, 2, 2, 1708, 1777, 3, 2, 2, 2, 1709, 1707, 3, 2, 2, 2, 1710, 1712, 9, 21, 2, 2, 1711, 1713, 9, 20, 2, 2, 1712, 1711, 3, 2, 2, 2, 1712, 1713, 3, 2, 2, 2, 1713, 1715, 3, 2, 2, 2, 1714, 1716, 5, 646, 324, 2, 1715, 1714, 3, 2, 2, 2, 1715, 1716, 3, 2, 2, 2, 1716, 1717, 3, 2, 2, 2, 1717, 1721, 5, 742, 372, 2, 1718, 1720, 5, 74, 38, 2, 1719, 1718, 3, 2, 2, 2, 1720, 1723, 3, 2, 2, 2, 1721, 1719, 3, 2, 2, 2, 1721, 1722, 3, 2, 2, 2, 1722, 1777, 3, 2, 2, 2, 1723, 1721, 3, 2, 2, 2, 1724, 1726, 5, 88, 45, 2, 1725, 1724, 3, 2, 2, 2, 1725, 1726, 3, 2, 2, 2, 1726, 1727, 3, 2, 2, 2, 1727, 1728, 7, 133, 2, 2, 1728, 1730, 7, 94, 2, 2, 1729, 1731, 5, 72, 37, 2, 1730, 1729, 3, 2, 2, 2, 1730, 1731, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1736, 5, 742, 372, 2, 1733, 1735, 5, 74, 38, 2, 1734, 1733, 3, 2, 2, 2, 1735, 1738, 3, 2, 2, 2, 1736, 1734, 3, 2, 2, 2, 1736, 1737, 3, 2, 2, 2, 1737, 1777, 3, 2, 2, 2, 1738, 1736, 3, 2, 2, 2, 1739, 1741, 5, 88, 45, 2, 1740, 1739, 3, 2, 2, 2, 1740, 1741, 3, 2, 2, 2, 1741, 1742, 3, 2, 2, 2, 1742, 1744, 7, 184, 2, 2, 1743, 1745, 9, 20, 2, 2, 1744, 1743, 3, 2, 2, 2, 1744, 1745, 3, 2, 2, 2, 1745, 1747, 3, 2, 2, 2, 1746, 1748, 5, 646, 324, 2, 1747, 1746, 3, 2, 2, 2, 1747, 1748, 3, 2, 2, 2, 1748, 1750, 3, 2, 2, 2, 1749, 1751, 5, 72, 37, 2, 1750, 1749, 3, 2, 2, 2, 1750, 1751, 3, 2, 2, 2, 1751, 1752, 3, 2, 2, 2, 1752, 1756, 5, 742, 372, 2, 1753, 1755, 5, 74, 38, 2, 1754, 1753, 3, 2, 2, 2, 1755, 1758, 3, 2, 2, 2, 1756, 1754, 3, 2, 2, 2, 1756, 1757, 3, 2, 2, 2, 1757, 1777, 3, 2, 2, 2, 1758, 1756, 3, 2, 2, 2, 1759, 1761, 5, 88, 45, 2, 1760, 1759, 3, 2, 2, 2, 1760, 1761, 3, 2, 2, 2, 1761, 1762, 3, 2, 2, 2, 1762, 1763, 7, 69, 2, 2, 1763, 1765, 7, 94, 2, 2, 1764, 1766, 5, 646, 324, 2, 1765, 1764, 3, 2, 2, 2, 1765, 1766, 3, 2, 2, 2, 1766, 1767, 3, 2, 2, 2, 1767, 1768, 5, 742, 372, 2, 1768, 1769, 5, 94, 48, 2, 1769, 1777, 3, 2, 2, 2, 1770, 1771, 7, 29, 2, 2, 1771, 1772, 7, 868, 2, 2, 1772, 1773, 5, 808, 405, 2, 1773, 1774, 7, 869, 2, 2, 1774, 1777, 3, 2, 2, 2, 1775, 1777, 5, 86, 44, 2, 1776, 1693, 3, 2, 2, 2, 1776, 1696, 3, 2, 2, 2, 1776, 1710, 3, 2, 2, 2, 1776, 1725, 3, 2, 2, 2, 1776, 1740, 3, 2, 2, 2, 1776, 1760, 3, 2, 2, 2, 1776, 1770, 3, 2, 2, 2, 1776, 1775, 3, 2, 2, 2, 1777, 85, 3, 2, 2, 2, 1778, 1780, 5, 88, 45, 2, 1779, 1778, 3, 2, 2, 2, 1779, 1780, 3, 2, 2, 2, 1780, 1781, 3, 2, 2, 2, 1781, 1782, 7, 29, 2, 2, 1782, 1783, 7, 868, 2, 2, 1783, 1784, 5, 808, 405, 2, 1784, 1789, 7, 869, 2, 2, 1785, 1787, 7, 116, 2, 2, 1786, 1785, 3, 2, 2, 2, 1786, 1787, 3, 2, 2, 2, 1787, 1788, 3, 2, 2, 2, 1788, 1790, 7, 59, 2, 2, 1789, 1786, 3, 2, 2, 2, 1789, 1790, 3, 2, 2, 2, 1790, 87, 3, 2, 2, 2, 1791, 1793, 7, 33, 2, 2, 1792, 1794, 5, 710, 356, 2, 1793, 1792, 3, 2, 2, 2, 1793, 1794, 3, 2, 2, 2, 1794, 89, 3, 2, 2, 2, 1795, 1799, 5, 730, 366, 2, 1796, 1798, 5, 92, 47, 2, 1797, 1796, 3, 2, 2, 2, 1798, 1801, 3, 2, 2, 2, 1799, 1797, 3, 2, 2, 2, 1799, 1800, 3, 2, 2, 2, 1800, 91, 3, 2, 2, 2, 1801, 1799, 3, 2, 2, 2, 1802, 1846, 5, 726, 364, 2, 1803, 1804, 7, 44, 2, 2, 1804, 1846, 5, 758, 380, 2, 1805, 1846, 7, 688, 2, 2, 1806, 1846, 7, 437, 2, 2, 1807, 1812, 7, 317, 2, 2, 1808, 1809, 7, 121, 2, 2, 1809, 1810, 7, 187, 2, 2, 1810, 1812, 5, 760, 381, 2, 1811, 1807, 3, 2, 2, 2, 1811, 1808, 3, 2, 2, 2, 1812, 1846, 3, 2, 2, 2, 1813, 1815, 7, 133, 2, 2, 1814, 1813, 3, 2, 2, 2, 1814, 1815, 3, 2, 2, 2, 1815, 1816, 3, 2, 2, 2, 1816, 1846, 7, 94, 2, 2, 1817, 1819, 7, 184, 2, 2, 1818, 1820, 7, 94, 2, 2, 1819, 1818, 3, 2, 2, 2, 1819, 1820, 3, 2, 2, 2, 1820, 1846, 3, 2, 2, 2, 1821, 1822, 7, 342, 2, 2, 1822, 1846, 7, 884, 2, 2, 1823, 1824, 7, 340, 2, 2, 1824, 1846, 9, 22, 2, 2, 1825, 1826, 7, 649, 2, 2, 1826, 1846, 9, 23, 2, 2, 1827, 1846, 5, 94, 48, 2, 1828, 1829, 7, 30, 2, 2, 1829, 1846, 5, 694, 348, 2, 1830, 1831, 7, 73, 2, 2, 1831, 1833, 7, 11, 2, 2, 1832, 1830, 3, 2, 2, 2, 1832, 1833, 3, 2, 2, 2, 1833, 1834, 3, 2, 2, 2, 1834, 1835, 7, 15, 2, 2, 1835, 1836, 7, 868, 2, 2, 1836, 1837, 5, 808, 405, 2, 1837, 1839, 7, 869, 2, 2, 1838, 1840, 9, 24, 2, 2, 1839, 1838, 3, 2, 2, 2, 1839, 1840, 3, 2, 2, 2, 1840, 1846, 3, 2, 2, 2, 1841, 1842, 7, 243, 2, 2, 1842, 1843, 7, 44, 2, 2, 1843, 1846, 7, 684, 2, 2, 1844, 1846, 5, 86, 44, 2, 1845, 1802, 3, 2, 2, 2, 1845, 1803, 3, 2, 2, 2, 1845, 1805, 3, 2, 2, 2, 1845, 1806, 3, 2, 2, 2, 1845, 1811, 3, 2, 2, 2, 1845, 1814, 3, 2, 2, 2, 1845, 1817, 3, 2, 2, 2, 1845, 1821, 3, 2, 2, 2, 1845, 1823, 3, 2, 2, 2, 1845, 1825, 3, 2, 2, 2, 1845, 1827, 3, 2, 2, 2, 1845, 1828, 3, 2, 2, 2, 1845, 1832, 3, 2, 2, 2, 1845, 1841, 3, 2, 2, 2, 1845, 1844, 3, 2, 2, 2, 1846, 93, 3, 2, 2, 2, 1847, 1848, 7, 140, 2, 2, 1848, 1850, 5, 656, 329, 2, 1849, 1851, 5, 742, 372, 2, 1850, 1849, 3, 2, 2, 2, 1850, 1851, 3, 2, 2, 2, 1851, 1854, 3, 2, 2, 2, 1852, 1853, 7, 112, 2, 2, 1853, 1855, 9, 25, 2, 2, 1854, 1852, 3, 2, 2, 2, 1854, 1855, 3, 2, 2, 2, 1855, 1857, 3, 2, 2, 2, 1856, 1858, 5, 96, 49, 2, 1857, 1856, 3, 2, 2, 2, 1857, 1858, 3, 2, 2, 2, 1858, 95, 3, 2, 2, 2, 1859, 1860, 7, 121, 2, 2, 1860, 1861, 7, 46, 2, 2, 1861, 1865, 5, 98, 50, 2, 1862, 1863, 7, 121, 2, 2, 1863, 1864, 7, 187, 2, 2, 1864, 1866, 5, 98, 50, 2, 1865, 1862, 3, 2, 2, 2, 1865, 1866, 3, 2, 2, 2, 1866, 1876, 3, 2, 2, 2, 1867, 1868, 7, 121, 2, 2, 1868, 1869, 7, 187, 2, 2, 1869, 1873, 5, 98, 50, 2, 1870, 1871, 7, 121, 2, 2, 1871, 1872, 7, 46, 2, 2, 1872, 1874, 5, 98, 50, 2, 1873, 1870, 3, 2, 2, 2, 1873, 1874, 3, 2, 2, 2, 1874, 1876, 3, 2, 2, 2, 1875, 1859, 3, 2, 2, 2, 1875, 1867, 3, 2, 2, 2, 1876, 97, 3, 2, 2, 2, 1877, 1886, 7, 148, 2, 2, 1878, 1886, 7, 24, 2, 2, 1879, 1880, 7, 157, 2, 2, 1880, 1886, 7, 118, 2, 2, 1881, 1882, 7, 504, 2, 2, 1882, 1886, 7, 307, 2, 2, 1883, 1884, 7, 157, 2, 2, 1884, 1886, 7, 44, 2, 2, 1885, 1877, 3, 2, 2, 2, 1885, 1878, 3, 2, 2, 2, 1885, 1879, 3, 2, 2, 2, 1885, 1881, 3, 2, 2, 2, 1885, 1883, 3, 2, 2, 2, 1886, 99, 3, 2, 2, 2, 1887, 1889, 7, 382, 2, 2, 1888, 1890, 7, 859, 2, 2, 1889, 1888, 3, 2, 2, 2, 1889, 1890, 3, 2, 2, 2, 1890, 1892, 3, 2, 2, 2, 1891, 1893, 5, 696, 349, 2, 1892, 1891, 3, 2, 2, 2, 1892, 1893, 3, 2, 2, 2, 1893, 2073, 3, 2, 2, 2, 1894, 1896, 7, 827, 2, 2, 1895, 1897, 7, 859, 2, 2, 1896, 1895, 3, 2, 2, 2, 1896, 1897, 3, 2, 2, 2, 1897, 1898, 3, 2, 2, 2, 1898, 2073, 7, 884, 2, 2, 1899, 1901, 7, 316, 2, 2, 1900, 1902, 7, 859, 2, 2, 1901, 1900, 3, 2, 2, 2, 1901, 1902, 3, 2, 2, 2, 1902, 1903, 3, 2, 2, 2, 1903, 2073, 5, 716, 359, 2, 1904, 1906, 7, 317, 2, 2, 1905, 1907, 7, 859, 2, 2, 1906, 1905, 3, 2, 2, 2, 1906, 1907, 3, 2, 2, 2, 1907, 1908, 3, 2, 2, 2, 1908, 2073, 5, 716, 359, 2, 1909, 1911, 7, 318, 2, 2, 1910, 1912, 7, 859, 2, 2, 1911, 1910, 3, 2, 2, 2, 1911, 1912, 3, 2, 2, 2, 1912, 1913, 3, 2, 2, 2, 1913, 2073, 5, 716, 359, 2, 1914, 1916, 7, 44, 2, 2, 1915, 1914, 3, 2, 2, 2, 1915, 1916, 3, 2, 2, 2, 1916, 1917, 3, 2, 2, 2, 1917, 1919, 5, 56, 29, 2, 1918, 1920, 7, 859, 2, 2, 1919, 1918, 3, 2, 2, 2, 1919, 1920, 3, 2, 2, 2, 1920, 1923, 3, 2, 2, 2, 1921, 1924, 5, 692, 347, 2, 1922, 1924, 7, 44, 2, 2, 1923, 1921, 3, 2, 2, 2, 1923, 1922, 3, 2, 2, 2, 1924, 2073, 3, 2, 2, 2, 1925, 1927, 9, 26, 2, 2, 1926, 1928, 7, 859, 2, 2, 1927, 1926, 3, 2, 2, 2, 1927, 1928, 3, 2, 2, 2, 1928, 1929, 3, 2, 2, 2, 1929, 2073, 9, 27, 2, 2, 1930, 1932, 7, 44, 2, 2, 1931, 1930, 3, 2, 2, 2, 1931, 1932, 3, 2, 2, 2, 1932, 1933, 3, 2, 2, 2, 1933, 1935, 7, 30, 2, 2, 1934, 1936, 7, 859, 2, 2, 1935, 1934, 3, 2, 2, 2, 1935, 1936, 3, 2, 2, 2, 1936, 1937, 3, 2, 2, 2, 1937, 2073, 5, 694, 348, 2, 1938, 1940, 7, 342, 2, 2, 1939, 1941, 7, 859, 2, 2, 1940, 1939, 3, 2, 2, 2, 1940, 1941, 3, 2, 2, 2, 1941, 1942, 3, 2, 2, 2, 1942, 2073, 7, 884, 2, 2, 1943, 1945, 7, 348, 2, 2, 1944, 1946, 7, 859, 2, 2, 1945, 1944, 3, 2, 2, 2, 1945, 1946, 3, 2, 2, 2, 1946, 1947, 3, 2, 2, 2, 1947, 2073, 9, 28, 2, 2, 1948, 1950, 7, 351, 2, 2, 1949, 1951, 7, 859, 2, 2, 1950, 1949, 3, 2, 2, 2, 1950, 1951, 3, 2, 2, 2, 1951, 1952, 3, 2, 2, 2, 1952, 2073, 7, 884, 2, 2, 1953, 1954, 9, 29, 2, 2, 1954, 1956, 7, 369, 2, 2, 1955, 1957, 7, 859, 2, 2, 1956, 1955, 3, 2, 2, 2, 1956, 1957, 3, 2, 2, 2, 1957, 1958, 3, 2, 2, 2, 1958, 2073, 7, 884, 2, 2, 1959, 1961, 7, 367, 2, 2, 1960, 1962, 7, 859, 2, 2, 1961, 1960, 3, 2, 2, 2, 1961, 1962, 3, 2, 2, 2, 1962, 1963, 3, 2, 2, 2, 1963, 2073, 9, 27, 2, 2, 1964, 1966, 7, 378, 2, 2, 1965, 1967, 7, 859, 2, 2, 1966, 1965, 3, 2, 2, 2, 1966, 1967, 3, 2, 2, 2, 1967, 1968, 3, 2, 2, 2, 1968, 2073, 7, 884, 2, 2, 1969, 1971, 9, 30, 2, 2, 1970, 1972, 7, 859, 2, 2, 1971, 1970, 3, 2, 2, 2, 1971, 1972, 3, 2, 2, 2, 1972, 1973, 3, 2, 2, 2, 1973, 2073, 9, 27, 2, 2, 1974, 1976, 9, 31, 2, 2, 1975, 1977, 7, 859, 2, 2, 1976, 1975, 3, 2, 2, 2, 1976, 1977, 3, 2, 2, 2, 1977, 1978, 3, 2, 2, 2, 1978, 2073, 5, 716, 359, 2, 1979, 1981, 7, 379, 2, 2, 1980, 1982, 7, 859, 2, 2, 1981, 1980, 3, 2, 2, 2, 1981, 1982, 3, 2, 2, 2, 1982, 1983, 3, 2, 2, 2, 1983, 2073, 5, 716, 359, 2, 1984, 1985, 7, 84, 2, 2, 1985, 1987, 7, 369, 2, 2, 1986, 1988, 7, 859, 2, 2, 1987, 1986, 3, 2, 2, 2, 1987, 1988, 3, 2, 2, 2, 1988, 1989, 3, 2, 2, 2, 1989, 2073, 7, 884, 2, 2, 1990, 1992, 7, 433, 2, 2, 1991, 1993, 7, 859, 2, 2, 1992, 1991, 3, 2, 2, 2, 1992, 1993, 3, 2, 2, 2, 1993, 1994, 3, 2, 2, 2, 1994, 2073, 9, 32, 2, 2, 1995, 1997, 7, 445, 2, 2, 1996, 1998, 7, 859, 2, 2, 1997, 1996, 3, 2, 2, 2, 1997, 1998, 3, 2, 2, 2, 1998, 1999, 3, 2, 2, 2, 1999, 2073, 5, 718, 360, 2, 2000, 2002, 7, 482, 2, 2, 2001, 2003, 7, 859, 2, 2, 2002, 2001, 3, 2, 2, 2, 2002, 2003, 3, 2, 2, 2, 2003, 2004, 3, 2, 2, 2, 2004, 2073, 5, 716, 359, 2, 2005, 2007, 7, 492, 2, 2, 2006, 2008, 7, 859, 2, 2, 2007, 2006, 3, 2, 2, 2, 2007, 2008, 3, 2, 2, 2, 2008, 2009, 3, 2, 2, 2, 2009, 2073, 5, 716, 359, 2, 2010, 2012, 7, 522, 2, 2, 2011, 2013, 7, 859, 2, 2, 2012, 2011, 3, 2, 2, 2, 2012, 2013, 3, 2, 2, 2, 2013, 2014, 3, 2, 2, 2, 2014, 2073, 9, 15, 2, 2, 2015, 2017, 7, 531, 2, 2, 2016, 2018, 7, 859, 2, 2, 2017, 2016, 3, 2, 2, 2, 2017, 2018, 3, 2, 2, 2, 2018, 2019, 3, 2, 2, 2, 2019, 2073, 7, 884, 2, 2, 2020, 2022, 7, 590, 2, 2, 2021, 2023, 7, 859, 2, 2, 2022, 2021, 3, 2, 2, 2, 2022, 2023, 3, 2, 2, 2, 2023, 2024, 3, 2, 2, 2, 2024, 2073, 9, 33, 2, 2, 2025, 2026, 7, 642, 2, 2, 2026, 2073, 7, 666, 2, 2, 2027, 2029, 7, 835, 2, 2, 2028, 2030, 7, 859, 2, 2, 2029, 2028, 3, 2, 2, 2, 2029, 2030, 3, 2, 2, 2, 2030, 2031, 3, 2, 2, 2, 2031, 2073, 7, 884, 2, 2, 2032, 2034, 7, 644, 2, 2, 2033, 2035, 7, 859, 2, 2, 2034, 2033, 3, 2, 2, 2, 2034, 2035, 3, 2, 2, 2, 2035, 2036, 3, 2, 2, 2, 2036, 2073, 9, 15, 2, 2, 2037, 2039, 7, 645, 2, 2, 2038, 2040, 7, 859, 2, 2, 2039, 2038, 3, 2, 2, 2, 2039, 2040, 3, 2, 2, 2, 2040, 2041, 3, 2, 2, 2, 2041, 2073, 9, 15, 2, 2, 2042, 2044, 7, 646, 2, 2, 2043, 2045, 7, 859, 2, 2, 2044, 2043, 3, 2, 2, 2, 2044, 2045, 3, 2, 2, 2, 2045, 2048, 3, 2, 2, 2, 2046, 2049, 7, 44, 2, 2, 2047, 2049, 5, 716, 359, 2, 2048, 2046, 3, 2, 2, 2, 2048, 2047, 3, 2, 2, 2, 2049, 2073, 3, 2, 2, 2, 2050, 2051, 7, 660, 2, 2, 2051, 2053, 5, 670, 336, 2, 2052, 2054, 5, 104, 53, 2, 2053, 2052, 3, 2, 2, 2, 2053, 2054, 3, 2, 2, 2, 2054, 2073, 3, 2, 2, 2, 2055, 2056, 7, 661, 2, 2, 2056, 2057, 7, 859, 2, 2, 2057, 2073, 5, 102, 52, 2, 2058, 2073, 5, 104, 53, 2, 2059, 2061, 7, 667, 2, 2, 2060, 2062, 7, 859, 2, 2, 2061, 2060, 3, 2, 2, 2, 2061, 2062, 3, 2, 2, 2, 2062, 2063, 3, 2, 2, 2, 2063, 2073, 9, 27, 2, 2, 2064, 2066, 7, 183, 2, 2, 2065, 2067, 7, 859, 2, 2, 2066, 2065, 3, 2, 2, 2, 2066, 2067, 3, 2, 2, 2, 2067, 2068, 3, 2, 2, 2, 2068, 2069, 7, 868, 2, 2, 2069, 2070, 5, 654, 328, 2, 2070, 2071, 7, 869, 2, 2, 2071, 2073, 3, 2, 2, 2, 2072, 1887, 3, 2, 2, 2, 2072, 1894, 3, 2, 2, 2, 2072, 1899, 3, 2, 2, 2, 2072, 1904, 3, 2, 2, 2, 2072, 1909, 3, 2, 2, 2, 2072, 1915, 3, 2, 2, 2, 2072, 1925, 3, 2, 2, 2, 2072, 1931, 3, 2, 2, 2, 2072, 1938, 3, 2, 2, 2, 2072, 1943, 3, 2, 2, 2, 2072, 1948, 3, 2, 2, 2, 2072, 1953, 3, 2, 2, 2, 2072, 1959, 3, 2, 2, 2, 2072, 1964, 3, 2, 2, 2, 2072, 1969, 3, 2, 2, 2, 2072, 1974, 3, 2, 2, 2, 2072, 1979, 3, 2, 2, 2, 2072, 1984, 3, 2, 2, 2, 2072, 1990, 3, 2, 2, 2, 2072, 1995, 3, 2, 2, 2, 2072, 2000, 3, 2, 2, 2, 2072, 2005, 3, 2, 2, 2, 2072, 2010, 3, 2, 2, 2, 2072, 2015, 3, 2, 2, 2, 2072, 2020, 3, 2, 2, 2, 2072, 2025, 3, 2, 2, 2, 2072, 2027, 3, 2, 2, 2, 2072, 2032, 3, 2, 2, 2, 2072, 2037, 3, 2, 2, 2, 2072, 2042, 3, 2, 2, 2, 2072, 2050, 3, 2, 2, 2, 2072, 2055, 3, 2, 2, 2, 2072, 2058, 3, 2, 2, 2, 2072, 2059, 3, 2, 2, 2, 2072, 2064, 3, 2, 2, 2, 2073, 101, 3, 2, 2, 2, 2074, 2075, 9, 34, 2, 2, 2075, 103, 3, 2, 2, 2, 2076, 2077, 7, 649, 2, 2, 2077, 2078, 9, 23, 2, 2, 2078, 105, 3, 2, 2, 2, 2079, 2080, 7, 132, 2, 2, 2080, 2081, 7, 22, 2, 2, 2081, 2084, 5, 108, 55, 2, 2082, 2083, 7, 530, 2, 2, 2083, 2085, 5, 716, 359, 2, 2084, 2082, 3, 2, 2, 2, 2084, 2085, 3, 2, 2, 2, 2085, 2093, 3, 2, 2, 2, 2086, 2087, 7, 654, 2, 2, 2087, 2088, 7, 22, 2, 2, 2088, 2091, 5, 110, 56, 2, 2089, 2090, 7, 655, 2, 2, 2090, 2092, 5, 716, 359, 2, 2091, 2089, 3, 2, 2, 2, 2091, 2092, 3, 2, 2, 2, 2092, 2094, 3, 2, 2, 2, 2093, 2086, 3, 2, 2, 2, 2093, 2094, 3, 2, 2, 2, 2094, 2106, 3, 2, 2, 2, 2095, 2096, 7, 868, 2, 2, 2096, 2101, 5, 112, 57, 2, 2097, 2098, 7, 870, 2, 2, 2098, 2100, 5, 112, 57, 2, 2099, 2097, 3, 2, 2, 2, 2100, 2103, 3, 2, 2, 2, 2101, 2099, 3, 2, 2, 2, 2101, 2102, 3, 2, 2, 2, 2102, 2104, 3, 2, 2, 2, 2103, 2101, 3, 2, 2, 2, 2104, 2105, 7, 869, 2, 2, 2105, 2107, 3, 2, 2, 2, 2106, 2095, 3, 2, 2, 2, 2106, 2107, 3, 2, 2, 2, 2107, 107, 3, 2, 2, 2, 2108, 2110, 7, 103, 2, 2, 2109, 2108, 3, 2, 2, 2, 2109, 2110, 3, 2, 2, 2, 2110, 2111, 3, 2, 2, 2, 2111, 2112, 7, 420, 2, 2, 2112, 2113, 7, 868, 2, 2, 2113, 2114, 5, 808, 405, 2, 2114, 2115, 7, 869, 2, 2, 2115, 2155, 3, 2, 2, 2, 2116, 2118, 7, 103, 2, 2, 2117, 2116, 3, 2, 2, 2, 2117, 2118, 3, 2, 2, 2, 2118, 2119, 3, 2, 2, 2, 2119, 2123, 7, 94, 2, 2, 2120, 2121, 7, 310, 2, 2, 2121, 2122, 7, 859, 2, 2, 2122, 2124, 9, 35, 2, 2, 2123, 2120, 3, 2, 2, 2, 2123, 2124, 3, 2, 2, 2, 2124, 2125, 3, 2, 2, 2, 2125, 2127, 7, 868, 2, 2, 2126, 2128, 5, 664, 333, 2, 2127, 2126, 3, 2, 2, 2, 2127, 2128, 3, 2, 2, 2, 2128, 2129, 3, 2, 2, 2, 2129, 2155, 7, 869, 2, 2, 2130, 2140, 7, 136, 2, 2, 2131, 2132, 7, 868, 2, 2, 2132, 2133, 5, 808, 405, 2, 2133, 2134, 7, 869, 2, 2, 2134, 2141, 3, 2, 2, 2, 2135, 2136, 7, 339, 2, 2, 2136, 2137, 7, 868, 2, 2, 2137, 2138, 5, 664, 333, 2, 2138, 2139, 7, 869, 2, 2, 2139, 2141, 3, 2, 2, 2, 2140, 2131, 3, 2, 2, 2, 2140, 2135, 3, 2, 2, 2, 2141, 2155, 3, 2, 2, 2, 2142, 2152, 7, 451, 2, 2, 2143, 2144, 7, 868, 2, 2, 2144, 2145, 5, 808, 405, 2, 2145, 2146, 7, 869, 2, 2, 2146, 2153, 3, 2, 2, 2, 2147, 2148, 7, 339, 2, 2, 2148, 2149, 7, 868, 2, 2, 2149, 2150, 5, 664, 333, 2, 2150, 2151, 7, 869, 2, 2, 2151, 2153, 3, 2, 2, 2, 2152, 2143, 3, 2, 2, 2, 2152, 2147, 3, 2, 2, 2, 2153, 2155, 3, 2, 2, 2, 2154, 2109, 3, 2, 2, 2, 2154, 2117, 3, 2, 2, 2, 2154, 2130, 3, 2, 2, 2, 2154, 2142, 3, 2, 2, 2, 2155, 109, 3, 2, 2, 2, 2156, 2158, 7, 103, 2, 2, 2157, 2156, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2159, 3, 2, 2, 2, 2159, 2160, 7, 420, 2, 2, 2160, 2161, 7, 868, 2, 2, 2161, 2162, 5, 808, 405, 2, 2162, 2163, 7, 869, 2, 2, 2163, 2178, 3, 2, 2, 2, 2164, 2166, 7, 103, 2, 2, 2165, 2164, 3, 2, 2, 2, 2165, 2166, 3, 2, 2, 2, 2166, 2167, 3, 2, 2, 2, 2167, 2171, 7, 94, 2, 2, 2168, 2169, 7, 310, 2, 2, 2169, 2170, 7, 859, 2, 2, 2170, 2172, 9, 35, 2, 2, 2171, 2168, 3, 2, 2, 2, 2171, 2172, 3, 2, 2, 2, 2172, 2173, 3, 2, 2, 2, 2173, 2174, 7, 868, 2, 2, 2174, 2175, 5, 664, 333, 2, 2175, 2176, 7, 869, 2, 2, 2176, 2178, 3, 2, 2, 2, 2177, 2157, 3, 2, 2, 2, 2177, 2165, 3, 2, 2, 2, 2178, 111, 3, 2, 2, 2, 2179, 2180, 7, 132, 2, 2, 2180, 2181, 5, 676, 339, 2, 2181, 2182, 7, 191, 2, 2, 2182, 2183, 7, 449, 2, 2, 2183, 2184, 7, 664, 2, 2, 2184, 2185, 7, 868, 2, 2, 2185, 2190, 5, 114, 58, 2, 2186, 2187, 7, 870, 2, 2, 2187, 2189, 5, 114, 58, 2, 2188, 2186, 3, 2, 2, 2, 2189, 2192, 3, 2, 2, 2, 2190, 2188, 3, 2, 2, 2, 2190, 2191, 3, 2, 2, 2, 2191, 2193, 3, 2, 2, 2, 2192, 2190, 3, 2, 2, 2, 2193, 2197, 7, 869, 2, 2, 2194, 2196, 5, 120, 61, 2, 2195, 2194, 3, 2, 2, 2, 2196, 2199, 3, 2, 2, 2, 2197, 2195, 3, 2, 2, 2, 2197, 2198, 3, 2, 2, 2, 2198, 2211, 3, 2, 2, 2, 2199, 2197, 3, 2, 2, 2, 2200, 2201, 7, 868, 2, 2, 2201, 2206, 5, 118, 60, 2, 2202, 2203, 7, 870, 2, 2, 2203, 2205, 5, 118, 60, 2, 2204, 2202, 3, 2, 2, 2, 2205, 2208, 3, 2, 2, 2, 2206, 2204, 3, 2, 2, 2, 2206, 2207, 3, 2, 2, 2, 2207, 2209, 3, 2, 2, 2, 2208, 2206, 3, 2, 2, 2, 2209, 2210, 7, 869, 2, 2, 2210, 2212, 3, 2, 2, 2, 2211, 2200, 3, 2, 2, 2, 2211, 2212, 3, 2, 2, 2, 2212, 2326, 3, 2, 2, 2, 2213, 2214, 7, 132, 2, 2, 2214, 2215, 5, 676, 339, 2, 2215, 2216, 7, 191, 2, 2, 2216, 2217, 7, 449, 2, 2, 2217, 2218, 7, 664, 2, 2, 2218, 2222, 5, 114, 58, 2, 2219, 2221, 5, 120, 61, 2, 2220, 2219, 3, 2, 2, 2, 2221, 2224, 3, 2, 2, 2, 2222, 2220, 3, 2, 2, 2, 2222, 2223, 3, 2, 2, 2, 2223, 2236, 3, 2, 2, 2, 2224, 2222, 3, 2, 2, 2, 2225, 2226, 7, 868, 2, 2, 2226, 2231, 5, 118, 60, 2, 2227, 2228, 7, 870, 2, 2, 2228, 2230, 5, 118, 60, 2, 2229, 2227, 3, 2, 2, 2, 2230, 2233, 3, 2, 2, 2, 2231, 2229, 3, 2, 2, 2, 2231, 2232, 3, 2, 2, 2, 2232, 2234, 3, 2, 2, 2, 2233, 2231, 3, 2, 2, 2, 2234, 2235, 7, 869, 2, 2, 2235, 2237, 3, 2, 2, 2, 2236, 2225, 3, 2, 2, 2, 2236, 2237, 3, 2, 2, 2, 2237, 2326, 3, 2, 2, 2, 2238, 2239, 7, 132, 2, 2, 2239, 2240, 5, 676, 339, 2, 2240, 2241, 7, 191, 2, 2, 2241, 2242, 7, 82, 2, 2, 2242, 2243, 7, 868, 2, 2, 2243, 2248, 5, 114, 58, 2, 2244, 2245, 7, 870, 2, 2, 2245, 2247, 5, 114, 58, 2, 2246, 2244, 3, 2, 2, 2, 2247, 2250, 3, 2, 2, 2, 2248, 2246, 3, 2, 2, 2, 2248, 2249, 3, 2, 2, 2, 2249, 2251, 3, 2, 2, 2, 2250, 2248, 3, 2, 2, 2, 2251, 2255, 7, 869, 2, 2, 2252, 2254, 5, 120, 61, 2, 2253, 2252, 3, 2, 2, 2, 2254, 2257, 3, 2, 2, 2, 2255, 2253, 3, 2, 2, 2, 2255, 2256, 3, 2, 2, 2, 2256, 2269, 3, 2, 2, 2, 2257, 2255, 3, 2, 2, 2, 2258, 2259, 7, 868, 2, 2, 2259, 2264, 5, 118, 60, 2, 2260, 2261, 7, 870, 2, 2, 2261, 2263, 5, 118, 60, 2, 2262, 2260, 3, 2, 2, 2, 2263, 2266, 3, 2, 2, 2, 2264, 2262, 3, 2, 2, 2, 2264, 2265, 3, 2, 2, 2, 2265, 2267, 3, 2, 2, 2, 2266, 2264, 3, 2, 2, 2, 2267, 2268, 7, 869, 2, 2, 2268, 2270, 3, 2, 2, 2, 2269, 2258, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2326, 3, 2, 2, 2, 2271, 2272, 7, 132, 2, 2, 2272, 2273, 5, 676, 339, 2, 2273, 2274, 7, 191, 2, 2, 2274, 2275, 7, 82, 2, 2, 2275, 2276, 7, 868, 2, 2, 2276, 2281, 5, 116, 59, 2, 2277, 2278, 7, 870, 2, 2, 2278, 2280, 5, 116, 59, 2, 2279, 2277, 3, 2, 2, 2, 2280, 2283, 3, 2, 2, 2, 2281, 2279, 3, 2, 2, 2, 2281, 2282, 3, 2, 2, 2, 2282, 2284, 3, 2, 2, 2, 2283, 2281, 3, 2, 2, 2, 2284, 2288, 7, 869, 2, 2, 2285, 2287, 5, 120, 61, 2, 2286, 2285, 3, 2, 2, 2, 2287, 2290, 3, 2, 2, 2, 2288, 2286, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 2302, 3, 2, 2, 2, 2290, 2288, 3, 2, 2, 2, 2291, 2292, 7, 868, 2, 2, 2292, 2297, 5, 118, 60, 2, 2293, 2294, 7, 870, 2, 2, 2294, 2296, 5, 118, 60, 2, 2295, 2293, 3, 2, 2, 2, 2296, 2299, 3, 2, 2, 2, 2297, 2295, 3, 2, 2, 2, 2297, 2298, 3, 2, 2, 2, 2298, 2300, 3, 2, 2, 2, 2299, 2297, 3, 2, 2, 2, 2300, 2301, 7, 869, 2, 2, 2301, 2303, 3, 2, 2, 2, 2302, 2291, 3, 2, 2, 2, 2302, 2303, 3, 2, 2, 2, 2303, 2326, 3, 2, 2, 2, 2304, 2305, 7, 132, 2, 2, 2305, 2309, 5, 676, 339, 2, 2306, 2308, 5, 120, 61, 2, 2307, 2306, 3, 2, 2, 2, 2308, 2311, 3, 2, 2, 2, 2309, 2307, 3, 2, 2, 2, 2309, 2310, 3, 2, 2, 2, 2310, 2323, 3, 2, 2, 2, 2311, 2309, 3, 2, 2, 2, 2312, 2313, 7, 868, 2, 2, 2313, 2318, 5, 118, 60, 2, 2314, 2315, 7, 870, 2, 2, 2315, 2317, 5, 118, 60, 2, 2316, 2314, 3, 2, 2, 2, 2317, 2320, 3, 2, 2, 2, 2318, 2316, 3, 2, 2, 2, 2318, 2319, 3, 2, 2, 2, 2319, 2321, 3, 2, 2, 2, 2320, 2318, 3, 2, 2, 2, 2321, 2322, 7, 869, 2, 2, 2322, 2324, 3, 2, 2, 2, 2323, 2312, 3, 2, 2, 2, 2323, 2324, 3, 2, 2, 2, 2324, 2326, 3, 2, 2, 2, 2325, 2179, 3, 2, 2, 2, 2325, 2213, 3, 2, 2, 2, 2325, 2238, 3, 2, 2, 2, 2325, 2271, 3, 2, 2, 2, 2325, 2304, 3, 2, 2, 2, 2326, 113, 3, 2, 2, 2, 2327, 2331, 5, 728, 365, 2, 2328, 2331, 5, 808, 405, 2, 2329, 2331, 7, 113, 2, 2, 2330, 2327, 3, 2, 2, 2, 2330, 2328, 3, 2, 2, 2, 2330, 2329, 3, 2, 2, 2, 2331, 115, 3, 2, 2, 2, 2332, 2333, 7, 868, 2, 2, 2333, 2336, 5, 114, 58, 2, 2334, 2335, 7, 870, 2, 2, 2335, 2337, 5, 114, 58, 2, 2336, 2334, 3, 2, 2, 2, 2337, 2338, 3, 2, 2, 2, 2338, 2336, 3, 2, 2, 2, 2338, 2339, 3, 2, 2, 2, 2339, 2340, 3, 2, 2, 2, 2340, 2341, 7, 869, 2, 2, 2341, 117, 3, 2, 2, 2, 2342, 2343, 7, 654, 2, 2, 2343, 2347, 5, 710, 356, 2, 2344, 2346, 5, 120, 61, 2, 2345, 2344, 3, 2, 2, 2, 2346, 2349, 3, 2, 2, 2, 2347, 2345, 3, 2, 2, 2, 2347, 2348, 3, 2, 2, 2, 2348, 119, 3, 2, 2, 2, 2349, 2347, 3, 2, 2, 2, 2350, 2352, 7, 44, 2, 2, 2351, 2350, 3, 2, 2, 2, 2351, 2352, 3, 2, 2, 2, 2352, 2354, 3, 2, 2, 2, 2353, 2355, 7, 649, 2, 2, 2354, 2353, 3, 2, 2, 2, 2354, 2355, 3, 2, 2, 2, 2355, 2356, 3, 2, 2, 2, 2356, 2358, 7, 382, 2, 2, 2357, 2359, 7, 859, 2, 2, 2358, 2357, 3, 2, 2, 2, 2358, 2359, 3, 2, 2, 2, 2359, 2360, 3, 2, 2, 2, 2360, 2399, 5, 696, 349, 2, 2361, 2363, 7, 342, 2, 2, 2362, 2364, 7, 859, 2, 2, 2363, 2362, 3, 2, 2, 2, 2363, 2364, 3, 2, 2, 2, 2364, 2365, 3, 2, 2, 2, 2365, 2399, 7, 884, 2, 2, 2366, 2367, 7, 362, 2, 2, 2367, 2369, 7, 369, 2, 2, 2368, 2370, 7, 859, 2, 2, 2369, 2368, 3, 2, 2, 2, 2369, 2370, 3, 2, 2, 2, 2370, 2371, 3, 2, 2, 2, 2371, 2399, 7, 884, 2, 2, 2372, 2373, 7, 84, 2, 2, 2373, 2375, 7, 369, 2, 2, 2374, 2376, 7, 859, 2, 2, 2375, 2374, 3, 2, 2, 2, 2375, 2376, 3, 2, 2, 2, 2376, 2377, 3, 2, 2, 2, 2377, 2399, 7, 884, 2, 2, 2378, 2380, 7, 482, 2, 2, 2379, 2381, 7, 859, 2, 2, 2380, 2379, 3, 2, 2, 2, 2380, 2381, 3, 2, 2, 2, 2381, 2382, 3, 2, 2, 2, 2382, 2399, 5, 716, 359, 2, 2383, 2385, 7, 492, 2, 2, 2384, 2386, 7, 859, 2, 2, 2385, 2384, 3, 2, 2, 2, 2385, 2386, 3, 2, 2, 2, 2386, 2387, 3, 2, 2, 2, 2387, 2399, 5, 716, 359, 2, 2388, 2390, 7, 660, 2, 2, 2389, 2391, 7, 859, 2, 2, 2390, 2389, 3, 2, 2, 2, 2390, 2391, 3, 2, 2, 2, 2391, 2392, 3, 2, 2, 2, 2392, 2399, 5, 670, 336, 2, 2393, 2395, 7, 506, 2, 2, 2394, 2396, 7, 859, 2, 2, 2395, 2394, 3, 2, 2, 2, 2395, 2396, 3, 2, 2, 2, 2396, 2397, 3, 2, 2, 2, 2397, 2399, 5, 710, 356, 2, 2398, 2351, 3, 2, 2, 2, 2398, 2361, 3, 2, 2, 2, 2398, 2366, 3, 2, 2, 2, 2398, 2372, 3, 2, 2, 2, 2398, 2378, 3, 2, 2, 2, 2398, 2383, 3, 2, 2, 2, 2398, 2388, 3, 2, 2, 2, 2398, 2393, 3, 2, 2, 2, 2399, 121, 3, 2, 2, 2, 2400, 2401, 7, 10, 2, 2, 2401, 2403, 9, 2, 2, 2, 2402, 2404, 5, 632, 317, 2, 2403, 2402, 3, 2, 2, 2, 2403, 2404, 3, 2, 2, 2, 2404, 2406, 3, 2, 2, 2, 2405, 2407, 5, 54, 28, 2, 2406, 2405, 3, 2, 2, 2, 2407, 2408, 3, 2, 2, 2, 2408, 2406, 3, 2, 2, 2, 2408, 2409, 3, 2, 2, 2, 2409, 2419, 3, 2, 2, 2, 2410, 2411, 7, 10, 2, 2, 2411, 2412, 9, 2, 2, 2, 2412, 2413, 5, 632, 317, 2, 2413, 2414, 7, 679, 2, 2, 2414, 2415, 7, 362, 2, 2, 2415, 2416, 7, 369, 2, 2, 2416, 2417, 7, 498, 2, 2, 2417, 2419, 3, 2, 2, 2, 2418, 2400, 3, 2, 2, 2, 2418, 2410, 3, 2, 2, 2, 2419, 123, 3, 2, 2, 2, 2420, 2422, 7, 10, 2, 2, 2421, 2423, 5, 60, 31, 2, 2422, 2421, 3, 2, 2, 2, 2422, 2423, 3, 2, 2, 2, 2423, 2424, 3, 2, 2, 2, 2424, 2425, 7, 387, 2, 2, 2425, 2429, 5, 706, 354, 2, 2426, 2427, 7, 121, 2, 2, 2427, 2428, 7, 592, 2, 2, 2428, 2430, 5, 62, 32, 2, 2429, 2426, 3, 2, 2, 2, 2429, 2430, 3, 2, 2, 2, 2430, 2437, 3, 2, 2, 2, 2431, 2432, 7, 121, 2, 2, 2432, 2434, 7, 345, 2, 2, 2433, 2435, 7, 116, 2, 2, 2434, 2433, 3, 2, 2, 2, 2434, 2435, 3, 2, 2, 2, 2435, 2436, 3, 2, 2, 2, 2436, 2438, 7, 543, 2, 2, 2437, 2431, 3, 2, 2, 2, 2437, 2438, 3, 2, 2, 2, 2438, 2442, 3, 2, 2, 2, 2439, 2440, 7, 143, 2, 2, 2440, 2441, 7, 178, 2, 2, 2441, 2443, 5, 706, 354, 2, 2442, 2439, 3, 2, 2, 2, 2442, 2443, 3, 2, 2, 2, 2443, 2445, 3, 2, 2, 2, 2444, 2446, 5, 70, 36, 2, 2445, 2444, 3, 2, 2, 2, 2445, 2446, 3, 2, 2, 2, 2446, 2449, 3, 2, 2, 2, 2447, 2448, 7, 342, 2, 2, 2448, 2450, 7, 884, 2, 2, 2449, 2447, 3, 2, 2, 2, 2449, 2450, 3, 2, 2, 2, 2450, 2453, 3, 2, 2, 2, 2451, 2452, 7, 373, 2, 2, 2452, 2454, 5, 424, 213, 2, 2453, 2451, 3, 2, 2, 2, 2453, 2454, 3, 2, 2, 2, 2454, 125, 3, 2, 2, 2, 2455, 2456, 7, 10, 2, 2, 2456, 2457, 7, 411, 2, 2, 2457, 2461, 5, 636, 319, 2, 2458, 2460, 5, 78, 40, 2, 2459, 2458, 3, 2, 2, 2, 2460, 2463, 3, 2, 2, 2, 2461, 2459, 3, 2, 2, 2, 2461, 2462, 3, 2, 2, 2, 2462, 127, 3, 2, 2, 2, 2463, 2461, 3, 2, 2, 2, 2464, 2465, 7, 10, 2, 2, 2465, 2466, 7, 435, 2, 2, 2466, 2467, 7, 587, 2, 2, 2467, 2468, 7, 803, 2, 2, 2468, 2469, 7, 455, 2, 2, 2469, 2470, 7, 94, 2, 2, 2470, 129, 3, 2, 2, 2, 2471, 2472, 7, 10, 2, 2, 2472, 2473, 7, 453, 2, 2, 2473, 2474, 7, 76, 2, 2, 2474, 2475, 5, 710, 356, 2, 2475, 2476, 7, 8, 2, 2, 2476, 2477, 7, 673, 2, 2, 2477, 2483, 7, 884, 2, 2, 2478, 2480, 7, 430, 2, 2, 2479, 2481, 7, 859, 2, 2, 2480, 2479, 3, 2, 2, 2, 2480, 2481, 3, 2, 2, 2, 2481, 2482, 3, 2, 2, 2, 2482, 2484, 5, 718, 360, 2, 2483, 2478, 3, 2, 2, 2, 2483, 2484, 3, 2, 2, 2, 2484, 2486, 3, 2, 2, 2, 2485, 2487, 7, 689, 2, 2, 2486, 2485, 3, 2, 2, 2, 2486, 2487, 3, 2, 2, 2, 2487, 2488, 3, 2, 2, 2, 2488, 2490, 7, 382, 2, 2, 2489, 2491, 7, 859, 2, 2, 2490, 2489, 3, 2, 2, 2, 2490, 2491, 3, 2, 2, 2, 2491, 2492, 3, 2, 2, 2, 2492, 2493, 5, 696, 349, 2, 2493, 131, 3, 2, 2, 2, 2494, 2495, 7, 10, 2, 2, 2495, 2496, 7, 134, 2, 2, 2496, 2500, 5, 706, 354, 2, 2497, 2499, 5, 78, 40, 2, 2498, 2497, 3, 2, 2, 2, 2499, 2502, 3, 2, 2, 2, 2500, 2498, 3, 2, 2, 2, 2500, 2501, 3, 2, 2, 2, 2501, 133, 3, 2, 2, 2, 2502, 2500, 3, 2, 2, 2, 2503, 2504, 7, 10, 2, 2, 2504, 2505, 7, 594, 2, 2, 2505, 2506, 5, 710, 356, 2, 2506, 2507, 7, 520, 2, 2, 2507, 2508, 7, 868, 2, 2, 2508, 2513, 5, 80, 41, 2, 2509, 2510, 7, 870, 2, 2, 2510, 2512, 5, 80, 41, 2, 2511, 2509, 3, 2, 2, 2, 2512, 2515, 3, 2, 2, 2, 2513, 2511, 3, 2, 2, 2, 2513, 2514, 3, 2, 2, 2, 2514, 2516, 3, 2, 2, 2, 2515, 2513, 3, 2, 2, 2, 2516, 2517, 7, 869, 2, 2, 2517, 135, 3, 2, 2, 2, 2518, 2519, 7, 10, 2, 2, 2519, 2520, 7, 175, 2, 2, 2520, 2529, 5, 656, 329, 2, 2521, 2526, 5, 142, 72, 2, 2522, 2523, 7, 870, 2, 2, 2523, 2525, 5, 142, 72, 2, 2524, 2522, 3, 2, 2, 2, 2525, 2528, 3, 2, 2, 2, 2526, 2524, 3, 2, 2, 2, 2526, 2527, 3, 2, 2, 2, 2527, 2530, 3, 2, 2, 2, 2528, 2526, 3, 2, 2, 2, 2529, 2521, 3, 2, 2, 2, 2529, 2530, 3, 2, 2, 2, 2530, 2538, 3, 2, 2, 2, 2531, 2535, 5, 144, 73, 2, 2532, 2534, 5, 144, 73, 2, 2533, 2532, 3, 2, 2, 2, 2534, 2537, 3, 2, 2, 2, 2535, 2533, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 2539, 3, 2, 2, 2, 2537, 2535, 3, 2, 2, 2, 2538, 2531, 3, 2, 2, 2, 2538, 2539, 3, 2, 2, 2, 2539, 137, 3, 2, 2, 2, 2540, 2542, 7, 10, 2, 2, 2541, 2543, 7, 182, 2, 2, 2542, 2541, 3, 2, 2, 2, 2542, 2543, 3, 2, 2, 2, 2543, 2544, 3, 2, 2, 2, 2544, 2545, 7, 660, 2, 2, 2545, 2546, 5, 670, 336, 2, 2546, 2547, 9, 36, 2, 2, 2547, 2548, 7, 363, 2, 2, 2548, 2554, 7, 884, 2, 2, 2549, 2551, 7, 430, 2, 2, 2550, 2552, 7, 859, 2, 2, 2551, 2550, 3, 2, 2, 2, 2551, 2552, 3, 2, 2, 2, 2552, 2553, 3, 2, 2, 2, 2553, 2555, 5, 718, 360, 2, 2554, 2549, 3, 2, 2, 2, 2554, 2555, 3, 2, 2, 2, 2555, 2557, 3, 2, 2, 2, 2556, 2558, 7, 689, 2, 2, 2557, 2556, 3, 2, 2, 2, 2557, 2558, 3, 2, 2, 2, 2558, 2562, 3, 2, 2, 2, 2559, 2560, 7, 143, 2, 2, 2560, 2561, 7, 178, 2, 2, 2561, 2563, 5, 668, 335, 2, 2562, 2559, 3, 2, 2, 2, 2562, 2563, 3, 2, 2, 2, 2563, 2569, 3, 2, 2, 2, 2564, 2566, 7, 316, 2, 2, 2565, 2567, 7, 859, 2, 2, 2566, 2565, 3, 2, 2, 2, 2566, 2567, 3, 2, 2, 2, 2567, 2568, 3, 2, 2, 2, 2568, 2570, 5, 718, 360, 2, 2569, 2564, 3, 2, 2, 2, 2569, 2570, 3, 2, 2, 2, 2570, 2573, 3, 2, 2, 2, 2571, 2572, 7, 157, 2, 2, 2572, 2574, 9, 37, 2, 2, 2573, 2571, 3, 2, 2, 2, 2573, 2574, 3, 2, 2, 2, 2574, 2580, 3, 2, 2, 2, 2575, 2577, 7, 378, 2, 2, 2576, 2578, 7, 859, 2, 2, 2577, 2576, 3, 2, 2, 2, 2577, 2578, 3, 2, 2, 2, 2578, 2579, 3, 2, 2, 2, 2579, 2581, 7, 884, 2, 2, 2580, 2575, 3, 2, 2, 2, 2580, 2581, 3, 2, 2, 2, 2581, 2587, 3, 2, 2, 2, 2582, 2584, 7, 382, 2, 2, 2583, 2585, 7, 859, 2, 2, 2584, 2583, 3, 2, 2, 2, 2584, 2585, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2588, 5, 696, 349, 2, 2587, 2582, 3, 2, 2, 2, 2587, 2588, 3, 2, 2, 2, 2588, 2594, 3, 2, 2, 2, 2589, 2591, 7, 827, 2, 2, 2590, 2592, 7, 859, 2, 2, 2591, 2590, 3, 2, 2, 2, 2591, 2592, 3, 2, 2, 2, 2592, 2593, 3, 2, 2, 2, 2593, 2595, 7, 884, 2, 2, 2594, 2589, 3, 2, 2, 2, 2594, 2595, 3, 2, 2, 2, 2595, 139, 3, 2, 2, 2, 2596, 2600, 7, 10, 2, 2, 2597, 2598, 7, 310, 2, 2, 2598, 2599, 7, 859, 2, 2, 2599, 2601, 9, 12, 2, 2, 2600, 2597, 3, 2, 2, 2, 2600, 2601, 3, 2, 2, 2, 2601, 2603, 3, 2, 2, 2, 2602, 2604, 5, 60, 31, 2, 2603, 2602, 3, 2, 2, 2, 2603, 2604, 3, 2, 2, 2, 2604, 2608, 3, 2, 2, 2, 2605, 2606, 7, 164, 2, 2, 2606, 2607, 7, 593, 2, 2, 2607, 2609, 9, 13, 2, 2, 2608, 2605, 3, 2, 2, 2, 2608, 2609, 3, 2, 2, 2, 2609, 2610, 3, 2, 2, 2, 2610, 2611, 7, 686, 2, 2, 2611, 2616, 5, 640, 321, 2, 2612, 2613, 7, 868, 2, 2, 2613, 2614, 5, 664, 333, 2, 2614, 2615, 7, 869, 2, 2, 2615, 2617, 3, 2, 2, 2, 2616, 2612, 3, 2, 2, 2, 2616, 2617, 3, 2, 2, 2, 2617, 2618, 3, 2, 2, 2, 2618, 2619, 7, 15, 2, 2, 2619, 2626, 5, 206, 104, 2, 2620, 2622, 7, 196, 2, 2, 2621, 2623, 9, 14, 2, 2, 2622, 2621, 3, 2, 2, 2, 2622, 2623, 3, 2, 2, 2, 2623, 2624, 3, 2, 2, 2, 2624, 2625, 7, 29, 2, 2, 2625, 2627, 7, 123, 2, 2, 2626, 2620, 3, 2, 2, 2, 2626, 2627, 3, 2, 2, 2, 2627, 141, 3, 2, 2, 2, 2628, 2635, 5, 100, 51, 2, 2629, 2631, 7, 870, 2, 2, 2630, 2629, 3, 2, 2, 2, 2630, 2631, 3, 2, 2, 2, 2631, 2632, 3, 2, 2, 2, 2632, 2634, 5, 100, 51, 2, 2633, 2630, 3, 2, 2, 2, 2634, 2637, 3, 2, 2, 2, 2635, 2633, 3, 2, 2, 2, 2635, 2636, 3, 2, 2, 2, 2636, 2893, 3, 2, 2, 2, 2637, 2635, 3, 2, 2, 2, 2638, 2640, 7, 8, 2, 2, 2639, 2641, 7, 31, 2, 2, 2640, 2639, 3, 2, 2, 2, 2640, 2641, 3, 2, 2, 2, 2641, 2642, 3, 2, 2, 2, 2642, 2643, 5, 666, 334, 2, 2643, 2647, 5, 90, 46, 2, 2644, 2648, 7, 404, 2, 2, 2645, 2646, 7, 308, 2, 2, 2646, 2648, 5, 666, 334, 2, 2647, 2644, 3, 2, 2, 2, 2647, 2645, 3, 2, 2, 2, 2647, 2648, 3, 2, 2, 2, 2648, 2893, 3, 2, 2, 2, 2649, 2651, 7, 8, 2, 2, 2650, 2652, 7, 31, 2, 2, 2651, 2650, 3, 2, 2, 2, 2651, 2652, 3, 2, 2, 2, 2652, 2653, 3, 2, 2, 2, 2653, 2654, 7, 868, 2, 2, 2654, 2655, 5, 666, 334, 2, 2655, 2662, 5, 90, 46, 2, 2656, 2657, 7, 870, 2, 2, 2657, 2658, 5, 666, 334, 2, 2658, 2659, 5, 90, 46, 2, 2659, 2661, 3, 2, 2, 2, 2660, 2656, 3, 2, 2, 2, 2661, 2664, 3, 2, 2, 2, 2662, 2660, 3, 2, 2, 2, 2662, 2663, 3, 2, 2, 2, 2663, 2665, 3, 2, 2, 2, 2664, 2662, 3, 2, 2, 2, 2665, 2666, 7, 869, 2, 2, 2666, 2893, 3, 2, 2, 2, 2667, 2668, 7, 8, 2, 2, 2668, 2670, 9, 20, 2, 2, 2669, 2671, 5, 646, 324, 2, 2670, 2669, 3, 2, 2, 2, 2670, 2671, 3, 2, 2, 2, 2671, 2673, 3, 2, 2, 2, 2672, 2674, 5, 72, 37, 2, 2673, 2672, 3, 2, 2, 2, 2673, 2674, 3, 2, 2, 2, 2674, 2675, 3, 2, 2, 2, 2675, 2679, 5, 742, 372, 2, 2676, 2678, 5, 74, 38, 2, 2677, 2676, 3, 2, 2, 2, 2678, 2681, 3, 2, 2, 2, 2679, 2677, 3, 2, 2, 2, 2679, 2680, 3, 2, 2, 2, 2680, 2893, 3, 2, 2, 2, 2681, 2679, 3, 2, 2, 2, 2682, 2683, 7, 8, 2, 2, 2683, 2685, 9, 21, 2, 2, 2684, 2686, 9, 20, 2, 2, 2685, 2684, 3, 2, 2, 2, 2685, 2686, 3, 2, 2, 2, 2686, 2688, 3, 2, 2, 2, 2687, 2689, 5, 646, 324, 2, 2688, 2687, 3, 2, 2, 2, 2688, 2689, 3, 2, 2, 2, 2689, 2690, 3, 2, 2, 2, 2690, 2694, 5, 742, 372, 2, 2691, 2693, 5, 74, 38, 2, 2692, 2691, 3, 2, 2, 2, 2693, 2696, 3, 2, 2, 2, 2694, 2692, 3, 2, 2, 2, 2694, 2695, 3, 2, 2, 2, 2695, 2893, 3, 2, 2, 2, 2696, 2694, 3, 2, 2, 2, 2697, 2702, 7, 8, 2, 2, 2698, 2700, 7, 33, 2, 2, 2699, 2701, 5, 710, 356, 2, 2700, 2699, 3, 2, 2, 2, 2700, 2701, 3, 2, 2, 2, 2701, 2703, 3, 2, 2, 2, 2702, 2698, 3, 2, 2, 2, 2702, 2703, 3, 2, 2, 2, 2703, 2704, 3, 2, 2, 2, 2704, 2705, 7, 133, 2, 2, 2705, 2707, 7, 94, 2, 2, 2706, 2708, 5, 72, 37, 2, 2707, 2706, 3, 2, 2, 2, 2707, 2708, 3, 2, 2, 2, 2708, 2709, 3, 2, 2, 2, 2709, 2713, 5, 742, 372, 2, 2710, 2712, 5, 74, 38, 2, 2711, 2710, 3, 2, 2, 2, 2712, 2715, 3, 2, 2, 2, 2713, 2711, 3, 2, 2, 2, 2713, 2714, 3, 2, 2, 2, 2714, 2893, 3, 2, 2, 2, 2715, 2713, 3, 2, 2, 2, 2716, 2721, 7, 8, 2, 2, 2717, 2719, 7, 33, 2, 2, 2718, 2720, 5, 710, 356, 2, 2719, 2718, 3, 2, 2, 2, 2719, 2720, 3, 2, 2, 2, 2720, 2722, 3, 2, 2, 2, 2721, 2717, 3, 2, 2, 2, 2721, 2722, 3, 2, 2, 2, 2722, 2723, 3, 2, 2, 2, 2723, 2725, 7, 184, 2, 2, 2724, 2726, 9, 20, 2, 2, 2725, 2724, 3, 2, 2, 2, 2725, 2726, 3, 2, 2, 2, 2726, 2728, 3, 2, 2, 2, 2727, 2729, 5, 646, 324, 2, 2728, 2727, 3, 2, 2, 2, 2728, 2729, 3, 2, 2, 2, 2729, 2731, 3, 2, 2, 2, 2730, 2732, 5, 72, 37, 2, 2731, 2730, 3, 2, 2, 2, 2731, 2732, 3, 2, 2, 2, 2732, 2733, 3, 2, 2, 2, 2733, 2737, 5, 742, 372, 2, 2734, 2736, 5, 74, 38, 2, 2735, 2734, 3, 2, 2, 2, 2736, 2739, 3, 2, 2, 2, 2737, 2735, 3, 2, 2, 2, 2737, 2738, 3, 2, 2, 2, 2738, 2893, 3, 2, 2, 2, 2739, 2737, 3, 2, 2, 2, 2740, 2745, 7, 8, 2, 2, 2741, 2743, 7, 33, 2, 2, 2742, 2744, 5, 710, 356, 2, 2743, 2742, 3, 2, 2, 2, 2743, 2744, 3, 2, 2, 2, 2744, 2746, 3, 2, 2, 2, 2745, 2741, 3, 2, 2, 2, 2745, 2746, 3, 2, 2, 2, 2746, 2747, 3, 2, 2, 2, 2747, 2748, 7, 69, 2, 2, 2748, 2750, 7, 94, 2, 2, 2749, 2751, 5, 646, 324, 2, 2750, 2749, 3, 2, 2, 2, 2750, 2751, 3, 2, 2, 2, 2751, 2752, 3, 2, 2, 2, 2752, 2753, 5, 742, 372, 2, 2753, 2754, 5, 94, 48, 2, 2754, 2893, 3, 2, 2, 2, 2755, 2757, 7, 8, 2, 2, 2756, 2758, 5, 86, 44, 2, 2757, 2756, 3, 2, 2, 2, 2757, 2758, 3, 2, 2, 2, 2758, 2893, 3, 2, 2, 2, 2759, 2760, 7, 53, 2, 2, 2760, 2761, 9, 38, 2, 2, 2761, 2893, 5, 710, 356, 2, 2762, 2763, 7, 10, 2, 2, 2763, 2764, 9, 38, 2, 2, 2764, 2766, 5, 710, 356, 2, 2765, 2767, 7, 116, 2, 2, 2766, 2765, 3, 2, 2, 2, 2766, 2767, 3, 2, 2, 2, 2767, 2769, 3, 2, 2, 2, 2768, 2770, 7, 59, 2, 2, 2769, 2768, 3, 2, 2, 2, 2769, 2770, 3, 2, 2, 2, 2770, 2893, 3, 2, 2, 2, 2771, 2773, 7, 310, 2, 2, 2772, 2774, 7, 859, 2, 2, 2773, 2772, 3, 2, 2, 2, 2773, 2774, 3, 2, 2, 2, 2774, 2775, 3, 2, 2, 2, 2775, 2893, 9, 39, 2, 2, 2776, 2778, 7, 10, 2, 2, 2777, 2779, 7, 31, 2, 2, 2778, 2777, 3, 2, 2, 2, 2778, 2779, 3, 2, 2, 2, 2779, 2780, 3, 2, 2, 2, 2780, 2788, 5, 666, 334, 2, 2781, 2782, 7, 157, 2, 2, 2782, 2783, 7, 44, 2, 2, 2783, 2789, 5, 758, 380, 2, 2784, 2785, 7, 157, 2, 2, 2785, 2789, 9, 18, 2, 2, 2786, 2787, 7, 53, 2, 2, 2787, 2789, 7, 44, 2, 2, 2788, 2781, 3, 2, 2, 2, 2788, 2784, 3, 2, 2, 2, 2788, 2786, 3, 2, 2, 2, 2789, 2893, 3, 2, 2, 2, 2790, 2791, 7, 10, 2, 2, 2791, 2792, 7, 84, 2, 2, 2792, 2793, 5, 646, 324, 2, 2793, 2794, 9, 18, 2, 2, 2794, 2893, 3, 2, 2, 2, 2795, 2797, 7, 27, 2, 2, 2796, 2798, 7, 31, 2, 2, 2797, 2796, 3, 2, 2, 2, 2797, 2798, 3, 2, 2, 2, 2798, 2799, 3, 2, 2, 2, 2799, 2800, 5, 666, 334, 2, 2800, 2801, 5, 662, 332, 2, 2801, 2805, 5, 90, 46, 2, 2802, 2806, 7, 404, 2, 2, 2803, 2804, 7, 308, 2, 2, 2804, 2806, 5, 666, 334, 2, 2805, 2802, 3, 2, 2, 2, 2805, 2803, 3, 2, 2, 2, 2805, 2806, 3, 2, 2, 2, 2806, 2893, 3, 2, 2, 2, 2807, 2809, 7, 44, 2, 2, 2808, 2807, 3, 2, 2, 2, 2808, 2809, 3, 2, 2, 2, 2809, 2810, 3, 2, 2, 2, 2810, 2811, 7, 28, 2, 2, 2811, 2812, 7, 157, 2, 2, 2812, 2813, 7, 859, 2, 2, 2813, 2819, 5, 692, 347, 2, 2814, 2816, 7, 30, 2, 2, 2815, 2817, 7, 859, 2, 2, 2816, 2815, 3, 2, 2, 2, 2816, 2817, 3, 2, 2, 2, 2817, 2818, 3, 2, 2, 2, 2818, 2820, 5, 694, 348, 2, 2819, 2814, 3, 2, 2, 2, 2819, 2820, 3, 2, 2, 2, 2820, 2893, 3, 2, 2, 2, 2821, 2822, 7, 35, 2, 2, 2822, 2826, 7, 178, 2, 2, 2823, 2827, 7, 825, 2, 2, 2824, 2825, 7, 28, 2, 2, 2825, 2827, 7, 157, 2, 2, 2826, 2823, 3, 2, 2, 2, 2826, 2824, 3, 2, 2, 2, 2827, 2828, 3, 2, 2, 2, 2828, 2831, 5, 692, 347, 2, 2829, 2830, 7, 30, 2, 2, 2830, 2832, 5, 694, 348, 2, 2831, 2829, 3, 2, 2, 2, 2831, 2832, 3, 2, 2, 2, 2832, 2893, 3, 2, 2, 2, 2833, 2834, 9, 40, 2, 2, 2834, 2893, 7, 95, 2, 2, 2835, 2836, 9, 41, 2, 2, 2836, 2893, 7, 660, 2, 2, 2837, 2839, 7, 53, 2, 2, 2838, 2840, 7, 31, 2, 2, 2839, 2838, 3, 2, 2, 2, 2839, 2840, 3, 2, 2, 2, 2840, 2841, 3, 2, 2, 2, 2841, 2893, 5, 666, 334, 2, 2842, 2843, 7, 53, 2, 2, 2843, 2844, 9, 20, 2, 2, 2844, 2893, 5, 646, 324, 2, 2845, 2846, 7, 53, 2, 2, 2846, 2847, 7, 133, 2, 2, 2847, 2893, 7, 94, 2, 2, 2848, 2849, 7, 53, 2, 2, 2849, 2850, 7, 69, 2, 2, 2850, 2851, 7, 94, 2, 2, 2851, 2893, 5, 710, 356, 2, 2852, 2893, 7, 68, 2, 2, 2853, 2855, 7, 106, 2, 2, 2854, 2856, 7, 859, 2, 2, 2855, 2854, 3, 2, 2, 2, 2855, 2856, 3, 2, 2, 2, 2856, 2857, 3, 2, 2, 2, 2857, 2893, 9, 6, 2, 2, 2858, 2860, 7, 494, 2, 2, 2859, 2861, 7, 31, 2, 2, 2860, 2859, 3, 2, 2, 2, 2860, 2861, 3, 2, 2, 2, 2861, 2862, 3, 2, 2, 2, 2862, 2863, 5, 666, 334, 2, 2863, 2867, 5, 90, 46, 2, 2864, 2868, 7, 404, 2, 2, 2865, 2866, 7, 308, 2, 2, 2866, 2868, 5, 666, 334, 2, 2867, 2864, 3, 2, 2, 2, 2867, 2865, 3, 2, 2, 2, 2867, 2868, 3, 2, 2, 2, 2868, 2893, 3, 2, 2, 2, 2869, 2870, 7, 127, 2, 2, 2870, 2871, 7, 22, 2, 2, 2871, 2893, 5, 664, 333, 2, 2872, 2873, 7, 143, 2, 2, 2873, 2874, 7, 31, 2, 2, 2874, 2875, 5, 666, 334, 2, 2875, 2876, 7, 178, 2, 2, 2876, 2877, 5, 662, 332, 2, 2877, 2893, 3, 2, 2, 2, 2878, 2879, 7, 143, 2, 2, 2879, 2880, 9, 20, 2, 2, 2880, 2881, 5, 646, 324, 2, 2881, 2882, 7, 178, 2, 2, 2882, 2883, 5, 642, 322, 2, 2883, 2893, 3, 2, 2, 2, 2884, 2886, 7, 143, 2, 2, 2885, 2887, 9, 42, 2, 2, 2886, 2885, 3, 2, 2, 2, 2886, 2887, 3, 2, 2, 2, 2887, 2888, 3, 2, 2, 2, 2888, 2893, 5, 652, 327, 2, 2889, 2890, 9, 43, 2, 2, 2890, 2893, 7, 683, 2, 2, 2891, 2893, 5, 144, 73, 2, 2892, 2628, 3, 2, 2, 2, 2892, 2638, 3, 2, 2, 2, 2892, 2649, 3, 2, 2, 2, 2892, 2667, 3, 2, 2, 2, 2892, 2682, 3, 2, 2, 2, 2892, 2697, 3, 2, 2, 2, 2892, 2716, 3, 2, 2, 2, 2892, 2740, 3, 2, 2, 2, 2892, 2755, 3, 2, 2, 2, 2892, 2759, 3, 2, 2, 2, 2892, 2762, 3, 2, 2, 2, 2892, 2771, 3, 2, 2, 2, 2892, 2776, 3, 2, 2, 2, 2892, 2790, 3, 2, 2, 2, 2892, 2795, 3, 2, 2, 2, 2892, 2808, 3, 2, 2, 2, 2892, 2821, 3, 2, 2, 2, 2892, 2833, 3, 2, 2, 2, 2892, 2835, 3, 2, 2, 2, 2892, 2837, 3, 2, 2, 2, 2892, 2842, 3, 2, 2, 2, 2892, 2845, 3, 2, 2, 2, 2892, 2848, 3, 2, 2, 2, 2892, 2852, 3, 2, 2, 2, 2892, 2853, 3, 2, 2, 2, 2892, 2858, 3, 2, 2, 2, 2892, 2869, 3, 2, 2, 2, 2892, 2872, 3, 2, 2, 2, 2892, 2878, 3, 2, 2, 2, 2892, 2884, 3, 2, 2, 2, 2892, 2889, 3, 2, 2, 2, 2892, 2891, 3, 2, 2, 2, 2893, 143, 3, 2, 2, 2, 2894, 2895, 7, 8, 2, 2, 2895, 2896, 7, 132, 2, 2, 2896, 2897, 7, 868, 2, 2, 2897, 2902, 5, 112, 57, 2, 2898, 2899, 7, 870, 2, 2, 2899, 2901, 5, 112, 57, 2, 2900, 2898, 3, 2, 2, 2, 2901, 2904, 3, 2, 2, 2, 2902, 2900, 3, 2, 2, 2, 2902, 2903, 3, 2, 2, 2, 2903, 2905, 3, 2, 2, 2, 2904, 2902, 3, 2, 2, 2, 2905, 2906, 7, 869, 2, 2, 2906, 2993, 3, 2, 2, 2, 2907, 2908, 7, 53, 2, 2, 2908, 2909, 7, 132, 2, 2, 2909, 2993, 5, 674, 338, 2, 2910, 2911, 7, 371, 2, 2, 2911, 2914, 7, 132, 2, 2, 2912, 2915, 5, 674, 338, 2, 2913, 2915, 7, 9, 2, 2, 2914, 2912, 3, 2, 2, 2, 2914, 2913, 3, 2, 2, 2, 2915, 2916, 3, 2, 2, 2, 2916, 2993, 7, 660, 2, 2, 2917, 2918, 7, 427, 2, 2, 2918, 2921, 7, 132, 2, 2, 2919, 2922, 5, 674, 338, 2, 2920, 2922, 7, 9, 2, 2, 2921, 2919, 3, 2, 2, 2, 2921, 2920, 3, 2, 2, 2, 2922, 2923, 3, 2, 2, 2, 2923, 2993, 7, 660, 2, 2, 2924, 2925, 7, 670, 2, 2, 2925, 2928, 7, 132, 2, 2, 2926, 2929, 5, 674, 338, 2, 2927, 2929, 7, 9, 2, 2, 2928, 2926, 3, 2, 2, 2, 2928, 2927, 3, 2, 2, 2, 2929, 2993, 3, 2, 2, 2, 2930, 2931, 7, 337, 2, 2, 2931, 2932, 7, 132, 2, 2, 2932, 2993, 5, 716, 359, 2, 2933, 2934, 7, 563, 2, 2, 2934, 2935, 7, 132, 2, 2, 2935, 2936, 5, 674, 338, 2, 2936, 2937, 7, 90, 2, 2, 2937, 2938, 7, 868, 2, 2, 2938, 2943, 5, 112, 57, 2, 2939, 2940, 7, 870, 2, 2, 2940, 2942, 5, 112, 57, 2, 2941, 2939, 3, 2, 2, 2, 2942, 2945, 3, 2, 2, 2, 2943, 2941, 3, 2, 2, 2, 2943, 2944, 3, 2, 2, 2, 2944, 2946, 3, 2, 2, 2, 2945, 2943, 3, 2, 2, 2, 2946, 2947, 7, 869, 2, 2, 2947, 2993, 3, 2, 2, 2, 2948, 2949, 7, 390, 2, 2, 2949, 2950, 7, 132, 2, 2, 2950, 2951, 5, 676, 339, 2, 2951, 2952, 7, 196, 2, 2, 2952, 2953, 7, 175, 2, 2, 2953, 2956, 5, 656, 329, 2, 2954, 2955, 9, 43, 2, 2, 2955, 2957, 7, 683, 2, 2, 2956, 2954, 3, 2, 2, 2, 2956, 2957, 3, 2, 2, 2, 2957, 2993, 3, 2, 2, 2, 2958, 2959, 7, 12, 2, 2, 2959, 2962, 7, 132, 2, 2, 2960, 2963, 5, 674, 338, 2, 2961, 2963, 7, 9, 2, 2, 2962, 2960, 3, 2, 2, 2, 2962, 2961, 3, 2, 2, 2, 2963, 2993, 3, 2, 2, 2, 2964, 2965, 7, 29, 2, 2, 2965, 2968, 7, 132, 2, 2, 2966, 2969, 5, 674, 338, 2, 2967, 2969, 7, 9, 2, 2, 2968, 2966, 3, 2, 2, 2, 2968, 2967, 3, 2, 2, 2, 2969, 2993, 3, 2, 2, 2, 2970, 2971, 7, 122, 2, 2, 2971, 2974, 7, 132, 2, 2, 2972, 2975, 5, 674, 338, 2, 2973, 2975, 7, 9, 2, 2, 2974, 2972, 3, 2, 2, 2, 2974, 2973, 3, 2, 2, 2, 2975, 2993, 3, 2, 2, 2, 2976, 2977, 7, 552, 2, 2, 2977, 2980, 7, 132, 2, 2, 2978, 2981, 5, 674, 338, 2, 2979, 2981, 7, 9, 2, 2, 2980, 2978, 3, 2, 2, 2, 2980, 2979, 3, 2, 2, 2, 2981, 2993, 3, 2, 2, 2, 2982, 2983, 7, 564, 2, 2, 2983, 2986, 7, 132, 2, 2, 2984, 2987, 5, 674, 338, 2, 2985, 2987, 7, 9, 2, 2, 2986, 2984, 3, 2, 2, 2, 2986, 2985, 3, 2, 2, 2, 2987, 2993, 3, 2, 2, 2, 2988, 2989, 7, 562, 2, 2, 2989, 2993, 7, 529, 2, 2, 2990, 2991, 7, 679, 2, 2, 2991, 2993, 7, 529, 2, 2, 2992, 2894, 3, 2, 2, 2, 2992, 2907, 3, 2, 2, 2, 2992, 2910, 3, 2, 2, 2, 2992, 2917, 3, 2, 2, 2, 2992, 2924, 3, 2, 2, 2, 2992, 2930, 3, 2, 2, 2, 2992, 2933, 3, 2, 2, 2, 2992, 2948, 3, 2, 2, 2, 2992, 2958, 3, 2, 2, 2, 2992, 2964, 3, 2, 2, 2, 2992, 2970, 3, 2, 2, 2, 2992, 2976, 3, 2, 2, 2, 2992, 2982, 3, 2, 2, 2, 2992, 2988, 3, 2, 2, 2, 2992, 2990, 3, 2, 2, 2, 2993, 145, 3, 2, 2, 2, 2994, 2995, 7, 53, 2, 2, 2995, 2997, 9, 2, 2, 2, 2996, 2998, 5, 762, 382, 2, 2997, 2996, 3, 2, 2, 2, 2997, 2998, 3, 2, 2, 2, 2998, 2999, 3, 2, 2, 2, 2999, 3000, 5, 632, 317, 2, 3000, 147, 3, 2, 2, 2, 3001, 3002, 7, 53, 2, 2, 3002, 3004, 7, 387, 2, 2, 3003, 3005, 5, 762, 382, 2, 3004, 3003, 3, 2, 2, 2, 3004, 3005, 3, 2, 2, 2, 3005, 3006, 3, 2, 2, 2, 3006, 3007, 5, 706, 354, 2, 3007, 149, 3, 2, 2, 2, 3008, 3009, 7, 53, 2, 2, 3009, 3011, 7, 84, 2, 2, 3010, 3012, 9, 3, 2, 2, 3011, 3010, 3, 2, 2, 2, 3011, 3012, 3, 2, 2, 2, 3012, 3013, 3, 2, 2, 2, 3013, 3014, 5, 646, 324, 2, 3014, 3015, 7, 121, 2, 2, 3015, 3028, 5, 656, 329, 2, 3016, 3018, 7, 310, 2, 2, 3017, 3019, 7, 859, 2, 2, 3018, 3017, 3, 2, 2, 2, 3018, 3019, 3, 2, 2, 2, 3019, 3020, 3, 2, 2, 2, 3020, 3027, 9, 5, 2, 2, 3021, 3023, 7, 106, 2, 2, 3022, 3024, 7, 859, 2, 2, 3023, 3022, 3, 2, 2, 2, 3023, 3024, 3, 2, 2, 2, 3024, 3025, 3, 2, 2, 2, 3025, 3027, 9, 6, 2, 2, 3026, 3016, 3, 2, 2, 2, 3026, 3021, 3, 2, 2, 2, 3027, 3030, 3, 2, 2, 2, 3028, 3026, 3, 2, 2, 2, 3028, 3029, 3, 2, 2, 2, 3029, 151, 3, 2, 2, 2, 3030, 3028, 3, 2, 2, 2, 3031, 3032, 7, 53, 2, 2, 3032, 3033, 7, 453, 2, 2, 3033, 3034, 7, 76, 2, 2, 3034, 3035, 5, 710, 356, 2, 3035, 3037, 7, 382, 2, 2, 3036, 3038, 7, 859, 2, 2, 3037, 3036, 3, 2, 2, 2, 3037, 3038, 3, 2, 2, 2, 3038, 3039, 3, 2, 2, 2, 3039, 3040, 5, 696, 349, 2, 3040, 153, 3, 2, 2, 2, 3041, 3042, 7, 53, 2, 2, 3042, 3044, 7, 134, 2, 2, 3043, 3045, 5, 762, 382, 2, 3044, 3043, 3, 2, 2, 2, 3044, 3045, 3, 2, 2, 2, 3045, 3046, 3, 2, 2, 2, 3046, 3047, 5, 706, 354, 2, 3047, 155, 3, 2, 2, 2, 3048, 3049, 7, 53, 2, 2, 3049, 3051, 7, 411, 2, 2, 3050, 3052, 5, 762, 382, 2, 3051, 3050, 3, 2, 2, 2, 3051, 3052, 3, 2, 2, 2, 3052, 3053, 3, 2, 2, 2, 3053, 3054, 5, 636, 319, 2, 3054, 157, 3, 2, 2, 2, 3055, 3056, 7, 53, 2, 2, 3056, 3058, 7, 594, 2, 2, 3057, 3059, 5, 762, 382, 2, 3058, 3057, 3, 2, 2, 2, 3058, 3059, 3, 2, 2, 2, 3059, 3060, 3, 2, 2, 2, 3060, 3061, 5, 710, 356, 2, 3061, 159, 3, 2, 2, 2, 3062, 3063, 7, 53, 2, 2, 3063, 3064, 7, 163, 2, 2, 3064, 3065, 7, 139, 2, 2, 3065, 3067, 7, 837, 2, 2, 3066, 3068, 5, 762, 382, 2, 3067, 3066, 3, 2, 2, 2, 3067, 3068, 3, 2, 2, 2, 3068, 3069, 3, 2, 2, 2, 3069, 3070, 7, 885, 2, 2, 3070, 161, 3, 2, 2, 2, 3071, 3073, 7, 53, 2, 2, 3072, 3074, 7, 662, 2, 2, 3073, 3072, 3, 2, 2, 2, 3073, 3074, 3, 2, 2, 2, 3074, 3075, 3, 2, 2, 2, 3075, 3077, 7, 175, 2, 2, 3076, 3078, 5, 762, 382, 2, 3077, 3076, 3, 2, 2, 2, 3077, 3078, 3, 2, 2, 2, 3078, 3079, 3, 2, 2, 2, 3079, 3081, 5, 654, 328, 2, 3080, 3082, 9, 44, 2, 2, 3081, 3080, 3, 2, 2, 2, 3081, 3082, 3, 2, 2, 2, 3082, 163, 3, 2, 2, 2, 3083, 3085, 7, 53, 2, 2, 3084, 3086, 7, 182, 2, 2, 3085, 3084, 3, 2, 2, 2, 3085, 3086, 3, 2, 2, 2, 3086, 3087, 3, 2, 2, 2, 3087, 3088, 7, 660, 2, 2, 3088, 3094, 5, 670, 336, 2, 3089, 3091, 7, 382, 2, 2, 3090, 3092, 7, 859, 2, 2, 3091, 3090, 3, 2, 2, 2, 3091, 3092, 3, 2, 2, 2, 3092, 3093, 3, 2, 2, 2, 3093, 3095, 5, 696, 349, 2, 3094, 3089, 3, 2, 2, 2, 3094, 3095, 3, 2, 2, 2, 3095, 165, 3, 2, 2, 2, 3096, 3097, 7, 53, 2, 2, 3097, 3099, 7, 180, 2, 2, 3098, 3100, 5, 762, 382, 2, 3099, 3098, 3, 2, 2, 2, 3099, 3100, 3, 2, 2, 2, 3100, 3101, 3, 2, 2, 2, 3101, 3102, 5, 706, 354, 2, 3102, 167, 3, 2, 2, 2, 3103, 3104, 7, 53, 2, 2, 3104, 3106, 7, 686, 2, 2, 3105, 3107, 5, 762, 382, 2, 3106, 3105, 3, 2, 2, 2, 3106, 3107, 3, 2, 2, 2, 3107, 3108, 3, 2, 2, 2, 3108, 3113, 5, 640, 321, 2, 3109, 3110, 7, 870, 2, 2, 3110, 3112, 5, 640, 321, 2, 3111, 3109, 3, 2, 2, 2, 3112, 3115, 3, 2, 2, 2, 3113, 3111, 3, 2, 2, 2, 3113, 3114, 3, 2, 2, 2, 3114, 3117, 3, 2, 2, 2, 3115, 3113, 3, 2, 2, 2, 3116, 3118, 9, 44, 2, 2, 3117, 3116, 3, 2, 2, 2, 3117, 3118, 3, 2, 2, 2, 3118, 169, 3, 2, 2, 2, 3119, 3120, 7, 53, 2, 2, 3120, 3122, 7, 584, 2, 2, 3121, 3123, 5, 762, 382, 2, 3122, 3121, 3, 2, 2, 2, 3122, 3123, 3, 2, 2, 2, 3123, 3124, 3, 2, 2, 2, 3124, 3125, 5, 658, 330, 2, 3125, 171, 3, 2, 2, 2, 3126, 3127, 7, 157, 2, 2, 3127, 3128, 7, 44, 2, 2, 3128, 3132, 7, 584, 2, 2, 3129, 3133, 7, 507, 2, 2, 3130, 3133, 7, 9, 2, 2, 3131, 3133, 5, 658, 330, 2, 3132, 3129, 3, 2, 2, 2, 3132, 3130, 3, 2, 2, 2, 3132, 3131, 3, 2, 2, 2, 3133, 3134, 3, 2, 2, 2, 3134, 3135, 7, 178, 2, 2, 3135, 3140, 5, 660, 331, 2, 3136, 3137, 7, 870, 2, 2, 3137, 3139, 5, 660, 331, 2, 3138, 3136, 3, 2, 2, 2, 3139, 3142, 3, 2, 2, 2, 3140, 3138, 3, 2, 2, 2, 3140, 3141, 3, 2, 2, 2, 3141, 3147, 3, 2, 2, 2, 3142, 3140, 3, 2, 2, 2, 3143, 3144, 7, 157, 2, 2, 3144, 3145, 7, 584, 2, 2, 3145, 3147, 5, 470, 236, 2, 3146, 3126, 3, 2, 2, 2, 3146, 3143, 3, 2, 2, 2, 3147, 173, 3, 2, 2, 2, 3148, 3149, 7, 143, 2, 2, 3149, 3150, 7, 175, 2, 2, 3150, 3155, 5, 176, 89, 2, 3151, 3152, 7, 870, 2, 2, 3152, 3154, 5, 176, 89, 2, 3153, 3151, 3, 2, 2, 2, 3154, 3157, 3, 2, 2, 2, 3155, 3153, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 175, 3, 2, 2, 2, 3157, 3155, 3, 2, 2, 2, 3158, 3159, 5, 656, 329, 2, 3159, 3160, 7, 178, 2, 2, 3160, 3161, 5, 652, 327, 2, 3161, 177, 3, 2, 2, 2, 3162, 3164, 7, 670, 2, 2, 3163, 3165, 7, 175, 2, 2, 3164, 3163, 3, 2, 2, 2, 3164, 3165, 3, 2, 2, 2, 3165, 3166, 3, 2, 2, 2, 3166, 3167, 5, 656, 329, 2, 3167, 179, 3, 2, 2, 2, 3168, 3169, 7, 23, 2, 2, 3169, 3176, 5, 706, 354, 2, 3170, 3173, 7, 868, 2, 2, 3171, 3174, 5, 752, 377, 2, 3172, 3174, 5, 744, 373, 2, 3173, 3171, 3, 2, 2, 2, 3173, 3172, 3, 2, 2, 2, 3173, 3174, 3, 2, 2, 2, 3174, 3175, 3, 2, 2, 2, 3175, 3177, 7, 869, 2, 2, 3176, 3170, 3, 2, 2, 2, 3176, 3177, 3, 2, 2, 2, 3177, 181, 3, 2, 2, 2, 3178, 3181, 5, 236, 119, 2, 3179, 3181, 5, 238, 120, 2, 3180, 3178, 3, 2, 2, 2, 3180, 3179, 3, 2, 2, 2, 3181, 183, 3, 2, 2, 2, 3182, 3183, 7, 373, 2, 2, 3183, 3184, 5, 744, 373, 2, 3184, 185, 3, 2, 2, 2, 3185, 3190, 5, 240, 121, 2, 3186, 3190, 5, 242, 122, 2, 3187, 3190, 5, 244, 123, 2, 3188, 3190, 5, 246, 124, 2, 3189, 3185, 3, 2, 2, 2, 3189, 3186, 3, 2, 2, 2, 3189, 3187, 3, 2, 2, 2, 3189, 3188, 3, 2, 2, 2, 3190, 187, 3, 2, 2, 2, 3191, 3193, 7, 88, 2, 2, 3192, 3194, 9, 45, 2, 2, 3193, 3192, 3, 2, 2, 2, 3193, 3194, 3, 2, 2, 2, 3194, 3196, 3, 2, 2, 2, 3195, 3197, 7, 81, 2, 2, 3196, 3195, 3, 2, 2, 2, 3196, 3197, 3, 2, 2, 2, 3197, 3199, 3, 2, 2, 2, 3198, 3200, 7, 90, 2, 2, 3199, 3198, 3, 2, 2, 2, 3199, 3200, 3, 2, 2, 2, 3200, 3201, 3, 2, 2, 2, 3201, 3208, 5, 656, 329, 2, 3202, 3203, 7, 132, 2, 2, 3203, 3205, 7, 868, 2, 2, 3204, 3206, 5, 674, 338, 2, 3205, 3204, 3, 2, 2, 2, 3205, 3206, 3, 2, 2, 2, 3206, 3207, 3, 2, 2, 2, 3207, 3209, 7, 869, 2, 2, 3208, 3202, 3, 2, 2, 2, 3208, 3209, 3, 2, 2, 2, 3209, 3221, 3, 2, 2, 2, 3210, 3212, 5, 264, 133, 2, 3211, 3210, 3, 2, 2, 2, 3211, 3212, 3, 2, 2, 2, 3212, 3215, 3, 2, 2, 2, 3213, 3216, 5, 746, 374, 2, 3214, 3216, 5, 192, 97, 2, 3215, 3213, 3, 2, 2, 2, 3215, 3214, 3, 2, 2, 2, 3215, 3216, 3, 2, 2, 2, 3216, 3218, 3, 2, 2, 2, 3217, 3219, 5, 190, 96, 2, 3218, 3217, 3, 2, 2, 2, 3218, 3219, 3, 2, 2, 2, 3219, 3222, 3, 2, 2, 2, 3220, 3222, 5, 228, 115, 2, 3221, 3211, 3, 2, 2, 2, 3221, 3220, 3, 2, 2, 2, 3222, 3224, 3, 2, 2, 2, 3223, 3225, 5, 190, 96, 2, 3224, 3223, 3, 2, 2, 2, 3224, 3225, 3, 2, 2, 2, 3225, 3238, 3, 2, 2, 2, 3226, 3227, 7, 121, 2, 2, 3227, 3228, 7, 375, 2, 2, 3228, 3229, 7, 94, 2, 2, 3229, 3230, 7, 187, 2, 2, 3230, 3235, 5, 230, 116, 2, 3231, 3232, 7, 870, 2, 2, 3232, 3234, 5, 230, 116, 2, 3233, 3231, 3, 2, 2, 2, 3234, 3237, 3, 2, 2, 2, 3235, 3233, 3, 2, 2, 2, 3235, 3236, 3, 2, 2, 2, 3236, 3239, 3, 2, 2, 2, 3237, 3235, 3, 2, 2, 2, 3238, 3226, 3, 2, 2, 2, 3238, 3239, 3, 2, 2, 2, 3239, 189, 3, 2, 2, 2, 3240, 3241, 7, 15, 2, 2, 3241, 3243, 5, 710, 356, 2, 3242, 3244, 5, 264, 133, 2, 3243, 3242, 3, 2, 2, 2, 3243, 3244, 3, 2, 2, 2, 3244, 191, 3, 2, 2, 2, 3245, 3250, 5, 206, 104, 2, 3246, 3247, 7, 175, 2, 2, 3247, 3250, 5, 656, 329, 2, 3248, 3250, 5, 226, 114, 2, 3249, 3245, 3, 2, 2, 2, 3249, 3246, 3, 2, 2, 2, 3249, 3248, 3, 2, 2, 2, 3250, 193, 3, 2, 2, 2, 3251, 3257, 5, 196, 99, 2, 3252, 3254, 7, 830, 2, 2, 3253, 3255, 9, 46, 2, 2, 3254, 3253, 3, 2, 2, 2, 3254, 3255, 3, 2, 2, 2, 3255, 3256, 3, 2, 2, 2, 3256, 3258, 5, 196, 99, 2, 3257, 3252, 3, 2, 2, 2, 3258, 3259, 3, 2, 2, 2, 3259, 3257, 3, 2, 2, 2, 3259, 3260, 3, 2, 2, 2, 3260, 195, 3, 2, 2, 2, 3261, 3263, 7, 868, 2, 2, 3262, 3261, 3, 2, 2, 2, 3262, 3263, 3, 2, 2, 2, 3263, 3264, 3, 2, 2, 2, 3264, 3266, 5, 278, 140, 2, 3265, 3267, 7, 869, 2, 2, 3266, 3265, 3, 2, 2, 2, 3266, 3267, 3, 2, 2, 2, 3267, 197, 3, 2, 2, 2, 3268, 3269, 7, 105, 2, 2, 3269, 3271, 7, 362, 2, 2, 3270, 3272, 9, 47, 2, 2, 3271, 3270, 3, 2, 2, 2, 3271, 3272, 3, 2, 2, 2, 3272, 3274, 3, 2, 2, 2, 3273, 3275, 7, 452, 2, 2, 3274, 3273, 3, 2, 2, 2, 3274, 3275, 3, 2, 2, 2, 3275, 3276, 3, 2, 2, 2, 3276, 3277, 7, 85, 2, 2, 3277, 3279, 7, 884, 2, 2, 3278, 3280, 9, 8, 2, 2, 3279, 3278, 3, 2, 2, 2, 3279, 3280, 3, 2, 2, 2, 3280, 3281, 3, 2, 2, 2, 3281, 3282, 7, 90, 2, 2, 3282, 3283, 7, 175, 2, 2, 3283, 3289, 5, 656, 329, 2, 3284, 3285, 7, 132, 2, 2, 3285, 3286, 7, 868, 2, 2, 3286, 3287, 5, 674, 338, 2, 3287, 3288, 7, 869, 2, 2, 3288, 3290, 3, 2, 2, 2, 3289, 3284, 3, 2, 2, 2, 3289, 3290, 3, 2, 2, 2, 3290, 3294, 3, 2, 2, 2, 3291, 3292, 7, 28, 2, 2, 3292, 3293, 7, 157, 2, 2, 3293, 3295, 5, 692, 347, 2, 3294, 3291, 3, 2, 2, 2, 3294, 3295, 3, 2, 2, 2, 3295, 3302, 3, 2, 2, 2, 3296, 3298, 9, 48, 2, 2, 3297, 3299, 5, 306, 154, 2, 3298, 3297, 3, 2, 2, 2, 3299, 3300, 3, 2, 2, 2, 3300, 3298, 3, 2, 2, 2, 3300, 3301, 3, 2, 2, 2, 3301, 3303, 3, 2, 2, 2, 3302, 3296, 3, 2, 2, 2, 3302, 3303, 3, 2, 2, 2, 3303, 3310, 3, 2, 2, 2, 3304, 3306, 7, 104, 2, 2, 3305, 3307, 5, 308, 155, 2, 3306, 3305, 3, 2, 2, 2, 3307, 3308, 3, 2, 2, 2, 3308, 3306, 3, 2, 2, 2, 3308, 3309, 3, 2, 2, 2, 3309, 3311, 3, 2, 2, 2, 3310, 3304, 3, 2, 2, 2, 3310, 3311, 3, 2, 2, 2, 3311, 3316, 3, 2, 2, 2, 3312, 3313, 7, 81, 2, 2, 3313, 3314, 5, 716, 359, 2, 3314, 3315, 9, 49, 2, 2, 3315, 3317, 3, 2, 2, 2, 3316, 3312, 3, 2, 2, 2, 3316, 3317, 3, 2, 2, 2, 3317, 3329, 3, 2, 2, 2, 3318, 3319, 7, 868, 2, 2, 3319, 3324, 5, 232, 117, 2, 3320, 3321, 7, 870, 2, 2, 3321, 3323, 5, 232, 117, 2, 3322, 3320, 3, 2, 2, 2, 3323, 3326, 3, 2, 2, 2, 3324, 3322, 3, 2, 2, 2, 3324, 3325, 3, 2, 2, 2, 3325, 3327, 3, 2, 2, 2, 3326, 3324, 3, 2, 2, 2, 3327, 3328, 7, 869, 2, 2, 3328, 3330, 3, 2, 2, 2, 3329, 3318, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3340, 3, 2, 2, 2, 3331, 3332, 7, 157, 2, 2, 3332, 3337, 5, 230, 116, 2, 3333, 3334, 7, 870, 2, 2, 3334, 3336, 5, 230, 116, 2, 3335, 3333, 3, 2, 2, 2, 3336, 3339, 3, 2, 2, 2, 3337, 3335, 3, 2, 2, 2, 3337, 3338, 3, 2, 2, 2, 3338, 3341, 3, 2, 2, 2, 3339, 3337, 3, 2, 2, 2, 3340, 3331, 3, 2, 2, 2, 3340, 3341, 3, 2, 2, 2, 3341, 199, 3, 2, 2, 2, 3342, 3343, 7, 105, 2, 2, 3343, 3345, 7, 697, 2, 2, 3344, 3346, 9, 47, 2, 2, 3345, 3344, 3, 2, 2, 2, 3345, 3346, 3, 2, 2, 2, 3346, 3348, 3, 2, 2, 2, 3347, 3349, 7, 452, 2, 2, 3348, 3347, 3, 2, 2, 2, 3348, 3349, 3, 2, 2, 2, 3349, 3350, 3, 2, 2, 2, 3350, 3351, 7, 85, 2, 2, 3351, 3353, 7, 884, 2, 2, 3352, 3354, 9, 8, 2, 2, 3353, 3352, 3, 2, 2, 2, 3353, 3354, 3, 2, 2, 2, 3354, 3355, 3, 2, 2, 2, 3355, 3356, 7, 90, 2, 2, 3356, 3357, 7, 175, 2, 2, 3357, 3361, 5, 656, 329, 2, 3358, 3359, 7, 28, 2, 2, 3359, 3360, 7, 157, 2, 2, 3360, 3362, 5, 692, 347, 2, 3361, 3358, 3, 2, 2, 2, 3361, 3362, 3, 2, 2, 2, 3362, 3373, 3, 2, 2, 2, 3363, 3364, 7, 589, 2, 2, 3364, 3365, 7, 425, 2, 2, 3365, 3367, 7, 22, 2, 2, 3366, 3368, 7, 861, 2, 2, 3367, 3366, 3, 2, 2, 2, 3367, 3368, 3, 2, 2, 2, 3368, 3369, 3, 2, 2, 2, 3369, 3371, 7, 884, 2, 2, 3370, 3372, 7, 860, 2, 2, 3371, 3370, 3, 2, 2, 2, 3371, 3372, 3, 2, 2, 2, 3372, 3374, 3, 2, 2, 2, 3373, 3363, 3, 2, 2, 2, 3373, 3374, 3, 2, 2, 2, 3374, 3379, 3, 2, 2, 2, 3375, 3376, 7, 81, 2, 2, 3376, 3377, 5, 716, 359, 2, 3377, 3378, 9, 49, 2, 2, 3378, 3380, 3, 2, 2, 2, 3379, 3375, 3, 2, 2, 2, 3379, 3380, 3, 2, 2, 2, 3380, 3392, 3, 2, 2, 2, 3381, 3382, 7, 868, 2, 2, 3382, 3387, 5, 232, 117, 2, 3383, 3384, 7, 870, 2, 2, 3384, 3386, 5, 232, 117, 2, 3385, 3383, 3, 2, 2, 2, 3386, 3389, 3, 2, 2, 2, 3387, 3385, 3, 2, 2, 2, 3387, 3388, 3, 2, 2, 2, 3388, 3390, 3, 2, 2, 2, 3389, 3387, 3, 2, 2, 2, 3390, 3391, 7, 869, 2, 2, 3391, 3393, 3, 2, 2, 2, 3392, 3381, 3, 2, 2, 2, 3392, 3393, 3, 2, 2, 2, 3393, 3403, 3, 2, 2, 2, 3394, 3395, 7, 157, 2, 2, 3395, 3400, 5, 230, 116, 2, 3396, 3397, 7, 870, 2, 2, 3397, 3399, 5, 230, 116, 2, 3398, 3396, 3, 2, 2, 2, 3399, 3402, 3, 2, 2, 2, 3400, 3398, 3, 2, 2, 2, 3400, 3401, 3, 2, 2, 2, 3401, 3404, 3, 2, 2, 2, 3402, 3400, 3, 2, 2, 2, 3403, 3394, 3, 2, 2, 2, 3403, 3404, 3, 2, 2, 2, 3404, 201, 3, 2, 2, 2, 3405, 3406, 7, 868, 2, 2, 3406, 3408, 5, 220, 111, 2, 3407, 3409, 5, 254, 128, 2, 3408, 3407, 3, 2, 2, 2, 3408, 3409, 3, 2, 2, 2, 3409, 3411, 3, 2, 2, 2, 3410, 3412, 5, 320, 161, 2, 3411, 3410, 3, 2, 2, 2, 3411, 3412, 3, 2, 2, 2, 3412, 3413, 3, 2, 2, 2, 3413, 3415, 7, 869, 2, 2, 3414, 3416, 5, 254, 128, 2, 3415, 3414, 3, 2, 2, 2, 3415, 3416, 3, 2, 2, 2, 3416, 3418, 3, 2, 2, 2, 3417, 3419, 5, 320, 161, 2, 3418, 3417, 3, 2, 2, 2, 3418, 3419, 3, 2, 2, 2, 3419, 3421, 3, 2, 2, 2, 3420, 3422, 5, 304, 153, 2, 3421, 3420, 3, 2, 2, 2, 3421, 3422, 3, 2, 2, 2, 3422, 203, 3, 2, 2, 2, 3423, 3425, 7, 145, 2, 2, 3424, 3426, 9, 50, 2, 2, 3425, 3424, 3, 2, 2, 2, 3425, 3426, 3, 2, 2, 2, 3426, 3428, 3, 2, 2, 2, 3427, 3429, 7, 90, 2, 2, 3428, 3427, 3, 2, 2, 2, 3428, 3429, 3, 2, 2, 2, 3429, 3430, 3, 2, 2, 2, 3430, 3436, 5, 656, 329, 2, 3431, 3432, 7, 132, 2, 2, 3432, 3433, 7, 868, 2, 2, 3433, 3434, 5, 674, 338, 2, 3434, 3435, 7, 869, 2, 2, 3435, 3437, 3, 2, 2, 2, 3436, 3431, 3, 2, 2, 2, 3436, 3437, 3, 2, 2, 2, 3437, 3446, 3, 2, 2, 2, 3438, 3439, 7, 868, 2, 2, 3439, 3440, 5, 664, 333, 2, 3440, 3441, 7, 869, 2, 2, 3441, 3443, 3, 2, 2, 2, 3442, 3438, 3, 2, 2, 2, 3442, 3443, 3, 2, 2, 2, 3443, 3444, 3, 2, 2, 2, 3444, 3447, 5, 224, 113, 2, 3445, 3447, 5, 228, 115, 2, 3446, 3442, 3, 2, 2, 2, 3446, 3445, 3, 2, 2, 2, 3447, 205, 3, 2, 2, 2, 3448, 3450, 5, 278, 140, 2, 3449, 3451, 5, 234, 118, 2, 3450, 3449, 3, 2, 2, 2, 3450, 3451, 3, 2, 2, 2, 3451, 3518, 3, 2, 2, 2, 3452, 3454, 5, 280, 141, 2, 3453, 3455, 5, 234, 118, 2, 3454, 3453, 3, 2, 2, 2, 3454, 3455, 3, 2, 2, 2, 3455, 3457, 3, 2, 2, 2, 3456, 3458, 5, 304, 153, 2, 3457, 3456, 3, 2, 2, 2, 3457, 3458, 3, 2, 2, 2, 3458, 3518, 3, 2, 2, 2, 3459, 3461, 5, 274, 138, 2, 3460, 3462, 5, 234, 118, 2, 3461, 3460, 3, 2, 2, 2, 3461, 3462, 3, 2, 2, 2, 3462, 3518, 3, 2, 2, 2, 3463, 3465, 5, 280, 141, 2, 3464, 3466, 5, 284, 143, 2, 3465, 3464, 3, 2, 2, 2, 3466, 3467, 3, 2, 2, 2, 3467, 3465, 3, 2, 2, 2, 3467, 3468, 3, 2, 2, 2, 3468, 3477, 3, 2, 2, 2, 3469, 3471, 7, 183, 2, 2, 3470, 3472, 9, 46, 2, 2, 3471, 3470, 3, 2, 2, 2, 3471, 3472, 3, 2, 2, 2, 3472, 3475, 3, 2, 2, 2, 3473, 3476, 5, 278, 140, 2, 3474, 3476, 5, 274, 138, 2, 3475, 3473, 3, 2, 2, 2, 3475, 3474, 3, 2, 2, 2, 3476, 3478, 3, 2, 2, 2, 3477, 3469, 3, 2, 2, 2, 3477, 3478, 3, 2, 2, 2, 3478, 3480, 3, 2, 2, 2, 3479, 3481, 5, 254, 128, 2, 3480, 3479, 3, 2, 2, 2, 3480, 3481, 3, 2, 2, 2, 3481, 3483, 3, 2, 2, 2, 3482, 3484, 5, 320, 161, 2, 3483, 3482, 3, 2, 2, 2, 3483, 3484, 3, 2, 2, 2, 3484, 3486, 3, 2, 2, 2, 3485, 3487, 5, 234, 118, 2, 3486, 3485, 3, 2, 2, 2, 3486, 3487, 3, 2, 2, 2, 3487, 3518, 3, 2, 2, 2, 3488, 3490, 5, 276, 139, 2, 3489, 3491, 5, 282, 142, 2, 3490, 3489, 3, 2, 2, 2, 3491, 3492, 3, 2, 2, 2, 3492, 3490, 3, 2, 2, 2, 3492, 3493, 3, 2, 2, 2, 3493, 3499, 3, 2, 2, 2, 3494, 3496, 7, 183, 2, 2, 3495, 3497, 9, 46, 2, 2, 3496, 3495, 3, 2, 2, 2, 3496, 3497, 3, 2, 2, 2, 3497, 3498, 3, 2, 2, 2, 3498, 3500, 5, 274, 138, 2, 3499, 3494, 3, 2, 2, 2, 3499, 3500, 3, 2, 2, 2, 3500, 3502, 3, 2, 2, 2, 3501, 3503, 5, 254, 128, 2, 3502, 3501, 3, 2, 2, 2, 3502, 3503, 3, 2, 2, 2, 3503, 3505, 3, 2, 2, 2, 3504, 3506, 5, 320, 161, 2, 3505, 3504, 3, 2, 2, 2, 3505, 3506, 3, 2, 2, 2, 3506, 3508, 3, 2, 2, 2, 3507, 3509, 5, 234, 118, 2, 3508, 3507, 3, 2, 2, 2, 3508, 3509, 3, 2, 2, 2, 3509, 3518, 3, 2, 2, 2, 3510, 3513, 5, 280, 141, 2, 3511, 3512, 7, 870, 2, 2, 3512, 3514, 5, 286, 144, 2, 3513, 3511, 3, 2, 2, 2, 3514, 3515, 3, 2, 2, 2, 3515, 3513, 3, 2, 2, 2, 3515, 3516, 3, 2, 2, 2, 3516, 3518, 3, 2, 2, 2, 3517, 3448, 3, 2, 2, 2, 3517, 3452, 3, 2, 2, 2, 3517, 3459, 3, 2, 2, 2, 3517, 3463, 3, 2, 2, 2, 3517, 3488, 3, 2, 2, 2, 3517, 3510, 3, 2, 2, 2, 3518, 207, 3, 2, 2, 2, 3519, 3521, 5, 48, 25, 2, 3520, 3519, 3, 2, 2, 2, 3520, 3521, 3, 2, 2, 2, 3521, 3522, 3, 2, 2, 2, 3522, 3524, 5, 210, 106, 2, 3523, 3525, 5, 254, 128, 2, 3524, 3523, 3, 2, 2, 2, 3524, 3525, 3, 2, 2, 2, 3525, 3527, 3, 2, 2, 2, 3526, 3528, 5, 320, 161, 2, 3527, 3526, 3, 2, 2, 2, 3527, 3528, 3, 2, 2, 2, 3528, 3530, 3, 2, 2, 2, 3529, 3531, 5, 304, 153, 2, 3530, 3529, 3, 2, 2, 2, 3530, 3531, 3, 2, 2, 2, 3531, 209, 3, 2, 2, 2, 3532, 3533, 8, 106, 1, 2, 3533, 3534, 5, 212, 107, 2, 3534, 3549, 3, 2, 2, 2, 3535, 3536, 12, 4, 2, 2, 3536, 3538, 7, 183, 2, 2, 3537, 3539, 9, 46, 2, 2, 3538, 3537, 3, 2, 2, 2, 3538, 3539, 3, 2, 2, 2, 3539, 3540, 3, 2, 2, 2, 3540, 3548, 5, 212, 107, 2, 3541, 3542, 12, 3, 2, 2, 3542, 3544, 7, 61, 2, 2, 3543, 3545, 9, 46, 2, 2, 3544, 3543, 3, 2, 2, 2, 3544, 3545, 3, 2, 2, 2, 3545, 3546, 3, 2, 2, 2, 3546, 3548, 5, 212, 107, 2, 3547, 3535, 3, 2, 2, 2, 3547, 3541, 3, 2, 2, 2, 3548, 3551, 3, 2, 2, 2, 3549, 3547, 3, 2, 2, 2, 3549, 3550, 3, 2, 2, 2, 3550, 211, 3, 2, 2, 2, 3551, 3549, 3, 2, 2, 2, 3552, 3553, 8, 107, 1, 2, 3553, 3554, 5, 214, 108, 2, 3554, 3563, 3, 2, 2, 2, 3555, 3556, 12, 3, 2, 2, 3556, 3558, 7, 830, 2, 2, 3557, 3559, 9, 46, 2, 2, 3558, 3557, 3, 2, 2, 2, 3558, 3559, 3, 2, 2, 2, 3559, 3560, 3, 2, 2, 2, 3560, 3562, 5, 214, 108, 2, 3561, 3555, 3, 2, 2, 2, 3562, 3565, 3, 2, 2, 2, 3563, 3561, 3, 2, 2, 2, 3563, 3564, 3, 2, 2, 2, 3564, 213, 3, 2, 2, 2, 3565, 3563, 3, 2, 2, 2, 3566, 3581, 5, 222, 112, 2, 3567, 3568, 7, 868, 2, 2, 3568, 3570, 5, 210, 106, 2, 3569, 3571, 5, 254, 128, 2, 3570, 3569, 3, 2, 2, 2, 3570, 3571, 3, 2, 2, 2, 3571, 3573, 3, 2, 2, 2, 3572, 3574, 5, 320, 161, 2, 3573, 3572, 3, 2, 2, 2, 3573, 3574, 3, 2, 2, 2, 3574, 3576, 3, 2, 2, 2, 3575, 3577, 5, 304, 153, 2, 3576, 3575, 3, 2, 2, 2, 3576, 3577, 3, 2, 2, 2, 3577, 3578, 3, 2, 2, 2, 3578, 3579, 7, 869, 2, 2, 3579, 3581, 3, 2, 2, 2, 3580, 3566, 3, 2, 2, 2, 3580, 3567, 3, 2, 2, 2, 3581, 215, 3, 2, 2, 2, 3582, 3585, 5, 250, 126, 2, 3583, 3585, 5, 252, 127, 2, 3584, 3582, 3, 2, 2, 2, 3584, 3583, 3, 2, 2, 2, 3585, 217, 3, 2, 2, 2, 3586, 3590, 5, 226, 114, 2, 3587, 3588, 7, 127, 2, 2, 3588, 3589, 7, 22, 2, 2, 3589, 3591, 5, 678, 340, 2, 3590, 3587, 3, 2, 2, 2, 3590, 3591, 3, 2, 2, 2, 3591, 3594, 3, 2, 2, 2, 3592, 3593, 7, 102, 2, 2, 3593, 3595, 5, 322, 162, 2, 3594, 3592, 3, 2, 2, 2, 3594, 3595, 3, 2, 2, 2, 3595, 219, 3, 2, 2, 2, 3596, 3601, 5, 222, 112, 2, 3597, 3598, 9, 51, 2, 2, 3598, 3600, 5, 222, 112, 2, 3599, 3597, 3, 2, 2, 2, 3600, 3603, 3, 2, 2, 2, 3601, 3599, 3, 2, 2, 2, 3601, 3602, 3, 2, 2, 2, 3602, 3605, 3, 2, 2, 2, 3603, 3601, 3, 2, 2, 2, 3604, 3606, 5, 254, 128, 2, 3605, 3604, 3, 2, 2, 2, 3605, 3606, 3, 2, 2, 2, 3606, 3608, 3, 2, 2, 2, 3607, 3609, 5, 320, 161, 2, 3608, 3607, 3, 2, 2, 2, 3608, 3609, 3, 2, 2, 2, 3609, 3611, 3, 2, 2, 2, 3610, 3612, 5, 304, 153, 2, 3611, 3610, 3, 2, 2, 2, 3611, 3612, 3, 2, 2, 2, 3612, 221, 3, 2, 2, 2, 3613, 3617, 5, 206, 104, 2, 3614, 3617, 5, 622, 312, 2, 3615, 3617, 5, 218, 110, 2, 3616, 3613, 3, 2, 2, 2, 3616, 3614, 3, 2, 2, 2, 3616, 3615, 3, 2, 2, 2, 3617, 223, 3, 2, 2, 2, 3618, 3624, 5, 206, 104, 2, 3619, 3620, 7, 175, 2, 2, 3620, 3624, 5, 656, 329, 2, 3621, 3624, 5, 746, 374, 2, 3622, 3624, 5, 226, 114, 2, 3623, 3618, 3, 2, 2, 2, 3623, 3619, 3, 2, 2, 2, 3623, 3621, 3, 2, 2, 2, 3623, 3622, 3, 2, 2, 2, 3624, 225, 3, 2, 2, 2, 3625, 3626, 7, 191, 2, 2, 3626, 3627, 7, 588, 2, 2, 3627, 3633, 5, 748, 375, 2, 3628, 3629, 7, 870, 2, 2, 3629, 3630, 7, 588, 2, 2, 3630, 3632, 5, 748, 375, 2, 3631, 3628, 3, 2, 2, 2, 3632, 3635, 3, 2, 2, 2, 3633, 3631, 3, 2, 2, 2, 3633, 3634, 3, 2, 2, 2, 3634, 227, 3, 2, 2, 2, 3635, 3633, 3, 2, 2, 2, 3636, 3637, 7, 157, 2, 2, 3637, 3642, 5, 230, 116, 2, 3638, 3639, 7, 870, 2, 2, 3639, 3641, 5, 230, 116, 2, 3640, 3638, 3, 2, 2, 2, 3641, 3644, 3, 2, 2, 2, 3642, 3640, 3, 2, 2, 2, 3642, 3643, 3, 2, 2, 2, 3643, 229, 3, 2, 2, 2, 3644, 3642, 3, 2, 2, 2, 3645, 3646, 5, 666, 334, 2, 3646, 3647, 7, 859, 2, 2, 3647, 3648, 5, 750, 376, 2, 3648, 231, 3, 2, 2, 2, 3649, 3652, 5, 710, 356, 2, 3650, 3652, 7, 895, 2, 2, 3651, 3649, 3, 2, 2, 2, 3651, 3650, 3, 2, 2, 2, 3652, 233, 3, 2, 2, 2, 3653, 3654, 7, 67, 2, 2, 3654, 3664, 9, 52, 2, 2, 3655, 3656, 7, 512, 2, 2, 3656, 3661, 5, 656, 329, 2, 3657, 3658, 7, 870, 2, 2, 3658, 3660, 5, 656, 329, 2, 3659, 3657, 3, 2, 2, 2, 3660, 3663, 3, 2, 2, 2, 3661, 3659, 3, 2, 2, 2, 3661, 3662, 3, 2, 2, 2, 3662, 3665, 3, 2, 2, 2, 3663, 3661, 3, 2, 2, 2, 3664, 3655, 3, 2, 2, 2, 3664, 3665, 3, 2, 2, 2, 3665, 3668, 3, 2, 2, 2, 3666, 3667, 9, 53, 2, 2, 3667, 3669, 7, 107, 2, 2, 3668, 3666, 3, 2, 2, 2, 3668, 3669, 3, 2, 2, 2, 3669, 3675, 3, 2, 2, 2, 3670, 3671, 7, 106, 2, 2, 3671, 3672, 7, 82, 2, 2, 3672, 3673, 7, 596, 2, 2, 3673, 3675, 7, 493, 2, 2, 3674, 3653, 3, 2, 2, 2, 3674, 3670, 3, 2, 2, 2, 3675, 235, 3, 2, 2, 2, 3676, 3678, 7, 46, 2, 2, 3677, 3679, 7, 109, 2, 2, 3678, 3677, 3, 2, 2, 2, 3678, 3679, 3, 2, 2, 2, 3679, 3681, 3, 2, 2, 2, 3680, 3682, 7, 551, 2, 2, 3681, 3680, 3, 2, 2, 2, 3681, 3682, 3, 2, 2, 2, 3682, 3684, 3, 2, 2, 2, 3683, 3685, 7, 81, 2, 2, 3684, 3683, 3, 2, 2, 2, 3684, 3685, 3, 2, 2, 2, 3685, 3686, 3, 2, 2, 2, 3686, 3687, 7, 70, 2, 2, 3687, 3692, 5, 656, 329, 2, 3688, 3690, 7, 15, 2, 2, 3689, 3688, 3, 2, 2, 2, 3689, 3690, 3, 2, 2, 2, 3690, 3691, 3, 2, 2, 2, 3691, 3693, 5, 710, 356, 2, 3692, 3689, 3, 2, 2, 2, 3692, 3693, 3, 2, 2, 2, 3693, 3699, 3, 2, 2, 2, 3694, 3695, 7, 132, 2, 2, 3695, 3696, 7, 868, 2, 2, 3696, 3697, 5, 674, 338, 2, 3697, 3698, 7, 869, 2, 2, 3698, 3700, 3, 2, 2, 2, 3699, 3694, 3, 2, 2, 2, 3699, 3700, 3, 2, 2, 2, 3700, 3703, 3, 2, 2, 2, 3701, 3702, 7, 194, 2, 2, 3702, 3704, 5, 808, 405, 2, 3703, 3701, 3, 2, 2, 2, 3703, 3704, 3, 2, 2, 2, 3704, 3706, 3, 2, 2, 2, 3705, 3707, 5, 254, 128, 2, 3706, 3705, 3, 2, 2, 2, 3706, 3707, 3, 2, 2, 2, 3707, 3710, 3, 2, 2, 2, 3708, 3709, 7, 102, 2, 2, 3709, 3711, 5, 322, 162, 2, 3710, 3708, 3, 2, 2, 2, 3710, 3711, 3, 2, 2, 2, 3711, 237, 3, 2, 2, 2, 3712, 3714, 7, 46, 2, 2, 3713, 3715, 7, 109, 2, 2, 3714, 3713, 3, 2, 2, 2, 3714, 3715, 3, 2, 2, 2, 3715, 3717, 3, 2, 2, 2, 3716, 3718, 7, 551, 2, 2, 3717, 3716, 3, 2, 2, 2, 3717, 3718, 3, 2, 2, 2, 3718, 3720, 3, 2, 2, 2, 3719, 3721, 7, 81, 2, 2, 3720, 3719, 3, 2, 2, 2, 3720, 3721, 3, 2, 2, 2, 3721, 3761, 3, 2, 2, 2, 3722, 3725, 5, 656, 329, 2, 3723, 3724, 7, 867, 2, 2, 3724, 3726, 7, 852, 2, 2, 3725, 3723, 3, 2, 2, 2, 3725, 3726, 3, 2, 2, 2, 3726, 3735, 3, 2, 2, 2, 3727, 3728, 7, 870, 2, 2, 3728, 3731, 5, 656, 329, 2, 3729, 3730, 7, 867, 2, 2, 3730, 3732, 7, 852, 2, 2, 3731, 3729, 3, 2, 2, 2, 3731, 3732, 3, 2, 2, 2, 3732, 3734, 3, 2, 2, 2, 3733, 3727, 3, 2, 2, 2, 3734, 3737, 3, 2, 2, 2, 3735, 3733, 3, 2, 2, 2, 3735, 3736, 3, 2, 2, 2, 3736, 3738, 3, 2, 2, 2, 3737, 3735, 3, 2, 2, 2, 3738, 3739, 7, 70, 2, 2, 3739, 3740, 5, 258, 130, 2, 3740, 3762, 3, 2, 2, 2, 3741, 3742, 7, 70, 2, 2, 3742, 3745, 5, 656, 329, 2, 3743, 3744, 7, 867, 2, 2, 3744, 3746, 7, 852, 2, 2, 3745, 3743, 3, 2, 2, 2, 3745, 3746, 3, 2, 2, 2, 3746, 3755, 3, 2, 2, 2, 3747, 3748, 7, 870, 2, 2, 3748, 3751, 5, 656, 329, 2, 3749, 3750, 7, 867, 2, 2, 3750, 3752, 7, 852, 2, 2, 3751, 3749, 3, 2, 2, 2, 3751, 3752, 3, 2, 2, 2, 3752, 3754, 3, 2, 2, 2, 3753, 3747, 3, 2, 2, 2, 3754, 3757, 3, 2, 2, 2, 3755, 3753, 3, 2, 2, 2, 3755, 3756, 3, 2, 2, 2, 3756, 3758, 3, 2, 2, 2, 3757, 3755, 3, 2, 2, 2, 3758, 3759, 7, 190, 2, 2, 3759, 3760, 5, 258, 130, 2, 3760, 3762, 3, 2, 2, 2, 3761, 3722, 3, 2, 2, 2, 3761, 3741, 3, 2, 2, 2, 3762, 3765, 3, 2, 2, 2, 3763, 3764, 7, 194, 2, 2, 3764, 3766, 5, 808, 405, 2, 3765, 3763, 3, 2, 2, 2, 3765, 3766, 3, 2, 2, 2, 3766, 239, 3, 2, 2, 2, 3767, 3768, 7, 419, 2, 2, 3768, 3769, 5, 656, 329, 2, 3769, 3774, 7, 518, 2, 2, 3770, 3772, 7, 15, 2, 2, 3771, 3770, 3, 2, 2, 2, 3771, 3772, 3, 2, 2, 2, 3772, 3773, 3, 2, 2, 2, 3773, 3775, 5, 710, 356, 2, 3774, 3771, 3, 2, 2, 2, 3774, 3775, 3, 2, 2, 2, 3775, 241, 3, 2, 2, 2, 3776, 3777, 7, 419, 2, 2, 3777, 3778, 5, 656, 329, 2, 3778, 3779, 7, 137, 2, 2, 3779, 3786, 5, 646, 324, 2, 3780, 3781, 5, 818, 410, 2, 3781, 3782, 7, 868, 2, 2, 3782, 3783, 5, 752, 377, 2, 3783, 3784, 7, 869, 2, 2, 3784, 3787, 3, 2, 2, 2, 3785, 3787, 9, 54, 2, 2, 3786, 3780, 3, 2, 2, 2, 3786, 3785, 3, 2, 2, 2, 3787, 3790, 3, 2, 2, 2, 3788, 3789, 7, 194, 2, 2, 3789, 3791, 5, 808, 405, 2, 3790, 3788, 3, 2, 2, 2, 3790, 3791, 3, 2, 2, 2, 3791, 3794, 3, 2, 2, 2, 3792, 3793, 7, 102, 2, 2, 3793, 3795, 5, 322, 162, 2, 3794, 3792, 3, 2, 2, 2, 3794, 3795, 3, 2, 2, 2, 3795, 243, 3, 2, 2, 2, 3796, 3797, 7, 419, 2, 2, 3797, 3798, 5, 656, 329, 2, 3798, 3799, 7, 137, 2, 2, 3799, 3802, 9, 55, 2, 2, 3800, 3801, 7, 194, 2, 2, 3801, 3803, 5, 808, 405, 2, 3802, 3800, 3, 2, 2, 2, 3802, 3803, 3, 2, 2, 2, 3803, 3806, 3, 2, 2, 2, 3804, 3805, 7, 102, 2, 2, 3805, 3807, 5, 322, 162, 2, 3806, 3804, 3, 2, 2, 2, 3806, 3807, 3, 2, 2, 2, 3807, 245, 3, 2, 2, 2, 3808, 3809, 7, 419, 2, 2, 3809, 3810, 5, 656, 329, 2, 3810, 3811, 7, 336, 2, 2, 3811, 247, 3, 2, 2, 2, 3812, 3813, 7, 427, 2, 2, 3813, 3814, 7, 175, 2, 2, 3814, 3815, 7, 70, 2, 2, 3815, 3820, 5, 720, 361, 2, 3816, 3817, 7, 870, 2, 2, 3817, 3819, 5, 720, 361, 2, 3818, 3816, 3, 2, 2, 2, 3819, 3822, 3, 2, 2, 2, 3820, 3818, 3, 2, 2, 2, 3820, 3821, 3, 2, 2, 2, 3821, 249, 3, 2, 2, 2, 3822, 3820, 3, 2, 2, 2, 3823, 3825, 7, 187, 2, 2, 3824, 3826, 7, 109, 2, 2, 3825, 3824, 3, 2, 2, 2, 3825, 3826, 3, 2, 2, 2, 3826, 3828, 3, 2, 2, 2, 3827, 3829, 7, 81, 2, 2, 3828, 3827, 3, 2, 2, 2, 3828, 3829, 3, 2, 2, 2, 3829, 3830, 3, 2, 2, 2, 3830, 3835, 5, 656, 329, 2, 3831, 3833, 7, 15, 2, 2, 3832, 3831, 3, 2, 2, 2, 3832, 3833, 3, 2, 2, 2, 3833, 3834, 3, 2, 2, 2, 3834, 3836, 5, 710, 356, 2, 3835, 3832, 3, 2, 2, 2, 3835, 3836, 3, 2, 2, 2, 3836, 3837, 3, 2, 2, 2, 3837, 3838, 7, 157, 2, 2, 3838, 3843, 5, 230, 116, 2, 3839, 3840, 7, 870, 2, 2, 3840, 3842, 5, 230, 116, 2, 3841, 3839, 3, 2, 2, 2, 3842, 3845, 3, 2, 2, 2, 3843, 3841, 3, 2, 2, 2, 3843, 3844, 3, 2, 2, 2, 3844, 3848, 3, 2, 2, 2, 3845, 3843, 3, 2, 2, 2, 3846, 3847, 7, 194, 2, 2, 3847, 3849, 5, 808, 405, 2, 3848, 3846, 3, 2, 2, 2, 3848, 3849, 3, 2, 2, 2, 3849, 3851, 3, 2, 2, 2, 3850, 3852, 5, 254, 128, 2, 3851, 3850, 3, 2, 2, 2, 3851, 3852, 3, 2, 2, 2, 3852, 3854, 3, 2, 2, 2, 3853, 3855, 5, 320, 161, 2, 3854, 3853, 3, 2, 2, 2, 3854, 3855, 3, 2, 2, 2, 3855, 251, 3, 2, 2, 2, 3856, 3858, 7, 187, 2, 2, 3857, 3859, 7, 109, 2, 2, 3858, 3857, 3, 2, 2, 2, 3858, 3859, 3, 2, 2, 2, 3859, 3861, 3, 2, 2, 2, 3860, 3862, 7, 81, 2, 2, 3861, 3860, 3, 2, 2, 2, 3861, 3862, 3, 2, 2, 2, 3862, 3863, 3, 2, 2, 2, 3863, 3864, 5, 258, 130, 2, 3864, 3865, 7, 157, 2, 2, 3865, 3870, 5, 230, 116, 2, 3866, 3867, 7, 870, 2, 2, 3867, 3869, 5, 230, 116, 2, 3868, 3866, 3, 2, 2, 2, 3869, 3872, 3, 2, 2, 2, 3870, 3868, 3, 2, 2, 2, 3870, 3871, 3, 2, 2, 2, 3871, 3875, 3, 2, 2, 2, 3872, 3870, 3, 2, 2, 2, 3873, 3874, 7, 194, 2, 2, 3874, 3876, 5, 808, 405, 2, 3875, 3873, 3, 2, 2, 2, 3875, 3876, 3, 2, 2, 2, 3876, 253, 3, 2, 2, 2, 3877, 3878, 7, 127, 2, 2, 3878, 3879, 7, 22, 2, 2, 3879, 3884, 5, 256, 129, 2, 3880, 3881, 7, 870, 2, 2, 3881, 3883, 5, 256, 129, 2, 3882, 3880, 3, 2, 2, 2, 3883, 3886, 3, 2, 2, 2, 3884, 3882, 3, 2, 2, 2, 3884, 3885, 3, 2, 2, 2, 3885, 255, 3, 2, 2, 2, 3886, 3884, 3, 2, 2, 2, 3887, 3889, 5, 808, 405, 2, 3888, 3890, 9, 56, 2, 2, 3889, 3888, 3, 2, 2, 2, 3889, 3890, 3, 2, 2, 2, 3890, 257, 3, 2, 2, 2, 3891, 3896, 5, 260, 131, 2, 3892, 3893, 7, 870, 2, 2, 3893, 3895, 5, 260, 131, 2, 3894, 3892, 3, 2, 2, 2, 3895, 3898, 3, 2, 2, 2, 3896, 3894, 3, 2, 2, 2, 3896, 3897, 3, 2, 2, 2, 3897, 259, 3, 2, 2, 2, 3898, 3896, 3, 2, 2, 2, 3899, 3903, 5, 262, 132, 2, 3900, 3902, 5, 270, 136, 2, 3901, 3900, 3, 2, 2, 2, 3902, 3905, 3, 2, 2, 2, 3903, 3901, 3, 2, 2, 2, 3903, 3904, 3, 2, 2, 2, 3904, 3918, 3, 2, 2, 2, 3905, 3903, 3, 2, 2, 2, 3906, 3907, 7, 868, 2, 2, 3907, 3911, 5, 262, 132, 2, 3908, 3910, 5, 270, 136, 2, 3909, 3908, 3, 2, 2, 2, 3910, 3913, 3, 2, 2, 2, 3911, 3909, 3, 2, 2, 2, 3911, 3912, 3, 2, 2, 2, 3912, 3914, 3, 2, 2, 2, 3913, 3911, 3, 2, 2, 2, 3914, 3915, 7, 869, 2, 2, 3915, 3918, 3, 2, 2, 2, 3916, 3918, 5, 288, 145, 2, 3917, 3899, 3, 2, 2, 2, 3917, 3906, 3, 2, 2, 2, 3917, 3916, 3, 2, 2, 2, 3918, 261, 3, 2, 2, 2, 3919, 3925, 5, 656, 329, 2, 3920, 3921, 7, 132, 2, 2, 3921, 3922, 7, 868, 2, 2, 3922, 3923, 5, 674, 338, 2, 3923, 3924, 7, 869, 2, 2, 3924, 3926, 3, 2, 2, 2, 3925, 3920, 3, 2, 2, 2, 3925, 3926, 3, 2, 2, 2, 3926, 3931, 3, 2, 2, 2, 3927, 3929, 7, 15, 2, 2, 3928, 3927, 3, 2, 2, 2, 3928, 3929, 3, 2, 2, 2, 3929, 3930, 3, 2, 2, 2, 3930, 3932, 5, 710, 356, 2, 3931, 3928, 3, 2, 2, 2, 3931, 3932, 3, 2, 2, 2, 3932, 3941, 3, 2, 2, 2, 3933, 3938, 5, 266, 134, 2, 3934, 3935, 7, 870, 2, 2, 3935, 3937, 5, 266, 134, 2, 3936, 3934, 3, 2, 2, 2, 3937, 3940, 3, 2, 2, 2, 3938, 3936, 3, 2, 2, 2, 3938, 3939, 3, 2, 2, 2, 3939, 3942, 3, 2, 2, 2, 3940, 3938, 3, 2, 2, 2, 3941, 3933, 3, 2, 2, 2, 3941, 3942, 3, 2, 2, 2, 3942, 3965, 3, 2, 2, 2, 3943, 3945, 7, 97, 2, 2, 3944, 3943, 3, 2, 2, 2, 3944, 3945, 3, 2, 2, 2, 3945, 3951, 3, 2, 2, 2, 3946, 3952, 5, 206, 104, 2, 3947, 3948, 7, 868, 2, 2, 3948, 3949, 5, 206, 104, 2, 3949, 3950, 7, 869, 2, 2, 3950, 3952, 3, 2, 2, 2, 3951, 3946, 3, 2, 2, 2, 3951, 3947, 3, 2, 2, 2, 3952, 3954, 3, 2, 2, 2, 3953, 3955, 7, 15, 2, 2, 3954, 3953, 3, 2, 2, 2, 3954, 3955, 3, 2, 2, 2, 3955, 3956, 3, 2, 2, 2, 3956, 3958, 5, 710, 356, 2, 3957, 3959, 5, 264, 133, 2, 3958, 3957, 3, 2, 2, 2, 3958, 3959, 3, 2, 2, 2, 3959, 3965, 3, 2, 2, 2, 3960, 3961, 7, 868, 2, 2, 3961, 3962, 5, 258, 130, 2, 3962, 3963, 7, 869, 2, 2, 3963, 3965, 3, 2, 2, 2, 3964, 3919, 3, 2, 2, 2, 3964, 3944, 3, 2, 2, 2, 3964, 3960, 3, 2, 2, 2, 3965, 263, 3, 2, 2, 2, 3966, 3967, 7, 868, 2, 2, 3967, 3968, 5, 664, 333, 2, 3968, 3969, 7, 869, 2, 2, 3969, 265, 3, 2, 2, 2, 3970, 3971, 9, 57, 2, 2, 3971, 3974, 9, 20, 2, 2, 3972, 3973, 7, 67, 2, 2, 3973, 3975, 5, 268, 135, 2, 3974, 3972, 3, 2, 2, 2, 3974, 3975, 3, 2, 2, 2, 3975, 3976, 3, 2, 2, 2, 3976, 3978, 7, 868, 2, 2, 3977, 3979, 5, 644, 323, 2, 3978, 3977, 3, 2, 2, 2, 3978, 3979, 3, 2, 2, 2, 3979, 3980, 3, 2, 2, 2, 3980, 3981, 7, 869, 2, 2, 3981, 267, 3, 2, 2, 2, 3982, 3988, 7, 93, 2, 2, 3983, 3984, 7, 127, 2, 2, 3984, 3988, 7, 22, 2, 2, 3985, 3986, 7, 76, 2, 2, 3986, 3988, 7, 22, 2, 2, 3987, 3982, 3, 2, 2, 2, 3987, 3983, 3, 2, 2, 2, 3987, 3985, 3, 2, 2, 2, 3988, 269, 3, 2, 2, 2, 3989, 3991, 9, 58, 2, 2, 3990, 3989, 3, 2, 2, 2, 3990, 3991, 3, 2, 2, 2, 3991, 3992, 3, 2, 2, 2, 3992, 3994, 7, 93, 2, 2, 3993, 3995, 7, 97, 2, 2, 3994, 3993, 3, 2, 2, 2, 3994, 3995, 3, 2, 2, 2, 3995, 3996, 3, 2, 2, 2, 3996, 4000, 5, 262, 132, 2, 3997, 3999, 5, 272, 137, 2, 3998, 3997, 3, 2, 2, 2, 3999, 4002, 3, 2, 2, 2, 4000, 3998, 3, 2, 2, 2, 4000, 4001, 3, 2, 2, 2, 4001, 4039, 3, 2, 2, 2, 4002, 4000, 3, 2, 2, 2, 4003, 4004, 7, 174, 2, 2, 4004, 4008, 5, 262, 132, 2, 4005, 4007, 5, 272, 137, 2, 4006, 4005, 3, 2, 2, 2, 4007, 4010, 3, 2, 2, 2, 4008, 4006, 3, 2, 2, 2, 4008, 4009, 3, 2, 2, 2, 4009, 4039, 3, 2, 2, 2, 4010, 4008, 3, 2, 2, 2, 4011, 4013, 9, 59, 2, 2, 4012, 4014, 7, 129, 2, 2, 4013, 4012, 3, 2, 2, 2, 4013, 4014, 3, 2, 2, 2, 4014, 4015, 3, 2, 2, 2, 4015, 4017, 7, 93, 2, 2, 4016, 4018, 7, 97, 2, 2, 4017, 4016, 3, 2, 2, 2, 4017, 4018, 3, 2, 2, 2, 4018, 4019, 3, 2, 2, 2, 4019, 4023, 5, 262, 132, 2, 4020, 4022, 5, 272, 137, 2, 4021, 4020, 3, 2, 2, 2, 4022, 4025, 3, 2, 2, 2, 4023, 4021, 3, 2, 2, 2, 4023, 4024, 3, 2, 2, 2, 4024, 4039, 3, 2, 2, 2, 4025, 4023, 3, 2, 2, 2, 4026, 4034, 7, 115, 2, 2, 4027, 4030, 7, 86, 2, 2, 4028, 4030, 9, 59, 2, 2, 4029, 4027, 3, 2, 2, 2, 4029, 4028, 3, 2, 2, 2, 4030, 4032, 3, 2, 2, 2, 4031, 4033, 7, 129, 2, 2, 4032, 4031, 3, 2, 2, 2, 4032, 4033, 3, 2, 2, 2, 4033, 4035, 3, 2, 2, 2, 4034, 4029, 3, 2, 2, 2, 4034, 4035, 3, 2, 2, 2, 4035, 4036, 3, 2, 2, 2, 4036, 4037, 7, 93, 2, 2, 4037, 4039, 5, 262, 132, 2, 4038, 3990, 3, 2, 2, 2, 4038, 4003, 3, 2, 2, 2, 4038, 4011, 3, 2, 2, 2, 4038, 4026, 3, 2, 2, 2, 4039, 271, 3, 2, 2, 2, 4040, 4041, 7, 121, 2, 2, 4041, 4048, 5, 808, 405, 2, 4042, 4043, 7, 190, 2, 2, 4043, 4044, 7, 868, 2, 2, 4044, 4045, 5, 664, 333, 2, 4045, 4046, 7, 869, 2, 2, 4046, 4048, 3, 2, 2, 2, 4047, 4040, 3, 2, 2, 2, 4047, 4042, 3, 2, 2, 2, 4048, 273, 3, 2, 2, 2, 4049, 4050, 7, 868, 2, 2, 4050, 4051, 5, 278, 140, 2, 4051, 4052, 7, 869, 2, 2, 4052, 4058, 3, 2, 2, 2, 4053, 4054, 7, 868, 2, 2, 4054, 4055, 5, 274, 138, 2, 4055, 4056, 7, 869, 2, 2, 4056, 4058, 3, 2, 2, 2, 4057, 4049, 3, 2, 2, 2, 4057, 4053, 3, 2, 2, 2, 4058, 275, 3, 2, 2, 2, 4059, 4060, 7, 868, 2, 2, 4060, 4061, 5, 280, 141, 2, 4061, 4062, 7, 869, 2, 2, 4062, 4068, 3, 2, 2, 2, 4063, 4064, 7, 868, 2, 2, 4064, 4065, 5, 276, 139, 2, 4065, 4066, 7, 869, 2, 2, 4066, 4068, 3, 2, 2, 2, 4067, 4059, 3, 2, 2, 2, 4067, 4063, 3, 2, 2, 2, 4068, 277, 3, 2, 2, 2, 4069, 4073, 7, 156, 2, 2, 4070, 4072, 5, 298, 150, 2, 4071, 4070, 3, 2, 2, 2, 4072, 4075, 3, 2, 2, 2, 4073, 4071, 3, 2, 2, 2, 4073, 4074, 3, 2, 2, 2, 4074, 4076, 3, 2, 2, 2, 4075, 4073, 3, 2, 2, 2, 4076, 4078, 5, 300, 151, 2, 4077, 4079, 5, 304, 153, 2, 4078, 4077, 3, 2, 2, 2, 4078, 4079, 3, 2, 2, 2, 4079, 4080, 3, 2, 2, 2, 4080, 4082, 5, 310, 156, 2, 4081, 4083, 5, 312, 157, 2, 4082, 4081, 3, 2, 2, 2, 4082, 4083, 3, 2, 2, 2, 4083, 4085, 3, 2, 2, 2, 4084, 4086, 5, 314, 158, 2, 4085, 4084, 3, 2, 2, 2, 4085, 4086, 3, 2, 2, 2, 4086, 4088, 3, 2, 2, 2, 4087, 4089, 5, 316, 159, 2, 4088, 4087, 3, 2, 2, 2, 4088, 4089, 3, 2, 2, 2, 4089, 4091, 3, 2, 2, 2, 4090, 4092, 5, 254, 128, 2, 4091, 4090, 3, 2, 2, 2, 4091, 4092, 3, 2, 2, 2, 4092, 4094, 3, 2, 2, 2, 4093, 4095, 5, 320, 161, 2, 4094, 4093, 3, 2, 2, 2, 4094, 4095, 3, 2, 2, 2, 4095, 4124, 3, 2, 2, 2, 4096, 4100, 7, 156, 2, 2, 4097, 4099, 5, 298, 150, 2, 4098, 4097, 3, 2, 2, 2, 4099, 4102, 3, 2, 2, 2, 4100, 4098, 3, 2, 2, 2, 4100, 4101, 3, 2, 2, 2, 4101, 4103, 3, 2, 2, 2, 4102, 4100, 3, 2, 2, 2, 4103, 4104, 5, 300, 151, 2, 4104, 4106, 5, 310, 156, 2, 4105, 4107, 5, 312, 157, 2, 4106, 4105, 3, 2, 2, 2, 4106, 4107, 3, 2, 2, 2, 4107, 4109, 3, 2, 2, 2, 4108, 4110, 5, 314, 158, 2, 4109, 4108, 3, 2, 2, 2, 4109, 4110, 3, 2, 2, 2, 4110, 4112, 3, 2, 2, 2, 4111, 4113, 5, 316, 159, 2, 4112, 4111, 3, 2, 2, 2, 4112, 4113, 3, 2, 2, 2, 4113, 4115, 3, 2, 2, 2, 4114, 4116, 5, 254, 128, 2, 4115, 4114, 3, 2, 2, 2, 4115, 4116, 3, 2, 2, 2, 4116, 4118, 3, 2, 2, 2, 4117, 4119, 5, 320, 161, 2, 4118, 4117, 3, 2, 2, 2, 4118, 4119, 3, 2, 2, 2, 4119, 4121, 3, 2, 2, 2, 4120, 4122, 5, 304, 153, 2, 4121, 4120, 3, 2, 2, 2, 4121, 4122, 3, 2, 2, 2, 4122, 4124, 3, 2, 2, 2, 4123, 4069, 3, 2, 2, 2, 4123, 4096, 3, 2, 2, 2, 4124, 279, 3, 2, 2, 2, 4125, 4129, 7, 156, 2, 2, 4126, 4128, 5, 298, 150, 2, 4127, 4126, 3, 2, 2, 2, 4128, 4131, 3, 2, 2, 2, 4129, 4127, 3, 2, 2, 2, 4129, 4130, 3, 2, 2, 2, 4130, 4132, 3, 2, 2, 2, 4131, 4129, 3, 2, 2, 2, 4132, 4133, 5, 300, 151, 2, 4133, 4135, 5, 310, 156, 2, 4134, 4136, 5, 312, 157, 2, 4135, 4134, 3, 2, 2, 2, 4135, 4136, 3, 2, 2, 2, 4136, 4138, 3, 2, 2, 2, 4137, 4139, 5, 314, 158, 2, 4138, 4137, 3, 2, 2, 2, 4138, 4139, 3, 2, 2, 2, 4139, 4141, 3, 2, 2, 2, 4140, 4142, 5, 316, 159, 2, 4141, 4140, 3, 2, 2, 2, 4141, 4142, 3, 2, 2, 2, 4142, 4144, 3, 2, 2, 2, 4143, 4145, 5, 254, 128, 2, 4144, 4143, 3, 2, 2, 2, 4144, 4145, 3, 2, 2, 2, 4145, 4147, 3, 2, 2, 2, 4146, 4148, 5, 320, 161, 2, 4147, 4146, 3, 2, 2, 2, 4147, 4148, 3, 2, 2, 2, 4148, 281, 3, 2, 2, 2, 4149, 4151, 7, 183, 2, 2, 4150, 4152, 9, 46, 2, 2, 4151, 4150, 3, 2, 2, 2, 4151, 4152, 3, 2, 2, 2, 4152, 4153, 3, 2, 2, 2, 4153, 4154, 5, 276, 139, 2, 4154, 283, 3, 2, 2, 2, 4155, 4157, 7, 183, 2, 2, 4156, 4158, 9, 46, 2, 2, 4157, 4156, 3, 2, 2, 2, 4157, 4158, 3, 2, 2, 2, 4158, 4161, 3, 2, 2, 2, 4159, 4162, 5, 280, 141, 2, 4160, 4162, 5, 276, 139, 2, 4161, 4159, 3, 2, 2, 2, 4161, 4160, 3, 2, 2, 2, 4162, 285, 3, 2, 2, 2, 4163, 4178, 7, 97, 2, 2, 4164, 4179, 5, 280, 141, 2, 4165, 4179, 5, 276, 139, 2, 4166, 4169, 7, 868, 2, 2, 4167, 4170, 5, 280, 141, 2, 4168, 4170, 5, 276, 139, 2, 4169, 4167, 3, 2, 2, 2, 4169, 4168, 3, 2, 2, 2, 4170, 4171, 3, 2, 2, 2, 4171, 4176, 7, 869, 2, 2, 4172, 4174, 7, 15, 2, 2, 4173, 4172, 3, 2, 2, 2, 4173, 4174, 3, 2, 2, 2, 4174, 4175, 3, 2, 2, 2, 4175, 4177, 5, 710, 356, 2, 4176, 4173, 3, 2, 2, 2, 4176, 4177, 3, 2, 2, 2, 4177, 4179, 3, 2, 2, 2, 4178, 4164, 3, 2, 2, 2, 4178, 4165, 3, 2, 2, 2, 4178, 4166, 3, 2, 2, 2, 4179, 287, 3, 2, 2, 2, 4180, 4181, 7, 255, 2, 2, 4181, 4182, 7, 868, 2, 2, 4182, 4183, 7, 884, 2, 2, 4183, 4184, 7, 870, 2, 2, 4184, 4185, 7, 884, 2, 2, 4185, 4186, 7, 339, 2, 2, 4186, 4187, 7, 868, 2, 2, 4187, 4188, 5, 290, 146, 2, 4188, 4189, 7, 869, 2, 2, 4189, 4194, 7, 869, 2, 2, 4190, 4192, 7, 15, 2, 2, 4191, 4190, 3, 2, 2, 2, 4191, 4192, 3, 2, 2, 2, 4192, 4193, 3, 2, 2, 2, 4193, 4195, 5, 710, 356, 2, 4194, 4191, 3, 2, 2, 2, 4194, 4195, 3, 2, 2, 2, 4195, 289, 3, 2, 2, 2, 4196, 4201, 5, 292, 147, 2, 4197, 4198, 7, 870, 2, 2, 4198, 4200, 5, 292, 147, 2, 4199, 4197, 3, 2, 2, 2, 4200, 4203, 3, 2, 2, 2, 4201, 4199, 3, 2, 2, 2, 4201, 4202, 3, 2, 2, 2, 4202, 291, 3, 2, 2, 2, 4203, 4201, 3, 2, 2, 2, 4204, 4221, 5, 666, 334, 2, 4205, 4206, 7, 67, 2, 2, 4206, 4222, 7, 258, 2, 2, 4207, 4219, 5, 730, 366, 2, 4208, 4209, 7, 259, 2, 2, 4209, 4211, 7, 884, 2, 2, 4210, 4212, 5, 294, 148, 2, 4211, 4210, 3, 2, 2, 2, 4211, 4212, 3, 2, 2, 2, 4212, 4214, 3, 2, 2, 2, 4213, 4215, 5, 296, 149, 2, 4214, 4213, 3, 2, 2, 2, 4214, 4215, 3, 2, 2, 2, 4215, 4220, 3, 2, 2, 2, 4216, 4217, 7, 62, 2, 2, 4217, 4218, 7, 259, 2, 2, 4218, 4220, 7, 884, 2, 2, 4219, 4208, 3, 2, 2, 2, 4219, 4216, 3, 2, 2, 2, 4220, 4222, 3, 2, 2, 2, 4221, 4205, 3, 2, 2, 2, 4221, 4207, 3, 2, 2, 2, 4222, 4234, 3, 2, 2, 2, 4223, 4225, 7, 257, 2, 2, 4224, 4226, 7, 259, 2, 2, 4225, 4224, 3, 2, 2, 2, 4225, 4226, 3, 2, 2, 2, 4226, 4227, 3, 2, 2, 2, 4227, 4228, 7, 884, 2, 2, 4228, 4229, 7, 339, 2, 2, 4229, 4230, 7, 868, 2, 2, 4230, 4231, 5, 290, 146, 2, 4231, 4232, 7, 869, 2, 2, 4232, 4234, 3, 2, 2, 2, 4233, 4204, 3, 2, 2, 2, 4233, 4223, 3, 2, 2, 2, 4234, 293, 3, 2, 2, 2, 4235, 4240, 7, 118, 2, 2, 4236, 4240, 7, 384, 2, 2, 4237, 4238, 7, 44, 2, 2, 4238, 4240, 5, 758, 380, 2, 4239, 4235, 3, 2, 2, 2, 4239, 4236, 3, 2, 2, 2, 4239, 4237, 3, 2, 2, 2, 4240, 4241, 3, 2, 2, 2, 4241, 4242, 7, 121, 2, 2, 4242, 4243, 7, 57, 2, 2, 4243, 295, 3, 2, 2, 2, 4244, 4249, 7, 118, 2, 2, 4245, 4249, 7, 384, 2, 2, 4246, 4247, 7, 44, 2, 2, 4247, 4249, 5, 758, 380, 2, 4248, 4244, 3, 2, 2, 2, 4248, 4245, 3, 2, 2, 2, 4248, 4246, 3, 2, 2, 2, 4249, 4250, 3, 2, 2, 2, 4250, 4251, 7, 121, 2, 2, 4251, 4252, 7, 384, 2, 2, 4252, 297, 3, 2, 2, 2, 4253, 4262, 9, 60, 2, 2, 4254, 4262, 7, 78, 2, 2, 4255, 4262, 7, 174, 2, 2, 4256, 4262, 7, 170, 2, 2, 4257, 4262, 7, 168, 2, 2, 4258, 4262, 7, 638, 2, 2, 4259, 4262, 9, 61, 2, 2, 4260, 4262, 7, 169, 2, 2, 4261, 4253, 3, 2, 2, 2, 4261, 4254, 3, 2, 2, 2, 4261, 4255, 3, 2, 2, 2, 4261, 4256, 3, 2, 2, 2, 4261, 4257, 3, 2, 2, 2, 4261, 4258, 3, 2, 2, 2, 4261, 4259, 3, 2, 2, 2, 4261, 4260, 3, 2, 2, 2, 4262, 299, 3, 2, 2, 2, 4263, 4266, 7, 852, 2, 2, 4264, 4266, 5, 302, 152, 2, 4265, 4263, 3, 2, 2, 2, 4265, 4264, 3, 2, 2, 2, 4266, 4271, 3, 2, 2, 2, 4267, 4268, 7, 870, 2, 2, 4268, 4270, 5, 302, 152, 2, 4269, 4267, 3, 2, 2, 2, 4270, 4273, 3, 2, 2, 2, 4271, 4269, 3, 2, 2, 2, 4271, 4272, 3, 2, 2, 2, 4272, 301, 3, 2, 2, 2, 4273, 4271, 3, 2, 2, 2, 4274, 4275, 5, 706, 354, 2, 4275, 4276, 7, 867, 2, 2, 4276, 4277, 7, 852, 2, 2, 4277, 4304, 3, 2, 2, 2, 4278, 4283, 5, 666, 334, 2, 4279, 4281, 7, 15, 2, 2, 4280, 4279, 3, 2, 2, 2, 4280, 4281, 3, 2, 2, 2, 4281, 4282, 3, 2, 2, 2, 4282, 4284, 5, 710, 356, 2, 4283, 4280, 3, 2, 2, 2, 4283, 4284, 3, 2, 2, 2, 4284, 4304, 3, 2, 2, 2, 4285, 4290, 5, 768, 385, 2, 4286, 4288, 7, 15, 2, 2, 4287, 4286, 3, 2, 2, 2, 4287, 4288, 3, 2, 2, 2, 4288, 4289, 3, 2, 2, 2, 4289, 4291, 5, 710, 356, 2, 4290, 4287, 3, 2, 2, 2, 4290, 4291, 3, 2, 2, 2, 4291, 4304, 3, 2, 2, 2, 4292, 4293, 7, 895, 2, 2, 4293, 4295, 7, 843, 2, 2, 4294, 4292, 3, 2, 2, 2, 4294, 4295, 3, 2, 2, 2, 4295, 4296, 3, 2, 2, 2, 4296, 4301, 5, 808, 405, 2, 4297, 4299, 7, 15, 2, 2, 4298, 4297, 3, 2, 2, 2, 4298, 4299, 3, 2, 2, 2, 4299, 4300, 3, 2, 2, 2, 4300, 4302, 5, 710, 356, 2, 4301, 4298, 3, 2, 2, 2, 4301, 4302, 3, 2, 2, 2, 4302, 4304, 3, 2, 2, 2, 4303, 4274, 3, 2, 2, 2, 4303, 4278, 3, 2, 2, 2, 4303, 4285, 3, 2, 2, 2, 4303, 4294, 3, 2, 2, 2, 4304, 303, 3, 2, 2, 2, 4305, 4306, 7, 90, 2, 2, 4306, 4311, 5, 232, 117, 2, 4307, 4308, 7, 870, 2, 2, 4308, 4310, 5, 232, 117, 2, 4309, 4307, 3, 2, 2, 2, 4310, 4313, 3, 2, 2, 2, 4311, 4309, 3, 2, 2, 2, 4311, 4312, 3, 2, 2, 2, 4312, 4342, 3, 2, 2, 2, 4313, 4311, 3, 2, 2, 2, 4314, 4315, 7, 90, 2, 2, 4315, 4316, 7, 374, 2, 2, 4316, 4342, 7, 884, 2, 2, 4317, 4318, 7, 90, 2, 2, 4318, 4319, 7, 130, 2, 2, 4319, 4323, 7, 884, 2, 2, 4320, 4321, 7, 28, 2, 2, 4321, 4322, 7, 157, 2, 2, 4322, 4324, 5, 692, 347, 2, 4323, 4320, 3, 2, 2, 2, 4323, 4324, 3, 2, 2, 2, 4324, 4331, 3, 2, 2, 2, 4325, 4327, 9, 48, 2, 2, 4326, 4328, 5, 306, 154, 2, 4327, 4326, 3, 2, 2, 2, 4328, 4329, 3, 2, 2, 2, 4329, 4327, 3, 2, 2, 2, 4329, 4330, 3, 2, 2, 2, 4330, 4332, 3, 2, 2, 2, 4331, 4325, 3, 2, 2, 2, 4331, 4332, 3, 2, 2, 2, 4332, 4339, 3, 2, 2, 2, 4333, 4335, 7, 104, 2, 2, 4334, 4336, 5, 308, 155, 2, 4335, 4334, 3, 2, 2, 2, 4336, 4337, 3, 2, 2, 2, 4337, 4335, 3, 2, 2, 2, 4337, 4338, 3, 2, 2, 2, 4338, 4340, 3, 2, 2, 2, 4339, 4333, 3, 2, 2, 2, 4339, 4340, 3, 2, 2, 2, 4340, 4342, 3, 2, 2, 2, 4341, 4305, 3, 2, 2, 2, 4341, 4314, 3, 2, 2, 2, 4341, 4317, 3, 2, 2, 2, 4342, 305, 3, 2, 2, 2, 4343, 4344, 7, 176, 2, 2, 4344, 4345, 7, 22, 2, 2, 4345, 4356, 7, 884, 2, 2, 4346, 4348, 7, 125, 2, 2, 4347, 4346, 3, 2, 2, 2, 4347, 4348, 3, 2, 2, 2, 4348, 4349, 3, 2, 2, 2, 4349, 4350, 7, 58, 2, 2, 4350, 4351, 7, 22, 2, 2, 4351, 4356, 7, 884, 2, 2, 4352, 4353, 7, 60, 2, 2, 4353, 4354, 7, 22, 2, 2, 4354, 4356, 7, 884, 2, 2, 4355, 4343, 3, 2, 2, 2, 4355, 4347, 3, 2, 2, 2, 4355, 4352, 3, 2, 2, 2, 4356, 307, 3, 2, 2, 2, 4357, 4358, 7, 173, 2, 2, 4358, 4359, 7, 22, 2, 2, 4359, 4364, 7, 884, 2, 2, 4360, 4361, 7, 176, 2, 2, 4361, 4362, 7, 22, 2, 2, 4362, 4364, 7, 884, 2, 2, 4363, 4357, 3, 2, 2, 2, 4363, 4360, 3, 2, 2, 2, 4364, 309, 3, 2, 2, 2, 4365, 4366, 7, 70, 2, 2, 4366, 4368, 5, 258, 130, 2, 4367, 4365, 3, 2, 2, 2, 4367, 4368, 3, 2, 2, 2, 4368, 4371, 3, 2, 2, 2, 4369, 4370, 7, 194, 2, 2, 4370, 4372, 5, 808, 405, 2, 4371, 4369, 3, 2, 2, 2, 4371, 4372, 3, 2, 2, 2, 4372, 311, 3, 2, 2, 2, 4373, 4374, 7, 76, 2, 2, 4374, 4375, 7, 22, 2, 2, 4375, 4380, 5, 318, 160, 2, 4376, 4377, 7, 870, 2, 2, 4377, 4379, 5, 318, 160, 2, 4378, 4376, 3, 2, 2, 2, 4379, 4382, 3, 2, 2, 2, 4380, 4378, 3, 2, 2, 2, 4380, 4381, 3, 2, 2, 2, 4381, 4385, 3, 2, 2, 2, 4382, 4380, 3, 2, 2, 2, 4383, 4384, 7, 196, 2, 2, 4384, 4386, 7, 586, 2, 2, 4385, 4383, 3, 2, 2, 2, 4385, 4386, 3, 2, 2, 2, 4386, 313, 3, 2, 2, 2, 4387, 4388, 7, 77, 2, 2, 4388, 4389, 5, 808, 405, 2, 4389, 315, 3, 2, 2, 2, 4390, 4391, 7, 691, 2, 2, 4391, 4392, 5, 786, 394, 2, 4392, 4393, 7, 15, 2, 2, 4393, 4394, 7, 868, 2, 2, 4394, 4395, 5, 784, 393, 2, 4395, 4405, 7, 869, 2, 2, 4396, 4397, 7, 870, 2, 2, 4397, 4398, 5, 786, 394, 2, 4398, 4399, 7, 15, 2, 2, 4399, 4400, 7, 868, 2, 2, 4400, 4401, 5, 784, 393, 2, 4401, 4402, 7, 869, 2, 2, 4402, 4404, 3, 2, 2, 2, 4403, 4396, 3, 2, 2, 2, 4404, 4407, 3, 2, 2, 2, 4405, 4403, 3, 2, 2, 2, 4405, 4406, 3, 2, 2, 2, 4406, 317, 3, 2, 2, 2, 4407, 4405, 3, 2, 2, 2, 4408, 4410, 5, 808, 405, 2, 4409, 4411, 9, 56, 2, 2, 4410, 4409, 3, 2, 2, 2, 4410, 4411, 3, 2, 2, 2, 4411, 319, 3, 2, 2, 2, 4412, 4423, 7, 102, 2, 2, 4413, 4414, 5, 322, 162, 2, 4414, 4415, 7, 870, 2, 2, 4415, 4417, 3, 2, 2, 2, 4416, 4413, 3, 2, 2, 2, 4416, 4417, 3, 2, 2, 2, 4417, 4418, 3, 2, 2, 2, 4418, 4424, 5, 322, 162, 2, 4419, 4420, 5, 322, 162, 2, 4420, 4421, 7, 511, 2, 2, 4421, 4422, 5, 322, 162, 2, 4422, 4424, 3, 2, 2, 2, 4423, 4416, 3, 2, 2, 2, 4423, 4419, 3, 2, 2, 2, 4424, 321, 3, 2, 2, 2, 4425, 4429, 5, 716, 359, 2, 4426, 4429, 5, 690, 346, 2, 4427, 4429, 5, 712, 357, 2, 4428, 4425, 3, 2, 2, 2, 4428, 4426, 3, 2, 2, 2, 4428, 4427, 3, 2, 2, 2, 4429, 323, 3, 2, 2, 2, 4430, 4431, 7, 642, 2, 2, 4431, 4440, 7, 666, 2, 2, 4432, 4437, 5, 346, 174, 2, 4433, 4434, 7, 870, 2, 2, 4434, 4436, 5, 346, 174, 2, 4435, 4433, 3, 2, 2, 2, 4436, 4439, 3, 2, 2, 2, 4437, 4435, 3, 2, 2, 2, 4437, 4438, 3, 2, 2, 2, 4438, 4441, 3, 2, 2, 2, 4439, 4437, 3, 2, 2, 2, 4440, 4432, 3, 2, 2, 2, 4440, 4441, 3, 2, 2, 2, 4441, 325, 3, 2, 2, 2, 4442, 4444, 7, 319, 2, 2, 4443, 4445, 7, 693, 2, 2, 4444, 4443, 3, 2, 2, 2, 4444, 4445, 3, 2, 2, 2, 4445, 327, 3, 2, 2, 2, 4446, 4448, 7, 343, 2, 2, 4447, 4449, 7, 693, 2, 2, 4448, 4447, 3, 2, 2, 2, 4448, 4449, 3, 2, 2, 2, 4449, 4455, 3, 2, 2, 2, 4450, 4452, 7, 13, 2, 2, 4451, 4453, 7, 504, 2, 2, 4452, 4451, 3, 2, 2, 2, 4452, 4453, 3, 2, 2, 2, 4453, 4454, 3, 2, 2, 2, 4454, 4456, 7, 328, 2, 2, 4455, 4450, 3, 2, 2, 2, 4455, 4456, 3, 2, 2, 2, 4456, 4461, 3, 2, 2, 2, 4457, 4459, 7, 504, 2, 2, 4458, 4457, 3, 2, 2, 2, 4458, 4459, 3, 2, 2, 2, 4459, 4460, 3, 2, 2, 2, 4460, 4462, 7, 142, 2, 2, 4461, 4458, 3, 2, 2, 2, 4461, 4462, 3, 2, 2, 2, 4462, 329, 3, 2, 2, 2, 4463, 4465, 7, 585, 2, 2, 4464, 4466, 7, 693, 2, 2, 4465, 4464, 3, 2, 2, 2, 4465, 4466, 3, 2, 2, 2, 4466, 4472, 3, 2, 2, 2, 4467, 4469, 7, 13, 2, 2, 4468, 4470, 7, 504, 2, 2, 4469, 4468, 3, 2, 2, 2, 4469, 4470, 3, 2, 2, 2, 4470, 4471, 3, 2, 2, 2, 4471, 4473, 7, 328, 2, 2, 4472, 4467, 3, 2, 2, 2, 4472, 4473, 3, 2, 2, 2, 4473, 4478, 3, 2, 2, 2, 4474, 4476, 7, 504, 2, 2, 4475, 4474, 3, 2, 2, 2, 4475, 4476, 3, 2, 2, 2, 4476, 4477, 3, 2, 2, 2, 4477, 4479, 7, 142, 2, 2, 4478, 4475, 3, 2, 2, 2, 4478, 4479, 3, 2, 2, 2, 4479, 331, 3, 2, 2, 2, 4480, 4481, 7, 591, 2, 2, 4481, 4482, 5, 710, 356, 2, 4482, 333, 3, 2, 2, 2, 4483, 4485, 7, 585, 2, 2, 4484, 4486, 7, 693, 2, 2, 4485, 4484, 3, 2, 2, 2, 4485, 4486, 3, 2, 2, 2, 4486, 4487, 3, 2, 2, 2, 4487, 4489, 7, 178, 2, 2, 4488, 4490, 7, 591, 2, 2, 4489, 4488, 3, 2, 2, 2, 4489, 4490, 3, 2, 2, 2, 4490, 4491, 3, 2, 2, 2, 4491, 4492, 5, 710, 356, 2, 4492, 335, 3, 2, 2, 2, 4493, 4494, 7, 142, 2, 2, 4494, 4495, 7, 591, 2, 2, 4495, 4496, 5, 710, 356, 2, 4496, 337, 3, 2, 2, 2, 4497, 4498, 7, 106, 2, 2, 4498, 4499, 9, 62, 2, 2, 4499, 4504, 5, 348, 175, 2, 4500, 4501, 7, 870, 2, 2, 4501, 4503, 5, 348, 175, 2, 4502, 4500, 3, 2, 2, 2, 4503, 4506, 3, 2, 2, 2, 4504, 4502, 3, 2, 2, 2, 4504, 4505, 3, 2, 2, 2, 4505, 339, 3, 2, 2, 2, 4506, 4504, 3, 2, 2, 2, 4507, 4508, 7, 185, 2, 2, 4508, 4509, 7, 754, 2, 2, 4509, 341, 3, 2, 2, 2, 4510, 4511, 7, 157, 2, 2, 4511, 4512, 7, 315, 2, 2, 4512, 4513, 7, 859, 2, 2, 4513, 4514, 9, 27, 2, 2, 4514, 343, 3, 2, 2, 2, 4515, 4517, 7, 157, 2, 2, 4516, 4518, 9, 63, 2, 2, 4517, 4516, 3, 2, 2, 2, 4517, 4518, 3, 2, 2, 2, 4518, 4519, 3, 2, 2, 2, 4519, 4520, 7, 666, 2, 2, 4520, 4525, 5, 352, 177, 2, 4521, 4522, 7, 870, 2, 2, 4522, 4524, 5, 352, 177, 2, 4523, 4521, 3, 2, 2, 2, 4524, 4527, 3, 2, 2, 2, 4525, 4523, 3, 2, 2, 2, 4525, 4526, 3, 2, 2, 2, 4526, 345, 3, 2, 2, 2, 4527, 4525, 3, 2, 2, 2, 4528, 4529, 7, 196, 2, 2, 4529, 4530, 7, 352, 2, 2, 4530, 4536, 7, 602, 2, 2, 4531, 4532, 7, 137, 2, 2, 4532, 4536, 7, 197, 2, 2, 4533, 4534, 7, 137, 2, 2, 4534, 4536, 7, 517, 2, 2, 4535, 4528, 3, 2, 2, 2, 4535, 4531, 3, 2, 2, 2, 4535, 4533, 3, 2, 2, 2, 4536, 347, 3, 2, 2, 2, 4537, 4542, 5, 656, 329, 2, 4538, 4540, 7, 15, 2, 2, 4539, 4538, 3, 2, 2, 2, 4539, 4540, 3, 2, 2, 2, 4540, 4541, 3, 2, 2, 2, 4541, 4543, 5, 710, 356, 2, 4542, 4539, 3, 2, 2, 2, 4542, 4543, 3, 2, 2, 2, 4543, 4544, 3, 2, 2, 2, 4544, 4545, 5, 350, 176, 2, 4545, 349, 3, 2, 2, 2, 4546, 4548, 7, 137, 2, 2, 4547, 4549, 7, 452, 2, 2, 4548, 4547, 3, 2, 2, 2, 4548, 4549, 3, 2, 2, 2, 4549, 4555, 3, 2, 2, 2, 4550, 4552, 7, 109, 2, 2, 4551, 4550, 3, 2, 2, 2, 4551, 4552, 3, 2, 2, 2, 4552, 4553, 3, 2, 2, 2, 4553, 4555, 7, 197, 2, 2, 4554, 4546, 3, 2, 2, 2, 4554, 4551, 3, 2, 2, 2, 4555, 351, 3, 2, 2, 2, 4556, 4557, 7, 442, 2, 2, 4557, 4558, 7, 450, 2, 2, 4558, 4564, 5, 354, 178, 2, 4559, 4560, 7, 137, 2, 2, 4560, 4564, 7, 197, 2, 2, 4561, 4562, 7, 137, 2, 2, 4562, 4564, 7, 517, 2, 2, 4563, 4556, 3, 2, 2, 2, 4563, 4559, 3, 2, 2, 2, 4563, 4561, 3, 2, 2, 2, 4564, 353, 3, 2, 2, 2, 4565, 4566, 7, 811, 2, 2, 4566, 4573, 7, 137, 2, 2, 4567, 4568, 7, 137, 2, 2, 4568, 4573, 7, 812, 2, 2, 4569, 4570, 7, 137, 2, 2, 4570, 4573, 7, 813, 2, 2, 4571, 4573, 7, 814, 2, 2, 4572, 4565, 3, 2, 2, 2, 4572, 4567, 3, 2, 2, 2, 4572, 4569, 3, 2, 2, 2, 4572, 4571, 3, 2, 2, 2, 4573, 355, 3, 2, 2, 2, 4574, 4575, 7, 27, 2, 2, 4575, 4576, 7, 455, 2, 2, 4576, 4577, 7, 178, 2, 2, 4577, 4582, 5, 372, 187, 2, 4578, 4579, 7, 870, 2, 2, 4579, 4581, 5, 372, 187, 2, 4580, 4578, 3, 2, 2, 2, 4581, 4584, 3, 2, 2, 2, 4582, 4580, 3, 2, 2, 2, 4582, 4583, 3, 2, 2, 2, 4583, 4586, 3, 2, 2, 2, 4584, 4582, 3, 2, 2, 2, 4585, 4587, 5, 392, 197, 2, 4586, 4585, 3, 2, 2, 2, 4586, 4587, 3, 2, 2, 2, 4587, 357, 3, 2, 2, 2, 4588, 4589, 7, 27, 2, 2, 4589, 4590, 7, 574, 2, 2, 4590, 4591, 7, 402, 2, 2, 4591, 4596, 5, 394, 198, 2, 4592, 4593, 7, 870, 2, 2, 4593, 4595, 5, 394, 198, 2, 4594, 4592, 3, 2, 2, 2, 4595, 4598, 3, 2, 2, 2, 4596, 4594, 3, 2, 2, 2, 4596, 4597, 3, 2, 2, 2, 4597, 4600, 3, 2, 2, 2, 4598, 4596, 3, 2, 2, 2, 4599, 4601, 5, 392, 197, 2, 4600, 4599, 3, 2, 2, 2, 4600, 4601, 3, 2, 2, 2, 4601, 359, 3, 2, 2, 2, 4602, 4603, 7, 27, 2, 2, 4603, 4604, 7, 574, 2, 2, 4604, 4605, 7, 607, 2, 2, 4605, 4606, 7, 178, 2, 2, 4606, 4611, 5, 382, 192, 2, 4607, 4608, 7, 870, 2, 2, 4608, 4610, 5, 382, 192, 2, 4609, 4607, 3, 2, 2, 2, 4610, 4613, 3, 2, 2, 2, 4611, 4609, 3, 2, 2, 2, 4611, 4612, 3, 2, 2, 2, 4612, 4615, 3, 2, 2, 2, 4613, 4611, 3, 2, 2, 2, 4614, 4616, 5, 392, 197, 2, 4615, 4614, 3, 2, 2, 2, 4615, 4616, 3, 2, 2, 2, 4616, 361, 3, 2, 2, 2, 4617, 4618, 7, 135, 2, 2, 4618, 4619, 9, 64, 2, 2, 4619, 4624, 7, 454, 2, 2, 4620, 4621, 7, 178, 2, 2, 4621, 4625, 7, 884, 2, 2, 4622, 4623, 7, 18, 2, 2, 4623, 4625, 7, 884, 2, 2, 4624, 4620, 3, 2, 2, 2, 4624, 4622, 3, 2, 2, 2, 4625, 363, 3, 2, 2, 2, 4626, 4627, 7, 642, 2, 2, 4627, 4636, 9, 65, 2, 2, 4628, 4633, 5, 398, 200, 2, 4629, 4630, 7, 870, 2, 2, 4630, 4632, 5, 398, 200, 2, 4631, 4629, 3, 2, 2, 2, 4632, 4635, 3, 2, 2, 2, 4633, 4631, 3, 2, 2, 2, 4633, 4634, 3, 2, 2, 2, 4634, 4637, 3, 2, 2, 2, 4635, 4633, 3, 2, 2, 2, 4636, 4628, 3, 2, 2, 2, 4636, 4637, 3, 2, 2, 2, 4637, 4640, 3, 2, 2, 2, 4638, 4639, 7, 678, 2, 2, 4639, 4641, 5, 400, 201, 2, 4640, 4638, 3, 2, 2, 2, 4640, 4641, 3, 2, 2, 2, 4641, 4645, 3, 2, 2, 2, 4642, 4644, 5, 402, 202, 2, 4643, 4642, 3, 2, 2, 2, 4644, 4647, 3, 2, 2, 2, 4645, 4643, 3, 2, 2, 2, 4645, 4646, 3, 2, 2, 2, 4646, 4649, 3, 2, 2, 2, 4647, 4645, 3, 2, 2, 2, 4648, 4650, 5, 392, 197, 2, 4649, 4648, 3, 2, 2, 2, 4649, 4650, 3, 2, 2, 2, 4650, 365, 3, 2, 2, 2, 4651, 4652, 7, 648, 2, 2, 4652, 4661, 9, 65, 2, 2, 4653, 4658, 5, 398, 200, 2, 4654, 4655, 7, 870, 2, 2, 4655, 4657, 5, 398, 200, 2, 4656, 4654, 3, 2, 2, 2, 4657, 4660, 3, 2, 2, 2, 4658, 4656, 3, 2, 2, 2, 4658, 4659, 3, 2, 2, 2, 4659, 4662, 3, 2, 2, 2, 4660, 4658, 3, 2, 2, 2, 4661, 4653, 3, 2, 2, 2, 4661, 4662, 3, 2, 2, 2, 4662, 4664, 3, 2, 2, 2, 4663, 4665, 5, 392, 197, 2, 4664, 4663, 3, 2, 2, 2, 4664, 4665, 3, 2, 2, 2, 4665, 367, 3, 2, 2, 2, 4666, 4667, 7, 642, 2, 2, 4667, 4671, 7, 417, 2, 2, 4668, 4669, 7, 680, 2, 2, 4669, 4670, 7, 859, 2, 2, 4670, 4672, 7, 884, 2, 2, 4671, 4668, 3, 2, 2, 2, 4671, 4672, 3, 2, 2, 2, 4672, 4677, 3, 2, 2, 2, 4673, 4674, 7, 870, 2, 2, 4674, 4675, 7, 531, 2, 2, 4675, 4676, 7, 859, 2, 2, 4676, 4678, 7, 884, 2, 2, 4677, 4673, 3, 2, 2, 2, 4677, 4678, 3, 2, 2, 2, 4678, 4683, 3, 2, 2, 2, 4679, 4680, 7, 870, 2, 2, 4680, 4681, 7, 365, 2, 2, 4681, 4682, 7, 859, 2, 2, 4682, 4684, 7, 884, 2, 2, 4683, 4679, 3, 2, 2, 2, 4683, 4684, 3, 2, 2, 2, 4684, 369, 3, 2, 2, 2, 4685, 4686, 7, 648, 2, 2, 4686, 4687, 7, 417, 2, 2, 4687, 371, 3, 2, 2, 2, 4688, 4689, 5, 374, 188, 2, 4689, 4690, 7, 859, 2, 2, 4690, 4691, 7, 884, 2, 2, 4691, 4716, 3, 2, 2, 2, 4692, 4693, 5, 376, 189, 2, 4693, 4694, 7, 859, 2, 2, 4694, 4695, 5, 716, 359, 2, 4695, 4716, 3, 2, 2, 2, 4696, 4697, 5, 378, 190, 2, 4697, 4698, 7, 859, 2, 2, 4698, 4699, 9, 27, 2, 2, 4699, 4716, 3, 2, 2, 2, 4700, 4716, 5, 380, 191, 2, 4701, 4702, 7, 426, 2, 2, 4702, 4703, 7, 859, 2, 2, 4703, 4712, 7, 868, 2, 2, 4704, 4709, 5, 710, 356, 2, 4705, 4706, 7, 870, 2, 2, 4706, 4708, 5, 710, 356, 2, 4707, 4705, 3, 2, 2, 2, 4708, 4711, 3, 2, 2, 2, 4709, 4707, 3, 2, 2, 2, 4709, 4710, 3, 2, 2, 2, 4710, 4713, 3, 2, 2, 2, 4711, 4709, 3, 2, 2, 2, 4712, 4704, 3, 2, 2, 2, 4712, 4713, 3, 2, 2, 2, 4713, 4714, 3, 2, 2, 2, 4714, 4716, 7, 869, 2, 2, 4715, 4688, 3, 2, 2, 2, 4715, 4692, 3, 2, 2, 2, 4715, 4696, 3, 2, 2, 2, 4715, 4700, 3, 2, 2, 2, 4715, 4701, 3, 2, 2, 2, 4716, 373, 3, 2, 2, 2, 4717, 4718, 9, 66, 2, 2, 4718, 375, 3, 2, 2, 2, 4719, 4720, 9, 67, 2, 2, 4720, 377, 3, 2, 2, 2, 4721, 4722, 9, 68, 2, 2, 4722, 379, 3, 2, 2, 2, 4723, 4724, 7, 545, 2, 2, 4724, 4725, 7, 859, 2, 2, 4725, 4737, 9, 69, 2, 2, 4726, 4727, 7, 576, 2, 2, 4727, 4728, 7, 859, 2, 2, 4728, 4737, 9, 70, 2, 2, 4729, 4730, 7, 312, 2, 2, 4730, 4734, 7, 859, 2, 2, 4731, 4735, 7, 509, 2, 2, 4732, 4735, 7, 452, 2, 2, 4733, 4735, 5, 404, 203, 2, 4734, 4731, 3, 2, 2, 2, 4734, 4732, 3, 2, 2, 2, 4734, 4733, 3, 2, 2, 2, 4735, 4737, 3, 2, 2, 2, 4736, 4723, 3, 2, 2, 2, 4736, 4726, 3, 2, 2, 2, 4736, 4729, 3, 2, 2, 2, 4737, 381, 3, 2, 2, 2, 4738, 4739, 5, 384, 193, 2, 4739, 4740, 7, 859, 2, 2, 4740, 4741, 7, 884, 2, 2, 4741, 4766, 3, 2, 2, 2, 4742, 4743, 5, 386, 194, 2, 4743, 4744, 7, 859, 2, 2, 4744, 4745, 5, 716, 359, 2, 4745, 4766, 3, 2, 2, 2, 4746, 4747, 5, 388, 195, 2, 4747, 4748, 7, 859, 2, 2, 4748, 4749, 9, 27, 2, 2, 4749, 4766, 3, 2, 2, 2, 4750, 4766, 5, 390, 196, 2, 4751, 4752, 7, 426, 2, 2, 4752, 4753, 7, 859, 2, 2, 4753, 4762, 7, 868, 2, 2, 4754, 4759, 5, 710, 356, 2, 4755, 4756, 7, 870, 2, 2, 4756, 4758, 5, 710, 356, 2, 4757, 4755, 3, 2, 2, 2, 4758, 4761, 3, 2, 2, 2, 4759, 4757, 3, 2, 2, 2, 4759, 4760, 3, 2, 2, 2, 4760, 4763, 3, 2, 2, 2, 4761, 4759, 3, 2, 2, 2, 4762, 4754, 3, 2, 2, 2, 4762, 4763, 3, 2, 2, 2, 4763, 4764, 3, 2, 2, 2, 4764, 4766, 7, 869, 2, 2, 4765, 4738, 3, 2, 2, 2, 4765, 4742, 3, 2, 2, 2, 4765, 4746, 3, 2, 2, 2, 4765, 4750, 3, 2, 2, 2, 4765, 4751, 3, 2, 2, 2, 4766, 383, 3, 2, 2, 2, 4767, 4768, 9, 71, 2, 2, 4768, 385, 3, 2, 2, 2, 4769, 4770, 9, 72, 2, 2, 4770, 387, 3, 2, 2, 2, 4771, 4772, 9, 73, 2, 2, 4772, 389, 3, 2, 2, 2, 4773, 4774, 7, 545, 2, 2, 4774, 4775, 7, 859, 2, 2, 4775, 4787, 9, 69, 2, 2, 4776, 4777, 7, 576, 2, 2, 4777, 4778, 7, 859, 2, 2, 4778, 4787, 9, 74, 2, 2, 4779, 4780, 7, 312, 2, 2, 4780, 4784, 7, 859, 2, 2, 4781, 4785, 7, 509, 2, 2, 4782, 4785, 7, 452, 2, 2, 4783, 4785, 5, 404, 203, 2, 4784, 4781, 3, 2, 2, 2, 4784, 4782, 3, 2, 2, 2, 4784, 4783, 3, 2, 2, 2, 4785, 4787, 3, 2, 2, 2, 4786, 4773, 3, 2, 2, 2, 4786, 4776, 3, 2, 2, 2, 4786, 4779, 3, 2, 2, 2, 4787, 391, 3, 2, 2, 2, 4788, 4789, 7, 67, 2, 2, 4789, 4790, 7, 330, 2, 2, 4790, 4791, 7, 884, 2, 2, 4791, 393, 3, 2, 2, 2, 4792, 4793, 7, 567, 2, 2, 4793, 4794, 7, 859, 2, 2, 4794, 4795, 7, 868, 2, 2, 4795, 4800, 5, 632, 317, 2, 4796, 4797, 7, 870, 2, 2, 4797, 4799, 5, 632, 317, 2, 4798, 4796, 3, 2, 2, 2, 4799, 4802, 3, 2, 2, 2, 4800, 4798, 3, 2, 2, 2, 4800, 4801, 3, 2, 2, 2, 4801, 4803, 3, 2, 2, 2, 4802, 4800, 3, 2, 2, 2, 4803, 4804, 7, 869, 2, 2, 4804, 4856, 3, 2, 2, 2, 4805, 4806, 7, 569, 2, 2, 4806, 4807, 7, 859, 2, 2, 4807, 4808, 7, 868, 2, 2, 4808, 4813, 5, 632, 317, 2, 4809, 4810, 7, 870, 2, 2, 4810, 4812, 5, 632, 317, 2, 4811, 4809, 3, 2, 2, 2, 4812, 4815, 3, 2, 2, 2, 4813, 4811, 3, 2, 2, 2, 4813, 4814, 3, 2, 2, 2, 4814, 4816, 3, 2, 2, 2, 4815, 4813, 3, 2, 2, 2, 4816, 4817, 7, 869, 2, 2, 4817, 4856, 3, 2, 2, 2, 4818, 4819, 7, 568, 2, 2, 4819, 4820, 7, 859, 2, 2, 4820, 4821, 7, 868, 2, 2, 4821, 4822, 5, 654, 328, 2, 4822, 4823, 7, 869, 2, 2, 4823, 4856, 3, 2, 2, 2, 4824, 4825, 7, 570, 2, 2, 4825, 4826, 7, 859, 2, 2, 4826, 4827, 7, 868, 2, 2, 4827, 4828, 5, 654, 328, 2, 4828, 4829, 7, 869, 2, 2, 4829, 4856, 3, 2, 2, 2, 4830, 4831, 7, 572, 2, 2, 4831, 4832, 7, 859, 2, 2, 4832, 4833, 7, 868, 2, 2, 4833, 4834, 5, 754, 378, 2, 4834, 4835, 7, 869, 2, 2, 4835, 4856, 3, 2, 2, 2, 4836, 4837, 7, 573, 2, 2, 4837, 4838, 7, 859, 2, 2, 4838, 4839, 7, 868, 2, 2, 4839, 4840, 5, 754, 378, 2, 4840, 4841, 7, 869, 2, 2, 4841, 4856, 3, 2, 2, 2, 4842, 4843, 7, 571, 2, 2, 4843, 4844, 7, 859, 2, 2, 4844, 4845, 7, 868, 2, 2, 4845, 4850, 5, 396, 199, 2, 4846, 4847, 7, 870, 2, 2, 4847, 4849, 5, 396, 199, 2, 4848, 4846, 3, 2, 2, 2, 4849, 4852, 3, 2, 2, 2, 4850, 4848, 3, 2, 2, 2, 4850, 4851, 3, 2, 2, 2, 4851, 4853, 3, 2, 2, 2, 4852, 4850, 3, 2, 2, 2, 4853, 4854, 7, 869, 2, 2, 4854, 4856, 3, 2, 2, 2, 4855, 4792, 3, 2, 2, 2, 4855, 4805, 3, 2, 2, 2, 4855, 4818, 3, 2, 2, 2, 4855, 4824, 3, 2, 2, 2, 4855, 4830, 3, 2, 2, 2, 4855, 4836, 3, 2, 2, 2, 4855, 4842, 3, 2, 2, 2, 4856, 395, 3, 2, 2, 2, 4857, 4858, 7, 868, 2, 2, 4858, 4859, 5, 656, 329, 2, 4859, 4860, 7, 870, 2, 2, 4860, 4861, 5, 656, 329, 2, 4861, 4862, 7, 869, 2, 2, 4862, 397, 3, 2, 2, 2, 4863, 4864, 9, 75, 2, 2, 4864, 399, 3, 2, 2, 2, 4865, 4866, 9, 76, 2, 2, 4866, 4867, 7, 859, 2, 2, 4867, 4891, 5, 404, 203, 2, 4868, 4869, 7, 462, 2, 2, 4869, 4870, 7, 859, 2, 2, 4870, 4871, 7, 884, 2, 2, 4871, 4872, 7, 870, 2, 2, 4872, 4873, 7, 463, 2, 2, 4873, 4874, 7, 859, 2, 2, 4874, 4891, 5, 716, 359, 2, 4875, 4876, 7, 613, 2, 2, 4876, 4877, 7, 859, 2, 2, 4877, 4878, 7, 884, 2, 2, 4878, 4879, 7, 870, 2, 2, 4879, 4880, 7, 614, 2, 2, 4880, 4881, 7, 859, 2, 2, 4881, 4891, 5, 716, 359, 2, 4882, 4883, 7, 559, 2, 2, 4883, 4884, 7, 859, 2, 2, 4884, 4885, 7, 884, 2, 2, 4885, 4886, 7, 870, 2, 2, 4886, 4887, 7, 560, 2, 2, 4887, 4888, 7, 859, 2, 2, 4888, 4891, 5, 716, 359, 2, 4889, 4891, 7, 636, 2, 2, 4890, 4865, 3, 2, 2, 2, 4890, 4868, 3, 2, 2, 2, 4890, 4875, 3, 2, 2, 2, 4890, 4882, 3, 2, 2, 2, 4890, 4889, 3, 2, 2, 2, 4891, 401, 3, 2, 2, 2, 4892, 4893, 7, 680, 2, 2, 4893, 4894, 7, 859, 2, 2, 4894, 4905, 7, 884, 2, 2, 4895, 4896, 7, 531, 2, 2, 4896, 4897, 7, 859, 2, 2, 4897, 4905, 7, 884, 2, 2, 4898, 4899, 7, 365, 2, 2, 4899, 4900, 7, 859, 2, 2, 4900, 4905, 7, 884, 2, 2, 4901, 4902, 7, 537, 2, 2, 4902, 4903, 7, 859, 2, 2, 4903, 4905, 7, 884, 2, 2, 4904, 4892, 3, 2, 2, 2, 4904, 4895, 3, 2, 2, 2, 4904, 4898, 3, 2, 2, 2, 4904, 4901, 3, 2, 2, 2, 4905, 403, 3, 2, 2, 2, 4906, 4911, 5, 700, 351, 2, 4907, 4908, 7, 870, 2, 2, 4908, 4910, 5, 700, 351, 2, 4909, 4907, 3, 2, 2, 2, 4910, 4913, 3, 2, 2, 2, 4911, 4909, 3, 2, 2, 2, 4911, 4912, 3, 2, 2, 2, 4912, 4916, 3, 2, 2, 2, 4913, 4911, 3, 2, 2, 2, 4914, 4916, 7, 884, 2, 2, 4915, 4906, 3, 2, 2, 2, 4915, 4914, 3, 2, 2, 2, 4916, 405, 3, 2, 2, 2, 4917, 4918, 7, 696, 2, 2, 4918, 4919, 9, 77, 2, 2, 4919, 4921, 5, 702, 352, 2, 4920, 4922, 9, 78, 2, 2, 4921, 4920, 3, 2, 2, 2, 4921, 4922, 3, 2, 2, 2, 4922, 407, 3, 2, 2, 2, 4923, 4924, 7, 696, 2, 2, 4924, 4925, 7, 380, 2, 2, 4925, 4931, 5, 702, 352, 2, 4926, 4929, 7, 656, 2, 2, 4927, 4928, 7, 67, 2, 2, 4928, 4930, 7, 491, 2, 2, 4929, 4927, 3, 2, 2, 2, 4929, 4930, 3, 2, 2, 2, 4930, 4932, 3, 2, 2, 2, 4931, 4926, 3, 2, 2, 2, 4931, 4932, 3, 2, 2, 2, 4932, 409, 3, 2, 2, 2, 4933, 4934, 7, 696, 2, 2, 4934, 4935, 7, 542, 2, 2, 4935, 4936, 5, 702, 352, 2, 4936, 411, 3, 2, 2, 2, 4937, 4938, 7, 696, 2, 2, 4938, 4939, 7, 343, 2, 2, 4939, 4942, 5, 702, 352, 2, 4940, 4941, 7, 515, 2, 2, 4941, 4943, 7, 535, 2, 2, 4942, 4940, 3, 2, 2, 2, 4942, 4943, 3, 2, 2, 2, 4943, 413, 3, 2, 2, 2, 4944, 4945, 7, 696, 2, 2, 4945, 4946, 7, 585, 2, 2, 4946, 4947, 5, 702, 352, 2, 4947, 415, 3, 2, 2, 2, 4948, 4949, 7, 696, 2, 2, 4949, 4952, 7, 553, 2, 2, 4950, 4951, 7, 35, 2, 2, 4951, 4953, 5, 702, 352, 2, 4952, 4950, 3, 2, 2, 2, 4952, 4953, 3, 2, 2, 2, 4953, 417, 3, 2, 2, 2, 4954, 4955, 7, 542, 2, 2, 4955, 4956, 5, 710, 356, 2, 4956, 4959, 7, 70, 2, 2, 4957, 4960, 7, 884, 2, 2, 4958, 4960, 7, 895, 2, 2, 4959, 4957, 3, 2, 2, 2, 4959, 4958, 3, 2, 2, 2, 4960, 419, 3, 2, 2, 2, 4961, 4962, 7, 719, 2, 2, 4962, 4965, 5, 710, 356, 2, 4963, 4964, 7, 190, 2, 2, 4964, 4966, 5, 756, 379, 2, 4965, 4963, 3, 2, 2, 2, 4965, 4966, 3, 2, 2, 2, 4966, 421, 3, 2, 2, 2, 4967, 4968, 9, 79, 2, 2, 4968, 4969, 7, 542, 2, 2, 4969, 4970, 5, 710, 356, 2, 4970, 423, 3, 2, 2, 2, 4971, 4974, 5, 426, 214, 2, 4972, 4974, 5, 6, 4, 2, 4973, 4971, 3, 2, 2, 2, 4973, 4972, 3, 2, 2, 2, 4974, 425, 3, 2, 2, 2, 4975, 4976, 5, 710, 356, 2, 4976, 4977, 7, 880, 2, 2, 4977, 4979, 3, 2, 2, 2, 4978, 4975, 3, 2, 2, 2, 4978, 4979, 3, 2, 2, 2, 4979, 4980, 3, 2, 2, 2, 4980, 4986, 7, 319, 2, 2, 4981, 4982, 5, 446, 224, 2, 4982, 4983, 7, 871, 2, 2, 4983, 4985, 3, 2, 2, 2, 4984, 4981, 3, 2, 2, 2, 4985, 4988, 3, 2, 2, 2, 4986, 4984, 3, 2, 2, 2, 4986, 4987, 3, 2, 2, 2, 4987, 4994, 3, 2, 2, 2, 4988, 4986, 3, 2, 2, 2, 4989, 4990, 5, 448, 225, 2, 4990, 4991, 7, 871, 2, 2, 4991, 4993, 3, 2, 2, 2, 4992, 4989, 3, 2, 2, 2, 4993, 4996, 3, 2, 2, 2, 4994, 4992, 3, 2, 2, 2, 4994, 4995, 3, 2, 2, 2, 4995, 5002, 3, 2, 2, 2, 4996, 4994, 3, 2, 2, 2, 4997, 4998, 5, 450, 226, 2, 4998, 4999, 7, 871, 2, 2, 4999, 5001, 3, 2, 2, 2, 5000, 4997, 3, 2, 2, 2, 5001, 5004, 3, 2, 2, 2, 5002, 5000, 3, 2, 2, 2, 5002, 5003, 3, 2, 2, 2, 5003, 5010, 3, 2, 2, 2, 5004, 5002, 3, 2, 2, 2, 5005, 5006, 5, 452, 227, 2, 5006, 5007, 7, 871, 2, 2, 5007, 5009, 3, 2, 2, 2, 5008, 5005, 3, 2, 2, 2, 5009, 5012, 3, 2, 2, 2, 5010, 5008, 3, 2, 2, 2, 5010, 5011, 3, 2, 2, 2, 5011, 5016, 3, 2, 2, 2, 5012, 5010, 3, 2, 2, 2, 5013, 5015, 5, 456, 229, 2, 5014, 5013, 3, 2, 2, 2, 5015, 5018, 3, 2, 2, 2, 5016, 5014, 3, 2, 2, 2, 5016, 5017, 3, 2, 2, 2, 5017, 5019, 3, 2, 2, 2, 5018, 5016, 3, 2, 2, 2, 5019, 5021, 7, 380, 2, 2, 5020, 5022, 5, 710, 356, 2, 5021, 5020, 3, 2, 2, 2, 5021, 5022, 3, 2, 2, 2, 5022, 427, 3, 2, 2, 2, 5023, 5026, 7, 25, 2, 2, 5024, 5027, 5, 710, 356, 2, 5025, 5027, 5, 808, 405, 2, 5026, 5024, 3, 2, 2, 2, 5026, 5025, 3, 2, 2, 2, 5026, 5027, 3, 2, 2, 2, 5027, 5029, 3, 2, 2, 2, 5028, 5030, 5, 458, 230, 2, 5029, 5028, 3, 2, 2, 2, 5030, 5031, 3, 2, 2, 2, 5031, 5029, 3, 2, 2, 2, 5031, 5032, 3, 2, 2, 2, 5032, 5039, 3, 2, 2, 2, 5033, 5035, 7, 55, 2, 2, 5034, 5036, 5, 456, 229, 2, 5035, 5034, 3, 2, 2, 2, 5036, 5037, 3, 2, 2, 2, 5037, 5035, 3, 2, 2, 2, 5037, 5038, 3, 2, 2, 2, 5038, 5040, 3, 2, 2, 2, 5039, 5033, 3, 2, 2, 2, 5039, 5040, 3, 2, 2, 2, 5040, 5041, 3, 2, 2, 2, 5041, 5042, 7, 380, 2, 2, 5042, 5043, 7, 25, 2, 2, 5043, 429, 3, 2, 2, 2, 5044, 5045, 7, 80, 2, 2, 5045, 5046, 5, 808, 405, 2, 5046, 5048, 7, 177, 2, 2, 5047, 5049, 5, 456, 229, 2, 5048, 5047, 3, 2, 2, 2, 5049, 5050, 3, 2, 2, 2, 5050, 5048, 3, 2, 2, 2, 5050, 5051, 3, 2, 2, 2, 5051, 5055, 3, 2, 2, 2, 5052, 5054, 5, 460, 231, 2, 5053, 5052, 3, 2, 2, 2, 5054, 5057, 3, 2, 2, 2, 5055, 5053, 3, 2, 2, 2, 5055, 5056, 3, 2, 2, 2, 5056, 5064, 3, 2, 2, 2, 5057, 5055, 3, 2, 2, 2, 5058, 5060, 7, 55, 2, 2, 5059, 5061, 5, 456, 229, 2, 5060, 5059, 3, 2, 2, 2, 5061, 5062, 3, 2, 2, 2, 5062, 5060, 3, 2, 2, 2, 5062, 5063, 3, 2, 2, 2, 5063, 5065, 3, 2, 2, 2, 5064, 5058, 3, 2, 2, 2, 5064, 5065, 3, 2, 2, 2, 5065, 5066, 3, 2, 2, 2, 5066, 5067, 7, 380, 2, 2, 5067, 5068, 7, 80, 2, 2, 5068, 431, 3, 2, 2, 2, 5069, 5070, 7, 92, 2, 2, 5070, 5071, 5, 710, 356, 2, 5071, 433, 3, 2, 2, 2, 5072, 5073, 7, 99, 2, 2, 5073, 5074, 5, 710, 356, 2, 5074, 435, 3, 2, 2, 2, 5075, 5076, 5, 710, 356, 2, 5076, 5077, 7, 880, 2, 2, 5077, 5079, 3, 2, 2, 2, 5078, 5075, 3, 2, 2, 2, 5078, 5079, 3, 2, 2, 2, 5079, 5080, 3, 2, 2, 2, 5080, 5082, 7, 108, 2, 2, 5081, 5083, 5, 456, 229, 2, 5082, 5081, 3, 2, 2, 2, 5083, 5084, 3, 2, 2, 2, 5084, 5082, 3, 2, 2, 2, 5084, 5085, 3, 2, 2, 2, 5085, 5086, 3, 2, 2, 2, 5086, 5087, 7, 380, 2, 2, 5087, 5089, 7, 108, 2, 2, 5088, 5090, 5, 710, 356, 2, 5089, 5088, 3, 2, 2, 2, 5089, 5090, 3, 2, 2, 2, 5090, 437, 3, 2, 2, 2, 5091, 5092, 5, 710, 356, 2, 5092, 5093, 7, 880, 2, 2, 5093, 5095, 3, 2, 2, 2, 5094, 5091, 3, 2, 2, 2, 5094, 5095, 3, 2, 2, 2, 5095, 5096, 3, 2, 2, 2, 5096, 5098, 7, 144, 2, 2, 5097, 5099, 5, 456, 229, 2, 5098, 5097, 3, 2, 2, 2, 5099, 5100, 3, 2, 2, 2, 5100, 5098, 3, 2, 2, 2, 5100, 5101, 3, 2, 2, 2, 5101, 5102, 3, 2, 2, 2, 5102, 5103, 7, 678, 2, 2, 5103, 5104, 5, 808, 405, 2, 5104, 5105, 7, 380, 2, 2, 5105, 5107, 7, 144, 2, 2, 5106, 5108, 5, 710, 356, 2, 5107, 5106, 3, 2, 2, 2, 5107, 5108, 3, 2, 2, 2, 5108, 439, 3, 2, 2, 2, 5109, 5110, 7, 150, 2, 2, 5110, 5111, 5, 808, 405, 2, 5111, 441, 3, 2, 2, 2, 5112, 5113, 5, 710, 356, 2, 5113, 5114, 7, 880, 2, 2, 5114, 5116, 3, 2, 2, 2, 5115, 5112, 3, 2, 2, 2, 5115, 5116, 3, 2, 2, 2, 5116, 5117, 3, 2, 2, 2, 5117, 5118, 7, 195, 2, 2, 5118, 5119, 5, 808, 405, 2, 5119, 5121, 7, 373, 2, 2, 5120, 5122, 5, 456, 229, 2, 5121, 5120, 3, 2, 2, 2, 5122, 5123, 3, 2, 2, 2, 5123, 5121, 3, 2, 2, 2, 5123, 5124, 3, 2, 2, 2, 5124, 5125, 3, 2, 2, 2, 5125, 5126, 7, 380, 2, 2, 5126, 5128, 7, 195, 2, 2, 5127, 5129, 5, 710, 356, 2, 5128, 5127, 3, 2, 2, 2, 5128, 5129, 3, 2, 2, 2, 5129, 443, 3, 2, 2, 2, 5130, 5131, 7, 336, 2, 2, 5131, 5146, 5, 710, 356, 2, 5132, 5137, 7, 66, 2, 2, 5133, 5135, 7, 503, 2, 2, 5134, 5133, 3, 2, 2, 2, 5134, 5135, 3, 2, 2, 2, 5135, 5136, 3, 2, 2, 2, 5136, 5138, 7, 70, 2, 2, 5137, 5134, 3, 2, 2, 2, 5137, 5138, 3, 2, 2, 2, 5138, 5139, 3, 2, 2, 2, 5139, 5140, 5, 710, 356, 2, 5140, 5141, 7, 90, 2, 2, 5141, 5142, 5, 708, 355, 2, 5142, 5146, 3, 2, 2, 2, 5143, 5144, 7, 518, 2, 2, 5144, 5146, 5, 710, 356, 2, 5145, 5130, 3, 2, 2, 2, 5145, 5132, 3, 2, 2, 2, 5145, 5143, 3, 2, 2, 2, 5146, 445, 3, 2, 2, 2, 5147, 5148, 7, 43, 2, 2, 5148, 5149, 5, 708, 355, 2, 5149, 5152, 5, 730, 366, 2, 5150, 5151, 7, 44, 2, 2, 5151, 5153, 5, 808, 405, 2, 5152, 5150, 3, 2, 2, 2, 5152, 5153, 3, 2, 2, 2, 5153, 447, 3, 2, 2, 2, 5154, 5155, 7, 43, 2, 2, 5155, 5156, 5, 710, 356, 2, 5156, 5157, 7, 32, 2, 2, 5157, 5164, 7, 67, 2, 2, 5158, 5165, 5, 716, 359, 2, 5159, 5161, 7, 166, 2, 2, 5160, 5162, 7, 684, 2, 2, 5161, 5160, 3, 2, 2, 2, 5161, 5162, 3, 2, 2, 2, 5162, 5163, 3, 2, 2, 2, 5163, 5165, 7, 884, 2, 2, 5164, 5158, 3, 2, 2, 2, 5164, 5159, 3, 2, 2, 2, 5165, 449, 3, 2, 2, 2, 5166, 5167, 7, 43, 2, 2, 5167, 5168, 5, 710, 356, 2, 5168, 5169, 7, 40, 2, 2, 5169, 5170, 7, 67, 2, 2, 5170, 5171, 5, 206, 104, 2, 5171, 451, 3, 2, 2, 2, 5172, 5173, 7, 43, 2, 2, 5173, 5174, 9, 80, 2, 2, 5174, 5175, 7, 419, 2, 2, 5175, 5176, 7, 67, 2, 2, 5176, 5181, 5, 454, 228, 2, 5177, 5178, 7, 870, 2, 2, 5178, 5180, 5, 454, 228, 2, 5179, 5177, 3, 2, 2, 2, 5180, 5183, 3, 2, 2, 2, 5181, 5179, 3, 2, 2, 2, 5181, 5182, 3, 2, 2, 2, 5182, 5184, 3, 2, 2, 2, 5183, 5181, 3, 2, 2, 2, 5184, 5185, 5, 424, 213, 2, 5185, 453, 3, 2, 2, 2, 5186, 5198, 5, 716, 359, 2, 5187, 5189, 7, 166, 2, 2, 5188, 5190, 7, 684, 2, 2, 5189, 5188, 3, 2, 2, 2, 5189, 5190, 3, 2, 2, 2, 5190, 5191, 3, 2, 2, 2, 5191, 5198, 7, 884, 2, 2, 5192, 5198, 5, 710, 356, 2, 5193, 5198, 7, 167, 2, 2, 5194, 5195, 7, 116, 2, 2, 5195, 5198, 7, 409, 2, 2, 5196, 5198, 7, 165, 2, 2, 5197, 5186, 3, 2, 2, 2, 5197, 5187, 3, 2, 2, 2, 5197, 5192, 3, 2, 2, 2, 5197, 5193, 3, 2, 2, 2, 5197, 5194, 3, 2, 2, 2, 5197, 5196, 3, 2, 2, 2, 5198, 455, 3, 2, 2, 2, 5199, 5202, 5, 20, 11, 2, 5200, 5202, 5, 6, 4, 2, 5201, 5199, 3, 2, 2, 2, 5201, 5200, 3, 2, 2, 2, 5202, 5203, 3, 2, 2, 2, 5203, 5204, 7, 871, 2, 2, 5204, 457, 3, 2, 2, 2, 5205, 5208, 7, 193, 2, 2, 5206, 5209, 5, 728, 365, 2, 5207, 5209, 5, 808, 405, 2, 5208, 5206, 3, 2, 2, 2, 5208, 5207, 3, 2, 2, 2, 5209, 5210, 3, 2, 2, 2, 5210, 5212, 7, 177, 2, 2, 5211, 5213, 5, 456, 229, 2, 5212, 5211, 3, 2, 2, 2, 5213, 5214, 3, 2, 2, 2, 5214, 5212, 3, 2, 2, 2, 5214, 5215, 3, 2, 2, 2, 5215, 459, 3, 2, 2, 2, 5216, 5217, 7, 56, 2, 2, 5217, 5218, 5, 808, 405, 2, 5218, 5220, 7, 177, 2, 2, 5219, 5221, 5, 456, 229, 2, 5220, 5219, 3, 2, 2, 2, 5221, 5222, 3, 2, 2, 2, 5222, 5220, 3, 2, 2, 2, 5222, 5223, 3, 2, 2, 2, 5223, 461, 3, 2, 2, 2, 5224, 5225, 7, 10, 2, 2, 5225, 5227, 7, 680, 2, 2, 5226, 5228, 5, 762, 382, 2, 5227, 5226, 3, 2, 2, 2, 5227, 5228, 3, 2, 2, 2, 5228, 5285, 3, 2, 2, 2, 5229, 5234, 5, 494, 248, 2, 5230, 5231, 7, 870, 2, 2, 5231, 5233, 5, 494, 248, 2, 5232, 5230, 3, 2, 2, 2, 5233, 5236, 3, 2, 2, 2, 5234, 5232, 3, 2, 2, 2, 5234, 5235, 3, 2, 2, 2, 5235, 5286, 3, 2, 2, 2, 5236, 5234, 3, 2, 2, 2, 5237, 5242, 5, 496, 249, 2, 5238, 5239, 7, 870, 2, 2, 5239, 5241, 5, 496, 249, 2, 5240, 5238, 3, 2, 2, 2, 5241, 5244, 3, 2, 2, 2, 5242, 5240, 3, 2, 2, 2, 5242, 5243, 3, 2, 2, 2, 5243, 5259, 3, 2, 2, 2, 5244, 5242, 3, 2, 2, 2, 5245, 5257, 7, 146, 2, 2, 5246, 5258, 7, 507, 2, 2, 5247, 5254, 5, 508, 255, 2, 5248, 5250, 7, 13, 2, 2, 5249, 5248, 3, 2, 2, 2, 5249, 5250, 3, 2, 2, 2, 5250, 5251, 3, 2, 2, 2, 5251, 5253, 5, 508, 255, 2, 5252, 5249, 3, 2, 2, 2, 5253, 5256, 3, 2, 2, 2, 5254, 5252, 3, 2, 2, 2, 5254, 5255, 3, 2, 2, 2, 5255, 5258, 3, 2, 2, 2, 5256, 5254, 3, 2, 2, 2, 5257, 5246, 3, 2, 2, 2, 5257, 5247, 3, 2, 2, 2, 5258, 5260, 3, 2, 2, 2, 5259, 5245, 3, 2, 2, 2, 5259, 5260, 3, 2, 2, 2, 5260, 5267, 3, 2, 2, 2, 5261, 5263, 7, 196, 2, 2, 5262, 5264, 5, 510, 256, 2, 5263, 5262, 3, 2, 2, 2, 5264, 5265, 3, 2, 2, 2, 5265, 5263, 3, 2, 2, 2, 5265, 5266, 3, 2, 2, 2, 5266, 5268, 3, 2, 2, 2, 5267, 5261, 3, 2, 2, 2, 5267, 5268, 3, 2, 2, 2, 5268, 5273, 3, 2, 2, 2, 5269, 5272, 5, 512, 257, 2, 5270, 5272, 5, 514, 258, 2, 5271, 5269, 3, 2, 2, 2, 5271, 5270, 3, 2, 2, 2, 5272, 5275, 3, 2, 2, 2, 5273, 5271, 3, 2, 2, 2, 5273, 5274, 3, 2, 2, 2, 5274, 5278, 3, 2, 2, 2, 5275, 5273, 3, 2, 2, 2, 5276, 5277, 9, 81, 2, 2, 5277, 5279, 7, 884, 2, 2, 5278, 5276, 3, 2, 2, 2, 5278, 5279, 3, 2, 2, 2, 5279, 5286, 3, 2, 2, 2, 5280, 5281, 5, 660, 331, 2, 5281, 5282, 7, 44, 2, 2, 5282, 5283, 7, 584, 2, 2, 5283, 5284, 5, 470, 236, 2, 5284, 5286, 3, 2, 2, 2, 5285, 5229, 3, 2, 2, 2, 5285, 5237, 3, 2, 2, 2, 5285, 5280, 3, 2, 2, 2, 5286, 463, 3, 2, 2, 2, 5287, 5288, 7, 36, 2, 2, 5288, 5290, 7, 680, 2, 2, 5289, 5291, 5, 764, 383, 2, 5290, 5289, 3, 2, 2, 2, 5290, 5291, 3, 2, 2, 2, 5291, 5292, 3, 2, 2, 2, 5292, 5294, 5, 688, 345, 2, 5293, 5295, 5, 498, 250, 2, 5294, 5293, 3, 2, 2, 2, 5294, 5295, 3, 2, 2, 2, 5295, 5303, 3, 2, 2, 2, 5296, 5297, 7, 870, 2, 2, 5297, 5299, 5, 688, 345, 2, 5298, 5300, 5, 498, 250, 2, 5299, 5298, 3, 2, 2, 2, 5299, 5300, 3, 2, 2, 2, 5300, 5302, 3, 2, 2, 2, 5301, 5296, 3, 2, 2, 2, 5302, 5305, 3, 2, 2, 2, 5303, 5301, 3, 2, 2, 2, 5303, 5304, 3, 2, 2, 2, 5304, 5309, 3, 2, 2, 2, 5305, 5303, 3, 2, 2, 2, 5306, 5307, 7, 44, 2, 2, 5307, 5308, 7, 584, 2, 2, 5308, 5310, 5, 470, 236, 2, 5309, 5306, 3, 2, 2, 2, 5309, 5310, 3, 2, 2, 2, 5310, 5325, 3, 2, 2, 2, 5311, 5323, 7, 146, 2, 2, 5312, 5324, 7, 507, 2, 2, 5313, 5320, 5, 508, 255, 2, 5314, 5316, 7, 13, 2, 2, 5315, 5314, 3, 2, 2, 2, 5315, 5316, 3, 2, 2, 2, 5316, 5317, 3, 2, 2, 2, 5317, 5319, 5, 508, 255, 2, 5318, 5315, 3, 2, 2, 2, 5319, 5322, 3, 2, 2, 2, 5320, 5318, 3, 2, 2, 2, 5320, 5321, 3, 2, 2, 2, 5321, 5324, 3, 2, 2, 2, 5322, 5320, 3, 2, 2, 2, 5323, 5312, 3, 2, 2, 2, 5323, 5313, 3, 2, 2, 2, 5324, 5326, 3, 2, 2, 2, 5325, 5311, 3, 2, 2, 2, 5325, 5326, 3, 2, 2, 2, 5326, 5333, 3, 2, 2, 2, 5327, 5329, 7, 196, 2, 2, 5328, 5330, 5, 510, 256, 2, 5329, 5328, 3, 2, 2, 2, 5330, 5331, 3, 2, 2, 2, 5331, 5329, 3, 2, 2, 2, 5331, 5332, 3, 2, 2, 2, 5332, 5334, 3, 2, 2, 2, 5333, 5327, 3, 2, 2, 2, 5333, 5334, 3, 2, 2, 2, 5334, 5339, 3, 2, 2, 2, 5335, 5338, 5, 512, 257, 2, 5336, 5338, 5, 514, 258, 2, 5337, 5335, 3, 2, 2, 2, 5337, 5336, 3, 2, 2, 2, 5338, 5341, 3, 2, 2, 2, 5339, 5337, 3, 2, 2, 2, 5339, 5340, 3, 2, 2, 2, 5340, 5344, 3, 2, 2, 2, 5341, 5339, 3, 2, 2, 2, 5342, 5343, 9, 81, 2, 2, 5343, 5345, 7, 884, 2, 2, 5344, 5342, 3, 2, 2, 2, 5344, 5345, 3, 2, 2, 2, 5345, 465, 3, 2, 2, 2, 5346, 5347, 7, 53, 2, 2, 5347, 5349, 7, 680, 2, 2, 5348, 5350, 5, 762, 382, 2, 5349, 5348, 3, 2, 2, 2, 5349, 5350, 3, 2, 2, 2, 5350, 5351, 3, 2, 2, 2, 5351, 5356, 5, 688, 345, 2, 5352, 5353, 7, 870, 2, 2, 5353, 5355, 5, 688, 345, 2, 5354, 5352, 3, 2, 2, 2, 5355, 5358, 3, 2, 2, 2, 5356, 5354, 3, 2, 2, 2, 5356, 5357, 3, 2, 2, 2, 5357, 467, 3, 2, 2, 2, 5358, 5356, 3, 2, 2, 2, 5359, 5360, 7, 75, 2, 2, 5360, 5365, 5, 522, 262, 2, 5361, 5362, 7, 870, 2, 2, 5362, 5364, 5, 522, 262, 2, 5363, 5361, 3, 2, 2, 2, 5364, 5367, 3, 2, 2, 2, 5365, 5363, 3, 2, 2, 2, 5365, 5366, 3, 2, 2, 2, 5366, 5368, 3, 2, 2, 2, 5367, 5365, 3, 2, 2, 2, 5368, 5370, 7, 121, 2, 2, 5369, 5371, 5, 490, 246, 2, 5370, 5369, 3, 2, 2, 2, 5370, 5371, 3, 2, 2, 2, 5371, 5372, 3, 2, 2, 2, 5372, 5373, 5, 526, 264, 2, 5373, 5383, 7, 178, 2, 2, 5374, 5379, 5, 502, 252, 2, 5375, 5376, 7, 870, 2, 2, 5376, 5378, 5, 502, 252, 2, 5377, 5375, 3, 2, 2, 2, 5378, 5381, 3, 2, 2, 2, 5379, 5377, 3, 2, 2, 2, 5379, 5380, 3, 2, 2, 2, 5380, 5384, 3, 2, 2, 2, 5381, 5379, 3, 2, 2, 2, 5382, 5384, 5, 658, 330, 2, 5383, 5374, 3, 2, 2, 2, 5383, 5382, 3, 2, 2, 2, 5384, 5399, 3, 2, 2, 2, 5385, 5397, 7, 146, 2, 2, 5386, 5398, 7, 507, 2, 2, 5387, 5394, 5, 508, 255, 2, 5388, 5390, 7, 13, 2, 2, 5389, 5388, 3, 2, 2, 2, 5389, 5390, 3, 2, 2, 2, 5390, 5391, 3, 2, 2, 2, 5391, 5393, 5, 508, 255, 2, 5392, 5389, 3, 2, 2, 2, 5393, 5396, 3, 2, 2, 2, 5394, 5392, 3, 2, 2, 2, 5394, 5395, 3, 2, 2, 2, 5395, 5398, 3, 2, 2, 2, 5396, 5394, 3, 2, 2, 2, 5397, 5386, 3, 2, 2, 2, 5397, 5387, 3, 2, 2, 2, 5398, 5400, 3, 2, 2, 2, 5399, 5385, 3, 2, 2, 2, 5399, 5400, 3, 2, 2, 2, 5400, 5410, 3, 2, 2, 2, 5401, 5407, 7, 196, 2, 2, 5402, 5403, 7, 75, 2, 2, 5403, 5406, 7, 123, 2, 2, 5404, 5406, 5, 510, 256, 2, 5405, 5402, 3, 2, 2, 2, 5405, 5404, 3, 2, 2, 2, 5406, 5409, 3, 2, 2, 2, 5407, 5405, 3, 2, 2, 2, 5407, 5408, 3, 2, 2, 2, 5408, 5411, 3, 2, 2, 2, 5409, 5407, 3, 2, 2, 2, 5410, 5401, 3, 2, 2, 2, 5410, 5411, 3, 2, 2, 2, 5411, 5419, 3, 2, 2, 2, 5412, 5413, 7, 15, 2, 2, 5413, 5417, 5, 688, 345, 2, 5414, 5415, 7, 196, 2, 2, 5415, 5416, 7, 584, 2, 2, 5416, 5418, 5, 470, 236, 2, 5417, 5414, 3, 2, 2, 2, 5417, 5418, 3, 2, 2, 2, 5418, 5420, 3, 2, 2, 2, 5419, 5412, 3, 2, 2, 2, 5419, 5420, 3, 2, 2, 2, 5420, 5449, 3, 2, 2, 2, 5421, 5424, 7, 75, 2, 2, 5422, 5423, 7, 549, 2, 2, 5423, 5425, 7, 121, 2, 2, 5424, 5422, 3, 2, 2, 2, 5424, 5425, 3, 2, 2, 2, 5425, 5426, 3, 2, 2, 2, 5426, 5431, 5, 660, 331, 2, 5427, 5428, 7, 870, 2, 2, 5428, 5430, 5, 660, 331, 2, 5429, 5427, 3, 2, 2, 2, 5430, 5433, 3, 2, 2, 2, 5431, 5429, 3, 2, 2, 2, 5431, 5432, 3, 2, 2, 2, 5432, 5434, 3, 2, 2, 2, 5433, 5431, 3, 2, 2, 2, 5434, 5435, 7, 178, 2, 2, 5435, 5440, 5, 660, 331, 2, 5436, 5437, 7, 870, 2, 2, 5437, 5439, 5, 660, 331, 2, 5438, 5436, 3, 2, 2, 2, 5439, 5442, 3, 2, 2, 2, 5440, 5438, 3, 2, 2, 2, 5440, 5441, 3, 2, 2, 2, 5441, 5446, 3, 2, 2, 2, 5442, 5440, 3, 2, 2, 2, 5443, 5444, 7, 196, 2, 2, 5444, 5445, 7, 706, 2, 2, 5445, 5447, 7, 123, 2, 2, 5446, 5443, 3, 2, 2, 2, 5446, 5447, 3, 2, 2, 2, 5447, 5449, 3, 2, 2, 2, 5448, 5359, 3, 2, 2, 2, 5448, 5421, 3, 2, 2, 2, 5449, 469, 3, 2, 2, 2, 5450, 5459, 7, 44, 2, 2, 5451, 5459, 7, 507, 2, 2, 5452, 5455, 7, 9, 2, 2, 5453, 5454, 7, 61, 2, 2, 5454, 5456, 5, 658, 330, 2, 5455, 5453, 3, 2, 2, 2, 5455, 5456, 3, 2, 2, 2, 5456, 5459, 3, 2, 2, 2, 5457, 5459, 5, 658, 330, 2, 5458, 5450, 3, 2, 2, 2, 5458, 5451, 3, 2, 2, 2, 5458, 5452, 3, 2, 2, 2, 5458, 5457, 3, 2, 2, 2, 5459, 471, 3, 2, 2, 2, 5460, 5461, 7, 75, 2, 2, 5461, 5462, 7, 549, 2, 2, 5462, 5463, 7, 121, 2, 2, 5463, 5464, 5, 688, 345, 2, 5464, 5465, 7, 178, 2, 2, 5465, 5470, 5, 688, 345, 2, 5466, 5467, 7, 870, 2, 2, 5467, 5469, 5, 688, 345, 2, 5468, 5466, 3, 2, 2, 2, 5469, 5472, 3, 2, 2, 2, 5470, 5468, 3, 2, 2, 2, 5470, 5471, 3, 2, 2, 2, 5471, 5476, 3, 2, 2, 2, 5472, 5470, 3, 2, 2, 2, 5473, 5474, 7, 196, 2, 2, 5474, 5475, 7, 75, 2, 2, 5475, 5477, 7, 123, 2, 2, 5476, 5473, 3, 2, 2, 2, 5476, 5477, 3, 2, 2, 2, 5477, 473, 3, 2, 2, 2, 5478, 5479, 7, 10, 2, 2, 5479, 5480, 7, 741, 2, 2, 5480, 5481, 7, 76, 2, 2, 5481, 5487, 5, 650, 326, 2, 5482, 5484, 7, 192, 2, 2, 5483, 5485, 7, 859, 2, 2, 5484, 5483, 3, 2, 2, 2, 5484, 5485, 3, 2, 2, 2, 5485, 5486, 3, 2, 2, 2, 5486, 5488, 5, 482, 242, 2, 5487, 5482, 3, 2, 2, 2, 5487, 5488, 3, 2, 2, 2, 5488, 5494, 3, 2, 2, 2, 5489, 5491, 7, 839, 2, 2, 5490, 5492, 7, 859, 2, 2, 5491, 5490, 3, 2, 2, 2, 5491, 5492, 3, 2, 2, 2, 5492, 5493, 3, 2, 2, 2, 5493, 5495, 5, 716, 359, 2, 5494, 5489, 3, 2, 2, 2, 5494, 5495, 3, 2, 2, 2, 5495, 5500, 3, 2, 2, 2, 5496, 5498, 9, 40, 2, 2, 5497, 5499, 7, 68, 2, 2, 5498, 5497, 3, 2, 2, 2, 5498, 5499, 3, 2, 2, 2, 5499, 5501, 3, 2, 2, 2, 5500, 5496, 3, 2, 2, 2, 5500, 5501, 3, 2, 2, 2, 5501, 475, 3, 2, 2, 2, 5502, 5503, 7, 36, 2, 2, 5503, 5504, 7, 741, 2, 2, 5504, 5505, 7, 76, 2, 2, 5505, 5506, 5, 648, 325, 2, 5506, 5507, 7, 841, 2, 2, 5507, 5508, 7, 859, 2, 2, 5508, 5514, 9, 82, 2, 2, 5509, 5511, 7, 192, 2, 2, 5510, 5512, 7, 859, 2, 2, 5511, 5510, 3, 2, 2, 2, 5511, 5512, 3, 2, 2, 2, 5512, 5513, 3, 2, 2, 2, 5513, 5515, 5, 482, 242, 2, 5514, 5509, 3, 2, 2, 2, 5514, 5515, 3, 2, 2, 2, 5515, 5521, 3, 2, 2, 2, 5516, 5518, 7, 839, 2, 2, 5517, 5519, 7, 859, 2, 2, 5518, 5517, 3, 2, 2, 2, 5518, 5519, 3, 2, 2, 2, 5519, 5520, 3, 2, 2, 2, 5520, 5522, 5, 716, 359, 2, 5521, 5516, 3, 2, 2, 2, 5521, 5522, 3, 2, 2, 2, 5522, 5524, 3, 2, 2, 2, 5523, 5525, 9, 40, 2, 2, 5524, 5523, 3, 2, 2, 2, 5524, 5525, 3, 2, 2, 2, 5525, 477, 3, 2, 2, 2, 5526, 5527, 7, 53, 2, 2, 5527, 5528, 7, 741, 2, 2, 5528, 5529, 7, 76, 2, 2, 5529, 5531, 5, 650, 326, 2, 5530, 5532, 7, 68, 2, 2, 5531, 5530, 3, 2, 2, 2, 5531, 5532, 3, 2, 2, 2, 5532, 479, 3, 2, 2, 2, 5533, 5534, 7, 157, 2, 2, 5534, 5535, 7, 741, 2, 2, 5535, 5536, 7, 76, 2, 2, 5536, 5546, 5, 650, 326, 2, 5537, 5538, 7, 67, 2, 2, 5538, 5543, 5, 716, 359, 2, 5539, 5540, 7, 870, 2, 2, 5540, 5542, 5, 716, 359, 2, 5541, 5539, 3, 2, 2, 2, 5542, 5545, 3, 2, 2, 2, 5543, 5541, 3, 2, 2, 2, 5543, 5544, 3, 2, 2, 2, 5544, 5547, 3, 2, 2, 2, 5545, 5543, 3, 2, 2, 2, 5546, 5537, 3, 2, 2, 2, 5546, 5547, 3, 2, 2, 2, 5547, 481, 3, 2, 2, 2, 5548, 5554, 5, 716, 359, 2, 5549, 5550, 5, 716, 359, 2, 5550, 5551, 7, 856, 2, 2, 5551, 5552, 5, 716, 359, 2, 5552, 5554, 3, 2, 2, 2, 5553, 5548, 3, 2, 2, 2, 5553, 5549, 3, 2, 2, 2, 5554, 5559, 3, 2, 2, 2, 5555, 5556, 7, 870, 2, 2, 5556, 5558, 5, 482, 242, 2, 5557, 5555, 3, 2, 2, 2, 5558, 5561, 3, 2, 2, 2, 5559, 5557, 3, 2, 2, 2, 5559, 5560, 3, 2, 2, 2, 5560, 483, 3, 2, 2, 2, 5561, 5559, 3, 2, 2, 2, 5562, 5563, 7, 143, 2, 2, 5563, 5564, 7, 680, 2, 2, 5564, 5569, 5, 528, 265, 2, 5565, 5566, 7, 870, 2, 2, 5566, 5568, 5, 528, 265, 2, 5567, 5565, 3, 2, 2, 2, 5568, 5571, 3, 2, 2, 2, 5569, 5567, 3, 2, 2, 2, 5569, 5570, 3, 2, 2, 2, 5570, 485, 3, 2, 2, 2, 5571, 5569, 3, 2, 2, 2, 5572, 5574, 7, 151, 2, 2, 5573, 5575, 5, 762, 382, 2, 5574, 5573, 3, 2, 2, 2, 5574, 5575, 3, 2, 2, 2, 5575, 5576, 3, 2, 2, 2, 5576, 5581, 5, 522, 262, 2, 5577, 5578, 7, 870, 2, 2, 5578, 5580, 5, 522, 262, 2, 5579, 5577, 3, 2, 2, 2, 5580, 5583, 3, 2, 2, 2, 5581, 5579, 3, 2, 2, 2, 5581, 5582, 3, 2, 2, 2, 5582, 5584, 3, 2, 2, 2, 5583, 5581, 3, 2, 2, 2, 5584, 5586, 7, 121, 2, 2, 5585, 5587, 5, 490, 246, 2, 5586, 5585, 3, 2, 2, 2, 5586, 5587, 3, 2, 2, 2, 5587, 5588, 3, 2, 2, 2, 5588, 5589, 5, 526, 264, 2, 5589, 5590, 7, 70, 2, 2, 5590, 5592, 5, 658, 330, 2, 5591, 5593, 5, 488, 245, 2, 5592, 5591, 3, 2, 2, 2, 5592, 5593, 3, 2, 2, 2, 5593, 5625, 3, 2, 2, 2, 5594, 5596, 7, 151, 2, 2, 5595, 5597, 5, 762, 382, 2, 5596, 5595, 3, 2, 2, 2, 5596, 5597, 3, 2, 2, 2, 5597, 5598, 3, 2, 2, 2, 5598, 5600, 7, 9, 2, 2, 5599, 5601, 7, 736, 2, 2, 5600, 5599, 3, 2, 2, 2, 5600, 5601, 3, 2, 2, 2, 5601, 5602, 3, 2, 2, 2, 5602, 5603, 7, 870, 2, 2, 5603, 5604, 7, 75, 2, 2, 5604, 5605, 7, 123, 2, 2, 5605, 5606, 7, 70, 2, 2, 5606, 5608, 5, 658, 330, 2, 5607, 5609, 5, 488, 245, 2, 5608, 5607, 3, 2, 2, 2, 5608, 5609, 3, 2, 2, 2, 5609, 5625, 3, 2, 2, 2, 5610, 5612, 7, 151, 2, 2, 5611, 5613, 5, 762, 382, 2, 5612, 5611, 3, 2, 2, 2, 5612, 5613, 3, 2, 2, 2, 5613, 5616, 3, 2, 2, 2, 5614, 5615, 7, 549, 2, 2, 5615, 5617, 7, 121, 2, 2, 5616, 5614, 3, 2, 2, 2, 5616, 5617, 3, 2, 2, 2, 5617, 5618, 3, 2, 2, 2, 5618, 5619, 5, 658, 330, 2, 5619, 5620, 7, 70, 2, 2, 5620, 5622, 5, 658, 330, 2, 5621, 5623, 5, 488, 245, 2, 5622, 5621, 3, 2, 2, 2, 5622, 5623, 3, 2, 2, 2, 5623, 5625, 3, 2, 2, 2, 5624, 5572, 3, 2, 2, 2, 5624, 5594, 3, 2, 2, 2, 5624, 5610, 3, 2, 2, 2, 5625, 487, 3, 2, 2, 2, 5626, 5627, 7, 81, 2, 2, 5627, 5628, 7, 676, 2, 2, 5628, 5629, 7, 680, 2, 2, 5629, 489, 3, 2, 2, 2, 5630, 5631, 9, 83, 2, 2, 5631, 491, 3, 2, 2, 2, 5632, 5633, 7, 157, 2, 2, 5633, 5636, 7, 531, 2, 2, 5634, 5635, 7, 67, 2, 2, 5635, 5637, 5, 688, 345, 2, 5636, 5634, 3, 2, 2, 2, 5636, 5637, 3, 2, 2, 2, 5637, 5638, 3, 2, 2, 2, 5638, 5641, 7, 859, 2, 2, 5639, 5642, 5, 802, 402, 2, 5640, 5642, 7, 884, 2, 2, 5641, 5639, 3, 2, 2, 2, 5641, 5640, 3, 2, 2, 2, 5642, 5665, 3, 2, 2, 2, 5643, 5644, 7, 157, 2, 2, 5644, 5647, 7, 531, 2, 2, 5645, 5646, 7, 67, 2, 2, 5646, 5648, 5, 688, 345, 2, 5647, 5645, 3, 2, 2, 2, 5647, 5648, 3, 2, 2, 2, 5648, 5653, 3, 2, 2, 2, 5649, 5650, 7, 178, 2, 2, 5650, 5654, 7, 831, 2, 2, 5651, 5652, 7, 859, 2, 2, 5652, 5654, 7, 884, 2, 2, 5653, 5649, 3, 2, 2, 2, 5653, 5651, 3, 2, 2, 2, 5654, 5657, 3, 2, 2, 2, 5655, 5656, 7, 145, 2, 2, 5656, 5658, 7, 884, 2, 2, 5657, 5655, 3, 2, 2, 2, 5657, 5658, 3, 2, 2, 2, 5658, 5662, 3, 2, 2, 2, 5659, 5660, 7, 149, 2, 2, 5660, 5661, 7, 38, 2, 2, 5661, 5663, 7, 531, 2, 2, 5662, 5659, 3, 2, 2, 2, 5662, 5663, 3, 2, 2, 2, 5663, 5665, 3, 2, 2, 2, 5664, 5632, 3, 2, 2, 2, 5664, 5643, 3, 2, 2, 2, 5665, 493, 3, 2, 2, 2, 5666, 5667, 5, 688, 345, 2, 5667, 5668, 5, 512, 257, 2, 5668, 495, 3, 2, 2, 2, 5669, 5670, 5, 688, 345, 2, 5670, 5671, 7, 425, 2, 2, 5671, 5672, 7, 22, 2, 2, 5672, 5673, 7, 884, 2, 2, 5673, 5674, 5, 504, 253, 2, 5674, 5708, 3, 2, 2, 2, 5675, 5676, 5, 688, 345, 2, 5676, 5677, 7, 425, 2, 2, 5677, 5678, 7, 22, 2, 2, 5678, 5679, 7, 831, 2, 2, 5679, 5680, 7, 531, 2, 2, 5680, 5681, 5, 504, 253, 2, 5681, 5708, 3, 2, 2, 2, 5682, 5683, 5, 688, 345, 2, 5683, 5684, 7, 425, 2, 2, 5684, 5685, 7, 196, 2, 2, 5685, 5686, 5, 506, 254, 2, 5686, 5708, 3, 2, 2, 2, 5687, 5688, 5, 688, 345, 2, 5688, 5689, 7, 371, 2, 2, 5689, 5690, 7, 513, 2, 2, 5690, 5691, 7, 531, 2, 2, 5691, 5708, 3, 2, 2, 2, 5692, 5698, 5, 688, 345, 2, 5693, 5694, 9, 84, 2, 2, 5694, 5696, 5, 520, 261, 2, 5695, 5697, 5, 516, 259, 2, 5696, 5695, 3, 2, 2, 2, 5696, 5697, 3, 2, 2, 2, 5697, 5699, 3, 2, 2, 2, 5698, 5693, 3, 2, 2, 2, 5699, 5700, 3, 2, 2, 2, 5700, 5698, 3, 2, 2, 2, 5700, 5701, 3, 2, 2, 2, 5701, 5708, 3, 2, 2, 2, 5702, 5704, 5, 688, 345, 2, 5703, 5705, 5, 518, 260, 2, 5704, 5703, 3, 2, 2, 2, 5704, 5705, 3, 2, 2, 2, 5705, 5708, 3, 2, 2, 2, 5706, 5708, 5, 688, 345, 2, 5707, 5669, 3, 2, 2, 2, 5707, 5675, 3, 2, 2, 2, 5707, 5682, 3, 2, 2, 2, 5707, 5687, 3, 2, 2, 2, 5707, 5692, 3, 2, 2, 2, 5707, 5702, 3, 2, 2, 2, 5707, 5706, 3, 2, 2, 2, 5708, 497, 3, 2, 2, 2, 5709, 5710, 7, 425, 2, 2, 5710, 5716, 7, 22, 2, 2, 5711, 5717, 7, 884, 2, 2, 5712, 5713, 7, 831, 2, 2, 5713, 5717, 7, 531, 2, 2, 5714, 5715, 7, 531, 2, 2, 5715, 5717, 7, 884, 2, 2, 5716, 5711, 3, 2, 2, 2, 5716, 5712, 3, 2, 2, 2, 5716, 5714, 3, 2, 2, 2, 5717, 5720, 3, 2, 2, 2, 5718, 5719, 7, 13, 2, 2, 5719, 5721, 5, 498, 250, 2, 5720, 5718, 3, 2, 2, 2, 5720, 5721, 3, 2, 2, 2, 5721, 5746, 3, 2, 2, 2, 5722, 5723, 7, 425, 2, 2, 5723, 5724, 7, 196, 2, 2, 5724, 5733, 5, 710, 356, 2, 5725, 5729, 7, 22, 2, 2, 5726, 5730, 7, 884, 2, 2, 5727, 5728, 7, 831, 2, 2, 5728, 5730, 7, 531, 2, 2, 5729, 5726, 3, 2, 2, 2, 5729, 5727, 3, 2, 2, 2, 5730, 5734, 3, 2, 2, 2, 5731, 5732, 7, 15, 2, 2, 5732, 5734, 7, 884, 2, 2, 5733, 5725, 3, 2, 2, 2, 5733, 5731, 3, 2, 2, 2, 5733, 5734, 3, 2, 2, 2, 5734, 5737, 3, 2, 2, 2, 5735, 5736, 7, 13, 2, 2, 5736, 5738, 5, 498, 250, 2, 5737, 5735, 3, 2, 2, 2, 5737, 5738, 3, 2, 2, 2, 5738, 5746, 3, 2, 2, 2, 5739, 5740, 7, 425, 2, 2, 5740, 5741, 7, 196, 2, 2, 5741, 5743, 5, 710, 356, 2, 5742, 5744, 5, 500, 251, 2, 5743, 5742, 3, 2, 2, 2, 5743, 5744, 3, 2, 2, 2, 5744, 5746, 3, 2, 2, 2, 5745, 5709, 3, 2, 2, 2, 5745, 5722, 3, 2, 2, 2, 5745, 5739, 3, 2, 2, 2, 5746, 499, 3, 2, 2, 2, 5747, 5748, 7, 429, 2, 2, 5748, 5749, 7, 710, 2, 2, 5749, 5750, 7, 425, 2, 2, 5750, 5754, 7, 22, 2, 2, 5751, 5752, 7, 831, 2, 2, 5752, 5755, 7, 531, 2, 2, 5753, 5755, 7, 884, 2, 2, 5754, 5751, 3, 2, 2, 2, 5754, 5753, 3, 2, 2, 2, 5755, 5765, 3, 2, 2, 2, 5756, 5757, 7, 429, 2, 2, 5757, 5758, 7, 710, 2, 2, 5758, 5759, 7, 425, 2, 2, 5759, 5760, 7, 196, 2, 2, 5760, 5761, 5, 710, 356, 2, 5761, 5762, 7, 15, 2, 2, 5762, 5763, 7, 884, 2, 2, 5763, 5765, 3, 2, 2, 2, 5764, 5747, 3, 2, 2, 2, 5764, 5756, 3, 2, 2, 2, 5765, 501, 3, 2, 2, 2, 5766, 5767, 5, 688, 345, 2, 5767, 5768, 7, 425, 2, 2, 5768, 5769, 7, 22, 2, 2, 5769, 5770, 7, 531, 2, 2, 5770, 5771, 7, 884, 2, 2, 5771, 5792, 3, 2, 2, 2, 5772, 5773, 5, 688, 345, 2, 5773, 5774, 7, 425, 2, 2, 5774, 5775, 7, 22, 2, 2, 5775, 5776, 7, 831, 2, 2, 5776, 5777, 7, 531, 2, 2, 5777, 5778, 5, 504, 253, 2, 5778, 5792, 3, 2, 2, 2, 5779, 5780, 5, 688, 345, 2, 5780, 5781, 7, 425, 2, 2, 5781, 5782, 7, 22, 2, 2, 5782, 5783, 7, 884, 2, 2, 5783, 5784, 5, 504, 253, 2, 5784, 5792, 3, 2, 2, 2, 5785, 5786, 5, 688, 345, 2, 5786, 5787, 7, 425, 2, 2, 5787, 5788, 7, 196, 2, 2, 5788, 5789, 5, 506, 254, 2, 5789, 5792, 3, 2, 2, 2, 5790, 5792, 5, 688, 345, 2, 5791, 5766, 3, 2, 2, 2, 5791, 5772, 3, 2, 2, 2, 5791, 5779, 3, 2, 2, 2, 5791, 5785, 3, 2, 2, 2, 5791, 5790, 3, 2, 2, 2, 5792, 503, 3, 2, 2, 2, 5793, 5794, 7, 145, 2, 2, 5794, 5796, 7, 884, 2, 2, 5795, 5793, 3, 2, 2, 2, 5795, 5796, 3, 2, 2, 2, 5796, 5800, 3, 2, 2, 2, 5797, 5798, 7, 149, 2, 2, 5798, 5799, 7, 38, 2, 2, 5799, 5801, 7, 531, 2, 2, 5800, 5797, 3, 2, 2, 2, 5800, 5801, 3, 2, 2, 2, 5801, 505, 3, 2, 2, 2, 5802, 5810, 5, 710, 356, 2, 5803, 5807, 9, 85, 2, 2, 5804, 5808, 7, 884, 2, 2, 5805, 5806, 7, 831, 2, 2, 5806, 5808, 7, 531, 2, 2, 5807, 5804, 3, 2, 2, 2, 5807, 5805, 3, 2, 2, 2, 5808, 5809, 3, 2, 2, 2, 5809, 5811, 5, 504, 253, 2, 5810, 5803, 3, 2, 2, 2, 5810, 5811, 3, 2, 2, 2, 5811, 5817, 3, 2, 2, 2, 5812, 5813, 5, 710, 356, 2, 5813, 5814, 7, 190, 2, 2, 5814, 5815, 5, 802, 402, 2, 5815, 5817, 3, 2, 2, 2, 5816, 5802, 3, 2, 2, 2, 5816, 5812, 3, 2, 2, 2, 5817, 507, 3, 2, 2, 2, 5818, 5827, 7, 171, 2, 2, 5819, 5827, 7, 695, 2, 2, 5820, 5821, 7, 333, 2, 2, 5821, 5827, 7, 884, 2, 2, 5822, 5823, 7, 443, 2, 2, 5823, 5827, 7, 884, 2, 2, 5824, 5825, 7, 653, 2, 2, 5825, 5827, 7, 884, 2, 2, 5826, 5818, 3, 2, 2, 2, 5826, 5819, 3, 2, 2, 2, 5826, 5820, 3, 2, 2, 2, 5826, 5822, 3, 2, 2, 2, 5826, 5824, 3, 2, 2, 2, 5827, 509, 3, 2, 2, 2, 5828, 5829, 7, 481, 2, 2, 5829, 5837, 5, 716, 359, 2, 5830, 5831, 7, 484, 2, 2, 5831, 5837, 5, 716, 359, 2, 5832, 5833, 7, 480, 2, 2, 5833, 5837, 5, 716, 359, 2, 5834, 5835, 7, 485, 2, 2, 5835, 5837, 5, 716, 359, 2, 5836, 5828, 3, 2, 2, 2, 5836, 5830, 3, 2, 2, 2, 5836, 5832, 3, 2, 2, 2, 5836, 5834, 3, 2, 2, 2, 5837, 511, 3, 2, 2, 2, 5838, 5839, 7, 531, 2, 2, 5839, 5846, 7, 392, 2, 2, 5840, 5847, 7, 44, 2, 2, 5841, 5847, 7, 502, 2, 2, 5842, 5843, 7, 89, 2, 2, 5843, 5844, 5, 716, 359, 2, 5844, 5845, 7, 700, 2, 2, 5845, 5847, 3, 2, 2, 2, 5846, 5840, 3, 2, 2, 2, 5846, 5841, 3, 2, 2, 2, 5846, 5842, 3, 2, 2, 2, 5846, 5847, 3, 2, 2, 2, 5847, 5877, 3, 2, 2, 2, 5848, 5849, 7, 531, 2, 2, 5849, 5852, 7, 422, 2, 2, 5850, 5853, 7, 44, 2, 2, 5851, 5853, 5, 716, 359, 2, 5852, 5850, 3, 2, 2, 2, 5852, 5851, 3, 2, 2, 2, 5853, 5877, 3, 2, 2, 2, 5854, 5855, 7, 531, 2, 2, 5855, 5856, 7, 583, 2, 2, 5856, 5861, 7, 89, 2, 2, 5857, 5862, 7, 44, 2, 2, 5858, 5859, 5, 716, 359, 2, 5859, 5860, 7, 700, 2, 2, 5860, 5862, 3, 2, 2, 2, 5861, 5857, 3, 2, 2, 2, 5861, 5858, 3, 2, 2, 2, 5862, 5877, 3, 2, 2, 2, 5863, 5864, 7, 531, 2, 2, 5864, 5865, 7, 146, 2, 2, 5865, 5867, 7, 38, 2, 2, 5866, 5868, 9, 86, 2, 2, 5867, 5866, 3, 2, 2, 2, 5867, 5868, 3, 2, 2, 2, 5868, 5877, 3, 2, 2, 2, 5869, 5870, 7, 397, 2, 2, 5870, 5877, 5, 716, 359, 2, 5871, 5874, 7, 532, 2, 2, 5872, 5875, 5, 716, 359, 2, 5873, 5875, 7, 671, 2, 2, 5874, 5872, 3, 2, 2, 2, 5874, 5873, 3, 2, 2, 2, 5875, 5877, 3, 2, 2, 2, 5876, 5838, 3, 2, 2, 2, 5876, 5848, 3, 2, 2, 2, 5876, 5854, 3, 2, 2, 2, 5876, 5863, 3, 2, 2, 2, 5876, 5869, 3, 2, 2, 2, 5876, 5871, 3, 2, 2, 2, 5877, 513, 3, 2, 2, 2, 5878, 5879, 7, 306, 2, 2, 5879, 5880, 9, 87, 2, 2, 5880, 515, 3, 2, 2, 2, 5881, 5884, 7, 425, 2, 2, 5882, 5883, 7, 196, 2, 2, 5883, 5885, 5, 710, 356, 2, 5884, 5882, 3, 2, 2, 2, 5884, 5885, 3, 2, 2, 2, 5885, 5894, 3, 2, 2, 2, 5886, 5890, 7, 22, 2, 2, 5887, 5891, 7, 884, 2, 2, 5888, 5889, 7, 831, 2, 2, 5889, 5891, 7, 531, 2, 2, 5890, 5887, 3, 2, 2, 2, 5890, 5888, 3, 2, 2, 2, 5891, 5895, 3, 2, 2, 2, 5892, 5893, 7, 15, 2, 2, 5893, 5895, 7, 884, 2, 2, 5894, 5886, 3, 2, 2, 2, 5894, 5892, 3, 2, 2, 2, 5895, 517, 3, 2, 2, 2, 5896, 5897, 5, 520, 261, 2, 5897, 5898, 7, 431, 2, 2, 5898, 5899, 7, 557, 2, 2, 5899, 5912, 3, 2, 2, 2, 5900, 5901, 5, 520, 261, 2, 5901, 5902, 7, 403, 2, 2, 5902, 5903, 7, 557, 2, 2, 5903, 5904, 7, 157, 2, 2, 5904, 5905, 7, 332, 2, 2, 5905, 5906, 7, 15, 2, 2, 5906, 5907, 7, 884, 2, 2, 5907, 5912, 3, 2, 2, 2, 5908, 5909, 5, 520, 261, 2, 5909, 5910, 7, 677, 2, 2, 5910, 5912, 3, 2, 2, 2, 5911, 5896, 3, 2, 2, 2, 5911, 5900, 3, 2, 2, 2, 5911, 5908, 3, 2, 2, 2, 5912, 519, 3, 2, 2, 2, 5913, 5914, 9, 88, 2, 2, 5914, 5915, 7, 396, 2, 2, 5915, 521, 3, 2, 2, 2, 5916, 5921, 5, 524, 263, 2, 5917, 5918, 7, 868, 2, 2, 5918, 5919, 5, 664, 333, 2, 5919, 5920, 7, 869, 2, 2, 5920, 5922, 3, 2, 2, 2, 5921, 5917, 3, 2, 2, 2, 5921, 5922, 3, 2, 2, 2, 5922, 523, 3, 2, 2, 2, 5923, 5925, 7, 9, 2, 2, 5924, 5926, 7, 736, 2, 2, 5925, 5924, 3, 2, 2, 2, 5925, 5926, 3, 2, 2, 2, 5926, 6017, 3, 2, 2, 2, 5927, 5929, 7, 10, 2, 2, 5928, 5930, 7, 745, 2, 2, 5929, 5928, 3, 2, 2, 2, 5929, 5930, 3, 2, 2, 2, 5930, 6017, 3, 2, 2, 2, 5931, 5939, 7, 36, 2, 2, 5932, 5933, 7, 662, 2, 2, 5933, 5940, 7, 754, 2, 2, 5934, 5940, 7, 745, 2, 2, 5935, 5940, 7, 686, 2, 2, 5936, 5940, 7, 680, 2, 2, 5937, 5940, 7, 660, 2, 2, 5938, 5940, 7, 584, 2, 2, 5939, 5932, 3, 2, 2, 2, 5939, 5934, 3, 2, 2, 2, 5939, 5935, 3, 2, 2, 2, 5939, 5936, 3, 2, 2, 2, 5939, 5937, 3, 2, 2, 2, 5939, 5938, 3, 2, 2, 2, 5939, 5940, 3, 2, 2, 2, 5940, 6017, 3, 2, 2, 2, 5941, 6017, 7, 46, 2, 2, 5942, 5944, 7, 53, 2, 2, 5943, 5945, 7, 584, 2, 2, 5944, 5943, 3, 2, 2, 2, 5944, 5945, 3, 2, 2, 2, 5945, 6017, 3, 2, 2, 2, 5946, 6017, 7, 387, 2, 2, 5947, 6017, 7, 719, 2, 2, 5948, 6017, 7, 720, 2, 2, 5949, 5950, 7, 75, 2, 2, 5950, 6017, 7, 123, 2, 2, 5951, 6017, 7, 84, 2, 2, 5952, 6017, 7, 88, 2, 2, 5953, 5954, 7, 106, 2, 2, 5954, 6017, 7, 754, 2, 2, 5955, 6017, 7, 737, 2, 2, 5956, 6017, 7, 549, 2, 2, 5957, 6017, 7, 140, 2, 2, 5958, 6017, 7, 738, 2, 2, 5959, 5960, 7, 574, 2, 2, 5960, 6017, 9, 89, 2, 2, 5961, 6017, 7, 156, 2, 2, 5962, 5963, 7, 159, 2, 2, 5963, 6017, 9, 90, 2, 2, 5964, 6017, 7, 751, 2, 2, 5965, 6017, 7, 752, 2, 2, 5966, 6017, 7, 180, 2, 2, 5967, 6017, 7, 187, 2, 2, 5968, 6017, 7, 188, 2, 2, 5969, 6017, 7, 707, 2, 2, 5970, 6017, 7, 708, 2, 2, 5971, 6017, 7, 709, 2, 2, 5972, 6017, 7, 711, 2, 2, 5973, 6017, 7, 712, 2, 2, 5974, 6017, 7, 713, 2, 2, 5975, 6017, 7, 714, 2, 2, 5976, 6017, 7, 716, 2, 2, 5977, 6017, 7, 717, 2, 2, 5978, 6017, 7, 718, 2, 2, 5979, 6017, 7, 721, 2, 2, 5980, 6017, 7, 722, 2, 2, 5981, 6017, 7, 723, 2, 2, 5982, 6017, 7, 724, 2, 2, 5983, 6017, 7, 725, 2, 2, 5984, 6017, 7, 726, 2, 2, 5985, 6017, 7, 727, 2, 2, 5986, 6017, 7, 728, 2, 2, 5987, 6017, 7, 729, 2, 2, 5988, 6017, 7, 730, 2, 2, 5989, 6017, 7, 733, 2, 2, 5990, 6017, 7, 734, 2, 2, 5991, 6017, 7, 735, 2, 2, 5992, 6017, 7, 739, 2, 2, 5993, 6017, 7, 740, 2, 2, 5994, 6017, 7, 742, 2, 2, 5995, 6017, 7, 743, 2, 2, 5996, 6017, 7, 744, 2, 2, 5997, 6017, 7, 747, 2, 2, 5998, 6017, 7, 748, 2, 2, 5999, 6017, 7, 749, 2, 2, 6000, 6017, 7, 162, 2, 2, 6001, 6017, 7, 750, 2, 2, 6002, 6017, 7, 838, 2, 2, 6003, 6017, 7, 753, 2, 2, 6004, 6017, 7, 755, 2, 2, 6005, 6017, 7, 840, 2, 2, 6006, 6017, 7, 756, 2, 2, 6007, 6017, 7, 757, 2, 2, 6008, 6009, 7, 105, 2, 2, 6009, 6010, 7, 70, 2, 2, 6010, 6017, 7, 746, 2, 2, 6011, 6012, 7, 156, 2, 2, 6012, 6013, 7, 90, 2, 2, 6013, 6017, 7, 746, 2, 2, 6014, 6015, 7, 731, 2, 2, 6015, 6017, 7, 732, 2, 2, 6016, 5923, 3, 2, 2, 2, 6016, 5927, 3, 2, 2, 2, 6016, 5931, 3, 2, 2, 2, 6016, 5941, 3, 2, 2, 2, 6016, 5942, 3, 2, 2, 2, 6016, 5946, 3, 2, 2, 2, 6016, 5947, 3, 2, 2, 2, 6016, 5948, 3, 2, 2, 2, 6016, 5949, 3, 2, 2, 2, 6016, 5951, 3, 2, 2, 2, 6016, 5952, 3, 2, 2, 2, 6016, 5953, 3, 2, 2, 2, 6016, 5955, 3, 2, 2, 2, 6016, 5956, 3, 2, 2, 2, 6016, 5957, 3, 2, 2, 2, 6016, 5958, 3, 2, 2, 2, 6016, 5959, 3, 2, 2, 2, 6016, 5961, 3, 2, 2, 2, 6016, 5962, 3, 2, 2, 2, 6016, 5964, 3, 2, 2, 2, 6016, 5965, 3, 2, 2, 2, 6016, 5966, 3, 2, 2, 2, 6016, 5967, 3, 2, 2, 2, 6016, 5968, 3, 2, 2, 2, 6016, 5969, 3, 2, 2, 2, 6016, 5970, 3, 2, 2, 2, 6016, 5971, 3, 2, 2, 2, 6016, 5972, 3, 2, 2, 2, 6016, 5973, 3, 2, 2, 2, 6016, 5974, 3, 2, 2, 2, 6016, 5975, 3, 2, 2, 2, 6016, 5976, 3, 2, 2, 2, 6016, 5977, 3, 2, 2, 2, 6016, 5978, 3, 2, 2, 2, 6016, 5979, 3, 2, 2, 2, 6016, 5980, 3, 2, 2, 2, 6016, 5981, 3, 2, 2, 2, 6016, 5982, 3, 2, 2, 2, 6016, 5983, 3, 2, 2, 2, 6016, 5984, 3, 2, 2, 2, 6016, 5985, 3, 2, 2, 2, 6016, 5986, 3, 2, 2, 2, 6016, 5987, 3, 2, 2, 2, 6016, 5988, 3, 2, 2, 2, 6016, 5989, 3, 2, 2, 2, 6016, 5990, 3, 2, 2, 2, 6016, 5991, 3, 2, 2, 2, 6016, 5992, 3, 2, 2, 2, 6016, 5993, 3, 2, 2, 2, 6016, 5994, 3, 2, 2, 2, 6016, 5995, 3, 2, 2, 2, 6016, 5996, 3, 2, 2, 2, 6016, 5997, 3, 2, 2, 2, 6016, 5998, 3, 2, 2, 2, 6016, 5999, 3, 2, 2, 2, 6016, 6000, 3, 2, 2, 2, 6016, 6001, 3, 2, 2, 2, 6016, 6002, 3, 2, 2, 2, 6016, 6003, 3, 2, 2, 2, 6016, 6004, 3, 2, 2, 2, 6016, 6005, 3, 2, 2, 2, 6016, 6006, 3, 2, 2, 2, 6016, 6007, 3, 2, 2, 2, 6016, 6008, 3, 2, 2, 2, 6016, 6011, 3, 2, 2, 2, 6016, 6014, 3, 2, 2, 2, 6017, 525, 3, 2, 2, 2, 6018, 6035, 7, 852, 2, 2, 6019, 6020, 7, 852, 2, 2, 6020, 6021, 7, 867, 2, 2, 6021, 6035, 7, 852, 2, 2, 6022, 6023, 5, 710, 356, 2, 6023, 6024, 7, 867, 2, 2, 6024, 6025, 7, 852, 2, 2, 6025, 6035, 3, 2, 2, 2, 6026, 6027, 5, 710, 356, 2, 6027, 6028, 7, 867, 2, 2, 6028, 6029, 5, 710, 356, 2, 6029, 6035, 3, 2, 2, 2, 6030, 6031, 5, 710, 356, 2, 6031, 6032, 5, 714, 358, 2, 6032, 6035, 3, 2, 2, 2, 6033, 6035, 5, 710, 356, 2, 6034, 6018, 3, 2, 2, 2, 6034, 6019, 3, 2, 2, 2, 6034, 6022, 3, 2, 2, 2, 6034, 6026, 3, 2, 2, 2, 6034, 6030, 3, 2, 2, 2, 6034, 6033, 3, 2, 2, 2, 6035, 527, 3, 2, 2, 2, 6036, 6037, 5, 688, 345, 2, 6037, 6038, 7, 178, 2, 2, 6038, 6039, 5, 688, 345, 2, 6039, 529, 3, 2, 2, 2, 6040, 6042, 7, 12, 2, 2, 6041, 6043, 5, 540, 271, 2, 6042, 6041, 3, 2, 2, 2, 6042, 6043, 3, 2, 2, 2, 6043, 6044, 3, 2, 2, 2, 6044, 6045, 7, 175, 2, 2, 6045, 6089, 5, 654, 328, 2, 6046, 6048, 7, 12, 2, 2, 6047, 6049, 5, 540, 271, 2, 6048, 6047, 3, 2, 2, 2, 6048, 6049, 3, 2, 2, 2, 6049, 6050, 3, 2, 2, 2, 6050, 6051, 7, 175, 2, 2, 6051, 6052, 5, 656, 329, 2, 6052, 6053, 7, 187, 2, 2, 6053, 6054, 7, 79, 2, 2, 6054, 6055, 7, 121, 2, 2, 6055, 6060, 5, 664, 333, 2, 6056, 6057, 7, 196, 2, 2, 6057, 6058, 5, 716, 359, 2, 6058, 6059, 7, 21, 2, 2, 6059, 6061, 3, 2, 2, 2, 6060, 6056, 3, 2, 2, 2, 6060, 6061, 3, 2, 2, 2, 6061, 6089, 3, 2, 2, 2, 6062, 6064, 7, 12, 2, 2, 6063, 6065, 5, 540, 271, 2, 6064, 6063, 3, 2, 2, 2, 6064, 6065, 3, 2, 2, 2, 6065, 6066, 3, 2, 2, 2, 6066, 6067, 7, 175, 2, 2, 6067, 6068, 5, 656, 329, 2, 6068, 6069, 7, 187, 2, 2, 6069, 6070, 7, 79, 2, 2, 6070, 6071, 7, 121, 2, 2, 6071, 6075, 5, 666, 334, 2, 6072, 6073, 7, 190, 2, 2, 6073, 6074, 7, 362, 2, 2, 6074, 6076, 7, 884, 2, 2, 6075, 6072, 3, 2, 2, 2, 6075, 6076, 3, 2, 2, 2, 6076, 6089, 3, 2, 2, 2, 6077, 6079, 7, 12, 2, 2, 6078, 6080, 5, 540, 271, 2, 6079, 6078, 3, 2, 2, 2, 6079, 6080, 3, 2, 2, 2, 6080, 6081, 3, 2, 2, 2, 6081, 6082, 7, 175, 2, 2, 6082, 6083, 5, 656, 329, 2, 6083, 6084, 7, 53, 2, 2, 6084, 6085, 7, 79, 2, 2, 6085, 6086, 7, 121, 2, 2, 6086, 6087, 5, 664, 333, 2, 6087, 6089, 3, 2, 2, 2, 6088, 6040, 3, 2, 2, 2, 6088, 6046, 3, 2, 2, 2, 6088, 6062, 3, 2, 2, 2, 6088, 6077, 3, 2, 2, 2, 6089, 531, 3, 2, 2, 2, 6090, 6091, 7, 29, 2, 2, 6091, 6092, 7, 175, 2, 2, 6092, 6096, 5, 654, 328, 2, 6093, 6095, 5, 542, 272, 2, 6094, 6093, 3, 2, 2, 2, 6095, 6098, 3, 2, 2, 2, 6096, 6094, 3, 2, 2, 2, 6096, 6097, 3, 2, 2, 2, 6097, 533, 3, 2, 2, 2, 6098, 6096, 3, 2, 2, 2, 6099, 6100, 7, 331, 2, 2, 6100, 6101, 7, 175, 2, 2, 6101, 6103, 5, 654, 328, 2, 6102, 6104, 9, 91, 2, 2, 6103, 6102, 3, 2, 2, 2, 6103, 6104, 3, 2, 2, 2, 6104, 535, 3, 2, 2, 2, 6105, 6107, 7, 122, 2, 2, 6106, 6108, 5, 540, 271, 2, 6107, 6106, 3, 2, 2, 2, 6107, 6108, 3, 2, 2, 2, 6108, 6109, 3, 2, 2, 2, 6109, 6110, 9, 62, 2, 2, 6110, 6111, 5, 654, 328, 2, 6111, 537, 3, 2, 2, 2, 6112, 6114, 7, 564, 2, 2, 6113, 6115, 5, 540, 271, 2, 6114, 6113, 3, 2, 2, 2, 6114, 6115, 3, 2, 2, 2, 6115, 6116, 3, 2, 2, 2, 6116, 6117, 7, 175, 2, 2, 6117, 6119, 5, 654, 328, 2, 6118, 6120, 7, 551, 2, 2, 6119, 6118, 3, 2, 2, 2, 6119, 6120, 3, 2, 2, 2, 6120, 6122, 3, 2, 2, 2, 6121, 6123, 7, 394, 2, 2, 6122, 6121, 3, 2, 2, 2, 6122, 6123, 3, 2, 2, 2, 6123, 6125, 3, 2, 2, 2, 6124, 6126, 7, 681, 2, 2, 6125, 6124, 3, 2, 2, 2, 6125, 6126, 3, 2, 2, 2, 6126, 539, 3, 2, 2, 2, 6127, 6128, 9, 92, 2, 2, 6128, 541, 3, 2, 2, 2, 6129, 6130, 7, 67, 2, 2, 6130, 6137, 7, 679, 2, 2, 6131, 6137, 7, 551, 2, 2, 6132, 6137, 7, 398, 2, 2, 6133, 6137, 7, 486, 2, 2, 6134, 6137, 7, 394, 2, 2, 6135, 6137, 7, 329, 2, 2, 6136, 6129, 3, 2, 2, 2, 6136, 6131, 3, 2, 2, 2, 6136, 6132, 3, 2, 2, 2, 6136, 6133, 3, 2, 2, 2, 6136, 6134, 3, 2, 2, 2, 6136, 6135, 3, 2, 2, 2, 6137, 543, 3, 2, 2, 2, 6138, 6140, 7, 36, 2, 2, 6139, 6141, 7, 309, 2, 2, 6140, 6139, 3, 2, 2, 2, 6140, 6141, 3, 2, 2, 2, 6141, 6142, 3, 2, 2, 2, 6142, 6144, 7, 411, 2, 2, 6143, 6145, 5, 764, 383, 2, 6144, 6143, 3, 2, 2, 2, 6144, 6145, 3, 2, 2, 2, 6145, 6146, 3, 2, 2, 2, 6146, 6147, 5, 634, 318, 2, 6147, 6148, 7, 582, 2, 2, 6148, 6149, 9, 93, 2, 2, 6149, 6150, 7, 605, 2, 2, 6150, 6151, 7, 884, 2, 2, 6151, 545, 3, 2, 2, 2, 6152, 6153, 7, 434, 2, 2, 6153, 6154, 7, 346, 2, 2, 6154, 6159, 5, 710, 356, 2, 6155, 6156, 7, 870, 2, 2, 6156, 6158, 5, 710, 356, 2, 6157, 6155, 3, 2, 2, 2, 6158, 6161, 3, 2, 2, 2, 6159, 6157, 3, 2, 2, 2, 6159, 6160, 3, 2, 2, 2, 6160, 6171, 3, 2, 2, 2, 6161, 6159, 3, 2, 2, 2, 6162, 6163, 7, 157, 2, 2, 6163, 6168, 5, 548, 275, 2, 6164, 6165, 7, 870, 2, 2, 6165, 6167, 5, 548, 275, 2, 6166, 6164, 3, 2, 2, 2, 6167, 6170, 3, 2, 2, 2, 6168, 6166, 3, 2, 2, 2, 6168, 6169, 3, 2, 2, 2, 6169, 6172, 3, 2, 2, 2, 6170, 6168, 3, 2, 2, 2, 6171, 6162, 3, 2, 2, 2, 6171, 6172, 3, 2, 2, 2, 6172, 547, 3, 2, 2, 2, 6173, 6174, 9, 94, 2, 2, 6174, 6175, 5, 706, 354, 2, 6175, 6176, 7, 859, 2, 2, 6176, 6177, 5, 808, 405, 2, 6177, 549, 3, 2, 2, 2, 6178, 6179, 7, 675, 2, 2, 6179, 6180, 7, 346, 2, 2, 6180, 6185, 5, 710, 356, 2, 6181, 6182, 7, 870, 2, 2, 6182, 6184, 5, 710, 356, 2, 6183, 6181, 3, 2, 2, 2, 6184, 6187, 3, 2, 2, 2, 6185, 6183, 3, 2, 2, 2, 6185, 6186, 3, 2, 2, 2, 6186, 551, 3, 2, 2, 2, 6187, 6185, 3, 2, 2, 2, 6188, 6189, 7, 434, 2, 2, 6189, 6190, 7, 536, 2, 2, 6190, 6191, 5, 710, 356, 2, 6191, 6192, 7, 605, 2, 2, 6192, 6193, 7, 884, 2, 2, 6193, 553, 3, 2, 2, 2, 6194, 6195, 7, 675, 2, 2, 6195, 6196, 7, 536, 2, 2, 6196, 6197, 5, 710, 356, 2, 6197, 555, 3, 2, 2, 2, 6198, 6199, 7, 715, 2, 2, 6199, 6200, 7, 452, 2, 2, 6200, 6201, 7, 362, 2, 2, 6201, 6203, 7, 369, 2, 2, 6202, 6204, 7, 859, 2, 2, 6203, 6202, 3, 2, 2, 2, 6203, 6204, 3, 2, 2, 2, 6204, 6205, 3, 2, 2, 2, 6205, 6229, 7, 884, 2, 2, 6206, 6207, 7, 715, 2, 2, 6207, 6208, 7, 435, 2, 2, 6208, 6209, 7, 70, 2, 2, 6209, 6210, 5, 680, 341, 2, 6210, 6211, 7, 425, 2, 2, 6211, 6212, 7, 22, 2, 2, 6212, 6219, 7, 884, 2, 2, 6213, 6214, 7, 362, 2, 2, 6214, 6216, 7, 369, 2, 2, 6215, 6217, 7, 859, 2, 2, 6216, 6215, 3, 2, 2, 2, 6216, 6217, 3, 2, 2, 2, 6217, 6218, 3, 2, 2, 2, 6218, 6220, 7, 884, 2, 2, 6219, 6213, 3, 2, 2, 2, 6219, 6220, 3, 2, 2, 2, 6220, 6226, 3, 2, 2, 2, 6221, 6223, 7, 146, 2, 2, 6222, 6224, 7, 504, 2, 2, 6223, 6222, 3, 2, 2, 2, 6223, 6224, 3, 2, 2, 2, 6224, 6225, 3, 2, 2, 2, 6225, 6227, 7, 171, 2, 2, 6226, 6221, 3, 2, 2, 2, 6226, 6227, 3, 2, 2, 2, 6227, 6229, 3, 2, 2, 2, 6228, 6198, 3, 2, 2, 2, 6228, 6206, 3, 2, 2, 2, 6229, 557, 3, 2, 2, 2, 6230, 6231, 7, 157, 2, 2, 6231, 6232, 5, 562, 282, 2, 6232, 6235, 9, 95, 2, 2, 6233, 6236, 5, 808, 405, 2, 6234, 6236, 7, 121, 2, 2, 6235, 6233, 3, 2, 2, 2, 6235, 6234, 3, 2, 2, 2, 6236, 6246, 3, 2, 2, 2, 6237, 6238, 7, 870, 2, 2, 6238, 6239, 5, 562, 282, 2, 6239, 6242, 9, 95, 2, 2, 6240, 6243, 5, 808, 405, 2, 6241, 6243, 7, 121, 2, 2, 6242, 6240, 3, 2, 2, 2, 6242, 6241, 3, 2, 2, 2, 6243, 6245, 3, 2, 2, 2, 6244, 6237, 3, 2, 2, 2, 6245, 6248, 3, 2, 2, 2, 6246, 6244, 3, 2, 2, 2, 6246, 6247, 3, 2, 2, 2, 6247, 6283, 3, 2, 2, 2, 6248, 6246, 3, 2, 2, 2, 6249, 6250, 7, 157, 2, 2, 6250, 6253, 5, 56, 29, 2, 6251, 6254, 5, 692, 347, 2, 6252, 6254, 7, 44, 2, 2, 6253, 6251, 3, 2, 2, 2, 6253, 6252, 3, 2, 2, 2, 6254, 6283, 3, 2, 2, 2, 6255, 6256, 7, 157, 2, 2, 6256, 6263, 7, 499, 2, 2, 6257, 6260, 5, 692, 347, 2, 6258, 6259, 7, 30, 2, 2, 6259, 6261, 5, 694, 348, 2, 6260, 6258, 3, 2, 2, 2, 6260, 6261, 3, 2, 2, 2, 6261, 6264, 3, 2, 2, 2, 6262, 6264, 7, 44, 2, 2, 6263, 6257, 3, 2, 2, 2, 6263, 6262, 3, 2, 2, 2, 6264, 6283, 3, 2, 2, 2, 6265, 6283, 5, 492, 247, 2, 6266, 6283, 5, 344, 173, 2, 6267, 6283, 5, 342, 172, 2, 6268, 6269, 7, 157, 2, 2, 6269, 6270, 5, 706, 354, 2, 6270, 6271, 9, 95, 2, 2, 6271, 6279, 5, 808, 405, 2, 6272, 6273, 7, 870, 2, 2, 6273, 6274, 5, 706, 354, 2, 6274, 6275, 9, 95, 2, 2, 6275, 6276, 5, 808, 405, 2, 6276, 6278, 3, 2, 2, 2, 6277, 6272, 3, 2, 2, 2, 6278, 6281, 3, 2, 2, 2, 6279, 6277, 3, 2, 2, 2, 6279, 6280, 3, 2, 2, 2, 6280, 6283, 3, 2, 2, 2, 6281, 6279, 3, 2, 2, 2, 6282, 6230, 3, 2, 2, 2, 6282, 6249, 3, 2, 2, 2, 6282, 6255, 3, 2, 2, 2, 6282, 6265, 3, 2, 2, 2, 6282, 6266, 3, 2, 2, 2, 6282, 6267, 3, 2, 2, 2, 6282, 6268, 3, 2, 2, 2, 6283, 559, 3, 2, 2, 2, 6284, 6285, 7, 159, 2, 2, 6285, 6286, 9, 64, 2, 2, 6286, 6469, 7, 454, 2, 2, 6287, 6288, 7, 159, 2, 2, 6288, 6289, 9, 96, 2, 2, 6289, 6292, 7, 388, 2, 2, 6290, 6291, 7, 82, 2, 2, 6291, 6293, 7, 884, 2, 2, 6292, 6290, 3, 2, 2, 2, 6292, 6293, 3, 2, 2, 2, 6293, 6296, 3, 2, 2, 2, 6294, 6295, 7, 70, 2, 2, 6295, 6297, 5, 716, 359, 2, 6296, 6294, 3, 2, 2, 2, 6296, 6297, 3, 2, 2, 2, 6297, 6305, 3, 2, 2, 2, 6298, 6302, 7, 102, 2, 2, 6299, 6300, 5, 716, 359, 2, 6300, 6301, 7, 870, 2, 2, 6301, 6303, 3, 2, 2, 2, 6302, 6299, 3, 2, 2, 2, 6302, 6303, 3, 2, 2, 2, 6303, 6304, 3, 2, 2, 2, 6304, 6306, 5, 716, 359, 2, 6305, 6298, 3, 2, 2, 2, 6305, 6306, 3, 2, 2, 2, 6306, 6308, 3, 2, 2, 2, 6307, 6309, 5, 392, 197, 2, 6308, 6307, 3, 2, 2, 2, 6308, 6309, 3, 2, 2, 2, 6309, 6469, 3, 2, 2, 2, 6310, 6311, 7, 159, 2, 2, 6311, 6313, 5, 564, 283, 2, 6312, 6314, 5, 566, 284, 2, 6313, 6312, 3, 2, 2, 2, 6313, 6314, 3, 2, 2, 2, 6314, 6469, 3, 2, 2, 2, 6315, 6317, 7, 159, 2, 2, 6316, 6318, 7, 394, 2, 2, 6317, 6316, 3, 2, 2, 2, 6317, 6318, 3, 2, 2, 2, 6318, 6320, 3, 2, 2, 2, 6319, 6321, 7, 410, 2, 2, 6320, 6319, 3, 2, 2, 2, 6320, 6321, 3, 2, 2, 2, 6321, 6322, 3, 2, 2, 2, 6322, 6323, 9, 48, 2, 2, 6323, 6324, 9, 97, 2, 2, 6324, 6327, 5, 656, 329, 2, 6325, 6326, 9, 97, 2, 2, 6326, 6328, 5, 632, 317, 2, 6327, 6325, 3, 2, 2, 2, 6327, 6328, 3, 2, 2, 2, 6328, 6330, 3, 2, 2, 2, 6329, 6331, 5, 566, 284, 2, 6330, 6329, 3, 2, 2, 2, 6330, 6331, 3, 2, 2, 2, 6331, 6469, 3, 2, 2, 2, 6332, 6333, 7, 159, 2, 2, 6333, 6334, 7, 36, 2, 2, 6334, 6336, 9, 2, 2, 2, 6335, 6337, 5, 764, 383, 2, 6336, 6335, 3, 2, 2, 2, 6336, 6337, 3, 2, 2, 2, 6337, 6338, 3, 2, 2, 2, 6338, 6469, 5, 630, 316, 2, 6339, 6340, 7, 159, 2, 2, 6340, 6341, 7, 36, 2, 2, 6341, 6342, 9, 98, 2, 2, 6342, 6469, 5, 706, 354, 2, 6343, 6344, 7, 159, 2, 2, 6344, 6345, 7, 36, 2, 2, 6345, 6346, 7, 411, 2, 2, 6346, 6469, 5, 634, 318, 2, 6347, 6348, 7, 159, 2, 2, 6348, 6349, 7, 36, 2, 2, 6349, 6350, 7, 686, 2, 2, 6350, 6469, 5, 638, 320, 2, 6351, 6352, 7, 159, 2, 2, 6352, 6353, 7, 36, 2, 2, 6353, 6354, 7, 175, 2, 2, 6354, 6469, 5, 652, 327, 2, 6355, 6356, 7, 159, 2, 2, 6356, 6357, 7, 36, 2, 2, 6357, 6358, 7, 680, 2, 2, 6358, 6469, 5, 688, 345, 2, 6359, 6360, 7, 159, 2, 2, 6360, 6361, 7, 382, 2, 2, 6361, 6362, 5, 696, 349, 2, 6362, 6363, 9, 99, 2, 2, 6363, 6469, 3, 2, 2, 2, 6364, 6365, 7, 159, 2, 2, 6365, 6469, 5, 568, 285, 2, 6366, 6367, 7, 159, 2, 2, 6367, 6375, 9, 100, 2, 2, 6368, 6372, 7, 102, 2, 2, 6369, 6370, 5, 716, 359, 2, 6370, 6371, 7, 870, 2, 2, 6371, 6373, 3, 2, 2, 2, 6372, 6369, 3, 2, 2, 2, 6372, 6373, 3, 2, 2, 2, 6373, 6374, 3, 2, 2, 2, 6374, 6376, 5, 716, 359, 2, 6375, 6368, 3, 2, 2, 2, 6375, 6376, 3, 2, 2, 2, 6376, 6469, 3, 2, 2, 2, 6377, 6378, 7, 159, 2, 2, 6378, 6379, 7, 264, 2, 2, 6379, 6380, 7, 868, 2, 2, 6380, 6381, 7, 852, 2, 2, 6381, 6382, 7, 869, 2, 2, 6382, 6469, 9, 100, 2, 2, 6383, 6384, 7, 159, 2, 2, 6384, 6387, 5, 570, 286, 2, 6385, 6386, 9, 97, 2, 2, 6386, 6388, 5, 632, 317, 2, 6387, 6385, 3, 2, 2, 2, 6387, 6388, 3, 2, 2, 2, 6388, 6390, 3, 2, 2, 2, 6389, 6391, 5, 566, 284, 2, 6390, 6389, 3, 2, 2, 2, 6390, 6391, 3, 2, 2, 2, 6391, 6469, 3, 2, 2, 2, 6392, 6393, 7, 159, 2, 2, 6393, 6394, 7, 134, 2, 2, 6394, 6395, 7, 338, 2, 2, 6395, 6469, 5, 706, 354, 2, 6396, 6397, 7, 159, 2, 2, 6397, 6398, 7, 411, 2, 2, 6398, 6399, 7, 338, 2, 2, 6399, 6469, 5, 636, 319, 2, 6400, 6401, 7, 159, 2, 2, 6401, 6408, 7, 416, 2, 2, 6402, 6403, 7, 67, 2, 2, 6403, 6406, 5, 660, 331, 2, 6404, 6405, 7, 190, 2, 2, 6405, 6407, 5, 658, 330, 2, 6406, 6404, 3, 2, 2, 2, 6406, 6407, 3, 2, 2, 2, 6407, 6409, 3, 2, 2, 2, 6408, 6402, 3, 2, 2, 2, 6408, 6409, 3, 2, 2, 2, 6409, 6469, 3, 2, 2, 2, 6410, 6412, 7, 159, 2, 2, 6411, 6413, 7, 394, 2, 2, 6412, 6411, 3, 2, 2, 2, 6412, 6413, 3, 2, 2, 2, 6413, 6414, 3, 2, 2, 2, 6414, 6415, 9, 101, 2, 2, 6415, 6416, 9, 97, 2, 2, 6416, 6419, 5, 656, 329, 2, 6417, 6418, 9, 97, 2, 2, 6418, 6420, 5, 632, 317, 2, 6419, 6417, 3, 2, 2, 2, 6419, 6420, 3, 2, 2, 2, 6420, 6423, 3, 2, 2, 2, 6421, 6422, 7, 194, 2, 2, 6422, 6424, 5, 808, 405, 2, 6423, 6421, 3, 2, 2, 2, 6423, 6424, 3, 2, 2, 2, 6424, 6469, 3, 2, 2, 2, 6425, 6426, 7, 159, 2, 2, 6426, 6427, 7, 518, 2, 2, 6427, 6430, 7, 754, 2, 2, 6428, 6429, 9, 97, 2, 2, 6429, 6431, 5, 632, 317, 2, 6430, 6428, 3, 2, 2, 2, 6430, 6431, 3, 2, 2, 2, 6431, 6433, 3, 2, 2, 2, 6432, 6434, 5, 566, 284, 2, 6433, 6432, 3, 2, 2, 2, 6433, 6434, 3, 2, 2, 2, 6434, 6469, 3, 2, 2, 2, 6435, 6436, 7, 159, 2, 2, 6436, 6445, 7, 547, 2, 2, 6437, 6442, 5, 572, 287, 2, 6438, 6439, 7, 870, 2, 2, 6439, 6441, 5, 572, 287, 2, 6440, 6438, 3, 2, 2, 2, 6441, 6444, 3, 2, 2, 2, 6442, 6440, 3, 2, 2, 2, 6442, 6443, 3, 2, 2, 2, 6443, 6446, 3, 2, 2, 2, 6444, 6442, 3, 2, 2, 2, 6445, 6437, 3, 2, 2, 2, 6445, 6446, 3, 2, 2, 2, 6446, 6450, 3, 2, 2, 2, 6447, 6448, 7, 67, 2, 2, 6448, 6449, 7, 550, 2, 2, 6449, 6451, 5, 716, 359, 2, 6450, 6447, 3, 2, 2, 2, 6450, 6451, 3, 2, 2, 2, 6451, 6458, 3, 2, 2, 2, 6452, 6453, 7, 102, 2, 2, 6453, 6456, 5, 716, 359, 2, 6454, 6455, 7, 511, 2, 2, 6455, 6457, 5, 716, 359, 2, 6456, 6454, 3, 2, 2, 2, 6456, 6457, 3, 2, 2, 2, 6457, 6459, 3, 2, 2, 2, 6458, 6452, 3, 2, 2, 2, 6458, 6459, 3, 2, 2, 2, 6459, 6469, 3, 2, 2, 2, 6460, 6461, 7, 159, 2, 2, 6461, 6462, 9, 65, 2, 2, 6462, 6464, 7, 647, 2, 2, 6463, 6465, 5, 392, 197, 2, 6464, 6463, 3, 2, 2, 2, 6464, 6465, 3, 2, 2, 2, 6465, 6469, 3, 2, 2, 2, 6466, 6467, 7, 159, 2, 2, 6467, 6469, 7, 566, 2, 2, 6468, 6284, 3, 2, 2, 2, 6468, 6287, 3, 2, 2, 2, 6468, 6310, 3, 2, 2, 2, 6468, 6315, 3, 2, 2, 2, 6468, 6332, 3, 2, 2, 2, 6468, 6339, 3, 2, 2, 2, 6468, 6343, 3, 2, 2, 2, 6468, 6347, 3, 2, 2, 2, 6468, 6351, 3, 2, 2, 2, 6468, 6355, 3, 2, 2, 2, 6468, 6359, 3, 2, 2, 2, 6468, 6364, 3, 2, 2, 2, 6468, 6366, 3, 2, 2, 2, 6468, 6377, 3, 2, 2, 2, 6468, 6383, 3, 2, 2, 2, 6468, 6392, 3, 2, 2, 2, 6468, 6396, 3, 2, 2, 2, 6468, 6400, 3, 2, 2, 2, 6468, 6410, 3, 2, 2, 2, 6468, 6425, 3, 2, 2, 2, 6468, 6435, 3, 2, 2, 2, 6468, 6460, 3, 2, 2, 2, 6468, 6466, 3, 2, 2, 2, 6469, 561, 3, 2, 2, 2, 6470, 6481, 7, 895, 2, 2, 6471, 6481, 7, 896, 2, 2, 6472, 6473, 7, 872, 2, 2, 6473, 6475, 7, 872, 2, 2, 6474, 6472, 3, 2, 2, 2, 6474, 6475, 3, 2, 2, 2, 6475, 6476, 3, 2, 2, 2, 6476, 6478, 9, 102, 2, 2, 6477, 6474, 3, 2, 2, 2, 6477, 6478, 3, 2, 2, 2, 6478, 6479, 3, 2, 2, 2, 6479, 6481, 5, 710, 356, 2, 6480, 6470, 3, 2, 2, 2, 6480, 6471, 3, 2, 2, 2, 6480, 6477, 3, 2, 2, 2, 6481, 563, 3, 2, 2, 2, 6482, 6483, 7, 28, 2, 2, 6483, 6497, 7, 157, 2, 2, 6484, 6497, 7, 825, 2, 2, 6485, 6497, 7, 826, 2, 2, 6486, 6497, 7, 42, 2, 2, 6487, 6497, 7, 155, 2, 2, 6488, 6489, 7, 411, 2, 2, 6489, 6497, 7, 647, 2, 2, 6490, 6491, 7, 134, 2, 2, 6491, 6497, 7, 647, 2, 2, 6492, 6494, 9, 63, 2, 2, 6493, 6492, 3, 2, 2, 2, 6493, 6494, 3, 2, 2, 2, 6494, 6495, 3, 2, 2, 2, 6495, 6497, 9, 103, 2, 2, 6496, 6482, 3, 2, 2, 2, 6496, 6484, 3, 2, 2, 2, 6496, 6485, 3, 2, 2, 2, 6496, 6486, 3, 2, 2, 2, 6496, 6487, 3, 2, 2, 2, 6496, 6488, 3, 2, 2, 2, 6496, 6490, 3, 2, 2, 2, 6496, 6493, 3, 2, 2, 2, 6497, 565, 3, 2, 2, 2, 6498, 6499, 7, 101, 2, 2, 6499, 6503, 7, 884, 2, 2, 6500, 6501, 7, 194, 2, 2, 6501, 6503, 5, 808, 405, 2, 6502, 6498, 3, 2, 2, 2, 6502, 6500, 3, 2, 2, 2, 6503, 567, 3, 2, 2, 2, 6504, 6506, 7, 649, 2, 2, 6505, 6504, 3, 2, 2, 2, 6505, 6506, 3, 2, 2, 2, 6506, 6507, 3, 2, 2, 2, 6507, 6522, 7, 383, 2, 2, 6508, 6509, 7, 455, 2, 2, 6509, 6522, 7, 647, 2, 2, 6510, 6522, 7, 538, 2, 2, 6511, 6522, 7, 736, 2, 2, 6512, 6514, 7, 410, 2, 2, 6513, 6512, 3, 2, 2, 2, 6513, 6514, 3, 2, 2, 2, 6514, 6515, 3, 2, 2, 2, 6515, 6522, 7, 546, 2, 2, 6516, 6522, 7, 548, 2, 2, 6517, 6518, 7, 600, 2, 2, 6518, 6522, 7, 424, 2, 2, 6519, 6522, 7, 314, 2, 2, 6520, 6522, 7, 358, 2, 2, 6521, 6505, 3, 2, 2, 2, 6521, 6508, 3, 2, 2, 2, 6521, 6510, 3, 2, 2, 2, 6521, 6511, 3, 2, 2, 2, 6521, 6513, 3, 2, 2, 2, 6521, 6516, 3, 2, 2, 2, 6521, 6517, 3, 2, 2, 2, 6521, 6519, 3, 2, 2, 2, 6521, 6520, 3, 2, 2, 2, 6522, 569, 3, 2, 2, 2, 6523, 6535, 7, 388, 2, 2, 6524, 6525, 7, 175, 2, 2, 6525, 6535, 7, 647, 2, 2, 6526, 6528, 7, 394, 2, 2, 6527, 6526, 3, 2, 2, 2, 6527, 6528, 3, 2, 2, 2, 6528, 6530, 3, 2, 2, 2, 6529, 6531, 7, 410, 2, 2, 6530, 6529, 3, 2, 2, 2, 6530, 6531, 3, 2, 2, 2, 6531, 6532, 3, 2, 2, 2, 6532, 6535, 7, 754, 2, 2, 6533, 6535, 7, 669, 2, 2, 6534, 6523, 3, 2, 2, 2, 6534, 6524, 3, 2, 2, 2, 6534, 6527, 3, 2, 2, 2, 6534, 6533, 3, 2, 2, 2, 6535, 571, 3, 2, 2, 2, 6536, 6549, 7, 9, 2, 2, 6537, 6538, 7, 322, 2, 2, 6538, 6549, 7, 439, 2, 2, 6539, 6540, 7, 357, 2, 2, 6540, 6549, 7, 658, 2, 2, 6541, 6549, 7, 360, 2, 2, 6542, 6549, 7, 441, 2, 2, 6543, 6549, 7, 804, 2, 2, 6544, 6545, 7, 523, 2, 2, 6545, 6549, 7, 399, 2, 2, 6546, 6549, 7, 607, 2, 2, 6547, 6549, 7, 657, 2, 2, 6548, 6536, 3, 2, 2, 2, 6548, 6537, 3, 2, 2, 2, 6548, 6539, 3, 2, 2, 2, 6548, 6541, 3, 2, 2, 2, 6548, 6542, 3, 2, 2, 2, 6548, 6543, 3, 2, 2, 2, 6548, 6544, 3, 2, 2, 2, 6548, 6546, 3, 2, 2, 2, 6548, 6547, 3, 2, 2, 2, 6549, 573, 3, 2, 2, 2, 6550, 6551, 7, 320, 2, 2, 6551, 6552, 7, 884, 2, 2, 6552, 575, 3, 2, 2, 2, 6553, 6554, 7, 326, 2, 2, 6554, 6572, 7, 84, 2, 2, 6555, 6560, 5, 596, 299, 2, 6556, 6557, 7, 870, 2, 2, 6557, 6559, 5, 596, 299, 2, 6558, 6556, 3, 2, 2, 2, 6559, 6562, 3, 2, 2, 2, 6560, 6558, 3, 2, 2, 2, 6560, 6561, 3, 2, 2, 2, 6561, 6573, 3, 2, 2, 2, 6562, 6560, 3, 2, 2, 2, 6563, 6564, 5, 656, 329, 2, 6564, 6565, 7, 132, 2, 2, 6565, 6568, 7, 868, 2, 2, 6566, 6569, 5, 674, 338, 2, 6567, 6569, 7, 9, 2, 2, 6568, 6566, 3, 2, 2, 2, 6568, 6567, 3, 2, 2, 2, 6569, 6570, 3, 2, 2, 2, 6570, 6571, 7, 869, 2, 2, 6571, 6573, 3, 2, 2, 2, 6572, 6555, 3, 2, 2, 2, 6572, 6563, 3, 2, 2, 2, 6573, 6574, 3, 2, 2, 2, 6574, 6575, 7, 82, 2, 2, 6575, 6576, 5, 632, 317, 2, 6576, 577, 3, 2, 2, 2, 6577, 6579, 7, 406, 2, 2, 6578, 6580, 5, 540, 271, 2, 6579, 6578, 3, 2, 2, 2, 6579, 6580, 3, 2, 2, 2, 6580, 6581, 3, 2, 2, 2, 6581, 6586, 5, 598, 300, 2, 6582, 6583, 7, 870, 2, 2, 6583, 6585, 5, 598, 300, 2, 6584, 6582, 3, 2, 2, 2, 6585, 6588, 3, 2, 2, 2, 6586, 6584, 3, 2, 2, 2, 6586, 6587, 3, 2, 2, 2, 6587, 579, 3, 2, 2, 2, 6588, 6586, 3, 2, 2, 2, 6589, 6591, 7, 96, 2, 2, 6590, 6592, 9, 104, 2, 2, 6591, 6590, 3, 2, 2, 2, 6591, 6592, 3, 2, 2, 2, 6592, 6593, 3, 2, 2, 2, 6593, 6594, 5, 808, 405, 2, 6594, 581, 3, 2, 2, 2, 6595, 6596, 7, 105, 2, 2, 6596, 6597, 7, 84, 2, 2, 6597, 6598, 7, 90, 2, 2, 6598, 6599, 7, 326, 2, 2, 6599, 6604, 5, 602, 302, 2, 6600, 6601, 7, 870, 2, 2, 6601, 6603, 5, 602, 302, 2, 6602, 6600, 3, 2, 2, 2, 6603, 6606, 3, 2, 2, 2, 6604, 6602, 3, 2, 2, 2, 6604, 6605, 3, 2, 2, 2, 6605, 583, 3, 2, 2, 2, 6606, 6604, 3, 2, 2, 2, 6607, 6608, 7, 577, 2, 2, 6608, 6613, 5, 586, 294, 2, 6609, 6610, 7, 870, 2, 2, 6610, 6612, 5, 586, 294, 2, 6611, 6609, 3, 2, 2, 2, 6612, 6615, 3, 2, 2, 2, 6613, 6611, 3, 2, 2, 2, 6613, 6614, 3, 2, 2, 2, 6614, 585, 3, 2, 2, 2, 6615, 6613, 3, 2, 2, 2, 6616, 6622, 7, 455, 2, 2, 6617, 6622, 7, 565, 2, 2, 6618, 6619, 7, 550, 2, 2, 6619, 6622, 7, 326, 2, 2, 6620, 6622, 7, 600, 2, 2, 6621, 6616, 3, 2, 2, 2, 6621, 6617, 3, 2, 2, 2, 6621, 6618, 3, 2, 2, 2, 6621, 6620, 3, 2, 2, 2, 6622, 587, 3, 2, 2, 2, 6623, 6624, 7, 577, 2, 2, 6624, 6629, 7, 533, 2, 2, 6625, 6627, 5, 762, 382, 2, 6626, 6625, 3, 2, 2, 2, 6626, 6627, 3, 2, 2, 2, 6627, 6628, 3, 2, 2, 2, 6628, 6630, 5, 710, 356, 2, 6629, 6626, 3, 2, 2, 2, 6629, 6630, 3, 2, 2, 2, 6630, 589, 3, 2, 2, 2, 6631, 6632, 7, 577, 2, 2, 6632, 6634, 9, 65, 2, 2, 6633, 6635, 7, 9, 2, 2, 6634, 6633, 3, 2, 2, 2, 6634, 6635, 3, 2, 2, 2, 6635, 6637, 3, 2, 2, 2, 6636, 6638, 5, 392, 197, 2, 6637, 6636, 3, 2, 2, 2, 6637, 6638, 3, 2, 2, 2, 6638, 591, 3, 2, 2, 2, 6639, 6640, 7, 578, 2, 2, 6640, 593, 3, 2, 2, 2, 6641, 6642, 7, 751, 2, 2, 6642, 595, 3, 2, 2, 2, 6643, 6649, 5, 656, 329, 2, 6644, 6645, 9, 20, 2, 2, 6645, 6646, 7, 868, 2, 2, 6646, 6647, 5, 644, 323, 2, 6647, 6648, 7, 869, 2, 2, 6648, 6650, 3, 2, 2, 2, 6649, 6644, 3, 2, 2, 2, 6649, 6650, 3, 2, 2, 2, 6650, 597, 3, 2, 2, 2, 6651, 6670, 7, 368, 2, 2, 6652, 6670, 7, 424, 2, 2, 6653, 6655, 9, 105, 2, 2, 6654, 6653, 3, 2, 2, 2, 6654, 6655, 3, 2, 2, 2, 6655, 6656, 3, 2, 2, 2, 6656, 6670, 7, 454, 2, 2, 6657, 6670, 7, 519, 2, 2, 6658, 6670, 7, 736, 2, 2, 6659, 6660, 7, 550, 2, 2, 6660, 6670, 7, 326, 2, 2, 6661, 6670, 7, 647, 2, 2, 6662, 6670, 7, 682, 2, 2, 6663, 6667, 7, 754, 2, 2, 6664, 6665, 7, 196, 2, 2, 6665, 6666, 7, 137, 2, 2, 6666, 6668, 7, 106, 2, 2, 6667, 6664, 3, 2, 2, 2, 6667, 6668, 3, 2, 2, 2, 6668, 6670, 3, 2, 2, 2, 6669, 6651, 3, 2, 2, 2, 6669, 6652, 3, 2, 2, 2, 6669, 6654, 3, 2, 2, 2, 6669, 6657, 3, 2, 2, 2, 6669, 6658, 3, 2, 2, 2, 6669, 6659, 3, 2, 2, 2, 6669, 6661, 3, 2, 2, 2, 6669, 6662, 3, 2, 2, 2, 6669, 6663, 3, 2, 2, 2, 6670, 6684, 3, 2, 2, 2, 6671, 6672, 7, 558, 2, 2, 6672, 6674, 7, 454, 2, 2, 6673, 6675, 5, 392, 197, 2, 6674, 6673, 3, 2, 2, 2, 6674, 6675, 3, 2, 2, 2, 6675, 6684, 3, 2, 2, 2, 6676, 6678, 9, 62, 2, 2, 6677, 6679, 5, 654, 328, 2, 6678, 6677, 3, 2, 2, 2, 6678, 6679, 3, 2, 2, 2, 6679, 6681, 3, 2, 2, 2, 6680, 6682, 5, 600, 301, 2, 6681, 6680, 3, 2, 2, 2, 6681, 6682, 3, 2, 2, 2, 6682, 6684, 3, 2, 2, 2, 6683, 6669, 3, 2, 2, 2, 6683, 6671, 3, 2, 2, 2, 6683, 6676, 3, 2, 2, 2, 6684, 599, 3, 2, 2, 2, 6685, 6686, 7, 196, 2, 2, 6686, 6687, 7, 137, 2, 2, 6687, 6691, 7, 106, 2, 2, 6688, 6689, 7, 67, 2, 2, 6689, 6691, 7, 393, 2, 2, 6690, 6685, 3, 2, 2, 2, 6690, 6688, 3, 2, 2, 2, 6691, 601, 3, 2, 2, 2, 6692, 6700, 5, 656, 329, 2, 6693, 6694, 7, 132, 2, 2, 6694, 6697, 7, 868, 2, 2, 6695, 6698, 5, 674, 338, 2, 6696, 6698, 7, 9, 2, 2, 6697, 6695, 3, 2, 2, 2, 6697, 6696, 3, 2, 2, 2, 6698, 6699, 3, 2, 2, 2, 6699, 6701, 7, 869, 2, 2, 6700, 6693, 3, 2, 2, 2, 6700, 6701, 3, 2, 2, 2, 6701, 6709, 3, 2, 2, 2, 6702, 6704, 9, 20, 2, 2, 6703, 6702, 3, 2, 2, 2, 6703, 6704, 3, 2, 2, 2, 6704, 6705, 3, 2, 2, 2, 6705, 6706, 7, 868, 2, 2, 6706, 6707, 5, 644, 323, 2, 6707, 6708, 7, 869, 2, 2, 6708, 6710, 3, 2, 2, 2, 6709, 6703, 3, 2, 2, 2, 6709, 6710, 3, 2, 2, 2, 6710, 6713, 3, 2, 2, 2, 6711, 6712, 7, 81, 2, 2, 6712, 6714, 7, 448, 2, 2, 6713, 6711, 3, 2, 2, 2, 6713, 6714, 3, 2, 2, 2, 6714, 603, 3, 2, 2, 2, 6715, 6716, 9, 106, 2, 2, 6716, 6719, 5, 656, 329, 2, 6717, 6720, 5, 666, 334, 2, 6718, 6720, 7, 884, 2, 2, 6719, 6717, 3, 2, 2, 2, 6719, 6718, 3, 2, 2, 2, 6719, 6720, 3, 2, 2, 2, 6720, 605, 3, 2, 2, 2, 6721, 6727, 9, 106, 2, 2, 6722, 6728, 7, 394, 2, 2, 6723, 6728, 7, 530, 2, 2, 6724, 6725, 7, 828, 2, 2, 6725, 6726, 7, 859, 2, 2, 6726, 6728, 9, 107, 2, 2, 6727, 6722, 3, 2, 2, 2, 6727, 6723, 3, 2, 2, 2, 6727, 6724, 3, 2, 2, 2, 6727, 6728, 3, 2, 2, 2, 6728, 6729, 3, 2, 2, 2, 6729, 6730, 5, 628, 315, 2, 6730, 607, 3, 2, 2, 2, 6731, 6732, 9, 106, 2, 2, 6732, 6736, 7, 12, 2, 2, 6733, 6734, 7, 828, 2, 2, 6734, 6735, 7, 859, 2, 2, 6735, 6737, 7, 668, 2, 2, 6736, 6733, 3, 2, 2, 2, 6736, 6737, 3, 2, 2, 2, 6737, 6738, 3, 2, 2, 2, 6738, 6739, 5, 206, 104, 2, 6739, 609, 3, 2, 2, 2, 6740, 6741, 7, 421, 2, 2, 6741, 6742, 7, 884, 2, 2, 6742, 611, 3, 2, 2, 2, 6743, 6744, 7, 189, 2, 2, 6744, 6745, 5, 632, 317, 2, 6745, 613, 3, 2, 2, 2, 6746, 6754, 7, 160, 2, 2, 6747, 6749, 7, 166, 2, 2, 6748, 6750, 7, 684, 2, 2, 6749, 6748, 3, 2, 2, 2, 6749, 6750, 3, 2, 2, 2, 6750, 6751, 3, 2, 2, 2, 6751, 6755, 5, 720, 361, 2, 6752, 6755, 7, 892, 2, 2, 6753, 6755, 7, 893, 2, 2, 6754, 6747, 3, 2, 2, 2, 6754, 6752, 3, 2, 2, 2, 6754, 6753, 3, 2, 2, 2, 6755, 6765, 3, 2, 2, 2, 6756, 6757, 7, 157, 2, 2, 6757, 6762, 5, 618, 310, 2, 6758, 6759, 7, 870, 2, 2, 6759, 6761, 5, 618, 310, 2, 6760, 6758, 3, 2, 2, 2, 6761, 6764, 3, 2, 2, 2, 6762, 6760, 3, 2, 2, 2, 6762, 6763, 3, 2, 2, 2, 6763, 6766, 3, 2, 2, 2, 6764, 6762, 3, 2, 2, 2, 6765, 6756, 3, 2, 2, 2, 6765, 6766, 3, 2, 2, 2, 6766, 615, 3, 2, 2, 2, 6767, 6775, 7, 147, 2, 2, 6768, 6770, 7, 166, 2, 2, 6769, 6771, 7, 684, 2, 2, 6770, 6769, 3, 2, 2, 2, 6770, 6771, 3, 2, 2, 2, 6771, 6772, 3, 2, 2, 2, 6772, 6776, 5, 720, 361, 2, 6773, 6776, 7, 892, 2, 2, 6774, 6776, 7, 893, 2, 2, 6775, 6768, 3, 2, 2, 2, 6775, 6773, 3, 2, 2, 2, 6775, 6774, 3, 2, 2, 2, 6775, 6776, 3, 2, 2, 2, 6776, 6786, 3, 2, 2, 2, 6777, 6778, 7, 157, 2, 2, 6778, 6783, 5, 618, 310, 2, 6779, 6780, 7, 870, 2, 2, 6780, 6782, 5, 618, 310, 2, 6781, 6779, 3, 2, 2, 2, 6782, 6785, 3, 2, 2, 2, 6783, 6781, 3, 2, 2, 2, 6783, 6784, 3, 2, 2, 2, 6784, 6787, 3, 2, 2, 2, 6785, 6783, 3, 2, 2, 2, 6786, 6777, 3, 2, 2, 2, 6786, 6787, 3, 2, 2, 2, 6787, 617, 3, 2, 2, 2, 6788, 6789, 9, 108, 2, 2, 6789, 6794, 7, 859, 2, 2, 6790, 6795, 5, 720, 361, 2, 6791, 6795, 7, 885, 2, 2, 6792, 6795, 5, 690, 346, 2, 6793, 6795, 5, 712, 357, 2, 6794, 6790, 3, 2, 2, 2, 6794, 6791, 3, 2, 2, 2, 6794, 6792, 3, 2, 2, 2, 6794, 6793, 3, 2, 2, 2, 6795, 619, 3, 2, 2, 2, 6796, 6798, 7, 196, 2, 2, 6797, 6799, 7, 554, 2, 2, 6798, 6797, 3, 2, 2, 2, 6798, 6799, 3, 2, 2, 2, 6799, 6800, 3, 2, 2, 2, 6800, 6805, 5, 50, 26, 2, 6801, 6802, 7, 870, 2, 2, 6802, 6804, 5, 50, 26, 2, 6803, 6801, 3, 2, 2, 2, 6804, 6807, 3, 2, 2, 2, 6805, 6803, 3, 2, 2, 2, 6805, 6806, 3, 2, 2, 2, 6806, 621, 3, 2, 2, 2, 6807, 6805, 3, 2, 2, 2, 6808, 6809, 7, 175, 2, 2, 6809, 6811, 5, 656, 329, 2, 6810, 6812, 5, 254, 128, 2, 6811, 6810, 3, 2, 2, 2, 6811, 6812, 3, 2, 2, 2, 6812, 6814, 3, 2, 2, 2, 6813, 6815, 5, 320, 161, 2, 6814, 6813, 3, 2, 2, 2, 6814, 6815, 3, 2, 2, 2, 6815, 623, 3, 2, 2, 2, 6816, 6818, 7, 74, 2, 2, 6817, 6819, 9, 109, 2, 2, 6818, 6817, 3, 2, 2, 2, 6818, 6819, 3, 2, 2, 2, 6819, 6820, 3, 2, 2, 2, 6820, 6852, 7, 50, 2, 2, 6821, 6822, 5, 562, 282, 2, 6822, 6823, 7, 859, 2, 2, 6823, 6831, 9, 110, 2, 2, 6824, 6825, 7, 870, 2, 2, 6825, 6826, 5, 562, 282, 2, 6826, 6827, 7, 859, 2, 2, 6827, 6828, 9, 110, 2, 2, 6828, 6830, 3, 2, 2, 2, 6829, 6824, 3, 2, 2, 2, 6830, 6833, 3, 2, 2, 2, 6831, 6829, 3, 2, 2, 2, 6831, 6832, 3, 2, 2, 2, 6832, 6853, 3, 2, 2, 2, 6833, 6831, 3, 2, 2, 2, 6834, 6837, 7, 32, 2, 2, 6835, 6838, 5, 716, 359, 2, 6836, 6838, 5, 562, 282, 2, 6837, 6835, 3, 2, 2, 2, 6837, 6836, 3, 2, 2, 2, 6838, 6839, 3, 2, 2, 2, 6839, 6840, 5, 562, 282, 2, 6840, 6841, 7, 859, 2, 2, 6841, 6849, 5, 626, 314, 2, 6842, 6843, 7, 870, 2, 2, 6843, 6844, 5, 562, 282, 2, 6844, 6845, 7, 859, 2, 2, 6845, 6846, 5, 626, 314, 2, 6846, 6848, 3, 2, 2, 2, 6847, 6842, 3, 2, 2, 2, 6848, 6851, 3, 2, 2, 2, 6849, 6847, 3, 2, 2, 2, 6849, 6850, 3, 2, 2, 2, 6850, 6853, 3, 2, 2, 2, 6851, 6849, 3, 2, 2, 2, 6852, 6821, 3, 2, 2, 2, 6852, 6834, 3, 2, 2, 2, 6853, 625, 3, 2, 2, 2, 6854, 6855, 9, 111, 2, 2, 6855, 627, 3, 2, 2, 2, 6856, 6862, 5, 206, 104, 2, 6857, 6862, 5, 182, 92, 2, 6858, 6862, 5, 188, 95, 2, 6859, 6862, 5, 204, 103, 2, 6860, 6862, 5, 216, 109, 2, 6861, 6856, 3, 2, 2, 2, 6861, 6857, 3, 2, 2, 2, 6861, 6858, 3, 2, 2, 2, 6861, 6859, 3, 2, 2, 2, 6861, 6860, 3, 2, 2, 2, 6862, 6867, 3, 2, 2, 2, 6863, 6864, 7, 67, 2, 2, 6864, 6865, 7, 351, 2, 2, 6865, 6867, 5, 710, 356, 2, 6866, 6861, 3, 2, 2, 2, 6866, 6863, 3, 2, 2, 2, 6867, 629, 3, 2, 2, 2, 6868, 6869, 5, 706, 354, 2, 6869, 631, 3, 2, 2, 2, 6870, 6871, 5, 706, 354, 2, 6871, 633, 3, 2, 2, 2, 6872, 6873, 5, 706, 354, 2, 6873, 635, 3, 2, 2, 2, 6874, 6875, 5, 706, 354, 2, 6875, 637, 3, 2, 2, 2, 6876, 6877, 5, 706, 354, 2, 6877, 639, 3, 2, 2, 2, 6878, 6879, 5, 706, 354, 2, 6879, 641, 3, 2, 2, 2, 6880, 6881, 5, 710, 356, 2, 6881, 643, 3, 2, 2, 2, 6882, 6887, 5, 646, 324, 2, 6883, 6884, 7, 870, 2, 2, 6884, 6886, 5, 646, 324, 2, 6885, 6883, 3, 2, 2, 2, 6886, 6889, 3, 2, 2, 2, 6887, 6885, 3, 2, 2, 2, 6887, 6888, 3, 2, 2, 2, 6888, 645, 3, 2, 2, 2, 6889, 6887, 3, 2, 2, 2, 6890, 6891, 5, 710, 356, 2, 6891, 647, 3, 2, 2, 2, 6892, 6893, 5, 710, 356, 2, 6893, 649, 3, 2, 2, 2, 6894, 6895, 5, 710, 356, 2, 6895, 651, 3, 2, 2, 2, 6896, 6897, 5, 706, 354, 2, 6897, 653, 3, 2, 2, 2, 6898, 6903, 5, 656, 329, 2, 6899, 6900, 7, 870, 2, 2, 6900, 6902, 5, 656, 329, 2, 6901, 6899, 3, 2, 2, 2, 6902, 6905, 3, 2, 2, 2, 6903, 6901, 3, 2, 2, 2, 6903, 6904, 3, 2, 2, 2, 6904, 655, 3, 2, 2, 2, 6905, 6903, 3, 2, 2, 2, 6906, 6907, 5, 706, 354, 2, 6907, 657, 3, 2, 2, 2, 6908, 6913, 5, 660, 331, 2, 6909, 6910, 7, 870, 2, 2, 6910, 6912, 5, 660, 331, 2, 6911, 6909, 3, 2, 2, 2, 6912, 6915, 3, 2, 2, 2, 6913, 6911, 3, 2, 2, 2, 6913, 6914, 3, 2, 2, 2, 6914, 659, 3, 2, 2, 2, 6915, 6913, 3, 2, 2, 2, 6916, 6919, 5, 688, 345, 2, 6917, 6919, 5, 710, 356, 2, 6918, 6916, 3, 2, 2, 2, 6918, 6917, 3, 2, 2, 2, 6919, 661, 3, 2, 2, 2, 6920, 6925, 5, 710, 356, 2, 6921, 6923, 5, 714, 358, 2, 6922, 6924, 5, 714, 358, 2, 6923, 6922, 3, 2, 2, 2, 6923, 6924, 3, 2, 2, 2, 6924, 6926, 3, 2, 2, 2, 6925, 6921, 3, 2, 2, 2, 6925, 6926, 3, 2, 2, 2, 6926, 6935, 3, 2, 2, 2, 6927, 6929, 11, 2, 2, 2, 6928, 6927, 3, 2, 2, 2, 6928, 6929, 3, 2, 2, 2, 6929, 6930, 3, 2, 2, 2, 6930, 6932, 5, 714, 358, 2, 6931, 6933, 5, 714, 358, 2, 6932, 6931, 3, 2, 2, 2, 6932, 6933, 3, 2, 2, 2, 6933, 6935, 3, 2, 2, 2, 6934, 6920, 3, 2, 2, 2, 6934, 6928, 3, 2, 2, 2, 6935, 663, 3, 2, 2, 2, 6936, 6941, 5, 666, 334, 2, 6937, 6938, 7, 870, 2, 2, 6938, 6940, 5, 666, 334, 2, 6939, 6937, 3, 2, 2, 2, 6940, 6943, 3, 2, 2, 2, 6941, 6939, 3, 2, 2, 2, 6941, 6942, 3, 2, 2, 2, 6942, 665, 3, 2, 2, 2, 6943, 6941, 3, 2, 2, 2, 6944, 6949, 5, 710, 356, 2, 6945, 6947, 5, 714, 358, 2, 6946, 6948, 5, 714, 358, 2, 6947, 6946, 3, 2, 2, 2, 6947, 6948, 3, 2, 2, 2, 6948, 6950, 3, 2, 2, 2, 6949, 6945, 3, 2, 2, 2, 6949, 6950, 3, 2, 2, 2, 6950, 6959, 3, 2, 2, 2, 6951, 6953, 11, 2, 2, 2, 6952, 6951, 3, 2, 2, 2, 6952, 6953, 3, 2, 2, 2, 6953, 6954, 3, 2, 2, 2, 6954, 6956, 5, 714, 358, 2, 6955, 6957, 5, 714, 358, 2, 6956, 6955, 3, 2, 2, 2, 6956, 6957, 3, 2, 2, 2, 6957, 6959, 3, 2, 2, 2, 6958, 6944, 3, 2, 2, 2, 6958, 6952, 3, 2, 2, 2, 6959, 667, 3, 2, 2, 2, 6960, 6961, 5, 710, 356, 2, 6961, 669, 3, 2, 2, 2, 6962, 6963, 5, 710, 356, 2, 6963, 671, 3, 2, 2, 2, 6964, 6965, 5, 710, 356, 2, 6965, 673, 3, 2, 2, 2, 6966, 6971, 5, 676, 339, 2, 6967, 6968, 7, 870, 2, 2, 6968, 6970, 5, 676, 339, 2, 6969, 6967, 3, 2, 2, 2, 6970, 6973, 3, 2, 2, 2, 6971, 6969, 3, 2, 2, 2, 6971, 6972, 3, 2, 2, 2, 6972, 675, 3, 2, 2, 2, 6973, 6971, 3, 2, 2, 2, 6974, 6975, 5, 710, 356, 2, 6975, 677, 3, 2, 2, 2, 6976, 6981, 5, 710, 356, 2, 6977, 6978, 7, 868, 2, 2, 6978, 6979, 5, 716, 359, 2, 6979, 6980, 7, 869, 2, 2, 6980, 6982, 3, 2, 2, 2, 6981, 6977, 3, 2, 2, 2, 6981, 6982, 3, 2, 2, 2, 6982, 6985, 3, 2, 2, 2, 6983, 6985, 5, 808, 405, 2, 6984, 6976, 3, 2, 2, 2, 6984, 6983, 3, 2, 2, 2, 6985, 6987, 3, 2, 2, 2, 6986, 6988, 9, 56, 2, 2, 6987, 6986, 3, 2, 2, 2, 6987, 6988, 3, 2, 2, 2, 6988, 679, 3, 2, 2, 2, 6989, 6990, 5, 682, 342, 2, 6990, 6991, 7, 880, 2, 2, 6991, 6992, 5, 716, 359, 2, 6992, 681, 3, 2, 2, 2, 6993, 6994, 5, 684, 343, 2, 6994, 6995, 7, 894, 2, 2, 6995, 683, 3, 2, 2, 2, 6996, 7001, 7, 884, 2, 2, 6997, 7001, 7, 892, 2, 2, 6998, 7001, 7, 706, 2, 2, 6999, 7001, 5, 838, 420, 2, 7000, 6996, 3, 2, 2, 2, 7000, 6997, 3, 2, 2, 2, 7000, 6998, 3, 2, 2, 2, 7000, 6999, 3, 2, 2, 2, 7001, 685, 3, 2, 2, 2, 7002, 7003, 9, 112, 2, 2, 7003, 687, 3, 2, 2, 2, 7004, 7006, 5, 684, 343, 2, 7005, 7007, 5, 686, 344, 2, 7006, 7005, 3, 2, 2, 2, 7006, 7007, 3, 2, 2, 2, 7007, 7010, 3, 2, 2, 2, 7008, 7010, 5, 58, 30, 2, 7009, 7004, 3, 2, 2, 2, 7009, 7008, 3, 2, 2, 2, 7010, 689, 3, 2, 2, 2, 7011, 7012, 9, 113, 2, 2, 7012, 691, 3, 2, 2, 2, 7013, 7018, 7, 230, 2, 2, 7014, 7018, 5, 828, 415, 2, 7015, 7018, 7, 884, 2, 2, 7016, 7018, 7, 881, 2, 2, 7017, 7013, 3, 2, 2, 2, 7017, 7014, 3, 2, 2, 2, 7017, 7015, 3, 2, 2, 2, 7017, 7016, 3, 2, 2, 2, 7018, 693, 3, 2, 2, 2, 7019, 7020, 5, 710, 356, 2, 7020, 695, 3, 2, 2, 2, 7021, 7025, 5, 698, 350, 2, 7022, 7025, 7, 892, 2, 2, 7023, 7025, 7, 884, 2, 2, 7024, 7021, 3, 2, 2, 2, 7024, 7022, 3, 2, 2, 2, 7024, 7023, 3, 2, 2, 2, 7025, 697, 3, 2, 2, 2, 7026, 7027, 9, 114, 2, 2, 7027, 699, 3, 2, 2, 2, 7028, 7029, 5, 716, 359, 2, 7029, 7030, 7, 856, 2, 2, 7030, 7031, 5, 716, 359, 2, 7031, 7032, 7, 856, 2, 2, 7032, 7033, 5, 716, 359, 2, 7033, 7034, 7, 856, 2, 2, 7034, 7035, 5, 716, 359, 2, 7035, 7036, 7, 856, 2, 2, 7036, 7042, 5, 716, 359, 2, 7037, 7038, 7, 880, 2, 2, 7038, 7039, 5, 716, 359, 2, 7039, 7040, 7, 856, 2, 2, 7040, 7041, 5, 716, 359, 2, 7041, 7043, 3, 2, 2, 2, 7042, 7037, 3, 2, 2, 2, 7043, 7044, 3, 2, 2, 2, 7044, 7042, 3, 2, 2, 2, 7044, 7045, 3, 2, 2, 2, 7045, 701, 3, 2, 2, 2, 7046, 7053, 5, 704, 353, 2, 7047, 7048, 7, 870, 2, 2, 7048, 7051, 5, 704, 353, 2, 7049, 7050, 7, 870, 2, 2, 7050, 7052, 5, 716, 359, 2, 7051, 7049, 3, 2, 2, 2, 7051, 7052, 3, 2, 2, 2, 7052, 7054, 3, 2, 2, 2, 7053, 7047, 3, 2, 2, 2, 7053, 7054, 3, 2, 2, 2, 7054, 703, 3, 2, 2, 2, 7055, 7063, 7, 884, 2, 2, 7056, 7063, 7, 889, 2, 2, 7057, 7059, 7, 886, 2, 2, 7058, 7057, 3, 2, 2, 2, 7059, 7060, 3, 2, 2, 2, 7060, 7058, 3, 2, 2, 2, 7060, 7061, 3, 2, 2, 2, 7061, 7063, 3, 2, 2, 2, 7062, 7055, 3, 2, 2, 2, 7062, 7056, 3, 2, 2, 2, 7062, 7058, 3, 2, 2, 2, 7063, 705, 3, 2, 2, 2, 7064, 7066, 5, 710, 356, 2, 7065, 7067, 5, 714, 358, 2, 7066, 7065, 3, 2, 2, 2, 7066, 7067, 3, 2, 2, 2, 7067, 707, 3, 2, 2, 2, 7068, 7073, 5, 710, 356, 2, 7069, 7070, 7, 870, 2, 2, 7070, 7072, 5, 710, 356, 2, 7071, 7069, 3, 2, 2, 2, 7072, 7075, 3, 2, 2, 2, 7073, 7071, 3, 2, 2, 2, 7073, 7074, 3, 2, 2, 2, 7074, 709, 3, 2, 2, 2, 7075, 7073, 3, 2, 2, 2, 7076, 7080, 5, 712, 357, 2, 7077, 7080, 7, 881, 2, 2, 7078, 7080, 7, 884, 2, 2, 7079, 7076, 3, 2, 2, 2, 7079, 7077, 3, 2, 2, 2, 7079, 7078, 3, 2, 2, 2, 7080, 711, 3, 2, 2, 2, 7081, 7091, 7, 892, 2, 2, 7082, 7091, 5, 828, 415, 2, 7083, 7091, 5, 830, 416, 2, 7084, 7091, 5, 698, 350, 2, 7085, 7091, 5, 832, 417, 2, 7086, 7091, 5, 834, 418, 2, 7087, 7091, 5, 836, 419, 2, 7088, 7091, 5, 838, 420, 2, 7089, 7091, 5, 800, 401, 2, 7090, 7081, 3, 2, 2, 2, 7090, 7082, 3, 2, 2, 2, 7090, 7083, 3, 2, 2, 2, 7090, 7084, 3, 2, 2, 2, 7090, 7085, 3, 2, 2, 2, 7090, 7086, 3, 2, 2, 2, 7090, 7087, 3, 2, 2, 2, 7090, 7088, 3, 2, 2, 2, 7090, 7089, 3, 2, 2, 2, 7091, 713, 3, 2, 2, 2, 7092, 7096, 7, 891, 2, 2, 7093, 7094, 7, 867, 2, 2, 7094, 7096, 5, 710, 356, 2, 7095, 7092, 3, 2, 2, 2, 7095, 7093, 3, 2, 2, 2, 7096, 715, 3, 2, 2, 2, 7097, 7098, 9, 115, 2, 2, 7098, 717, 3, 2, 2, 2, 7099, 7102, 7, 882, 2, 2, 7100, 7102, 5, 716, 359, 2, 7101, 7099, 3, 2, 2, 2, 7101, 7100, 3, 2, 2, 2, 7102, 719, 3, 2, 2, 2, 7103, 7105, 7, 890, 2, 2, 7104, 7103, 3, 2, 2, 2, 7104, 7105, 3, 2, 2, 2, 7105, 7106, 3, 2, 2, 2, 7106, 7109, 7, 884, 2, 2, 7107, 7109, 7, 883, 2, 2, 7108, 7104, 3, 2, 2, 2, 7108, 7107, 3, 2, 2, 2, 7109, 7111, 3, 2, 2, 2, 7110, 7112, 7, 884, 2, 2, 7111, 7110, 3, 2, 2, 2, 7112, 7113, 3, 2, 2, 2, 7113, 7111, 3, 2, 2, 2, 7113, 7114, 3, 2, 2, 2, 7114, 7127, 3, 2, 2, 2, 7115, 7117, 7, 890, 2, 2, 7116, 7115, 3, 2, 2, 2, 7116, 7117, 3, 2, 2, 2, 7117, 7118, 3, 2, 2, 2, 7118, 7121, 7, 884, 2, 2, 7119, 7121, 7, 883, 2, 2, 7120, 7116, 3, 2, 2, 2, 7120, 7119, 3, 2, 2, 2, 7121, 7124, 3, 2, 2, 2, 7122, 7123, 7, 30, 2, 2, 7123, 7125, 5, 694, 348, 2, 7124, 7122, 3, 2, 2, 2, 7124, 7125, 3, 2, 2, 2, 7125, 7127, 3, 2, 2, 2, 7126, 7108, 3, 2, 2, 2, 7126, 7120, 3, 2, 2, 2, 7127, 721, 3, 2, 2, 2, 7128, 7129, 9, 116, 2, 2, 7129, 723, 3, 2, 2, 2, 7130, 7132, 7, 890, 2, 2, 7131, 7130, 3, 2, 2, 2, 7131, 7132, 3, 2, 2, 2, 7132, 7133, 3, 2, 2, 2, 7133, 7134, 7, 886, 2, 2, 7134, 725, 3, 2, 2, 2, 7135, 7137, 7, 116, 2, 2, 7136, 7135, 3, 2, 2, 2, 7136, 7137, 3, 2, 2, 2, 7137, 7138, 3, 2, 2, 2, 7138, 7139, 9, 117, 2, 2, 7139, 727, 3, 2, 2, 2, 7140, 7153, 5, 720, 361, 2, 7141, 7153, 5, 716, 359, 2, 7142, 7143, 7, 856, 2, 2, 7143, 7153, 5, 716, 359, 2, 7144, 7153, 5, 724, 363, 2, 7145, 7153, 5, 722, 362, 2, 7146, 7153, 7, 887, 2, 2, 7147, 7153, 7, 889, 2, 2, 7148, 7150, 7, 116, 2, 2, 7149, 7148, 3, 2, 2, 2, 7149, 7150, 3, 2, 2, 2, 7150, 7151, 3, 2, 2, 2, 7151, 7153, 9, 117, 2, 2, 7152, 7140, 3, 2, 2, 2, 7152, 7141, 3, 2, 2, 2, 7152, 7142, 3, 2, 2, 2, 7152, 7144, 3, 2, 2, 2, 7152, 7145, 3, 2, 2, 2, 7152, 7146, 3, 2, 2, 2, 7152, 7147, 3, 2, 2, 2, 7152, 7149, 3, 2, 2, 2, 7153, 729, 3, 2, 2, 2, 7154, 7156, 9, 118, 2, 2, 7155, 7157, 7, 242, 2, 2, 7156, 7155, 3, 2, 2, 2, 7156, 7157, 3, 2, 2, 2, 7157, 7159, 3, 2, 2, 2, 7158, 7160, 5, 736, 369, 2, 7159, 7158, 3, 2, 2, 2, 7159, 7160, 3, 2, 2, 2, 7160, 7162, 3, 2, 2, 2, 7161, 7163, 7, 230, 2, 2, 7162, 7161, 3, 2, 2, 2, 7162, 7163, 3, 2, 2, 2, 7163, 7167, 3, 2, 2, 2, 7164, 7165, 5, 56, 29, 2, 7165, 7166, 5, 692, 347, 2, 7166, 7168, 3, 2, 2, 2, 7167, 7164, 3, 2, 2, 2, 7167, 7168, 3, 2, 2, 2, 7168, 7172, 3, 2, 2, 2, 7169, 7170, 7, 30, 2, 2, 7170, 7173, 5, 694, 348, 2, 7171, 7173, 7, 230, 2, 2, 7172, 7169, 3, 2, 2, 2, 7172, 7171, 3, 2, 2, 2, 7172, 7173, 3, 2, 2, 2, 7173, 7281, 3, 2, 2, 2, 7174, 7175, 7, 229, 2, 2, 7175, 7176, 9, 119, 2, 2, 7176, 7178, 7, 242, 2, 2, 7177, 7179, 5, 736, 369, 2, 7178, 7177, 3, 2, 2, 2, 7178, 7179, 3, 2, 2, 2, 7179, 7181, 3, 2, 2, 2, 7180, 7182, 7, 230, 2, 2, 7181, 7180, 3, 2, 2, 2, 7181, 7182, 3, 2, 2, 2, 7182, 7281, 3, 2, 2, 2, 7183, 7184, 7, 229, 2, 2, 7184, 7186, 9, 120, 2, 2, 7185, 7187, 5, 736, 369, 2, 7186, 7185, 3, 2, 2, 2, 7186, 7187, 3, 2, 2, 2, 7187, 7189, 3, 2, 2, 2, 7188, 7190, 7, 230, 2, 2, 7189, 7188, 3, 2, 2, 2, 7189, 7190, 3, 2, 2, 2, 7190, 7281, 3, 2, 2, 2, 7191, 7192, 7, 500, 2, 2, 7192, 7194, 7, 227, 2, 2, 7193, 7195, 5, 736, 369, 2, 7194, 7193, 3, 2, 2, 2, 7194, 7195, 3, 2, 2, 2, 7195, 7197, 3, 2, 2, 2, 7196, 7198, 7, 230, 2, 2, 7197, 7196, 3, 2, 2, 2, 7197, 7198, 3, 2, 2, 2, 7198, 7281, 3, 2, 2, 2, 7199, 7201, 9, 121, 2, 2, 7200, 7202, 5, 736, 369, 2, 7201, 7200, 3, 2, 2, 2, 7201, 7202, 3, 2, 2, 2, 7202, 7206, 3, 2, 2, 2, 7203, 7205, 9, 122, 2, 2, 7204, 7203, 3, 2, 2, 2, 7205, 7208, 3, 2, 2, 2, 7206, 7204, 3, 2, 2, 2, 7206, 7207, 3, 2, 2, 2, 7207, 7281, 3, 2, 2, 2, 7208, 7206, 3, 2, 2, 2, 7209, 7211, 7, 212, 2, 2, 7210, 7212, 5, 738, 370, 2, 7211, 7210, 3, 2, 2, 2, 7211, 7212, 3, 2, 2, 2, 7212, 7216, 3, 2, 2, 2, 7213, 7215, 9, 122, 2, 2, 7214, 7213, 3, 2, 2, 2, 7215, 7218, 3, 2, 2, 2, 7216, 7214, 3, 2, 2, 2, 7216, 7217, 3, 2, 2, 2, 7217, 7281, 3, 2, 2, 2, 7218, 7216, 3, 2, 2, 2, 7219, 7221, 7, 213, 2, 2, 7220, 7222, 7, 214, 2, 2, 7221, 7220, 3, 2, 2, 2, 7221, 7222, 3, 2, 2, 2, 7222, 7224, 3, 2, 2, 2, 7223, 7225, 5, 738, 370, 2, 7224, 7223, 3, 2, 2, 2, 7224, 7225, 3, 2, 2, 2, 7225, 7229, 3, 2, 2, 2, 7226, 7228, 9, 122, 2, 2, 7227, 7226, 3, 2, 2, 2, 7228, 7231, 3, 2, 2, 2, 7229, 7227, 3, 2, 2, 2, 7229, 7230, 3, 2, 2, 2, 7230, 7281, 3, 2, 2, 2, 7231, 7229, 3, 2, 2, 2, 7232, 7234, 9, 123, 2, 2, 7233, 7235, 5, 740, 371, 2, 7234, 7233, 3, 2, 2, 2, 7234, 7235, 3, 2, 2, 2, 7235, 7239, 3, 2, 2, 2, 7236, 7238, 9, 122, 2, 2, 7237, 7236, 3, 2, 2, 2, 7238, 7241, 3, 2, 2, 2, 7239, 7237, 3, 2, 2, 2, 7239, 7240, 3, 2, 2, 2, 7240, 7281, 3, 2, 2, 2, 7241, 7239, 3, 2, 2, 2, 7242, 7281, 9, 124, 2, 2, 7243, 7245, 9, 125, 2, 2, 7244, 7246, 5, 736, 369, 2, 7245, 7244, 3, 2, 2, 2, 7245, 7246, 3, 2, 2, 2, 7246, 7281, 3, 2, 2, 2, 7247, 7248, 9, 126, 2, 2, 7248, 7250, 5, 732, 367, 2, 7249, 7251, 7, 230, 2, 2, 7250, 7249, 3, 2, 2, 2, 7250, 7251, 3, 2, 2, 2, 7251, 7255, 3, 2, 2, 2, 7252, 7253, 5, 56, 29, 2, 7253, 7254, 5, 692, 347, 2, 7254, 7256, 3, 2, 2, 2, 7255, 7252, 3, 2, 2, 2, 7255, 7256, 3, 2, 2, 2, 7256, 7281, 3, 2, 2, 2, 7257, 7260, 9, 127, 2, 2, 7258, 7259, 7, 836, 2, 2, 7259, 7261, 5, 716, 359, 2, 7260, 7258, 3, 2, 2, 2, 7260, 7261, 3, 2, 2, 2, 7261, 7281, 3, 2, 2, 2, 7262, 7264, 7, 235, 2, 2, 7263, 7265, 7, 227, 2, 2, 7264, 7263, 3, 2, 2, 2, 7264, 7265, 3, 2, 2, 2, 7265, 7267, 3, 2, 2, 2, 7266, 7268, 7, 230, 2, 2, 7267, 7266, 3, 2, 2, 2, 7267, 7268, 3, 2, 2, 2, 7268, 7272, 3, 2, 2, 2, 7269, 7270, 5, 56, 29, 2, 7270, 7271, 5, 692, 347, 2, 7271, 7273, 3, 2, 2, 2, 7272, 7269, 3, 2, 2, 2, 7272, 7273, 3, 2, 2, 2, 7273, 7276, 3, 2, 2, 2, 7274, 7275, 7, 30, 2, 2, 7275, 7277, 5, 694, 348, 2, 7276, 7274, 3, 2, 2, 2, 7276, 7277, 3, 2, 2, 2, 7277, 7281, 3, 2, 2, 2, 7278, 7279, 7, 235, 2, 2, 7279, 7281, 7, 231, 2, 2, 7280, 7154, 3, 2, 2, 2, 7280, 7174, 3, 2, 2, 2, 7280, 7183, 3, 2, 2, 2, 7280, 7191, 3, 2, 2, 2, 7280, 7199, 3, 2, 2, 2, 7280, 7209, 3, 2, 2, 2, 7280, 7219, 3, 2, 2, 2, 7280, 7232, 3, 2, 2, 2, 7280, 7242, 3, 2, 2, 2, 7280, 7243, 3, 2, 2, 2, 7280, 7247, 3, 2, 2, 2, 7280, 7257, 3, 2, 2, 2, 7280, 7262, 3, 2, 2, 2, 7280, 7278, 3, 2, 2, 2, 7281, 731, 3, 2, 2, 2, 7282, 7283, 7, 868, 2, 2, 7283, 7288, 7, 884, 2, 2, 7284, 7285, 7, 870, 2, 2, 7285, 7287, 7, 884, 2, 2, 7286, 7284, 3, 2, 2, 2, 7287, 7290, 3, 2, 2, 2, 7288, 7286, 3, 2, 2, 2, 7288, 7289, 3, 2, 2, 2, 7289, 7291, 3, 2, 2, 2, 7290, 7288, 3, 2, 2, 2, 7291, 7292, 7, 869, 2, 2, 7292, 733, 3, 2, 2, 2, 7293, 7295, 9, 128, 2, 2, 7294, 7296, 5, 736, 369, 2, 7295, 7294, 3, 2, 2, 2, 7295, 7296, 3, 2, 2, 2, 7296, 7316, 3, 2, 2, 2, 7297, 7299, 7, 226, 2, 2, 7298, 7300, 5, 736, 369, 2, 7299, 7298, 3, 2, 2, 2, 7299, 7300, 3, 2, 2, 2, 7300, 7304, 3, 2, 2, 2, 7301, 7302, 5, 56, 29, 2, 7302, 7303, 5, 692, 347, 2, 7303, 7305, 3, 2, 2, 2, 7304, 7301, 3, 2, 2, 2, 7304, 7305, 3, 2, 2, 2, 7305, 7316, 3, 2, 2, 2, 7306, 7316, 9, 129, 2, 2, 7307, 7309, 9, 130, 2, 2, 7308, 7310, 5, 740, 371, 2, 7309, 7308, 3, 2, 2, 2, 7309, 7310, 3, 2, 2, 2, 7310, 7316, 3, 2, 2, 2, 7311, 7313, 9, 131, 2, 2, 7312, 7314, 9, 132, 2, 2, 7313, 7312, 3, 2, 2, 2, 7313, 7314, 3, 2, 2, 2, 7314, 7316, 3, 2, 2, 2, 7315, 7293, 3, 2, 2, 2, 7315, 7297, 3, 2, 2, 2, 7315, 7306, 3, 2, 2, 2, 7315, 7307, 3, 2, 2, 2, 7315, 7311, 3, 2, 2, 2, 7316, 7318, 3, 2, 2, 2, 7317, 7319, 7, 14, 2, 2, 7318, 7317, 3, 2, 2, 2, 7318, 7319, 3, 2, 2, 2, 7319, 735, 3, 2, 2, 2, 7320, 7321, 7, 868, 2, 2, 7321, 7322, 5, 716, 359, 2, 7322, 7323, 7, 869, 2, 2, 7323, 737, 3, 2, 2, 2, 7324, 7325, 7, 868, 2, 2, 7325, 7326, 5, 716, 359, 2, 7326, 7327, 7, 870, 2, 2, 7327, 7328, 5, 716, 359, 2, 7328, 7329, 7, 869, 2, 2, 7329, 739, 3, 2, 2, 2, 7330, 7331, 7, 868, 2, 2, 7331, 7334, 5, 716, 359, 2, 7332, 7333, 7, 870, 2, 2, 7333, 7335, 5, 716, 359, 2, 7334, 7332, 3, 2, 2, 2, 7334, 7335, 3, 2, 2, 2, 7335, 7336, 3, 2, 2, 2, 7336, 7337, 7, 869, 2, 2, 7337, 741, 3, 2, 2, 2, 7338, 7339, 7, 868, 2, 2, 7339, 7344, 5, 678, 340, 2, 7340, 7341, 7, 870, 2, 2, 7341, 7343, 5, 678, 340, 2, 7342, 7340, 3, 2, 2, 2, 7343, 7346, 3, 2, 2, 2, 7344, 7342, 3, 2, 2, 2, 7344, 7345, 3, 2, 2, 2, 7345, 7347, 3, 2, 2, 2, 7346, 7344, 3, 2, 2, 2, 7347, 7348, 7, 869, 2, 2, 7348, 743, 3, 2, 2, 2, 7349, 7354, 5, 808, 405, 2, 7350, 7351, 7, 870, 2, 2, 7351, 7353, 5, 808, 405, 2, 7352, 7350, 3, 2, 2, 2, 7353, 7356, 3, 2, 2, 2, 7354, 7352, 3, 2, 2, 2, 7354, 7355, 3, 2, 2, 2, 7355, 745, 3, 2, 2, 2, 7356, 7354, 3, 2, 2, 2, 7357, 7358, 9, 133, 2, 2, 7358, 7363, 5, 748, 375, 2, 7359, 7360, 7, 870, 2, 2, 7360, 7362, 5, 748, 375, 2, 7361, 7359, 3, 2, 2, 2, 7362, 7365, 3, 2, 2, 2, 7363, 7361, 3, 2, 2, 2, 7363, 7364, 3, 2, 2, 2, 7364, 747, 3, 2, 2, 2, 7365, 7363, 3, 2, 2, 2, 7366, 7367, 7, 868, 2, 2, 7367, 7372, 5, 750, 376, 2, 7368, 7369, 7, 870, 2, 2, 7369, 7371, 5, 750, 376, 2, 7370, 7368, 3, 2, 2, 2, 7371, 7374, 3, 2, 2, 2, 7372, 7370, 3, 2, 2, 2, 7372, 7373, 3, 2, 2, 2, 7373, 7375, 3, 2, 2, 2, 7374, 7372, 3, 2, 2, 2, 7375, 7376, 7, 869, 2, 2, 7376, 749, 3, 2, 2, 2, 7377, 7380, 5, 808, 405, 2, 7378, 7380, 7, 44, 2, 2, 7379, 7377, 3, 2, 2, 2, 7379, 7378, 3, 2, 2, 2, 7380, 751, 3, 2, 2, 2, 7381, 7386, 5, 728, 365, 2, 7382, 7383, 7, 870, 2, 2, 7383, 7385, 5, 728, 365, 2, 7384, 7382, 3, 2, 2, 2, 7385, 7388, 3, 2, 2, 2, 7386, 7384, 3, 2, 2, 2, 7386, 7387, 3, 2, 2, 2, 7387, 753, 3, 2, 2, 2, 7388, 7386, 3, 2, 2, 2, 7389, 7394, 7, 884, 2, 2, 7390, 7391, 7, 870, 2, 2, 7391, 7393, 7, 884, 2, 2, 7392, 7390, 3, 2, 2, 2, 7393, 7396, 3, 2, 2, 2, 7394, 7392, 3, 2, 2, 2, 7394, 7395, 3, 2, 2, 2, 7395, 755, 3, 2, 2, 2, 7396, 7394, 3, 2, 2, 2, 7397, 7402, 7, 895, 2, 2, 7398, 7399, 7, 870, 2, 2, 7399, 7401, 7, 895, 2, 2, 7400, 7398, 3, 2, 2, 2, 7401, 7404, 3, 2, 2, 2, 7402, 7400, 3, 2, 2, 2, 7402, 7403, 3, 2, 2, 2, 7403, 757, 3, 2, 2, 2, 7404, 7402, 3, 2, 2, 2, 7405, 7432, 7, 118, 2, 2, 7406, 7407, 7, 26, 2, 2, 7407, 7408, 7, 868, 2, 2, 7408, 7409, 5, 808, 405, 2, 7409, 7410, 7, 15, 2, 2, 7410, 7411, 5, 734, 368, 2, 7411, 7412, 7, 869, 2, 2, 7412, 7432, 3, 2, 2, 2, 7413, 7415, 5, 814, 408, 2, 7414, 7413, 3, 2, 2, 2, 7414, 7415, 3, 2, 2, 2, 7415, 7416, 3, 2, 2, 2, 7416, 7432, 5, 728, 365, 2, 7417, 7421, 5, 760, 381, 2, 7418, 7419, 7, 121, 2, 2, 7419, 7420, 7, 187, 2, 2, 7420, 7422, 5, 760, 381, 2, 7421, 7418, 3, 2, 2, 2, 7421, 7422, 3, 2, 2, 2, 7422, 7432, 3, 2, 2, 2, 7423, 7424, 7, 868, 2, 2, 7424, 7425, 5, 808, 405, 2, 7425, 7426, 7, 869, 2, 2, 7426, 7432, 3, 2, 2, 2, 7427, 7428, 7, 868, 2, 2, 7428, 7429, 5, 706, 354, 2, 7429, 7430, 7, 869, 2, 2, 7430, 7432, 3, 2, 2, 2, 7431, 7405, 3, 2, 2, 2, 7431, 7406, 3, 2, 2, 2, 7431, 7414, 3, 2, 2, 2, 7431, 7417, 3, 2, 2, 2, 7431, 7423, 3, 2, 2, 2, 7431, 7427, 3, 2, 2, 2, 7432, 759, 3, 2, 2, 2, 7433, 7439, 9, 134, 2, 2, 7434, 7436, 7, 868, 2, 2, 7435, 7437, 5, 716, 359, 2, 7436, 7435, 3, 2, 2, 2, 7436, 7437, 3, 2, 2, 2, 7437, 7438, 3, 2, 2, 2, 7438, 7440, 7, 869, 2, 2, 7439, 7434, 3, 2, 2, 2, 7439, 7440, 3, 2, 2, 2, 7440, 7448, 3, 2, 2, 2, 7441, 7442, 7, 297, 2, 2, 7442, 7444, 7, 868, 2, 2, 7443, 7445, 5, 716, 359, 2, 7444, 7443, 3, 2, 2, 2, 7444, 7445, 3, 2, 2, 2, 7445, 7446, 3, 2, 2, 2, 7446, 7448, 7, 869, 2, 2, 7447, 7433, 3, 2, 2, 2, 7447, 7441, 3, 2, 2, 2, 7448, 761, 3, 2, 2, 2, 7449, 7450, 7, 80, 2, 2, 7450, 7451, 7, 62, 2, 2, 7451, 763, 3, 2, 2, 2, 7452, 7453, 7, 80, 2, 2, 7453, 7454, 7, 116, 2, 2, 7454, 7455, 7, 62, 2, 2, 7455, 765, 3, 2, 2, 2, 7456, 7457, 7, 126, 2, 2, 7457, 7458, 7, 145, 2, 2, 7458, 767, 3, 2, 2, 2, 7459, 7478, 5, 770, 386, 2, 7460, 7478, 5, 778, 390, 2, 7461, 7478, 5, 780, 391, 2, 7462, 7463, 5, 800, 401, 2, 7463, 7465, 7, 868, 2, 2, 7464, 7466, 5, 804, 403, 2, 7465, 7464, 3, 2, 2, 2, 7465, 7466, 3, 2, 2, 2, 7466, 7467, 3, 2, 2, 2, 7467, 7468, 7, 869, 2, 2, 7468, 7478, 3, 2, 2, 2, 7469, 7470, 5, 706, 354, 2, 7470, 7472, 7, 868, 2, 2, 7471, 7473, 5, 804, 403, 2, 7472, 7471, 3, 2, 2, 2, 7472, 7473, 3, 2, 2, 2, 7473, 7474, 3, 2, 2, 2, 7474, 7475, 7, 869, 2, 2, 7475, 7478, 3, 2, 2, 2, 7476, 7478, 5, 802, 402, 2, 7477, 7459, 3, 2, 2, 2, 7477, 7460, 3, 2, 2, 2, 7477, 7461, 3, 2, 2, 2, 7477, 7462, 3, 2, 2, 2, 7477, 7469, 3, 2, 2, 2, 7477, 7476, 3, 2, 2, 2, 7478, 769, 3, 2, 2, 2, 7479, 7482, 9, 135, 2, 2, 7480, 7481, 7, 868, 2, 2, 7481, 7483, 7, 869, 2, 2, 7482, 7480, 3, 2, 2, 2, 7482, 7483, 3, 2, 2, 2, 7483, 7659, 3, 2, 2, 2, 7484, 7659, 5, 58, 30, 2, 7485, 7486, 7, 35, 2, 2, 7486, 7487, 7, 868, 2, 2, 7487, 7488, 5, 808, 405, 2, 7488, 7489, 7, 870, 2, 2, 7489, 7490, 5, 734, 368, 2, 7490, 7491, 7, 869, 2, 2, 7491, 7659, 3, 2, 2, 2, 7492, 7493, 7, 35, 2, 2, 7493, 7494, 7, 868, 2, 2, 7494, 7495, 5, 808, 405, 2, 7495, 7496, 7, 190, 2, 2, 7496, 7497, 5, 692, 347, 2, 7497, 7498, 7, 869, 2, 2, 7498, 7659, 3, 2, 2, 2, 7499, 7500, 7, 26, 2, 2, 7500, 7501, 7, 868, 2, 2, 7501, 7502, 5, 808, 405, 2, 7502, 7503, 7, 15, 2, 2, 7503, 7504, 5, 734, 368, 2, 7504, 7505, 7, 869, 2, 2, 7505, 7659, 3, 2, 2, 2, 7506, 7507, 7, 191, 2, 2, 7507, 7508, 7, 868, 2, 2, 7508, 7509, 5, 666, 334, 2, 7509, 7510, 7, 869, 2, 2, 7510, 7659, 3, 2, 2, 2, 7511, 7512, 7, 25, 2, 2, 7512, 7514, 5, 808, 405, 2, 7513, 7515, 5, 772, 387, 2, 7514, 7513, 3, 2, 2, 2, 7515, 7516, 3, 2, 2, 2, 7516, 7514, 3, 2, 2, 2, 7516, 7517, 3, 2, 2, 2, 7517, 7520, 3, 2, 2, 2, 7518, 7519, 7, 55, 2, 2, 7519, 7521, 5, 806, 404, 2, 7520, 7518, 3, 2, 2, 2, 7520, 7521, 3, 2, 2, 2, 7521, 7522, 3, 2, 2, 2, 7522, 7523, 7, 380, 2, 2, 7523, 7659, 3, 2, 2, 2, 7524, 7526, 7, 25, 2, 2, 7525, 7527, 5, 772, 387, 2, 7526, 7525, 3, 2, 2, 2, 7527, 7528, 3, 2, 2, 2, 7528, 7526, 3, 2, 2, 2, 7528, 7529, 3, 2, 2, 2, 7529, 7532, 3, 2, 2, 2, 7530, 7531, 7, 55, 2, 2, 7531, 7533, 5, 806, 404, 2, 7532, 7530, 3, 2, 2, 2, 7532, 7533, 3, 2, 2, 2, 7533, 7534, 3, 2, 2, 2, 7534, 7535, 7, 380, 2, 2, 7535, 7659, 3, 2, 2, 2, 7536, 7537, 7, 226, 2, 2, 7537, 7538, 7, 868, 2, 2, 7538, 7541, 5, 804, 403, 2, 7539, 7540, 7, 190, 2, 2, 7540, 7542, 5, 692, 347, 2, 7541, 7539, 3, 2, 2, 2, 7541, 7542, 3, 2, 2, 2, 7542, 7543, 3, 2, 2, 2, 7543, 7544, 7, 869, 2, 2, 7544, 7659, 3, 2, 2, 2, 7545, 7546, 7, 298, 2, 2, 7546, 7549, 7, 868, 2, 2, 7547, 7550, 5, 720, 361, 2, 7548, 7550, 5, 808, 405, 2, 7549, 7547, 3, 2, 2, 2, 7549, 7548, 3, 2, 2, 2, 7550, 7551, 3, 2, 2, 2, 7551, 7554, 7, 82, 2, 2, 7552, 7555, 5, 720, 361, 2, 7553, 7555, 5, 808, 405, 2, 7554, 7552, 3, 2, 2, 2, 7554, 7553, 3, 2, 2, 2, 7555, 7556, 3, 2, 2, 2, 7556, 7557, 7, 869, 2, 2, 7557, 7659, 3, 2, 2, 2, 7558, 7559, 9, 136, 2, 2, 7559, 7562, 7, 868, 2, 2, 7560, 7563, 5, 720, 361, 2, 7561, 7563, 5, 808, 405, 2, 7562, 7560, 3, 2, 2, 2, 7562, 7561, 3, 2, 2, 2, 7563, 7564, 3, 2, 2, 2, 7564, 7567, 7, 70, 2, 2, 7565, 7568, 5, 716, 359, 2, 7566, 7568, 5, 808, 405, 2, 7567, 7565, 3, 2, 2, 2, 7567, 7566, 3, 2, 2, 2, 7568, 7574, 3, 2, 2, 2, 7569, 7572, 7, 67, 2, 2, 7570, 7573, 5, 716, 359, 2, 7571, 7573, 5, 808, 405, 2, 7572, 7570, 3, 2, 2, 2, 7572, 7571, 3, 2, 2, 2, 7573, 7575, 3, 2, 2, 2, 7574, 7569, 3, 2, 2, 2, 7574, 7575, 3, 2, 2, 2, 7575, 7576, 3, 2, 2, 2, 7576, 7577, 7, 869, 2, 2, 7577, 7659, 3, 2, 2, 2, 7578, 7579, 7, 302, 2, 2, 7579, 7580, 7, 868, 2, 2, 7580, 7583, 9, 137, 2, 2, 7581, 7584, 5, 720, 361, 2, 7582, 7584, 5, 808, 405, 2, 7583, 7581, 3, 2, 2, 2, 7583, 7582, 3, 2, 2, 2, 7583, 7584, 3, 2, 2, 2, 7584, 7585, 3, 2, 2, 2, 7585, 7588, 7, 70, 2, 2, 7586, 7589, 5, 720, 361, 2, 7587, 7589, 5, 808, 405, 2, 7588, 7586, 3, 2, 2, 2, 7588, 7587, 3, 2, 2, 2, 7589, 7590, 3, 2, 2, 2, 7590, 7591, 7, 869, 2, 2, 7591, 7659, 3, 2, 2, 2, 7592, 7593, 7, 302, 2, 2, 7593, 7596, 7, 868, 2, 2, 7594, 7597, 5, 720, 361, 2, 7595, 7597, 5, 808, 405, 2, 7596, 7594, 3, 2, 2, 2, 7596, 7595, 3, 2, 2, 2, 7597, 7598, 3, 2, 2, 2, 7598, 7601, 7, 70, 2, 2, 7599, 7602, 5, 720, 361, 2, 7600, 7602, 5, 808, 405, 2, 7601, 7599, 3, 2, 2, 2, 7601, 7600, 3, 2, 2, 2, 7602, 7603, 3, 2, 2, 2, 7603, 7604, 7, 869, 2, 2, 7604, 7659, 3, 2, 2, 2, 7605, 7606, 7, 842, 2, 2, 7606, 7609, 7, 868, 2, 2, 7607, 7610, 5, 720, 361, 2, 7608, 7610, 5, 808, 405, 2, 7609, 7607, 3, 2, 2, 2, 7609, 7608, 3, 2, 2, 2, 7610, 7617, 3, 2, 2, 2, 7611, 7612, 7, 15, 2, 2, 7612, 7613, 9, 138, 2, 2, 7613, 7614, 7, 868, 2, 2, 7614, 7615, 5, 716, 359, 2, 7615, 7616, 7, 869, 2, 2, 7616, 7618, 3, 2, 2, 2, 7617, 7611, 3, 2, 2, 2, 7617, 7618, 3, 2, 2, 2, 7618, 7620, 3, 2, 2, 2, 7619, 7621, 5, 774, 388, 2, 7620, 7619, 3, 2, 2, 2, 7620, 7621, 3, 2, 2, 2, 7621, 7622, 3, 2, 2, 2, 7622, 7623, 7, 869, 2, 2, 7623, 7659, 3, 2, 2, 2, 7624, 7625, 7, 295, 2, 2, 7625, 7626, 7, 868, 2, 2, 7626, 7627, 5, 68, 35, 2, 7627, 7630, 7, 70, 2, 2, 7628, 7631, 5, 720, 361, 2, 7629, 7631, 5, 808, 405, 2, 7630, 7628, 3, 2, 2, 2, 7630, 7629, 3, 2, 2, 2, 7631, 7632, 3, 2, 2, 2, 7632, 7633, 7, 869, 2, 2, 7633, 7659, 3, 2, 2, 2, 7634, 7635, 7, 829, 2, 2, 7635, 7636, 7, 868, 2, 2, 7636, 7637, 9, 139, 2, 2, 7637, 7638, 7, 870, 2, 2, 7638, 7639, 5, 720, 361, 2, 7639, 7640, 7, 869, 2, 2, 7640, 7659, 3, 2, 2, 2, 7641, 7642, 7, 256, 2, 2, 7642, 7643, 7, 868, 2, 2, 7643, 7644, 5, 808, 405, 2, 7644, 7645, 7, 870, 2, 2, 7645, 7648, 5, 808, 405, 2, 7646, 7647, 7, 581, 2, 2, 7647, 7649, 5, 734, 368, 2, 7648, 7646, 3, 2, 2, 2, 7648, 7649, 3, 2, 2, 2, 7649, 7651, 3, 2, 2, 2, 7650, 7652, 5, 294, 148, 2, 7651, 7650, 3, 2, 2, 2, 7651, 7652, 3, 2, 2, 2, 7652, 7654, 3, 2, 2, 2, 7653, 7655, 5, 296, 149, 2, 7654, 7653, 3, 2, 2, 2, 7654, 7655, 3, 2, 2, 2, 7655, 7656, 3, 2, 2, 2, 7656, 7657, 7, 869, 2, 2, 7657, 7659, 3, 2, 2, 2, 7658, 7479, 3, 2, 2, 2, 7658, 7484, 3, 2, 2, 2, 7658, 7485, 3, 2, 2, 2, 7658, 7492, 3, 2, 2, 2, 7658, 7499, 3, 2, 2, 2, 7658, 7506, 3, 2, 2, 2, 7658, 7511, 3, 2, 2, 2, 7658, 7524, 3, 2, 2, 2, 7658, 7536, 3, 2, 2, 2, 7658, 7545, 3, 2, 2, 2, 7658, 7558, 3, 2, 2, 2, 7658, 7578, 3, 2, 2, 2, 7658, 7592, 3, 2, 2, 2, 7658, 7605, 3, 2, 2, 2, 7658, 7624, 3, 2, 2, 2, 7658, 7634, 3, 2, 2, 2, 7658, 7641, 3, 2, 2, 2, 7659, 771, 3, 2, 2, 2, 7660, 7661, 7, 193, 2, 2, 7661, 7662, 5, 806, 404, 2, 7662, 7663, 7, 177, 2, 2, 7663, 7664, 5, 806, 404, 2, 7664, 773, 3, 2, 2, 2, 7665, 7666, 7, 450, 2, 2, 7666, 7671, 5, 776, 389, 2, 7667, 7668, 7, 870, 2, 2, 7668, 7670, 5, 776, 389, 2, 7669, 7667, 3, 2, 2, 2, 7670, 7673, 3, 2, 2, 2, 7671, 7669, 3, 2, 2, 2, 7671, 7672, 3, 2, 2, 2, 7672, 7680, 3, 2, 2, 2, 7673, 7671, 3, 2, 2, 2, 7674, 7675, 7, 450, 2, 2, 7675, 7676, 5, 716, 359, 2, 7676, 7677, 7, 856, 2, 2, 7677, 7678, 5, 716, 359, 2, 7678, 7680, 3, 2, 2, 2, 7679, 7665, 3, 2, 2, 2, 7679, 7674, 3, 2, 2, 2, 7680, 775, 3, 2, 2, 2, 7681, 7683, 5, 716, 359, 2, 7682, 7684, 9, 140, 2, 2, 7683, 7682, 3, 2, 2, 2, 7683, 7684, 3, 2, 2, 2, 7684, 777, 3, 2, 2, 2, 7685, 7686, 9, 141, 2, 2, 7686, 7688, 7, 868, 2, 2, 7687, 7689, 9, 46, 2, 2, 7688, 7687, 3, 2, 2, 2, 7688, 7689, 3, 2, 2, 2, 7689, 7690, 3, 2, 2, 2, 7690, 7691, 5, 806, 404, 2, 7691, 7693, 7, 869, 2, 2, 7692, 7694, 5, 782, 392, 2, 7693, 7692, 3, 2, 2, 2, 7693, 7694, 3, 2, 2, 2, 7694, 7745, 3, 2, 2, 2, 7695, 7696, 7, 264, 2, 2, 7696, 7704, 7, 868, 2, 2, 7697, 7705, 7, 852, 2, 2, 7698, 7700, 7, 9, 2, 2, 7699, 7698, 3, 2, 2, 2, 7699, 7700, 3, 2, 2, 2, 7700, 7701, 3, 2, 2, 2, 7701, 7705, 5, 806, 404, 2, 7702, 7703, 7, 51, 2, 2, 7703, 7705, 5, 804, 403, 2, 7704, 7697, 3, 2, 2, 2, 7704, 7699, 3, 2, 2, 2, 7704, 7702, 3, 2, 2, 2, 7705, 7706, 3, 2, 2, 2, 7706, 7708, 7, 869, 2, 2, 7707, 7709, 5, 782, 392, 2, 7708, 7707, 3, 2, 2, 2, 7708, 7709, 3, 2, 2, 2, 7709, 7745, 3, 2, 2, 2, 7710, 7711, 9, 142, 2, 2, 7711, 7713, 7, 868, 2, 2, 7712, 7714, 7, 9, 2, 2, 7713, 7712, 3, 2, 2, 2, 7713, 7714, 3, 2, 2, 2, 7714, 7715, 3, 2, 2, 2, 7715, 7716, 5, 806, 404, 2, 7716, 7718, 7, 869, 2, 2, 7717, 7719, 5, 782, 392, 2, 7718, 7717, 3, 2, 2, 2, 7718, 7719, 3, 2, 2, 2, 7719, 7745, 3, 2, 2, 2, 7720, 7721, 7, 268, 2, 2, 7721, 7723, 7, 868, 2, 2, 7722, 7724, 7, 51, 2, 2, 7723, 7722, 3, 2, 2, 2, 7723, 7724, 3, 2, 2, 2, 7724, 7725, 3, 2, 2, 2, 7725, 7736, 5, 804, 403, 2, 7726, 7727, 7, 127, 2, 2, 7727, 7728, 7, 22, 2, 2, 7728, 7733, 5, 256, 129, 2, 7729, 7730, 7, 870, 2, 2, 7730, 7732, 5, 256, 129, 2, 7731, 7729, 3, 2, 2, 2, 7732, 7735, 3, 2, 2, 2, 7733, 7731, 3, 2, 2, 2, 7733, 7734, 3, 2, 2, 2, 7734, 7737, 3, 2, 2, 2, 7735, 7733, 3, 2, 2, 2, 7736, 7726, 3, 2, 2, 2, 7736, 7737, 3, 2, 2, 2, 7737, 7740, 3, 2, 2, 2, 7738, 7739, 7, 158, 2, 2, 7739, 7741, 7, 884, 2, 2, 7740, 7738, 3, 2, 2, 2, 7740, 7741, 3, 2, 2, 2, 7741, 7742, 3, 2, 2, 2, 7742, 7743, 7, 869, 2, 2, 7743, 7745, 3, 2, 2, 2, 7744, 7685, 3, 2, 2, 2, 7744, 7695, 3, 2, 2, 2, 7744, 7710, 3, 2, 2, 2, 7744, 7720, 3, 2, 2, 2, 7745, 779, 3, 2, 2, 2, 7746, 7747, 9, 143, 2, 2, 7747, 7748, 7, 868, 2, 2, 7748, 7751, 5, 808, 405, 2, 7749, 7750, 7, 870, 2, 2, 7750, 7752, 5, 716, 359, 2, 7751, 7749, 3, 2, 2, 2, 7751, 7752, 3, 2, 2, 2, 7752, 7755, 3, 2, 2, 2, 7753, 7754, 7, 870, 2, 2, 7754, 7756, 5, 716, 359, 2, 7755, 7753, 3, 2, 2, 2, 7755, 7756, 3, 2, 2, 2, 7756, 7757, 3, 2, 2, 2, 7757, 7758, 7, 869, 2, 2, 7758, 7759, 5, 782, 392, 2, 7759, 7785, 3, 2, 2, 2, 7760, 7761, 9, 144, 2, 2, 7761, 7762, 7, 868, 2, 2, 7762, 7763, 5, 808, 405, 2, 7763, 7764, 7, 869, 2, 2, 7764, 7765, 5, 782, 392, 2, 7765, 7785, 3, 2, 2, 2, 7766, 7767, 9, 145, 2, 2, 7767, 7768, 7, 868, 2, 2, 7768, 7769, 7, 869, 2, 2, 7769, 7785, 5, 782, 392, 2, 7770, 7771, 7, 275, 2, 2, 7771, 7772, 7, 868, 2, 2, 7772, 7773, 5, 808, 405, 2, 7773, 7774, 7, 870, 2, 2, 7774, 7775, 5, 716, 359, 2, 7775, 7776, 7, 869, 2, 2, 7776, 7777, 5, 782, 392, 2, 7777, 7785, 3, 2, 2, 2, 7778, 7779, 7, 274, 2, 2, 7779, 7780, 7, 868, 2, 2, 7780, 7781, 5, 716, 359, 2, 7781, 7782, 7, 869, 2, 2, 7782, 7783, 5, 782, 392, 2, 7783, 7785, 3, 2, 2, 2, 7784, 7746, 3, 2, 2, 2, 7784, 7760, 3, 2, 2, 2, 7784, 7766, 3, 2, 2, 2, 7784, 7770, 3, 2, 2, 2, 7784, 7778, 3, 2, 2, 2, 7785, 781, 3, 2, 2, 2, 7786, 7792, 7, 131, 2, 2, 7787, 7788, 7, 868, 2, 2, 7788, 7789, 5, 784, 393, 2, 7789, 7790, 7, 869, 2, 2, 7790, 7793, 3, 2, 2, 2, 7791, 7793, 5, 786, 394, 2, 7792, 7787, 3, 2, 2, 2, 7792, 7791, 3, 2, 2, 2, 7793, 783, 3, 2, 2, 2, 7794, 7796, 5, 786, 394, 2, 7795, 7794, 3, 2, 2, 2, 7795, 7796, 3, 2, 2, 2, 7796, 7798, 3, 2, 2, 2, 7797, 7799, 5, 798, 400, 2, 7798, 7797, 3, 2, 2, 2, 7798, 7799, 3, 2, 2, 2, 7799, 7801, 3, 2, 2, 2, 7800, 7802, 5, 254, 128, 2, 7801, 7800, 3, 2, 2, 2, 7801, 7802, 3, 2, 2, 2, 7802, 7804, 3, 2, 2, 2, 7803, 7805, 5, 788, 395, 2, 7804, 7803, 3, 2, 2, 2, 7804, 7805, 3, 2, 2, 2, 7805, 785, 3, 2, 2, 2, 7806, 7807, 5, 710, 356, 2, 7807, 787, 3, 2, 2, 2, 7808, 7809, 5, 790, 396, 2, 7809, 7810, 5, 792, 397, 2, 7810, 789, 3, 2, 2, 2, 7811, 7812, 9, 146, 2, 2, 7812, 791, 3, 2, 2, 2, 7813, 7816, 5, 796, 399, 2, 7814, 7816, 5, 794, 398, 2, 7815, 7813, 3, 2, 2, 2, 7815, 7814, 3, 2, 2, 2, 7816, 793, 3, 2, 2, 2, 7817, 7818, 7, 19, 2, 2, 7818, 7819, 5, 796, 399, 2, 7819, 7820, 7, 13, 2, 2, 7820, 7821, 5, 796, 399, 2, 7821, 795, 3, 2, 2, 2, 7822, 7823, 7, 38, 2, 2, 7823, 7830, 7, 588, 2, 2, 7824, 7825, 7, 671, 2, 2, 7825, 7830, 9, 147, 2, 2, 7826, 7827, 5, 808, 405, 2, 7827, 7828, 9, 147, 2, 2, 7828, 7830, 3, 2, 2, 2, 7829, 7822, 3, 2, 2, 2, 7829, 7824, 3, 2, 2, 2, 7829, 7826, 3, 2, 2, 2, 7830, 797, 3, 2, 2, 2, 7831, 7832, 7, 132, 2, 2, 7832, 7833, 7, 22, 2, 2, 7833, 7838, 5, 808, 405, 2, 7834, 7835, 7, 870, 2, 2, 7835, 7837, 5, 808, 405, 2, 7836, 7834, 3, 2, 2, 2, 7837, 7840, 3, 2, 2, 2, 7838, 7836, 3, 2, 2, 2, 7838, 7839, 3, 2, 2, 2, 7839, 799, 3, 2, 2, 2, 7840, 7838, 3, 2, 2, 2, 7841, 7866, 5, 840, 421, 2, 7842, 7866, 7, 759, 2, 2, 7843, 7866, 7, 291, 2, 2, 7844, 7866, 7, 287, 2, 2, 7845, 7866, 7, 288, 2, 2, 7846, 7866, 7, 289, 2, 2, 7847, 7866, 7, 292, 2, 2, 7848, 7866, 7, 293, 2, 2, 7849, 7866, 7, 294, 2, 2, 7850, 7866, 7, 80, 2, 2, 7851, 7866, 7, 88, 2, 2, 7852, 7866, 7, 290, 2, 2, 7853, 7866, 7, 296, 2, 2, 7854, 7866, 7, 490, 2, 2, 7855, 7866, 7, 297, 2, 2, 7856, 7866, 7, 144, 2, 2, 7857, 7866, 7, 145, 2, 2, 7858, 7866, 7, 299, 2, 2, 7859, 7866, 7, 300, 2, 2, 7860, 7866, 7, 301, 2, 2, 7861, 7866, 7, 302, 2, 2, 7862, 7866, 7, 303, 2, 2, 7863, 7866, 7, 304, 2, 2, 7864, 7866, 7, 305, 2, 2, 7865, 7841, 3, 2, 2, 2, 7865, 7842, 3, 2, 2, 2, 7865, 7843, 3, 2, 2, 2, 7865, 7844, 3, 2, 2, 2, 7865, 7845, 3, 2, 2, 2, 7865, 7846, 3, 2, 2, 2, 7865, 7847, 3, 2, 2, 2, 7865, 7848, 3, 2, 2, 2, 7865, 7849, 3, 2, 2, 2, 7865, 7850, 3, 2, 2, 2, 7865, 7851, 3, 2, 2, 2, 7865, 7852, 3, 2, 2, 2, 7865, 7853, 3, 2, 2, 2, 7865, 7854, 3, 2, 2, 2, 7865, 7855, 3, 2, 2, 2, 7865, 7856, 3, 2, 2, 2, 7865, 7857, 3, 2, 2, 2, 7865, 7858, 3, 2, 2, 2, 7865, 7859, 3, 2, 2, 2, 7865, 7860, 3, 2, 2, 2, 7865, 7861, 3, 2, 2, 2, 7865, 7862, 3, 2, 2, 2, 7865, 7863, 3, 2, 2, 2, 7865, 7864, 3, 2, 2, 2, 7866, 801, 3, 2, 2, 2, 7867, 7868, 9, 148, 2, 2, 7868, 7869, 7, 868, 2, 2, 7869, 7870, 5, 806, 404, 2, 7870, 7871, 7, 869, 2, 2, 7871, 803, 3, 2, 2, 2, 7872, 7877, 5, 806, 404, 2, 7873, 7874, 7, 870, 2, 2, 7874, 7876, 5, 806, 404, 2, 7875, 7873, 3, 2, 2, 2, 7876, 7879, 3, 2, 2, 2, 7877, 7875, 3, 2, 2, 2, 7877, 7878, 3, 2, 2, 2, 7878, 805, 3, 2, 2, 2, 7879, 7877, 3, 2, 2, 2, 7880, 7885, 5, 728, 365, 2, 7881, 7885, 5, 666, 334, 2, 7882, 7885, 5, 768, 385, 2, 7883, 7885, 5, 808, 405, 2, 7884, 7880, 3, 2, 2, 2, 7884, 7881, 3, 2, 2, 2, 7884, 7882, 3, 2, 2, 2, 7884, 7883, 3, 2, 2, 2, 7885, 807, 3, 2, 2, 2, 7886, 7887, 8, 405, 1, 2, 7887, 7888, 9, 149, 2, 2, 7888, 7898, 5, 808, 405, 6, 7889, 7890, 5, 810, 406, 2, 7890, 7892, 7, 91, 2, 2, 7891, 7893, 7, 116, 2, 2, 7892, 7891, 3, 2, 2, 2, 7892, 7893, 3, 2, 2, 2, 7893, 7894, 3, 2, 2, 2, 7894, 7895, 9, 150, 2, 2, 7895, 7898, 3, 2, 2, 2, 7896, 7898, 5, 810, 406, 2, 7897, 7886, 3, 2, 2, 2, 7897, 7889, 3, 2, 2, 2, 7897, 7896, 3, 2, 2, 2, 7898, 7905, 3, 2, 2, 2, 7899, 7900, 12, 5, 2, 2, 7900, 7901, 5, 820, 411, 2, 7901, 7902, 5, 808, 405, 6, 7902, 7904, 3, 2, 2, 2, 7903, 7899, 3, 2, 2, 2, 7904, 7907, 3, 2, 2, 2, 7905, 7903, 3, 2, 2, 2, 7905, 7906, 3, 2, 2, 2, 7906, 809, 3, 2, 2, 2, 7907, 7905, 3, 2, 2, 2, 7908, 7909, 8, 406, 1, 2, 7909, 7910, 5, 812, 407, 2, 7910, 7975, 3, 2, 2, 2, 7911, 7912, 12, 10, 2, 2, 7912, 7913, 5, 816, 409, 2, 7913, 7914, 5, 810, 406, 11, 7914, 7974, 3, 2, 2, 2, 7915, 7917, 12, 8, 2, 2, 7916, 7918, 7, 116, 2, 2, 7917, 7916, 3, 2, 2, 2, 7917, 7918, 3, 2, 2, 2, 7918, 7919, 3, 2, 2, 2, 7919, 7920, 7, 19, 2, 2, 7920, 7921, 5, 810, 406, 2, 7921, 7922, 7, 13, 2, 2, 7922, 7923, 5, 810, 406, 9, 7923, 7974, 3, 2, 2, 2, 7924, 7925, 12, 7, 2, 2, 7925, 7926, 7, 606, 2, 2, 7926, 7927, 7, 101, 2, 2, 7927, 7974, 5, 810, 406, 8, 7928, 7930, 12, 5, 2, 2, 7929, 7931, 7, 116, 2, 2, 7930, 7929, 3, 2, 2, 2, 7930, 7931, 3, 2, 2, 2, 7931, 7932, 3, 2, 2, 2, 7932, 7933, 9, 151, 2, 2, 7933, 7974, 5, 810, 406, 6, 7934, 7936, 12, 12, 2, 2, 7935, 7937, 7, 116, 2, 2, 7936, 7935, 3, 2, 2, 2, 7936, 7937, 3, 2, 2, 2, 7937, 7938, 3, 2, 2, 2, 7938, 7939, 7, 82, 2, 2, 7939, 7942, 7, 868, 2, 2, 7940, 7943, 5, 206, 104, 2, 7941, 7943, 5, 744, 373, 2, 7942, 7940, 3, 2, 2, 2, 7942, 7941, 3, 2, 2, 2, 7943, 7944, 3, 2, 2, 2, 7944, 7945, 7, 869, 2, 2, 7945, 7974, 3, 2, 2, 2, 7946, 7947, 12, 11, 2, 2, 7947, 7948, 7, 91, 2, 2, 7948, 7974, 5, 726, 364, 2, 7949, 7950, 12, 9, 2, 2, 7950, 7951, 5, 816, 409, 2, 7951, 7952, 9, 152, 2, 2, 7952, 7953, 7, 868, 2, 2, 7953, 7954, 5, 206, 104, 2, 7954, 7955, 7, 869, 2, 2, 7955, 7974, 3, 2, 2, 2, 7956, 7958, 12, 6, 2, 2, 7957, 7959, 7, 116, 2, 2, 7958, 7957, 3, 2, 2, 2, 7958, 7959, 3, 2, 2, 2, 7959, 7960, 3, 2, 2, 2, 7960, 7961, 7, 101, 2, 2, 7961, 7964, 5, 810, 406, 2, 7962, 7963, 7, 386, 2, 2, 7963, 7965, 7, 884, 2, 2, 7964, 7962, 3, 2, 2, 2, 7964, 7965, 3, 2, 2, 2, 7965, 7974, 3, 2, 2, 2, 7966, 7967, 12, 4, 2, 2, 7967, 7968, 7, 487, 2, 2, 7968, 7969, 7, 512, 2, 2, 7969, 7970, 7, 868, 2, 2, 7970, 7971, 5, 810, 406, 2, 7971, 7972, 7, 869, 2, 2, 7972, 7974, 3, 2, 2, 2, 7973, 7911, 3, 2, 2, 2, 7973, 7915, 3, 2, 2, 2, 7973, 7924, 3, 2, 2, 2, 7973, 7928, 3, 2, 2, 2, 7973, 7934, 3, 2, 2, 2, 7973, 7946, 3, 2, 2, 2, 7973, 7949, 3, 2, 2, 2, 7973, 7956, 3, 2, 2, 2, 7973, 7966, 3, 2, 2, 2, 7974, 7977, 3, 2, 2, 2, 7975, 7973, 3, 2, 2, 2, 7975, 7976, 3, 2, 2, 2, 7976, 811, 3, 2, 2, 2, 7977, 7975, 3, 2, 2, 2, 7978, 7979, 8, 407, 1, 2, 7979, 8027, 5, 728, 365, 2, 7980, 8027, 5, 666, 334, 2, 7981, 8027, 5, 768, 385, 2, 7982, 8027, 5, 690, 346, 2, 7983, 7984, 5, 814, 408, 2, 7984, 7985, 5, 812, 407, 13, 7985, 8027, 3, 2, 2, 2, 7986, 7987, 7, 230, 2, 2, 7987, 8027, 5, 812, 407, 12, 7988, 7989, 7, 895, 2, 2, 7989, 7990, 7, 843, 2, 2, 7990, 8027, 5, 812, 407, 11, 7991, 7992, 7, 868, 2, 2, 7992, 7997, 5, 808, 405, 2, 7993, 7994, 7, 870, 2, 2, 7994, 7996, 5, 808, 405, 2, 7995, 7993, 3, 2, 2, 2, 7996, 7999, 3, 2, 2, 2, 7997, 7995, 3, 2, 2, 2, 7997, 7998, 3, 2, 2, 2, 7998, 8000, 3, 2, 2, 2, 7999, 7997, 3, 2, 2, 2, 8000, 8001, 7, 869, 2, 2, 8001, 8027, 3, 2, 2, 2, 8002, 8003, 7, 588, 2, 2, 8003, 8004, 7, 868, 2, 2, 8004, 8007, 5, 808, 405, 2, 8005, 8006, 7, 870, 2, 2, 8006, 8008, 5, 808, 405, 2, 8007, 8005, 3, 2, 2, 2, 8008, 8009, 3, 2, 2, 2, 8009, 8007, 3, 2, 2, 2, 8009, 8010, 3, 2, 2, 2, 8010, 8011, 3, 2, 2, 2, 8011, 8012, 7, 869, 2, 2, 8012, 8027, 3, 2, 2, 2, 8013, 8014, 7, 62, 2, 2, 8014, 8015, 7, 868, 2, 2, 8015, 8016, 5, 206, 104, 2, 8016, 8017, 7, 869, 2, 2, 8017, 8027, 3, 2, 2, 2, 8018, 8019, 7, 868, 2, 2, 8019, 8020, 5, 206, 104, 2, 8020, 8021, 7, 869, 2, 2, 8021, 8027, 3, 2, 2, 2, 8022, 8023, 7, 89, 2, 2, 8023, 8024, 5, 808, 405, 2, 8024, 8025, 5, 68, 35, 2, 8025, 8027, 3, 2, 2, 2, 8026, 7978, 3, 2, 2, 2, 8026, 7980, 3, 2, 2, 2, 8026, 7981, 3, 2, 2, 2, 8026, 7982, 3, 2, 2, 2, 8026, 7983, 3, 2, 2, 2, 8026, 7986, 3, 2, 2, 2, 8026, 7988, 3, 2, 2, 2, 8026, 7991, 3, 2, 2, 2, 8026, 8002, 3, 2, 2, 2, 8026, 8013, 3, 2, 2, 2, 8026, 8018, 3, 2, 2, 2, 8026, 8022, 3, 2, 2, 2, 8027, 8045, 3, 2, 2, 2, 8028, 8029, 12, 5, 2, 2, 8029, 8030, 5, 822, 412, 2, 8030, 8031, 5, 812, 407, 6, 8031, 8044, 3, 2, 2, 2, 8032, 8033, 12, 4, 2, 2, 8033, 8034, 5, 824, 413, 2, 8034, 8035, 5, 812, 407, 5, 8035, 8044, 3, 2, 2, 2, 8036, 8037, 12, 3, 2, 2, 8037, 8038, 5, 826, 414, 2, 8038, 8039, 5, 812, 407, 4, 8039, 8044, 3, 2, 2, 2, 8040, 8041, 12, 15, 2, 2, 8041, 8042, 7, 30, 2, 2, 8042, 8044, 5, 694, 348, 2, 8043, 8028, 3, 2, 2, 2, 8043, 8032, 3, 2, 2, 2, 8043, 8036, 3, 2, 2, 2, 8043, 8040, 3, 2, 2, 2, 8044, 8047, 3, 2, 2, 2, 8045, 8043, 3, 2, 2, 2, 8045, 8046, 3, 2, 2, 2, 8046, 813, 3, 2, 2, 2, 8047, 8045, 3, 2, 2, 2, 8048, 8049, 9, 153, 2, 2, 8049, 815, 3, 2, 2, 2, 8050, 8059, 5, 818, 410, 2, 8051, 8052, 7, 861, 2, 2, 8052, 8059, 7, 860, 2, 2, 8053, 8054, 7, 862, 2, 2, 8054, 8059, 7, 859, 2, 2, 8055, 8056, 7, 861, 2, 2, 8056, 8057, 7, 859, 2, 2, 8057, 8059, 7, 860, 2, 2, 8058, 8050, 3, 2, 2, 2, 8058, 8051, 3, 2, 2, 2, 8058, 8053, 3, 2, 2, 2, 8058, 8055, 3, 2, 2, 2, 8059, 817, 3, 2, 2, 2, 8060, 8068, 7, 859, 2, 2, 8061, 8068, 7, 860, 2, 2, 8062, 8068, 7, 861, 2, 2, 8063, 8064, 7, 861, 2, 2, 8064, 8068, 7, 859, 2, 2, 8065, 8066, 7, 860, 2, 2, 8066, 8068, 7, 859, 2, 2, 8067, 8060, 3, 2, 2, 2, 8067, 8061, 3, 2, 2, 2, 8067, 8062, 3, 2, 2, 2, 8067, 8063, 3, 2, 2, 2, 8067, 8065, 3, 2, 2, 2, 8068, 819, 3, 2, 2, 2, 8069, 8077, 7, 13, 2, 2, 8070, 8071, 7, 865, 2, 2, 8071, 8077, 7, 865, 2, 2, 8072, 8077, 7, 198, 2, 2, 8073, 8077, 7, 126, 2, 2, 8074, 8075, 7, 864, 2, 2, 8075, 8077, 7, 864, 2, 2, 8076, 8069, 3, 2, 2, 2, 8076, 8070, 3, 2, 2, 2, 8076, 8072, 3, 2, 2, 2, 8076, 8073, 3, 2, 2, 2, 8076, 8074, 3, 2, 2, 2, 8077, 821, 3, 2, 2, 2, 8078, 8079, 7, 861, 2, 2, 8079, 8086, 7, 861, 2, 2, 8080, 8081, 7, 860, 2, 2, 8081, 8086, 7, 860, 2, 2, 8082, 8086, 7, 865, 2, 2, 8083, 8086, 7, 866, 2, 2, 8084, 8086, 7, 864, 2, 2, 8085, 8078, 3, 2, 2, 2, 8085, 8080, 3, 2, 2, 2, 8085, 8082, 3, 2, 2, 2, 8085, 8083, 3, 2, 2, 2, 8085, 8084, 3, 2, 2, 2, 8086, 823, 3, 2, 2, 2, 8087, 8088, 9, 154, 2, 2, 8088, 825, 3, 2, 2, 2, 8089, 8090, 7, 856, 2, 2, 8090, 8095, 7, 860, 2, 2, 8091, 8092, 7, 856, 2, 2, 8092, 8093, 7, 860, 2, 2, 8093, 8095, 7, 860, 2, 2, 8094, 8089, 3, 2, 2, 2, 8094, 8091, 3, 2, 2, 2, 8095, 827, 3, 2, 2, 2, 8096, 8097, 9, 155, 2, 2, 8097, 829, 3, 2, 2, 2, 8098, 8099, 9, 156, 2, 2, 8099, 831, 3, 2, 2, 2, 8100, 8101, 9, 157, 2, 2, 8101, 833, 3, 2, 2, 2, 8102, 8103, 9, 158, 2, 2, 8103, 835, 3, 2, 2, 2, 8104, 8105, 9, 159, 2, 2, 8105, 837, 3, 2, 2, 2, 8106, 8107, 9, 160, 2, 2, 8107, 839, 3, 2, 2, 2, 8108, 8109, 9, 161, 2, 2, 8109, 841, 3, 2, 2, 2, 1175, 843, 849, 851, 856, 859, 868, 911, 930, 941, 957, 962, 974, 1009, 1019, 1024, 1030, 1035, 1039, 1048, 1051, 1054, 1058, 1065, 1068, 1073, 1081, 1086, 1091, 1094, 1096, 1108, 1111, 1115, 1118, 1122, 1125, 1129, 1132, 1135, 1139, 1142, 1146, 1152, 1156, 1161, 1167, 1174, 1182, 1200, 1207, 1211, 1217, 1222, 1225, 1228, 1232, 1236, 1240, 1244, 1249, 1252, 1255, 1258, 1261, 1267, 1271, 1281, 1283, 1287, 1294, 1298, 1301, 1306, 1310, 1313, 1317, 1320, 1324, 1337, 1340, 1344, 1347, 1351, 1354, 1358, 1361, 1365, 1368, 1371, 1375, 1378, 1382, 1388, 1392, 1404, 1410, 1421, 1426, 1434, 1438, 1443, 1446, 1451, 1459, 1464, 1470, 1475, 1479, 1481, 1484, 1488, 1492, 1495, 1499, 1503, 1507, 1513, 1516, 1523, 1528, 1534, 1541, 1547, 1555, 1558, 1565, 1568, 1570, 1576, 1582, 1599, 1606, 1613, 1625, 1630, 1633, 1636, 1646, 1659, 1664, 1680, 1688, 1698, 1701, 1707, 1712, 1715, 1721, 1725, 1730, 1736, 1740, 1744, 1747, 1750, 1756, 1760, 1765, 1776, 1779, 1786, 1789, 1793, 1799, 1811, 1814, 1819, 1832, 1839, 1845, 1850, 1854, 1857, 1865, 1873, 1875, 1885, 1889, 1892, 1896, 1901, 1906, 1911, 1915, 1919, 1923, 1927, 1931, 1935, 1940, 1945, 1950, 1956, 1961, 1966, 1971, 1976, 1981, 1987, 1992, 1997, 2002, 2007, 2012, 2017, 2022, 2029, 2034, 2039, 2044, 2048, 2053, 2061, 2066, 2072, 2084, 2091, 2093, 2101, 2106, 2109, 2117, 2123, 2127, 2140, 2152, 2154, 2157, 2165, 2171, 2177, 2190, 2197, 2206, 2211, 2222, 2231, 2236, 2248, 2255, 2264, 2269, 2281, 2288, 2297, 2302, 2309, 2318, 2323, 2325, 2330, 2338, 2347, 2351, 2354, 2358, 2363, 2369, 2375, 2380, 2385, 2390, 2395, 2398, 2403, 2408, 2418, 2422, 2429, 2434, 2437, 2442, 2445, 2449, 2453, 2461, 2480, 2483, 2486, 2490, 2500, 2513, 2526, 2529, 2535, 2538, 2542, 2551, 2554, 2557, 2562, 2566, 2569, 2573, 2577, 2580, 2584, 2587, 2591, 2594, 2600, 2603, 2608, 2616, 2622, 2626, 2630, 2635, 2640, 2647, 2651, 2662, 2670, 2673, 2679, 2685, 2688, 2694, 2700, 2702, 2707, 2713, 2719, 2721, 2725, 2728, 2731, 2737, 2743, 2745, 2750, 2757, 2766, 2769, 2773, 2778, 2788, 2797, 2805, 2808, 2816, 2819, 2826, 2831, 2839, 2855, 2860, 2867, 2886, 2892, 2902, 2914, 2921, 2928, 2943, 2956, 2962, 2968, 2974, 2980, 2986, 2992, 2997, 3004, 3011, 3018, 3023, 3026, 3028, 3037, 3044, 3051, 3058, 3067, 3073, 3077, 3081, 3085, 3091, 3094, 3099, 3106, 3113, 3117, 3122, 3132, 3140, 3146, 3155, 3164, 3173, 3176, 3180, 3189, 3193, 3196, 3199, 3205, 3208, 3211, 3215, 3218, 3221, 3224, 3235, 3238, 3243, 3249, 3254, 3259, 3262, 3266, 3271, 3274, 3279, 3289, 3294, 3300, 3302, 3308, 3310, 3316, 3324, 3329, 3337, 3340, 3345, 3348, 3353, 3361, 3367, 3371, 3373, 3379, 3387, 3392, 3400, 3403, 3408, 3411, 3415, 3418, 3421, 3425, 3428, 3436, 3442, 3446, 3450, 3454, 3457, 3461, 3467, 3471, 3475, 3477, 3480, 3483, 3486, 3492, 3496, 3499, 3502, 3505, 3508, 3515, 3517, 3520, 3524, 3527, 3530, 3538, 3544, 3547, 3549, 3558, 3563, 3570, 3573, 3576, 3580, 3584, 3590, 3594, 3601, 3605, 3608, 3611, 3616, 3623, 3633, 3642, 3651, 3661, 3664, 3668, 3674, 3678, 3681, 3684, 3689, 3692, 3699, 3703, 3706, 3710, 3714, 3717, 3720, 3725, 3731, 3735, 3745, 3751, 3755, 3761, 3765, 3771, 3774, 3786, 3790, 3794, 3802, 3806, 3820, 3825, 3828, 3832, 3835, 3843, 3848, 3851, 3854, 3858, 3861, 3870, 3875, 3884, 3889, 3896, 3903, 3911, 3917, 3925, 3928, 3931, 3938, 3941, 3944, 3951, 3954, 3958, 3964, 3974, 3978, 3987, 3990, 3994, 4000, 4008, 4013, 4017, 4023, 4029, 4032, 4034, 4038, 4047, 4057, 4067, 4073, 4078, 4082, 4085, 4088, 4091, 4094, 4100, 4106, 4109, 4112, 4115, 4118, 4121, 4123, 4129, 4135, 4138, 4141, 4144, 4147, 4151, 4157, 4161, 4169, 4173, 4176, 4178, 4191, 4194, 4201, 4211, 4214, 4219, 4221, 4225, 4233, 4239, 4248, 4261, 4265, 4271, 4280, 4283, 4287, 4290, 4294, 4298, 4301, 4303, 4311, 4323, 4329, 4331, 4337, 4339, 4341, 4347, 4355, 4363, 4367, 4371, 4380, 4385, 4405, 4410, 4416, 4423, 4428, 4437, 4440, 4444, 4448, 4452, 4455, 4458, 4461, 4465, 4469, 4472, 4475, 4478, 4485, 4489, 4504, 4517, 4525, 4535, 4539, 4542, 4548, 4551, 4554, 4563, 4572, 4582, 4586, 4596, 4600, 4611, 4615, 4624, 4633, 4636, 4640, 4645, 4649, 4658, 4661, 4664, 4671, 4677, 4683, 4709, 4712, 4715, 4734, 4736, 4759, 4762, 4765, 4784, 4786, 4800, 4813, 4850, 4855, 4890, 4904, 4911, 4915, 4921, 4929, 4931, 4942, 4952, 4959, 4965, 4973, 4978, 4986, 4994, 5002, 5010, 5016, 5021, 5026, 5031, 5037, 5039, 5050, 5055, 5062, 5064, 5078, 5084, 5089, 5094, 5100, 5107, 5115, 5123, 5128, 5134, 5137, 5145, 5152, 5161, 5164, 5181, 5189, 5197, 5201, 5208, 5214, 5222, 5227, 5234, 5242, 5249, 5254, 5257, 5259, 5265, 5267, 5271, 5273, 5278, 5285, 5290, 5294, 5299, 5303, 5309, 5315, 5320, 5323, 5325, 5331, 5333, 5337, 5339, 5344, 5349, 5356, 5365, 5370, 5379, 5383, 5389, 5394, 5397, 5399, 5405, 5407, 5410, 5417, 5419, 5424, 5431, 5440, 5446, 5448, 5455, 5458, 5470, 5476, 5484, 5487, 5491, 5494, 5498, 5500, 5511, 5514, 5518, 5521, 5524, 5531, 5543, 5546, 5553, 5559, 5569, 5574, 5581, 5586, 5592, 5596, 5600, 5608, 5612, 5616, 5622, 5624, 5636, 5641, 5647, 5653, 5657, 5662, 5664, 5696, 5700, 5704, 5707, 5716, 5720, 5729, 5733, 5737, 5743, 5745, 5754, 5764, 5791, 5795, 5800, 5807, 5810, 5816, 5826, 5836, 5846, 5852, 5861, 5867, 5874, 5876, 5884, 5890, 5894, 5911, 5921, 5925, 5929, 5939, 5944, 6016, 6034, 6042, 6048, 6060, 6064, 6075, 6079, 6088, 6096, 6103, 6107, 6114, 6119, 6122, 6125, 6136, 6140, 6144, 6159, 6168, 6171, 6185, 6203, 6216, 6219, 6223, 6226, 6228, 6235, 6242, 6246, 6253, 6260, 6263, 6279, 6282, 6292, 6296, 6302, 6305, 6308, 6313, 6317, 6320, 6327, 6330, 6336, 6372, 6375, 6387, 6390, 6406, 6408, 6412, 6419, 6423, 6430, 6433, 6442, 6445, 6450, 6456, 6458, 6464, 6468, 6474, 6477, 6480, 6493, 6496, 6502, 6505, 6513, 6521, 6527, 6530, 6534, 6548, 6560, 6568, 6572, 6579, 6586, 6591, 6604, 6613, 6621, 6626, 6629, 6634, 6637, 6649, 6654, 6667, 6669, 6674, 6678, 6681, 6683, 6690, 6697, 6700, 6703, 6709, 6713, 6719, 6727, 6736, 6749, 6754, 6762, 6765, 6770, 6775, 6783, 6786, 6794, 6798, 6805, 6811, 6814, 6818, 6831, 6837, 6849, 6852, 6861, 6866, 6887, 6903, 6913, 6918, 6923, 6925, 6928, 6932, 6934, 6941, 6947, 6949, 6952, 6956, 6958, 6971, 6981, 6984, 6987, 7000, 7006, 7009, 7017, 7024, 7044, 7051, 7053, 7060, 7062, 7066, 7073, 7079, 7090, 7095, 7101, 7104, 7108, 7113, 7116, 7120, 7124, 7126, 7131, 7136, 7149, 7152, 7156, 7159, 7162, 7167, 7172, 7178, 7181, 7186, 7189, 7194, 7197, 7201, 7206, 7211, 7216, 7221, 7224, 7229, 7234, 7239, 7245, 7250, 7255, 7260, 7264, 7267, 7272, 7276, 7280, 7288, 7295, 7299, 7304, 7309, 7313, 7315, 7318, 7334, 7344, 7354, 7363, 7372, 7379, 7386, 7394, 7402, 7414, 7421, 7431, 7436, 7439, 7444, 7447, 7465, 7472, 7477, 7482, 7516, 7520, 7528, 7532, 7541, 7549, 7554, 7562, 7567, 7572, 7574, 7583, 7588, 7596, 7601, 7609, 7617, 7620, 7630, 7648, 7651, 7654, 7658, 7671, 7679, 7683, 7688, 7693, 7699, 7704, 7708, 7713, 7718, 7723, 7733, 7736, 7740, 7744, 7751, 7755, 7784, 7792, 7795, 7798, 7801, 7804, 7815, 7829, 7838, 7865, 7877, 7884, 7892, 7897, 7905, 7917, 7930, 7936, 7942, 7958, 7964, 7973, 7975, 7997, 8009, 8026, 8043, 8045, 8058, 8067, 8076, 8085, 8094] \ No newline at end of file diff --git a/src/lib/mysql/MySqlParser.tokens b/src/lib/mysql/MySqlParser.tokens new file mode 100644 index 0000000..8c324d1 --- /dev/null +++ b/src/lib/mysql/MySqlParser.tokens @@ -0,0 +1,1769 @@ +SPACE=1 +SPEC_MYSQL_COMMENT=2 +COMMENT_INPUT=3 +LINE_COMMENT=4 +KW_ACTIVE=5 +KW_ADD=6 +KW_ALL=7 +KW_ALTER=8 +KW_ALWAYS=9 +KW_ANALYZE=10 +KW_AND=11 +KW_ARRAY=12 +KW_AS=13 +KW_ASC=14 +KW_ATTRIBUTE=15 +KW_BEFORE=16 +KW_BETWEEN=17 +KW_BOTH=18 +KW_BUCKETS=19 +KW_BY=20 +KW_CALL=21 +KW_CASCADE=22 +KW_CASE=23 +KW_CAST=24 +KW_CHANGE=25 +KW_CHARACTER=26 +KW_CHECK=27 +KW_COLLATE=28 +KW_COLUMN=29 +KW_CONDITION=30 +KW_CONSTRAINT=31 +KW_CONTINUE=32 +KW_CONVERT=33 +KW_CREATE=34 +KW_CROSS=35 +KW_CURRENT=36 +KW_CURRENT_USER=37 +KW_CURSOR=38 +KW_DATABASE=39 +KW_DATABASES=40 +KW_DECLARE=41 +KW_DEFAULT=42 +KW_DELAYED=43 +KW_DELETE=44 +KW_DESC=45 +KW_DESCRIBE=46 +KW_DETERMINISTIC=47 +KW_DIAGNOSTICS=48 +KW_DISTINCT=49 +KW_DISTINCTROW=50 +KW_DROP=51 +KW_EACH=52 +KW_ELSE=53 +KW_ELSEIF=54 +KW_EMPTY=55 +KW_ENCLOSED=56 +KW_ENFORCED=57 +KW_ESCAPED=58 +KW_EXCEPT=59 +KW_EXISTS=60 +KW_EXIT=61 +KW_EXPLAIN=62 +KW_FALSE=63 +KW_FETCH=64 +KW_FOR=65 +KW_FORCE=66 +KW_FOREIGN=67 +KW_FROM=68 +KW_FULLTEXT=69 +KW_GENERATE=70 +KW_GENERATED=71 +KW_GET=72 +KW_GRANT=73 +KW_GROUP=74 +KW_HAVING=75 +KW_HIGH_PRIORITY=76 +KW_HISTOGRAM=77 +KW_IF=78 +KW_IGNORE=79 +KW_IN=80 +KW_INACTIVE=81 +KW_INDEX=82 +KW_INFILE=83 +KW_INNER=84 +KW_INOUT=85 +KW_INSERT=86 +KW_INTERVAL=87 +KW_INTO=88 +KW_IS=89 +KW_ITERATE=90 +KW_JOIN=91 +KW_KEY=92 +KW_KEYS=93 +KW_KILL=94 +KW_LATERAL=95 +KW_LEADING=96 +KW_LEAVE=97 +KW_LEFT=98 +KW_LIKE=99 +KW_LIMIT=100 +KW_LINEAR=101 +KW_LINES=102 +KW_LOAD=103 +KW_LOCK=104 +KW_LOCKED=105 +KW_LOOP=106 +KW_LOW_PRIORITY=107 +KW_MASTER_BIND=108 +KW_MASTER_SSL_VERIFY_SERVER_CERT=109 +KW_MATCH=110 +KW_MAXVALUE=111 +KW_MODIFIES=112 +KW_NATURAL=113 +KW_NOT=114 +KW_NO_WRITE_TO_BINLOG=115 +KW_NULL_LITERAL=116 +KW_NUMBER=117 +KW_STREAM=118 +KW_ON=119 +KW_OPTIMIZE=120 +KW_OPTION=121 +KW_OPTIONAL=122 +KW_OPTIONALLY=123 +KW_OR=124 +KW_ORDER=125 +KW_OUT=126 +KW_OUTER=127 +KW_OUTFILE=128 +KW_OVER=129 +KW_PARTITION=130 +KW_PRIMARY=131 +KW_PROCEDURE=132 +KW_PURGE=133 +KW_RANGE=134 +KW_READ=135 +KW_READS=136 +KW_REFERENCE=137 +KW_REFERENCES=138 +KW_REGEXP=139 +KW_RELEASE=140 +KW_RENAME=141 +KW_REPEAT=142 +KW_REPLACE=143 +KW_REQUIRE=144 +KW_RESIGNAL=145 +KW_RESTRICT=146 +KW_RETAIN=147 +KW_RETURN=148 +KW_REVOKE=149 +KW_RIGHT=150 +KW_RLIKE=151 +KW_SCHEMA=152 +KW_SCHEMAS=153 +KW_SELECT=154 +KW_SET=155 +KW_SEPARATOR=156 +KW_SHOW=157 +KW_SIGNAL=158 +KW_SKIP=159 +KW_SKIP_QUERY_REWRITE=160 +KW_SPATIAL=161 +KW_SQL=162 +KW_SQLEXCEPTION=163 +KW_SQLSTATE=164 +KW_SQLWARNING=165 +KW_SQL_BIG_RESULT=166 +KW_SQL_CALC_FOUND_ROWS=167 +KW_SQL_SMALL_RESULT=168 +KW_SSL=169 +KW_STACKED=170 +KW_STARTING=171 +KW_STRAIGHT_JOIN=172 +KW_TABLE=173 +KW_TERMINATED=174 +KW_THEN=175 +KW_TO=176 +KW_TRAILING=177 +KW_TRIGGER=178 +KW_TRUE=179 +KW_UNDO=180 +KW_UNION=181 +KW_UNIQUE=182 +KW_UNLOCK=183 +KW_UNSIGNED=184 +KW_UPDATE=185 +KW_USAGE=186 +KW_USE=187 +KW_USING=188 +KW_VALUES=189 +KW_VCPU=190 +KW_WHEN=191 +KW_WHERE=192 +KW_WHILE=193 +KW_WITH=194 +KW_WRITE=195 +KW_XOR=196 +KW_ZEROFILL=197 +KW_TINYINT=198 +KW_SMALLINT=199 +KW_MEDIUMINT=200 +KW_MIDDLEINT=201 +KW_INT=202 +KW_INT1=203 +KW_INT2=204 +KW_INT3=205 +KW_INT4=206 +KW_INT8=207 +KW_INTEGER=208 +KW_BIGINT=209 +KW_REAL=210 +KW_DOUBLE=211 +KW_PRECISION=212 +KW_FLOAT=213 +KW_FLOAT4=214 +KW_FLOAT8=215 +KW_DECIMAL=216 +KW_DEC=217 +KW_NUMERIC=218 +KW_DATE=219 +KW_TIME=220 +KW_TIMESTAMP=221 +KW_DATETIME=222 +KW_YEAR=223 +KW_CHAR=224 +KW_VARCHAR=225 +KW_NVARCHAR=226 +KW_NATIONAL=227 +KW_BINARY=228 +KW_VARBINARY=229 +KW_TINYBLOB=230 +KW_BLOB=231 +KW_MEDIUMBLOB=232 +KW_LONG=233 +KW_LONGBLOB=234 +KW_TINYTEXT=235 +KW_TEXT=236 +KW_MEDIUMTEXT=237 +KW_LONGTEXT=238 +KW_ENUM=239 +KW_VARYING=240 +KW_SERIAL=241 +KW_YEAR_MONTH=242 +KW_DAY_HOUR=243 +KW_DAY_MINUTE=244 +KW_DAY_SECOND=245 +KW_HOUR_MINUTE=246 +KW_HOUR_SECOND=247 +KW_MINUTE_SECOND=248 +KW_SECOND_MICROSECOND=249 +KW_MINUTE_MICROSECOND=250 +KW_HOUR_MICROSECOND=251 +KW_DAY_MICROSECOND=252 +KW_JSON_TABLE=253 +KW_JSON_VALUE=254 +KW_NESTED=255 +KW_ORDINALITY=256 +KW_PATH=257 +KW_AVG=258 +KW_BIT_AND=259 +KW_BIT_OR=260 +KW_BIT_XOR=261 +KW_COUNT=262 +KW_CUME_DIST=263 +KW_DENSE_RANK=264 +KW_FIRST_VALUE=265 +KW_GROUP_CONCAT=266 +KW_LAG=267 +KW_LAST_VALUE=268 +KW_LEAD=269 +KW_MAX=270 +KW_MIN=271 +KW_NTILE=272 +KW_NTH_VALUE=273 +KW_PERCENT_RANK=274 +KW_RANK=275 +KW_ROW_NUMBER=276 +KW_STD=277 +KW_STDDEV=278 +KW_STDDEV_POP=279 +KW_STDDEV_SAMP=280 +KW_SUM=281 +KW_VAR_POP=282 +KW_VAR_SAMP=283 +KW_VARIANCE=284 +KW_CURRENT_DATE=285 +KW_CURRENT_TIME=286 +KW_CURRENT_TIMESTAMP=287 +KW_LOCALTIME=288 +KW_CURDATE=289 +KW_CURTIME=290 +KW_DATE_ADD=291 +KW_DATE_SUB=292 +KW_EXTRACT=293 +KW_LOCALTIMESTAMP=294 +KW_NOW=295 +KW_POSITION=296 +KW_SUBSTR=297 +KW_SUBSTRING=298 +KW_SYSDATE=299 +KW_TRIM=300 +KW_UTC_DATE=301 +KW_UTC_TIME=302 +KW_UTC_TIMESTAMP=303 +KW_ACCOUNT=304 +KW_ACTION=305 +KW_AFTER=306 +KW_AGGREGATE=307 +KW_ALGORITHM=308 +KW_ANY=309 +KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS=310 +KW_AT=311 +KW_AUTHORS=312 +KW_AUTOCOMMIT=313 +KW_AUTOEXTEND_SIZE=314 +KW_AUTO_INCREMENT=315 +KW_AVG_ROW_LENGTH=316 +KW_BEGIN=317 +KW_BINLOG=318 +KW_BIT=319 +KW_BLOCK=320 +KW_BOOL=321 +KW_BOOLEAN=322 +KW_BTREE=323 +KW_CACHE=324 +KW_CASCADED=325 +KW_CHAIN=326 +KW_CHANGED=327 +KW_CHANNEL=328 +KW_CHECKSUM=329 +KW_CHALLENGE_RESPONSE=330 +KW_CIPHER=331 +KW_CLASS_ORIGIN=332 +KW_CLIENT=333 +KW_CLOSE=334 +KW_COALESCE=335 +KW_CODE=336 +KW_COLUMNS=337 +KW_COLUMN_FORMAT=338 +KW_COLUMN_NAME=339 +KW_COMMENT=340 +KW_COMMIT=341 +KW_COMPACT=342 +KW_COMPLETION=343 +KW_COMPONENT=344 +KW_COMPRESSED=345 +KW_COMPRESSION=346 +KW_CONCURRENT=347 +KW_CONNECT=348 +KW_CONNECTION=349 +KW_CONSISTENT=350 +KW_CONSTRAINT_CATALOG=351 +KW_CONSTRAINT_SCHEMA=352 +KW_CONSTRAINT_NAME=353 +KW_CONTAINS=354 +KW_CONTEXT=355 +KW_CONTRIBUTORS=356 +KW_COPY=357 +KW_CPU=358 +KW_CURSOR_NAME=359 +KW_DATA=360 +KW_DATAFILE=361 +KW_DEALLOCATE=362 +KW_DEFAULT_AUTH=363 +KW_DEFINER=364 +KW_DELAY_KEY_WRITE=365 +KW_DES_KEY_FILE=366 +KW_DIRECTORY=367 +KW_DISABLE=368 +KW_DISCARD=369 +KW_DISK=370 +KW_DO=371 +KW_DUMPFILE=372 +KW_DUPLICATE=373 +KW_DYNAMIC=374 +KW_ENABLE=375 +KW_ENCRYPTION=376 +KW_ENCRYPTION_KEY_ID=377 +KW_END=378 +KW_ENDS=379 +KW_ENGINE=380 +KW_ENGINES=381 +KW_ERROR=382 +KW_ERRORS=383 +KW_ESCAPE=384 +KW_EVENT=385 +KW_EVENTS=386 +KW_EVERY=387 +KW_EXCHANGE=388 +KW_EXCLUSIVE=389 +KW_EXPIRE=390 +KW_EXPORT=391 +KW_EXTENDED=392 +KW_EXTENT_SIZE=393 +KW_FACTOR=394 +KW_FAILED_LOGIN_ATTEMPTS=395 +KW_FAST=396 +KW_FAULTS=397 +KW_FIELDS=398 +KW_FILE_BLOCK_SIZE=399 +KW_FILTER=400 +KW_FINISH=401 +KW_FIRST=402 +KW_FIXED=403 +KW_FLUSH=404 +KW_FOLLOWING=405 +KW_FOLLOWS=406 +KW_FOUND=407 +KW_FULL=408 +KW_FUNCTION=409 +KW_GENERAL=410 +KW_GET_MASTER_PUBLIC_KEY=411 +KW_GET_SOURCE_PUBLIC_KEY=412 +KW_GLOBAL=413 +KW_GRANTS=414 +KW_GROUP_REPLICATION=415 +KW_GTID_ONLY=416 +KW_HANDLER=417 +KW_HASH=418 +KW_HELP=419 +KW_HISTORY=420 +KW_HOST=421 +KW_HOSTS=422 +KW_IDENTIFIED=423 +KW_IGNORE_SERVER_IDS=424 +KW_IMPORT=425 +KW_INDEXES=426 +KW_INITIAL=427 +KW_INITIAL_SIZE=428 +KW_INITIATE=429 +KW_INPLACE=430 +KW_INSERT_METHOD=431 +KW_INSTALL=432 +KW_INSTANCE=433 +KW_INSTANT=434 +KW_INVISIBLE=435 +KW_INVOKER=436 +KW_IO=437 +KW_IO_THREAD=438 +KW_IPC=439 +KW_ISOLATION=440 +KW_ISSUER=441 +KW_JSON=442 +KW_KEY_BLOCK_SIZE=443 +KW_LANGUAGE=444 +KW_LAST=445 +KW_LEAVES=446 +KW_LESS=447 +KW_LEVEL=448 +KW_LIST=449 +KW_LOCAL=450 +KW_LOGFILE=451 +KW_LOGS=452 +KW_MASTER=453 +KW_MASTER_AUTO_POSITION=454 +KW_MASTER_COMPRESSION_ALGORITHMS=455 +KW_MASTER_CONNECT_RETRY=456 +KW_MASTER_DELAY=457 +KW_MASTER_HEARTBEAT_PERIOD=458 +KW_MASTER_HOST=459 +KW_MASTER_LOG_FILE=460 +KW_MASTER_LOG_POS=461 +KW_MASTER_PASSWORD=462 +KW_MASTER_PORT=463 +KW_MASTER_PUBLIC_KEY_PATH=464 +KW_MASTER_RETRY_COUNT=465 +KW_MASTER_SSL=466 +KW_MASTER_SSL_CA=467 +KW_MASTER_SSL_CAPATH=468 +KW_MASTER_SSL_CERT=469 +KW_MASTER_SSL_CIPHER=470 +KW_MASTER_SSL_CRL=471 +KW_MASTER_SSL_CRLPATH=472 +KW_MASTER_SSL_KEY=473 +KW_MASTER_TLS_CIPHERSUITES=474 +KW_MASTER_TLS_VERSION=475 +KW_MASTER_USER=476 +KW_MASTER_ZSTD_COMPRESSION_LEVEL=477 +KW_MAX_CONNECTIONS_PER_HOUR=478 +KW_MAX_QUERIES_PER_HOUR=479 +KW_MAX_ROWS=480 +KW_MAX_SIZE=481 +KW_MAX_UPDATES_PER_HOUR=482 +KW_MAX_USER_CONNECTIONS=483 +KW_MEDIUM=484 +KW_MEMBER=485 +KW_MERGE=486 +KW_MESSAGE_TEXT=487 +KW_MID=488 +KW_MIGRATE=489 +KW_MIN_ROWS=490 +KW_MODE=491 +KW_MODIFY=492 +KW_MUTEX=493 +KW_MYSQL=494 +KW_MYSQL_ERRNO=495 +KW_NAME=496 +KW_NAMES=497 +KW_NCHAR=498 +KW_NETWORK_NAMESPACE=499 +KW_NEVER=500 +KW_NEXT=501 +KW_NO=502 +KW_NOWAIT=503 +KW_NODEGROUP=504 +KW_NONE=505 +KW_ODBC=506 +KW_OFF=507 +KW_OFFLINE=508 +KW_OFFSET=509 +KW_OF=510 +KW_OLD=511 +KW_OLD_PASSWORD=512 +KW_ONE=513 +KW_ONLINE=514 +KW_ONLY=515 +KW_OPEN=516 +KW_OPTIMIZER_COSTS=517 +KW_OPTIONS=518 +KW_OWNER=519 +KW_PACK_KEYS=520 +KW_PAGE=521 +KW_PAGE_CHECKSUM=522 +KW_PAGE_COMPRESSED=523 +KW_PAGE_COMPRESSION_LEVEL=524 +KW_PARSER=525 +KW_PARTIAL=526 +KW_PARTITIONING=527 +KW_PARTITIONS=528 +KW_PASSWORD=529 +KW_PASSWORD_LOCK_TIME=530 +KW_PERSIST=531 +KW_PERSIST_ONLY=532 +KW_PHASE=533 +KW_PLUGIN=534 +KW_PLUGIN_DIR=535 +KW_PLUGINS=536 +KW_PORT=537 +KW_PRECEDES=538 +KW_PRECEDING=539 +KW_PREPARE=540 +KW_PRESERVE=541 +KW_PREV=542 +KW_PRIVILEGE_CHECKS_USER=543 +KW_PROCESSLIST=544 +KW_PROFILE=545 +KW_PROFILES=546 +KW_PROXY=547 +KW_QUERY=548 +KW_QUICK=549 +KW_REBUILD=550 +KW_RECOVER=551 +KW_RECURSIVE=552 +KW_REDO_BUFFER_SIZE=553 +KW_REDUNDANT=554 +KW_REGISTRATION=555 +KW_RELAY=556 +KW_RELAY_LOG_FILE=557 +KW_RELAY_LOG_POS=558 +KW_RELAYLOG=559 +KW_REMOVE=560 +KW_REORGANIZE=561 +KW_REPAIR=562 +KW_REPLICA=563 +KW_REPLICAS=564 +KW_REPLICATE_DO_DB=565 +KW_REPLICATE_DO_TABLE=566 +KW_REPLICATE_IGNORE_DB=567 +KW_REPLICATE_IGNORE_TABLE=568 +KW_REPLICATE_REWRITE_DB=569 +KW_REPLICATE_WILD_DO_TABLE=570 +KW_REPLICATE_WILD_IGNORE_TABLE=571 +KW_REPLICATION=572 +KW_REQUIRE_ROW_FORMAT=573 +KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK=574 +KW_RESET=575 +KW_RESTART=576 +KW_RESUME=577 +KW_RETURNED_SQLSTATE=578 +KW_RETURNING=579 +KW_RETURNS=580 +KW_REUSE=581 +KW_ROLE=582 +KW_ROLLBACK=583 +KW_ROLLUP=584 +KW_ROTATE=585 +KW_ROW=586 +KW_ROWS=587 +KW_ROW_FORMAT=588 +KW_SAVEPOINT=589 +KW_SCHEDULE=590 +KW_SECURITY=591 +KW_SERVER=592 +KW_SESSION=593 +KW_SHARE=594 +KW_SHARED=595 +KW_SIGNED=596 +KW_SIMPLE=597 +KW_SLAVE=598 +KW_SLOW=599 +KW_SNAPSHOT=600 +KW_SOCKET=601 +KW_SOME=602 +KW_SONAME=603 +KW_SOUNDS=604 +KW_SOURCE=605 +KW_SOURCE_BIND=606 +KW_SOURCE_HOST=607 +KW_SOURCE_USER=608 +KW_SOURCE_PASSWORD=609 +KW_SOURCE_PORT=610 +KW_SOURCE_LOG_FILE=611 +KW_SOURCE_LOG_POS=612 +KW_SOURCE_AUTO_POSITION=613 +KW_SOURCE_HEARTBEAT_PERIOD=614 +KW_SOURCE_CONNECT_RETRY=615 +KW_SOURCE_RETRY_COUNT=616 +KW_SOURCE_CONNECTION_AUTO_FAILOVER=617 +KW_SOURCE_DELAY=618 +KW_SOURCE_COMPRESSION_ALGORITHMS=619 +KW_SOURCE_ZSTD_COMPRESSION_LEVEL=620 +KW_SOURCE_SSL=621 +KW_SOURCE_SSL_CA=622 +KW_SOURCE_SSL_CAPATH=623 +KW_SOURCE_SSL_CERT=624 +KW_SOURCE_SSL_CRL=625 +KW_SOURCE_SSL_CRLPATH=626 +KW_SOURCE_SSL_KEY=627 +KW_SOURCE_SSL_CIPHER=628 +KW_SOURCE_SSL_VERIFY_SERVER_CERT=629 +KW_SOURCE_TLS_VERSION=630 +KW_SOURCE_TLS_CIPHERSUITES=631 +KW_SOURCE_PUBLIC_KEY_PATH=632 +KW_SQL_AFTER_GTIDS=633 +KW_SQL_AFTER_MTS_GAPS=634 +KW_SQL_BEFORE_GTIDS=635 +KW_SQL_BUFFER_RESULT=636 +KW_SQL_CACHE=637 +KW_SQL_NO_CACHE=638 +KW_SQL_THREAD=639 +KW_START=640 +KW_STARTS=641 +KW_STATS_AUTO_RECALC=642 +KW_STATS_PERSISTENT=643 +KW_STATS_SAMPLE_PAGES=644 +KW_STATUS=645 +KW_STOP=646 +KW_STORAGE=647 +KW_STORED=648 +KW_STRING=649 +KW_SUBCLASS_ORIGIN=650 +KW_SUBJECT=651 +KW_SUBPARTITION=652 +KW_SUBPARTITIONS=653 +KW_SUSPEND=654 +KW_SWAPS=655 +KW_SWITCHES=656 +KW_TABLE_NAME=657 +KW_TABLESPACE=658 +KW_TABLE_TYPE=659 +KW_TEMPORARY=660 +KW_TEMPTABLE=661 +KW_THAN=662 +KW_TRADITIONAL=663 +KW_TRANSACTION=664 +KW_TRANSACTIONAL=665 +KW_TREE=666 +KW_TRIGGERS=667 +KW_TRUNCATE=668 +KW_UNBOUNDED=669 +KW_UNDEFINED=670 +KW_UNDOFILE=671 +KW_UNDO_BUFFER_SIZE=672 +KW_UNINSTALL=673 +KW_UNKNOWN=674 +KW_UNREGISTER=675 +KW_UNTIL=676 +KW_UPGRADE=677 +KW_USER=678 +KW_USE_FRM=679 +KW_USER_RESOURCES=680 +KW_VALIDATION=681 +KW_VALUE=682 +KW_VARIABLES=683 +KW_VIEW=684 +KW_VIRTUAL=685 +KW_VISIBLE=686 +KW_WAIT=687 +KW_WARNINGS=688 +KW_WINDOW=689 +KW_WITHOUT=690 +KW_WORK=691 +KW_WRAPPER=692 +KW_X509=693 +KW_XA=694 +KW_XML=695 +KW_QUARTER=696 +KW_MONTH=697 +KW_DAY=698 +KW_HOUR=699 +KW_MINUTE=700 +KW_WEEK=701 +KW_SECOND=702 +KW_MICROSECOND=703 +KW_ADMIN=704 +KW_APPLICATION_PASSWORD_ADMIN=705 +KW_AUDIT_ABORT_EXEMPT=706 +KW_AUDIT_ADMIN=707 +KW_AUTHENTICATION=708 +KW_AUTHENTICATION_POLICY_ADMIN=709 +KW_BACKUP_ADMIN=710 +KW_BINLOG_ADMIN=711 +KW_BINLOG_ENCRYPTION_ADMIN=712 +KW_CLONE=713 +KW_CLONE_ADMIN=714 +KW_CONNECTION_ADMIN=715 +KW_ENCRYPTION_KEY_ADMIN=716 +KW_EXECUTE=717 +KW_FILE=718 +KW_FIREWALL_ADMIN=719 +KW_FIREWALL_EXEMPT=720 +KW_FIREWALL_USER=721 +KW_FLUSH_OPTIMIZER_COSTS=722 +KW_FLUSH_STATUS=723 +KW_FLUSH_TABLES=724 +KW_FLUSH_USER_RESOURCES=725 +KW_GROUP_REPLICATION_ADMIN=726 +KW_INNODB_REDO_LOG_ARCHIVE=727 +KW_INNODB_REDO_LOG_ENABLE=728 +KW_INVOKE=729 +KW_LAMBDA=730 +KW_NDB_STORED_USER=731 +KW_PASSWORDLESS_USER_ADMIN=732 +KW_PERSIST_RO_VARIABLES_ADMIN=733 +KW_PRIVILEGES=734 +KW_PROCESS=735 +KW_RELOAD=736 +KW_REPLICATION_APPLIER=737 +KW_REPLICATION_SLAVE_ADMIN=738 +KW_RESOURCE=739 +KW_RESOURCE_GROUP_ADMIN=740 +KW_RESOURCE_GROUP_USER=741 +KW_ROLE_ADMIN=742 +KW_ROUTINE=743 +KW_S3=744 +KW_SERVICE_CONNECTION_ADMIN=745 +KW_SESSION_VARIABLES_ADMIN=746 +KW_SET_USER_ID=747 +KW_SHOW_ROUTINE=748 +KW_SHUTDOWN=749 +KW_SUPER=750 +KW_SYSTEM_VARIABLES_ADMIN=751 +KW_TABLES=752 +KW_TABLE_ENCRYPTION_ADMIN=753 +KW_VERSION_TOKEN_ADMIN=754 +KW_XA_RECOVER_ADMIN=755 +KW_ARMSCII8=756 +KW_ASCII=757 +KW_BIG5=758 +KW_CP1250=759 +KW_CP1251=760 +KW_CP1256=761 +KW_CP1257=762 +KW_CP850=763 +KW_CP852=764 +KW_CP866=765 +KW_CP932=766 +KW_DEC8=767 +KW_EUCJPMS=768 +KW_EUCKR=769 +KW_GB18030=770 +KW_GB2312=771 +KW_GBK=772 +KW_GEOSTD8=773 +KW_GREEK=774 +KW_HEBREW=775 +KW_HP8=776 +KW_KEYBCS2=777 +KW_KOI8R=778 +KW_KOI8U=779 +KW_LATIN1=780 +KW_LATIN2=781 +KW_LATIN5=782 +KW_LATIN7=783 +KW_MACCE=784 +KW_MACROMAN=785 +KW_SJIS=786 +KW_SWE7=787 +KW_TIS620=788 +KW_UCS2=789 +KW_UJIS=790 +KW_UTF16=791 +KW_UTF16LE=792 +KW_UTF32=793 +KW_UTF8=794 +KW_UTF8MB3=795 +KW_UTF8MB4=796 +KW_ARCHIVE=797 +KW_BLACKHOLE=798 +KW_CSV=799 +KW_FEDERATED=800 +KW_INNODB=801 +KW_MEMORY=802 +KW_MRG_MYISAM=803 +KW_MYISAM=804 +KW_NDB=805 +KW_NDBCLUSTER=806 +KW_PERFORMANCE_SCHEMA=807 +KW_TOKUDB=808 +KW_REPEATABLE=809 +KW_COMMITTED=810 +KW_UNCOMMITTED=811 +KW_SERIALIZABLE=812 +KW_GEOMETRYCOLLECTION=813 +KW_GEOMCOLLECTION=814 +KW_GEOMETRY=815 +KW_LINESTRING=816 +KW_MULTILINESTRING=817 +KW_MULTIPOINT=818 +KW_MULTIPOLYGON=819 +KW_POINT=820 +KW_POLYGON=821 +KW_CATALOG_NAME=822 +KW_CHARSET=823 +KW_COLLATION=824 +KW_ENGINE_ATTRIBUTE=825 +KW_FORMAT=826 +KW_GET_FORMAT=827 +KW_INTERSECT=828 +KW_RANDOM=829 +KW_REVERSE=830 +KW_ROW_COUNT=831 +KW_SCHEMA_NAME=832 +KW_SECONDARY_ENGINE_ATTRIBUTE=833 +KW_SRID=834 +KW_SYSTEM=835 +KW_SYSTEM_USER=836 +KW_THREAD_PRIORITY=837 +KW_TP_CONNECTION_ADMIN=838 +KW_TYPE=839 +KW_WEIGHT_STRING=840 +VAR_ASSIGN=841 +PLUS_ASSIGN=842 +MINUS_ASSIGN=843 +MULT_ASSIGN=844 +DIV_ASSIGN=845 +MOD_ASSIGN=846 +AND_ASSIGN=847 +XOR_ASSIGN=848 +OR_ASSIGN=849 +STAR=850 +DIVIDE=851 +MODULE=852 +PLUS=853 +MINUS=854 +DIV=855 +MOD=856 +EQUAL_SYMBOL=857 +GREATER_SYMBOL=858 +LESS_SYMBOL=859 +EXCLAMATION_SYMBOL=860 +BIT_NOT_OP=861 +BIT_OR_OP=862 +BIT_AND_OP=863 +BIT_XOR_OP=864 +DOT=865 +LR_BRACKET=866 +RR_BRACKET=867 +COMMA=868 +SEMI=869 +AT_SIGN=870 +ZERO_DECIMAL=871 +ONE_DECIMAL=872 +TWO_DECIMAL=873 +THREE_DECIMAL=874 +SINGLE_QUOTE_SYMB=875 +DOUBLE_QUOTE_SYMB=876 +REVERSE_QUOTE_SYMB=877 +COLON_SYMB=878 +CHARSET_REVERSE_QOUTE_STRING=879 +FILESIZE_LITERAL=880 +START_NATIONAL_STRING_LITERAL=881 +STRING_LITERAL=882 +DECIMAL_LITERAL=883 +HEXADECIMAL_LITERAL=884 +REAL_LITERAL=885 +NULL_SPEC_LITERAL=886 +BIT_STRING=887 +STRING_CHARSET_NAME=888 +DOT_ID=889 +ID=890 +REVERSE_QUOTE_ID=891 +HOST_IP_ADDRESS=892 +LOCAL_ID=893 +GLOBAL_ID=894 +PERSIST_ID=895 +ERROR_RECONGNIGION=896 +'ACTIVE'=5 +'ADD'=6 +'ALL'=7 +'ALTER'=8 +'ALWAYS'=9 +'ANALYZE'=10 +'AND'=11 +'ARRAY'=12 +'AS'=13 +'ASC'=14 +'ATTRIBUTE'=15 +'BEFORE'=16 +'BETWEEN'=17 +'BOTH'=18 +'BUCKETS'=19 +'BY'=20 +'CALL'=21 +'CASCADE'=22 +'CASE'=23 +'CAST'=24 +'CHANGE'=25 +'CHARACTER'=26 +'CHECK'=27 +'COLLATE'=28 +'COLUMN'=29 +'CONDITION'=30 +'CONSTRAINT'=31 +'CONTINUE'=32 +'CONVERT'=33 +'CREATE'=34 +'CROSS'=35 +'CURRENT'=36 +'CURRENT_USER'=37 +'CURSOR'=38 +'DATABASE'=39 +'DATABASES'=40 +'DECLARE'=41 +'DEFAULT'=42 +'DELAYED'=43 +'DELETE'=44 +'DESC'=45 +'DESCRIBE'=46 +'DETERMINISTIC'=47 +'DIAGNOSTICS'=48 +'DISTINCT'=49 +'DISTINCTROW'=50 +'DROP'=51 +'EACH'=52 +'ELSE'=53 +'ELSEIF'=54 +'EMPTY'=55 +'ENCLOSED'=56 +'ENFORCED'=57 +'ESCAPED'=58 +'EXCEPT'=59 +'EXISTS'=60 +'EXIT'=61 +'EXPLAIN'=62 +'FALSE'=63 +'FETCH'=64 +'FOR'=65 +'FORCE'=66 +'FOREIGN'=67 +'FROM'=68 +'FULLTEXT'=69 +'GENERATE'=70 +'GENERATED'=71 +'GET'=72 +'GRANT'=73 +'GROUP'=74 +'HAVING'=75 +'HIGH_PRIORITY'=76 +'HISTOGRAM'=77 +'IF'=78 +'IGNORE'=79 +'IN'=80 +'INACTIVE'=81 +'INDEX'=82 +'INFILE'=83 +'INNER'=84 +'INOUT'=85 +'INSERT'=86 +'INTERVAL'=87 +'INTO'=88 +'IS'=89 +'ITERATE'=90 +'JOIN'=91 +'KEY'=92 +'KEYS'=93 +'KILL'=94 +'LATERAL'=95 +'LEADING'=96 +'LEAVE'=97 +'LEFT'=98 +'LIKE'=99 +'LIMIT'=100 +'LINEAR'=101 +'LINES'=102 +'LOAD'=103 +'LOCK'=104 +'LOCKED'=105 +'LOOP'=106 +'LOW_PRIORITY'=107 +'MASTER_BIND'=108 +'MASTER_SSL_VERIFY_SERVER_CERT'=109 +'MATCH'=110 +'MAXVALUE'=111 +'MODIFIES'=112 +'NATURAL'=113 +'NOT'=114 +'NO_WRITE_TO_BINLOG'=115 +'NULL'=116 +'NUMBER'=117 +'STREAM'=118 +'ON'=119 +'OPTIMIZE'=120 +'OPTION'=121 +'OPTIONAL'=122 +'OPTIONALLY'=123 +'OR'=124 +'ORDER'=125 +'OUT'=126 +'OUTER'=127 +'OUTFILE'=128 +'OVER'=129 +'PARTITION'=130 +'PRIMARY'=131 +'PROCEDURE'=132 +'PURGE'=133 +'RANGE'=134 +'READ'=135 +'READS'=136 +'REFERENCE'=137 +'REFERENCES'=138 +'REGEXP'=139 +'RELEASE'=140 +'RENAME'=141 +'REPEAT'=142 +'REPLACE'=143 +'REQUIRE'=144 +'RESIGNAL'=145 +'RESTRICT'=146 +'RETAIN'=147 +'RETURN'=148 +'REVOKE'=149 +'RIGHT'=150 +'RLIKE'=151 +'SCHEMA'=152 +'SCHEMAS'=153 +'SELECT'=154 +'SET'=155 +'SEPARATOR'=156 +'SHOW'=157 +'SIGNAL'=158 +'SKIP'=159 +'SKIP_QUERY_REWRITE'=160 +'SPATIAL'=161 +'SQL'=162 +'SQLEXCEPTION'=163 +'SQLSTATE'=164 +'SQLWARNING'=165 +'SQL_BIG_RESULT'=166 +'SQL_CALC_FOUND_ROWS'=167 +'SQL_SMALL_RESULT'=168 +'SSL'=169 +'STACKED'=170 +'STARTING'=171 +'STRAIGHT_JOIN'=172 +'TABLE'=173 +'TERMINATED'=174 +'THEN'=175 +'TO'=176 +'TRAILING'=177 +'TRIGGER'=178 +'TRUE'=179 +'UNDO'=180 +'UNION'=181 +'UNIQUE'=182 +'UNLOCK'=183 +'UNSIGNED'=184 +'UPDATE'=185 +'USAGE'=186 +'USE'=187 +'USING'=188 +'VALUES'=189 +'VCPU'=190 +'WHEN'=191 +'WHERE'=192 +'WHILE'=193 +'WITH'=194 +'WRITE'=195 +'XOR'=196 +'ZEROFILL'=197 +'TINYINT'=198 +'SMALLINT'=199 +'MEDIUMINT'=200 +'MIDDLEINT'=201 +'INT'=202 +'INT1'=203 +'INT2'=204 +'INT3'=205 +'INT4'=206 +'INT8'=207 +'INTEGER'=208 +'BIGINT'=209 +'REAL'=210 +'DOUBLE'=211 +'PRECISION'=212 +'FLOAT'=213 +'FLOAT4'=214 +'FLOAT8'=215 +'DECIMAL'=216 +'DEC'=217 +'NUMERIC'=218 +'DATE'=219 +'TIME'=220 +'TIMESTAMP'=221 +'DATETIME'=222 +'YEAR'=223 +'CHAR'=224 +'VARCHAR'=225 +'NVARCHAR'=226 +'NATIONAL'=227 +'BINARY'=228 +'VARBINARY'=229 +'TINYBLOB'=230 +'BLOB'=231 +'MEDIUMBLOB'=232 +'LONG'=233 +'LONGBLOB'=234 +'TINYTEXT'=235 +'TEXT'=236 +'MEDIUMTEXT'=237 +'LONGTEXT'=238 +'ENUM'=239 +'VARYING'=240 +'SERIAL'=241 +'YEAR_MONTH'=242 +'DAY_HOUR'=243 +'DAY_MINUTE'=244 +'DAY_SECOND'=245 +'HOUR_MINUTE'=246 +'HOUR_SECOND'=247 +'MINUTE_SECOND'=248 +'SECOND_MICROSECOND'=249 +'MINUTE_MICROSECOND'=250 +'HOUR_MICROSECOND'=251 +'DAY_MICROSECOND'=252 +'JSON_TABLE'=253 +'JSON_VALUE'=254 +'NESTED'=255 +'ORDINALITY'=256 +'PATH'=257 +'AVG'=258 +'BIT_AND'=259 +'BIT_OR'=260 +'BIT_XOR'=261 +'COUNT'=262 +'CUME_DIST'=263 +'DENSE_RANK'=264 +'FIRST_VALUE'=265 +'GROUP_CONCAT'=266 +'LAG'=267 +'LAST_VALUE'=268 +'LEAD'=269 +'MAX'=270 +'MIN'=271 +'NTILE'=272 +'NTH_VALUE'=273 +'PERCENT_RANK'=274 +'RANK'=275 +'ROW_NUMBER'=276 +'STD'=277 +'STDDEV'=278 +'STDDEV_POP'=279 +'STDDEV_SAMP'=280 +'SUM'=281 +'VAR_POP'=282 +'VAR_SAMP'=283 +'VARIANCE'=284 +'CURRENT_DATE'=285 +'CURRENT_TIME'=286 +'CURRENT_TIMESTAMP'=287 +'LOCALTIME'=288 +'CURDATE'=289 +'CURTIME'=290 +'DATE_ADD'=291 +'DATE_SUB'=292 +'EXTRACT'=293 +'LOCALTIMESTAMP'=294 +'NOW'=295 +'POSITION'=296 +'SUBSTR'=297 +'SUBSTRING'=298 +'SYSDATE'=299 +'TRIM'=300 +'UTC_DATE'=301 +'UTC_TIME'=302 +'UTC_TIMESTAMP'=303 +'ACCOUNT'=304 +'ACTION'=305 +'AFTER'=306 +'AGGREGATE'=307 +'ALGORITHM'=308 +'ANY'=309 +'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS'=310 +'AT'=311 +'AUTHORS'=312 +'AUTOCOMMIT'=313 +'AUTOEXTEND_SIZE'=314 +'AUTO_INCREMENT'=315 +'AVG_ROW_LENGTH'=316 +'BEGIN'=317 +'BINLOG'=318 +'BIT'=319 +'BLOCK'=320 +'BOOL'=321 +'BOOLEAN'=322 +'BTREE'=323 +'CACHE'=324 +'CASCADED'=325 +'CHAIN'=326 +'CHANGED'=327 +'CHANNEL'=328 +'CHECKSUM'=329 +'CHALLENGE_RESPONSE'=330 +'CIPHER'=331 +'CLASS_ORIGIN'=332 +'CLIENT'=333 +'CLOSE'=334 +'COALESCE'=335 +'CODE'=336 +'COLUMNS'=337 +'COLUMN_FORMAT'=338 +'COLUMN_NAME'=339 +'COMMENT'=340 +'COMMIT'=341 +'COMPACT'=342 +'COMPLETION'=343 +'COMPONENT'=344 +'COMPRESSED'=345 +'COMPRESSION'=346 +'CONCURRENT'=347 +'CONNECT'=348 +'CONNECTION'=349 +'CONSISTENT'=350 +'CONSTRAINT_CATALOG'=351 +'CONSTRAINT_SCHEMA'=352 +'CONSTRAINT_NAME'=353 +'CONTAINS'=354 +'CONTEXT'=355 +'CONTRIBUTORS'=356 +'COPY'=357 +'CPU'=358 +'CURSOR_NAME'=359 +'DATA'=360 +'DATAFILE'=361 +'DEALLOCATE'=362 +'DEFAULT_AUTH'=363 +'DEFINER'=364 +'DELAY_KEY_WRITE'=365 +'DES_KEY_FILE'=366 +'DIRECTORY'=367 +'DISABLE'=368 +'DISCARD'=369 +'DISK'=370 +'DO'=371 +'DUMPFILE'=372 +'DUPLICATE'=373 +'DYNAMIC'=374 +'ENABLE'=375 +'ENCRYPTION'=376 +'ENCRYPTION_KEY_ID'=377 +'END'=378 +'ENDS'=379 +'ENGINE'=380 +'ENGINES'=381 +'ERROR'=382 +'ERRORS'=383 +'ESCAPE'=384 +'EVENT'=385 +'EVENTS'=386 +'EVERY'=387 +'EXCHANGE'=388 +'EXCLUSIVE'=389 +'EXPIRE'=390 +'EXPORT'=391 +'EXTENDED'=392 +'EXTENT_SIZE'=393 +'FACTOR'=394 +'FAILED_LOGIN_ATTEMPTS'=395 +'FAST'=396 +'FAULTS'=397 +'FIELDS'=398 +'FILE_BLOCK_SIZE'=399 +'FILTER'=400 +'FINISH'=401 +'FIRST'=402 +'FIXED'=403 +'FLUSH'=404 +'FOLLOWING'=405 +'FOLLOWS'=406 +'FOUND'=407 +'FULL'=408 +'FUNCTION'=409 +'GENERAL'=410 +'GET_MASTER_PUBLIC_KEY'=411 +'GET_SOURCE_PUBLIC_KEY'=412 +'GLOBAL'=413 +'GRANTS'=414 +'GROUP_REPLICATION'=415 +'GTID_ONLY'=416 +'HANDLER'=417 +'HASH'=418 +'HELP'=419 +'HISTORY'=420 +'HOST'=421 +'HOSTS'=422 +'IDENTIFIED'=423 +'IGNORE_SERVER_IDS'=424 +'IMPORT'=425 +'INDEXES'=426 +'INITIAL'=427 +'INITIAL_SIZE'=428 +'INITIATE'=429 +'INPLACE'=430 +'INSERT_METHOD'=431 +'INSTALL'=432 +'INSTANCE'=433 +'INSTANT'=434 +'INVISIBLE'=435 +'INVOKER'=436 +'IO'=437 +'IO_THREAD'=438 +'IPC'=439 +'ISOLATION'=440 +'ISSUER'=441 +'JSON'=442 +'KEY_BLOCK_SIZE'=443 +'LANGUAGE'=444 +'LAST'=445 +'LEAVES'=446 +'LESS'=447 +'LEVEL'=448 +'LIST'=449 +'LOCAL'=450 +'LOGFILE'=451 +'LOGS'=452 +'MASTER'=453 +'MASTER_AUTO_POSITION'=454 +'MASTER_COMPRESSION_ALGORITHMS'=455 +'MASTER_CONNECT_RETRY'=456 +'MASTER_DELAY'=457 +'MASTER_HEARTBEAT_PERIOD'=458 +'MASTER_HOST'=459 +'MASTER_LOG_FILE'=460 +'MASTER_LOG_POS'=461 +'MASTER_PASSWORD'=462 +'MASTER_PORT'=463 +'MASTER_PUBLIC_KEY_PATH'=464 +'MASTER_RETRY_COUNT'=465 +'MASTER_SSL'=466 +'MASTER_SSL_CA'=467 +'MASTER_SSL_CAPATH'=468 +'MASTER_SSL_CERT'=469 +'MASTER_SSL_CIPHER'=470 +'MASTER_SSL_CRL'=471 +'MASTER_SSL_CRLPATH'=472 +'MASTER_SSL_KEY'=473 +'MASTER_TLS_CIPHERSUITES'=474 +'MASTER_TLS_VERSION'=475 +'MASTER_USER'=476 +'MASTER_ZSTD_COMPRESSION_LEVEL'=477 +'MAX_CONNECTIONS_PER_HOUR'=478 +'MAX_QUERIES_PER_HOUR'=479 +'MAX_ROWS'=480 +'MAX_SIZE'=481 +'MAX_UPDATES_PER_HOUR'=482 +'MAX_USER_CONNECTIONS'=483 +'MEDIUM'=484 +'MEMBER'=485 +'MERGE'=486 +'MESSAGE_TEXT'=487 +'MID'=488 +'MIGRATE'=489 +'MIN_ROWS'=490 +'MODE'=491 +'MODIFY'=492 +'MUTEX'=493 +'MYSQL'=494 +'MYSQL_ERRNO'=495 +'NAME'=496 +'NAMES'=497 +'NCHAR'=498 +'NETWORK_NAMESPACE'=499 +'NEVER'=500 +'NEXT'=501 +'NO'=502 +'NOWAIT'=503 +'NODEGROUP'=504 +'NONE'=505 +'ODBC'=506 +'OFF'=507 +'OFFLINE'=508 +'OFFSET'=509 +'OF'=510 +'OLD'=511 +'OLD_PASSWORD'=512 +'ONE'=513 +'ONLINE'=514 +'ONLY'=515 +'OPEN'=516 +'OPTIMIZER_COSTS'=517 +'OPTIONS'=518 +'OWNER'=519 +'PACK_KEYS'=520 +'PAGE'=521 +'PAGE_CHECKSUM'=522 +'PAGE_COMPRESSED'=523 +'PAGE_COMPRESSION_LEVEL'=524 +'PARSER'=525 +'PARTIAL'=526 +'PARTITIONING'=527 +'PARTITIONS'=528 +'PASSWORD'=529 +'PASSWORD_LOCK_TIME'=530 +'PERSIST'=531 +'PERSIST_ONLY'=532 +'PHASE'=533 +'PLUGIN'=534 +'PLUGIN_DIR'=535 +'PLUGINS'=536 +'PORT'=537 +'PRECEDES'=538 +'PRECEDING'=539 +'PREPARE'=540 +'PRESERVE'=541 +'PREV'=542 +'PRIVILEGE_CHECKS_USER'=543 +'PROCESSLIST'=544 +'PROFILE'=545 +'PROFILES'=546 +'PROXY'=547 +'QUERY'=548 +'QUICK'=549 +'REBUILD'=550 +'RECOVER'=551 +'RECURSIVE'=552 +'REDO_BUFFER_SIZE'=553 +'REDUNDANT'=554 +'REGISTRATION'=555 +'RELAY'=556 +'RELAY_LOG_FILE'=557 +'RELAY_LOG_POS'=558 +'RELAYLOG'=559 +'REMOVE'=560 +'REORGANIZE'=561 +'REPAIR'=562 +'REPLICA'=563 +'REPLICAS'=564 +'REPLICATE_DO_DB'=565 +'REPLICATE_DO_TABLE'=566 +'REPLICATE_IGNORE_DB'=567 +'REPLICATE_IGNORE_TABLE'=568 +'REPLICATE_REWRITE_DB'=569 +'REPLICATE_WILD_DO_TABLE'=570 +'REPLICATE_WILD_IGNORE_TABLE'=571 +'REPLICATION'=572 +'REQUIRE_ROW_FORMAT'=573 +'REQUIRE_TABLE_PRIMARY_KEY_CHECK'=574 +'RESET'=575 +'RESTART'=576 +'RESUME'=577 +'RETURNED_SQLSTATE'=578 +'RETURNING'=579 +'RETURNS'=580 +'REUSE'=581 +'ROLE'=582 +'ROLLBACK'=583 +'ROLLUP'=584 +'ROTATE'=585 +'ROW'=586 +'ROWS'=587 +'ROW_FORMAT'=588 +'SAVEPOINT'=589 +'SCHEDULE'=590 +'SECURITY'=591 +'SERVER'=592 +'SESSION'=593 +'SHARE'=594 +'SHARED'=595 +'SIGNED'=596 +'SIMPLE'=597 +'SLAVE'=598 +'SLOW'=599 +'SNAPSHOT'=600 +'SOCKET'=601 +'SOME'=602 +'SONAME'=603 +'SOUNDS'=604 +'SOURCE'=605 +'SOURCE_BIND'=606 +'SOURCE_HOST'=607 +'SOURCE_USER'=608 +'SOURCE_PASSWORD'=609 +'SOURCE_PORT'=610 +'SOURCE_LOG_FILE'=611 +'SOURCE_LOG_POS'=612 +'SOURCE_AUTO_POSITION'=613 +'SOURCE_HEARTBEAT_PERIOD'=614 +'SOURCE_CONNECT_RETRY'=615 +'SOURCE_RETRY_COUNT'=616 +'SOURCE_CONNECTION_AUTO_FAILOVER'=617 +'SOURCE_DELAY'=618 +'SOURCE_COMPRESSION_ALGORITHMS'=619 +'SOURCE_ZSTD_COMPRESSION_LEVEL'=620 +'SOURCE_SSL'=621 +'SOURCE_SSL_CA'=622 +'SOURCE_SSL_CAPATH'=623 +'SOURCE_SSL_CERT'=624 +'SOURCE_SSL_CRL'=625 +'SOURCE_SSL_CRLPATH'=626 +'SOURCE_SSL_KEY'=627 +'SOURCE_SSL_CIPHER'=628 +'SOURCE_SSL_VERIFY_SERVER_CERT'=629 +'SOURCE_TLS_VERSION'=630 +'SOURCE_TLS_CIPHERSUITES'=631 +'SOURCE_PUBLIC_KEY_PATH'=632 +'SQL_AFTER_GTIDS'=633 +'SQL_AFTER_MTS_GAPS'=634 +'SQL_BEFORE_GTIDS'=635 +'SQL_BUFFER_RESULT'=636 +'SQL_CACHE'=637 +'SQL_NO_CACHE'=638 +'SQL_THREAD'=639 +'START'=640 +'STARTS'=641 +'STATS_AUTO_RECALC'=642 +'STATS_PERSISTENT'=643 +'STATS_SAMPLE_PAGES'=644 +'STATUS'=645 +'STOP'=646 +'STORAGE'=647 +'STORED'=648 +'STRING'=649 +'SUBCLASS_ORIGIN'=650 +'SUBJECT'=651 +'SUBPARTITION'=652 +'SUBPARTITIONS'=653 +'SUSPEND'=654 +'SWAPS'=655 +'SWITCHES'=656 +'TABLE_NAME'=657 +'TABLESPACE'=658 +'TABLE_TYPE'=659 +'TEMPORARY'=660 +'TEMPTABLE'=661 +'THAN'=662 +'TRADITIONAL'=663 +'TRANSACTION'=664 +'TRANSACTIONAL'=665 +'TREE'=666 +'TRIGGERS'=667 +'TRUNCATE'=668 +'UNBOUNDED'=669 +'UNDEFINED'=670 +'UNDOFILE'=671 +'UNDO_BUFFER_SIZE'=672 +'UNINSTALL'=673 +'UNKNOWN'=674 +'UNREGISTER'=675 +'UNTIL'=676 +'UPGRADE'=677 +'USER'=678 +'USE_FRM'=679 +'USER_RESOURCES'=680 +'VALIDATION'=681 +'VALUE'=682 +'VARIABLES'=683 +'VIEW'=684 +'VIRTUAL'=685 +'VISIBLE'=686 +'WAIT'=687 +'WARNINGS'=688 +'WINDOW'=689 +'WITHOUT'=690 +'WORK'=691 +'WRAPPER'=692 +'X509'=693 +'XA'=694 +'XML'=695 +'QUARTER'=696 +'MONTH'=697 +'DAY'=698 +'HOUR'=699 +'MINUTE'=700 +'WEEK'=701 +'SECOND'=702 +'MICROSECOND'=703 +'ADMIN'=704 +'APPLICATION_PASSWORD_ADMIN'=705 +'AUDIT_ABORT_EXEMPT'=706 +'AUDIT_ADMIN'=707 +'AUTHENTICATION'=708 +'AUTHENTICATION_POLICY_ADMIN'=709 +'BACKUP_ADMIN'=710 +'BINLOG_ADMIN'=711 +'BINLOG_ENCRYPTION_ADMIN'=712 +'CLONE'=713 +'CLONE_ADMIN'=714 +'CONNECTION_ADMIN'=715 +'ENCRYPTION_KEY_ADMIN'=716 +'EXECUTE'=717 +'FILE'=718 +'FIREWALL_ADMIN'=719 +'FIREWALL_EXEMPT'=720 +'FIREWALL_USER'=721 +'FLUSH_OPTIMIZER_COSTS'=722 +'FLUSH_STATUS'=723 +'FLUSH_TABLES'=724 +'FLUSH_USER_RESOURCES'=725 +'GROUP_REPLICATION_ADMIN'=726 +'INNODB_REDO_LOG_ARCHIVE'=727 +'INNODB_REDO_LOG_ENABLE'=728 +'INVOKE'=729 +'LAMBDA'=730 +'NDB_STORED_USER'=731 +'PASSWORDLESS_USER_ADMIN'=732 +'PERSIST_RO_VARIABLES_ADMIN'=733 +'PRIVILEGES'=734 +'PROCESS'=735 +'RELOAD'=736 +'REPLICATION_APPLIER'=737 +'REPLICATION_SLAVE_ADMIN'=738 +'RESOURCE'=739 +'RESOURCE_GROUP_ADMIN'=740 +'RESOURCE_GROUP_USER'=741 +'ROLE_ADMIN'=742 +'ROUTINE'=743 +'S3'=744 +'SERVICE_CONNECTION_ADMIN'=745 +'SET_USER_ID'=747 +'SHOW_ROUTINE'=748 +'SHUTDOWN'=749 +'SUPER'=750 +'SYSTEM_VARIABLES_ADMIN'=751 +'TABLES'=752 +'TABLE_ENCRYPTION_ADMIN'=753 +'VERSION_TOKEN_ADMIN'=754 +'XA_RECOVER_ADMIN'=755 +'ARMSCII8'=756 +'ASCII'=757 +'BIG5'=758 +'CP1250'=759 +'CP1251'=760 +'CP1256'=761 +'CP1257'=762 +'CP850'=763 +'CP852'=764 +'CP866'=765 +'CP932'=766 +'DEC8'=767 +'EUCJPMS'=768 +'EUCKR'=769 +'GB18030'=770 +'GB2312'=771 +'GBK'=772 +'GEOSTD8'=773 +'GREEK'=774 +'HEBREW'=775 +'HP8'=776 +'KEYBCS2'=777 +'KOI8R'=778 +'KOI8U'=779 +'LATIN1'=780 +'LATIN2'=781 +'LATIN5'=782 +'LATIN7'=783 +'MACCE'=784 +'MACROMAN'=785 +'SJIS'=786 +'SWE7'=787 +'TIS620'=788 +'UCS2'=789 +'UJIS'=790 +'UTF16'=791 +'UTF16LE'=792 +'UTF32'=793 +'UTF8'=794 +'UTF8MB3'=795 +'UTF8MB4'=796 +'ARCHIVE'=797 +'BLACKHOLE'=798 +'CSV'=799 +'FEDERATED'=800 +'INNODB'=801 +'MEMORY'=802 +'MRG_MYISAM'=803 +'MYISAM'=804 +'NDB'=805 +'NDBCLUSTER'=806 +'PERFORMANCE_SCHEMA'=807 +'TOKUDB'=808 +'REPEATABLE'=809 +'COMMITTED'=810 +'UNCOMMITTED'=811 +'SERIALIZABLE'=812 +'GEOMETRYCOLLECTION'=813 +'GEOMCOLLECTION'=814 +'GEOMETRY'=815 +'LINESTRING'=816 +'MULTILINESTRING'=817 +'MULTIPOINT'=818 +'MULTIPOLYGON'=819 +'POINT'=820 +'POLYGON'=821 +'CATALOG_NAME'=822 +'CHARSET'=823 +'COLLATION'=824 +'ENGINE_ATTRIBUTE'=825 +'FORMAT'=826 +'GET_FORMAT'=827 +'INTERSECT'=828 +'RANDOM'=829 +'REVERSE'=830 +'ROW_COUNT'=831 +'SCHEMA_NAME'=832 +'SECONDARY_ENGINE_ATTRIBUTE'=833 +'SRID'=834 +'SYSTEM'=835 +'SYSTEM_USER'=836 +'THREAD_PRIORITY'=837 +'TP_CONNECTION_ADMIN'=838 +'TYPE'=839 +'WEIGHT_STRING'=840 +':='=841 +'+='=842 +'-='=843 +'*='=844 +'/='=845 +'%='=846 +'&='=847 +'^='=848 +'|='=849 +'*'=850 +'/'=851 +'%'=852 +'+'=853 +'-'=854 +'DIV'=855 +'MOD'=856 +'='=857 +'>'=858 +'<'=859 +'!'=860 +'~'=861 +'|'=862 +'&'=863 +'^'=864 +'.'=865 +'('=866 +')'=867 +','=868 +';'=869 +'@'=870 +'0'=871 +'1'=872 +'2'=873 +'3'=874 +'\''=875 +'"'=876 +'`'=877 +':'=878 diff --git a/src/lib/mysql/MySqlParser.ts b/src/lib/mysql/MySqlParser.ts new file mode 100644 index 0000000..01ce5af --- /dev/null +++ b/src/lib/mysql/MySqlParser.ts @@ -0,0 +1,84250 @@ +// Generated from /Users/liuyi/Desktop/Projects/dtstack/dt-sql-parser/src/grammar/mysql/MySqlParser.g4 by ANTLR 4.9.0-SNAPSHOT + + +import { ATN } from "antlr4ts/atn/ATN"; +import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer"; +import { FailedPredicateException } from "antlr4ts/FailedPredicateException"; +import { NotNull } from "antlr4ts/Decorators"; +import { NoViableAltException } from "antlr4ts/NoViableAltException"; +import { Override } from "antlr4ts/Decorators"; +import { Parser } from "antlr4ts/Parser"; +import { ParserRuleContext } from "antlr4ts/ParserRuleContext"; +import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator"; +import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; +import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; +import { RecognitionException } from "antlr4ts/RecognitionException"; +import { RuleContext } from "antlr4ts/RuleContext"; +//import { RuleVersion } from "antlr4ts/RuleVersion"; +import { TerminalNode } from "antlr4ts/tree/TerminalNode"; +import { Token } from "antlr4ts/Token"; +import { TokenStream } from "antlr4ts/TokenStream"; +import { Vocabulary } from "antlr4ts/Vocabulary"; +import { VocabularyImpl } from "antlr4ts/VocabularyImpl"; + +import * as Utils from "antlr4ts/misc/Utils"; + +import { MySqlParserListener } from "./MySqlParserListener"; +import { MySqlParserVisitor } from "./MySqlParserVisitor"; + + +export class MySqlParser extends Parser { + public static readonly SPACE = 1; + public static readonly SPEC_MYSQL_COMMENT = 2; + public static readonly COMMENT_INPUT = 3; + public static readonly LINE_COMMENT = 4; + public static readonly KW_ACTIVE = 5; + public static readonly KW_ADD = 6; + public static readonly KW_ALL = 7; + public static readonly KW_ALTER = 8; + public static readonly KW_ALWAYS = 9; + public static readonly KW_ANALYZE = 10; + public static readonly KW_AND = 11; + public static readonly KW_ARRAY = 12; + public static readonly KW_AS = 13; + public static readonly KW_ASC = 14; + public static readonly KW_ATTRIBUTE = 15; + public static readonly KW_BEFORE = 16; + public static readonly KW_BETWEEN = 17; + public static readonly KW_BOTH = 18; + public static readonly KW_BUCKETS = 19; + public static readonly KW_BY = 20; + public static readonly KW_CALL = 21; + public static readonly KW_CASCADE = 22; + public static readonly KW_CASE = 23; + public static readonly KW_CAST = 24; + public static readonly KW_CHANGE = 25; + public static readonly KW_CHARACTER = 26; + public static readonly KW_CHECK = 27; + public static readonly KW_COLLATE = 28; + public static readonly KW_COLUMN = 29; + public static readonly KW_CONDITION = 30; + public static readonly KW_CONSTRAINT = 31; + public static readonly KW_CONTINUE = 32; + public static readonly KW_CONVERT = 33; + public static readonly KW_CREATE = 34; + public static readonly KW_CROSS = 35; + public static readonly KW_CURRENT = 36; + public static readonly KW_CURRENT_USER = 37; + public static readonly KW_CURSOR = 38; + public static readonly KW_DATABASE = 39; + public static readonly KW_DATABASES = 40; + public static readonly KW_DECLARE = 41; + public static readonly KW_DEFAULT = 42; + public static readonly KW_DELAYED = 43; + public static readonly KW_DELETE = 44; + public static readonly KW_DESC = 45; + public static readonly KW_DESCRIBE = 46; + public static readonly KW_DETERMINISTIC = 47; + public static readonly KW_DIAGNOSTICS = 48; + public static readonly KW_DISTINCT = 49; + public static readonly KW_DISTINCTROW = 50; + public static readonly KW_DROP = 51; + public static readonly KW_EACH = 52; + public static readonly KW_ELSE = 53; + public static readonly KW_ELSEIF = 54; + public static readonly KW_EMPTY = 55; + public static readonly KW_ENCLOSED = 56; + public static readonly KW_ENFORCED = 57; + public static readonly KW_ESCAPED = 58; + public static readonly KW_EXCEPT = 59; + public static readonly KW_EXISTS = 60; + public static readonly KW_EXIT = 61; + public static readonly KW_EXPLAIN = 62; + public static readonly KW_FALSE = 63; + public static readonly KW_FETCH = 64; + public static readonly KW_FOR = 65; + public static readonly KW_FORCE = 66; + public static readonly KW_FOREIGN = 67; + public static readonly KW_FROM = 68; + public static readonly KW_FULLTEXT = 69; + public static readonly KW_GENERATE = 70; + public static readonly KW_GENERATED = 71; + public static readonly KW_GET = 72; + public static readonly KW_GRANT = 73; + public static readonly KW_GROUP = 74; + public static readonly KW_HAVING = 75; + public static readonly KW_HIGH_PRIORITY = 76; + public static readonly KW_HISTOGRAM = 77; + public static readonly KW_IF = 78; + public static readonly KW_IGNORE = 79; + public static readonly KW_IN = 80; + public static readonly KW_INACTIVE = 81; + public static readonly KW_INDEX = 82; + public static readonly KW_INFILE = 83; + public static readonly KW_INNER = 84; + public static readonly KW_INOUT = 85; + public static readonly KW_INSERT = 86; + public static readonly KW_INTERVAL = 87; + public static readonly KW_INTO = 88; + public static readonly KW_IS = 89; + public static readonly KW_ITERATE = 90; + public static readonly KW_JOIN = 91; + public static readonly KW_KEY = 92; + public static readonly KW_KEYS = 93; + public static readonly KW_KILL = 94; + public static readonly KW_LATERAL = 95; + public static readonly KW_LEADING = 96; + public static readonly KW_LEAVE = 97; + public static readonly KW_LEFT = 98; + public static readonly KW_LIKE = 99; + public static readonly KW_LIMIT = 100; + public static readonly KW_LINEAR = 101; + public static readonly KW_LINES = 102; + public static readonly KW_LOAD = 103; + public static readonly KW_LOCK = 104; + public static readonly KW_LOCKED = 105; + public static readonly KW_LOOP = 106; + public static readonly KW_LOW_PRIORITY = 107; + public static readonly KW_MASTER_BIND = 108; + public static readonly KW_MASTER_SSL_VERIFY_SERVER_CERT = 109; + public static readonly KW_MATCH = 110; + public static readonly KW_MAXVALUE = 111; + public static readonly KW_MODIFIES = 112; + public static readonly KW_NATURAL = 113; + public static readonly KW_NOT = 114; + public static readonly KW_NO_WRITE_TO_BINLOG = 115; + public static readonly KW_NULL_LITERAL = 116; + public static readonly KW_NUMBER = 117; + public static readonly KW_STREAM = 118; + public static readonly KW_ON = 119; + public static readonly KW_OPTIMIZE = 120; + public static readonly KW_OPTION = 121; + public static readonly KW_OPTIONAL = 122; + public static readonly KW_OPTIONALLY = 123; + public static readonly KW_OR = 124; + public static readonly KW_ORDER = 125; + public static readonly KW_OUT = 126; + public static readonly KW_OUTER = 127; + public static readonly KW_OUTFILE = 128; + public static readonly KW_OVER = 129; + public static readonly KW_PARTITION = 130; + public static readonly KW_PRIMARY = 131; + public static readonly KW_PROCEDURE = 132; + public static readonly KW_PURGE = 133; + public static readonly KW_RANGE = 134; + public static readonly KW_READ = 135; + public static readonly KW_READS = 136; + public static readonly KW_REFERENCE = 137; + public static readonly KW_REFERENCES = 138; + public static readonly KW_REGEXP = 139; + public static readonly KW_RELEASE = 140; + public static readonly KW_RENAME = 141; + public static readonly KW_REPEAT = 142; + public static readonly KW_REPLACE = 143; + public static readonly KW_REQUIRE = 144; + public static readonly KW_RESIGNAL = 145; + public static readonly KW_RESTRICT = 146; + public static readonly KW_RETAIN = 147; + public static readonly KW_RETURN = 148; + public static readonly KW_REVOKE = 149; + public static readonly KW_RIGHT = 150; + public static readonly KW_RLIKE = 151; + public static readonly KW_SCHEMA = 152; + public static readonly KW_SCHEMAS = 153; + public static readonly KW_SELECT = 154; + public static readonly KW_SET = 155; + public static readonly KW_SEPARATOR = 156; + public static readonly KW_SHOW = 157; + public static readonly KW_SIGNAL = 158; + public static readonly KW_SKIP = 159; + public static readonly KW_SKIP_QUERY_REWRITE = 160; + public static readonly KW_SPATIAL = 161; + public static readonly KW_SQL = 162; + public static readonly KW_SQLEXCEPTION = 163; + public static readonly KW_SQLSTATE = 164; + public static readonly KW_SQLWARNING = 165; + public static readonly KW_SQL_BIG_RESULT = 166; + public static readonly KW_SQL_CALC_FOUND_ROWS = 167; + public static readonly KW_SQL_SMALL_RESULT = 168; + public static readonly KW_SSL = 169; + public static readonly KW_STACKED = 170; + public static readonly KW_STARTING = 171; + public static readonly KW_STRAIGHT_JOIN = 172; + public static readonly KW_TABLE = 173; + public static readonly KW_TERMINATED = 174; + public static readonly KW_THEN = 175; + public static readonly KW_TO = 176; + public static readonly KW_TRAILING = 177; + public static readonly KW_TRIGGER = 178; + public static readonly KW_TRUE = 179; + public static readonly KW_UNDO = 180; + public static readonly KW_UNION = 181; + public static readonly KW_UNIQUE = 182; + public static readonly KW_UNLOCK = 183; + public static readonly KW_UNSIGNED = 184; + public static readonly KW_UPDATE = 185; + public static readonly KW_USAGE = 186; + public static readonly KW_USE = 187; + public static readonly KW_USING = 188; + public static readonly KW_VALUES = 189; + public static readonly KW_VCPU = 190; + public static readonly KW_WHEN = 191; + public static readonly KW_WHERE = 192; + public static readonly KW_WHILE = 193; + public static readonly KW_WITH = 194; + public static readonly KW_WRITE = 195; + public static readonly KW_XOR = 196; + public static readonly KW_ZEROFILL = 197; + public static readonly KW_TINYINT = 198; + public static readonly KW_SMALLINT = 199; + public static readonly KW_MEDIUMINT = 200; + public static readonly KW_MIDDLEINT = 201; + public static readonly KW_INT = 202; + public static readonly KW_INT1 = 203; + public static readonly KW_INT2 = 204; + public static readonly KW_INT3 = 205; + public static readonly KW_INT4 = 206; + public static readonly KW_INT8 = 207; + public static readonly KW_INTEGER = 208; + public static readonly KW_BIGINT = 209; + public static readonly KW_REAL = 210; + public static readonly KW_DOUBLE = 211; + public static readonly KW_PRECISION = 212; + public static readonly KW_FLOAT = 213; + public static readonly KW_FLOAT4 = 214; + public static readonly KW_FLOAT8 = 215; + public static readonly KW_DECIMAL = 216; + public static readonly KW_DEC = 217; + public static readonly KW_NUMERIC = 218; + public static readonly KW_DATE = 219; + public static readonly KW_TIME = 220; + public static readonly KW_TIMESTAMP = 221; + public static readonly KW_DATETIME = 222; + public static readonly KW_YEAR = 223; + public static readonly KW_CHAR = 224; + public static readonly KW_VARCHAR = 225; + public static readonly KW_NVARCHAR = 226; + public static readonly KW_NATIONAL = 227; + public static readonly KW_BINARY = 228; + public static readonly KW_VARBINARY = 229; + public static readonly KW_TINYBLOB = 230; + public static readonly KW_BLOB = 231; + public static readonly KW_MEDIUMBLOB = 232; + public static readonly KW_LONG = 233; + public static readonly KW_LONGBLOB = 234; + public static readonly KW_TINYTEXT = 235; + public static readonly KW_TEXT = 236; + public static readonly KW_MEDIUMTEXT = 237; + public static readonly KW_LONGTEXT = 238; + public static readonly KW_ENUM = 239; + public static readonly KW_VARYING = 240; + public static readonly KW_SERIAL = 241; + public static readonly KW_YEAR_MONTH = 242; + public static readonly KW_DAY_HOUR = 243; + public static readonly KW_DAY_MINUTE = 244; + public static readonly KW_DAY_SECOND = 245; + public static readonly KW_HOUR_MINUTE = 246; + public static readonly KW_HOUR_SECOND = 247; + public static readonly KW_MINUTE_SECOND = 248; + public static readonly KW_SECOND_MICROSECOND = 249; + public static readonly KW_MINUTE_MICROSECOND = 250; + public static readonly KW_HOUR_MICROSECOND = 251; + public static readonly KW_DAY_MICROSECOND = 252; + public static readonly KW_JSON_TABLE = 253; + public static readonly KW_JSON_VALUE = 254; + public static readonly KW_NESTED = 255; + public static readonly KW_ORDINALITY = 256; + public static readonly KW_PATH = 257; + public static readonly KW_AVG = 258; + public static readonly KW_BIT_AND = 259; + public static readonly KW_BIT_OR = 260; + public static readonly KW_BIT_XOR = 261; + public static readonly KW_COUNT = 262; + public static readonly KW_CUME_DIST = 263; + public static readonly KW_DENSE_RANK = 264; + public static readonly KW_FIRST_VALUE = 265; + public static readonly KW_GROUP_CONCAT = 266; + public static readonly KW_LAG = 267; + public static readonly KW_LAST_VALUE = 268; + public static readonly KW_LEAD = 269; + public static readonly KW_MAX = 270; + public static readonly KW_MIN = 271; + public static readonly KW_NTILE = 272; + public static readonly KW_NTH_VALUE = 273; + public static readonly KW_PERCENT_RANK = 274; + public static readonly KW_RANK = 275; + public static readonly KW_ROW_NUMBER = 276; + public static readonly KW_STD = 277; + public static readonly KW_STDDEV = 278; + public static readonly KW_STDDEV_POP = 279; + public static readonly KW_STDDEV_SAMP = 280; + public static readonly KW_SUM = 281; + public static readonly KW_VAR_POP = 282; + public static readonly KW_VAR_SAMP = 283; + public static readonly KW_VARIANCE = 284; + public static readonly KW_CURRENT_DATE = 285; + public static readonly KW_CURRENT_TIME = 286; + public static readonly KW_CURRENT_TIMESTAMP = 287; + public static readonly KW_LOCALTIME = 288; + public static readonly KW_CURDATE = 289; + public static readonly KW_CURTIME = 290; + public static readonly KW_DATE_ADD = 291; + public static readonly KW_DATE_SUB = 292; + public static readonly KW_EXTRACT = 293; + public static readonly KW_LOCALTIMESTAMP = 294; + public static readonly KW_NOW = 295; + public static readonly KW_POSITION = 296; + public static readonly KW_SUBSTR = 297; + public static readonly KW_SUBSTRING = 298; + public static readonly KW_SYSDATE = 299; + public static readonly KW_TRIM = 300; + public static readonly KW_UTC_DATE = 301; + public static readonly KW_UTC_TIME = 302; + public static readonly KW_UTC_TIMESTAMP = 303; + public static readonly KW_ACCOUNT = 304; + public static readonly KW_ACTION = 305; + public static readonly KW_AFTER = 306; + public static readonly KW_AGGREGATE = 307; + public static readonly KW_ALGORITHM = 308; + public static readonly KW_ANY = 309; + public static readonly KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = 310; + public static readonly KW_AT = 311; + public static readonly KW_AUTHORS = 312; + public static readonly KW_AUTOCOMMIT = 313; + public static readonly KW_AUTOEXTEND_SIZE = 314; + public static readonly KW_AUTO_INCREMENT = 315; + public static readonly KW_AVG_ROW_LENGTH = 316; + public static readonly KW_BEGIN = 317; + public static readonly KW_BINLOG = 318; + public static readonly KW_BIT = 319; + public static readonly KW_BLOCK = 320; + public static readonly KW_BOOL = 321; + public static readonly KW_BOOLEAN = 322; + public static readonly KW_BTREE = 323; + public static readonly KW_CACHE = 324; + public static readonly KW_CASCADED = 325; + public static readonly KW_CHAIN = 326; + public static readonly KW_CHANGED = 327; + public static readonly KW_CHANNEL = 328; + public static readonly KW_CHECKSUM = 329; + public static readonly KW_CHALLENGE_RESPONSE = 330; + public static readonly KW_CIPHER = 331; + public static readonly KW_CLASS_ORIGIN = 332; + public static readonly KW_CLIENT = 333; + public static readonly KW_CLOSE = 334; + public static readonly KW_COALESCE = 335; + public static readonly KW_CODE = 336; + public static readonly KW_COLUMNS = 337; + public static readonly KW_COLUMN_FORMAT = 338; + public static readonly KW_COLUMN_NAME = 339; + public static readonly KW_COMMENT = 340; + public static readonly KW_COMMIT = 341; + public static readonly KW_COMPACT = 342; + public static readonly KW_COMPLETION = 343; + public static readonly KW_COMPONENT = 344; + public static readonly KW_COMPRESSED = 345; + public static readonly KW_COMPRESSION = 346; + public static readonly KW_CONCURRENT = 347; + public static readonly KW_CONNECT = 348; + public static readonly KW_CONNECTION = 349; + public static readonly KW_CONSISTENT = 350; + public static readonly KW_CONSTRAINT_CATALOG = 351; + public static readonly KW_CONSTRAINT_SCHEMA = 352; + public static readonly KW_CONSTRAINT_NAME = 353; + public static readonly KW_CONTAINS = 354; + public static readonly KW_CONTEXT = 355; + public static readonly KW_CONTRIBUTORS = 356; + public static readonly KW_COPY = 357; + public static readonly KW_CPU = 358; + public static readonly KW_CURSOR_NAME = 359; + public static readonly KW_DATA = 360; + public static readonly KW_DATAFILE = 361; + public static readonly KW_DEALLOCATE = 362; + public static readonly KW_DEFAULT_AUTH = 363; + public static readonly KW_DEFINER = 364; + public static readonly KW_DELAY_KEY_WRITE = 365; + public static readonly KW_DES_KEY_FILE = 366; + public static readonly KW_DIRECTORY = 367; + public static readonly KW_DISABLE = 368; + public static readonly KW_DISCARD = 369; + public static readonly KW_DISK = 370; + public static readonly KW_DO = 371; + public static readonly KW_DUMPFILE = 372; + public static readonly KW_DUPLICATE = 373; + public static readonly KW_DYNAMIC = 374; + public static readonly KW_ENABLE = 375; + public static readonly KW_ENCRYPTION = 376; + public static readonly KW_ENCRYPTION_KEY_ID = 377; + public static readonly KW_END = 378; + public static readonly KW_ENDS = 379; + public static readonly KW_ENGINE = 380; + public static readonly KW_ENGINES = 381; + public static readonly KW_ERROR = 382; + public static readonly KW_ERRORS = 383; + public static readonly KW_ESCAPE = 384; + public static readonly KW_EVENT = 385; + public static readonly KW_EVENTS = 386; + public static readonly KW_EVERY = 387; + public static readonly KW_EXCHANGE = 388; + public static readonly KW_EXCLUSIVE = 389; + public static readonly KW_EXPIRE = 390; + public static readonly KW_EXPORT = 391; + public static readonly KW_EXTENDED = 392; + public static readonly KW_EXTENT_SIZE = 393; + public static readonly KW_FACTOR = 394; + public static readonly KW_FAILED_LOGIN_ATTEMPTS = 395; + public static readonly KW_FAST = 396; + public static readonly KW_FAULTS = 397; + public static readonly KW_FIELDS = 398; + public static readonly KW_FILE_BLOCK_SIZE = 399; + public static readonly KW_FILTER = 400; + public static readonly KW_FINISH = 401; + public static readonly KW_FIRST = 402; + public static readonly KW_FIXED = 403; + public static readonly KW_FLUSH = 404; + public static readonly KW_FOLLOWING = 405; + public static readonly KW_FOLLOWS = 406; + public static readonly KW_FOUND = 407; + public static readonly KW_FULL = 408; + public static readonly KW_FUNCTION = 409; + public static readonly KW_GENERAL = 410; + public static readonly KW_GET_MASTER_PUBLIC_KEY = 411; + public static readonly KW_GET_SOURCE_PUBLIC_KEY = 412; + public static readonly KW_GLOBAL = 413; + public static readonly KW_GRANTS = 414; + public static readonly KW_GROUP_REPLICATION = 415; + public static readonly KW_GTID_ONLY = 416; + public static readonly KW_HANDLER = 417; + public static readonly KW_HASH = 418; + public static readonly KW_HELP = 419; + public static readonly KW_HISTORY = 420; + public static readonly KW_HOST = 421; + public static readonly KW_HOSTS = 422; + public static readonly KW_IDENTIFIED = 423; + public static readonly KW_IGNORE_SERVER_IDS = 424; + public static readonly KW_IMPORT = 425; + public static readonly KW_INDEXES = 426; + public static readonly KW_INITIAL = 427; + public static readonly KW_INITIAL_SIZE = 428; + public static readonly KW_INITIATE = 429; + public static readonly KW_INPLACE = 430; + public static readonly KW_INSERT_METHOD = 431; + public static readonly KW_INSTALL = 432; + public static readonly KW_INSTANCE = 433; + public static readonly KW_INSTANT = 434; + public static readonly KW_INVISIBLE = 435; + public static readonly KW_INVOKER = 436; + public static readonly KW_IO = 437; + public static readonly KW_IO_THREAD = 438; + public static readonly KW_IPC = 439; + public static readonly KW_ISOLATION = 440; + public static readonly KW_ISSUER = 441; + public static readonly KW_JSON = 442; + public static readonly KW_KEY_BLOCK_SIZE = 443; + public static readonly KW_LANGUAGE = 444; + public static readonly KW_LAST = 445; + public static readonly KW_LEAVES = 446; + public static readonly KW_LESS = 447; + public static readonly KW_LEVEL = 448; + public static readonly KW_LIST = 449; + public static readonly KW_LOCAL = 450; + public static readonly KW_LOGFILE = 451; + public static readonly KW_LOGS = 452; + public static readonly KW_MASTER = 453; + public static readonly KW_MASTER_AUTO_POSITION = 454; + public static readonly KW_MASTER_COMPRESSION_ALGORITHMS = 455; + public static readonly KW_MASTER_CONNECT_RETRY = 456; + public static readonly KW_MASTER_DELAY = 457; + public static readonly KW_MASTER_HEARTBEAT_PERIOD = 458; + public static readonly KW_MASTER_HOST = 459; + public static readonly KW_MASTER_LOG_FILE = 460; + public static readonly KW_MASTER_LOG_POS = 461; + public static readonly KW_MASTER_PASSWORD = 462; + public static readonly KW_MASTER_PORT = 463; + public static readonly KW_MASTER_PUBLIC_KEY_PATH = 464; + public static readonly KW_MASTER_RETRY_COUNT = 465; + public static readonly KW_MASTER_SSL = 466; + public static readonly KW_MASTER_SSL_CA = 467; + public static readonly KW_MASTER_SSL_CAPATH = 468; + public static readonly KW_MASTER_SSL_CERT = 469; + public static readonly KW_MASTER_SSL_CIPHER = 470; + public static readonly KW_MASTER_SSL_CRL = 471; + public static readonly KW_MASTER_SSL_CRLPATH = 472; + public static readonly KW_MASTER_SSL_KEY = 473; + public static readonly KW_MASTER_TLS_CIPHERSUITES = 474; + public static readonly KW_MASTER_TLS_VERSION = 475; + public static readonly KW_MASTER_USER = 476; + public static readonly KW_MASTER_ZSTD_COMPRESSION_LEVEL = 477; + public static readonly KW_MAX_CONNECTIONS_PER_HOUR = 478; + public static readonly KW_MAX_QUERIES_PER_HOUR = 479; + public static readonly KW_MAX_ROWS = 480; + public static readonly KW_MAX_SIZE = 481; + public static readonly KW_MAX_UPDATES_PER_HOUR = 482; + public static readonly KW_MAX_USER_CONNECTIONS = 483; + public static readonly KW_MEDIUM = 484; + public static readonly KW_MEMBER = 485; + public static readonly KW_MERGE = 486; + public static readonly KW_MESSAGE_TEXT = 487; + public static readonly KW_MID = 488; + public static readonly KW_MIGRATE = 489; + public static readonly KW_MIN_ROWS = 490; + public static readonly KW_MODE = 491; + public static readonly KW_MODIFY = 492; + public static readonly KW_MUTEX = 493; + public static readonly KW_MYSQL = 494; + public static readonly KW_MYSQL_ERRNO = 495; + public static readonly KW_NAME = 496; + public static readonly KW_NAMES = 497; + public static readonly KW_NCHAR = 498; + public static readonly KW_NETWORK_NAMESPACE = 499; + public static readonly KW_NEVER = 500; + public static readonly KW_NEXT = 501; + public static readonly KW_NO = 502; + public static readonly KW_NOWAIT = 503; + public static readonly KW_NODEGROUP = 504; + public static readonly KW_NONE = 505; + public static readonly KW_ODBC = 506; + public static readonly KW_OFF = 507; + public static readonly KW_OFFLINE = 508; + public static readonly KW_OFFSET = 509; + public static readonly KW_OF = 510; + public static readonly KW_OLD = 511; + public static readonly KW_OLD_PASSWORD = 512; + public static readonly KW_ONE = 513; + public static readonly KW_ONLINE = 514; + public static readonly KW_ONLY = 515; + public static readonly KW_OPEN = 516; + public static readonly KW_OPTIMIZER_COSTS = 517; + public static readonly KW_OPTIONS = 518; + public static readonly KW_OWNER = 519; + public static readonly KW_PACK_KEYS = 520; + public static readonly KW_PAGE = 521; + public static readonly KW_PAGE_CHECKSUM = 522; + public static readonly KW_PAGE_COMPRESSED = 523; + public static readonly KW_PAGE_COMPRESSION_LEVEL = 524; + public static readonly KW_PARSER = 525; + public static readonly KW_PARTIAL = 526; + public static readonly KW_PARTITIONING = 527; + public static readonly KW_PARTITIONS = 528; + public static readonly KW_PASSWORD = 529; + public static readonly KW_PASSWORD_LOCK_TIME = 530; + public static readonly KW_PERSIST = 531; + public static readonly KW_PERSIST_ONLY = 532; + public static readonly KW_PHASE = 533; + public static readonly KW_PLUGIN = 534; + public static readonly KW_PLUGIN_DIR = 535; + public static readonly KW_PLUGINS = 536; + public static readonly KW_PORT = 537; + public static readonly KW_PRECEDES = 538; + public static readonly KW_PRECEDING = 539; + public static readonly KW_PREPARE = 540; + public static readonly KW_PRESERVE = 541; + public static readonly KW_PREV = 542; + public static readonly KW_PRIVILEGE_CHECKS_USER = 543; + public static readonly KW_PROCESSLIST = 544; + public static readonly KW_PROFILE = 545; + public static readonly KW_PROFILES = 546; + public static readonly KW_PROXY = 547; + public static readonly KW_QUERY = 548; + public static readonly KW_QUICK = 549; + public static readonly KW_REBUILD = 550; + public static readonly KW_RECOVER = 551; + public static readonly KW_RECURSIVE = 552; + public static readonly KW_REDO_BUFFER_SIZE = 553; + public static readonly KW_REDUNDANT = 554; + public static readonly KW_REGISTRATION = 555; + public static readonly KW_RELAY = 556; + public static readonly KW_RELAY_LOG_FILE = 557; + public static readonly KW_RELAY_LOG_POS = 558; + public static readonly KW_RELAYLOG = 559; + public static readonly KW_REMOVE = 560; + public static readonly KW_REORGANIZE = 561; + public static readonly KW_REPAIR = 562; + public static readonly KW_REPLICA = 563; + public static readonly KW_REPLICAS = 564; + public static readonly KW_REPLICATE_DO_DB = 565; + public static readonly KW_REPLICATE_DO_TABLE = 566; + public static readonly KW_REPLICATE_IGNORE_DB = 567; + public static readonly KW_REPLICATE_IGNORE_TABLE = 568; + public static readonly KW_REPLICATE_REWRITE_DB = 569; + public static readonly KW_REPLICATE_WILD_DO_TABLE = 570; + public static readonly KW_REPLICATE_WILD_IGNORE_TABLE = 571; + public static readonly KW_REPLICATION = 572; + public static readonly KW_REQUIRE_ROW_FORMAT = 573; + public static readonly KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK = 574; + public static readonly KW_RESET = 575; + public static readonly KW_RESTART = 576; + public static readonly KW_RESUME = 577; + public static readonly KW_RETURNED_SQLSTATE = 578; + public static readonly KW_RETURNING = 579; + public static readonly KW_RETURNS = 580; + public static readonly KW_REUSE = 581; + public static readonly KW_ROLE = 582; + public static readonly KW_ROLLBACK = 583; + public static readonly KW_ROLLUP = 584; + public static readonly KW_ROTATE = 585; + public static readonly KW_ROW = 586; + public static readonly KW_ROWS = 587; + public static readonly KW_ROW_FORMAT = 588; + public static readonly KW_SAVEPOINT = 589; + public static readonly KW_SCHEDULE = 590; + public static readonly KW_SECURITY = 591; + public static readonly KW_SERVER = 592; + public static readonly KW_SESSION = 593; + public static readonly KW_SHARE = 594; + public static readonly KW_SHARED = 595; + public static readonly KW_SIGNED = 596; + public static readonly KW_SIMPLE = 597; + public static readonly KW_SLAVE = 598; + public static readonly KW_SLOW = 599; + public static readonly KW_SNAPSHOT = 600; + public static readonly KW_SOCKET = 601; + public static readonly KW_SOME = 602; + public static readonly KW_SONAME = 603; + public static readonly KW_SOUNDS = 604; + public static readonly KW_SOURCE = 605; + public static readonly KW_SOURCE_BIND = 606; + public static readonly KW_SOURCE_HOST = 607; + public static readonly KW_SOURCE_USER = 608; + public static readonly KW_SOURCE_PASSWORD = 609; + public static readonly KW_SOURCE_PORT = 610; + public static readonly KW_SOURCE_LOG_FILE = 611; + public static readonly KW_SOURCE_LOG_POS = 612; + public static readonly KW_SOURCE_AUTO_POSITION = 613; + public static readonly KW_SOURCE_HEARTBEAT_PERIOD = 614; + public static readonly KW_SOURCE_CONNECT_RETRY = 615; + public static readonly KW_SOURCE_RETRY_COUNT = 616; + public static readonly KW_SOURCE_CONNECTION_AUTO_FAILOVER = 617; + public static readonly KW_SOURCE_DELAY = 618; + public static readonly KW_SOURCE_COMPRESSION_ALGORITHMS = 619; + public static readonly KW_SOURCE_ZSTD_COMPRESSION_LEVEL = 620; + public static readonly KW_SOURCE_SSL = 621; + public static readonly KW_SOURCE_SSL_CA = 622; + public static readonly KW_SOURCE_SSL_CAPATH = 623; + public static readonly KW_SOURCE_SSL_CERT = 624; + public static readonly KW_SOURCE_SSL_CRL = 625; + public static readonly KW_SOURCE_SSL_CRLPATH = 626; + public static readonly KW_SOURCE_SSL_KEY = 627; + public static readonly KW_SOURCE_SSL_CIPHER = 628; + public static readonly KW_SOURCE_SSL_VERIFY_SERVER_CERT = 629; + public static readonly KW_SOURCE_TLS_VERSION = 630; + public static readonly KW_SOURCE_TLS_CIPHERSUITES = 631; + public static readonly KW_SOURCE_PUBLIC_KEY_PATH = 632; + public static readonly KW_SQL_AFTER_GTIDS = 633; + public static readonly KW_SQL_AFTER_MTS_GAPS = 634; + public static readonly KW_SQL_BEFORE_GTIDS = 635; + public static readonly KW_SQL_BUFFER_RESULT = 636; + public static readonly KW_SQL_CACHE = 637; + public static readonly KW_SQL_NO_CACHE = 638; + public static readonly KW_SQL_THREAD = 639; + public static readonly KW_START = 640; + public static readonly KW_STARTS = 641; + public static readonly KW_STATS_AUTO_RECALC = 642; + public static readonly KW_STATS_PERSISTENT = 643; + public static readonly KW_STATS_SAMPLE_PAGES = 644; + public static readonly KW_STATUS = 645; + public static readonly KW_STOP = 646; + public static readonly KW_STORAGE = 647; + public static readonly KW_STORED = 648; + public static readonly KW_STRING = 649; + public static readonly KW_SUBCLASS_ORIGIN = 650; + public static readonly KW_SUBJECT = 651; + public static readonly KW_SUBPARTITION = 652; + public static readonly KW_SUBPARTITIONS = 653; + public static readonly KW_SUSPEND = 654; + public static readonly KW_SWAPS = 655; + public static readonly KW_SWITCHES = 656; + public static readonly KW_TABLE_NAME = 657; + public static readonly KW_TABLESPACE = 658; + public static readonly KW_TABLE_TYPE = 659; + public static readonly KW_TEMPORARY = 660; + public static readonly KW_TEMPTABLE = 661; + public static readonly KW_THAN = 662; + public static readonly KW_TRADITIONAL = 663; + public static readonly KW_TRANSACTION = 664; + public static readonly KW_TRANSACTIONAL = 665; + public static readonly KW_TREE = 666; + public static readonly KW_TRIGGERS = 667; + public static readonly KW_TRUNCATE = 668; + public static readonly KW_UNBOUNDED = 669; + public static readonly KW_UNDEFINED = 670; + public static readonly KW_UNDOFILE = 671; + public static readonly KW_UNDO_BUFFER_SIZE = 672; + public static readonly KW_UNINSTALL = 673; + public static readonly KW_UNKNOWN = 674; + public static readonly KW_UNREGISTER = 675; + public static readonly KW_UNTIL = 676; + public static readonly KW_UPGRADE = 677; + public static readonly KW_USER = 678; + public static readonly KW_USE_FRM = 679; + public static readonly KW_USER_RESOURCES = 680; + public static readonly KW_VALIDATION = 681; + public static readonly KW_VALUE = 682; + public static readonly KW_VARIABLES = 683; + public static readonly KW_VIEW = 684; + public static readonly KW_VIRTUAL = 685; + public static readonly KW_VISIBLE = 686; + public static readonly KW_WAIT = 687; + public static readonly KW_WARNINGS = 688; + public static readonly KW_WINDOW = 689; + public static readonly KW_WITHOUT = 690; + public static readonly KW_WORK = 691; + public static readonly KW_WRAPPER = 692; + public static readonly KW_X509 = 693; + public static readonly KW_XA = 694; + public static readonly KW_XML = 695; + public static readonly KW_QUARTER = 696; + public static readonly KW_MONTH = 697; + public static readonly KW_DAY = 698; + public static readonly KW_HOUR = 699; + public static readonly KW_MINUTE = 700; + public static readonly KW_WEEK = 701; + public static readonly KW_SECOND = 702; + public static readonly KW_MICROSECOND = 703; + public static readonly KW_ADMIN = 704; + public static readonly KW_APPLICATION_PASSWORD_ADMIN = 705; + public static readonly KW_AUDIT_ABORT_EXEMPT = 706; + public static readonly KW_AUDIT_ADMIN = 707; + public static readonly KW_AUTHENTICATION = 708; + public static readonly KW_AUTHENTICATION_POLICY_ADMIN = 709; + public static readonly KW_BACKUP_ADMIN = 710; + public static readonly KW_BINLOG_ADMIN = 711; + public static readonly KW_BINLOG_ENCRYPTION_ADMIN = 712; + public static readonly KW_CLONE = 713; + public static readonly KW_CLONE_ADMIN = 714; + public static readonly KW_CONNECTION_ADMIN = 715; + public static readonly KW_ENCRYPTION_KEY_ADMIN = 716; + public static readonly KW_EXECUTE = 717; + public static readonly KW_FILE = 718; + public static readonly KW_FIREWALL_ADMIN = 719; + public static readonly KW_FIREWALL_EXEMPT = 720; + public static readonly KW_FIREWALL_USER = 721; + public static readonly KW_FLUSH_OPTIMIZER_COSTS = 722; + public static readonly KW_FLUSH_STATUS = 723; + public static readonly KW_FLUSH_TABLES = 724; + public static readonly KW_FLUSH_USER_RESOURCES = 725; + public static readonly KW_GROUP_REPLICATION_ADMIN = 726; + public static readonly KW_INNODB_REDO_LOG_ARCHIVE = 727; + public static readonly KW_INNODB_REDO_LOG_ENABLE = 728; + public static readonly KW_INVOKE = 729; + public static readonly KW_LAMBDA = 730; + public static readonly KW_NDB_STORED_USER = 731; + public static readonly KW_PASSWORDLESS_USER_ADMIN = 732; + public static readonly KW_PERSIST_RO_VARIABLES_ADMIN = 733; + public static readonly KW_PRIVILEGES = 734; + public static readonly KW_PROCESS = 735; + public static readonly KW_RELOAD = 736; + public static readonly KW_REPLICATION_APPLIER = 737; + public static readonly KW_REPLICATION_SLAVE_ADMIN = 738; + public static readonly KW_RESOURCE = 739; + public static readonly KW_RESOURCE_GROUP_ADMIN = 740; + public static readonly KW_RESOURCE_GROUP_USER = 741; + public static readonly KW_ROLE_ADMIN = 742; + public static readonly KW_ROUTINE = 743; + public static readonly KW_S3 = 744; + public static readonly KW_SERVICE_CONNECTION_ADMIN = 745; + public static readonly KW_SESSION_VARIABLES_ADMIN = 746; + public static readonly KW_SET_USER_ID = 747; + public static readonly KW_SHOW_ROUTINE = 748; + public static readonly KW_SHUTDOWN = 749; + public static readonly KW_SUPER = 750; + public static readonly KW_SYSTEM_VARIABLES_ADMIN = 751; + public static readonly KW_TABLES = 752; + public static readonly KW_TABLE_ENCRYPTION_ADMIN = 753; + public static readonly KW_VERSION_TOKEN_ADMIN = 754; + public static readonly KW_XA_RECOVER_ADMIN = 755; + public static readonly KW_ARMSCII8 = 756; + public static readonly KW_ASCII = 757; + public static readonly KW_BIG5 = 758; + public static readonly KW_CP1250 = 759; + public static readonly KW_CP1251 = 760; + public static readonly KW_CP1256 = 761; + public static readonly KW_CP1257 = 762; + public static readonly KW_CP850 = 763; + public static readonly KW_CP852 = 764; + public static readonly KW_CP866 = 765; + public static readonly KW_CP932 = 766; + public static readonly KW_DEC8 = 767; + public static readonly KW_EUCJPMS = 768; + public static readonly KW_EUCKR = 769; + public static readonly KW_GB18030 = 770; + public static readonly KW_GB2312 = 771; + public static readonly KW_GBK = 772; + public static readonly KW_GEOSTD8 = 773; + public static readonly KW_GREEK = 774; + public static readonly KW_HEBREW = 775; + public static readonly KW_HP8 = 776; + public static readonly KW_KEYBCS2 = 777; + public static readonly KW_KOI8R = 778; + public static readonly KW_KOI8U = 779; + public static readonly KW_LATIN1 = 780; + public static readonly KW_LATIN2 = 781; + public static readonly KW_LATIN5 = 782; + public static readonly KW_LATIN7 = 783; + public static readonly KW_MACCE = 784; + public static readonly KW_MACROMAN = 785; + public static readonly KW_SJIS = 786; + public static readonly KW_SWE7 = 787; + public static readonly KW_TIS620 = 788; + public static readonly KW_UCS2 = 789; + public static readonly KW_UJIS = 790; + public static readonly KW_UTF16 = 791; + public static readonly KW_UTF16LE = 792; + public static readonly KW_UTF32 = 793; + public static readonly KW_UTF8 = 794; + public static readonly KW_UTF8MB3 = 795; + public static readonly KW_UTF8MB4 = 796; + public static readonly KW_ARCHIVE = 797; + public static readonly KW_BLACKHOLE = 798; + public static readonly KW_CSV = 799; + public static readonly KW_FEDERATED = 800; + public static readonly KW_INNODB = 801; + public static readonly KW_MEMORY = 802; + public static readonly KW_MRG_MYISAM = 803; + public static readonly KW_MYISAM = 804; + public static readonly KW_NDB = 805; + public static readonly KW_NDBCLUSTER = 806; + public static readonly KW_PERFORMANCE_SCHEMA = 807; + public static readonly KW_TOKUDB = 808; + public static readonly KW_REPEATABLE = 809; + public static readonly KW_COMMITTED = 810; + public static readonly KW_UNCOMMITTED = 811; + public static readonly KW_SERIALIZABLE = 812; + public static readonly KW_GEOMETRYCOLLECTION = 813; + public static readonly KW_GEOMCOLLECTION = 814; + public static readonly KW_GEOMETRY = 815; + public static readonly KW_LINESTRING = 816; + public static readonly KW_MULTILINESTRING = 817; + public static readonly KW_MULTIPOINT = 818; + public static readonly KW_MULTIPOLYGON = 819; + public static readonly KW_POINT = 820; + public static readonly KW_POLYGON = 821; + public static readonly KW_CATALOG_NAME = 822; + public static readonly KW_CHARSET = 823; + public static readonly KW_COLLATION = 824; + public static readonly KW_ENGINE_ATTRIBUTE = 825; + public static readonly KW_FORMAT = 826; + public static readonly KW_GET_FORMAT = 827; + public static readonly KW_INTERSECT = 828; + public static readonly KW_RANDOM = 829; + public static readonly KW_REVERSE = 830; + public static readonly KW_ROW_COUNT = 831; + public static readonly KW_SCHEMA_NAME = 832; + public static readonly KW_SECONDARY_ENGINE_ATTRIBUTE = 833; + public static readonly KW_SRID = 834; + public static readonly KW_SYSTEM = 835; + public static readonly KW_SYSTEM_USER = 836; + public static readonly KW_THREAD_PRIORITY = 837; + public static readonly KW_TP_CONNECTION_ADMIN = 838; + public static readonly KW_TYPE = 839; + public static readonly KW_WEIGHT_STRING = 840; + public static readonly VAR_ASSIGN = 841; + public static readonly PLUS_ASSIGN = 842; + public static readonly MINUS_ASSIGN = 843; + public static readonly MULT_ASSIGN = 844; + public static readonly DIV_ASSIGN = 845; + public static readonly MOD_ASSIGN = 846; + public static readonly AND_ASSIGN = 847; + public static readonly XOR_ASSIGN = 848; + public static readonly OR_ASSIGN = 849; + public static readonly STAR = 850; + public static readonly DIVIDE = 851; + public static readonly MODULE = 852; + public static readonly PLUS = 853; + public static readonly MINUS = 854; + public static readonly DIV = 855; + public static readonly MOD = 856; + public static readonly EQUAL_SYMBOL = 857; + public static readonly GREATER_SYMBOL = 858; + public static readonly LESS_SYMBOL = 859; + public static readonly EXCLAMATION_SYMBOL = 860; + public static readonly BIT_NOT_OP = 861; + public static readonly BIT_OR_OP = 862; + public static readonly BIT_AND_OP = 863; + public static readonly BIT_XOR_OP = 864; + public static readonly DOT = 865; + public static readonly LR_BRACKET = 866; + public static readonly RR_BRACKET = 867; + public static readonly COMMA = 868; + public static readonly SEMI = 869; + public static readonly AT_SIGN = 870; + public static readonly ZERO_DECIMAL = 871; + public static readonly ONE_DECIMAL = 872; + public static readonly TWO_DECIMAL = 873; + public static readonly THREE_DECIMAL = 874; + public static readonly SINGLE_QUOTE_SYMB = 875; + public static readonly DOUBLE_QUOTE_SYMB = 876; + public static readonly REVERSE_QUOTE_SYMB = 877; + public static readonly COLON_SYMB = 878; + public static readonly CHARSET_REVERSE_QOUTE_STRING = 879; + public static readonly FILESIZE_LITERAL = 880; + public static readonly START_NATIONAL_STRING_LITERAL = 881; + public static readonly STRING_LITERAL = 882; + public static readonly DECIMAL_LITERAL = 883; + public static readonly HEXADECIMAL_LITERAL = 884; + public static readonly REAL_LITERAL = 885; + public static readonly NULL_SPEC_LITERAL = 886; + public static readonly BIT_STRING = 887; + public static readonly STRING_CHARSET_NAME = 888; + public static readonly DOT_ID = 889; + public static readonly ID = 890; + public static readonly REVERSE_QUOTE_ID = 891; + public static readonly HOST_IP_ADDRESS = 892; + public static readonly LOCAL_ID = 893; + public static readonly GLOBAL_ID = 894; + public static readonly PERSIST_ID = 895; + public static readonly ERROR_RECONGNIGION = 896; + public static readonly RULE_program = 0; + public static readonly RULE_sqlStatements = 1; + public static readonly RULE_sqlStatement = 2; + public static readonly RULE_emptyStatement_ = 3; + public static readonly RULE_ddlStatement = 4; + public static readonly RULE_dmlStatement = 5; + public static readonly RULE_transactionStatement = 6; + public static readonly RULE_replicationStatement = 7; + public static readonly RULE_preparedStatement = 8; + public static readonly RULE_compoundStatement = 9; + public static readonly RULE_administrationStatement = 10; + public static readonly RULE_utilityStatement = 11; + public static readonly RULE_createDatabase = 12; + public static readonly RULE_createEvent = 13; + public static readonly RULE_createIndex = 14; + public static readonly RULE_createLogfileGroup = 15; + public static readonly RULE_createProcedure = 16; + public static readonly RULE_createRole = 17; + public static readonly RULE_createServer = 18; + public static readonly RULE_createTable = 19; + public static readonly RULE_createTablespaceInnodb = 20; + public static readonly RULE_createTablespaceNdb = 21; + public static readonly RULE_createTrigger = 22; + public static readonly RULE_withClause = 23; + public static readonly RULE_commonTableExpressions = 24; + public static readonly RULE_createView = 25; + public static readonly RULE_createDatabaseOption = 26; + public static readonly RULE_charSet = 27; + public static readonly RULE_currentUserExpression = 28; + public static readonly RULE_ownerStatement = 29; + public static readonly RULE_scheduleExpression = 30; + public static readonly RULE_timestampValue = 31; + public static readonly RULE_intervalExpr = 32; + public static readonly RULE_intervalType = 33; + public static readonly RULE_enableType = 34; + public static readonly RULE_indexType = 35; + public static readonly RULE_indexOption = 36; + public static readonly RULE_procedureParameter = 37; + public static readonly RULE_routineOption = 38; + public static readonly RULE_serverOption = 39; + public static readonly RULE_createDefinitions = 40; + public static readonly RULE_createDefinition = 41; + public static readonly RULE_checkConstraintDefinition = 42; + public static readonly RULE_constraintSymbol = 43; + public static readonly RULE_columnDefinition = 44; + public static readonly RULE_columnConstraint = 45; + public static readonly RULE_referenceDefinition = 46; + public static readonly RULE_referenceAction = 47; + public static readonly RULE_referenceControlType = 48; + public static readonly RULE_tableOption = 49; + public static readonly RULE_tableType = 50; + public static readonly RULE_tablespaceStorage = 51; + public static readonly RULE_partitionDefinitions = 52; + public static readonly RULE_partitionFunctionDefinition = 53; + public static readonly RULE_subpartitionFunctionDefinition = 54; + public static readonly RULE_partitionDefinition = 55; + public static readonly RULE_partitionDefinerAtom = 56; + public static readonly RULE_partitionDefinerVector = 57; + public static readonly RULE_subpartitionDefinition = 58; + public static readonly RULE_partitionOption = 59; + public static readonly RULE_alterDatabase = 60; + public static readonly RULE_alterEvent = 61; + public static readonly RULE_alterFunction = 62; + public static readonly RULE_alterInstance = 63; + public static readonly RULE_alterLogfileGroup = 64; + public static readonly RULE_alterProcedure = 65; + public static readonly RULE_alterServer = 66; + public static readonly RULE_alterTable = 67; + public static readonly RULE_alterTablespace = 68; + public static readonly RULE_alterView = 69; + public static readonly RULE_alterOption = 70; + public static readonly RULE_alterPartitionSpecification = 71; + public static readonly RULE_dropDatabase = 72; + public static readonly RULE_dropEvent = 73; + public static readonly RULE_dropIndex = 74; + public static readonly RULE_dropLogfileGroup = 75; + public static readonly RULE_dropProcedure = 76; + public static readonly RULE_dropFunction = 77; + public static readonly RULE_dropServer = 78; + public static readonly RULE_dropSpatial = 79; + public static readonly RULE_dropTable = 80; + public static readonly RULE_dropTablespace = 81; + public static readonly RULE_dropTrigger = 82; + public static readonly RULE_dropView = 83; + public static readonly RULE_dropRole = 84; + public static readonly RULE_setRole = 85; + public static readonly RULE_renameTable = 86; + public static readonly RULE_renameTableClause = 87; + public static readonly RULE_truncateTable = 88; + public static readonly RULE_callStatement = 89; + public static readonly RULE_deleteStatement = 90; + public static readonly RULE_doStatement = 91; + public static readonly RULE_handlerStatement = 92; + public static readonly RULE_insertStatement = 93; + public static readonly RULE_asRowAlias = 94; + public static readonly RULE_selectOrTableOrValues = 95; + public static readonly RULE_interSectStatement = 96; + public static readonly RULE_interSectQuery = 97; + public static readonly RULE_loadDataStatement = 98; + public static readonly RULE_loadXmlStatement = 99; + public static readonly RULE_parenthesizedQuery = 100; + public static readonly RULE_replaceStatement = 101; + public static readonly RULE_selectStatement = 102; + public static readonly RULE_setOperations = 103; + public static readonly RULE_queryExpressionBody = 104; + public static readonly RULE_queryItem = 105; + public static readonly RULE_queryPrimary = 106; + public static readonly RULE_updateStatement = 107; + public static readonly RULE_valuesStatement = 108; + public static readonly RULE_parenthesizedQueryExpression = 109; + public static readonly RULE_queryBlock = 110; + public static readonly RULE_replaceStatementValuesOrSelectOrTable = 111; + public static readonly RULE_rowValuesList = 112; + public static readonly RULE_setAssignmentList = 113; + public static readonly RULE_updatedElement = 114; + public static readonly RULE_assignmentField = 115; + public static readonly RULE_lockClause = 116; + public static readonly RULE_singleDeleteStatement = 117; + public static readonly RULE_multipleDeleteStatement = 118; + public static readonly RULE_handlerOpenStatement = 119; + public static readonly RULE_handlerReadIndexStatement = 120; + public static readonly RULE_handlerReadStatement = 121; + public static readonly RULE_handlerCloseStatement = 122; + public static readonly RULE_importTableStatement = 123; + public static readonly RULE_singleUpdateStatement = 124; + public static readonly RULE_multipleUpdateStatement = 125; + public static readonly RULE_orderByClause = 126; + public static readonly RULE_orderByExpression = 127; + public static readonly RULE_tableSources = 128; + public static readonly RULE_tableSource = 129; + public static readonly RULE_tableSourceItem = 130; + public static readonly RULE_fullColumnNames = 131; + public static readonly RULE_indexHint = 132; + public static readonly RULE_indexHintType = 133; + public static readonly RULE_joinPart = 134; + public static readonly RULE_joinSpec = 135; + public static readonly RULE_queryExpression = 136; + public static readonly RULE_queryExpressionNointo = 137; + public static readonly RULE_querySpecification = 138; + public static readonly RULE_querySpecificationNointo = 139; + public static readonly RULE_unionParenthesis = 140; + public static readonly RULE_unionStatement = 141; + public static readonly RULE_lateralStatement = 142; + public static readonly RULE_jsonTable = 143; + public static readonly RULE_jsonColumnList = 144; + public static readonly RULE_jsonColumn = 145; + public static readonly RULE_jsonOnEmpty = 146; + public static readonly RULE_jsonOnError = 147; + public static readonly RULE_selectSpec = 148; + public static readonly RULE_selectElements = 149; + public static readonly RULE_selectElement = 150; + public static readonly RULE_intoClause = 151; + public static readonly RULE_selectFieldsInto = 152; + public static readonly RULE_selectLinesInto = 153; + public static readonly RULE_fromClause = 154; + public static readonly RULE_groupByClause = 155; + public static readonly RULE_havingClause = 156; + public static readonly RULE_windowClause = 157; + public static readonly RULE_groupByItem = 158; + public static readonly RULE_limitClause = 159; + public static readonly RULE_limitClauseAtom = 160; + public static readonly RULE_startTransaction = 161; + public static readonly RULE_beginWork = 162; + public static readonly RULE_commitWork = 163; + public static readonly RULE_rollbackWork = 164; + public static readonly RULE_savepointStatement = 165; + public static readonly RULE_rollbackStatement = 166; + public static readonly RULE_releaseStatement = 167; + public static readonly RULE_lockTables = 168; + public static readonly RULE_unlockTables = 169; + public static readonly RULE_setAutocommitStatement = 170; + public static readonly RULE_setTransactionStatement = 171; + public static readonly RULE_transactionMode = 172; + public static readonly RULE_lockTableElement = 173; + public static readonly RULE_lockAction = 174; + public static readonly RULE_transactionOption = 175; + public static readonly RULE_transactionLevel = 176; + public static readonly RULE_changeMaster = 177; + public static readonly RULE_changeReplicationFilter = 178; + public static readonly RULE_changeReplicationSource = 179; + public static readonly RULE_purgeBinaryLogs = 180; + public static readonly RULE_startSlaveOrReplica = 181; + public static readonly RULE_stopSlaveOrReplica = 182; + public static readonly RULE_startGroupReplication = 183; + public static readonly RULE_stopGroupReplication = 184; + public static readonly RULE_masterOption = 185; + public static readonly RULE_stringMasterOption = 186; + public static readonly RULE_decimalMasterOption = 187; + public static readonly RULE_boolMasterOption = 188; + public static readonly RULE_v8NewMasterOption = 189; + public static readonly RULE_replicationSourceOption = 190; + public static readonly RULE_stringSourceOption = 191; + public static readonly RULE_decimalSourceOption = 192; + public static readonly RULE_boolSourceOption = 193; + public static readonly RULE_otherSourceOption = 194; + public static readonly RULE_channelOption = 195; + public static readonly RULE_replicationFilter = 196; + public static readonly RULE_tablePair = 197; + public static readonly RULE_threadType = 198; + public static readonly RULE_untilOption = 199; + public static readonly RULE_connectionOptions = 200; + public static readonly RULE_gtuidSet = 201; + public static readonly RULE_xaStartTransaction = 202; + public static readonly RULE_xaEndTransaction = 203; + public static readonly RULE_xaPrepareStatement = 204; + public static readonly RULE_xaCommitWork = 205; + public static readonly RULE_xaRollbackWork = 206; + public static readonly RULE_xaRecoverWork = 207; + public static readonly RULE_prepareStatement = 208; + public static readonly RULE_executeStatement = 209; + public static readonly RULE_deallocatePrepare = 210; + public static readonly RULE_routineBody = 211; + public static readonly RULE_blockStatement = 212; + public static readonly RULE_caseStatement = 213; + public static readonly RULE_ifStatement = 214; + public static readonly RULE_iterateStatement = 215; + public static readonly RULE_leaveStatement = 216; + public static readonly RULE_loopStatement = 217; + public static readonly RULE_repeatStatement = 218; + public static readonly RULE_returnStatement = 219; + public static readonly RULE_whileStatement = 220; + public static readonly RULE_cursorStatement = 221; + public static readonly RULE_declareVariable = 222; + public static readonly RULE_declareCondition = 223; + public static readonly RULE_declareCursor = 224; + public static readonly RULE_declareHandler = 225; + public static readonly RULE_handlerConditionValue = 226; + public static readonly RULE_procedureSqlStatement = 227; + public static readonly RULE_caseAlternative = 228; + public static readonly RULE_elifAlternative = 229; + public static readonly RULE_alterUser = 230; + public static readonly RULE_createUser = 231; + public static readonly RULE_dropUser = 232; + public static readonly RULE_grantStatement = 233; + public static readonly RULE_roleOption = 234; + public static readonly RULE_grantProxy = 235; + public static readonly RULE_alterResourceGroup = 236; + public static readonly RULE_createResourceGroup = 237; + public static readonly RULE_dropResourceGroup = 238; + public static readonly RULE_setResourceGroup = 239; + public static readonly RULE_resourceGroupVcpuSpec = 240; + public static readonly RULE_renameUser = 241; + public static readonly RULE_revokeStatement = 242; + public static readonly RULE_ignoreUnknownUser = 243; + public static readonly RULE_privilegeObjectType = 244; + public static readonly RULE_setPasswordStatement = 245; + public static readonly RULE_userSpecification = 246; + public static readonly RULE_alterUserAuthOption = 247; + public static readonly RULE_createUserAuthOption = 248; + public static readonly RULE_createUserInitialAuthOption = 249; + public static readonly RULE_userAuthOption = 250; + public static readonly RULE_authOptionClause = 251; + public static readonly RULE_authenticationRule = 252; + public static readonly RULE_tlsOption = 253; + public static readonly RULE_userResourceOption = 254; + public static readonly RULE_userPasswordOption = 255; + public static readonly RULE_userLockOption = 256; + public static readonly RULE_factorAuthOption = 257; + public static readonly RULE_registrationOption = 258; + public static readonly RULE_factor = 259; + public static readonly RULE_privelegeClause = 260; + public static readonly RULE_privilege = 261; + public static readonly RULE_privilegeLevel = 262; + public static readonly RULE_renameUserClause = 263; + public static readonly RULE_analyzeTable = 264; + public static readonly RULE_checkTable = 265; + public static readonly RULE_checksumTable = 266; + public static readonly RULE_optimizeTable = 267; + public static readonly RULE_repairTable = 268; + public static readonly RULE_tableActionOption = 269; + public static readonly RULE_checkTableOption = 270; + public static readonly RULE_createFunction = 271; + public static readonly RULE_installComponent = 272; + public static readonly RULE_variableExpr = 273; + public static readonly RULE_uninstallComponent = 274; + public static readonly RULE_installPlugin = 275; + public static readonly RULE_uninstallPlugin = 276; + public static readonly RULE_cloneStatement = 277; + public static readonly RULE_setStatement = 278; + public static readonly RULE_showStatement = 279; + public static readonly RULE_variableClause = 280; + public static readonly RULE_showCommonEntity = 281; + public static readonly RULE_showFilter = 282; + public static readonly RULE_showGlobalInfoClause = 283; + public static readonly RULE_showSchemaEntity = 284; + public static readonly RULE_showProfileType = 285; + public static readonly RULE_binlogStatement = 286; + public static readonly RULE_cacheIndexStatement = 287; + public static readonly RULE_flushStatement = 288; + public static readonly RULE_killStatement = 289; + public static readonly RULE_loadIndexIntoCache = 290; + public static readonly RULE_resetStatement = 291; + public static readonly RULE_resetOption = 292; + public static readonly RULE_resetPersist = 293; + public static readonly RULE_resetAllChannel = 294; + public static readonly RULE_reStartStatement = 295; + public static readonly RULE_shutdownStatement = 296; + public static readonly RULE_tableIndex = 297; + public static readonly RULE_flushOption = 298; + public static readonly RULE_flushTableOption = 299; + public static readonly RULE_loadedTableIndexes = 300; + public static readonly RULE_simpleDescribeStatement = 301; + public static readonly RULE_fullDescribeStatement = 302; + public static readonly RULE_analyzeDescribeStatement = 303; + public static readonly RULE_helpStatement = 304; + public static readonly RULE_useStatement = 305; + public static readonly RULE_signalStatement = 306; + public static readonly RULE_resignalStatement = 307; + public static readonly RULE_signalConditionInformation = 308; + public static readonly RULE_withStatement = 309; + public static readonly RULE_tableStatement = 310; + public static readonly RULE_diagnosticsStatement = 311; + public static readonly RULE_diagnosticsConditionInformationName = 312; + public static readonly RULE_describeObjectClause = 313; + public static readonly RULE_databaseNameCreate = 314; + public static readonly RULE_databaseName = 315; + public static readonly RULE_functionNameCreate = 316; + public static readonly RULE_functionName = 317; + public static readonly RULE_viewNameCreate = 318; + public static readonly RULE_viewName = 319; + public static readonly RULE_indexNameCreate = 320; + public static readonly RULE_indexNames = 321; + public static readonly RULE_indexName = 322; + public static readonly RULE_groupNameCreate = 323; + public static readonly RULE_groupName = 324; + public static readonly RULE_tableNameCreate = 325; + public static readonly RULE_tableNames = 326; + public static readonly RULE_tableName = 327; + public static readonly RULE_userOrRoleNames = 328; + public static readonly RULE_userOrRoleName = 329; + public static readonly RULE_columnNameCreate = 330; + public static readonly RULE_columnNames = 331; + public static readonly RULE_columnName = 332; + public static readonly RULE_tablespaceNameCreate = 333; + public static readonly RULE_tablespaceName = 334; + public static readonly RULE_partitionNameCreate = 335; + public static readonly RULE_partitionNames = 336; + public static readonly RULE_partitionName = 337; + public static readonly RULE_indexColumnName = 338; + public static readonly RULE_userHostPort = 339; + public static readonly RULE_userAtHost = 340; + public static readonly RULE_simpleUserName = 341; + public static readonly RULE_hostName = 342; + public static readonly RULE_userName = 343; + public static readonly RULE_mysqlVariable = 344; + public static readonly RULE_charsetName = 345; + public static readonly RULE_collationName = 346; + public static readonly RULE_engineName = 347; + public static readonly RULE_engineNameBase = 348; + public static readonly RULE_uuidSet = 349; + public static readonly RULE_xid = 350; + public static readonly RULE_xuidStringId = 351; + public static readonly RULE_fullId = 352; + public static readonly RULE_uidList = 353; + public static readonly RULE_uid = 354; + public static readonly RULE_simpleId = 355; + public static readonly RULE_dottedId = 356; + public static readonly RULE_decimalLiteral = 357; + public static readonly RULE_fileSizeLiteral = 358; + public static readonly RULE_stringLiteral = 359; + public static readonly RULE_booleanLiteral = 360; + public static readonly RULE_hexadecimalLiteral = 361; + public static readonly RULE_nullNotnull = 362; + public static readonly RULE_constant = 363; + public static readonly RULE_dataType = 364; + public static readonly RULE_collectionOptions = 365; + public static readonly RULE_convertedDataType = 366; + public static readonly RULE_lengthOneDimension = 367; + public static readonly RULE_lengthTwoDimension = 368; + public static readonly RULE_lengthTwoOptionalDimension = 369; + public static readonly RULE_indexColumnNames = 370; + public static readonly RULE_expressions = 371; + public static readonly RULE_valuesOrValueList = 372; + public static readonly RULE_expressionsWithDefaults = 373; + public static readonly RULE_expressionOrDefault = 374; + public static readonly RULE_constants = 375; + public static readonly RULE_simpleStrings = 376; + public static readonly RULE_userVariables = 377; + public static readonly RULE_defaultValue = 378; + public static readonly RULE_currentTimestamp = 379; + public static readonly RULE_ifExists = 380; + public static readonly RULE_ifNotExists = 381; + public static readonly RULE_orReplace = 382; + public static readonly RULE_functionCall = 383; + public static readonly RULE_specificFunction = 384; + public static readonly RULE_caseFuncAlternative = 385; + public static readonly RULE_levelsInWeightString = 386; + public static readonly RULE_levelInWeightListElement = 387; + public static readonly RULE_aggregateWindowedFunction = 388; + public static readonly RULE_nonAggregateWindowedFunction = 389; + public static readonly RULE_overClause = 390; + public static readonly RULE_windowSpec = 391; + public static readonly RULE_windowName = 392; + public static readonly RULE_frameClause = 393; + public static readonly RULE_frameUnits = 394; + public static readonly RULE_frameExtent = 395; + public static readonly RULE_frameBetween = 396; + public static readonly RULE_frameRange = 397; + public static readonly RULE_partitionClause = 398; + public static readonly RULE_scalarFunctionName = 399; + public static readonly RULE_passwordFunctionClause = 400; + public static readonly RULE_functionArgs = 401; + public static readonly RULE_functionArg = 402; + public static readonly RULE_expression = 403; + public static readonly RULE_predicate = 404; + public static readonly RULE_expressionAtom = 405; + public static readonly RULE_unaryOperator = 406; + public static readonly RULE_comparisonOperator = 407; + public static readonly RULE_comparisonBase = 408; + public static readonly RULE_logicalOperator = 409; + public static readonly RULE_bitOperator = 410; + public static readonly RULE_mathOperator = 411; + public static readonly RULE_jsonOperator = 412; + public static readonly RULE_charsetNameBase = 413; + public static readonly RULE_transactionLevelBase = 414; + public static readonly RULE_privilegesBase = 415; + public static readonly RULE_intervalTypeBase = 416; + public static readonly RULE_dataTypeBase = 417; + public static readonly RULE_keywordsCanBeId = 418; + public static readonly RULE_functionNameBase = 419; + // tslint:disable:no-trailing-whitespace + public static readonly ruleNames: string[] = [ + "program", "sqlStatements", "sqlStatement", "emptyStatement_", "ddlStatement", + "dmlStatement", "transactionStatement", "replicationStatement", "preparedStatement", + "compoundStatement", "administrationStatement", "utilityStatement", "createDatabase", + "createEvent", "createIndex", "createLogfileGroup", "createProcedure", + "createRole", "createServer", "createTable", "createTablespaceInnodb", + "createTablespaceNdb", "createTrigger", "withClause", "commonTableExpressions", + "createView", "createDatabaseOption", "charSet", "currentUserExpression", + "ownerStatement", "scheduleExpression", "timestampValue", "intervalExpr", + "intervalType", "enableType", "indexType", "indexOption", "procedureParameter", + "routineOption", "serverOption", "createDefinitions", "createDefinition", + "checkConstraintDefinition", "constraintSymbol", "columnDefinition", "columnConstraint", + "referenceDefinition", "referenceAction", "referenceControlType", "tableOption", + "tableType", "tablespaceStorage", "partitionDefinitions", "partitionFunctionDefinition", + "subpartitionFunctionDefinition", "partitionDefinition", "partitionDefinerAtom", + "partitionDefinerVector", "subpartitionDefinition", "partitionOption", + "alterDatabase", "alterEvent", "alterFunction", "alterInstance", "alterLogfileGroup", + "alterProcedure", "alterServer", "alterTable", "alterTablespace", "alterView", + "alterOption", "alterPartitionSpecification", "dropDatabase", "dropEvent", + "dropIndex", "dropLogfileGroup", "dropProcedure", "dropFunction", "dropServer", + "dropSpatial", "dropTable", "dropTablespace", "dropTrigger", "dropView", + "dropRole", "setRole", "renameTable", "renameTableClause", "truncateTable", + "callStatement", "deleteStatement", "doStatement", "handlerStatement", + "insertStatement", "asRowAlias", "selectOrTableOrValues", "interSectStatement", + "interSectQuery", "loadDataStatement", "loadXmlStatement", "parenthesizedQuery", + "replaceStatement", "selectStatement", "setOperations", "queryExpressionBody", + "queryItem", "queryPrimary", "updateStatement", "valuesStatement", "parenthesizedQueryExpression", + "queryBlock", "replaceStatementValuesOrSelectOrTable", "rowValuesList", + "setAssignmentList", "updatedElement", "assignmentField", "lockClause", + "singleDeleteStatement", "multipleDeleteStatement", "handlerOpenStatement", + "handlerReadIndexStatement", "handlerReadStatement", "handlerCloseStatement", + "importTableStatement", "singleUpdateStatement", "multipleUpdateStatement", + "orderByClause", "orderByExpression", "tableSources", "tableSource", "tableSourceItem", + "fullColumnNames", "indexHint", "indexHintType", "joinPart", "joinSpec", + "queryExpression", "queryExpressionNointo", "querySpecification", "querySpecificationNointo", + "unionParenthesis", "unionStatement", "lateralStatement", "jsonTable", + "jsonColumnList", "jsonColumn", "jsonOnEmpty", "jsonOnError", "selectSpec", + "selectElements", "selectElement", "intoClause", "selectFieldsInto", "selectLinesInto", + "fromClause", "groupByClause", "havingClause", "windowClause", "groupByItem", + "limitClause", "limitClauseAtom", "startTransaction", "beginWork", "commitWork", + "rollbackWork", "savepointStatement", "rollbackStatement", "releaseStatement", + "lockTables", "unlockTables", "setAutocommitStatement", "setTransactionStatement", + "transactionMode", "lockTableElement", "lockAction", "transactionOption", + "transactionLevel", "changeMaster", "changeReplicationFilter", "changeReplicationSource", + "purgeBinaryLogs", "startSlaveOrReplica", "stopSlaveOrReplica", "startGroupReplication", + "stopGroupReplication", "masterOption", "stringMasterOption", "decimalMasterOption", + "boolMasterOption", "v8NewMasterOption", "replicationSourceOption", "stringSourceOption", + "decimalSourceOption", "boolSourceOption", "otherSourceOption", "channelOption", + "replicationFilter", "tablePair", "threadType", "untilOption", "connectionOptions", + "gtuidSet", "xaStartTransaction", "xaEndTransaction", "xaPrepareStatement", + "xaCommitWork", "xaRollbackWork", "xaRecoverWork", "prepareStatement", + "executeStatement", "deallocatePrepare", "routineBody", "blockStatement", + "caseStatement", "ifStatement", "iterateStatement", "leaveStatement", + "loopStatement", "repeatStatement", "returnStatement", "whileStatement", + "cursorStatement", "declareVariable", "declareCondition", "declareCursor", + "declareHandler", "handlerConditionValue", "procedureSqlStatement", "caseAlternative", + "elifAlternative", "alterUser", "createUser", "dropUser", "grantStatement", + "roleOption", "grantProxy", "alterResourceGroup", "createResourceGroup", + "dropResourceGroup", "setResourceGroup", "resourceGroupVcpuSpec", "renameUser", + "revokeStatement", "ignoreUnknownUser", "privilegeObjectType", "setPasswordStatement", + "userSpecification", "alterUserAuthOption", "createUserAuthOption", "createUserInitialAuthOption", + "userAuthOption", "authOptionClause", "authenticationRule", "tlsOption", + "userResourceOption", "userPasswordOption", "userLockOption", "factorAuthOption", + "registrationOption", "factor", "privelegeClause", "privilege", "privilegeLevel", + "renameUserClause", "analyzeTable", "checkTable", "checksumTable", "optimizeTable", + "repairTable", "tableActionOption", "checkTableOption", "createFunction", + "installComponent", "variableExpr", "uninstallComponent", "installPlugin", + "uninstallPlugin", "cloneStatement", "setStatement", "showStatement", + "variableClause", "showCommonEntity", "showFilter", "showGlobalInfoClause", + "showSchemaEntity", "showProfileType", "binlogStatement", "cacheIndexStatement", + "flushStatement", "killStatement", "loadIndexIntoCache", "resetStatement", + "resetOption", "resetPersist", "resetAllChannel", "reStartStatement", + "shutdownStatement", "tableIndex", "flushOption", "flushTableOption", + "loadedTableIndexes", "simpleDescribeStatement", "fullDescribeStatement", + "analyzeDescribeStatement", "helpStatement", "useStatement", "signalStatement", + "resignalStatement", "signalConditionInformation", "withStatement", "tableStatement", + "diagnosticsStatement", "diagnosticsConditionInformationName", "describeObjectClause", + "databaseNameCreate", "databaseName", "functionNameCreate", "functionName", + "viewNameCreate", "viewName", "indexNameCreate", "indexNames", "indexName", + "groupNameCreate", "groupName", "tableNameCreate", "tableNames", "tableName", + "userOrRoleNames", "userOrRoleName", "columnNameCreate", "columnNames", + "columnName", "tablespaceNameCreate", "tablespaceName", "partitionNameCreate", + "partitionNames", "partitionName", "indexColumnName", "userHostPort", + "userAtHost", "simpleUserName", "hostName", "userName", "mysqlVariable", + "charsetName", "collationName", "engineName", "engineNameBase", "uuidSet", + "xid", "xuidStringId", "fullId", "uidList", "uid", "simpleId", "dottedId", + "decimalLiteral", "fileSizeLiteral", "stringLiteral", "booleanLiteral", + "hexadecimalLiteral", "nullNotnull", "constant", "dataType", "collectionOptions", + "convertedDataType", "lengthOneDimension", "lengthTwoDimension", "lengthTwoOptionalDimension", + "indexColumnNames", "expressions", "valuesOrValueList", "expressionsWithDefaults", + "expressionOrDefault", "constants", "simpleStrings", "userVariables", + "defaultValue", "currentTimestamp", "ifExists", "ifNotExists", "orReplace", + "functionCall", "specificFunction", "caseFuncAlternative", "levelsInWeightString", + "levelInWeightListElement", "aggregateWindowedFunction", "nonAggregateWindowedFunction", + "overClause", "windowSpec", "windowName", "frameClause", "frameUnits", + "frameExtent", "frameBetween", "frameRange", "partitionClause", "scalarFunctionName", + "passwordFunctionClause", "functionArgs", "functionArg", "expression", + "predicate", "expressionAtom", "unaryOperator", "comparisonOperator", + "comparisonBase", "logicalOperator", "bitOperator", "mathOperator", "jsonOperator", + "charsetNameBase", "transactionLevelBase", "privilegesBase", "intervalTypeBase", + "dataTypeBase", "keywordsCanBeId", "functionNameBase", + ]; + + private static readonly _LITERAL_NAMES: Array = [ + undefined, undefined, undefined, undefined, undefined, "'ACTIVE'", "'ADD'", + "'ALL'", "'ALTER'", "'ALWAYS'", "'ANALYZE'", "'AND'", "'ARRAY'", "'AS'", + "'ASC'", "'ATTRIBUTE'", "'BEFORE'", "'BETWEEN'", "'BOTH'", "'BUCKETS'", + "'BY'", "'CALL'", "'CASCADE'", "'CASE'", "'CAST'", "'CHANGE'", "'CHARACTER'", + "'CHECK'", "'COLLATE'", "'COLUMN'", "'CONDITION'", "'CONSTRAINT'", "'CONTINUE'", + "'CONVERT'", "'CREATE'", "'CROSS'", "'CURRENT'", "'CURRENT_USER'", "'CURSOR'", + "'DATABASE'", "'DATABASES'", "'DECLARE'", "'DEFAULT'", "'DELAYED'", "'DELETE'", + "'DESC'", "'DESCRIBE'", "'DETERMINISTIC'", "'DIAGNOSTICS'", "'DISTINCT'", + "'DISTINCTROW'", "'DROP'", "'EACH'", "'ELSE'", "'ELSEIF'", "'EMPTY'", + "'ENCLOSED'", "'ENFORCED'", "'ESCAPED'", "'EXCEPT'", "'EXISTS'", "'EXIT'", + "'EXPLAIN'", "'FALSE'", "'FETCH'", "'FOR'", "'FORCE'", "'FOREIGN'", "'FROM'", + "'FULLTEXT'", "'GENERATE'", "'GENERATED'", "'GET'", "'GRANT'", "'GROUP'", + "'HAVING'", "'HIGH_PRIORITY'", "'HISTOGRAM'", "'IF'", "'IGNORE'", "'IN'", + "'INACTIVE'", "'INDEX'", "'INFILE'", "'INNER'", "'INOUT'", "'INSERT'", + "'INTERVAL'", "'INTO'", "'IS'", "'ITERATE'", "'JOIN'", "'KEY'", "'KEYS'", + "'KILL'", "'LATERAL'", "'LEADING'", "'LEAVE'", "'LEFT'", "'LIKE'", "'LIMIT'", + "'LINEAR'", "'LINES'", "'LOAD'", "'LOCK'", "'LOCKED'", "'LOOP'", "'LOW_PRIORITY'", + "'MASTER_BIND'", "'MASTER_SSL_VERIFY_SERVER_CERT'", "'MATCH'", "'MAXVALUE'", + "'MODIFIES'", "'NATURAL'", "'NOT'", "'NO_WRITE_TO_BINLOG'", "'NULL'", + "'NUMBER'", "'STREAM'", "'ON'", "'OPTIMIZE'", "'OPTION'", "'OPTIONAL'", + "'OPTIONALLY'", "'OR'", "'ORDER'", "'OUT'", "'OUTER'", "'OUTFILE'", "'OVER'", + "'PARTITION'", "'PRIMARY'", "'PROCEDURE'", "'PURGE'", "'RANGE'", "'READ'", + "'READS'", "'REFERENCE'", "'REFERENCES'", "'REGEXP'", "'RELEASE'", "'RENAME'", + "'REPEAT'", "'REPLACE'", "'REQUIRE'", "'RESIGNAL'", "'RESTRICT'", "'RETAIN'", + "'RETURN'", "'REVOKE'", "'RIGHT'", "'RLIKE'", "'SCHEMA'", "'SCHEMAS'", + "'SELECT'", "'SET'", "'SEPARATOR'", "'SHOW'", "'SIGNAL'", "'SKIP'", "'SKIP_QUERY_REWRITE'", + "'SPATIAL'", "'SQL'", "'SQLEXCEPTION'", "'SQLSTATE'", "'SQLWARNING'", + "'SQL_BIG_RESULT'", "'SQL_CALC_FOUND_ROWS'", "'SQL_SMALL_RESULT'", "'SSL'", + "'STACKED'", "'STARTING'", "'STRAIGHT_JOIN'", "'TABLE'", "'TERMINATED'", + "'THEN'", "'TO'", "'TRAILING'", "'TRIGGER'", "'TRUE'", "'UNDO'", "'UNION'", + "'UNIQUE'", "'UNLOCK'", "'UNSIGNED'", "'UPDATE'", "'USAGE'", "'USE'", + "'USING'", "'VALUES'", "'VCPU'", "'WHEN'", "'WHERE'", "'WHILE'", "'WITH'", + "'WRITE'", "'XOR'", "'ZEROFILL'", "'TINYINT'", "'SMALLINT'", "'MEDIUMINT'", + "'MIDDLEINT'", "'INT'", "'INT1'", "'INT2'", "'INT3'", "'INT4'", "'INT8'", + "'INTEGER'", "'BIGINT'", "'REAL'", "'DOUBLE'", "'PRECISION'", "'FLOAT'", + "'FLOAT4'", "'FLOAT8'", "'DECIMAL'", "'DEC'", "'NUMERIC'", "'DATE'", "'TIME'", + "'TIMESTAMP'", "'DATETIME'", "'YEAR'", "'CHAR'", "'VARCHAR'", "'NVARCHAR'", + "'NATIONAL'", "'BINARY'", "'VARBINARY'", "'TINYBLOB'", "'BLOB'", "'MEDIUMBLOB'", + "'LONG'", "'LONGBLOB'", "'TINYTEXT'", "'TEXT'", "'MEDIUMTEXT'", "'LONGTEXT'", + "'ENUM'", "'VARYING'", "'SERIAL'", "'YEAR_MONTH'", "'DAY_HOUR'", "'DAY_MINUTE'", + "'DAY_SECOND'", "'HOUR_MINUTE'", "'HOUR_SECOND'", "'MINUTE_SECOND'", "'SECOND_MICROSECOND'", + "'MINUTE_MICROSECOND'", "'HOUR_MICROSECOND'", "'DAY_MICROSECOND'", "'JSON_TABLE'", + "'JSON_VALUE'", "'NESTED'", "'ORDINALITY'", "'PATH'", "'AVG'", "'BIT_AND'", + "'BIT_OR'", "'BIT_XOR'", "'COUNT'", "'CUME_DIST'", "'DENSE_RANK'", "'FIRST_VALUE'", + "'GROUP_CONCAT'", "'LAG'", "'LAST_VALUE'", "'LEAD'", "'MAX'", "'MIN'", + "'NTILE'", "'NTH_VALUE'", "'PERCENT_RANK'", "'RANK'", "'ROW_NUMBER'", + "'STD'", "'STDDEV'", "'STDDEV_POP'", "'STDDEV_SAMP'", "'SUM'", "'VAR_POP'", + "'VAR_SAMP'", "'VARIANCE'", "'CURRENT_DATE'", "'CURRENT_TIME'", "'CURRENT_TIMESTAMP'", + "'LOCALTIME'", "'CURDATE'", "'CURTIME'", "'DATE_ADD'", "'DATE_SUB'", "'EXTRACT'", + "'LOCALTIMESTAMP'", "'NOW'", "'POSITION'", "'SUBSTR'", "'SUBSTRING'", + "'SYSDATE'", "'TRIM'", "'UTC_DATE'", "'UTC_TIME'", "'UTC_TIMESTAMP'", + "'ACCOUNT'", "'ACTION'", "'AFTER'", "'AGGREGATE'", "'ALGORITHM'", "'ANY'", + "'ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS'", "'AT'", "'AUTHORS'", "'AUTOCOMMIT'", + "'AUTOEXTEND_SIZE'", "'AUTO_INCREMENT'", "'AVG_ROW_LENGTH'", "'BEGIN'", + "'BINLOG'", "'BIT'", "'BLOCK'", "'BOOL'", "'BOOLEAN'", "'BTREE'", "'CACHE'", + "'CASCADED'", "'CHAIN'", "'CHANGED'", "'CHANNEL'", "'CHECKSUM'", "'CHALLENGE_RESPONSE'", + "'CIPHER'", "'CLASS_ORIGIN'", "'CLIENT'", "'CLOSE'", "'COALESCE'", "'CODE'", + "'COLUMNS'", "'COLUMN_FORMAT'", "'COLUMN_NAME'", "'COMMENT'", "'COMMIT'", + "'COMPACT'", "'COMPLETION'", "'COMPONENT'", "'COMPRESSED'", "'COMPRESSION'", + "'CONCURRENT'", "'CONNECT'", "'CONNECTION'", "'CONSISTENT'", "'CONSTRAINT_CATALOG'", + "'CONSTRAINT_SCHEMA'", "'CONSTRAINT_NAME'", "'CONTAINS'", "'CONTEXT'", + "'CONTRIBUTORS'", "'COPY'", "'CPU'", "'CURSOR_NAME'", "'DATA'", "'DATAFILE'", + "'DEALLOCATE'", "'DEFAULT_AUTH'", "'DEFINER'", "'DELAY_KEY_WRITE'", "'DES_KEY_FILE'", + "'DIRECTORY'", "'DISABLE'", "'DISCARD'", "'DISK'", "'DO'", "'DUMPFILE'", + "'DUPLICATE'", "'DYNAMIC'", "'ENABLE'", "'ENCRYPTION'", "'ENCRYPTION_KEY_ID'", + "'END'", "'ENDS'", "'ENGINE'", "'ENGINES'", "'ERROR'", "'ERRORS'", "'ESCAPE'", + "'EVENT'", "'EVENTS'", "'EVERY'", "'EXCHANGE'", "'EXCLUSIVE'", "'EXPIRE'", + "'EXPORT'", "'EXTENDED'", "'EXTENT_SIZE'", "'FACTOR'", "'FAILED_LOGIN_ATTEMPTS'", + "'FAST'", "'FAULTS'", "'FIELDS'", "'FILE_BLOCK_SIZE'", "'FILTER'", "'FINISH'", + "'FIRST'", "'FIXED'", "'FLUSH'", "'FOLLOWING'", "'FOLLOWS'", "'FOUND'", + "'FULL'", "'FUNCTION'", "'GENERAL'", "'GET_MASTER_PUBLIC_KEY'", "'GET_SOURCE_PUBLIC_KEY'", + "'GLOBAL'", "'GRANTS'", "'GROUP_REPLICATION'", "'GTID_ONLY'", "'HANDLER'", + "'HASH'", "'HELP'", "'HISTORY'", "'HOST'", "'HOSTS'", "'IDENTIFIED'", + "'IGNORE_SERVER_IDS'", "'IMPORT'", "'INDEXES'", "'INITIAL'", "'INITIAL_SIZE'", + "'INITIATE'", "'INPLACE'", "'INSERT_METHOD'", "'INSTALL'", "'INSTANCE'", + "'INSTANT'", "'INVISIBLE'", "'INVOKER'", "'IO'", "'IO_THREAD'", "'IPC'", + "'ISOLATION'", "'ISSUER'", "'JSON'", "'KEY_BLOCK_SIZE'", "'LANGUAGE'", + "'LAST'", "'LEAVES'", "'LESS'", "'LEVEL'", "'LIST'", "'LOCAL'", "'LOGFILE'", + "'LOGS'", "'MASTER'", "'MASTER_AUTO_POSITION'", "'MASTER_COMPRESSION_ALGORITHMS'", + "'MASTER_CONNECT_RETRY'", "'MASTER_DELAY'", "'MASTER_HEARTBEAT_PERIOD'", + "'MASTER_HOST'", "'MASTER_LOG_FILE'", "'MASTER_LOG_POS'", "'MASTER_PASSWORD'", + "'MASTER_PORT'", "'MASTER_PUBLIC_KEY_PATH'", "'MASTER_RETRY_COUNT'", "'MASTER_SSL'", + "'MASTER_SSL_CA'", "'MASTER_SSL_CAPATH'", "'MASTER_SSL_CERT'", "'MASTER_SSL_CIPHER'", + "'MASTER_SSL_CRL'", "'MASTER_SSL_CRLPATH'", "'MASTER_SSL_KEY'", "'MASTER_TLS_CIPHERSUITES'", + "'MASTER_TLS_VERSION'", "'MASTER_USER'", "'MASTER_ZSTD_COMPRESSION_LEVEL'", + "'MAX_CONNECTIONS_PER_HOUR'", "'MAX_QUERIES_PER_HOUR'", "'MAX_ROWS'", + "'MAX_SIZE'", "'MAX_UPDATES_PER_HOUR'", "'MAX_USER_CONNECTIONS'", "'MEDIUM'", + "'MEMBER'", "'MERGE'", "'MESSAGE_TEXT'", "'MID'", "'MIGRATE'", "'MIN_ROWS'", + "'MODE'", "'MODIFY'", "'MUTEX'", "'MYSQL'", "'MYSQL_ERRNO'", "'NAME'", + "'NAMES'", "'NCHAR'", "'NETWORK_NAMESPACE'", "'NEVER'", "'NEXT'", "'NO'", + "'NOWAIT'", "'NODEGROUP'", "'NONE'", "'ODBC'", "'OFF'", "'OFFLINE'", "'OFFSET'", + "'OF'", "'OLD'", "'OLD_PASSWORD'", "'ONE'", "'ONLINE'", "'ONLY'", "'OPEN'", + "'OPTIMIZER_COSTS'", "'OPTIONS'", "'OWNER'", "'PACK_KEYS'", "'PAGE'", + "'PAGE_CHECKSUM'", "'PAGE_COMPRESSED'", "'PAGE_COMPRESSION_LEVEL'", "'PARSER'", + "'PARTIAL'", "'PARTITIONING'", "'PARTITIONS'", "'PASSWORD'", "'PASSWORD_LOCK_TIME'", + "'PERSIST'", "'PERSIST_ONLY'", "'PHASE'", "'PLUGIN'", "'PLUGIN_DIR'", + "'PLUGINS'", "'PORT'", "'PRECEDES'", "'PRECEDING'", "'PREPARE'", "'PRESERVE'", + "'PREV'", "'PRIVILEGE_CHECKS_USER'", "'PROCESSLIST'", "'PROFILE'", "'PROFILES'", + "'PROXY'", "'QUERY'", "'QUICK'", "'REBUILD'", "'RECOVER'", "'RECURSIVE'", + "'REDO_BUFFER_SIZE'", "'REDUNDANT'", "'REGISTRATION'", "'RELAY'", "'RELAY_LOG_FILE'", + "'RELAY_LOG_POS'", "'RELAYLOG'", "'REMOVE'", "'REORGANIZE'", "'REPAIR'", + "'REPLICA'", "'REPLICAS'", "'REPLICATE_DO_DB'", "'REPLICATE_DO_TABLE'", + "'REPLICATE_IGNORE_DB'", "'REPLICATE_IGNORE_TABLE'", "'REPLICATE_REWRITE_DB'", + "'REPLICATE_WILD_DO_TABLE'", "'REPLICATE_WILD_IGNORE_TABLE'", "'REPLICATION'", + "'REQUIRE_ROW_FORMAT'", "'REQUIRE_TABLE_PRIMARY_KEY_CHECK'", "'RESET'", + "'RESTART'", "'RESUME'", "'RETURNED_SQLSTATE'", "'RETURNING'", "'RETURNS'", + "'REUSE'", "'ROLE'", "'ROLLBACK'", "'ROLLUP'", "'ROTATE'", "'ROW'", "'ROWS'", + "'ROW_FORMAT'", "'SAVEPOINT'", "'SCHEDULE'", "'SECURITY'", "'SERVER'", + "'SESSION'", "'SHARE'", "'SHARED'", "'SIGNED'", "'SIMPLE'", "'SLAVE'", + "'SLOW'", "'SNAPSHOT'", "'SOCKET'", "'SOME'", "'SONAME'", "'SOUNDS'", + "'SOURCE'", "'SOURCE_BIND'", "'SOURCE_HOST'", "'SOURCE_USER'", "'SOURCE_PASSWORD'", + "'SOURCE_PORT'", "'SOURCE_LOG_FILE'", "'SOURCE_LOG_POS'", "'SOURCE_AUTO_POSITION'", + "'SOURCE_HEARTBEAT_PERIOD'", "'SOURCE_CONNECT_RETRY'", "'SOURCE_RETRY_COUNT'", + "'SOURCE_CONNECTION_AUTO_FAILOVER'", "'SOURCE_DELAY'", "'SOURCE_COMPRESSION_ALGORITHMS'", + "'SOURCE_ZSTD_COMPRESSION_LEVEL'", "'SOURCE_SSL'", "'SOURCE_SSL_CA'", + "'SOURCE_SSL_CAPATH'", "'SOURCE_SSL_CERT'", "'SOURCE_SSL_CRL'", "'SOURCE_SSL_CRLPATH'", + "'SOURCE_SSL_KEY'", "'SOURCE_SSL_CIPHER'", "'SOURCE_SSL_VERIFY_SERVER_CERT'", + "'SOURCE_TLS_VERSION'", "'SOURCE_TLS_CIPHERSUITES'", "'SOURCE_PUBLIC_KEY_PATH'", + "'SQL_AFTER_GTIDS'", "'SQL_AFTER_MTS_GAPS'", "'SQL_BEFORE_GTIDS'", "'SQL_BUFFER_RESULT'", + "'SQL_CACHE'", "'SQL_NO_CACHE'", "'SQL_THREAD'", "'START'", "'STARTS'", + "'STATS_AUTO_RECALC'", "'STATS_PERSISTENT'", "'STATS_SAMPLE_PAGES'", "'STATUS'", + "'STOP'", "'STORAGE'", "'STORED'", "'STRING'", "'SUBCLASS_ORIGIN'", "'SUBJECT'", + "'SUBPARTITION'", "'SUBPARTITIONS'", "'SUSPEND'", "'SWAPS'", "'SWITCHES'", + "'TABLE_NAME'", "'TABLESPACE'", "'TABLE_TYPE'", "'TEMPORARY'", "'TEMPTABLE'", + "'THAN'", "'TRADITIONAL'", "'TRANSACTION'", "'TRANSACTIONAL'", "'TREE'", + "'TRIGGERS'", "'TRUNCATE'", "'UNBOUNDED'", "'UNDEFINED'", "'UNDOFILE'", + "'UNDO_BUFFER_SIZE'", "'UNINSTALL'", "'UNKNOWN'", "'UNREGISTER'", "'UNTIL'", + "'UPGRADE'", "'USER'", "'USE_FRM'", "'USER_RESOURCES'", "'VALIDATION'", + "'VALUE'", "'VARIABLES'", "'VIEW'", "'VIRTUAL'", "'VISIBLE'", "'WAIT'", + "'WARNINGS'", "'WINDOW'", "'WITHOUT'", "'WORK'", "'WRAPPER'", "'X509'", + "'XA'", "'XML'", "'QUARTER'", "'MONTH'", "'DAY'", "'HOUR'", "'MINUTE'", + "'WEEK'", "'SECOND'", "'MICROSECOND'", "'ADMIN'", "'APPLICATION_PASSWORD_ADMIN'", + "'AUDIT_ABORT_EXEMPT'", "'AUDIT_ADMIN'", "'AUTHENTICATION'", "'AUTHENTICATION_POLICY_ADMIN'", + "'BACKUP_ADMIN'", "'BINLOG_ADMIN'", "'BINLOG_ENCRYPTION_ADMIN'", "'CLONE'", + "'CLONE_ADMIN'", "'CONNECTION_ADMIN'", "'ENCRYPTION_KEY_ADMIN'", "'EXECUTE'", + "'FILE'", "'FIREWALL_ADMIN'", "'FIREWALL_EXEMPT'", "'FIREWALL_USER'", + "'FLUSH_OPTIMIZER_COSTS'", "'FLUSH_STATUS'", "'FLUSH_TABLES'", "'FLUSH_USER_RESOURCES'", + "'GROUP_REPLICATION_ADMIN'", "'INNODB_REDO_LOG_ARCHIVE'", "'INNODB_REDO_LOG_ENABLE'", + "'INVOKE'", "'LAMBDA'", "'NDB_STORED_USER'", "'PASSWORDLESS_USER_ADMIN'", + "'PERSIST_RO_VARIABLES_ADMIN'", "'PRIVILEGES'", "'PROCESS'", "'RELOAD'", + "'REPLICATION_APPLIER'", "'REPLICATION_SLAVE_ADMIN'", "'RESOURCE'", "'RESOURCE_GROUP_ADMIN'", + "'RESOURCE_GROUP_USER'", "'ROLE_ADMIN'", "'ROUTINE'", "'S3'", "'SERVICE_CONNECTION_ADMIN'", + undefined, "'SET_USER_ID'", "'SHOW_ROUTINE'", "'SHUTDOWN'", "'SUPER'", + "'SYSTEM_VARIABLES_ADMIN'", "'TABLES'", "'TABLE_ENCRYPTION_ADMIN'", "'VERSION_TOKEN_ADMIN'", + "'XA_RECOVER_ADMIN'", "'ARMSCII8'", "'ASCII'", "'BIG5'", "'CP1250'", "'CP1251'", + "'CP1256'", "'CP1257'", "'CP850'", "'CP852'", "'CP866'", "'CP932'", "'DEC8'", + "'EUCJPMS'", "'EUCKR'", "'GB18030'", "'GB2312'", "'GBK'", "'GEOSTD8'", + "'GREEK'", "'HEBREW'", "'HP8'", "'KEYBCS2'", "'KOI8R'", "'KOI8U'", "'LATIN1'", + "'LATIN2'", "'LATIN5'", "'LATIN7'", "'MACCE'", "'MACROMAN'", "'SJIS'", + "'SWE7'", "'TIS620'", "'UCS2'", "'UJIS'", "'UTF16'", "'UTF16LE'", "'UTF32'", + "'UTF8'", "'UTF8MB3'", "'UTF8MB4'", "'ARCHIVE'", "'BLACKHOLE'", "'CSV'", + "'FEDERATED'", "'INNODB'", "'MEMORY'", "'MRG_MYISAM'", "'MYISAM'", "'NDB'", + "'NDBCLUSTER'", "'PERFORMANCE_SCHEMA'", "'TOKUDB'", "'REPEATABLE'", "'COMMITTED'", + "'UNCOMMITTED'", "'SERIALIZABLE'", "'GEOMETRYCOLLECTION'", "'GEOMCOLLECTION'", + "'GEOMETRY'", "'LINESTRING'", "'MULTILINESTRING'", "'MULTIPOINT'", "'MULTIPOLYGON'", + "'POINT'", "'POLYGON'", "'CATALOG_NAME'", "'CHARSET'", "'COLLATION'", + "'ENGINE_ATTRIBUTE'", "'FORMAT'", "'GET_FORMAT'", "'INTERSECT'", "'RANDOM'", + "'REVERSE'", "'ROW_COUNT'", "'SCHEMA_NAME'", "'SECONDARY_ENGINE_ATTRIBUTE'", + "'SRID'", "'SYSTEM'", "'SYSTEM_USER'", "'THREAD_PRIORITY'", "'TP_CONNECTION_ADMIN'", + "'TYPE'", "'WEIGHT_STRING'", "':='", "'+='", "'-='", "'*='", "'/='", "'%='", + "'&='", "'^='", "'|='", "'*'", "'/'", "'%'", "'+'", "'-'", "'DIV'", "'MOD'", + "'='", "'>'", "'<'", "'!'", "'~'", "'|'", "'&'", "'^'", "'.'", "'('", + "')'", "','", "';'", "'@'", "'0'", "'1'", "'2'", "'3'", "'''", "'\"'", + "'`'", "':'", + ]; + private static readonly _SYMBOLIC_NAMES: Array = [ + undefined, "SPACE", "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", + "KW_ACTIVE", "KW_ADD", "KW_ALL", "KW_ALTER", "KW_ALWAYS", "KW_ANALYZE", + "KW_AND", "KW_ARRAY", "KW_AS", "KW_ASC", "KW_ATTRIBUTE", "KW_BEFORE", + "KW_BETWEEN", "KW_BOTH", "KW_BUCKETS", "KW_BY", "KW_CALL", "KW_CASCADE", + "KW_CASE", "KW_CAST", "KW_CHANGE", "KW_CHARACTER", "KW_CHECK", "KW_COLLATE", + "KW_COLUMN", "KW_CONDITION", "KW_CONSTRAINT", "KW_CONTINUE", "KW_CONVERT", + "KW_CREATE", "KW_CROSS", "KW_CURRENT", "KW_CURRENT_USER", "KW_CURSOR", + "KW_DATABASE", "KW_DATABASES", "KW_DECLARE", "KW_DEFAULT", "KW_DELAYED", + "KW_DELETE", "KW_DESC", "KW_DESCRIBE", "KW_DETERMINISTIC", "KW_DIAGNOSTICS", + "KW_DISTINCT", "KW_DISTINCTROW", "KW_DROP", "KW_EACH", "KW_ELSE", "KW_ELSEIF", + "KW_EMPTY", "KW_ENCLOSED", "KW_ENFORCED", "KW_ESCAPED", "KW_EXCEPT", "KW_EXISTS", + "KW_EXIT", "KW_EXPLAIN", "KW_FALSE", "KW_FETCH", "KW_FOR", "KW_FORCE", + "KW_FOREIGN", "KW_FROM", "KW_FULLTEXT", "KW_GENERATE", "KW_GENERATED", + "KW_GET", "KW_GRANT", "KW_GROUP", "KW_HAVING", "KW_HIGH_PRIORITY", "KW_HISTOGRAM", + "KW_IF", "KW_IGNORE", "KW_IN", "KW_INACTIVE", "KW_INDEX", "KW_INFILE", + "KW_INNER", "KW_INOUT", "KW_INSERT", "KW_INTERVAL", "KW_INTO", "KW_IS", + "KW_ITERATE", "KW_JOIN", "KW_KEY", "KW_KEYS", "KW_KILL", "KW_LATERAL", + "KW_LEADING", "KW_LEAVE", "KW_LEFT", "KW_LIKE", "KW_LIMIT", "KW_LINEAR", + "KW_LINES", "KW_LOAD", "KW_LOCK", "KW_LOCKED", "KW_LOOP", "KW_LOW_PRIORITY", + "KW_MASTER_BIND", "KW_MASTER_SSL_VERIFY_SERVER_CERT", "KW_MATCH", "KW_MAXVALUE", + "KW_MODIFIES", "KW_NATURAL", "KW_NOT", "KW_NO_WRITE_TO_BINLOG", "KW_NULL_LITERAL", + "KW_NUMBER", "KW_STREAM", "KW_ON", "KW_OPTIMIZE", "KW_OPTION", "KW_OPTIONAL", + "KW_OPTIONALLY", "KW_OR", "KW_ORDER", "KW_OUT", "KW_OUTER", "KW_OUTFILE", + "KW_OVER", "KW_PARTITION", "KW_PRIMARY", "KW_PROCEDURE", "KW_PURGE", "KW_RANGE", + "KW_READ", "KW_READS", "KW_REFERENCE", "KW_REFERENCES", "KW_REGEXP", "KW_RELEASE", + "KW_RENAME", "KW_REPEAT", "KW_REPLACE", "KW_REQUIRE", "KW_RESIGNAL", "KW_RESTRICT", + "KW_RETAIN", "KW_RETURN", "KW_REVOKE", "KW_RIGHT", "KW_RLIKE", "KW_SCHEMA", + "KW_SCHEMAS", "KW_SELECT", "KW_SET", "KW_SEPARATOR", "KW_SHOW", "KW_SIGNAL", + "KW_SKIP", "KW_SKIP_QUERY_REWRITE", "KW_SPATIAL", "KW_SQL", "KW_SQLEXCEPTION", + "KW_SQLSTATE", "KW_SQLWARNING", "KW_SQL_BIG_RESULT", "KW_SQL_CALC_FOUND_ROWS", + "KW_SQL_SMALL_RESULT", "KW_SSL", "KW_STACKED", "KW_STARTING", "KW_STRAIGHT_JOIN", + "KW_TABLE", "KW_TERMINATED", "KW_THEN", "KW_TO", "KW_TRAILING", "KW_TRIGGER", + "KW_TRUE", "KW_UNDO", "KW_UNION", "KW_UNIQUE", "KW_UNLOCK", "KW_UNSIGNED", + "KW_UPDATE", "KW_USAGE", "KW_USE", "KW_USING", "KW_VALUES", "KW_VCPU", + "KW_WHEN", "KW_WHERE", "KW_WHILE", "KW_WITH", "KW_WRITE", "KW_XOR", "KW_ZEROFILL", + "KW_TINYINT", "KW_SMALLINT", "KW_MEDIUMINT", "KW_MIDDLEINT", "KW_INT", + "KW_INT1", "KW_INT2", "KW_INT3", "KW_INT4", "KW_INT8", "KW_INTEGER", "KW_BIGINT", + "KW_REAL", "KW_DOUBLE", "KW_PRECISION", "KW_FLOAT", "KW_FLOAT4", "KW_FLOAT8", + "KW_DECIMAL", "KW_DEC", "KW_NUMERIC", "KW_DATE", "KW_TIME", "KW_TIMESTAMP", + "KW_DATETIME", "KW_YEAR", "KW_CHAR", "KW_VARCHAR", "KW_NVARCHAR", "KW_NATIONAL", + "KW_BINARY", "KW_VARBINARY", "KW_TINYBLOB", "KW_BLOB", "KW_MEDIUMBLOB", + "KW_LONG", "KW_LONGBLOB", "KW_TINYTEXT", "KW_TEXT", "KW_MEDIUMTEXT", "KW_LONGTEXT", + "KW_ENUM", "KW_VARYING", "KW_SERIAL", "KW_YEAR_MONTH", "KW_DAY_HOUR", + "KW_DAY_MINUTE", "KW_DAY_SECOND", "KW_HOUR_MINUTE", "KW_HOUR_SECOND", + "KW_MINUTE_SECOND", "KW_SECOND_MICROSECOND", "KW_MINUTE_MICROSECOND", + "KW_HOUR_MICROSECOND", "KW_DAY_MICROSECOND", "KW_JSON_TABLE", "KW_JSON_VALUE", + "KW_NESTED", "KW_ORDINALITY", "KW_PATH", "KW_AVG", "KW_BIT_AND", "KW_BIT_OR", + "KW_BIT_XOR", "KW_COUNT", "KW_CUME_DIST", "KW_DENSE_RANK", "KW_FIRST_VALUE", + "KW_GROUP_CONCAT", "KW_LAG", "KW_LAST_VALUE", "KW_LEAD", "KW_MAX", "KW_MIN", + "KW_NTILE", "KW_NTH_VALUE", "KW_PERCENT_RANK", "KW_RANK", "KW_ROW_NUMBER", + "KW_STD", "KW_STDDEV", "KW_STDDEV_POP", "KW_STDDEV_SAMP", "KW_SUM", "KW_VAR_POP", + "KW_VAR_SAMP", "KW_VARIANCE", "KW_CURRENT_DATE", "KW_CURRENT_TIME", "KW_CURRENT_TIMESTAMP", + "KW_LOCALTIME", "KW_CURDATE", "KW_CURTIME", "KW_DATE_ADD", "KW_DATE_SUB", + "KW_EXTRACT", "KW_LOCALTIMESTAMP", "KW_NOW", "KW_POSITION", "KW_SUBSTR", + "KW_SUBSTRING", "KW_SYSDATE", "KW_TRIM", "KW_UTC_DATE", "KW_UTC_TIME", + "KW_UTC_TIMESTAMP", "KW_ACCOUNT", "KW_ACTION", "KW_AFTER", "KW_AGGREGATE", + "KW_ALGORITHM", "KW_ANY", "KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS", + "KW_AT", "KW_AUTHORS", "KW_AUTOCOMMIT", "KW_AUTOEXTEND_SIZE", "KW_AUTO_INCREMENT", + "KW_AVG_ROW_LENGTH", "KW_BEGIN", "KW_BINLOG", "KW_BIT", "KW_BLOCK", "KW_BOOL", + "KW_BOOLEAN", "KW_BTREE", "KW_CACHE", "KW_CASCADED", "KW_CHAIN", "KW_CHANGED", + "KW_CHANNEL", "KW_CHECKSUM", "KW_CHALLENGE_RESPONSE", "KW_CIPHER", "KW_CLASS_ORIGIN", + "KW_CLIENT", "KW_CLOSE", "KW_COALESCE", "KW_CODE", "KW_COLUMNS", "KW_COLUMN_FORMAT", + "KW_COLUMN_NAME", "KW_COMMENT", "KW_COMMIT", "KW_COMPACT", "KW_COMPLETION", + "KW_COMPONENT", "KW_COMPRESSED", "KW_COMPRESSION", "KW_CONCURRENT", "KW_CONNECT", + "KW_CONNECTION", "KW_CONSISTENT", "KW_CONSTRAINT_CATALOG", "KW_CONSTRAINT_SCHEMA", + "KW_CONSTRAINT_NAME", "KW_CONTAINS", "KW_CONTEXT", "KW_CONTRIBUTORS", + "KW_COPY", "KW_CPU", "KW_CURSOR_NAME", "KW_DATA", "KW_DATAFILE", "KW_DEALLOCATE", + "KW_DEFAULT_AUTH", "KW_DEFINER", "KW_DELAY_KEY_WRITE", "KW_DES_KEY_FILE", + "KW_DIRECTORY", "KW_DISABLE", "KW_DISCARD", "KW_DISK", "KW_DO", "KW_DUMPFILE", + "KW_DUPLICATE", "KW_DYNAMIC", "KW_ENABLE", "KW_ENCRYPTION", "KW_ENCRYPTION_KEY_ID", + "KW_END", "KW_ENDS", "KW_ENGINE", "KW_ENGINES", "KW_ERROR", "KW_ERRORS", + "KW_ESCAPE", "KW_EVENT", "KW_EVENTS", "KW_EVERY", "KW_EXCHANGE", "KW_EXCLUSIVE", + "KW_EXPIRE", "KW_EXPORT", "KW_EXTENDED", "KW_EXTENT_SIZE", "KW_FACTOR", + "KW_FAILED_LOGIN_ATTEMPTS", "KW_FAST", "KW_FAULTS", "KW_FIELDS", "KW_FILE_BLOCK_SIZE", + "KW_FILTER", "KW_FINISH", "KW_FIRST", "KW_FIXED", "KW_FLUSH", "KW_FOLLOWING", + "KW_FOLLOWS", "KW_FOUND", "KW_FULL", "KW_FUNCTION", "KW_GENERAL", "KW_GET_MASTER_PUBLIC_KEY", + "KW_GET_SOURCE_PUBLIC_KEY", "KW_GLOBAL", "KW_GRANTS", "KW_GROUP_REPLICATION", + "KW_GTID_ONLY", "KW_HANDLER", "KW_HASH", "KW_HELP", "KW_HISTORY", "KW_HOST", + "KW_HOSTS", "KW_IDENTIFIED", "KW_IGNORE_SERVER_IDS", "KW_IMPORT", "KW_INDEXES", + "KW_INITIAL", "KW_INITIAL_SIZE", "KW_INITIATE", "KW_INPLACE", "KW_INSERT_METHOD", + "KW_INSTALL", "KW_INSTANCE", "KW_INSTANT", "KW_INVISIBLE", "KW_INVOKER", + "KW_IO", "KW_IO_THREAD", "KW_IPC", "KW_ISOLATION", "KW_ISSUER", "KW_JSON", + "KW_KEY_BLOCK_SIZE", "KW_LANGUAGE", "KW_LAST", "KW_LEAVES", "KW_LESS", + "KW_LEVEL", "KW_LIST", "KW_LOCAL", "KW_LOGFILE", "KW_LOGS", "KW_MASTER", + "KW_MASTER_AUTO_POSITION", "KW_MASTER_COMPRESSION_ALGORITHMS", "KW_MASTER_CONNECT_RETRY", + "KW_MASTER_DELAY", "KW_MASTER_HEARTBEAT_PERIOD", "KW_MASTER_HOST", "KW_MASTER_LOG_FILE", + "KW_MASTER_LOG_POS", "KW_MASTER_PASSWORD", "KW_MASTER_PORT", "KW_MASTER_PUBLIC_KEY_PATH", + "KW_MASTER_RETRY_COUNT", "KW_MASTER_SSL", "KW_MASTER_SSL_CA", "KW_MASTER_SSL_CAPATH", + "KW_MASTER_SSL_CERT", "KW_MASTER_SSL_CIPHER", "KW_MASTER_SSL_CRL", "KW_MASTER_SSL_CRLPATH", + "KW_MASTER_SSL_KEY", "KW_MASTER_TLS_CIPHERSUITES", "KW_MASTER_TLS_VERSION", + "KW_MASTER_USER", "KW_MASTER_ZSTD_COMPRESSION_LEVEL", "KW_MAX_CONNECTIONS_PER_HOUR", + "KW_MAX_QUERIES_PER_HOUR", "KW_MAX_ROWS", "KW_MAX_SIZE", "KW_MAX_UPDATES_PER_HOUR", + "KW_MAX_USER_CONNECTIONS", "KW_MEDIUM", "KW_MEMBER", "KW_MERGE", "KW_MESSAGE_TEXT", + "KW_MID", "KW_MIGRATE", "KW_MIN_ROWS", "KW_MODE", "KW_MODIFY", "KW_MUTEX", + "KW_MYSQL", "KW_MYSQL_ERRNO", "KW_NAME", "KW_NAMES", "KW_NCHAR", "KW_NETWORK_NAMESPACE", + "KW_NEVER", "KW_NEXT", "KW_NO", "KW_NOWAIT", "KW_NODEGROUP", "KW_NONE", + "KW_ODBC", "KW_OFF", "KW_OFFLINE", "KW_OFFSET", "KW_OF", "KW_OLD", "KW_OLD_PASSWORD", + "KW_ONE", "KW_ONLINE", "KW_ONLY", "KW_OPEN", "KW_OPTIMIZER_COSTS", "KW_OPTIONS", + "KW_OWNER", "KW_PACK_KEYS", "KW_PAGE", "KW_PAGE_CHECKSUM", "KW_PAGE_COMPRESSED", + "KW_PAGE_COMPRESSION_LEVEL", "KW_PARSER", "KW_PARTIAL", "KW_PARTITIONING", + "KW_PARTITIONS", "KW_PASSWORD", "KW_PASSWORD_LOCK_TIME", "KW_PERSIST", + "KW_PERSIST_ONLY", "KW_PHASE", "KW_PLUGIN", "KW_PLUGIN_DIR", "KW_PLUGINS", + "KW_PORT", "KW_PRECEDES", "KW_PRECEDING", "KW_PREPARE", "KW_PRESERVE", + "KW_PREV", "KW_PRIVILEGE_CHECKS_USER", "KW_PROCESSLIST", "KW_PROFILE", + "KW_PROFILES", "KW_PROXY", "KW_QUERY", "KW_QUICK", "KW_REBUILD", "KW_RECOVER", + "KW_RECURSIVE", "KW_REDO_BUFFER_SIZE", "KW_REDUNDANT", "KW_REGISTRATION", + "KW_RELAY", "KW_RELAY_LOG_FILE", "KW_RELAY_LOG_POS", "KW_RELAYLOG", "KW_REMOVE", + "KW_REORGANIZE", "KW_REPAIR", "KW_REPLICA", "KW_REPLICAS", "KW_REPLICATE_DO_DB", + "KW_REPLICATE_DO_TABLE", "KW_REPLICATE_IGNORE_DB", "KW_REPLICATE_IGNORE_TABLE", + "KW_REPLICATE_REWRITE_DB", "KW_REPLICATE_WILD_DO_TABLE", "KW_REPLICATE_WILD_IGNORE_TABLE", + "KW_REPLICATION", "KW_REQUIRE_ROW_FORMAT", "KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK", + "KW_RESET", "KW_RESTART", "KW_RESUME", "KW_RETURNED_SQLSTATE", "KW_RETURNING", + "KW_RETURNS", "KW_REUSE", "KW_ROLE", "KW_ROLLBACK", "KW_ROLLUP", "KW_ROTATE", + "KW_ROW", "KW_ROWS", "KW_ROW_FORMAT", "KW_SAVEPOINT", "KW_SCHEDULE", "KW_SECURITY", + "KW_SERVER", "KW_SESSION", "KW_SHARE", "KW_SHARED", "KW_SIGNED", "KW_SIMPLE", + "KW_SLAVE", "KW_SLOW", "KW_SNAPSHOT", "KW_SOCKET", "KW_SOME", "KW_SONAME", + "KW_SOUNDS", "KW_SOURCE", "KW_SOURCE_BIND", "KW_SOURCE_HOST", "KW_SOURCE_USER", + "KW_SOURCE_PASSWORD", "KW_SOURCE_PORT", "KW_SOURCE_LOG_FILE", "KW_SOURCE_LOG_POS", + "KW_SOURCE_AUTO_POSITION", "KW_SOURCE_HEARTBEAT_PERIOD", "KW_SOURCE_CONNECT_RETRY", + "KW_SOURCE_RETRY_COUNT", "KW_SOURCE_CONNECTION_AUTO_FAILOVER", "KW_SOURCE_DELAY", + "KW_SOURCE_COMPRESSION_ALGORITHMS", "KW_SOURCE_ZSTD_COMPRESSION_LEVEL", + "KW_SOURCE_SSL", "KW_SOURCE_SSL_CA", "KW_SOURCE_SSL_CAPATH", "KW_SOURCE_SSL_CERT", + "KW_SOURCE_SSL_CRL", "KW_SOURCE_SSL_CRLPATH", "KW_SOURCE_SSL_KEY", "KW_SOURCE_SSL_CIPHER", + "KW_SOURCE_SSL_VERIFY_SERVER_CERT", "KW_SOURCE_TLS_VERSION", "KW_SOURCE_TLS_CIPHERSUITES", + "KW_SOURCE_PUBLIC_KEY_PATH", "KW_SQL_AFTER_GTIDS", "KW_SQL_AFTER_MTS_GAPS", + "KW_SQL_BEFORE_GTIDS", "KW_SQL_BUFFER_RESULT", "KW_SQL_CACHE", "KW_SQL_NO_CACHE", + "KW_SQL_THREAD", "KW_START", "KW_STARTS", "KW_STATS_AUTO_RECALC", "KW_STATS_PERSISTENT", + "KW_STATS_SAMPLE_PAGES", "KW_STATUS", "KW_STOP", "KW_STORAGE", "KW_STORED", + "KW_STRING", "KW_SUBCLASS_ORIGIN", "KW_SUBJECT", "KW_SUBPARTITION", "KW_SUBPARTITIONS", + "KW_SUSPEND", "KW_SWAPS", "KW_SWITCHES", "KW_TABLE_NAME", "KW_TABLESPACE", + "KW_TABLE_TYPE", "KW_TEMPORARY", "KW_TEMPTABLE", "KW_THAN", "KW_TRADITIONAL", + "KW_TRANSACTION", "KW_TRANSACTIONAL", "KW_TREE", "KW_TRIGGERS", "KW_TRUNCATE", + "KW_UNBOUNDED", "KW_UNDEFINED", "KW_UNDOFILE", "KW_UNDO_BUFFER_SIZE", + "KW_UNINSTALL", "KW_UNKNOWN", "KW_UNREGISTER", "KW_UNTIL", "KW_UPGRADE", + "KW_USER", "KW_USE_FRM", "KW_USER_RESOURCES", "KW_VALIDATION", "KW_VALUE", + "KW_VARIABLES", "KW_VIEW", "KW_VIRTUAL", "KW_VISIBLE", "KW_WAIT", "KW_WARNINGS", + "KW_WINDOW", "KW_WITHOUT", "KW_WORK", "KW_WRAPPER", "KW_X509", "KW_XA", + "KW_XML", "KW_QUARTER", "KW_MONTH", "KW_DAY", "KW_HOUR", "KW_MINUTE", + "KW_WEEK", "KW_SECOND", "KW_MICROSECOND", "KW_ADMIN", "KW_APPLICATION_PASSWORD_ADMIN", + "KW_AUDIT_ABORT_EXEMPT", "KW_AUDIT_ADMIN", "KW_AUTHENTICATION", "KW_AUTHENTICATION_POLICY_ADMIN", + "KW_BACKUP_ADMIN", "KW_BINLOG_ADMIN", "KW_BINLOG_ENCRYPTION_ADMIN", "KW_CLONE", + "KW_CLONE_ADMIN", "KW_CONNECTION_ADMIN", "KW_ENCRYPTION_KEY_ADMIN", "KW_EXECUTE", + "KW_FILE", "KW_FIREWALL_ADMIN", "KW_FIREWALL_EXEMPT", "KW_FIREWALL_USER", + "KW_FLUSH_OPTIMIZER_COSTS", "KW_FLUSH_STATUS", "KW_FLUSH_TABLES", "KW_FLUSH_USER_RESOURCES", + "KW_GROUP_REPLICATION_ADMIN", "KW_INNODB_REDO_LOG_ARCHIVE", "KW_INNODB_REDO_LOG_ENABLE", + "KW_INVOKE", "KW_LAMBDA", "KW_NDB_STORED_USER", "KW_PASSWORDLESS_USER_ADMIN", + "KW_PERSIST_RO_VARIABLES_ADMIN", "KW_PRIVILEGES", "KW_PROCESS", "KW_RELOAD", + "KW_REPLICATION_APPLIER", "KW_REPLICATION_SLAVE_ADMIN", "KW_RESOURCE", + "KW_RESOURCE_GROUP_ADMIN", "KW_RESOURCE_GROUP_USER", "KW_ROLE_ADMIN", + "KW_ROUTINE", "KW_S3", "KW_SERVICE_CONNECTION_ADMIN", "KW_SESSION_VARIABLES_ADMIN", + "KW_SET_USER_ID", "KW_SHOW_ROUTINE", "KW_SHUTDOWN", "KW_SUPER", "KW_SYSTEM_VARIABLES_ADMIN", + "KW_TABLES", "KW_TABLE_ENCRYPTION_ADMIN", "KW_VERSION_TOKEN_ADMIN", "KW_XA_RECOVER_ADMIN", + "KW_ARMSCII8", "KW_ASCII", "KW_BIG5", "KW_CP1250", "KW_CP1251", "KW_CP1256", + "KW_CP1257", "KW_CP850", "KW_CP852", "KW_CP866", "KW_CP932", "KW_DEC8", + "KW_EUCJPMS", "KW_EUCKR", "KW_GB18030", "KW_GB2312", "KW_GBK", "KW_GEOSTD8", + "KW_GREEK", "KW_HEBREW", "KW_HP8", "KW_KEYBCS2", "KW_KOI8R", "KW_KOI8U", + "KW_LATIN1", "KW_LATIN2", "KW_LATIN5", "KW_LATIN7", "KW_MACCE", "KW_MACROMAN", + "KW_SJIS", "KW_SWE7", "KW_TIS620", "KW_UCS2", "KW_UJIS", "KW_UTF16", "KW_UTF16LE", + "KW_UTF32", "KW_UTF8", "KW_UTF8MB3", "KW_UTF8MB4", "KW_ARCHIVE", "KW_BLACKHOLE", + "KW_CSV", "KW_FEDERATED", "KW_INNODB", "KW_MEMORY", "KW_MRG_MYISAM", "KW_MYISAM", + "KW_NDB", "KW_NDBCLUSTER", "KW_PERFORMANCE_SCHEMA", "KW_TOKUDB", "KW_REPEATABLE", + "KW_COMMITTED", "KW_UNCOMMITTED", "KW_SERIALIZABLE", "KW_GEOMETRYCOLLECTION", + "KW_GEOMCOLLECTION", "KW_GEOMETRY", "KW_LINESTRING", "KW_MULTILINESTRING", + "KW_MULTIPOINT", "KW_MULTIPOLYGON", "KW_POINT", "KW_POLYGON", "KW_CATALOG_NAME", + "KW_CHARSET", "KW_COLLATION", "KW_ENGINE_ATTRIBUTE", "KW_FORMAT", "KW_GET_FORMAT", + "KW_INTERSECT", "KW_RANDOM", "KW_REVERSE", "KW_ROW_COUNT", "KW_SCHEMA_NAME", + "KW_SECONDARY_ENGINE_ATTRIBUTE", "KW_SRID", "KW_SYSTEM", "KW_SYSTEM_USER", + "KW_THREAD_PRIORITY", "KW_TP_CONNECTION_ADMIN", "KW_TYPE", "KW_WEIGHT_STRING", + "VAR_ASSIGN", "PLUS_ASSIGN", "MINUS_ASSIGN", "MULT_ASSIGN", "DIV_ASSIGN", + "MOD_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "STAR", "DIVIDE", + "MODULE", "PLUS", "MINUS", "DIV", "MOD", "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LR_BRACKET", "RR_BRACKET", "COMMA", "SEMI", "AT_SIGN", + "ZERO_DECIMAL", "ONE_DECIMAL", "TWO_DECIMAL", "THREE_DECIMAL", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", "COLON_SYMB", "CHARSET_REVERSE_QOUTE_STRING", + "FILESIZE_LITERAL", "START_NATIONAL_STRING_LITERAL", "STRING_LITERAL", + "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "REAL_LITERAL", "NULL_SPEC_LITERAL", + "BIT_STRING", "STRING_CHARSET_NAME", "DOT_ID", "ID", "REVERSE_QUOTE_ID", + "HOST_IP_ADDRESS", "LOCAL_ID", "GLOBAL_ID", "PERSIST_ID", "ERROR_RECONGNIGION", + ]; + public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(MySqlParser._LITERAL_NAMES, MySqlParser._SYMBOLIC_NAMES, []); + + // @Override + // @NotNull + public get vocabulary(): Vocabulary { + return MySqlParser.VOCABULARY; + } + // tslint:enable:no-trailing-whitespace + + // @Override + public get grammarFileName(): string { return "MySqlParser.g4"; } + + // @Override + public get ruleNames(): string[] { return MySqlParser.ruleNames; } + + // @Override + public get serializedATN(): string { return MySqlParser._serializedATN; } + + protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException { + return new FailedPredicateException(this, predicate, message); + } + + constructor(input: TokenStream) { + super(input); + this._interp = new ParserATNSimulator(MySqlParser._ATN, this); + } + // @RuleVersion(0) + public program(): ProgramContext { + let _localctx: ProgramContext = new ProgramContext(this._ctx, this.state); + this.enterRule(_localctx, 0, MySqlParser.RULE_program); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 841; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ALTER) | (1 << MySqlParser.KW_ANALYZE) | (1 << MySqlParser.KW_CALL) | (1 << MySqlParser.KW_CHANGE) | (1 << MySqlParser.KW_CHECK))) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & ((1 << (MySqlParser.KW_CREATE - 34)) | (1 << (MySqlParser.KW_DELETE - 34)) | (1 << (MySqlParser.KW_DESC - 34)) | (1 << (MySqlParser.KW_DESCRIBE - 34)) | (1 << (MySqlParser.KW_DROP - 34)) | (1 << (MySqlParser.KW_EXPLAIN - 34)))) !== 0) || ((((_la - 72)) & ~0x1F) === 0 && ((1 << (_la - 72)) & ((1 << (MySqlParser.KW_GET - 72)) | (1 << (MySqlParser.KW_GRANT - 72)) | (1 << (MySqlParser.KW_INSERT - 72)) | (1 << (MySqlParser.KW_KILL - 72)) | (1 << (MySqlParser.KW_LOAD - 72)))) !== 0) || ((((_la - 104)) & ~0x1F) === 0 && ((1 << (_la - 104)) & ((1 << (MySqlParser.KW_LOCK - 104)) | (1 << (MySqlParser.KW_OPTIMIZE - 104)) | (1 << (MySqlParser.KW_PURGE - 104)))) !== 0) || ((((_la - 140)) & ~0x1F) === 0 && ((1 << (_la - 140)) & ((1 << (MySqlParser.KW_RELEASE - 140)) | (1 << (MySqlParser.KW_RENAME - 140)) | (1 << (MySqlParser.KW_REPLACE - 140)) | (1 << (MySqlParser.KW_RESIGNAL - 140)) | (1 << (MySqlParser.KW_REVOKE - 140)) | (1 << (MySqlParser.KW_SELECT - 140)) | (1 << (MySqlParser.KW_SET - 140)) | (1 << (MySqlParser.KW_SHOW - 140)) | (1 << (MySqlParser.KW_SIGNAL - 140)))) !== 0) || ((((_la - 173)) & ~0x1F) === 0 && ((1 << (_la - 173)) & ((1 << (MySqlParser.KW_TABLE - 173)) | (1 << (MySqlParser.KW_UNLOCK - 173)) | (1 << (MySqlParser.KW_UPDATE - 173)) | (1 << (MySqlParser.KW_USE - 173)) | (1 << (MySqlParser.KW_VALUES - 173)) | (1 << (MySqlParser.KW_WITH - 173)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)))) !== 0) || _la === MySqlParser.KW_DEALLOCATE || _la === MySqlParser.KW_DO || ((((_la - 404)) & ~0x1F) === 0 && ((1 << (_la - 404)) & ((1 << (MySqlParser.KW_FLUSH - 404)) | (1 << (MySqlParser.KW_HANDLER - 404)) | (1 << (MySqlParser.KW_HELP - 404)) | (1 << (MySqlParser.KW_IMPORT - 404)) | (1 << (MySqlParser.KW_INSTALL - 404)))) !== 0) || _la === MySqlParser.KW_PREPARE || _la === MySqlParser.KW_REPAIR || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESTART - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)))) !== 0) || ((((_la - 640)) & ~0x1F) === 0 && ((1 << (_la - 640)) & ((1 << (MySqlParser.KW_START - 640)) | (1 << (MySqlParser.KW_STOP - 640)) | (1 << (MySqlParser.KW_TRUNCATE - 640)))) !== 0) || _la === MySqlParser.KW_UNINSTALL || _la === MySqlParser.KW_XA || _la === MySqlParser.KW_CLONE || _la === MySqlParser.KW_EXECUTE || _la === MySqlParser.KW_SHUTDOWN || _la === MySqlParser.LR_BRACKET || _la === MySqlParser.SEMI) { + { + this.state = 840; + this.sqlStatements(); + } + } + + this.state = 843; + this.match(MySqlParser.EOF); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public sqlStatements(): SqlStatementsContext { + let _localctx: SqlStatementsContext = new SqlStatementsContext(this._ctx, this.state); + this.enterRule(_localctx, 2, MySqlParser.RULE_sqlStatements); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 849; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + this.state = 847; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DO: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + { + this.state = 845; + this.sqlStatement(); + } + break; + case MySqlParser.SEMI: + { + this.state = 846; + this.emptyStatement_(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + this.state = 851; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 2, this._ctx); + } + this.state = 857; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DO: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + { + this.state = 852; + this.sqlStatement(); + this.state = 854; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.SEMI) { + { + this.state = 853; + this.match(MySqlParser.SEMI); + } + } + + } + break; + case MySqlParser.SEMI: + { + this.state = 856; + this.emptyStatement_(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public sqlStatement(): SqlStatementContext { + let _localctx: SqlStatementContext = new SqlStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 4, MySqlParser.RULE_sqlStatement); + try { + this.state = 866; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 5, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 859; + this.ddlStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 860; + this.dmlStatement(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 861; + this.transactionStatement(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 862; + this.replicationStatement(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 863; + this.preparedStatement(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 864; + this.administrationStatement(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 865; + this.utilityStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public emptyStatement_(): EmptyStatement_Context { + let _localctx: EmptyStatement_Context = new EmptyStatement_Context(this._ctx, this.state); + this.enterRule(_localctx, 6, MySqlParser.RULE_emptyStatement_); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 868; + this.match(MySqlParser.SEMI); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ddlStatement(): DdlStatementContext { + let _localctx: DdlStatementContext = new DdlStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 8, MySqlParser.RULE_ddlStatement); + try { + this.state = 909; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 6, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 870; + this.createDatabase(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 871; + this.createEvent(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 872; + this.createIndex(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 873; + this.createLogfileGroup(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 874; + this.createProcedure(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 875; + this.createFunction(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 876; + this.createServer(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 877; + this.createTable(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 878; + this.createTablespaceInnodb(); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 879; + this.createTablespaceNdb(); + } + break; + + case 11: + this.enterOuterAlt(_localctx, 11); + { + this.state = 880; + this.createTrigger(); + } + break; + + case 12: + this.enterOuterAlt(_localctx, 12); + { + this.state = 881; + this.createView(); + } + break; + + case 13: + this.enterOuterAlt(_localctx, 13); + { + this.state = 882; + this.createRole(); + } + break; + + case 14: + this.enterOuterAlt(_localctx, 14); + { + this.state = 883; + this.alterDatabase(); + } + break; + + case 15: + this.enterOuterAlt(_localctx, 15); + { + this.state = 884; + this.alterEvent(); + } + break; + + case 16: + this.enterOuterAlt(_localctx, 16); + { + this.state = 885; + this.alterFunction(); + } + break; + + case 17: + this.enterOuterAlt(_localctx, 17); + { + this.state = 886; + this.alterInstance(); + } + break; + + case 18: + this.enterOuterAlt(_localctx, 18); + { + this.state = 887; + this.alterLogfileGroup(); + } + break; + + case 19: + this.enterOuterAlt(_localctx, 19); + { + this.state = 888; + this.alterProcedure(); + } + break; + + case 20: + this.enterOuterAlt(_localctx, 20); + { + this.state = 889; + this.alterServer(); + } + break; + + case 21: + this.enterOuterAlt(_localctx, 21); + { + this.state = 890; + this.alterTable(); + } + break; + + case 22: + this.enterOuterAlt(_localctx, 22); + { + this.state = 891; + this.alterTablespace(); + } + break; + + case 23: + this.enterOuterAlt(_localctx, 23); + { + this.state = 892; + this.alterView(); + } + break; + + case 24: + this.enterOuterAlt(_localctx, 24); + { + this.state = 893; + this.dropDatabase(); + } + break; + + case 25: + this.enterOuterAlt(_localctx, 25); + { + this.state = 894; + this.dropEvent(); + } + break; + + case 26: + this.enterOuterAlt(_localctx, 26); + { + this.state = 895; + this.dropIndex(); + } + break; + + case 27: + this.enterOuterAlt(_localctx, 27); + { + this.state = 896; + this.dropLogfileGroup(); + } + break; + + case 28: + this.enterOuterAlt(_localctx, 28); + { + this.state = 897; + this.dropProcedure(); + } + break; + + case 29: + this.enterOuterAlt(_localctx, 29); + { + this.state = 898; + this.dropFunction(); + } + break; + + case 30: + this.enterOuterAlt(_localctx, 30); + { + this.state = 899; + this.dropServer(); + } + break; + + case 31: + this.enterOuterAlt(_localctx, 31); + { + this.state = 900; + this.dropSpatial(); + } + break; + + case 32: + this.enterOuterAlt(_localctx, 32); + { + this.state = 901; + this.dropTable(); + } + break; + + case 33: + this.enterOuterAlt(_localctx, 33); + { + this.state = 902; + this.dropTablespace(); + } + break; + + case 34: + this.enterOuterAlt(_localctx, 34); + { + this.state = 903; + this.dropTrigger(); + } + break; + + case 35: + this.enterOuterAlt(_localctx, 35); + { + this.state = 904; + this.dropView(); + } + break; + + case 36: + this.enterOuterAlt(_localctx, 36); + { + this.state = 905; + this.dropRole(); + } + break; + + case 37: + this.enterOuterAlt(_localctx, 37); + { + this.state = 906; + this.setRole(); + } + break; + + case 38: + this.enterOuterAlt(_localctx, 38); + { + this.state = 907; + this.renameTable(); + } + break; + + case 39: + this.enterOuterAlt(_localctx, 39); + { + this.state = 908; + this.truncateTable(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dmlStatement(): DmlStatementContext { + let _localctx: DmlStatementContext = new DmlStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 10, MySqlParser.RULE_dmlStatement); + try { + this.state = 928; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 7, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 911; + this.selectStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 912; + this.setOperations(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 913; + this.insertStatement(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 914; + this.updateStatement(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 915; + this.deleteStatement(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 916; + this.replaceStatement(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 917; + this.callStatement(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 918; + this.interSectStatement(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 919; + this.loadDataStatement(); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 920; + this.loadXmlStatement(); + } + break; + + case 11: + this.enterOuterAlt(_localctx, 11); + { + this.state = 921; + this.parenthesizedQuery(); + } + break; + + case 12: + this.enterOuterAlt(_localctx, 12); + { + this.state = 922; + this.doStatement(); + } + break; + + case 13: + this.enterOuterAlt(_localctx, 13); + { + this.state = 923; + this.handlerStatement(); + } + break; + + case 14: + this.enterOuterAlt(_localctx, 14); + { + this.state = 924; + this.importTableStatement(); + } + break; + + case 15: + this.enterOuterAlt(_localctx, 15); + { + this.state = 925; + this.valuesStatement(); + } + break; + + case 16: + this.enterOuterAlt(_localctx, 16); + { + this.state = 926; + this.withStatement(); + } + break; + + case 17: + this.enterOuterAlt(_localctx, 17); + { + this.state = 927; + this.tableStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public transactionStatement(): TransactionStatementContext { + let _localctx: TransactionStatementContext = new TransactionStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 12, MySqlParser.RULE_transactionStatement); + try { + this.state = 939; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 8, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 930; + this.startTransaction(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 931; + this.beginWork(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 932; + this.commitWork(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 933; + this.rollbackWork(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 934; + this.savepointStatement(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 935; + this.rollbackStatement(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 936; + this.releaseStatement(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 937; + this.lockTables(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 938; + this.unlockTables(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public replicationStatement(): ReplicationStatementContext { + let _localctx: ReplicationStatementContext = new ReplicationStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 14, MySqlParser.RULE_replicationStatement); + try { + this.state = 955; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 9, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 941; + this.changeMaster(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 942; + this.changeReplicationFilter(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 943; + this.changeReplicationSource(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 944; + this.purgeBinaryLogs(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 945; + this.startSlaveOrReplica(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 946; + this.stopSlaveOrReplica(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 947; + this.startGroupReplication(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 948; + this.stopGroupReplication(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 949; + this.xaStartTransaction(); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 950; + this.xaEndTransaction(); + } + break; + + case 11: + this.enterOuterAlt(_localctx, 11); + { + this.state = 951; + this.xaPrepareStatement(); + } + break; + + case 12: + this.enterOuterAlt(_localctx, 12); + { + this.state = 952; + this.xaCommitWork(); + } + break; + + case 13: + this.enterOuterAlt(_localctx, 13); + { + this.state = 953; + this.xaRollbackWork(); + } + break; + + case 14: + this.enterOuterAlt(_localctx, 14); + { + this.state = 954; + this.xaRecoverWork(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public preparedStatement(): PreparedStatementContext { + let _localctx: PreparedStatementContext = new PreparedStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 16, MySqlParser.RULE_preparedStatement); + try { + this.state = 960; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_PREPARE: + this.enterOuterAlt(_localctx, 1); + { + this.state = 957; + this.prepareStatement(); + } + break; + case MySqlParser.KW_EXECUTE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 958; + this.executeStatement(); + } + break; + case MySqlParser.KW_DROP: + case MySqlParser.KW_DEALLOCATE: + this.enterOuterAlt(_localctx, 3); + { + this.state = 959; + this.deallocatePrepare(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public compoundStatement(): CompoundStatementContext { + let _localctx: CompoundStatementContext = new CompoundStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 18, MySqlParser.RULE_compoundStatement); + try { + this.state = 972; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 11, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 962; + this.blockStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 963; + this.caseStatement(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 964; + this.ifStatement(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 965; + this.leaveStatement(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 966; + this.loopStatement(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 967; + this.repeatStatement(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 968; + this.whileStatement(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 969; + this.iterateStatement(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 970; + this.returnStatement(); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 971; + this.cursorStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public administrationStatement(): AdministrationStatementContext { + let _localctx: AdministrationStatementContext = new AdministrationStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 20, MySqlParser.RULE_administrationStatement); + try { + this.state = 1007; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 12, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 974; + this.alterUser(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 975; + this.createUser(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 976; + this.dropUser(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 977; + this.grantStatement(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 978; + this.grantProxy(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 979; + this.renameUser(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 980; + this.revokeStatement(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 981; + this.alterResourceGroup(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 982; + this.createResourceGroup(); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 983; + this.dropResourceGroup(); + } + break; + + case 11: + this.enterOuterAlt(_localctx, 11); + { + this.state = 984; + this.setResourceGroup(); + } + break; + + case 12: + this.enterOuterAlt(_localctx, 12); + { + this.state = 985; + this.analyzeTable(); + } + break; + + case 13: + this.enterOuterAlt(_localctx, 13); + { + this.state = 986; + this.checkTable(); + } + break; + + case 14: + this.enterOuterAlt(_localctx, 14); + { + this.state = 987; + this.checksumTable(); + } + break; + + case 15: + this.enterOuterAlt(_localctx, 15); + { + this.state = 988; + this.optimizeTable(); + } + break; + + case 16: + this.enterOuterAlt(_localctx, 16); + { + this.state = 989; + this.repairTable(); + } + break; + + case 17: + this.enterOuterAlt(_localctx, 17); + { + this.state = 990; + this.installComponent(); + } + break; + + case 18: + this.enterOuterAlt(_localctx, 18); + { + this.state = 991; + this.uninstallComponent(); + } + break; + + case 19: + this.enterOuterAlt(_localctx, 19); + { + this.state = 992; + this.installPlugin(); + } + break; + + case 20: + this.enterOuterAlt(_localctx, 20); + { + this.state = 993; + this.uninstallPlugin(); + } + break; + + case 21: + this.enterOuterAlt(_localctx, 21); + { + this.state = 994; + this.cloneStatement(); + } + break; + + case 22: + this.enterOuterAlt(_localctx, 22); + { + this.state = 995; + this.setStatement(); + } + break; + + case 23: + this.enterOuterAlt(_localctx, 23); + { + this.state = 996; + this.showStatement(); + } + break; + + case 24: + this.enterOuterAlt(_localctx, 24); + { + this.state = 997; + this.binlogStatement(); + } + break; + + case 25: + this.enterOuterAlt(_localctx, 25); + { + this.state = 998; + this.cacheIndexStatement(); + } + break; + + case 26: + this.enterOuterAlt(_localctx, 26); + { + this.state = 999; + this.flushStatement(); + } + break; + + case 27: + this.enterOuterAlt(_localctx, 27); + { + this.state = 1000; + this.killStatement(); + } + break; + + case 28: + this.enterOuterAlt(_localctx, 28); + { + this.state = 1001; + this.loadIndexIntoCache(); + } + break; + + case 29: + this.enterOuterAlt(_localctx, 29); + { + this.state = 1002; + this.resetStatement(); + } + break; + + case 30: + this.enterOuterAlt(_localctx, 30); + { + this.state = 1003; + this.resetPersist(); + } + break; + + case 31: + this.enterOuterAlt(_localctx, 31); + { + this.state = 1004; + this.resetAllChannel(); + } + break; + + case 32: + this.enterOuterAlt(_localctx, 32); + { + this.state = 1005; + this.reStartStatement(); + } + break; + + case 33: + this.enterOuterAlt(_localctx, 33); + { + this.state = 1006; + this.shutdownStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public utilityStatement(): UtilityStatementContext { + let _localctx: UtilityStatementContext = new UtilityStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 22, MySqlParser.RULE_utilityStatement); + try { + this.state = 1017; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 13, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1009; + this.simpleDescribeStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1010; + this.fullDescribeStatement(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1011; + this.analyzeDescribeStatement(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1012; + this.helpStatement(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1013; + this.useStatement(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 1014; + this.signalStatement(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 1015; + this.resignalStatement(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 1016; + this.diagnosticsStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createDatabase(): CreateDatabaseContext { + let _localctx: CreateDatabaseContext = new CreateDatabaseContext(this._ctx, this.state); + this.enterRule(_localctx, 24, MySqlParser.RULE_createDatabase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1019; + this.match(MySqlParser.KW_CREATE); + this.state = 1020; + _localctx._dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_SCHEMA)) { + _localctx._dbFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1022; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 14, this._ctx) ) { + case 1: + { + this.state = 1021; + this.ifNotExists(); + } + break; + } + this.state = 1024; + this.databaseNameCreate(); + this.state = 1028; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (((((_la - 26)) & ~0x1F) === 0 && ((1 << (_la - 26)) & ((1 << (MySqlParser.KW_CHARACTER - 26)) | (1 << (MySqlParser.KW_COLLATE - 26)) | (1 << (MySqlParser.KW_DEFAULT - 26)))) !== 0) || _la === MySqlParser.KW_READ || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_ENCRYPTION || _la === MySqlParser.KW_CHARSET) { + { + { + this.state = 1025; + this.createDatabaseOption(); + } + } + this.state = 1030; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createEvent(): CreateEventContext { + let _localctx: CreateEventContext = new CreateEventContext(this._ctx, this.state); + this.enterRule(_localctx, 26, MySqlParser.RULE_createEvent); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1031; + this.match(MySqlParser.KW_CREATE); + this.state = 1033; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 1032; + this.ownerStatement(); + } + } + + this.state = 1035; + this.match(MySqlParser.KW_EVENT); + this.state = 1037; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 17, this._ctx) ) { + case 1: + { + this.state = 1036; + this.ifNotExists(); + } + break; + } + this.state = 1039; + _localctx._event_name = this.fullId(); + this.state = 1040; + this.match(MySqlParser.KW_ON); + this.state = 1041; + this.match(MySqlParser.KW_SCHEDULE); + this.state = 1042; + this.scheduleExpression(); + this.state = 1049; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ON) { + { + this.state = 1043; + this.match(MySqlParser.KW_ON); + this.state = 1044; + this.match(MySqlParser.KW_COMPLETION); + this.state = 1046; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 1045; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 1048; + this.match(MySqlParser.KW_PRESERVE); + } + } + + this.state = 1052; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE) { + { + this.state = 1051; + this.enableType(); + } + } + + this.state = 1056; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COMMENT) { + { + this.state = 1054; + this.match(MySqlParser.KW_COMMENT); + this.state = 1055; + this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 1058; + this.match(MySqlParser.KW_DO); + this.state = 1059; + this.routineBody(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createIndex(): CreateIndexContext { + let _localctx: CreateIndexContext = new CreateIndexContext(this._ctx, this.state); + this.enterRule(_localctx, 28, MySqlParser.RULE_createIndex); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 1061; + this.match(MySqlParser.KW_CREATE); + this.state = 1063; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OFFLINE || _la === MySqlParser.KW_ONLINE) { + { + this.state = 1062; + _localctx._intimeAction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_OFFLINE || _la === MySqlParser.KW_ONLINE)) { + _localctx._intimeAction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1066; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FULLTEXT || _la === MySqlParser.KW_SPATIAL || _la === MySqlParser.KW_UNIQUE) { + { + this.state = 1065; + _localctx._indexCategory = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FULLTEXT || _la === MySqlParser.KW_SPATIAL || _la === MySqlParser.KW_UNIQUE)) { + _localctx._indexCategory = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1068; + this.match(MySqlParser.KW_INDEX); + this.state = 1069; + this.indexNameCreate(); + this.state = 1071; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 1070; + this.indexType(); + } + } + + this.state = 1073; + this.match(MySqlParser.KW_ON); + this.state = 1074; + this.tableName(); + this.state = 1075; + this.indexColumnNames(); + this.state = 1079; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 25, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1076; + this.indexOption(); + } + } + } + this.state = 1081; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 25, this._ctx); + } + this.state = 1094; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + this.state = 1092; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALGORITHM: + { + this.state = 1082; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 1084; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1083; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1086; + _localctx._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_COPY || _la === MySqlParser.KW_INPLACE)) { + _localctx._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_LOCK: + { + this.state = 1087; + this.match(MySqlParser.KW_LOCK); + this.state = 1089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1088; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1091; + _localctx._lockType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_EXCLUSIVE || _la === MySqlParser.KW_NONE || _la === MySqlParser.KW_SHARED)) { + _localctx._lockType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + this.state = 1096; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createLogfileGroup(): CreateLogfileGroupContext { + let _localctx: CreateLogfileGroupContext = new CreateLogfileGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 30, MySqlParser.RULE_createLogfileGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1097; + this.match(MySqlParser.KW_CREATE); + this.state = 1098; + this.match(MySqlParser.KW_LOGFILE); + this.state = 1099; + this.match(MySqlParser.KW_GROUP); + this.state = 1100; + _localctx._logfileGroupName = this.uid(); + this.state = 1101; + this.match(MySqlParser.KW_ADD); + this.state = 1102; + this.match(MySqlParser.KW_UNDOFILE); + this.state = 1103; + _localctx._undoFile = this.match(MySqlParser.STRING_LITERAL); + this.state = 1109; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INITIAL_SIZE) { + { + this.state = 1104; + this.match(MySqlParser.KW_INITIAL_SIZE); + this.state = 1106; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1105; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1108; + _localctx._initSize = this.fileSizeLiteral(); + } + } + + this.state = 1116; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNDO_BUFFER_SIZE) { + { + this.state = 1111; + this.match(MySqlParser.KW_UNDO_BUFFER_SIZE); + this.state = 1113; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1112; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1115; + _localctx._undoSize = this.fileSizeLiteral(); + } + } + + this.state = 1123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_REDO_BUFFER_SIZE) { + { + this.state = 1118; + this.match(MySqlParser.KW_REDO_BUFFER_SIZE); + this.state = 1120; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1119; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1122; + _localctx._redoSize = this.fileSizeLiteral(); + } + } + + this.state = 1130; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NODEGROUP) { + { + this.state = 1125; + this.match(MySqlParser.KW_NODEGROUP); + this.state = 1127; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1126; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1129; + _localctx._nodegroup = this.uid(); + } + } + + this.state = 1133; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WAIT) { + { + this.state = 1132; + this.match(MySqlParser.KW_WAIT); + } + } + + this.state = 1140; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COMMENT) { + { + this.state = 1135; + this.match(MySqlParser.KW_COMMENT); + this.state = 1137; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1136; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1139; + _localctx._comment = this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 1142; + this.match(MySqlParser.KW_ENGINE); + this.state = 1144; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1143; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1146; + this.engineName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createProcedure(): CreateProcedureContext { + let _localctx: CreateProcedureContext = new CreateProcedureContext(this._ctx, this.state); + this.enterRule(_localctx, 32, MySqlParser.RULE_createProcedure); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 1148; + this.match(MySqlParser.KW_CREATE); + this.state = 1150; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 1149; + this.ownerStatement(); + } + } + + this.state = 1152; + this.match(MySqlParser.KW_PROCEDURE); + this.state = 1154; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 43, this._ctx) ) { + case 1: + { + this.state = 1153; + this.ifNotExists(); + } + break; + } + this.state = 1156; + _localctx._sp_name = this.fullId(); + this.state = 1157; + this.match(MySqlParser.LR_BRACKET); + this.state = 1159; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_IN - 74)) | (1 << (MySqlParser.KW_INOUT - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_OUT - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 1158; + this.procedureParameter(); + } + } + + this.state = 1165; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 1161; + this.match(MySqlParser.COMMA); + this.state = 1162; + this.procedureParameter(); + } + } + this.state = 1167; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1168; + this.match(MySqlParser.RR_BRACKET); + this.state = 1172; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 46, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1169; + this.routineOption(); + } + } + } + this.state = 1174; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 46, this._ctx); + } + this.state = 1175; + this.routineBody(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createRole(): CreateRoleContext { + let _localctx: CreateRoleContext = new CreateRoleContext(this._ctx, this.state); + this.enterRule(_localctx, 34, MySqlParser.RULE_createRole); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1177; + this.match(MySqlParser.KW_CREATE); + this.state = 1178; + this.match(MySqlParser.KW_ROLE); + this.state = 1180; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 47, this._ctx) ) { + case 1: + { + this.state = 1179; + this.ifNotExists(); + } + break; + } + this.state = 1182; + this.userOrRoleNames(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createServer(): CreateServerContext { + let _localctx: CreateServerContext = new CreateServerContext(this._ctx, this.state); + this.enterRule(_localctx, 36, MySqlParser.RULE_createServer); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1184; + this.match(MySqlParser.KW_CREATE); + this.state = 1185; + this.match(MySqlParser.KW_SERVER); + this.state = 1186; + _localctx._servername = this.uid(); + this.state = 1187; + this.match(MySqlParser.KW_FOREIGN); + this.state = 1188; + this.match(MySqlParser.KW_DATA); + this.state = 1189; + this.match(MySqlParser.KW_WRAPPER); + this.state = 1190; + _localctx._wrapperName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MYSQL || _la === MySqlParser.STRING_LITERAL)) { + _localctx._wrapperName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1191; + this.match(MySqlParser.KW_OPTIONS); + this.state = 1192; + this.match(MySqlParser.LR_BRACKET); + this.state = 1193; + this.serverOption(); + this.state = 1198; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 1194; + this.match(MySqlParser.COMMA); + this.state = 1195; + this.serverOption(); + } + } + this.state = 1200; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1201; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createTable(): CreateTableContext { + let _localctx: CreateTableContext = new CreateTableContext(this._ctx, this.state); + this.enterRule(_localctx, 38, MySqlParser.RULE_createTable); + let _la: number; + try { + let _alt: number; + this.state = 1281; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 67, this._ctx) ) { + case 1: + _localctx = new CopyCreateTableContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 1203; + this.match(MySqlParser.KW_CREATE); + this.state = 1205; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_TEMPORARY) { + { + this.state = 1204; + this.match(MySqlParser.KW_TEMPORARY); + } + } + + this.state = 1207; + this.match(MySqlParser.KW_TABLE); + this.state = 1209; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 50, this._ctx) ) { + case 1: + { + this.state = 1208; + this.ifNotExists(); + } + break; + } + this.state = 1211; + this.tableNameCreate(); + this.state = 1212; + this.createDefinitions(); + this.state = 1223; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 53, this._ctx) ) { + case 1: + { + this.state = 1213; + this.tableOption(); + this.state = 1220; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 52, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1215; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 1214; + this.match(MySqlParser.COMMA); + } + } + + this.state = 1217; + this.tableOption(); + } + } + } + this.state = 1222; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 52, this._ctx); + } + } + break; + } + this.state = 1226; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 1225; + this.partitionDefinitions(); + } + } + + } + break; + + case 2: + _localctx = new ColumnCreateTableContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 1228; + this.match(MySqlParser.KW_CREATE); + this.state = 1230; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_TEMPORARY) { + { + this.state = 1229; + this.match(MySqlParser.KW_TEMPORARY); + } + } + + this.state = 1232; + this.match(MySqlParser.KW_TABLE); + this.state = 1234; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 56, this._ctx) ) { + case 1: + { + this.state = 1233; + this.ifNotExists(); + } + break; + } + this.state = 1236; + this.tableNameCreate(); + this.state = 1238; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 57, this._ctx) ) { + case 1: + { + this.state = 1237; + this.createDefinitions(); + } + break; + } + this.state = 1250; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (((((_la - 26)) & ~0x1F) === 0 && ((1 << (_la - 26)) & ((1 << (MySqlParser.KW_CHARACTER - 26)) | (1 << (MySqlParser.KW_COLLATE - 26)) | (1 << (MySqlParser.KW_DEFAULT - 26)))) !== 0) || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_UNION || _la === MySqlParser.KW_CHAR || ((((_la - 314)) & ~0x1F) === 0 && ((1 << (_la - 314)) & ((1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 314)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 314)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 314)) | (1 << (MySqlParser.KW_CHECKSUM - 314)) | (1 << (MySqlParser.KW_COMMENT - 314)))) !== 0) || ((((_la - 346)) & ~0x1F) === 0 && ((1 << (_la - 346)) & ((1 << (MySqlParser.KW_COMPRESSION - 346)) | (1 << (MySqlParser.KW_CONNECTION - 346)) | (1 << (MySqlParser.KW_DATA - 346)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 346)) | (1 << (MySqlParser.KW_ENCRYPTION - 346)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ID - 346)))) !== 0) || _la === MySqlParser.KW_ENGINE || _la === MySqlParser.KW_INSERT_METHOD || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_MAX_ROWS || _la === MySqlParser.KW_MIN_ROWS || ((((_la - 520)) & ~0x1F) === 0 && ((1 << (_la - 520)) & ((1 << (MySqlParser.KW_PACK_KEYS - 520)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 520)) | (1 << (MySqlParser.KW_PAGE_COMPRESSED - 520)) | (1 << (MySqlParser.KW_PAGE_COMPRESSION_LEVEL - 520)) | (1 << (MySqlParser.KW_PASSWORD - 520)))) !== 0) || _la === MySqlParser.KW_ROW_FORMAT || ((((_la - 640)) & ~0x1F) === 0 && ((1 << (_la - 640)) & ((1 << (MySqlParser.KW_START - 640)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 640)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 640)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 640)) | (1 << (MySqlParser.KW_STORAGE - 640)) | (1 << (MySqlParser.KW_TABLESPACE - 640)) | (1 << (MySqlParser.KW_TABLE_TYPE - 640)) | (1 << (MySqlParser.KW_TRANSACTIONAL - 640)))) !== 0) || ((((_la - 823)) & ~0x1F) === 0 && ((1 << (_la - 823)) & ((1 << (MySqlParser.KW_CHARSET - 823)) | (1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 823)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 823)))) !== 0) || _la === MySqlParser.STRING_LITERAL) { + { + this.state = 1240; + this.tableOption(); + this.state = 1247; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (((((_la - 26)) & ~0x1F) === 0 && ((1 << (_la - 26)) & ((1 << (MySqlParser.KW_CHARACTER - 26)) | (1 << (MySqlParser.KW_COLLATE - 26)) | (1 << (MySqlParser.KW_DEFAULT - 26)))) !== 0) || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_UNION || _la === MySqlParser.KW_CHAR || ((((_la - 314)) & ~0x1F) === 0 && ((1 << (_la - 314)) & ((1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 314)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 314)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 314)) | (1 << (MySqlParser.KW_CHECKSUM - 314)) | (1 << (MySqlParser.KW_COMMENT - 314)))) !== 0) || ((((_la - 346)) & ~0x1F) === 0 && ((1 << (_la - 346)) & ((1 << (MySqlParser.KW_COMPRESSION - 346)) | (1 << (MySqlParser.KW_CONNECTION - 346)) | (1 << (MySqlParser.KW_DATA - 346)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 346)) | (1 << (MySqlParser.KW_ENCRYPTION - 346)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ID - 346)))) !== 0) || _la === MySqlParser.KW_ENGINE || _la === MySqlParser.KW_INSERT_METHOD || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_MAX_ROWS || _la === MySqlParser.KW_MIN_ROWS || ((((_la - 520)) & ~0x1F) === 0 && ((1 << (_la - 520)) & ((1 << (MySqlParser.KW_PACK_KEYS - 520)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 520)) | (1 << (MySqlParser.KW_PAGE_COMPRESSED - 520)) | (1 << (MySqlParser.KW_PAGE_COMPRESSION_LEVEL - 520)) | (1 << (MySqlParser.KW_PASSWORD - 520)))) !== 0) || _la === MySqlParser.KW_ROW_FORMAT || ((((_la - 640)) & ~0x1F) === 0 && ((1 << (_la - 640)) & ((1 << (MySqlParser.KW_START - 640)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 640)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 640)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 640)) | (1 << (MySqlParser.KW_STORAGE - 640)) | (1 << (MySqlParser.KW_TABLESPACE - 640)) | (1 << (MySqlParser.KW_TABLE_TYPE - 640)) | (1 << (MySqlParser.KW_TRANSACTIONAL - 640)))) !== 0) || ((((_la - 823)) & ~0x1F) === 0 && ((1 << (_la - 823)) & ((1 << (MySqlParser.KW_CHARSET - 823)) | (1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 823)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 823)))) !== 0) || _la === MySqlParser.COMMA || _la === MySqlParser.STRING_LITERAL) { + { + { + this.state = 1242; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 1241; + this.match(MySqlParser.COMMA); + } + } + + this.state = 1244; + this.tableOption(); + } + } + this.state = 1249; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 1253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 1252; + this.partitionDefinitions(); + } + } + + this.state = 1256; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE) { + { + this.state = 1255; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1259; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 1258; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 1261; + this.selectStatement(); + } + break; + + case 3: + _localctx = new QueryCreateTableContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 1263; + this.match(MySqlParser.KW_CREATE); + this.state = 1265; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_TEMPORARY) { + { + this.state = 1264; + this.match(MySqlParser.KW_TEMPORARY); + } + } + + this.state = 1267; + this.match(MySqlParser.KW_TABLE); + this.state = 1269; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 65, this._ctx) ) { + case 1: + { + this.state = 1268; + this.ifNotExists(); + } + break; + } + this.state = 1271; + this.tableNameCreate(); + this.state = 1279; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_LIKE: + { + this.state = 1272; + this.match(MySqlParser.KW_LIKE); + this.state = 1273; + this.tableName(); + } + break; + case MySqlParser.LR_BRACKET: + { + this.state = 1274; + this.match(MySqlParser.LR_BRACKET); + this.state = 1275; + this.match(MySqlParser.KW_LIKE); + this.state = 1276; + this.tableName(); + this.state = 1277; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createTablespaceInnodb(): CreateTablespaceInnodbContext { + let _localctx: CreateTablespaceInnodbContext = new CreateTablespaceInnodbContext(this._ctx, this.state); + this.enterRule(_localctx, 40, MySqlParser.RULE_createTablespaceInnodb); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1283; + this.match(MySqlParser.KW_CREATE); + this.state = 1285; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNDO) { + { + this.state = 1284; + this.match(MySqlParser.KW_UNDO); + } + } + + this.state = 1287; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 1288; + this.tablespaceNameCreate(); + this.state = 1292; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ADD) { + { + this.state = 1289; + this.match(MySqlParser.KW_ADD); + this.state = 1290; + this.match(MySqlParser.KW_DATAFILE); + this.state = 1291; + _localctx._datafile = this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 1299; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AUTOEXTEND_SIZE) { + { + this.state = 1294; + this.match(MySqlParser.KW_AUTOEXTEND_SIZE); + this.state = 1296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1295; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1298; + _localctx._autoextendSize = this.fileSizeLiteral(); + } + } + + this.state = 1304; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FILE_BLOCK_SIZE) { + { + this.state = 1301; + this.match(MySqlParser.KW_FILE_BLOCK_SIZE); + this.state = 1302; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 1303; + _localctx._fileBlockSize = this.fileSizeLiteral(); + } + } + + this.state = 1311; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENGINE) { + { + this.state = 1306; + this.match(MySqlParser.KW_ENGINE); + this.state = 1308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1307; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1310; + this.engineName(); + } + } + + this.state = 1318; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENGINE_ATTRIBUTE) { + { + this.state = 1313; + this.match(MySqlParser.KW_ENGINE_ATTRIBUTE); + this.state = 1315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1314; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1317; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createTablespaceNdb(): CreateTablespaceNdbContext { + let _localctx: CreateTablespaceNdbContext = new CreateTablespaceNdbContext(this._ctx, this.state); + this.enterRule(_localctx, 42, MySqlParser.RULE_createTablespaceNdb); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1320; + this.match(MySqlParser.KW_CREATE); + this.state = 1322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNDO) { + { + this.state = 1321; + this.match(MySqlParser.KW_UNDO); + } + } + + this.state = 1324; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 1325; + this.tablespaceNameCreate(); + this.state = 1326; + this.match(MySqlParser.KW_ADD); + this.state = 1327; + this.match(MySqlParser.KW_DATAFILE); + this.state = 1328; + _localctx._datafile = this.match(MySqlParser.STRING_LITERAL); + this.state = 1329; + this.match(MySqlParser.KW_USE); + this.state = 1330; + this.match(MySqlParser.KW_LOGFILE); + this.state = 1331; + this.match(MySqlParser.KW_GROUP); + this.state = 1332; + _localctx._logfileGroupName = this.uid(); + this.state = 1338; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENT_SIZE) { + { + this.state = 1333; + this.match(MySqlParser.KW_EXTENT_SIZE); + this.state = 1335; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1334; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1337; + _localctx._extentSize = this.fileSizeLiteral(); + } + } + + this.state = 1345; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INITIAL_SIZE) { + { + this.state = 1340; + this.match(MySqlParser.KW_INITIAL_SIZE); + this.state = 1342; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1341; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1344; + _localctx._initialSize = this.fileSizeLiteral(); + } + } + + this.state = 1352; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AUTOEXTEND_SIZE) { + { + this.state = 1347; + this.match(MySqlParser.KW_AUTOEXTEND_SIZE); + this.state = 1349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1348; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1351; + _localctx._autoextendSize = this.fileSizeLiteral(); + } + } + + this.state = 1359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_MAX_SIZE) { + { + this.state = 1354; + this.match(MySqlParser.KW_MAX_SIZE); + this.state = 1356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1355; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1358; + _localctx._maxSize = this.fileSizeLiteral(); + } + } + + this.state = 1366; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NODEGROUP) { + { + this.state = 1361; + this.match(MySqlParser.KW_NODEGROUP); + this.state = 1363; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1362; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1365; + _localctx._nodegroup = this.uid(); + } + } + + this.state = 1369; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WAIT) { + { + this.state = 1368; + this.match(MySqlParser.KW_WAIT); + } + } + + this.state = 1376; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COMMENT) { + { + this.state = 1371; + this.match(MySqlParser.KW_COMMENT); + this.state = 1373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1372; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1375; + _localctx._comment = this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 1378; + this.match(MySqlParser.KW_ENGINE); + this.state = 1380; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1379; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1382; + this.engineName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createTrigger(): CreateTriggerContext { + let _localctx: CreateTriggerContext = new CreateTriggerContext(this._ctx, this.state); + this.enterRule(_localctx, 44, MySqlParser.RULE_createTrigger); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1384; + this.match(MySqlParser.KW_CREATE); + this.state = 1386; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 1385; + this.ownerStatement(); + } + } + + this.state = 1388; + this.match(MySqlParser.KW_TRIGGER); + this.state = 1390; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 93, this._ctx) ) { + case 1: + { + this.state = 1389; + this.ifNotExists(); + } + break; + } + this.state = 1392; + _localctx._trigger_name = this.fullId(); + this.state = 1393; + _localctx._triggerTime = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BEFORE || _la === MySqlParser.KW_AFTER)) { + _localctx._triggerTime = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1394; + _localctx._triggerEvent = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DELETE || _la === MySqlParser.KW_INSERT || _la === MySqlParser.KW_UPDATE)) { + _localctx._triggerEvent = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1395; + this.match(MySqlParser.KW_ON); + this.state = 1396; + this.tableName(); + this.state = 1397; + this.match(MySqlParser.KW_FOR); + this.state = 1398; + this.match(MySqlParser.KW_EACH); + this.state = 1399; + this.match(MySqlParser.KW_ROW); + this.state = 1402; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 94, this._ctx) ) { + case 1: + { + this.state = 1400; + _localctx._triggerPlace = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FOLLOWS || _la === MySqlParser.KW_PRECEDES)) { + _localctx._triggerPlace = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1401; + _localctx._other_trigger_name = this.fullId(); + } + break; + } + this.state = 1404; + this.routineBody(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public withClause(): WithClauseContext { + let _localctx: WithClauseContext = new WithClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 46, MySqlParser.RULE_withClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1406; + this.match(MySqlParser.KW_WITH); + this.state = 1408; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 95, this._ctx) ) { + case 1: + { + this.state = 1407; + this.match(MySqlParser.KW_RECURSIVE); + } + break; + } + this.state = 1410; + this.commonTableExpressions(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public commonTableExpressions(): CommonTableExpressionsContext { + let _localctx: CommonTableExpressionsContext = new CommonTableExpressionsContext(this._ctx, this.state); + this.enterRule(_localctx, 48, MySqlParser.RULE_commonTableExpressions); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1412; + _localctx._cteName = this.uid(); + this.state = 1424; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 1413; + this.match(MySqlParser.LR_BRACKET); + this.state = 1414; + _localctx._cteColumnName = this.uid(); + this.state = 1419; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 1415; + this.match(MySqlParser.COMMA); + this.state = 1416; + _localctx._cteColumnName = this.uid(); + } + } + this.state = 1421; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1422; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 1426; + this.match(MySqlParser.KW_AS); + this.state = 1427; + this.match(MySqlParser.LR_BRACKET); + this.state = 1428; + this.dmlStatement(); + this.state = 1429; + this.match(MySqlParser.RR_BRACKET); + this.state = 1432; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 98, this._ctx) ) { + case 1: + { + this.state = 1430; + this.match(MySqlParser.COMMA); + this.state = 1431; + this.commonTableExpressions(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createView(): CreateViewContext { + let _localctx: CreateViewContext = new CreateViewContext(this._ctx, this.state); + this.enterRule(_localctx, 50, MySqlParser.RULE_createView); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1434; + this.match(MySqlParser.KW_CREATE); + this.state = 1436; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OR) { + { + this.state = 1435; + this.orReplace(); + } + } + + this.state = 1441; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALGORITHM) { + { + this.state = 1438; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 1439; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 1440; + _localctx._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MERGE || _la === MySqlParser.KW_TEMPTABLE || _la === MySqlParser.KW_UNDEFINED)) { + _localctx._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1444; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 1443; + this.ownerStatement(); + } + } + + this.state = 1449; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SQL) { + { + this.state = 1446; + this.match(MySqlParser.KW_SQL); + this.state = 1447; + this.match(MySqlParser.KW_SECURITY); + this.state = 1448; + _localctx._secContext = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFINER || _la === MySqlParser.KW_INVOKER)) { + _localctx._secContext = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1451; + this.match(MySqlParser.KW_VIEW); + this.state = 1452; + this.viewNameCreate(); + this.state = 1457; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 1453; + this.match(MySqlParser.LR_BRACKET); + this.state = 1454; + this.columnNames(); + this.state = 1455; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 1459; + this.match(MySqlParser.KW_AS); + this.state = 1479; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 108, this._ctx) ) { + case 1: + { + this.state = 1460; + this.match(MySqlParser.LR_BRACKET); + this.state = 1462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WITH) { + { + this.state = 1461; + this.withClause(); + } + } + + this.state = 1464; + this.selectStatement(); + this.state = 1465; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 2: + { + this.state = 1468; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WITH) { + { + this.state = 1467; + this.withClause(); + } + } + + this.state = 1470; + this.selectStatement(); + this.state = 1477; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 107, this._ctx) ) { + case 1: + { + this.state = 1471; + this.match(MySqlParser.KW_WITH); + this.state = 1473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CASCADED || _la === MySqlParser.KW_LOCAL) { + { + this.state = 1472; + _localctx._checkOption = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CASCADED || _la === MySqlParser.KW_LOCAL)) { + _localctx._checkOption = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1475; + this.match(MySqlParser.KW_CHECK); + this.state = 1476; + this.match(MySqlParser.KW_OPTION); + } + break; + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createDatabaseOption(): CreateDatabaseOptionContext { + let _localctx: CreateDatabaseOptionContext = new CreateDatabaseOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 52, MySqlParser.RULE_createDatabaseOption); + let _la: number; + try { + this.state = 1514; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 117, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1482; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 1481; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 1484; + this.charSet(); + this.state = 1486; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1485; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1490; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BINARY: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + { + this.state = 1488; + this.charsetName(); + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 1489; + this.match(MySqlParser.KW_DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1493; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 1492; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 1495; + this.match(MySqlParser.KW_COLLATE); + this.state = 1497; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1496; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1499; + this.collationName(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1501; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 1500; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 1503; + this.match(MySqlParser.KW_ENCRYPTION); + this.state = 1505; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1504; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1507; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1508; + this.match(MySqlParser.KW_READ); + this.state = 1509; + this.match(MySqlParser.KW_ONLY); + this.state = 1511; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1510; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1513; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public charSet(): CharSetContext { + let _localctx: CharSetContext = new CharSetContext(this._ctx, this.state); + this.enterRule(_localctx, 54, MySqlParser.RULE_charSet); + try { + this.state = 1521; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CHARACTER: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1516; + this.match(MySqlParser.KW_CHARACTER); + this.state = 1517; + this.match(MySqlParser.KW_SET); + } + break; + case MySqlParser.KW_CHARSET: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1518; + this.match(MySqlParser.KW_CHARSET); + } + break; + case MySqlParser.KW_CHAR: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1519; + this.match(MySqlParser.KW_CHAR); + this.state = 1520; + this.match(MySqlParser.KW_SET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public currentUserExpression(): CurrentUserExpressionContext { + let _localctx: CurrentUserExpressionContext = new CurrentUserExpressionContext(this._ctx, this.state); + this.enterRule(_localctx, 56, MySqlParser.RULE_currentUserExpression); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1523; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CURRENT_USER || _la === MySqlParser.KW_USER)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1526; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 119, this._ctx) ) { + case 1: + { + this.state = 1524; + this.match(MySqlParser.LR_BRACKET); + this.state = 1525; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ownerStatement(): OwnerStatementContext { + let _localctx: OwnerStatementContext = new OwnerStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 58, MySqlParser.RULE_ownerStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1528; + this.match(MySqlParser.KW_DEFINER); + this.state = 1529; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 1532; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 120, this._ctx) ) { + case 1: + { + this.state = 1530; + this.userName(); + } + break; + + case 2: + { + this.state = 1531; + this.currentUserExpression(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public scheduleExpression(): ScheduleExpressionContext { + let _localctx: ScheduleExpressionContext = new ScheduleExpressionContext(this._ctx, this.state); + this.enterRule(_localctx, 60, MySqlParser.RULE_scheduleExpression); + let _la: number; + try { + this.state = 1568; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_AT: + _localctx = new PreciseScheduleContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 1534; + this.match(MySqlParser.KW_AT); + this.state = 1535; + this.timestampValue(); + this.state = 1539; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.PLUS) { + { + { + this.state = 1536; + this.intervalExpr(); + } + } + this.state = 1541; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + case MySqlParser.KW_EVERY: + _localctx = new IntervalScheduleContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 1542; + this.match(MySqlParser.KW_EVERY); + this.state = 1545; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 122, this._ctx) ) { + case 1: + { + this.state = 1543; + this.decimalLiteral(); + } + break; + + case 2: + { + this.state = 1544; + this.expression(0); + } + break; + } + this.state = 1547; + this.intervalType(); + this.state = 1556; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_STARTS) { + { + this.state = 1548; + this.match(MySqlParser.KW_STARTS); + this.state = 1549; + (_localctx as IntervalScheduleContext)._startTimestamp = this.timestampValue(); + this.state = 1553; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.PLUS) { + { + { + this.state = 1550; + (_localctx as IntervalScheduleContext)._intervalExpr = this.intervalExpr(); + (_localctx as IntervalScheduleContext)._startIntervals.push((_localctx as IntervalScheduleContext)._intervalExpr); + } + } + this.state = 1555; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 1566; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENDS) { + { + this.state = 1558; + this.match(MySqlParser.KW_ENDS); + this.state = 1559; + (_localctx as IntervalScheduleContext)._endTimestamp = this.timestampValue(); + this.state = 1563; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.PLUS) { + { + { + this.state = 1560; + (_localctx as IntervalScheduleContext)._intervalExpr = this.intervalExpr(); + (_localctx as IntervalScheduleContext)._endIntervals.push((_localctx as IntervalScheduleContext)._intervalExpr); + } + } + this.state = 1565; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public timestampValue(): TimestampValueContext { + let _localctx: TimestampValueContext = new TimestampValueContext(this._ctx, this.state); + this.enterRule(_localctx, 62, MySqlParser.RULE_timestampValue); + try { + this.state = 1574; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 128, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1570; + this.match(MySqlParser.KW_CURRENT_TIMESTAMP); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1571; + this.stringLiteral(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1572; + this.decimalLiteral(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1573; + this.expression(0); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public intervalExpr(): IntervalExprContext { + let _localctx: IntervalExprContext = new IntervalExprContext(this._ctx, this.state); + this.enterRule(_localctx, 64, MySqlParser.RULE_intervalExpr); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1576; + this.match(MySqlParser.PLUS); + this.state = 1577; + this.match(MySqlParser.KW_INTERVAL); + this.state = 1580; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 129, this._ctx) ) { + case 1: + { + this.state = 1578; + this.decimalLiteral(); + } + break; + + case 2: + { + this.state = 1579; + this.expression(0); + } + break; + } + this.state = 1582; + this.intervalType(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public intervalType(): IntervalTypeContext { + let _localctx: IntervalTypeContext = new IntervalTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 66, MySqlParser.RULE_intervalType); + try { + this.state = 1597; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1584; + this.intervalTypeBase(); + } + break; + case MySqlParser.KW_YEAR: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1585; + this.match(MySqlParser.KW_YEAR); + } + break; + case MySqlParser.KW_YEAR_MONTH: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1586; + this.match(MySqlParser.KW_YEAR_MONTH); + } + break; + case MySqlParser.KW_DAY_HOUR: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1587; + this.match(MySqlParser.KW_DAY_HOUR); + } + break; + case MySqlParser.KW_DAY_MINUTE: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1588; + this.match(MySqlParser.KW_DAY_MINUTE); + } + break; + case MySqlParser.KW_DAY_SECOND: + this.enterOuterAlt(_localctx, 6); + { + this.state = 1589; + this.match(MySqlParser.KW_DAY_SECOND); + } + break; + case MySqlParser.KW_HOUR_MINUTE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 1590; + this.match(MySqlParser.KW_HOUR_MINUTE); + } + break; + case MySqlParser.KW_HOUR_SECOND: + this.enterOuterAlt(_localctx, 8); + { + this.state = 1591; + this.match(MySqlParser.KW_HOUR_SECOND); + } + break; + case MySqlParser.KW_MINUTE_SECOND: + this.enterOuterAlt(_localctx, 9); + { + this.state = 1592; + this.match(MySqlParser.KW_MINUTE_SECOND); + } + break; + case MySqlParser.KW_SECOND_MICROSECOND: + this.enterOuterAlt(_localctx, 10); + { + this.state = 1593; + this.match(MySqlParser.KW_SECOND_MICROSECOND); + } + break; + case MySqlParser.KW_MINUTE_MICROSECOND: + this.enterOuterAlt(_localctx, 11); + { + this.state = 1594; + this.match(MySqlParser.KW_MINUTE_MICROSECOND); + } + break; + case MySqlParser.KW_HOUR_MICROSECOND: + this.enterOuterAlt(_localctx, 12); + { + this.state = 1595; + this.match(MySqlParser.KW_HOUR_MICROSECOND); + } + break; + case MySqlParser.KW_DAY_MICROSECOND: + this.enterOuterAlt(_localctx, 13); + { + this.state = 1596; + this.match(MySqlParser.KW_DAY_MICROSECOND); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public enableType(): EnableTypeContext { + let _localctx: EnableTypeContext = new EnableTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 68, MySqlParser.RULE_enableType); + try { + this.state = 1604; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 131, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1599; + this.match(MySqlParser.KW_ENABLE); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1600; + this.match(MySqlParser.KW_DISABLE); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1601; + this.match(MySqlParser.KW_DISABLE); + this.state = 1602; + this.match(MySqlParser.KW_ON); + this.state = 1603; + this.match(MySqlParser.KW_SLAVE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexType(): IndexTypeContext { + let _localctx: IndexTypeContext = new IndexTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 70, MySqlParser.RULE_indexType); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1606; + this.match(MySqlParser.KW_USING); + this.state = 1607; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BTREE || _la === MySqlParser.KW_HASH)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexOption(): IndexOptionContext { + let _localctx: IndexOptionContext = new IndexOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 72, MySqlParser.RULE_indexOption); + let _la: number; + try { + this.state = 1631; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_KEY_BLOCK_SIZE: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1609; + this.match(MySqlParser.KW_KEY_BLOCK_SIZE); + this.state = 1611; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1610; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1613; + this.fileSizeLiteral(); + } + break; + case MySqlParser.KW_USING: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1614; + this.indexType(); + } + break; + case MySqlParser.KW_WITH: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1615; + this.match(MySqlParser.KW_WITH); + this.state = 1616; + this.match(MySqlParser.KW_PARSER); + this.state = 1617; + _localctx._parserName = this.uid(); + } + break; + case MySqlParser.KW_COMMENT: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1618; + this.match(MySqlParser.KW_COMMENT); + this.state = 1619; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_VISIBLE: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1620; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_VISIBLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_ENGINE_ATTRIBUTE: + this.enterOuterAlt(_localctx, 6); + { + this.state = 1621; + this.match(MySqlParser.KW_ENGINE_ATTRIBUTE); + this.state = 1623; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1622; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1625; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 1626; + this.match(MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE); + this.state = 1628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1627; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1630; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public procedureParameter(): ProcedureParameterContext { + let _localctx: ProcedureParameterContext = new ProcedureParameterContext(this._ctx, this.state); + this.enterRule(_localctx, 74, MySqlParser.RULE_procedureParameter); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IN || _la === MySqlParser.KW_INOUT || _la === MySqlParser.KW_OUT) { + { + this.state = 1633; + _localctx._direction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_IN || _la === MySqlParser.KW_INOUT || _la === MySqlParser.KW_OUT)) { + _localctx._direction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1636; + _localctx._paramName = this.uid(); + this.state = 1637; + this.dataType(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public routineOption(): RoutineOptionContext { + let _localctx: RoutineOptionContext = new RoutineOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 76, MySqlParser.RULE_routineOption); + let _la: number; + try { + this.state = 1662; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_COMMENT: + _localctx = new RoutineCommentContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 1639; + this.match(MySqlParser.KW_COMMENT); + this.state = 1640; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_LANGUAGE: + _localctx = new RoutineLanguageContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 1641; + this.match(MySqlParser.KW_LANGUAGE); + this.state = 1642; + this.match(MySqlParser.KW_SQL); + } + break; + case MySqlParser.KW_DETERMINISTIC: + case MySqlParser.KW_NOT: + _localctx = new RoutineBehaviorContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 1644; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 1643; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 1646; + this.match(MySqlParser.KW_DETERMINISTIC); + } + break; + case MySqlParser.KW_MODIFIES: + case MySqlParser.KW_READS: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_NO: + _localctx = new RoutineDataContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 1657; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CONTAINS: + { + this.state = 1647; + this.match(MySqlParser.KW_CONTAINS); + this.state = 1648; + this.match(MySqlParser.KW_SQL); + } + break; + case MySqlParser.KW_NO: + { + this.state = 1649; + this.match(MySqlParser.KW_NO); + this.state = 1650; + this.match(MySqlParser.KW_SQL); + } + break; + case MySqlParser.KW_READS: + { + this.state = 1651; + this.match(MySqlParser.KW_READS); + this.state = 1652; + this.match(MySqlParser.KW_SQL); + this.state = 1653; + this.match(MySqlParser.KW_DATA); + } + break; + case MySqlParser.KW_MODIFIES: + { + this.state = 1654; + this.match(MySqlParser.KW_MODIFIES); + this.state = 1655; + this.match(MySqlParser.KW_SQL); + this.state = 1656; + this.match(MySqlParser.KW_DATA); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_SQL: + _localctx = new RoutineSecurityContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 1659; + this.match(MySqlParser.KW_SQL); + this.state = 1660; + this.match(MySqlParser.KW_SECURITY); + this.state = 1661; + (_localctx as RoutineSecurityContext)._context = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFINER || _la === MySqlParser.KW_INVOKER)) { + (_localctx as RoutineSecurityContext)._context = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public serverOption(): ServerOptionContext { + let _localctx: ServerOptionContext = new ServerOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 78, MySqlParser.RULE_serverOption); + try { + this.state = 1678; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_HOST: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1664; + this.match(MySqlParser.KW_HOST); + this.state = 1665; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_DATABASE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1666; + this.match(MySqlParser.KW_DATABASE); + this.state = 1667; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_USER: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1668; + this.match(MySqlParser.KW_USER); + this.state = 1669; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_PASSWORD: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1670; + this.match(MySqlParser.KW_PASSWORD); + this.state = 1671; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_SOCKET: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1672; + this.match(MySqlParser.KW_SOCKET); + this.state = 1673; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_OWNER: + this.enterOuterAlt(_localctx, 6); + { + this.state = 1674; + this.match(MySqlParser.KW_OWNER); + this.state = 1675; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_PORT: + this.enterOuterAlt(_localctx, 7); + { + this.state = 1676; + this.match(MySqlParser.KW_PORT); + this.state = 1677; + this.decimalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createDefinitions(): CreateDefinitionsContext { + let _localctx: CreateDefinitionsContext = new CreateDefinitionsContext(this._ctx, this.state); + this.enterRule(_localctx, 80, MySqlParser.RULE_createDefinitions); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1680; + this.match(MySqlParser.LR_BRACKET); + this.state = 1681; + this.createDefinition(); + this.state = 1686; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 1682; + this.match(MySqlParser.COMMA); + this.state = 1683; + this.createDefinition(); + } + } + this.state = 1688; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1689; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createDefinition(): CreateDefinitionContext { + let _localctx: CreateDefinitionContext = new CreateDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 82, MySqlParser.RULE_createDefinition); + let _la: number; + try { + this.state = 1774; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 158, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1691; + this.columnName(); + this.state = 1692; + this.columnDefinition(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1694; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1696; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 1695; + this.indexName(); + } + } + + this.state = 1699; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 1698; + this.indexType(); + } + } + + this.state = 1701; + this.indexColumnNames(); + this.state = 1705; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_USING || _la === MySqlParser.KW_WITH || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_VISIBLE || _la === MySqlParser.KW_ENGINE_ATTRIBUTE || _la === MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE) { + { + { + this.state = 1702; + this.indexOption(); + } + } + this.state = 1707; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1708; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FULLTEXT || _la === MySqlParser.KW_SPATIAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1710; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 1709; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1713; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 1712; + this.indexName(); + } + } + + this.state = 1715; + this.indexColumnNames(); + this.state = 1719; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_USING || _la === MySqlParser.KW_WITH || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_VISIBLE || _la === MySqlParser.KW_ENGINE_ATTRIBUTE || _la === MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE) { + { + { + this.state = 1716; + this.indexOption(); + } + } + this.state = 1721; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 1722; + this.constraintSymbol(); + } + } + + this.state = 1725; + this.match(MySqlParser.KW_PRIMARY); + this.state = 1726; + this.match(MySqlParser.KW_KEY); + this.state = 1728; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 1727; + this.indexType(); + } + } + + this.state = 1730; + this.indexColumnNames(); + this.state = 1734; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_USING || _la === MySqlParser.KW_WITH || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_VISIBLE || _la === MySqlParser.KW_ENGINE_ATTRIBUTE || _la === MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE) { + { + { + this.state = 1731; + this.indexOption(); + } + } + this.state = 1736; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 1737; + this.constraintSymbol(); + } + } + + this.state = 1740; + this.match(MySqlParser.KW_UNIQUE); + this.state = 1742; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 1741; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1745; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 1744; + this.indexName(); + } + } + + this.state = 1748; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 1747; + this.indexType(); + } + } + + this.state = 1750; + this.indexColumnNames(); + this.state = 1754; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_USING || _la === MySqlParser.KW_WITH || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_KEY_BLOCK_SIZE || _la === MySqlParser.KW_VISIBLE || _la === MySqlParser.KW_ENGINE_ATTRIBUTE || _la === MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE) { + { + { + this.state = 1751; + this.indexOption(); + } + } + this.state = 1756; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 1758; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 1757; + this.constraintSymbol(); + } + } + + this.state = 1760; + this.match(MySqlParser.KW_FOREIGN); + this.state = 1761; + this.match(MySqlParser.KW_KEY); + this.state = 1763; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 1762; + this.indexName(); + } + } + + this.state = 1765; + this.indexColumnNames(); + this.state = 1766; + this.referenceDefinition(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 1768; + this.match(MySqlParser.KW_CHECK); + this.state = 1769; + this.match(MySqlParser.LR_BRACKET); + this.state = 1770; + this.expression(0); + this.state = 1771; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 1773; + this.checkConstraintDefinition(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public checkConstraintDefinition(): CheckConstraintDefinitionContext { + let _localctx: CheckConstraintDefinitionContext = new CheckConstraintDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 84, MySqlParser.RULE_checkConstraintDefinition); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1777; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 1776; + this.constraintSymbol(); + } + } + + this.state = 1779; + this.match(MySqlParser.KW_CHECK); + this.state = 1780; + this.match(MySqlParser.LR_BRACKET); + this.state = 1781; + this.expression(0); + this.state = 1782; + this.match(MySqlParser.RR_BRACKET); + this.state = 1787; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 161, this._ctx) ) { + case 1: + { + this.state = 1784; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 1783; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 1786; + this.match(MySqlParser.KW_ENFORCED); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public constraintSymbol(): ConstraintSymbolContext { + let _localctx: ConstraintSymbolContext = new ConstraintSymbolContext(this._ctx, this.state); + this.enterRule(_localctx, 86, MySqlParser.RULE_constraintSymbol); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1789; + this.match(MySqlParser.KW_CONSTRAINT); + this.state = 1791; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 162, this._ctx) ) { + case 1: + { + this.state = 1790; + _localctx._symbol = this.uid(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public columnDefinition(): ColumnDefinitionContext { + let _localctx: ColumnDefinitionContext = new ColumnDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 88, MySqlParser.RULE_columnDefinition); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 1793; + this.dataType(); + this.state = 1797; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 163, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 1794; + this.columnConstraint(); + } + } + } + this.state = 1799; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 163, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public columnConstraint(): ColumnConstraintContext { + let _localctx: ColumnConstraintContext = new ColumnConstraintContext(this._ctx, this.state); + this.enterRule(_localctx, 90, MySqlParser.RULE_columnConstraint); + let _la: number; + try { + this.state = 1843; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NOT: + case MySqlParser.KW_NULL_LITERAL: + case MySqlParser.NULL_SPEC_LITERAL: + _localctx = new NullColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 1800; + this.nullNotnull(); + } + break; + case MySqlParser.KW_DEFAULT: + _localctx = new DefaultColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 1801; + this.match(MySqlParser.KW_DEFAULT); + this.state = 1802; + this.defaultValue(); + } + break; + case MySqlParser.KW_VISIBLE: + _localctx = new VisibilityColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 1803; + this.match(MySqlParser.KW_VISIBLE); + } + break; + case MySqlParser.KW_INVISIBLE: + _localctx = new InvisibilityColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 1804; + this.match(MySqlParser.KW_INVISIBLE); + } + break; + case MySqlParser.KW_ON: + case MySqlParser.KW_AUTO_INCREMENT: + _localctx = new AutoIncrementColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 1809; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_AUTO_INCREMENT: + { + this.state = 1805; + this.match(MySqlParser.KW_AUTO_INCREMENT); + } + break; + case MySqlParser.KW_ON: + { + this.state = 1806; + this.match(MySqlParser.KW_ON); + this.state = 1807; + this.match(MySqlParser.KW_UPDATE); + this.state = 1808; + this.currentTimestamp(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_KEY: + case MySqlParser.KW_PRIMARY: + _localctx = new PrimaryKeyColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 1812; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PRIMARY) { + { + this.state = 1811; + this.match(MySqlParser.KW_PRIMARY); + } + } + + this.state = 1814; + this.match(MySqlParser.KW_KEY); + } + break; + case MySqlParser.KW_UNIQUE: + _localctx = new UniqueKeyColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 1815; + this.match(MySqlParser.KW_UNIQUE); + this.state = 1817; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 166, this._ctx) ) { + case 1: + { + this.state = 1816; + this.match(MySqlParser.KW_KEY); + } + break; + } + } + break; + case MySqlParser.KW_COMMENT: + _localctx = new CommentColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 1819; + this.match(MySqlParser.KW_COMMENT); + this.state = 1820; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_COLUMN_FORMAT: + _localctx = new FormatColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 1821; + this.match(MySqlParser.KW_COLUMN_FORMAT); + this.state = 1822; + (_localctx as FormatColumnConstraintContext)._colformat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_DYNAMIC || _la === MySqlParser.KW_FIXED)) { + (_localctx as FormatColumnConstraintContext)._colformat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_STORAGE: + _localctx = new StorageColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 1823; + this.match(MySqlParser.KW_STORAGE); + this.state = 1824; + (_localctx as StorageColumnConstraintContext)._storageval = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_DISK || _la === MySqlParser.KW_MEMORY)) { + (_localctx as StorageColumnConstraintContext)._storageval = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_REFERENCES: + _localctx = new ReferenceColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 1825; + this.referenceDefinition(); + } + break; + case MySqlParser.KW_COLLATE: + _localctx = new CollateColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 1826; + this.match(MySqlParser.KW_COLLATE); + this.state = 1827; + this.collationName(); + } + break; + case MySqlParser.KW_AS: + case MySqlParser.KW_GENERATED: + _localctx = new GeneratedColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 1830; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_GENERATED) { + { + this.state = 1828; + this.match(MySqlParser.KW_GENERATED); + this.state = 1829; + this.match(MySqlParser.KW_ALWAYS); + } + } + + this.state = 1832; + this.match(MySqlParser.KW_AS); + this.state = 1833; + this.match(MySqlParser.LR_BRACKET); + this.state = 1834; + this.expression(0); + this.state = 1835; + this.match(MySqlParser.RR_BRACKET); + this.state = 1837; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_STORED || _la === MySqlParser.KW_VIRTUAL) { + { + this.state = 1836; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_STORED || _la === MySqlParser.KW_VIRTUAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + break; + case MySqlParser.KW_SERIAL: + _localctx = new SerialDefaultColumnConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 1839; + this.match(MySqlParser.KW_SERIAL); + this.state = 1840; + this.match(MySqlParser.KW_DEFAULT); + this.state = 1841; + this.match(MySqlParser.KW_VALUE); + } + break; + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CONSTRAINT: + _localctx = new CheckExprContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 1842; + this.checkConstraintDefinition(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public referenceDefinition(): ReferenceDefinitionContext { + let _localctx: ReferenceDefinitionContext = new ReferenceDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 92, MySqlParser.RULE_referenceDefinition); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 1845; + this.match(MySqlParser.KW_REFERENCES); + this.state = 1846; + this.tableName(); + this.state = 1848; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 170, this._ctx) ) { + case 1: + { + this.state = 1847; + this.indexColumnNames(); + } + break; + } + this.state = 1852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_MATCH) { + { + this.state = 1850; + this.match(MySqlParser.KW_MATCH); + this.state = 1851; + _localctx._matchType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FULL || _la === MySqlParser.KW_PARTIAL || _la === MySqlParser.KW_SIMPLE)) { + _localctx._matchType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 1855; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 172, this._ctx) ) { + case 1: + { + this.state = 1854; + this.referenceAction(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public referenceAction(): ReferenceActionContext { + let _localctx: ReferenceActionContext = new ReferenceActionContext(this._ctx, this.state); + this.enterRule(_localctx, 94, MySqlParser.RULE_referenceAction); + try { + this.state = 1873; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 175, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1857; + this.match(MySqlParser.KW_ON); + this.state = 1858; + this.match(MySqlParser.KW_DELETE); + this.state = 1859; + _localctx._onDelete = this.referenceControlType(); + this.state = 1863; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 173, this._ctx) ) { + case 1: + { + this.state = 1860; + this.match(MySqlParser.KW_ON); + this.state = 1861; + this.match(MySqlParser.KW_UPDATE); + this.state = 1862; + _localctx._onUpdate = this.referenceControlType(); + } + break; + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1865; + this.match(MySqlParser.KW_ON); + this.state = 1866; + this.match(MySqlParser.KW_UPDATE); + this.state = 1867; + _localctx._onUpdate = this.referenceControlType(); + this.state = 1871; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 174, this._ctx) ) { + case 1: + { + this.state = 1868; + this.match(MySqlParser.KW_ON); + this.state = 1869; + this.match(MySqlParser.KW_DELETE); + this.state = 1870; + _localctx._onDelete = this.referenceControlType(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public referenceControlType(): ReferenceControlTypeContext { + let _localctx: ReferenceControlTypeContext = new ReferenceControlTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 96, MySqlParser.RULE_referenceControlType); + try { + this.state = 1883; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 176, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 1875; + this.match(MySqlParser.KW_RESTRICT); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 1876; + this.match(MySqlParser.KW_CASCADE); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 1877; + this.match(MySqlParser.KW_SET); + this.state = 1878; + this.match(MySqlParser.KW_NULL_LITERAL); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1879; + this.match(MySqlParser.KW_NO); + this.state = 1880; + this.match(MySqlParser.KW_ACTION); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1881; + this.match(MySqlParser.KW_SET); + this.state = 1882; + this.match(MySqlParser.KW_DEFAULT); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableOption(): TableOptionContext { + let _localctx: TableOptionContext = new TableOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 98, MySqlParser.RULE_tableOption); + let _la: number; + try { + this.state = 2070; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 214, this._ctx) ) { + case 1: + _localctx = new TableOptionEngineContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 1885; + this.match(MySqlParser.KW_ENGINE); + this.state = 1887; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1886; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1890; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 178, this._ctx) ) { + case 1: + { + this.state = 1889; + this.engineName(); + } + break; + } + } + break; + + case 2: + _localctx = new TableOptionEngineAttributeContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 1892; + this.match(MySqlParser.KW_ENGINE_ATTRIBUTE); + this.state = 1894; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1893; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1896; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 3: + _localctx = new TableOptionAutoextendSizeContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 1897; + this.match(MySqlParser.KW_AUTOEXTEND_SIZE); + this.state = 1899; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1898; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1901; + this.decimalLiteral(); + } + break; + + case 4: + _localctx = new TableOptionAutoIncrementContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 1902; + this.match(MySqlParser.KW_AUTO_INCREMENT); + this.state = 1904; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1903; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1906; + this.decimalLiteral(); + } + break; + + case 5: + _localctx = new TableOptionAverageContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 1907; + this.match(MySqlParser.KW_AVG_ROW_LENGTH); + this.state = 1909; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1908; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1911; + this.decimalLiteral(); + } + break; + + case 6: + _localctx = new TableOptionCharsetContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 1913; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 1912; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 1915; + this.charSet(); + this.state = 1917; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1916; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1921; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BINARY: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + { + this.state = 1919; + this.charsetName(); + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 1920; + this.match(MySqlParser.KW_DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 7: + _localctx = new TableOptionChecksumContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 1923; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHECKSUM || _la === MySqlParser.KW_PAGE_CHECKSUM)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1925; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1924; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1927; + (_localctx as TableOptionChecksumContext)._boolValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as TableOptionChecksumContext)._boolValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 8: + _localctx = new TableOptionCollateContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 1929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 1928; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 1931; + this.match(MySqlParser.KW_COLLATE); + this.state = 1933; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1932; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1935; + this.collationName(); + } + break; + + case 9: + _localctx = new TableOptionCommentContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 1936; + this.match(MySqlParser.KW_COMMENT); + this.state = 1938; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1937; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1940; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 10: + _localctx = new TableOptionCompressionContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 1941; + this.match(MySqlParser.KW_COMPRESSION); + this.state = 1943; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1942; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1945; + _la = this._input.LA(1); + if (!(_la === MySqlParser.STRING_LITERAL || _la === MySqlParser.ID)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 11: + _localctx = new TableOptionConnectionContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 1946; + this.match(MySqlParser.KW_CONNECTION); + this.state = 1948; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1947; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1950; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 12: + _localctx = new TableOptionDataDirectoryContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 1951; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_DATA)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1952; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 1954; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1953; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1956; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 13: + _localctx = new TableOptionDelayContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 1957; + this.match(MySqlParser.KW_DELAY_KEY_WRITE); + this.state = 1959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1958; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1961; + (_localctx as TableOptionDelayContext)._boolValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as TableOptionDelayContext)._boolValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 14: + _localctx = new TableOptionEncryptionContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 1962; + this.match(MySqlParser.KW_ENCRYPTION); + this.state = 1964; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1963; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1966; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 15: + _localctx = new TableOptionPageCompressedContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 1967; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_PAGE_COMPRESSED || _la === MySqlParser.STRING_LITERAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1969; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1968; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1971; + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 16: + _localctx = new TableOptionPageCompressionLevelContext(_localctx); + this.enterOuterAlt(_localctx, 16); + { + this.state = 1972; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_PAGE_COMPRESSION_LEVEL || _la === MySqlParser.STRING_LITERAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1974; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1973; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1976; + this.decimalLiteral(); + } + break; + + case 17: + _localctx = new TableOptionEncryptionKeyIdContext(_localctx); + this.enterOuterAlt(_localctx, 17); + { + this.state = 1977; + this.match(MySqlParser.KW_ENCRYPTION_KEY_ID); + this.state = 1979; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1978; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1981; + this.decimalLiteral(); + } + break; + + case 18: + _localctx = new TableOptionIndexDirectoryContext(_localctx); + this.enterOuterAlt(_localctx, 18); + { + this.state = 1982; + this.match(MySqlParser.KW_INDEX); + this.state = 1983; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 1985; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1984; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1987; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 19: + _localctx = new TableOptionInsertMethodContext(_localctx); + this.enterOuterAlt(_localctx, 19); + { + this.state = 1988; + this.match(MySqlParser.KW_INSERT_METHOD); + this.state = 1990; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1989; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1992; + (_localctx as TableOptionInsertMethodContext)._insertMethod = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FIRST || _la === MySqlParser.KW_LAST || _la === MySqlParser.KW_NO)) { + (_localctx as TableOptionInsertMethodContext)._insertMethod = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 20: + _localctx = new TableOptionKeyBlockSizeContext(_localctx); + this.enterOuterAlt(_localctx, 20); + { + this.state = 1993; + this.match(MySqlParser.KW_KEY_BLOCK_SIZE); + this.state = 1995; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1994; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 1997; + this.fileSizeLiteral(); + } + break; + + case 21: + _localctx = new TableOptionMaxRowsContext(_localctx); + this.enterOuterAlt(_localctx, 21); + { + this.state = 1998; + this.match(MySqlParser.KW_MAX_ROWS); + this.state = 2000; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 1999; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2002; + this.decimalLiteral(); + } + break; + + case 22: + _localctx = new TableOptionMinRowsContext(_localctx); + this.enterOuterAlt(_localctx, 22); + { + this.state = 2003; + this.match(MySqlParser.KW_MIN_ROWS); + this.state = 2005; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2004; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2007; + this.decimalLiteral(); + } + break; + + case 23: + _localctx = new TableOptionPackKeysContext(_localctx); + this.enterOuterAlt(_localctx, 23); + { + this.state = 2008; + this.match(MySqlParser.KW_PACK_KEYS); + this.state = 2010; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2009; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2012; + (_localctx as TableOptionPackKeysContext)._extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as TableOptionPackKeysContext)._extBoolValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 24: + _localctx = new TableOptionPasswordContext(_localctx); + this.enterOuterAlt(_localctx, 24); + { + this.state = 2013; + this.match(MySqlParser.KW_PASSWORD); + this.state = 2015; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2014; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2017; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 25: + _localctx = new TableOptionRowFormatContext(_localctx); + this.enterOuterAlt(_localctx, 25); + { + this.state = 2018; + this.match(MySqlParser.KW_ROW_FORMAT); + this.state = 2020; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2019; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2022; + (_localctx as TableOptionRowFormatContext)._rowFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_COMPACT || _la === MySqlParser.KW_COMPRESSED || _la === MySqlParser.KW_DYNAMIC || _la === MySqlParser.KW_FIXED || _la === MySqlParser.KW_REDUNDANT || _la === MySqlParser.ID)) { + (_localctx as TableOptionRowFormatContext)._rowFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 26: + _localctx = new TableOptionStartTransactionContext(_localctx); + this.enterOuterAlt(_localctx, 26); + { + this.state = 2023; + this.match(MySqlParser.KW_START); + this.state = 2024; + this.match(MySqlParser.KW_TRANSACTION); + } + break; + + case 27: + _localctx = new TableOptionSecondaryEngineAttributeContext(_localctx); + this.enterOuterAlt(_localctx, 27); + { + this.state = 2025; + this.match(MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE); + this.state = 2027; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2026; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2029; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 28: + _localctx = new TableOptionRecalculationContext(_localctx); + this.enterOuterAlt(_localctx, 28); + { + this.state = 2030; + this.match(MySqlParser.KW_STATS_AUTO_RECALC); + this.state = 2032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2031; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2034; + (_localctx as TableOptionRecalculationContext)._extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as TableOptionRecalculationContext)._extBoolValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 29: + _localctx = new TableOptionPersistentContext(_localctx); + this.enterOuterAlt(_localctx, 29); + { + this.state = 2035; + this.match(MySqlParser.KW_STATS_PERSISTENT); + this.state = 2037; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2036; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2039; + (_localctx as TableOptionPersistentContext)._extBoolValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as TableOptionPersistentContext)._extBoolValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 30: + _localctx = new TableOptionSamplePageContext(_localctx); + this.enterOuterAlt(_localctx, 30); + { + this.state = 2040; + this.match(MySqlParser.KW_STATS_SAMPLE_PAGES); + this.state = 2042; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2041; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2046; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DEFAULT: + { + this.state = 2044; + this.match(MySqlParser.KW_DEFAULT); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 2045; + this.decimalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 31: + _localctx = new TableOptionTablespaceContext(_localctx); + this.enterOuterAlt(_localctx, 31); + { + this.state = 2048; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 2049; + this.tablespaceName(); + this.state = 2051; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 211, this._ctx) ) { + case 1: + { + this.state = 2050; + this.tablespaceStorage(); + } + break; + } + } + break; + + case 32: + _localctx = new TableOptionTableTypeContext(_localctx); + this.enterOuterAlt(_localctx, 32); + { + this.state = 2053; + this.match(MySqlParser.KW_TABLE_TYPE); + this.state = 2054; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 2055; + this.tableType(); + } + break; + + case 33: + _localctx = new TableOptionTablespaceContext(_localctx); + this.enterOuterAlt(_localctx, 33); + { + this.state = 2056; + this.tablespaceStorage(); + } + break; + + case 34: + _localctx = new TableOptionTransactionalContext(_localctx); + this.enterOuterAlt(_localctx, 34); + { + this.state = 2057; + this.match(MySqlParser.KW_TRANSACTIONAL); + this.state = 2059; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2058; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2061; + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 35: + _localctx = new TableOptionUnionContext(_localctx); + this.enterOuterAlt(_localctx, 35); + { + this.state = 2062; + this.match(MySqlParser.KW_UNION); + this.state = 2064; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2063; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2066; + this.match(MySqlParser.LR_BRACKET); + this.state = 2067; + this.tableNames(); + this.state = 2068; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableType(): TableTypeContext { + let _localctx: TableTypeContext = new TableTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 100, MySqlParser.RULE_tableType); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2072; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MYSQL || _la === MySqlParser.KW_ODBC)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tablespaceStorage(): TablespaceStorageContext { + let _localctx: TablespaceStorageContext = new TablespaceStorageContext(this._ctx, this.state); + this.enterRule(_localctx, 102, MySqlParser.RULE_tablespaceStorage); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2074; + this.match(MySqlParser.KW_STORAGE); + this.state = 2075; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_DISK || _la === MySqlParser.KW_MEMORY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionDefinitions(): PartitionDefinitionsContext { + let _localctx: PartitionDefinitionsContext = new PartitionDefinitionsContext(this._ctx, this.state); + this.enterRule(_localctx, 104, MySqlParser.RULE_partitionDefinitions); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2077; + this.match(MySqlParser.KW_PARTITION); + this.state = 2078; + this.match(MySqlParser.KW_BY); + this.state = 2079; + this.partitionFunctionDefinition(); + this.state = 2082; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITIONS) { + { + this.state = 2080; + this.match(MySqlParser.KW_PARTITIONS); + this.state = 2081; + _localctx._count = this.decimalLiteral(); + } + } + + this.state = 2091; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SUBPARTITION) { + { + this.state = 2084; + this.match(MySqlParser.KW_SUBPARTITION); + this.state = 2085; + this.match(MySqlParser.KW_BY); + this.state = 2086; + this.subpartitionFunctionDefinition(); + this.state = 2089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SUBPARTITIONS) { + { + this.state = 2087; + this.match(MySqlParser.KW_SUBPARTITIONS); + this.state = 2088; + _localctx._subCount = this.decimalLiteral(); + } + } + + } + } + + this.state = 2104; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 219, this._ctx) ) { + case 1: + { + this.state = 2093; + this.match(MySqlParser.LR_BRACKET); + this.state = 2094; + this.partitionDefinition(); + this.state = 2099; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2095; + this.match(MySqlParser.COMMA); + this.state = 2096; + this.partitionDefinition(); + } + } + this.state = 2101; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2102; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionFunctionDefinition(): PartitionFunctionDefinitionContext { + let _localctx: PartitionFunctionDefinitionContext = new PartitionFunctionDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 106, MySqlParser.RULE_partitionFunctionDefinition); + let _la: number; + try { + this.state = 2152; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 226, this._ctx) ) { + case 1: + _localctx = new PartitionFunctionHashContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2107; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LINEAR) { + { + this.state = 2106; + this.match(MySqlParser.KW_LINEAR); + } + } + + this.state = 2109; + this.match(MySqlParser.KW_HASH); + this.state = 2110; + this.match(MySqlParser.LR_BRACKET); + this.state = 2111; + this.expression(0); + this.state = 2112; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 2: + _localctx = new PartitionFunctionKeyContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LINEAR) { + { + this.state = 2114; + this.match(MySqlParser.KW_LINEAR); + } + } + + this.state = 2117; + this.match(MySqlParser.KW_KEY); + this.state = 2121; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALGORITHM) { + { + this.state = 2118; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 2119; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 2120; + (_localctx as PartitionFunctionKeyContext)._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ONE_DECIMAL || _la === MySqlParser.TWO_DECIMAL)) { + (_localctx as PartitionFunctionKeyContext)._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2123; + this.match(MySqlParser.LR_BRACKET); + this.state = 2125; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 223, this._ctx) ) { + case 1: + { + this.state = 2124; + this.columnNames(); + } + break; + } + this.state = 2127; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 3: + _localctx = new PartitionFunctionRangeContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 2128; + this.match(MySqlParser.KW_RANGE); + this.state = 2138; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.LR_BRACKET: + { + this.state = 2129; + this.match(MySqlParser.LR_BRACKET); + this.state = 2130; + this.expression(0); + this.state = 2131; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_COLUMNS: + { + this.state = 2133; + this.match(MySqlParser.KW_COLUMNS); + this.state = 2134; + this.match(MySqlParser.LR_BRACKET); + this.state = 2135; + this.columnNames(); + this.state = 2136; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 4: + _localctx = new PartitionFunctionListContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 2140; + this.match(MySqlParser.KW_LIST); + this.state = 2150; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.LR_BRACKET: + { + this.state = 2141; + this.match(MySqlParser.LR_BRACKET); + this.state = 2142; + this.expression(0); + this.state = 2143; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_COLUMNS: + { + this.state = 2145; + this.match(MySqlParser.KW_COLUMNS); + this.state = 2146; + this.match(MySqlParser.LR_BRACKET); + this.state = 2147; + this.columnNames(); + this.state = 2148; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public subpartitionFunctionDefinition(): SubpartitionFunctionDefinitionContext { + let _localctx: SubpartitionFunctionDefinitionContext = new SubpartitionFunctionDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 108, MySqlParser.RULE_subpartitionFunctionDefinition); + let _la: number; + try { + this.state = 2175; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 230, this._ctx) ) { + case 1: + _localctx = new SubPartitionFunctionHashContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2155; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LINEAR) { + { + this.state = 2154; + this.match(MySqlParser.KW_LINEAR); + } + } + + this.state = 2157; + this.match(MySqlParser.KW_HASH); + this.state = 2158; + this.match(MySqlParser.LR_BRACKET); + this.state = 2159; + this.expression(0); + this.state = 2160; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 2: + _localctx = new SubPartitionFunctionKeyContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2163; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LINEAR) { + { + this.state = 2162; + this.match(MySqlParser.KW_LINEAR); + } + } + + this.state = 2165; + this.match(MySqlParser.KW_KEY); + this.state = 2169; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALGORITHM) { + { + this.state = 2166; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 2167; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 2168; + (_localctx as SubPartitionFunctionKeyContext)._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ONE_DECIMAL || _la === MySqlParser.TWO_DECIMAL)) { + (_localctx as SubPartitionFunctionKeyContext)._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2171; + this.match(MySqlParser.LR_BRACKET); + this.state = 2172; + this.columnNames(); + this.state = 2173; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionDefinition(): PartitionDefinitionContext { + let _localctx: PartitionDefinitionContext = new PartitionDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 110, MySqlParser.RULE_partitionDefinition); + let _la: number; + try { + this.state = 2323; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 249, this._ctx) ) { + case 1: + _localctx = new PartitionComparisonContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2177; + this.match(MySqlParser.KW_PARTITION); + this.state = 2178; + this.partitionName(); + this.state = 2179; + this.match(MySqlParser.KW_VALUES); + this.state = 2180; + this.match(MySqlParser.KW_LESS); + this.state = 2181; + this.match(MySqlParser.KW_THAN); + this.state = 2182; + this.match(MySqlParser.LR_BRACKET); + this.state = 2183; + this.partitionDefinerAtom(); + this.state = 2188; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2184; + this.match(MySqlParser.COMMA); + this.state = 2185; + this.partitionDefinerAtom(); + } + } + this.state = 2190; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2191; + this.match(MySqlParser.RR_BRACKET); + this.state = 2195; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2192; + this.partitionOption(); + } + } + this.state = 2197; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2209; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2198; + this.match(MySqlParser.LR_BRACKET); + this.state = 2199; + this.subpartitionDefinition(); + this.state = 2204; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2200; + this.match(MySqlParser.COMMA); + this.state = 2201; + this.subpartitionDefinition(); + } + } + this.state = 2206; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2207; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + break; + + case 2: + _localctx = new PartitionComparisonContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2211; + this.match(MySqlParser.KW_PARTITION); + this.state = 2212; + this.partitionName(); + this.state = 2213; + this.match(MySqlParser.KW_VALUES); + this.state = 2214; + this.match(MySqlParser.KW_LESS); + this.state = 2215; + this.match(MySqlParser.KW_THAN); + this.state = 2216; + this.partitionDefinerAtom(); + this.state = 2220; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2217; + this.partitionOption(); + } + } + this.state = 2222; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2234; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2223; + this.match(MySqlParser.LR_BRACKET); + this.state = 2224; + this.subpartitionDefinition(); + this.state = 2229; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2225; + this.match(MySqlParser.COMMA); + this.state = 2226; + this.subpartitionDefinition(); + } + } + this.state = 2231; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2232; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + break; + + case 3: + _localctx = new PartitionListAtomContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 2236; + this.match(MySqlParser.KW_PARTITION); + this.state = 2237; + this.partitionName(); + this.state = 2238; + this.match(MySqlParser.KW_VALUES); + this.state = 2239; + this.match(MySqlParser.KW_IN); + this.state = 2240; + this.match(MySqlParser.LR_BRACKET); + this.state = 2241; + this.partitionDefinerAtom(); + this.state = 2246; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2242; + this.match(MySqlParser.COMMA); + this.state = 2243; + this.partitionDefinerAtom(); + } + } + this.state = 2248; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2249; + this.match(MySqlParser.RR_BRACKET); + this.state = 2253; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2250; + this.partitionOption(); + } + } + this.state = 2255; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2267; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2256; + this.match(MySqlParser.LR_BRACKET); + this.state = 2257; + this.subpartitionDefinition(); + this.state = 2262; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2258; + this.match(MySqlParser.COMMA); + this.state = 2259; + this.subpartitionDefinition(); + } + } + this.state = 2264; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2265; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + break; + + case 4: + _localctx = new PartitionListVectorContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 2269; + this.match(MySqlParser.KW_PARTITION); + this.state = 2270; + this.partitionName(); + this.state = 2271; + this.match(MySqlParser.KW_VALUES); + this.state = 2272; + this.match(MySqlParser.KW_IN); + this.state = 2273; + this.match(MySqlParser.LR_BRACKET); + this.state = 2274; + this.partitionDefinerVector(); + this.state = 2279; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2275; + this.match(MySqlParser.COMMA); + this.state = 2276; + this.partitionDefinerVector(); + } + } + this.state = 2281; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2282; + this.match(MySqlParser.RR_BRACKET); + this.state = 2286; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2283; + this.partitionOption(); + } + } + this.state = 2288; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2289; + this.match(MySqlParser.LR_BRACKET); + this.state = 2290; + this.subpartitionDefinition(); + this.state = 2295; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2291; + this.match(MySqlParser.COMMA); + this.state = 2292; + this.subpartitionDefinition(); + } + } + this.state = 2297; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2298; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + break; + + case 5: + _localctx = new PartitionSimpleContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 2302; + this.match(MySqlParser.KW_PARTITION); + this.state = 2303; + this.partitionName(); + this.state = 2307; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2304; + this.partitionOption(); + } + } + this.state = 2309; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2321; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2310; + this.match(MySqlParser.LR_BRACKET); + this.state = 2311; + this.subpartitionDefinition(); + this.state = 2316; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2312; + this.match(MySqlParser.COMMA); + this.state = 2313; + this.subpartitionDefinition(); + } + } + this.state = 2318; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2319; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionDefinerAtom(): PartitionDefinerAtomContext { + let _localctx: PartitionDefinerAtomContext = new PartitionDefinerAtomContext(this._ctx, this.state); + this.enterRule(_localctx, 112, MySqlParser.RULE_partitionDefinerAtom); + try { + this.state = 2328; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 250, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 2325; + this.constant(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 2326; + this.expression(0); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 2327; + this.match(MySqlParser.KW_MAXVALUE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionDefinerVector(): PartitionDefinerVectorContext { + let _localctx: PartitionDefinerVectorContext = new PartitionDefinerVectorContext(this._ctx, this.state); + this.enterRule(_localctx, 114, MySqlParser.RULE_partitionDefinerVector); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2330; + this.match(MySqlParser.LR_BRACKET); + this.state = 2331; + this.partitionDefinerAtom(); + this.state = 2334; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 2332; + this.match(MySqlParser.COMMA); + this.state = 2333; + this.partitionDefinerAtom(); + } + } + this.state = 2336; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.COMMA); + this.state = 2338; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public subpartitionDefinition(): SubpartitionDefinitionContext { + let _localctx: SubpartitionDefinitionContext = new SubpartitionDefinitionContext(this._ctx, this.state); + this.enterRule(_localctx, 116, MySqlParser.RULE_subpartitionDefinition); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2340; + this.match(MySqlParser.KW_SUBPARTITION); + this.state = 2341; + _localctx._logicalName = this.uid(); + this.state = 2345; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_DATA || _la === MySqlParser.KW_ENGINE || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & ((1 << (MySqlParser.KW_MAX_ROWS - 480)) | (1 << (MySqlParser.KW_MIN_ROWS - 480)) | (1 << (MySqlParser.KW_NODEGROUP - 480)))) !== 0) || _la === MySqlParser.KW_STORAGE || _la === MySqlParser.KW_TABLESPACE) { + { + { + this.state = 2342; + this.partitionOption(); + } + } + this.state = 2347; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionOption(): PartitionOptionContext { + let _localctx: PartitionOptionContext = new PartitionOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 118, MySqlParser.RULE_partitionOption); + let _la: number; + try { + this.state = 2396; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_STORAGE: + _localctx = new PartitionOptionEngineContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2349; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 2348; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 2352; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_STORAGE) { + { + this.state = 2351; + this.match(MySqlParser.KW_STORAGE); + } + } + + this.state = 2354; + this.match(MySqlParser.KW_ENGINE); + this.state = 2356; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2355; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2358; + this.engineName(); + } + break; + case MySqlParser.KW_COMMENT: + _localctx = new PartitionOptionCommentContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2359; + this.match(MySqlParser.KW_COMMENT); + this.state = 2361; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2360; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2363; + (_localctx as PartitionOptionCommentContext)._comment = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_DATA: + _localctx = new PartitionOptionDataDirectoryContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 2364; + this.match(MySqlParser.KW_DATA); + this.state = 2365; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 2367; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2366; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2369; + (_localctx as PartitionOptionDataDirectoryContext)._dataDirectory = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_INDEX: + _localctx = new PartitionOptionIndexDirectoryContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 2370; + this.match(MySqlParser.KW_INDEX); + this.state = 2371; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 2373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2372; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2375; + (_localctx as PartitionOptionIndexDirectoryContext)._indexDirectory = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_MAX_ROWS: + _localctx = new PartitionOptionMaxRowsContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 2376; + this.match(MySqlParser.KW_MAX_ROWS); + this.state = 2378; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2377; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2380; + (_localctx as PartitionOptionMaxRowsContext)._maxRows = this.decimalLiteral(); + } + break; + case MySqlParser.KW_MIN_ROWS: + _localctx = new PartitionOptionMinRowsContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 2381; + this.match(MySqlParser.KW_MIN_ROWS); + this.state = 2383; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2382; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2385; + (_localctx as PartitionOptionMinRowsContext)._minRows = this.decimalLiteral(); + } + break; + case MySqlParser.KW_TABLESPACE: + _localctx = new PartitionOptionTablespaceContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 2386; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 2388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2387; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2390; + this.tablespaceName(); + } + break; + case MySqlParser.KW_NODEGROUP: + _localctx = new PartitionOptionNodeGroupContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 2391; + this.match(MySqlParser.KW_NODEGROUP); + this.state = 2393; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2392; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2395; + (_localctx as PartitionOptionNodeGroupContext)._nodegroup = this.uid(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterDatabase(): AlterDatabaseContext { + let _localctx: AlterDatabaseContext = new AlterDatabaseContext(this._ctx, this.state); + this.enterRule(_localctx, 120, MySqlParser.RULE_alterDatabase); + let _la: number; + try { + this.state = 2416; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 266, this._ctx) ) { + case 1: + _localctx = new AlterSimpleDatabaseContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2398; + this.match(MySqlParser.KW_ALTER); + this.state = 2399; + (_localctx as AlterSimpleDatabaseContext)._dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_SCHEMA)) { + (_localctx as AlterSimpleDatabaseContext)._dbFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2401; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 264, this._ctx) ) { + case 1: + { + this.state = 2400; + this.databaseName(); + } + break; + } + this.state = 2404; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 2403; + this.createDatabaseOption(); + } + } + this.state = 2406; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (((((_la - 26)) & ~0x1F) === 0 && ((1 << (_la - 26)) & ((1 << (MySqlParser.KW_CHARACTER - 26)) | (1 << (MySqlParser.KW_COLLATE - 26)) | (1 << (MySqlParser.KW_DEFAULT - 26)))) !== 0) || _la === MySqlParser.KW_READ || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_ENCRYPTION || _la === MySqlParser.KW_CHARSET); + } + break; + + case 2: + _localctx = new AlterUpgradeNameContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2408; + this.match(MySqlParser.KW_ALTER); + this.state = 2409; + (_localctx as AlterUpgradeNameContext)._dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_SCHEMA)) { + (_localctx as AlterUpgradeNameContext)._dbFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2410; + this.databaseName(); + this.state = 2411; + this.match(MySqlParser.KW_UPGRADE); + this.state = 2412; + this.match(MySqlParser.KW_DATA); + this.state = 2413; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 2414; + this.match(MySqlParser.KW_NAME); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterEvent(): AlterEventContext { + let _localctx: AlterEventContext = new AlterEventContext(this._ctx, this.state); + this.enterRule(_localctx, 122, MySqlParser.RULE_alterEvent); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2418; + this.match(MySqlParser.KW_ALTER); + this.state = 2420; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 2419; + this.ownerStatement(); + } + } + + this.state = 2422; + this.match(MySqlParser.KW_EVENT); + this.state = 2423; + _localctx._event_name = this.fullId(); + this.state = 2427; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 268, this._ctx) ) { + case 1: + { + this.state = 2424; + this.match(MySqlParser.KW_ON); + this.state = 2425; + this.match(MySqlParser.KW_SCHEDULE); + this.state = 2426; + this.scheduleExpression(); + } + break; + } + this.state = 2435; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ON) { + { + this.state = 2429; + this.match(MySqlParser.KW_ON); + this.state = 2430; + this.match(MySqlParser.KW_COMPLETION); + this.state = 2432; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 2431; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 2434; + this.match(MySqlParser.KW_PRESERVE); + } + } + + this.state = 2440; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 271, this._ctx) ) { + case 1: + { + this.state = 2437; + this.match(MySqlParser.KW_RENAME); + this.state = 2438; + this.match(MySqlParser.KW_TO); + this.state = 2439; + _localctx._new_event_name = this.fullId(); + } + break; + } + this.state = 2443; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE) { + { + this.state = 2442; + this.enableType(); + } + } + + this.state = 2447; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COMMENT) { + { + this.state = 2445; + this.match(MySqlParser.KW_COMMENT); + this.state = 2446; + this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 2451; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 274, this._ctx) ) { + case 1: + { + this.state = 2449; + this.match(MySqlParser.KW_DO); + this.state = 2450; + this.routineBody(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterFunction(): AlterFunctionContext { + let _localctx: AlterFunctionContext = new AlterFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 124, MySqlParser.RULE_alterFunction); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2453; + this.match(MySqlParser.KW_ALTER); + this.state = 2454; + this.match(MySqlParser.KW_FUNCTION); + this.state = 2455; + this.functionName(); + this.state = 2459; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DETERMINISTIC || ((((_la - 112)) & ~0x1F) === 0 && ((1 << (_la - 112)) & ((1 << (MySqlParser.KW_MODIFIES - 112)) | (1 << (MySqlParser.KW_NOT - 112)) | (1 << (MySqlParser.KW_READS - 112)))) !== 0) || _la === MySqlParser.KW_SQL || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_CONTAINS || _la === MySqlParser.KW_LANGUAGE || _la === MySqlParser.KW_NO) { + { + { + this.state = 2456; + this.routineOption(); + } + } + this.state = 2461; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterInstance(): AlterInstanceContext { + let _localctx: AlterInstanceContext = new AlterInstanceContext(this._ctx, this.state); + this.enterRule(_localctx, 126, MySqlParser.RULE_alterInstance); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2462; + this.match(MySqlParser.KW_ALTER); + this.state = 2463; + this.match(MySqlParser.KW_INSTANCE); + this.state = 2464; + this.match(MySqlParser.KW_ROTATE); + this.state = 2465; + this.match(MySqlParser.KW_INNODB); + this.state = 2466; + this.match(MySqlParser.KW_MASTER); + this.state = 2467; + this.match(MySqlParser.KW_KEY); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterLogfileGroup(): AlterLogfileGroupContext { + let _localctx: AlterLogfileGroupContext = new AlterLogfileGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 128, MySqlParser.RULE_alterLogfileGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2469; + this.match(MySqlParser.KW_ALTER); + this.state = 2470; + this.match(MySqlParser.KW_LOGFILE); + this.state = 2471; + this.match(MySqlParser.KW_GROUP); + this.state = 2472; + _localctx._logfileGroupName = this.uid(); + this.state = 2473; + this.match(MySqlParser.KW_ADD); + this.state = 2474; + this.match(MySqlParser.KW_UNDOFILE); + this.state = 2475; + this.match(MySqlParser.STRING_LITERAL); + this.state = 2481; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INITIAL_SIZE) { + { + this.state = 2476; + this.match(MySqlParser.KW_INITIAL_SIZE); + this.state = 2478; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2477; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2480; + this.fileSizeLiteral(); + } + } + + this.state = 2484; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WAIT) { + { + this.state = 2483; + this.match(MySqlParser.KW_WAIT); + } + } + + this.state = 2486; + this.match(MySqlParser.KW_ENGINE); + this.state = 2488; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2487; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2490; + this.engineName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterProcedure(): AlterProcedureContext { + let _localctx: AlterProcedureContext = new AlterProcedureContext(this._ctx, this.state); + this.enterRule(_localctx, 130, MySqlParser.RULE_alterProcedure); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2492; + this.match(MySqlParser.KW_ALTER); + this.state = 2493; + this.match(MySqlParser.KW_PROCEDURE); + this.state = 2494; + _localctx._proc_name = this.fullId(); + this.state = 2498; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DETERMINISTIC || ((((_la - 112)) & ~0x1F) === 0 && ((1 << (_la - 112)) & ((1 << (MySqlParser.KW_MODIFIES - 112)) | (1 << (MySqlParser.KW_NOT - 112)) | (1 << (MySqlParser.KW_READS - 112)))) !== 0) || _la === MySqlParser.KW_SQL || _la === MySqlParser.KW_COMMENT || _la === MySqlParser.KW_CONTAINS || _la === MySqlParser.KW_LANGUAGE || _la === MySqlParser.KW_NO) { + { + { + this.state = 2495; + this.routineOption(); + } + } + this.state = 2500; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterServer(): AlterServerContext { + let _localctx: AlterServerContext = new AlterServerContext(this._ctx, this.state); + this.enterRule(_localctx, 132, MySqlParser.RULE_alterServer); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2501; + this.match(MySqlParser.KW_ALTER); + this.state = 2502; + this.match(MySqlParser.KW_SERVER); + this.state = 2503; + _localctx._serverName = this.uid(); + this.state = 2504; + this.match(MySqlParser.KW_OPTIONS); + this.state = 2505; + this.match(MySqlParser.LR_BRACKET); + this.state = 2506; + this.serverOption(); + this.state = 2511; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2507; + this.match(MySqlParser.COMMA); + this.state = 2508; + this.serverOption(); + } + } + this.state = 2513; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2514; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterTable(): AlterTableContext { + let _localctx: AlterTableContext = new AlterTableContext(this._ctx, this.state); + this.enterRule(_localctx, 134, MySqlParser.RULE_alterTable); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 2516; + this.match(MySqlParser.KW_ALTER); + this.state = 2517; + this.match(MySqlParser.KW_TABLE); + this.state = 2518; + this.tableName(); + this.state = 2527; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 283, this._ctx) ) { + case 1: + { + this.state = 2519; + this.alterOption(); + this.state = 2524; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2520; + this.match(MySqlParser.COMMA); + this.state = 2521; + this.alterOption(); + } + } + this.state = 2526; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + this.state = 2536; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 285, this._ctx) ) { + case 1: + { + this.state = 2529; + this.alterPartitionSpecification(); + this.state = 2533; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 284, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2530; + this.alterPartitionSpecification(); + } + } + } + this.state = 2535; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 284, this._ctx); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterTablespace(): AlterTablespaceContext { + let _localctx: AlterTablespaceContext = new AlterTablespaceContext(this._ctx, this.state); + this.enterRule(_localctx, 136, MySqlParser.RULE_alterTablespace); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2538; + this.match(MySqlParser.KW_ALTER); + this.state = 2540; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNDO) { + { + this.state = 2539; + this.match(MySqlParser.KW_UNDO); + } + } + + this.state = 2542; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 2543; + this.tablespaceName(); + this.state = 2544; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ADD || _la === MySqlParser.KW_DROP)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2545; + this.match(MySqlParser.KW_DATAFILE); + this.state = 2546; + this.match(MySqlParser.STRING_LITERAL); + this.state = 2552; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INITIAL_SIZE) { + { + this.state = 2547; + this.match(MySqlParser.KW_INITIAL_SIZE); + this.state = 2549; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2548; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2551; + this.fileSizeLiteral(); + } + } + + this.state = 2555; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WAIT) { + { + this.state = 2554; + this.match(MySqlParser.KW_WAIT); + } + } + + this.state = 2560; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 290, this._ctx) ) { + case 1: + { + this.state = 2557; + this.match(MySqlParser.KW_RENAME); + this.state = 2558; + this.match(MySqlParser.KW_TO); + this.state = 2559; + this.tablespaceNameCreate(); + } + break; + } + this.state = 2567; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AUTOEXTEND_SIZE) { + { + this.state = 2562; + this.match(MySqlParser.KW_AUTOEXTEND_SIZE); + this.state = 2564; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2563; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2566; + this.fileSizeLiteral(); + } + } + + this.state = 2571; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 293, this._ctx) ) { + case 1: + { + this.state = 2569; + this.match(MySqlParser.KW_SET); + this.state = 2570; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ACTIVE || _la === MySqlParser.KW_INACTIVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + this.state = 2578; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENCRYPTION) { + { + this.state = 2573; + this.match(MySqlParser.KW_ENCRYPTION); + this.state = 2575; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2574; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2577; + this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 2585; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENGINE) { + { + this.state = 2580; + this.match(MySqlParser.KW_ENGINE); + this.state = 2582; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2581; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2584; + this.engineName(); + } + } + + this.state = 2592; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENGINE_ATTRIBUTE) { + { + this.state = 2587; + this.match(MySqlParser.KW_ENGINE_ATTRIBUTE); + this.state = 2589; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2588; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2591; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterView(): AlterViewContext { + let _localctx: AlterViewContext = new AlterViewContext(this._ctx, this.state); + this.enterRule(_localctx, 138, MySqlParser.RULE_alterView); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2594; + this.match(MySqlParser.KW_ALTER); + this.state = 2598; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALGORITHM) { + { + this.state = 2595; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 2596; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 2597; + _localctx._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MERGE || _la === MySqlParser.KW_TEMPTABLE || _la === MySqlParser.KW_UNDEFINED)) { + _localctx._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2601; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFINER) { + { + this.state = 2600; + this.ownerStatement(); + } + } + + this.state = 2606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SQL) { + { + this.state = 2603; + this.match(MySqlParser.KW_SQL); + this.state = 2604; + this.match(MySqlParser.KW_SECURITY); + this.state = 2605; + _localctx._secContext = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFINER || _la === MySqlParser.KW_INVOKER)) { + _localctx._secContext = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2608; + this.match(MySqlParser.KW_VIEW); + this.state = 2609; + this.viewName(); + this.state = 2614; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 2610; + this.match(MySqlParser.LR_BRACKET); + this.state = 2611; + this.columnNames(); + this.state = 2612; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 2616; + this.match(MySqlParser.KW_AS); + this.state = 2617; + this.selectStatement(); + this.state = 2624; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 305, this._ctx) ) { + case 1: + { + this.state = 2618; + this.match(MySqlParser.KW_WITH); + this.state = 2620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CASCADED || _la === MySqlParser.KW_LOCAL) { + { + this.state = 2619; + _localctx._checkOpt = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CASCADED || _la === MySqlParser.KW_LOCAL)) { + _localctx._checkOpt = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2622; + this.match(MySqlParser.KW_CHECK); + this.state = 2623; + this.match(MySqlParser.KW_OPTION); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterOption(): AlterOptionContext { + let _localctx: AlterOptionContext = new AlterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 140, MySqlParser.RULE_alterOption); + let _la: number; + try { + let _alt: number; + this.state = 2890; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 349, this._ctx) ) { + case 1: + _localctx = new AlterByTableOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2626; + this.tableOption(); + this.state = 2633; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 307, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2628; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 2627; + this.match(MySqlParser.COMMA); + } + } + + this.state = 2630; + this.tableOption(); + } + } + } + this.state = 2635; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 307, this._ctx); + } + } + break; + + case 2: + _localctx = new AlterByAddColumnContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2636; + this.match(MySqlParser.KW_ADD); + this.state = 2638; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 308, this._ctx) ) { + case 1: + { + this.state = 2637; + this.match(MySqlParser.KW_COLUMN); + } + break; + } + this.state = 2640; + this.columnName(); + this.state = 2641; + this.columnDefinition(); + this.state = 2645; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FIRST: + { + this.state = 2642; + this.match(MySqlParser.KW_FIRST); + } + break; + case MySqlParser.KW_AFTER: + { + this.state = 2643; + this.match(MySqlParser.KW_AFTER); + this.state = 2644; + this.columnName(); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ADD: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DO: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + case MySqlParser.SEMI: + break; + default: + break; + } + } + break; + + case 3: + _localctx = new AlterByAddColumnsContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 2647; + this.match(MySqlParser.KW_ADD); + this.state = 2649; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COLUMN) { + { + this.state = 2648; + this.match(MySqlParser.KW_COLUMN); + } + } + + this.state = 2651; + this.match(MySqlParser.LR_BRACKET); + this.state = 2652; + this.columnName(); + this.state = 2653; + this.columnDefinition(); + this.state = 2660; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2654; + this.match(MySqlParser.COMMA); + this.state = 2655; + this.columnName(); + this.state = 2656; + this.columnDefinition(); + } + } + this.state = 2662; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2663; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 4: + _localctx = new AlterByAddIndexContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 2665; + this.match(MySqlParser.KW_ADD); + this.state = 2666; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2668; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2667; + this.indexName(); + } + } + + this.state = 2671; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 2670; + this.indexType(); + } + } + + this.state = 2673; + this.indexColumnNames(); + this.state = 2677; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 314, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2674; + this.indexOption(); + } + } + } + this.state = 2679; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 314, this._ctx); + } + } + break; + + case 5: + _localctx = new AlterByAddSpecialIndexContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 2680; + this.match(MySqlParser.KW_ADD); + this.state = 2681; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FULLTEXT || _la === MySqlParser.KW_SPATIAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2683; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 2682; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2686; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2685; + this.indexName(); + } + } + + this.state = 2688; + this.indexColumnNames(); + this.state = 2692; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 317, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2689; + this.indexOption(); + } + } + } + this.state = 2694; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 317, this._ctx); + } + } + break; + + case 6: + _localctx = new AlterByAddPrimaryKeyContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 2695; + this.match(MySqlParser.KW_ADD); + this.state = 2700; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 2696; + this.match(MySqlParser.KW_CONSTRAINT); + this.state = 2698; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 318, this._ctx) ) { + case 1: + { + this.state = 2697; + (_localctx as AlterByAddPrimaryKeyContext)._symbol = this.uid(); + } + break; + } + } + } + + this.state = 2702; + this.match(MySqlParser.KW_PRIMARY); + this.state = 2703; + this.match(MySqlParser.KW_KEY); + this.state = 2705; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 2704; + this.indexType(); + } + } + + this.state = 2707; + this.indexColumnNames(); + this.state = 2711; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 321, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2708; + this.indexOption(); + } + } + } + this.state = 2713; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 321, this._ctx); + } + } + break; + + case 7: + _localctx = new AlterByAddUniqueKeyContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 2714; + this.match(MySqlParser.KW_ADD); + this.state = 2719; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 2715; + this.match(MySqlParser.KW_CONSTRAINT); + this.state = 2717; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2716; + (_localctx as AlterByAddUniqueKeyContext)._symbol = this.uid(); + } + } + + } + } + + this.state = 2721; + this.match(MySqlParser.KW_UNIQUE); + this.state = 2723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 2722; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2726; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2725; + this.indexName(); + } + } + + this.state = 2729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 2728; + this.indexType(); + } + } + + this.state = 2731; + this.indexColumnNames(); + this.state = 2735; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 327, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 2732; + this.indexOption(); + } + } + } + this.state = 2737; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 327, this._ctx); + } + } + break; + + case 8: + _localctx = new AlterByAddForeignKeyContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 2738; + this.match(MySqlParser.KW_ADD); + this.state = 2743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONSTRAINT) { + { + this.state = 2739; + this.match(MySqlParser.KW_CONSTRAINT); + this.state = 2741; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2740; + (_localctx as AlterByAddForeignKeyContext)._symbol = this.uid(); + } + } + + } + } + + this.state = 2745; + this.match(MySqlParser.KW_FOREIGN); + this.state = 2746; + this.match(MySqlParser.KW_KEY); + this.state = 2748; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 2747; + this.indexName(); + } + } + + this.state = 2750; + this.indexColumnNames(); + this.state = 2751; + this.referenceDefinition(); + } + break; + + case 9: + _localctx = new AlterByAddCheckTableConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 2753; + this.match(MySqlParser.KW_ADD); + this.state = 2755; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 331, this._ctx) ) { + case 1: + { + this.state = 2754; + this.checkConstraintDefinition(); + } + break; + } + } + break; + + case 10: + _localctx = new AlterByDropConstraintCheckContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 2757; + this.match(MySqlParser.KW_DROP); + this.state = 2758; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHECK || _la === MySqlParser.KW_CONSTRAINT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2759; + (_localctx as AlterByDropConstraintCheckContext)._symbol = this.uid(); + } + break; + + case 11: + _localctx = new AlterByAlterCheckTableConstraintContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 2760; + this.match(MySqlParser.KW_ALTER); + this.state = 2761; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHECK || _la === MySqlParser.KW_CONSTRAINT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2762; + (_localctx as AlterByAlterCheckTableConstraintContext)._symbol = this.uid(); + this.state = 2764; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 2763; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 2767; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENFORCED) { + { + this.state = 2766; + this.match(MySqlParser.KW_ENFORCED); + } + } + + } + break; + + case 12: + _localctx = new AlterBySetAlgorithmContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 2769; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 2771; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2770; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2773; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_COPY || _la === MySqlParser.KW_INPLACE || _la === MySqlParser.KW_INSTANT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 13: + _localctx = new AlterByAlterColumnDefaultContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 2774; + this.match(MySqlParser.KW_ALTER); + this.state = 2776; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 335, this._ctx) ) { + case 1: + { + this.state = 2775; + this.match(MySqlParser.KW_COLUMN); + } + break; + } + this.state = 2778; + this.columnName(); + this.state = 2786; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 336, this._ctx) ) { + case 1: + { + this.state = 2779; + this.match(MySqlParser.KW_SET); + this.state = 2780; + this.match(MySqlParser.KW_DEFAULT); + this.state = 2781; + this.defaultValue(); + } + break; + + case 2: + { + this.state = 2782; + this.match(MySqlParser.KW_SET); + this.state = 2783; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_VISIBLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 3: + { + this.state = 2784; + this.match(MySqlParser.KW_DROP); + this.state = 2785; + this.match(MySqlParser.KW_DEFAULT); + } + break; + } + } + break; + + case 14: + _localctx = new AlterByAlterIndexVisibilityContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 2788; + this.match(MySqlParser.KW_ALTER); + this.state = 2789; + this.match(MySqlParser.KW_INDEX); + this.state = 2790; + this.indexName(); + this.state = 2791; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INVISIBLE || _la === MySqlParser.KW_VISIBLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 15: + _localctx = new AlterByChangeColumnContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 2793; + this.match(MySqlParser.KW_CHANGE); + this.state = 2795; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 337, this._ctx) ) { + case 1: + { + this.state = 2794; + this.match(MySqlParser.KW_COLUMN); + } + break; + } + this.state = 2797; + (_localctx as AlterByChangeColumnContext)._oldColumn = this.columnName(); + this.state = 2798; + (_localctx as AlterByChangeColumnContext)._newColumn = this.columnNameCreate(); + this.state = 2799; + this.columnDefinition(); + this.state = 2803; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FIRST: + { + this.state = 2800; + this.match(MySqlParser.KW_FIRST); + } + break; + case MySqlParser.KW_AFTER: + { + this.state = 2801; + this.match(MySqlParser.KW_AFTER); + this.state = 2802; + this.columnName(); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ADD: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DO: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + case MySqlParser.SEMI: + break; + default: + break; + } + } + break; + + case 16: + _localctx = new AlterByDefaultCharsetContext(_localctx); + this.enterOuterAlt(_localctx, 16); + { + this.state = 2806; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 2805; + this.match(MySqlParser.KW_DEFAULT); + } + } + + this.state = 2808; + this.match(MySqlParser.KW_CHARACTER); + this.state = 2809; + this.match(MySqlParser.KW_SET); + this.state = 2810; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 2811; + this.charsetName(); + this.state = 2817; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COLLATE) { + { + this.state = 2812; + this.match(MySqlParser.KW_COLLATE); + this.state = 2814; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2813; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2816; + this.collationName(); + } + } + + } + break; + + case 17: + _localctx = new AlterByConvertCharsetContext(_localctx); + this.enterOuterAlt(_localctx, 17); + { + this.state = 2819; + this.match(MySqlParser.KW_CONVERT); + this.state = 2820; + this.match(MySqlParser.KW_TO); + this.state = 2824; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CHARSET: + { + this.state = 2821; + this.match(MySqlParser.KW_CHARSET); + } + break; + case MySqlParser.KW_CHARACTER: + { + this.state = 2822; + this.match(MySqlParser.KW_CHARACTER); + this.state = 2823; + this.match(MySqlParser.KW_SET); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 2826; + this.charsetName(); + this.state = 2829; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COLLATE) { + { + this.state = 2827; + this.match(MySqlParser.KW_COLLATE); + this.state = 2828; + this.collationName(); + } + } + + } + break; + + case 18: + _localctx = new AlterKeysContext(_localctx); + this.enterOuterAlt(_localctx, 18); + { + this.state = 2831; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2832; + this.match(MySqlParser.KW_KEYS); + } + break; + + case 19: + _localctx = new AlterTablespaceOptionContext(_localctx); + this.enterOuterAlt(_localctx, 19); + { + this.state = 2833; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DISCARD || _la === MySqlParser.KW_IMPORT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2834; + this.match(MySqlParser.KW_TABLESPACE); + } + break; + + case 20: + _localctx = new AlterByDropColumnContext(_localctx); + this.enterOuterAlt(_localctx, 20); + { + this.state = 2835; + this.match(MySqlParser.KW_DROP); + this.state = 2837; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 344, this._ctx) ) { + case 1: + { + this.state = 2836; + this.match(MySqlParser.KW_COLUMN); + } + break; + } + this.state = 2839; + this.columnName(); + } + break; + + case 21: + _localctx = new AlterByDropIndexContext(_localctx); + this.enterOuterAlt(_localctx, 21); + { + this.state = 2840; + this.match(MySqlParser.KW_DROP); + this.state = 2841; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2842; + this.indexName(); + } + break; + + case 22: + _localctx = new AlterByDropPrimaryKeyContext(_localctx); + this.enterOuterAlt(_localctx, 22); + { + this.state = 2843; + this.match(MySqlParser.KW_DROP); + this.state = 2844; + this.match(MySqlParser.KW_PRIMARY); + this.state = 2845; + this.match(MySqlParser.KW_KEY); + } + break; + + case 23: + _localctx = new AlterByDropForeignKeyContext(_localctx); + this.enterOuterAlt(_localctx, 23); + { + this.state = 2846; + this.match(MySqlParser.KW_DROP); + this.state = 2847; + this.match(MySqlParser.KW_FOREIGN); + this.state = 2848; + this.match(MySqlParser.KW_KEY); + this.state = 2849; + (_localctx as AlterByDropForeignKeyContext)._fk_symbol = this.uid(); + } + break; + + case 24: + _localctx = new AlterByForceContext(_localctx); + this.enterOuterAlt(_localctx, 24); + { + this.state = 2850; + this.match(MySqlParser.KW_FORCE); + } + break; + + case 25: + _localctx = new AlterByLockContext(_localctx); + this.enterOuterAlt(_localctx, 25); + { + this.state = 2851; + this.match(MySqlParser.KW_LOCK); + this.state = 2853; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 2852; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 2855; + (_localctx as AlterByLockContext)._lockType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_EXCLUSIVE || _la === MySqlParser.KW_NONE || _la === MySqlParser.KW_SHARED)) { + (_localctx as AlterByLockContext)._lockType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 26: + _localctx = new AlterByModifyColumnContext(_localctx); + this.enterOuterAlt(_localctx, 26); + { + this.state = 2856; + this.match(MySqlParser.KW_MODIFY); + this.state = 2858; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 346, this._ctx) ) { + case 1: + { + this.state = 2857; + this.match(MySqlParser.KW_COLUMN); + } + break; + } + this.state = 2860; + this.columnName(); + this.state = 2861; + this.columnDefinition(); + this.state = 2865; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FIRST: + { + this.state = 2862; + this.match(MySqlParser.KW_FIRST); + } + break; + case MySqlParser.KW_AFTER: + { + this.state = 2863; + this.match(MySqlParser.KW_AFTER); + this.state = 2864; + this.columnName(); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ADD: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DO: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + case MySqlParser.SEMI: + break; + default: + break; + } + } + break; + + case 27: + _localctx = new AlterByOrderContext(_localctx); + this.enterOuterAlt(_localctx, 27); + { + this.state = 2867; + this.match(MySqlParser.KW_ORDER); + this.state = 2868; + this.match(MySqlParser.KW_BY); + this.state = 2869; + this.columnNames(); + } + break; + + case 28: + _localctx = new AlterByRenameColumnContext(_localctx); + this.enterOuterAlt(_localctx, 28); + { + this.state = 2870; + this.match(MySqlParser.KW_RENAME); + this.state = 2871; + this.match(MySqlParser.KW_COLUMN); + this.state = 2872; + (_localctx as AlterByRenameColumnContext)._olcdColumn = this.columnName(); + this.state = 2873; + this.match(MySqlParser.KW_TO); + this.state = 2874; + (_localctx as AlterByRenameColumnContext)._newColumn = this.columnNameCreate(); + } + break; + + case 29: + _localctx = new AlterByRenameIndexContext(_localctx); + this.enterOuterAlt(_localctx, 29); + { + this.state = 2876; + this.match(MySqlParser.KW_RENAME); + this.state = 2877; + (_localctx as AlterByRenameIndexContext)._indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + (_localctx as AlterByRenameIndexContext)._indexFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2878; + this.indexName(); + this.state = 2879; + this.match(MySqlParser.KW_TO); + this.state = 2880; + this.indexNameCreate(); + } + break; + + case 30: + _localctx = new AlterByRenameContext(_localctx); + this.enterOuterAlt(_localctx, 30); + { + this.state = 2882; + this.match(MySqlParser.KW_RENAME); + this.state = 2884; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS || _la === MySqlParser.KW_TO) { + { + this.state = 2883; + (_localctx as AlterByRenameContext)._renameFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_AS || _la === MySqlParser.KW_TO)) { + (_localctx as AlterByRenameContext)._renameFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 2886; + this.tableNameCreate(); + } + break; + + case 31: + _localctx = new AlterByValidateContext(_localctx); + this.enterOuterAlt(_localctx, 31); + { + this.state = 2887; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_WITH || _la === MySqlParser.KW_WITHOUT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2888; + this.match(MySqlParser.KW_VALIDATION); + } + break; + + case 32: + _localctx = new AlterPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 32); + { + this.state = 2889; + this.alterPartitionSpecification(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterPartitionSpecification(): AlterPartitionSpecificationContext { + let _localctx: AlterPartitionSpecificationContext = new AlterPartitionSpecificationContext(this._ctx, this.state); + this.enterRule(_localctx, 142, MySqlParser.RULE_alterPartitionSpecification); + let _la: number; + try { + this.state = 2990; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ADD: + _localctx = new AlterByAddPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 2892; + this.match(MySqlParser.KW_ADD); + this.state = 2893; + this.match(MySqlParser.KW_PARTITION); + this.state = 2894; + this.match(MySqlParser.LR_BRACKET); + this.state = 2895; + this.partitionDefinition(); + this.state = 2900; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2896; + this.match(MySqlParser.COMMA); + this.state = 2897; + this.partitionDefinition(); + } + } + this.state = 2902; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2903; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_DROP: + _localctx = new AlterByDropPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 2905; + this.match(MySqlParser.KW_DROP); + this.state = 2906; + this.match(MySqlParser.KW_PARTITION); + this.state = 2907; + this.partitionNames(); + } + break; + case MySqlParser.KW_DISCARD: + _localctx = new AlterByDiscardPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 2908; + this.match(MySqlParser.KW_DISCARD); + this.state = 2909; + this.match(MySqlParser.KW_PARTITION); + this.state = 2912; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2910; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2911; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 2914; + this.match(MySqlParser.KW_TABLESPACE); + } + break; + case MySqlParser.KW_IMPORT: + _localctx = new AlterByImportPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 2915; + this.match(MySqlParser.KW_IMPORT); + this.state = 2916; + this.match(MySqlParser.KW_PARTITION); + this.state = 2919; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2917; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2918; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 2921; + this.match(MySqlParser.KW_TABLESPACE); + } + break; + case MySqlParser.KW_TRUNCATE: + _localctx = new AlterByTruncatePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 2922; + this.match(MySqlParser.KW_TRUNCATE); + this.state = 2923; + this.match(MySqlParser.KW_PARTITION); + this.state = 2926; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2924; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2925; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_COALESCE: + _localctx = new AlterByCoalescePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 2928; + this.match(MySqlParser.KW_COALESCE); + this.state = 2929; + this.match(MySqlParser.KW_PARTITION); + this.state = 2930; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_REORGANIZE: + _localctx = new AlterByReorganizePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 2931; + this.match(MySqlParser.KW_REORGANIZE); + this.state = 2932; + this.match(MySqlParser.KW_PARTITION); + this.state = 2933; + this.partitionNames(); + this.state = 2934; + this.match(MySqlParser.KW_INTO); + this.state = 2935; + this.match(MySqlParser.LR_BRACKET); + this.state = 2936; + this.partitionDefinition(); + this.state = 2941; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 2937; + this.match(MySqlParser.COMMA); + this.state = 2938; + this.partitionDefinition(); + } + } + this.state = 2943; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 2944; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_EXCHANGE: + _localctx = new AlterByExchangePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 2946; + this.match(MySqlParser.KW_EXCHANGE); + this.state = 2947; + this.match(MySqlParser.KW_PARTITION); + this.state = 2948; + this.partitionName(); + this.state = 2949; + this.match(MySqlParser.KW_WITH); + this.state = 2950; + this.match(MySqlParser.KW_TABLE); + this.state = 2951; + this.tableName(); + this.state = 2954; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 355, this._ctx) ) { + case 1: + { + this.state = 2952; + (_localctx as AlterByExchangePartitionContext)._validationFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_WITH || _la === MySqlParser.KW_WITHOUT)) { + (_localctx as AlterByExchangePartitionContext)._validationFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2953; + this.match(MySqlParser.KW_VALIDATION); + } + break; + } + } + break; + case MySqlParser.KW_ANALYZE: + _localctx = new AlterByAnalyzePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 2956; + this.match(MySqlParser.KW_ANALYZE); + this.state = 2957; + this.match(MySqlParser.KW_PARTITION); + this.state = 2960; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2958; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2959; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_CHECK: + _localctx = new AlterByCheckPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 2962; + this.match(MySqlParser.KW_CHECK); + this.state = 2963; + this.match(MySqlParser.KW_PARTITION); + this.state = 2966; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2964; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2965; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_OPTIMIZE: + _localctx = new AlterByOptimizePartitionContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 2968; + this.match(MySqlParser.KW_OPTIMIZE); + this.state = 2969; + this.match(MySqlParser.KW_PARTITION); + this.state = 2972; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2970; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2971; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_REBUILD: + _localctx = new AlterByRebuildPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 2974; + this.match(MySqlParser.KW_REBUILD); + this.state = 2975; + this.match(MySqlParser.KW_PARTITION); + this.state = 2978; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2976; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2977; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_REPAIR: + _localctx = new AlterByRepairPartitionContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 2980; + this.match(MySqlParser.KW_REPAIR); + this.state = 2981; + this.match(MySqlParser.KW_PARTITION); + this.state = 2984; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 2982; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 2983; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_REMOVE: + _localctx = new AlterByRemovePartitioningContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 2986; + this.match(MySqlParser.KW_REMOVE); + this.state = 2987; + this.match(MySqlParser.KW_PARTITIONING); + } + break; + case MySqlParser.KW_UPGRADE: + _localctx = new AlterByUpgradePartitioningContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 2988; + this.match(MySqlParser.KW_UPGRADE); + this.state = 2989; + this.match(MySqlParser.KW_PARTITIONING); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropDatabase(): DropDatabaseContext { + let _localctx: DropDatabaseContext = new DropDatabaseContext(this._ctx, this.state); + this.enterRule(_localctx, 144, MySqlParser.RULE_dropDatabase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2992; + this.match(MySqlParser.KW_DROP); + this.state = 2993; + _localctx._dbFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_SCHEMA)) { + _localctx._dbFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 2995; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 362, this._ctx) ) { + case 1: + { + this.state = 2994; + this.ifExists(); + } + break; + } + this.state = 2997; + this.databaseName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropEvent(): DropEventContext { + let _localctx: DropEventContext = new DropEventContext(this._ctx, this.state); + this.enterRule(_localctx, 146, MySqlParser.RULE_dropEvent); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 2999; + this.match(MySqlParser.KW_DROP); + this.state = 3000; + this.match(MySqlParser.KW_EVENT); + this.state = 3002; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 363, this._ctx) ) { + case 1: + { + this.state = 3001; + this.ifExists(); + } + break; + } + this.state = 3004; + _localctx._event_name = this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropIndex(): DropIndexContext { + let _localctx: DropIndexContext = new DropIndexContext(this._ctx, this.state); + this.enterRule(_localctx, 148, MySqlParser.RULE_dropIndex); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 3006; + this.match(MySqlParser.KW_DROP); + this.state = 3007; + this.match(MySqlParser.KW_INDEX); + this.state = 3009; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 364, this._ctx) ) { + case 1: + { + this.state = 3008; + _localctx._intimeAction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_OFFLINE || _la === MySqlParser.KW_ONLINE)) { + _localctx._intimeAction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + this.state = 3011; + this.indexName(); + this.state = 3012; + this.match(MySqlParser.KW_ON); + this.state = 3013; + this.tableName(); + this.state = 3026; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 368, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + this.state = 3024; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALGORITHM: + { + this.state = 3014; + this.match(MySqlParser.KW_ALGORITHM); + this.state = 3016; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 3015; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 3018; + _localctx._algType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_COPY || _la === MySqlParser.KW_INPLACE)) { + _localctx._algType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_LOCK: + { + this.state = 3019; + this.match(MySqlParser.KW_LOCK); + this.state = 3021; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 3020; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 3023; + _localctx._lockType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_EXCLUSIVE || _la === MySqlParser.KW_NONE || _la === MySqlParser.KW_SHARED)) { + _localctx._lockType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + this.state = 3028; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 368, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropLogfileGroup(): DropLogfileGroupContext { + let _localctx: DropLogfileGroupContext = new DropLogfileGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 150, MySqlParser.RULE_dropLogfileGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3029; + this.match(MySqlParser.KW_DROP); + this.state = 3030; + this.match(MySqlParser.KW_LOGFILE); + this.state = 3031; + this.match(MySqlParser.KW_GROUP); + this.state = 3032; + _localctx._logfileGroupName = this.uid(); + this.state = 3033; + this.match(MySqlParser.KW_ENGINE); + this.state = 3035; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 3034; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 3037; + this.engineName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropProcedure(): DropProcedureContext { + let _localctx: DropProcedureContext = new DropProcedureContext(this._ctx, this.state); + this.enterRule(_localctx, 152, MySqlParser.RULE_dropProcedure); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3039; + this.match(MySqlParser.KW_DROP); + this.state = 3040; + this.match(MySqlParser.KW_PROCEDURE); + this.state = 3042; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 370, this._ctx) ) { + case 1: + { + this.state = 3041; + this.ifExists(); + } + break; + } + this.state = 3044; + _localctx._sp_name = this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropFunction(): DropFunctionContext { + let _localctx: DropFunctionContext = new DropFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 154, MySqlParser.RULE_dropFunction); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3046; + this.match(MySqlParser.KW_DROP); + this.state = 3047; + this.match(MySqlParser.KW_FUNCTION); + this.state = 3049; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 371, this._ctx) ) { + case 1: + { + this.state = 3048; + this.ifExists(); + } + break; + } + this.state = 3051; + this.functionName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropServer(): DropServerContext { + let _localctx: DropServerContext = new DropServerContext(this._ctx, this.state); + this.enterRule(_localctx, 156, MySqlParser.RULE_dropServer); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3053; + this.match(MySqlParser.KW_DROP); + this.state = 3054; + this.match(MySqlParser.KW_SERVER); + this.state = 3056; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 372, this._ctx) ) { + case 1: + { + this.state = 3055; + this.ifExists(); + } + break; + } + this.state = 3058; + _localctx._serverName = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropSpatial(): DropSpatialContext { + let _localctx: DropSpatialContext = new DropSpatialContext(this._ctx, this.state); + this.enterRule(_localctx, 158, MySqlParser.RULE_dropSpatial); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3060; + this.match(MySqlParser.KW_DROP); + this.state = 3061; + this.match(MySqlParser.KW_SPATIAL); + this.state = 3062; + this.match(MySqlParser.KW_REFERENCE); + this.state = 3063; + this.match(MySqlParser.KW_SYSTEM); + this.state = 3065; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IF) { + { + this.state = 3064; + this.ifExists(); + } + } + + this.state = 3067; + this.match(MySqlParser.DECIMAL_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropTable(): DropTableContext { + let _localctx: DropTableContext = new DropTableContext(this._ctx, this.state); + this.enterRule(_localctx, 160, MySqlParser.RULE_dropTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3069; + this.match(MySqlParser.KW_DROP); + this.state = 3071; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_TEMPORARY) { + { + this.state = 3070; + this.match(MySqlParser.KW_TEMPORARY); + } + } + + this.state = 3073; + this.match(MySqlParser.KW_TABLE); + this.state = 3075; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 375, this._ctx) ) { + case 1: + { + this.state = 3074; + this.ifExists(); + } + break; + } + this.state = 3077; + this.tableNames(); + this.state = 3079; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CASCADE || _la === MySqlParser.KW_RESTRICT) { + { + this.state = 3078; + _localctx._dropType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CASCADE || _la === MySqlParser.KW_RESTRICT)) { + _localctx._dropType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropTablespace(): DropTablespaceContext { + let _localctx: DropTablespaceContext = new DropTablespaceContext(this._ctx, this.state); + this.enterRule(_localctx, 162, MySqlParser.RULE_dropTablespace); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3081; + this.match(MySqlParser.KW_DROP); + this.state = 3083; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNDO) { + { + this.state = 3082; + this.match(MySqlParser.KW_UNDO); + } + } + + this.state = 3085; + this.match(MySqlParser.KW_TABLESPACE); + this.state = 3086; + this.tablespaceName(); + this.state = 3092; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ENGINE) { + { + this.state = 3087; + this.match(MySqlParser.KW_ENGINE); + this.state = 3089; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 3088; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 3091; + this.engineName(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropTrigger(): DropTriggerContext { + let _localctx: DropTriggerContext = new DropTriggerContext(this._ctx, this.state); + this.enterRule(_localctx, 164, MySqlParser.RULE_dropTrigger); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3094; + this.match(MySqlParser.KW_DROP); + this.state = 3095; + this.match(MySqlParser.KW_TRIGGER); + this.state = 3097; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 380, this._ctx) ) { + case 1: + { + this.state = 3096; + this.ifExists(); + } + break; + } + this.state = 3099; + _localctx._trigger_name = this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropView(): DropViewContext { + let _localctx: DropViewContext = new DropViewContext(this._ctx, this.state); + this.enterRule(_localctx, 166, MySqlParser.RULE_dropView); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3101; + this.match(MySqlParser.KW_DROP); + this.state = 3102; + this.match(MySqlParser.KW_VIEW); + this.state = 3104; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 381, this._ctx) ) { + case 1: + { + this.state = 3103; + this.ifExists(); + } + break; + } + this.state = 3106; + this.viewName(); + this.state = 3111; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3107; + this.match(MySqlParser.COMMA); + this.state = 3108; + this.viewName(); + } + } + this.state = 3113; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3115; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CASCADE || _la === MySqlParser.KW_RESTRICT) { + { + this.state = 3114; + _localctx._dropType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CASCADE || _la === MySqlParser.KW_RESTRICT)) { + _localctx._dropType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropRole(): DropRoleContext { + let _localctx: DropRoleContext = new DropRoleContext(this._ctx, this.state); + this.enterRule(_localctx, 168, MySqlParser.RULE_dropRole); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3117; + this.match(MySqlParser.KW_DROP); + this.state = 3118; + this.match(MySqlParser.KW_ROLE); + this.state = 3120; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 384, this._ctx) ) { + case 1: + { + this.state = 3119; + this.ifExists(); + } + break; + } + this.state = 3122; + this.userOrRoleNames(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setRole(): SetRoleContext { + let _localctx: SetRoleContext = new SetRoleContext(this._ctx, this.state); + this.enterRule(_localctx, 170, MySqlParser.RULE_setRole); + let _la: number; + try { + this.state = 3144; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 387, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3124; + this.match(MySqlParser.KW_SET); + this.state = 3125; + this.match(MySqlParser.KW_DEFAULT); + this.state = 3126; + this.match(MySqlParser.KW_ROLE); + this.state = 3130; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 385, this._ctx) ) { + case 1: + { + this.state = 3127; + this.match(MySqlParser.KW_NONE); + } + break; + + case 2: + { + this.state = 3128; + this.match(MySqlParser.KW_ALL); + } + break; + + case 3: + { + this.state = 3129; + this.userOrRoleNames(); + } + break; + } + this.state = 3132; + this.match(MySqlParser.KW_TO); + { + this.state = 3133; + this.userOrRoleName(); + } + this.state = 3138; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3134; + this.match(MySqlParser.COMMA); + { + this.state = 3135; + this.userOrRoleName(); + } + } + } + this.state = 3140; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3141; + this.match(MySqlParser.KW_SET); + this.state = 3142; + this.match(MySqlParser.KW_ROLE); + this.state = 3143; + this.roleOption(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public renameTable(): RenameTableContext { + let _localctx: RenameTableContext = new RenameTableContext(this._ctx, this.state); + this.enterRule(_localctx, 172, MySqlParser.RULE_renameTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3146; + this.match(MySqlParser.KW_RENAME); + this.state = 3147; + this.match(MySqlParser.KW_TABLE); + this.state = 3148; + this.renameTableClause(); + this.state = 3153; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3149; + this.match(MySqlParser.COMMA); + this.state = 3150; + this.renameTableClause(); + } + } + this.state = 3155; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public renameTableClause(): RenameTableClauseContext { + let _localctx: RenameTableClauseContext = new RenameTableClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 174, MySqlParser.RULE_renameTableClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3156; + this.tableName(); + this.state = 3157; + this.match(MySqlParser.KW_TO); + this.state = 3158; + this.tableNameCreate(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public truncateTable(): TruncateTableContext { + let _localctx: TruncateTableContext = new TruncateTableContext(this._ctx, this.state); + this.enterRule(_localctx, 176, MySqlParser.RULE_truncateTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3160; + this.match(MySqlParser.KW_TRUNCATE); + this.state = 3162; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_TABLE) { + { + this.state = 3161; + this.match(MySqlParser.KW_TABLE); + } + } + + this.state = 3164; + this.tableName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public callStatement(): CallStatementContext { + let _localctx: CallStatementContext = new CallStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 178, MySqlParser.RULE_callStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3166; + this.match(MySqlParser.KW_CALL); + this.state = 3167; + _localctx._sp_name = this.fullId(); + this.state = 3174; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 391, this._ctx) ) { + case 1: + { + this.state = 3168; + this.match(MySqlParser.LR_BRACKET); + this.state = 3171; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 390, this._ctx) ) { + case 1: + { + this.state = 3169; + this.constants(); + } + break; + + case 2: + { + this.state = 3170; + this.expressions(); + } + break; + } + this.state = 3173; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public deleteStatement(): DeleteStatementContext { + let _localctx: DeleteStatementContext = new DeleteStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 180, MySqlParser.RULE_deleteStatement); + try { + this.state = 3178; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 392, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3176; + this.singleDeleteStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3177; + this.multipleDeleteStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public doStatement(): DoStatementContext { + let _localctx: DoStatementContext = new DoStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 182, MySqlParser.RULE_doStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3180; + this.match(MySqlParser.KW_DO); + this.state = 3181; + this.expressions(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerStatement(): HandlerStatementContext { + let _localctx: HandlerStatementContext = new HandlerStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 184, MySqlParser.RULE_handlerStatement); + try { + this.state = 3187; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 393, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3183; + this.handlerOpenStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3184; + this.handlerReadIndexStatement(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 3185; + this.handlerReadStatement(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 3186; + this.handlerCloseStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public insertStatement(): InsertStatementContext { + let _localctx: InsertStatementContext = new InsertStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 186, MySqlParser.RULE_insertStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3189; + this.match(MySqlParser.KW_INSERT); + this.state = 3191; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DELAYED || _la === MySqlParser.KW_HIGH_PRIORITY || _la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3190; + _localctx._priority = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DELAYED || _la === MySqlParser.KW_HIGH_PRIORITY || _la === MySqlParser.KW_LOW_PRIORITY)) { + _localctx._priority = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3194; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3193; + this.match(MySqlParser.KW_IGNORE); + } + } + + this.state = 3197; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3196; + this.match(MySqlParser.KW_INTO); + } + } + + this.state = 3199; + this.tableName(); + this.state = 3206; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 3200; + this.match(MySqlParser.KW_PARTITION); + this.state = 3201; + this.match(MySqlParser.LR_BRACKET); + this.state = 3203; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 3202; + this.partitionNames(); + } + } + + this.state = 3205; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 3219; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 402, this._ctx) ) { + case 1: + { + this.state = 3209; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 399, this._ctx) ) { + case 1: + { + this.state = 3208; + this.fullColumnNames(); + } + break; + } + this.state = 3213; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 400, this._ctx) ) { + case 1: + { + this.state = 3211; + this.valuesOrValueList(); + } + break; + + case 2: + { + this.state = 3212; + this.selectOrTableOrValues(); + } + break; + } + this.state = 3216; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 401, this._ctx) ) { + case 1: + { + this.state = 3215; + this.asRowAlias(); + } + break; + } + } + break; + + case 2: + { + this.state = 3218; + this.setAssignmentList(); + } + break; + } + this.state = 3222; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3221; + this.asRowAlias(); + } + } + + this.state = 3236; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ON) { + { + this.state = 3224; + this.match(MySqlParser.KW_ON); + this.state = 3225; + this.match(MySqlParser.KW_DUPLICATE); + this.state = 3226; + this.match(MySqlParser.KW_KEY); + this.state = 3227; + this.match(MySqlParser.KW_UPDATE); + this.state = 3228; + _localctx._duplicatedFirst = this.updatedElement(); + this.state = 3233; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3229; + this.match(MySqlParser.COMMA); + this.state = 3230; + _localctx._updatedElement = this.updatedElement(); + _localctx._duplicatedElements.push(_localctx._updatedElement); + } + } + this.state = 3235; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public asRowAlias(): AsRowAliasContext { + let _localctx: AsRowAliasContext = new AsRowAliasContext(this._ctx, this.state); + this.enterRule(_localctx, 188, MySqlParser.RULE_asRowAlias); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3238; + this.match(MySqlParser.KW_AS); + this.state = 3239; + _localctx._rowAlias = this.uid(); + this.state = 3241; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 406, this._ctx) ) { + case 1: + { + this.state = 3240; + this.fullColumnNames(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectOrTableOrValues(): SelectOrTableOrValuesContext { + let _localctx: SelectOrTableOrValuesContext = new SelectOrTableOrValuesContext(this._ctx, this.state); + this.enterRule(_localctx, 190, MySqlParser.RULE_selectOrTableOrValues); + try { + this.state = 3247; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + case MySqlParser.LR_BRACKET: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3243; + this.selectStatement(); + } + break; + case MySqlParser.KW_TABLE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3244; + this.match(MySqlParser.KW_TABLE); + this.state = 3245; + this.tableName(); + } + break; + case MySqlParser.KW_VALUES: + this.enterOuterAlt(_localctx, 3); + { + this.state = 3246; + this.rowValuesList(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public interSectStatement(): InterSectStatementContext { + let _localctx: InterSectStatementContext = new InterSectStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 192, MySqlParser.RULE_interSectStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3249; + this.interSectQuery(); + this.state = 3255; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 3250; + this.match(MySqlParser.KW_INTERSECT); + this.state = 3252; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3251; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3254; + this.interSectQuery(); + } + } + this.state = 3257; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_INTERSECT); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public interSectQuery(): InterSectQueryContext { + let _localctx: InterSectQueryContext = new InterSectQueryContext(this._ctx, this.state); + this.enterRule(_localctx, 194, MySqlParser.RULE_interSectQuery); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3260; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 3259; + this.match(MySqlParser.LR_BRACKET); + } + } + + this.state = 3262; + this.querySpecification(); + this.state = 3264; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 411, this._ctx) ) { + case 1: + { + this.state = 3263; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public loadDataStatement(): LoadDataStatementContext { + let _localctx: LoadDataStatementContext = new LoadDataStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 196, MySqlParser.RULE_loadDataStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3266; + this.match(MySqlParser.KW_LOAD); + this.state = 3267; + this.match(MySqlParser.KW_DATA); + this.state = 3269; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY || _la === MySqlParser.KW_CONCURRENT) { + { + this.state = 3268; + _localctx._priority = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LOW_PRIORITY || _la === MySqlParser.KW_CONCURRENT)) { + _localctx._priority = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3272; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOCAL) { + { + this.state = 3271; + this.match(MySqlParser.KW_LOCAL); + } + } + + this.state = 3274; + this.match(MySqlParser.KW_INFILE); + this.state = 3275; + _localctx._filename = this.match(MySqlParser.STRING_LITERAL); + this.state = 3277; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE) { + { + this.state = 3276; + _localctx._violation = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE)) { + _localctx._violation = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3279; + this.match(MySqlParser.KW_INTO); + this.state = 3280; + this.match(MySqlParser.KW_TABLE); + this.state = 3281; + this.tableName(); + this.state = 3287; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 3282; + this.match(MySqlParser.KW_PARTITION); + this.state = 3283; + this.match(MySqlParser.LR_BRACKET); + this.state = 3284; + this.partitionNames(); + this.state = 3285; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 3292; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER) { + { + this.state = 3289; + this.match(MySqlParser.KW_CHARACTER); + this.state = 3290; + this.match(MySqlParser.KW_SET); + this.state = 3291; + _localctx._charset = this.charsetName(); + } + } + + this.state = 3300; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COLUMNS || _la === MySqlParser.KW_FIELDS) { + { + this.state = 3294; + _localctx._fieldsFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_COLUMNS || _la === MySqlParser.KW_FIELDS)) { + _localctx._fieldsFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3296; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 3295; + this.selectFieldsInto(); + } + } + this.state = 3298; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_ENCLOSED || _la === MySqlParser.KW_ESCAPED || _la === MySqlParser.KW_OPTIONALLY || _la === MySqlParser.KW_TERMINATED); + } + } + + this.state = 3308; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LINES) { + { + this.state = 3302; + this.match(MySqlParser.KW_LINES); + this.state = 3304; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 3303; + this.selectLinesInto(); + } + } + this.state = 3306; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_STARTING || _la === MySqlParser.KW_TERMINATED); + } + } + + this.state = 3314; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3310; + this.match(MySqlParser.KW_IGNORE); + this.state = 3311; + this.decimalLiteral(); + this.state = 3312; + _localctx._linesFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LINES || _la === MySqlParser.KW_ROWS)) { + _localctx._linesFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3327; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 423, this._ctx) ) { + case 1: + { + this.state = 3316; + this.match(MySqlParser.LR_BRACKET); + this.state = 3317; + this.assignmentField(); + this.state = 3322; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3318; + this.match(MySqlParser.COMMA); + this.state = 3319; + this.assignmentField(); + } + } + this.state = 3324; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3325; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 3338; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 425, this._ctx) ) { + case 1: + { + this.state = 3329; + this.match(MySqlParser.KW_SET); + this.state = 3330; + this.updatedElement(); + this.state = 3335; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3331; + this.match(MySqlParser.COMMA); + this.state = 3332; + this.updatedElement(); + } + } + this.state = 3337; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public loadXmlStatement(): LoadXmlStatementContext { + let _localctx: LoadXmlStatementContext = new LoadXmlStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 198, MySqlParser.RULE_loadXmlStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3340; + this.match(MySqlParser.KW_LOAD); + this.state = 3341; + this.match(MySqlParser.KW_XML); + this.state = 3343; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY || _la === MySqlParser.KW_CONCURRENT) { + { + this.state = 3342; + _localctx._priority = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LOW_PRIORITY || _la === MySqlParser.KW_CONCURRENT)) { + _localctx._priority = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3346; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOCAL) { + { + this.state = 3345; + this.match(MySqlParser.KW_LOCAL); + } + } + + this.state = 3348; + this.match(MySqlParser.KW_INFILE); + this.state = 3349; + _localctx._filename = this.match(MySqlParser.STRING_LITERAL); + this.state = 3351; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE) { + { + this.state = 3350; + _localctx._violation = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_REPLACE)) { + _localctx._violation = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3353; + this.match(MySqlParser.KW_INTO); + this.state = 3354; + this.match(MySqlParser.KW_TABLE); + this.state = 3355; + this.tableName(); + this.state = 3359; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER) { + { + this.state = 3356; + this.match(MySqlParser.KW_CHARACTER); + this.state = 3357; + this.match(MySqlParser.KW_SET); + this.state = 3358; + _localctx._charset = this.charsetName(); + } + } + + this.state = 3371; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ROWS) { + { + this.state = 3361; + this.match(MySqlParser.KW_ROWS); + this.state = 3362; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 3363; + this.match(MySqlParser.KW_BY); + this.state = 3365; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LESS_SYMBOL) { + { + this.state = 3364; + this.match(MySqlParser.LESS_SYMBOL); + } + } + + this.state = 3367; + _localctx._tag = this.match(MySqlParser.STRING_LITERAL); + this.state = 3369; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.GREATER_SYMBOL) { + { + this.state = 3368; + this.match(MySqlParser.GREATER_SYMBOL); + } + } + + } + } + + this.state = 3377; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3373; + this.match(MySqlParser.KW_IGNORE); + this.state = 3374; + this.decimalLiteral(); + this.state = 3375; + _localctx._linesFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LINES || _la === MySqlParser.KW_ROWS)) { + _localctx._linesFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3390; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 435, this._ctx) ) { + case 1: + { + this.state = 3379; + this.match(MySqlParser.LR_BRACKET); + this.state = 3380; + this.assignmentField(); + this.state = 3385; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3381; + this.match(MySqlParser.COMMA); + this.state = 3382; + this.assignmentField(); + } + } + this.state = 3387; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3388; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 3401; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 437, this._ctx) ) { + case 1: + { + this.state = 3392; + this.match(MySqlParser.KW_SET); + this.state = 3393; + this.updatedElement(); + this.state = 3398; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3394; + this.match(MySqlParser.COMMA); + this.state = 3395; + this.updatedElement(); + } + } + this.state = 3400; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public parenthesizedQuery(): ParenthesizedQueryContext { + let _localctx: ParenthesizedQueryContext = new ParenthesizedQueryContext(this._ctx, this.state); + this.enterRule(_localctx, 200, MySqlParser.RULE_parenthesizedQuery); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3403; + this.match(MySqlParser.LR_BRACKET); + this.state = 3404; + this.parenthesizedQueryExpression(); + this.state = 3406; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3405; + this.orderByClause(); + } + } + + this.state = 3409; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3408; + this.limitClause(); + } + } + + this.state = 3411; + this.match(MySqlParser.RR_BRACKET); + this.state = 3413; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3412; + this.orderByClause(); + } + } + + this.state = 3416; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3415; + this.limitClause(); + } + } + + this.state = 3419; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3418; + this.intoClause(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public replaceStatement(): ReplaceStatementContext { + let _localctx: ReplaceStatementContext = new ReplaceStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 202, MySqlParser.RULE_replaceStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3421; + this.match(MySqlParser.KW_REPLACE); + this.state = 3423; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DELAYED || _la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3422; + _localctx._priority = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DELAYED || _la === MySqlParser.KW_LOW_PRIORITY)) { + _localctx._priority = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3426; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3425; + this.match(MySqlParser.KW_INTO); + } + } + + this.state = 3428; + this.tableName(); + this.state = 3434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 3429; + this.match(MySqlParser.KW_PARTITION); + this.state = 3430; + this.match(MySqlParser.LR_BRACKET); + this.state = 3431; + this.partitionNames(); + this.state = 3432; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 3444; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_VALUE: + case MySqlParser.LR_BRACKET: + { + this.state = 3440; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 446, this._ctx) ) { + case 1: + { + this.state = 3436; + this.match(MySqlParser.LR_BRACKET); + this.state = 3437; + this.columnNames(); + this.state = 3438; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 3442; + this.replaceStatementValuesOrSelectOrTable(); + } + break; + case MySqlParser.KW_SET: + { + this.state = 3443; + this.setAssignmentList(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectStatement(): SelectStatementContext { + let _localctx: SelectStatementContext = new SelectStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 204, MySqlParser.RULE_selectStatement); + let _la: number; + try { + let _alt: number; + this.state = 3515; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 466, this._ctx) ) { + case 1: + _localctx = new SimpleSelectContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 3446; + this.querySpecification(); + this.state = 3448; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 448, this._ctx) ) { + case 1: + { + this.state = 3447; + this.lockClause(); + } + break; + } + } + break; + + case 2: + _localctx = new SimpleSelectContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 3450; + this.querySpecificationNointo(); + this.state = 3452; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 449, this._ctx) ) { + case 1: + { + this.state = 3451; + this.lockClause(); + } + break; + } + this.state = 3455; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 450, this._ctx) ) { + case 1: + { + this.state = 3454; + this.intoClause(); + } + break; + } + } + break; + + case 3: + _localctx = new ParenthesisSelectContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 3457; + this.queryExpression(); + this.state = 3459; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 451, this._ctx) ) { + case 1: + { + this.state = 3458; + this.lockClause(); + } + break; + } + } + break; + + case 4: + _localctx = new UnionSelectContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 3461; + this.querySpecificationNointo(); + this.state = 3463; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 3462; + this.unionStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 3465; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 452, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 3475; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 455, this._ctx) ) { + case 1: + { + this.state = 3467; + this.match(MySqlParser.KW_UNION); + this.state = 3469; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3468; + (_localctx as UnionSelectContext)._unionType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + (_localctx as UnionSelectContext)._unionType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3473; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + { + this.state = 3471; + this.querySpecification(); + } + break; + case MySqlParser.LR_BRACKET: + { + this.state = 3472; + this.queryExpression(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + this.state = 3478; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 456, this._ctx) ) { + case 1: + { + this.state = 3477; + this.orderByClause(); + } + break; + } + this.state = 3481; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 457, this._ctx) ) { + case 1: + { + this.state = 3480; + this.limitClause(); + } + break; + } + this.state = 3484; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 458, this._ctx) ) { + case 1: + { + this.state = 3483; + this.lockClause(); + } + break; + } + } + break; + + case 5: + _localctx = new UnionParenthesisSelectContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 3486; + this.queryExpressionNointo(); + this.state = 3488; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 3487; + this.unionParenthesis(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 3490; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 459, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 3497; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 461, this._ctx) ) { + case 1: + { + this.state = 3492; + this.match(MySqlParser.KW_UNION); + this.state = 3494; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3493; + (_localctx as UnionParenthesisSelectContext)._unionType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + (_localctx as UnionParenthesisSelectContext)._unionType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3496; + this.queryExpression(); + } + break; + } + this.state = 3500; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 462, this._ctx) ) { + case 1: + { + this.state = 3499; + this.orderByClause(); + } + break; + } + this.state = 3503; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 463, this._ctx) ) { + case 1: + { + this.state = 3502; + this.limitClause(); + } + break; + } + this.state = 3506; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 464, this._ctx) ) { + case 1: + { + this.state = 3505; + this.lockClause(); + } + break; + } + } + break; + + case 6: + _localctx = new WithLateralStatementContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 3508; + this.querySpecificationNointo(); + this.state = 3511; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 3509; + this.match(MySqlParser.COMMA); + this.state = 3510; + this.lateralStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 3513; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 465, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setOperations(): SetOperationsContext { + let _localctx: SetOperationsContext = new SetOperationsContext(this._ctx, this.state); + this.enterRule(_localctx, 206, MySqlParser.RULE_setOperations); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3518; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WITH) { + { + this.state = 3517; + this.withClause(); + } + } + + this.state = 3520; + this.queryExpressionBody(0); + this.state = 3522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3521; + this.orderByClause(); + } + } + + this.state = 3525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3524; + this.limitClause(); + } + } + + this.state = 3528; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3527; + this.intoClause(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + + public queryExpressionBody(): QueryExpressionBodyContext; + public queryExpressionBody(_p: number): QueryExpressionBodyContext; + // @RuleVersion(0) + public queryExpressionBody(_p?: number): QueryExpressionBodyContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let _localctx: QueryExpressionBodyContext = new QueryExpressionBodyContext(this._ctx, _parentState); + let _prevctx: QueryExpressionBodyContext = _localctx; + let _startState: number = 208; + this.enterRecursionRule(_localctx, 208, MySqlParser.RULE_queryExpressionBody, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + { + this.state = 3531; + this.queryItem(0); + } + this._ctx._stop = this._input.tryLT(-1); + this.state = 3547; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 474, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = _localctx; + { + this.state = 3545; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 473, this._ctx) ) { + case 1: + { + _localctx = new QueryExpressionBodyContext(_parentctx, _parentState); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_queryExpressionBody); + this.state = 3533; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 3534; + this.match(MySqlParser.KW_UNION); + this.state = 3536; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3535; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3538; + this.queryItem(0); + } + break; + + case 2: + { + _localctx = new QueryExpressionBodyContext(_parentctx, _parentState); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_queryExpressionBody); + this.state = 3539; + if (!(this.precpred(this._ctx, 1))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); + } + this.state = 3540; + this.match(MySqlParser.KW_EXCEPT); + this.state = 3542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3541; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3544; + this.queryItem(0); + } + break; + } + } + } + this.state = 3549; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 474, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public queryItem(): QueryItemContext; + public queryItem(_p: number): QueryItemContext; + // @RuleVersion(0) + public queryItem(_p?: number): QueryItemContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let _localctx: QueryItemContext = new QueryItemContext(this._ctx, _parentState); + let _prevctx: QueryItemContext = _localctx; + let _startState: number = 210; + this.enterRecursionRule(_localctx, 210, MySqlParser.RULE_queryItem, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + { + this.state = 3551; + this.queryPrimary(); + } + this._ctx._stop = this._input.tryLT(-1); + this.state = 3561; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 476, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = _localctx; + { + { + _localctx = new QueryItemContext(_parentctx, _parentState); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_queryItem); + this.state = 3553; + if (!(this.precpred(this._ctx, 1))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); + } + this.state = 3554; + this.match(MySqlParser.KW_INTERSECT); + this.state = 3556; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 3555; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3558; + this.queryPrimary(); + } + } + } + this.state = 3563; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 476, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return _localctx; + } + // @RuleVersion(0) + public queryPrimary(): QueryPrimaryContext { + let _localctx: QueryPrimaryContext = new QueryPrimaryContext(this._ctx, this.state); + this.enterRule(_localctx, 212, MySqlParser.RULE_queryPrimary); + let _la: number; + try { + this.state = 3578; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 480, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3564; + this.queryBlock(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3565; + this.match(MySqlParser.LR_BRACKET); + this.state = 3566; + this.queryExpressionBody(0); + this.state = 3568; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3567; + this.orderByClause(); + } + } + + this.state = 3571; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3570; + this.limitClause(); + } + } + + this.state = 3574; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3573; + this.intoClause(); + } + } + + this.state = 3576; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public updateStatement(): UpdateStatementContext { + let _localctx: UpdateStatementContext = new UpdateStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 214, MySqlParser.RULE_updateStatement); + try { + this.state = 3582; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 481, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3580; + this.singleUpdateStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3581; + this.multipleUpdateStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public valuesStatement(): ValuesStatementContext { + let _localctx: ValuesStatementContext = new ValuesStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 216, MySqlParser.RULE_valuesStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3584; + this.rowValuesList(); + this.state = 3588; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 482, this._ctx) ) { + case 1: + { + this.state = 3585; + this.match(MySqlParser.KW_ORDER); + this.state = 3586; + this.match(MySqlParser.KW_BY); + this.state = 3587; + this.indexColumnName(); + } + break; + } + this.state = 3592; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 483, this._ctx) ) { + case 1: + { + this.state = 3590; + this.match(MySqlParser.KW_LIMIT); + this.state = 3591; + this.limitClauseAtom(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public parenthesizedQueryExpression(): ParenthesizedQueryExpressionContext { + let _localctx: ParenthesizedQueryExpressionContext = new ParenthesizedQueryExpressionContext(this._ctx, this.state); + this.enterRule(_localctx, 218, MySqlParser.RULE_parenthesizedQueryExpression); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3594; + this.queryBlock(); + this.state = 3599; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_EXCEPT || _la === MySqlParser.KW_UNION || _la === MySqlParser.KW_INTERSECT) { + { + { + this.state = 3595; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_EXCEPT || _la === MySqlParser.KW_UNION || _la === MySqlParser.KW_INTERSECT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3596; + this.queryBlock(); + } + } + this.state = 3601; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3603; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 485, this._ctx) ) { + case 1: + { + this.state = 3602; + this.orderByClause(); + } + break; + } + this.state = 3606; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 486, this._ctx) ) { + case 1: + { + this.state = 3605; + this.limitClause(); + } + break; + } + this.state = 3609; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INTO) { + { + this.state = 3608; + this.intoClause(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public queryBlock(): QueryBlockContext { + let _localctx: QueryBlockContext = new QueryBlockContext(this._ctx, this.state); + this.enterRule(_localctx, 220, MySqlParser.RULE_queryBlock); + try { + this.state = 3614; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + case MySqlParser.LR_BRACKET: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3611; + this.selectStatement(); + } + break; + case MySqlParser.KW_TABLE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3612; + this.tableStatement(); + } + break; + case MySqlParser.KW_VALUES: + this.enterOuterAlt(_localctx, 3); + { + this.state = 3613; + this.valuesStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public replaceStatementValuesOrSelectOrTable(): ReplaceStatementValuesOrSelectOrTableContext { + let _localctx: ReplaceStatementValuesOrSelectOrTableContext = new ReplaceStatementValuesOrSelectOrTableContext(this._ctx, this.state); + this.enterRule(_localctx, 222, MySqlParser.RULE_replaceStatementValuesOrSelectOrTable); + try { + this.state = 3621; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 489, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3616; + this.selectStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3617; + this.match(MySqlParser.KW_TABLE); + this.state = 3618; + this.tableName(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 3619; + this.valuesOrValueList(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 3620; + this.rowValuesList(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public rowValuesList(): RowValuesListContext { + let _localctx: RowValuesListContext = new RowValuesListContext(this._ctx, this.state); + this.enterRule(_localctx, 224, MySqlParser.RULE_rowValuesList); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 3623; + this.match(MySqlParser.KW_VALUES); + this.state = 3624; + this.match(MySqlParser.KW_ROW); + this.state = 3625; + this.expressionsWithDefaults(); + this.state = 3631; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 490, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3626; + this.match(MySqlParser.COMMA); + this.state = 3627; + this.match(MySqlParser.KW_ROW); + this.state = 3628; + this.expressionsWithDefaults(); + } + } + } + this.state = 3633; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 490, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setAssignmentList(): SetAssignmentListContext { + let _localctx: SetAssignmentListContext = new SetAssignmentListContext(this._ctx, this.state); + this.enterRule(_localctx, 226, MySqlParser.RULE_setAssignmentList); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3634; + this.match(MySqlParser.KW_SET); + this.state = 3635; + _localctx._setFirst = this.updatedElement(); + this.state = 3640; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3636; + this.match(MySqlParser.COMMA); + this.state = 3637; + _localctx._updatedElement = this.updatedElement(); + _localctx._setElements.push(_localctx._updatedElement); + } + } + this.state = 3642; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public updatedElement(): UpdatedElementContext { + let _localctx: UpdatedElementContext = new UpdatedElementContext(this._ctx, this.state); + this.enterRule(_localctx, 228, MySqlParser.RULE_updatedElement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3643; + this.columnName(); + this.state = 3644; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 3645; + this.expressionOrDefault(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public assignmentField(): AssignmentFieldContext { + let _localctx: AssignmentFieldContext = new AssignmentFieldContext(this._ctx, this.state); + this.enterRule(_localctx, 230, MySqlParser.RULE_assignmentField); + try { + this.state = 3649; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3647; + _localctx._var_name = this.uid(); + } + break; + case MySqlParser.LOCAL_ID: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3648; + this.match(MySqlParser.LOCAL_ID); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lockClause(): LockClauseContext { + let _localctx: LockClauseContext = new LockClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 232, MySqlParser.RULE_lockClause); + let _la: number; + try { + let _alt: number; + this.state = 3672; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FOR: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3651; + this.match(MySqlParser.KW_FOR); + this.state = 3652; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UPDATE || _la === MySqlParser.KW_SHARE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3662; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 494, this._ctx) ) { + case 1: + { + this.state = 3653; + this.match(MySqlParser.KW_OF); + this.state = 3654; + this.tableName(); + this.state = 3659; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 493, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3655; + this.match(MySqlParser.COMMA); + this.state = 3656; + this.tableName(); + } + } + } + this.state = 3661; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 493, this._ctx); + } + } + break; + } + this.state = 3666; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 495, this._ctx) ) { + case 1: + { + this.state = 3664; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SKIP || _la === MySqlParser.KW_NOWAIT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3665; + this.match(MySqlParser.KW_LOCKED); + } + break; + } + } + break; + case MySqlParser.KW_LOCK: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3668; + this.match(MySqlParser.KW_LOCK); + this.state = 3669; + this.match(MySqlParser.KW_IN); + this.state = 3670; + this.match(MySqlParser.KW_SHARE); + this.state = 3671; + this.match(MySqlParser.KW_MODE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public singleDeleteStatement(): SingleDeleteStatementContext { + let _localctx: SingleDeleteStatementContext = new SingleDeleteStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 234, MySqlParser.RULE_singleDeleteStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3674; + this.match(MySqlParser.KW_DELETE); + this.state = 3676; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3675; + _localctx._priority = this.match(MySqlParser.KW_LOW_PRIORITY); + } + } + + this.state = 3679; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_QUICK) { + { + this.state = 3678; + this.match(MySqlParser.KW_QUICK); + } + } + + this.state = 3682; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3681; + this.match(MySqlParser.KW_IGNORE); + } + } + + this.state = 3684; + this.match(MySqlParser.KW_FROM); + this.state = 3685; + this.tableName(); + this.state = 3690; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 501, this._ctx) ) { + case 1: + { + this.state = 3687; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3686; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 3689; + _localctx._table_alias = this.uid(); + } + break; + } + this.state = 3697; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 3692; + this.match(MySqlParser.KW_PARTITION); + this.state = 3693; + this.match(MySqlParser.LR_BRACKET); + this.state = 3694; + this.partitionNames(); + this.state = 3695; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 3701; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3699; + this.match(MySqlParser.KW_WHERE); + this.state = 3700; + this.expression(0); + } + } + + this.state = 3704; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3703; + this.orderByClause(); + } + } + + this.state = 3708; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3706; + this.match(MySqlParser.KW_LIMIT); + this.state = 3707; + this.limitClauseAtom(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public multipleDeleteStatement(): MultipleDeleteStatementContext { + let _localctx: MultipleDeleteStatementContext = new MultipleDeleteStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 236, MySqlParser.RULE_multipleDeleteStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3710; + this.match(MySqlParser.KW_DELETE); + this.state = 3712; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3711; + _localctx._priority = this.match(MySqlParser.KW_LOW_PRIORITY); + } + } + + this.state = 3715; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 507, this._ctx) ) { + case 1: + { + this.state = 3714; + this.match(MySqlParser.KW_QUICK); + } + break; + } + this.state = 3718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3717; + this.match(MySqlParser.KW_IGNORE); + } + } + + this.state = 3759; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 3720; + this.tableName(); + this.state = 3723; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT) { + { + this.state = 3721; + this.match(MySqlParser.DOT); + this.state = 3722; + this.match(MySqlParser.STAR); + } + } + + this.state = 3733; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3725; + this.match(MySqlParser.COMMA); + this.state = 3726; + this.tableName(); + this.state = 3729; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT) { + { + this.state = 3727; + this.match(MySqlParser.DOT); + this.state = 3728; + this.match(MySqlParser.STAR); + } + } + + } + } + this.state = 3735; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3736; + this.match(MySqlParser.KW_FROM); + this.state = 3737; + this.tableSources(); + } + break; + case MySqlParser.KW_FROM: + { + this.state = 3739; + this.match(MySqlParser.KW_FROM); + this.state = 3740; + this.tableName(); + this.state = 3743; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT) { + { + this.state = 3741; + this.match(MySqlParser.DOT); + this.state = 3742; + this.match(MySqlParser.STAR); + } + } + + this.state = 3753; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3745; + this.match(MySqlParser.COMMA); + this.state = 3746; + this.tableName(); + this.state = 3749; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT) { + { + this.state = 3747; + this.match(MySqlParser.DOT); + this.state = 3748; + this.match(MySqlParser.STAR); + } + } + + } + } + this.state = 3755; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3756; + this.match(MySqlParser.KW_USING); + this.state = 3757; + this.tableSources(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 3763; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3761; + this.match(MySqlParser.KW_WHERE); + this.state = 3762; + this.expression(0); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerOpenStatement(): HandlerOpenStatementContext { + let _localctx: HandlerOpenStatementContext = new HandlerOpenStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 238, MySqlParser.RULE_handlerOpenStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3765; + this.match(MySqlParser.KW_HANDLER); + this.state = 3766; + this.tableName(); + this.state = 3767; + this.match(MySqlParser.KW_OPEN); + this.state = 3772; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 518, this._ctx) ) { + case 1: + { + this.state = 3769; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3768; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 3771; + _localctx._table_alias = this.uid(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerReadIndexStatement(): HandlerReadIndexStatementContext { + let _localctx: HandlerReadIndexStatementContext = new HandlerReadIndexStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 240, MySqlParser.RULE_handlerReadIndexStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3774; + this.match(MySqlParser.KW_HANDLER); + this.state = 3775; + this.tableName(); + this.state = 3776; + this.match(MySqlParser.KW_READ); + this.state = 3777; + this.indexName(); + this.state = 3784; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.EQUAL_SYMBOL: + case MySqlParser.GREATER_SYMBOL: + case MySqlParser.LESS_SYMBOL: + { + this.state = 3778; + this.comparisonBase(); + this.state = 3779; + this.match(MySqlParser.LR_BRACKET); + this.state = 3780; + this.constants(); + this.state = 3781; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_FIRST: + case MySqlParser.KW_LAST: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_PREV: + { + this.state = 3783; + _localctx._moveOrder = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FIRST || _la === MySqlParser.KW_LAST || _la === MySqlParser.KW_NEXT || _la === MySqlParser.KW_PREV)) { + _localctx._moveOrder = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 3788; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3786; + this.match(MySqlParser.KW_WHERE); + this.state = 3787; + this.expression(0); + } + } + + this.state = 3792; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3790; + this.match(MySqlParser.KW_LIMIT); + this.state = 3791; + this.limitClauseAtom(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerReadStatement(): HandlerReadStatementContext { + let _localctx: HandlerReadStatementContext = new HandlerReadStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 242, MySqlParser.RULE_handlerReadStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3794; + this.match(MySqlParser.KW_HANDLER); + this.state = 3795; + this.tableName(); + this.state = 3796; + this.match(MySqlParser.KW_READ); + this.state = 3797; + _localctx._moveOrder = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FIRST || _la === MySqlParser.KW_NEXT)) { + _localctx._moveOrder = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3800; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3798; + this.match(MySqlParser.KW_WHERE); + this.state = 3799; + this.expression(0); + } + } + + this.state = 3804; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3802; + this.match(MySqlParser.KW_LIMIT); + this.state = 3803; + this.limitClauseAtom(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerCloseStatement(): HandlerCloseStatementContext { + let _localctx: HandlerCloseStatementContext = new HandlerCloseStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 244, MySqlParser.RULE_handlerCloseStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3806; + this.match(MySqlParser.KW_HANDLER); + this.state = 3807; + this.tableName(); + this.state = 3808; + this.match(MySqlParser.KW_CLOSE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public importTableStatement(): ImportTableStatementContext { + let _localctx: ImportTableStatementContext = new ImportTableStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 246, MySqlParser.RULE_importTableStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3810; + this.match(MySqlParser.KW_IMPORT); + this.state = 3811; + this.match(MySqlParser.KW_TABLE); + this.state = 3812; + this.match(MySqlParser.KW_FROM); + this.state = 3813; + this.stringLiteral(); + this.state = 3818; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3814; + this.match(MySqlParser.COMMA); + this.state = 3815; + this.stringLiteral(); + } + } + this.state = 3820; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public singleUpdateStatement(): SingleUpdateStatementContext { + let _localctx: SingleUpdateStatementContext = new SingleUpdateStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 248, MySqlParser.RULE_singleUpdateStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3821; + this.match(MySqlParser.KW_UPDATE); + this.state = 3823; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3822; + _localctx._priority = this.match(MySqlParser.KW_LOW_PRIORITY); + } + } + + this.state = 3826; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3825; + this.match(MySqlParser.KW_IGNORE); + } + } + + this.state = 3828; + this.tableName(); + this.state = 3833; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_AS) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 3830; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3829; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 3832; + _localctx._table_alias = this.uid(); + } + } + + this.state = 3835; + this.match(MySqlParser.KW_SET); + this.state = 3836; + this.updatedElement(); + this.state = 3841; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3837; + this.match(MySqlParser.COMMA); + this.state = 3838; + this.updatedElement(); + } + } + this.state = 3843; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3846; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3844; + this.match(MySqlParser.KW_WHERE); + this.state = 3845; + this.expression(0); + } + } + + this.state = 3849; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 3848; + this.orderByClause(); + } + } + + this.state = 3852; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 3851; + this.limitClause(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public multipleUpdateStatement(): MultipleUpdateStatementContext { + let _localctx: MultipleUpdateStatementContext = new MultipleUpdateStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 250, MySqlParser.RULE_multipleUpdateStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3854; + this.match(MySqlParser.KW_UPDATE); + this.state = 3856; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 3855; + _localctx._priority = this.match(MySqlParser.KW_LOW_PRIORITY); + } + } + + this.state = 3859; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 3858; + this.match(MySqlParser.KW_IGNORE); + } + } + + this.state = 3861; + this.tableSources(); + this.state = 3862; + this.match(MySqlParser.KW_SET); + this.state = 3863; + this.updatedElement(); + this.state = 3868; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 3864; + this.match(MySqlParser.COMMA); + this.state = 3865; + this.updatedElement(); + } + } + this.state = 3870; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3873; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 3871; + this.match(MySqlParser.KW_WHERE); + this.state = 3872; + this.expression(0); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public orderByClause(): OrderByClauseContext { + let _localctx: OrderByClauseContext = new OrderByClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 252, MySqlParser.RULE_orderByClause); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 3875; + this.match(MySqlParser.KW_ORDER); + this.state = 3876; + this.match(MySqlParser.KW_BY); + this.state = 3877; + this.orderByExpression(); + this.state = 3882; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 537, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3878; + this.match(MySqlParser.COMMA); + this.state = 3879; + this.orderByExpression(); + } + } + } + this.state = 3884; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 537, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public orderByExpression(): OrderByExpressionContext { + let _localctx: OrderByExpressionContext = new OrderByExpressionContext(this._ctx, this.state); + this.enterRule(_localctx, 254, MySqlParser.RULE_orderByExpression); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3885; + this.expression(0); + this.state = 3887; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 538, this._ctx) ) { + case 1: + { + this.state = 3886; + _localctx._order = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ASC || _la === MySqlParser.KW_DESC)) { + _localctx._order = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableSources(): TableSourcesContext { + let _localctx: TableSourcesContext = new TableSourcesContext(this._ctx, this.state); + this.enterRule(_localctx, 256, MySqlParser.RULE_tableSources); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 3889; + this.tableSource(); + this.state = 3894; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 539, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3890; + this.match(MySqlParser.COMMA); + this.state = 3891; + this.tableSource(); + } + } + } + this.state = 3896; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 539, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableSource(): TableSourceContext { + let _localctx: TableSourceContext = new TableSourceContext(this._ctx, this.state); + this.enterRule(_localctx, 258, MySqlParser.RULE_tableSource); + let _la: number; + try { + let _alt: number; + this.state = 3915; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 542, this._ctx) ) { + case 1: + _localctx = new TableSourceBaseContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 3897; + this.tableSourceItem(); + this.state = 3901; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 540, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3898; + this.joinPart(); + } + } + } + this.state = 3903; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 540, this._ctx); + } + } + break; + + case 2: + _localctx = new TableSourceNestedContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 3904; + this.match(MySqlParser.LR_BRACKET); + this.state = 3905; + this.tableSourceItem(); + this.state = 3909; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_CROSS || ((((_la - 84)) & ~0x1F) === 0 && ((1 << (_la - 84)) & ((1 << (MySqlParser.KW_INNER - 84)) | (1 << (MySqlParser.KW_JOIN - 84)) | (1 << (MySqlParser.KW_LEFT - 84)) | (1 << (MySqlParser.KW_NATURAL - 84)))) !== 0) || _la === MySqlParser.KW_RIGHT || _la === MySqlParser.KW_STRAIGHT_JOIN) { + { + { + this.state = 3906; + this.joinPart(); + } + } + this.state = 3911; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 3912; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 3: + _localctx = new TableJsonContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 3914; + this.jsonTable(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableSourceItem(): TableSourceItemContext { + let _localctx: TableSourceItemContext = new TableSourceItemContext(this._ctx, this.state); + this.enterRule(_localctx, 260, MySqlParser.RULE_tableSourceItem); + let _la: number; + try { + let _alt: number; + this.state = 3962; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 552, this._ctx) ) { + case 1: + _localctx = new AtomTableItemContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 3917; + this.tableName(); + this.state = 3923; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 543, this._ctx) ) { + case 1: + { + this.state = 3918; + this.match(MySqlParser.KW_PARTITION); + this.state = 3919; + this.match(MySqlParser.LR_BRACKET); + this.state = 3920; + this.partitionNames(); + this.state = 3921; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 3929; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 545, this._ctx) ) { + case 1: + { + this.state = 3926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3925; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 3928; + (_localctx as AtomTableItemContext)._alias = this.uid(); + } + break; + } + this.state = 3939; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 547, this._ctx) ) { + case 1: + { + this.state = 3931; + this.indexHint(); + this.state = 3936; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 546, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3932; + this.match(MySqlParser.COMMA); + this.state = 3933; + this.indexHint(); + } + } + } + this.state = 3938; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 546, this._ctx); + } + } + break; + } + } + break; + + case 2: + _localctx = new SubqueryTableItemContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 3942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LATERAL) { + { + this.state = 3941; + this.match(MySqlParser.KW_LATERAL); + } + } + + this.state = 3949; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 549, this._ctx) ) { + case 1: + { + this.state = 3944; + this.selectStatement(); + } + break; + + case 2: + { + this.state = 3945; + this.match(MySqlParser.LR_BRACKET); + this.state = 3946; + (_localctx as SubqueryTableItemContext)._parenthesisSubquery = this.selectStatement(); + this.state = 3947; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 3952; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 3951; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 3954; + (_localctx as SubqueryTableItemContext)._alias = this.uid(); + this.state = 3956; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 551, this._ctx) ) { + case 1: + { + this.state = 3955; + this.fullColumnNames(); + } + break; + } + } + break; + + case 3: + _localctx = new TableSourcesItemContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 3958; + this.match(MySqlParser.LR_BRACKET); + this.state = 3959; + this.tableSources(); + this.state = 3960; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public fullColumnNames(): FullColumnNamesContext { + let _localctx: FullColumnNamesContext = new FullColumnNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 262, MySqlParser.RULE_fullColumnNames); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3964; + this.match(MySqlParser.LR_BRACKET); + this.state = 3965; + this.columnNames(); + this.state = 3966; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexHint(): IndexHintContext { + let _localctx: IndexHintContext = new IndexHintContext(this._ctx, this.state); + this.enterRule(_localctx, 264, MySqlParser.RULE_indexHint); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 3968; + _localctx._indexHintAction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FORCE || _la === MySqlParser.KW_IGNORE || _la === MySqlParser.KW_USE)) { + _localctx._indexHintAction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3969; + _localctx._keyFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + _localctx._keyFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 3972; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 3970; + this.match(MySqlParser.KW_FOR); + this.state = 3971; + this.indexHintType(); + } + } + + this.state = 3974; + this.match(MySqlParser.LR_BRACKET); + this.state = 3976; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 3975; + this.indexNames(); + } + } + + this.state = 3978; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexHintType(): IndexHintTypeContext { + let _localctx: IndexHintTypeContext = new IndexHintTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 266, MySqlParser.RULE_indexHintType); + try { + this.state = 3985; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_JOIN: + this.enterOuterAlt(_localctx, 1); + { + this.state = 3980; + this.match(MySqlParser.KW_JOIN); + } + break; + case MySqlParser.KW_ORDER: + this.enterOuterAlt(_localctx, 2); + { + this.state = 3981; + this.match(MySqlParser.KW_ORDER); + this.state = 3982; + this.match(MySqlParser.KW_BY); + } + break; + case MySqlParser.KW_GROUP: + this.enterOuterAlt(_localctx, 3); + { + this.state = 3983; + this.match(MySqlParser.KW_GROUP); + this.state = 3984; + this.match(MySqlParser.KW_BY); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public joinPart(): JoinPartContext { + let _localctx: JoinPartContext = new JoinPartContext(this._ctx, this.state); + this.enterRule(_localctx, 268, MySqlParser.RULE_joinPart); + let _la: number; + try { + let _alt: number; + this.state = 4036; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CROSS: + case MySqlParser.KW_INNER: + case MySqlParser.KW_JOIN: + _localctx = new InnerJoinContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 3988; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CROSS || _la === MySqlParser.KW_INNER) { + { + this.state = 3987; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CROSS || _la === MySqlParser.KW_INNER)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 3990; + this.match(MySqlParser.KW_JOIN); + this.state = 3992; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 557, this._ctx) ) { + case 1: + { + this.state = 3991; + this.match(MySqlParser.KW_LATERAL); + } + break; + } + this.state = 3994; + this.tableSourceItem(); + this.state = 3998; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 558, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 3995; + this.joinSpec(); + } + } + } + this.state = 4000; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 558, this._ctx); + } + } + break; + case MySqlParser.KW_STRAIGHT_JOIN: + _localctx = new StraightJoinContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4001; + this.match(MySqlParser.KW_STRAIGHT_JOIN); + this.state = 4002; + this.tableSourceItem(); + this.state = 4006; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 559, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4003; + this.joinSpec(); + } + } + } + this.state = 4008; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 559, this._ctx); + } + } + break; + case MySqlParser.KW_LEFT: + case MySqlParser.KW_RIGHT: + _localctx = new OuterJoinContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4009; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LEFT || _la === MySqlParser.KW_RIGHT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4011; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OUTER) { + { + this.state = 4010; + this.match(MySqlParser.KW_OUTER); + } + } + + this.state = 4013; + this.match(MySqlParser.KW_JOIN); + this.state = 4015; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 561, this._ctx) ) { + case 1: + { + this.state = 4014; + this.match(MySqlParser.KW_LATERAL); + } + break; + } + this.state = 4017; + this.tableSourceItem(); + this.state = 4021; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 562, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4018; + this.joinSpec(); + } + } + } + this.state = 4023; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 562, this._ctx); + } + } + break; + case MySqlParser.KW_NATURAL: + _localctx = new NaturalJoinContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4024; + this.match(MySqlParser.KW_NATURAL); + this.state = 4032; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INNER || _la === MySqlParser.KW_LEFT || _la === MySqlParser.KW_RIGHT) { + { + this.state = 4027; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_INNER: + { + this.state = 4025; + this.match(MySqlParser.KW_INNER); + } + break; + case MySqlParser.KW_LEFT: + case MySqlParser.KW_RIGHT: + { + this.state = 4026; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LEFT || _la === MySqlParser.KW_RIGHT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4030; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OUTER) { + { + this.state = 4029; + this.match(MySqlParser.KW_OUTER); + } + } + + } + } + + this.state = 4034; + this.match(MySqlParser.KW_JOIN); + this.state = 4035; + this.tableSourceItem(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public joinSpec(): JoinSpecContext { + let _localctx: JoinSpecContext = new JoinSpecContext(this._ctx, this.state); + this.enterRule(_localctx, 270, MySqlParser.RULE_joinSpec); + try { + this.state = 4045; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ON: + this.enterOuterAlt(_localctx, 1); + { + { + this.state = 4038; + this.match(MySqlParser.KW_ON); + this.state = 4039; + this.expression(0); + } + } + break; + case MySqlParser.KW_USING: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4040; + this.match(MySqlParser.KW_USING); + this.state = 4041; + this.match(MySqlParser.LR_BRACKET); + this.state = 4042; + this.columnNames(); + this.state = 4043; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public queryExpression(): QueryExpressionContext { + let _localctx: QueryExpressionContext = new QueryExpressionContext(this._ctx, this.state); + this.enterRule(_localctx, 272, MySqlParser.RULE_queryExpression); + try { + this.state = 4055; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 568, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4047; + this.match(MySqlParser.LR_BRACKET); + this.state = 4048; + this.querySpecification(); + this.state = 4049; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4051; + this.match(MySqlParser.LR_BRACKET); + this.state = 4052; + this.queryExpression(); + this.state = 4053; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public queryExpressionNointo(): QueryExpressionNointoContext { + let _localctx: QueryExpressionNointoContext = new QueryExpressionNointoContext(this._ctx, this.state); + this.enterRule(_localctx, 274, MySqlParser.RULE_queryExpressionNointo); + try { + this.state = 4065; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 569, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4057; + this.match(MySqlParser.LR_BRACKET); + this.state = 4058; + this.querySpecificationNointo(); + this.state = 4059; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4061; + this.match(MySqlParser.LR_BRACKET); + this.state = 4062; + this.queryExpressionNointo(); + this.state = 4063; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public querySpecification(): QuerySpecificationContext { + let _localctx: QuerySpecificationContext = new QuerySpecificationContext(this._ctx, this.state); + this.enterRule(_localctx, 276, MySqlParser.RULE_querySpecification); + try { + let _alt: number; + this.state = 4121; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 584, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4067; + this.match(MySqlParser.KW_SELECT); + this.state = 4071; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 570, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4068; + this.selectSpec(); + } + } + } + this.state = 4073; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 570, this._ctx); + } + this.state = 4074; + this.selectElements(); + this.state = 4076; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 571, this._ctx) ) { + case 1: + { + this.state = 4075; + this.intoClause(); + } + break; + } + this.state = 4078; + this.fromClause(); + this.state = 4080; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 572, this._ctx) ) { + case 1: + { + this.state = 4079; + this.groupByClause(); + } + break; + } + this.state = 4083; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 573, this._ctx) ) { + case 1: + { + this.state = 4082; + this.havingClause(); + } + break; + } + this.state = 4086; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 574, this._ctx) ) { + case 1: + { + this.state = 4085; + this.windowClause(); + } + break; + } + this.state = 4089; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 575, this._ctx) ) { + case 1: + { + this.state = 4088; + this.orderByClause(); + } + break; + } + this.state = 4092; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 576, this._ctx) ) { + case 1: + { + this.state = 4091; + this.limitClause(); + } + break; + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4094; + this.match(MySqlParser.KW_SELECT); + this.state = 4098; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 577, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4095; + this.selectSpec(); + } + } + } + this.state = 4100; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 577, this._ctx); + } + this.state = 4101; + this.selectElements(); + this.state = 4102; + this.fromClause(); + this.state = 4104; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 578, this._ctx) ) { + case 1: + { + this.state = 4103; + this.groupByClause(); + } + break; + } + this.state = 4107; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 579, this._ctx) ) { + case 1: + { + this.state = 4106; + this.havingClause(); + } + break; + } + this.state = 4110; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 580, this._ctx) ) { + case 1: + { + this.state = 4109; + this.windowClause(); + } + break; + } + this.state = 4113; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 581, this._ctx) ) { + case 1: + { + this.state = 4112; + this.orderByClause(); + } + break; + } + this.state = 4116; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 582, this._ctx) ) { + case 1: + { + this.state = 4115; + this.limitClause(); + } + break; + } + this.state = 4119; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 583, this._ctx) ) { + case 1: + { + this.state = 4118; + this.intoClause(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public querySpecificationNointo(): QuerySpecificationNointoContext { + let _localctx: QuerySpecificationNointoContext = new QuerySpecificationNointoContext(this._ctx, this.state); + this.enterRule(_localctx, 278, MySqlParser.RULE_querySpecificationNointo); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 4123; + this.match(MySqlParser.KW_SELECT); + this.state = 4127; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 585, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4124; + this.selectSpec(); + } + } + } + this.state = 4129; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 585, this._ctx); + } + this.state = 4130; + this.selectElements(); + this.state = 4131; + this.fromClause(); + this.state = 4133; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 586, this._ctx) ) { + case 1: + { + this.state = 4132; + this.groupByClause(); + } + break; + } + this.state = 4136; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 587, this._ctx) ) { + case 1: + { + this.state = 4135; + this.havingClause(); + } + break; + } + this.state = 4139; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 588, this._ctx) ) { + case 1: + { + this.state = 4138; + this.windowClause(); + } + break; + } + this.state = 4142; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 589, this._ctx) ) { + case 1: + { + this.state = 4141; + this.orderByClause(); + } + break; + } + this.state = 4145; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 590, this._ctx) ) { + case 1: + { + this.state = 4144; + this.limitClause(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public unionParenthesis(): UnionParenthesisContext { + let _localctx: UnionParenthesisContext = new UnionParenthesisContext(this._ctx, this.state); + this.enterRule(_localctx, 280, MySqlParser.RULE_unionParenthesis); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4147; + this.match(MySqlParser.KW_UNION); + this.state = 4149; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 4148; + _localctx._unionType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + _localctx._unionType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 4151; + this.queryExpressionNointo(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public unionStatement(): UnionStatementContext { + let _localctx: UnionStatementContext = new UnionStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 282, MySqlParser.RULE_unionStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4153; + this.match(MySqlParser.KW_UNION); + this.state = 4155; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT) { + { + this.state = 4154; + _localctx._unionType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + _localctx._unionType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 4159; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + { + this.state = 4157; + this.querySpecificationNointo(); + } + break; + case MySqlParser.LR_BRACKET: + { + this.state = 4158; + this.queryExpressionNointo(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lateralStatement(): LateralStatementContext { + let _localctx: LateralStatementContext = new LateralStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 284, MySqlParser.RULE_lateralStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4161; + this.match(MySqlParser.KW_LATERAL); + this.state = 4176; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 597, this._ctx) ) { + case 1: + { + this.state = 4162; + this.querySpecificationNointo(); + } + break; + + case 2: + { + this.state = 4163; + this.queryExpressionNointo(); + } + break; + + case 3: + { + { + this.state = 4164; + this.match(MySqlParser.LR_BRACKET); + this.state = 4167; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + { + this.state = 4165; + this.querySpecificationNointo(); + } + break; + case MySqlParser.LR_BRACKET: + { + this.state = 4166; + this.queryExpressionNointo(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4169; + this.match(MySqlParser.RR_BRACKET); + this.state = 4174; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 596, this._ctx) ) { + case 1: + { + this.state = 4171; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4170; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4173; + _localctx._alias = this.uid(); + } + break; + } + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonTable(): JsonTableContext { + let _localctx: JsonTableContext = new JsonTableContext(this._ctx, this.state); + this.enterRule(_localctx, 286, MySqlParser.RULE_jsonTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4178; + this.match(MySqlParser.KW_JSON_TABLE); + this.state = 4179; + this.match(MySqlParser.LR_BRACKET); + this.state = 4180; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4181; + this.match(MySqlParser.COMMA); + this.state = 4182; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4183; + this.match(MySqlParser.KW_COLUMNS); + this.state = 4184; + this.match(MySqlParser.LR_BRACKET); + this.state = 4185; + this.jsonColumnList(); + this.state = 4186; + this.match(MySqlParser.RR_BRACKET); + this.state = 4187; + this.match(MySqlParser.RR_BRACKET); + this.state = 4192; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 599, this._ctx) ) { + case 1: + { + this.state = 4189; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4188; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4191; + _localctx._alias = this.uid(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonColumnList(): JsonColumnListContext { + let _localctx: JsonColumnListContext = new JsonColumnListContext(this._ctx, this.state); + this.enterRule(_localctx, 288, MySqlParser.RULE_jsonColumnList); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4194; + this.jsonColumn(); + this.state = 4199; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4195; + this.match(MySqlParser.COMMA); + this.state = 4196; + this.jsonColumn(); + } + } + this.state = 4201; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonColumn(): JsonColumnContext { + let _localctx: JsonColumnContext = new JsonColumnContext(this._ctx, this.state); + this.enterRule(_localctx, 290, MySqlParser.RULE_jsonColumn); + let _la: number; + try { + this.state = 4231; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 606, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4202; + this.columnName(); + this.state = 4219; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FOR: + { + this.state = 4203; + this.match(MySqlParser.KW_FOR); + this.state = 4204; + this.match(MySqlParser.KW_ORDINALITY); + } + break; + case MySqlParser.KW_CHARACTER: + case MySqlParser.KW_SET: + case MySqlParser.KW_TINYINT: + case MySqlParser.KW_SMALLINT: + case MySqlParser.KW_MEDIUMINT: + case MySqlParser.KW_MIDDLEINT: + case MySqlParser.KW_INT: + case MySqlParser.KW_INT1: + case MySqlParser.KW_INT2: + case MySqlParser.KW_INT3: + case MySqlParser.KW_INT4: + case MySqlParser.KW_INT8: + case MySqlParser.KW_INTEGER: + case MySqlParser.KW_BIGINT: + case MySqlParser.KW_REAL: + case MySqlParser.KW_DOUBLE: + case MySqlParser.KW_FLOAT: + case MySqlParser.KW_FLOAT4: + case MySqlParser.KW_FLOAT8: + case MySqlParser.KW_DECIMAL: + case MySqlParser.KW_DEC: + case MySqlParser.KW_NUMERIC: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_CHAR: + case MySqlParser.KW_VARCHAR: + case MySqlParser.KW_NVARCHAR: + case MySqlParser.KW_NATIONAL: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_VARBINARY: + case MySqlParser.KW_TINYBLOB: + case MySqlParser.KW_BLOB: + case MySqlParser.KW_MEDIUMBLOB: + case MySqlParser.KW_LONG: + case MySqlParser.KW_LONGBLOB: + case MySqlParser.KW_TINYTEXT: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_MEDIUMTEXT: + case MySqlParser.KW_LONGTEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_JSON: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_GEOMCOLLECTION: + case MySqlParser.KW_GEOMETRY: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + { + this.state = 4205; + this.dataType(); + this.state = 4217; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_PATH: + { + this.state = 4206; + this.match(MySqlParser.KW_PATH); + this.state = 4207; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4209; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 601, this._ctx) ) { + case 1: + { + this.state = 4208; + this.jsonOnEmpty(); + } + break; + } + this.state = 4212; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.KW_ERROR) { + { + this.state = 4211; + this.jsonOnError(); + } + } + + } + break; + case MySqlParser.KW_EXISTS: + { + this.state = 4214; + this.match(MySqlParser.KW_EXISTS); + this.state = 4215; + this.match(MySqlParser.KW_PATH); + this.state = 4216; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4221; + this.match(MySqlParser.KW_NESTED); + this.state = 4223; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PATH) { + { + this.state = 4222; + this.match(MySqlParser.KW_PATH); + } + } + + this.state = 4225; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4226; + this.match(MySqlParser.KW_COLUMNS); + this.state = 4227; + this.match(MySqlParser.LR_BRACKET); + this.state = 4228; + this.jsonColumnList(); + this.state = 4229; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonOnEmpty(): JsonOnEmptyContext { + let _localctx: JsonOnEmptyContext = new JsonOnEmptyContext(this._ctx, this.state); + this.enterRule(_localctx, 292, MySqlParser.RULE_jsonOnEmpty); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4237; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NULL_LITERAL: + { + this.state = 4233; + this.match(MySqlParser.KW_NULL_LITERAL); + } + break; + case MySqlParser.KW_ERROR: + { + this.state = 4234; + this.match(MySqlParser.KW_ERROR); + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 4235; + this.match(MySqlParser.KW_DEFAULT); + this.state = 4236; + this.defaultValue(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4239; + this.match(MySqlParser.KW_ON); + this.state = 4240; + this.match(MySqlParser.KW_EMPTY); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonOnError(): JsonOnErrorContext { + let _localctx: JsonOnErrorContext = new JsonOnErrorContext(this._ctx, this.state); + this.enterRule(_localctx, 294, MySqlParser.RULE_jsonOnError); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4246; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NULL_LITERAL: + { + this.state = 4242; + this.match(MySqlParser.KW_NULL_LITERAL); + } + break; + case MySqlParser.KW_ERROR: + { + this.state = 4243; + this.match(MySqlParser.KW_ERROR); + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 4244; + this.match(MySqlParser.KW_DEFAULT); + this.state = 4245; + this.defaultValue(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4248; + this.match(MySqlParser.KW_ON); + this.state = 4249; + this.match(MySqlParser.KW_ERROR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectSpec(): SelectSpecContext { + let _localctx: SelectSpecContext = new SelectSpecContext(this._ctx, this.state); + this.enterRule(_localctx, 296, MySqlParser.RULE_selectSpec); + let _la: number; + try { + this.state = 4259; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALL: + case MySqlParser.KW_DISTINCT: + case MySqlParser.KW_DISTINCTROW: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4251; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT || _la === MySqlParser.KW_DISTINCTROW)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_HIGH_PRIORITY: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4252; + this.match(MySqlParser.KW_HIGH_PRIORITY); + } + break; + case MySqlParser.KW_STRAIGHT_JOIN: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4253; + this.match(MySqlParser.KW_STRAIGHT_JOIN); + } + break; + case MySqlParser.KW_SQL_SMALL_RESULT: + this.enterOuterAlt(_localctx, 4); + { + this.state = 4254; + this.match(MySqlParser.KW_SQL_SMALL_RESULT); + } + break; + case MySqlParser.KW_SQL_BIG_RESULT: + this.enterOuterAlt(_localctx, 5); + { + this.state = 4255; + this.match(MySqlParser.KW_SQL_BIG_RESULT); + } + break; + case MySqlParser.KW_SQL_BUFFER_RESULT: + this.enterOuterAlt(_localctx, 6); + { + this.state = 4256; + this.match(MySqlParser.KW_SQL_BUFFER_RESULT); + } + break; + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 4257; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SQL_CACHE || _la === MySqlParser.KW_SQL_NO_CACHE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_SQL_CALC_FOUND_ROWS: + this.enterOuterAlt(_localctx, 8); + { + this.state = 4258; + this.match(MySqlParser.KW_SQL_CALC_FOUND_ROWS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectElements(): SelectElementsContext { + let _localctx: SelectElementsContext = new SelectElementsContext(this._ctx, this.state); + this.enterRule(_localctx, 298, MySqlParser.RULE_selectElements); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 4263; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 610, this._ctx) ) { + case 1: + { + this.state = 4261; + _localctx._star = this.match(MySqlParser.STAR); + } + break; + + case 2: + { + this.state = 4262; + this.selectElement(); + } + break; + } + this.state = 4269; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 611, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4265; + this.match(MySqlParser.COMMA); + this.state = 4266; + this.selectElement(); + } + } + } + this.state = 4271; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 611, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectElement(): SelectElementContext { + let _localctx: SelectElementContext = new SelectElementContext(this._ctx, this.state); + this.enterRule(_localctx, 300, MySqlParser.RULE_selectElement); + let _la: number; + try { + this.state = 4301; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 619, this._ctx) ) { + case 1: + _localctx = new SelectStarElementContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4272; + (_localctx as SelectStarElementContext)._select_element = this.fullId(); + this.state = 4273; + this.match(MySqlParser.DOT); + this.state = 4274; + this.match(MySqlParser.STAR); + } + break; + + case 2: + _localctx = new SelectColumnElementContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4276; + this.columnName(); + this.state = 4281; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 613, this._ctx) ) { + case 1: + { + this.state = 4278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4277; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4280; + (_localctx as SelectColumnElementContext)._alias = this.uid(); + } + break; + } + } + break; + + case 3: + _localctx = new SelectFunctionElementContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4283; + this.functionCall(); + this.state = 4288; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 615, this._ctx) ) { + case 1: + { + this.state = 4285; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4284; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4287; + (_localctx as SelectFunctionElementContext)._alias = this.uid(); + } + break; + } + } + break; + + case 4: + _localctx = new SelectExpressionElementContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4292; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 616, this._ctx) ) { + case 1: + { + this.state = 4290; + this.match(MySqlParser.LOCAL_ID); + this.state = 4291; + this.match(MySqlParser.VAR_ASSIGN); + } + break; + } + this.state = 4294; + this.expression(0); + this.state = 4299; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 618, this._ctx) ) { + case 1: + { + this.state = 4296; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4295; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4298; + (_localctx as SelectExpressionElementContext)._alias = this.uid(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public intoClause(): IntoClauseContext { + let _localctx: IntoClauseContext = new IntoClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 302, MySqlParser.RULE_intoClause); + let _la: number; + try { + let _alt: number; + this.state = 4339; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 626, this._ctx) ) { + case 1: + _localctx = new SelectIntoVariablesContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4303; + this.match(MySqlParser.KW_INTO); + this.state = 4304; + this.assignmentField(); + this.state = 4309; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 620, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4305; + this.match(MySqlParser.COMMA); + this.state = 4306; + this.assignmentField(); + } + } + } + this.state = 4311; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 620, this._ctx); + } + } + break; + + case 2: + _localctx = new SelectIntoDumpFileContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4312; + this.match(MySqlParser.KW_INTO); + this.state = 4313; + this.match(MySqlParser.KW_DUMPFILE); + this.state = 4314; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 3: + _localctx = new SelectIntoTextFileContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + { + this.state = 4315; + this.match(MySqlParser.KW_INTO); + this.state = 4316; + this.match(MySqlParser.KW_OUTFILE); + this.state = 4317; + (_localctx as SelectIntoTextFileContext)._filename = this.match(MySqlParser.STRING_LITERAL); + this.state = 4321; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 621, this._ctx) ) { + case 1: + { + this.state = 4318; + this.match(MySqlParser.KW_CHARACTER); + this.state = 4319; + this.match(MySqlParser.KW_SET); + this.state = 4320; + (_localctx as SelectIntoTextFileContext)._charset = this.charsetName(); + } + break; + } + this.state = 4329; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 623, this._ctx) ) { + case 1: + { + this.state = 4323; + (_localctx as SelectIntoTextFileContext)._fieldsFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_COLUMNS || _la === MySqlParser.KW_FIELDS)) { + (_localctx as SelectIntoTextFileContext)._fieldsFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4325; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 4324; + this.selectFieldsInto(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4327; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 622, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + break; + } + this.state = 4337; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 625, this._ctx) ) { + case 1: + { + this.state = 4331; + this.match(MySqlParser.KW_LINES); + this.state = 4333; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 4332; + this.selectLinesInto(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 4335; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 624, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + break; + } + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectFieldsInto(): SelectFieldsIntoContext { + let _localctx: SelectFieldsIntoContext = new SelectFieldsIntoContext(this._ctx, this.state); + this.enterRule(_localctx, 304, MySqlParser.RULE_selectFieldsInto); + let _la: number; + try { + this.state = 4353; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_TERMINATED: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4341; + this.match(MySqlParser.KW_TERMINATED); + this.state = 4342; + this.match(MySqlParser.KW_BY); + this.state = 4343; + _localctx._terminationField = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_ENCLOSED: + case MySqlParser.KW_OPTIONALLY: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4345; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OPTIONALLY) { + { + this.state = 4344; + this.match(MySqlParser.KW_OPTIONALLY); + } + } + + this.state = 4347; + this.match(MySqlParser.KW_ENCLOSED); + this.state = 4348; + this.match(MySqlParser.KW_BY); + this.state = 4349; + _localctx._enclosion = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_ESCAPED: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4350; + this.match(MySqlParser.KW_ESCAPED); + this.state = 4351; + this.match(MySqlParser.KW_BY); + this.state = 4352; + _localctx._escaping = this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public selectLinesInto(): SelectLinesIntoContext { + let _localctx: SelectLinesIntoContext = new SelectLinesIntoContext(this._ctx, this.state); + this.enterRule(_localctx, 306, MySqlParser.RULE_selectLinesInto); + try { + this.state = 4361; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_STARTING: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4355; + this.match(MySqlParser.KW_STARTING); + this.state = 4356; + this.match(MySqlParser.KW_BY); + this.state = 4357; + _localctx._starting = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_TERMINATED: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4358; + this.match(MySqlParser.KW_TERMINATED); + this.state = 4359; + this.match(MySqlParser.KW_BY); + this.state = 4360; + _localctx._terminationLine = this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public fromClause(): FromClauseContext { + let _localctx: FromClauseContext = new FromClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 308, MySqlParser.RULE_fromClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4365; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 630, this._ctx) ) { + case 1: + { + this.state = 4363; + this.match(MySqlParser.KW_FROM); + this.state = 4364; + this.tableSources(); + } + break; + } + this.state = 4369; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 631, this._ctx) ) { + case 1: + { + this.state = 4367; + this.match(MySqlParser.KW_WHERE); + this.state = 4368; + _localctx._whereExpr = this.expression(0); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public groupByClause(): GroupByClauseContext { + let _localctx: GroupByClauseContext = new GroupByClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 310, MySqlParser.RULE_groupByClause); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 4371; + this.match(MySqlParser.KW_GROUP); + this.state = 4372; + this.match(MySqlParser.KW_BY); + this.state = 4373; + this.groupByItem(); + this.state = 4378; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 632, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4374; + this.match(MySqlParser.COMMA); + this.state = 4375; + this.groupByItem(); + } + } + } + this.state = 4380; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 632, this._ctx); + } + this.state = 4383; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 633, this._ctx) ) { + case 1: + { + this.state = 4381; + this.match(MySqlParser.KW_WITH); + this.state = 4382; + this.match(MySqlParser.KW_ROLLUP); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public havingClause(): HavingClauseContext { + let _localctx: HavingClauseContext = new HavingClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 312, MySqlParser.RULE_havingClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4385; + this.match(MySqlParser.KW_HAVING); + this.state = 4386; + _localctx._havingExpr = this.expression(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public windowClause(): WindowClauseContext { + let _localctx: WindowClauseContext = new WindowClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 314, MySqlParser.RULE_windowClause); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 4388; + this.match(MySqlParser.KW_WINDOW); + this.state = 4389; + this.windowName(); + this.state = 4390; + this.match(MySqlParser.KW_AS); + this.state = 4391; + this.match(MySqlParser.LR_BRACKET); + this.state = 4392; + this.windowSpec(); + this.state = 4393; + this.match(MySqlParser.RR_BRACKET); + this.state = 4403; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 634, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4394; + this.match(MySqlParser.COMMA); + this.state = 4395; + this.windowName(); + this.state = 4396; + this.match(MySqlParser.KW_AS); + this.state = 4397; + this.match(MySqlParser.LR_BRACKET); + this.state = 4398; + this.windowSpec(); + this.state = 4399; + this.match(MySqlParser.RR_BRACKET); + } + } + } + this.state = 4405; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 634, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public groupByItem(): GroupByItemContext { + let _localctx: GroupByItemContext = new GroupByItemContext(this._ctx, this.state); + this.enterRule(_localctx, 316, MySqlParser.RULE_groupByItem); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4406; + this.expression(0); + this.state = 4408; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 635, this._ctx) ) { + case 1: + { + this.state = 4407; + _localctx._order = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ASC || _la === MySqlParser.KW_DESC)) { + _localctx._order = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public limitClause(): LimitClauseContext { + let _localctx: LimitClauseContext = new LimitClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 318, MySqlParser.RULE_limitClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4410; + this.match(MySqlParser.KW_LIMIT); + this.state = 4421; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 637, this._ctx) ) { + case 1: + { + this.state = 4414; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 636, this._ctx) ) { + case 1: + { + this.state = 4411; + _localctx._offset = this.limitClauseAtom(); + this.state = 4412; + this.match(MySqlParser.COMMA); + } + break; + } + this.state = 4416; + _localctx._limit = this.limitClauseAtom(); + } + break; + + case 2: + { + this.state = 4417; + _localctx._limit = this.limitClauseAtom(); + this.state = 4418; + this.match(MySqlParser.KW_OFFSET); + this.state = 4419; + _localctx._offset = this.limitClauseAtom(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public limitClauseAtom(): LimitClauseAtomContext { + let _localctx: LimitClauseAtomContext = new LimitClauseAtomContext(this._ctx, this.state); + this.enterRule(_localctx, 320, MySqlParser.RULE_limitClauseAtom); + try { + this.state = 4426; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4423; + this.decimalLiteral(); + } + break; + case MySqlParser.LOCAL_ID: + case MySqlParser.GLOBAL_ID: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4424; + this.mysqlVariable(); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.ID: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4425; + this.simpleId(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public startTransaction(): StartTransactionContext { + let _localctx: StartTransactionContext = new StartTransactionContext(this._ctx, this.state); + this.enterRule(_localctx, 322, MySqlParser.RULE_startTransaction); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4428; + this.match(MySqlParser.KW_START); + this.state = 4429; + this.match(MySqlParser.KW_TRANSACTION); + this.state = 4438; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 640, this._ctx) ) { + case 1: + { + this.state = 4430; + this.transactionMode(); + this.state = 4435; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4431; + this.match(MySqlParser.COMMA); + this.state = 4432; + this.transactionMode(); + } + } + this.state = 4437; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public beginWork(): BeginWorkContext { + let _localctx: BeginWorkContext = new BeginWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 324, MySqlParser.RULE_beginWork); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4440; + this.match(MySqlParser.KW_BEGIN); + this.state = 4442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WORK) { + { + this.state = 4441; + this.match(MySqlParser.KW_WORK); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public commitWork(): CommitWorkContext { + let _localctx: CommitWorkContext = new CommitWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 326, MySqlParser.RULE_commitWork); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4444; + this.match(MySqlParser.KW_COMMIT); + this.state = 4446; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WORK) { + { + this.state = 4445; + this.match(MySqlParser.KW_WORK); + } + } + + this.state = 4453; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 4448; + this.match(MySqlParser.KW_AND); + this.state = 4450; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO) { + { + this.state = 4449; + _localctx._nochain = this.match(MySqlParser.KW_NO); + } + } + + this.state = 4452; + this.match(MySqlParser.KW_CHAIN); + } + } + + this.state = 4459; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 646, this._ctx) ) { + case 1: + { + this.state = 4456; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO) { + { + this.state = 4455; + _localctx._norelease = this.match(MySqlParser.KW_NO); + } + } + + this.state = 4458; + this.match(MySqlParser.KW_RELEASE); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public rollbackWork(): RollbackWorkContext { + let _localctx: RollbackWorkContext = new RollbackWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 328, MySqlParser.RULE_rollbackWork); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4461; + this.match(MySqlParser.KW_ROLLBACK); + this.state = 4463; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WORK) { + { + this.state = 4462; + this.match(MySqlParser.KW_WORK); + } + } + + this.state = 4470; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 4465; + this.match(MySqlParser.KW_AND); + this.state = 4467; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO) { + { + this.state = 4466; + _localctx._nochain = this.match(MySqlParser.KW_NO); + } + } + + this.state = 4469; + this.match(MySqlParser.KW_CHAIN); + } + } + + this.state = 4476; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 651, this._ctx) ) { + case 1: + { + this.state = 4473; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO) { + { + this.state = 4472; + _localctx._norelease = this.match(MySqlParser.KW_NO); + } + } + + this.state = 4475; + this.match(MySqlParser.KW_RELEASE); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public savepointStatement(): SavepointStatementContext { + let _localctx: SavepointStatementContext = new SavepointStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 330, MySqlParser.RULE_savepointStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4478; + this.match(MySqlParser.KW_SAVEPOINT); + this.state = 4479; + _localctx._identifier = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public rollbackStatement(): RollbackStatementContext { + let _localctx: RollbackStatementContext = new RollbackStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 332, MySqlParser.RULE_rollbackStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4481; + this.match(MySqlParser.KW_ROLLBACK); + this.state = 4483; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WORK) { + { + this.state = 4482; + this.match(MySqlParser.KW_WORK); + } + } + + this.state = 4485; + this.match(MySqlParser.KW_TO); + this.state = 4487; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 653, this._ctx) ) { + case 1: + { + this.state = 4486; + this.match(MySqlParser.KW_SAVEPOINT); + } + break; + } + this.state = 4489; + _localctx._identifier = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public releaseStatement(): ReleaseStatementContext { + let _localctx: ReleaseStatementContext = new ReleaseStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 334, MySqlParser.RULE_releaseStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4491; + this.match(MySqlParser.KW_RELEASE); + this.state = 4492; + this.match(MySqlParser.KW_SAVEPOINT); + this.state = 4493; + _localctx._identifier = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lockTables(): LockTablesContext { + let _localctx: LockTablesContext = new LockTablesContext(this._ctx, this.state); + this.enterRule(_localctx, 336, MySqlParser.RULE_lockTables); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4495; + this.match(MySqlParser.KW_LOCK); + this.state = 4496; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_TABLE || _la === MySqlParser.KW_TABLES)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4497; + this.lockTableElement(); + this.state = 4502; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4498; + this.match(MySqlParser.COMMA); + this.state = 4499; + this.lockTableElement(); + } + } + this.state = 4504; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public unlockTables(): UnlockTablesContext { + let _localctx: UnlockTablesContext = new UnlockTablesContext(this._ctx, this.state); + this.enterRule(_localctx, 338, MySqlParser.RULE_unlockTables); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4505; + this.match(MySqlParser.KW_UNLOCK); + this.state = 4506; + this.match(MySqlParser.KW_TABLES); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setAutocommitStatement(): SetAutocommitStatementContext { + let _localctx: SetAutocommitStatementContext = new SetAutocommitStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 340, MySqlParser.RULE_setAutocommitStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4508; + this.match(MySqlParser.KW_SET); + this.state = 4509; + this.match(MySqlParser.KW_AUTOCOMMIT); + this.state = 4510; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4511; + _localctx._autocommitValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + _localctx._autocommitValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setTransactionStatement(): SetTransactionStatementContext { + let _localctx: SetTransactionStatementContext = new SetTransactionStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 342, MySqlParser.RULE_setTransactionStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4513; + this.match(MySqlParser.KW_SET); + this.state = 4515; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_SESSION) { + { + this.state = 4514; + _localctx._transactionContext = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_SESSION)) { + _localctx._transactionContext = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 4517; + this.match(MySqlParser.KW_TRANSACTION); + this.state = 4518; + this.transactionOption(); + this.state = 4523; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4519; + this.match(MySqlParser.COMMA); + this.state = 4520; + this.transactionOption(); + } + } + this.state = 4525; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public transactionMode(): TransactionModeContext { + let _localctx: TransactionModeContext = new TransactionModeContext(this._ctx, this.state); + this.enterRule(_localctx, 344, MySqlParser.RULE_transactionMode); + try { + this.state = 4533; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 657, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4526; + this.match(MySqlParser.KW_WITH); + this.state = 4527; + this.match(MySqlParser.KW_CONSISTENT); + this.state = 4528; + this.match(MySqlParser.KW_SNAPSHOT); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4529; + this.match(MySqlParser.KW_READ); + this.state = 4530; + this.match(MySqlParser.KW_WRITE); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4531; + this.match(MySqlParser.KW_READ); + this.state = 4532; + this.match(MySqlParser.KW_ONLY); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lockTableElement(): LockTableElementContext { + let _localctx: LockTableElementContext = new LockTableElementContext(this._ctx, this.state); + this.enterRule(_localctx, 346, MySqlParser.RULE_lockTableElement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4535; + this.tableName(); + this.state = 4540; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_AS) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 4537; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 4536; + this.match(MySqlParser.KW_AS); + } + } + + this.state = 4539; + _localctx._alias = this.uid(); + } + } + + this.state = 4542; + this.lockAction(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lockAction(): LockActionContext { + let _localctx: LockActionContext = new LockActionContext(this._ctx, this.state); + this.enterRule(_localctx, 348, MySqlParser.RULE_lockAction); + let _la: number; + try { + this.state = 4552; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_READ: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4544; + this.match(MySqlParser.KW_READ); + this.state = 4546; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOCAL) { + { + this.state = 4545; + this.match(MySqlParser.KW_LOCAL); + } + } + + } + break; + case MySqlParser.KW_LOW_PRIORITY: + case MySqlParser.KW_WRITE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4549; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LOW_PRIORITY) { + { + this.state = 4548; + this.match(MySqlParser.KW_LOW_PRIORITY); + } + } + + this.state = 4551; + this.match(MySqlParser.KW_WRITE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public transactionOption(): TransactionOptionContext { + let _localctx: TransactionOptionContext = new TransactionOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 350, MySqlParser.RULE_transactionOption); + try { + this.state = 4561; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 663, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4554; + this.match(MySqlParser.KW_ISOLATION); + this.state = 4555; + this.match(MySqlParser.KW_LEVEL); + this.state = 4556; + this.transactionLevel(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4557; + this.match(MySqlParser.KW_READ); + this.state = 4558; + this.match(MySqlParser.KW_WRITE); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4559; + this.match(MySqlParser.KW_READ); + this.state = 4560; + this.match(MySqlParser.KW_ONLY); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public transactionLevel(): TransactionLevelContext { + let _localctx: TransactionLevelContext = new TransactionLevelContext(this._ctx, this.state); + this.enterRule(_localctx, 352, MySqlParser.RULE_transactionLevel); + try { + this.state = 4570; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 664, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4563; + this.match(MySqlParser.KW_REPEATABLE); + this.state = 4564; + this.match(MySqlParser.KW_READ); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4565; + this.match(MySqlParser.KW_READ); + this.state = 4566; + this.match(MySqlParser.KW_COMMITTED); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4567; + this.match(MySqlParser.KW_READ); + this.state = 4568; + this.match(MySqlParser.KW_UNCOMMITTED); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 4569; + this.match(MySqlParser.KW_SERIALIZABLE); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public changeMaster(): ChangeMasterContext { + let _localctx: ChangeMasterContext = new ChangeMasterContext(this._ctx, this.state); + this.enterRule(_localctx, 354, MySqlParser.RULE_changeMaster); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4572; + this.match(MySqlParser.KW_CHANGE); + this.state = 4573; + this.match(MySqlParser.KW_MASTER); + this.state = 4574; + this.match(MySqlParser.KW_TO); + this.state = 4575; + this.masterOption(); + this.state = 4580; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4576; + this.match(MySqlParser.COMMA); + this.state = 4577; + this.masterOption(); + } + } + this.state = 4582; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4584; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4583; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public changeReplicationFilter(): ChangeReplicationFilterContext { + let _localctx: ChangeReplicationFilterContext = new ChangeReplicationFilterContext(this._ctx, this.state); + this.enterRule(_localctx, 356, MySqlParser.RULE_changeReplicationFilter); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4586; + this.match(MySqlParser.KW_CHANGE); + this.state = 4587; + this.match(MySqlParser.KW_REPLICATION); + this.state = 4588; + this.match(MySqlParser.KW_FILTER); + this.state = 4589; + this.replicationFilter(); + this.state = 4594; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4590; + this.match(MySqlParser.COMMA); + this.state = 4591; + this.replicationFilter(); + } + } + this.state = 4596; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4598; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4597; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public changeReplicationSource(): ChangeReplicationSourceContext { + let _localctx: ChangeReplicationSourceContext = new ChangeReplicationSourceContext(this._ctx, this.state); + this.enterRule(_localctx, 358, MySqlParser.RULE_changeReplicationSource); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4600; + this.match(MySqlParser.KW_CHANGE); + this.state = 4601; + this.match(MySqlParser.KW_REPLICATION); + this.state = 4602; + this.match(MySqlParser.KW_SOURCE); + this.state = 4603; + this.match(MySqlParser.KW_TO); + this.state = 4604; + this.replicationSourceOption(); + this.state = 4609; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4605; + this.match(MySqlParser.COMMA); + this.state = 4606; + this.replicationSourceOption(); + } + } + this.state = 4611; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4613; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4612; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public purgeBinaryLogs(): PurgeBinaryLogsContext { + let _localctx: PurgeBinaryLogsContext = new PurgeBinaryLogsContext(this._ctx, this.state); + this.enterRule(_localctx, 360, MySqlParser.RULE_purgeBinaryLogs); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4615; + this.match(MySqlParser.KW_PURGE); + this.state = 4616; + _localctx._purgeFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINARY || _la === MySqlParser.KW_MASTER)) { + _localctx._purgeFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4617; + this.match(MySqlParser.KW_LOGS); + this.state = 4622; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_TO: + { + this.state = 4618; + this.match(MySqlParser.KW_TO); + this.state = 4619; + _localctx._fileName = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_BEFORE: + { + this.state = 4620; + this.match(MySqlParser.KW_BEFORE); + this.state = 4621; + _localctx._timeValue = this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public startSlaveOrReplica(): StartSlaveOrReplicaContext { + let _localctx: StartSlaveOrReplicaContext = new StartSlaveOrReplicaContext(this._ctx, this.state); + this.enterRule(_localctx, 362, MySqlParser.RULE_startSlaveOrReplica); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4624; + this.match(MySqlParser.KW_START); + this.state = 4625; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_REPLICA || _la === MySqlParser.KW_SLAVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IO_THREAD || _la === MySqlParser.KW_SQL_THREAD) { + { + this.state = 4626; + this.threadType(); + this.state = 4631; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4627; + this.match(MySqlParser.COMMA); + this.state = 4628; + this.threadType(); + } + } + this.state = 4633; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 4638; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_UNTIL) { + { + this.state = 4636; + this.match(MySqlParser.KW_UNTIL); + this.state = 4637; + this.untilOption(); + } + } + + this.state = 4643; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DEFAULT_AUTH || _la === MySqlParser.KW_PASSWORD || _la === MySqlParser.KW_PLUGIN_DIR || _la === MySqlParser.KW_USER) { + { + { + this.state = 4640; + this.connectionOptions(); + } + } + this.state = 4645; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4647; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4646; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public stopSlaveOrReplica(): StopSlaveOrReplicaContext { + let _localctx: StopSlaveOrReplicaContext = new StopSlaveOrReplicaContext(this._ctx, this.state); + this.enterRule(_localctx, 364, MySqlParser.RULE_stopSlaveOrReplica); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4649; + this.match(MySqlParser.KW_STOP); + this.state = 4650; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_REPLICA || _la === MySqlParser.KW_SLAVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4659; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IO_THREAD || _la === MySqlParser.KW_SQL_THREAD) { + { + this.state = 4651; + this.threadType(); + this.state = 4656; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4652; + this.match(MySqlParser.COMMA); + this.state = 4653; + this.threadType(); + } + } + this.state = 4658; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 4662; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4661; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public startGroupReplication(): StartGroupReplicationContext { + let _localctx: StartGroupReplicationContext = new StartGroupReplicationContext(this._ctx, this.state); + this.enterRule(_localctx, 366, MySqlParser.RULE_startGroupReplication); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4664; + this.match(MySqlParser.KW_START); + this.state = 4665; + this.match(MySqlParser.KW_GROUP_REPLICATION); + this.state = 4669; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USER) { + { + this.state = 4666; + this.match(MySqlParser.KW_USER); + this.state = 4667; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4668; + this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 4675; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 681, this._ctx) ) { + case 1: + { + this.state = 4671; + this.match(MySqlParser.COMMA); + this.state = 4672; + this.match(MySqlParser.KW_PASSWORD); + this.state = 4673; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4674; + this.match(MySqlParser.STRING_LITERAL); + } + break; + } + this.state = 4681; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 4677; + this.match(MySqlParser.COMMA); + this.state = 4678; + this.match(MySqlParser.KW_DEFAULT_AUTH); + this.state = 4679; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4680; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public stopGroupReplication(): StopGroupReplicationContext { + let _localctx: StopGroupReplicationContext = new StopGroupReplicationContext(this._ctx, this.state); + this.enterRule(_localctx, 368, MySqlParser.RULE_stopGroupReplication); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4683; + this.match(MySqlParser.KW_STOP); + this.state = 4684; + this.match(MySqlParser.KW_GROUP_REPLICATION); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public masterOption(): MasterOptionContext { + let _localctx: MasterOptionContext = new MasterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 370, MySqlParser.RULE_masterOption); + let _la: number; + try { + this.state = 4713; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_MASTER_BIND: + case MySqlParser.KW_MASTER_COMPRESSION_ALGORITHMS: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PUBLIC_KEY_PATH: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_CIPHERSUITES: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_NETWORK_NAMESPACE: + case MySqlParser.KW_RELAY_LOG_FILE: + _localctx = new MasterStringOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4686; + this.stringMasterOption(); + this.state = 4687; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4688; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_ZSTD_COMPRESSION_LEVEL: + case MySqlParser.KW_RELAY_LOG_POS: + _localctx = new MasterDecimalOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4690; + this.decimalMasterOption(); + this.state = 4691; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4692; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_MASTER_SSL_VERIFY_SERVER_CERT: + case MySqlParser.KW_GET_MASTER_PUBLIC_KEY: + case MySqlParser.KW_GTID_ONLY: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_REQUIRE_ROW_FORMAT: + case MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER: + _localctx = new MasterBoolOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4694; + this.boolMasterOption(); + this.state = 4695; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4696; + (_localctx as MasterBoolOptionContext)._boolVal = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as MasterBoolOptionContext)._boolVal = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS: + case MySqlParser.KW_PRIVILEGE_CHECKS_USER: + case MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK: + _localctx = new V8AddMasterOptionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4698; + this.v8NewMasterOption(); + } + break; + case MySqlParser.KW_IGNORE_SERVER_IDS: + _localctx = new MasterUidListOptionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 4699; + this.match(MySqlParser.KW_IGNORE_SERVER_IDS); + this.state = 4700; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4701; + this.match(MySqlParser.LR_BRACKET); + this.state = 4710; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 4702; + (_localctx as MasterUidListOptionContext)._server_id = this.uid(); + this.state = 4707; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4703; + this.match(MySqlParser.COMMA); + this.state = 4704; + (_localctx as MasterUidListOptionContext)._server_id = this.uid(); + } + } + this.state = 4709; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 4712; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public stringMasterOption(): StringMasterOptionContext { + let _localctx: StringMasterOptionContext = new StringMasterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 372, MySqlParser.RULE_stringMasterOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4715; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MASTER_BIND || ((((_la - 455)) & ~0x1F) === 0 && ((1 << (_la - 455)) & ((1 << (MySqlParser.KW_MASTER_COMPRESSION_ALGORITHMS - 455)) | (1 << (MySqlParser.KW_MASTER_HOST - 455)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 455)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 455)) | (1 << (MySqlParser.KW_MASTER_PUBLIC_KEY_PATH - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 455)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 455)) | (1 << (MySqlParser.KW_MASTER_TLS_CIPHERSUITES - 455)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 455)) | (1 << (MySqlParser.KW_MASTER_USER - 455)))) !== 0) || _la === MySqlParser.KW_NETWORK_NAMESPACE || _la === MySqlParser.KW_RELAY_LOG_FILE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public decimalMasterOption(): DecimalMasterOptionContext { + let _localctx: DecimalMasterOptionContext = new DecimalMasterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 374, MySqlParser.RULE_decimalMasterOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4717; + _la = this._input.LA(1); + if (!(((((_la - 456)) & ~0x1F) === 0 && ((1 << (_la - 456)) & ((1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 456)) | (1 << (MySqlParser.KW_MASTER_DELAY - 456)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 456)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 456)) | (1 << (MySqlParser.KW_MASTER_PORT - 456)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 456)) | (1 << (MySqlParser.KW_MASTER_ZSTD_COMPRESSION_LEVEL - 456)))) !== 0) || _la === MySqlParser.KW_RELAY_LOG_POS)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public boolMasterOption(): BoolMasterOptionContext { + let _localctx: BoolMasterOptionContext = new BoolMasterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 376, MySqlParser.RULE_boolMasterOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4719; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MASTER_SSL_VERIFY_SERVER_CERT || _la === MySqlParser.KW_GET_MASTER_PUBLIC_KEY || _la === MySqlParser.KW_GTID_ONLY || _la === MySqlParser.KW_MASTER_AUTO_POSITION || _la === MySqlParser.KW_MASTER_SSL || _la === MySqlParser.KW_REQUIRE_ROW_FORMAT || _la === MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public v8NewMasterOption(): V8NewMasterOptionContext { + let _localctx: V8NewMasterOptionContext = new V8NewMasterOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 378, MySqlParser.RULE_v8NewMasterOption); + let _la: number; + try { + this.state = 4734; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_PRIVILEGE_CHECKS_USER: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4721; + this.match(MySqlParser.KW_PRIVILEGE_CHECKS_USER); + this.state = 4722; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4723; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.STRING_LITERAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4724; + this.match(MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK); + this.state = 4725; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4726; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_STREAM || _la === MySqlParser.KW_ON || _la === MySqlParser.KW_OFF)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4727; + this.match(MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS); + this.state = 4728; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4732; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_OFF: + { + this.state = 4729; + this.match(MySqlParser.KW_OFF); + } + break; + case MySqlParser.KW_LOCAL: + { + this.state = 4730; + this.match(MySqlParser.KW_LOCAL); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.STRING_LITERAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 4731; + this.gtuidSet(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public replicationSourceOption(): ReplicationSourceOptionContext { + let _localctx: ReplicationSourceOptionContext = new ReplicationSourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 380, MySqlParser.RULE_replicationSourceOption); + let _la: number; + try { + this.state = 4763; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NETWORK_NAMESPACE: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_SOURCE_BIND: + case MySqlParser.KW_SOURCE_HOST: + case MySqlParser.KW_SOURCE_USER: + case MySqlParser.KW_SOURCE_PASSWORD: + case MySqlParser.KW_SOURCE_LOG_FILE: + case MySqlParser.KW_SOURCE_COMPRESSION_ALGORITHMS: + case MySqlParser.KW_SOURCE_SSL_CA: + case MySqlParser.KW_SOURCE_SSL_CAPATH: + case MySqlParser.KW_SOURCE_SSL_CERT: + case MySqlParser.KW_SOURCE_SSL_CRL: + case MySqlParser.KW_SOURCE_SSL_CRLPATH: + case MySqlParser.KW_SOURCE_SSL_KEY: + case MySqlParser.KW_SOURCE_SSL_CIPHER: + case MySqlParser.KW_SOURCE_TLS_VERSION: + case MySqlParser.KW_SOURCE_TLS_CIPHERSUITES: + case MySqlParser.KW_SOURCE_PUBLIC_KEY_PATH: + _localctx = new SourceStringOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4736; + this.stringSourceOption(); + this.state = 4737; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4738; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_SOURCE_PORT: + case MySqlParser.KW_SOURCE_LOG_POS: + case MySqlParser.KW_SOURCE_HEARTBEAT_PERIOD: + case MySqlParser.KW_SOURCE_CONNECT_RETRY: + case MySqlParser.KW_SOURCE_RETRY_COUNT: + case MySqlParser.KW_SOURCE_DELAY: + case MySqlParser.KW_SOURCE_ZSTD_COMPRESSION_LEVEL: + _localctx = new SourceDecimalOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4740; + this.decimalSourceOption(); + this.state = 4741; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4742; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_GET_SOURCE_PUBLIC_KEY: + case MySqlParser.KW_GTID_ONLY: + case MySqlParser.KW_REQUIRE_ROW_FORMAT: + case MySqlParser.KW_SOURCE_AUTO_POSITION: + case MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER: + case MySqlParser.KW_SOURCE_SSL: + case MySqlParser.KW_SOURCE_SSL_VERIFY_SERVER_CERT: + _localctx = new SourceBoolOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4744; + this.boolSourceOption(); + this.state = 4745; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4746; + (_localctx as SourceBoolOptionContext)._boolVal = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.ZERO_DECIMAL || _la === MySqlParser.ONE_DECIMAL)) { + (_localctx as SourceBoolOptionContext)._boolVal = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS: + case MySqlParser.KW_PRIVILEGE_CHECKS_USER: + case MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK: + _localctx = new SourceOtherOptionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4748; + this.otherSourceOption(); + } + break; + case MySqlParser.KW_IGNORE_SERVER_IDS: + _localctx = new SourceUidListOptionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 4749; + this.match(MySqlParser.KW_IGNORE_SERVER_IDS); + this.state = 4750; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4751; + this.match(MySqlParser.LR_BRACKET); + this.state = 4760; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 4752; + (_localctx as SourceUidListOptionContext)._server_id = this.uid(); + this.state = 4757; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4753; + this.match(MySqlParser.COMMA); + this.state = 4754; + (_localctx as SourceUidListOptionContext)._server_id = this.uid(); + } + } + this.state = 4759; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 4762; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public stringSourceOption(): StringSourceOptionContext { + let _localctx: StringSourceOptionContext = new StringSourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 382, MySqlParser.RULE_stringSourceOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4765; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NETWORK_NAMESPACE || _la === MySqlParser.KW_RELAY_LOG_FILE || ((((_la - 606)) & ~0x1F) === 0 && ((1 << (_la - 606)) & ((1 << (MySqlParser.KW_SOURCE_BIND - 606)) | (1 << (MySqlParser.KW_SOURCE_HOST - 606)) | (1 << (MySqlParser.KW_SOURCE_USER - 606)) | (1 << (MySqlParser.KW_SOURCE_PASSWORD - 606)) | (1 << (MySqlParser.KW_SOURCE_LOG_FILE - 606)) | (1 << (MySqlParser.KW_SOURCE_COMPRESSION_ALGORITHMS - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CA - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CAPATH - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CERT - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CRL - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CRLPATH - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_KEY - 606)) | (1 << (MySqlParser.KW_SOURCE_SSL_CIPHER - 606)) | (1 << (MySqlParser.KW_SOURCE_TLS_VERSION - 606)) | (1 << (MySqlParser.KW_SOURCE_TLS_CIPHERSUITES - 606)) | (1 << (MySqlParser.KW_SOURCE_PUBLIC_KEY_PATH - 606)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public decimalSourceOption(): DecimalSourceOptionContext { + let _localctx: DecimalSourceOptionContext = new DecimalSourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 384, MySqlParser.RULE_decimalSourceOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4767; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_RELAY_LOG_POS || ((((_la - 610)) & ~0x1F) === 0 && ((1 << (_la - 610)) & ((1 << (MySqlParser.KW_SOURCE_PORT - 610)) | (1 << (MySqlParser.KW_SOURCE_LOG_POS - 610)) | (1 << (MySqlParser.KW_SOURCE_HEARTBEAT_PERIOD - 610)) | (1 << (MySqlParser.KW_SOURCE_CONNECT_RETRY - 610)) | (1 << (MySqlParser.KW_SOURCE_RETRY_COUNT - 610)) | (1 << (MySqlParser.KW_SOURCE_DELAY - 610)) | (1 << (MySqlParser.KW_SOURCE_ZSTD_COMPRESSION_LEVEL - 610)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public boolSourceOption(): BoolSourceOptionContext { + let _localctx: BoolSourceOptionContext = new BoolSourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 386, MySqlParser.RULE_boolSourceOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4769; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GET_SOURCE_PUBLIC_KEY || _la === MySqlParser.KW_GTID_ONLY || _la === MySqlParser.KW_REQUIRE_ROW_FORMAT || ((((_la - 613)) & ~0x1F) === 0 && ((1 << (_la - 613)) & ((1 << (MySqlParser.KW_SOURCE_AUTO_POSITION - 613)) | (1 << (MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER - 613)) | (1 << (MySqlParser.KW_SOURCE_SSL - 613)) | (1 << (MySqlParser.KW_SOURCE_SSL_VERIFY_SERVER_CERT - 613)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public otherSourceOption(): OtherSourceOptionContext { + let _localctx: OtherSourceOptionContext = new OtherSourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 388, MySqlParser.RULE_otherSourceOption); + let _la: number; + try { + this.state = 4784; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_PRIVILEGE_CHECKS_USER: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4771; + this.match(MySqlParser.KW_PRIVILEGE_CHECKS_USER); + this.state = 4772; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4773; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.STRING_LITERAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4774; + this.match(MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK); + this.state = 4775; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4776; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GENERATE || _la === MySqlParser.KW_STREAM || _la === MySqlParser.KW_ON || _la === MySqlParser.KW_OFF)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS: + this.enterOuterAlt(_localctx, 3); + { + this.state = 4777; + this.match(MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS); + this.state = 4778; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4782; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_OFF: + { + this.state = 4779; + this.match(MySqlParser.KW_OFF); + } + break; + case MySqlParser.KW_LOCAL: + { + this.state = 4780; + this.match(MySqlParser.KW_LOCAL); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.STRING_LITERAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 4781; + this.gtuidSet(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public channelOption(): ChannelOptionContext { + let _localctx: ChannelOptionContext = new ChannelOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 390, MySqlParser.RULE_channelOption); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4786; + this.match(MySqlParser.KW_FOR); + this.state = 4787; + this.match(MySqlParser.KW_CHANNEL); + this.state = 4788; + this.match(MySqlParser.STRING_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public replicationFilter(): ReplicationFilterContext { + let _localctx: ReplicationFilterContext = new ReplicationFilterContext(this._ctx, this.state); + this.enterRule(_localctx, 392, MySqlParser.RULE_replicationFilter); + let _la: number; + try { + this.state = 4853; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_REPLICATE_DO_DB: + _localctx = new DoDbReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4790; + this.match(MySqlParser.KW_REPLICATE_DO_DB); + this.state = 4791; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4792; + this.match(MySqlParser.LR_BRACKET); + this.state = 4793; + this.databaseName(); + this.state = 4798; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4794; + this.match(MySqlParser.COMMA); + this.state = 4795; + this.databaseName(); + } + } + this.state = 4800; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4801; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_IGNORE_DB: + _localctx = new IgnoreDbReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4803; + this.match(MySqlParser.KW_REPLICATE_IGNORE_DB); + this.state = 4804; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4805; + this.match(MySqlParser.LR_BRACKET); + this.state = 4806; + this.databaseName(); + this.state = 4811; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4807; + this.match(MySqlParser.COMMA); + this.state = 4808; + this.databaseName(); + } + } + this.state = 4813; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4814; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_DO_TABLE: + _localctx = new DoTableReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4816; + this.match(MySqlParser.KW_REPLICATE_DO_TABLE); + this.state = 4817; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4818; + this.match(MySqlParser.LR_BRACKET); + this.state = 4819; + this.tableNames(); + this.state = 4820; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + _localctx = new IgnoreTableReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4822; + this.match(MySqlParser.KW_REPLICATE_IGNORE_TABLE); + this.state = 4823; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4824; + this.match(MySqlParser.LR_BRACKET); + this.state = 4825; + this.tableNames(); + this.state = 4826; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + _localctx = new WildDoTableReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 4828; + this.match(MySqlParser.KW_REPLICATE_WILD_DO_TABLE); + this.state = 4829; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4830; + this.match(MySqlParser.LR_BRACKET); + this.state = 4831; + this.simpleStrings(); + this.state = 4832; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + _localctx = new WildIgnoreTableReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 4834; + this.match(MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE); + this.state = 4835; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4836; + this.match(MySqlParser.LR_BRACKET); + this.state = 4837; + this.simpleStrings(); + this.state = 4838; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_REPLICATE_REWRITE_DB: + _localctx = new RewriteDbReplicationContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 4840; + this.match(MySqlParser.KW_REPLICATE_REWRITE_DB); + this.state = 4841; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4842; + this.match(MySqlParser.LR_BRACKET); + this.state = 4843; + this.tablePair(); + this.state = 4848; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 4844; + this.match(MySqlParser.COMMA); + this.state = 4845; + this.tablePair(); + } + } + this.state = 4850; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 4851; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tablePair(): TablePairContext { + let _localctx: TablePairContext = new TablePairContext(this._ctx, this.state); + this.enterRule(_localctx, 394, MySqlParser.RULE_tablePair); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4855; + this.match(MySqlParser.LR_BRACKET); + this.state = 4856; + _localctx._firstTable = this.tableName(); + this.state = 4857; + this.match(MySqlParser.COMMA); + this.state = 4858; + _localctx._secondTable = this.tableName(); + this.state = 4859; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public threadType(): ThreadTypeContext { + let _localctx: ThreadTypeContext = new ThreadTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 396, MySqlParser.RULE_threadType); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4861; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_IO_THREAD || _la === MySqlParser.KW_SQL_THREAD)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public untilOption(): UntilOptionContext { + let _localctx: UntilOptionContext = new UntilOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 398, MySqlParser.RULE_untilOption); + let _la: number; + try { + this.state = 4888; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + _localctx = new GtidsUntilOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4863; + (_localctx as GtidsUntilOptionContext)._gtids = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SQL_AFTER_GTIDS || _la === MySqlParser.KW_SQL_BEFORE_GTIDS)) { + (_localctx as GtidsUntilOptionContext)._gtids = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4864; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4865; + this.gtuidSet(); + } + break; + case MySqlParser.KW_MASTER_LOG_FILE: + _localctx = new MasterLogUntilOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4866; + this.match(MySqlParser.KW_MASTER_LOG_FILE); + this.state = 4867; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4868; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4869; + this.match(MySqlParser.COMMA); + this.state = 4870; + this.match(MySqlParser.KW_MASTER_LOG_POS); + this.state = 4871; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4872; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_SOURCE_LOG_FILE: + _localctx = new SourceLogUntilOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4873; + this.match(MySqlParser.KW_SOURCE_LOG_FILE); + this.state = 4874; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4875; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4876; + this.match(MySqlParser.COMMA); + this.state = 4877; + this.match(MySqlParser.KW_SOURCE_LOG_POS); + this.state = 4878; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4879; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_RELAY_LOG_FILE: + _localctx = new RelayLogUntilOptionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4880; + this.match(MySqlParser.KW_RELAY_LOG_FILE); + this.state = 4881; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4882; + this.match(MySqlParser.STRING_LITERAL); + this.state = 4883; + this.match(MySqlParser.COMMA); + this.state = 4884; + this.match(MySqlParser.KW_RELAY_LOG_POS); + this.state = 4885; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4886; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + _localctx = new SqlGapsUntilOptionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 4887; + this.match(MySqlParser.KW_SQL_AFTER_MTS_GAPS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public connectionOptions(): ConnectionOptionsContext { + let _localctx: ConnectionOptionsContext = new ConnectionOptionsContext(this._ctx, this.state); + this.enterRule(_localctx, 400, MySqlParser.RULE_connectionOptions); + try { + this.state = 4902; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_USER: + _localctx = new UserConnectionOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 4890; + this.match(MySqlParser.KW_USER); + this.state = 4891; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4892; + (_localctx as UserConnectionOptionContext)._conOptUser = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_PASSWORD: + _localctx = new PasswordConnectionOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 4893; + this.match(MySqlParser.KW_PASSWORD); + this.state = 4894; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4895; + (_localctx as PasswordConnectionOptionContext)._conOptPassword = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_DEFAULT_AUTH: + _localctx = new DefaultAuthConnectionOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 4896; + this.match(MySqlParser.KW_DEFAULT_AUTH); + this.state = 4897; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4898; + (_localctx as DefaultAuthConnectionOptionContext)._conOptDefAuth = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_PLUGIN_DIR: + _localctx = new PluginDirConnectionOptionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 4899; + this.match(MySqlParser.KW_PLUGIN_DIR); + this.state = 4900; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 4901; + (_localctx as PluginDirConnectionOptionContext)._conOptPluginDir = this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public gtuidSet(): GtuidSetContext { + let _localctx: GtuidSetContext = new GtuidSetContext(this._ctx, this.state); + this.enterRule(_localctx, 402, MySqlParser.RULE_gtuidSet); + try { + let _alt: number; + this.state = 4913; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4904; + this.uuidSet(); + this.state = 4909; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 699, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4905; + this.match(MySqlParser.COMMA); + this.state = 4906; + this.uuidSet(); + } + } + } + this.state = 4911; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 699, this._ctx); + } + } + break; + case MySqlParser.STRING_LITERAL: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4912; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaStartTransaction(): XaStartTransactionContext { + let _localctx: XaStartTransactionContext = new XaStartTransactionContext(this._ctx, this.state); + this.enterRule(_localctx, 404, MySqlParser.RULE_xaStartTransaction); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4915; + this.match(MySqlParser.KW_XA); + this.state = 4916; + _localctx._xaStart = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BEGIN || _la === MySqlParser.KW_START)) { + _localctx._xaStart = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4917; + this.xid(); + this.state = 4919; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_JOIN || _la === MySqlParser.KW_RESUME) { + { + this.state = 4918; + _localctx._xaAction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_JOIN || _la === MySqlParser.KW_RESUME)) { + _localctx._xaAction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaEndTransaction(): XaEndTransactionContext { + let _localctx: XaEndTransactionContext = new XaEndTransactionContext(this._ctx, this.state); + this.enterRule(_localctx, 406, MySqlParser.RULE_xaEndTransaction); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4921; + this.match(MySqlParser.KW_XA); + this.state = 4922; + this.match(MySqlParser.KW_END); + this.state = 4923; + this.xid(); + this.state = 4929; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SUSPEND) { + { + this.state = 4924; + this.match(MySqlParser.KW_SUSPEND); + this.state = 4927; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 4925; + this.match(MySqlParser.KW_FOR); + this.state = 4926; + this.match(MySqlParser.KW_MIGRATE); + } + } + + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaPrepareStatement(): XaPrepareStatementContext { + let _localctx: XaPrepareStatementContext = new XaPrepareStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 408, MySqlParser.RULE_xaPrepareStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4931; + this.match(MySqlParser.KW_XA); + this.state = 4932; + this.match(MySqlParser.KW_PREPARE); + this.state = 4933; + this.xid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaCommitWork(): XaCommitWorkContext { + let _localctx: XaCommitWorkContext = new XaCommitWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 410, MySqlParser.RULE_xaCommitWork); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4935; + this.match(MySqlParser.KW_XA); + this.state = 4936; + this.match(MySqlParser.KW_COMMIT); + this.state = 4937; + this.xid(); + this.state = 4940; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ONE) { + { + this.state = 4938; + this.match(MySqlParser.KW_ONE); + this.state = 4939; + this.match(MySqlParser.KW_PHASE); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaRollbackWork(): XaRollbackWorkContext { + let _localctx: XaRollbackWorkContext = new XaRollbackWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 412, MySqlParser.RULE_xaRollbackWork); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4942; + this.match(MySqlParser.KW_XA); + this.state = 4943; + this.match(MySqlParser.KW_ROLLBACK); + this.state = 4944; + this.xid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xaRecoverWork(): XaRecoverWorkContext { + let _localctx: XaRecoverWorkContext = new XaRecoverWorkContext(this._ctx, this.state); + this.enterRule(_localctx, 414, MySqlParser.RULE_xaRecoverWork); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4946; + this.match(MySqlParser.KW_XA); + this.state = 4947; + this.match(MySqlParser.KW_RECOVER); + this.state = 4950; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CONVERT) { + { + this.state = 4948; + this.match(MySqlParser.KW_CONVERT); + this.state = 4949; + this.xid(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public prepareStatement(): PrepareStatementContext { + let _localctx: PrepareStatementContext = new PrepareStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 416, MySqlParser.RULE_prepareStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4952; + this.match(MySqlParser.KW_PREPARE); + this.state = 4953; + _localctx._stmt_name = this.uid(); + this.state = 4954; + this.match(MySqlParser.KW_FROM); + this.state = 4957; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + { + this.state = 4955; + _localctx._query = this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.LOCAL_ID: + { + this.state = 4956; + _localctx._variable = this.match(MySqlParser.LOCAL_ID); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public executeStatement(): ExecuteStatementContext { + let _localctx: ExecuteStatementContext = new ExecuteStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 418, MySqlParser.RULE_executeStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4959; + this.match(MySqlParser.KW_EXECUTE); + this.state = 4960; + _localctx._stmt_name = this.uid(); + this.state = 4963; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 4961; + this.match(MySqlParser.KW_USING); + this.state = 4962; + this.userVariables(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public deallocatePrepare(): DeallocatePrepareContext { + let _localctx: DeallocatePrepareContext = new DeallocatePrepareContext(this._ctx, this.state); + this.enterRule(_localctx, 420, MySqlParser.RULE_deallocatePrepare); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 4965; + _localctx._dropFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DROP || _la === MySqlParser.KW_DEALLOCATE)) { + _localctx._dropFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 4966; + this.match(MySqlParser.KW_PREPARE); + this.state = 4967; + _localctx._stmt_name = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public routineBody(): RoutineBodyContext { + let _localctx: RoutineBodyContext = new RoutineBodyContext(this._ctx, this.state); + this.enterRule(_localctx, 422, MySqlParser.RULE_routineBody); + try { + this.state = 4971; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 708, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 4969; + this.blockStatement(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 4970; + this.sqlStatement(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public blockStatement(): BlockStatementContext { + let _localctx: BlockStatementContext = new BlockStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 424, MySqlParser.RULE_blockStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 4976; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 709, this._ctx) ) { + case 1: + { + this.state = 4973; + _localctx._begin = this.uid(); + this.state = 4974; + this.match(MySqlParser.COLON_SYMB); + } + break; + } + this.state = 4978; + this.match(MySqlParser.KW_BEGIN); + this.state = 4984; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 710, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4979; + this.declareVariable(); + this.state = 4980; + this.match(MySqlParser.SEMI); + } + } + } + this.state = 4986; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 710, this._ctx); + } + this.state = 4992; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 711, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4987; + this.declareCondition(); + this.state = 4988; + this.match(MySqlParser.SEMI); + } + } + } + this.state = 4994; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 711, this._ctx); + } + this.state = 5000; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 712, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 4995; + this.declareCursor(); + this.state = 4996; + this.match(MySqlParser.SEMI); + } + } + } + this.state = 5002; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 712, this._ctx); + } + this.state = 5008; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_DECLARE) { + { + { + this.state = 5003; + this.declareHandler(); + this.state = 5004; + this.match(MySqlParser.SEMI); + } + } + this.state = 5010; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5014; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 714, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 5011; + this.procedureSqlStatement(); + } + } + } + this.state = 5016; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 714, this._ctx); + } + this.state = 5017; + this.match(MySqlParser.KW_END); + this.state = 5019; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 715, this._ctx) ) { + case 1: + { + this.state = 5018; + _localctx._end = this.uid(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public caseStatement(): CaseStatementContext { + let _localctx: CaseStatementContext = new CaseStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 426, MySqlParser.RULE_caseStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5021; + this.match(MySqlParser.KW_CASE); + this.state = 5024; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 716, this._ctx) ) { + case 1: + { + this.state = 5022; + _localctx._case_value = this.uid(); + } + break; + + case 2: + { + this.state = 5023; + this.expression(0); + } + break; + } + this.state = 5027; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 5026; + this.caseAlternative(); + } + } + this.state = 5029; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_WHEN); + this.state = 5037; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ELSE) { + { + this.state = 5031; + this.match(MySqlParser.KW_ELSE); + this.state = 5033; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5032; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5035; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 718, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + + this.state = 5039; + this.match(MySqlParser.KW_END); + this.state = 5040; + this.match(MySqlParser.KW_CASE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ifStatement(): IfStatementContext { + let _localctx: IfStatementContext = new IfStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 428, MySqlParser.RULE_ifStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5042; + this.match(MySqlParser.KW_IF); + this.state = 5043; + this.expression(0); + this.state = 5044; + this.match(MySqlParser.KW_THEN); + this.state = 5046; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5045; + _localctx._procedureSqlStatement = this.procedureSqlStatement(); + _localctx._thenStatements.push(_localctx._procedureSqlStatement); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5048; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 720, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 5053; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_ELSEIF) { + { + { + this.state = 5050; + this.elifAlternative(); + } + } + this.state = 5055; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5062; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ELSE) { + { + this.state = 5056; + this.match(MySqlParser.KW_ELSE); + this.state = 5058; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5057; + _localctx._procedureSqlStatement = this.procedureSqlStatement(); + _localctx._elseStatements.push(_localctx._procedureSqlStatement); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5060; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 722, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + + this.state = 5064; + this.match(MySqlParser.KW_END); + this.state = 5065; + this.match(MySqlParser.KW_IF); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public iterateStatement(): IterateStatementContext { + let _localctx: IterateStatementContext = new IterateStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 430, MySqlParser.RULE_iterateStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5067; + this.match(MySqlParser.KW_ITERATE); + this.state = 5068; + _localctx._label = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public leaveStatement(): LeaveStatementContext { + let _localctx: LeaveStatementContext = new LeaveStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 432, MySqlParser.RULE_leaveStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5070; + this.match(MySqlParser.KW_LEAVE); + this.state = 5071; + _localctx._label = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public loopStatement(): LoopStatementContext { + let _localctx: LoopStatementContext = new LoopStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 434, MySqlParser.RULE_loopStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5076; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 5073; + _localctx._begin_label = this.uid(); + this.state = 5074; + this.match(MySqlParser.COLON_SYMB); + } + } + + this.state = 5078; + this.match(MySqlParser.KW_LOOP); + this.state = 5080; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5079; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5082; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 725, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 5084; + this.match(MySqlParser.KW_END); + this.state = 5085; + this.match(MySqlParser.KW_LOOP); + this.state = 5087; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 5086; + _localctx._end_label = this.uid(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public repeatStatement(): RepeatStatementContext { + let _localctx: RepeatStatementContext = new RepeatStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 436, MySqlParser.RULE_repeatStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5092; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 727, this._ctx) ) { + case 1: + { + this.state = 5089; + _localctx._begin_label = this.uid(); + this.state = 5090; + this.match(MySqlParser.COLON_SYMB); + } + break; + } + this.state = 5094; + this.match(MySqlParser.KW_REPEAT); + this.state = 5096; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5095; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5098; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 728, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 5100; + this.match(MySqlParser.KW_UNTIL); + this.state = 5101; + this.expression(0); + this.state = 5102; + this.match(MySqlParser.KW_END); + this.state = 5103; + this.match(MySqlParser.KW_REPEAT); + this.state = 5105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 5104; + _localctx._end_label = this.uid(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public returnStatement(): ReturnStatementContext { + let _localctx: ReturnStatementContext = new ReturnStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 438, MySqlParser.RULE_returnStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5107; + this.match(MySqlParser.KW_RETURN); + this.state = 5108; + this.expression(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public whileStatement(): WhileStatementContext { + let _localctx: WhileStatementContext = new WhileStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 440, MySqlParser.RULE_whileStatement); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5113; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 5110; + _localctx._begin_label = this.uid(); + this.state = 5111; + this.match(MySqlParser.COLON_SYMB); + } + } + + this.state = 5115; + this.match(MySqlParser.KW_WHILE); + this.state = 5116; + this.expression(0); + this.state = 5117; + this.match(MySqlParser.KW_DO); + this.state = 5119; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5118; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5121; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 731, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + this.state = 5123; + this.match(MySqlParser.KW_END); + this.state = 5124; + this.match(MySqlParser.KW_WHILE); + this.state = 5126; + this._errHandler.sync(this); + _la = this._input.LA(1); + if ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DATABASE - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || ((((_la - 74)) & ~0x1F) === 0 && ((1 << (_la - 74)) & ((1 << (MySqlParser.KW_GROUP - 74)) | (1 << (MySqlParser.KW_IF - 74)) | (1 << (MySqlParser.KW_INSERT - 74)) | (1 << (MySqlParser.KW_LATERAL - 74)) | (1 << (MySqlParser.KW_LEFT - 74)))) !== 0) || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)) | (1 << (MySqlParser.KW_REPEAT - 117)) | (1 << (MySqlParser.KW_REPLACE - 117)))) !== 0) || ((((_la - 150)) & ~0x1F) === 0 && ((1 << (_la - 150)) & ((1 << (MySqlParser.KW_RIGHT - 150)) | (1 << (MySqlParser.KW_SCHEMA - 150)) | (1 << (MySqlParser.KW_SKIP_QUERY_REWRITE - 150)) | (1 << (MySqlParser.KW_STACKED - 150)))) !== 0) || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_BINARY - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_NESTED - 253)) | (1 << (MySqlParser.KW_ORDINALITY - 253)) | (1 << (MySqlParser.KW_PATH - 253)) | (1 << (MySqlParser.KW_AVG - 253)) | (1 << (MySqlParser.KW_BIT_AND - 253)) | (1 << (MySqlParser.KW_BIT_OR - 253)) | (1 << (MySqlParser.KW_BIT_XOR - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_MAX - 253)) | (1 << (MySqlParser.KW_MIN - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)) | (1 << (MySqlParser.KW_STD - 253)) | (1 << (MySqlParser.KW_STDDEV - 253)) | (1 << (MySqlParser.KW_STDDEV_POP - 253)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 253)) | (1 << (MySqlParser.KW_SUM - 253)) | (1 << (MySqlParser.KW_VAR_POP - 253)) | (1 << (MySqlParser.KW_VAR_SAMP - 253)) | (1 << (MySqlParser.KW_VARIANCE - 253)))) !== 0) || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_CURDATE - 285)) | (1 << (MySqlParser.KW_CURTIME - 285)) | (1 << (MySqlParser.KW_DATE_ADD - 285)) | (1 << (MySqlParser.KW_DATE_SUB - 285)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 285)) | (1 << (MySqlParser.KW_NOW - 285)) | (1 << (MySqlParser.KW_POSITION - 285)) | (1 << (MySqlParser.KW_SUBSTR - 285)) | (1 << (MySqlParser.KW_SUBSTRING - 285)) | (1 << (MySqlParser.KW_SYSDATE - 285)) | (1 << (MySqlParser.KW_TRIM - 285)) | (1 << (MySqlParser.KW_UTC_DATE - 285)) | (1 << (MySqlParser.KW_UTC_TIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_ACCOUNT - 285)) | (1 << (MySqlParser.KW_ACTION - 285)) | (1 << (MySqlParser.KW_AFTER - 285)) | (1 << (MySqlParser.KW_AGGREGATE - 285)) | (1 << (MySqlParser.KW_ALGORITHM - 285)) | (1 << (MySqlParser.KW_ANY - 285)) | (1 << (MySqlParser.KW_AT - 285)) | (1 << (MySqlParser.KW_AUTHORS - 285)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 285)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 285)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 285)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 285)))) !== 0) || ((((_la - 317)) & ~0x1F) === 0 && ((1 << (_la - 317)) & ((1 << (MySqlParser.KW_BEGIN - 317)) | (1 << (MySqlParser.KW_BINLOG - 317)) | (1 << (MySqlParser.KW_BIT - 317)) | (1 << (MySqlParser.KW_BLOCK - 317)) | (1 << (MySqlParser.KW_BOOL - 317)) | (1 << (MySqlParser.KW_BOOLEAN - 317)) | (1 << (MySqlParser.KW_BTREE - 317)) | (1 << (MySqlParser.KW_CACHE - 317)) | (1 << (MySqlParser.KW_CASCADED - 317)) | (1 << (MySqlParser.KW_CHAIN - 317)) | (1 << (MySqlParser.KW_CHANGED - 317)) | (1 << (MySqlParser.KW_CHANNEL - 317)) | (1 << (MySqlParser.KW_CHECKSUM - 317)) | (1 << (MySqlParser.KW_CIPHER - 317)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 317)) | (1 << (MySqlParser.KW_CLIENT - 317)) | (1 << (MySqlParser.KW_CLOSE - 317)) | (1 << (MySqlParser.KW_COALESCE - 317)) | (1 << (MySqlParser.KW_CODE - 317)) | (1 << (MySqlParser.KW_COLUMNS - 317)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 317)) | (1 << (MySqlParser.KW_COLUMN_NAME - 317)) | (1 << (MySqlParser.KW_COMMENT - 317)) | (1 << (MySqlParser.KW_COMMIT - 317)) | (1 << (MySqlParser.KW_COMPACT - 317)) | (1 << (MySqlParser.KW_COMPLETION - 317)) | (1 << (MySqlParser.KW_COMPRESSED - 317)) | (1 << (MySqlParser.KW_COMPRESSION - 317)) | (1 << (MySqlParser.KW_CONCURRENT - 317)) | (1 << (MySqlParser.KW_CONNECT - 317)))) !== 0) || ((((_la - 349)) & ~0x1F) === 0 && ((1 << (_la - 349)) & ((1 << (MySqlParser.KW_CONNECTION - 349)) | (1 << (MySqlParser.KW_CONSISTENT - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 349)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 349)) | (1 << (MySqlParser.KW_CONTAINS - 349)) | (1 << (MySqlParser.KW_CONTEXT - 349)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 349)) | (1 << (MySqlParser.KW_COPY - 349)) | (1 << (MySqlParser.KW_CPU - 349)) | (1 << (MySqlParser.KW_CURSOR_NAME - 349)) | (1 << (MySqlParser.KW_DATA - 349)) | (1 << (MySqlParser.KW_DATAFILE - 349)) | (1 << (MySqlParser.KW_DEALLOCATE - 349)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 349)) | (1 << (MySqlParser.KW_DEFINER - 349)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 349)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 349)) | (1 << (MySqlParser.KW_DIRECTORY - 349)) | (1 << (MySqlParser.KW_DISABLE - 349)) | (1 << (MySqlParser.KW_DISCARD - 349)) | (1 << (MySqlParser.KW_DISK - 349)) | (1 << (MySqlParser.KW_DO - 349)) | (1 << (MySqlParser.KW_DUMPFILE - 349)) | (1 << (MySqlParser.KW_DUPLICATE - 349)) | (1 << (MySqlParser.KW_DYNAMIC - 349)) | (1 << (MySqlParser.KW_ENABLE - 349)) | (1 << (MySqlParser.KW_ENCRYPTION - 349)) | (1 << (MySqlParser.KW_END - 349)) | (1 << (MySqlParser.KW_ENDS - 349)) | (1 << (MySqlParser.KW_ENGINE - 349)))) !== 0) || ((((_la - 381)) & ~0x1F) === 0 && ((1 << (_la - 381)) & ((1 << (MySqlParser.KW_ENGINES - 381)) | (1 << (MySqlParser.KW_ERROR - 381)) | (1 << (MySqlParser.KW_ERRORS - 381)) | (1 << (MySqlParser.KW_ESCAPE - 381)) | (1 << (MySqlParser.KW_EVENT - 381)) | (1 << (MySqlParser.KW_EVENTS - 381)) | (1 << (MySqlParser.KW_EVERY - 381)) | (1 << (MySqlParser.KW_EXCHANGE - 381)) | (1 << (MySqlParser.KW_EXCLUSIVE - 381)) | (1 << (MySqlParser.KW_EXPIRE - 381)) | (1 << (MySqlParser.KW_EXPORT - 381)) | (1 << (MySqlParser.KW_EXTENDED - 381)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 381)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 381)) | (1 << (MySqlParser.KW_FAST - 381)) | (1 << (MySqlParser.KW_FAULTS - 381)) | (1 << (MySqlParser.KW_FIELDS - 381)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 381)) | (1 << (MySqlParser.KW_FILTER - 381)) | (1 << (MySqlParser.KW_FIRST - 381)) | (1 << (MySqlParser.KW_FIXED - 381)) | (1 << (MySqlParser.KW_FLUSH - 381)) | (1 << (MySqlParser.KW_FOLLOWS - 381)) | (1 << (MySqlParser.KW_FOUND - 381)) | (1 << (MySqlParser.KW_FULL - 381)) | (1 << (MySqlParser.KW_FUNCTION - 381)) | (1 << (MySqlParser.KW_GENERAL - 381)))) !== 0) || ((((_la - 413)) & ~0x1F) === 0 && ((1 << (_la - 413)) & ((1 << (MySqlParser.KW_GLOBAL - 413)) | (1 << (MySqlParser.KW_GRANTS - 413)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 413)) | (1 << (MySqlParser.KW_HANDLER - 413)) | (1 << (MySqlParser.KW_HASH - 413)) | (1 << (MySqlParser.KW_HELP - 413)) | (1 << (MySqlParser.KW_HISTORY - 413)) | (1 << (MySqlParser.KW_HOST - 413)) | (1 << (MySqlParser.KW_HOSTS - 413)) | (1 << (MySqlParser.KW_IDENTIFIED - 413)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 413)) | (1 << (MySqlParser.KW_IMPORT - 413)) | (1 << (MySqlParser.KW_INDEXES - 413)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 413)) | (1 << (MySqlParser.KW_INPLACE - 413)) | (1 << (MySqlParser.KW_INSERT_METHOD - 413)) | (1 << (MySqlParser.KW_INSTALL - 413)) | (1 << (MySqlParser.KW_INSTANCE - 413)) | (1 << (MySqlParser.KW_INSTANT - 413)) | (1 << (MySqlParser.KW_INVISIBLE - 413)) | (1 << (MySqlParser.KW_INVOKER - 413)) | (1 << (MySqlParser.KW_IO - 413)) | (1 << (MySqlParser.KW_IO_THREAD - 413)) | (1 << (MySqlParser.KW_IPC - 413)) | (1 << (MySqlParser.KW_ISOLATION - 413)) | (1 << (MySqlParser.KW_ISSUER - 413)) | (1 << (MySqlParser.KW_JSON - 413)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 413)) | (1 << (MySqlParser.KW_LANGUAGE - 413)))) !== 0) || ((((_la - 445)) & ~0x1F) === 0 && ((1 << (_la - 445)) & ((1 << (MySqlParser.KW_LAST - 445)) | (1 << (MySqlParser.KW_LEAVES - 445)) | (1 << (MySqlParser.KW_LESS - 445)) | (1 << (MySqlParser.KW_LEVEL - 445)) | (1 << (MySqlParser.KW_LIST - 445)) | (1 << (MySqlParser.KW_LOCAL - 445)) | (1 << (MySqlParser.KW_LOGFILE - 445)) | (1 << (MySqlParser.KW_LOGS - 445)) | (1 << (MySqlParser.KW_MASTER - 445)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 445)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 445)) | (1 << (MySqlParser.KW_MASTER_DELAY - 445)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 445)) | (1 << (MySqlParser.KW_MASTER_HOST - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 445)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 445)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 445)) | (1 << (MySqlParser.KW_MASTER_PORT - 445)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 445)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 445)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 445)) | (1 << (MySqlParser.KW_MASTER_USER - 445)))) !== 0) || ((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_ROWS - 478)) | (1 << (MySqlParser.KW_MAX_SIZE - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)) | (1 << (MySqlParser.KW_MEDIUM - 478)) | (1 << (MySqlParser.KW_MEMBER - 478)) | (1 << (MySqlParser.KW_MERGE - 478)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 478)) | (1 << (MySqlParser.KW_MID - 478)) | (1 << (MySqlParser.KW_MIGRATE - 478)) | (1 << (MySqlParser.KW_MIN_ROWS - 478)) | (1 << (MySqlParser.KW_MODE - 478)) | (1 << (MySqlParser.KW_MODIFY - 478)) | (1 << (MySqlParser.KW_MUTEX - 478)) | (1 << (MySqlParser.KW_MYSQL - 478)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 478)) | (1 << (MySqlParser.KW_NAME - 478)) | (1 << (MySqlParser.KW_NAMES - 478)) | (1 << (MySqlParser.KW_NCHAR - 478)) | (1 << (MySqlParser.KW_NEVER - 478)) | (1 << (MySqlParser.KW_NEXT - 478)) | (1 << (MySqlParser.KW_NO - 478)) | (1 << (MySqlParser.KW_NOWAIT - 478)) | (1 << (MySqlParser.KW_NODEGROUP - 478)) | (1 << (MySqlParser.KW_NONE - 478)) | (1 << (MySqlParser.KW_ODBC - 478)) | (1 << (MySqlParser.KW_OFFLINE - 478)) | (1 << (MySqlParser.KW_OFFSET - 478)))) !== 0) || ((((_la - 510)) & ~0x1F) === 0 && ((1 << (_la - 510)) & ((1 << (MySqlParser.KW_OF - 510)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 510)) | (1 << (MySqlParser.KW_ONE - 510)) | (1 << (MySqlParser.KW_ONLINE - 510)) | (1 << (MySqlParser.KW_ONLY - 510)) | (1 << (MySqlParser.KW_OPEN - 510)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 510)) | (1 << (MySqlParser.KW_OPTIONS - 510)) | (1 << (MySqlParser.KW_OWNER - 510)) | (1 << (MySqlParser.KW_PACK_KEYS - 510)) | (1 << (MySqlParser.KW_PAGE - 510)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 510)) | (1 << (MySqlParser.KW_PARSER - 510)) | (1 << (MySqlParser.KW_PARTIAL - 510)) | (1 << (MySqlParser.KW_PARTITIONING - 510)) | (1 << (MySqlParser.KW_PARTITIONS - 510)) | (1 << (MySqlParser.KW_PASSWORD - 510)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 510)) | (1 << (MySqlParser.KW_PHASE - 510)) | (1 << (MySqlParser.KW_PLUGIN - 510)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 510)) | (1 << (MySqlParser.KW_PLUGINS - 510)) | (1 << (MySqlParser.KW_PORT - 510)) | (1 << (MySqlParser.KW_PRECEDES - 510)) | (1 << (MySqlParser.KW_PREPARE - 510)) | (1 << (MySqlParser.KW_PRESERVE - 510)))) !== 0) || ((((_la - 542)) & ~0x1F) === 0 && ((1 << (_la - 542)) & ((1 << (MySqlParser.KW_PREV - 542)) | (1 << (MySqlParser.KW_PROCESSLIST - 542)) | (1 << (MySqlParser.KW_PROFILE - 542)) | (1 << (MySqlParser.KW_PROFILES - 542)) | (1 << (MySqlParser.KW_PROXY - 542)) | (1 << (MySqlParser.KW_QUERY - 542)) | (1 << (MySqlParser.KW_QUICK - 542)) | (1 << (MySqlParser.KW_REBUILD - 542)) | (1 << (MySqlParser.KW_RECOVER - 542)) | (1 << (MySqlParser.KW_RECURSIVE - 542)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 542)) | (1 << (MySqlParser.KW_REDUNDANT - 542)) | (1 << (MySqlParser.KW_RELAY - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 542)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 542)) | (1 << (MySqlParser.KW_RELAYLOG - 542)) | (1 << (MySqlParser.KW_REMOVE - 542)) | (1 << (MySqlParser.KW_REORGANIZE - 542)) | (1 << (MySqlParser.KW_REPAIR - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 542)) | (1 << (MySqlParser.KW_REPLICATION - 542)))) !== 0) || ((((_la - 575)) & ~0x1F) === 0 && ((1 << (_la - 575)) & ((1 << (MySqlParser.KW_RESET - 575)) | (1 << (MySqlParser.KW_RESUME - 575)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 575)) | (1 << (MySqlParser.KW_RETURNS - 575)) | (1 << (MySqlParser.KW_REUSE - 575)) | (1 << (MySqlParser.KW_ROLE - 575)) | (1 << (MySqlParser.KW_ROLLBACK - 575)) | (1 << (MySqlParser.KW_ROLLUP - 575)) | (1 << (MySqlParser.KW_ROTATE - 575)) | (1 << (MySqlParser.KW_ROW - 575)) | (1 << (MySqlParser.KW_ROWS - 575)) | (1 << (MySqlParser.KW_ROW_FORMAT - 575)) | (1 << (MySqlParser.KW_SAVEPOINT - 575)) | (1 << (MySqlParser.KW_SCHEDULE - 575)) | (1 << (MySqlParser.KW_SECURITY - 575)) | (1 << (MySqlParser.KW_SERVER - 575)) | (1 << (MySqlParser.KW_SESSION - 575)) | (1 << (MySqlParser.KW_SHARE - 575)) | (1 << (MySqlParser.KW_SHARED - 575)) | (1 << (MySqlParser.KW_SIGNED - 575)) | (1 << (MySqlParser.KW_SIMPLE - 575)) | (1 << (MySqlParser.KW_SLAVE - 575)) | (1 << (MySqlParser.KW_SLOW - 575)) | (1 << (MySqlParser.KW_SNAPSHOT - 575)) | (1 << (MySqlParser.KW_SOCKET - 575)) | (1 << (MySqlParser.KW_SOME - 575)) | (1 << (MySqlParser.KW_SONAME - 575)) | (1 << (MySqlParser.KW_SOUNDS - 575)) | (1 << (MySqlParser.KW_SOURCE - 575)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_VISIBLE - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)) | (1 << (MySqlParser.KW_QUARTER - 665)))) !== 0) || ((((_la - 697)) & ~0x1F) === 0 && ((1 << (_la - 697)) & ((1 << (MySqlParser.KW_MONTH - 697)) | (1 << (MySqlParser.KW_DAY - 697)) | (1 << (MySqlParser.KW_HOUR - 697)) | (1 << (MySqlParser.KW_MINUTE - 697)) | (1 << (MySqlParser.KW_WEEK - 697)) | (1 << (MySqlParser.KW_SECOND - 697)) | (1 << (MySqlParser.KW_MICROSECOND - 697)) | (1 << (MySqlParser.KW_ADMIN - 697)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 697)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 697)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 697)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 697)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 697)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 697)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 697)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 697)) | (1 << (MySqlParser.KW_EXECUTE - 697)) | (1 << (MySqlParser.KW_FILE - 697)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 697)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 697)) | (1 << (MySqlParser.KW_FIREWALL_USER - 697)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 697)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 697)))) !== 0) || ((((_la - 729)) & ~0x1F) === 0 && ((1 << (_la - 729)) & ((1 << (MySqlParser.KW_INVOKE - 729)) | (1 << (MySqlParser.KW_LAMBDA - 729)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 729)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 729)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_PRIVILEGES - 729)) | (1 << (MySqlParser.KW_PROCESS - 729)) | (1 << (MySqlParser.KW_RELOAD - 729)) | (1 << (MySqlParser.KW_REPLICATION_APPLIER - 729)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 729)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 729)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 729)) | (1 << (MySqlParser.KW_ROUTINE - 729)) | (1 << (MySqlParser.KW_S3 - 729)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_SET_USER_ID - 729)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 729)) | (1 << (MySqlParser.KW_SHUTDOWN - 729)) | (1 << (MySqlParser.KW_SUPER - 729)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 729)) | (1 << (MySqlParser.KW_TABLES - 729)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 729)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 729)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 729)) | (1 << (MySqlParser.KW_ARMSCII8 - 729)) | (1 << (MySqlParser.KW_ASCII - 729)) | (1 << (MySqlParser.KW_BIG5 - 729)) | (1 << (MySqlParser.KW_CP1250 - 729)) | (1 << (MySqlParser.KW_CP1251 - 729)))) !== 0) || ((((_la - 761)) & ~0x1F) === 0 && ((1 << (_la - 761)) & ((1 << (MySqlParser.KW_CP1256 - 761)) | (1 << (MySqlParser.KW_CP1257 - 761)) | (1 << (MySqlParser.KW_CP850 - 761)) | (1 << (MySqlParser.KW_CP852 - 761)) | (1 << (MySqlParser.KW_CP866 - 761)) | (1 << (MySqlParser.KW_CP932 - 761)) | (1 << (MySqlParser.KW_DEC8 - 761)) | (1 << (MySqlParser.KW_EUCJPMS - 761)) | (1 << (MySqlParser.KW_EUCKR - 761)) | (1 << (MySqlParser.KW_GB18030 - 761)) | (1 << (MySqlParser.KW_GB2312 - 761)) | (1 << (MySqlParser.KW_GBK - 761)) | (1 << (MySqlParser.KW_GEOSTD8 - 761)) | (1 << (MySqlParser.KW_GREEK - 761)) | (1 << (MySqlParser.KW_HEBREW - 761)) | (1 << (MySqlParser.KW_HP8 - 761)) | (1 << (MySqlParser.KW_KEYBCS2 - 761)) | (1 << (MySqlParser.KW_KOI8R - 761)) | (1 << (MySqlParser.KW_KOI8U - 761)) | (1 << (MySqlParser.KW_LATIN1 - 761)) | (1 << (MySqlParser.KW_LATIN2 - 761)) | (1 << (MySqlParser.KW_LATIN5 - 761)) | (1 << (MySqlParser.KW_LATIN7 - 761)) | (1 << (MySqlParser.KW_MACCE - 761)) | (1 << (MySqlParser.KW_MACROMAN - 761)) | (1 << (MySqlParser.KW_SJIS - 761)) | (1 << (MySqlParser.KW_SWE7 - 761)) | (1 << (MySqlParser.KW_TIS620 - 761)) | (1 << (MySqlParser.KW_UCS2 - 761)) | (1 << (MySqlParser.KW_UJIS - 761)) | (1 << (MySqlParser.KW_UTF16 - 761)) | (1 << (MySqlParser.KW_UTF16LE - 761)))) !== 0) || ((((_la - 793)) & ~0x1F) === 0 && ((1 << (_la - 793)) & ((1 << (MySqlParser.KW_UTF32 - 793)) | (1 << (MySqlParser.KW_UTF8 - 793)) | (1 << (MySqlParser.KW_UTF8MB3 - 793)) | (1 << (MySqlParser.KW_UTF8MB4 - 793)) | (1 << (MySqlParser.KW_ARCHIVE - 793)) | (1 << (MySqlParser.KW_BLACKHOLE - 793)) | (1 << (MySqlParser.KW_CSV - 793)) | (1 << (MySqlParser.KW_FEDERATED - 793)) | (1 << (MySqlParser.KW_INNODB - 793)) | (1 << (MySqlParser.KW_MEMORY - 793)) | (1 << (MySqlParser.KW_MRG_MYISAM - 793)) | (1 << (MySqlParser.KW_MYISAM - 793)) | (1 << (MySqlParser.KW_NDB - 793)) | (1 << (MySqlParser.KW_NDBCLUSTER - 793)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 793)) | (1 << (MySqlParser.KW_TOKUDB - 793)) | (1 << (MySqlParser.KW_REPEATABLE - 793)) | (1 << (MySqlParser.KW_COMMITTED - 793)) | (1 << (MySqlParser.KW_UNCOMMITTED - 793)) | (1 << (MySqlParser.KW_SERIALIZABLE - 793)) | (1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 793)) | (1 << (MySqlParser.KW_LINESTRING - 793)) | (1 << (MySqlParser.KW_MULTILINESTRING - 793)) | (1 << (MySqlParser.KW_MULTIPOINT - 793)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 793)) | (1 << (MySqlParser.KW_POINT - 793)) | (1 << (MySqlParser.KW_POLYGON - 793)) | (1 << (MySqlParser.KW_CATALOG_NAME - 793)) | (1 << (MySqlParser.KW_CHARSET - 793)) | (1 << (MySqlParser.KW_COLLATION - 793)))) !== 0) || ((((_la - 825)) & ~0x1F) === 0 && ((1 << (_la - 825)) & ((1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_FORMAT - 825)) | (1 << (MySqlParser.KW_GET_FORMAT - 825)) | (1 << (MySqlParser.KW_RANDOM - 825)) | (1 << (MySqlParser.KW_REVERSE - 825)) | (1 << (MySqlParser.KW_ROW_COUNT - 825)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 825)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 825)) | (1 << (MySqlParser.KW_SRID - 825)) | (1 << (MySqlParser.KW_SYSTEM_USER - 825)) | (1 << (MySqlParser.KW_TP_CONNECTION_ADMIN - 825)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 825)) | (1 << (MySqlParser.MOD - 825)))) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & ((1 << (MySqlParser.CHARSET_REVERSE_QOUTE_STRING - 879)) | (1 << (MySqlParser.STRING_LITERAL - 879)) | (1 << (MySqlParser.ID - 879)))) !== 0)) { + { + this.state = 5125; + _localctx._end_label = this.uid(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public cursorStatement(): CursorStatementContext { + let _localctx: CursorStatementContext = new CursorStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 442, MySqlParser.RULE_cursorStatement); + let _la: number; + try { + this.state = 5143; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CLOSE: + _localctx = new CloseCursorContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5128; + this.match(MySqlParser.KW_CLOSE); + this.state = 5129; + (_localctx as CloseCursorContext)._cursor_name = this.uid(); + } + break; + case MySqlParser.KW_FETCH: + _localctx = new FetchCursorContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5130; + this.match(MySqlParser.KW_FETCH); + this.state = 5135; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 734, this._ctx) ) { + case 1: + { + this.state = 5132; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NEXT) { + { + this.state = 5131; + this.match(MySqlParser.KW_NEXT); + } + } + + this.state = 5134; + this.match(MySqlParser.KW_FROM); + } + break; + } + this.state = 5137; + (_localctx as FetchCursorContext)._cursor_name = this.uid(); + this.state = 5138; + this.match(MySqlParser.KW_INTO); + this.state = 5139; + (_localctx as FetchCursorContext)._var_names = this.uidList(); + } + break; + case MySqlParser.KW_OPEN: + _localctx = new OpenCursorContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 5141; + this.match(MySqlParser.KW_OPEN); + this.state = 5142; + (_localctx as OpenCursorContext)._cursor_name = this.uid(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public declareVariable(): DeclareVariableContext { + let _localctx: DeclareVariableContext = new DeclareVariableContext(this._ctx, this.state); + this.enterRule(_localctx, 444, MySqlParser.RULE_declareVariable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5145; + this.match(MySqlParser.KW_DECLARE); + this.state = 5146; + _localctx._var_names = this.uidList(); + this.state = 5147; + this.dataType(); + this.state = 5150; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 5148; + this.match(MySqlParser.KW_DEFAULT); + this.state = 5149; + this.expression(0); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public declareCondition(): DeclareConditionContext { + let _localctx: DeclareConditionContext = new DeclareConditionContext(this._ctx, this.state); + this.enterRule(_localctx, 446, MySqlParser.RULE_declareCondition); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5152; + this.match(MySqlParser.KW_DECLARE); + this.state = 5153; + _localctx._condition_name = this.uid(); + this.state = 5154; + this.match(MySqlParser.KW_CONDITION); + this.state = 5155; + this.match(MySqlParser.KW_FOR); + this.state = 5162; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 5156; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_SQLSTATE: + { + this.state = 5157; + this.match(MySqlParser.KW_SQLSTATE); + this.state = 5159; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VALUE) { + { + this.state = 5158; + this.match(MySqlParser.KW_VALUE); + } + } + + this.state = 5161; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public declareCursor(): DeclareCursorContext { + let _localctx: DeclareCursorContext = new DeclareCursorContext(this._ctx, this.state); + this.enterRule(_localctx, 448, MySqlParser.RULE_declareCursor); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5164; + this.match(MySqlParser.KW_DECLARE); + this.state = 5165; + _localctx._condition_name = this.uid(); + this.state = 5166; + this.match(MySqlParser.KW_CURSOR); + this.state = 5167; + this.match(MySqlParser.KW_FOR); + this.state = 5168; + this.selectStatement(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public declareHandler(): DeclareHandlerContext { + let _localctx: DeclareHandlerContext = new DeclareHandlerContext(this._ctx, this.state); + this.enterRule(_localctx, 450, MySqlParser.RULE_declareHandler); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5170; + this.match(MySqlParser.KW_DECLARE); + this.state = 5171; + _localctx._handlerAction = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CONTINUE || _la === MySqlParser.KW_EXIT || _la === MySqlParser.KW_UNDO)) { + _localctx._handlerAction = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5172; + this.match(MySqlParser.KW_HANDLER); + this.state = 5173; + this.match(MySqlParser.KW_FOR); + this.state = 5174; + this.handlerConditionValue(); + this.state = 5179; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5175; + this.match(MySqlParser.COMMA); + this.state = 5176; + this.handlerConditionValue(); + } + } + this.state = 5181; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5182; + this.routineBody(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public handlerConditionValue(): HandlerConditionValueContext { + let _localctx: HandlerConditionValueContext = new HandlerConditionValueContext(this._ctx, this.state); + this.enterRule(_localctx, 452, MySqlParser.RULE_handlerConditionValue); + let _la: number; + try { + this.state = 5195; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + _localctx = new HandlerConditionCodeContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5184; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_SQLSTATE: + _localctx = new HandlerConditionStateContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5185; + this.match(MySqlParser.KW_SQLSTATE); + this.state = 5187; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VALUE) { + { + this.state = 5186; + this.match(MySqlParser.KW_VALUE); + } + } + + this.state = 5189; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + _localctx = new HandlerConditionNameContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 5190; + (_localctx as HandlerConditionNameContext)._condition_name = this.uid(); + } + break; + case MySqlParser.KW_SQLWARNING: + _localctx = new HandlerConditionWarningContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 5191; + this.match(MySqlParser.KW_SQLWARNING); + } + break; + case MySqlParser.KW_NOT: + _localctx = new HandlerConditionNotfoundContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 5192; + this.match(MySqlParser.KW_NOT); + this.state = 5193; + this.match(MySqlParser.KW_FOUND); + } + break; + case MySqlParser.KW_SQLEXCEPTION: + _localctx = new HandlerConditionExceptionContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 5194; + this.match(MySqlParser.KW_SQLEXCEPTION); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public procedureSqlStatement(): ProcedureSqlStatementContext { + let _localctx: ProcedureSqlStatementContext = new ProcedureSqlStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 454, MySqlParser.RULE_procedureSqlStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5199; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 742, this._ctx) ) { + case 1: + { + this.state = 5197; + this.compoundStatement(); + } + break; + + case 2: + { + this.state = 5198; + this.sqlStatement(); + } + break; + } + this.state = 5201; + this.match(MySqlParser.SEMI); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public caseAlternative(): CaseAlternativeContext { + let _localctx: CaseAlternativeContext = new CaseAlternativeContext(this._ctx, this.state); + this.enterRule(_localctx, 456, MySqlParser.RULE_caseAlternative); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5203; + this.match(MySqlParser.KW_WHEN); + this.state = 5206; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 743, this._ctx) ) { + case 1: + { + this.state = 5204; + this.constant(); + } + break; + + case 2: + { + this.state = 5205; + this.expression(0); + } + break; + } + this.state = 5208; + this.match(MySqlParser.KW_THEN); + this.state = 5210; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5209; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5212; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 744, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public elifAlternative(): ElifAlternativeContext { + let _localctx: ElifAlternativeContext = new ElifAlternativeContext(this._ctx, this.state); + this.enterRule(_localctx, 458, MySqlParser.RULE_elifAlternative); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5214; + this.match(MySqlParser.KW_ELSEIF); + this.state = 5215; + this.expression(0); + this.state = 5216; + this.match(MySqlParser.KW_THEN); + this.state = 5218; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5217; + this.procedureSqlStatement(); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5220; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 745, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterUser(): AlterUserContext { + let _localctx: AlterUserContext = new AlterUserContext(this._ctx, this.state); + this.enterRule(_localctx, 460, MySqlParser.RULE_alterUser); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5222; + this.match(MySqlParser.KW_ALTER); + this.state = 5223; + this.match(MySqlParser.KW_USER); + this.state = 5225; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 746, this._ctx) ) { + case 1: + { + this.state = 5224; + this.ifExists(); + } + break; + } + this.state = 5283; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 758, this._ctx) ) { + case 1: + { + { + this.state = 5227; + this.userSpecification(); + this.state = 5232; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5228; + this.match(MySqlParser.COMMA); + this.state = 5229; + this.userSpecification(); + } + } + this.state = 5234; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + break; + + case 2: + { + { + this.state = 5235; + this.alterUserAuthOption(); + this.state = 5240; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5236; + this.match(MySqlParser.COMMA); + this.state = 5237; + this.alterUserAuthOption(); + } + } + this.state = 5242; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5257; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_REQUIRE) { + { + this.state = 5243; + this.match(MySqlParser.KW_REQUIRE); + this.state = 5255; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NONE: + { + this.state = 5244; + this.match(MySqlParser.KW_NONE); + } + break; + case MySqlParser.KW_SSL: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_X509: + { + this.state = 5245; + this.tlsOption(); + this.state = 5252; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_AND || _la === MySqlParser.KW_SSL || _la === MySqlParser.KW_CIPHER || _la === MySqlParser.KW_ISSUER || _la === MySqlParser.KW_SUBJECT || _la === MySqlParser.KW_X509) { + { + { + this.state = 5247; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 5246; + this.match(MySqlParser.KW_AND); + } + } + + this.state = 5249; + this.tlsOption(); + } + } + this.state = 5254; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + + this.state = 5265; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 754, this._ctx) ) { + case 1: + { + this.state = 5259; + this.match(MySqlParser.KW_WITH); + this.state = 5261; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 5260; + this.userResourceOption(); + } + } + this.state = 5263; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)))) !== 0)); + } + break; + } + this.state = 5271; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_ACCOUNT || _la === MySqlParser.KW_FAILED_LOGIN_ATTEMPTS || _la === MySqlParser.KW_PASSWORD || _la === MySqlParser.KW_PASSWORD_LOCK_TIME) { + { + this.state = 5269; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + { + this.state = 5267; + this.userPasswordOption(); + } + break; + case MySqlParser.KW_ACCOUNT: + { + this.state = 5268; + this.userLockOption(); + } + break; + default: + throw new NoViableAltException(this); + } + } + this.state = 5273; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5276; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ATTRIBUTE || _la === MySqlParser.KW_COMMENT) { + { + this.state = 5274; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ATTRIBUTE || _la === MySqlParser.KW_COMMENT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5275; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + } + break; + + case 3: + { + { + { + this.state = 5278; + this.userOrRoleName(); + } + this.state = 5279; + this.match(MySqlParser.KW_DEFAULT); + this.state = 5280; + this.match(MySqlParser.KW_ROLE); + this.state = 5281; + this.roleOption(); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createUser(): CreateUserContext { + let _localctx: CreateUserContext = new CreateUserContext(this._ctx, this.state); + this.enterRule(_localctx, 462, MySqlParser.RULE_createUser); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5285; + this.match(MySqlParser.KW_CREATE); + this.state = 5286; + this.match(MySqlParser.KW_USER); + this.state = 5288; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IF) { + { + this.state = 5287; + this.ifNotExists(); + } + } + + this.state = 5290; + this.userName(); + this.state = 5292; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IDENTIFIED) { + { + this.state = 5291; + this.createUserAuthOption(); + } + } + + this.state = 5301; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5294; + this.match(MySqlParser.COMMA); + this.state = 5295; + this.userName(); + this.state = 5297; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IDENTIFIED) { + { + this.state = 5296; + this.createUserAuthOption(); + } + } + + } + } + this.state = 5303; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5307; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT) { + { + this.state = 5304; + this.match(MySqlParser.KW_DEFAULT); + this.state = 5305; + this.match(MySqlParser.KW_ROLE); + this.state = 5306; + this.roleOption(); + } + } + + this.state = 5323; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_REQUIRE) { + { + this.state = 5309; + this.match(MySqlParser.KW_REQUIRE); + this.state = 5321; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NONE: + { + this.state = 5310; + this.match(MySqlParser.KW_NONE); + } + break; + case MySqlParser.KW_SSL: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_X509: + { + this.state = 5311; + this.tlsOption(); + this.state = 5318; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_AND || _la === MySqlParser.KW_SSL || _la === MySqlParser.KW_CIPHER || _la === MySqlParser.KW_ISSUER || _la === MySqlParser.KW_SUBJECT || _la === MySqlParser.KW_X509) { + { + { + this.state = 5313; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 5312; + this.match(MySqlParser.KW_AND); + } + } + + this.state = 5315; + this.tlsOption(); + } + } + this.state = 5320; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + + this.state = 5331; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 769, this._ctx) ) { + case 1: + { + this.state = 5325; + this.match(MySqlParser.KW_WITH); + this.state = 5327; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 5326; + this.userResourceOption(); + } + } + this.state = 5329; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (((((_la - 478)) & ~0x1F) === 0 && ((1 << (_la - 478)) & ((1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 478)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 478)))) !== 0)); + } + break; + } + this.state = 5337; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_ACCOUNT || _la === MySqlParser.KW_FAILED_LOGIN_ATTEMPTS || _la === MySqlParser.KW_PASSWORD || _la === MySqlParser.KW_PASSWORD_LOCK_TIME) { + { + this.state = 5335; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + { + this.state = 5333; + this.userPasswordOption(); + } + break; + case MySqlParser.KW_ACCOUNT: + { + this.state = 5334; + this.userLockOption(); + } + break; + default: + throw new NoViableAltException(this); + } + } + this.state = 5339; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5342; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ATTRIBUTE || _la === MySqlParser.KW_COMMENT) { + { + this.state = 5340; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ATTRIBUTE || _la === MySqlParser.KW_COMMENT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5341; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropUser(): DropUserContext { + let _localctx: DropUserContext = new DropUserContext(this._ctx, this.state); + this.enterRule(_localctx, 464, MySqlParser.RULE_dropUser); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5344; + this.match(MySqlParser.KW_DROP); + this.state = 5345; + this.match(MySqlParser.KW_USER); + this.state = 5347; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IF) { + { + this.state = 5346; + this.ifExists(); + } + } + + this.state = 5349; + this.userName(); + this.state = 5354; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5350; + this.match(MySqlParser.COMMA); + this.state = 5351; + this.userName(); + } + } + this.state = 5356; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public grantStatement(): GrantStatementContext { + let _localctx: GrantStatementContext = new GrantStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 466, MySqlParser.RULE_grantStatement); + let _la: number; + try { + let _alt: number; + this.state = 5446; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 792, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5357; + this.match(MySqlParser.KW_GRANT); + this.state = 5358; + this.privelegeClause(); + this.state = 5363; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5359; + this.match(MySqlParser.COMMA); + this.state = 5360; + this.privelegeClause(); + } + } + this.state = 5365; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5366; + this.match(MySqlParser.KW_ON); + this.state = 5368; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 776, this._ctx) ) { + case 1: + { + this.state = 5367; + this.privilegeObjectType(); + } + break; + } + this.state = 5370; + this.privilegeLevel(); + this.state = 5371; + this.match(MySqlParser.KW_TO); + this.state = 5381; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 778, this._ctx) ) { + case 1: + { + { + this.state = 5372; + this.userAuthOption(); + this.state = 5377; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5373; + this.match(MySqlParser.COMMA); + this.state = 5374; + this.userAuthOption(); + } + } + this.state = 5379; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + break; + + case 2: + { + this.state = 5380; + this.userOrRoleNames(); + } + break; + } + this.state = 5397; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_REQUIRE) { + { + this.state = 5383; + this.match(MySqlParser.KW_REQUIRE); + this.state = 5395; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_NONE: + { + this.state = 5384; + _localctx._tlsNone = this.match(MySqlParser.KW_NONE); + } + break; + case MySqlParser.KW_SSL: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_X509: + { + this.state = 5385; + this.tlsOption(); + this.state = 5392; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_AND || _la === MySqlParser.KW_SSL || _la === MySqlParser.KW_CIPHER || _la === MySqlParser.KW_ISSUER || _la === MySqlParser.KW_SUBJECT || _la === MySqlParser.KW_X509) { + { + { + this.state = 5387; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 5386; + this.match(MySqlParser.KW_AND); + } + } + + this.state = 5389; + this.tlsOption(); + } + } + this.state = 5394; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + + this.state = 5408; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 785, this._ctx) ) { + case 1: + { + this.state = 5399; + this.match(MySqlParser.KW_WITH); + this.state = 5405; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 784, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + this.state = 5403; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_GRANT: + { + this.state = 5400; + this.match(MySqlParser.KW_GRANT); + this.state = 5401; + this.match(MySqlParser.KW_OPTION); + } + break; + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + { + this.state = 5402; + this.userResourceOption(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + this.state = 5407; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 784, this._ctx); + } + } + break; + } + this.state = 5417; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 5410; + this.match(MySqlParser.KW_AS); + this.state = 5411; + this.userName(); + this.state = 5415; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 786, this._ctx) ) { + case 1: + { + this.state = 5412; + this.match(MySqlParser.KW_WITH); + this.state = 5413; + this.match(MySqlParser.KW_ROLE); + this.state = 5414; + this.roleOption(); + } + break; + } + } + } + + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5419; + this.match(MySqlParser.KW_GRANT); + this.state = 5422; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 788, this._ctx) ) { + case 1: + { + this.state = 5420; + this.match(MySqlParser.KW_PROXY); + this.state = 5421; + this.match(MySqlParser.KW_ON); + } + break; + } + { + this.state = 5424; + this.userOrRoleName(); + } + this.state = 5429; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5425; + this.match(MySqlParser.COMMA); + { + this.state = 5426; + this.userOrRoleName(); + } + } + } + this.state = 5431; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5432; + this.match(MySqlParser.KW_TO); + { + this.state = 5433; + this.userOrRoleName(); + } + this.state = 5438; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5434; + this.match(MySqlParser.COMMA); + { + this.state = 5435; + this.userOrRoleName(); + } + } + } + this.state = 5440; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5444; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 791, this._ctx) ) { + case 1: + { + this.state = 5441; + this.match(MySqlParser.KW_WITH); + this.state = 5442; + this.match(MySqlParser.KW_ADMIN); + this.state = 5443; + this.match(MySqlParser.KW_OPTION); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public roleOption(): RoleOptionContext { + let _localctx: RoleOptionContext = new RoleOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 468, MySqlParser.RULE_roleOption); + let _la: number; + try { + this.state = 5456; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 794, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5448; + this.match(MySqlParser.KW_DEFAULT); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5449; + this.match(MySqlParser.KW_NONE); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5450; + this.match(MySqlParser.KW_ALL); + this.state = 5453; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXCEPT) { + { + this.state = 5451; + this.match(MySqlParser.KW_EXCEPT); + this.state = 5452; + this.userOrRoleNames(); + } + } + + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5455; + this.userOrRoleNames(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public grantProxy(): GrantProxyContext { + let _localctx: GrantProxyContext = new GrantProxyContext(this._ctx, this.state); + this.enterRule(_localctx, 470, MySqlParser.RULE_grantProxy); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5458; + this.match(MySqlParser.KW_GRANT); + this.state = 5459; + this.match(MySqlParser.KW_PROXY); + this.state = 5460; + this.match(MySqlParser.KW_ON); + this.state = 5461; + _localctx._fromFirst = this.userName(); + this.state = 5462; + this.match(MySqlParser.KW_TO); + this.state = 5463; + _localctx._toFirst = this.userName(); + this.state = 5468; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5464; + this.match(MySqlParser.COMMA); + this.state = 5465; + _localctx._userName = this.userName(); + _localctx._toOther.push(_localctx._userName); + } + } + this.state = 5470; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5474; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 796, this._ctx) ) { + case 1: + { + this.state = 5471; + this.match(MySqlParser.KW_WITH); + this.state = 5472; + this.match(MySqlParser.KW_GRANT); + this.state = 5473; + this.match(MySqlParser.KW_OPTION); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterResourceGroup(): AlterResourceGroupContext { + let _localctx: AlterResourceGroupContext = new AlterResourceGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 472, MySqlParser.RULE_alterResourceGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5476; + this.match(MySqlParser.KW_ALTER); + this.state = 5477; + this.match(MySqlParser.KW_RESOURCE); + this.state = 5478; + this.match(MySqlParser.KW_GROUP); + this.state = 5479; + this.groupName(); + this.state = 5485; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VCPU) { + { + this.state = 5480; + this.match(MySqlParser.KW_VCPU); + this.state = 5482; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 5481; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 5484; + this.resourceGroupVcpuSpec(); + } + } + + this.state = 5492; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_THREAD_PRIORITY) { + { + this.state = 5487; + this.match(MySqlParser.KW_THREAD_PRIORITY); + this.state = 5489; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 5488; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 5491; + this.decimalLiteral(); + } + } + + this.state = 5498; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE) { + { + this.state = 5494; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5496; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FORCE) { + { + this.state = 5495; + this.match(MySqlParser.KW_FORCE); + } + } + + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createResourceGroup(): CreateResourceGroupContext { + let _localctx: CreateResourceGroupContext = new CreateResourceGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 474, MySqlParser.RULE_createResourceGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5500; + this.match(MySqlParser.KW_CREATE); + this.state = 5501; + this.match(MySqlParser.KW_RESOURCE); + this.state = 5502; + this.match(MySqlParser.KW_GROUP); + this.state = 5503; + this.groupNameCreate(); + this.state = 5504; + this.match(MySqlParser.KW_TYPE); + this.state = 5505; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 5506; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_USER || _la === MySqlParser.KW_SYSTEM)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5512; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VCPU) { + { + this.state = 5507; + this.match(MySqlParser.KW_VCPU); + this.state = 5509; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 5508; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 5511; + this.resourceGroupVcpuSpec(); + } + } + + this.state = 5519; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_THREAD_PRIORITY) { + { + this.state = 5514; + this.match(MySqlParser.KW_THREAD_PRIORITY); + this.state = 5516; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 5515; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 5518; + this.decimalLiteral(); + } + } + + this.state = 5522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE) { + { + this.state = 5521; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DISABLE || _la === MySqlParser.KW_ENABLE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dropResourceGroup(): DropResourceGroupContext { + let _localctx: DropResourceGroupContext = new DropResourceGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 476, MySqlParser.RULE_dropResourceGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5524; + this.match(MySqlParser.KW_DROP); + this.state = 5525; + this.match(MySqlParser.KW_RESOURCE); + this.state = 5526; + this.match(MySqlParser.KW_GROUP); + this.state = 5527; + this.groupName(); + this.state = 5529; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FORCE) { + { + this.state = 5528; + this.match(MySqlParser.KW_FORCE); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setResourceGroup(): SetResourceGroupContext { + let _localctx: SetResourceGroupContext = new SetResourceGroupContext(this._ctx, this.state); + this.enterRule(_localctx, 478, MySqlParser.RULE_setResourceGroup); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5531; + this.match(MySqlParser.KW_SET); + this.state = 5532; + this.match(MySqlParser.KW_RESOURCE); + this.state = 5533; + this.match(MySqlParser.KW_GROUP); + this.state = 5534; + this.groupName(); + this.state = 5544; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 5535; + this.match(MySqlParser.KW_FOR); + this.state = 5536; + this.decimalLiteral(); + this.state = 5541; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5537; + this.match(MySqlParser.COMMA); + this.state = 5538; + this.decimalLiteral(); + } + } + this.state = 5543; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext { + let _localctx: ResourceGroupVcpuSpecContext = new ResourceGroupVcpuSpecContext(this._ctx, this.state); + this.enterRule(_localctx, 480, MySqlParser.RULE_resourceGroupVcpuSpec); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 5551; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 811, this._ctx) ) { + case 1: + { + this.state = 5546; + this.decimalLiteral(); + } + break; + + case 2: + { + this.state = 5547; + this.decimalLiteral(); + this.state = 5548; + this.match(MySqlParser.MINUS); + this.state = 5549; + this.decimalLiteral(); + } + break; + } + this.state = 5557; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 812, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 5553; + this.match(MySqlParser.COMMA); + this.state = 5554; + this.resourceGroupVcpuSpec(); + } + } + } + this.state = 5559; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 812, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public renameUser(): RenameUserContext { + let _localctx: RenameUserContext = new RenameUserContext(this._ctx, this.state); + this.enterRule(_localctx, 482, MySqlParser.RULE_renameUser); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5560; + this.match(MySqlParser.KW_RENAME); + this.state = 5561; + this.match(MySqlParser.KW_USER); + this.state = 5562; + this.renameUserClause(); + this.state = 5567; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5563; + this.match(MySqlParser.COMMA); + this.state = 5564; + this.renameUserClause(); + } + } + this.state = 5569; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public revokeStatement(): RevokeStatementContext { + let _localctx: RevokeStatementContext = new RevokeStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 484, MySqlParser.RULE_revokeStatement); + let _la: number; + try { + this.state = 5622; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 824, this._ctx) ) { + case 1: + _localctx = new DetailRevokeContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5570; + this.match(MySqlParser.KW_REVOKE); + this.state = 5572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IF) { + { + this.state = 5571; + this.ifExists(); + } + } + + this.state = 5574; + this.privelegeClause(); + this.state = 5579; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 5575; + this.match(MySqlParser.COMMA); + this.state = 5576; + this.privelegeClause(); + } + } + this.state = 5581; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 5582; + this.match(MySqlParser.KW_ON); + this.state = 5584; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 816, this._ctx) ) { + case 1: + { + this.state = 5583; + this.privilegeObjectType(); + } + break; + } + this.state = 5586; + this.privilegeLevel(); + this.state = 5587; + this.match(MySqlParser.KW_FROM); + this.state = 5588; + this.userOrRoleNames(); + this.state = 5590; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 5589; + this.ignoreUnknownUser(); + } + } + + } + break; + + case 2: + _localctx = new ShortRevokeContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5592; + this.match(MySqlParser.KW_REVOKE); + this.state = 5594; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IF) { + { + this.state = 5593; + this.ifExists(); + } + } + + this.state = 5596; + this.match(MySqlParser.KW_ALL); + this.state = 5598; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PRIVILEGES) { + { + this.state = 5597; + this.match(MySqlParser.KW_PRIVILEGES); + } + } + + this.state = 5600; + this.match(MySqlParser.COMMA); + this.state = 5601; + this.match(MySqlParser.KW_GRANT); + this.state = 5602; + this.match(MySqlParser.KW_OPTION); + this.state = 5603; + this.match(MySqlParser.KW_FROM); + this.state = 5604; + this.userOrRoleNames(); + this.state = 5606; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 5605; + this.ignoreUnknownUser(); + } + } + + } + break; + + case 3: + _localctx = new ProxyAndRoleRevokeContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 5608; + this.match(MySqlParser.KW_REVOKE); + this.state = 5610; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 821, this._ctx) ) { + case 1: + { + this.state = 5609; + this.ifExists(); + } + break; + } + this.state = 5614; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 822, this._ctx) ) { + case 1: + { + this.state = 5612; + this.match(MySqlParser.KW_PROXY); + this.state = 5613; + this.match(MySqlParser.KW_ON); + } + break; + } + this.state = 5616; + this.userOrRoleNames(); + this.state = 5617; + this.match(MySqlParser.KW_FROM); + this.state = 5618; + this.userOrRoleNames(); + this.state = 5620; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 5619; + this.ignoreUnknownUser(); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ignoreUnknownUser(): IgnoreUnknownUserContext { + let _localctx: IgnoreUnknownUserContext = new IgnoreUnknownUserContext(this._ctx, this.state); + this.enterRule(_localctx, 486, MySqlParser.RULE_ignoreUnknownUser); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5624; + this.match(MySqlParser.KW_IGNORE); + this.state = 5625; + this.match(MySqlParser.KW_UNKNOWN); + this.state = 5626; + this.match(MySqlParser.KW_USER); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public privilegeObjectType(): PrivilegeObjectTypeContext { + let _localctx: PrivilegeObjectTypeContext = new PrivilegeObjectTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 488, MySqlParser.RULE_privilegeObjectType); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5628; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_PROCEDURE || _la === MySqlParser.KW_TABLE || _la === MySqlParser.KW_FUNCTION)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setPasswordStatement(): SetPasswordStatementContext { + let _localctx: SetPasswordStatementContext = new SetPasswordStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 490, MySqlParser.RULE_setPasswordStatement); + let _la: number; + try { + this.state = 5662; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 831, this._ctx) ) { + case 1: + _localctx = new V57Context(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5630; + this.match(MySqlParser.KW_SET); + this.state = 5631; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5634; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 5632; + this.match(MySqlParser.KW_FOR); + this.state = 5633; + this.userName(); + } + } + + this.state = 5636; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 5639; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_PASSWORD: + { + this.state = 5637; + this.passwordFunctionClause(); + } + break; + case MySqlParser.STRING_LITERAL: + { + this.state = 5638; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 2: + _localctx = new V80Context(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5641; + this.match(MySqlParser.KW_SET); + this.state = 5642; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5645; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 5643; + this.match(MySqlParser.KW_FOR); + this.state = 5644; + this.userName(); + } + } + + this.state = 5651; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_TO: + { + this.state = 5647; + this.match(MySqlParser.KW_TO); + this.state = 5648; + this.match(MySqlParser.KW_RANDOM); + } + break; + case MySqlParser.EQUAL_SYMBOL: + { + this.state = 5649; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 5650; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5655; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 829, this._ctx) ) { + case 1: + { + this.state = 5653; + this.match(MySqlParser.KW_REPLACE); + this.state = 5654; + this.match(MySqlParser.STRING_LITERAL); + } + break; + } + this.state = 5660; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_RETAIN) { + { + this.state = 5657; + this.match(MySqlParser.KW_RETAIN); + this.state = 5658; + this.match(MySqlParser.KW_CURRENT); + this.state = 5659; + this.match(MySqlParser.KW_PASSWORD); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userSpecification(): UserSpecificationContext { + let _localctx: UserSpecificationContext = new UserSpecificationContext(this._ctx, this.state); + this.enterRule(_localctx, 492, MySqlParser.RULE_userSpecification); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5664; + this.userName(); + this.state = 5665; + this.userPasswordOption(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public alterUserAuthOption(): AlterUserAuthOptionContext { + let _localctx: AlterUserAuthOptionContext = new AlterUserAuthOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 494, MySqlParser.RULE_alterUserAuthOption); + let _la: number; + try { + let _alt: number; + this.state = 5705; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 835, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5667; + this.userName(); + this.state = 5668; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5669; + this.match(MySqlParser.KW_BY); + this.state = 5670; + this.match(MySqlParser.STRING_LITERAL); + this.state = 5671; + this.authOptionClause(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5673; + this.userName(); + this.state = 5674; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5675; + this.match(MySqlParser.KW_BY); + this.state = 5676; + this.match(MySqlParser.KW_RANDOM); + this.state = 5677; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5678; + this.authOptionClause(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5680; + this.userName(); + this.state = 5681; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5682; + this.match(MySqlParser.KW_WITH); + this.state = 5683; + this.authenticationRule(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5685; + this.userName(); + this.state = 5686; + this.match(MySqlParser.KW_DISCARD); + this.state = 5687; + this.match(MySqlParser.KW_OLD); + this.state = 5688; + this.match(MySqlParser.KW_PASSWORD); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 5690; + this.userName(); + this.state = 5696; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 5691; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ADD || _la === MySqlParser.KW_DROP || _la === MySqlParser.KW_MODIFY)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5692; + this.factor(); + this.state = 5694; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IDENTIFIED) { + { + this.state = 5693; + this.factorAuthOption(); + } + } + + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5698; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 833, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 5700; + this.userName(); + this.state = 5702; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.TWO_DECIMAL || _la === MySqlParser.THREE_DECIMAL) { + { + this.state = 5701; + this.registrationOption(); + } + } + + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 5704; + this.userName(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createUserAuthOption(): CreateUserAuthOptionContext { + let _localctx: CreateUserAuthOptionContext = new CreateUserAuthOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 496, MySqlParser.RULE_createUserAuthOption); + let _la: number; + try { + this.state = 5743; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 842, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5707; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5708; + this.match(MySqlParser.KW_BY); + this.state = 5714; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + { + this.state = 5709; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_RANDOM: + { + { + this.state = 5710; + this.match(MySqlParser.KW_RANDOM); + this.state = 5711; + this.match(MySqlParser.KW_PASSWORD); + } + } + break; + case MySqlParser.KW_PASSWORD: + { + { + this.state = 5712; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5713; + this.match(MySqlParser.STRING_LITERAL); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5718; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 5716; + this.match(MySqlParser.KW_AND); + this.state = 5717; + this.createUserAuthOption(); + } + } + + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5720; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5721; + this.match(MySqlParser.KW_WITH); + this.state = 5722; + _localctx._authPlugin = this.uid(); + this.state = 5731; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BY: + { + { + this.state = 5723; + this.match(MySqlParser.KW_BY); + this.state = 5727; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + { + this.state = 5724; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_RANDOM: + { + { + this.state = 5725; + this.match(MySqlParser.KW_RANDOM); + this.state = 5726; + this.match(MySqlParser.KW_PASSWORD); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + break; + case MySqlParser.KW_AS: + { + this.state = 5729; + this.match(MySqlParser.KW_AS); + this.state = 5730; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_AND: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_REQUIRE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DO: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + case MySqlParser.SEMI: + break; + default: + break; + } + this.state = 5735; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AND) { + { + this.state = 5733; + this.match(MySqlParser.KW_AND); + this.state = 5734; + this.createUserAuthOption(); + } + } + + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5737; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5738; + this.match(MySqlParser.KW_WITH); + this.state = 5739; + _localctx._authPlugin = this.uid(); + this.state = 5741; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INITIAL) { + { + this.state = 5740; + this.createUserInitialAuthOption(); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createUserInitialAuthOption(): CreateUserInitialAuthOptionContext { + let _localctx: CreateUserInitialAuthOptionContext = new CreateUserInitialAuthOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 498, MySqlParser.RULE_createUserInitialAuthOption); + try { + this.state = 5762; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 844, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5745; + this.match(MySqlParser.KW_INITIAL); + this.state = 5746; + this.match(MySqlParser.KW_AUTHENTICATION); + this.state = 5747; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5748; + this.match(MySqlParser.KW_BY); + this.state = 5752; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_RANDOM: + { + { + this.state = 5749; + this.match(MySqlParser.KW_RANDOM); + this.state = 5750; + this.match(MySqlParser.KW_PASSWORD); + } + } + break; + case MySqlParser.STRING_LITERAL: + { + this.state = 5751; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5754; + this.match(MySqlParser.KW_INITIAL); + this.state = 5755; + this.match(MySqlParser.KW_AUTHENTICATION); + this.state = 5756; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5757; + this.match(MySqlParser.KW_WITH); + this.state = 5758; + _localctx._authPlugin = this.uid(); + this.state = 5759; + this.match(MySqlParser.KW_AS); + this.state = 5760; + this.match(MySqlParser.STRING_LITERAL); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userAuthOption(): UserAuthOptionContext { + let _localctx: UserAuthOptionContext = new UserAuthOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 500, MySqlParser.RULE_userAuthOption); + try { + this.state = 5789; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 845, this._ctx) ) { + case 1: + _localctx = new HashAuthOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5764; + this.userName(); + this.state = 5765; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5766; + this.match(MySqlParser.KW_BY); + this.state = 5767; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5768; + (_localctx as HashAuthOptionContext)._hashed = this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 2: + _localctx = new RandomAuthOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5770; + this.userName(); + this.state = 5771; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5772; + this.match(MySqlParser.KW_BY); + this.state = 5773; + this.match(MySqlParser.KW_RANDOM); + this.state = 5774; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5775; + this.authOptionClause(); + } + break; + + case 3: + _localctx = new StringAuthOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 5777; + this.userName(); + this.state = 5778; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5779; + this.match(MySqlParser.KW_BY); + this.state = 5780; + this.match(MySqlParser.STRING_LITERAL); + this.state = 5781; + this.authOptionClause(); + } + break; + + case 4: + _localctx = new ModuleAuthOptionContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 5783; + this.userName(); + this.state = 5784; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5785; + this.match(MySqlParser.KW_WITH); + this.state = 5786; + this.authenticationRule(); + } + break; + + case 5: + _localctx = new SimpleAuthOptionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 5788; + this.userName(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public authOptionClause(): AuthOptionClauseContext { + let _localctx: AuthOptionClauseContext = new AuthOptionClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 502, MySqlParser.RULE_authOptionClause); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5793; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 846, this._ctx) ) { + case 1: + { + this.state = 5791; + this.match(MySqlParser.KW_REPLACE); + this.state = 5792; + this.match(MySqlParser.STRING_LITERAL); + } + break; + } + this.state = 5798; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_RETAIN) { + { + this.state = 5795; + this.match(MySqlParser.KW_RETAIN); + this.state = 5796; + this.match(MySqlParser.KW_CURRENT); + this.state = 5797; + this.match(MySqlParser.KW_PASSWORD); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public authenticationRule(): AuthenticationRuleContext { + let _localctx: AuthenticationRuleContext = new AuthenticationRuleContext(this._ctx, this.state); + this.enterRule(_localctx, 504, MySqlParser.RULE_authenticationRule); + let _la: number; + try { + this.state = 5814; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 850, this._ctx) ) { + case 1: + _localctx = new ModuleContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 5800; + (_localctx as ModuleContext)._authPlugin = this.uid(); + this.state = 5808; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 849, this._ctx) ) { + case 1: + { + this.state = 5801; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_AS || _la === MySqlParser.KW_BY || _la === MySqlParser.KW_USING)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5805; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + { + this.state = 5802; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_RANDOM: + { + this.state = 5803; + this.match(MySqlParser.KW_RANDOM); + this.state = 5804; + this.match(MySqlParser.KW_PASSWORD); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 5807; + this.authOptionClause(); + } + break; + } + } + break; + + case 2: + _localctx = new PasswordModuleOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 5810; + (_localctx as PasswordModuleOptionContext)._authPlugin = this.uid(); + this.state = 5811; + this.match(MySqlParser.KW_USING); + this.state = 5812; + this.passwordFunctionClause(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tlsOption(): TlsOptionContext { + let _localctx: TlsOptionContext = new TlsOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 506, MySqlParser.RULE_tlsOption); + try { + this.state = 5824; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SSL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5816; + this.match(MySqlParser.KW_SSL); + } + break; + case MySqlParser.KW_X509: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5817; + this.match(MySqlParser.KW_X509); + } + break; + case MySqlParser.KW_CIPHER: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5818; + this.match(MySqlParser.KW_CIPHER); + this.state = 5819; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_ISSUER: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5820; + this.match(MySqlParser.KW_ISSUER); + this.state = 5821; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_SUBJECT: + this.enterOuterAlt(_localctx, 5); + { + this.state = 5822; + this.match(MySqlParser.KW_SUBJECT); + this.state = 5823; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userResourceOption(): UserResourceOptionContext { + let _localctx: UserResourceOptionContext = new UserResourceOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 508, MySqlParser.RULE_userResourceOption); + try { + this.state = 5834; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5826; + this.match(MySqlParser.KW_MAX_QUERIES_PER_HOUR); + this.state = 5827; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5828; + this.match(MySqlParser.KW_MAX_UPDATES_PER_HOUR); + this.state = 5829; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5830; + this.match(MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR); + this.state = 5831; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_MAX_USER_CONNECTIONS: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5832; + this.match(MySqlParser.KW_MAX_USER_CONNECTIONS); + this.state = 5833; + this.decimalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userPasswordOption(): UserPasswordOptionContext { + let _localctx: UserPasswordOptionContext = new UserPasswordOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 510, MySqlParser.RULE_userPasswordOption); + let _la: number; + try { + this.state = 5874; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 858, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5836; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5837; + this.match(MySqlParser.KW_EXPIRE); + this.state = 5844; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DEFAULT: + { + this.state = 5838; + _localctx._expireType = this.match(MySqlParser.KW_DEFAULT); + } + break; + case MySqlParser.KW_NEVER: + { + this.state = 5839; + _localctx._expireType = this.match(MySqlParser.KW_NEVER); + } + break; + case MySqlParser.KW_INTERVAL: + { + this.state = 5840; + _localctx._expireType = this.match(MySqlParser.KW_INTERVAL); + this.state = 5841; + this.decimalLiteral(); + this.state = 5842; + this.match(MySqlParser.KW_DAY); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DO: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + case MySqlParser.SEMI: + break; + default: + break; + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5846; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5847; + this.match(MySqlParser.KW_HISTORY); + this.state = 5850; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DEFAULT: + { + this.state = 5848; + this.match(MySqlParser.KW_DEFAULT); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 5849; + this.decimalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5852; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5853; + this.match(MySqlParser.KW_REUSE); + this.state = 5854; + this.match(MySqlParser.KW_INTERVAL); + this.state = 5859; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DEFAULT: + { + this.state = 5855; + this.match(MySqlParser.KW_DEFAULT); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 5856; + this.decimalLiteral(); + this.state = 5857; + this.match(MySqlParser.KW_DAY); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5861; + this.match(MySqlParser.KW_PASSWORD); + this.state = 5862; + this.match(MySqlParser.KW_REQUIRE); + this.state = 5863; + this.match(MySqlParser.KW_CURRENT); + this.state = 5865; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_OPTIONAL) { + { + this.state = 5864; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_OPTIONAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 5867; + this.match(MySqlParser.KW_FAILED_LOGIN_ATTEMPTS); + this.state = 5868; + this.decimalLiteral(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 5869; + this.match(MySqlParser.KW_PASSWORD_LOCK_TIME); + this.state = 5872; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 5870; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_UNBOUNDED: + { + this.state = 5871; + this.match(MySqlParser.KW_UNBOUNDED); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userLockOption(): UserLockOptionContext { + let _localctx: UserLockOptionContext = new UserLockOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 512, MySqlParser.RULE_userLockOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5876; + this.match(MySqlParser.KW_ACCOUNT); + this.state = 5877; + _localctx._lockType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LOCK || _la === MySqlParser.KW_UNLOCK)) { + _localctx._lockType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public factorAuthOption(): FactorAuthOptionContext { + let _localctx: FactorAuthOptionContext = new FactorAuthOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 514, MySqlParser.RULE_factorAuthOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5879; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 5882; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WITH) { + { + this.state = 5880; + this.match(MySqlParser.KW_WITH); + this.state = 5881; + _localctx._authPlugin = this.uid(); + } + } + + this.state = 5892; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BY: + { + { + this.state = 5884; + this.match(MySqlParser.KW_BY); + this.state = 5888; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + { + this.state = 5885; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_RANDOM: + { + { + this.state = 5886; + this.match(MySqlParser.KW_RANDOM); + this.state = 5887; + this.match(MySqlParser.KW_PASSWORD); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + break; + case MySqlParser.KW_AS: + { + this.state = 5890; + this.match(MySqlParser.KW_AS); + this.state = 5891; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public registrationOption(): RegistrationOptionContext { + let _localctx: RegistrationOptionContext = new RegistrationOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 516, MySqlParser.RULE_registrationOption); + try { + this.state = 5909; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 862, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5894; + this.factor(); + this.state = 5895; + this.match(MySqlParser.KW_INITIATE); + this.state = 5896; + this.match(MySqlParser.KW_REGISTRATION); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5898; + this.factor(); + this.state = 5899; + this.match(MySqlParser.KW_FINISH); + this.state = 5900; + this.match(MySqlParser.KW_REGISTRATION); + this.state = 5901; + this.match(MySqlParser.KW_SET); + this.state = 5902; + this.match(MySqlParser.KW_CHALLENGE_RESPONSE); + this.state = 5903; + this.match(MySqlParser.KW_AS); + this.state = 5904; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5906; + this.factor(); + this.state = 5907; + this.match(MySqlParser.KW_UNREGISTER); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public factor(): FactorContext { + let _localctx: FactorContext = new FactorContext(this._ctx, this.state); + this.enterRule(_localctx, 518, MySqlParser.RULE_factor); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5911; + _la = this._input.LA(1); + if (!(_la === MySqlParser.TWO_DECIMAL || _la === MySqlParser.THREE_DECIMAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 5912; + this.match(MySqlParser.KW_FACTOR); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public privelegeClause(): PrivelegeClauseContext { + let _localctx: PrivelegeClauseContext = new PrivelegeClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 520, MySqlParser.RULE_privelegeClause); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 5914; + this.privilege(); + this.state = 5919; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 5915; + this.match(MySqlParser.LR_BRACKET); + this.state = 5916; + this.columnNames(); + this.state = 5917; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public privilege(): PrivilegeContext { + let _localctx: PrivilegeContext = new PrivilegeContext(this._ctx, this.state); + this.enterRule(_localctx, 522, MySqlParser.RULE_privilege); + let _la: number; + try { + this.state = 6014; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 868, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 5921; + this.match(MySqlParser.KW_ALL); + this.state = 5923; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PRIVILEGES) { + { + this.state = 5922; + this.match(MySqlParser.KW_PRIVILEGES); + } + } + + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 5925; + this.match(MySqlParser.KW_ALTER); + this.state = 5927; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ROUTINE) { + { + this.state = 5926; + this.match(MySqlParser.KW_ROUTINE); + } + } + + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 5929; + this.match(MySqlParser.KW_CREATE); + this.state = 5937; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_TEMPORARY: + { + this.state = 5930; + this.match(MySqlParser.KW_TEMPORARY); + this.state = 5931; + this.match(MySqlParser.KW_TABLES); + } + break; + case MySqlParser.KW_ROUTINE: + { + this.state = 5932; + this.match(MySqlParser.KW_ROUTINE); + } + break; + case MySqlParser.KW_VIEW: + { + this.state = 5933; + this.match(MySqlParser.KW_VIEW); + } + break; + case MySqlParser.KW_USER: + { + this.state = 5934; + this.match(MySqlParser.KW_USER); + } + break; + case MySqlParser.KW_TABLESPACE: + { + this.state = 5935; + this.match(MySqlParser.KW_TABLESPACE); + } + break; + case MySqlParser.KW_ROLE: + { + this.state = 5936; + this.match(MySqlParser.KW_ROLE); + } + break; + case MySqlParser.KW_ON: + case MySqlParser.LR_BRACKET: + case MySqlParser.COMMA: + break; + default: + break; + } + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 5939; + this.match(MySqlParser.KW_DELETE); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 5940; + this.match(MySqlParser.KW_DROP); + this.state = 5942; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ROLE) { + { + this.state = 5941; + this.match(MySqlParser.KW_ROLE); + } + } + + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 5944; + this.match(MySqlParser.KW_EVENT); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 5945; + this.match(MySqlParser.KW_EXECUTE); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 5946; + this.match(MySqlParser.KW_FILE); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 5947; + this.match(MySqlParser.KW_GRANT); + this.state = 5948; + this.match(MySqlParser.KW_OPTION); + } + break; + + case 10: + this.enterOuterAlt(_localctx, 10); + { + this.state = 5949; + this.match(MySqlParser.KW_INDEX); + } + break; + + case 11: + this.enterOuterAlt(_localctx, 11); + { + this.state = 5950; + this.match(MySqlParser.KW_INSERT); + } + break; + + case 12: + this.enterOuterAlt(_localctx, 12); + { + this.state = 5951; + this.match(MySqlParser.KW_LOCK); + this.state = 5952; + this.match(MySqlParser.KW_TABLES); + } + break; + + case 13: + this.enterOuterAlt(_localctx, 13); + { + this.state = 5953; + this.match(MySqlParser.KW_PROCESS); + } + break; + + case 14: + this.enterOuterAlt(_localctx, 14); + { + this.state = 5954; + this.match(MySqlParser.KW_PROXY); + } + break; + + case 15: + this.enterOuterAlt(_localctx, 15); + { + this.state = 5955; + this.match(MySqlParser.KW_REFERENCES); + } + break; + + case 16: + this.enterOuterAlt(_localctx, 16); + { + this.state = 5956; + this.match(MySqlParser.KW_RELOAD); + } + break; + + case 17: + this.enterOuterAlt(_localctx, 17); + { + this.state = 5957; + this.match(MySqlParser.KW_REPLICATION); + this.state = 5958; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CLIENT || _la === MySqlParser.KW_SLAVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 18: + this.enterOuterAlt(_localctx, 18); + { + this.state = 5959; + this.match(MySqlParser.KW_SELECT); + } + break; + + case 19: + this.enterOuterAlt(_localctx, 19); + { + this.state = 5960; + this.match(MySqlParser.KW_SHOW); + this.state = 5961; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASES || _la === MySqlParser.KW_VIEW)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 20: + this.enterOuterAlt(_localctx, 20); + { + this.state = 5962; + this.match(MySqlParser.KW_SHUTDOWN); + } + break; + + case 21: + this.enterOuterAlt(_localctx, 21); + { + this.state = 5963; + this.match(MySqlParser.KW_SUPER); + } + break; + + case 22: + this.enterOuterAlt(_localctx, 22); + { + this.state = 5964; + this.match(MySqlParser.KW_TRIGGER); + } + break; + + case 23: + this.enterOuterAlt(_localctx, 23); + { + this.state = 5965; + this.match(MySqlParser.KW_UPDATE); + } + break; + + case 24: + this.enterOuterAlt(_localctx, 24); + { + this.state = 5966; + this.match(MySqlParser.KW_USAGE); + } + break; + + case 25: + this.enterOuterAlt(_localctx, 25); + { + this.state = 5967; + this.match(MySqlParser.KW_APPLICATION_PASSWORD_ADMIN); + } + break; + + case 26: + this.enterOuterAlt(_localctx, 26); + { + this.state = 5968; + this.match(MySqlParser.KW_AUDIT_ABORT_EXEMPT); + } + break; + + case 27: + this.enterOuterAlt(_localctx, 27); + { + this.state = 5969; + this.match(MySqlParser.KW_AUDIT_ADMIN); + } + break; + + case 28: + this.enterOuterAlt(_localctx, 28); + { + this.state = 5970; + this.match(MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN); + } + break; + + case 29: + this.enterOuterAlt(_localctx, 29); + { + this.state = 5971; + this.match(MySqlParser.KW_BACKUP_ADMIN); + } + break; + + case 30: + this.enterOuterAlt(_localctx, 30); + { + this.state = 5972; + this.match(MySqlParser.KW_BINLOG_ADMIN); + } + break; + + case 31: + this.enterOuterAlt(_localctx, 31); + { + this.state = 5973; + this.match(MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN); + } + break; + + case 32: + this.enterOuterAlt(_localctx, 32); + { + this.state = 5974; + this.match(MySqlParser.KW_CLONE_ADMIN); + } + break; + + case 33: + this.enterOuterAlt(_localctx, 33); + { + this.state = 5975; + this.match(MySqlParser.KW_CONNECTION_ADMIN); + } + break; + + case 34: + this.enterOuterAlt(_localctx, 34); + { + this.state = 5976; + this.match(MySqlParser.KW_ENCRYPTION_KEY_ADMIN); + } + break; + + case 35: + this.enterOuterAlt(_localctx, 35); + { + this.state = 5977; + this.match(MySqlParser.KW_FIREWALL_ADMIN); + } + break; + + case 36: + this.enterOuterAlt(_localctx, 36); + { + this.state = 5978; + this.match(MySqlParser.KW_FIREWALL_EXEMPT); + } + break; + + case 37: + this.enterOuterAlt(_localctx, 37); + { + this.state = 5979; + this.match(MySqlParser.KW_FIREWALL_USER); + } + break; + + case 38: + this.enterOuterAlt(_localctx, 38); + { + this.state = 5980; + this.match(MySqlParser.KW_FLUSH_OPTIMIZER_COSTS); + } + break; + + case 39: + this.enterOuterAlt(_localctx, 39); + { + this.state = 5981; + this.match(MySqlParser.KW_FLUSH_STATUS); + } + break; + + case 40: + this.enterOuterAlt(_localctx, 40); + { + this.state = 5982; + this.match(MySqlParser.KW_FLUSH_TABLES); + } + break; + + case 41: + this.enterOuterAlt(_localctx, 41); + { + this.state = 5983; + this.match(MySqlParser.KW_FLUSH_USER_RESOURCES); + } + break; + + case 42: + this.enterOuterAlt(_localctx, 42); + { + this.state = 5984; + this.match(MySqlParser.KW_GROUP_REPLICATION_ADMIN); + } + break; + + case 43: + this.enterOuterAlt(_localctx, 43); + { + this.state = 5985; + this.match(MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE); + } + break; + + case 44: + this.enterOuterAlt(_localctx, 44); + { + this.state = 5986; + this.match(MySqlParser.KW_INNODB_REDO_LOG_ENABLE); + } + break; + + case 45: + this.enterOuterAlt(_localctx, 45); + { + this.state = 5987; + this.match(MySqlParser.KW_NDB_STORED_USER); + } + break; + + case 46: + this.enterOuterAlt(_localctx, 46); + { + this.state = 5988; + this.match(MySqlParser.KW_PASSWORDLESS_USER_ADMIN); + } + break; + + case 47: + this.enterOuterAlt(_localctx, 47); + { + this.state = 5989; + this.match(MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN); + } + break; + + case 48: + this.enterOuterAlt(_localctx, 48); + { + this.state = 5990; + this.match(MySqlParser.KW_REPLICATION_APPLIER); + } + break; + + case 49: + this.enterOuterAlt(_localctx, 49); + { + this.state = 5991; + this.match(MySqlParser.KW_REPLICATION_SLAVE_ADMIN); + } + break; + + case 50: + this.enterOuterAlt(_localctx, 50); + { + this.state = 5992; + this.match(MySqlParser.KW_RESOURCE_GROUP_ADMIN); + } + break; + + case 51: + this.enterOuterAlt(_localctx, 51); + { + this.state = 5993; + this.match(MySqlParser.KW_RESOURCE_GROUP_USER); + } + break; + + case 52: + this.enterOuterAlt(_localctx, 52); + { + this.state = 5994; + this.match(MySqlParser.KW_ROLE_ADMIN); + } + break; + + case 53: + this.enterOuterAlt(_localctx, 53); + { + this.state = 5995; + this.match(MySqlParser.KW_SERVICE_CONNECTION_ADMIN); + } + break; + + case 54: + this.enterOuterAlt(_localctx, 54); + { + this.state = 5996; + this.match(MySqlParser.KW_SESSION_VARIABLES_ADMIN); + } + break; + + case 55: + this.enterOuterAlt(_localctx, 55); + { + this.state = 5997; + this.match(MySqlParser.KW_SET_USER_ID); + } + break; + + case 56: + this.enterOuterAlt(_localctx, 56); + { + this.state = 5998; + this.match(MySqlParser.KW_SKIP_QUERY_REWRITE); + } + break; + + case 57: + this.enterOuterAlt(_localctx, 57); + { + this.state = 5999; + this.match(MySqlParser.KW_SHOW_ROUTINE); + } + break; + + case 58: + this.enterOuterAlt(_localctx, 58); + { + this.state = 6000; + this.match(MySqlParser.KW_SYSTEM_USER); + } + break; + + case 59: + this.enterOuterAlt(_localctx, 59); + { + this.state = 6001; + this.match(MySqlParser.KW_SYSTEM_VARIABLES_ADMIN); + } + break; + + case 60: + this.enterOuterAlt(_localctx, 60); + { + this.state = 6002; + this.match(MySqlParser.KW_TABLE_ENCRYPTION_ADMIN); + } + break; + + case 61: + this.enterOuterAlt(_localctx, 61); + { + this.state = 6003; + this.match(MySqlParser.KW_TP_CONNECTION_ADMIN); + } + break; + + case 62: + this.enterOuterAlt(_localctx, 62); + { + this.state = 6004; + this.match(MySqlParser.KW_VERSION_TOKEN_ADMIN); + } + break; + + case 63: + this.enterOuterAlt(_localctx, 63); + { + this.state = 6005; + this.match(MySqlParser.KW_XA_RECOVER_ADMIN); + } + break; + + case 64: + this.enterOuterAlt(_localctx, 64); + { + this.state = 6006; + this.match(MySqlParser.KW_LOAD); + this.state = 6007; + this.match(MySqlParser.KW_FROM); + this.state = 6008; + this.match(MySqlParser.KW_S3); + } + break; + + case 65: + this.enterOuterAlt(_localctx, 65); + { + this.state = 6009; + this.match(MySqlParser.KW_SELECT); + this.state = 6010; + this.match(MySqlParser.KW_INTO); + this.state = 6011; + this.match(MySqlParser.KW_S3); + } + break; + + case 66: + this.enterOuterAlt(_localctx, 66); + { + this.state = 6012; + this.match(MySqlParser.KW_INVOKE); + this.state = 6013; + this.match(MySqlParser.KW_LAMBDA); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public privilegeLevel(): PrivilegeLevelContext { + let _localctx: PrivilegeLevelContext = new PrivilegeLevelContext(this._ctx, this.state); + this.enterRule(_localctx, 524, MySqlParser.RULE_privilegeLevel); + try { + this.state = 6032; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 869, this._ctx) ) { + case 1: + _localctx = new CurrentSchemaPriviLevelContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 6016; + this.match(MySqlParser.STAR); + } + break; + + case 2: + _localctx = new GlobalPrivLevelContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 6017; + this.match(MySqlParser.STAR); + this.state = 6018; + this.match(MySqlParser.DOT); + this.state = 6019; + this.match(MySqlParser.STAR); + } + break; + + case 3: + _localctx = new DefiniteSchemaPrivLevelContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 6020; + this.uid(); + this.state = 6021; + this.match(MySqlParser.DOT); + this.state = 6022; + this.match(MySqlParser.STAR); + } + break; + + case 4: + _localctx = new DefiniteFullTablePrivLevelContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 6024; + this.uid(); + this.state = 6025; + this.match(MySqlParser.DOT); + this.state = 6026; + this.uid(); + } + break; + + case 5: + _localctx = new DefiniteFullTablePrivLevel2Context(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 6028; + this.uid(); + this.state = 6029; + this.dottedId(); + } + break; + + case 6: + _localctx = new DefiniteTablePrivLevelContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 6031; + this.uid(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public renameUserClause(): RenameUserClauseContext { + let _localctx: RenameUserClauseContext = new RenameUserClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 526, MySqlParser.RULE_renameUserClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6034; + _localctx._fromFirst = this.userName(); + this.state = 6035; + this.match(MySqlParser.KW_TO); + this.state = 6036; + _localctx._toFirst = this.userName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public analyzeTable(): AnalyzeTableContext { + let _localctx: AnalyzeTableContext = new AnalyzeTableContext(this._ctx, this.state); + this.enterRule(_localctx, 528, MySqlParser.RULE_analyzeTable); + let _la: number; + try { + this.state = 6086; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 876, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6038; + this.match(MySqlParser.KW_ANALYZE); + this.state = 6040; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6039; + this.tableActionOption(); + } + } + + this.state = 6042; + this.match(MySqlParser.KW_TABLE); + this.state = 6043; + this.tableNames(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6044; + this.match(MySqlParser.KW_ANALYZE); + this.state = 6046; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6045; + this.tableActionOption(); + } + } + + this.state = 6048; + this.match(MySqlParser.KW_TABLE); + this.state = 6049; + this.tableName(); + this.state = 6050; + this.match(MySqlParser.KW_UPDATE); + this.state = 6051; + this.match(MySqlParser.KW_HISTOGRAM); + this.state = 6052; + this.match(MySqlParser.KW_ON); + this.state = 6053; + this.columnNames(); + this.state = 6058; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 872, this._ctx) ) { + case 1: + { + this.state = 6054; + this.match(MySqlParser.KW_WITH); + this.state = 6055; + this.decimalLiteral(); + this.state = 6056; + this.match(MySqlParser.KW_BUCKETS); + } + break; + } + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6060; + this.match(MySqlParser.KW_ANALYZE); + this.state = 6062; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6061; + this.tableActionOption(); + } + } + + this.state = 6064; + this.match(MySqlParser.KW_TABLE); + this.state = 6065; + this.tableName(); + this.state = 6066; + this.match(MySqlParser.KW_UPDATE); + this.state = 6067; + this.match(MySqlParser.KW_HISTOGRAM); + this.state = 6068; + this.match(MySqlParser.KW_ON); + this.state = 6069; + this.columnName(); + this.state = 6073; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 6070; + this.match(MySqlParser.KW_USING); + this.state = 6071; + this.match(MySqlParser.KW_DATA); + this.state = 6072; + this.match(MySqlParser.STRING_LITERAL); + } + } + + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6075; + this.match(MySqlParser.KW_ANALYZE); + this.state = 6077; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6076; + this.tableActionOption(); + } + } + + this.state = 6079; + this.match(MySqlParser.KW_TABLE); + this.state = 6080; + this.tableName(); + this.state = 6081; + this.match(MySqlParser.KW_DROP); + this.state = 6082; + this.match(MySqlParser.KW_HISTOGRAM); + this.state = 6083; + this.match(MySqlParser.KW_ON); + this.state = 6084; + this.columnNames(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public checkTable(): CheckTableContext { + let _localctx: CheckTableContext = new CheckTableContext(this._ctx, this.state); + this.enterRule(_localctx, 530, MySqlParser.RULE_checkTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6088; + this.match(MySqlParser.KW_CHECK); + this.state = 6089; + this.match(MySqlParser.KW_TABLE); + this.state = 6090; + this.tableNames(); + this.state = 6094; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_FOR || _la === MySqlParser.KW_CHANGED || _la === MySqlParser.KW_EXTENDED || _la === MySqlParser.KW_FAST || _la === MySqlParser.KW_MEDIUM || _la === MySqlParser.KW_QUICK) { + { + { + this.state = 6091; + this.checkTableOption(); + } + } + this.state = 6096; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public checksumTable(): ChecksumTableContext { + let _localctx: ChecksumTableContext = new ChecksumTableContext(this._ctx, this.state); + this.enterRule(_localctx, 532, MySqlParser.RULE_checksumTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6097; + this.match(MySqlParser.KW_CHECKSUM); + this.state = 6098; + this.match(MySqlParser.KW_TABLE); + this.state = 6099; + this.tableNames(); + this.state = 6101; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENDED || _la === MySqlParser.KW_QUICK) { + { + this.state = 6100; + _localctx._actionOption = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_EXTENDED || _la === MySqlParser.KW_QUICK)) { + _localctx._actionOption = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public optimizeTable(): OptimizeTableContext { + let _localctx: OptimizeTableContext = new OptimizeTableContext(this._ctx, this.state); + this.enterRule(_localctx, 534, MySqlParser.RULE_optimizeTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6103; + this.match(MySqlParser.KW_OPTIMIZE); + this.state = 6105; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6104; + this.tableActionOption(); + } + } + + this.state = 6107; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_TABLE || _la === MySqlParser.KW_TABLES)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6108; + this.tableNames(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public repairTable(): RepairTableContext { + let _localctx: RepairTableContext = new RepairTableContext(this._ctx, this.state); + this.enterRule(_localctx, 536, MySqlParser.RULE_repairTable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6110; + this.match(MySqlParser.KW_REPAIR); + this.state = 6112; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6111; + this.tableActionOption(); + } + } + + this.state = 6114; + this.match(MySqlParser.KW_TABLE); + this.state = 6115; + this.tableNames(); + this.state = 6117; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_QUICK) { + { + this.state = 6116; + this.match(MySqlParser.KW_QUICK); + } + } + + this.state = 6120; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENDED) { + { + this.state = 6119; + this.match(MySqlParser.KW_EXTENDED); + } + } + + this.state = 6123; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USE_FRM) { + { + this.state = 6122; + this.match(MySqlParser.KW_USE_FRM); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableActionOption(): TableActionOptionContext { + let _localctx: TableActionOptionContext = new TableActionOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 538, MySqlParser.RULE_tableActionOption); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6125; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public checkTableOption(): CheckTableOptionContext { + let _localctx: CheckTableOptionContext = new CheckTableOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 540, MySqlParser.RULE_checkTableOption); + try { + this.state = 6134; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_FOR: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6127; + this.match(MySqlParser.KW_FOR); + this.state = 6128; + this.match(MySqlParser.KW_UPGRADE); + } + break; + case MySqlParser.KW_QUICK: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6129; + this.match(MySqlParser.KW_QUICK); + } + break; + case MySqlParser.KW_FAST: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6130; + this.match(MySqlParser.KW_FAST); + } + break; + case MySqlParser.KW_MEDIUM: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6131; + this.match(MySqlParser.KW_MEDIUM); + } + break; + case MySqlParser.KW_EXTENDED: + this.enterOuterAlt(_localctx, 5); + { + this.state = 6132; + this.match(MySqlParser.KW_EXTENDED); + } + break; + case MySqlParser.KW_CHANGED: + this.enterOuterAlt(_localctx, 6); + { + this.state = 6133; + this.match(MySqlParser.KW_CHANGED); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public createFunction(): CreateFunctionContext { + let _localctx: CreateFunctionContext = new CreateFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 542, MySqlParser.RULE_createFunction); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6136; + this.match(MySqlParser.KW_CREATE); + this.state = 6138; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AGGREGATE) { + { + this.state = 6137; + this.match(MySqlParser.KW_AGGREGATE); + } + } + + this.state = 6140; + this.match(MySqlParser.KW_FUNCTION); + this.state = 6142; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 886, this._ctx) ) { + case 1: + { + this.state = 6141; + this.ifNotExists(); + } + break; + } + this.state = 6144; + this.functionNameCreate(); + this.state = 6145; + this.match(MySqlParser.KW_RETURNS); + this.state = 6146; + _localctx._returnType = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 208)) & ~0x1F) === 0 && ((1 << (_la - 208)) & ((1 << (MySqlParser.KW_INTEGER - 208)) | (1 << (MySqlParser.KW_REAL - 208)) | (1 << (MySqlParser.KW_DECIMAL - 208)))) !== 0) || _la === MySqlParser.KW_STRING)) { + _localctx._returnType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6147; + this.match(MySqlParser.KW_SONAME); + this.state = 6148; + this.match(MySqlParser.STRING_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public installComponent(): InstallComponentContext { + let _localctx: InstallComponentContext = new InstallComponentContext(this._ctx, this.state); + this.enterRule(_localctx, 544, MySqlParser.RULE_installComponent); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6150; + this.match(MySqlParser.KW_INSTALL); + this.state = 6151; + this.match(MySqlParser.KW_COMPONENT); + this.state = 6152; + _localctx._component_name = this.uid(); + this.state = 6157; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6153; + this.match(MySqlParser.COMMA); + this.state = 6154; + _localctx._component_name = this.uid(); + } + } + this.state = 6159; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 6169; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 889, this._ctx) ) { + case 1: + { + this.state = 6160; + this.match(MySqlParser.KW_SET); + this.state = 6161; + this.variableExpr(); + this.state = 6166; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6162; + this.match(MySqlParser.COMMA); + this.state = 6163; + this.variableExpr(); + } + } + this.state = 6168; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public variableExpr(): VariableExprContext { + let _localctx: VariableExprContext = new VariableExprContext(this._ctx, this.state); + this.enterRule(_localctx, 546, MySqlParser.RULE_variableExpr); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6171; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_PERSIST || _la === MySqlParser.GLOBAL_ID || _la === MySqlParser.PERSIST_ID)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6172; + _localctx._system_var_name = this.fullId(); + this.state = 6173; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6174; + this.expression(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public uninstallComponent(): UninstallComponentContext { + let _localctx: UninstallComponentContext = new UninstallComponentContext(this._ctx, this.state); + this.enterRule(_localctx, 548, MySqlParser.RULE_uninstallComponent); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6176; + this.match(MySqlParser.KW_UNINSTALL); + this.state = 6177; + this.match(MySqlParser.KW_COMPONENT); + this.state = 6178; + _localctx._component_name = this.uid(); + this.state = 6183; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6179; + this.match(MySqlParser.COMMA); + this.state = 6180; + _localctx._component_name = this.uid(); + } + } + this.state = 6185; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public installPlugin(): InstallPluginContext { + let _localctx: InstallPluginContext = new InstallPluginContext(this._ctx, this.state); + this.enterRule(_localctx, 550, MySqlParser.RULE_installPlugin); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6186; + this.match(MySqlParser.KW_INSTALL); + this.state = 6187; + this.match(MySqlParser.KW_PLUGIN); + this.state = 6188; + _localctx._pluginName = this.uid(); + this.state = 6189; + this.match(MySqlParser.KW_SONAME); + this.state = 6190; + this.match(MySqlParser.STRING_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public uninstallPlugin(): UninstallPluginContext { + let _localctx: UninstallPluginContext = new UninstallPluginContext(this._ctx, this.state); + this.enterRule(_localctx, 552, MySqlParser.RULE_uninstallPlugin); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6192; + this.match(MySqlParser.KW_UNINSTALL); + this.state = 6193; + this.match(MySqlParser.KW_PLUGIN); + this.state = 6194; + _localctx._pluginName = this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public cloneStatement(): CloneStatementContext { + let _localctx: CloneStatementContext = new CloneStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 554, MySqlParser.RULE_cloneStatement); + let _la: number; + try { + this.state = 6226; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 896, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6196; + this.match(MySqlParser.KW_CLONE); + this.state = 6197; + this.match(MySqlParser.KW_LOCAL); + this.state = 6198; + this.match(MySqlParser.KW_DATA); + this.state = 6199; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 6201; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 6200; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 6203; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6204; + this.match(MySqlParser.KW_CLONE); + this.state = 6205; + this.match(MySqlParser.KW_INSTANCE); + this.state = 6206; + this.match(MySqlParser.KW_FROM); + this.state = 6207; + this.userHostPort(); + this.state = 6208; + this.match(MySqlParser.KW_IDENTIFIED); + this.state = 6209; + this.match(MySqlParser.KW_BY); + this.state = 6210; + this.match(MySqlParser.STRING_LITERAL); + this.state = 6217; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DATA) { + { + this.state = 6211; + this.match(MySqlParser.KW_DATA); + this.state = 6212; + this.match(MySqlParser.KW_DIRECTORY); + this.state = 6214; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.EQUAL_SYMBOL) { + { + this.state = 6213; + this.match(MySqlParser.EQUAL_SYMBOL); + } + } + + this.state = 6216; + this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 6224; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_REQUIRE) { + { + this.state = 6219; + this.match(MySqlParser.KW_REQUIRE); + this.state = 6221; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO) { + { + this.state = 6220; + this.match(MySqlParser.KW_NO); + } + } + + this.state = 6223; + this.match(MySqlParser.KW_SSL); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public setStatement(): SetStatementContext { + let _localctx: SetStatementContext = new SetStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 556, MySqlParser.RULE_setStatement); + let _la: number; + try { + this.state = 6280; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 904, this._ctx) ) { + case 1: + _localctx = new SetVariableContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 6228; + this.match(MySqlParser.KW_SET); + this.state = 6229; + this.variableClause(); + this.state = 6230; + _la = this._input.LA(1); + if (!(_la === MySqlParser.VAR_ASSIGN || _la === MySqlParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6233; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 897, this._ctx) ) { + case 1: + { + this.state = 6231; + this.expression(0); + } + break; + + case 2: + { + this.state = 6232; + this.match(MySqlParser.KW_ON); + } + break; + } + this.state = 6244; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6235; + this.match(MySqlParser.COMMA); + this.state = 6236; + this.variableClause(); + this.state = 6237; + _la = this._input.LA(1); + if (!(_la === MySqlParser.VAR_ASSIGN || _la === MySqlParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6240; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 898, this._ctx) ) { + case 1: + { + this.state = 6238; + this.expression(0); + } + break; + + case 2: + { + this.state = 6239; + this.match(MySqlParser.KW_ON); + } + break; + } + } + } + this.state = 6246; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 2: + _localctx = new SetCharsetContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 6247; + this.match(MySqlParser.KW_SET); + this.state = 6248; + this.charSet(); + this.state = 6251; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BINARY: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + { + this.state = 6249; + this.charsetName(); + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 6250; + this.match(MySqlParser.KW_DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 3: + _localctx = new SetNamesContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 6253; + this.match(MySqlParser.KW_SET); + this.state = 6254; + this.match(MySqlParser.KW_NAMES); + this.state = 6261; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BINARY: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + { + this.state = 6255; + this.charsetName(); + this.state = 6258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_COLLATE) { + { + this.state = 6256; + this.match(MySqlParser.KW_COLLATE); + this.state = 6257; + this.collationName(); + } + } + + } + break; + case MySqlParser.KW_DEFAULT: + { + this.state = 6260; + this.match(MySqlParser.KW_DEFAULT); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 4: + _localctx = new SetPasswordContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 6263; + this.setPasswordStatement(); + } + break; + + case 5: + _localctx = new SetTransactionContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 6264; + this.setTransactionStatement(); + } + break; + + case 6: + _localctx = new SetAutocommitContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 6265; + this.setAutocommitStatement(); + } + break; + + case 7: + _localctx = new SetNewValueInsideTriggerContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 6266; + this.match(MySqlParser.KW_SET); + this.state = 6267; + (_localctx as SetNewValueInsideTriggerContext)._system_var_name = this.fullId(); + this.state = 6268; + _la = this._input.LA(1); + if (!(_la === MySqlParser.VAR_ASSIGN || _la === MySqlParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6269; + this.expression(0); + this.state = 6277; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6270; + this.match(MySqlParser.COMMA); + this.state = 6271; + (_localctx as SetNewValueInsideTriggerContext)._system_var_name = this.fullId(); + this.state = 6272; + _la = this._input.LA(1); + if (!(_la === MySqlParser.VAR_ASSIGN || _la === MySqlParser.EQUAL_SYMBOL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6273; + this.expression(0); + } + } + this.state = 6279; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showStatement(): ShowStatementContext { + let _localctx: ShowStatementContext = new ShowStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 558, MySqlParser.RULE_showStatement); + let _la: number; + try { + this.state = 6466; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 933, this._ctx) ) { + case 1: + _localctx = new ShowMasterLogsContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 6282; + this.match(MySqlParser.KW_SHOW); + this.state = 6283; + (_localctx as ShowMasterLogsContext)._logFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINARY || _la === MySqlParser.KW_MASTER)) { + (_localctx as ShowMasterLogsContext)._logFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6284; + this.match(MySqlParser.KW_LOGS); + } + break; + + case 2: + _localctx = new ShowLogEventsContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 6285; + this.match(MySqlParser.KW_SHOW); + this.state = 6286; + (_localctx as ShowLogEventsContext)._logFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINLOG || _la === MySqlParser.KW_RELAYLOG)) { + (_localctx as ShowLogEventsContext)._logFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6287; + this.match(MySqlParser.KW_EVENTS); + this.state = 6290; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IN) { + { + this.state = 6288; + this.match(MySqlParser.KW_IN); + this.state = 6289; + (_localctx as ShowLogEventsContext)._filename = this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 6294; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FROM) { + { + this.state = 6292; + this.match(MySqlParser.KW_FROM); + this.state = 6293; + (_localctx as ShowLogEventsContext)._fromPosition = this.decimalLiteral(); + } + } + + this.state = 6303; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 6296; + this.match(MySqlParser.KW_LIMIT); + this.state = 6300; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 907, this._ctx) ) { + case 1: + { + this.state = 6297; + (_localctx as ShowLogEventsContext)._offset = this.decimalLiteral(); + this.state = 6298; + this.match(MySqlParser.COMMA); + } + break; + } + this.state = 6302; + (_localctx as ShowLogEventsContext)._rowCount = this.decimalLiteral(); + } + } + + this.state = 6306; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6305; + this.channelOption(); + } + } + + } + break; + + case 3: + _localctx = new ShowObjectFilterContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 6308; + this.match(MySqlParser.KW_SHOW); + this.state = 6309; + this.showCommonEntity(); + this.state = 6311; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIKE || _la === MySqlParser.KW_WHERE) { + { + this.state = 6310; + this.showFilter(); + } + } + + } + break; + + case 4: + _localctx = new ShowColumnsContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 6313; + this.match(MySqlParser.KW_SHOW); + this.state = 6315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENDED) { + { + this.state = 6314; + this.match(MySqlParser.KW_EXTENDED); + } + } + + this.state = 6318; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FULL) { + { + this.state = 6317; + this.match(MySqlParser.KW_FULL); + } + } + + this.state = 6320; + (_localctx as ShowColumnsContext)._columnsFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_COLUMNS || _la === MySqlParser.KW_FIELDS)) { + (_localctx as ShowColumnsContext)._columnsFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6321; + (_localctx as ShowColumnsContext)._tableFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + (_localctx as ShowColumnsContext)._tableFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6322; + this.tableName(); + this.state = 6325; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN) { + { + this.state = 6323; + (_localctx as ShowColumnsContext)._schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + (_localctx as ShowColumnsContext)._schemaFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6324; + this.databaseName(); + } + } + + this.state = 6328; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIKE || _la === MySqlParser.KW_WHERE) { + { + this.state = 6327; + this.showFilter(); + } + } + + } + break; + + case 5: + _localctx = new ShowCreateDbContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 6330; + this.match(MySqlParser.KW_SHOW); + this.state = 6331; + this.match(MySqlParser.KW_CREATE); + this.state = 6332; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_SCHEMA)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6334; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 915, this._ctx) ) { + case 1: + { + this.state = 6333; + this.ifNotExists(); + } + break; + } + this.state = 6336; + this.databaseNameCreate(); + } + break; + + case 6: + _localctx = new ShowCreateFullIdObjectContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 6337; + this.match(MySqlParser.KW_SHOW); + this.state = 6338; + this.match(MySqlParser.KW_CREATE); + this.state = 6339; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_PROCEDURE || _la === MySqlParser.KW_TRIGGER || _la === MySqlParser.KW_EVENT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6340; + this.fullId(); + } + break; + + case 7: + _localctx = new ShowCreateFunctionContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 6341; + this.match(MySqlParser.KW_SHOW); + this.state = 6342; + this.match(MySqlParser.KW_CREATE); + this.state = 6343; + this.match(MySqlParser.KW_FUNCTION); + this.state = 6344; + this.functionNameCreate(); + } + break; + + case 8: + _localctx = new ShowCreateViewContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 6345; + this.match(MySqlParser.KW_SHOW); + this.state = 6346; + this.match(MySqlParser.KW_CREATE); + this.state = 6347; + this.match(MySqlParser.KW_VIEW); + this.state = 6348; + this.viewNameCreate(); + } + break; + + case 9: + _localctx = new ShowCreateTableContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 6349; + this.match(MySqlParser.KW_SHOW); + this.state = 6350; + this.match(MySqlParser.KW_CREATE); + this.state = 6351; + this.match(MySqlParser.KW_TABLE); + this.state = 6352; + this.tableNameCreate(); + } + break; + + case 10: + _localctx = new ShowCreateUserContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 6353; + this.match(MySqlParser.KW_SHOW); + this.state = 6354; + this.match(MySqlParser.KW_CREATE); + this.state = 6355; + this.match(MySqlParser.KW_USER); + this.state = 6356; + this.userName(); + } + break; + + case 11: + _localctx = new ShowEngineContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 6357; + this.match(MySqlParser.KW_SHOW); + this.state = 6358; + this.match(MySqlParser.KW_ENGINE); + this.state = 6359; + this.engineName(); + this.state = 6360; + (_localctx as ShowEngineContext)._engineOption = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_MUTEX || _la === MySqlParser.KW_STATUS)) { + (_localctx as ShowEngineContext)._engineOption = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 12: + _localctx = new ShowGlobalInfoContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 6362; + this.match(MySqlParser.KW_SHOW); + this.state = 6363; + this.showGlobalInfoClause(); + } + break; + + case 13: + _localctx = new ShowErrorsContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 6364; + this.match(MySqlParser.KW_SHOW); + this.state = 6365; + (_localctx as ShowErrorsContext)._errorFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ERRORS || _la === MySqlParser.KW_WARNINGS)) { + (_localctx as ShowErrorsContext)._errorFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6373; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 6366; + this.match(MySqlParser.KW_LIMIT); + this.state = 6370; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 916, this._ctx) ) { + case 1: + { + this.state = 6367; + (_localctx as ShowErrorsContext)._offset = this.decimalLiteral(); + this.state = 6368; + this.match(MySqlParser.COMMA); + } + break; + } + this.state = 6372; + (_localctx as ShowErrorsContext)._rowCount = this.decimalLiteral(); + } + } + + } + break; + + case 14: + _localctx = new ShowCountErrorsContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 6375; + this.match(MySqlParser.KW_SHOW); + this.state = 6376; + this.match(MySqlParser.KW_COUNT); + this.state = 6377; + this.match(MySqlParser.LR_BRACKET); + this.state = 6378; + this.match(MySqlParser.STAR); + this.state = 6379; + this.match(MySqlParser.RR_BRACKET); + this.state = 6380; + (_localctx as ShowCountErrorsContext)._errorFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ERRORS || _la === MySqlParser.KW_WARNINGS)) { + (_localctx as ShowCountErrorsContext)._errorFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 15: + _localctx = new ShowSchemaFilterContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 6381; + this.match(MySqlParser.KW_SHOW); + this.state = 6382; + this.showSchemaEntity(); + this.state = 6385; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN) { + { + this.state = 6383; + (_localctx as ShowSchemaFilterContext)._schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + (_localctx as ShowSchemaFilterContext)._schemaFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6384; + this.databaseName(); + } + } + + this.state = 6388; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIKE || _la === MySqlParser.KW_WHERE) { + { + this.state = 6387; + this.showFilter(); + } + } + + } + break; + + case 16: + _localctx = new ShowPercedureCodeContext(_localctx); + this.enterOuterAlt(_localctx, 16); + { + this.state = 6390; + this.match(MySqlParser.KW_SHOW); + this.state = 6391; + this.match(MySqlParser.KW_PROCEDURE); + this.state = 6392; + this.match(MySqlParser.KW_CODE); + this.state = 6393; + (_localctx as ShowPercedureCodeContext)._proc_name = this.fullId(); + } + break; + + case 17: + _localctx = new ShowFunctionCodeContext(_localctx); + this.enterOuterAlt(_localctx, 17); + { + this.state = 6394; + this.match(MySqlParser.KW_SHOW); + this.state = 6395; + this.match(MySqlParser.KW_FUNCTION); + this.state = 6396; + this.match(MySqlParser.KW_CODE); + this.state = 6397; + this.functionName(); + } + break; + + case 18: + _localctx = new ShowGrantsContext(_localctx); + this.enterOuterAlt(_localctx, 18); + { + this.state = 6398; + this.match(MySqlParser.KW_SHOW); + this.state = 6399; + this.match(MySqlParser.KW_GRANTS); + this.state = 6406; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6400; + this.match(MySqlParser.KW_FOR); + this.state = 6401; + this.userOrRoleName(); + this.state = 6404; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 6402; + this.match(MySqlParser.KW_USING); + this.state = 6403; + this.userOrRoleNames(); + } + } + + } + } + + } + break; + + case 19: + _localctx = new ShowIndexesContext(_localctx); + this.enterOuterAlt(_localctx, 19); + { + this.state = 6408; + this.match(MySqlParser.KW_SHOW); + this.state = 6410; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENDED) { + { + this.state = 6409; + this.match(MySqlParser.KW_EXTENDED); + } + } + + this.state = 6412; + (_localctx as ShowIndexesContext)._indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEYS || _la === MySqlParser.KW_INDEXES)) { + (_localctx as ShowIndexesContext)._indexFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6413; + (_localctx as ShowIndexesContext)._tableFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + (_localctx as ShowIndexesContext)._tableFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6414; + this.tableName(); + this.state = 6417; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN) { + { + this.state = 6415; + (_localctx as ShowIndexesContext)._schemaFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + (_localctx as ShowIndexesContext)._schemaFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6416; + this.databaseName(); + } + } + + this.state = 6421; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_WHERE) { + { + this.state = 6419; + this.match(MySqlParser.KW_WHERE); + this.state = 6420; + this.expression(0); + } + } + + } + break; + + case 20: + _localctx = new ShowOpenTablesContext(_localctx); + this.enterOuterAlt(_localctx, 20); + { + this.state = 6423; + this.match(MySqlParser.KW_SHOW); + this.state = 6424; + this.match(MySqlParser.KW_OPEN); + this.state = 6425; + this.match(MySqlParser.KW_TABLES); + this.state = 6428; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN) { + { + this.state = 6426; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FROM || _la === MySqlParser.KW_IN)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6427; + this.databaseName(); + } + } + + this.state = 6431; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIKE || _la === MySqlParser.KW_WHERE) { + { + this.state = 6430; + this.showFilter(); + } + } + + } + break; + + case 21: + _localctx = new ShowProfileContext(_localctx); + this.enterOuterAlt(_localctx, 21); + { + this.state = 6433; + this.match(MySqlParser.KW_SHOW); + this.state = 6434; + this.match(MySqlParser.KW_PROFILE); + this.state = 6443; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_BLOCK || _la === MySqlParser.KW_CONTEXT || _la === MySqlParser.KW_CPU || _la === MySqlParser.KW_IPC || _la === MySqlParser.KW_PAGE || _la === MySqlParser.KW_SOURCE || _la === MySqlParser.KW_SWAPS || _la === MySqlParser.KW_MEMORY) { + { + this.state = 6435; + this.showProfileType(); + this.state = 6440; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6436; + this.match(MySqlParser.COMMA); + this.state = 6437; + this.showProfileType(); + } + } + this.state = 6442; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 6448; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6445; + this.match(MySqlParser.KW_FOR); + this.state = 6446; + this.match(MySqlParser.KW_QUERY); + this.state = 6447; + (_localctx as ShowProfileContext)._queryCount = this.decimalLiteral(); + } + } + + this.state = 6456; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LIMIT) { + { + this.state = 6450; + this.match(MySqlParser.KW_LIMIT); + this.state = 6451; + (_localctx as ShowProfileContext)._rowCount = this.decimalLiteral(); + this.state = 6454; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_OFFSET) { + { + this.state = 6452; + this.match(MySqlParser.KW_OFFSET); + this.state = 6453; + (_localctx as ShowProfileContext)._offset = this.decimalLiteral(); + } + } + + } + } + + } + break; + + case 22: + _localctx = new ShowSlaveStatusContext(_localctx); + this.enterOuterAlt(_localctx, 22); + { + this.state = 6458; + this.match(MySqlParser.KW_SHOW); + this.state = 6459; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_REPLICA || _la === MySqlParser.KW_SLAVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6460; + this.match(MySqlParser.KW_STATUS); + this.state = 6462; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6461; + this.channelOption(); + } + } + + } + break; + + case 23: + _localctx = new ShowReplicasContext(_localctx); + this.enterOuterAlt(_localctx, 23); + { + this.state = 6464; + this.match(MySqlParser.KW_SHOW); + this.state = 6465; + this.match(MySqlParser.KW_REPLICAS); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public variableClause(): VariableClauseContext { + let _localctx: VariableClauseContext = new VariableClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 560, MySqlParser.RULE_variableClause); + let _la: number; + try { + this.state = 6478; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.LOCAL_ID: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6468; + this.match(MySqlParser.LOCAL_ID); + } + break; + case MySqlParser.GLOBAL_ID: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6469; + this.match(MySqlParser.GLOBAL_ID); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PERSIST: + case MySqlParser.KW_PERSIST_ONLY: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.AT_SIGN: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6475; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 935, this._ctx) ) { + case 1: + { + this.state = 6472; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.AT_SIGN) { + { + this.state = 6470; + this.match(MySqlParser.AT_SIGN); + this.state = 6471; + this.match(MySqlParser.AT_SIGN); + } + } + + this.state = 6474; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_LOCAL || _la === MySqlParser.KW_PERSIST || _la === MySqlParser.KW_PERSIST_ONLY || _la === MySqlParser.KW_SESSION)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + this.state = 6477; + _localctx._target = this.uid(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showCommonEntity(): ShowCommonEntityContext { + let _localctx: ShowCommonEntityContext = new ShowCommonEntityContext(this._ctx, this.state); + this.enterRule(_localctx, 562, MySqlParser.RULE_showCommonEntity); + let _la: number; + try { + this.state = 6494; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CHARACTER: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6480; + this.match(MySqlParser.KW_CHARACTER); + this.state = 6481; + this.match(MySqlParser.KW_SET); + } + break; + case MySqlParser.KW_CHARSET: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6482; + this.match(MySqlParser.KW_CHARSET); + } + break; + case MySqlParser.KW_COLLATION: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6483; + this.match(MySqlParser.KW_COLLATION); + } + break; + case MySqlParser.KW_DATABASES: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6484; + this.match(MySqlParser.KW_DATABASES); + } + break; + case MySqlParser.KW_SCHEMAS: + this.enterOuterAlt(_localctx, 5); + { + this.state = 6485; + this.match(MySqlParser.KW_SCHEMAS); + } + break; + case MySqlParser.KW_FUNCTION: + this.enterOuterAlt(_localctx, 6); + { + this.state = 6486; + this.match(MySqlParser.KW_FUNCTION); + this.state = 6487; + this.match(MySqlParser.KW_STATUS); + } + break; + case MySqlParser.KW_PROCEDURE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 6488; + this.match(MySqlParser.KW_PROCEDURE); + this.state = 6489; + this.match(MySqlParser.KW_STATUS); + } + break; + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_VARIABLES: + this.enterOuterAlt(_localctx, 8); + { + this.state = 6491; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_SESSION) { + { + this.state = 6490; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_GLOBAL || _la === MySqlParser.KW_SESSION)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 6493; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_STATUS || _la === MySqlParser.KW_VARIABLES)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showFilter(): ShowFilterContext { + let _localctx: ShowFilterContext = new ShowFilterContext(this._ctx, this.state); + this.enterRule(_localctx, 564, MySqlParser.RULE_showFilter); + try { + this.state = 6500; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_LIKE: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6496; + this.match(MySqlParser.KW_LIKE); + this.state = 6497; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.KW_WHERE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6498; + this.match(MySqlParser.KW_WHERE); + this.state = 6499; + this.expression(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showGlobalInfoClause(): ShowGlobalInfoClauseContext { + let _localctx: ShowGlobalInfoClauseContext = new ShowGlobalInfoClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 566, MySqlParser.RULE_showGlobalInfoClause); + let _la: number; + try { + this.state = 6519; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_STORAGE: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6503; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_STORAGE) { + { + this.state = 6502; + this.match(MySqlParser.KW_STORAGE); + } + } + + this.state = 6505; + this.match(MySqlParser.KW_ENGINES); + } + break; + case MySqlParser.KW_MASTER: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6506; + this.match(MySqlParser.KW_MASTER); + this.state = 6507; + this.match(MySqlParser.KW_STATUS); + } + break; + case MySqlParser.KW_PLUGINS: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6508; + this.match(MySqlParser.KW_PLUGINS); + } + break; + case MySqlParser.KW_PRIVILEGES: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6509; + this.match(MySqlParser.KW_PRIVILEGES); + } + break; + case MySqlParser.KW_FULL: + case MySqlParser.KW_PROCESSLIST: + this.enterOuterAlt(_localctx, 5); + { + this.state = 6511; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FULL) { + { + this.state = 6510; + this.match(MySqlParser.KW_FULL); + } + } + + this.state = 6513; + this.match(MySqlParser.KW_PROCESSLIST); + } + break; + case MySqlParser.KW_PROFILES: + this.enterOuterAlt(_localctx, 6); + { + this.state = 6514; + this.match(MySqlParser.KW_PROFILES); + } + break; + case MySqlParser.KW_SLAVE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 6515; + this.match(MySqlParser.KW_SLAVE); + this.state = 6516; + this.match(MySqlParser.KW_HOSTS); + } + break; + case MySqlParser.KW_AUTHORS: + this.enterOuterAlt(_localctx, 8); + { + this.state = 6517; + this.match(MySqlParser.KW_AUTHORS); + } + break; + case MySqlParser.KW_CONTRIBUTORS: + this.enterOuterAlt(_localctx, 9); + { + this.state = 6518; + this.match(MySqlParser.KW_CONTRIBUTORS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showSchemaEntity(): ShowSchemaEntityContext { + let _localctx: ShowSchemaEntityContext = new ShowSchemaEntityContext(this._ctx, this.state); + this.enterRule(_localctx, 568, MySqlParser.RULE_showSchemaEntity); + let _la: number; + try { + this.state = 6532; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_EVENTS: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6521; + this.match(MySqlParser.KW_EVENTS); + } + break; + case MySqlParser.KW_TABLE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6522; + this.match(MySqlParser.KW_TABLE); + this.state = 6523; + this.match(MySqlParser.KW_STATUS); + } + break; + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_FULL: + case MySqlParser.KW_TABLES: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6525; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_EXTENDED) { + { + this.state = 6524; + this.match(MySqlParser.KW_EXTENDED); + } + } + + this.state = 6528; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FULL) { + { + this.state = 6527; + this.match(MySqlParser.KW_FULL); + } + } + + this.state = 6530; + this.match(MySqlParser.KW_TABLES); + } + break; + case MySqlParser.KW_TRIGGERS: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6531; + this.match(MySqlParser.KW_TRIGGERS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public showProfileType(): ShowProfileTypeContext { + let _localctx: ShowProfileTypeContext = new ShowProfileTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 570, MySqlParser.RULE_showProfileType); + try { + this.state = 6546; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ALL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6534; + this.match(MySqlParser.KW_ALL); + } + break; + case MySqlParser.KW_BLOCK: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6535; + this.match(MySqlParser.KW_BLOCK); + this.state = 6536; + this.match(MySqlParser.KW_IO); + } + break; + case MySqlParser.KW_CONTEXT: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6537; + this.match(MySqlParser.KW_CONTEXT); + this.state = 6538; + this.match(MySqlParser.KW_SWITCHES); + } + break; + case MySqlParser.KW_CPU: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6539; + this.match(MySqlParser.KW_CPU); + } + break; + case MySqlParser.KW_IPC: + this.enterOuterAlt(_localctx, 5); + { + this.state = 6540; + this.match(MySqlParser.KW_IPC); + } + break; + case MySqlParser.KW_MEMORY: + this.enterOuterAlt(_localctx, 6); + { + this.state = 6541; + this.match(MySqlParser.KW_MEMORY); + } + break; + case MySqlParser.KW_PAGE: + this.enterOuterAlt(_localctx, 7); + { + this.state = 6542; + this.match(MySqlParser.KW_PAGE); + this.state = 6543; + this.match(MySqlParser.KW_FAULTS); + } + break; + case MySqlParser.KW_SOURCE: + this.enterOuterAlt(_localctx, 8); + { + this.state = 6544; + this.match(MySqlParser.KW_SOURCE); + } + break; + case MySqlParser.KW_SWAPS: + this.enterOuterAlt(_localctx, 9); + { + this.state = 6545; + this.match(MySqlParser.KW_SWAPS); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public binlogStatement(): BinlogStatementContext { + let _localctx: BinlogStatementContext = new BinlogStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 572, MySqlParser.RULE_binlogStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6548; + this.match(MySqlParser.KW_BINLOG); + this.state = 6549; + this.match(MySqlParser.STRING_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public cacheIndexStatement(): CacheIndexStatementContext { + let _localctx: CacheIndexStatementContext = new CacheIndexStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 574, MySqlParser.RULE_cacheIndexStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6551; + this.match(MySqlParser.KW_CACHE); + this.state = 6552; + this.match(MySqlParser.KW_INDEX); + this.state = 6570; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 949, this._ctx) ) { + case 1: + { + this.state = 6553; + this.tableIndex(); + this.state = 6558; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6554; + this.match(MySqlParser.COMMA); + this.state = 6555; + this.tableIndex(); + } + } + this.state = 6560; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 2: + { + this.state = 6561; + this.tableName(); + this.state = 6562; + this.match(MySqlParser.KW_PARTITION); + this.state = 6563; + this.match(MySqlParser.LR_BRACKET); + this.state = 6566; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 6564; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 6565; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 6568; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 6572; + this.match(MySqlParser.KW_IN); + this.state = 6573; + this.databaseName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public flushStatement(): FlushStatementContext { + let _localctx: FlushStatementContext = new FlushStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 576, MySqlParser.RULE_flushStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6575; + this.match(MySqlParser.KW_FLUSH); + this.state = 6577; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NO_WRITE_TO_BINLOG || _la === MySqlParser.KW_LOCAL) { + { + this.state = 6576; + this.tableActionOption(); + } + } + + this.state = 6579; + this.flushOption(); + this.state = 6584; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6580; + this.match(MySqlParser.COMMA); + this.state = 6581; + this.flushOption(); + } + } + this.state = 6586; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public killStatement(): KillStatementContext { + let _localctx: KillStatementContext = new KillStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 578, MySqlParser.RULE_killStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6587; + this.match(MySqlParser.KW_KILL); + this.state = 6589; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 952, this._ctx) ) { + case 1: + { + this.state = 6588; + _localctx._connectionFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CONNECTION || _la === MySqlParser.KW_QUERY)) { + _localctx._connectionFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + this.state = 6591; + this.expression(0); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public loadIndexIntoCache(): LoadIndexIntoCacheContext { + let _localctx: LoadIndexIntoCacheContext = new LoadIndexIntoCacheContext(this._ctx, this.state); + this.enterRule(_localctx, 580, MySqlParser.RULE_loadIndexIntoCache); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6593; + this.match(MySqlParser.KW_LOAD); + this.state = 6594; + this.match(MySqlParser.KW_INDEX); + this.state = 6595; + this.match(MySqlParser.KW_INTO); + this.state = 6596; + this.match(MySqlParser.KW_CACHE); + this.state = 6597; + this.loadedTableIndexes(); + this.state = 6602; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6598; + this.match(MySqlParser.COMMA); + this.state = 6599; + this.loadedTableIndexes(); + } + } + this.state = 6604; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resetStatement(): ResetStatementContext { + let _localctx: ResetStatementContext = new ResetStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 582, MySqlParser.RULE_resetStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6605; + this.match(MySqlParser.KW_RESET); + this.state = 6606; + this.resetOption(); + this.state = 6611; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6607; + this.match(MySqlParser.COMMA); + this.state = 6608; + this.resetOption(); + } + } + this.state = 6613; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resetOption(): ResetOptionContext { + let _localctx: ResetOptionContext = new ResetOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 584, MySqlParser.RULE_resetOption); + try { + this.state = 6619; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_MASTER: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6614; + this.match(MySqlParser.KW_MASTER); + } + break; + case MySqlParser.KW_REPLICA: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6615; + this.match(MySqlParser.KW_REPLICA); + } + break; + case MySqlParser.KW_QUERY: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6616; + this.match(MySqlParser.KW_QUERY); + this.state = 6617; + this.match(MySqlParser.KW_CACHE); + } + break; + case MySqlParser.KW_SLAVE: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6618; + this.match(MySqlParser.KW_SLAVE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resetPersist(): ResetPersistContext { + let _localctx: ResetPersistContext = new ResetPersistContext(this._ctx, this.state); + this.enterRule(_localctx, 586, MySqlParser.RULE_resetPersist); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6621; + this.match(MySqlParser.KW_RESET); + this.state = 6622; + this.match(MySqlParser.KW_PERSIST); + this.state = 6627; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 957, this._ctx) ) { + case 1: + { + this.state = 6624; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 956, this._ctx) ) { + case 1: + { + this.state = 6623; + this.ifExists(); + } + break; + } + this.state = 6626; + _localctx._system_var_name = this.uid(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resetAllChannel(): ResetAllChannelContext { + let _localctx: ResetAllChannelContext = new ResetAllChannelContext(this._ctx, this.state); + this.enterRule(_localctx, 588, MySqlParser.RULE_resetAllChannel); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6629; + this.match(MySqlParser.KW_RESET); + this.state = 6630; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_REPLICA || _la === MySqlParser.KW_SLAVE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6632; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ALL) { + { + this.state = 6631; + this.match(MySqlParser.KW_ALL); + } + } + + this.state = 6635; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6634; + this.channelOption(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public reStartStatement(): ReStartStatementContext { + let _localctx: ReStartStatementContext = new ReStartStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 590, MySqlParser.RULE_reStartStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6637; + this.match(MySqlParser.KW_RESTART); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public shutdownStatement(): ShutdownStatementContext { + let _localctx: ShutdownStatementContext = new ShutdownStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 592, MySqlParser.RULE_shutdownStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6639; + this.match(MySqlParser.KW_SHUTDOWN); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableIndex(): TableIndexContext { + let _localctx: TableIndexContext = new TableIndexContext(this._ctx, this.state); + this.enterRule(_localctx, 594, MySqlParser.RULE_tableIndex); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6641; + this.tableName(); + this.state = 6647; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 6642; + _localctx._indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + _localctx._indexFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6643; + this.match(MySqlParser.LR_BRACKET); + this.state = 6644; + this.indexNames(); + this.state = 6645; + this.match(MySqlParser.RR_BRACKET); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public flushOption(): FlushOptionContext { + let _localctx: FlushOptionContext = new FlushOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 596, MySqlParser.RULE_flushOption); + let _la: number; + try { + this.state = 6681; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 967, this._ctx) ) { + case 1: + _localctx = new SimpleFlushOptionContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 6667; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DES_KEY_FILE: + { + this.state = 6649; + this.match(MySqlParser.KW_DES_KEY_FILE); + } + break; + case MySqlParser.KW_HOSTS: + { + this.state = 6650; + this.match(MySqlParser.KW_HOSTS); + } + break; + case MySqlParser.KW_BINARY: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_SLOW: + { + this.state = 6652; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY || ((((_la - 380)) & ~0x1F) === 0 && ((1 << (_la - 380)) & ((1 << (MySqlParser.KW_ENGINE - 380)) | (1 << (MySqlParser.KW_ERROR - 380)) | (1 << (MySqlParser.KW_GENERAL - 380)))) !== 0) || _la === MySqlParser.KW_RELAY || _la === MySqlParser.KW_SLOW) { + { + this.state = 6651; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINARY || ((((_la - 380)) & ~0x1F) === 0 && ((1 << (_la - 380)) & ((1 << (MySqlParser.KW_ENGINE - 380)) | (1 << (MySqlParser.KW_ERROR - 380)) | (1 << (MySqlParser.KW_GENERAL - 380)))) !== 0) || _la === MySqlParser.KW_RELAY || _la === MySqlParser.KW_SLOW)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 6654; + this.match(MySqlParser.KW_LOGS); + } + break; + case MySqlParser.KW_OPTIMIZER_COSTS: + { + this.state = 6655; + this.match(MySqlParser.KW_OPTIMIZER_COSTS); + } + break; + case MySqlParser.KW_PRIVILEGES: + { + this.state = 6656; + this.match(MySqlParser.KW_PRIVILEGES); + } + break; + case MySqlParser.KW_QUERY: + { + this.state = 6657; + this.match(MySqlParser.KW_QUERY); + this.state = 6658; + this.match(MySqlParser.KW_CACHE); + } + break; + case MySqlParser.KW_STATUS: + { + this.state = 6659; + this.match(MySqlParser.KW_STATUS); + } + break; + case MySqlParser.KW_USER_RESOURCES: + { + this.state = 6660; + this.match(MySqlParser.KW_USER_RESOURCES); + } + break; + case MySqlParser.KW_TABLES: + { + this.state = 6661; + this.match(MySqlParser.KW_TABLES); + this.state = 6665; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 962, this._ctx) ) { + case 1: + { + this.state = 6662; + this.match(MySqlParser.KW_WITH); + this.state = 6663; + this.match(MySqlParser.KW_READ); + this.state = 6664; + this.match(MySqlParser.KW_LOCK); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + + case 2: + _localctx = new ChannelFlushOptionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 6669; + this.match(MySqlParser.KW_RELAY); + this.state = 6670; + this.match(MySqlParser.KW_LOGS); + this.state = 6672; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 6671; + this.channelOption(); + } + } + + } + break; + + case 3: + _localctx = new TableFlushOptionContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 6674; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_TABLE || _la === MySqlParser.KW_TABLES)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6676; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 965, this._ctx) ) { + case 1: + { + this.state = 6675; + this.tableNames(); + } + break; + } + this.state = 6679; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 966, this._ctx) ) { + case 1: + { + this.state = 6678; + this.flushTableOption(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public flushTableOption(): FlushTableOptionContext { + let _localctx: FlushTableOptionContext = new FlushTableOptionContext(this._ctx, this.state); + this.enterRule(_localctx, 598, MySqlParser.RULE_flushTableOption); + try { + this.state = 6688; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_WITH: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6683; + this.match(MySqlParser.KW_WITH); + this.state = 6684; + this.match(MySqlParser.KW_READ); + this.state = 6685; + this.match(MySqlParser.KW_LOCK); + } + break; + case MySqlParser.KW_FOR: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6686; + this.match(MySqlParser.KW_FOR); + this.state = 6687; + this.match(MySqlParser.KW_EXPORT); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public loadedTableIndexes(): LoadedTableIndexesContext { + let _localctx: LoadedTableIndexesContext = new LoadedTableIndexesContext(this._ctx, this.state); + this.enterRule(_localctx, 600, MySqlParser.RULE_loadedTableIndexes); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6690; + this.tableName(); + this.state = 6698; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 6691; + this.match(MySqlParser.KW_PARTITION); + this.state = 6692; + this.match(MySqlParser.LR_BRACKET); + this.state = 6695; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 6693; + this.partitionNames(); + } + break; + case MySqlParser.KW_ALL: + { + this.state = 6694; + this.match(MySqlParser.KW_ALL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 6697; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 6707; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 972, this._ctx) ) { + case 1: + { + this.state = 6701; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY) { + { + this.state = 6700; + _localctx._indexFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INDEX || _la === MySqlParser.KW_KEY)) { + _localctx._indexFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 6703; + this.match(MySqlParser.LR_BRACKET); + this.state = 6704; + this.indexNames(); + this.state = 6705; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + this.state = 6711; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_IGNORE) { + { + this.state = 6709; + this.match(MySqlParser.KW_IGNORE); + this.state = 6710; + this.match(MySqlParser.KW_LEAVES); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public simpleDescribeStatement(): SimpleDescribeStatementContext { + let _localctx: SimpleDescribeStatementContext = new SimpleDescribeStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 602, MySqlParser.RULE_simpleDescribeStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6713; + _localctx._command = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & ((1 << (MySqlParser.KW_DESC - 45)) | (1 << (MySqlParser.KW_DESCRIBE - 45)) | (1 << (MySqlParser.KW_EXPLAIN - 45)))) !== 0))) { + _localctx._command = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6714; + this.tableName(); + this.state = 6717; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 974, this._ctx) ) { + case 1: + { + this.state = 6715; + _localctx._column = this.columnName(); + } + break; + + case 2: + { + this.state = 6716; + _localctx._pattern = this.match(MySqlParser.STRING_LITERAL); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public fullDescribeStatement(): FullDescribeStatementContext { + let _localctx: FullDescribeStatementContext = new FullDescribeStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 604, MySqlParser.RULE_fullDescribeStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6719; + _localctx._command = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & ((1 << (MySqlParser.KW_DESC - 45)) | (1 << (MySqlParser.KW_DESCRIBE - 45)) | (1 << (MySqlParser.KW_EXPLAIN - 45)))) !== 0))) { + _localctx._command = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6725; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_EXTENDED: + { + this.state = 6720; + this.match(MySqlParser.KW_EXTENDED); + } + break; + case MySqlParser.KW_PARTITIONS: + { + this.state = 6721; + this.match(MySqlParser.KW_PARTITIONS); + } + break; + case MySqlParser.KW_FORMAT: + { + this.state = 6722; + this.match(MySqlParser.KW_FORMAT); + this.state = 6723; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6724; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_JSON || _la === MySqlParser.KW_TRADITIONAL || _la === MySqlParser.KW_TREE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_DELETE: + case MySqlParser.KW_FOR: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_UPDATE: + case MySqlParser.LR_BRACKET: + break; + default: + break; + } + this.state = 6727; + this.describeObjectClause(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public analyzeDescribeStatement(): AnalyzeDescribeStatementContext { + let _localctx: AnalyzeDescribeStatementContext = new AnalyzeDescribeStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 606, MySqlParser.RULE_analyzeDescribeStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6729; + _localctx._command = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & ((1 << (MySqlParser.KW_DESC - 45)) | (1 << (MySqlParser.KW_DESCRIBE - 45)) | (1 << (MySqlParser.KW_EXPLAIN - 45)))) !== 0))) { + _localctx._command = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6730; + this.match(MySqlParser.KW_ANALYZE); + this.state = 6734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FORMAT) { + { + this.state = 6731; + this.match(MySqlParser.KW_FORMAT); + this.state = 6732; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6733; + this.match(MySqlParser.KW_TREE); + } + } + + this.state = 6736; + this.selectStatement(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public helpStatement(): HelpStatementContext { + let _localctx: HelpStatementContext = new HelpStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 608, MySqlParser.RULE_helpStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6738; + this.match(MySqlParser.KW_HELP); + this.state = 6739; + this.match(MySqlParser.STRING_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public useStatement(): UseStatementContext { + let _localctx: UseStatementContext = new UseStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 610, MySqlParser.RULE_useStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6741; + this.match(MySqlParser.KW_USE); + this.state = 6742; + this.databaseName(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public signalStatement(): SignalStatementContext { + let _localctx: SignalStatementContext = new SignalStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 612, MySqlParser.RULE_signalStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6744; + this.match(MySqlParser.KW_SIGNAL); + this.state = 6752; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SQLSTATE: + { + { + this.state = 6745; + this.match(MySqlParser.KW_SQLSTATE); + this.state = 6747; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VALUE) { + { + this.state = 6746; + this.match(MySqlParser.KW_VALUE); + } + } + + this.state = 6749; + this.stringLiteral(); + } + } + break; + case MySqlParser.ID: + { + this.state = 6750; + this.match(MySqlParser.ID); + } + break; + case MySqlParser.REVERSE_QUOTE_ID: + { + this.state = 6751; + this.match(MySqlParser.REVERSE_QUOTE_ID); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 6763; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 980, this._ctx) ) { + case 1: + { + this.state = 6754; + this.match(MySqlParser.KW_SET); + this.state = 6755; + this.signalConditionInformation(); + this.state = 6760; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6756; + this.match(MySqlParser.COMMA); + this.state = 6757; + this.signalConditionInformation(); + } + } + this.state = 6762; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public resignalStatement(): ResignalStatementContext { + let _localctx: ResignalStatementContext = new ResignalStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 614, MySqlParser.RULE_resignalStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6765; + this.match(MySqlParser.KW_RESIGNAL); + this.state = 6773; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SQLSTATE: + { + { + this.state = 6766; + this.match(MySqlParser.KW_SQLSTATE); + this.state = 6768; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VALUE) { + { + this.state = 6767; + this.match(MySqlParser.KW_VALUE); + } + } + + this.state = 6770; + this.stringLiteral(); + } + } + break; + case MySqlParser.ID: + { + this.state = 6771; + this.match(MySqlParser.ID); + } + break; + case MySqlParser.REVERSE_QUOTE_ID: + { + this.state = 6772; + this.match(MySqlParser.REVERSE_QUOTE_ID); + } + break; + case MySqlParser.EOF: + case MySqlParser.KW_ALTER: + case MySqlParser.KW_ANALYZE: + case MySqlParser.KW_CALL: + case MySqlParser.KW_CHANGE: + case MySqlParser.KW_CHECK: + case MySqlParser.KW_CREATE: + case MySqlParser.KW_DELETE: + case MySqlParser.KW_DESC: + case MySqlParser.KW_DESCRIBE: + case MySqlParser.KW_DROP: + case MySqlParser.KW_EXPLAIN: + case MySqlParser.KW_GET: + case MySqlParser.KW_GRANT: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_KILL: + case MySqlParser.KW_LOAD: + case MySqlParser.KW_LOCK: + case MySqlParser.KW_OPTIMIZE: + case MySqlParser.KW_PURGE: + case MySqlParser.KW_RELEASE: + case MySqlParser.KW_RENAME: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RESIGNAL: + case MySqlParser.KW_REVOKE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_SET: + case MySqlParser.KW_SHOW: + case MySqlParser.KW_SIGNAL: + case MySqlParser.KW_TABLE: + case MySqlParser.KW_UNLOCK: + case MySqlParser.KW_UPDATE: + case MySqlParser.KW_USE: + case MySqlParser.KW_VALUES: + case MySqlParser.KW_WITH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DO: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HELP: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESTART: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_START: + case MySqlParser.KW_STOP: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_XA: + case MySqlParser.KW_CLONE: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.LR_BRACKET: + case MySqlParser.SEMI: + break; + default: + break; + } + this.state = 6784; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 984, this._ctx) ) { + case 1: + { + this.state = 6775; + this.match(MySqlParser.KW_SET); + this.state = 6776; + this.signalConditionInformation(); + this.state = 6781; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6777; + this.match(MySqlParser.COMMA); + this.state = 6778; + this.signalConditionInformation(); + } + } + this.state = 6783; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public signalConditionInformation(): SignalConditionInformationContext { + let _localctx: SignalConditionInformationContext = new SignalConditionInformationContext(this._ctx, this.state); + this.enterRule(_localctx, 616, MySqlParser.RULE_signalConditionInformation); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6786; + _la = this._input.LA(1); + if (!(((((_la - 332)) & ~0x1F) === 0 && ((1 << (_la - 332)) & ((1 << (MySqlParser.KW_CLASS_ORIGIN - 332)) | (1 << (MySqlParser.KW_COLUMN_NAME - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 332)) | (1 << (MySqlParser.KW_CURSOR_NAME - 332)))) !== 0) || _la === MySqlParser.KW_MESSAGE_TEXT || _la === MySqlParser.KW_MYSQL_ERRNO || _la === MySqlParser.KW_SUBCLASS_ORIGIN || _la === MySqlParser.KW_TABLE_NAME || _la === MySqlParser.KW_CATALOG_NAME || _la === MySqlParser.KW_SCHEMA_NAME)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6787; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6792; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.START_NATIONAL_STRING_LITERAL: + case MySqlParser.STRING_LITERAL: + case MySqlParser.STRING_CHARSET_NAME: + { + this.state = 6788; + this.stringLiteral(); + } + break; + case MySqlParser.DECIMAL_LITERAL: + { + this.state = 6789; + this.match(MySqlParser.DECIMAL_LITERAL); + } + break; + case MySqlParser.LOCAL_ID: + case MySqlParser.GLOBAL_ID: + { + this.state = 6790; + this.mysqlVariable(); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.ID: + { + this.state = 6791; + this.simpleId(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public withStatement(): WithStatementContext { + let _localctx: WithStatementContext = new WithStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 618, MySqlParser.RULE_withStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6794; + this.match(MySqlParser.KW_WITH); + this.state = 6796; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 986, this._ctx) ) { + case 1: + { + this.state = 6795; + this.match(MySqlParser.KW_RECURSIVE); + } + break; + } + this.state = 6798; + this.commonTableExpressions(); + this.state = 6803; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6799; + this.match(MySqlParser.COMMA); + this.state = 6800; + this.commonTableExpressions(); + } + } + this.state = 6805; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableStatement(): TableStatementContext { + let _localctx: TableStatementContext = new TableStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 620, MySqlParser.RULE_tableStatement); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6806; + this.match(MySqlParser.KW_TABLE); + this.state = 6807; + this.tableName(); + this.state = 6809; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 988, this._ctx) ) { + case 1: + { + this.state = 6808; + this.orderByClause(); + } + break; + } + this.state = 6812; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 989, this._ctx) ) { + case 1: + { + this.state = 6811; + this.limitClause(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public diagnosticsStatement(): DiagnosticsStatementContext { + let _localctx: DiagnosticsStatementContext = new DiagnosticsStatementContext(this._ctx, this.state); + this.enterRule(_localctx, 622, MySqlParser.RULE_diagnosticsStatement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6814; + this.match(MySqlParser.KW_GET); + this.state = 6816; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CURRENT || _la === MySqlParser.KW_STACKED) { + { + this.state = 6815; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CURRENT || _la === MySqlParser.KW_STACKED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + this.state = 6818; + this.match(MySqlParser.KW_DIAGNOSTICS); + this.state = 6850; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 994, this._ctx) ) { + case 1: + { + { + this.state = 6819; + this.variableClause(); + this.state = 6820; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6821; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NUMBER || _la === MySqlParser.KW_ROW_COUNT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 6829; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6822; + this.match(MySqlParser.COMMA); + this.state = 6823; + this.variableClause(); + this.state = 6824; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6825; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NUMBER || _la === MySqlParser.KW_ROW_COUNT)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 6831; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + break; + + case 2: + { + { + this.state = 6832; + this.match(MySqlParser.KW_CONDITION); + this.state = 6835; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + { + this.state = 6833; + this.decimalLiteral(); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PERSIST: + case MySqlParser.KW_PERSIST_ONLY: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.AT_SIGN: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + case MySqlParser.LOCAL_ID: + case MySqlParser.GLOBAL_ID: + { + this.state = 6834; + this.variableClause(); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 6837; + this.variableClause(); + this.state = 6838; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6839; + this.diagnosticsConditionInformationName(); + this.state = 6847; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6840; + this.match(MySqlParser.COMMA); + this.state = 6841; + this.variableClause(); + this.state = 6842; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 6843; + this.diagnosticsConditionInformationName(); + } + } + this.state = 6849; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public diagnosticsConditionInformationName(): DiagnosticsConditionInformationNameContext { + let _localctx: DiagnosticsConditionInformationNameContext = new DiagnosticsConditionInformationNameContext(this._ctx, this.state); + this.enterRule(_localctx, 624, MySqlParser.RULE_diagnosticsConditionInformationName); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6852; + _la = this._input.LA(1); + if (!(((((_la - 332)) & ~0x1F) === 0 && ((1 << (_la - 332)) & ((1 << (MySqlParser.KW_CLASS_ORIGIN - 332)) | (1 << (MySqlParser.KW_COLUMN_NAME - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 332)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 332)) | (1 << (MySqlParser.KW_CURSOR_NAME - 332)))) !== 0) || _la === MySqlParser.KW_MESSAGE_TEXT || _la === MySqlParser.KW_MYSQL_ERRNO || _la === MySqlParser.KW_RETURNED_SQLSTATE || _la === MySqlParser.KW_SUBCLASS_ORIGIN || _la === MySqlParser.KW_TABLE_NAME || _la === MySqlParser.KW_CATALOG_NAME || _la === MySqlParser.KW_SCHEMA_NAME)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public describeObjectClause(): DescribeObjectClauseContext { + let _localctx: DescribeObjectClauseContext = new DescribeObjectClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 626, MySqlParser.RULE_describeObjectClause); + try { + this.state = 6864; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DELETE: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_SELECT: + case MySqlParser.KW_UPDATE: + case MySqlParser.LR_BRACKET: + _localctx = new DescribeStatementsContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 6859; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_SELECT: + case MySqlParser.LR_BRACKET: + { + this.state = 6854; + this.selectStatement(); + } + break; + case MySqlParser.KW_DELETE: + { + this.state = 6855; + this.deleteStatement(); + } + break; + case MySqlParser.KW_INSERT: + { + this.state = 6856; + this.insertStatement(); + } + break; + case MySqlParser.KW_REPLACE: + { + this.state = 6857; + this.replaceStatement(); + } + break; + case MySqlParser.KW_UPDATE: + { + this.state = 6858; + this.updateStatement(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case MySqlParser.KW_FOR: + _localctx = new DescribeConnectionContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 6861; + this.match(MySqlParser.KW_FOR); + this.state = 6862; + this.match(MySqlParser.KW_CONNECTION); + this.state = 6863; + (_localctx as DescribeConnectionContext)._connection_id = this.uid(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public databaseNameCreate(): DatabaseNameCreateContext { + let _localctx: DatabaseNameCreateContext = new DatabaseNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 628, MySqlParser.RULE_databaseNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6866; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public databaseName(): DatabaseNameContext { + let _localctx: DatabaseNameContext = new DatabaseNameContext(this._ctx, this.state); + this.enterRule(_localctx, 630, MySqlParser.RULE_databaseName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6868; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionNameCreate(): FunctionNameCreateContext { + let _localctx: FunctionNameCreateContext = new FunctionNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 632, MySqlParser.RULE_functionNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6870; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionName(): FunctionNameContext { + let _localctx: FunctionNameContext = new FunctionNameContext(this._ctx, this.state); + this.enterRule(_localctx, 634, MySqlParser.RULE_functionName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6872; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public viewNameCreate(): ViewNameCreateContext { + let _localctx: ViewNameCreateContext = new ViewNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 636, MySqlParser.RULE_viewNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6874; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public viewName(): ViewNameContext { + let _localctx: ViewNameContext = new ViewNameContext(this._ctx, this.state); + this.enterRule(_localctx, 638, MySqlParser.RULE_viewName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6876; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexNameCreate(): IndexNameCreateContext { + let _localctx: IndexNameCreateContext = new IndexNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 640, MySqlParser.RULE_indexNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6878; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexNames(): IndexNamesContext { + let _localctx: IndexNamesContext = new IndexNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 642, MySqlParser.RULE_indexNames); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6880; + this.indexName(); + this.state = 6885; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6881; + this.match(MySqlParser.COMMA); + this.state = 6882; + this.indexName(); + } + } + this.state = 6887; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexName(): IndexNameContext { + let _localctx: IndexNameContext = new IndexNameContext(this._ctx, this.state); + this.enterRule(_localctx, 644, MySqlParser.RULE_indexName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6888; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public groupNameCreate(): GroupNameCreateContext { + let _localctx: GroupNameCreateContext = new GroupNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 646, MySqlParser.RULE_groupNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6890; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public groupName(): GroupNameContext { + let _localctx: GroupNameContext = new GroupNameContext(this._ctx, this.state); + this.enterRule(_localctx, 648, MySqlParser.RULE_groupName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6892; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableNameCreate(): TableNameCreateContext { + let _localctx: TableNameCreateContext = new TableNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 650, MySqlParser.RULE_tableNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6894; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableNames(): TableNamesContext { + let _localctx: TableNamesContext = new TableNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 652, MySqlParser.RULE_tableNames); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 6896; + this.tableName(); + this.state = 6901; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 998, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 6897; + this.match(MySqlParser.COMMA); + this.state = 6898; + this.tableName(); + } + } + } + this.state = 6903; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 998, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tableName(): TableNameContext { + let _localctx: TableNameContext = new TableNameContext(this._ctx, this.state); + this.enterRule(_localctx, 654, MySqlParser.RULE_tableName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6904; + this.fullId(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userOrRoleNames(): UserOrRoleNamesContext { + let _localctx: UserOrRoleNamesContext = new UserOrRoleNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 656, MySqlParser.RULE_userOrRoleNames); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6906; + this.userOrRoleName(); + this.state = 6911; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 6907; + this.match(MySqlParser.COMMA); + this.state = 6908; + this.userOrRoleName(); + } + } + this.state = 6913; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userOrRoleName(): UserOrRoleNameContext { + let _localctx: UserOrRoleNameContext = new UserOrRoleNameContext(this._ctx, this.state); + this.enterRule(_localctx, 658, MySqlParser.RULE_userOrRoleName); + try { + this.state = 6916; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1000, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6914; + this.userName(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6915; + this.uid(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public columnNameCreate(): ColumnNameCreateContext { + let _localctx: ColumnNameCreateContext = new ColumnNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 660, MySqlParser.RULE_columnNameCreate); + let _la: number; + try { + this.state = 6932; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1005, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6918; + this.uid(); + this.state = 6923; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT || _la === MySqlParser.DOT_ID) { + { + this.state = 6919; + this.dottedId(); + this.state = 6921; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT || _la === MySqlParser.DOT_ID) { + { + this.state = 6920; + this.dottedId(); + } + } + + } + } + + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6926; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1003, this._ctx) ) { + case 1: + { + this.state = 6925; + this.matchWildcard(); + } + break; + } + this.state = 6928; + this.dottedId(); + this.state = 6930; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.DOT || _la === MySqlParser.DOT_ID) { + { + this.state = 6929; + this.dottedId(); + } + } + + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public columnNames(): ColumnNamesContext { + let _localctx: ColumnNamesContext = new ColumnNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 662, MySqlParser.RULE_columnNames); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 6934; + this.columnName(); + this.state = 6939; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1006, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 6935; + this.match(MySqlParser.COMMA); + this.state = 6936; + this.columnName(); + } + } + } + this.state = 6941; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1006, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public columnName(): ColumnNameContext { + let _localctx: ColumnNameContext = new ColumnNameContext(this._ctx, this.state); + this.enterRule(_localctx, 664, MySqlParser.RULE_columnName); + try { + this.state = 6956; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1011, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6942; + this.uid(); + this.state = 6947; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1008, this._ctx) ) { + case 1: + { + this.state = 6943; + this.dottedId(); + this.state = 6945; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1007, this._ctx) ) { + case 1: + { + this.state = 6944; + this.dottedId(); + } + break; + } + } + break; + } + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6950; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1009, this._ctx) ) { + case 1: + { + this.state = 6949; + this.matchWildcard(); + } + break; + } + this.state = 6952; + this.dottedId(); + this.state = 6954; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1010, this._ctx) ) { + case 1: + { + this.state = 6953; + this.dottedId(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tablespaceNameCreate(): TablespaceNameCreateContext { + let _localctx: TablespaceNameCreateContext = new TablespaceNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 666, MySqlParser.RULE_tablespaceNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6958; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public tablespaceName(): TablespaceNameContext { + let _localctx: TablespaceNameContext = new TablespaceNameContext(this._ctx, this.state); + this.enterRule(_localctx, 668, MySqlParser.RULE_tablespaceName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6960; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionNameCreate(): PartitionNameCreateContext { + let _localctx: PartitionNameCreateContext = new PartitionNameCreateContext(this._ctx, this.state); + this.enterRule(_localctx, 670, MySqlParser.RULE_partitionNameCreate); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6962; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionNames(): PartitionNamesContext { + let _localctx: PartitionNamesContext = new PartitionNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 672, MySqlParser.RULE_partitionNames); + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 6964; + this.partitionName(); + this.state = 6969; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1012, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + { + { + this.state = 6965; + this.match(MySqlParser.COMMA); + this.state = 6966; + this.partitionName(); + } + } + } + this.state = 6971; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1012, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionName(): PartitionNameContext { + let _localctx: PartitionNameContext = new PartitionNameContext(this._ctx, this.state); + this.enterRule(_localctx, 674, MySqlParser.RULE_partitionName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6972; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexColumnName(): IndexColumnNameContext { + let _localctx: IndexColumnNameContext = new IndexColumnNameContext(this._ctx, this.state); + this.enterRule(_localctx, 676, MySqlParser.RULE_indexColumnName); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6982; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1014, this._ctx) ) { + case 1: + { + this.state = 6974; + this.uid(); + this.state = 6979; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1013, this._ctx) ) { + case 1: + { + this.state = 6975; + this.match(MySqlParser.LR_BRACKET); + this.state = 6976; + this.decimalLiteral(); + this.state = 6977; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + break; + + case 2: + { + this.state = 6981; + this.expression(0); + } + break; + } + this.state = 6985; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1015, this._ctx) ) { + case 1: + { + this.state = 6984; + _localctx._sortType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ASC || _la === MySqlParser.KW_DESC)) { + _localctx._sortType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userHostPort(): UserHostPortContext { + let _localctx: UserHostPortContext = new UserHostPortContext(this._ctx, this.state); + this.enterRule(_localctx, 678, MySqlParser.RULE_userHostPort); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6987; + this.userAtHost(); + this.state = 6988; + this.match(MySqlParser.COLON_SYMB); + this.state = 6989; + this.decimalLiteral(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userAtHost(): UserAtHostContext { + let _localctx: UserAtHostContext = new UserAtHostContext(this._ctx, this.state); + this.enterRule(_localctx, 680, MySqlParser.RULE_userAtHost); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 6991; + this.simpleUserName(); + this.state = 6992; + this.match(MySqlParser.HOST_IP_ADDRESS); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public simpleUserName(): SimpleUserNameContext { + let _localctx: SimpleUserNameContext = new SimpleUserNameContext(this._ctx, this.state); + this.enterRule(_localctx, 682, MySqlParser.RULE_simpleUserName); + try { + this.state = 6998; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1016, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 6994; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 6995; + this.match(MySqlParser.ID); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 6996; + this.match(MySqlParser.KW_ADMIN); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 6997; + this.keywordsCanBeId(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public hostName(): HostNameContext { + let _localctx: HostNameContext = new HostNameContext(this._ctx, this.state); + this.enterRule(_localctx, 684, MySqlParser.RULE_hostName); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7000; + _la = this._input.LA(1); + if (!(((((_la - 870)) & ~0x1F) === 0 && ((1 << (_la - 870)) & ((1 << (MySqlParser.AT_SIGN - 870)) | (1 << (MySqlParser.HOST_IP_ADDRESS - 870)) | (1 << (MySqlParser.LOCAL_ID - 870)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userName(): UserNameContext { + let _localctx: UserNameContext = new UserNameContext(this._ctx, this.state); + this.enterRule(_localctx, 686, MySqlParser.RULE_userName); + let _la: number; + try { + this.state = 7007; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1018, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7002; + this.simpleUserName(); + this.state = 7004; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (((((_la - 870)) & ~0x1F) === 0 && ((1 << (_la - 870)) & ((1 << (MySqlParser.AT_SIGN - 870)) | (1 << (MySqlParser.HOST_IP_ADDRESS - 870)) | (1 << (MySqlParser.LOCAL_ID - 870)))) !== 0)) { + { + this.state = 7003; + this.hostName(); + } + } + + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7006; + this.currentUserExpression(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public mysqlVariable(): MysqlVariableContext { + let _localctx: MysqlVariableContext = new MysqlVariableContext(this._ctx, this.state); + this.enterRule(_localctx, 688, MySqlParser.RULE_mysqlVariable); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7009; + _la = this._input.LA(1); + if (!(_la === MySqlParser.LOCAL_ID || _la === MySqlParser.GLOBAL_ID)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public charsetName(): CharsetNameContext { + let _localctx: CharsetNameContext = new CharsetNameContext(this._ctx, this.state); + this.enterRule(_localctx, 690, MySqlParser.RULE_charsetName); + try { + this.state = 7015; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1019, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7011; + this.match(MySqlParser.KW_BINARY); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7012; + this.charsetNameBase(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7013; + this.match(MySqlParser.STRING_LITERAL); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7014; + this.match(MySqlParser.CHARSET_REVERSE_QOUTE_STRING); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public collationName(): CollationNameContext { + let _localctx: CollationNameContext = new CollationNameContext(this._ctx, this.state); + this.enterRule(_localctx, 692, MySqlParser.RULE_collationName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7017; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public engineName(): EngineNameContext { + let _localctx: EngineNameContext = new EngineNameContext(this._ctx, this.state); + this.enterRule(_localctx, 694, MySqlParser.RULE_engineName); + try { + this.state = 7022; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7019; + this.engineNameBase(); + } + break; + case MySqlParser.ID: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7020; + this.match(MySqlParser.ID); + } + break; + case MySqlParser.STRING_LITERAL: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7021; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public engineNameBase(): EngineNameBaseContext { + let _localctx: EngineNameBaseContext = new EngineNameBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 696, MySqlParser.RULE_engineNameBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7024; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CONNECT || ((((_la - 797)) & ~0x1F) === 0 && ((1 << (_la - 797)) & ((1 << (MySqlParser.KW_ARCHIVE - 797)) | (1 << (MySqlParser.KW_BLACKHOLE - 797)) | (1 << (MySqlParser.KW_CSV - 797)) | (1 << (MySqlParser.KW_FEDERATED - 797)) | (1 << (MySqlParser.KW_INNODB - 797)) | (1 << (MySqlParser.KW_MEMORY - 797)) | (1 << (MySqlParser.KW_MRG_MYISAM - 797)) | (1 << (MySqlParser.KW_MYISAM - 797)) | (1 << (MySqlParser.KW_NDB - 797)) | (1 << (MySqlParser.KW_NDBCLUSTER - 797)) | (1 << (MySqlParser.KW_PERFORMANCE_SCHEMA - 797)) | (1 << (MySqlParser.KW_TOKUDB - 797)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public uuidSet(): UuidSetContext { + let _localctx: UuidSetContext = new UuidSetContext(this._ctx, this.state); + this.enterRule(_localctx, 698, MySqlParser.RULE_uuidSet); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7026; + this.decimalLiteral(); + this.state = 7027; + this.match(MySqlParser.MINUS); + this.state = 7028; + this.decimalLiteral(); + this.state = 7029; + this.match(MySqlParser.MINUS); + this.state = 7030; + this.decimalLiteral(); + this.state = 7031; + this.match(MySqlParser.MINUS); + this.state = 7032; + this.decimalLiteral(); + this.state = 7033; + this.match(MySqlParser.MINUS); + this.state = 7034; + this.decimalLiteral(); + this.state = 7040; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 7035; + this.match(MySqlParser.COLON_SYMB); + this.state = 7036; + this.decimalLiteral(); + this.state = 7037; + this.match(MySqlParser.MINUS); + this.state = 7038; + this.decimalLiteral(); + } + } + this.state = 7042; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.COLON_SYMB); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xid(): XidContext { + let _localctx: XidContext = new XidContext(this._ctx, this.state); + this.enterRule(_localctx, 700, MySqlParser.RULE_xid); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7044; + _localctx._globalTableUid = this.xuidStringId(); + this.state = 7051; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 7045; + this.match(MySqlParser.COMMA); + this.state = 7046; + _localctx._qualifier = this.xuidStringId(); + this.state = 7049; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 7047; + this.match(MySqlParser.COMMA); + this.state = 7048; + _localctx._idFormat = this.decimalLiteral(); + } + } + + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public xuidStringId(): XuidStringIdContext { + let _localctx: XuidStringIdContext = new XuidStringIdContext(this._ctx, this.state); + this.enterRule(_localctx, 702, MySqlParser.RULE_xuidStringId); + let _la: number; + try { + this.state = 7060; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7053; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.BIT_STRING: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7054; + this.match(MySqlParser.BIT_STRING); + } + break; + case MySqlParser.HEXADECIMAL_LITERAL: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7056; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 7055; + this.match(MySqlParser.HEXADECIMAL_LITERAL); + } + } + this.state = 7058; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.HEXADECIMAL_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public fullId(): FullIdContext { + let _localctx: FullIdContext = new FullIdContext(this._ctx, this.state); + this.enterRule(_localctx, 704, MySqlParser.RULE_fullId); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7062; + this.uid(); + this.state = 7064; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1026, this._ctx) ) { + case 1: + { + this.state = 7063; + this.dottedId(); + } + break; + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public uidList(): UidListContext { + let _localctx: UidListContext = new UidListContext(this._ctx, this.state); + this.enterRule(_localctx, 706, MySqlParser.RULE_uidList); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7066; + this.uid(); + this.state = 7071; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7067; + this.match(MySqlParser.COMMA); + this.state = 7068; + this.uid(); + } + } + this.state = 7073; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public uid(): UidContext { + let _localctx: UidContext = new UidContext(this._ctx, this.state); + this.enterRule(_localctx, 708, MySqlParser.RULE_uid); + try { + this.state = 7077; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.ID: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7074; + this.simpleId(); + } + break; + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7075; + this.match(MySqlParser.CHARSET_REVERSE_QOUTE_STRING); + } + break; + case MySqlParser.STRING_LITERAL: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7076; + this.match(MySqlParser.STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public simpleId(): SimpleIdContext { + let _localctx: SimpleIdContext = new SimpleIdContext(this._ctx, this.state); + this.enterRule(_localctx, 710, MySqlParser.RULE_simpleId); + try { + this.state = 7088; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1029, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7079; + this.match(MySqlParser.ID); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7080; + this.charsetNameBase(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7081; + this.transactionLevelBase(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7082; + this.engineNameBase(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 7083; + this.privilegesBase(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 7084; + this.intervalTypeBase(); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 7085; + this.dataTypeBase(); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 7086; + this.keywordsCanBeId(); + } + break; + + case 9: + this.enterOuterAlt(_localctx, 9); + { + this.state = 7087; + this.scalarFunctionName(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dottedId(): DottedIdContext { + let _localctx: DottedIdContext = new DottedIdContext(this._ctx, this.state); + this.enterRule(_localctx, 712, MySqlParser.RULE_dottedId); + try { + this.state = 7093; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.DOT_ID: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7090; + this.match(MySqlParser.DOT_ID); + } + break; + case MySqlParser.DOT: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7091; + this.match(MySqlParser.DOT); + this.state = 7092; + this.uid(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public decimalLiteral(): DecimalLiteralContext { + let _localctx: DecimalLiteralContext = new DecimalLiteralContext(this._ctx, this.state); + this.enterRule(_localctx, 714, MySqlParser.RULE_decimalLiteral); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7095; + _la = this._input.LA(1); + if (!(((((_la - 871)) & ~0x1F) === 0 && ((1 << (_la - 871)) & ((1 << (MySqlParser.ZERO_DECIMAL - 871)) | (1 << (MySqlParser.ONE_DECIMAL - 871)) | (1 << (MySqlParser.TWO_DECIMAL - 871)) | (1 << (MySqlParser.THREE_DECIMAL - 871)) | (1 << (MySqlParser.DECIMAL_LITERAL - 871)) | (1 << (MySqlParser.REAL_LITERAL - 871)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public fileSizeLiteral(): FileSizeLiteralContext { + let _localctx: FileSizeLiteralContext = new FileSizeLiteralContext(this._ctx, this.state); + this.enterRule(_localctx, 716, MySqlParser.RULE_fileSizeLiteral); + try { + this.state = 7099; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.FILESIZE_LITERAL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7097; + this.match(MySqlParser.FILESIZE_LITERAL); + } + break; + case MySqlParser.ZERO_DECIMAL: + case MySqlParser.ONE_DECIMAL: + case MySqlParser.TWO_DECIMAL: + case MySqlParser.THREE_DECIMAL: + case MySqlParser.DECIMAL_LITERAL: + case MySqlParser.REAL_LITERAL: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7098; + this.decimalLiteral(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public stringLiteral(): StringLiteralContext { + let _localctx: StringLiteralContext = new StringLiteralContext(this._ctx, this.state); + this.enterRule(_localctx, 718, MySqlParser.RULE_stringLiteral); + let _la: number; + try { + let _alt: number; + this.state = 7124; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1038, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7106; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + case MySqlParser.STRING_CHARSET_NAME: + { + this.state = 7102; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.STRING_CHARSET_NAME) { + { + this.state = 7101; + this.match(MySqlParser.STRING_CHARSET_NAME); + } + } + + this.state = 7104; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.START_NATIONAL_STRING_LITERAL: + { + this.state = 7105; + this.match(MySqlParser.START_NATIONAL_STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 7109; + this._errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + this.state = 7108; + this.match(MySqlParser.STRING_LITERAL); + } + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 7111; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1034, this._ctx); + } while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7118; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.STRING_LITERAL: + case MySqlParser.STRING_CHARSET_NAME: + { + this.state = 7114; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.STRING_CHARSET_NAME) { + { + this.state = 7113; + this.match(MySqlParser.STRING_CHARSET_NAME); + } + } + + this.state = 7116; + this.match(MySqlParser.STRING_LITERAL); + } + break; + case MySqlParser.START_NATIONAL_STRING_LITERAL: + { + this.state = 7117; + this.match(MySqlParser.START_NATIONAL_STRING_LITERAL); + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 7122; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1037, this._ctx) ) { + case 1: + { + this.state = 7120; + this.match(MySqlParser.KW_COLLATE); + this.state = 7121; + this.collationName(); + } + break; + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public booleanLiteral(): BooleanLiteralContext { + let _localctx: BooleanLiteralContext = new BooleanLiteralContext(this._ctx, this.state); + this.enterRule(_localctx, 720, MySqlParser.RULE_booleanLiteral); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7126; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FALSE || _la === MySqlParser.KW_TRUE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public hexadecimalLiteral(): HexadecimalLiteralContext { + let _localctx: HexadecimalLiteralContext = new HexadecimalLiteralContext(this._ctx, this.state); + this.enterRule(_localctx, 722, MySqlParser.RULE_hexadecimalLiteral); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7129; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.STRING_CHARSET_NAME) { + { + this.state = 7128; + this.match(MySqlParser.STRING_CHARSET_NAME); + } + } + + this.state = 7131; + this.match(MySqlParser.HEXADECIMAL_LITERAL); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public nullNotnull(): NullNotnullContext { + let _localctx: NullNotnullContext = new NullNotnullContext(this._ctx, this.state); + this.enterRule(_localctx, 724, MySqlParser.RULE_nullNotnull); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7134; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7133; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7136; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.NULL_SPEC_LITERAL)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public constant(): ConstantContext { + let _localctx: ConstantContext = new ConstantContext(this._ctx, this.state); + this.enterRule(_localctx, 726, MySqlParser.RULE_constant); + let _la: number; + try { + this.state = 7150; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1042, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7138; + this.stringLiteral(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7139; + this.decimalLiteral(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7140; + this.match(MySqlParser.MINUS); + this.state = 7141; + this.decimalLiteral(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7142; + this.hexadecimalLiteral(); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 7143; + this.booleanLiteral(); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 7144; + this.match(MySqlParser.REAL_LITERAL); + } + break; + + case 7: + this.enterOuterAlt(_localctx, 7); + { + this.state = 7145; + this.match(MySqlParser.BIT_STRING); + } + break; + + case 8: + this.enterOuterAlt(_localctx, 8); + { + this.state = 7147; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7146; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7149; + _localctx._nullLiteral = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.NULL_SPEC_LITERAL)) { + _localctx._nullLiteral = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dataType(): DataTypeContext { + let _localctx: DataTypeContext = new DataTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 728, MySqlParser.RULE_dataType); + let _la: number; + try { + this.state = 7278; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1071, this._ctx) ) { + case 1: + _localctx = new StringDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 7152; + (_localctx as StringDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHARACTER || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & ((1 << (MySqlParser.KW_CHAR - 224)) | (1 << (MySqlParser.KW_VARCHAR - 224)) | (1 << (MySqlParser.KW_NVARCHAR - 224)) | (1 << (MySqlParser.KW_LONG - 224)) | (1 << (MySqlParser.KW_TINYTEXT - 224)) | (1 << (MySqlParser.KW_TEXT - 224)) | (1 << (MySqlParser.KW_MEDIUMTEXT - 224)) | (1 << (MySqlParser.KW_LONGTEXT - 224)))) !== 0) || _la === MySqlParser.KW_NCHAR)) { + (_localctx as StringDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7154; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VARYING) { + { + this.state = 7153; + this.match(MySqlParser.KW_VARYING); + } + } + + this.state = 7157; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1044, this._ctx) ) { + case 1: + { + this.state = 7156; + this.lengthOneDimension(); + } + break; + } + this.state = 7160; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1045, this._ctx) ) { + case 1: + { + this.state = 7159; + this.match(MySqlParser.KW_BINARY); + } + break; + } + this.state = 7165; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_CHARSET) { + { + this.state = 7162; + this.charSet(); + this.state = 7163; + this.charsetName(); + } + } + + this.state = 7170; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1047, this._ctx) ) { + case 1: + { + this.state = 7167; + this.match(MySqlParser.KW_COLLATE); + this.state = 7168; + this.collationName(); + } + break; + + case 2: + { + this.state = 7169; + this.match(MySqlParser.KW_BINARY); + } + break; + } + } + break; + + case 2: + _localctx = new NationalVaryingStringDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 7172; + this.match(MySqlParser.KW_NATIONAL); + this.state = 7173; + (_localctx as NationalVaryingStringDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR)) { + (_localctx as NationalVaryingStringDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7174; + this.match(MySqlParser.KW_VARYING); + this.state = 7176; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1048, this._ctx) ) { + case 1: + { + this.state = 7175; + this.lengthOneDimension(); + } + break; + } + this.state = 7179; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY) { + { + this.state = 7178; + this.match(MySqlParser.KW_BINARY); + } + } + + } + break; + + case 3: + _localctx = new NationalStringDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 7181; + this.match(MySqlParser.KW_NATIONAL); + this.state = 7182; + (_localctx as NationalStringDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_VARCHAR)) { + (_localctx as NationalStringDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7184; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1050, this._ctx) ) { + case 1: + { + this.state = 7183; + this.lengthOneDimension(); + } + break; + } + this.state = 7187; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY) { + { + this.state = 7186; + this.match(MySqlParser.KW_BINARY); + } + } + + } + break; + + case 4: + _localctx = new NationalStringDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 7189; + this.match(MySqlParser.KW_NCHAR); + this.state = 7190; + (_localctx as NationalStringDataTypeContext)._typeName = this.match(MySqlParser.KW_VARCHAR); + this.state = 7192; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1052, this._ctx) ) { + case 1: + { + this.state = 7191; + this.lengthOneDimension(); + } + break; + } + this.state = 7195; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY) { + { + this.state = 7194; + this.match(MySqlParser.KW_BINARY); + } + } + + } + break; + + case 5: + _localctx = new DimensionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 7197; + (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 198)) & ~0x1F) === 0 && ((1 << (_la - 198)) & ((1 << (MySqlParser.KW_TINYINT - 198)) | (1 << (MySqlParser.KW_SMALLINT - 198)) | (1 << (MySqlParser.KW_MEDIUMINT - 198)) | (1 << (MySqlParser.KW_MIDDLEINT - 198)) | (1 << (MySqlParser.KW_INT - 198)) | (1 << (MySqlParser.KW_INT1 - 198)) | (1 << (MySqlParser.KW_INT2 - 198)) | (1 << (MySqlParser.KW_INT3 - 198)) | (1 << (MySqlParser.KW_INT4 - 198)) | (1 << (MySqlParser.KW_INT8 - 198)) | (1 << (MySqlParser.KW_INTEGER - 198)) | (1 << (MySqlParser.KW_BIGINT - 198)))) !== 0))) { + (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7199; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1054, this._ctx) ) { + case 1: + { + this.state = 7198; + this.lengthOneDimension(); + } + break; + } + this.state = 7204; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED) { + { + { + this.state = 7201; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 7206; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 6: + _localctx = new DimensionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 7207; + (_localctx as DimensionDataTypeContext)._typeName = this.match(MySqlParser.KW_REAL); + this.state = 7209; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1056, this._ctx) ) { + case 1: + { + this.state = 7208; + this.lengthTwoDimension(); + } + break; + } + this.state = 7214; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED) { + { + { + this.state = 7211; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 7216; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 7: + _localctx = new DimensionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 7217; + (_localctx as DimensionDataTypeContext)._typeName = this.match(MySqlParser.KW_DOUBLE); + this.state = 7219; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PRECISION) { + { + this.state = 7218; + this.match(MySqlParser.KW_PRECISION); + } + } + + this.state = 7222; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1059, this._ctx) ) { + case 1: + { + this.state = 7221; + this.lengthTwoDimension(); + } + break; + } + this.state = 7227; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED) { + { + { + this.state = 7224; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 7229; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 8: + _localctx = new DimensionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 7230; + (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 213)) & ~0x1F) === 0 && ((1 << (_la - 213)) & ((1 << (MySqlParser.KW_FLOAT - 213)) | (1 << (MySqlParser.KW_FLOAT4 - 213)) | (1 << (MySqlParser.KW_FLOAT8 - 213)) | (1 << (MySqlParser.KW_DECIMAL - 213)) | (1 << (MySqlParser.KW_DEC - 213)) | (1 << (MySqlParser.KW_NUMERIC - 213)))) !== 0) || _la === MySqlParser.KW_FIXED)) { + (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7232; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1061, this._ctx) ) { + case 1: + { + this.state = 7231; + this.lengthTwoOptionalDimension(); + } + break; + } + this.state = 7237; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED) { + { + { + this.state = 7234; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_ZEROFILL || _la === MySqlParser.KW_SIGNED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + this.state = 7239; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 9: + _localctx = new SimpleDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 7240; + (_localctx as SimpleDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TINYBLOB - 219)) | (1 << (MySqlParser.KW_MEDIUMBLOB - 219)) | (1 << (MySqlParser.KW_LONGBLOB - 219)) | (1 << (MySqlParser.KW_SERIAL - 219)))) !== 0) || _la === MySqlParser.KW_BOOL || _la === MySqlParser.KW_BOOLEAN)) { + (_localctx as SimpleDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 10: + _localctx = new DimensionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 7241; + (_localctx as DimensionDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 220)) & ~0x1F) === 0 && ((1 << (_la - 220)) & ((1 << (MySqlParser.KW_TIME - 220)) | (1 << (MySqlParser.KW_TIMESTAMP - 220)) | (1 << (MySqlParser.KW_DATETIME - 220)) | (1 << (MySqlParser.KW_YEAR - 220)) | (1 << (MySqlParser.KW_BINARY - 220)) | (1 << (MySqlParser.KW_VARBINARY - 220)) | (1 << (MySqlParser.KW_BLOB - 220)))) !== 0) || _la === MySqlParser.KW_BIT)) { + (_localctx as DimensionDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7243; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1063, this._ctx) ) { + case 1: + { + this.state = 7242; + this.lengthOneDimension(); + } + break; + } + } + break; + + case 11: + _localctx = new CollectionDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 7245; + (_localctx as CollectionDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SET || _la === MySqlParser.KW_ENUM)) { + (_localctx as CollectionDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7246; + this.collectionOptions(); + this.state = 7248; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY) { + { + this.state = 7247; + this.match(MySqlParser.KW_BINARY); + } + } + + this.state = 7253; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_CHARSET) { + { + this.state = 7250; + this.charSet(); + this.state = 7251; + this.charsetName(); + } + } + + } + break; + + case 12: + _localctx = new SpatialDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 7255; + (_localctx as SpatialDataTypeContext)._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_JSON || ((((_la - 813)) & ~0x1F) === 0 && ((1 << (_la - 813)) & ((1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 813)) | (1 << (MySqlParser.KW_GEOMCOLLECTION - 813)) | (1 << (MySqlParser.KW_GEOMETRY - 813)) | (1 << (MySqlParser.KW_LINESTRING - 813)) | (1 << (MySqlParser.KW_MULTILINESTRING - 813)) | (1 << (MySqlParser.KW_MULTIPOINT - 813)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 813)) | (1 << (MySqlParser.KW_POINT - 813)) | (1 << (MySqlParser.KW_POLYGON - 813)))) !== 0))) { + (_localctx as SpatialDataTypeContext)._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7258; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SRID) { + { + this.state = 7256; + this.match(MySqlParser.KW_SRID); + this.state = 7257; + this.decimalLiteral(); + } + } + + } + break; + + case 13: + _localctx = new LongVarcharDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 7260; + (_localctx as LongVarcharDataTypeContext)._typeName = this.match(MySqlParser.KW_LONG); + this.state = 7262; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_VARCHAR) { + { + this.state = 7261; + this.match(MySqlParser.KW_VARCHAR); + } + } + + this.state = 7265; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_BINARY) { + { + this.state = 7264; + this.match(MySqlParser.KW_BINARY); + } + } + + this.state = 7270; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_CHARSET) { + { + this.state = 7267; + this.charSet(); + this.state = 7268; + this.charsetName(); + } + } + + this.state = 7274; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1070, this._ctx) ) { + case 1: + { + this.state = 7272; + this.match(MySqlParser.KW_COLLATE); + this.state = 7273; + this.collationName(); + } + break; + } + } + break; + + case 14: + _localctx = new LongVarbinaryDataTypeContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 7276; + this.match(MySqlParser.KW_LONG); + this.state = 7277; + this.match(MySqlParser.KW_VARBINARY); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public collectionOptions(): CollectionOptionsContext { + let _localctx: CollectionOptionsContext = new CollectionOptionsContext(this._ctx, this.state); + this.enterRule(_localctx, 730, MySqlParser.RULE_collectionOptions); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7280; + this.match(MySqlParser.LR_BRACKET); + this.state = 7281; + this.match(MySqlParser.STRING_LITERAL); + this.state = 7286; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7282; + this.match(MySqlParser.COMMA); + this.state = 7283; + this.match(MySqlParser.STRING_LITERAL); + } + } + this.state = 7288; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7289; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public convertedDataType(): ConvertedDataTypeContext { + let _localctx: ConvertedDataTypeContext = new ConvertedDataTypeContext(this._ctx, this.state); + this.enterRule(_localctx, 732, MySqlParser.RULE_convertedDataType); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7313; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_BINARY: + case MySqlParser.KW_NCHAR: + { + this.state = 7291; + _localctx._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINARY || _la === MySqlParser.KW_NCHAR)) { + _localctx._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7293; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 7292; + this.lengthOneDimension(); + } + } + + } + break; + case MySqlParser.KW_CHAR: + { + this.state = 7295; + _localctx._typeName = this.match(MySqlParser.KW_CHAR); + this.state = 7297; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 7296; + this.lengthOneDimension(); + } + } + + this.state = 7302; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_CHARACTER || _la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_CHARSET) { + { + this.state = 7299; + this.charSet(); + this.state = 7300; + this.charsetName(); + } + } + + } + break; + case MySqlParser.KW_INT: + case MySqlParser.KW_INTEGER: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_JSON: + { + this.state = 7304; + _localctx._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 202)) & ~0x1F) === 0 && ((1 << (_la - 202)) & ((1 << (MySqlParser.KW_INT - 202)) | (1 << (MySqlParser.KW_INTEGER - 202)) | (1 << (MySqlParser.KW_DATE - 202)) | (1 << (MySqlParser.KW_TIME - 202)) | (1 << (MySqlParser.KW_DATETIME - 202)))) !== 0) || _la === MySqlParser.KW_JSON)) { + _localctx._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + case MySqlParser.KW_DECIMAL: + case MySqlParser.KW_DEC: + { + this.state = 7305; + _localctx._typeName = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DECIMAL || _la === MySqlParser.KW_DEC)) { + _localctx._typeName = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7307; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.LR_BRACKET) { + { + this.state = 7306; + this.lengthTwoOptionalDimension(); + } + } + + } + break; + case MySqlParser.KW_UNSIGNED: + case MySqlParser.KW_SIGNED: + { + this.state = 7309; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_UNSIGNED || _la === MySqlParser.KW_SIGNED)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7311; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_INT || _la === MySqlParser.KW_INTEGER) { + { + this.state = 7310; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_INT || _la === MySqlParser.KW_INTEGER)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + break; + default: + throw new NoViableAltException(this); + } + this.state = 7316; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ARRAY) { + { + this.state = 7315; + this.match(MySqlParser.KW_ARRAY); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lengthOneDimension(): LengthOneDimensionContext { + let _localctx: LengthOneDimensionContext = new LengthOneDimensionContext(this._ctx, this.state); + this.enterRule(_localctx, 734, MySqlParser.RULE_lengthOneDimension); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7318; + this.match(MySqlParser.LR_BRACKET); + this.state = 7319; + this.decimalLiteral(); + this.state = 7320; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lengthTwoDimension(): LengthTwoDimensionContext { + let _localctx: LengthTwoDimensionContext = new LengthTwoDimensionContext(this._ctx, this.state); + this.enterRule(_localctx, 736, MySqlParser.RULE_lengthTwoDimension); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7322; + this.match(MySqlParser.LR_BRACKET); + this.state = 7323; + this.decimalLiteral(); + this.state = 7324; + this.match(MySqlParser.COMMA); + this.state = 7325; + this.decimalLiteral(); + this.state = 7326; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public lengthTwoOptionalDimension(): LengthTwoOptionalDimensionContext { + let _localctx: LengthTwoOptionalDimensionContext = new LengthTwoOptionalDimensionContext(this._ctx, this.state); + this.enterRule(_localctx, 738, MySqlParser.RULE_lengthTwoOptionalDimension); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7328; + this.match(MySqlParser.LR_BRACKET); + this.state = 7329; + this.decimalLiteral(); + this.state = 7332; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 7330; + this.match(MySqlParser.COMMA); + this.state = 7331; + this.decimalLiteral(); + } + } + + this.state = 7334; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public indexColumnNames(): IndexColumnNamesContext { + let _localctx: IndexColumnNamesContext = new IndexColumnNamesContext(this._ctx, this.state); + this.enterRule(_localctx, 740, MySqlParser.RULE_indexColumnNames); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7336; + this.match(MySqlParser.LR_BRACKET); + this.state = 7337; + this.indexColumnName(); + this.state = 7342; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7338; + this.match(MySqlParser.COMMA); + this.state = 7339; + this.indexColumnName(); + } + } + this.state = 7344; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7345; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public expressions(): ExpressionsContext { + let _localctx: ExpressionsContext = new ExpressionsContext(this._ctx, this.state); + this.enterRule(_localctx, 742, MySqlParser.RULE_expressions); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7347; + this.expression(0); + this.state = 7352; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7348; + this.match(MySqlParser.COMMA); + this.state = 7349; + this.expression(0); + } + } + this.state = 7354; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public valuesOrValueList(): ValuesOrValueListContext { + let _localctx: ValuesOrValueListContext = new ValuesOrValueListContext(this._ctx, this.state); + this.enterRule(_localctx, 744, MySqlParser.RULE_valuesOrValueList); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7355; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_VALUES || _la === MySqlParser.KW_VALUE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7356; + this.expressionsWithDefaults(); + this.state = 7361; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7357; + this.match(MySqlParser.COMMA); + this.state = 7358; + this.expressionsWithDefaults(); + } + } + this.state = 7363; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public expressionsWithDefaults(): ExpressionsWithDefaultsContext { + let _localctx: ExpressionsWithDefaultsContext = new ExpressionsWithDefaultsContext(this._ctx, this.state); + this.enterRule(_localctx, 746, MySqlParser.RULE_expressionsWithDefaults); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7364; + this.match(MySqlParser.LR_BRACKET); + this.state = 7365; + this.expressionOrDefault(); + this.state = 7370; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7366; + this.match(MySqlParser.COMMA); + this.state = 7367; + this.expressionOrDefault(); + } + } + this.state = 7372; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7373; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public expressionOrDefault(): ExpressionOrDefaultContext { + let _localctx: ExpressionOrDefaultContext = new ExpressionOrDefaultContext(this._ctx, this.state); + this.enterRule(_localctx, 748, MySqlParser.RULE_expressionOrDefault); + try { + this.state = 7377; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1085, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7375; + this.expression(0); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7376; + this.match(MySqlParser.KW_DEFAULT); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public constants(): ConstantsContext { + let _localctx: ConstantsContext = new ConstantsContext(this._ctx, this.state); + this.enterRule(_localctx, 750, MySqlParser.RULE_constants); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7379; + this.constant(); + this.state = 7384; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7380; + this.match(MySqlParser.COMMA); + this.state = 7381; + this.constant(); + } + } + this.state = 7386; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public simpleStrings(): SimpleStringsContext { + let _localctx: SimpleStringsContext = new SimpleStringsContext(this._ctx, this.state); + this.enterRule(_localctx, 752, MySqlParser.RULE_simpleStrings); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7387; + this.match(MySqlParser.STRING_LITERAL); + this.state = 7392; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7388; + this.match(MySqlParser.COMMA); + this.state = 7389; + this.match(MySqlParser.STRING_LITERAL); + } + } + this.state = 7394; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public userVariables(): UserVariablesContext { + let _localctx: UserVariablesContext = new UserVariablesContext(this._ctx, this.state); + this.enterRule(_localctx, 754, MySqlParser.RULE_userVariables); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7395; + this.match(MySqlParser.LOCAL_ID); + this.state = 7400; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7396; + this.match(MySqlParser.COMMA); + this.state = 7397; + this.match(MySqlParser.LOCAL_ID); + } + } + this.state = 7402; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public defaultValue(): DefaultValueContext { + let _localctx: DefaultValueContext = new DefaultValueContext(this._ctx, this.state); + this.enterRule(_localctx, 756, MySqlParser.RULE_defaultValue); + try { + this.state = 7429; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1091, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7403; + this.match(MySqlParser.KW_NULL_LITERAL); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7404; + this.match(MySqlParser.KW_CAST); + this.state = 7405; + this.match(MySqlParser.LR_BRACKET); + this.state = 7406; + this.expression(0); + this.state = 7407; + this.match(MySqlParser.KW_AS); + this.state = 7408; + this.convertedDataType(); + this.state = 7409; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7412; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1089, this._ctx) ) { + case 1: + { + this.state = 7411; + this.unaryOperator(); + } + break; + } + this.state = 7414; + this.constant(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7415; + this.currentTimestamp(); + this.state = 7419; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1090, this._ctx) ) { + case 1: + { + this.state = 7416; + this.match(MySqlParser.KW_ON); + this.state = 7417; + this.match(MySqlParser.KW_UPDATE); + this.state = 7418; + this.currentTimestamp(); + } + break; + } + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 7421; + this.match(MySqlParser.LR_BRACKET); + this.state = 7422; + this.expression(0); + this.state = 7423; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 6: + this.enterOuterAlt(_localctx, 6); + { + this.state = 7425; + this.match(MySqlParser.LR_BRACKET); + this.state = 7426; + this.fullId(); + this.state = 7427; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public currentTimestamp(): CurrentTimestampContext { + let _localctx: CurrentTimestampContext = new CurrentTimestampContext(this._ctx, this.state); + this.enterRule(_localctx, 758, MySqlParser.RULE_currentTimestamp); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7445; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_LOCALTIMESTAMP: + { + this.state = 7431; + _la = this._input.LA(1); + if (!(((((_la - 287)) & ~0x1F) === 0 && ((1 << (_la - 287)) & ((1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 287)) | (1 << (MySqlParser.KW_LOCALTIME - 287)) | (1 << (MySqlParser.KW_LOCALTIMESTAMP - 287)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7437; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1093, this._ctx) ) { + case 1: + { + this.state = 7432; + this.match(MySqlParser.LR_BRACKET); + this.state = 7434; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (((((_la - 871)) & ~0x1F) === 0 && ((1 << (_la - 871)) & ((1 << (MySqlParser.ZERO_DECIMAL - 871)) | (1 << (MySqlParser.ONE_DECIMAL - 871)) | (1 << (MySqlParser.TWO_DECIMAL - 871)) | (1 << (MySqlParser.THREE_DECIMAL - 871)) | (1 << (MySqlParser.DECIMAL_LITERAL - 871)) | (1 << (MySqlParser.REAL_LITERAL - 871)))) !== 0)) { + { + this.state = 7433; + this.decimalLiteral(); + } + } + + this.state = 7436; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + break; + case MySqlParser.KW_NOW: + { + this.state = 7439; + this.match(MySqlParser.KW_NOW); + this.state = 7440; + this.match(MySqlParser.LR_BRACKET); + this.state = 7442; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (((((_la - 871)) & ~0x1F) === 0 && ((1 << (_la - 871)) & ((1 << (MySqlParser.ZERO_DECIMAL - 871)) | (1 << (MySqlParser.ONE_DECIMAL - 871)) | (1 << (MySqlParser.TWO_DECIMAL - 871)) | (1 << (MySqlParser.THREE_DECIMAL - 871)) | (1 << (MySqlParser.DECIMAL_LITERAL - 871)) | (1 << (MySqlParser.REAL_LITERAL - 871)))) !== 0)) { + { + this.state = 7441; + this.decimalLiteral(); + } + } + + this.state = 7444; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ifExists(): IfExistsContext { + let _localctx: IfExistsContext = new IfExistsContext(this._ctx, this.state); + this.enterRule(_localctx, 760, MySqlParser.RULE_ifExists); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7447; + this.match(MySqlParser.KW_IF); + this.state = 7448; + this.match(MySqlParser.KW_EXISTS); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public ifNotExists(): IfNotExistsContext { + let _localctx: IfNotExistsContext = new IfNotExistsContext(this._ctx, this.state); + this.enterRule(_localctx, 762, MySqlParser.RULE_ifNotExists); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7450; + this.match(MySqlParser.KW_IF); + this.state = 7451; + this.match(MySqlParser.KW_NOT); + this.state = 7452; + this.match(MySqlParser.KW_EXISTS); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public orReplace(): OrReplaceContext { + let _localctx: OrReplaceContext = new OrReplaceContext(this._ctx, this.state); + this.enterRule(_localctx, 764, MySqlParser.RULE_orReplace); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7454; + this.match(MySqlParser.KW_OR); + this.state = 7455; + this.match(MySqlParser.KW_REPLACE); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionCall(): FunctionCallContext { + let _localctx: FunctionCallContext = new FunctionCallContext(this._ctx, this.state); + this.enterRule(_localctx, 766, MySqlParser.RULE_functionCall); + try { + this.state = 7475; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1098, this._ctx) ) { + case 1: + _localctx = new SpecificFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 7457; + this.specificFunction(); + } + break; + + case 2: + _localctx = new AggregateFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 7458; + this.aggregateWindowedFunction(); + } + break; + + case 3: + _localctx = new NonAggregateFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 7459; + this.nonAggregateWindowedFunction(); + } + break; + + case 4: + _localctx = new ScalarFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 7460; + this.scalarFunctionName(); + this.state = 7461; + this.match(MySqlParser.LR_BRACKET); + this.state = 7463; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1096, this._ctx) ) { + case 1: + { + this.state = 7462; + this.functionArgs(); + } + break; + } + this.state = 7465; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 5: + _localctx = new UdfFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 7467; + this.fullId(); + this.state = 7468; + this.match(MySqlParser.LR_BRACKET); + this.state = 7470; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1097, this._ctx) ) { + case 1: + { + this.state = 7469; + this.functionArgs(); + } + break; + } + this.state = 7472; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 6: + _localctx = new PasswordFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 7474; + this.passwordFunctionClause(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public specificFunction(): SpecificFunctionContext { + let _localctx: SpecificFunctionContext = new SpecificFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 768, MySqlParser.RULE_specificFunction); + let _la: number; + try { + this.state = 7656; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1122, this._ctx) ) { + case 1: + _localctx = new SimpleFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 7477; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SCHEMA || ((((_la - 285)) & ~0x1F) === 0 && ((1 << (_la - 285)) & ((1 << (MySqlParser.KW_CURRENT_DATE - 285)) | (1 << (MySqlParser.KW_CURRENT_TIME - 285)) | (1 << (MySqlParser.KW_CURRENT_TIMESTAMP - 285)) | (1 << (MySqlParser.KW_LOCALTIME - 285)) | (1 << (MySqlParser.KW_UTC_TIMESTAMP - 285)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7480; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1099, this._ctx) ) { + case 1: + { + this.state = 7478; + this.match(MySqlParser.LR_BRACKET); + this.state = 7479; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + break; + + case 2: + _localctx = new CurrentUserContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 7482; + this.currentUserExpression(); + } + break; + + case 3: + _localctx = new DataTypeFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 3); + { + this.state = 7483; + this.match(MySqlParser.KW_CONVERT); + this.state = 7484; + this.match(MySqlParser.LR_BRACKET); + this.state = 7485; + this.expression(0); + this.state = 7486; + (_localctx as DataTypeFunctionCallContext)._separator = this.match(MySqlParser.COMMA); + this.state = 7487; + this.convertedDataType(); + this.state = 7488; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 4: + _localctx = new DataTypeFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 4); + { + this.state = 7490; + this.match(MySqlParser.KW_CONVERT); + this.state = 7491; + this.match(MySqlParser.LR_BRACKET); + this.state = 7492; + this.expression(0); + this.state = 7493; + this.match(MySqlParser.KW_USING); + this.state = 7494; + this.charsetName(); + this.state = 7495; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 5: + _localctx = new DataTypeFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 5); + { + this.state = 7497; + this.match(MySqlParser.KW_CAST); + this.state = 7498; + this.match(MySqlParser.LR_BRACKET); + this.state = 7499; + this.expression(0); + this.state = 7500; + this.match(MySqlParser.KW_AS); + this.state = 7501; + this.convertedDataType(); + this.state = 7502; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 6: + _localctx = new ValuesFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 6); + { + this.state = 7504; + this.match(MySqlParser.KW_VALUES); + this.state = 7505; + this.match(MySqlParser.LR_BRACKET); + this.state = 7506; + this.columnName(); + this.state = 7507; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 7: + _localctx = new CaseExpressionFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 7); + { + this.state = 7509; + this.match(MySqlParser.KW_CASE); + this.state = 7510; + this.expression(0); + this.state = 7512; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 7511; + this.caseFuncAlternative(); + } + } + this.state = 7514; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_WHEN); + this.state = 7518; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ELSE) { + { + this.state = 7516; + this.match(MySqlParser.KW_ELSE); + this.state = 7517; + (_localctx as CaseExpressionFunctionCallContext)._elseArg = this.functionArg(); + } + } + + this.state = 7520; + this.match(MySqlParser.KW_END); + } + break; + + case 8: + _localctx = new CaseFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 8); + { + this.state = 7522; + this.match(MySqlParser.KW_CASE); + this.state = 7524; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 7523; + this.caseFuncAlternative(); + } + } + this.state = 7526; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.KW_WHEN); + this.state = 7530; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ELSE) { + { + this.state = 7528; + this.match(MySqlParser.KW_ELSE); + this.state = 7529; + (_localctx as CaseFunctionCallContext)._elseArg = this.functionArg(); + } + } + + this.state = 7532; + this.match(MySqlParser.KW_END); + } + break; + + case 9: + _localctx = new CharFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 9); + { + this.state = 7534; + this.match(MySqlParser.KW_CHAR); + this.state = 7535; + this.match(MySqlParser.LR_BRACKET); + this.state = 7536; + this.functionArgs(); + this.state = 7539; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_USING) { + { + this.state = 7537; + this.match(MySqlParser.KW_USING); + this.state = 7538; + this.charsetName(); + } + } + + this.state = 7541; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 10: + _localctx = new PositionFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 10); + { + this.state = 7543; + this.match(MySqlParser.KW_POSITION); + this.state = 7544; + this.match(MySqlParser.LR_BRACKET); + this.state = 7547; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1105, this._ctx) ) { + case 1: + { + this.state = 7545; + (_localctx as PositionFunctionCallContext)._positionString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7546; + (_localctx as PositionFunctionCallContext)._positionExpression = this.expression(0); + } + break; + } + this.state = 7549; + this.match(MySqlParser.KW_IN); + this.state = 7552; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1106, this._ctx) ) { + case 1: + { + this.state = 7550; + (_localctx as PositionFunctionCallContext)._inString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7551; + (_localctx as PositionFunctionCallContext)._inExpression = this.expression(0); + } + break; + } + this.state = 7554; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 11: + _localctx = new SubstrFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 11); + { + this.state = 7556; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_SUBSTR || _la === MySqlParser.KW_SUBSTRING)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7557; + this.match(MySqlParser.LR_BRACKET); + this.state = 7560; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1107, this._ctx) ) { + case 1: + { + this.state = 7558; + (_localctx as SubstrFunctionCallContext)._sourceString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7559; + (_localctx as SubstrFunctionCallContext)._sourceExpression = this.expression(0); + } + break; + } + this.state = 7562; + this.match(MySqlParser.KW_FROM); + this.state = 7565; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1108, this._ctx) ) { + case 1: + { + this.state = 7563; + (_localctx as SubstrFunctionCallContext)._fromDecimal = this.decimalLiteral(); + } + break; + + case 2: + { + this.state = 7564; + (_localctx as SubstrFunctionCallContext)._fromExpression = this.expression(0); + } + break; + } + this.state = 7572; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_FOR) { + { + this.state = 7567; + this.match(MySqlParser.KW_FOR); + this.state = 7570; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1109, this._ctx) ) { + case 1: + { + this.state = 7568; + (_localctx as SubstrFunctionCallContext)._forDecimal = this.decimalLiteral(); + } + break; + + case 2: + { + this.state = 7569; + (_localctx as SubstrFunctionCallContext)._forExpression = this.expression(0); + } + break; + } + } + } + + this.state = 7574; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 12: + _localctx = new TrimFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 12); + { + this.state = 7576; + this.match(MySqlParser.KW_TRIM); + this.state = 7577; + this.match(MySqlParser.LR_BRACKET); + this.state = 7578; + (_localctx as TrimFunctionCallContext)._positioinForm = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BOTH || _la === MySqlParser.KW_LEADING || _la === MySqlParser.KW_TRAILING)) { + (_localctx as TrimFunctionCallContext)._positioinForm = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7581; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1111, this._ctx) ) { + case 1: + { + this.state = 7579; + (_localctx as TrimFunctionCallContext)._sourceString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7580; + (_localctx as TrimFunctionCallContext)._sourceExpression = this.expression(0); + } + break; + } + this.state = 7583; + this.match(MySqlParser.KW_FROM); + this.state = 7586; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1112, this._ctx) ) { + case 1: + { + this.state = 7584; + (_localctx as TrimFunctionCallContext)._fromString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7585; + (_localctx as TrimFunctionCallContext)._fromExpression = this.expression(0); + } + break; + } + this.state = 7588; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 13: + _localctx = new TrimFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 13); + { + this.state = 7590; + this.match(MySqlParser.KW_TRIM); + this.state = 7591; + this.match(MySqlParser.LR_BRACKET); + this.state = 7594; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1113, this._ctx) ) { + case 1: + { + this.state = 7592; + (_localctx as TrimFunctionCallContext)._sourceString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7593; + (_localctx as TrimFunctionCallContext)._sourceExpression = this.expression(0); + } + break; + } + this.state = 7596; + this.match(MySqlParser.KW_FROM); + this.state = 7599; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1114, this._ctx) ) { + case 1: + { + this.state = 7597; + (_localctx as TrimFunctionCallContext)._fromString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7598; + (_localctx as TrimFunctionCallContext)._fromExpression = this.expression(0); + } + break; + } + this.state = 7601; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 14: + _localctx = new WeightFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 14); + { + this.state = 7603; + this.match(MySqlParser.KW_WEIGHT_STRING); + this.state = 7604; + this.match(MySqlParser.LR_BRACKET); + this.state = 7607; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1115, this._ctx) ) { + case 1: + { + this.state = 7605; + this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7606; + this.expression(0); + } + break; + } + this.state = 7615; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_AS) { + { + this.state = 7609; + this.match(MySqlParser.KW_AS); + this.state = 7610; + (_localctx as WeightFunctionCallContext)._stringFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_CHAR || _la === MySqlParser.KW_BINARY)) { + (_localctx as WeightFunctionCallContext)._stringFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7611; + this.match(MySqlParser.LR_BRACKET); + this.state = 7612; + this.decimalLiteral(); + this.state = 7613; + this.match(MySqlParser.RR_BRACKET); + } + } + + this.state = 7618; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_LEVEL) { + { + this.state = 7617; + this.levelsInWeightString(); + } + } + + this.state = 7620; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 15: + _localctx = new ExtractFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 15); + { + this.state = 7622; + this.match(MySqlParser.KW_EXTRACT); + this.state = 7623; + this.match(MySqlParser.LR_BRACKET); + this.state = 7624; + this.intervalType(); + this.state = 7625; + this.match(MySqlParser.KW_FROM); + this.state = 7628; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1118, this._ctx) ) { + case 1: + { + this.state = 7626; + (_localctx as ExtractFunctionCallContext)._sourceString = this.stringLiteral(); + } + break; + + case 2: + { + this.state = 7627; + (_localctx as ExtractFunctionCallContext)._sourceExpression = this.expression(0); + } + break; + } + this.state = 7630; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 16: + _localctx = new GetFormatFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 16); + { + this.state = 7632; + this.match(MySqlParser.KW_GET_FORMAT); + this.state = 7633; + this.match(MySqlParser.LR_BRACKET); + this.state = 7634; + (_localctx as GetFormatFunctionCallContext)._datetimeFormat = this._input.LT(1); + _la = this._input.LA(1); + if (!(((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)))) !== 0))) { + (_localctx as GetFormatFunctionCallContext)._datetimeFormat = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7635; + this.match(MySqlParser.COMMA); + this.state = 7636; + this.stringLiteral(); + this.state = 7637; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 17: + _localctx = new JsonValueFunctionCallContext(_localctx); + this.enterOuterAlt(_localctx, 17); + { + this.state = 7639; + this.match(MySqlParser.KW_JSON_VALUE); + this.state = 7640; + this.match(MySqlParser.LR_BRACKET); + this.state = 7641; + this.expression(0); + this.state = 7642; + this.match(MySqlParser.COMMA); + this.state = 7643; + this.expression(0); + this.state = 7646; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_RETURNING) { + { + this.state = 7644; + this.match(MySqlParser.KW_RETURNING); + this.state = 7645; + this.convertedDataType(); + } + } + + this.state = 7649; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1120, this._ctx) ) { + case 1: + { + this.state = 7648; + this.jsonOnEmpty(); + } + break; + } + this.state = 7652; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_DEFAULT || _la === MySqlParser.KW_NULL_LITERAL || _la === MySqlParser.KW_ERROR) { + { + this.state = 7651; + this.jsonOnError(); + } + } + + this.state = 7654; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public caseFuncAlternative(): CaseFuncAlternativeContext { + let _localctx: CaseFuncAlternativeContext = new CaseFuncAlternativeContext(this._ctx, this.state); + this.enterRule(_localctx, 770, MySqlParser.RULE_caseFuncAlternative); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7658; + this.match(MySqlParser.KW_WHEN); + this.state = 7659; + _localctx._condition = this.functionArg(); + this.state = 7660; + this.match(MySqlParser.KW_THEN); + this.state = 7661; + _localctx._consequent = this.functionArg(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public levelsInWeightString(): LevelsInWeightStringContext { + let _localctx: LevelsInWeightStringContext = new LevelsInWeightStringContext(this._ctx, this.state); + this.enterRule(_localctx, 772, MySqlParser.RULE_levelsInWeightString); + let _la: number; + try { + this.state = 7677; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1124, this._ctx) ) { + case 1: + _localctx = new LevelWeightListContext(_localctx); + this.enterOuterAlt(_localctx, 1); + { + this.state = 7663; + this.match(MySqlParser.KW_LEVEL); + this.state = 7664; + this.levelInWeightListElement(); + this.state = 7669; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7665; + this.match(MySqlParser.COMMA); + this.state = 7666; + this.levelInWeightListElement(); + } + } + this.state = 7671; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + break; + + case 2: + _localctx = new LevelWeightRangeContext(_localctx); + this.enterOuterAlt(_localctx, 2); + { + this.state = 7672; + this.match(MySqlParser.KW_LEVEL); + this.state = 7673; + (_localctx as LevelWeightRangeContext)._firstLevel = this.decimalLiteral(); + this.state = 7674; + this.match(MySqlParser.MINUS); + this.state = 7675; + (_localctx as LevelWeightRangeContext)._lastLevel = this.decimalLiteral(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public levelInWeightListElement(): LevelInWeightListElementContext { + let _localctx: LevelInWeightListElementContext = new LevelInWeightListElementContext(this._ctx, this.state); + this.enterRule(_localctx, 774, MySqlParser.RULE_levelInWeightListElement); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7679; + this.decimalLiteral(); + this.state = 7681; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ASC || _la === MySqlParser.KW_DESC || _la === MySqlParser.KW_REVERSE) { + { + this.state = 7680; + _localctx._orderType = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ASC || _la === MySqlParser.KW_DESC || _la === MySqlParser.KW_REVERSE)) { + _localctx._orderType = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public aggregateWindowedFunction(): AggregateWindowedFunctionContext { + let _localctx: AggregateWindowedFunctionContext = new AggregateWindowedFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 776, MySqlParser.RULE_aggregateWindowedFunction); + let _la: number; + try { + this.state = 7742; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_AVG: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_SUM: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7683; + _la = this._input.LA(1); + if (!(((((_la - 258)) & ~0x1F) === 0 && ((1 << (_la - 258)) & ((1 << (MySqlParser.KW_AVG - 258)) | (1 << (MySqlParser.KW_MAX - 258)) | (1 << (MySqlParser.KW_MIN - 258)) | (1 << (MySqlParser.KW_SUM - 258)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7684; + this.match(MySqlParser.LR_BRACKET); + this.state = 7686; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1126, this._ctx) ) { + case 1: + { + this.state = 7685; + _localctx._aggregator = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_DISTINCT)) { + _localctx._aggregator = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + this.state = 7688; + this.functionArg(); + this.state = 7689; + this.match(MySqlParser.RR_BRACKET); + this.state = 7691; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1127, this._ctx) ) { + case 1: + { + this.state = 7690; + this.overClause(); + } + break; + } + } + break; + case MySqlParser.KW_COUNT: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7693; + this.match(MySqlParser.KW_COUNT); + this.state = 7694; + this.match(MySqlParser.LR_BRACKET); + this.state = 7702; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1129, this._ctx) ) { + case 1: + { + this.state = 7695; + _localctx._starArg = this.match(MySqlParser.STAR); + } + break; + + case 2: + { + this.state = 7697; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1128, this._ctx) ) { + case 1: + { + this.state = 7696; + _localctx._aggregator = this.match(MySqlParser.KW_ALL); + } + break; + } + this.state = 7699; + this.functionArg(); + } + break; + + case 3: + { + this.state = 7700; + _localctx._aggregator = this.match(MySqlParser.KW_DISTINCT); + this.state = 7701; + this.functionArgs(); + } + break; + } + this.state = 7704; + this.match(MySqlParser.RR_BRACKET); + this.state = 7706; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1130, this._ctx) ) { + case 1: + { + this.state = 7705; + this.overClause(); + } + break; + } + } + break; + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7708; + _la = this._input.LA(1); + if (!(((((_la - 259)) & ~0x1F) === 0 && ((1 << (_la - 259)) & ((1 << (MySqlParser.KW_BIT_AND - 259)) | (1 << (MySqlParser.KW_BIT_OR - 259)) | (1 << (MySqlParser.KW_BIT_XOR - 259)) | (1 << (MySqlParser.KW_STD - 259)) | (1 << (MySqlParser.KW_STDDEV - 259)) | (1 << (MySqlParser.KW_STDDEV_POP - 259)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 259)) | (1 << (MySqlParser.KW_VAR_POP - 259)) | (1 << (MySqlParser.KW_VAR_SAMP - 259)) | (1 << (MySqlParser.KW_VARIANCE - 259)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7709; + this.match(MySqlParser.LR_BRACKET); + this.state = 7711; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1131, this._ctx) ) { + case 1: + { + this.state = 7710; + _localctx._aggregator = this.match(MySqlParser.KW_ALL); + } + break; + } + this.state = 7713; + this.functionArg(); + this.state = 7714; + this.match(MySqlParser.RR_BRACKET); + this.state = 7716; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1132, this._ctx) ) { + case 1: + { + this.state = 7715; + this.overClause(); + } + break; + } + } + break; + case MySqlParser.KW_GROUP_CONCAT: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7718; + this.match(MySqlParser.KW_GROUP_CONCAT); + this.state = 7719; + this.match(MySqlParser.LR_BRACKET); + this.state = 7721; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1133, this._ctx) ) { + case 1: + { + this.state = 7720; + _localctx._aggregator = this.match(MySqlParser.KW_DISTINCT); + } + break; + } + this.state = 7723; + this.functionArgs(); + this.state = 7734; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 7724; + this.match(MySqlParser.KW_ORDER); + this.state = 7725; + this.match(MySqlParser.KW_BY); + this.state = 7726; + this.orderByExpression(); + this.state = 7731; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7727; + this.match(MySqlParser.COMMA); + this.state = 7728; + this.orderByExpression(); + } + } + this.state = 7733; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + + this.state = 7738; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_SEPARATOR) { + { + this.state = 7736; + this.match(MySqlParser.KW_SEPARATOR); + this.state = 7737; + _localctx._separator = this.match(MySqlParser.STRING_LITERAL); + } + } + + this.state = 7740; + this.match(MySqlParser.RR_BRACKET); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public nonAggregateWindowedFunction(): NonAggregateWindowedFunctionContext { + let _localctx: NonAggregateWindowedFunctionContext = new NonAggregateWindowedFunctionContext(this._ctx, this.state); + this.enterRule(_localctx, 778, MySqlParser.RULE_nonAggregateWindowedFunction); + let _la: number; + try { + this.state = 7782; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_LAG: + case MySqlParser.KW_LEAD: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7744; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_LAG || _la === MySqlParser.KW_LEAD)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7745; + this.match(MySqlParser.LR_BRACKET); + this.state = 7746; + this.expression(0); + this.state = 7749; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1138, this._ctx) ) { + case 1: + { + this.state = 7747; + this.match(MySqlParser.COMMA); + this.state = 7748; + this.decimalLiteral(); + } + break; + } + this.state = 7753; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.COMMA) { + { + this.state = 7751; + this.match(MySqlParser.COMMA); + this.state = 7752; + this.decimalLiteral(); + } + } + + this.state = 7755; + this.match(MySqlParser.RR_BRACKET); + this.state = 7756; + this.overClause(); + } + break; + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_LAST_VALUE: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7758; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FIRST_VALUE || _la === MySqlParser.KW_LAST_VALUE)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7759; + this.match(MySqlParser.LR_BRACKET); + this.state = 7760; + this.expression(0); + this.state = 7761; + this.match(MySqlParser.RR_BRACKET); + this.state = 7762; + this.overClause(); + } + break; + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7764; + _la = this._input.LA(1); + if (!(((((_la - 263)) & ~0x1F) === 0 && ((1 << (_la - 263)) & ((1 << (MySqlParser.KW_CUME_DIST - 263)) | (1 << (MySqlParser.KW_DENSE_RANK - 263)) | (1 << (MySqlParser.KW_PERCENT_RANK - 263)) | (1 << (MySqlParser.KW_RANK - 263)) | (1 << (MySqlParser.KW_ROW_NUMBER - 263)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7765; + this.match(MySqlParser.LR_BRACKET); + this.state = 7766; + this.match(MySqlParser.RR_BRACKET); + this.state = 7767; + this.overClause(); + } + break; + case MySqlParser.KW_NTH_VALUE: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7768; + this.match(MySqlParser.KW_NTH_VALUE); + this.state = 7769; + this.match(MySqlParser.LR_BRACKET); + this.state = 7770; + this.expression(0); + this.state = 7771; + this.match(MySqlParser.COMMA); + this.state = 7772; + this.decimalLiteral(); + this.state = 7773; + this.match(MySqlParser.RR_BRACKET); + this.state = 7774; + this.overClause(); + } + break; + case MySqlParser.KW_NTILE: + this.enterOuterAlt(_localctx, 5); + { + this.state = 7776; + this.match(MySqlParser.KW_NTILE); + this.state = 7777; + this.match(MySqlParser.LR_BRACKET); + this.state = 7778; + this.decimalLiteral(); + this.state = 7779; + this.match(MySqlParser.RR_BRACKET); + this.state = 7780; + this.overClause(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public overClause(): OverClauseContext { + let _localctx: OverClauseContext = new OverClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 780, MySqlParser.RULE_overClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7784; + this.match(MySqlParser.KW_OVER); + this.state = 7790; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.LR_BRACKET: + { + this.state = 7785; + this.match(MySqlParser.LR_BRACKET); + this.state = 7786; + this.windowSpec(); + this.state = 7787; + this.match(MySqlParser.RR_BRACKET); + } + break; + case MySqlParser.KW_ARRAY: + case MySqlParser.KW_ATTRIBUTE: + case MySqlParser.KW_BUCKETS: + case MySqlParser.KW_CONDITION: + case MySqlParser.KW_CURRENT: + case MySqlParser.KW_CURRENT_USER: + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_DEFAULT: + case MySqlParser.KW_DIAGNOSTICS: + case MySqlParser.KW_EMPTY: + case MySqlParser.KW_ENFORCED: + case MySqlParser.KW_EXCEPT: + case MySqlParser.KW_GROUP: + case MySqlParser.KW_IF: + case MySqlParser.KW_INSERT: + case MySqlParser.KW_LATERAL: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_NUMBER: + case MySqlParser.KW_OPTIONAL: + case MySqlParser.KW_ORDER: + case MySqlParser.KW_PRIMARY: + case MySqlParser.KW_REPEAT: + case MySqlParser.KW_REPLACE: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_SKIP_QUERY_REWRITE: + case MySqlParser.KW_STACKED: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_DATETIME: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_BINARY: + case MySqlParser.KW_TEXT: + case MySqlParser.KW_ENUM: + case MySqlParser.KW_SERIAL: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_NESTED: + case MySqlParser.KW_ORDINALITY: + case MySqlParser.KW_PATH: + case MySqlParser.KW_AVG: + case MySqlParser.KW_BIT_AND: + case MySqlParser.KW_BIT_OR: + case MySqlParser.KW_BIT_XOR: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_GROUP_CONCAT: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_MAX: + case MySqlParser.KW_MIN: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_STD: + case MySqlParser.KW_STDDEV: + case MySqlParser.KW_STDDEV_POP: + case MySqlParser.KW_STDDEV_SAMP: + case MySqlParser.KW_SUM: + case MySqlParser.KW_VAR_POP: + case MySqlParser.KW_VAR_SAMP: + case MySqlParser.KW_VARIANCE: + case MySqlParser.KW_CURRENT_DATE: + case MySqlParser.KW_CURRENT_TIME: + case MySqlParser.KW_CURRENT_TIMESTAMP: + case MySqlParser.KW_LOCALTIME: + case MySqlParser.KW_CURDATE: + case MySqlParser.KW_CURTIME: + case MySqlParser.KW_DATE_ADD: + case MySqlParser.KW_DATE_SUB: + case MySqlParser.KW_LOCALTIMESTAMP: + case MySqlParser.KW_NOW: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_SUBSTR: + case MySqlParser.KW_SUBSTRING: + case MySqlParser.KW_SYSDATE: + case MySqlParser.KW_TRIM: + case MySqlParser.KW_UTC_DATE: + case MySqlParser.KW_UTC_TIME: + case MySqlParser.KW_UTC_TIMESTAMP: + case MySqlParser.KW_ACCOUNT: + case MySqlParser.KW_ACTION: + case MySqlParser.KW_AFTER: + case MySqlParser.KW_AGGREGATE: + case MySqlParser.KW_ALGORITHM: + case MySqlParser.KW_ANY: + case MySqlParser.KW_AT: + case MySqlParser.KW_AUTHORS: + case MySqlParser.KW_AUTOCOMMIT: + case MySqlParser.KW_AUTOEXTEND_SIZE: + case MySqlParser.KW_AUTO_INCREMENT: + case MySqlParser.KW_AVG_ROW_LENGTH: + case MySqlParser.KW_BEGIN: + case MySqlParser.KW_BINLOG: + case MySqlParser.KW_BIT: + case MySqlParser.KW_BLOCK: + case MySqlParser.KW_BOOL: + case MySqlParser.KW_BOOLEAN: + case MySqlParser.KW_BTREE: + case MySqlParser.KW_CACHE: + case MySqlParser.KW_CASCADED: + case MySqlParser.KW_CHAIN: + case MySqlParser.KW_CHANGED: + case MySqlParser.KW_CHANNEL: + case MySqlParser.KW_CHECKSUM: + case MySqlParser.KW_CIPHER: + case MySqlParser.KW_CLASS_ORIGIN: + case MySqlParser.KW_CLIENT: + case MySqlParser.KW_CLOSE: + case MySqlParser.KW_COALESCE: + case MySqlParser.KW_CODE: + case MySqlParser.KW_COLUMNS: + case MySqlParser.KW_COLUMN_FORMAT: + case MySqlParser.KW_COLUMN_NAME: + case MySqlParser.KW_COMMENT: + case MySqlParser.KW_COMMIT: + case MySqlParser.KW_COMPACT: + case MySqlParser.KW_COMPLETION: + case MySqlParser.KW_COMPRESSED: + case MySqlParser.KW_COMPRESSION: + case MySqlParser.KW_CONCURRENT: + case MySqlParser.KW_CONNECT: + case MySqlParser.KW_CONNECTION: + case MySqlParser.KW_CONSISTENT: + case MySqlParser.KW_CONSTRAINT_CATALOG: + case MySqlParser.KW_CONSTRAINT_SCHEMA: + case MySqlParser.KW_CONSTRAINT_NAME: + case MySqlParser.KW_CONTAINS: + case MySqlParser.KW_CONTEXT: + case MySqlParser.KW_CONTRIBUTORS: + case MySqlParser.KW_COPY: + case MySqlParser.KW_CPU: + case MySqlParser.KW_CURSOR_NAME: + case MySqlParser.KW_DATA: + case MySqlParser.KW_DATAFILE: + case MySqlParser.KW_DEALLOCATE: + case MySqlParser.KW_DEFAULT_AUTH: + case MySqlParser.KW_DEFINER: + case MySqlParser.KW_DELAY_KEY_WRITE: + case MySqlParser.KW_DES_KEY_FILE: + case MySqlParser.KW_DIRECTORY: + case MySqlParser.KW_DISABLE: + case MySqlParser.KW_DISCARD: + case MySqlParser.KW_DISK: + case MySqlParser.KW_DO: + case MySqlParser.KW_DUMPFILE: + case MySqlParser.KW_DUPLICATE: + case MySqlParser.KW_DYNAMIC: + case MySqlParser.KW_ENABLE: + case MySqlParser.KW_ENCRYPTION: + case MySqlParser.KW_END: + case MySqlParser.KW_ENDS: + case MySqlParser.KW_ENGINE: + case MySqlParser.KW_ENGINES: + case MySqlParser.KW_ERROR: + case MySqlParser.KW_ERRORS: + case MySqlParser.KW_ESCAPE: + case MySqlParser.KW_EVENT: + case MySqlParser.KW_EVENTS: + case MySqlParser.KW_EVERY: + case MySqlParser.KW_EXCHANGE: + case MySqlParser.KW_EXCLUSIVE: + case MySqlParser.KW_EXPIRE: + case MySqlParser.KW_EXPORT: + case MySqlParser.KW_EXTENDED: + case MySqlParser.KW_EXTENT_SIZE: + case MySqlParser.KW_FAILED_LOGIN_ATTEMPTS: + case MySqlParser.KW_FAST: + case MySqlParser.KW_FAULTS: + case MySqlParser.KW_FIELDS: + case MySqlParser.KW_FILE_BLOCK_SIZE: + case MySqlParser.KW_FILTER: + case MySqlParser.KW_FIRST: + case MySqlParser.KW_FIXED: + case MySqlParser.KW_FLUSH: + case MySqlParser.KW_FOLLOWS: + case MySqlParser.KW_FOUND: + case MySqlParser.KW_FULL: + case MySqlParser.KW_FUNCTION: + case MySqlParser.KW_GENERAL: + case MySqlParser.KW_GLOBAL: + case MySqlParser.KW_GRANTS: + case MySqlParser.KW_GROUP_REPLICATION: + case MySqlParser.KW_HANDLER: + case MySqlParser.KW_HASH: + case MySqlParser.KW_HELP: + case MySqlParser.KW_HISTORY: + case MySqlParser.KW_HOST: + case MySqlParser.KW_HOSTS: + case MySqlParser.KW_IDENTIFIED: + case MySqlParser.KW_IGNORE_SERVER_IDS: + case MySqlParser.KW_IMPORT: + case MySqlParser.KW_INDEXES: + case MySqlParser.KW_INITIAL_SIZE: + case MySqlParser.KW_INPLACE: + case MySqlParser.KW_INSERT_METHOD: + case MySqlParser.KW_INSTALL: + case MySqlParser.KW_INSTANCE: + case MySqlParser.KW_INSTANT: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_INVOKER: + case MySqlParser.KW_IO: + case MySqlParser.KW_IO_THREAD: + case MySqlParser.KW_IPC: + case MySqlParser.KW_ISOLATION: + case MySqlParser.KW_ISSUER: + case MySqlParser.KW_JSON: + case MySqlParser.KW_KEY_BLOCK_SIZE: + case MySqlParser.KW_LANGUAGE: + case MySqlParser.KW_LAST: + case MySqlParser.KW_LEAVES: + case MySqlParser.KW_LESS: + case MySqlParser.KW_LEVEL: + case MySqlParser.KW_LIST: + case MySqlParser.KW_LOCAL: + case MySqlParser.KW_LOGFILE: + case MySqlParser.KW_LOGS: + case MySqlParser.KW_MASTER: + case MySqlParser.KW_MASTER_AUTO_POSITION: + case MySqlParser.KW_MASTER_CONNECT_RETRY: + case MySqlParser.KW_MASTER_DELAY: + case MySqlParser.KW_MASTER_HEARTBEAT_PERIOD: + case MySqlParser.KW_MASTER_HOST: + case MySqlParser.KW_MASTER_LOG_FILE: + case MySqlParser.KW_MASTER_LOG_POS: + case MySqlParser.KW_MASTER_PASSWORD: + case MySqlParser.KW_MASTER_PORT: + case MySqlParser.KW_MASTER_RETRY_COUNT: + case MySqlParser.KW_MASTER_SSL: + case MySqlParser.KW_MASTER_SSL_CA: + case MySqlParser.KW_MASTER_SSL_CAPATH: + case MySqlParser.KW_MASTER_SSL_CERT: + case MySqlParser.KW_MASTER_SSL_CIPHER: + case MySqlParser.KW_MASTER_SSL_CRL: + case MySqlParser.KW_MASTER_SSL_CRLPATH: + case MySqlParser.KW_MASTER_SSL_KEY: + case MySqlParser.KW_MASTER_TLS_VERSION: + case MySqlParser.KW_MASTER_USER: + case MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR: + case MySqlParser.KW_MAX_QUERIES_PER_HOUR: + case MySqlParser.KW_MAX_ROWS: + case MySqlParser.KW_MAX_SIZE: + case MySqlParser.KW_MAX_UPDATES_PER_HOUR: + case MySqlParser.KW_MAX_USER_CONNECTIONS: + case MySqlParser.KW_MEDIUM: + case MySqlParser.KW_MEMBER: + case MySqlParser.KW_MERGE: + case MySqlParser.KW_MESSAGE_TEXT: + case MySqlParser.KW_MID: + case MySqlParser.KW_MIGRATE: + case MySqlParser.KW_MIN_ROWS: + case MySqlParser.KW_MODE: + case MySqlParser.KW_MODIFY: + case MySqlParser.KW_MUTEX: + case MySqlParser.KW_MYSQL: + case MySqlParser.KW_MYSQL_ERRNO: + case MySqlParser.KW_NAME: + case MySqlParser.KW_NAMES: + case MySqlParser.KW_NCHAR: + case MySqlParser.KW_NEVER: + case MySqlParser.KW_NEXT: + case MySqlParser.KW_NO: + case MySqlParser.KW_NOWAIT: + case MySqlParser.KW_NODEGROUP: + case MySqlParser.KW_NONE: + case MySqlParser.KW_ODBC: + case MySqlParser.KW_OFFLINE: + case MySqlParser.KW_OFFSET: + case MySqlParser.KW_OF: + case MySqlParser.KW_OLD_PASSWORD: + case MySqlParser.KW_ONE: + case MySqlParser.KW_ONLINE: + case MySqlParser.KW_ONLY: + case MySqlParser.KW_OPEN: + case MySqlParser.KW_OPTIMIZER_COSTS: + case MySqlParser.KW_OPTIONS: + case MySqlParser.KW_OWNER: + case MySqlParser.KW_PACK_KEYS: + case MySqlParser.KW_PAGE: + case MySqlParser.KW_PAGE_CHECKSUM: + case MySqlParser.KW_PARSER: + case MySqlParser.KW_PARTIAL: + case MySqlParser.KW_PARTITIONING: + case MySqlParser.KW_PARTITIONS: + case MySqlParser.KW_PASSWORD: + case MySqlParser.KW_PASSWORD_LOCK_TIME: + case MySqlParser.KW_PHASE: + case MySqlParser.KW_PLUGIN: + case MySqlParser.KW_PLUGIN_DIR: + case MySqlParser.KW_PLUGINS: + case MySqlParser.KW_PORT: + case MySqlParser.KW_PRECEDES: + case MySqlParser.KW_PREPARE: + case MySqlParser.KW_PRESERVE: + case MySqlParser.KW_PREV: + case MySqlParser.KW_PROCESSLIST: + case MySqlParser.KW_PROFILE: + case MySqlParser.KW_PROFILES: + case MySqlParser.KW_PROXY: + case MySqlParser.KW_QUERY: + case MySqlParser.KW_QUICK: + case MySqlParser.KW_REBUILD: + case MySqlParser.KW_RECOVER: + case MySqlParser.KW_RECURSIVE: + case MySqlParser.KW_REDO_BUFFER_SIZE: + case MySqlParser.KW_REDUNDANT: + case MySqlParser.KW_RELAY: + case MySqlParser.KW_RELAY_LOG_FILE: + case MySqlParser.KW_RELAY_LOG_POS: + case MySqlParser.KW_RELAYLOG: + case MySqlParser.KW_REMOVE: + case MySqlParser.KW_REORGANIZE: + case MySqlParser.KW_REPAIR: + case MySqlParser.KW_REPLICATE_DO_DB: + case MySqlParser.KW_REPLICATE_DO_TABLE: + case MySqlParser.KW_REPLICATE_IGNORE_DB: + case MySqlParser.KW_REPLICATE_IGNORE_TABLE: + case MySqlParser.KW_REPLICATE_REWRITE_DB: + case MySqlParser.KW_REPLICATE_WILD_DO_TABLE: + case MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE: + case MySqlParser.KW_REPLICATION: + case MySqlParser.KW_RESET: + case MySqlParser.KW_RESUME: + case MySqlParser.KW_RETURNED_SQLSTATE: + case MySqlParser.KW_RETURNS: + case MySqlParser.KW_REUSE: + case MySqlParser.KW_ROLE: + case MySqlParser.KW_ROLLBACK: + case MySqlParser.KW_ROLLUP: + case MySqlParser.KW_ROTATE: + case MySqlParser.KW_ROW: + case MySqlParser.KW_ROWS: + case MySqlParser.KW_ROW_FORMAT: + case MySqlParser.KW_SAVEPOINT: + case MySqlParser.KW_SCHEDULE: + case MySqlParser.KW_SECURITY: + case MySqlParser.KW_SERVER: + case MySqlParser.KW_SESSION: + case MySqlParser.KW_SHARE: + case MySqlParser.KW_SHARED: + case MySqlParser.KW_SIGNED: + case MySqlParser.KW_SIMPLE: + case MySqlParser.KW_SLAVE: + case MySqlParser.KW_SLOW: + case MySqlParser.KW_SNAPSHOT: + case MySqlParser.KW_SOCKET: + case MySqlParser.KW_SOME: + case MySqlParser.KW_SONAME: + case MySqlParser.KW_SOUNDS: + case MySqlParser.KW_SOURCE: + case MySqlParser.KW_SQL_AFTER_GTIDS: + case MySqlParser.KW_SQL_AFTER_MTS_GAPS: + case MySqlParser.KW_SQL_BEFORE_GTIDS: + case MySqlParser.KW_SQL_BUFFER_RESULT: + case MySqlParser.KW_SQL_CACHE: + case MySqlParser.KW_SQL_NO_CACHE: + case MySqlParser.KW_SQL_THREAD: + case MySqlParser.KW_START: + case MySqlParser.KW_STARTS: + case MySqlParser.KW_STATS_AUTO_RECALC: + case MySqlParser.KW_STATS_PERSISTENT: + case MySqlParser.KW_STATS_SAMPLE_PAGES: + case MySqlParser.KW_STATUS: + case MySqlParser.KW_STOP: + case MySqlParser.KW_STORAGE: + case MySqlParser.KW_STRING: + case MySqlParser.KW_SUBCLASS_ORIGIN: + case MySqlParser.KW_SUBJECT: + case MySqlParser.KW_SUBPARTITION: + case MySqlParser.KW_SUBPARTITIONS: + case MySqlParser.KW_SUSPEND: + case MySqlParser.KW_SWAPS: + case MySqlParser.KW_SWITCHES: + case MySqlParser.KW_TABLE_NAME: + case MySqlParser.KW_TABLESPACE: + case MySqlParser.KW_TABLE_TYPE: + case MySqlParser.KW_TEMPORARY: + case MySqlParser.KW_TEMPTABLE: + case MySqlParser.KW_THAN: + case MySqlParser.KW_TRADITIONAL: + case MySqlParser.KW_TRANSACTION: + case MySqlParser.KW_TRANSACTIONAL: + case MySqlParser.KW_TRIGGERS: + case MySqlParser.KW_TRUNCATE: + case MySqlParser.KW_UNBOUNDED: + case MySqlParser.KW_UNDEFINED: + case MySqlParser.KW_UNDOFILE: + case MySqlParser.KW_UNDO_BUFFER_SIZE: + case MySqlParser.KW_UNINSTALL: + case MySqlParser.KW_UNKNOWN: + case MySqlParser.KW_UNTIL: + case MySqlParser.KW_UPGRADE: + case MySqlParser.KW_USER: + case MySqlParser.KW_USE_FRM: + case MySqlParser.KW_USER_RESOURCES: + case MySqlParser.KW_VALIDATION: + case MySqlParser.KW_VALUE: + case MySqlParser.KW_VARIABLES: + case MySqlParser.KW_VIEW: + case MySqlParser.KW_VIRTUAL: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_WAIT: + case MySqlParser.KW_WARNINGS: + case MySqlParser.KW_WITHOUT: + case MySqlParser.KW_WORK: + case MySqlParser.KW_WRAPPER: + case MySqlParser.KW_X509: + case MySqlParser.KW_XA: + case MySqlParser.KW_XML: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_ADMIN: + case MySqlParser.KW_AUDIT_ABORT_EXEMPT: + case MySqlParser.KW_AUDIT_ADMIN: + case MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN: + case MySqlParser.KW_BACKUP_ADMIN: + case MySqlParser.KW_BINLOG_ADMIN: + case MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN: + case MySqlParser.KW_CLONE_ADMIN: + case MySqlParser.KW_CONNECTION_ADMIN: + case MySqlParser.KW_ENCRYPTION_KEY_ADMIN: + case MySqlParser.KW_EXECUTE: + case MySqlParser.KW_FILE: + case MySqlParser.KW_FIREWALL_ADMIN: + case MySqlParser.KW_FIREWALL_EXEMPT: + case MySqlParser.KW_FIREWALL_USER: + case MySqlParser.KW_GROUP_REPLICATION_ADMIN: + case MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE: + case MySqlParser.KW_INVOKE: + case MySqlParser.KW_LAMBDA: + case MySqlParser.KW_NDB_STORED_USER: + case MySqlParser.KW_PASSWORDLESS_USER_ADMIN: + case MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN: + case MySqlParser.KW_PRIVILEGES: + case MySqlParser.KW_PROCESS: + case MySqlParser.KW_RELOAD: + case MySqlParser.KW_REPLICATION_APPLIER: + case MySqlParser.KW_REPLICATION_SLAVE_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_ADMIN: + case MySqlParser.KW_RESOURCE_GROUP_USER: + case MySqlParser.KW_ROLE_ADMIN: + case MySqlParser.KW_ROUTINE: + case MySqlParser.KW_S3: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_SET_USER_ID: + case MySqlParser.KW_SHOW_ROUTINE: + case MySqlParser.KW_SHUTDOWN: + case MySqlParser.KW_SUPER: + case MySqlParser.KW_SYSTEM_VARIABLES_ADMIN: + case MySqlParser.KW_TABLES: + case MySqlParser.KW_TABLE_ENCRYPTION_ADMIN: + case MySqlParser.KW_VERSION_TOKEN_ADMIN: + case MySqlParser.KW_XA_RECOVER_ADMIN: + case MySqlParser.KW_ARMSCII8: + case MySqlParser.KW_ASCII: + case MySqlParser.KW_BIG5: + case MySqlParser.KW_CP1250: + case MySqlParser.KW_CP1251: + case MySqlParser.KW_CP1256: + case MySqlParser.KW_CP1257: + case MySqlParser.KW_CP850: + case MySqlParser.KW_CP852: + case MySqlParser.KW_CP866: + case MySqlParser.KW_CP932: + case MySqlParser.KW_DEC8: + case MySqlParser.KW_EUCJPMS: + case MySqlParser.KW_EUCKR: + case MySqlParser.KW_GB18030: + case MySqlParser.KW_GB2312: + case MySqlParser.KW_GBK: + case MySqlParser.KW_GEOSTD8: + case MySqlParser.KW_GREEK: + case MySqlParser.KW_HEBREW: + case MySqlParser.KW_HP8: + case MySqlParser.KW_KEYBCS2: + case MySqlParser.KW_KOI8R: + case MySqlParser.KW_KOI8U: + case MySqlParser.KW_LATIN1: + case MySqlParser.KW_LATIN2: + case MySqlParser.KW_LATIN5: + case MySqlParser.KW_LATIN7: + case MySqlParser.KW_MACCE: + case MySqlParser.KW_MACROMAN: + case MySqlParser.KW_SJIS: + case MySqlParser.KW_SWE7: + case MySqlParser.KW_TIS620: + case MySqlParser.KW_UCS2: + case MySqlParser.KW_UJIS: + case MySqlParser.KW_UTF16: + case MySqlParser.KW_UTF16LE: + case MySqlParser.KW_UTF32: + case MySqlParser.KW_UTF8: + case MySqlParser.KW_UTF8MB3: + case MySqlParser.KW_UTF8MB4: + case MySqlParser.KW_ARCHIVE: + case MySqlParser.KW_BLACKHOLE: + case MySqlParser.KW_CSV: + case MySqlParser.KW_FEDERATED: + case MySqlParser.KW_INNODB: + case MySqlParser.KW_MEMORY: + case MySqlParser.KW_MRG_MYISAM: + case MySqlParser.KW_MYISAM: + case MySqlParser.KW_NDB: + case MySqlParser.KW_NDBCLUSTER: + case MySqlParser.KW_PERFORMANCE_SCHEMA: + case MySqlParser.KW_TOKUDB: + case MySqlParser.KW_REPEATABLE: + case MySqlParser.KW_COMMITTED: + case MySqlParser.KW_UNCOMMITTED: + case MySqlParser.KW_SERIALIZABLE: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CATALOG_NAME: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_ENGINE_ATTRIBUTE: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SCHEMA_NAME: + case MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_TP_CONNECTION_ADMIN: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + case MySqlParser.CHARSET_REVERSE_QOUTE_STRING: + case MySqlParser.STRING_LITERAL: + case MySqlParser.ID: + { + this.state = 7789; + this.windowName(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public windowSpec(): WindowSpecContext { + let _localctx: WindowSpecContext = new WindowSpecContext(this._ctx, this.state); + this.enterRule(_localctx, 782, MySqlParser.RULE_windowSpec); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7793; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1142, this._ctx) ) { + case 1: + { + this.state = 7792; + this.windowName(); + } + break; + } + this.state = 7796; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_PARTITION) { + { + this.state = 7795; + this.partitionClause(); + } + } + + this.state = 7799; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_ORDER) { + { + this.state = 7798; + this.orderByClause(); + } + } + + this.state = 7802; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_RANGE || _la === MySqlParser.KW_ROWS) { + { + this.state = 7801; + this.frameClause(); + } + } + + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public windowName(): WindowNameContext { + let _localctx: WindowNameContext = new WindowNameContext(this._ctx, this.state); + this.enterRule(_localctx, 784, MySqlParser.RULE_windowName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7804; + this.uid(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public frameClause(): FrameClauseContext { + let _localctx: FrameClauseContext = new FrameClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 786, MySqlParser.RULE_frameClause); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7806; + this.frameUnits(); + this.state = 7807; + this.frameExtent(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public frameUnits(): FrameUnitsContext { + let _localctx: FrameUnitsContext = new FrameUnitsContext(this._ctx, this.state); + this.enterRule(_localctx, 788, MySqlParser.RULE_frameUnits); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7809; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_RANGE || _la === MySqlParser.KW_ROWS)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public frameExtent(): FrameExtentContext { + let _localctx: FrameExtentContext = new FrameExtentContext(this._ctx, this.state); + this.enterRule(_localctx, 790, MySqlParser.RULE_frameExtent); + try { + this.state = 7813; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1146, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7811; + this.frameRange(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7812; + this.frameBetween(); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public frameBetween(): FrameBetweenContext { + let _localctx: FrameBetweenContext = new FrameBetweenContext(this._ctx, this.state); + this.enterRule(_localctx, 792, MySqlParser.RULE_frameBetween); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7815; + this.match(MySqlParser.KW_BETWEEN); + this.state = 7816; + this.frameRange(); + this.state = 7817; + this.match(MySqlParser.KW_AND); + this.state = 7818; + this.frameRange(); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public frameRange(): FrameRangeContext { + let _localctx: FrameRangeContext = new FrameRangeContext(this._ctx, this.state); + this.enterRule(_localctx, 794, MySqlParser.RULE_frameRange); + let _la: number; + try { + this.state = 7827; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1147, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7820; + this.match(MySqlParser.KW_CURRENT); + this.state = 7821; + this.match(MySqlParser.KW_ROW); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7822; + this.match(MySqlParser.KW_UNBOUNDED); + this.state = 7823; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FOLLOWING || _la === MySqlParser.KW_PRECEDING)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7824; + this.expression(0); + this.state = 7825; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FOLLOWING || _la === MySqlParser.KW_PRECEDING)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public partitionClause(): PartitionClauseContext { + let _localctx: PartitionClauseContext = new PartitionClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 796, MySqlParser.RULE_partitionClause); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7829; + this.match(MySqlParser.KW_PARTITION); + this.state = 7830; + this.match(MySqlParser.KW_BY); + this.state = 7831; + this.expression(0); + this.state = 7836; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7832; + this.match(MySqlParser.COMMA); + this.state = 7833; + this.expression(0); + } + } + this.state = 7838; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public scalarFunctionName(): ScalarFunctionNameContext { + let _localctx: ScalarFunctionNameContext = new ScalarFunctionNameContext(this._ctx, this.state); + this.enterRule(_localctx, 798, MySqlParser.RULE_scalarFunctionName); + try { + this.state = 7863; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_DATABASE: + case MySqlParser.KW_LEFT: + case MySqlParser.KW_RIGHT: + case MySqlParser.KW_SCHEMA: + case MySqlParser.KW_DATE: + case MySqlParser.KW_TIME: + case MySqlParser.KW_TIMESTAMP: + case MySqlParser.KW_YEAR: + case MySqlParser.KW_JSON_TABLE: + case MySqlParser.KW_JSON_VALUE: + case MySqlParser.KW_COUNT: + case MySqlParser.KW_CUME_DIST: + case MySqlParser.KW_DENSE_RANK: + case MySqlParser.KW_FIRST_VALUE: + case MySqlParser.KW_LAG: + case MySqlParser.KW_LAST_VALUE: + case MySqlParser.KW_LEAD: + case MySqlParser.KW_NTILE: + case MySqlParser.KW_NTH_VALUE: + case MySqlParser.KW_PERCENT_RANK: + case MySqlParser.KW_RANK: + case MySqlParser.KW_ROW_NUMBER: + case MySqlParser.KW_POSITION: + case MySqlParser.KW_INVISIBLE: + case MySqlParser.KW_VISIBLE: + case MySqlParser.KW_QUARTER: + case MySqlParser.KW_MONTH: + case MySqlParser.KW_DAY: + case MySqlParser.KW_HOUR: + case MySqlParser.KW_MINUTE: + case MySqlParser.KW_WEEK: + case MySqlParser.KW_SECOND: + case MySqlParser.KW_MICROSECOND: + case MySqlParser.KW_SESSION_VARIABLES_ADMIN: + case MySqlParser.KW_GEOMETRYCOLLECTION: + case MySqlParser.KW_LINESTRING: + case MySqlParser.KW_MULTILINESTRING: + case MySqlParser.KW_MULTIPOINT: + case MySqlParser.KW_MULTIPOLYGON: + case MySqlParser.KW_POINT: + case MySqlParser.KW_POLYGON: + case MySqlParser.KW_CHARSET: + case MySqlParser.KW_COLLATION: + case MySqlParser.KW_FORMAT: + case MySqlParser.KW_GET_FORMAT: + case MySqlParser.KW_RANDOM: + case MySqlParser.KW_REVERSE: + case MySqlParser.KW_ROW_COUNT: + case MySqlParser.KW_SRID: + case MySqlParser.KW_SYSTEM_USER: + case MySqlParser.KW_WEIGHT_STRING: + case MySqlParser.MOD: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7839; + this.functionNameBase(); + } + break; + case MySqlParser.KW_ASCII: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7840; + this.match(MySqlParser.KW_ASCII); + } + break; + case MySqlParser.KW_CURDATE: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7841; + this.match(MySqlParser.KW_CURDATE); + } + break; + case MySqlParser.KW_CURRENT_DATE: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7842; + this.match(MySqlParser.KW_CURRENT_DATE); + } + break; + case MySqlParser.KW_CURRENT_TIME: + this.enterOuterAlt(_localctx, 5); + { + this.state = 7843; + this.match(MySqlParser.KW_CURRENT_TIME); + } + break; + case MySqlParser.KW_CURRENT_TIMESTAMP: + this.enterOuterAlt(_localctx, 6); + { + this.state = 7844; + this.match(MySqlParser.KW_CURRENT_TIMESTAMP); + } + break; + case MySqlParser.KW_CURTIME: + this.enterOuterAlt(_localctx, 7); + { + this.state = 7845; + this.match(MySqlParser.KW_CURTIME); + } + break; + case MySqlParser.KW_DATE_ADD: + this.enterOuterAlt(_localctx, 8); + { + this.state = 7846; + this.match(MySqlParser.KW_DATE_ADD); + } + break; + case MySqlParser.KW_DATE_SUB: + this.enterOuterAlt(_localctx, 9); + { + this.state = 7847; + this.match(MySqlParser.KW_DATE_SUB); + } + break; + case MySqlParser.KW_IF: + this.enterOuterAlt(_localctx, 10); + { + this.state = 7848; + this.match(MySqlParser.KW_IF); + } + break; + case MySqlParser.KW_INSERT: + this.enterOuterAlt(_localctx, 11); + { + this.state = 7849; + this.match(MySqlParser.KW_INSERT); + } + break; + case MySqlParser.KW_LOCALTIME: + this.enterOuterAlt(_localctx, 12); + { + this.state = 7850; + this.match(MySqlParser.KW_LOCALTIME); + } + break; + case MySqlParser.KW_LOCALTIMESTAMP: + this.enterOuterAlt(_localctx, 13); + { + this.state = 7851; + this.match(MySqlParser.KW_LOCALTIMESTAMP); + } + break; + case MySqlParser.KW_MID: + this.enterOuterAlt(_localctx, 14); + { + this.state = 7852; + this.match(MySqlParser.KW_MID); + } + break; + case MySqlParser.KW_NOW: + this.enterOuterAlt(_localctx, 15); + { + this.state = 7853; + this.match(MySqlParser.KW_NOW); + } + break; + case MySqlParser.KW_REPEAT: + this.enterOuterAlt(_localctx, 16); + { + this.state = 7854; + this.match(MySqlParser.KW_REPEAT); + } + break; + case MySqlParser.KW_REPLACE: + this.enterOuterAlt(_localctx, 17); + { + this.state = 7855; + this.match(MySqlParser.KW_REPLACE); + } + break; + case MySqlParser.KW_SUBSTR: + this.enterOuterAlt(_localctx, 18); + { + this.state = 7856; + this.match(MySqlParser.KW_SUBSTR); + } + break; + case MySqlParser.KW_SUBSTRING: + this.enterOuterAlt(_localctx, 19); + { + this.state = 7857; + this.match(MySqlParser.KW_SUBSTRING); + } + break; + case MySqlParser.KW_SYSDATE: + this.enterOuterAlt(_localctx, 20); + { + this.state = 7858; + this.match(MySqlParser.KW_SYSDATE); + } + break; + case MySqlParser.KW_TRIM: + this.enterOuterAlt(_localctx, 21); + { + this.state = 7859; + this.match(MySqlParser.KW_TRIM); + } + break; + case MySqlParser.KW_UTC_DATE: + this.enterOuterAlt(_localctx, 22); + { + this.state = 7860; + this.match(MySqlParser.KW_UTC_DATE); + } + break; + case MySqlParser.KW_UTC_TIME: + this.enterOuterAlt(_localctx, 23); + { + this.state = 7861; + this.match(MySqlParser.KW_UTC_TIME); + } + break; + case MySqlParser.KW_UTC_TIMESTAMP: + this.enterOuterAlt(_localctx, 24); + { + this.state = 7862; + this.match(MySqlParser.KW_UTC_TIMESTAMP); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public passwordFunctionClause(): PasswordFunctionClauseContext { + let _localctx: PasswordFunctionClauseContext = new PasswordFunctionClauseContext(this._ctx, this.state); + this.enterRule(_localctx, 800, MySqlParser.RULE_passwordFunctionClause); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7865; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_OLD_PASSWORD || _la === MySqlParser.KW_PASSWORD)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7866; + this.match(MySqlParser.LR_BRACKET); + this.state = 7867; + this.functionArg(); + this.state = 7868; + this.match(MySqlParser.RR_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionArgs(): FunctionArgsContext { + let _localctx: FunctionArgsContext = new FunctionArgsContext(this._ctx, this.state); + this.enterRule(_localctx, 802, MySqlParser.RULE_functionArgs); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 7870; + this.functionArg(); + this.state = 7875; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7871; + this.match(MySqlParser.COMMA); + this.state = 7872; + this.functionArg(); + } + } + this.state = 7877; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionArg(): FunctionArgContext { + let _localctx: FunctionArgContext = new FunctionArgContext(this._ctx, this.state); + this.enterRule(_localctx, 804, MySqlParser.RULE_functionArg); + try { + this.state = 7882; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1151, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 7878; + this.constant(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 7879; + this.columnName(); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 7880; + this.functionCall(); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 7881; + this.expression(0); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + + public expression(): ExpressionContext; + public expression(_p: number): ExpressionContext; + // @RuleVersion(0) + public expression(_p?: number): ExpressionContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let _localctx: ExpressionContext = new ExpressionContext(this._ctx, _parentState); + let _prevctx: ExpressionContext = _localctx; + let _startState: number = 806; + this.enterRecursionRule(_localctx, 806, MySqlParser.RULE_expression, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 7895; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1153, this._ctx) ) { + case 1: + { + _localctx = new NotExpressionContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + + this.state = 7885; + (_localctx as NotExpressionContext)._notOperator = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NOT || _la === MySqlParser.EXCLAMATION_SYMBOL)) { + (_localctx as NotExpressionContext)._notOperator = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7886; + this.expression(4); + } + break; + + case 2: + { + _localctx = new IsExpressionContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7887; + this.predicate(0); + this.state = 7888; + this.match(MySqlParser.KW_IS); + this.state = 7890; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7889; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7892; + (_localctx as IsExpressionContext)._testValue = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_FALSE || _la === MySqlParser.KW_TRUE || _la === MySqlParser.KW_UNKNOWN)) { + (_localctx as IsExpressionContext)._testValue = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + break; + + case 3: + { + _localctx = new PredicateExpressionContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7894; + this.predicate(0); + } + break; + } + this._ctx._stop = this._input.tryLT(-1); + this.state = 7903; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1154, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = _localctx; + { + { + _localctx = new LogicalExpressionContext(new ExpressionContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_expression); + this.state = 7897; + if (!(this.precpred(this._ctx, 3))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); + } + this.state = 7898; + this.logicalOperator(); + this.state = 7899; + this.expression(4); + } + } + } + this.state = 7905; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1154, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public predicate(): PredicateContext; + public predicate(_p: number): PredicateContext; + // @RuleVersion(0) + public predicate(_p?: number): PredicateContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let _localctx: PredicateContext = new PredicateContext(this._ctx, _parentState); + let _prevctx: PredicateContext = _localctx; + let _startState: number = 808; + this.enterRecursionRule(_localctx, 808, MySqlParser.RULE_predicate, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + { + _localctx = new ExpressionAtomPredicateContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + + this.state = 7907; + this.expressionAtom(0); + } + this._ctx._stop = this._input.tryLT(-1); + this.state = 7973; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1162, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = _localctx; + { + this.state = 7971; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1161, this._ctx) ) { + case 1: + { + _localctx = new BinaryComparisonPredicateContext(new PredicateContext(_parentctx, _parentState)); + (_localctx as BinaryComparisonPredicateContext)._left = _prevctx; + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7909; + if (!(this.precpred(this._ctx, 8))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 8)"); + } + this.state = 7910; + this.comparisonOperator(); + this.state = 7911; + (_localctx as BinaryComparisonPredicateContext)._right = this.predicate(9); + } + break; + + case 2: + { + _localctx = new BetweenPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7913; + if (!(this.precpred(this._ctx, 6))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 6)"); + } + this.state = 7915; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7914; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7917; + this.match(MySqlParser.KW_BETWEEN); + this.state = 7918; + this.predicate(0); + this.state = 7919; + this.match(MySqlParser.KW_AND); + this.state = 7920; + this.predicate(7); + } + break; + + case 3: + { + _localctx = new SoundsLikePredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7922; + if (!(this.precpred(this._ctx, 5))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 5)"); + } + this.state = 7923; + this.match(MySqlParser.KW_SOUNDS); + this.state = 7924; + this.match(MySqlParser.KW_LIKE); + this.state = 7925; + this.predicate(6); + } + break; + + case 4: + { + _localctx = new RegexpPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7926; + if (!(this.precpred(this._ctx, 3))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); + } + this.state = 7928; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7927; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7930; + (_localctx as RegexpPredicateContext)._regex = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_REGEXP || _la === MySqlParser.KW_RLIKE)) { + (_localctx as RegexpPredicateContext)._regex = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7931; + this.predicate(4); + } + break; + + case 5: + { + _localctx = new InPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7932; + if (!(this.precpred(this._ctx, 10))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 10)"); + } + this.state = 7934; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7933; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7936; + this.match(MySqlParser.KW_IN); + this.state = 7937; + this.match(MySqlParser.LR_BRACKET); + this.state = 7940; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1158, this._ctx) ) { + case 1: + { + this.state = 7938; + this.selectStatement(); + } + break; + + case 2: + { + this.state = 7939; + this.expressions(); + } + break; + } + this.state = 7942; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 6: + { + _localctx = new IsNullPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7944; + if (!(this.precpred(this._ctx, 9))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 9)"); + } + this.state = 7945; + this.match(MySqlParser.KW_IS); + this.state = 7946; + this.nullNotnull(); + } + break; + + case 7: + { + _localctx = new SubqueryComparisonPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7947; + if (!(this.precpred(this._ctx, 7))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 7)"); + } + this.state = 7948; + this.comparisonOperator(); + this.state = 7949; + (_localctx as SubqueryComparisonPredicateContext)._quantifier = this._input.LT(1); + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_ALL || _la === MySqlParser.KW_ANY || _la === MySqlParser.KW_SOME)) { + (_localctx as SubqueryComparisonPredicateContext)._quantifier = this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 7950; + this.match(MySqlParser.LR_BRACKET); + this.state = 7951; + this.selectStatement(); + this.state = 7952; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 8: + { + _localctx = new LikePredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7954; + if (!(this.precpred(this._ctx, 4))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); + } + this.state = 7956; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === MySqlParser.KW_NOT) { + { + this.state = 7955; + this.match(MySqlParser.KW_NOT); + } + } + + this.state = 7958; + this.match(MySqlParser.KW_LIKE); + this.state = 7959; + this.predicate(0); + this.state = 7962; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1160, this._ctx) ) { + case 1: + { + this.state = 7960; + this.match(MySqlParser.KW_ESCAPE); + this.state = 7961; + this.match(MySqlParser.STRING_LITERAL); + } + break; + } + } + break; + + case 9: + { + _localctx = new JsonMemberOfPredicateContext(new PredicateContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_predicate); + this.state = 7964; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 7965; + this.match(MySqlParser.KW_MEMBER); + this.state = 7966; + this.match(MySqlParser.KW_OF); + this.state = 7967; + this.match(MySqlParser.LR_BRACKET); + this.state = 7968; + this.predicate(0); + this.state = 7969; + this.match(MySqlParser.RR_BRACKET); + } + break; + } + } + } + this.state = 7975; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1162, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + public expressionAtom(): ExpressionAtomContext; + public expressionAtom(_p: number): ExpressionAtomContext; + // @RuleVersion(0) + public expressionAtom(_p?: number): ExpressionAtomContext { + if (_p === undefined) { + _p = 0; + } + + let _parentctx: ParserRuleContext = this._ctx; + let _parentState: number = this.state; + let _localctx: ExpressionAtomContext = new ExpressionAtomContext(this._ctx, _parentState); + let _prevctx: ExpressionAtomContext = _localctx; + let _startState: number = 810; + this.enterRecursionRule(_localctx, 810, MySqlParser.RULE_expressionAtom, _p); + let _la: number; + try { + let _alt: number; + this.enterOuterAlt(_localctx, 1); + { + this.state = 8024; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1165, this._ctx) ) { + case 1: + { + _localctx = new ConstantExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + + this.state = 7977; + this.constant(); + } + break; + + case 2: + { + _localctx = new ColumnNameExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7978; + this.columnName(); + } + break; + + case 3: + { + _localctx = new FunctionCallExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7979; + this.functionCall(); + } + break; + + case 4: + { + _localctx = new MysqlVariableExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7980; + this.mysqlVariable(); + } + break; + + case 5: + { + _localctx = new UnaryExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7981; + this.unaryOperator(); + this.state = 7982; + this.expressionAtom(11); + } + break; + + case 6: + { + _localctx = new BinaryExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7984; + this.match(MySqlParser.KW_BINARY); + this.state = 7985; + this.expressionAtom(10); + } + break; + + case 7: + { + _localctx = new VariableAssignExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7986; + this.match(MySqlParser.LOCAL_ID); + this.state = 7987; + this.match(MySqlParser.VAR_ASSIGN); + this.state = 7988; + this.expressionAtom(9); + } + break; + + case 8: + { + _localctx = new NestedExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 7989; + this.match(MySqlParser.LR_BRACKET); + this.state = 7990; + this.expression(0); + this.state = 7995; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === MySqlParser.COMMA) { + { + { + this.state = 7991; + this.match(MySqlParser.COMMA); + this.state = 7992; + this.expression(0); + } + } + this.state = 7997; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 7998; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 9: + { + _localctx = new NestedRowExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 8000; + this.match(MySqlParser.KW_ROW); + this.state = 8001; + this.match(MySqlParser.LR_BRACKET); + this.state = 8002; + this.expression(0); + this.state = 8005; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + { + { + this.state = 8003; + this.match(MySqlParser.COMMA); + this.state = 8004; + this.expression(0); + } + } + this.state = 8007; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while (_la === MySqlParser.COMMA); + this.state = 8009; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 10: + { + _localctx = new ExistsExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 8011; + this.match(MySqlParser.KW_EXISTS); + this.state = 8012; + this.match(MySqlParser.LR_BRACKET); + this.state = 8013; + this.selectStatement(); + this.state = 8014; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 11: + { + _localctx = new SubqueryExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 8016; + this.match(MySqlParser.LR_BRACKET); + this.state = 8017; + this.selectStatement(); + this.state = 8018; + this.match(MySqlParser.RR_BRACKET); + } + break; + + case 12: + { + _localctx = new IntervalExpressionAtomContext(_localctx); + this._ctx = _localctx; + _prevctx = _localctx; + this.state = 8020; + this.match(MySqlParser.KW_INTERVAL); + this.state = 8021; + this.expression(0); + this.state = 8022; + this.intervalType(); + } + break; + } + this._ctx._stop = this._input.tryLT(-1); + this.state = 8043; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1167, this._ctx); + while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { + if (_alt === 1) { + if (this._parseListeners != null) { + this.triggerExitRuleEvent(); + } + _prevctx = _localctx; + { + this.state = 8041; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1166, this._ctx) ) { + case 1: + { + _localctx = new BitExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); + (_localctx as BitExpressionAtomContext)._left = _prevctx; + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_expressionAtom); + this.state = 8026; + if (!(this.precpred(this._ctx, 3))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); + } + this.state = 8027; + this.bitOperator(); + this.state = 8028; + (_localctx as BitExpressionAtomContext)._right = this.expressionAtom(4); + } + break; + + case 2: + { + _localctx = new MathExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); + (_localctx as MathExpressionAtomContext)._left = _prevctx; + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_expressionAtom); + this.state = 8030; + if (!(this.precpred(this._ctx, 2))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); + } + this.state = 8031; + this.mathOperator(); + this.state = 8032; + (_localctx as MathExpressionAtomContext)._right = this.expressionAtom(3); + } + break; + + case 3: + { + _localctx = new JsonExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); + (_localctx as JsonExpressionAtomContext)._left = _prevctx; + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_expressionAtom); + this.state = 8034; + if (!(this.precpred(this._ctx, 1))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 1)"); + } + this.state = 8035; + this.jsonOperator(); + this.state = 8036; + (_localctx as JsonExpressionAtomContext)._right = this.expressionAtom(2); + } + break; + + case 4: + { + _localctx = new CollateExpressionAtomContext(new ExpressionAtomContext(_parentctx, _parentState)); + this.pushNewRecursionContext(_localctx, _startState, MySqlParser.RULE_expressionAtom); + this.state = 8038; + if (!(this.precpred(this._ctx, 13))) { + throw this.createFailedPredicateException("this.precpred(this._ctx, 13)"); + } + this.state = 8039; + this.match(MySqlParser.KW_COLLATE); + this.state = 8040; + this.collationName(); + } + break; + } + } + } + this.state = 8045; + this._errHandler.sync(this); + _alt = this.interpreter.adaptivePredict(this._input, 1167, this._ctx); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.unrollRecursionContexts(_parentctx); + } + return _localctx; + } + // @RuleVersion(0) + public unaryOperator(): UnaryOperatorContext { + let _localctx: UnaryOperatorContext = new UnaryOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 812, MySqlParser.RULE_unaryOperator); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8046; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_NOT || ((((_la - 853)) & ~0x1F) === 0 && ((1 << (_la - 853)) & ((1 << (MySqlParser.PLUS - 853)) | (1 << (MySqlParser.MINUS - 853)) | (1 << (MySqlParser.EXCLAMATION_SYMBOL - 853)) | (1 << (MySqlParser.BIT_NOT_OP - 853)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public comparisonOperator(): ComparisonOperatorContext { + let _localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 814, MySqlParser.RULE_comparisonOperator); + try { + this.state = 8056; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1168, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 8048; + this.comparisonBase(); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 8049; + this.match(MySqlParser.LESS_SYMBOL); + this.state = 8050; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 8051; + this.match(MySqlParser.EXCLAMATION_SYMBOL); + this.state = 8052; + this.match(MySqlParser.EQUAL_SYMBOL); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 8053; + this.match(MySqlParser.LESS_SYMBOL); + this.state = 8054; + this.match(MySqlParser.EQUAL_SYMBOL); + this.state = 8055; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public comparisonBase(): ComparisonBaseContext { + let _localctx: ComparisonBaseContext = new ComparisonBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 816, MySqlParser.RULE_comparisonBase); + try { + this.state = 8065; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1169, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 8058; + this.match(MySqlParser.EQUAL_SYMBOL); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 8059; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + + case 3: + this.enterOuterAlt(_localctx, 3); + { + this.state = 8060; + this.match(MySqlParser.LESS_SYMBOL); + } + break; + + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 8061; + this.match(MySqlParser.LESS_SYMBOL); + this.state = 8062; + this.match(MySqlParser.EQUAL_SYMBOL); + } + break; + + case 5: + this.enterOuterAlt(_localctx, 5); + { + this.state = 8063; + this.match(MySqlParser.GREATER_SYMBOL); + this.state = 8064; + this.match(MySqlParser.EQUAL_SYMBOL); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public logicalOperator(): LogicalOperatorContext { + let _localctx: LogicalOperatorContext = new LogicalOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 818, MySqlParser.RULE_logicalOperator); + try { + this.state = 8074; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.KW_AND: + this.enterOuterAlt(_localctx, 1); + { + this.state = 8067; + this.match(MySqlParser.KW_AND); + } + break; + case MySqlParser.BIT_AND_OP: + this.enterOuterAlt(_localctx, 2); + { + this.state = 8068; + this.match(MySqlParser.BIT_AND_OP); + this.state = 8069; + this.match(MySqlParser.BIT_AND_OP); + } + break; + case MySqlParser.KW_XOR: + this.enterOuterAlt(_localctx, 3); + { + this.state = 8070; + this.match(MySqlParser.KW_XOR); + } + break; + case MySqlParser.KW_OR: + this.enterOuterAlt(_localctx, 4); + { + this.state = 8071; + this.match(MySqlParser.KW_OR); + } + break; + case MySqlParser.BIT_OR_OP: + this.enterOuterAlt(_localctx, 5); + { + this.state = 8072; + this.match(MySqlParser.BIT_OR_OP); + this.state = 8073; + this.match(MySqlParser.BIT_OR_OP); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public bitOperator(): BitOperatorContext { + let _localctx: BitOperatorContext = new BitOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 820, MySqlParser.RULE_bitOperator); + try { + this.state = 8083; + this._errHandler.sync(this); + switch (this._input.LA(1)) { + case MySqlParser.LESS_SYMBOL: + this.enterOuterAlt(_localctx, 1); + { + this.state = 8076; + this.match(MySqlParser.LESS_SYMBOL); + this.state = 8077; + this.match(MySqlParser.LESS_SYMBOL); + } + break; + case MySqlParser.GREATER_SYMBOL: + this.enterOuterAlt(_localctx, 2); + { + this.state = 8078; + this.match(MySqlParser.GREATER_SYMBOL); + this.state = 8079; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + case MySqlParser.BIT_AND_OP: + this.enterOuterAlt(_localctx, 3); + { + this.state = 8080; + this.match(MySqlParser.BIT_AND_OP); + } + break; + case MySqlParser.BIT_XOR_OP: + this.enterOuterAlt(_localctx, 4); + { + this.state = 8081; + this.match(MySqlParser.BIT_XOR_OP); + } + break; + case MySqlParser.BIT_OR_OP: + this.enterOuterAlt(_localctx, 5); + { + this.state = 8082; + this.match(MySqlParser.BIT_OR_OP); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public mathOperator(): MathOperatorContext { + let _localctx: MathOperatorContext = new MathOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 822, MySqlParser.RULE_mathOperator); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8085; + _la = this._input.LA(1); + if (!(((((_la - 850)) & ~0x1F) === 0 && ((1 << (_la - 850)) & ((1 << (MySqlParser.STAR - 850)) | (1 << (MySqlParser.DIVIDE - 850)) | (1 << (MySqlParser.MODULE - 850)) | (1 << (MySqlParser.PLUS - 850)) | (1 << (MySqlParser.MINUS - 850)) | (1 << (MySqlParser.DIV - 850)) | (1 << (MySqlParser.MOD - 850)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public jsonOperator(): JsonOperatorContext { + let _localctx: JsonOperatorContext = new JsonOperatorContext(this._ctx, this.state); + this.enterRule(_localctx, 824, MySqlParser.RULE_jsonOperator); + try { + this.state = 8092; + this._errHandler.sync(this); + switch ( this.interpreter.adaptivePredict(this._input, 1172, this._ctx) ) { + case 1: + this.enterOuterAlt(_localctx, 1); + { + this.state = 8087; + this.match(MySqlParser.MINUS); + this.state = 8088; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + + case 2: + this.enterOuterAlt(_localctx, 2); + { + this.state = 8089; + this.match(MySqlParser.MINUS); + this.state = 8090; + this.match(MySqlParser.GREATER_SYMBOL); + this.state = 8091; + this.match(MySqlParser.GREATER_SYMBOL); + } + break; + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public charsetNameBase(): CharsetNameBaseContext { + let _localctx: CharsetNameBaseContext = new CharsetNameBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 826, MySqlParser.RULE_charsetNameBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8094; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_BINARY || ((((_la - 756)) & ~0x1F) === 0 && ((1 << (_la - 756)) & ((1 << (MySqlParser.KW_ARMSCII8 - 756)) | (1 << (MySqlParser.KW_ASCII - 756)) | (1 << (MySqlParser.KW_BIG5 - 756)) | (1 << (MySqlParser.KW_CP1250 - 756)) | (1 << (MySqlParser.KW_CP1251 - 756)) | (1 << (MySqlParser.KW_CP1256 - 756)) | (1 << (MySqlParser.KW_CP1257 - 756)) | (1 << (MySqlParser.KW_CP850 - 756)) | (1 << (MySqlParser.KW_CP852 - 756)) | (1 << (MySqlParser.KW_CP866 - 756)) | (1 << (MySqlParser.KW_CP932 - 756)) | (1 << (MySqlParser.KW_DEC8 - 756)) | (1 << (MySqlParser.KW_EUCJPMS - 756)) | (1 << (MySqlParser.KW_EUCKR - 756)) | (1 << (MySqlParser.KW_GB18030 - 756)) | (1 << (MySqlParser.KW_GB2312 - 756)) | (1 << (MySqlParser.KW_GBK - 756)) | (1 << (MySqlParser.KW_GEOSTD8 - 756)) | (1 << (MySqlParser.KW_GREEK - 756)) | (1 << (MySqlParser.KW_HEBREW - 756)) | (1 << (MySqlParser.KW_HP8 - 756)) | (1 << (MySqlParser.KW_KEYBCS2 - 756)) | (1 << (MySqlParser.KW_KOI8R - 756)) | (1 << (MySqlParser.KW_KOI8U - 756)) | (1 << (MySqlParser.KW_LATIN1 - 756)) | (1 << (MySqlParser.KW_LATIN2 - 756)) | (1 << (MySqlParser.KW_LATIN5 - 756)) | (1 << (MySqlParser.KW_LATIN7 - 756)) | (1 << (MySqlParser.KW_MACCE - 756)) | (1 << (MySqlParser.KW_MACROMAN - 756)) | (1 << (MySqlParser.KW_SJIS - 756)) | (1 << (MySqlParser.KW_SWE7 - 756)))) !== 0) || ((((_la - 788)) & ~0x1F) === 0 && ((1 << (_la - 788)) & ((1 << (MySqlParser.KW_TIS620 - 788)) | (1 << (MySqlParser.KW_UCS2 - 788)) | (1 << (MySqlParser.KW_UJIS - 788)) | (1 << (MySqlParser.KW_UTF16 - 788)) | (1 << (MySqlParser.KW_UTF16LE - 788)) | (1 << (MySqlParser.KW_UTF32 - 788)) | (1 << (MySqlParser.KW_UTF8 - 788)) | (1 << (MySqlParser.KW_UTF8MB3 - 788)) | (1 << (MySqlParser.KW_UTF8MB4 - 788)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public transactionLevelBase(): TransactionLevelBaseContext { + let _localctx: TransactionLevelBaseContext = new TransactionLevelBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 828, MySqlParser.RULE_transactionLevelBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8096; + _la = this._input.LA(1); + if (!(((((_la - 809)) & ~0x1F) === 0 && ((1 << (_la - 809)) & ((1 << (MySqlParser.KW_REPEATABLE - 809)) | (1 << (MySqlParser.KW_COMMITTED - 809)) | (1 << (MySqlParser.KW_UNCOMMITTED - 809)) | (1 << (MySqlParser.KW_SERIALIZABLE - 809)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public privilegesBase(): PrivilegesBaseContext { + let _localctx: PrivilegesBaseContext = new PrivilegesBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 830, MySqlParser.RULE_privilegesBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8098; + _la = this._input.LA(1); + if (!(((((_la - 717)) & ~0x1F) === 0 && ((1 << (_la - 717)) & ((1 << (MySqlParser.KW_EXECUTE - 717)) | (1 << (MySqlParser.KW_FILE - 717)) | (1 << (MySqlParser.KW_PRIVILEGES - 717)) | (1 << (MySqlParser.KW_PROCESS - 717)) | (1 << (MySqlParser.KW_RELOAD - 717)) | (1 << (MySqlParser.KW_ROUTINE - 717)))) !== 0) || ((((_la - 749)) & ~0x1F) === 0 && ((1 << (_la - 749)) & ((1 << (MySqlParser.KW_SHUTDOWN - 749)) | (1 << (MySqlParser.KW_SUPER - 749)) | (1 << (MySqlParser.KW_TABLES - 749)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public intervalTypeBase(): IntervalTypeBaseContext { + let _localctx: IntervalTypeBaseContext = new IntervalTypeBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 832, MySqlParser.RULE_intervalTypeBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8100; + _la = this._input.LA(1); + if (!(((((_la - 696)) & ~0x1F) === 0 && ((1 << (_la - 696)) & ((1 << (MySqlParser.KW_QUARTER - 696)) | (1 << (MySqlParser.KW_MONTH - 696)) | (1 << (MySqlParser.KW_DAY - 696)) | (1 << (MySqlParser.KW_HOUR - 696)) | (1 << (MySqlParser.KW_MINUTE - 696)) | (1 << (MySqlParser.KW_WEEK - 696)) | (1 << (MySqlParser.KW_SECOND - 696)) | (1 << (MySqlParser.KW_MICROSECOND - 696)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public dataTypeBase(): DataTypeBaseContext { + let _localctx: DataTypeBaseContext = new DataTypeBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 834, MySqlParser.RULE_dataTypeBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8102; + _la = this._input.LA(1); + if (!(((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_DATETIME - 219)) | (1 << (MySqlParser.KW_YEAR - 219)) | (1 << (MySqlParser.KW_TEXT - 219)) | (1 << (MySqlParser.KW_ENUM - 219)))) !== 0))) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public keywordsCanBeId(): KeywordsCanBeIdContext { + let _localctx: KeywordsCanBeIdContext = new KeywordsCanBeIdContext(this._ctx, this.state); + this.enterRule(_localctx, 836, MySqlParser.RULE_keywordsCanBeId); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8104; + _la = this._input.LA(1); + if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << MySqlParser.KW_ARRAY) | (1 << MySqlParser.KW_ATTRIBUTE) | (1 << MySqlParser.KW_BUCKETS) | (1 << MySqlParser.KW_CONDITION))) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & ((1 << (MySqlParser.KW_CURRENT - 36)) | (1 << (MySqlParser.KW_CURRENT_USER - 36)) | (1 << (MySqlParser.KW_DEFAULT - 36)) | (1 << (MySqlParser.KW_DIAGNOSTICS - 36)) | (1 << (MySqlParser.KW_EMPTY - 36)) | (1 << (MySqlParser.KW_ENFORCED - 36)) | (1 << (MySqlParser.KW_EXCEPT - 36)))) !== 0) || _la === MySqlParser.KW_GROUP || _la === MySqlParser.KW_LATERAL || ((((_la - 117)) & ~0x1F) === 0 && ((1 << (_la - 117)) & ((1 << (MySqlParser.KW_NUMBER - 117)) | (1 << (MySqlParser.KW_OPTIONAL - 117)) | (1 << (MySqlParser.KW_ORDER - 117)) | (1 << (MySqlParser.KW_PRIMARY - 117)))) !== 0) || _la === MySqlParser.KW_SKIP_QUERY_REWRITE || _la === MySqlParser.KW_STACKED || ((((_la - 241)) & ~0x1F) === 0 && ((1 << (_la - 241)) & ((1 << (MySqlParser.KW_SERIAL - 241)) | (1 << (MySqlParser.KW_NESTED - 241)) | (1 << (MySqlParser.KW_ORDINALITY - 241)) | (1 << (MySqlParser.KW_PATH - 241)) | (1 << (MySqlParser.KW_AVG - 241)) | (1 << (MySqlParser.KW_BIT_AND - 241)) | (1 << (MySqlParser.KW_BIT_OR - 241)) | (1 << (MySqlParser.KW_BIT_XOR - 241)) | (1 << (MySqlParser.KW_COUNT - 241)) | (1 << (MySqlParser.KW_GROUP_CONCAT - 241)) | (1 << (MySqlParser.KW_MAX - 241)) | (1 << (MySqlParser.KW_MIN - 241)))) !== 0) || ((((_la - 277)) & ~0x1F) === 0 && ((1 << (_la - 277)) & ((1 << (MySqlParser.KW_STD - 277)) | (1 << (MySqlParser.KW_STDDEV - 277)) | (1 << (MySqlParser.KW_STDDEV_POP - 277)) | (1 << (MySqlParser.KW_STDDEV_SAMP - 277)) | (1 << (MySqlParser.KW_SUM - 277)) | (1 << (MySqlParser.KW_VAR_POP - 277)) | (1 << (MySqlParser.KW_VAR_SAMP - 277)) | (1 << (MySqlParser.KW_VARIANCE - 277)) | (1 << (MySqlParser.KW_ACCOUNT - 277)) | (1 << (MySqlParser.KW_ACTION - 277)) | (1 << (MySqlParser.KW_AFTER - 277)) | (1 << (MySqlParser.KW_AGGREGATE - 277)) | (1 << (MySqlParser.KW_ALGORITHM - 277)))) !== 0) || ((((_la - 309)) & ~0x1F) === 0 && ((1 << (_la - 309)) & ((1 << (MySqlParser.KW_ANY - 309)) | (1 << (MySqlParser.KW_AT - 309)) | (1 << (MySqlParser.KW_AUTHORS - 309)) | (1 << (MySqlParser.KW_AUTOCOMMIT - 309)) | (1 << (MySqlParser.KW_AUTOEXTEND_SIZE - 309)) | (1 << (MySqlParser.KW_AUTO_INCREMENT - 309)) | (1 << (MySqlParser.KW_AVG_ROW_LENGTH - 309)) | (1 << (MySqlParser.KW_BEGIN - 309)) | (1 << (MySqlParser.KW_BINLOG - 309)) | (1 << (MySqlParser.KW_BIT - 309)) | (1 << (MySqlParser.KW_BLOCK - 309)) | (1 << (MySqlParser.KW_BOOL - 309)) | (1 << (MySqlParser.KW_BOOLEAN - 309)) | (1 << (MySqlParser.KW_BTREE - 309)) | (1 << (MySqlParser.KW_CACHE - 309)) | (1 << (MySqlParser.KW_CASCADED - 309)) | (1 << (MySqlParser.KW_CHAIN - 309)) | (1 << (MySqlParser.KW_CHANGED - 309)) | (1 << (MySqlParser.KW_CHANNEL - 309)) | (1 << (MySqlParser.KW_CHECKSUM - 309)) | (1 << (MySqlParser.KW_CIPHER - 309)) | (1 << (MySqlParser.KW_CLASS_ORIGIN - 309)) | (1 << (MySqlParser.KW_CLIENT - 309)) | (1 << (MySqlParser.KW_CLOSE - 309)) | (1 << (MySqlParser.KW_COALESCE - 309)) | (1 << (MySqlParser.KW_CODE - 309)) | (1 << (MySqlParser.KW_COLUMNS - 309)) | (1 << (MySqlParser.KW_COLUMN_FORMAT - 309)) | (1 << (MySqlParser.KW_COLUMN_NAME - 309)) | (1 << (MySqlParser.KW_COMMENT - 309)))) !== 0) || ((((_la - 341)) & ~0x1F) === 0 && ((1 << (_la - 341)) & ((1 << (MySqlParser.KW_COMMIT - 341)) | (1 << (MySqlParser.KW_COMPACT - 341)) | (1 << (MySqlParser.KW_COMPLETION - 341)) | (1 << (MySqlParser.KW_COMPRESSED - 341)) | (1 << (MySqlParser.KW_COMPRESSION - 341)) | (1 << (MySqlParser.KW_CONCURRENT - 341)) | (1 << (MySqlParser.KW_CONNECT - 341)) | (1 << (MySqlParser.KW_CONNECTION - 341)) | (1 << (MySqlParser.KW_CONSISTENT - 341)) | (1 << (MySqlParser.KW_CONSTRAINT_CATALOG - 341)) | (1 << (MySqlParser.KW_CONSTRAINT_SCHEMA - 341)) | (1 << (MySqlParser.KW_CONSTRAINT_NAME - 341)) | (1 << (MySqlParser.KW_CONTAINS - 341)) | (1 << (MySqlParser.KW_CONTEXT - 341)) | (1 << (MySqlParser.KW_CONTRIBUTORS - 341)) | (1 << (MySqlParser.KW_COPY - 341)) | (1 << (MySqlParser.KW_CPU - 341)) | (1 << (MySqlParser.KW_CURSOR_NAME - 341)) | (1 << (MySqlParser.KW_DATA - 341)) | (1 << (MySqlParser.KW_DATAFILE - 341)) | (1 << (MySqlParser.KW_DEALLOCATE - 341)) | (1 << (MySqlParser.KW_DEFAULT_AUTH - 341)) | (1 << (MySqlParser.KW_DEFINER - 341)) | (1 << (MySqlParser.KW_DELAY_KEY_WRITE - 341)) | (1 << (MySqlParser.KW_DES_KEY_FILE - 341)) | (1 << (MySqlParser.KW_DIRECTORY - 341)) | (1 << (MySqlParser.KW_DISABLE - 341)) | (1 << (MySqlParser.KW_DISCARD - 341)) | (1 << (MySqlParser.KW_DISK - 341)) | (1 << (MySqlParser.KW_DO - 341)) | (1 << (MySqlParser.KW_DUMPFILE - 341)))) !== 0) || ((((_la - 373)) & ~0x1F) === 0 && ((1 << (_la - 373)) & ((1 << (MySqlParser.KW_DUPLICATE - 373)) | (1 << (MySqlParser.KW_DYNAMIC - 373)) | (1 << (MySqlParser.KW_ENABLE - 373)) | (1 << (MySqlParser.KW_ENCRYPTION - 373)) | (1 << (MySqlParser.KW_END - 373)) | (1 << (MySqlParser.KW_ENDS - 373)) | (1 << (MySqlParser.KW_ENGINE - 373)) | (1 << (MySqlParser.KW_ENGINES - 373)) | (1 << (MySqlParser.KW_ERROR - 373)) | (1 << (MySqlParser.KW_ERRORS - 373)) | (1 << (MySqlParser.KW_ESCAPE - 373)) | (1 << (MySqlParser.KW_EVENT - 373)) | (1 << (MySqlParser.KW_EVENTS - 373)) | (1 << (MySqlParser.KW_EVERY - 373)) | (1 << (MySqlParser.KW_EXCHANGE - 373)) | (1 << (MySqlParser.KW_EXCLUSIVE - 373)) | (1 << (MySqlParser.KW_EXPIRE - 373)) | (1 << (MySqlParser.KW_EXPORT - 373)) | (1 << (MySqlParser.KW_EXTENDED - 373)) | (1 << (MySqlParser.KW_EXTENT_SIZE - 373)) | (1 << (MySqlParser.KW_FAILED_LOGIN_ATTEMPTS - 373)) | (1 << (MySqlParser.KW_FAST - 373)) | (1 << (MySqlParser.KW_FAULTS - 373)) | (1 << (MySqlParser.KW_FIELDS - 373)) | (1 << (MySqlParser.KW_FILE_BLOCK_SIZE - 373)) | (1 << (MySqlParser.KW_FILTER - 373)) | (1 << (MySqlParser.KW_FIRST - 373)) | (1 << (MySqlParser.KW_FIXED - 373)) | (1 << (MySqlParser.KW_FLUSH - 373)))) !== 0) || ((((_la - 406)) & ~0x1F) === 0 && ((1 << (_la - 406)) & ((1 << (MySqlParser.KW_FOLLOWS - 406)) | (1 << (MySqlParser.KW_FOUND - 406)) | (1 << (MySqlParser.KW_FULL - 406)) | (1 << (MySqlParser.KW_FUNCTION - 406)) | (1 << (MySqlParser.KW_GENERAL - 406)) | (1 << (MySqlParser.KW_GLOBAL - 406)) | (1 << (MySqlParser.KW_GRANTS - 406)) | (1 << (MySqlParser.KW_GROUP_REPLICATION - 406)) | (1 << (MySqlParser.KW_HANDLER - 406)) | (1 << (MySqlParser.KW_HASH - 406)) | (1 << (MySqlParser.KW_HELP - 406)) | (1 << (MySqlParser.KW_HISTORY - 406)) | (1 << (MySqlParser.KW_HOST - 406)) | (1 << (MySqlParser.KW_HOSTS - 406)) | (1 << (MySqlParser.KW_IDENTIFIED - 406)) | (1 << (MySqlParser.KW_IGNORE_SERVER_IDS - 406)) | (1 << (MySqlParser.KW_IMPORT - 406)) | (1 << (MySqlParser.KW_INDEXES - 406)) | (1 << (MySqlParser.KW_INITIAL_SIZE - 406)) | (1 << (MySqlParser.KW_INPLACE - 406)) | (1 << (MySqlParser.KW_INSERT_METHOD - 406)) | (1 << (MySqlParser.KW_INSTALL - 406)) | (1 << (MySqlParser.KW_INSTANCE - 406)) | (1 << (MySqlParser.KW_INSTANT - 406)) | (1 << (MySqlParser.KW_INVOKER - 406)) | (1 << (MySqlParser.KW_IO - 406)))) !== 0) || ((((_la - 438)) & ~0x1F) === 0 && ((1 << (_la - 438)) & ((1 << (MySqlParser.KW_IO_THREAD - 438)) | (1 << (MySqlParser.KW_IPC - 438)) | (1 << (MySqlParser.KW_ISOLATION - 438)) | (1 << (MySqlParser.KW_ISSUER - 438)) | (1 << (MySqlParser.KW_JSON - 438)) | (1 << (MySqlParser.KW_KEY_BLOCK_SIZE - 438)) | (1 << (MySqlParser.KW_LANGUAGE - 438)) | (1 << (MySqlParser.KW_LAST - 438)) | (1 << (MySqlParser.KW_LEAVES - 438)) | (1 << (MySqlParser.KW_LESS - 438)) | (1 << (MySqlParser.KW_LEVEL - 438)) | (1 << (MySqlParser.KW_LIST - 438)) | (1 << (MySqlParser.KW_LOCAL - 438)) | (1 << (MySqlParser.KW_LOGFILE - 438)) | (1 << (MySqlParser.KW_LOGS - 438)) | (1 << (MySqlParser.KW_MASTER - 438)) | (1 << (MySqlParser.KW_MASTER_AUTO_POSITION - 438)) | (1 << (MySqlParser.KW_MASTER_CONNECT_RETRY - 438)) | (1 << (MySqlParser.KW_MASTER_DELAY - 438)) | (1 << (MySqlParser.KW_MASTER_HEARTBEAT_PERIOD - 438)) | (1 << (MySqlParser.KW_MASTER_HOST - 438)) | (1 << (MySqlParser.KW_MASTER_LOG_FILE - 438)) | (1 << (MySqlParser.KW_MASTER_LOG_POS - 438)) | (1 << (MySqlParser.KW_MASTER_PASSWORD - 438)) | (1 << (MySqlParser.KW_MASTER_PORT - 438)) | (1 << (MySqlParser.KW_MASTER_RETRY_COUNT - 438)) | (1 << (MySqlParser.KW_MASTER_SSL - 438)) | (1 << (MySqlParser.KW_MASTER_SSL_CA - 438)) | (1 << (MySqlParser.KW_MASTER_SSL_CAPATH - 438)) | (1 << (MySqlParser.KW_MASTER_SSL_CERT - 438)))) !== 0) || ((((_la - 470)) & ~0x1F) === 0 && ((1 << (_la - 470)) & ((1 << (MySqlParser.KW_MASTER_SSL_CIPHER - 470)) | (1 << (MySqlParser.KW_MASTER_SSL_CRL - 470)) | (1 << (MySqlParser.KW_MASTER_SSL_CRLPATH - 470)) | (1 << (MySqlParser.KW_MASTER_SSL_KEY - 470)) | (1 << (MySqlParser.KW_MASTER_TLS_VERSION - 470)) | (1 << (MySqlParser.KW_MASTER_USER - 470)) | (1 << (MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR - 470)) | (1 << (MySqlParser.KW_MAX_QUERIES_PER_HOUR - 470)) | (1 << (MySqlParser.KW_MAX_ROWS - 470)) | (1 << (MySqlParser.KW_MAX_SIZE - 470)) | (1 << (MySqlParser.KW_MAX_UPDATES_PER_HOUR - 470)) | (1 << (MySqlParser.KW_MAX_USER_CONNECTIONS - 470)) | (1 << (MySqlParser.KW_MEDIUM - 470)) | (1 << (MySqlParser.KW_MEMBER - 470)) | (1 << (MySqlParser.KW_MERGE - 470)) | (1 << (MySqlParser.KW_MESSAGE_TEXT - 470)) | (1 << (MySqlParser.KW_MID - 470)) | (1 << (MySqlParser.KW_MIGRATE - 470)) | (1 << (MySqlParser.KW_MIN_ROWS - 470)) | (1 << (MySqlParser.KW_MODE - 470)) | (1 << (MySqlParser.KW_MODIFY - 470)) | (1 << (MySqlParser.KW_MUTEX - 470)) | (1 << (MySqlParser.KW_MYSQL - 470)) | (1 << (MySqlParser.KW_MYSQL_ERRNO - 470)) | (1 << (MySqlParser.KW_NAME - 470)) | (1 << (MySqlParser.KW_NAMES - 470)) | (1 << (MySqlParser.KW_NCHAR - 470)) | (1 << (MySqlParser.KW_NEVER - 470)) | (1 << (MySqlParser.KW_NEXT - 470)))) !== 0) || ((((_la - 502)) & ~0x1F) === 0 && ((1 << (_la - 502)) & ((1 << (MySqlParser.KW_NO - 502)) | (1 << (MySqlParser.KW_NOWAIT - 502)) | (1 << (MySqlParser.KW_NODEGROUP - 502)) | (1 << (MySqlParser.KW_NONE - 502)) | (1 << (MySqlParser.KW_ODBC - 502)) | (1 << (MySqlParser.KW_OFFLINE - 502)) | (1 << (MySqlParser.KW_OFFSET - 502)) | (1 << (MySqlParser.KW_OF - 502)) | (1 << (MySqlParser.KW_OLD_PASSWORD - 502)) | (1 << (MySqlParser.KW_ONE - 502)) | (1 << (MySqlParser.KW_ONLINE - 502)) | (1 << (MySqlParser.KW_ONLY - 502)) | (1 << (MySqlParser.KW_OPEN - 502)) | (1 << (MySqlParser.KW_OPTIMIZER_COSTS - 502)) | (1 << (MySqlParser.KW_OPTIONS - 502)) | (1 << (MySqlParser.KW_OWNER - 502)) | (1 << (MySqlParser.KW_PACK_KEYS - 502)) | (1 << (MySqlParser.KW_PAGE - 502)) | (1 << (MySqlParser.KW_PAGE_CHECKSUM - 502)) | (1 << (MySqlParser.KW_PARSER - 502)) | (1 << (MySqlParser.KW_PARTIAL - 502)) | (1 << (MySqlParser.KW_PARTITIONING - 502)) | (1 << (MySqlParser.KW_PARTITIONS - 502)) | (1 << (MySqlParser.KW_PASSWORD - 502)) | (1 << (MySqlParser.KW_PASSWORD_LOCK_TIME - 502)) | (1 << (MySqlParser.KW_PHASE - 502)))) !== 0) || ((((_la - 534)) & ~0x1F) === 0 && ((1 << (_la - 534)) & ((1 << (MySqlParser.KW_PLUGIN - 534)) | (1 << (MySqlParser.KW_PLUGIN_DIR - 534)) | (1 << (MySqlParser.KW_PLUGINS - 534)) | (1 << (MySqlParser.KW_PORT - 534)) | (1 << (MySqlParser.KW_PRECEDES - 534)) | (1 << (MySqlParser.KW_PREPARE - 534)) | (1 << (MySqlParser.KW_PRESERVE - 534)) | (1 << (MySqlParser.KW_PREV - 534)) | (1 << (MySqlParser.KW_PROCESSLIST - 534)) | (1 << (MySqlParser.KW_PROFILE - 534)) | (1 << (MySqlParser.KW_PROFILES - 534)) | (1 << (MySqlParser.KW_PROXY - 534)) | (1 << (MySqlParser.KW_QUERY - 534)) | (1 << (MySqlParser.KW_QUICK - 534)) | (1 << (MySqlParser.KW_REBUILD - 534)) | (1 << (MySqlParser.KW_RECOVER - 534)) | (1 << (MySqlParser.KW_RECURSIVE - 534)) | (1 << (MySqlParser.KW_REDO_BUFFER_SIZE - 534)) | (1 << (MySqlParser.KW_REDUNDANT - 534)) | (1 << (MySqlParser.KW_RELAY - 534)) | (1 << (MySqlParser.KW_RELAY_LOG_FILE - 534)) | (1 << (MySqlParser.KW_RELAY_LOG_POS - 534)) | (1 << (MySqlParser.KW_RELAYLOG - 534)) | (1 << (MySqlParser.KW_REMOVE - 534)) | (1 << (MySqlParser.KW_REORGANIZE - 534)) | (1 << (MySqlParser.KW_REPAIR - 534)) | (1 << (MySqlParser.KW_REPLICATE_DO_DB - 534)))) !== 0) || ((((_la - 566)) & ~0x1F) === 0 && ((1 << (_la - 566)) & ((1 << (MySqlParser.KW_REPLICATE_DO_TABLE - 566)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_DB - 566)) | (1 << (MySqlParser.KW_REPLICATE_IGNORE_TABLE - 566)) | (1 << (MySqlParser.KW_REPLICATE_REWRITE_DB - 566)) | (1 << (MySqlParser.KW_REPLICATE_WILD_DO_TABLE - 566)) | (1 << (MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE - 566)) | (1 << (MySqlParser.KW_REPLICATION - 566)) | (1 << (MySqlParser.KW_RESET - 566)) | (1 << (MySqlParser.KW_RESUME - 566)) | (1 << (MySqlParser.KW_RETURNED_SQLSTATE - 566)) | (1 << (MySqlParser.KW_RETURNS - 566)) | (1 << (MySqlParser.KW_REUSE - 566)) | (1 << (MySqlParser.KW_ROLE - 566)) | (1 << (MySqlParser.KW_ROLLBACK - 566)) | (1 << (MySqlParser.KW_ROLLUP - 566)) | (1 << (MySqlParser.KW_ROTATE - 566)) | (1 << (MySqlParser.KW_ROW - 566)) | (1 << (MySqlParser.KW_ROWS - 566)) | (1 << (MySqlParser.KW_ROW_FORMAT - 566)) | (1 << (MySqlParser.KW_SAVEPOINT - 566)) | (1 << (MySqlParser.KW_SCHEDULE - 566)) | (1 << (MySqlParser.KW_SECURITY - 566)) | (1 << (MySqlParser.KW_SERVER - 566)) | (1 << (MySqlParser.KW_SESSION - 566)) | (1 << (MySqlParser.KW_SHARE - 566)) | (1 << (MySqlParser.KW_SHARED - 566)) | (1 << (MySqlParser.KW_SIGNED - 566)) | (1 << (MySqlParser.KW_SIMPLE - 566)))) !== 0) || ((((_la - 598)) & ~0x1F) === 0 && ((1 << (_la - 598)) & ((1 << (MySqlParser.KW_SLAVE - 598)) | (1 << (MySqlParser.KW_SLOW - 598)) | (1 << (MySqlParser.KW_SNAPSHOT - 598)) | (1 << (MySqlParser.KW_SOCKET - 598)) | (1 << (MySqlParser.KW_SOME - 598)) | (1 << (MySqlParser.KW_SONAME - 598)) | (1 << (MySqlParser.KW_SOUNDS - 598)) | (1 << (MySqlParser.KW_SOURCE - 598)))) !== 0) || ((((_la - 633)) & ~0x1F) === 0 && ((1 << (_la - 633)) & ((1 << (MySqlParser.KW_SQL_AFTER_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_AFTER_MTS_GAPS - 633)) | (1 << (MySqlParser.KW_SQL_BEFORE_GTIDS - 633)) | (1 << (MySqlParser.KW_SQL_BUFFER_RESULT - 633)) | (1 << (MySqlParser.KW_SQL_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_NO_CACHE - 633)) | (1 << (MySqlParser.KW_SQL_THREAD - 633)) | (1 << (MySqlParser.KW_START - 633)) | (1 << (MySqlParser.KW_STARTS - 633)) | (1 << (MySqlParser.KW_STATS_AUTO_RECALC - 633)) | (1 << (MySqlParser.KW_STATS_PERSISTENT - 633)) | (1 << (MySqlParser.KW_STATS_SAMPLE_PAGES - 633)) | (1 << (MySqlParser.KW_STATUS - 633)) | (1 << (MySqlParser.KW_STOP - 633)) | (1 << (MySqlParser.KW_STORAGE - 633)) | (1 << (MySqlParser.KW_STRING - 633)) | (1 << (MySqlParser.KW_SUBCLASS_ORIGIN - 633)) | (1 << (MySqlParser.KW_SUBJECT - 633)) | (1 << (MySqlParser.KW_SUBPARTITION - 633)) | (1 << (MySqlParser.KW_SUBPARTITIONS - 633)) | (1 << (MySqlParser.KW_SUSPEND - 633)) | (1 << (MySqlParser.KW_SWAPS - 633)) | (1 << (MySqlParser.KW_SWITCHES - 633)) | (1 << (MySqlParser.KW_TABLE_NAME - 633)) | (1 << (MySqlParser.KW_TABLESPACE - 633)) | (1 << (MySqlParser.KW_TABLE_TYPE - 633)) | (1 << (MySqlParser.KW_TEMPORARY - 633)) | (1 << (MySqlParser.KW_TEMPTABLE - 633)) | (1 << (MySqlParser.KW_THAN - 633)) | (1 << (MySqlParser.KW_TRADITIONAL - 633)) | (1 << (MySqlParser.KW_TRANSACTION - 633)))) !== 0) || ((((_la - 665)) & ~0x1F) === 0 && ((1 << (_la - 665)) & ((1 << (MySqlParser.KW_TRANSACTIONAL - 665)) | (1 << (MySqlParser.KW_TRIGGERS - 665)) | (1 << (MySqlParser.KW_TRUNCATE - 665)) | (1 << (MySqlParser.KW_UNBOUNDED - 665)) | (1 << (MySqlParser.KW_UNDEFINED - 665)) | (1 << (MySqlParser.KW_UNDOFILE - 665)) | (1 << (MySqlParser.KW_UNDO_BUFFER_SIZE - 665)) | (1 << (MySqlParser.KW_UNINSTALL - 665)) | (1 << (MySqlParser.KW_UNKNOWN - 665)) | (1 << (MySqlParser.KW_UNTIL - 665)) | (1 << (MySqlParser.KW_UPGRADE - 665)) | (1 << (MySqlParser.KW_USER - 665)) | (1 << (MySqlParser.KW_USE_FRM - 665)) | (1 << (MySqlParser.KW_USER_RESOURCES - 665)) | (1 << (MySqlParser.KW_VALIDATION - 665)) | (1 << (MySqlParser.KW_VALUE - 665)) | (1 << (MySqlParser.KW_VARIABLES - 665)) | (1 << (MySqlParser.KW_VIEW - 665)) | (1 << (MySqlParser.KW_VIRTUAL - 665)) | (1 << (MySqlParser.KW_WAIT - 665)) | (1 << (MySqlParser.KW_WARNINGS - 665)) | (1 << (MySqlParser.KW_WITHOUT - 665)) | (1 << (MySqlParser.KW_WORK - 665)) | (1 << (MySqlParser.KW_WRAPPER - 665)) | (1 << (MySqlParser.KW_X509 - 665)) | (1 << (MySqlParser.KW_XA - 665)) | (1 << (MySqlParser.KW_XML - 665)))) !== 0) || ((((_la - 704)) & ~0x1F) === 0 && ((1 << (_la - 704)) & ((1 << (MySqlParser.KW_ADMIN - 704)) | (1 << (MySqlParser.KW_AUDIT_ABORT_EXEMPT - 704)) | (1 << (MySqlParser.KW_AUDIT_ADMIN - 704)) | (1 << (MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN - 704)) | (1 << (MySqlParser.KW_BACKUP_ADMIN - 704)) | (1 << (MySqlParser.KW_BINLOG_ADMIN - 704)) | (1 << (MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN - 704)) | (1 << (MySqlParser.KW_CLONE_ADMIN - 704)) | (1 << (MySqlParser.KW_CONNECTION_ADMIN - 704)) | (1 << (MySqlParser.KW_ENCRYPTION_KEY_ADMIN - 704)) | (1 << (MySqlParser.KW_FIREWALL_ADMIN - 704)) | (1 << (MySqlParser.KW_FIREWALL_EXEMPT - 704)) | (1 << (MySqlParser.KW_FIREWALL_USER - 704)) | (1 << (MySqlParser.KW_GROUP_REPLICATION_ADMIN - 704)) | (1 << (MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE - 704)) | (1 << (MySqlParser.KW_INVOKE - 704)) | (1 << (MySqlParser.KW_LAMBDA - 704)) | (1 << (MySqlParser.KW_NDB_STORED_USER - 704)) | (1 << (MySqlParser.KW_PASSWORDLESS_USER_ADMIN - 704)) | (1 << (MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN - 704)))) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & ((1 << (MySqlParser.KW_REPLICATION_APPLIER - 737)) | (1 << (MySqlParser.KW_REPLICATION_SLAVE_ADMIN - 737)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_ADMIN - 737)) | (1 << (MySqlParser.KW_RESOURCE_GROUP_USER - 737)) | (1 << (MySqlParser.KW_ROLE_ADMIN - 737)) | (1 << (MySqlParser.KW_S3 - 737)) | (1 << (MySqlParser.KW_SESSION_VARIABLES_ADMIN - 737)) | (1 << (MySqlParser.KW_SET_USER_ID - 737)) | (1 << (MySqlParser.KW_SHOW_ROUTINE - 737)) | (1 << (MySqlParser.KW_SYSTEM_VARIABLES_ADMIN - 737)) | (1 << (MySqlParser.KW_TABLE_ENCRYPTION_ADMIN - 737)) | (1 << (MySqlParser.KW_VERSION_TOKEN_ADMIN - 737)) | (1 << (MySqlParser.KW_XA_RECOVER_ADMIN - 737)))) !== 0) || ((((_la - 802)) & ~0x1F) === 0 && ((1 << (_la - 802)) & ((1 << (MySqlParser.KW_MEMORY - 802)) | (1 << (MySqlParser.KW_CATALOG_NAME - 802)) | (1 << (MySqlParser.KW_ENGINE_ATTRIBUTE - 802)) | (1 << (MySqlParser.KW_SCHEMA_NAME - 802)) | (1 << (MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE - 802)))) !== 0) || _la === MySqlParser.KW_TP_CONNECTION_ADMIN)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + // @RuleVersion(0) + public functionNameBase(): FunctionNameBaseContext { + let _localctx: FunctionNameBaseContext = new FunctionNameBaseContext(this._ctx, this.state); + this.enterRule(_localctx, 838, MySqlParser.RULE_functionNameBase); + let _la: number; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 8106; + _la = this._input.LA(1); + if (!(_la === MySqlParser.KW_DATABASE || _la === MySqlParser.KW_LEFT || _la === MySqlParser.KW_RIGHT || _la === MySqlParser.KW_SCHEMA || ((((_la - 219)) & ~0x1F) === 0 && ((1 << (_la - 219)) & ((1 << (MySqlParser.KW_DATE - 219)) | (1 << (MySqlParser.KW_TIME - 219)) | (1 << (MySqlParser.KW_TIMESTAMP - 219)) | (1 << (MySqlParser.KW_YEAR - 219)))) !== 0) || ((((_la - 253)) & ~0x1F) === 0 && ((1 << (_la - 253)) & ((1 << (MySqlParser.KW_JSON_TABLE - 253)) | (1 << (MySqlParser.KW_JSON_VALUE - 253)) | (1 << (MySqlParser.KW_COUNT - 253)) | (1 << (MySqlParser.KW_CUME_DIST - 253)) | (1 << (MySqlParser.KW_DENSE_RANK - 253)) | (1 << (MySqlParser.KW_FIRST_VALUE - 253)) | (1 << (MySqlParser.KW_LAG - 253)) | (1 << (MySqlParser.KW_LAST_VALUE - 253)) | (1 << (MySqlParser.KW_LEAD - 253)) | (1 << (MySqlParser.KW_NTILE - 253)) | (1 << (MySqlParser.KW_NTH_VALUE - 253)) | (1 << (MySqlParser.KW_PERCENT_RANK - 253)) | (1 << (MySqlParser.KW_RANK - 253)) | (1 << (MySqlParser.KW_ROW_NUMBER - 253)))) !== 0) || _la === MySqlParser.KW_POSITION || _la === MySqlParser.KW_INVISIBLE || ((((_la - 686)) & ~0x1F) === 0 && ((1 << (_la - 686)) & ((1 << (MySqlParser.KW_VISIBLE - 686)) | (1 << (MySqlParser.KW_QUARTER - 686)) | (1 << (MySqlParser.KW_MONTH - 686)) | (1 << (MySqlParser.KW_DAY - 686)) | (1 << (MySqlParser.KW_HOUR - 686)) | (1 << (MySqlParser.KW_MINUTE - 686)) | (1 << (MySqlParser.KW_WEEK - 686)) | (1 << (MySqlParser.KW_SECOND - 686)) | (1 << (MySqlParser.KW_MICROSECOND - 686)))) !== 0) || _la === MySqlParser.KW_SESSION_VARIABLES_ADMIN || ((((_la - 813)) & ~0x1F) === 0 && ((1 << (_la - 813)) & ((1 << (MySqlParser.KW_GEOMETRYCOLLECTION - 813)) | (1 << (MySqlParser.KW_LINESTRING - 813)) | (1 << (MySqlParser.KW_MULTILINESTRING - 813)) | (1 << (MySqlParser.KW_MULTIPOINT - 813)) | (1 << (MySqlParser.KW_MULTIPOLYGON - 813)) | (1 << (MySqlParser.KW_POINT - 813)) | (1 << (MySqlParser.KW_POLYGON - 813)) | (1 << (MySqlParser.KW_CHARSET - 813)) | (1 << (MySqlParser.KW_COLLATION - 813)) | (1 << (MySqlParser.KW_FORMAT - 813)) | (1 << (MySqlParser.KW_GET_FORMAT - 813)) | (1 << (MySqlParser.KW_RANDOM - 813)) | (1 << (MySqlParser.KW_REVERSE - 813)) | (1 << (MySqlParser.KW_ROW_COUNT - 813)) | (1 << (MySqlParser.KW_SRID - 813)) | (1 << (MySqlParser.KW_SYSTEM_USER - 813)) | (1 << (MySqlParser.KW_WEIGHT_STRING - 813)))) !== 0) || _la === MySqlParser.MOD)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === Token.EOF) { + this.matchedEOF = true; + } + + this._errHandler.reportMatch(this); + this.consume(); + } + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } + + public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { + switch (ruleIndex) { + case 104: + return this.queryExpressionBody_sempred(_localctx as QueryExpressionBodyContext, predIndex); + + case 105: + return this.queryItem_sempred(_localctx as QueryItemContext, predIndex); + + case 403: + return this.expression_sempred(_localctx as ExpressionContext, predIndex); + + case 404: + return this.predicate_sempred(_localctx as PredicateContext, predIndex); + + case 405: + return this.expressionAtom_sempred(_localctx as ExpressionAtomContext, predIndex); + } + return true; + } + private queryExpressionBody_sempred(_localctx: QueryExpressionBodyContext, predIndex: number): boolean { + switch (predIndex) { + case 0: + return this.precpred(this._ctx, 2); + + case 1: + return this.precpred(this._ctx, 1); + } + return true; + } + private queryItem_sempred(_localctx: QueryItemContext, predIndex: number): boolean { + switch (predIndex) { + case 2: + return this.precpred(this._ctx, 1); + } + return true; + } + private expression_sempred(_localctx: ExpressionContext, predIndex: number): boolean { + switch (predIndex) { + case 3: + return this.precpred(this._ctx, 3); + } + return true; + } + private predicate_sempred(_localctx: PredicateContext, predIndex: number): boolean { + switch (predIndex) { + case 4: + return this.precpred(this._ctx, 8); + + case 5: + return this.precpred(this._ctx, 6); + + case 6: + return this.precpred(this._ctx, 5); + + case 7: + return this.precpred(this._ctx, 3); + + case 8: + return this.precpred(this._ctx, 10); + + case 9: + return this.precpred(this._ctx, 9); + + case 10: + return this.precpred(this._ctx, 7); + + case 11: + return this.precpred(this._ctx, 4); + + case 12: + return this.precpred(this._ctx, 2); + } + return true; + } + private expressionAtom_sempred(_localctx: ExpressionAtomContext, predIndex: number): boolean { + switch (predIndex) { + case 13: + return this.precpred(this._ctx, 3); + + case 14: + return this.precpred(this._ctx, 2); + + case 15: + return this.precpred(this._ctx, 1); + + case 16: + return this.precpred(this._ctx, 13); + } + return true; + } + + private static readonly _serializedATNSegments: number = 16; + private static readonly _serializedATNSegment0: string = + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\u0382\u1FAF\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\x043\t3\x04" + + "4\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\x04E\tE\x04" + + "F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04" + + "O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04" + + "X\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\x04h\th\x04" + + "i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04" + + "r\tr\x04s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\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\x03\x02\x05\x02\u034C" + + "\n\x02\x03\x02\x03\x02\x03\x03\x03\x03\x07\x03\u0352\n\x03\f\x03\x0E\x03" + + "\u0355\v\x03\x03\x03\x03\x03\x05\x03\u0359\n\x03\x03\x03\x05\x03\u035C" + + "\n\x03\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04" + + "\u0365\n\x04\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + + "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + + "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + + "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03" + + "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x05\x06\u0390\n\x06" + + "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07" + + "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05\x07" + + "\u03A3\n\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x03\b\x05" + + "\b\u03AE\n\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + + "\t\x03\t\x03\t\x03\t\x03\t\x05\t\u03BE\n\t\x03\n\x03\n\x03\n\x05\n\u03C3" + + "\n\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x05\v" + + "\u03CF\n\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f" + + "\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + + "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x05" + + "\f\u03F2\n\f\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x05\r\u03FC" + + "\n\r\x03\x0E\x03\x0E\x03\x0E\x05\x0E\u0401\n\x0E\x03\x0E\x03\x0E\x07\x0E" + + "\u0405\n\x0E\f\x0E\x0E\x0E\u0408\v\x0E\x03\x0F\x03\x0F\x05\x0F\u040C\n" + + "\x0F\x03\x0F\x03\x0F\x05\x0F\u0410\n\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F" + + "\x03\x0F\x03\x0F\x03\x0F\x05\x0F\u0419\n\x0F\x03\x0F\x05\x0F\u041C\n\x0F" + + "\x03\x0F\x05\x0F\u041F\n\x0F\x03\x0F\x03\x0F\x05\x0F\u0423\n\x0F\x03\x0F" + + "\x03\x0F\x03\x0F\x03\x10\x03\x10\x05\x10\u042A\n\x10\x03\x10\x05\x10\u042D" + + "\n\x10\x03\x10\x03\x10\x03\x10\x05\x10\u0432\n\x10\x03\x10\x03\x10\x03" + + "\x10\x03\x10\x07\x10\u0438\n\x10\f\x10\x0E\x10\u043B\v\x10\x03\x10\x03" + + "\x10\x05\x10\u043F\n\x10\x03\x10\x03\x10\x03\x10\x05\x10\u0444\n\x10\x03" + + "\x10\x07\x10\u0447\n\x10\f\x10\x0E\x10\u044A\v\x10\x03\x11\x03\x11\x03" + + "\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x05\x11\u0455\n\x11" + + "\x03\x11\x05\x11\u0458\n\x11\x03\x11\x03\x11\x05\x11\u045C\n\x11\x03\x11" + + "\x05\x11\u045F\n\x11\x03\x11\x03\x11\x05\x11\u0463\n\x11\x03\x11\x05\x11" + + "\u0466\n\x11\x03\x11\x03\x11\x05\x11\u046A\n\x11\x03\x11\x05\x11\u046D" + + "\n\x11\x03\x11\x05\x11\u0470\n\x11\x03\x11\x03\x11\x05\x11\u0474\n\x11" + + "\x03\x11\x05\x11\u0477\n\x11\x03\x11\x03\x11\x05\x11\u047B\n\x11\x03\x11" + + "\x03\x11\x03\x12\x03\x12\x05\x12\u0481\n\x12\x03\x12\x03\x12\x05\x12\u0485" + + "\n\x12\x03\x12\x03\x12\x03\x12\x05\x12\u048A\n\x12\x03\x12\x03\x12\x07" + + "\x12\u048E\n\x12\f\x12\x0E\x12\u0491\v\x12\x03\x12\x03\x12\x07\x12\u0495" + + "\n\x12\f\x12\x0E\x12\u0498\v\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13" + + "\x05\x13\u049F\n\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03\x14\x03\x14\x03" + + "\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x07\x14\u04AF" + + "\n\x14\f\x14\x0E\x14\u04B2\v\x14\x03\x14\x03\x14\x03\x15\x03\x15\x05\x15" + + "\u04B8\n\x15\x03\x15\x03\x15\x05\x15\u04BC\n\x15\x03\x15\x03\x15\x03\x15" + + "\x03\x15\x05\x15\u04C2\n\x15\x03\x15\x07\x15\u04C5\n\x15\f\x15\x0E\x15" + + "\u04C8\v\x15\x05\x15\u04CA\n\x15\x03\x15\x05\x15\u04CD\n\x15\x03\x15\x03" + + "\x15\x05\x15\u04D1\n\x15\x03\x15\x03\x15\x05\x15\u04D5\n\x15\x03\x15\x03" + + "\x15\x05\x15\u04D9\n\x15\x03\x15\x03\x15\x05\x15\u04DD\n\x15\x03\x15\x07" + + "\x15\u04E0\n\x15\f\x15\x0E\x15\u04E3\v\x15\x05\x15\u04E5\n\x15\x03\x15" + + "\x05\x15\u04E8\n\x15\x03\x15\x05\x15\u04EB\n\x15\x03\x15\x05\x15\u04EE" + + "\n\x15\x03\x15\x03\x15\x03\x15\x03\x15\x05\x15\u04F4\n\x15\x03\x15\x03" + + "\x15\x05\x15\u04F8\n\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15" + + "\x03\x15\x03\x15\x05\x15\u0502\n\x15\x05\x15\u0504\n\x15\x03\x16\x03\x16" + + "\x05\x16\u0508\n\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x05\x16\u050F" + + "\n\x16\x03\x16\x03\x16\x05\x16\u0513\n\x16\x03\x16\x05\x16\u0516\n\x16" + + "\x03\x16\x03\x16\x03\x16\x05\x16\u051B\n\x16\x03\x16\x03\x16\x05\x16\u051F" + + "\n\x16\x03\x16\x05\x16\u0522\n\x16\x03\x16\x03\x16\x05\x16\u0526\n\x16" + + "\x03\x16\x05\x16\u0529\n\x16\x03\x17\x03\x17\x05\x17\u052D\n\x17\x03\x17" + + "\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17" + + "\x03\x17\x05\x17\u053A\n\x17\x03\x17\x05\x17\u053D\n\x17\x03\x17\x03\x17" + + "\x05\x17\u0541\n\x17\x03\x17\x05\x17\u0544\n\x17\x03\x17\x03\x17\x05\x17" + + "\u0548\n\x17\x03\x17\x05\x17\u054B\n\x17\x03\x17\x03\x17\x05\x17\u054F" + + "\n\x17\x03\x17\x05\x17\u0552\n\x17\x03\x17\x03\x17\x05\x17\u0556\n\x17" + + "\x03\x17\x05\x17\u0559\n\x17\x03\x17\x05\x17\u055C\n\x17\x03\x17\x03\x17" + + "\x05\x17\u0560\n\x17\x03\x17\x05\x17\u0563\n\x17\x03\x17\x03\x17\x05\x17" + + "\u0567\n\x17\x03\x17\x03\x17\x03\x18\x03\x18\x05\x18\u056D\n\x18\x03\x18" + + "\x03\x18\x05\x18\u0571\n\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03" + + "\x18\x03\x18\x03\x18\x03\x18\x03\x18\x05\x18\u057D\n\x18\x03\x18\x03\x18" + + "\x03\x19\x03\x19\x05\x19\u0583\n\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03" + + "\x1A\x03\x1A\x03\x1A\x07\x1A\u058C\n\x1A\f\x1A\x0E\x1A\u058F\v\x1A\x03" + + "\x1A\x03\x1A\x05\x1A\u0593\n\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A" + + "\x03\x1A\x05\x1A\u059B\n\x1A\x03\x1B\x03\x1B\x05\x1B\u059F\n\x1B\x03\x1B" + + "\x03\x1B\x03\x1B\x05\x1B\u05A4\n\x1B\x03\x1B\x05\x1B\u05A7\n\x1B\x03\x1B" + + "\x03\x1B\x03\x1B\x05\x1B\u05AC\n\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03" + + "\x1B\x03\x1B\x05\x1B\u05B4\n\x1B\x03\x1B\x03\x1B\x03\x1B\x05\x1B\u05B9" + + "\n\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x05\x1B\u05BF\n\x1B\x03\x1B\x03" + + "\x1B\x03\x1B\x05\x1B\u05C4\n\x1B\x03\x1B\x03\x1B\x05\x1B\u05C8\n\x1B\x05" + + "\x1B\u05CA\n\x1B\x03\x1C\x05\x1C\u05CD\n\x1C\x03\x1C\x03\x1C\x05\x1C\u05D1" + + "\n\x1C\x03\x1C\x03\x1C\x05\x1C\u05D5\n\x1C\x03\x1C\x05\x1C\u05D8\n\x1C" + + "\x03\x1C\x03\x1C\x05\x1C\u05DC\n\x1C\x03\x1C\x03\x1C\x05\x1C\u05E0\n\x1C" + + "\x03\x1C\x03\x1C\x05\x1C\u05E4\n\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x05" + + "\x1C\u05EA\n\x1C\x03\x1C\x05\x1C\u05ED\n\x1C\x03\x1D\x03\x1D\x03\x1D\x03" + + "\x1D\x03\x1D\x05\x1D\u05F4\n\x1D\x03\x1E\x03\x1E\x03\x1E\x05\x1E\u05F9" + + "\n\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x05\x1F\u05FF\n\x1F\x03 \x03 \x03" + + " \x07 \u0604\n \f \x0E \u0607\v \x03 \x03 \x03 \x05 \u060C\n \x03 \x03" + + " \x03 \x03 \x07 \u0612\n \f \x0E \u0615\v \x05 \u0617\n \x03 \x03 \x03" + + " \x07 \u061C\n \f \x0E \u061F\v \x05 \u0621\n \x05 \u0623\n \x03!\x03" + + "!\x03!\x03!\x05!\u0629\n!\x03\"\x03\"\x03\"\x03\"\x05\"\u062F\n\"\x03" + + "\"\x03\"\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03#\x03" + + "#\x05#\u0640\n#\x03$\x03$\x03$\x03$\x03$\x05$\u0647\n$\x03%\x03%\x03%" + + "\x03&\x03&\x05&\u064E\n&\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03&\x03&" + + "\x03&\x05&\u065A\n&\x03&\x03&\x03&\x05&\u065F\n&\x03&\x05&\u0662\n&\x03" + + "\'\x05\'\u0665\n\'\x03\'\x03\'\x03\'\x03(\x03(\x03(\x03(\x03(\x05(\u066F" + + "\n(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x05(\u067C" + + "\n(\x03(\x03(\x03(\x05(\u0681\n(\x03)\x03)\x03)\x03)\x03)\x03)\x03)\x03" + + ")\x03)\x03)\x03)\x03)\x03)\x03)\x05)\u0691\n)\x03*\x03*\x03*\x03*\x07" + + "*\u0697\n*\f*\x0E*\u069A\v*\x03*\x03*\x03+\x03+\x03+\x03+\x03+\x05+\u06A3" + + "\n+\x03+\x05+\u06A6\n+\x03+\x03+\x07+\u06AA\n+\f+\x0E+\u06AD\v+\x03+\x03" + + "+\x05+\u06B1\n+\x03+\x05+\u06B4\n+\x03+\x03+\x07+\u06B8\n+\f+\x0E+\u06BB" + + "\v+\x03+\x05+\u06BE\n+\x03+\x03+\x03+\x05+\u06C3\n+\x03+\x03+\x07+\u06C7" + + "\n+\f+\x0E+\u06CA\v+\x03+\x05+\u06CD\n+\x03+\x03+\x05+\u06D1\n+\x03+\x05" + + "+\u06D4\n+\x03+\x05+\u06D7\n+\x03+\x03+\x07+\u06DB\n+\f+\x0E+\u06DE\v" + + "+\x03+\x05+\u06E1\n+\x03+\x03+\x03+\x05+\u06E6\n+\x03+\x03+\x03+\x03+" + + "\x03+\x03+\x03+\x03+\x03+\x05+\u06F1\n+\x03,\x05,\u06F4\n,\x03,\x03,\x03" + + ",\x03,\x03,\x05,\u06FB\n,\x03,\x05,\u06FE\n,\x03-\x03-\x05-\u0702\n-\x03" + + ".\x03.\x07.\u0706\n.\f.\x0E.\u0709\v.\x03/\x03/\x03/\x03/\x03/\x03/\x03" + + "/\x03/\x03/\x05/\u0714\n/\x03/\x05/\u0717\n/\x03/\x03/\x03/\x05/\u071C" + + "\n/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x05/\u0729" + + "\n/\x03/\x03/\x03/\x03/\x03/\x05/\u0730\n/\x03/\x03/\x03/\x03/\x05/\u0736" + + "\n/\x030\x030\x030\x050\u073B\n0\x030\x030\x050\u073F\n0\x030\x050\u0742" + + "\n0\x031\x031\x031\x031\x031\x031\x051\u074A\n1\x031\x031\x031\x031\x03" + + "1\x031\x051\u0752\n1\x051\u0754\n1\x032\x032\x032\x032\x032\x032\x032" + + "\x032\x052\u075E\n2\x033\x033\x053\u0762\n3\x033\x053\u0765\n3\x033\x03" + + "3\x053\u0769\n3\x033\x033\x033\x053\u076E\n3\x033\x033\x033\x053\u0773" + + "\n3\x033\x033\x033\x053\u0778\n3\x033\x033\x053\u077C\n3\x033\x033\x05" + + "3\u0780\n3\x033\x033\x053\u0784\n3\x033\x033\x053\u0788\n3\x033\x033\x05" + + "3\u078C\n3\x033\x033\x053\u0790\n3\x033\x033\x033\x053\u0795\n3\x033\x03" + + "3\x033\x053\u079A\n3\x033\x033\x033\x053\u079F\n3\x033\x033\x033\x033" + + "\x053\u07A5\n3\x033\x033\x033\x053\u07AA\n3\x033\x033\x033\x053\u07AF" + + "\n3\x033\x033\x033\x053\u07B4\n3\x033\x033\x033\x053\u07B9\n3\x033\x03" + + "3\x033\x053\u07BE\n3\x033\x033\x033\x033\x053\u07C4\n3\x033\x033\x033" + + "\x053\u07C9\n3\x033\x033\x033\x053\u07CE\n3\x033\x033\x033\x053\u07D3" + + "\n3\x033\x033\x033\x053\u07D8\n3\x033\x033\x033\x053\u07DD\n3\x033\x03" + + "3\x033\x053\u07E2\n3\x033\x033\x033\x053\u07E7\n3\x033\x033\x033\x033" + + "\x033\x053\u07EE\n3\x033\x033\x033\x053\u07F3\n3\x033\x033\x033\x053\u07F8" + + "\n3\x033\x033\x033\x053\u07FD\n3\x033\x033\x053\u0801\n3\x033\x033\x03" + + "3\x053\u0806\n3\x033\x033\x033\x033\x033\x033\x053\u080E\n3\x033\x033" + + "\x033\x053\u0813\n3\x033\x033\x033\x033\x053\u0819\n3\x034\x034\x035\x03" + + "5\x035\x036\x036\x036\x036\x036\x056\u0825\n6\x036\x036\x036\x036\x03" + + "6\x056\u082C\n6\x056\u082E\n6\x036\x036\x036\x036\x076\u0834\n6\f6\x0E" + + "6\u0837\v6\x036\x036\x056\u083B\n6\x037\x057\u083E\n7\x037\x037\x037\x03" + + "7\x037\x037\x057\u0846\n7\x037\x037\x037\x037\x057\u084C\n7\x037\x037" + + "\x057\u0850\n7\x037\x037\x037\x037\x037\x037\x037\x037\x037\x037\x037" + + "\x057\u085D\n7\x037\x037\x037\x037\x037\x037\x037\x037\x037\x037\x057" + + "\u0869\n7\x057\u086B\n7\x038\x058\u086E\n8\x038\x038\x038\x038\x038\x03" + + "8\x058\u0876\n8\x038\x038\x038\x038\x058\u087C\n8\x038\x038\x038\x038" + + "\x058\u0882\n8\x039\x039\x039\x039\x039\x039\x039\x039\x039\x079\u088D" + + "\n9\f9\x0E9\u0890\v9\x039\x039\x079\u0894\n9\f9\x0E9\u0897\v9\x039\x03" + + "9\x039\x039\x079\u089D\n9\f9\x0E9\u08A0\v9\x039\x039\x059\u08A4\n9\x03" + + "9\x039\x039\x039\x039\x039\x039\x079\u08AD\n9\f9\x0E9\u08B0\v9\x039\x03" + + "9\x039\x039\x079\u08B6\n9\f9\x0E9\u08B9\v9\x039\x039\x059\u08BD\n9\x03" + + "9\x039\x039\x039\x039\x039\x039\x039\x079\u08C7\n9\f9\x0E9\u08CA\v9\x03" + + "9\x039\x079\u08CE\n9\f9\x0E9\u08D1\v9\x039\x039\x039\x039\x079\u08D7\n" + + "9\f9\x0E9\u08DA\v9\x039\x039\x059\u08DE\n9\x039\x039\x039\x039\x039\x03" + + "9\x039\x039\x079\u08E8\n9\f9\x0E9\u08EB\v9\x039\x039\x079\u08EF\n9\f9" + + "\x0E9\u08F2\v9\x039\x039\x039\x039\x079\u08F8\n9\f9\x0E9\u08FB\v9\x03" + + "9\x039\x059\u08FF\n9\x039\x039\x039\x079\u0904\n9\f9\x0E9\u0907\v9\x03" + + "9\x039\x039\x039\x079\u090D\n9\f9\x0E9\u0910\v9\x039\x039\x059\u0914\n" + + "9\x059\u0916\n9\x03:\x03:\x03:\x05:\u091B\n:\x03;\x03;\x03;\x03;\x06;" + + "\u0921\n;\r;\x0E;\u0922\x03;\x03;\x03<\x03<\x03<\x07<\u092A\n<\f<\x0E" + + "<\u092D\v<\x03=\x05=\u0930\n"; + private static readonly _serializedATNSegment1: string = + "=\x03=\x05=\u0933\n=\x03=\x03=\x05=\u0937\n=\x03=\x03=\x03=\x05=\u093C" + + "\n=\x03=\x03=\x03=\x03=\x05=\u0942\n=\x03=\x03=\x03=\x03=\x05=\u0948\n" + + "=\x03=\x03=\x03=\x05=\u094D\n=\x03=\x03=\x03=\x05=\u0952\n=\x03=\x03=" + + "\x03=\x05=\u0957\n=\x03=\x03=\x03=\x05=\u095C\n=\x03=\x05=\u095F\n=\x03" + + ">\x03>\x03>\x05>\u0964\n>\x03>\x06>\u0967\n>\r>\x0E>\u0968\x03>\x03>\x03" + + ">\x03>\x03>\x03>\x03>\x03>\x05>\u0973\n>\x03?\x03?\x05?\u0977\n?\x03?" + + "\x03?\x03?\x03?\x03?\x05?\u097E\n?\x03?\x03?\x03?\x05?\u0983\n?\x03?\x05" + + "?\u0986\n?\x03?\x03?\x03?\x05?\u098B\n?\x03?\x05?\u098E\n?\x03?\x03?\x05" + + "?\u0992\n?\x03?\x03?\x05?\u0996\n?\x03@\x03@\x03@\x03@\x07@\u099C\n@\f" + + "@\x0E@\u099F\v@\x03A\x03A\x03A\x03A\x03A\x03A\x03A\x03B\x03B\x03B\x03" + + "B\x03B\x03B\x03B\x03B\x03B\x05B\u09B1\nB\x03B\x05B\u09B4\nB\x03B\x05B" + + "\u09B7\nB\x03B\x03B\x05B\u09BB\nB\x03B\x03B\x03C\x03C\x03C\x03C\x07C\u09C3" + + "\nC\fC\x0EC\u09C6\vC\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x07D\u09D0" + + "\nD\fD\x0ED\u09D3\vD\x03D\x03D\x03E\x03E\x03E\x03E\x03E\x03E\x07E\u09DD" + + "\nE\fE\x0EE\u09E0\vE\x05E\u09E2\nE\x03E\x03E\x07E\u09E6\nE\fE\x0EE\u09E9" + + "\vE\x05E\u09EB\nE\x03F\x03F\x05F\u09EF\nF\x03F\x03F\x03F\x03F\x03F\x03" + + "F\x03F\x05F\u09F8\nF\x03F\x05F\u09FB\nF\x03F\x05F\u09FE\nF\x03F\x03F\x03" + + "F\x05F\u0A03\nF\x03F\x03F\x05F\u0A07\nF\x03F\x05F\u0A0A\nF\x03F\x03F\x05" + + "F\u0A0E\nF\x03F\x03F\x05F\u0A12\nF\x03F\x05F\u0A15\nF\x03F\x03F\x05F\u0A19" + + "\nF\x03F\x05F\u0A1C\nF\x03F\x03F\x05F\u0A20\nF\x03F\x05F\u0A23\nF\x03" + + "G\x03G\x03G\x03G\x05G\u0A29\nG\x03G\x05G\u0A2C\nG\x03G\x03G\x03G\x05G" + + "\u0A31\nG\x03G\x03G\x03G\x03G\x03G\x03G\x05G\u0A39\nG\x03G\x03G\x03G\x03" + + "G\x05G\u0A3F\nG\x03G\x03G\x05G\u0A43\nG\x03H\x03H\x05H\u0A47\nH\x03H\x07" + + "H\u0A4A\nH\fH\x0EH\u0A4D\vH\x03H\x03H\x05H\u0A51\nH\x03H\x03H\x03H\x03" + + "H\x03H\x05H\u0A58\nH\x03H\x03H\x05H\u0A5C\nH\x03H\x03H\x03H\x03H\x03H" + + "\x03H\x03H\x07H\u0A65\nH\fH\x0EH\u0A68\vH\x03H\x03H\x03H\x03H\x03H\x05" + + "H\u0A6F\nH\x03H\x05H\u0A72\nH\x03H\x03H\x07H\u0A76\nH\fH\x0EH\u0A79\v" + + "H\x03H\x03H\x03H\x05H\u0A7E\nH\x03H\x05H\u0A81\nH\x03H\x03H\x07H\u0A85" + + "\nH\fH\x0EH\u0A88\vH\x03H\x03H\x03H\x05H\u0A8D\nH\x05H\u0A8F\nH\x03H\x03" + + "H\x03H\x05H\u0A94\nH\x03H\x03H\x07H\u0A98\nH\fH\x0EH\u0A9B\vH\x03H\x03" + + "H\x03H\x05H\u0AA0\nH\x05H\u0AA2\nH\x03H\x03H\x05H\u0AA6\nH\x03H\x05H\u0AA9" + + "\nH\x03H\x05H\u0AAC\nH\x03H\x03H\x07H\u0AB0\nH\fH\x0EH\u0AB3\vH\x03H\x03" + + "H\x03H\x05H\u0AB8\nH\x05H\u0ABA\nH\x03H\x03H\x03H\x05H\u0ABF\nH\x03H\x03" + + "H\x03H\x03H\x03H\x05H\u0AC6\nH\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x05" + + "H\u0ACF\nH\x03H\x05H\u0AD2\nH\x03H\x03H\x05H\u0AD6\nH\x03H\x03H\x03H\x05" + + "H\u0ADB\nH\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x05H\u0AE5\nH\x03H" + + "\x03H\x03H\x03H\x03H\x03H\x03H\x05H\u0AEE\nH\x03H\x03H\x03H\x03H\x03H" + + "\x03H\x05H\u0AF6\nH\x03H\x05H\u0AF9\nH\x03H\x03H\x03H\x03H\x03H\x03H\x05" + + "H\u0B01\nH\x03H\x05H\u0B04\nH\x03H\x03H\x03H\x03H\x03H\x05H\u0B0B\nH\x03" + + "H\x03H\x03H\x05H\u0B10\nH\x03H\x03H\x03H\x03H\x03H\x03H\x05H\u0B18\nH" + + "\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03" + + "H\x05H\u0B28\nH\x03H\x03H\x03H\x05H\u0B2D\nH\x03H\x03H\x03H\x03H\x03H" + + "\x05H\u0B34\nH\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H\x03H" + + "\x03H\x03H\x03H\x03H\x03H\x03H\x05H\u0B47\nH\x03H\x03H\x03H\x03H\x05H" + + "\u0B4D\nH\x03I\x03I\x03I\x03I\x03I\x03I\x07I\u0B55\nI\fI\x0EI\u0B58\v" + + "I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x05I\u0B63\nI\x03I\x03" + + "I\x03I\x03I\x03I\x05I\u0B6A\nI\x03I\x03I\x03I\x03I\x03I\x05I\u0B71\nI" + + "\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x07I\u0B7E\nI" + + "\fI\x0EI\u0B81\vI\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x05" + + "I\u0B8D\nI\x03I\x03I\x03I\x03I\x05I\u0B93\nI\x03I\x03I\x03I\x03I\x05I" + + "\u0B99\nI\x03I\x03I\x03I\x03I\x05I\u0B9F\nI\x03I\x03I\x03I\x03I\x05I\u0BA5" + + "\nI\x03I\x03I\x03I\x03I\x05I\u0BAB\nI\x03I\x03I\x03I\x03I\x05I\u0BB1\n" + + "I\x03J\x03J\x03J\x05J\u0BB6\nJ\x03J\x03J\x03K\x03K\x03K\x05K\u0BBD\nK" + + "\x03K\x03K\x03L\x03L\x03L\x05L\u0BC4\nL\x03L\x03L\x03L\x03L\x03L\x05L" + + "\u0BCB\nL\x03L\x03L\x03L\x05L\u0BD0\nL\x03L\x07L\u0BD3\nL\fL\x0EL\u0BD6" + + "\vL\x03M\x03M\x03M\x03M\x03M\x03M\x05M\u0BDE\nM\x03M\x03M\x03N\x03N\x03" + + "N\x05N\u0BE5\nN\x03N\x03N\x03O\x03O\x03O\x05O\u0BEC\nO\x03O\x03O\x03P" + + "\x03P\x03P\x05P\u0BF3\nP\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03Q\x05Q\u0BFC" + + "\nQ\x03Q\x03Q\x03R\x03R\x05R\u0C02\nR\x03R\x03R\x05R\u0C06\nR\x03R\x03" + + "R\x05R\u0C0A\nR\x03S\x03S\x05S\u0C0E\nS\x03S\x03S\x03S\x03S\x05S\u0C14" + + "\nS\x03S\x05S\u0C17\nS\x03T\x03T\x03T\x05T\u0C1C\nT\x03T\x03T\x03U\x03" + + "U\x03U\x05U\u0C23\nU\x03U\x03U\x03U\x07U\u0C28\nU\fU\x0EU\u0C2B\vU\x03" + + "U\x05U\u0C2E\nU\x03V\x03V\x03V\x05V\u0C33\nV\x03V\x03V\x03W\x03W\x03W" + + "\x03W\x03W\x03W\x05W\u0C3D\nW\x03W\x03W\x03W\x03W\x07W\u0C43\nW\fW\x0E" + + "W\u0C46\vW\x03W\x03W\x03W\x05W\u0C4B\nW\x03X\x03X\x03X\x03X\x03X\x07X" + + "\u0C52\nX\fX\x0EX\u0C55\vX\x03Y\x03Y\x03Y\x03Y\x03Z\x03Z\x05Z\u0C5D\n" + + "Z\x03Z\x03Z\x03[\x03[\x03[\x03[\x03[\x05[\u0C66\n[\x03[\x05[\u0C69\n[" + + "\x03\\\x03\\\x05\\\u0C6D\n\\\x03]\x03]\x03]\x03^\x03^\x03^\x03^\x05^\u0C76" + + "\n^\x03_\x03_\x05_\u0C7A\n_\x03_\x05_\u0C7D\n_\x03_\x05_\u0C80\n_\x03" + + "_\x03_\x03_\x03_\x05_\u0C86\n_\x03_\x05_\u0C89\n_\x03_\x05_\u0C8C\n_\x03" + + "_\x03_\x05_\u0C90\n_\x03_\x05_\u0C93\n_\x03_\x05_\u0C96\n_\x03_\x05_\u0C99" + + "\n_\x03_\x03_\x03_\x03_\x03_\x03_\x03_\x07_\u0CA2\n_\f_\x0E_\u0CA5\v_" + + "\x05_\u0CA7\n_\x03`\x03`\x03`\x05`\u0CAC\n`\x03a\x03a\x03a\x03a\x05a\u0CB2" + + "\na\x03b\x03b\x03b\x05b\u0CB7\nb\x03b\x06b\u0CBA\nb\rb\x0Eb\u0CBB\x03" + + "c\x05c\u0CBF\nc\x03c\x03c\x05c\u0CC3\nc\x03d\x03d\x03d\x05d\u0CC8\nd\x03" + + "d\x05d\u0CCB\nd\x03d\x03d\x03d\x05d\u0CD0\nd\x03d\x03d\x03d\x03d\x03d" + + "\x03d\x03d\x03d\x05d\u0CDA\nd\x03d\x03d\x03d\x05d\u0CDF\nd\x03d\x03d\x06" + + "d\u0CE3\nd\rd\x0Ed\u0CE4\x05d\u0CE7\nd\x03d\x03d\x06d\u0CEB\nd\rd\x0E" + + "d\u0CEC\x05d\u0CEF\nd\x03d\x03d\x03d\x03d\x05d\u0CF5\nd\x03d\x03d\x03" + + "d\x03d\x07d\u0CFB\nd\fd\x0Ed\u0CFE\vd\x03d\x03d\x05d\u0D02\nd\x03d\x03" + + "d\x03d\x03d\x07d\u0D08\nd\fd\x0Ed\u0D0B\vd\x05d\u0D0D\nd\x03e\x03e\x03" + + "e\x05e\u0D12\ne\x03e\x05e\u0D15\ne\x03e\x03e\x03e\x05e\u0D1A\ne\x03e\x03" + + "e\x03e\x03e\x03e\x03e\x05e\u0D22\ne\x03e\x03e\x03e\x03e\x05e\u0D28\ne" + + "\x03e\x03e\x05e\u0D2C\ne\x05e\u0D2E\ne\x03e\x03e\x03e\x03e\x05e\u0D34" + + "\ne\x03e\x03e\x03e\x03e\x07e\u0D3A\ne\fe\x0Ee\u0D3D\ve\x03e\x03e\x05e" + + "\u0D41\ne\x03e\x03e\x03e\x03e\x07e\u0D47\ne\fe\x0Ee\u0D4A\ve\x05e\u0D4C" + + "\ne\x03f\x03f\x03f\x05f\u0D51\nf\x03f\x05f\u0D54\nf\x03f\x03f\x05f\u0D58" + + "\nf\x03f\x05f\u0D5B\nf\x03f\x05f\u0D5E\nf\x03g\x03g\x05g\u0D62\ng\x03" + + "g\x05g\u0D65\ng\x03g\x03g\x03g\x03g\x03g\x03g\x05g\u0D6D\ng\x03g\x03g" + + "\x03g\x03g\x05g\u0D73\ng\x03g\x03g\x05g\u0D77\ng\x03h\x03h\x05h\u0D7B" + + "\nh\x03h\x03h\x05h\u0D7F\nh\x03h\x05h\u0D82\nh\x03h\x03h\x05h\u0D86\n" + + "h\x03h\x03h\x06h\u0D8A\nh\rh\x0Eh\u0D8B\x03h\x03h\x05h\u0D90\nh\x03h\x03" + + "h\x05h\u0D94\nh\x05h\u0D96\nh\x03h\x05h\u0D99\nh\x03h\x05h\u0D9C\nh\x03" + + "h\x05h\u0D9F\nh\x03h\x03h\x06h\u0DA3\nh\rh\x0Eh\u0DA4\x03h\x03h\x05h\u0DA9" + + "\nh\x03h\x05h\u0DAC\nh\x03h\x05h\u0DAF\nh\x03h\x05h\u0DB2\nh\x03h\x05" + + "h\u0DB5\nh\x03h\x03h\x03h\x06h\u0DBA\nh\rh\x0Eh\u0DBB\x05h\u0DBE\nh\x03" + + "i\x05i\u0DC1\ni\x03i\x03i\x05i\u0DC5\ni\x03i\x05i\u0DC8\ni\x03i\x05i\u0DCB" + + "\ni\x03j\x03j\x03j\x03j\x03j\x03j\x05j\u0DD3\nj\x03j\x03j\x03j\x03j\x05" + + "j\u0DD9\nj\x03j\x07j\u0DDC\nj\fj\x0Ej\u0DDF\vj\x03k\x03k\x03k\x03k\x03" + + "k\x03k\x05k\u0DE7\nk\x03k\x07k\u0DEA\nk\fk\x0Ek\u0DED\vk\x03l\x03l\x03" + + "l\x03l\x05l\u0DF3\nl\x03l\x05l\u0DF6\nl\x03l\x05l\u0DF9\nl\x03l\x03l\x05" + + "l\u0DFD\nl\x03m\x03m\x05m\u0E01\nm\x03n\x03n\x03n\x03n\x05n\u0E07\nn\x03" + + "n\x03n\x05n\u0E0B\nn\x03o\x03o\x03o\x07o\u0E10\no\fo\x0Eo\u0E13\vo\x03" + + "o\x05o\u0E16\no\x03o\x05o\u0E19\no\x03o\x05o\u0E1C\no\x03p\x03p\x03p\x05" + + "p\u0E21\np\x03q\x03q\x03q\x03q\x03q\x05q\u0E28\nq\x03r\x03r\x03r\x03r" + + "\x03r\x03r\x07r\u0E30\nr\fr\x0Er\u0E33\vr\x03s\x03s\x03s\x03s\x07s\u0E39" + + "\ns\fs\x0Es\u0E3C\vs\x03t\x03t\x03t\x03t\x03u\x03u\x05u\u0E44\nu\x03v" + + "\x03v\x03v\x03v\x03v\x03v\x07v\u0E4C\nv\fv\x0Ev\u0E4F\vv\x05v\u0E51\n" + + "v\x03v\x03v\x05v\u0E55\nv\x03v\x03v\x03v\x03v\x05v\u0E5B\nv\x03w\x03w" + + "\x05w\u0E5F\nw\x03w\x05w\u0E62\nw\x03w\x05w\u0E65\nw\x03w\x03w\x03w\x05" + + "w\u0E6A\nw\x03w\x05w\u0E6D\nw\x03w\x03w\x03w\x03w\x03w\x05w\u0E74\nw\x03" + + "w\x03w\x05w\u0E78\nw\x03w\x05w\u0E7B\nw\x03w\x03w\x05w\u0E7F\nw\x03x\x03" + + "x\x05x\u0E83\nx\x03x\x05x\u0E86\nx\x03x\x05x\u0E89\nx\x03x\x03x\x03x\x05" + + "x\u0E8E\nx\x03x\x03x\x03x\x03x\x05x\u0E94\nx\x07x\u0E96\nx\fx\x0Ex\u0E99" + + "\vx\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x05x\u0EA2\nx\x03x\x03x\x03x\x03" + + "x\x05x\u0EA8\nx\x07x\u0EAA\nx\fx\x0Ex\u0EAD\vx\x03x\x03x\x03x\x05x\u0EB2" + + "\nx\x03x\x03x\x05x\u0EB6\nx\x03y\x03y\x03y\x03y\x05y\u0EBC\ny\x03y\x05" + + "y\u0EBF\ny\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x03z\x05z\u0ECB" + + "\nz\x03z\x03z\x05z\u0ECF\nz\x03z\x03z\x05z\u0ED3\nz\x03{\x03{\x03{\x03" + + "{\x03{\x03{\x05{\u0EDB\n{\x03{\x03{\x05{\u0EDF\n{\x03|\x03|\x03|\x03|" + + "\x03}\x03}\x03}\x03}\x03}\x03}\x07}\u0EEB\n}\f}\x0E}\u0EEE\v}\x03~\x03" + + "~\x05~\u0EF2\n~\x03~\x05~\u0EF5\n~\x03~\x03~\x05~\u0EF9\n~\x03~\x05~\u0EFC" + + "\n~\x03~\x03~\x03~\x03~\x07~\u0F02\n~\f~\x0E~\u0F05\v~\x03~\x03~\x05~" + + "\u0F09\n~\x03~\x05~\u0F0C\n~\x03~\x05~\u0F0F\n~\x03\x7F\x03\x7F\x05\x7F" + + "\u0F13\n\x7F\x03\x7F\x05\x7F\u0F16\n\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x7F" + + "\x03\x7F\x07\x7F\u0F1D\n\x7F\f\x7F\x0E\x7F\u0F20\v\x7F\x03\x7F\x03\x7F" + + "\x05\x7F\u0F24\n\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03\x80\x07\x80\u0F2B" + + "\n\x80\f\x80\x0E\x80\u0F2E\v\x80\x03\x81\x03\x81\x05\x81\u0F32\n\x81\x03" + + "\x82\x03\x82\x03\x82\x07\x82\u0F37\n\x82\f\x82\x0E\x82\u0F3A\v\x82\x03" + + "\x83\x03\x83\x07\x83\u0F3E\n\x83\f\x83\x0E\x83\u0F41\v\x83\x03\x83\x03" + + "\x83\x03\x83\x07\x83\u0F46\n\x83\f\x83\x0E\x83\u0F49\v\x83\x03\x83\x03" + + "\x83\x03\x83\x05\x83\u0F4E\n\x83\x03\x84\x03\x84\x03\x84\x03\x84\x03\x84" + + "\x03\x84\x05\x84\u0F56\n\x84\x03\x84\x05\x84\u0F59\n\x84\x03\x84\x05\x84" + + "\u0F5C\n\x84\x03\x84\x03\x84\x03\x84\x07\x84\u0F61\n\x84\f\x84\x0E\x84" + + "\u0F64\v\x84\x05\x84\u0F66\n\x84\x03\x84\x05\x84\u0F69\n\x84\x03\x84\x03" + + "\x84\x03\x84\x03\x84\x03\x84\x05\x84\u0F70\n\x84\x03\x84\x05\x84\u0F73" + + "\n\x84\x03\x84\x03\x84\x05\x84\u0F77\n\x84\x03\x84\x03\x84\x03\x84\x03" + + "\x84\x05\x84\u0F7D\n\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86\x03\x86" + + "\x03\x86\x03\x86\x05\x86\u0F87\n\x86\x03\x86\x03\x86\x05\x86\u0F8B\n\x86" + + "\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03\x87\x03\x87\x05\x87\u0F94" + + "\n\x87\x03\x88\x05\x88\u0F97\n\x88\x03\x88\x03\x88\x05\x88\u0F9B\n\x88" + + "\x03\x88\x03\x88\x07\x88\u0F9F\n\x88\f\x88\x0E\x88\u0FA2\v\x88\x03\x88" + + "\x03\x88\x03\x88\x07\x88\u0FA7\n\x88\f\x88\x0E\x88\u0FAA\v\x88\x03\x88" + + "\x03\x88\x05\x88\u0FAE\n\x88\x03\x88\x03\x88\x05\x88\u0FB2\n\x88\x03\x88" + + "\x03\x88\x07\x88\u0FB6\n\x88\f\x88\x0E\x88\u0FB9\v\x88\x03\x88\x03\x88" + + "\x03\x88\x05\x88\u0FBE\n\x88\x03\x88\x05\x88\u0FC1\n\x88\x05\x88\u0FC3" + + "\n\x88\x03\x88\x03\x88\x05\x88\u0FC7\n\x88\x03\x89\x03\x89\x03\x89\x03" + + "\x89\x03\x89\x03\x89\x03\x89\x05\x89\u0FD0\n\x89\x03\x8A\x03\x8A\x03\x8A" + + "\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x05\x8A\u0FDA\n\x8A\x03\x8B\x03" + + "\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x05\x8B\u0FE4\n\x8B" + + "\x03\x8C\x03\x8C\x07\x8C\u0FE8\n\x8C\f\x8C\x0E\x8C\u0FEB\v\x8C\x03\x8C" + + "\x03\x8C\x05\x8C\u0FEF\n\x8C\x03\x8C\x03\x8C\x05\x8C\u0FF3\n\x8C\x03\x8C" + + "\x05\x8C\u0FF6\n\x8C\x03\x8C\x05\x8C\u0FF9\n\x8C\x03\x8C\x05\x8C\u0FFC" + + "\n\x8C\x03\x8C\x05\x8C\u0FFF\n\x8C\x03\x8C\x03\x8C\x07\x8C\u1003\n\x8C" + + "\f\x8C\x0E\x8C\u1006\v\x8C\x03\x8C\x03\x8C\x03\x8C\x05\x8C\u100B\n\x8C" + + "\x03\x8C\x05\x8C\u100E\n\x8C\x03\x8C\x05\x8C\u1011\n\x8C\x03\x8C\x05\x8C" + + "\u1014\n\x8C\x03\x8C\x05\x8C\u1017\n\x8C\x03\x8C\x05\x8C\u101A\n\x8C\x05" + + "\x8C\u101C\n\x8C\x03\x8D\x03\x8D\x07\x8D\u1020\n\x8D\f\x8D\x0E\x8D\u1023" + + "\v\x8D\x03\x8D\x03\x8D\x03\x8D\x05\x8D\u1028\n\x8D\x03\x8D\x05\x8D\u102B" + + "\n\x8D\x03\x8D\x05\x8D\u102E\n\x8D\x03\x8D\x05\x8D\u1031\n\x8D\x03\x8D" + + "\x05\x8D\u1034\n\x8D\x03\x8E\x03\x8E\x05\x8E\u1038\n\x8E\x03\x8E\x03\x8E" + + "\x03\x8F\x03\x8F\x05\x8F\u103E\n\x8F\x03\x8F\x03\x8F\x05\x8F\u1042\n\x8F" + + "\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x05\x90\u104A\n\x90\x03" + + "\x90\x03\x90\x05\x90\u104E\n\x90\x03\x90\x05\x90\u1051\n\x90\x05\x90\u1053" + + "\n\x90\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91" + + "\x03\x91\x03\x91\x03\x91\x05\x91\u1060\n\x91\x03\x91\x05\x91\u1063\n\x91" + + "\x03\x92\x03\x92\x03\x92\x07\x92\u1068\n\x92\f\x92\x0E\x92\u106B\v\x92" + + "\x03\x93\x03\x93\x03\x93\x03\x93\x03\x93\x03\x93\x03\x93\x05\x93\u1074" + + "\n\x93\x03\x93\x05\x93\u1077\n\x93\x03\x93\x03\x93\x03\x93\x05\x93\u107C" + + "\n\x93\x05\x93\u107E\n\x93\x03\x93\x03\x93\x05\x93\u1082\n\x93\x03\x93" + + "\x03\x93\x03\x93\x03\x93\x03\x93\x03\x93\x05\x93\u108A\n\x93\x03\x94\x03" + + "\x94\x03\x94\x03\x94\x05\x94\u1090\n\x94\x03\x94\x03\x94\x03\x94\x03\x95" + + "\x03\x95\x03\x95\x03\x95\x05\x95\u1099\n\x95\x03\x95\x03\x95\x03\x95\x03" + + "\x96\x03\x96\x03\x96\x03\x96\x03\x96\x03\x96\x03\x96\x03\x96\x05\x96\u10A6" + + "\n\x96\x03\x97\x03\x97\x05\x97\u10AA\n\x97\x03\x97\x03\x97\x07\x97\u10AE" + + "\n\x97\f\x97\x0E\x97\u10B1\v\x97\x03\x98\x03\x98\x03\x98\x03\x98\x03\x98" + + "\x03\x98\x05\x98\u10B9\n\x98\x03\x98\x05\x98\u10BC\n\x98\x03\x98\x03\x98" + + "\x05\x98\u10C0\n\x98\x03\x98\x05\x98\u10C3\n\x98\x03\x98\x03\x98\x05\x98" + + "\u10C7\n\x98\x03\x98\x03\x98\x05\x98\u10CB\n\x98\x03\x98\x05\x98\u10CE" + + "\n\x98\x05\x98\u10D0\n\x98\x03\x99\x03\x99\x03\x99\x03\x99\x07\x99\u10D6" + + "\n\x99\f\x99\x0E\x99\u10D9\v\x99\x03\x99\x03\x99\x03\x99\x03\x99\x03\x99" + + "\x03\x99\x03\x99\x03\x99\x03\x99\x05\x99\u10E4\n\x99\x03\x99\x03\x99\x06" + + "\x99\u10E8\n\x99\r\x99\x0E\x99\u10E9\x05\x99\u10EC\n\x99\x03\x99\x03\x99" + + "\x06\x99\u10F0\n\x99\r\x99\x0E\x99\u10F1\x05\x99\u10F4\n\x99\x05\x99\u10F6" + + "\n\x99\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x05\x9A\u10FC\n\x9A\x03\x9A\x03" + + "\x9A\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x05\x9A\u1104\n\x9A\x03\x9B\x03\x9B" + + "\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x05\x9B\u110C\n\x9B\x03\x9C\x03\x9C\x05" + + "\x9C\u1110\n\x9C\x03\x9C\x03\x9C\x05\x9C\u1114\n\x9C\x03\x9D\x03\x9D\x03" + + "\x9D\x03\x9D\x03\x9D\x07\x9D\u111B\n\x9D\f\x9D\x0E\x9D\u111E\v\x9D\x03" + + "\x9D\x03\x9D\x05\x9D\u1122\n\x9D\x03\x9E\x03\x9E\x03\x9E\x03\x9F\x03\x9F" + + "\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F\x03\x9F" + + "\x03\x9F\x03\x9F\x07\x9F\u1134\n\x9F\f\x9F\x0E\x9F\u1137\v\x9F\x03\xA0" + + "\x03\xA0\x05\xA0\u113B\n\xA0\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x05\xA1\u1141" + + "\n\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x05\xA1\u1148\n\xA1\x03" + + "\xA2\x03\xA2\x03\xA2\x05\xA2\u114D\n\xA2\x03\xA3\x03\xA3\x03\xA3\x03\xA3" + + "\x03\xA3\x07\xA3\u1154\n\xA3\f\xA3\x0E\xA3\u1157\v\xA3\x05\xA3\u1159\n" + + "\xA3\x03\xA4\x03\xA4\x05\xA4\u115D\n\xA4\x03\xA5\x03\xA5\x05\xA5\u1161" + + "\n\xA5\x03\xA5\x03\xA5\x05\xA5\u1165\n\xA5\x03\xA5\x05\xA5\u1168\n\xA5" + + "\x03\xA5\x05\xA5\u116B\n\xA5\x03\xA5\x05\xA5\u116E\n\xA5\x03\xA6\x03\xA6" + + "\x05\xA6\u1172\n\xA6\x03\xA6\x03\xA6\x05\xA6\u1176\n\xA6\x03\xA6\x05\xA6" + + "\u1179\n\xA6\x03\xA6\x05\xA6\u117C\n\xA6\x03\xA6\x05\xA6\u117F\n\xA6\x03" + + "\xA7\x03\xA7\x03\xA7\x03\xA8\x03\xA8\x05\xA8\u1186\n\xA8\x03\xA8\x03\xA8" + + "\x05\xA8\u118A\n\xA8\x03\xA8\x03\xA8\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03" + + "\xAA\x03\xAA\x03\xAA\x03\xAA\x03\xAA\x07\xAA\u1197\n\xAA\f\xAA\x0E\xAA" + + "\u119A\v\xAA\x03\xAB\x03\xAB\x03\xAB\x03\xAC\x03\xAC\x03\xAC\x03\xAC\x03" + + "\xAC\x03\xAD\x03\xAD\x05\xAD\u11A6\n\xAD\x03\xAD\x03\xAD\x03\xAD\x03\xAD" + + "\x07\xAD\u11AC\n\xAD\f\xAD\x0E\xAD\u11AF\v\xAD\x03\xAE\x03\xAE\x03\xAE" + + "\x03\xAE\x03\xAE\x03\xAE\x03\xAE\x05\xAE\u11B8\n\xAE\x03\xAF\x03\xAF\x05" + + "\xAF\u11BC\n\xAF\x03\xAF\x05\xAF\u11BF\n\xAF\x03\xAF\x03\xAF\x03\xB0\x03" + + "\xB0\x05\xB0\u11C5\n\xB0\x03\xB0\x05\xB0\u11C8\n\xB0\x03\xB0\x05\xB0\u11CB" + + "\n\xB0\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x05\xB1" + + "\u11D4\n\xB1\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x05" + + "\xB2\u11DD\n\xB2\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x07\xB3" + + "\u11E5\n\xB3\f\xB3\x0E\xB3\u11E8\v\xB3\x03\xB3\x05\xB3\u11EB\n\xB3\x03" + + "\xB4\x03\xB4\x03\xB4\x03\xB4\x03\xB4\x03\xB4\x07\xB4\u11F3\n\xB4\f\xB4" + + "\x0E\xB4\u11F6\v\xB4\x03\xB4\x05\xB4\u11F9\n\xB4\x03\xB5\x03\xB5\x03\xB5" + + "\x03\xB5\x03\xB5\x03\xB5\x03\xB5\x07\xB5\u1202\n\xB5\f\xB5\x0E\xB5\u1205" + + "\v"; + private static readonly _serializedATNSegment2: string = + "\xB5\x03\xB5\x05\xB5\u1208\n\xB5\x03\xB6\x03\xB6\x03\xB6\x03\xB6\x03\xB6" + + "\x03\xB6\x03\xB6\x05\xB6\u1211\n\xB6\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03" + + "\xB7\x07\xB7\u1218\n\xB7\f\xB7\x0E\xB7\u121B\v\xB7\x05\xB7\u121D\n\xB7" + + "\x03\xB7\x03\xB7\x05\xB7\u1221\n\xB7\x03\xB7\x07\xB7\u1224\n\xB7\f\xB7" + + "\x0E\xB7\u1227\v\xB7\x03\xB7\x05\xB7\u122A\n\xB7\x03\xB8\x03\xB8\x03\xB8" + + "\x03\xB8\x03\xB8\x07\xB8\u1231\n\xB8\f\xB8\x0E\xB8\u1234\v\xB8\x05\xB8" + + "\u1236\n\xB8\x03\xB8\x05\xB8\u1239\n\xB8\x03\xB9\x03\xB9\x03\xB9\x03\xB9" + + "\x03\xB9\x05\xB9\u1240\n\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x05\xB9\u1246" + + "\n\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x05\xB9\u124C\n\xB9\x03\xBA\x03" + + "\xBA\x03\xBA\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03" + + "\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03" + + "\xBB\x03\xBB\x03\xBB\x07\xBB\u1264\n\xBB\f\xBB\x0E\xBB\u1267\v\xBB\x05" + + "\xBB\u1269\n\xBB\x03\xBB\x05\xBB\u126C\n\xBB\x03\xBC\x03\xBC\x03\xBD\x03" + + "\xBD\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\x05\xBF\u127F\n\xBF\x05\xBF\u1281" + + "\n\xBF\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0" + + "\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0" + + "\x03\xC0\x03\xC0\x07\xC0\u1296\n\xC0\f\xC0\x0E\xC0\u1299\v\xC0\x05\xC0" + + "\u129B\n\xC0\x03\xC0\x05\xC0\u129E\n\xC0\x03\xC1\x03\xC1\x03\xC2\x03\xC2" + + "\x03\xC3\x03\xC3\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC4" + + "\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x05\xC4\u12B1\n\xC4\x05\xC4\u12B3\n\xC4" + + "\x03\xC5\x03\xC5\x03\xC5\x03\xC5\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6" + + "\x03\xC6\x07\xC6\u12BF\n\xC6\f\xC6\x0E\xC6\u12C2\v\xC6\x03\xC6\x03\xC6" + + "\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x07\xC6\u12CC\n\xC6\f" + + "\xC6\x0E\xC6\u12CF\v\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6" + + "\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6" + + "\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6" + + "\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x07\xC6" + + "\u12F1\n\xC6\f\xC6\x0E\xC6\u12F4\v\xC6\x03\xC6\x03\xC6\x05\xC6\u12F8\n" + + "\xC6\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC8\x03\xC8\x03" + + "\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03" + + "\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03" + + "\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x05\xC9\u131B\n\xC9" + + "\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA" + + "\x03\xCA\x03\xCA\x03\xCA\x05\xCA\u1329\n\xCA\x03\xCB\x03\xCB\x03\xCB\x07" + + "\xCB\u132E\n\xCB\f\xCB\x0E\xCB\u1331\v\xCB\x03\xCB\x05\xCB\u1334\n\xCB" + + "\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x05\xCC\u133A\n\xCC\x03\xCD\x03\xCD\x03" + + "\xCD\x03\xCD\x03\xCD\x03\xCD\x05\xCD\u1342\n\xCD\x05\xCD\u1344\n\xCD\x03" + + "\xCE\x03\xCE\x03\xCE\x03\xCE\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x05" + + "\xCF\u134F\n\xCF\x03\xD0\x03\xD0\x03\xD0\x03\xD0\x03\xD1\x03\xD1\x03\xD1" + + "\x03\xD1\x05\xD1\u1359\n\xD1\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x05" + + "\xD2\u1360\n\xD2\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x05\xD3\u1366\n\xD3\x03" + + "\xD4\x03\xD4\x03\xD4\x03\xD4\x03\xD5\x03\xD5\x05\xD5\u136E\n\xD5\x03\xD6" + + "\x03\xD6\x03\xD6\x05\xD6\u1373\n\xD6\x03\xD6\x03\xD6\x03\xD6\x03\xD6\x07" + + "\xD6\u1379\n\xD6\f\xD6\x0E\xD6\u137C\v\xD6\x03\xD6\x03\xD6\x03\xD6\x07" + + "\xD6\u1381\n\xD6\f\xD6\x0E\xD6\u1384\v\xD6\x03\xD6\x03\xD6\x03\xD6\x07" + + "\xD6\u1389\n\xD6\f\xD6\x0E\xD6\u138C\v\xD6\x03\xD6\x03\xD6\x03\xD6\x07" + + "\xD6\u1391\n\xD6\f\xD6\x0E\xD6\u1394\v\xD6\x03\xD6\x07\xD6\u1397\n\xD6" + + "\f\xD6\x0E\xD6\u139A\v\xD6\x03\xD6\x03\xD6\x05\xD6\u139E\n\xD6\x03\xD7" + + "\x03\xD7\x03\xD7\x05\xD7\u13A3\n\xD7\x03\xD7\x06\xD7\u13A6\n\xD7\r\xD7" + + "\x0E\xD7\u13A7\x03\xD7\x03\xD7\x06\xD7\u13AC\n\xD7\r\xD7\x0E\xD7\u13AD" + + "\x05\xD7\u13B0\n\xD7\x03\xD7\x03\xD7\x03\xD7\x03\xD8\x03\xD8\x03\xD8\x03" + + "\xD8\x06\xD8\u13B9\n\xD8\r\xD8\x0E\xD8\u13BA\x03\xD8\x07\xD8\u13BE\n\xD8" + + "\f\xD8\x0E\xD8\u13C1\v\xD8\x03\xD8\x03\xD8\x06\xD8\u13C5\n\xD8\r\xD8\x0E" + + "\xD8\u13C6\x05\xD8\u13C9\n\xD8\x03\xD8\x03\xD8\x03\xD8\x03\xD9\x03\xD9" + + "\x03\xD9\x03\xDA\x03\xDA\x03\xDA\x03\xDB\x03\xDB\x03\xDB\x05\xDB\u13D7" + + "\n\xDB\x03\xDB\x03\xDB\x06\xDB\u13DB\n\xDB\r\xDB\x0E\xDB\u13DC\x03\xDB" + + "\x03\xDB\x03\xDB\x05\xDB\u13E2\n\xDB\x03\xDC\x03\xDC\x03\xDC\x05\xDC\u13E7" + + "\n\xDC\x03\xDC\x03\xDC\x06\xDC\u13EB\n\xDC\r\xDC\x0E\xDC\u13EC\x03\xDC" + + "\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x05\xDC\u13F4\n\xDC\x03\xDD\x03\xDD\x03" + + "\xDD\x03\xDE\x03\xDE\x03\xDE\x05\xDE\u13FC\n\xDE\x03\xDE\x03\xDE\x03\xDE" + + "\x03\xDE\x06\xDE\u1402\n\xDE\r\xDE\x0E\xDE\u1403\x03\xDE\x03\xDE\x03\xDE" + + "\x05\xDE\u1409\n\xDE\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x05\xDF\u140F\n\xDF" + + "\x03\xDF\x05\xDF\u1412\n\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03" + + "\xDF\x05\xDF\u141A\n\xDF\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x03\xE0\x05\xE0" + + "\u1421\n\xE0\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x05" + + "\xE1\u142A\n\xE1\x03\xE1\x05\xE1\u142D\n\xE1\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" + + "\xE3\x07\xE3\u143C\n\xE3\f\xE3\x0E\xE3\u143F\v\xE3\x03\xE3\x03\xE3\x03" + + "\xE4\x03\xE4\x03\xE4\x05\xE4\u1446\n\xE4\x03\xE4\x03\xE4\x03\xE4\x03\xE4" + + "\x03\xE4\x03\xE4\x05\xE4\u144E\n\xE4\x03\xE5\x03\xE5\x05\xE5\u1452\n\xE5" + + "\x03\xE5\x03\xE5\x03\xE6\x03\xE6\x03\xE6\x05\xE6\u1459\n\xE6\x03\xE6\x03" + + "\xE6\x06\xE6\u145D\n\xE6\r\xE6\x0E\xE6\u145E\x03\xE7\x03\xE7\x03\xE7\x03" + + "\xE7\x06\xE7\u1465\n\xE7\r\xE7\x0E\xE7\u1466\x03\xE8\x03\xE8\x03\xE8\x05" + + "\xE8\u146C\n\xE8\x03\xE8\x03\xE8\x03\xE8\x07\xE8\u1471\n\xE8\f\xE8\x0E" + + "\xE8\u1474\v\xE8\x03\xE8\x03\xE8\x03\xE8\x07\xE8\u1479\n\xE8\f\xE8\x0E" + + "\xE8\u147C\v\xE8\x03\xE8\x03\xE8\x03\xE8\x03\xE8\x05\xE8\u1482\n\xE8\x03" + + "\xE8\x07\xE8\u1485\n\xE8\f\xE8\x0E\xE8\u1488\v\xE8\x05\xE8\u148A\n\xE8" + + "\x05\xE8\u148C\n\xE8\x03\xE8\x03\xE8\x06\xE8\u1490\n\xE8\r\xE8\x0E\xE8" + + "\u1491\x05\xE8\u1494\n\xE8\x03\xE8\x03\xE8\x07\xE8\u1498\n\xE8\f\xE8\x0E" + + "\xE8\u149B\v\xE8\x03\xE8\x03\xE8\x05\xE8\u149F\n\xE8\x03\xE8\x03\xE8\x03" + + "\xE8\x03\xE8\x03\xE8\x05\xE8\u14A6\n\xE8\x03\xE9\x03\xE9\x03\xE9\x05\xE9" + + "\u14AB\n\xE9\x03\xE9\x03\xE9\x05\xE9\u14AF\n\xE9\x03\xE9\x03\xE9\x03\xE9" + + "\x05\xE9\u14B4\n\xE9\x07\xE9\u14B6\n\xE9\f\xE9\x0E\xE9\u14B9\v\xE9\x03" + + "\xE9\x03\xE9\x03\xE9\x05\xE9\u14BE\n\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xE9" + + "\x05\xE9\u14C4\n\xE9\x03\xE9\x07\xE9\u14C7\n\xE9\f\xE9\x0E\xE9\u14CA\v" + + "\xE9\x05\xE9\u14CC\n\xE9\x05\xE9\u14CE\n\xE9\x03\xE9\x03\xE9\x06\xE9\u14D2" + + "\n\xE9\r\xE9\x0E\xE9\u14D3\x05\xE9\u14D6\n\xE9\x03\xE9\x03\xE9\x07\xE9" + + "\u14DA\n\xE9\f\xE9\x0E\xE9\u14DD\v\xE9\x03\xE9\x03\xE9\x05\xE9\u14E1\n" + + "\xE9\x03\xEA\x03\xEA\x03\xEA\x05\xEA\u14E6\n\xEA\x03\xEA\x03\xEA\x03\xEA" + + "\x07\xEA\u14EB\n\xEA\f\xEA\x0E\xEA\u14EE\v\xEA\x03\xEB\x03\xEB\x03\xEB" + + "\x03\xEB\x07\xEB\u14F4\n\xEB\f\xEB\x0E\xEB\u14F7\v\xEB\x03\xEB\x03\xEB" + + "\x05\xEB\u14FB\n\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x07\xEB\u1502" + + "\n\xEB\f\xEB\x0E\xEB\u1505\v\xEB\x03\xEB\x05\xEB\u1508\n\xEB\x03\xEB\x03" + + "\xEB\x03\xEB\x03\xEB\x05\xEB\u150E\n\xEB\x03\xEB\x07\xEB\u1511\n\xEB\f" + + "\xEB\x0E\xEB\u1514\v\xEB\x05\xEB\u1516\n\xEB\x05\xEB\u1518\n\xEB\x03\xEB" + + "\x03\xEB\x03\xEB\x03\xEB\x07\xEB\u151E\n\xEB\f\xEB\x0E\xEB\u1521\v\xEB" + + "\x05\xEB\u1523\n\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x05\xEB\u152A" + + "\n\xEB\x05\xEB\u152C\n\xEB\x03\xEB\x03\xEB\x03\xEB\x05\xEB\u1531\n\xEB" + + "\x03\xEB\x03\xEB\x03\xEB\x07\xEB\u1536\n\xEB\f\xEB\x0E\xEB\u1539\v\xEB" + + "\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x07\xEB\u153F\n\xEB\f\xEB\x0E\xEB\u1542" + + "\v\xEB\x03\xEB\x03\xEB\x03\xEB\x05\xEB\u1547\n\xEB\x05\xEB\u1549\n\xEB" + + "\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x05\xEC\u1550\n\xEC\x03\xEC\x05" + + "\xEC\u1553\n\xEC\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED" + + "\x03\xED\x07\xED\u155D\n\xED\f\xED\x0E\xED\u1560\v\xED\x03\xED\x03\xED" + + "\x03\xED\x05\xED\u1565\n\xED\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03" + + "\xEE\x05\xEE\u156D\n\xEE\x03\xEE\x05\xEE\u1570\n\xEE\x03\xEE\x03\xEE\x05" + + "\xEE\u1574\n\xEE\x03\xEE\x05\xEE\u1577\n\xEE\x03\xEE\x03\xEE\x05\xEE\u157B" + + "\n\xEE\x05\xEE\u157D\n\xEE\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03" + + "\xEF\x03\xEF\x03\xEF\x03\xEF\x05\xEF\u1588\n\xEF\x03\xEF\x05\xEF\u158B" + + "\n\xEF\x03\xEF\x03\xEF\x05\xEF\u158F\n\xEF\x03\xEF\x05\xEF\u1592\n\xEF" + + "\x03\xEF\x05\xEF\u1595\n\xEF\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x05" + + "\xF0\u159C\n\xF0\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1\x03\xF1" + + "\x03\xF1\x07\xF1\u15A6\n\xF1\f\xF1\x0E\xF1\u15A9\v\xF1\x05\xF1\u15AB\n" + + "\xF1\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x05\xF2\u15B2\n\xF2\x03\xF2" + + "\x03\xF2\x07\xF2\u15B6\n\xF2\f\xF2\x0E\xF2\u15B9\v\xF2\x03\xF3\x03\xF3" + + "\x03\xF3\x03\xF3\x03\xF3\x07\xF3\u15C0\n\xF3\f\xF3\x0E\xF3\u15C3\v\xF3" + + "\x03\xF4\x03\xF4\x05\xF4\u15C7\n\xF4\x03\xF4\x03\xF4\x03\xF4\x07\xF4\u15CC" + + "\n\xF4\f\xF4\x0E\xF4\u15CF\v\xF4\x03\xF4\x03\xF4\x05\xF4\u15D3\n\xF4\x03" + + "\xF4\x03\xF4\x03\xF4\x03\xF4\x05\xF4\u15D9\n\xF4\x03\xF4\x03\xF4\x05\xF4" + + "\u15DD\n\xF4\x03\xF4\x03\xF4\x05\xF4\u15E1\n\xF4\x03\xF4\x03\xF4\x03\xF4" + + "\x03\xF4\x03\xF4\x03\xF4\x05\xF4\u15E9\n\xF4\x03\xF4\x03\xF4\x05\xF4\u15ED" + + "\n\xF4\x03\xF4\x03\xF4\x05\xF4\u15F1\n\xF4\x03\xF4\x03\xF4\x03\xF4\x03" + + "\xF4\x05\xF4\u15F7\n\xF4\x05\xF4\u15F9\n\xF4\x03\xF5\x03\xF5\x03\xF5\x03" + + "\xF5\x03\xF6\x03\xF6\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x05\xF7\u1605\n\xF7" + + "\x03\xF7\x03\xF7\x03\xF7\x05\xF7\u160A\n\xF7\x03\xF7\x03\xF7\x03\xF7\x03" + + "\xF7\x05\xF7\u1610\n\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x05\xF7\u1616" + + "\n\xF7\x03\xF7\x03\xF7\x05\xF7\u161A\n\xF7\x03\xF7\x03\xF7\x03\xF7\x05" + + "\xF7\u161F\n\xF7\x05\xF7\u1621\n\xF7\x03\xF8\x03\xF8\x03\xF8\x03\xF9\x03" + + "\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03" + + "\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03" + + "\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x03\xF9\x05\xF9\u1641" + + "\n\xF9\x06\xF9\u1643\n\xF9\r\xF9\x0E\xF9\u1644\x03\xF9\x03\xF9\x05\xF9" + + "\u1649\n\xF9\x03\xF9\x05\xF9\u164C\n\xF9\x03\xFA\x03\xFA\x03\xFA\x03\xFA" + + "\x03\xFA\x03\xFA\x03\xFA\x05\xFA\u1655\n\xFA\x03\xFA\x03\xFA\x05\xFA\u1659" + + "\n\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x05\xFA" + + "\u1662\n\xFA\x03\xFA\x03\xFA\x05\xFA\u1666\n\xFA\x03\xFA\x03\xFA\x05\xFA" + + "\u166A\n\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x05\xFA\u1670\n\xFA\x05\xFA" + + "\u1672\n\xFA\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x05" + + "\xFB\u167B\n\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB" + + "\x03\xFB\x05\xFB\u1685\n\xFB\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03" + + "\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03" + + "\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03" + + "\xFC\x03\xFC\x05\xFC\u16A0\n\xFC\x03\xFD\x03\xFD\x05\xFD\u16A4\n\xFD\x03" + + "\xFD\x03\xFD\x03\xFD\x05\xFD\u16A9\n\xFD\x03\xFE\x03\xFE\x03\xFE\x03\xFE" + + "\x03\xFE\x05\xFE\u16B0\n\xFE\x03\xFE\x05\xFE\u16B3\n\xFE\x03\xFE\x03\xFE" + + "\x03\xFE\x03\xFE\x05\xFE\u16B9\n\xFE\x03\xFF\x03\xFF\x03\xFF\x03\xFF\x03" + + "\xFF\x03\xFF\x03\xFF\x03\xFF\x05\xFF\u16C3\n\xFF\x03\u0100\x03\u0100\x03" + + "\u0100\x03\u0100\x03\u0100\x03\u0100\x03\u0100\x03\u0100\x05\u0100\u16CD" + + "\n\u0100\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03" + + "\u0101\x03\u0101\x05\u0101\u16D7\n\u0101\x03\u0101\x03\u0101\x03\u0101" + + "\x03\u0101\x05\u0101\u16DD\n\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0101" + + "\x03\u0101\x03\u0101\x03\u0101\x05\u0101\u16E6\n\u0101\x03\u0101\x03\u0101" + + "\x03\u0101\x03\u0101\x05\u0101\u16EC\n\u0101\x03\u0101\x03\u0101\x03\u0101" + + "\x03\u0101\x03\u0101\x05\u0101\u16F3\n\u0101\x05\u0101\u16F5\n\u0101\x03" + + "\u0102\x03\u0102\x03\u0102\x03\u0103\x03\u0103\x03\u0103\x05\u0103\u16FD" + + "\n\u0103\x03\u0103\x03\u0103\x03\u0103\x03\u0103\x05\u0103\u1703\n\u0103" + + "\x03\u0103\x03\u0103\x05\u0103\u1707\n\u0103\x03\u0104\x03\u0104\x03\u0104" + + "\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104" + + "\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x05\u0104\u1718\n\u0104" + + "\x03\u0105\x03\u0105\x03\u0105\x03\u0106\x03\u0106\x03\u0106\x03\u0106" + + "\x03\u0106\x05\u0106\u1722\n\u0106\x03\u0107\x03\u0107\x05\u0107\u1726" + + "\n\u0107\x03\u0107\x03\u0107\x05\u0107\u172A\n\u0107\x03\u0107\x03\u0107" + + "\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x05\u0107" + + "\u1734\n\u0107\x03\u0107\x03\u0107\x03\u0107\x05\u0107\u1739\n\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03" + + "\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x05" + + "\u0107\u1781\n\u0107\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108" + + "\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x03\u0108" + + "\x03\u0108\x03\u0108\x03\u0108\x03\u0108\x05\u0108\u1793\n\u0108\x03\u0109" + + "\x03\u0109\x03\u0109\x03\u0109\x03\u010A\x03\u010A\x05\u010A\u179B\n\u010A" + + "\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x05\u010A\u17A1\n\u010A\x03\u010A" + + "\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A" + + "\x03\u010A\x03\u010A\x05\u010A\u17AD\n\u010A\x03\u010A\x03\u010A\x05\u010A" + + "\u17B1\n\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A" + + "\x03\u010A\x03\u010A\x03\u010A\x05\u010A\u17BC\n\u010A\x03\u010A\x03\u010A" + + "\x05\u010A\u17C0\n\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A" + + "\x03\u010A\x03\u010A\x05\u010A\u17C9\n\u010A\x03\u010B\x03\u010B\x03\u010B" + + "\x03\u010B\x07\u010B\u17CF\n\u010B\f\u010B\x0E\u010B\u17D2\v\u010B\x03" + + "\u010C\x03\u010C\x03\u010C\x03\u010C\x05\u010C\u17D8\n\u010C\x03\u010D" + + "\x03\u010D\x05\u010D\u17DC\n\u010D\x03\u010D\x03\u010D\x03\u010D\x03\u010E" + + "\x03\u010E\x05\u010E\u17E3\n\u010E\x03\u010E\x03\u010E\x03\u010E\x05\u010E" + + "\u17E8\n\u010E\x03\u010E\x05\u010E\u17EB\n\u010E\x03\u010E\x05\u010E\u17EE" + + "\n\u010E\x03\u010F\x03\u010F\x03\u0110\x03\u0110\x03\u0110\x03\u0110\x03" + + "\u0110\x03\u0110\x03\u0110\x05\u0110\u17F9\n\u0110\x03\u0111\x03\u0111" + + "\x05\u0111\u17FD\n\u0111\x03\u0111\x03\u0111\x05\u0111\u1801\n\u0111\x03" + + "\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0112\x03" + + "\u0112\x03\u0112\x03\u0112\x03\u0112\x07\u0112\u180E\n\u0112\f\u0112\x0E" + + "\u0112\u1811\v\u0112\x03\u0112\x03\u0112\x03\u0112\x03\u0112\x07\u0112" + + "\u1817\n\u0112\f\u0112\x0E\u0112\u181A\v\u0112\x05\u0112\u181C\n\u0112" + + "\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0113\x03\u0114\x03\u0114" + + "\x03\u0114\x03\u0114\x03\u0114\x07\u0114\u1828\n\u0114\f\u0114\x0E\u0114" + + "\u182B\v\u0114\x03\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0115\x03\u0115" + + "\x03\u0116\x03\u0116\x03\u0116\x03\u0116\x03\u0117\x03\u0117\x03\u0117" + + "\x03\u0117\x03\u0117\x05\u0117\u183C\n\u0117\x03\u0117\x03\u0117\x03\u0117" + + "\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117\x03\u0117" + + "\x03\u0117\x05\u0117\u1849\n\u0117\x03\u0117\x05\u0117\u184C\n\u0117\x03" + + "\u0117\x03\u0117\x05\u0117\u1850\n\u0117\x03\u0117\x05\u0117\u1853\n\u0117" + + "\x05\u0117\u1855\n\u0117\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118" + + "\x05\u0118\u185C\n\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118" + + "\x05\u0118\u1863\n\u0118\x07\u0118\u1865\n\u0118\f\u0118\x0E\u0118\u1868" + + "\v\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x05\u0118\u186E\n\u0118" + + "\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x05\u0118\u1875\n\u0118" + + "\x03\u0118\x05\u0118\u1878\n\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118" + + "\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118\x03\u0118" + + "\x03\u0118\x07\u0118\u1886\n\u0118\f\u0118\x0E\u0118\u1889\v\u0118\x05" + + "\u0118\u188B\n\u0118\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x05\u0119\u1895\n\u0119\x03\u0119\x03\u0119" + + "\x05\u0119\u1899\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119" + + "\u189F\n\u0119\x03\u0119\x05\u0119\u18A2\n\u0119\x03\u0119\x05\u0119\u18A5" + + "\n\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119\u18AA\n\u0119\x03\u0119" + + "\x03\u0119\x05\u0119\u18AE\n\u0119\x03\u0119\x05\u0119\u18B1\n\u0119\x03" + + "\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119\u18B8\n\u0119" + + "\x03\u0119\x05\u0119\u18BB\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x05\u0119\u18C1\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x05\u0119\u18E5\n\u0119\x03\u0119\x05\u0119\u18E8\n\u0119\x03" + + "\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03" + + "\u0119\x03\u0119\x03\u0119\x05\u0119\u18F4\n\u0119\x03\u0119\x05\u0119" + + "\u18F7\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x05\u0119\u1907\n\u0119\x05\u0119\u1909\n\u0119\x03\u0119\x03" + + "\u0119\x05\u0119\u190D\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x05\u0119\u1914\n\u0119\x03\u0119\x03\u0119\x05\u0119\u1918" + + "\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119\u191F" + + "\n\u0119\x03\u0119\x05\u0119\u1922\n\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x03\u0119\x03\u0119\x07\u0119\u1929\n\u0119\f\u0119\x0E\u0119\u192C\v" + + "\u0119\x05\u0119\u192E\n\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119" + + "\u1933\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119\x05\u0119\u1939" + + "\n\u0119\x05\u0119\u193B\n\u0119\x03\u0119\x03\u0119\x03\u0119\x03\u0119" + + "\x05\u0119\u1941\n\u0119\x03\u0119\x03\u0119\x05\u0119\u1945\n\u0119\x03" + + "\u011A\x03\u011A\x03\u011A\x03\u011A\x05\u011A\u194B\n\u011A\x03\u011A" + + "\x05\u011A\u194E\n\u011A\x03\u011A\x05\u011A\u1951\n\u011A\x03\u011B\x03" + + "\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03\u011B\x03" + + "\u011B\x03\u011B\x03\u011B\x05\u011B\u195E\n\u011B\x03\u011B\x05\u011B" + + "\u1961\n\u011B\x03\u011C\x03\u011C\x03\u011C\x03\u011C\x05\u011C\u1967" + + "\n\u011C\x03\u011D\x05\u011D\u196A\n\u011D\x03\u011D\x03\u011D\x03\u011D" + + "\x03\u011D\x03\u011D\x03\u011D\x05\u011D\u1972\n\u011D\x03\u011D\x03\u011D" + + "\x03\u011D\x03\u011D\x03\u011D\x03\u011D\x05\u011D\u197A\n\u011D\x03\u011E" + + "\x03\u011E\x03\u011E\x03\u011E\x05\u011E\u1980\n\u011E\x03\u011E\x05\u011E" + + "\u1983\n\u011E\x03\u011E\x03\u011E\x05\u011E\u1987\n\u011E\x03\u011F\x03" + + "\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03\u011F\x03" + + "\u011F\x03\u011F\x03\u011F\x03\u011F\x05\u011F\u1995\n\u011F\x03\u0120" + + "\x03\u0120\x03\u0120\x03\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0121" + + "\x07\u0121\u199F\n\u0121\f\u0121\x0E\u0121\u19A2\v\u0121\x03\u0121\x03" + + "\u0121\x03\u0121\x03\u0121\x03\u0121\x05\u0121\u19A9\n\u0121\x03\u0121" + + "\x03\u0121\x05\u0121\u19AD\n\u0121\x03\u0121\x03\u0121\x03\u0121\x03\u0122" + + "\x03\u0122\x05\u0122\u19B4\n\u0122\x03\u0122\x03\u0122\x03\u0122\x07\u0122" + + "\u19B9\n\u0122\f\u0122\x0E\u0122\u19BC\v\u0122\x03\u0123\x03\u0123\x05" + + "\u0123\u19C0\n\u0123\x03\u0123\x03\u0123\x03\u0124\x03\u0124\x03\u0124" + + "\x03\u0124\x03\u0124\x03\u0124\x03\u0124\x07\u0124\u19CB\n\u0124\f\u0124" + + "\x0E\u0124\u19CE\v\u0124\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x07\u0125" + + "\u19D4\n\u0125\f\u0125\x0E\u0125\u19D7\v\u0125\x03\u0126\x03\u0126\x03" + + "\u0126\x03\u0126\x03\u0126\x05\u0126\u19DE\n\u0126\x03\u0127\x03\u0127" + + "\x03\u0127\x05\u0127\u19E3\n\u0127\x03\u0127\x05\u0127\u19E6\n\u0127\x03" + + "\u0128\x03\u0128\x03\u0128\x05\u0128\u19EB\n\u0128\x03\u0128\x05\u0128" + + "\u19EE\n\u0128\x03\u0129\x03\u0129\x03\u012A\x03\u012A\x03\u012B\x03\u012B" + + "\x03\u012B\x03\u012B\x03\u012B\x03\u012B\x05\u012B\u19FA\n\u012B\x03\u012C" + + "\x03\u012C\x03\u012C\x05\u012C\u19FF\n\u012C\x03\u012C\x03\u012C\x03\u012C" + + "\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x03\u012C" + + "\x03\u012C\x05\u012C\u1A0C\n\u012C\x05\u012C\u1A0E\n\u012C\x03\u012C\x03" + + "\u012C\x03\u012C\x05\u012C\u1A13\n\u012C\x03\u012C\x03\u012C\x05\u012C" + + "\u1A17\n\u012C\x03\u012C\x05\u012C\u1A1A\n\u012C\x05\u012C\u1A1C\n\u012C" + + "\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x03\u012D\x05\u012D\u1A23\n\u012D" + + "\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x03\u012E\x05\u012E\u1A2A\n\u012E" + + "\x03\u012E\x05\u012E\u1A2D\n\u012E\x03\u012E\x05\u012E\u1A30\n\u012E\x03" + + "\u012E\x03\u012E\x03\u012E\x03\u012E\x05\u012E\u1A36\n\u012E\x03\u012E" + + "\x03\u012E\x05\u012E\u1A3A\n\u012E\x03\u012F\x03\u012F\x03\u012F\x03\u012F" + + "\x05\u012F\u1A40\n\u012F\x03\u0130\x03\u0130\x03\u0130\x03\u0130\x03\u0130" + + "\x03\u0130\x05\u0130\u1A48\n\u0130\x03\u0130\x03\u0130\x03\u0131\x03\u0131" + + "\x03\u0131\x03\u0131\x03\u0131\x05\u0131\u1A51\n\u0131\x03\u0131\x03\u0131" + + "\x03\u0132\x03\u0132\x03\u0132\x03\u0133\x03\u0133\x03\u0133\x03\u0134" + + "\x03\u0134\x03\u0134\x05\u0134\u1A5E\n\u0134\x03\u0134\x03\u0134\x03\u0134" + + "\x05\u0134\u1A63\n\u0134\x03\u0134\x03\u0134\x03\u0134\x03\u0134\x07\u0134" + + "\u1A69\n\u0134\f\u0134\x0E\u0134\u1A6C\v\u0134\x05\u0134\u1A6E\n\u0134" + + "\x03\u0135\x03\u0135\x03\u0135\x05\u0135\u1A73\n\u0135\x03\u0135\x03\u0135" + + "\x03\u0135\x05\u0135\u1A78\n\u0135\x03\u0135\x03\u0135\x03\u0135\x03\u0135" + + "\x07\u0135\u1A7E\n\u0135\f\u0135\x0E\u0135\u1A81\v\u0135\x05\u0135\u1A83" + + "\n\u0135\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x03\u0136\x05" + + "\u0136\u1A8B\n\u0136\x03\u0137\x03\u0137\x05\u0137\u1A8F\n\u0137\x03\u0137" + + "\x03\u0137\x03\u0137\x07\u0137\u1A94\n\u0137\f\u0137\x0E\u0137\u1A97\v" + + "\u0137\x03\u0138\x03\u0138\x03\u0138\x05\u0138\u1A9C\n\u0138\x03\u0138" + + "\x05\u0138\u1A9F\n\u0138\x03\u0139\x03\u0139\x05\u0139\u1AA3\n\u0139\x03" + + "\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03" + + "\u0139\x03\u0139\x07\u0139\u1AAE\n\u0139\f\u0139\x0E\u0139\u1AB1\v\u0139" + + "\x03\u0139\x03\u0139\x03\u0139\x05\u0139\u1AB6\n\u0139\x03\u0139\x03\u0139" + + "\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x03\u0139\x07\u0139" + + "\u1AC0\n\u0139\f\u0139\x0E\u0139\u1AC3\v\u0139\x05\u0139\u1AC5\n\u0139" + + "\x03\u013A\x03\u013A\x03\u013B\x03\u013B\x03\u013B\x03\u013B\x03\u013B" + + "\x05\u013B\u1ACE\n\u013B\x03\u013B\x03\u013B\x03\u013B\x05\u013B\u1AD3" + + "\n\u013B\x03\u013C\x03\u013C\x03\u013D\x03\u013D\x03\u013E\x03\u013E\x03" + + "\u013F\x03\u013F\x03\u0140\x03\u0140\x03\u0141\x03\u0141\x03\u0142\x03" + + "\u0142\x03\u0143\x03\u0143\x03\u0143\x07\u0143\u1AE6\n\u0143\f\u0143\x0E" + + "\u0143\u1AE9\v\u0143\x03\u0144\x03\u0144\x03\u0145\x03\u0145\x03\u0146" + + "\x03\u0146\x03\u0147\x03\u0147\x03\u0148\x03\u0148\x03\u0148\x07\u0148" + + "\u1AF6\n\u0148\f\u0148\x0E\u0148\u1AF9\v\u0148\x03\u0149\x03\u0149\x03" + + "\u014A\x03\u014A\x03\u014A\x07\u014A\u1B00\n\u014A\f\u014A\x0E\u014A\u1B03" + + "\v\u014A\x03\u014B"; + private static readonly _serializedATNSegment3: string = + "\x03\u014B\x05\u014B\u1B07\n\u014B\x03\u014C\x03\u014C\x03\u014C\x05\u014C" + + "\u1B0C\n\u014C\x05\u014C\u1B0E\n\u014C\x03\u014C\x05\u014C\u1B11\n\u014C" + + "\x03\u014C\x03\u014C\x05\u014C\u1B15\n\u014C\x05\u014C\u1B17\n\u014C\x03" + + "\u014D\x03\u014D\x03\u014D\x07\u014D\u1B1C\n\u014D\f\u014D\x0E\u014D\u1B1F" + + "\v\u014D\x03\u014E\x03\u014E\x03\u014E\x05\u014E\u1B24\n\u014E\x05\u014E" + + "\u1B26\n\u014E\x03\u014E\x05\u014E\u1B29\n\u014E\x03\u014E\x03\u014E\x05" + + "\u014E\u1B2D\n\u014E\x05\u014E\u1B2F\n\u014E\x03\u014F\x03\u014F\x03\u0150" + + "\x03\u0150\x03\u0151\x03\u0151\x03\u0152\x03\u0152\x03\u0152\x07\u0152" + + "\u1B3A\n\u0152\f\u0152\x0E\u0152\u1B3D\v\u0152\x03\u0153\x03\u0153\x03" + + "\u0154\x03\u0154\x03\u0154\x03\u0154\x03\u0154\x05\u0154\u1B46\n\u0154" + + "\x03\u0154\x05\u0154\u1B49\n\u0154\x03\u0154\x05\u0154\u1B4C\n\u0154\x03" + + "\u0155\x03\u0155\x03\u0155\x03\u0155\x03\u0156\x03\u0156\x03\u0156\x03" + + "\u0157\x03\u0157\x03\u0157\x03\u0157\x05\u0157\u1B59\n\u0157\x03\u0158" + + "\x03\u0158\x03\u0159\x03\u0159\x05\u0159\u1B5F\n\u0159\x03\u0159\x05\u0159" + + "\u1B62\n\u0159\x03\u015A\x03\u015A\x03\u015B\x03\u015B\x03\u015B\x03\u015B" + + "\x05\u015B\u1B6A\n\u015B\x03\u015C\x03\u015C\x03\u015D\x03\u015D\x03\u015D" + + "\x05\u015D\u1B71\n\u015D\x03\u015E\x03\u015E\x03\u015F\x03\u015F\x03\u015F" + + "\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x03\u015F" + + "\x03\u015F\x03\u015F\x03\u015F\x03\u015F\x06\u015F\u1B83\n\u015F\r\u015F" + + "\x0E\u015F\u1B84\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x03\u0160\x05" + + "\u0160\u1B8C\n\u0160\x05\u0160\u1B8E\n\u0160\x03\u0161\x03\u0161\x03\u0161" + + "\x06\u0161\u1B93\n\u0161\r\u0161\x0E\u0161\u1B94\x05\u0161\u1B97\n\u0161" + + "\x03\u0162\x03\u0162\x05\u0162\u1B9B\n\u0162\x03\u0163\x03\u0163\x03\u0163" + + "\x07\u0163\u1BA0\n\u0163\f\u0163\x0E\u0163\u1BA3\v\u0163\x03\u0164\x03" + + "\u0164\x03\u0164\x05\u0164\u1BA8\n\u0164\x03\u0165\x03\u0165\x03\u0165" + + "\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x03\u0165\x05\u0165" + + "\u1BB3\n\u0165\x03\u0166\x03\u0166\x03\u0166\x05\u0166\u1BB8\n\u0166\x03" + + "\u0167\x03\u0167\x03\u0168\x03\u0168\x05\u0168\u1BBE\n\u0168\x03\u0169" + + "\x05\u0169\u1BC1\n\u0169\x03\u0169\x03\u0169\x05\u0169\u1BC5\n\u0169\x03" + + "\u0169\x06\u0169\u1BC8\n\u0169\r\u0169\x0E\u0169\u1BC9\x03\u0169\x05\u0169" + + "\u1BCD\n\u0169\x03\u0169\x03\u0169\x05\u0169\u1BD1\n\u0169\x03\u0169\x03" + + "\u0169\x05\u0169\u1BD5\n\u0169\x05\u0169\u1BD7\n\u0169\x03\u016A\x03\u016A" + + "\x03\u016B\x05\u016B\u1BDC\n\u016B\x03\u016B\x03\u016B\x03\u016C\x05\u016C" + + "\u1BE1\n\u016C\x03\u016C\x03\u016C\x03\u016D\x03\u016D\x03\u016D\x03\u016D" + + "\x03\u016D\x03\u016D\x03\u016D\x03\u016D\x03\u016D\x05\u016D\u1BEE\n\u016D" + + "\x03\u016D\x05\u016D\u1BF1\n\u016D\x03\u016E\x03\u016E\x05\u016E\u1BF5" + + "\n\u016E\x03\u016E\x05\u016E\u1BF8\n\u016E\x03\u016E\x05\u016E\u1BFB\n" + + "\u016E\x03\u016E\x03\u016E\x03\u016E\x05\u016E\u1C00\n\u016E\x03\u016E" + + "\x03\u016E\x03\u016E\x05\u016E\u1C05\n\u016E\x03\u016E\x03\u016E\x03\u016E" + + "\x03\u016E\x05\u016E\u1C0B\n\u016E\x03\u016E\x05\u016E\u1C0E\n\u016E\x03" + + "\u016E\x03\u016E\x03\u016E\x05\u016E\u1C13\n\u016E\x03\u016E\x05\u016E" + + "\u1C16\n\u016E\x03\u016E\x03\u016E\x03\u016E\x05\u016E\u1C1B\n\u016E\x03" + + "\u016E\x05\u016E\u1C1E\n\u016E\x03\u016E\x03\u016E\x05\u016E\u1C22\n\u016E" + + "\x03\u016E\x07\u016E\u1C25\n\u016E\f\u016E\x0E\u016E\u1C28\v\u016E\x03" + + "\u016E\x03\u016E\x05\u016E\u1C2C\n\u016E\x03\u016E\x07\u016E\u1C2F\n\u016E" + + "\f\u016E\x0E\u016E\u1C32\v\u016E\x03\u016E\x03\u016E\x05\u016E\u1C36\n" + + "\u016E\x03\u016E\x05\u016E\u1C39\n\u016E\x03\u016E\x07\u016E\u1C3C\n\u016E" + + "\f\u016E\x0E\u016E\u1C3F\v\u016E\x03\u016E\x03\u016E\x05\u016E\u1C43\n" + + "\u016E\x03\u016E\x07\u016E\u1C46\n\u016E\f\u016E\x0E\u016E\u1C49\v\u016E" + + "\x03\u016E\x03\u016E\x03\u016E\x05\u016E\u1C4E\n\u016E\x03\u016E\x03\u016E" + + "\x03\u016E\x05\u016E\u1C53\n\u016E\x03\u016E\x03\u016E\x03\u016E\x05\u016E" + + "\u1C58\n\u016E\x03\u016E\x03\u016E\x03\u016E\x05\u016E\u1C5D\n\u016E\x03" + + "\u016E\x03\u016E\x05\u016E\u1C61\n\u016E\x03\u016E\x05\u016E\u1C64\n\u016E" + + "\x03\u016E\x03\u016E\x03\u016E\x05\u016E\u1C69\n\u016E\x03\u016E\x03\u016E" + + "\x05\u016E\u1C6D\n\u016E\x03\u016E\x03\u016E\x05\u016E\u1C71\n\u016E\x03" + + "\u016F\x03\u016F\x03\u016F\x03\u016F\x07\u016F\u1C77\n\u016F\f\u016F\x0E" + + "\u016F\u1C7A\v\u016F\x03\u016F\x03\u016F\x03\u0170\x03\u0170\x05\u0170" + + "\u1C80\n\u0170\x03\u0170\x03\u0170\x05\u0170\u1C84\n\u0170\x03\u0170\x03" + + "\u0170\x03\u0170\x05\u0170\u1C89\n\u0170\x03\u0170\x03\u0170\x03\u0170" + + "\x05\u0170\u1C8E\n\u0170\x03\u0170\x03\u0170\x05\u0170\u1C92\n\u0170\x05" + + "\u0170\u1C94\n\u0170\x03\u0170\x05\u0170\u1C97\n\u0170\x03\u0171\x03\u0171" + + "\x03\u0171\x03\u0171\x03\u0172\x03\u0172\x03\u0172\x03\u0172\x03\u0172" + + "\x03\u0172\x03\u0173\x03\u0173\x03\u0173\x03\u0173\x05\u0173\u1CA7\n\u0173" + + "\x03\u0173\x03\u0173\x03\u0174\x03\u0174\x03\u0174\x03\u0174\x07\u0174" + + "\u1CAF\n\u0174\f\u0174\x0E\u0174\u1CB2\v\u0174\x03\u0174\x03\u0174\x03" + + "\u0175\x03\u0175\x03\u0175\x07\u0175\u1CB9\n\u0175\f\u0175\x0E\u0175\u1CBC" + + "\v\u0175\x03\u0176\x03\u0176\x03\u0176\x03\u0176\x07\u0176\u1CC2\n\u0176" + + "\f\u0176\x0E\u0176\u1CC5\v\u0176\x03\u0177\x03\u0177\x03\u0177\x03\u0177" + + "\x07\u0177\u1CCB\n\u0177\f\u0177\x0E\u0177\u1CCE\v\u0177\x03\u0177\x03" + + "\u0177\x03\u0178\x03\u0178\x05\u0178\u1CD4\n\u0178\x03\u0179\x03\u0179" + + "\x03\u0179\x07\u0179\u1CD9\n\u0179\f\u0179\x0E\u0179\u1CDC\v\u0179\x03" + + "\u017A\x03\u017A\x03\u017A\x07\u017A\u1CE1\n\u017A\f\u017A\x0E\u017A\u1CE4" + + "\v\u017A\x03\u017B\x03\u017B\x03\u017B\x07\u017B\u1CE9\n\u017B\f\u017B" + + "\x0E\u017B\u1CEC\v\u017B\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C" + + "\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x05\u017C\u1CF7\n\u017C\x03\u017C" + + "\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x05\u017C\u1CFE\n\u017C\x03\u017C" + + "\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C\x03\u017C" + + "\x05\u017C\u1D08\n\u017C\x03\u017D\x03\u017D\x03\u017D\x05\u017D\u1D0D" + + "\n\u017D\x03\u017D\x05\u017D\u1D10\n\u017D\x03\u017D\x03\u017D\x03\u017D" + + "\x05\u017D\u1D15\n\u017D\x03\u017D\x05\u017D\u1D18\n\u017D\x03\u017E\x03" + + "\u017E\x03\u017E\x03\u017F\x03\u017F\x03\u017F\x03\u017F\x03\u0180\x03" + + "\u0180\x03\u0180\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181\x03" + + "\u0181\x05\u0181\u1D2A\n\u0181\x03\u0181\x03\u0181\x03\u0181\x03\u0181" + + "\x03\u0181\x05\u0181\u1D31\n\u0181\x03\u0181\x03\u0181\x03\u0181\x05\u0181" + + "\u1D36\n\u0181\x03\u0182\x03\u0182\x03\u0182\x05\u0182\u1D3B\n\u0182\x03" + + "\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03" + + "\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03" + + "\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03" + + "\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03" + + "\u0182\x03\u0182\x06\u0182\u1D5B\n\u0182\r\u0182\x0E\u0182\u1D5C\x03\u0182" + + "\x03\u0182\x05\u0182\u1D61\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x06\u0182\u1D67\n\u0182\r\u0182\x0E\u0182\u1D68\x03\u0182\x03\u0182\x05" + + "\u0182\u1D6D\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x05\u0182\u1D76\n\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x03\u0182\x05\u0182\u1D7E\n\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x05\u0182\u1D83\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x05\u0182\u1D8B\n\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x05\u0182\u1D90\n\u0182\x03\u0182\x03\u0182\x03\u0182\x05\u0182\u1D95" + + "\n\u0182\x05\u0182\u1D97\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x03\u0182\x05\u0182\u1DA0\n\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x05\u0182\u1DA5\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x05\u0182\u1DAD\n\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x05\u0182\u1DB2\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x05\u0182\u1DBA\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x05\u0182\u1DC2\n\u0182\x03\u0182\x05\u0182\u1DC5" + + "\n\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03" + + "\u0182\x03\u0182\x05\u0182\u1DCF\n\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182" + + "\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x03\u0182\x05\u0182" + + "\u1DE1\n\u0182\x03\u0182\x05\u0182\u1DE4\n\u0182\x03\u0182\x05\u0182\u1DE7" + + "\n\u0182\x03\u0182\x03\u0182\x05\u0182\u1DEB\n\u0182\x03\u0183\x03\u0183" + + "\x03\u0183\x03\u0183\x03\u0183\x03\u0184\x03\u0184\x03\u0184\x03\u0184" + + "\x07\u0184\u1DF6\n\u0184\f\u0184\x0E\u0184\u1DF9\v\u0184\x03\u0184\x03" + + "\u0184\x03\u0184\x03\u0184\x03\u0184\x05\u0184\u1E00\n\u0184\x03\u0185" + + "\x03\u0185\x05\u0185\u1E04\n\u0185\x03\u0186\x03\u0186\x03\u0186\x05\u0186" + + "\u1E09\n\u0186\x03\u0186\x03\u0186\x03\u0186\x05\u0186\u1E0E\n\u0186\x03" + + "\u0186\x03\u0186\x03\u0186\x03\u0186\x05\u0186\u1E14\n\u0186\x03\u0186" + + "\x03\u0186\x03\u0186\x05\u0186\u1E19\n\u0186\x03\u0186\x03\u0186\x05\u0186" + + "\u1E1D\n\u0186\x03\u0186\x03\u0186\x03\u0186\x05\u0186\u1E22\n\u0186\x03" + + "\u0186\x03\u0186\x03\u0186\x05\u0186\u1E27\n\u0186\x03\u0186\x03\u0186" + + "\x03\u0186\x05\u0186\u1E2C\n\u0186\x03\u0186\x03\u0186\x03\u0186\x03\u0186" + + "\x03\u0186\x03\u0186\x07\u0186\u1E34\n\u0186\f\u0186\x0E\u0186\u1E37\v" + + "\u0186\x05\u0186\u1E39\n\u0186\x03\u0186\x03\u0186\x05\u0186\u1E3D\n\u0186" + + "\x03\u0186\x03\u0186\x05\u0186\u1E41\n\u0186\x03\u0187\x03\u0187\x03\u0187" + + "\x03\u0187\x03\u0187\x05\u0187\u1E48\n\u0187\x03\u0187\x03\u0187\x05\u0187" + + "\u1E4C\n\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187" + + "\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187" + + "\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187" + + "\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187\x03\u0187" + + "\x05\u0187\u1E69\n\u0187\x03\u0188\x03\u0188\x03\u0188\x03\u0188\x03\u0188" + + "\x03\u0188\x05\u0188\u1E71\n\u0188\x03\u0189\x05\u0189\u1E74\n\u0189\x03" + + "\u0189\x05\u0189\u1E77\n\u0189\x03\u0189\x05\u0189\u1E7A\n\u0189\x03\u0189" + + "\x05\u0189\u1E7D\n\u0189\x03\u018A\x03\u018A\x03\u018B\x03\u018B\x03\u018B" + + "\x03\u018C\x03\u018C\x03\u018D\x03\u018D\x05\u018D\u1E88\n\u018D\x03\u018E" + + "\x03\u018E\x03\u018E\x03\u018E\x03\u018E\x03\u018F\x03\u018F\x03\u018F" + + "\x03\u018F\x03\u018F\x03\u018F\x03\u018F\x05\u018F\u1E96\n\u018F\x03\u0190" + + "\x03\u0190\x03\u0190\x03\u0190\x03\u0190\x07\u0190\u1E9D\n\u0190\f\u0190" + + "\x0E\u0190\u1EA0\v\u0190\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191" + + "\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191" + + "\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191" + + "\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x03\u0191\x05\u0191\u1EBA\n\u0191" + + "\x03\u0192\x03\u0192\x03\u0192\x03\u0192\x03\u0192\x03\u0193\x03\u0193" + + "\x03\u0193\x07\u0193\u1EC4\n\u0193\f\u0193\x0E\u0193\u1EC7\v\u0193\x03" + + "\u0194\x03\u0194\x03\u0194\x03\u0194\x05\u0194\u1ECD\n\u0194\x03\u0195" + + "\x03\u0195\x03\u0195\x03\u0195\x03\u0195\x03\u0195\x05\u0195\u1ED5\n\u0195" + + "\x03\u0195\x03\u0195\x03\u0195\x05\u0195\u1EDA\n\u0195\x03\u0195\x03\u0195" + + "\x03\u0195\x03\u0195\x07\u0195\u1EE0\n\u0195\f\u0195\x0E\u0195\u1EE3\v" + + "\u0195\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03" + + "\u0196\x03\u0196\x03\u0196\x05\u0196\u1EEE\n\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x05\u0196\u1EFB\n\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x05\u0196\u1F01\n\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x05\u0196\u1F07\n\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x05\u0196\u1F17\n\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x05\u0196\u1F1D\n\u0196\x03\u0196\x03\u0196\x03\u0196\x03\u0196" + + "\x03\u0196\x03\u0196\x03\u0196\x07\u0196\u1F26\n\u0196\f\u0196\x0E\u0196" + + "\u1F29\v\u0196\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x07\u0197\u1F3C\n\u0197\f\u0197" + + "\x0E\u0197\u1F3F\v\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0197\x03\u0197\x06\u0197\u1F48\n\u0197\r\u0197\x0E\u0197\u1F49\x03" + + "\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03" + + "\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03" + + "\u0197\x05\u0197\u1F5B\n\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x03\u0197" + + "\x03\u0197\x03\u0197\x03\u0197\x03\u0197\x07\u0197\u1F6C\n\u0197\f\u0197" + + "\x0E\u0197\u1F6F\v\u0197\x03\u0198\x03\u0198\x03\u0199\x03\u0199\x03\u0199" + + "\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x03\u0199\x05\u0199\u1F7B\n\u0199" + + "\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A\x03\u019A" + + "\x05\u019A\u1F84\n\u019A\x03\u019B\x03\u019B\x03\u019B\x03\u019B\x03\u019B" + + "\x03\u019B\x03\u019B\x05\u019B\u1F8D\n\u019B\x03\u019C\x03\u019C\x03\u019C" + + "\x03\u019C\x03\u019C\x03\u019C\x03\u019C\x05\u019C\u1F96\n\u019C\x03\u019D" + + "\x03\u019D\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x03\u019E\x05\u019E" + + "\u1F9F\n\u019E\x03\u019F\x03\u019F\x03\u01A0\x03\u01A0\x03\u01A1\x03\u01A1" + + "\x03\u01A2\x03\u01A2\x03\u01A3\x03\u01A3\x03\u01A4\x03\u01A4\x03\u01A5" + + "\x03\u01A5\x03\u01A5\x02\x02\x07\xD2\xD4\u0328\u032A\u032C\u01A6\x02\x02" + + "\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12\x02\x14\x02\x16" + + "\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&\x02(\x02*\x02,\x02" + + ".\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02B\x02D\x02F\x02H\x02" + + "J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02\\\x02^\x02`\x02b\x02d\x02" + + "f\x02h\x02j\x02l\x02n\x02p\x02r\x02t\x02v\x02x\x02z\x02|\x02~\x02\x80" + + "\x02\x82\x02\x84\x02\x86\x02\x88\x02\x8A\x02\x8C\x02\x8E\x02\x90\x02\x92" + + "\x02\x94\x02\x96\x02\x98\x02\x9A\x02\x9C\x02\x9E\x02\xA0\x02\xA2\x02\xA4" + + "\x02\xA6\x02\xA8\x02\xAA\x02\xAC\x02\xAE\x02\xB0\x02\xB2\x02\xB4\x02\xB6" + + "\x02\xB8\x02\xBA\x02\xBC\x02\xBE\x02\xC0\x02\xC2\x02\xC4\x02\xC6\x02\xC8" + + "\x02\xCA\x02\xCC\x02\xCE\x02\xD0\x02\xD2\x02\xD4\x02\xD6\x02\xD8\x02\xDA" + + "\x02\xDC\x02\xDE\x02\xE0\x02\xE2\x02\xE4\x02\xE6\x02\xE8\x02\xEA\x02\xEC" + + "\x02\xEE\x02\xF0\x02\xF2\x02\xF4\x02\xF6\x02\xF8\x02\xFA\x02\xFC\x02\xFE" + + "\x02\u0100\x02\u0102\x02\u0104\x02\u0106\x02\u0108\x02\u010A\x02\u010C" + + "\x02\u010E\x02\u0110\x02\u0112\x02\u0114\x02\u0116\x02\u0118\x02\u011A" + + "\x02\u011C\x02\u011E\x02\u0120\x02\u0122\x02\u0124\x02\u0126\x02\u0128" + + "\x02\u012A\x02\u012C\x02\u012E\x02\u0130\x02\u0132\x02\u0134\x02\u0136" + + "\x02\u0138\x02\u013A\x02\u013C\x02\u013E\x02\u0140\x02\u0142\x02\u0144" + + "\x02\u0146\x02\u0148\x02\u014A\x02\u014C\x02\u014E\x02\u0150\x02\u0152" + + "\x02\u0154\x02\u0156\x02\u0158\x02\u015A\x02\u015C\x02\u015E\x02\u0160" + + "\x02\u0162\x02\u0164\x02\u0166\x02\u0168\x02\u016A\x02\u016C\x02\u016E" + + "\x02\u0170\x02\u0172\x02\u0174\x02\u0176\x02\u0178\x02\u017A\x02\u017C" + + "\x02\u017E\x02\u0180\x02\u0182\x02\u0184\x02\u0186\x02\u0188\x02\u018A" + + "\x02\u018C\x02\u018E\x02\u0190\x02\u0192\x02\u0194\x02\u0196\x02\u0198" + + "\x02\u019A\x02\u019C\x02\u019E\x02\u01A0\x02\u01A2\x02\u01A4\x02\u01A6" + + "\x02\u01A8\x02\u01AA\x02\u01AC\x02\u01AE\x02\u01B0\x02\u01B2\x02\u01B4" + + "\x02\u01B6\x02\u01B8\x02\u01BA\x02\u01BC\x02\u01BE\x02\u01C0\x02\u01C2" + + "\x02\u01C4\x02\u01C6\x02\u01C8\x02\u01CA\x02\u01CC\x02\u01CE\x02\u01D0" + + "\x02\u01D2\x02\u01D4\x02\u01D6\x02\u01D8\x02\u01DA\x02\u01DC\x02\u01DE" + + "\x02\u01E0\x02\u01E2\x02\u01E4\x02\u01E6\x02\u01E8\x02\u01EA\x02\u01EC" + + "\x02\u01EE\x02\u01F0\x02\u01F2\x02\u01F4\x02\u01F6\x02\u01F8\x02\u01FA" + + "\x02\u01FC\x02\u01FE\x02\u0200\x02\u0202\x02\u0204\x02\u0206\x02\u0208" + + "\x02\u020A\x02\u020C\x02\u020E\x02\u0210\x02\u0212\x02\u0214\x02\u0216" + + "\x02\u0218\x02\u021A\x02\u021C\x02\u021E\x02\u0220\x02\u0222\x02\u0224" + + "\x02\u0226\x02\u0228\x02\u022A\x02\u022C\x02\u022E\x02\u0230\x02\u0232" + + "\x02\u0234\x02\u0236\x02\u0238\x02\u023A\x02\u023C\x02\u023E\x02\u0240" + + "\x02\u0242\x02\u0244\x02\u0246\x02\u0248\x02\u024A\x02\u024C\x02\u024E" + + "\x02\u0250\x02\u0252\x02\u0254\x02\u0256\x02\u0258\x02\u025A\x02\u025C" + + "\x02\u025E\x02\u0260\x02\u0262\x02\u0264\x02\u0266\x02\u0268\x02\u026A" + + "\x02\u026C\x02\u026E\x02\u0270\x02\u0272\x02\u0274\x02\u0276\x02\u0278" + + "\x02\u027A\x02\u027C\x02\u027E\x02\u0280\x02\u0282\x02\u0284\x02\u0286" + + "\x02\u0288\x02\u028A\x02\u028C\x02\u028E\x02\u0290\x02\u0292\x02\u0294" + + "\x02\u0296\x02\u0298\x02\u029A\x02\u029C\x02\u029E\x02\u02A0\x02\u02A2" + + "\x02\u02A4\x02\u02A6\x02\u02A8\x02\u02AA\x02\u02AC\x02\u02AE\x02\u02B0" + + "\x02\u02B2\x02\u02B4\x02\u02B6\x02\u02B8\x02\u02BA\x02\u02BC\x02\u02BE" + + "\x02\u02C0\x02\u02C2\x02\u02C4\x02\u02C6\x02\u02C8\x02\u02CA\x02\u02CC" + + "\x02\u02CE\x02\u02D0\x02\u02D2\x02\u02D4\x02\u02D6\x02\u02D8\x02\u02DA" + + "\x02\u02DC\x02\u02DE\x02\u02E0\x02\u02E2\x02\u02E4\x02\u02E6\x02\u02E8" + + "\x02\u02EA\x02\u02EC\x02\u02EE\x02\u02F0\x02\u02F2\x02\u02F4\x02\u02F6" + + "\x02\u02F8\x02\u02FA\x02\u02FC\x02\u02FE\x02\u0300\x02\u0302\x02\u0304" + + "\x02\u0306\x02\u0308\x02\u030A\x02\u030C\x02\u030E\x02\u0310\x02\u0312" + + "\x02\u0314\x02\u0316\x02\u0318\x02\u031A\x02\u031C\x02\u031E\x02\u0320" + + "\x02\u0322\x02\u0324\x02\u0326\x02\u0328\x02\u032A\x02\u032C\x02\u032E" + + "\x02\u0330\x02\u0332\x02\u0334\x02\u0336\x02\u0338\x02\u033A\x02\u033C" + + "\x02\u033E\x02\u0340\x02\u0342\x02\u0344\x02\u0346\x02\u0348\x02\x02\xA2" + + "\x04\x02))\x9A\x9A\x04\x02\u01FE\u01FE\u0204\u0204\x05\x02GG\xA3\xA3\xB8" + + "\xB8\x05\x02,,\u0167\u0167\u01B0\u01B0\x06\x02,,\u0187\u0187\u01FB\u01FB" + + "\u0255\u0255\x04\x02\u01F0\u01F0\u0374\u0374\x04\x02QQ\x91\x91\x04\x02" + + "\x12\x12\u0134\u0134\x05\x02..XX\xBB\xBB\x04\x02\u0198\u0198\u021C\u021C" + + "\x05\x02\u01E8\u01E8\u0297\u0297\u02A0\u02A0\x04\x02\u016E\u016E\u01B6" + + "\u01B6\x04\x02\u0147\u0147\u01C4\u01C4\x04\x02,,\u0369\u036A\x04\x02\'" + + "\'\u02A8\u02A8\x04\x02\u0145\u0145\u01A4\u01A4\x04\x02\u01B5\u01B5\u02B0" + + "\u02B0\x05\x02RRWW\x80\x80\x04\x02TT^^\x04\x02GG\xA3\xA3\x05\x02,,\u0178" + + "\u0178\u0195\u0195\x05\x02,,\u0174\u0174\u0324\u0324\x04\x02\u028A\u028A" + + "\u02AF\u02AF\x05\x02\u019A\u019A\u0210\u0210\u0257\u0257\x04\x02\u014B" + + "\u014B\u020C\u020C\x03\x02\u0369\u036A\x04\x02\u0374\u0374\u037C\u037C" + + "\x04\x02TT\u016A\u016A\x04\x02\u020D\u020D\u0374\u0374\x04\x02\u020E\u020E" + + "\u0374\u0374\x05\x02\u0194\u0194\u01BF\u01BF\u01F8\u01F8\t\x02,,\u0158" + + "\u0158\u015B\u015B\u0178\u0178\u0195\u0195\u022C\u022C\u037C\u037C\x04" + + "\x02\u01F0\u01F0\u01FC\u01FC\x03\x02\u036A\u036B\x04\x02\b\b55\x04\x02" + + "\x07\x07SS\x04\x02\x1D\x1D!!\x06\x02,,\u0167\u0167\u01B0\u01B0\u01B4\u01B4" + + "\x04\x02\u0172\u0172\u0179\u0179\x04\x02\u0173\u0173\u01AB\u01AB\x04\x02" + + "\x0F\x0F\xB2\xB2\x04\x02\xC4\xC4\u02B4\u02B4\x04\x02\x18\x18\x94\x94\x05" + + "\x02--NNmm\x04\x02\t\t33\x04\x02mm\u015D\u015D\x04\x02\u0153\u0153\u0190" + + "\u0190\x04\x02hh\u024D\u024D\x04\x02--mm\x05\x02==\xB7\xB7\u033E\u033E" + + "\x04\x02\xBB\xBB\u0254\u0254\x04\x02\xA1\xA1\u01F9\u01F9\x06\x02\u0194" + + "\u0194\u01BF\u01BF\u01F7\u01F7\u0220\u0220\x04\x02\u0194\u0194\u01F7\u01F7" + + "\x04\x02\x10\x10//\x05\x02DDQQ\xBD\xBD\x04\x02%%VV\x04\x02dd\x98\x98\x04" + + "\x02\t\t34\x03\x02\u027F\u0280\x04\x02\xAF\xAF\u02F2\u02F2\x04\x02\u019F" + + "\u019F\u0253\u0253\x04\x02\xE6\xE6\u01C7\u01C7\x04\x02\u0235\u0235\u0258" + + "\u0258\n\x02nn\u01C9\u01C9\u01CD\u01CE\u01D0\u01D0\u01D2\u01D2\u01D5\u01DE" + + "\u01F5\u01F5\u022F\u022F\b\x02\u01CA\u01CC\u01CF\u01CF\u01D1\u01D1\u01D3" + + "\u01D3\u01DF\u01DF\u0230\u0230\t\x02oo\u019D\u019D\u01A2\u01A2\u01C8\u01C8" + + "\u01D4\u01D4\u023F\u023F\u026B\u026B\x04\x02vv\u0374\u0374\x04\x02xy\u01FD" + + "\u01FD\t\x02\u01F5\u01F5\u022F\u022F\u0260\u0263\u0265\u0265\u026D\u026D" + + "\u0270\u0276\u0278\u027A\b\x02\u0230\u0230\u0264\u0264\u0266\u0266\u0268" + + "\u026A\u026C\u026C\u026E\u026E\t\x02\u019E\u019E\u01A2\u01A2\u023F\u023F" + + "\u0267\u0267\u026B\u026B\u026F\u026F\u0277\u0277\x05\x02HHxy\u01FD\u01FD" + + "\x04\x02\u01B8\u01B8\u0281\u0281\x04\x02\u027B\u027B\u027D\u027D\x04\x02" + + "\u013F\u013F\u0282\u0282\x04\x02]]\u0243\u0243\x04\x0255\u016C\u016C\x05" + + "\x02\"\"??\xB6\xB6\x04\x02\x11\x11\u0156\u0156\x04\x02\u02A8\u02A8\u0345" + + "\u0345\x05\x02\x86\x86\xAF\xAF\u019B\u019B\x05\x02\b\b55\u01EE\u01EE\x05" + + "\x02\x0F\x0F\x16\x16\xBE\xBE\x04\x02,,||\x04\x02jj\xB9\xB9\x03\x02\u036B" + + "\u036C\x04\x02\u014F\u014F\u0258\u0258\x04\x02**\u02AE\u02AE\x04\x02\u018A" + + "\u018A\u0227\u0227\x04\x02uu\u01C4\u01C4\x06\x02\xD2\xD2\xD4\xD4\xDA\xDA" + + "\u028B\u028B\x05\x02\u019F\u019F\u0215\u0215\u0380\u0381\x04\x02\u034B" + + "\u034B\u035B\u035B\x04\x02\u0140\u0140\u0231\u0231\x04\x02FFRR\x05\x02" + + "\x86\x86\xB4\xB4\u0183\u0183\x04\x02\u01EF\u01EF\u0287\u0287\x04\x02\u0181" + + "\u0181\u02B2\u02B2\x05\x02TT__\u01AC\u01AC\x06\x02\u019F\u019F\u01C4\u01C4" + + "\u0215\u0216\u0253\u0253\x04\x02\u0287\u0287\u02AD\u02AD\x04\x02\u015F" + + "\u015F\u0226\u0226\b\x02\xE6\xE6\u017E\u017E\u0180\u0180\u019C\u019C\u022E" + + "\u022E\u0259\u0259\x04\x02/0@@\x05\x02\u01BC\u01BC\u0299\u0299\u029C\u029C" + + "\f\x02\u014E\u014E\u0155\u0155\u0161\u0163\u0169\u0169\u01E9\u01E9\u01F1" + + "\u01F1\u028C\u028C\u0293\u0293\u0338\u0338\u0342\u0342\x04\x02&&\xAC\xAC" + + "\x04\x02ww\u0341\u0341\r\x02\u014E\u014E\u0155\u0155\u0161\u0163\u0169" + + "\u0169\u01E9\u01E9\u01F1\u01F1\u0244\u0244\u028C\u028C\u0293\u0293\u0338" + + "\u0338\u0342\u0342\x04\x02\u0368\u0368\u037E\u037F\x03\x02\u037F\u0380" + + "\x04\x02\u015E\u015E\u031F\u032A\x05\x02\u0369\u036C\u0375\u0375\u0377" + + "\u0377\x04\x02AA\xB5\xB5\x04\x02vv\u0378\u0378\x07\x02\x1C\x1C\xE2\xE4" + + "\xEB\xEB\xED\xF0\u01F4\u01F4\x04\x02\x1C\x1C\xE2\xE2\x04\x02\x1C\x1C\xE2" + + "\xE3\x03\x02\xC8\xD3\x05\x02\xBA\xBA\xC7\xC7\u0256\u0256\x04\x02\xD7\xDC" + + "\u0195\u0195\b\x02\xDD\xDD\xE8\xE8\xEA\xEA\xEC\xEC\xF3\xF3\u0143\u0144" + + "\x06\x02\xDE\xE1\xE6\xE7\xE9\xE9\u0141\u0141\x04\x02\x9D\x9D\xF1\xF1\x04" + + "\x02\u01BC\u01BC\u032F\u0337\x04\x02\xE6\xE6\u01F4\u01F4\x07\x02\xCC\xCC" + + "\xD2\xD2\xDD\xDE\xE0\xE0\u01BC\u01BC\x03\x02\xDA\xDB\x04\x02\xBA\xBA\u0256" + + "\u0256\x04\x02\xCC\xCC\xD2\xD2\x04\x02\xBF\xBF\u02AC\u02AC\x04\x02\u0121" + + "\u0122\u0128\u0128\x05\x02\x9A\x9A\u011F\u0122\u0131\u0131\x03\x02\u012B" + + "\u012C\x05\x02\x14\x14bb\xB3\xB3\x04\x02\xE2\xE2\xE6\xE6\x04\x02\xDD\xDE" + + "\xE0\xE0\x05\x02\x10\x10//\u0340\u0340\x05\x02\u0104\u0104\u0110\u0111" + + "\u011B\u011B\x05\x02\u0105\u0107\u0117\u011A\u011C\u011E\x04\x02\u010D" + + "\u010D\u010F\u010F\x04\x02\u010B\u010B\u010E\u010E\x04\x02\u0109\u010A" + + "\u0114\u0116\x04\x02\x88\x88\u024D\u024D\x04\x02\u0197\u0197\u021D\u021D" + + "\x04\x02\u0202\u0202\u0213\u0213\x04\x02tt\u035E\u035E\x05\x02AA\xB5\xB5" + + "\u02A4\u02A4\x04\x02\x8D\x8D\x99\x99\x05\x02\t\t\u0137\u0137\u025C\u025C" + + "\x05\x02tt\u0357\u0358\u035E\u035F\x03\x02\u0354\u035A\x04\x02\xE6\xE6" + + "\u02F6\u031E\x03\x02\u032B\u032E\x07\x02\u02CF\u02D0\u02E0\u02E2\u02E9" + + "\u02E9\u02EF\u02F0\u02F2\u02F2\x03\x02\u02BA\u02C1\x05\x02\xDD\xE1\xEE" + + "\xEE\xF1\xF1N\x02\x0E\x0E\x11\x11\x15\x15 &\',,2299;;==LLaaww||\x7F\x7F" + + "\x85\x85\xA2\xA2\xAC\xAC\xF3\xF3\u0101\u0108\u010C\u010C\u0110\u0111\u0117" + + "\u011E\u0132\u0137\u0139\u014B\u014D\u0159\u015B\u017A\u017C\u018B\u018D" + + "\u0192\u0194\u0196\u0198\u019C\u019F\u01A1\u01A3\u01AC\u01AE\u01AE\u01B0" + + "\u01B4\u01B6\u01C8\u01CA\u01D1\u01D3\u01DB\u01DD\u01DE\u01E0\u01F4\u01F6" + + "\u01FC\u01FE\u0200\u0202\u020C\u020F\u0214\u0217\u021C\u021E\u0220\u0222" + + "\u022C\u022E\u0234\u0237\u023E\u0241\u0241\u0243\u0244\u0246\u025F\u027B" + + "\u0289\u028B\u029B\u029D\u02A4\u02A6\u02AF\u02B1\u02B2\u02B4\u02B9\u02C2" + + "\u02C2\u02C4\u02C5\u02C7\u02CA\u02CC\u02CE\u02D1\u02D3\u02D8\u02D9\u02DB" + + "\u02DF\u02E3\u02E4\u02E6\u02E8\u02EA\u02EA\u02EC\u02EE\u02F1\u02F1\u02F3" + + "\u02F5\u0324\u0324\u0338\u0338\u033B\u033B\u0342\u0343\u0348\u0348\x1A" + + "\x02))dd\x98\x98\x9A\x9A\xDD\xDF\xE1\xE1\xFF\u0100\u0108\u010B\u010D\u010F" + + "\u0112\u0116\u012A\u012A\u01B5\u01B5\u02B0\u02B0\u02BA\u02C1\u02EC\u02EC" + + "\u032F\u032F\u0332\u0337\u0339\u033A\u033C\u033D\u033F\u0341\u0344\u0344" + + "\u0346\u0346\u034A\u034A\u035A\u035A\x02\u2514\x02\u034B\x03\x02\x02\x02" + + "\x04\u0353\x03\x02\x02\x02\x06\u0364\x03\x02\x02\x02\b\u0366\x03\x02\x02" + + "\x02\n\u038F\x03\x02\x02\x02\f\u03A2\x03\x02\x02\x02\x0E\u03AD\x03\x02" + + "\x02\x02\x10\u03BD\x03\x02\x02\x02\x12\u03C2\x03\x02\x02\x02\x14\u03CE" + + "\x03\x02\x02\x02\x16\u03F1\x03\x02\x02\x02\x18\u03FB\x03\x02\x02\x02\x1A" + + "\u03FD\x03\x02\x02\x02\x1C\u0409\x03\x02\x02\x02\x1E\u0427\x03\x02\x02" + + "\x02 \u044B\x03\x02\x02\x02\"\u047E\x03\x02\x02\x02$\u049B\x03\x02\x02" + + "\x02&\u04A2\x03\x02\x02\x02(\u0503\x03\x02\x02\x02*\u0505\x03\x02\x02" + + "\x02,\u052A\x03\x02\x02\x02.\u056A\x03\x02\x02\x020\u0580\x03\x02\x02" + + "\x022\u0586\x03\x02\x02\x024\u059C\x03\x02\x02\x026\u05EC\x03\x02\x02" + + "\x028\u05F3\x03\x02\x02\x02:\u05F5\x03\x02\x02\x02<\u05FA\x03\x02\x02" + + "\x02>\u0622\x03\x02\x02\x02@\u0628\x03\x02\x02\x02B\u062A\x03\x02\x02" + + "\x02D\u063F\x03\x02\x02\x02F"; + private static readonly _serializedATNSegment4: string = + "\u0646\x03\x02\x02\x02H\u0648\x03\x02\x02\x02J\u0661\x03\x02\x02\x02L" + + "\u0664\x03\x02\x02\x02N\u0680\x03\x02\x02\x02P\u0690\x03\x02\x02\x02R" + + "\u0692\x03\x02\x02\x02T\u06F0\x03\x02\x02\x02V\u06F3\x03\x02\x02\x02X" + + "\u06FF\x03\x02\x02\x02Z\u0703\x03\x02\x02\x02\\\u0735\x03\x02\x02\x02" + + "^\u0737\x03\x02\x02\x02`\u0753\x03\x02\x02\x02b\u075D\x03\x02\x02\x02" + + "d\u0818\x03\x02\x02\x02f\u081A\x03\x02\x02\x02h\u081C\x03\x02\x02\x02" + + "j\u081F\x03\x02\x02\x02l\u086A\x03\x02\x02\x02n\u0881\x03\x02\x02\x02" + + "p\u0915\x03\x02\x02\x02r\u091A\x03\x02\x02\x02t\u091C\x03\x02\x02\x02" + + "v\u0926\x03\x02\x02\x02x\u095E\x03\x02\x02\x02z\u0972\x03\x02\x02\x02" + + "|\u0974\x03\x02\x02\x02~\u0997\x03\x02\x02\x02\x80\u09A0\x03\x02\x02\x02" + + "\x82\u09A7\x03\x02\x02\x02\x84\u09BE\x03\x02\x02\x02\x86\u09C7\x03\x02" + + "\x02\x02\x88\u09D6\x03\x02\x02\x02\x8A\u09EC\x03\x02\x02\x02\x8C\u0A24" + + "\x03\x02\x02\x02\x8E\u0B4C\x03\x02\x02\x02\x90\u0BB0\x03\x02\x02\x02\x92" + + "\u0BB2\x03\x02\x02\x02\x94\u0BB9\x03\x02\x02\x02\x96\u0BC0\x03\x02\x02" + + "\x02\x98\u0BD7\x03\x02\x02\x02\x9A\u0BE1\x03\x02\x02\x02\x9C\u0BE8\x03" + + "\x02\x02\x02\x9E\u0BEF\x03\x02\x02\x02\xA0\u0BF6\x03\x02\x02\x02\xA2\u0BFF" + + "\x03\x02\x02\x02\xA4\u0C0B\x03\x02\x02\x02\xA6\u0C18\x03\x02\x02\x02\xA8" + + "\u0C1F\x03\x02\x02\x02\xAA\u0C2F\x03\x02\x02\x02\xAC\u0C4A\x03\x02\x02" + + "\x02\xAE\u0C4C\x03\x02\x02\x02\xB0\u0C56\x03\x02\x02\x02\xB2\u0C5A\x03" + + "\x02\x02\x02\xB4\u0C60\x03\x02\x02\x02\xB6\u0C6C\x03\x02\x02\x02\xB8\u0C6E" + + "\x03\x02\x02\x02\xBA\u0C75\x03\x02\x02\x02\xBC\u0C77\x03\x02\x02\x02\xBE" + + "\u0CA8\x03\x02\x02\x02\xC0\u0CB1\x03\x02\x02\x02\xC2\u0CB3\x03\x02\x02" + + "\x02\xC4\u0CBE\x03\x02\x02\x02\xC6\u0CC4\x03\x02\x02\x02\xC8\u0D0E\x03" + + "\x02\x02\x02\xCA\u0D4D\x03\x02\x02\x02\xCC\u0D5F\x03\x02\x02\x02\xCE\u0DBD" + + "\x03\x02\x02\x02\xD0\u0DC0\x03\x02\x02\x02\xD2\u0DCC\x03\x02\x02\x02\xD4" + + "\u0DE0\x03\x02\x02\x02\xD6\u0DFC\x03\x02\x02\x02\xD8\u0E00\x03\x02\x02" + + "\x02\xDA\u0E02\x03\x02\x02\x02\xDC\u0E0C\x03\x02\x02\x02\xDE\u0E20\x03" + + "\x02\x02\x02\xE0\u0E27\x03\x02\x02\x02\xE2\u0E29\x03\x02\x02\x02\xE4\u0E34" + + "\x03\x02\x02\x02\xE6\u0E3D\x03\x02\x02\x02\xE8\u0E43\x03\x02\x02\x02\xEA" + + "\u0E5A\x03\x02\x02\x02\xEC\u0E5C\x03\x02\x02\x02\xEE\u0E80\x03\x02\x02" + + "\x02\xF0\u0EB7\x03\x02\x02\x02\xF2\u0EC0\x03\x02\x02\x02\xF4\u0ED4\x03" + + "\x02\x02\x02\xF6\u0EE0\x03\x02\x02\x02\xF8\u0EE4\x03\x02\x02\x02\xFA\u0EEF" + + "\x03\x02\x02\x02\xFC\u0F10\x03\x02\x02\x02\xFE\u0F25\x03\x02\x02\x02\u0100" + + "\u0F2F\x03\x02\x02\x02\u0102\u0F33\x03\x02\x02\x02\u0104\u0F4D\x03\x02" + + "\x02\x02\u0106\u0F7C\x03\x02\x02\x02\u0108\u0F7E\x03\x02\x02\x02\u010A" + + "\u0F82\x03\x02\x02\x02\u010C\u0F93\x03\x02\x02\x02\u010E\u0FC6\x03\x02" + + "\x02\x02\u0110\u0FCF\x03\x02\x02\x02\u0112\u0FD9\x03\x02\x02\x02\u0114" + + "\u0FE3\x03\x02\x02\x02\u0116\u101B\x03\x02\x02\x02\u0118\u101D\x03\x02" + + "\x02\x02\u011A\u1035\x03\x02\x02\x02\u011C\u103B\x03\x02\x02\x02\u011E" + + "\u1043\x03\x02\x02\x02\u0120\u1054\x03\x02\x02\x02\u0122\u1064\x03\x02" + + "\x02\x02\u0124\u1089\x03\x02\x02\x02\u0126\u108F\x03\x02\x02\x02\u0128" + + "\u1098\x03\x02\x02\x02\u012A\u10A5\x03\x02\x02\x02\u012C\u10A9\x03\x02" + + "\x02\x02\u012E\u10CF\x03\x02\x02\x02\u0130\u10F5\x03\x02\x02\x02\u0132" + + "\u1103\x03\x02\x02\x02\u0134\u110B\x03\x02\x02\x02\u0136\u110F\x03\x02" + + "\x02\x02\u0138\u1115\x03\x02\x02\x02\u013A\u1123\x03\x02\x02\x02\u013C" + + "\u1126\x03\x02\x02\x02\u013E\u1138\x03\x02\x02\x02\u0140\u113C\x03\x02" + + "\x02\x02\u0142\u114C\x03\x02\x02\x02\u0144\u114E\x03\x02\x02\x02\u0146" + + "\u115A\x03\x02\x02\x02\u0148\u115E\x03\x02\x02\x02\u014A\u116F\x03\x02" + + "\x02\x02\u014C\u1180\x03\x02\x02\x02\u014E\u1183\x03\x02\x02\x02\u0150" + + "\u118D\x03\x02\x02\x02\u0152\u1191\x03\x02\x02\x02\u0154\u119B\x03\x02" + + "\x02\x02\u0156\u119E\x03\x02\x02\x02\u0158\u11A3\x03\x02\x02\x02\u015A" + + "\u11B7\x03\x02\x02\x02\u015C\u11B9\x03\x02\x02\x02\u015E\u11CA\x03\x02" + + "\x02\x02\u0160\u11D3\x03\x02\x02\x02\u0162\u11DC\x03\x02\x02\x02\u0164" + + "\u11DE\x03\x02\x02\x02\u0166\u11EC\x03\x02\x02\x02\u0168\u11FA\x03\x02" + + "\x02\x02\u016A\u1209\x03\x02\x02\x02\u016C\u1212\x03\x02\x02\x02\u016E" + + "\u122B\x03\x02\x02\x02\u0170\u123A\x03\x02\x02\x02\u0172\u124D\x03\x02" + + "\x02\x02\u0174\u126B\x03\x02\x02\x02\u0176\u126D\x03\x02\x02\x02\u0178" + + "\u126F\x03\x02\x02\x02\u017A\u1271\x03\x02\x02\x02\u017C\u1280\x03\x02" + + "\x02\x02\u017E\u129D\x03\x02\x02\x02\u0180\u129F\x03\x02\x02\x02\u0182" + + "\u12A1\x03\x02\x02\x02\u0184\u12A3\x03\x02\x02\x02\u0186\u12B2\x03\x02" + + "\x02\x02\u0188\u12B4\x03\x02\x02\x02\u018A\u12F7\x03\x02\x02\x02\u018C" + + "\u12F9\x03\x02\x02\x02\u018E\u12FF\x03\x02\x02\x02\u0190\u131A\x03\x02" + + "\x02\x02\u0192\u1328\x03\x02\x02\x02\u0194\u1333\x03\x02\x02\x02\u0196" + + "\u1335\x03\x02\x02\x02\u0198\u133B\x03\x02\x02\x02\u019A\u1345\x03\x02" + + "\x02\x02\u019C\u1349\x03\x02\x02\x02\u019E\u1350\x03\x02\x02\x02\u01A0" + + "\u1354\x03\x02\x02\x02\u01A2\u135A\x03\x02\x02\x02\u01A4\u1361\x03\x02" + + "\x02\x02\u01A6\u1367\x03\x02\x02\x02\u01A8\u136D\x03\x02\x02\x02\u01AA" + + "\u1372\x03\x02\x02\x02\u01AC\u139F\x03\x02\x02\x02\u01AE\u13B4\x03\x02" + + "\x02\x02\u01B0\u13CD\x03\x02\x02\x02\u01B2\u13D0\x03\x02\x02\x02\u01B4" + + "\u13D6\x03\x02\x02\x02\u01B6\u13E6\x03\x02\x02\x02\u01B8\u13F5\x03\x02" + + "\x02\x02\u01BA\u13FB\x03\x02\x02\x02\u01BC\u1419\x03\x02\x02\x02\u01BE" + + "\u141B\x03\x02\x02\x02\u01C0\u1422\x03\x02\x02\x02\u01C2\u142E\x03\x02" + + "\x02\x02\u01C4\u1434\x03\x02\x02\x02\u01C6\u144D\x03\x02\x02\x02\u01C8" + + "\u1451\x03\x02\x02\x02\u01CA\u1455\x03\x02\x02\x02\u01CC\u1460\x03\x02" + + "\x02\x02\u01CE\u1468\x03\x02\x02\x02\u01D0\u14A7\x03\x02\x02\x02\u01D2" + + "\u14E2\x03\x02\x02\x02\u01D4\u1548\x03\x02\x02\x02\u01D6\u1552\x03\x02" + + "\x02\x02\u01D8\u1554\x03\x02\x02\x02\u01DA\u1566\x03\x02\x02\x02\u01DC" + + "\u157E\x03\x02\x02\x02\u01DE\u1596\x03\x02\x02\x02\u01E0\u159D\x03\x02" + + "\x02\x02\u01E2\u15B1\x03\x02\x02\x02\u01E4\u15BA\x03\x02\x02\x02\u01E6" + + "\u15F8\x03\x02\x02\x02\u01E8\u15FA\x03\x02\x02\x02\u01EA\u15FE\x03\x02" + + "\x02\x02\u01EC\u1620\x03\x02\x02\x02\u01EE\u1622\x03\x02\x02\x02\u01F0" + + "\u164B\x03\x02\x02\x02\u01F2\u1671\x03\x02\x02\x02\u01F4\u1684\x03\x02" + + "\x02\x02\u01F6\u169F\x03\x02\x02\x02\u01F8\u16A3\x03\x02\x02\x02\u01FA" + + "\u16B8\x03\x02\x02\x02\u01FC\u16C2\x03\x02\x02\x02\u01FE\u16CC\x03\x02" + + "\x02\x02\u0200\u16F4\x03\x02\x02\x02\u0202\u16F6\x03\x02\x02\x02\u0204" + + "\u16F9\x03\x02\x02\x02\u0206\u1717\x03\x02\x02\x02\u0208\u1719\x03\x02" + + "\x02\x02\u020A\u171C\x03\x02\x02\x02\u020C\u1780\x03\x02\x02\x02\u020E" + + "\u1792\x03\x02\x02\x02\u0210\u1794\x03\x02\x02\x02\u0212\u17C8\x03\x02" + + "\x02\x02\u0214\u17CA\x03\x02\x02\x02\u0216\u17D3\x03\x02\x02\x02\u0218" + + "\u17D9\x03\x02\x02\x02\u021A\u17E0\x03\x02\x02\x02\u021C\u17EF\x03\x02" + + "\x02\x02\u021E\u17F8\x03\x02\x02\x02\u0220\u17FA\x03\x02\x02\x02\u0222" + + "\u1808\x03\x02\x02\x02\u0224\u181D\x03\x02\x02\x02\u0226\u1822\x03\x02" + + "\x02\x02\u0228\u182C\x03\x02\x02\x02\u022A\u1832\x03\x02\x02\x02\u022C" + + "\u1854\x03\x02\x02\x02\u022E\u188A\x03\x02\x02\x02\u0230\u1944\x03\x02" + + "\x02\x02\u0232\u1950\x03\x02\x02\x02\u0234\u1960\x03\x02\x02\x02\u0236" + + "\u1966\x03\x02\x02\x02\u0238\u1979\x03\x02\x02\x02\u023A\u1986\x03\x02" + + "\x02\x02\u023C\u1994\x03\x02\x02\x02\u023E\u1996\x03\x02\x02\x02\u0240" + + "\u1999\x03\x02\x02\x02\u0242\u19B1\x03\x02\x02\x02\u0244\u19BD\x03\x02" + + "\x02\x02\u0246\u19C3\x03\x02\x02\x02\u0248\u19CF\x03\x02\x02\x02\u024A" + + "\u19DD\x03\x02\x02\x02\u024C\u19DF\x03\x02\x02\x02\u024E\u19E7\x03\x02" + + "\x02\x02\u0250\u19EF\x03\x02\x02\x02\u0252\u19F1\x03\x02\x02\x02\u0254" + + "\u19F3\x03\x02\x02\x02\u0256\u1A1B\x03\x02\x02\x02\u0258\u1A22\x03\x02" + + "\x02\x02\u025A\u1A24\x03\x02\x02\x02\u025C\u1A3B\x03\x02\x02\x02\u025E" + + "\u1A41\x03\x02\x02\x02\u0260\u1A4B\x03\x02\x02\x02\u0262\u1A54\x03\x02" + + "\x02\x02\u0264\u1A57\x03\x02\x02\x02\u0266\u1A5A\x03\x02\x02\x02\u0268" + + "\u1A6F\x03\x02\x02\x02\u026A\u1A84\x03\x02\x02\x02\u026C\u1A8C\x03\x02" + + "\x02\x02\u026E\u1A98\x03\x02\x02\x02\u0270\u1AA0\x03\x02\x02\x02\u0272" + + "\u1AC6\x03\x02\x02\x02\u0274\u1AD2\x03\x02\x02\x02\u0276\u1AD4\x03\x02" + + "\x02\x02\u0278\u1AD6\x03\x02\x02\x02\u027A\u1AD8\x03\x02\x02\x02\u027C" + + "\u1ADA\x03\x02\x02\x02\u027E\u1ADC\x03\x02\x02\x02\u0280\u1ADE\x03\x02" + + "\x02\x02\u0282\u1AE0\x03\x02\x02\x02\u0284\u1AE2\x03\x02\x02\x02\u0286" + + "\u1AEA\x03\x02\x02\x02\u0288\u1AEC\x03\x02\x02\x02\u028A\u1AEE\x03\x02" + + "\x02\x02\u028C\u1AF0\x03\x02\x02\x02\u028E\u1AF2\x03\x02\x02\x02\u0290" + + "\u1AFA\x03\x02\x02\x02\u0292\u1AFC\x03\x02\x02\x02\u0294\u1B06\x03\x02" + + "\x02\x02\u0296\u1B16\x03\x02\x02\x02\u0298\u1B18\x03\x02\x02\x02\u029A" + + "\u1B2E\x03\x02\x02\x02\u029C\u1B30\x03\x02\x02\x02\u029E\u1B32\x03\x02" + + "\x02\x02\u02A0\u1B34\x03\x02\x02\x02\u02A2\u1B36\x03\x02\x02\x02\u02A4" + + "\u1B3E\x03\x02\x02\x02\u02A6\u1B48\x03\x02\x02\x02\u02A8\u1B4D\x03\x02" + + "\x02\x02\u02AA\u1B51\x03\x02\x02\x02\u02AC\u1B58\x03\x02\x02\x02\u02AE" + + "\u1B5A\x03\x02\x02\x02\u02B0\u1B61\x03\x02\x02\x02\u02B2\u1B63\x03\x02" + + "\x02\x02\u02B4\u1B69\x03\x02\x02\x02\u02B6\u1B6B\x03\x02\x02\x02\u02B8" + + "\u1B70\x03\x02\x02\x02\u02BA\u1B72\x03\x02\x02\x02\u02BC\u1B74\x03\x02" + + "\x02\x02\u02BE\u1B86\x03\x02\x02\x02\u02C0\u1B96\x03\x02\x02\x02\u02C2" + + "\u1B98\x03\x02\x02\x02\u02C4\u1B9C\x03\x02\x02\x02\u02C6\u1BA7\x03\x02" + + "\x02\x02\u02C8\u1BB2\x03\x02\x02\x02\u02CA\u1BB7\x03\x02\x02\x02\u02CC" + + "\u1BB9\x03\x02\x02\x02\u02CE\u1BBD\x03\x02\x02\x02\u02D0\u1BD6\x03\x02" + + "\x02\x02\u02D2\u1BD8\x03\x02\x02\x02\u02D4\u1BDB\x03\x02\x02\x02\u02D6" + + "\u1BE0\x03\x02\x02\x02\u02D8\u1BF0\x03\x02\x02\x02\u02DA\u1C70\x03\x02" + + "\x02\x02\u02DC\u1C72\x03\x02\x02\x02\u02DE\u1C93\x03\x02\x02\x02\u02E0" + + "\u1C98\x03\x02\x02\x02\u02E2\u1C9C\x03\x02\x02\x02\u02E4\u1CA2\x03\x02" + + "\x02\x02\u02E6\u1CAA\x03\x02\x02\x02\u02E8\u1CB5\x03\x02\x02\x02\u02EA" + + "\u1CBD\x03\x02\x02\x02\u02EC\u1CC6\x03\x02\x02\x02\u02EE\u1CD3\x03\x02" + + "\x02\x02\u02F0\u1CD5\x03\x02\x02\x02\u02F2\u1CDD\x03\x02\x02\x02\u02F4" + + "\u1CE5\x03\x02\x02\x02\u02F6\u1D07\x03\x02\x02\x02\u02F8\u1D17\x03\x02" + + "\x02\x02\u02FA\u1D19\x03\x02\x02\x02\u02FC\u1D1C\x03\x02\x02\x02\u02FE" + + "\u1D20\x03\x02\x02\x02\u0300\u1D35\x03\x02\x02\x02\u0302\u1DEA\x03\x02" + + "\x02\x02\u0304\u1DEC\x03\x02\x02\x02\u0306\u1DFF\x03\x02\x02\x02\u0308" + + "\u1E01\x03\x02\x02\x02\u030A\u1E40\x03\x02\x02\x02\u030C\u1E68\x03\x02" + + "\x02\x02\u030E\u1E6A\x03\x02\x02\x02\u0310\u1E73\x03\x02\x02\x02\u0312" + + "\u1E7E\x03\x02\x02\x02\u0314\u1E80\x03\x02\x02\x02\u0316\u1E83\x03\x02" + + "\x02\x02\u0318\u1E87\x03\x02\x02\x02\u031A\u1E89\x03\x02\x02\x02\u031C" + + "\u1E95\x03\x02\x02\x02\u031E\u1E97\x03\x02\x02\x02\u0320\u1EB9\x03\x02" + + "\x02\x02\u0322\u1EBB\x03\x02\x02\x02\u0324\u1EC0\x03\x02\x02\x02\u0326" + + "\u1ECC\x03\x02\x02\x02\u0328\u1ED9\x03\x02\x02\x02\u032A\u1EE4\x03\x02" + + "\x02\x02\u032C\u1F5A\x03\x02\x02\x02\u032E\u1F70\x03\x02\x02\x02\u0330" + + "\u1F7A\x03\x02\x02\x02\u0332\u1F83\x03\x02\x02\x02\u0334\u1F8C\x03\x02" + + "\x02\x02\u0336\u1F95\x03\x02\x02\x02\u0338\u1F97\x03\x02\x02\x02\u033A" + + "\u1F9E\x03\x02\x02\x02\u033C\u1FA0\x03\x02\x02\x02\u033E\u1FA2\x03\x02" + + "\x02\x02\u0340\u1FA4\x03\x02\x02\x02\u0342\u1FA6\x03\x02\x02\x02\u0344" + + "\u1FA8\x03\x02\x02\x02\u0346\u1FAA\x03\x02\x02\x02\u0348\u1FAC\x03\x02" + + "\x02\x02\u034A\u034C\x05\x04\x03\x02\u034B\u034A\x03\x02\x02\x02\u034B" + + "\u034C\x03\x02\x02\x02\u034C\u034D\x03\x02\x02\x02\u034D\u034E\x07\x02" + + "\x02\x03\u034E\x03\x03\x02\x02\x02\u034F\u0352\x05\x06\x04\x02\u0350\u0352" + + "\x05\b\x05\x02\u0351\u034F\x03\x02\x02\x02\u0351\u0350\x03\x02\x02\x02" + + "\u0352\u0355\x03\x02\x02\x02\u0353\u0351\x03\x02\x02\x02\u0353\u0354\x03" + + "\x02\x02\x02\u0354\u035B\x03\x02\x02\x02\u0355\u0353\x03\x02\x02\x02\u0356" + + "\u0358\x05\x06\x04\x02\u0357\u0359\x07\u0367\x02\x02\u0358\u0357\x03\x02" + + "\x02\x02\u0358\u0359\x03\x02\x02\x02\u0359\u035C\x03\x02\x02\x02\u035A" + + "\u035C\x05\b\x05\x02\u035B\u0356\x03\x02\x02\x02\u035B\u035A\x03\x02\x02" + + "\x02\u035C\x05\x03\x02\x02\x02\u035D\u0365\x05\n\x06\x02\u035E\u0365\x05" + + "\f\x07\x02\u035F\u0365\x05\x0E\b\x02\u0360\u0365\x05\x10\t\x02\u0361\u0365" + + "\x05\x12\n\x02\u0362\u0365\x05\x16\f\x02\u0363\u0365\x05\x18\r\x02\u0364" + + "\u035D\x03\x02\x02\x02\u0364\u035E\x03\x02\x02\x02\u0364\u035F\x03\x02" + + "\x02\x02\u0364\u0360\x03\x02\x02\x02\u0364\u0361\x03\x02\x02\x02\u0364" + + "\u0362\x03\x02\x02\x02\u0364\u0363\x03\x02\x02\x02\u0365\x07\x03\x02\x02" + + "\x02\u0366\u0367\x07\u0367\x02\x02\u0367\t\x03\x02\x02\x02\u0368\u0390" + + "\x05\x1A\x0E\x02\u0369\u0390\x05\x1C\x0F\x02\u036A\u0390\x05\x1E\x10\x02" + + "\u036B\u0390\x05 \x11\x02\u036C\u0390\x05\"\x12\x02\u036D\u0390\x05\u0220" + + "\u0111\x02\u036E\u0390\x05&\x14\x02\u036F\u0390\x05(\x15\x02\u0370\u0390" + + "\x05*\x16\x02\u0371\u0390\x05,\x17\x02\u0372\u0390\x05.\x18\x02\u0373" + + "\u0390\x054\x1B\x02\u0374\u0390\x05$\x13\x02\u0375\u0390\x05z>\x02\u0376" + + "\u0390\x05|?\x02\u0377\u0390\x05~@\x02\u0378\u0390\x05\x80A\x02\u0379" + + "\u0390\x05\x82B\x02\u037A\u0390\x05\x84C\x02\u037B\u0390\x05\x86D\x02" + + "\u037C\u0390\x05\x88E\x02\u037D\u0390\x05\x8AF\x02\u037E\u0390\x05\x8C" + + "G\x02\u037F\u0390\x05\x92J\x02\u0380\u0390\x05\x94K\x02\u0381\u0390\x05" + + "\x96L\x02\u0382\u0390\x05\x98M\x02\u0383\u0390\x05\x9AN\x02\u0384\u0390" + + "\x05\x9CO\x02\u0385\u0390\x05\x9EP\x02\u0386\u0390\x05\xA0Q\x02\u0387" + + "\u0390\x05\xA2R\x02\u0388\u0390\x05\xA4S\x02\u0389\u0390\x05\xA6T\x02" + + "\u038A\u0390\x05\xA8U\x02\u038B\u0390\x05\xAAV\x02\u038C\u0390\x05\xAC" + + "W\x02\u038D\u0390\x05\xAEX\x02\u038E\u0390\x05\xB2Z\x02\u038F\u0368\x03" + + "\x02\x02\x02\u038F\u0369\x03\x02\x02\x02\u038F\u036A\x03\x02\x02\x02\u038F" + + "\u036B\x03\x02\x02\x02\u038F\u036C\x03\x02\x02\x02\u038F\u036D\x03\x02" + + "\x02\x02\u038F\u036E\x03\x02\x02\x02\u038F\u036F\x03\x02\x02\x02\u038F" + + "\u0370\x03\x02\x02\x02\u038F\u0371\x03\x02\x02\x02\u038F\u0372\x03\x02" + + "\x02\x02\u038F\u0373\x03\x02\x02\x02\u038F\u0374\x03\x02\x02\x02\u038F" + + "\u0375\x03\x02\x02\x02\u038F\u0376\x03\x02\x02\x02\u038F\u0377\x03\x02" + + "\x02\x02\u038F\u0378\x03\x02\x02\x02\u038F\u0379\x03\x02\x02\x02\u038F" + + "\u037A\x03\x02\x02\x02\u038F\u037B\x03\x02\x02\x02\u038F\u037C\x03\x02" + + "\x02\x02\u038F\u037D\x03\x02\x02\x02\u038F\u037E\x03\x02\x02\x02\u038F" + + "\u037F\x03\x02\x02\x02\u038F\u0380\x03\x02\x02\x02\u038F\u0381\x03\x02" + + "\x02\x02\u038F\u0382\x03\x02\x02\x02\u038F\u0383\x03\x02\x02\x02\u038F" + + "\u0384\x03\x02\x02\x02\u038F\u0385\x03\x02\x02\x02\u038F\u0386\x03\x02" + + "\x02\x02\u038F\u0387\x03\x02\x02\x02\u038F\u0388\x03\x02\x02\x02\u038F" + + "\u0389\x03\x02\x02\x02\u038F\u038A\x03\x02\x02\x02\u038F\u038B\x03\x02" + + "\x02\x02\u038F\u038C\x03\x02\x02\x02\u038F\u038D\x03\x02\x02\x02\u038F" + + "\u038E\x03\x02\x02\x02\u0390\v\x03\x02\x02\x02\u0391\u03A3\x05\xCEh\x02" + + "\u0392\u03A3\x05\xD0i\x02\u0393\u03A3\x05\xBC_\x02\u0394\u03A3\x05\xD8" + + "m\x02\u0395\u03A3\x05\xB6\\\x02\u0396\u03A3\x05\xCCg\x02\u0397\u03A3\x05" + + "\xB4[\x02\u0398\u03A3\x05\xC2b\x02\u0399\u03A3\x05\xC6d\x02\u039A\u03A3" + + "\x05\xC8e\x02\u039B\u03A3\x05\xCAf\x02\u039C\u03A3\x05\xB8]\x02\u039D" + + "\u03A3\x05\xBA^\x02\u039E\u03A3\x05\xF8}\x02\u039F\u03A3\x05\xDAn\x02" + + "\u03A0\u03A3\x05\u026C\u0137\x02\u03A1\u03A3\x05\u026E\u0138\x02\u03A2" + + "\u0391\x03\x02\x02\x02\u03A2\u0392\x03\x02\x02\x02\u03A2\u0393\x03\x02" + + "\x02\x02\u03A2\u0394\x03\x02\x02\x02\u03A2\u0395\x03\x02\x02\x02\u03A2" + + "\u0396\x03\x02\x02\x02\u03A2\u0397\x03\x02\x02\x02\u03A2\u0398\x03\x02" + + "\x02\x02\u03A2\u0399\x03\x02\x02\x02\u03A2\u039A\x03\x02\x02\x02\u03A2" + + "\u039B\x03\x02\x02\x02\u03A2\u039C\x03\x02\x02\x02\u03A2\u039D\x03\x02" + + "\x02\x02\u03A2\u039E\x03\x02\x02\x02\u03A2\u039F\x03\x02\x02\x02\u03A2" + + "\u03A0\x03\x02\x02\x02\u03A2\u03A1\x03\x02\x02\x02\u03A3\r\x03\x02\x02" + + "\x02\u03A4\u03AE\x05\u0144\xA3\x02\u03A5\u03AE\x05\u0146\xA4\x02\u03A6" + + "\u03AE\x05\u0148\xA5\x02\u03A7\u03AE\x05\u014A\xA6\x02\u03A8\u03AE\x05" + + "\u014C\xA7\x02\u03A9\u03AE\x05\u014E\xA8\x02\u03AA\u03AE\x05\u0150\xA9" + + "\x02\u03AB\u03AE\x05\u0152\xAA\x02\u03AC\u03AE\x05\u0154\xAB\x02\u03AD" + + "\u03A4\x03\x02\x02\x02\u03AD\u03A5\x03\x02\x02\x02\u03AD\u03A6\x03\x02" + + "\x02\x02\u03AD\u03A7\x03\x02\x02\x02\u03AD\u03A8\x03\x02\x02\x02\u03AD" + + "\u03A9\x03\x02\x02\x02\u03AD\u03AA\x03\x02\x02\x02\u03AD\u03AB\x03\x02" + + "\x02\x02\u03AD\u03AC\x03\x02\x02\x02\u03AE\x0F\x03\x02\x02\x02\u03AF\u03BE" + + "\x05\u0164\xB3\x02\u03B0\u03BE\x05\u0166\xB4\x02\u03B1\u03BE\x05\u0168" + + "\xB5\x02\u03B2\u03BE\x05\u016A\xB6\x02\u03B3\u03BE\x05\u016C\xB7\x02\u03B4" + + "\u03BE\x05\u016E\xB8\x02\u03B5\u03BE\x05\u0170\xB9\x02\u03B6\u03BE\x05" + + "\u0172\xBA\x02\u03B7\u03BE\x05\u0196\xCC\x02\u03B8\u03BE\x05\u0198\xCD" + + "\x02\u03B9\u03BE\x05\u019A\xCE\x02\u03BA\u03BE\x05\u019C\xCF\x02\u03BB" + + "\u03BE\x05\u019E\xD0\x02\u03BC\u03BE\x05\u01A0\xD1\x02\u03BD\u03AF\x03" + + "\x02\x02\x02\u03BD\u03B0\x03\x02\x02\x02\u03BD\u03B1\x03\x02\x02\x02\u03BD" + + "\u03B2\x03\x02\x02\x02\u03BD\u03B3\x03\x02\x02\x02\u03BD\u03B4\x03\x02" + + "\x02\x02\u03BD\u03B5\x03\x02\x02\x02\u03BD\u03B6\x03\x02\x02\x02\u03BD" + + "\u03B7\x03\x02\x02\x02\u03BD\u03B8\x03\x02\x02\x02\u03BD\u03B9\x03\x02" + + "\x02\x02\u03BD\u03BA\x03\x02\x02\x02\u03BD\u03BB\x03\x02\x02\x02\u03BD" + + "\u03BC\x03\x02\x02\x02\u03BE\x11\x03\x02\x02\x02\u03BF\u03C3\x05\u01A2" + + "\xD2\x02\u03C0\u03C3\x05\u01A4\xD3\x02\u03C1\u03C3\x05\u01A6\xD4\x02\u03C2" + + "\u03BF\x03\x02\x02\x02\u03C2\u03C0\x03\x02\x02\x02\u03C2\u03C1\x03\x02" + + "\x02\x02\u03C3\x13\x03\x02\x02\x02\u03C4\u03CF\x05\u01AA\xD6\x02\u03C5" + + "\u03CF\x05\u01AC\xD7\x02\u03C6\u03CF\x05\u01AE\xD8\x02\u03C7\u03CF\x05" + + "\u01B2\xDA\x02\u03C8\u03CF\x05\u01B4\xDB\x02\u03C9\u03CF\x05\u01B6\xDC" + + "\x02\u03CA\u03CF\x05\u01BA\xDE\x02\u03CB\u03CF\x05\u01B0\xD9\x02\u03CC" + + "\u03CF\x05\u01B8\xDD\x02\u03CD\u03CF\x05\u01BC\xDF\x02\u03CE\u03C4\x03" + + "\x02\x02\x02\u03CE\u03C5\x03\x02\x02\x02\u03CE\u03C6\x03\x02\x02\x02\u03CE" + + "\u03C7\x03\x02\x02\x02\u03CE\u03C8\x03\x02\x02\x02\u03CE\u03C9\x03\x02" + + "\x02\x02\u03CE\u03CA\x03\x02\x02\x02\u03CE\u03CB\x03\x02\x02\x02\u03CE" + + "\u03CC\x03\x02\x02\x02\u03CE\u03CD\x03\x02\x02\x02\u03CF\x15\x03\x02\x02" + + "\x02\u03D0\u03F2\x05\u01CE\xE8\x02\u03D1\u03F2\x05\u01D0\xE9\x02\u03D2" + + "\u03F2\x05\u01D2\xEA\x02\u03D3\u03F2\x05\u01D4\xEB\x02\u03D4\u03F2\x05" + + "\u01D8\xED\x02\u03D5\u03F2\x05\u01E4\xF3\x02\u03D6\u03F2\x05\u01E6\xF4" + + "\x02\u03D7\u03F2\x05\u01DA\xEE\x02\u03D8\u03F2\x05\u01DC\xEF\x02\u03D9" + + "\u03F2\x05\u01DE\xF0\x02\u03DA\u03F2\x05\u01E0\xF1\x02\u03DB\u03F2\x05" + + "\u0212\u010A\x02\u03DC\u03F2\x05\u0214\u010B\x02\u03DD\u03F2\x05\u0216" + + "\u010C\x02\u03DE\u03F2\x05\u0218\u010D\x02\u03DF\u03F2\x05\u021A\u010E" + + "\x02\u03E0\u03F2\x05\u0222\u0112\x02\u03E1\u03F2\x05\u0226\u0114\x02\u03E2" + + "\u03F2\x05\u0228\u0115\x02\u03E3\u03F2\x05\u022A\u0116\x02\u03E4\u03F2" + + "\x05\u022C\u0117\x02\u03E5\u03F2\x05\u022E\u0118\x02\u03E6\u03F2\x05\u0230" + + "\u0119\x02\u03E7\u03F2\x05\u023E\u0120\x02\u03E8\u03F2\x05\u0240\u0121" + + "\x02\u03E9\u03F2\x05\u0242\u0122\x02\u03EA\u03F2\x05\u0244\u0123\x02\u03EB" + + "\u03F2\x05\u0246\u0124\x02\u03EC\u03F2\x05\u0248\u0125\x02\u03ED\u03F2" + + "\x05\u024C\u0127\x02\u03EE\u03F2\x05\u024E\u0128\x02\u03EF\u03F2\x05\u0250" + + "\u0129\x02\u03F0\u03F2\x05\u0252\u012A\x02\u03F1\u03D0\x03\x02\x02\x02" + + "\u03F1\u03D1\x03\x02\x02\x02\u03F1\u03D2\x03\x02\x02\x02\u03F1\u03D3\x03" + + "\x02\x02\x02\u03F1\u03D4\x03\x02\x02\x02\u03F1\u03D5\x03\x02\x02\x02\u03F1" + + "\u03D6\x03\x02\x02\x02\u03F1\u03D7\x03\x02\x02\x02\u03F1\u03D8\x03\x02" + + "\x02\x02\u03F1\u03D9\x03\x02\x02\x02\u03F1\u03DA\x03\x02\x02\x02\u03F1" + + "\u03DB\x03\x02\x02\x02\u03F1\u03DC\x03\x02\x02\x02\u03F1\u03DD\x03\x02" + + "\x02\x02\u03F1\u03DE\x03\x02\x02\x02\u03F1\u03DF\x03\x02\x02\x02\u03F1" + + "\u03E0\x03\x02\x02\x02\u03F1\u03E1\x03\x02\x02\x02\u03F1\u03E2\x03\x02" + + "\x02\x02\u03F1\u03E3\x03\x02\x02\x02\u03F1\u03E4\x03\x02\x02\x02\u03F1" + + "\u03E5\x03\x02\x02\x02\u03F1\u03E6\x03\x02\x02\x02\u03F1\u03E7\x03\x02" + + "\x02\x02\u03F1\u03E8\x03\x02\x02\x02\u03F1\u03E9\x03\x02\x02\x02\u03F1" + + "\u03EA\x03\x02\x02\x02\u03F1\u03EB\x03\x02\x02\x02\u03F1\u03EC\x03\x02" + + "\x02\x02\u03F1\u03ED\x03\x02\x02\x02\u03F1\u03EE\x03\x02\x02\x02\u03F1" + + "\u03EF\x03\x02\x02\x02\u03F1\u03F0\x03\x02\x02\x02\u03F2\x17\x03\x02\x02" + + "\x02\u03F3\u03FC\x05\u025C\u012F\x02\u03F4\u03FC\x05\u025E\u0130\x02\u03F5" + + "\u03FC\x05\u0260\u0131\x02\u03F6\u03FC\x05\u0262\u0132\x02\u03F7\u03FC" + + "\x05\u0264\u0133\x02\u03F8\u03FC\x05\u0266\u0134\x02\u03F9\u03FC\x05\u0268" + + "\u0135\x02\u03FA\u03FC\x05\u0270\u0139\x02\u03FB\u03F3\x03\x02\x02\x02" + + "\u03FB\u03F4\x03\x02\x02\x02\u03FB\u03F5\x03\x02\x02\x02\u03FB\u03F6\x03" + + "\x02\x02\x02\u03FB\u03F7\x03\x02\x02\x02\u03FB\u03F8\x03\x02\x02\x02\u03FB" + + "\u03F9\x03\x02\x02\x02\u03FB\u03FA\x03\x02\x02\x02\u03FC\x19\x03\x02\x02" + + "\x02\u03FD\u03FE\x07$\x02\x02\u03FE\u0400\t\x02\x02\x02\u03FF\u0401\x05" + + "\u02FC\u017F\x02\u0400\u03FF\x03\x02\x02\x02\u0400\u0401\x03\x02\x02\x02" + + "\u0401\u0402\x03\x02\x02\x02\u0402\u0406\x05\u0276\u013C\x02\u0403\u0405" + + "\x056\x1C\x02\u0404\u0403\x03\x02\x02\x02\u0405\u0408\x03\x02\x02\x02" + + "\u0406\u0404\x03\x02\x02\x02\u0406\u0407\x03\x02\x02\x02\u0407\x1B\x03" + + "\x02\x02\x02\u0408\u0406\x03\x02\x02\x02\u0409\u040B\x07$\x02\x02\u040A" + + "\u040C\x05<\x1F\x02\u040B\u040A\x03\x02\x02\x02\u040B\u040C\x03\x02\x02" + + "\x02\u040C\u040D\x03\x02\x02\x02\u040D\u040F\x07\u0183\x02\x02\u040E\u0410" + + "\x05\u02FC\u017F\x02\u040F\u040E\x03\x02\x02\x02\u040F\u0410\x03\x02\x02" + + "\x02\u0410\u0411\x03\x02\x02\x02\u0411\u0412\x05\u02C2\u0162\x02\u0412" + + "\u0413\x07y\x02\x02\u0413\u0414\x07\u0250\x02\x02\u0414\u041B\x05> \x02" + + "\u0415\u0416\x07y\x02\x02\u0416\u0418\x07\u0159\x02\x02\u0417\u0419\x07" + + "t\x02\x02\u0418\u0417\x03\x02\x02\x02\u0418\u0419\x03\x02\x02\x02\u0419" + + "\u041A\x03\x02\x02\x02\u041A\u041C\x07\u021F\x02\x02\u041B\u0415\x03\x02" + + "\x02\x02\u041B\u041C\x03\x02\x02\x02\u041C\u041E\x03\x02\x02\x02\u041D" + + "\u041F\x05F$\x02\u041E\u041D\x03\x02\x02\x02\u041E\u041F\x03\x02\x02\x02" + + "\u041F\u0422\x03\x02\x02\x02\u0420\u0421\x07\u0156\x02\x02\u0421\u0423" + + "\x07\u0374\x02\x02\u0422\u0420\x03\x02\x02\x02\u0422\u0423\x03\x02\x02" + + "\x02\u0423\u0424\x03\x02\x02\x02\u0424\u0425\x07\u0175\x02\x02\u0425\u0426" + + "\x05\u01A8\xD5\x02\u0426\x1D\x03\x02\x02\x02\u0427\u0429\x07$\x02\x02" + + "\u0428\u042A\t\x03\x02\x02\u0429\u0428\x03\x02\x02\x02\u0429\u042A\x03" + + "\x02\x02\x02\u042A\u042C\x03\x02\x02\x02\u042B\u042D\t\x04\x02\x02\u042C" + + "\u042B\x03\x02\x02\x02\u042C\u042D\x03\x02\x02\x02\u042D\u042E\x03\x02" + + "\x02\x02\u042E\u042F\x07T\x02\x02\u042F\u0431\x05\u0282\u0142\x02\u0430" + + "\u0432\x05H%\x02\u0431\u0430\x03\x02\x02\x02\u0431\u0432\x03\x02\x02\x02" + + "\u0432\u0433\x03\x02\x02\x02\u0433\u0434\x07y\x02\x02\u0434\u0435\x05" + + "\u0290\u0149\x02\u0435\u0439\x05\u02E6\u0174\x02\u0436\u0438\x05J&\x02" + + "\u0437\u0436\x03\x02\x02\x02\u0438\u043B\x03\x02\x02\x02\u0439\u0437\x03" + + "\x02\x02\x02\u0439\u043A\x03\x02\x02\x02\u043A\u0448\x03\x02\x02\x02\u043B" + + "\u0439\x03\x02\x02\x02\u043C\u043E\x07\u0136\x02\x02\u043D\u043F\x07\u035B" + + "\x02\x02\u043E\u043D\x03\x02\x02\x02\u043E\u043F\x03\x02\x02\x02\u043F" + + "\u0440\x03\x02\x02\x02\u0440\u0447\t\x05\x02\x02\u0441\u0443\x07j\x02" + + "\x02\u0442\u0444\x07\u035B\x02\x02\u0443\u0442\x03\x02\x02\x02\u0443\u0444" + + "\x03\x02\x02\x02\u0444\u0445\x03\x02\x02\x02\u0445\u0447\t\x06\x02\x02" + + "\u0446\u043C\x03\x02\x02\x02\u0446\u0441\x03\x02\x02\x02\u0447\u044A\x03" + + "\x02\x02\x02\u0448\u0446\x03\x02\x02\x02\u0448\u0449\x03\x02\x02\x02\u0449" + + "\x1F\x03\x02\x02\x02\u044A\u0448\x03\x02\x02\x02\u044B\u044C\x07$\x02" + + "\x02\u044C\u044D\x07\u01C5\x02\x02\u044D\u044E\x07L\x02\x02\u044E\u044F" + + "\x05\u02C6\u0164\x02\u044F\u0450\x07\b\x02\x02\u0450\u0451\x07\u02A1\x02" + + "\x02\u0451\u0457\x07\u0374\x02\x02\u0452\u0454\x07\u01AE\x02\x02\u0453" + + "\u0455\x07\u035B\x02\x02\u0454\u0453\x03\x02\x02\x02\u0454\u0455\x03\x02" + + "\x02\x02\u0455\u0456\x03\x02\x02\x02\u0456\u0458\x05\u02CE\u0168\x02\u0457" + + "\u0452\x03\x02\x02\x02\u0457\u0458\x03\x02\x02\x02\u0458\u045E\x03\x02" + + "\x02\x02\u0459\u045B\x07\u02A2\x02\x02\u045A\u045C\x07\u035B\x02\x02\u045B" + + "\u045A\x03\x02\x02\x02\u045B\u045C\x03\x02\x02\x02\u045C\u045D\x03\x02" + + "\x02\x02\u045D\u045F\x05\u02CE\u0168\x02\u045E\u0459\x03\x02\x02\x02\u045E" + + "\u045F\x03\x02\x02\x02\u045F\u0465\x03\x02\x02\x02\u0460\u0462\x07\u022B" + + "\x02\x02\u0461\u0463\x07\u035B\x02\x02\u0462\u0461\x03\x02\x02\x02\u0462" + + "\u0463\x03\x02\x02\x02\u0463\u0464\x03\x02\x02\x02\u0464\u0466\x05\u02CE" + + "\u0168\x02\u0465\u0460\x03\x02\x02\x02\u0465\u0466\x03\x02\x02\x02\u0466" + + "\u046C\x03\x02\x02\x02\u0467\u0469\x07\u01FA\x02\x02\u0468\u046A\x07\u035B" + + "\x02\x02\u0469\u0468\x03\x02\x02\x02\u0469\u046A\x03\x02\x02\x02\u046A" + + "\u046B\x03"; + private static readonly _serializedATNSegment5: string = + "\x02\x02\x02\u046B\u046D\x05\u02C6\u0164\x02\u046C\u0467\x03\x02\x02\x02" + + "\u046C\u046D\x03\x02\x02\x02\u046D\u046F\x03\x02\x02\x02\u046E\u0470\x07" + + "\u02B1\x02\x02\u046F\u046E\x03\x02\x02\x02\u046F\u0470\x03\x02\x02\x02" + + "\u0470\u0476\x03\x02\x02\x02\u0471\u0473\x07\u0156\x02\x02\u0472\u0474" + + "\x07\u035B\x02\x02\u0473\u0472\x03\x02\x02\x02\u0473\u0474\x03\x02\x02" + + "\x02\u0474\u0475\x03\x02\x02\x02\u0475\u0477\x07\u0374\x02\x02\u0476\u0471" + + "\x03\x02\x02\x02\u0476\u0477\x03\x02\x02\x02\u0477\u0478\x03\x02\x02\x02" + + "\u0478\u047A\x07\u017E\x02\x02\u0479\u047B\x07\u035B\x02\x02\u047A\u0479" + + "\x03\x02\x02\x02\u047A\u047B\x03\x02\x02\x02\u047B\u047C\x03\x02\x02\x02" + + "\u047C\u047D\x05\u02B8\u015D\x02\u047D!\x03\x02\x02\x02\u047E\u0480\x07" + + "$\x02\x02\u047F\u0481\x05<\x1F\x02\u0480\u047F\x03\x02\x02\x02\u0480\u0481" + + "\x03\x02\x02\x02\u0481\u0482\x03\x02\x02\x02\u0482\u0484\x07\x86\x02\x02" + + "\u0483\u0485\x05\u02FC\u017F\x02\u0484\u0483\x03\x02\x02\x02\u0484\u0485" + + "\x03\x02\x02\x02\u0485\u0486\x03\x02\x02\x02\u0486\u0487\x05\u02C2\u0162" + + "\x02\u0487\u0489\x07\u0364\x02\x02\u0488\u048A\x05L\'\x02\u0489\u0488" + + "\x03\x02\x02\x02\u0489\u048A\x03\x02\x02\x02\u048A\u048F\x03\x02\x02\x02" + + "\u048B\u048C\x07\u0366\x02\x02\u048C\u048E\x05L\'\x02\u048D\u048B\x03" + + "\x02\x02\x02\u048E\u0491\x03\x02\x02\x02\u048F\u048D\x03\x02\x02\x02\u048F" + + "\u0490\x03\x02\x02\x02\u0490\u0492\x03\x02\x02\x02\u0491\u048F\x03\x02" + + "\x02\x02\u0492\u0496\x07\u0365\x02\x02\u0493\u0495\x05N(\x02\u0494\u0493" + + "\x03\x02\x02\x02\u0495\u0498\x03\x02\x02\x02\u0496\u0494\x03\x02\x02\x02" + + "\u0496\u0497\x03\x02\x02\x02\u0497\u0499\x03\x02\x02\x02\u0498\u0496\x03" + + "\x02\x02\x02\u0499\u049A\x05\u01A8\xD5\x02\u049A#\x03\x02\x02\x02\u049B" + + "\u049C\x07$\x02\x02\u049C\u049E\x07\u0248\x02\x02\u049D\u049F\x05\u02FC" + + "\u017F\x02\u049E\u049D\x03\x02\x02\x02\u049E\u049F\x03\x02\x02\x02\u049F" + + "\u04A0\x03\x02\x02\x02\u04A0\u04A1\x05\u0292\u014A\x02\u04A1%\x03\x02" + + "\x02\x02\u04A2\u04A3\x07$\x02\x02\u04A3\u04A4\x07\u0252\x02\x02\u04A4" + + "\u04A5\x05\u02C6\u0164\x02\u04A5\u04A6\x07E\x02\x02\u04A6\u04A7\x07\u016A" + + "\x02\x02\u04A7\u04A8\x07\u02B6\x02\x02\u04A8\u04A9\t\x07\x02\x02\u04A9" + + "\u04AA\x07\u0208\x02\x02\u04AA\u04AB\x07\u0364\x02\x02\u04AB\u04B0\x05" + + "P)\x02\u04AC\u04AD\x07\u0366\x02\x02\u04AD\u04AF\x05P)\x02\u04AE\u04AC" + + "\x03\x02\x02\x02\u04AF\u04B2\x03\x02\x02\x02\u04B0\u04AE\x03\x02\x02\x02" + + "\u04B0\u04B1\x03\x02\x02\x02\u04B1\u04B3\x03\x02\x02\x02\u04B2\u04B0\x03" + + "\x02\x02\x02\u04B3\u04B4\x07\u0365\x02\x02\u04B4\'\x03\x02\x02\x02\u04B5" + + "\u04B7\x07$\x02\x02\u04B6\u04B8\x07\u0296\x02\x02\u04B7\u04B6\x03\x02" + + "\x02\x02\u04B7\u04B8\x03\x02\x02\x02\u04B8\u04B9\x03\x02\x02\x02\u04B9" + + "\u04BB\x07\xAF\x02\x02\u04BA\u04BC\x05\u02FC\u017F\x02\u04BB\u04BA\x03" + + "\x02\x02\x02\u04BB\u04BC\x03\x02\x02\x02\u04BC\u04BD\x03\x02\x02\x02\u04BD" + + "\u04BE\x05\u028C\u0147\x02\u04BE\u04C9\x05R*\x02\u04BF\u04C6\x05d3\x02" + + "\u04C0\u04C2\x07\u0366\x02\x02\u04C1\u04C0\x03\x02\x02\x02\u04C1\u04C2" + + "\x03\x02\x02\x02\u04C2\u04C3\x03\x02\x02\x02\u04C3\u04C5\x05d3\x02\u04C4" + + "\u04C1\x03\x02\x02\x02\u04C5\u04C8\x03\x02\x02\x02\u04C6\u04C4\x03\x02" + + "\x02\x02\u04C6\u04C7\x03\x02\x02\x02\u04C7\u04CA\x03\x02\x02\x02\u04C8" + + "\u04C6\x03\x02\x02\x02\u04C9\u04BF\x03\x02\x02\x02\u04C9\u04CA\x03\x02" + + "\x02\x02\u04CA\u04CC\x03\x02\x02\x02\u04CB\u04CD\x05j6\x02\u04CC\u04CB" + + "\x03\x02\x02\x02\u04CC\u04CD\x03\x02\x02\x02\u04CD\u0504\x03\x02\x02\x02" + + "\u04CE\u04D0\x07$\x02\x02\u04CF\u04D1\x07\u0296\x02\x02\u04D0\u04CF\x03" + + "\x02\x02\x02\u04D0\u04D1\x03\x02\x02\x02\u04D1\u04D2\x03\x02\x02\x02\u04D2" + + "\u04D4\x07\xAF\x02\x02\u04D3\u04D5\x05\u02FC\u017F\x02\u04D4\u04D3\x03" + + "\x02\x02\x02\u04D4\u04D5\x03\x02\x02\x02\u04D5\u04D6\x03\x02\x02\x02\u04D6" + + "\u04D8\x05\u028C\u0147\x02\u04D7\u04D9\x05R*\x02\u04D8\u04D7\x03\x02\x02" + + "\x02\u04D8\u04D9\x03\x02\x02\x02\u04D9\u04E4\x03\x02\x02\x02\u04DA\u04E1" + + "\x05d3\x02\u04DB\u04DD\x07\u0366\x02\x02\u04DC\u04DB\x03\x02\x02\x02\u04DC" + + "\u04DD\x03\x02\x02\x02\u04DD\u04DE\x03\x02\x02\x02\u04DE\u04E0\x05d3\x02" + + "\u04DF\u04DC\x03\x02\x02\x02\u04E0\u04E3\x03\x02\x02\x02\u04E1\u04DF\x03" + + "\x02\x02\x02\u04E1\u04E2\x03\x02\x02\x02\u04E2\u04E5\x03\x02\x02\x02\u04E3" + + "\u04E1\x03\x02\x02\x02\u04E4\u04DA\x03\x02\x02\x02\u04E4\u04E5\x03\x02" + + "\x02\x02\u04E5\u04E7\x03\x02\x02\x02\u04E6\u04E8\x05j6\x02\u04E7\u04E6" + + "\x03\x02\x02\x02\u04E7\u04E8\x03\x02\x02\x02\u04E8\u04EA\x03\x02\x02\x02" + + "\u04E9\u04EB\t\b\x02\x02\u04EA\u04E9\x03\x02\x02\x02\u04EA\u04EB\x03\x02" + + "\x02\x02\u04EB\u04ED\x03\x02\x02\x02\u04EC\u04EE\x07\x0F\x02\x02\u04ED" + + "\u04EC\x03\x02\x02\x02\u04ED\u04EE\x03\x02\x02\x02\u04EE\u04EF\x03\x02" + + "\x02\x02\u04EF\u04F0\x05\xCEh\x02\u04F0\u0504\x03\x02\x02\x02\u04F1\u04F3" + + "\x07$\x02\x02\u04F2\u04F4\x07\u0296\x02\x02\u04F3\u04F2\x03\x02\x02\x02" + + "\u04F3\u04F4\x03\x02\x02\x02\u04F4\u04F5\x03\x02\x02\x02\u04F5\u04F7\x07" + + "\xAF\x02\x02\u04F6\u04F8\x05\u02FC\u017F\x02\u04F7\u04F6\x03\x02\x02\x02" + + "\u04F7\u04F8\x03\x02\x02\x02\u04F8\u04F9\x03\x02\x02\x02\u04F9\u0501\x05" + + "\u028C\u0147\x02\u04FA\u04FB\x07e\x02\x02\u04FB\u0502\x05\u0290\u0149" + + "\x02\u04FC\u04FD\x07\u0364\x02\x02\u04FD\u04FE\x07e\x02\x02\u04FE\u04FF" + + "\x05\u0290\u0149\x02\u04FF\u0500\x07\u0365\x02\x02\u0500\u0502\x03\x02" + + "\x02\x02\u0501\u04FA\x03\x02\x02\x02\u0501\u04FC\x03\x02\x02\x02\u0502" + + "\u0504\x03\x02\x02\x02\u0503\u04B5\x03\x02\x02\x02\u0503\u04CE\x03\x02" + + "\x02\x02\u0503\u04F1\x03\x02\x02\x02\u0504)\x03\x02\x02\x02\u0505\u0507" + + "\x07$\x02\x02\u0506\u0508\x07\xB6\x02\x02\u0507\u0506\x03\x02\x02\x02" + + "\u0507\u0508\x03\x02\x02\x02\u0508\u0509\x03\x02\x02\x02\u0509\u050A\x07" + + "\u0294\x02\x02\u050A\u050E\x05\u029C\u014F\x02\u050B\u050C\x07\b\x02\x02" + + "\u050C\u050D\x07\u016B\x02\x02\u050D\u050F\x07\u0374\x02\x02\u050E\u050B" + + "\x03\x02\x02\x02\u050E\u050F\x03\x02\x02\x02\u050F\u0515\x03\x02\x02\x02" + + "\u0510\u0512\x07\u013C\x02\x02\u0511\u0513\x07\u035B\x02\x02\u0512\u0511" + + "\x03\x02\x02\x02\u0512\u0513\x03\x02\x02\x02\u0513\u0514\x03\x02\x02\x02" + + "\u0514\u0516\x05\u02CE\u0168\x02\u0515\u0510\x03\x02\x02\x02\u0515\u0516" + + "\x03\x02\x02\x02\u0516\u051A\x03\x02\x02\x02\u0517\u0518\x07\u0191\x02" + + "\x02\u0518\u0519\x07\u035B\x02\x02\u0519\u051B\x05\u02CE\u0168\x02\u051A" + + "\u0517\x03\x02\x02\x02\u051A\u051B\x03\x02\x02\x02\u051B\u0521\x03\x02" + + "\x02\x02\u051C\u051E\x07\u017E\x02\x02\u051D\u051F\x07\u035B\x02\x02\u051E" + + "\u051D\x03\x02\x02\x02\u051E\u051F\x03\x02\x02\x02\u051F\u0520\x03\x02" + + "\x02\x02\u0520\u0522\x05\u02B8\u015D\x02\u0521\u051C\x03\x02\x02\x02\u0521" + + "\u0522\x03\x02\x02\x02\u0522\u0528\x03\x02\x02\x02\u0523\u0525\x07\u033B" + + "\x02\x02\u0524\u0526\x07\u035B\x02\x02\u0525\u0524\x03\x02\x02\x02\u0525" + + "\u0526\x03\x02\x02\x02\u0526\u0527\x03\x02\x02\x02\u0527\u0529\x07\u0374" + + "\x02\x02\u0528\u0523\x03\x02\x02\x02\u0528\u0529\x03\x02\x02\x02\u0529" + + "+\x03\x02\x02\x02\u052A\u052C\x07$\x02\x02\u052B\u052D\x07\xB6\x02\x02" + + "\u052C\u052B\x03\x02\x02\x02\u052C\u052D\x03\x02\x02\x02\u052D\u052E\x03" + + "\x02\x02\x02\u052E\u052F\x07\u0294\x02\x02\u052F\u0530\x05\u029C\u014F" + + "\x02\u0530\u0531\x07\b\x02\x02\u0531\u0532\x07\u016B\x02\x02\u0532\u0533" + + "\x07\u0374\x02\x02\u0533\u0534\x07\xBD\x02\x02\u0534\u0535\x07\u01C5\x02" + + "\x02\u0535\u0536\x07L\x02\x02\u0536\u053C\x05\u02C6\u0164\x02\u0537\u0539" + + "\x07\u018B\x02\x02\u0538\u053A\x07\u035B\x02\x02\u0539\u0538\x03\x02\x02" + + "\x02\u0539\u053A\x03\x02\x02\x02\u053A\u053B\x03\x02\x02\x02\u053B\u053D" + + "\x05\u02CE\u0168\x02\u053C\u0537\x03\x02\x02\x02\u053C\u053D\x03\x02\x02" + + "\x02\u053D\u0543\x03\x02\x02\x02\u053E\u0540\x07\u01AE\x02\x02\u053F\u0541" + + "\x07\u035B\x02\x02\u0540\u053F\x03\x02\x02\x02\u0540\u0541\x03\x02\x02" + + "\x02\u0541\u0542\x03\x02\x02\x02\u0542\u0544\x05\u02CE\u0168\x02\u0543" + + "\u053E\x03\x02\x02\x02\u0543\u0544\x03\x02\x02\x02\u0544\u054A\x03\x02" + + "\x02\x02\u0545\u0547\x07\u013C\x02\x02\u0546\u0548\x07\u035B\x02\x02\u0547" + + "\u0546\x03\x02\x02\x02\u0547\u0548\x03\x02\x02\x02\u0548\u0549\x03\x02" + + "\x02\x02\u0549\u054B\x05\u02CE\u0168\x02\u054A\u0545\x03\x02\x02\x02\u054A" + + "\u054B\x03\x02\x02\x02\u054B\u0551\x03\x02\x02\x02\u054C\u054E\x07\u01E3" + + "\x02\x02\u054D\u054F\x07\u035B\x02\x02\u054E\u054D\x03\x02\x02\x02\u054E" + + "\u054F\x03\x02\x02\x02\u054F\u0550\x03\x02\x02\x02\u0550\u0552\x05\u02CE" + + "\u0168\x02\u0551\u054C\x03\x02\x02\x02\u0551\u0552\x03\x02\x02\x02\u0552" + + "\u0558\x03\x02\x02\x02\u0553\u0555\x07\u01FA\x02\x02\u0554\u0556\x07\u035B" + + "\x02\x02\u0555\u0554\x03\x02\x02\x02\u0555\u0556\x03\x02\x02\x02\u0556" + + "\u0557\x03\x02\x02\x02\u0557\u0559\x05\u02C6\u0164\x02\u0558\u0553\x03" + + "\x02\x02\x02\u0558\u0559\x03\x02\x02\x02\u0559\u055B\x03\x02\x02\x02\u055A" + + "\u055C\x07\u02B1\x02\x02\u055B\u055A\x03\x02\x02\x02\u055B\u055C\x03\x02" + + "\x02\x02\u055C\u0562\x03\x02\x02\x02\u055D\u055F\x07\u0156\x02\x02\u055E" + + "\u0560\x07\u035B\x02\x02\u055F\u055E\x03\x02\x02\x02\u055F\u0560\x03\x02" + + "\x02\x02\u0560\u0561\x03\x02\x02\x02\u0561\u0563\x07\u0374\x02\x02\u0562" + + "\u055D\x03\x02\x02\x02\u0562\u0563\x03\x02\x02\x02\u0563\u0564\x03\x02" + + "\x02\x02\u0564\u0566\x07\u017E\x02\x02\u0565\u0567\x07\u035B\x02\x02\u0566" + + "\u0565\x03\x02\x02\x02\u0566\u0567\x03\x02\x02\x02\u0567\u0568\x03\x02" + + "\x02\x02\u0568\u0569\x05\u02B8\u015D\x02\u0569-\x03\x02\x02\x02\u056A" + + "\u056C\x07$\x02\x02\u056B\u056D\x05<\x1F\x02\u056C\u056B\x03\x02\x02\x02" + + "\u056C\u056D\x03\x02\x02\x02\u056D\u056E\x03\x02\x02\x02\u056E\u0570\x07" + + "\xB4\x02\x02\u056F\u0571\x05\u02FC\u017F\x02\u0570\u056F\x03\x02\x02\x02" + + "\u0570\u0571\x03\x02\x02\x02\u0571\u0572\x03\x02\x02\x02\u0572\u0573\x05" + + "\u02C2\u0162\x02\u0573\u0574\t\t\x02\x02\u0574\u0575\t\n\x02\x02\u0575" + + "\u0576\x07y\x02\x02\u0576\u0577\x05\u0290\u0149\x02\u0577\u0578\x07C\x02" + + "\x02\u0578\u0579\x076\x02\x02\u0579\u057C\x07\u024C\x02\x02\u057A\u057B" + + "\t\v\x02\x02\u057B\u057D\x05\u02C2\u0162\x02\u057C\u057A\x03\x02\x02\x02" + + "\u057C\u057D\x03\x02\x02\x02\u057D\u057E\x03\x02\x02\x02\u057E\u057F\x05" + + "\u01A8\xD5\x02\u057F/\x03\x02\x02\x02\u0580\u0582\x07\xC4\x02\x02\u0581" + + "\u0583\x07\u022A\x02\x02\u0582\u0581\x03\x02\x02\x02\u0582\u0583\x03\x02" + + "\x02\x02\u0583\u0584\x03\x02\x02\x02\u0584\u0585\x052\x1A\x02\u05851\x03" + + "\x02\x02\x02\u0586\u0592\x05\u02C6\u0164\x02\u0587\u0588\x07\u0364\x02" + + "\x02\u0588\u058D\x05\u02C6\u0164\x02\u0589\u058A\x07\u0366\x02\x02\u058A" + + "\u058C\x05\u02C6\u0164\x02\u058B\u0589\x03\x02\x02\x02\u058C\u058F\x03" + + "\x02\x02\x02\u058D\u058B\x03\x02\x02\x02\u058D\u058E\x03\x02\x02\x02\u058E" + + "\u0590\x03\x02\x02\x02\u058F\u058D\x03\x02\x02\x02\u0590\u0591\x07\u0365" + + "\x02\x02\u0591\u0593\x03\x02\x02\x02\u0592\u0587\x03\x02\x02\x02\u0592" + + "\u0593\x03\x02\x02\x02\u0593\u0594\x03\x02\x02\x02\u0594\u0595\x07\x0F" + + "\x02\x02\u0595\u0596\x07\u0364\x02\x02\u0596\u0597\x05\f\x07\x02\u0597" + + "\u059A\x07\u0365\x02\x02\u0598\u0599\x07\u0366\x02\x02\u0599\u059B\x05" + + "2\x1A\x02\u059A\u0598\x03\x02\x02\x02\u059A\u059B\x03\x02\x02\x02\u059B" + + "3\x03\x02\x02\x02\u059C\u059E\x07$\x02\x02\u059D\u059F\x05\u02FE\u0180" + + "\x02\u059E\u059D\x03\x02\x02\x02\u059E\u059F\x03\x02\x02\x02\u059F\u05A3" + + "\x03\x02\x02\x02\u05A0\u05A1\x07\u0136\x02\x02\u05A1\u05A2\x07\u035B\x02" + + "\x02\u05A2\u05A4\t\f\x02\x02\u05A3\u05A0\x03\x02\x02\x02\u05A3\u05A4\x03" + + "\x02\x02\x02\u05A4\u05A6\x03\x02\x02\x02\u05A5\u05A7\x05<\x1F\x02\u05A6" + + "\u05A5\x03\x02\x02\x02\u05A6\u05A7\x03\x02\x02\x02\u05A7\u05AB\x03\x02" + + "\x02\x02\u05A8\u05A9\x07\xA4\x02\x02\u05A9\u05AA\x07\u0251\x02\x02\u05AA" + + "\u05AC\t\r\x02\x02\u05AB\u05A8\x03\x02\x02\x02\u05AB\u05AC\x03\x02\x02" + + "\x02\u05AC\u05AD\x03\x02\x02\x02\u05AD\u05AE\x07\u02AE\x02\x02\u05AE\u05B3" + + "\x05\u027E\u0140\x02\u05AF\u05B0\x07\u0364\x02\x02\u05B0\u05B1\x05\u0298" + + "\u014D\x02\u05B1\u05B2\x07\u0365\x02\x02\u05B2\u05B4\x03\x02\x02\x02\u05B3" + + "\u05AF\x03\x02\x02\x02\u05B3\u05B4\x03\x02\x02\x02\u05B4\u05B5\x03\x02" + + "\x02\x02\u05B5\u05C9\x07\x0F\x02\x02\u05B6\u05B8\x07\u0364\x02\x02\u05B7" + + "\u05B9\x050\x19\x02\u05B8\u05B7\x03\x02\x02\x02\u05B8\u05B9\x03\x02\x02" + + "\x02\u05B9\u05BA\x03\x02\x02\x02\u05BA\u05BB\x05\xCEh\x02\u05BB\u05BC" + + "\x07\u0365\x02\x02\u05BC\u05CA\x03\x02\x02\x02\u05BD\u05BF\x050\x19\x02" + + "\u05BE\u05BD\x03\x02\x02\x02\u05BE\u05BF\x03\x02\x02\x02\u05BF\u05C0\x03" + + "\x02\x02\x02\u05C0\u05C7\x05\xCEh\x02\u05C1\u05C3\x07\xC4\x02\x02\u05C2" + + "\u05C4\t\x0E\x02\x02\u05C3\u05C2\x03\x02\x02\x02\u05C3\u05C4\x03\x02\x02" + + "\x02\u05C4\u05C5\x03\x02\x02\x02\u05C5\u05C6\x07\x1D\x02\x02\u05C6\u05C8" + + "\x07{\x02\x02\u05C7\u05C1\x03\x02\x02\x02\u05C7\u05C8\x03\x02\x02\x02" + + "\u05C8\u05CA\x03\x02\x02\x02\u05C9\u05B6\x03\x02\x02\x02\u05C9\u05BE\x03" + + "\x02\x02\x02\u05CA5\x03\x02\x02\x02\u05CB\u05CD\x07,\x02\x02\u05CC\u05CB" + + "\x03\x02\x02\x02\u05CC\u05CD\x03\x02\x02\x02\u05CD\u05CE\x03\x02\x02\x02" + + "\u05CE\u05D0\x058\x1D\x02\u05CF\u05D1\x07\u035B\x02\x02\u05D0\u05CF\x03" + + "\x02\x02\x02\u05D0\u05D1\x03\x02\x02\x02\u05D1\u05D4\x03\x02\x02\x02\u05D2" + + "\u05D5\x05\u02B4\u015B\x02\u05D3\u05D5\x07,\x02\x02\u05D4\u05D2\x03\x02" + + "\x02\x02\u05D4\u05D3\x03\x02\x02\x02\u05D5\u05ED\x03\x02\x02\x02\u05D6" + + "\u05D8\x07,\x02\x02\u05D7\u05D6\x03\x02\x02\x02\u05D7\u05D8\x03\x02\x02" + + "\x02\u05D8\u05D9\x03\x02\x02\x02\u05D9\u05DB\x07\x1E\x02\x02\u05DA\u05DC" + + "\x07\u035B\x02\x02\u05DB\u05DA\x03\x02\x02\x02\u05DB\u05DC\x03\x02\x02" + + "\x02\u05DC\u05DD\x03\x02\x02\x02\u05DD\u05ED\x05\u02B6\u015C\x02\u05DE" + + "\u05E0\x07,\x02\x02\u05DF\u05DE\x03\x02\x02\x02\u05DF\u05E0\x03\x02\x02" + + "\x02\u05E0\u05E1\x03\x02\x02\x02\u05E1\u05E3\x07\u017A\x02\x02\u05E2\u05E4" + + "\x07\u035B\x02\x02\u05E3\u05E2\x03\x02\x02\x02\u05E3\u05E4\x03\x02\x02" + + "\x02\u05E4\u05E5\x03\x02\x02\x02\u05E5\u05ED\x07\u0374\x02\x02\u05E6\u05E7" + + "\x07\x89\x02\x02\u05E7\u05E9\x07\u0205\x02\x02\u05E8\u05EA\x07\u035B\x02" + + "\x02\u05E9\u05E8\x03\x02\x02\x02\u05E9\u05EA\x03\x02\x02\x02\u05EA\u05EB" + + "\x03\x02\x02\x02\u05EB\u05ED\t\x0F\x02\x02\u05EC\u05CC\x03\x02\x02\x02" + + "\u05EC\u05D7\x03\x02\x02\x02\u05EC\u05DF\x03\x02\x02\x02\u05EC\u05E6\x03" + + "\x02\x02\x02\u05ED7\x03\x02\x02\x02\u05EE\u05EF\x07\x1C\x02\x02\u05EF" + + "\u05F4\x07\x9D\x02\x02\u05F0\u05F4\x07\u0339\x02\x02\u05F1\u05F2\x07\xE2" + + "\x02\x02\u05F2\u05F4\x07\x9D\x02\x02\u05F3\u05EE\x03\x02\x02\x02\u05F3" + + "\u05F0\x03\x02\x02\x02\u05F3\u05F1\x03\x02\x02\x02\u05F49\x03\x02\x02" + + "\x02\u05F5\u05F8\t\x10\x02\x02\u05F6\u05F7\x07\u0364\x02\x02\u05F7\u05F9" + + "\x07\u0365\x02\x02\u05F8\u05F6\x03\x02\x02\x02\u05F8\u05F9\x03\x02\x02" + + "\x02\u05F9;\x03\x02\x02\x02\u05FA\u05FB\x07\u016E\x02\x02\u05FB\u05FE" + + "\x07\u035B\x02\x02\u05FC\u05FF\x05\u02B0\u0159\x02\u05FD\u05FF\x05:\x1E" + + "\x02\u05FE\u05FC\x03\x02\x02\x02\u05FE\u05FD\x03\x02\x02\x02\u05FF=\x03" + + "\x02\x02\x02\u0600\u0601\x07\u0139\x02\x02\u0601\u0605\x05@!\x02\u0602" + + "\u0604\x05B\"\x02\u0603\u0602\x03\x02\x02\x02\u0604\u0607\x03\x02\x02" + + "\x02\u0605\u0603\x03\x02\x02\x02\u0605\u0606\x03\x02\x02\x02\u0606\u0623" + + "\x03\x02\x02\x02\u0607\u0605\x03\x02\x02\x02\u0608\u060B\x07\u0185\x02" + + "\x02\u0609\u060C\x05\u02CC\u0167\x02\u060A\u060C\x05\u0328\u0195\x02\u060B" + + "\u0609\x03\x02\x02\x02\u060B\u060A\x03\x02\x02\x02\u060C\u060D\x03\x02" + + "\x02\x02\u060D\u0616\x05D#\x02\u060E\u060F\x07\u0283\x02\x02\u060F\u0613" + + "\x05@!\x02\u0610\u0612\x05B\"\x02\u0611\u0610\x03\x02\x02\x02\u0612\u0615" + + "\x03\x02\x02\x02\u0613\u0611\x03\x02\x02\x02\u0613\u0614\x03\x02\x02\x02" + + "\u0614\u0617\x03\x02\x02\x02\u0615\u0613\x03\x02\x02\x02\u0616\u060E\x03" + + "\x02\x02\x02\u0616\u0617\x03\x02\x02\x02\u0617\u0620\x03\x02\x02\x02\u0618" + + "\u0619\x07\u017D\x02\x02\u0619\u061D\x05@!\x02\u061A\u061C\x05B\"\x02" + + "\u061B\u061A\x03\x02\x02\x02\u061C\u061F\x03\x02\x02\x02\u061D\u061B\x03" + + "\x02\x02\x02\u061D\u061E\x03\x02\x02\x02\u061E\u0621\x03\x02\x02\x02\u061F" + + "\u061D\x03\x02\x02\x02\u0620\u0618\x03\x02\x02\x02\u0620\u0621\x03\x02" + + "\x02\x02\u0621\u0623\x03\x02\x02\x02\u0622\u0600\x03\x02\x02\x02\u0622" + + "\u0608\x03\x02\x02\x02\u0623?\x03\x02\x02\x02\u0624\u0629\x07\u0121\x02" + + "\x02\u0625\u0629\x05\u02D0\u0169\x02\u0626\u0629\x05\u02CC\u0167\x02\u0627" + + "\u0629\x05\u0328\u0195\x02\u0628\u0624\x03\x02\x02\x02\u0628\u0625\x03" + + "\x02\x02\x02\u0628\u0626\x03\x02\x02\x02\u0628\u0627\x03\x02\x02\x02\u0629" + + "A\x03\x02\x02\x02\u062A\u062B\x07\u0357\x02\x02\u062B\u062E\x07Y\x02\x02" + + "\u062C\u062F\x05\u02CC\u0167\x02\u062D\u062F\x05\u0328\u0195\x02\u062E" + + "\u062C\x03\x02\x02\x02\u062E\u062D\x03\x02\x02\x02\u062F\u0630\x03\x02" + + "\x02\x02\u0630\u0631\x05D#\x02\u0631C\x03\x02\x02\x02\u0632\u0640\x05" + + "\u0342\u01A2\x02\u0633\u0640\x07\xE1\x02\x02\u0634\u0640\x07\xF4\x02\x02" + + "\u0635\u0640\x07\xF5\x02\x02\u0636\u0640\x07\xF6\x02\x02\u0637\u0640\x07" + + "\xF7\x02\x02\u0638\u0640\x07\xF8\x02\x02\u0639\u0640\x07\xF9\x02\x02\u063A" + + "\u0640\x07\xFA\x02\x02\u063B\u0640\x07\xFB\x02\x02\u063C\u0640\x07\xFC" + + "\x02\x02\u063D\u0640\x07\xFD\x02\x02\u063E\u0640\x07\xFE\x02\x02\u063F" + + "\u0632\x03\x02\x02\x02\u063F\u0633\x03\x02\x02\x02\u063F\u0634\x03\x02" + + "\x02\x02\u063F\u0635\x03\x02\x02\x02\u063F\u0636\x03\x02\x02\x02\u063F" + + "\u0637\x03\x02\x02\x02\u063F\u0638\x03\x02\x02\x02\u063F\u0639\x03\x02" + + "\x02\x02\u063F\u063A\x03\x02\x02\x02\u063F\u063B\x03\x02\x02\x02\u063F" + + "\u063C\x03\x02\x02\x02\u063F\u063D\x03\x02\x02\x02\u063F\u063E\x03\x02" + + "\x02\x02\u0640E\x03\x02\x02\x02\u0641\u0647\x07\u0179\x02\x02\u0642\u0647" + + "\x07\u0172\x02\x02\u0643\u0644\x07\u0172\x02\x02\u0644\u0645\x07y\x02" + + "\x02\u0645\u0647\x07\u0258\x02\x02\u0646\u0641\x03\x02\x02\x02\u0646\u0642" + + "\x03\x02\x02\x02\u0646\u0643\x03\x02\x02\x02\u0647G\x03\x02\x02\x02\u0648" + + "\u0649\x07\xBE\x02\x02\u0649\u064A\t\x11\x02\x02\u064AI\x03\x02\x02\x02" + + "\u064B\u064D\x07\u01BD\x02\x02\u064C\u064E\x07\u035B\x02\x02\u064D\u064C" + + "\x03\x02\x02\x02\u064D\u064E\x03\x02\x02\x02\u064E\u064F\x03\x02\x02\x02" + + "\u064F\u0662\x05\u02CE\u0168\x02\u0650\u0662\x05H%\x02\u0651\u0652\x07" + + "\xC4\x02\x02\u0652\u0653\x07\u020F\x02\x02\u0653\u0662\x05\u02C6\u0164" + + "\x02\u0654\u0655\x07\u0156\x02\x02\u0655\u0662\x07\u0374\x02\x02\u0656" + + "\u0662\t\x12\x02\x02\u0657\u0659\x07\u033B\x02\x02\u0658\u065A\x07\u035B" + + "\x02\x02\u0659\u0658\x03\x02\x02\x02\u0659\u065A\x03\x02\x02\x02\u065A" + + "\u065B\x03\x02\x02\x02\u065B\u0662\x07\u0374\x02\x02\u065C\u065E\x07\u0343" + + "\x02\x02\u065D\u065F\x07\u035B\x02\x02\u065E\u065D\x03\x02\x02\x02\u065E" + + "\u065F\x03\x02\x02\x02\u065F\u0660\x03\x02\x02\x02\u0660\u0662\x07\u0374" + + "\x02\x02\u0661\u064B\x03\x02\x02\x02\u0661\u0650\x03\x02\x02\x02\u0661" + + "\u0651\x03\x02\x02\x02\u0661\u0654\x03\x02\x02\x02\u0661\u0656\x03\x02" + + "\x02\x02\u0661\u0657\x03\x02\x02\x02\u0661\u065C\x03\x02\x02\x02\u0662" + + "K\x03\x02\x02\x02\u0663\u0665\t\x13\x02\x02\u0664\u0663\x03\x02\x02\x02" + + "\u0664\u0665\x03\x02\x02\x02\u0665\u0666\x03\x02\x02\x02\u0666\u0667\x05" + + "\u02C6\u0164\x02\u0667\u0668\x05\u02DA\u016E\x02\u0668M\x03\x02\x02\x02" + + "\u0669\u066A\x07\u0156\x02\x02\u066A\u0681\x07\u0374\x02\x02\u066B\u066C" + + "\x07\u01BE\x02\x02\u066C\u0681\x07\xA4\x02\x02\u066D\u066F\x07t\x02\x02" + + "\u066E\u066D\x03\x02\x02\x02\u066E\u066F\x03\x02\x02\x02\u066F\u0670\x03" + + "\x02\x02\x02\u0670\u0681\x071\x02\x02\u0671\u0672\x07\u0164\x02\x02\u0672" + + "\u067C\x07\xA4\x02\x02\u0673\u0674\x07\u01F8\x02\x02\u0674\u067C\x07\xA4" + + "\x02\x02\u0675\u0676\x07\x8A\x02\x02\u0676\u0677\x07\xA4\x02\x02\u0677" + + "\u067C\x07\u016A\x02\x02\u0678\u0679\x07r\x02\x02\u0679\u067A\x07\xA4" + + "\x02\x02\u067A\u067C\x07\u016A\x02\x02\u067B\u0671\x03\x02\x02\x02\u067B" + + "\u0673\x03\x02\x02\x02\u067B\u0675\x03\x02\x02\x02\u067B\u0678\x03\x02" + + "\x02\x02\u067C\u0681\x03\x02\x02\x02\u067D\u067E\x07\xA4\x02\x02\u067E" + + "\u067F\x07\u0251\x02\x02\u067F\u0681\t\r\x02\x02\u0680\u0669\x03\x02\x02" + + "\x02\u0680\u066B\x03\x02\x02\x02\u0680\u066E\x03\x02\x02\x02\u0680\u067B" + + "\x03\x02\x02\x02\u0680\u067D\x03\x02\x02\x02\u0681O\x03\x02\x02\x02\u0682" + + "\u0683\x07\u01A7\x02\x02\u0683\u0691\x07\u0374\x02\x02\u0684\u0685\x07" + + ")\x02\x02\u0685\u0691\x07\u0374\x02\x02\u0686\u0687\x07\u02A8\x02\x02" + + "\u0687\u0691\x07\u0374\x02\x02\u0688\u0689\x07\u0213\x02\x02\u0689\u0691" + + "\x07\u0374\x02\x02\u068A\u068B\x07\u025B\x02\x02\u068B\u0691\x07\u0374" + + "\x02\x02\u068C\u068D\x07\u0209\x02\x02\u068D\u0691\x07\u0374\x02\x02\u068E" + + "\u068F\x07\u021B\x02\x02\u068F\u0691\x05\u02CC\u0167\x02\u0690\u0682\x03" + + "\x02\x02\x02\u0690\u0684\x03\x02\x02\x02\u0690\u0686\x03\x02\x02\x02\u0690" + + "\u0688\x03\x02\x02\x02\u0690\u068A\x03\x02\x02\x02\u0690\u068C\x03\x02" + + "\x02\x02\u0690\u068E\x03\x02\x02\x02\u0691Q\x03\x02\x02\x02\u0692\u0693" + + "\x07\u0364\x02\x02\u0693\u0698\x05T+\x02\u0694\u0695\x07\u0366\x02\x02" + + "\u0695\u0697\x05T+\x02\u0696\u0694\x03\x02\x02\x02\u0697\u069A\x03\x02" + + "\x02\x02\u0698\u0696\x03\x02\x02\x02\u0698\u0699\x03\x02\x02\x02\u0699" + + "\u069B\x03\x02\x02\x02\u069A\u0698\x03\x02\x02\x02\u069B\u069C\x07\u0365" + + "\x02\x02\u069CS\x03\x02\x02\x02\u069D\u069E\x05\u029A\u014E\x02\u069E" + + "\u069F\x05Z.\x02\u069F\u06F1\x03\x02\x02\x02\u06A0\u06A2\t\x14\x02\x02" + + "\u06A1\u06A3\x05\u0286\u0144\x02\u06A2\u06A1\x03\x02\x02\x02\u06A2\u06A3" + + "\x03\x02\x02\x02\u06A3\u06A5\x03\x02\x02\x02\u06A4\u06A6\x05H%\x02\u06A5" + + "\u06A4\x03\x02\x02\x02\u06A5\u06A6\x03\x02\x02\x02\u06A6\u06A7\x03\x02" + + "\x02\x02\u06A7\u06AB\x05\u02E6\u0174\x02\u06A8\u06AA\x05J&\x02\u06A9\u06A8" + + "\x03\x02\x02\x02\u06AA\u06AD\x03\x02\x02\x02\u06AB\u06A9\x03\x02\x02\x02" + + "\u06AB\u06AC\x03\x02\x02\x02\u06AC\u06F1\x03\x02\x02\x02\u06AD\u06AB\x03" + + "\x02\x02\x02\u06AE\u06B0\t\x15\x02\x02\u06AF\u06B1\t\x14\x02\x02\u06B0" + + "\u06AF\x03\x02\x02\x02\u06B0\u06B1\x03\x02\x02\x02\u06B1\u06B3\x03\x02" + + "\x02\x02\u06B2\u06B4\x05\u0286\u0144\x02\u06B3\u06B2\x03\x02\x02\x02\u06B3" + + "\u06B4\x03\x02\x02\x02\u06B4\u06B5\x03\x02\x02\x02\u06B5\u06B9\x05\u02E6" + + "\u0174\x02\u06B6\u06B8\x05J&\x02\u06B7\u06B6\x03\x02\x02\x02\u06B8\u06BB" + + "\x03\x02\x02\x02\u06B9\u06B7\x03\x02\x02\x02\u06B9\u06BA\x03\x02\x02\x02" + + "\u06BA\u06F1\x03\x02\x02\x02\u06BB\u06B9\x03\x02\x02\x02\u06BC\u06BE\x05" + + "X-\x02\u06BD\u06BC\x03\x02\x02\x02\u06BD\u06BE\x03\x02\x02\x02\u06BE\u06BF" + + "\x03\x02\x02\x02\u06BF\u06C0\x07\x85\x02\x02\u06C0\u06C2\x07^\x02\x02" + + "\u06C1\u06C3\x05H%\x02\u06C2\u06C1\x03\x02\x02\x02\u06C2\u06C3\x03\x02" + + "\x02\x02\u06C3\u06C4\x03\x02\x02\x02\u06C4\u06C8\x05\u02E6\u0174\x02\u06C5" + + "\u06C7\x05J&\x02\u06C6\u06C5\x03\x02\x02\x02\u06C7\u06CA\x03\x02\x02\x02" + + "\u06C8\u06C6\x03\x02\x02\x02\u06C8\u06C9\x03\x02\x02\x02\u06C9\u06F1\x03" + + "\x02\x02\x02\u06CA\u06C8\x03\x02\x02\x02\u06CB\u06CD\x05X-\x02\u06CC\u06CB" + + "\x03\x02\x02\x02\u06CC\u06CD\x03\x02\x02\x02\u06CD\u06CE\x03\x02\x02\x02" + + "\u06CE\u06D0\x07\xB8\x02\x02\u06CF\u06D1\t\x14\x02\x02\u06D0\u06CF\x03" + + "\x02\x02\x02\u06D0\u06D1\x03\x02\x02\x02\u06D1\u06D3\x03\x02\x02\x02\u06D2" + + "\u06D4\x05\u0286\u0144\x02\u06D3\u06D2\x03\x02\x02\x02\u06D3\u06D4\x03" + + "\x02\x02\x02\u06D4\u06D6\x03\x02\x02\x02\u06D5\u06D7\x05H%\x02\u06D6\u06D5" + + "\x03\x02\x02\x02\u06D6\u06D7\x03\x02\x02\x02\u06D7\u06D8\x03\x02\x02\x02" + + "\u06D8\u06DC\x05\u02E6\u0174\x02\u06D9\u06DB\x05J&\x02\u06DA\u06D9\x03" + + "\x02\x02\x02\u06DB\u06DE\x03\x02\x02\x02\u06DC\u06DA\x03\x02\x02\x02\u06DC" + + "\u06DD\x03\x02\x02\x02\u06DD\u06F1\x03\x02\x02\x02\u06DE\u06DC\x03\x02" + + "\x02\x02\u06DF\u06E1\x05X-\x02\u06E0\u06DF\x03\x02\x02\x02\u06E0\u06E1" + + "\x03\x02\x02\x02\u06E1\u06E2\x03\x02\x02\x02\u06E2\u06E3\x07E\x02\x02" + + "\u06E3\u06E5\x07^\x02\x02\u06E4\u06E6\x05\u0286\u0144\x02\u06E5\u06E4" + + "\x03\x02\x02\x02\u06E5\u06E6\x03\x02\x02\x02\u06E6\u06E7\x03\x02\x02\x02" + + "\u06E7\u06E8\x05\u02E6\u0174\x02\u06E8\u06E9\x05^0\x02\u06E9\u06F1\x03" + + "\x02\x02\x02\u06EA\u06EB\x07\x1D\x02\x02\u06EB\u06EC\x07\u0364\x02\x02" + + "\u06EC\u06ED\x05\u0328\u0195\x02\u06ED\u06EE\x07\u0365\x02\x02\u06EE\u06F1" + + "\x03\x02\x02\x02\u06EF\u06F1\x05V,\x02\u06F0\u069D\x03\x02\x02\x02\u06F0" + + "\u06A0\x03\x02\x02\x02\u06F0\u06AE\x03\x02\x02\x02\u06F0\u06BD\x03\x02" + + "\x02\x02\u06F0\u06CC\x03\x02\x02\x02\u06F0\u06E0\x03\x02\x02\x02\u06F0" + + "\u06EA\x03\x02\x02\x02\u06F0\u06EF\x03\x02\x02\x02\u06F1U\x03\x02\x02" + + "\x02\u06F2\u06F4\x05X-\x02\u06F3\u06F2\x03\x02\x02\x02\u06F3\u06F4\x03" + + "\x02\x02\x02\u06F4\u06F5\x03\x02\x02\x02\u06F5\u06F6\x07\x1D\x02\x02\u06F6" + + "\u06F7\x07\u0364\x02\x02\u06F7\u06F8\x05\u0328\u0195\x02\u06F8\u06FD\x07" + + "\u0365\x02\x02\u06F9\u06FB\x07t\x02\x02\u06FA\u06F9\x03\x02\x02\x02\u06FA" + + "\u06FB\x03\x02\x02\x02\u06FB\u06FC\x03\x02\x02\x02\u06FC\u06FE\x07;\x02" + + "\x02\u06FD\u06FA\x03\x02\x02\x02\u06FD\u06FE\x03\x02\x02\x02\u06FEW\x03" + + "\x02\x02\x02\u06FF\u0701\x07!\x02\x02\u0700\u0702\x05\u02C6\u0164\x02" + + "\u0701\u0700\x03\x02\x02\x02\u0701\u0702\x03\x02\x02\x02\u0702Y\x03\x02" + + "\x02\x02\u0703\u0707\x05\u02DA\u016E\x02\u0704\u0706\x05\\/\x02\u0705" + + "\u0704\x03\x02\x02\x02\u0706\u0709\x03\x02\x02"; + private static readonly _serializedATNSegment6: string = + "\x02\u0707\u0705\x03\x02\x02\x02\u0707\u0708\x03\x02\x02\x02\u0708[\x03" + + "\x02\x02\x02\u0709\u0707\x03\x02\x02\x02\u070A\u0736\x05\u02D6\u016C\x02" + + "\u070B\u070C\x07,\x02\x02\u070C\u0736\x05\u02F6\u017C\x02\u070D\u0736" + + "\x07\u02B0\x02\x02\u070E\u0736\x07\u01B5\x02\x02\u070F\u0714\x07\u013D" + + "\x02\x02\u0710\u0711\x07y\x02\x02\u0711\u0712\x07\xBB\x02\x02\u0712\u0714" + + "\x05\u02F8\u017D\x02\u0713\u070F\x03\x02\x02\x02\u0713\u0710\x03\x02\x02" + + "\x02\u0714\u0736\x03\x02\x02\x02\u0715\u0717\x07\x85\x02\x02\u0716\u0715" + + "\x03\x02\x02\x02\u0716\u0717\x03\x02\x02\x02\u0717\u0718\x03\x02\x02\x02" + + "\u0718\u0736\x07^\x02\x02\u0719\u071B\x07\xB8\x02\x02\u071A\u071C\x07" + + "^\x02\x02\u071B\u071A\x03\x02\x02\x02\u071B\u071C\x03\x02\x02\x02\u071C" + + "\u0736\x03\x02\x02\x02\u071D\u071E\x07\u0156\x02\x02\u071E\u0736\x07\u0374" + + "\x02\x02\u071F\u0720\x07\u0154\x02\x02\u0720\u0736\t\x16\x02\x02\u0721" + + "\u0722\x07\u0289\x02\x02\u0722\u0736\t\x17\x02\x02\u0723\u0736\x05^0\x02" + + "\u0724\u0725\x07\x1E\x02\x02\u0725\u0736\x05\u02B6\u015C\x02\u0726\u0727" + + "\x07I\x02\x02\u0727\u0729\x07\v\x02\x02\u0728\u0726\x03\x02\x02\x02\u0728" + + "\u0729\x03\x02\x02\x02\u0729\u072A\x03\x02\x02\x02\u072A\u072B\x07\x0F" + + "\x02\x02\u072B\u072C\x07\u0364\x02\x02\u072C\u072D\x05\u0328\u0195\x02" + + "\u072D\u072F\x07\u0365\x02\x02\u072E\u0730\t\x18\x02\x02\u072F\u072E\x03" + + "\x02\x02\x02\u072F\u0730\x03\x02\x02\x02\u0730\u0736\x03\x02\x02\x02\u0731" + + "\u0732\x07\xF3\x02\x02\u0732\u0733\x07,\x02\x02\u0733\u0736\x07\u02AC" + + "\x02\x02\u0734\u0736\x05V,\x02\u0735\u070A\x03\x02\x02\x02\u0735\u070B" + + "\x03\x02\x02\x02\u0735\u070D\x03\x02\x02\x02\u0735\u070E\x03\x02\x02\x02" + + "\u0735\u0713\x03\x02\x02\x02\u0735\u0716\x03\x02\x02\x02\u0735\u0719\x03" + + "\x02\x02\x02\u0735\u071D\x03\x02\x02\x02\u0735\u071F\x03\x02\x02\x02\u0735" + + "\u0721\x03\x02\x02\x02\u0735\u0723\x03\x02\x02\x02\u0735\u0724\x03\x02" + + "\x02\x02\u0735\u0728\x03\x02\x02\x02\u0735\u0731\x03\x02\x02\x02\u0735" + + "\u0734\x03\x02\x02\x02\u0736]\x03\x02\x02\x02\u0737\u0738\x07\x8C\x02" + + "\x02\u0738\u073A\x05\u0290\u0149\x02\u0739\u073B\x05\u02E6\u0174\x02\u073A" + + "\u0739\x03\x02\x02\x02\u073A\u073B\x03\x02\x02\x02\u073B\u073E\x03\x02" + + "\x02\x02\u073C\u073D\x07p\x02\x02\u073D\u073F\t\x19\x02\x02\u073E\u073C" + + "\x03\x02\x02\x02\u073E\u073F\x03\x02\x02\x02\u073F\u0741\x03\x02\x02\x02" + + "\u0740\u0742\x05`1\x02\u0741\u0740\x03\x02\x02\x02\u0741\u0742\x03\x02" + + "\x02\x02\u0742_\x03\x02\x02\x02\u0743\u0744\x07y\x02\x02\u0744\u0745\x07" + + ".\x02\x02\u0745\u0749\x05b2\x02\u0746\u0747\x07y\x02\x02\u0747\u0748\x07" + + "\xBB\x02\x02\u0748\u074A\x05b2\x02\u0749\u0746\x03\x02\x02\x02\u0749\u074A" + + "\x03\x02\x02\x02\u074A\u0754\x03\x02\x02\x02\u074B\u074C\x07y\x02\x02" + + "\u074C\u074D\x07\xBB\x02\x02\u074D\u0751\x05b2\x02\u074E\u074F\x07y\x02" + + "\x02\u074F\u0750\x07.\x02\x02\u0750\u0752\x05b2\x02\u0751\u074E\x03\x02" + + "\x02\x02\u0751\u0752\x03\x02\x02\x02\u0752\u0754\x03\x02\x02\x02\u0753" + + "\u0743\x03\x02\x02\x02\u0753\u074B\x03\x02\x02\x02\u0754a\x03\x02\x02" + + "\x02\u0755\u075E\x07\x94\x02\x02\u0756\u075E\x07\x18\x02\x02\u0757\u0758" + + "\x07\x9D\x02\x02\u0758\u075E\x07v\x02\x02\u0759\u075A\x07\u01F8\x02\x02" + + "\u075A\u075E\x07\u0133\x02\x02\u075B\u075C\x07\x9D\x02\x02\u075C\u075E" + + "\x07,\x02\x02\u075D\u0755\x03\x02\x02\x02\u075D\u0756\x03\x02\x02\x02" + + "\u075D\u0757\x03\x02\x02\x02\u075D\u0759\x03\x02\x02\x02\u075D\u075B\x03" + + "\x02\x02\x02\u075Ec\x03\x02\x02\x02\u075F\u0761\x07\u017E\x02\x02\u0760" + + "\u0762\x07\u035B\x02\x02\u0761\u0760\x03\x02\x02\x02\u0761\u0762\x03\x02" + + "\x02\x02\u0762\u0764\x03\x02\x02\x02\u0763\u0765\x05\u02B8\u015D\x02\u0764" + + "\u0763\x03\x02\x02\x02\u0764\u0765\x03\x02\x02\x02\u0765\u0819\x03\x02" + + "\x02\x02\u0766\u0768\x07\u033B\x02\x02\u0767\u0769\x07\u035B\x02\x02\u0768" + + "\u0767\x03\x02\x02\x02\u0768\u0769\x03\x02\x02\x02\u0769\u076A\x03\x02" + + "\x02\x02\u076A\u0819\x07\u0374\x02\x02\u076B\u076D\x07\u013C\x02\x02\u076C" + + "\u076E\x07\u035B\x02\x02\u076D\u076C\x03\x02\x02\x02\u076D\u076E\x03\x02" + + "\x02\x02\u076E\u076F\x03\x02\x02\x02\u076F\u0819\x05\u02CC\u0167\x02\u0770" + + "\u0772\x07\u013D\x02\x02\u0771\u0773\x07\u035B\x02\x02\u0772\u0771\x03" + + "\x02\x02\x02\u0772\u0773\x03\x02\x02\x02\u0773\u0774\x03\x02\x02\x02\u0774" + + "\u0819\x05\u02CC\u0167\x02\u0775\u0777\x07\u013E\x02\x02\u0776\u0778\x07" + + "\u035B\x02\x02\u0777\u0776\x03\x02\x02\x02\u0777\u0778\x03\x02\x02\x02" + + "\u0778\u0779\x03\x02\x02\x02\u0779\u0819\x05\u02CC\u0167\x02\u077A\u077C" + + "\x07,\x02\x02\u077B\u077A\x03\x02\x02\x02\u077B\u077C\x03\x02\x02\x02" + + "\u077C\u077D\x03\x02\x02\x02\u077D\u077F\x058\x1D\x02\u077E\u0780\x07" + + "\u035B\x02\x02\u077F\u077E\x03\x02\x02\x02\u077F\u0780\x03\x02\x02\x02" + + "\u0780\u0783\x03\x02\x02\x02\u0781\u0784\x05\u02B4\u015B\x02\u0782\u0784" + + "\x07,\x02\x02\u0783\u0781\x03\x02\x02\x02\u0783\u0782\x03\x02\x02\x02" + + "\u0784\u0819\x03\x02\x02\x02\u0785\u0787\t\x1A\x02\x02\u0786\u0788\x07" + + "\u035B\x02\x02\u0787\u0786\x03\x02\x02\x02\u0787\u0788\x03\x02\x02\x02" + + "\u0788\u0789\x03\x02\x02\x02\u0789\u0819\t\x1B\x02\x02\u078A\u078C\x07" + + ",\x02\x02\u078B\u078A\x03\x02\x02\x02\u078B\u078C\x03\x02\x02\x02\u078C" + + "\u078D\x03\x02\x02\x02\u078D\u078F\x07\x1E\x02\x02\u078E\u0790\x07\u035B" + + "\x02\x02\u078F\u078E\x03\x02\x02\x02\u078F\u0790\x03\x02\x02\x02\u0790" + + "\u0791\x03\x02\x02\x02\u0791\u0819\x05\u02B6\u015C\x02\u0792\u0794\x07" + + "\u0156\x02\x02\u0793\u0795\x07\u035B\x02\x02\u0794\u0793\x03\x02\x02\x02" + + "\u0794\u0795\x03\x02\x02\x02\u0795\u0796\x03\x02\x02\x02\u0796\u0819\x07" + + "\u0374\x02\x02\u0797\u0799\x07\u015C\x02\x02\u0798\u079A\x07\u035B\x02" + + "\x02\u0799\u0798\x03\x02\x02\x02\u0799\u079A\x03\x02\x02\x02\u079A\u079B" + + "\x03\x02\x02\x02\u079B\u0819\t\x1C\x02\x02\u079C\u079E\x07\u015F\x02\x02" + + "\u079D\u079F\x07\u035B\x02\x02\u079E\u079D\x03\x02\x02\x02\u079E\u079F" + + "\x03\x02\x02\x02\u079F\u07A0\x03\x02\x02\x02\u07A0\u0819\x07\u0374\x02" + + "\x02\u07A1\u07A2\t\x1D\x02\x02\u07A2\u07A4\x07\u0171\x02\x02\u07A3\u07A5" + + "\x07\u035B\x02\x02\u07A4\u07A3\x03\x02\x02\x02\u07A4\u07A5\x03\x02\x02" + + "\x02\u07A5\u07A6\x03\x02\x02\x02\u07A6\u0819\x07\u0374\x02\x02\u07A7\u07A9" + + "\x07\u016F\x02\x02\u07A8\u07AA\x07\u035B\x02\x02\u07A9\u07A8\x03\x02\x02" + + "\x02\u07A9\u07AA\x03\x02\x02\x02\u07AA\u07AB\x03\x02\x02\x02\u07AB\u0819" + + "\t\x1B\x02\x02\u07AC\u07AE\x07\u017A\x02\x02\u07AD\u07AF\x07\u035B\x02" + + "\x02\u07AE\u07AD\x03\x02\x02\x02\u07AE\u07AF\x03\x02\x02\x02\u07AF\u07B0" + + "\x03\x02\x02\x02\u07B0\u0819\x07\u0374\x02\x02\u07B1\u07B3\t\x1E\x02\x02" + + "\u07B2\u07B4\x07\u035B\x02\x02\u07B3\u07B2\x03\x02\x02\x02\u07B3\u07B4" + + "\x03\x02\x02\x02\u07B4\u07B5\x03\x02\x02\x02\u07B5\u0819\t\x1B\x02\x02" + + "\u07B6\u07B8\t\x1F\x02\x02\u07B7\u07B9\x07\u035B\x02\x02\u07B8\u07B7\x03" + + "\x02\x02\x02\u07B8\u07B9\x03\x02\x02\x02\u07B9\u07BA\x03\x02\x02\x02\u07BA" + + "\u0819\x05\u02CC\u0167\x02\u07BB\u07BD\x07\u017B\x02\x02\u07BC\u07BE\x07" + + "\u035B\x02\x02\u07BD\u07BC\x03\x02\x02\x02\u07BD\u07BE\x03\x02\x02\x02" + + "\u07BE\u07BF\x03\x02\x02\x02\u07BF\u0819\x05\u02CC\u0167\x02\u07C0\u07C1" + + "\x07T\x02\x02\u07C1\u07C3\x07\u0171\x02\x02\u07C2\u07C4\x07\u035B\x02" + + "\x02\u07C3\u07C2\x03\x02\x02\x02\u07C3\u07C4\x03\x02\x02\x02\u07C4\u07C5" + + "\x03\x02\x02\x02\u07C5\u0819\x07\u0374\x02\x02\u07C6\u07C8\x07\u01B1\x02" + + "\x02\u07C7\u07C9\x07\u035B\x02\x02\u07C8\u07C7\x03\x02\x02\x02\u07C8\u07C9" + + "\x03\x02\x02\x02\u07C9\u07CA\x03\x02\x02\x02\u07CA\u0819\t \x02\x02\u07CB" + + "\u07CD\x07\u01BD\x02\x02\u07CC\u07CE\x07\u035B\x02\x02\u07CD\u07CC\x03" + + "\x02\x02\x02\u07CD\u07CE\x03\x02\x02\x02\u07CE\u07CF\x03\x02\x02\x02\u07CF" + + "\u0819\x05\u02CE\u0168\x02\u07D0\u07D2\x07\u01E2\x02\x02\u07D1\u07D3\x07" + + "\u035B\x02\x02\u07D2\u07D1\x03\x02\x02\x02\u07D2\u07D3\x03\x02\x02\x02" + + "\u07D3\u07D4\x03\x02\x02\x02\u07D4\u0819\x05\u02CC\u0167\x02\u07D5\u07D7" + + "\x07\u01EC\x02\x02\u07D6\u07D8\x07\u035B\x02\x02\u07D7\u07D6\x03\x02\x02" + + "\x02\u07D7\u07D8\x03\x02\x02\x02\u07D8\u07D9\x03\x02\x02\x02\u07D9\u0819" + + "\x05\u02CC\u0167\x02\u07DA\u07DC\x07\u020A\x02\x02\u07DB\u07DD\x07\u035B" + + "\x02\x02\u07DC\u07DB\x03\x02\x02\x02\u07DC\u07DD\x03\x02\x02\x02\u07DD" + + "\u07DE\x03\x02\x02\x02\u07DE\u0819\t\x0F\x02\x02\u07DF\u07E1\x07\u0213" + + "\x02\x02\u07E0\u07E2\x07\u035B\x02\x02\u07E1\u07E0\x03\x02\x02\x02\u07E1" + + "\u07E2\x03\x02\x02\x02\u07E2\u07E3\x03\x02\x02\x02\u07E3\u0819\x07\u0374" + + "\x02\x02\u07E4\u07E6\x07\u024E\x02\x02\u07E5\u07E7\x07\u035B\x02\x02\u07E6" + + "\u07E5\x03\x02\x02\x02\u07E6\u07E7\x03\x02\x02\x02\u07E7\u07E8\x03\x02" + + "\x02\x02\u07E8\u0819\t!\x02\x02\u07E9\u07EA\x07\u0282\x02\x02\u07EA\u0819" + + "\x07\u029A\x02\x02\u07EB\u07ED\x07\u0343\x02\x02\u07EC\u07EE\x07\u035B" + + "\x02\x02\u07ED\u07EC\x03\x02\x02\x02\u07ED\u07EE\x03\x02\x02\x02\u07EE" + + "\u07EF\x03\x02\x02\x02\u07EF\u0819\x07\u0374\x02\x02\u07F0\u07F2\x07\u0284" + + "\x02\x02\u07F1\u07F3\x07\u035B\x02\x02\u07F2\u07F1\x03\x02\x02\x02\u07F2" + + "\u07F3\x03\x02\x02\x02\u07F3\u07F4\x03\x02\x02\x02\u07F4\u0819\t\x0F\x02" + + "\x02\u07F5\u07F7\x07\u0285\x02\x02\u07F6\u07F8\x07\u035B\x02\x02\u07F7" + + "\u07F6\x03\x02\x02\x02\u07F7\u07F8\x03\x02\x02\x02\u07F8\u07F9\x03\x02" + + "\x02\x02\u07F9\u0819\t\x0F\x02\x02\u07FA\u07FC\x07\u0286\x02\x02\u07FB" + + "\u07FD\x07\u035B\x02\x02\u07FC\u07FB\x03\x02\x02\x02\u07FC\u07FD\x03\x02" + + "\x02\x02\u07FD\u0800\x03\x02\x02\x02\u07FE\u0801\x07,\x02\x02\u07FF\u0801" + + "\x05\u02CC\u0167\x02\u0800\u07FE\x03\x02\x02\x02\u0800\u07FF\x03\x02\x02" + + "\x02\u0801\u0819\x03\x02\x02\x02\u0802\u0803\x07\u0294\x02\x02\u0803\u0805" + + "\x05\u029E\u0150\x02\u0804\u0806\x05h5\x02\u0805\u0804\x03\x02\x02\x02" + + "\u0805\u0806\x03\x02\x02\x02\u0806\u0819\x03\x02\x02\x02\u0807\u0808\x07" + + "\u0295\x02\x02\u0808\u0809\x07\u035B\x02\x02\u0809\u0819\x05f4\x02\u080A" + + "\u0819\x05h5\x02\u080B\u080D\x07\u029B\x02\x02\u080C\u080E\x07\u035B\x02" + + "\x02\u080D\u080C\x03\x02\x02\x02\u080D\u080E\x03\x02\x02\x02\u080E\u080F" + + "\x03\x02\x02\x02\u080F\u0819\t\x1B\x02\x02\u0810\u0812\x07\xB7\x02\x02" + + "\u0811\u0813\x07\u035B\x02\x02\u0812\u0811\x03\x02\x02\x02\u0812\u0813" + + "\x03\x02\x02\x02\u0813\u0814\x03\x02\x02\x02\u0814\u0815\x07\u0364\x02" + + "\x02\u0815\u0816\x05\u028E\u0148\x02\u0816\u0817\x07\u0365\x02\x02\u0817" + + "\u0819\x03\x02\x02\x02\u0818\u075F\x03\x02\x02\x02\u0818\u0766\x03\x02" + + "\x02\x02\u0818\u076B\x03\x02\x02\x02\u0818\u0770\x03\x02\x02\x02\u0818" + + "\u0775\x03\x02\x02\x02\u0818\u077B\x03\x02\x02\x02\u0818\u0785\x03\x02" + + "\x02\x02\u0818\u078B\x03\x02\x02\x02\u0818\u0792\x03\x02\x02\x02\u0818" + + "\u0797\x03\x02\x02\x02\u0818\u079C\x03\x02\x02\x02\u0818\u07A1\x03\x02" + + "\x02\x02\u0818\u07A7\x03\x02\x02\x02\u0818\u07AC\x03\x02\x02\x02\u0818" + + "\u07B1\x03\x02\x02\x02\u0818\u07B6\x03\x02\x02\x02\u0818\u07BB\x03\x02" + + "\x02\x02\u0818\u07C0\x03\x02\x02\x02\u0818\u07C6\x03\x02\x02\x02\u0818" + + "\u07CB\x03\x02\x02\x02\u0818\u07D0\x03\x02\x02\x02\u0818\u07D5\x03\x02" + + "\x02\x02\u0818\u07DA\x03\x02\x02\x02\u0818\u07DF\x03\x02\x02\x02\u0818" + + "\u07E4\x03\x02\x02\x02\u0818\u07E9\x03\x02\x02\x02\u0818\u07EB\x03\x02" + + "\x02\x02\u0818\u07F0\x03\x02\x02\x02\u0818\u07F5\x03\x02\x02\x02\u0818" + + "\u07FA\x03\x02\x02\x02\u0818\u0802\x03\x02\x02\x02\u0818\u0807\x03\x02" + + "\x02\x02\u0818\u080A\x03\x02\x02\x02\u0818\u080B\x03\x02\x02\x02\u0818" + + "\u0810\x03\x02\x02\x02\u0819e\x03\x02\x02\x02\u081A\u081B\t\"\x02\x02" + + "\u081Bg\x03\x02\x02\x02\u081C\u081D\x07\u0289\x02\x02\u081D\u081E\t\x17" + + "\x02\x02\u081Ei\x03\x02\x02\x02\u081F\u0820\x07\x84\x02\x02\u0820\u0821" + + "\x07\x16\x02\x02\u0821\u0824\x05l7\x02\u0822\u0823\x07\u0212\x02\x02\u0823" + + "\u0825\x05\u02CC\u0167\x02\u0824\u0822\x03\x02\x02\x02\u0824\u0825\x03" + + "\x02\x02\x02\u0825\u082D\x03\x02\x02\x02\u0826\u0827\x07\u028E\x02\x02" + + "\u0827\u0828\x07\x16\x02\x02\u0828\u082B\x05n8\x02\u0829\u082A\x07\u028F" + + "\x02\x02\u082A\u082C\x05\u02CC\u0167\x02\u082B\u0829\x03\x02\x02\x02\u082B" + + "\u082C\x03\x02\x02\x02\u082C\u082E\x03\x02\x02\x02\u082D\u0826\x03\x02" + + "\x02\x02\u082D\u082E\x03\x02\x02\x02\u082E\u083A\x03\x02\x02\x02\u082F" + + "\u0830\x07\u0364\x02\x02\u0830\u0835\x05p9\x02\u0831\u0832\x07\u0366\x02" + + "\x02\u0832\u0834\x05p9\x02\u0833\u0831\x03\x02\x02\x02\u0834\u0837\x03" + + "\x02\x02\x02\u0835\u0833\x03\x02\x02\x02\u0835\u0836\x03\x02\x02\x02\u0836" + + "\u0838\x03\x02\x02\x02\u0837\u0835\x03\x02\x02\x02\u0838\u0839\x07\u0365" + + "\x02\x02\u0839\u083B\x03\x02\x02\x02\u083A\u082F\x03\x02\x02\x02\u083A" + + "\u083B\x03\x02\x02\x02\u083Bk\x03\x02\x02\x02\u083C\u083E\x07g\x02\x02" + + "\u083D\u083C\x03\x02\x02\x02\u083D\u083E\x03\x02\x02\x02\u083E\u083F\x03" + + "\x02\x02\x02\u083F\u0840\x07\u01A4\x02\x02\u0840\u0841\x07\u0364\x02\x02" + + "\u0841\u0842\x05\u0328\u0195\x02\u0842\u0843\x07\u0365\x02\x02\u0843\u086B" + + "\x03\x02\x02\x02\u0844\u0846\x07g\x02\x02\u0845\u0844\x03\x02\x02\x02" + + "\u0845\u0846\x03\x02\x02\x02\u0846\u0847\x03\x02\x02\x02\u0847\u084B\x07" + + "^\x02\x02\u0848\u0849\x07\u0136\x02\x02\u0849\u084A\x07\u035B\x02\x02" + + "\u084A\u084C\t#\x02\x02\u084B\u0848\x03\x02\x02\x02\u084B\u084C\x03\x02" + + "\x02\x02\u084C\u084D\x03\x02\x02\x02\u084D\u084F\x07\u0364\x02\x02\u084E" + + "\u0850\x05\u0298\u014D\x02\u084F\u084E\x03\x02\x02\x02\u084F\u0850\x03" + + "\x02\x02\x02\u0850\u0851\x03\x02\x02\x02\u0851\u086B\x07\u0365\x02\x02" + + "\u0852\u085C\x07\x88\x02\x02\u0853\u0854\x07\u0364\x02\x02\u0854\u0855" + + "\x05\u0328\u0195\x02\u0855\u0856\x07\u0365\x02\x02\u0856\u085D\x03\x02" + + "\x02\x02\u0857\u0858\x07\u0153\x02\x02\u0858\u0859\x07\u0364\x02\x02\u0859" + + "\u085A\x05\u0298\u014D\x02\u085A\u085B\x07\u0365\x02\x02\u085B\u085D\x03" + + "\x02\x02\x02\u085C\u0853\x03\x02\x02\x02\u085C\u0857\x03\x02\x02\x02\u085D" + + "\u086B\x03\x02\x02\x02\u085E\u0868\x07\u01C3\x02\x02\u085F\u0860\x07\u0364" + + "\x02\x02\u0860\u0861\x05\u0328\u0195\x02\u0861\u0862\x07\u0365\x02\x02" + + "\u0862\u0869\x03\x02\x02\x02\u0863\u0864\x07\u0153\x02\x02\u0864\u0865" + + "\x07\u0364\x02\x02\u0865\u0866\x05\u0298\u014D\x02\u0866\u0867\x07\u0365" + + "\x02\x02\u0867\u0869\x03\x02\x02\x02\u0868\u085F\x03\x02\x02\x02\u0868" + + "\u0863\x03\x02\x02\x02\u0869\u086B\x03\x02\x02\x02\u086A\u083D\x03\x02" + + "\x02\x02\u086A\u0845\x03\x02\x02\x02\u086A\u0852\x03\x02\x02\x02\u086A" + + "\u085E\x03\x02\x02\x02\u086Bm\x03\x02\x02\x02\u086C\u086E\x07g\x02\x02" + + "\u086D\u086C\x03\x02\x02\x02\u086D\u086E\x03\x02\x02\x02\u086E\u086F\x03" + + "\x02\x02\x02\u086F\u0870\x07\u01A4\x02\x02\u0870\u0871\x07\u0364\x02\x02" + + "\u0871\u0872\x05\u0328\u0195\x02\u0872\u0873\x07\u0365\x02\x02\u0873\u0882" + + "\x03\x02\x02\x02\u0874\u0876\x07g\x02\x02\u0875\u0874\x03\x02\x02\x02" + + "\u0875\u0876\x03\x02\x02\x02\u0876\u0877\x03\x02\x02\x02\u0877\u087B\x07" + + "^\x02\x02\u0878\u0879\x07\u0136\x02\x02\u0879\u087A\x07\u035B\x02\x02" + + "\u087A\u087C\t#\x02\x02\u087B\u0878\x03\x02\x02\x02\u087B\u087C\x03\x02" + + "\x02\x02\u087C\u087D\x03\x02\x02\x02\u087D\u087E\x07\u0364\x02\x02\u087E" + + "\u087F\x05\u0298\u014D\x02\u087F\u0880\x07\u0365\x02\x02\u0880\u0882\x03" + + "\x02\x02\x02\u0881\u086D\x03\x02\x02\x02\u0881\u0875\x03\x02\x02\x02\u0882" + + "o\x03\x02\x02\x02\u0883\u0884\x07\x84\x02\x02\u0884\u0885\x05\u02A4\u0153" + + "\x02\u0885\u0886\x07\xBF\x02\x02\u0886\u0887\x07\u01C1\x02\x02\u0887\u0888" + + "\x07\u0298\x02\x02\u0888\u0889\x07\u0364\x02\x02\u0889\u088E\x05r:\x02" + + "\u088A\u088B\x07\u0366\x02\x02\u088B\u088D\x05r:\x02\u088C\u088A\x03\x02" + + "\x02\x02\u088D\u0890\x03\x02\x02\x02\u088E\u088C\x03\x02\x02\x02\u088E" + + "\u088F\x03\x02\x02\x02\u088F\u0891\x03\x02\x02\x02\u0890\u088E\x03\x02" + + "\x02\x02\u0891\u0895\x07\u0365\x02\x02\u0892\u0894\x05x=\x02\u0893\u0892" + + "\x03\x02\x02\x02\u0894\u0897\x03\x02\x02\x02\u0895\u0893\x03\x02\x02\x02" + + "\u0895\u0896\x03\x02\x02\x02\u0896\u08A3\x03\x02\x02\x02\u0897\u0895\x03" + + "\x02\x02\x02\u0898\u0899\x07\u0364\x02\x02\u0899\u089E\x05v<\x02\u089A" + + "\u089B\x07\u0366\x02\x02\u089B\u089D\x05v<\x02\u089C\u089A\x03\x02\x02" + + "\x02\u089D\u08A0\x03\x02\x02\x02\u089E\u089C\x03\x02\x02\x02\u089E\u089F" + + "\x03\x02\x02\x02\u089F\u08A1\x03\x02\x02\x02\u08A0\u089E\x03\x02\x02\x02" + + "\u08A1\u08A2\x07\u0365\x02\x02\u08A2\u08A4\x03\x02\x02\x02\u08A3\u0898" + + "\x03\x02\x02\x02\u08A3\u08A4\x03\x02\x02\x02\u08A4\u0916\x03\x02\x02\x02" + + "\u08A5\u08A6\x07\x84\x02\x02\u08A6\u08A7\x05\u02A4\u0153\x02\u08A7\u08A8" + + "\x07\xBF\x02\x02\u08A8\u08A9\x07\u01C1\x02\x02\u08A9\u08AA\x07\u0298\x02" + + "\x02\u08AA\u08AE\x05r:\x02\u08AB\u08AD\x05x=\x02\u08AC\u08AB\x03\x02\x02" + + "\x02\u08AD\u08B0\x03\x02\x02\x02\u08AE\u08AC\x03\x02\x02\x02\u08AE\u08AF" + + "\x03\x02\x02\x02\u08AF\u08BC\x03\x02\x02\x02\u08B0\u08AE\x03\x02\x02\x02" + + "\u08B1\u08B2\x07\u0364\x02\x02\u08B2\u08B7\x05v<\x02\u08B3\u08B4\x07\u0366" + + "\x02\x02\u08B4\u08B6\x05v<\x02\u08B5\u08B3\x03\x02\x02\x02\u08B6\u08B9" + + "\x03\x02\x02\x02\u08B7\u08B5\x03\x02\x02\x02\u08B7\u08B8\x03\x02\x02\x02" + + "\u08B8\u08BA\x03\x02\x02\x02\u08B9\u08B7\x03\x02\x02\x02\u08BA\u08BB\x07" + + "\u0365\x02\x02\u08BB\u08BD\x03\x02\x02\x02\u08BC\u08B1\x03\x02\x02\x02" + + "\u08BC\u08BD\x03\x02\x02\x02\u08BD\u0916\x03\x02\x02\x02\u08BE\u08BF\x07" + + "\x84\x02\x02\u08BF\u08C0\x05\u02A4\u0153\x02\u08C0\u08C1\x07\xBF\x02\x02" + + "\u08C1\u08C2\x07R\x02\x02\u08C2\u08C3\x07\u0364\x02\x02\u08C3\u08C8\x05" + + "r:\x02\u08C4\u08C5\x07\u0366\x02\x02\u08C5\u08C7\x05r:\x02\u08C6\u08C4" + + "\x03\x02\x02\x02\u08C7\u08CA\x03\x02\x02\x02\u08C8\u08C6\x03\x02\x02\x02" + + "\u08C8\u08C9\x03\x02\x02\x02\u08C9\u08CB\x03\x02\x02\x02\u08CA\u08C8\x03" + + "\x02\x02\x02\u08CB\u08CF\x07\u0365\x02\x02\u08CC\u08CE\x05x=\x02\u08CD" + + "\u08CC\x03\x02\x02\x02\u08CE\u08D1\x03\x02\x02\x02\u08CF\u08CD\x03\x02" + + "\x02\x02\u08CF\u08D0\x03\x02\x02\x02\u08D0\u08DD\x03\x02\x02\x02\u08D1" + + "\u08CF\x03\x02\x02\x02\u08D2\u08D3\x07\u0364\x02\x02\u08D3\u08D8\x05v" + + "<\x02\u08D4\u08D5\x07\u0366\x02\x02\u08D5\u08D7\x05v<\x02\u08D6\u08D4" + + "\x03\x02\x02\x02\u08D7\u08DA\x03\x02\x02\x02\u08D8\u08D6\x03\x02\x02\x02" + + "\u08D8\u08D9\x03\x02\x02\x02\u08D9\u08DB\x03\x02\x02\x02\u08DA\u08D8\x03" + + "\x02\x02\x02\u08DB\u08DC\x07\u0365\x02\x02\u08DC\u08DE\x03\x02\x02\x02" + + "\u08DD\u08D2\x03\x02\x02\x02\u08DD\u08DE\x03\x02\x02\x02\u08DE\u0916\x03" + + "\x02\x02\x02\u08DF\u08E0\x07\x84\x02\x02\u08E0\u08E1\x05\u02A4\u0153\x02" + + "\u08E1\u08E2\x07\xBF\x02\x02\u08E2\u08E3\x07R\x02\x02\u08E3\u08E4\x07" + + "\u0364\x02\x02\u08E4\u08E9\x05t;\x02\u08E5\u08E6\x07\u0366\x02\x02\u08E6" + + "\u08E8\x05t;\x02\u08E7\u08E5\x03\x02\x02\x02\u08E8\u08EB\x03\x02\x02\x02" + + "\u08E9\u08E7\x03\x02\x02\x02\u08E9\u08EA\x03\x02\x02\x02\u08EA\u08EC\x03" + + "\x02\x02\x02\u08EB\u08E9\x03\x02\x02\x02\u08EC\u08F0\x07\u0365\x02\x02" + + "\u08ED\u08EF\x05x=\x02\u08EE\u08ED\x03\x02\x02\x02\u08EF\u08F2\x03\x02" + + "\x02\x02\u08F0\u08EE\x03\x02\x02\x02\u08F0\u08F1\x03\x02\x02\x02\u08F1" + + "\u08FE\x03\x02\x02\x02\u08F2\u08F0\x03\x02\x02\x02\u08F3\u08F4\x07\u0364" + + "\x02\x02\u08F4\u08F9\x05v<\x02\u08F5\u08F6\x07\u0366\x02\x02\u08F6\u08F8" + + "\x05v<\x02\u08F7\u08F5\x03\x02\x02\x02\u08F8\u08FB\x03\x02\x02\x02\u08F9" + + "\u08F7\x03\x02\x02\x02\u08F9\u08FA\x03\x02\x02\x02\u08FA\u08FC\x03\x02" + + "\x02\x02\u08FB\u08F9\x03\x02\x02\x02\u08FC\u08FD\x07\u0365\x02\x02\u08FD" + + "\u08FF\x03\x02\x02\x02\u08FE\u08F3\x03\x02\x02\x02\u08FE\u08FF\x03\x02" + + "\x02\x02\u08FF\u0916\x03\x02\x02\x02\u0900\u0901\x07\x84\x02\x02\u0901" + + "\u0905\x05\u02A4\u0153\x02\u0902\u0904\x05x=\x02\u0903\u0902\x03\x02\x02" + + "\x02\u0904\u0907\x03\x02\x02\x02\u0905\u0903\x03\x02\x02\x02\u0905\u0906" + + "\x03\x02\x02\x02\u0906\u0913\x03\x02\x02\x02\u0907\u0905\x03\x02\x02\x02" + + "\u0908\u0909\x07\u0364\x02\x02\u0909\u090E\x05v<\x02\u090A\u090B\x07\u0366" + + "\x02\x02\u090B\u090D\x05v<\x02\u090C\u090A\x03\x02\x02\x02\u090D\u0910" + + "\x03\x02\x02\x02\u090E\u090C\x03\x02\x02\x02\u090E\u090F\x03\x02\x02\x02" + + "\u090F\u0911\x03\x02\x02\x02\u0910\u090E\x03\x02\x02\x02\u0911\u0912\x07" + + "\u0365\x02\x02\u0912\u0914\x03\x02\x02\x02\u0913\u0908\x03\x02\x02\x02" + + "\u0913\u0914\x03\x02\x02\x02\u0914\u0916\x03\x02\x02\x02\u0915\u0883\x03" + + "\x02\x02\x02\u0915\u08A5\x03\x02\x02\x02\u0915\u08BE\x03\x02\x02\x02\u0915" + + "\u08DF\x03\x02\x02\x02\u0915\u0900\x03\x02\x02\x02\u0916q\x03\x02\x02" + + "\x02\u0917\u091B\x05\u02D8\u016D\x02\u0918\u091B\x05\u0328\u0195\x02\u0919" + + "\u091B\x07q\x02\x02\u091A\u0917\x03\x02\x02\x02\u091A\u0918\x03\x02\x02" + + "\x02\u091A\u0919\x03\x02\x02\x02\u091Bs\x03\x02\x02\x02\u091C\u091D\x07" + + "\u0364\x02\x02\u091D\u0920\x05r:\x02\u091E\u091F\x07\u0366\x02\x02\u091F" + + "\u0921\x05r:\x02\u0920\u091E\x03\x02\x02\x02\u0921\u0922\x03\x02\x02\x02" + + "\u0922\u0920\x03\x02\x02\x02\u0922\u0923\x03\x02\x02\x02\u0923\u0924\x03" + + "\x02\x02\x02\u0924\u0925\x07\u0365\x02\x02\u0925u\x03\x02\x02\x02\u0926" + + "\u0927\x07\u028E\x02\x02\u0927\u092B\x05\u02C6\u0164\x02\u0928\u092A\x05" + + "x=\x02\u0929\u0928\x03\x02\x02\x02\u092A\u092D\x03\x02\x02\x02\u092B\u0929" + + "\x03\x02\x02\x02\u092B\u092C\x03\x02\x02\x02\u092Cw\x03\x02\x02\x02\u092D" + + "\u092B\x03\x02\x02\x02\u092E\u0930\x07,\x02\x02\u092F\u092E\x03\x02\x02" + + "\x02\u092F\u0930\x03\x02\x02\x02\u0930\u0932\x03\x02\x02\x02\u0931\u0933" + + "\x07\u0289\x02\x02\u0932\u0931\x03\x02\x02\x02\u0932\u0933\x03\x02\x02" + + "\x02\u0933\u0934\x03\x02\x02\x02\u0934\u0936\x07\u017E\x02\x02\u0935\u0937" + + "\x07\u035B\x02\x02\u0936\u0935\x03\x02\x02\x02\u0936\u0937\x03\x02\x02" + + "\x02\u0937\u0938\x03\x02\x02\x02\u0938\u095F\x05\u02B8\u015D\x02\u0939" + + "\u093B\x07\u0156\x02\x02\u093A\u093C\x07\u035B\x02\x02\u093B\u093A\x03" + + "\x02\x02\x02\u093B\u093C\x03\x02\x02\x02\u093C\u093D\x03\x02\x02\x02\u093D" + + "\u095F\x07\u0374\x02\x02\u093E\u093F\x07\u016A\x02\x02\u093F\u0941\x07" + + "\u0171\x02\x02\u0940\u0942\x07\u035B\x02\x02\u0941\u0940\x03\x02\x02\x02" + + "\u0941\u0942\x03\x02\x02\x02\u0942\u0943\x03\x02\x02\x02\u0943\u095F\x07" + + "\u0374\x02\x02\u0944\u0945\x07T\x02\x02\u0945\u0947\x07\u0171\x02\x02" + + "\u0946\u0948\x07\u035B\x02\x02\u0947\u0946\x03\x02\x02\x02\u0947\u0948" + + "\x03\x02\x02\x02\u0948\u0949\x03\x02\x02\x02\u0949\u095F\x07\u0374\x02" + + "\x02\u094A\u094C\x07\u01E2\x02\x02\u094B\u094D\x07\u035B\x02\x02\u094C" + + "\u094B\x03\x02\x02\x02\u094C\u094D\x03\x02\x02\x02\u094D\u094E\x03\x02" + + "\x02\x02\u094E\u095F\x05\u02CC\u0167\x02\u094F\u0951\x07\u01EC\x02\x02" + + "\u0950\u0952\x07\u035B\x02\x02\u0951\u0950\x03\x02\x02\x02\u0951\u0952" + + "\x03\x02\x02\x02\u0952\u0953\x03\x02\x02\x02\u0953\u095F\x05\u02CC\u0167" + + "\x02\u0954\u0956\x07\u0294\x02\x02\u0955\u0957\x07\u035B\x02\x02\u0956" + + "\u0955\x03\x02\x02\x02\u0956\u0957\x03\x02\x02\x02\u0957\u0958\x03\x02" + + "\x02\x02\u0958\u095F\x05\u029E\u0150\x02\u0959\u095B\x07\u01FA\x02\x02" + + "\u095A\u095C\x07\u035B\x02\x02\u095B\u095A\x03\x02\x02\x02\u095B\u095C" + + "\x03\x02\x02\x02\u095C\u095D\x03\x02\x02\x02\u095D\u095F\x05\u02C6\u0164" + + "\x02\u095E\u092F\x03\x02\x02\x02\u095E\u0939\x03\x02\x02\x02\u095E\u093E" + + "\x03\x02\x02\x02\u095E\u0944\x03\x02\x02\x02\u095E\u094A\x03\x02\x02\x02" + + "\u095E\u094F\x03\x02\x02\x02\u095E\u0954\x03\x02\x02\x02\u095E\u0959\x03" + + "\x02\x02\x02\u095Fy\x03\x02\x02\x02\u0960\u0961\x07\n\x02\x02\u0961\u0963" + + "\t\x02\x02\x02\u0962\u0964\x05\u0278\u013D\x02\u0963\u0962\x03\x02\x02" + + "\x02\u0963\u0964\x03\x02\x02\x02\u0964\u0966\x03\x02\x02\x02\u0965\u0967" + + "\x056\x1C\x02\u0966\u0965\x03\x02\x02\x02\u0967\u0968\x03\x02\x02\x02" + + "\u0968\u0966\x03\x02\x02\x02\u0968\u0969\x03\x02\x02\x02\u0969\u0973\x03" + + "\x02\x02\x02\u096A\u096B\x07\n\x02\x02\u096B\u096C\t\x02\x02\x02\u096C" + + "\u096D\x05\u0278\u013D\x02\u096D\u096E\x07\u02A7\x02\x02\u096E\u096F\x07" + + "\u016A\x02\x02\u096F\u0970\x07\u0171\x02\x02\u0970\u0971\x07\u01F2\x02" + + "\x02\u0971\u0973\x03\x02\x02\x02\u0972\u0960\x03\x02\x02\x02\u0972\u096A" + + "\x03\x02\x02\x02\u0973{\x03\x02\x02\x02\u0974\u0976\x07\n\x02\x02\u0975" + + "\u0977\x05<\x1F\x02\u0976\u0975\x03\x02\x02\x02\u0976\u0977\x03\x02\x02" + + "\x02\u0977\u0978\x03\x02\x02\x02\u0978\u0979\x07\u0183\x02\x02\u0979\u097D" + + "\x05\u02C2\u0162\x02\u097A\u097B\x07y\x02\x02\u097B\u097C\x07\u0250\x02" + + "\x02\u097C\u097E\x05> \x02\u097D\u097A\x03\x02\x02\x02\u097D\u097E\x03" + + "\x02\x02\x02\u097E\u0985\x03\x02\x02\x02\u097F\u0980\x07y\x02\x02\u0980" + + "\u0982\x07\u0159\x02\x02\u0981\u0983\x07t\x02\x02\u0982\u0981\x03\x02" + + "\x02\x02\u0982\u0983\x03\x02\x02\x02\u0983\u0984\x03\x02\x02\x02\u0984" + + "\u0986\x07\u021F\x02\x02\u0985\u097F\x03\x02\x02\x02\u0985\u0986\x03\x02" + + "\x02\x02\u0986\u098A\x03\x02\x02\x02\u0987\u0988\x07\x8F\x02\x02\u0988" + + "\u0989\x07\xB2\x02\x02\u0989\u098B\x05\u02C2\u0162\x02\u098A\u0987\x03" + + "\x02\x02\x02\u098A\u098B\x03\x02\x02\x02\u098B\u098D\x03\x02\x02\x02\u098C" + + "\u098E\x05F$\x02\u098D\u098C\x03\x02\x02\x02\u098D\u098E\x03\x02\x02\x02" + + "\u098E\u0991\x03\x02\x02\x02\u098F\u0990\x07\u0156\x02\x02\u0990\u0992" + + "\x07\u0374\x02\x02\u0991\u098F\x03\x02\x02\x02\u0991\u0992\x03\x02\x02" + + "\x02\u0992\u0995\x03\x02\x02\x02\u0993\u0994\x07\u0175\x02\x02\u0994\u0996" + + "\x05\u01A8\xD5\x02\u0995\u0993\x03\x02\x02\x02\u0995\u0996\x03\x02\x02" + + "\x02\u0996}\x03\x02\x02\x02\u0997\u0998\x07\n\x02\x02\u0998\u0999\x07" + + "\u019B\x02\x02\u0999\u099D\x05\u027C\u013F\x02\u099A\u099C\x05N(\x02\u099B"; + private static readonly _serializedATNSegment7: string = + "\u099A\x03\x02\x02\x02\u099C\u099F\x03\x02\x02\x02\u099D\u099B\x03\x02" + + "\x02\x02\u099D\u099E\x03\x02\x02\x02\u099E\x7F\x03\x02\x02\x02\u099F\u099D" + + "\x03\x02\x02\x02\u09A0\u09A1\x07\n\x02\x02\u09A1\u09A2\x07\u01B3\x02\x02" + + "\u09A2\u09A3\x07\u024B\x02\x02\u09A3\u09A4\x07\u0323\x02\x02\u09A4\u09A5" + + "\x07\u01C7\x02\x02\u09A5\u09A6\x07^\x02\x02\u09A6\x81\x03\x02\x02\x02" + + "\u09A7\u09A8\x07\n\x02\x02\u09A8\u09A9\x07\u01C5\x02\x02\u09A9\u09AA\x07" + + "L\x02\x02\u09AA\u09AB\x05\u02C6\u0164\x02\u09AB\u09AC\x07\b\x02\x02\u09AC" + + "\u09AD\x07\u02A1\x02\x02\u09AD\u09B3\x07\u0374\x02\x02\u09AE\u09B0\x07" + + "\u01AE\x02\x02\u09AF\u09B1\x07\u035B\x02\x02\u09B0\u09AF\x03\x02\x02\x02" + + "\u09B0\u09B1\x03\x02\x02\x02\u09B1\u09B2\x03\x02\x02\x02\u09B2\u09B4\x05" + + "\u02CE\u0168\x02\u09B3\u09AE\x03\x02\x02\x02\u09B3\u09B4\x03\x02\x02\x02" + + "\u09B4\u09B6\x03\x02\x02\x02\u09B5\u09B7\x07\u02B1\x02\x02\u09B6\u09B5" + + "\x03\x02\x02\x02\u09B6\u09B7\x03\x02\x02\x02\u09B7\u09B8\x03\x02\x02\x02" + + "\u09B8\u09BA\x07\u017E\x02\x02\u09B9\u09BB\x07\u035B\x02\x02\u09BA\u09B9" + + "\x03\x02\x02\x02\u09BA\u09BB\x03\x02\x02\x02\u09BB\u09BC\x03\x02\x02\x02" + + "\u09BC\u09BD\x05\u02B8\u015D\x02\u09BD\x83\x03\x02\x02\x02\u09BE\u09BF" + + "\x07\n\x02\x02\u09BF\u09C0\x07\x86\x02\x02\u09C0\u09C4\x05\u02C2\u0162" + + "\x02\u09C1\u09C3\x05N(\x02\u09C2\u09C1\x03\x02\x02\x02\u09C3\u09C6\x03" + + "\x02\x02\x02\u09C4\u09C2\x03\x02\x02\x02\u09C4\u09C5\x03\x02\x02\x02\u09C5" + + "\x85\x03\x02\x02\x02\u09C6\u09C4\x03\x02\x02\x02\u09C7\u09C8\x07\n\x02" + + "\x02\u09C8\u09C9\x07\u0252\x02\x02\u09C9\u09CA\x05\u02C6\u0164\x02\u09CA" + + "\u09CB\x07\u0208\x02\x02\u09CB\u09CC\x07\u0364\x02\x02\u09CC\u09D1\x05" + + "P)\x02\u09CD\u09CE\x07\u0366\x02\x02\u09CE\u09D0\x05P)\x02\u09CF\u09CD" + + "\x03\x02\x02\x02\u09D0\u09D3\x03\x02\x02\x02\u09D1\u09CF\x03\x02\x02\x02" + + "\u09D1\u09D2\x03\x02\x02\x02\u09D2\u09D4\x03\x02\x02\x02\u09D3\u09D1\x03" + + "\x02\x02\x02\u09D4\u09D5\x07\u0365\x02\x02\u09D5\x87\x03\x02\x02\x02\u09D6" + + "\u09D7\x07\n\x02\x02\u09D7\u09D8\x07\xAF\x02\x02\u09D8\u09E1\x05\u0290" + + "\u0149\x02\u09D9\u09DE\x05\x8EH\x02\u09DA\u09DB\x07\u0366\x02\x02\u09DB" + + "\u09DD\x05\x8EH\x02\u09DC\u09DA\x03\x02\x02\x02\u09DD\u09E0\x03\x02\x02" + + "\x02\u09DE\u09DC\x03\x02\x02\x02\u09DE\u09DF\x03\x02\x02\x02\u09DF\u09E2" + + "\x03\x02\x02\x02\u09E0\u09DE\x03\x02\x02\x02\u09E1\u09D9\x03\x02\x02\x02" + + "\u09E1\u09E2\x03\x02\x02\x02\u09E2\u09EA\x03\x02\x02\x02\u09E3\u09E7\x05" + + "\x90I\x02\u09E4\u09E6\x05\x90I\x02\u09E5\u09E4\x03\x02\x02\x02\u09E6\u09E9" + + "\x03\x02\x02\x02\u09E7\u09E5\x03\x02\x02\x02\u09E7\u09E8\x03\x02\x02\x02" + + "\u09E8\u09EB\x03\x02\x02\x02\u09E9\u09E7\x03\x02\x02\x02\u09EA\u09E3\x03" + + "\x02\x02\x02\u09EA\u09EB\x03\x02\x02\x02\u09EB\x89\x03\x02\x02\x02\u09EC" + + "\u09EE\x07\n\x02\x02\u09ED\u09EF\x07\xB6\x02\x02\u09EE\u09ED\x03\x02\x02" + + "\x02\u09EE\u09EF\x03\x02\x02\x02\u09EF\u09F0\x03\x02\x02\x02\u09F0\u09F1" + + "\x07\u0294\x02\x02\u09F1\u09F2\x05\u029E\u0150\x02\u09F2\u09F3\t$\x02" + + "\x02\u09F3\u09F4\x07\u016B\x02\x02\u09F4\u09FA\x07\u0374\x02\x02\u09F5" + + "\u09F7\x07\u01AE\x02\x02\u09F6\u09F8\x07\u035B\x02\x02\u09F7\u09F6\x03" + + "\x02\x02\x02\u09F7\u09F8\x03\x02\x02\x02\u09F8\u09F9\x03\x02\x02\x02\u09F9" + + "\u09FB\x05\u02CE\u0168\x02\u09FA\u09F5\x03\x02\x02\x02\u09FA\u09FB\x03" + + "\x02\x02\x02\u09FB\u09FD\x03\x02\x02\x02\u09FC\u09FE\x07\u02B1\x02\x02" + + "\u09FD\u09FC\x03\x02\x02\x02\u09FD\u09FE\x03\x02\x02\x02\u09FE\u0A02\x03" + + "\x02\x02\x02\u09FF\u0A00\x07\x8F\x02\x02\u0A00\u0A01\x07\xB2\x02\x02\u0A01" + + "\u0A03\x05\u029C\u014F\x02\u0A02\u09FF\x03\x02\x02\x02\u0A02\u0A03\x03" + + "\x02\x02\x02\u0A03\u0A09\x03\x02\x02\x02\u0A04\u0A06\x07\u013C\x02\x02" + + "\u0A05\u0A07\x07\u035B\x02\x02\u0A06\u0A05\x03\x02\x02\x02\u0A06\u0A07" + + "\x03\x02\x02\x02\u0A07\u0A08\x03\x02\x02\x02\u0A08\u0A0A\x05\u02CE\u0168" + + "\x02\u0A09\u0A04\x03\x02\x02\x02\u0A09\u0A0A\x03\x02\x02\x02\u0A0A\u0A0D" + + "\x03\x02\x02\x02\u0A0B\u0A0C\x07\x9D\x02\x02\u0A0C\u0A0E\t%\x02\x02\u0A0D" + + "\u0A0B\x03\x02\x02\x02\u0A0D\u0A0E\x03\x02\x02\x02\u0A0E\u0A14\x03\x02" + + "\x02\x02\u0A0F\u0A11\x07\u017A\x02\x02\u0A10\u0A12\x07\u035B\x02\x02\u0A11" + + "\u0A10\x03\x02\x02\x02\u0A11\u0A12\x03\x02\x02\x02\u0A12\u0A13\x03\x02" + + "\x02\x02\u0A13\u0A15\x07\u0374\x02\x02\u0A14\u0A0F\x03\x02\x02\x02\u0A14" + + "\u0A15\x03\x02\x02\x02\u0A15\u0A1B\x03\x02\x02\x02\u0A16\u0A18\x07\u017E" + + "\x02\x02\u0A17\u0A19\x07\u035B\x02\x02\u0A18\u0A17\x03\x02\x02\x02\u0A18" + + "\u0A19\x03\x02\x02\x02\u0A19\u0A1A\x03\x02\x02\x02\u0A1A\u0A1C\x05\u02B8" + + "\u015D\x02\u0A1B\u0A16\x03\x02\x02\x02\u0A1B\u0A1C\x03\x02\x02\x02\u0A1C" + + "\u0A22\x03\x02\x02\x02\u0A1D\u0A1F\x07\u033B\x02\x02\u0A1E\u0A20\x07\u035B" + + "\x02\x02\u0A1F\u0A1E\x03\x02\x02\x02\u0A1F\u0A20\x03\x02\x02\x02\u0A20" + + "\u0A21\x03\x02\x02\x02\u0A21\u0A23\x07\u0374\x02\x02\u0A22\u0A1D\x03\x02" + + "\x02\x02\u0A22\u0A23\x03\x02\x02\x02\u0A23\x8B\x03\x02\x02\x02\u0A24\u0A28" + + "\x07\n\x02\x02\u0A25\u0A26\x07\u0136\x02\x02\u0A26\u0A27\x07\u035B\x02" + + "\x02\u0A27\u0A29\t\f\x02\x02\u0A28\u0A25\x03\x02\x02\x02\u0A28\u0A29\x03" + + "\x02\x02\x02\u0A29\u0A2B\x03\x02\x02\x02\u0A2A\u0A2C\x05<\x1F\x02\u0A2B" + + "\u0A2A\x03\x02\x02\x02\u0A2B\u0A2C\x03\x02\x02\x02\u0A2C\u0A30\x03\x02" + + "\x02\x02\u0A2D\u0A2E\x07\xA4\x02\x02\u0A2E\u0A2F\x07\u0251\x02\x02\u0A2F" + + "\u0A31\t\r\x02\x02\u0A30\u0A2D\x03\x02\x02\x02\u0A30\u0A31\x03\x02\x02" + + "\x02\u0A31\u0A32\x03\x02\x02\x02\u0A32\u0A33\x07\u02AE\x02\x02\u0A33\u0A38" + + "\x05\u0280\u0141\x02\u0A34\u0A35\x07\u0364\x02\x02\u0A35\u0A36\x05\u0298" + + "\u014D\x02\u0A36\u0A37\x07\u0365\x02\x02\u0A37\u0A39\x03\x02\x02\x02\u0A38" + + "\u0A34\x03\x02\x02\x02\u0A38\u0A39\x03\x02\x02\x02\u0A39\u0A3A\x03\x02" + + "\x02\x02\u0A3A\u0A3B\x07\x0F\x02\x02\u0A3B\u0A42\x05\xCEh\x02\u0A3C\u0A3E" + + "\x07\xC4\x02\x02\u0A3D\u0A3F\t\x0E\x02\x02\u0A3E\u0A3D\x03\x02\x02\x02" + + "\u0A3E\u0A3F\x03\x02\x02\x02\u0A3F\u0A40\x03\x02\x02\x02\u0A40\u0A41\x07" + + "\x1D\x02\x02\u0A41\u0A43\x07{\x02\x02\u0A42\u0A3C\x03\x02\x02\x02\u0A42" + + "\u0A43\x03\x02\x02\x02\u0A43\x8D\x03\x02\x02\x02\u0A44\u0A4B\x05d3\x02" + + "\u0A45\u0A47\x07\u0366\x02\x02\u0A46\u0A45\x03\x02\x02\x02\u0A46\u0A47" + + "\x03\x02\x02\x02\u0A47\u0A48\x03\x02\x02\x02\u0A48\u0A4A\x05d3\x02\u0A49" + + "\u0A46\x03\x02\x02\x02\u0A4A\u0A4D\x03\x02\x02\x02\u0A4B\u0A49\x03\x02" + + "\x02\x02\u0A4B\u0A4C\x03\x02\x02\x02\u0A4C\u0B4D\x03\x02\x02\x02\u0A4D" + + "\u0A4B\x03\x02\x02\x02\u0A4E\u0A50\x07\b\x02\x02\u0A4F\u0A51\x07\x1F\x02" + + "\x02\u0A50\u0A4F\x03\x02\x02\x02\u0A50\u0A51\x03\x02\x02\x02\u0A51\u0A52" + + "\x03\x02\x02\x02\u0A52\u0A53\x05\u029A\u014E\x02\u0A53\u0A57\x05Z.\x02" + + "\u0A54\u0A58\x07\u0194\x02\x02\u0A55\u0A56\x07\u0134\x02\x02\u0A56\u0A58" + + "\x05\u029A\u014E\x02\u0A57\u0A54\x03\x02\x02\x02\u0A57\u0A55\x03\x02\x02" + + "\x02\u0A57\u0A58\x03\x02\x02\x02\u0A58\u0B4D\x03\x02\x02\x02\u0A59\u0A5B" + + "\x07\b\x02\x02\u0A5A\u0A5C\x07\x1F\x02\x02\u0A5B\u0A5A\x03\x02\x02\x02" + + "\u0A5B\u0A5C\x03\x02\x02\x02\u0A5C\u0A5D\x03\x02\x02\x02\u0A5D\u0A5E\x07" + + "\u0364\x02\x02\u0A5E\u0A5F\x05\u029A\u014E\x02\u0A5F\u0A66\x05Z.\x02\u0A60" + + "\u0A61\x07\u0366\x02\x02\u0A61\u0A62\x05\u029A\u014E\x02\u0A62\u0A63\x05" + + "Z.\x02\u0A63\u0A65\x03\x02\x02\x02\u0A64\u0A60\x03\x02\x02\x02\u0A65\u0A68" + + "\x03\x02\x02\x02\u0A66\u0A64\x03\x02\x02\x02\u0A66\u0A67\x03\x02\x02\x02" + + "\u0A67\u0A69\x03\x02\x02\x02\u0A68\u0A66\x03\x02\x02\x02\u0A69\u0A6A\x07" + + "\u0365\x02\x02\u0A6A\u0B4D\x03\x02\x02\x02\u0A6B\u0A6C\x07\b\x02\x02\u0A6C" + + "\u0A6E\t\x14\x02\x02\u0A6D\u0A6F\x05\u0286\u0144\x02\u0A6E\u0A6D\x03\x02" + + "\x02\x02\u0A6E\u0A6F\x03\x02\x02\x02\u0A6F\u0A71\x03\x02\x02\x02\u0A70" + + "\u0A72\x05H%\x02\u0A71\u0A70\x03\x02\x02\x02\u0A71\u0A72\x03\x02\x02\x02" + + "\u0A72\u0A73\x03\x02\x02\x02\u0A73\u0A77\x05\u02E6\u0174\x02\u0A74\u0A76" + + "\x05J&\x02\u0A75\u0A74\x03\x02\x02\x02\u0A76\u0A79\x03\x02\x02\x02\u0A77" + + "\u0A75\x03\x02\x02\x02\u0A77\u0A78\x03\x02\x02\x02\u0A78\u0B4D\x03\x02" + + "\x02\x02\u0A79\u0A77\x03\x02\x02\x02\u0A7A\u0A7B\x07\b\x02\x02\u0A7B\u0A7D" + + "\t\x15\x02\x02\u0A7C\u0A7E\t\x14\x02\x02\u0A7D\u0A7C\x03\x02\x02\x02\u0A7D" + + "\u0A7E\x03\x02\x02\x02\u0A7E\u0A80\x03\x02\x02\x02\u0A7F\u0A81\x05\u0286" + + "\u0144\x02\u0A80\u0A7F\x03\x02\x02\x02\u0A80\u0A81\x03\x02\x02\x02\u0A81" + + "\u0A82\x03\x02\x02\x02\u0A82\u0A86\x05\u02E6\u0174\x02\u0A83\u0A85\x05" + + "J&\x02\u0A84\u0A83\x03\x02\x02\x02\u0A85\u0A88\x03\x02\x02\x02\u0A86\u0A84" + + "\x03\x02\x02\x02\u0A86\u0A87\x03\x02\x02\x02\u0A87\u0B4D\x03\x02\x02\x02" + + "\u0A88\u0A86\x03\x02\x02\x02\u0A89\u0A8E\x07\b\x02\x02\u0A8A\u0A8C\x07" + + "!\x02\x02\u0A8B\u0A8D\x05\u02C6\u0164\x02\u0A8C\u0A8B\x03\x02\x02\x02" + + "\u0A8C\u0A8D\x03\x02\x02\x02\u0A8D\u0A8F\x03\x02\x02\x02\u0A8E\u0A8A\x03" + + "\x02\x02\x02\u0A8E\u0A8F\x03\x02\x02\x02\u0A8F\u0A90\x03\x02\x02\x02\u0A90" + + "\u0A91\x07\x85\x02\x02\u0A91\u0A93\x07^\x02\x02\u0A92\u0A94\x05H%\x02" + + "\u0A93\u0A92\x03\x02\x02\x02\u0A93\u0A94\x03\x02\x02\x02\u0A94\u0A95\x03" + + "\x02\x02\x02\u0A95\u0A99\x05\u02E6\u0174\x02\u0A96\u0A98\x05J&\x02\u0A97" + + "\u0A96\x03\x02\x02\x02\u0A98\u0A9B\x03\x02\x02\x02\u0A99\u0A97\x03\x02" + + "\x02\x02\u0A99\u0A9A\x03\x02\x02\x02\u0A9A\u0B4D\x03\x02\x02\x02\u0A9B" + + "\u0A99\x03\x02\x02\x02\u0A9C\u0AA1\x07\b\x02\x02\u0A9D\u0A9F\x07!\x02" + + "\x02\u0A9E\u0AA0\x05\u02C6\u0164\x02\u0A9F\u0A9E\x03\x02\x02\x02\u0A9F" + + "\u0AA0\x03\x02\x02\x02\u0AA0\u0AA2\x03\x02\x02\x02\u0AA1\u0A9D\x03\x02" + + "\x02\x02\u0AA1\u0AA2\x03\x02\x02\x02\u0AA2\u0AA3\x03\x02\x02\x02\u0AA3" + + "\u0AA5\x07\xB8\x02\x02\u0AA4\u0AA6\t\x14\x02\x02\u0AA5\u0AA4\x03\x02\x02" + + "\x02\u0AA5\u0AA6\x03\x02\x02\x02\u0AA6\u0AA8\x03\x02\x02\x02\u0AA7\u0AA9" + + "\x05\u0286\u0144\x02\u0AA8\u0AA7\x03\x02\x02\x02\u0AA8\u0AA9\x03\x02\x02" + + "\x02\u0AA9\u0AAB\x03\x02\x02\x02\u0AAA\u0AAC\x05H%\x02\u0AAB\u0AAA\x03" + + "\x02\x02\x02\u0AAB\u0AAC\x03\x02\x02\x02\u0AAC\u0AAD\x03\x02\x02\x02\u0AAD" + + "\u0AB1\x05\u02E6\u0174\x02\u0AAE\u0AB0\x05J&\x02\u0AAF\u0AAE\x03\x02\x02" + + "\x02\u0AB0\u0AB3\x03\x02\x02\x02\u0AB1\u0AAF\x03\x02\x02\x02\u0AB1\u0AB2" + + "\x03\x02\x02\x02\u0AB2\u0B4D\x03\x02\x02\x02\u0AB3\u0AB1\x03\x02\x02\x02" + + "\u0AB4\u0AB9\x07\b\x02\x02\u0AB5\u0AB7\x07!\x02\x02\u0AB6\u0AB8\x05\u02C6" + + "\u0164\x02\u0AB7\u0AB6\x03\x02\x02\x02\u0AB7\u0AB8\x03\x02\x02\x02\u0AB8" + + "\u0ABA\x03\x02\x02\x02\u0AB9\u0AB5\x03\x02\x02\x02\u0AB9\u0ABA\x03\x02" + + "\x02\x02\u0ABA\u0ABB\x03\x02\x02\x02\u0ABB\u0ABC\x07E\x02\x02\u0ABC\u0ABE" + + "\x07^\x02\x02\u0ABD\u0ABF\x05\u0286\u0144\x02\u0ABE\u0ABD\x03\x02\x02" + + "\x02\u0ABE\u0ABF\x03\x02\x02\x02\u0ABF\u0AC0\x03\x02\x02\x02\u0AC0\u0AC1" + + "\x05\u02E6\u0174\x02\u0AC1\u0AC2\x05^0\x02\u0AC2\u0B4D\x03\x02\x02\x02" + + "\u0AC3\u0AC5\x07\b\x02\x02\u0AC4\u0AC6\x05V,\x02\u0AC5\u0AC4\x03\x02\x02" + + "\x02\u0AC5\u0AC6\x03\x02\x02\x02\u0AC6\u0B4D\x03\x02\x02\x02\u0AC7\u0AC8" + + "\x075\x02\x02\u0AC8\u0AC9\t&\x02\x02\u0AC9\u0B4D\x05\u02C6\u0164\x02\u0ACA" + + "\u0ACB\x07\n\x02\x02\u0ACB\u0ACC\t&\x02\x02\u0ACC\u0ACE\x05\u02C6\u0164" + + "\x02\u0ACD\u0ACF\x07t\x02\x02\u0ACE\u0ACD\x03\x02\x02\x02\u0ACE\u0ACF" + + "\x03\x02\x02\x02\u0ACF\u0AD1\x03\x02\x02\x02\u0AD0\u0AD2\x07;\x02\x02" + + "\u0AD1\u0AD0\x03\x02\x02\x02\u0AD1\u0AD2\x03\x02\x02\x02\u0AD2\u0B4D\x03" + + "\x02\x02\x02\u0AD3\u0AD5\x07\u0136\x02\x02\u0AD4\u0AD6\x07\u035B\x02\x02" + + "\u0AD5\u0AD4\x03\x02\x02\x02\u0AD5\u0AD6\x03\x02\x02\x02\u0AD6\u0AD7\x03" + + "\x02\x02\x02\u0AD7\u0B4D\t\'\x02\x02\u0AD8\u0ADA\x07\n\x02\x02\u0AD9\u0ADB" + + "\x07\x1F\x02\x02\u0ADA\u0AD9\x03\x02\x02\x02\u0ADA\u0ADB\x03\x02\x02\x02" + + "\u0ADB\u0ADC\x03\x02\x02\x02\u0ADC\u0AE4\x05\u029A\u014E\x02\u0ADD\u0ADE" + + "\x07\x9D\x02\x02\u0ADE\u0ADF\x07,\x02\x02\u0ADF\u0AE5\x05\u02F6\u017C" + + "\x02\u0AE0\u0AE1\x07\x9D\x02\x02\u0AE1\u0AE5\t\x12\x02\x02\u0AE2\u0AE3" + + "\x075\x02\x02\u0AE3\u0AE5\x07,\x02\x02\u0AE4\u0ADD\x03\x02\x02\x02\u0AE4" + + "\u0AE0\x03\x02\x02\x02\u0AE4\u0AE2\x03\x02\x02\x02\u0AE5\u0B4D\x03\x02" + + "\x02\x02\u0AE6\u0AE7\x07\n\x02\x02\u0AE7\u0AE8\x07T\x02\x02\u0AE8\u0AE9" + + "\x05\u0286\u0144\x02\u0AE9\u0AEA\t\x12\x02\x02\u0AEA\u0B4D\x03\x02\x02" + + "\x02\u0AEB\u0AED\x07\x1B\x02\x02\u0AEC\u0AEE\x07\x1F\x02\x02\u0AED\u0AEC" + + "\x03\x02\x02\x02\u0AED\u0AEE\x03\x02\x02\x02\u0AEE\u0AEF\x03\x02\x02\x02" + + "\u0AEF\u0AF0\x05\u029A\u014E\x02\u0AF0\u0AF1\x05\u0296\u014C\x02\u0AF1" + + "\u0AF5\x05Z.\x02\u0AF2\u0AF6\x07\u0194\x02\x02\u0AF3\u0AF4\x07\u0134\x02" + + "\x02\u0AF4\u0AF6\x05\u029A\u014E\x02\u0AF5\u0AF2\x03\x02\x02\x02\u0AF5" + + "\u0AF3\x03\x02\x02\x02\u0AF5\u0AF6\x03\x02\x02\x02\u0AF6\u0B4D\x03\x02" + + "\x02\x02\u0AF7\u0AF9\x07,\x02\x02\u0AF8\u0AF7\x03\x02\x02\x02\u0AF8\u0AF9" + + "\x03\x02\x02\x02\u0AF9\u0AFA\x03\x02\x02\x02\u0AFA\u0AFB\x07\x1C\x02\x02" + + "\u0AFB\u0AFC\x07\x9D\x02\x02\u0AFC\u0AFD\x07\u035B\x02\x02\u0AFD\u0B03" + + "\x05\u02B4\u015B\x02\u0AFE\u0B00\x07\x1E\x02\x02\u0AFF\u0B01\x07\u035B" + + "\x02\x02\u0B00\u0AFF\x03\x02\x02\x02\u0B00\u0B01\x03\x02\x02\x02\u0B01" + + "\u0B02\x03\x02\x02\x02\u0B02\u0B04\x05\u02B6\u015C\x02\u0B03\u0AFE\x03" + + "\x02\x02\x02\u0B03\u0B04\x03\x02\x02\x02\u0B04\u0B4D\x03\x02\x02\x02\u0B05" + + "\u0B06\x07#\x02\x02\u0B06\u0B0A\x07\xB2\x02\x02\u0B07\u0B0B\x07\u0339" + + "\x02\x02\u0B08\u0B09\x07\x1C\x02\x02\u0B09\u0B0B\x07\x9D\x02\x02\u0B0A" + + "\u0B07\x03\x02\x02\x02\u0B0A\u0B08\x03\x02\x02\x02\u0B0B\u0B0C\x03\x02" + + "\x02\x02\u0B0C\u0B0F\x05\u02B4\u015B\x02\u0B0D\u0B0E\x07\x1E\x02\x02\u0B0E" + + "\u0B10\x05\u02B6\u015C\x02\u0B0F\u0B0D\x03\x02\x02\x02\u0B0F\u0B10\x03" + + "\x02\x02\x02\u0B10\u0B4D\x03\x02\x02\x02\u0B11\u0B12\t(\x02\x02\u0B12" + + "\u0B4D\x07_\x02\x02\u0B13\u0B14\t)\x02\x02\u0B14\u0B4D\x07\u0294\x02\x02" + + "\u0B15\u0B17\x075\x02\x02\u0B16\u0B18\x07\x1F\x02\x02\u0B17\u0B16\x03" + + "\x02\x02\x02\u0B17\u0B18\x03\x02\x02\x02\u0B18\u0B19\x03\x02\x02\x02\u0B19" + + "\u0B4D\x05\u029A\u014E\x02\u0B1A\u0B1B\x075\x02\x02\u0B1B\u0B1C\t\x14" + + "\x02\x02\u0B1C\u0B4D\x05\u0286\u0144\x02\u0B1D\u0B1E\x075\x02\x02\u0B1E" + + "\u0B1F\x07\x85\x02\x02\u0B1F\u0B4D\x07^\x02\x02\u0B20\u0B21\x075\x02\x02" + + "\u0B21\u0B22\x07E\x02\x02\u0B22\u0B23\x07^\x02\x02\u0B23\u0B4D\x05\u02C6" + + "\u0164\x02\u0B24\u0B4D\x07D\x02\x02\u0B25\u0B27\x07j\x02\x02\u0B26\u0B28" + + "\x07\u035B\x02\x02\u0B27\u0B26\x03\x02\x02\x02\u0B27\u0B28\x03\x02\x02" + + "\x02\u0B28\u0B29\x03\x02\x02\x02\u0B29\u0B4D\t\x06\x02\x02\u0B2A\u0B2C" + + "\x07\u01EE\x02\x02\u0B2B\u0B2D\x07\x1F\x02\x02\u0B2C\u0B2B\x03\x02\x02" + + "\x02\u0B2C\u0B2D\x03\x02\x02\x02\u0B2D\u0B2E\x03\x02\x02\x02\u0B2E\u0B2F" + + "\x05\u029A\u014E\x02\u0B2F\u0B33\x05Z.\x02\u0B30\u0B34\x07\u0194\x02\x02" + + "\u0B31\u0B32\x07\u0134\x02\x02\u0B32\u0B34\x05\u029A\u014E\x02\u0B33\u0B30" + + "\x03\x02\x02\x02\u0B33\u0B31\x03\x02\x02\x02\u0B33\u0B34\x03\x02\x02\x02" + + "\u0B34\u0B4D\x03\x02\x02\x02\u0B35\u0B36\x07\x7F\x02\x02\u0B36\u0B37\x07" + + "\x16\x02\x02\u0B37\u0B4D\x05\u0298\u014D\x02\u0B38\u0B39\x07\x8F\x02\x02" + + "\u0B39\u0B3A\x07\x1F\x02\x02\u0B3A\u0B3B\x05\u029A\u014E\x02\u0B3B\u0B3C" + + "\x07\xB2\x02\x02\u0B3C\u0B3D\x05\u0296\u014C\x02\u0B3D\u0B4D\x03\x02\x02" + + "\x02\u0B3E\u0B3F\x07\x8F\x02\x02\u0B3F\u0B40\t\x14\x02\x02\u0B40\u0B41" + + "\x05\u0286\u0144\x02\u0B41\u0B42\x07\xB2\x02\x02\u0B42\u0B43\x05\u0282" + + "\u0142\x02\u0B43\u0B4D\x03\x02\x02\x02\u0B44\u0B46\x07\x8F\x02\x02\u0B45" + + "\u0B47\t*\x02\x02\u0B46\u0B45\x03\x02\x02\x02\u0B46\u0B47\x03\x02\x02" + + "\x02\u0B47\u0B48\x03\x02\x02\x02\u0B48\u0B4D\x05\u028C\u0147\x02\u0B49" + + "\u0B4A\t+\x02\x02\u0B4A\u0B4D\x07\u02AB\x02\x02\u0B4B\u0B4D\x05\x90I\x02" + + "\u0B4C\u0A44\x03\x02\x02\x02\u0B4C\u0A4E\x03\x02\x02\x02\u0B4C\u0A59\x03" + + "\x02\x02\x02\u0B4C\u0A6B\x03\x02\x02\x02\u0B4C\u0A7A\x03\x02\x02\x02\u0B4C" + + "\u0A89\x03\x02\x02\x02\u0B4C\u0A9C\x03\x02\x02\x02\u0B4C\u0AB4\x03\x02" + + "\x02\x02\u0B4C\u0AC3\x03\x02\x02\x02\u0B4C\u0AC7\x03\x02\x02\x02\u0B4C" + + "\u0ACA\x03\x02\x02\x02\u0B4C\u0AD3\x03\x02\x02\x02\u0B4C\u0AD8\x03\x02" + + "\x02\x02\u0B4C\u0AE6\x03\x02\x02\x02\u0B4C\u0AEB\x03\x02\x02\x02\u0B4C" + + "\u0AF8\x03\x02\x02\x02\u0B4C\u0B05\x03\x02\x02\x02\u0B4C\u0B11\x03\x02" + + "\x02\x02\u0B4C\u0B13\x03\x02\x02\x02\u0B4C\u0B15\x03\x02\x02\x02\u0B4C" + + "\u0B1A\x03\x02\x02\x02\u0B4C\u0B1D\x03\x02\x02\x02\u0B4C\u0B20\x03\x02" + + "\x02\x02\u0B4C\u0B24\x03\x02\x02\x02\u0B4C\u0B25\x03\x02\x02\x02\u0B4C" + + "\u0B2A\x03\x02\x02\x02\u0B4C\u0B35\x03\x02\x02\x02\u0B4C\u0B38\x03\x02" + + "\x02\x02\u0B4C\u0B3E\x03\x02\x02\x02\u0B4C\u0B44\x03\x02\x02\x02\u0B4C" + + "\u0B49\x03\x02\x02\x02\u0B4C\u0B4B\x03\x02\x02\x02\u0B4D\x8F\x03\x02\x02" + + "\x02\u0B4E\u0B4F\x07\b\x02\x02\u0B4F\u0B50\x07\x84\x02\x02\u0B50\u0B51" + + "\x07\u0364\x02\x02\u0B51\u0B56\x05p9\x02\u0B52\u0B53\x07\u0366\x02\x02" + + "\u0B53\u0B55\x05p9\x02\u0B54\u0B52\x03\x02\x02\x02\u0B55\u0B58\x03\x02" + + "\x02\x02\u0B56\u0B54\x03\x02\x02\x02\u0B56\u0B57\x03\x02\x02\x02\u0B57" + + "\u0B59\x03\x02\x02\x02\u0B58\u0B56\x03\x02\x02\x02\u0B59\u0B5A\x07\u0365" + + "\x02\x02\u0B5A\u0BB1\x03\x02\x02\x02\u0B5B\u0B5C\x075\x02\x02\u0B5C\u0B5D" + + "\x07\x84\x02\x02\u0B5D\u0BB1\x05\u02A2\u0152\x02\u0B5E\u0B5F\x07\u0173" + + "\x02\x02\u0B5F\u0B62\x07\x84\x02\x02\u0B60\u0B63\x05\u02A2\u0152\x02\u0B61" + + "\u0B63\x07\t\x02\x02\u0B62\u0B60\x03\x02\x02\x02\u0B62\u0B61\x03\x02\x02" + + "\x02\u0B63\u0B64\x03\x02\x02\x02\u0B64\u0BB1\x07\u0294\x02\x02\u0B65\u0B66" + + "\x07\u01AB\x02\x02\u0B66\u0B69\x07\x84\x02\x02\u0B67\u0B6A\x05\u02A2\u0152" + + "\x02\u0B68\u0B6A\x07\t\x02\x02\u0B69\u0B67\x03\x02\x02\x02\u0B69\u0B68" + + "\x03\x02\x02\x02\u0B6A\u0B6B\x03\x02\x02\x02\u0B6B\u0BB1\x07\u0294\x02" + + "\x02\u0B6C\u0B6D\x07\u029E\x02\x02\u0B6D\u0B70\x07\x84\x02\x02\u0B6E\u0B71" + + "\x05\u02A2\u0152\x02\u0B6F\u0B71\x07\t\x02\x02\u0B70\u0B6E\x03\x02\x02" + + "\x02\u0B70\u0B6F\x03\x02\x02\x02\u0B71\u0BB1\x03\x02\x02\x02\u0B72\u0B73" + + "\x07\u0151\x02\x02\u0B73\u0B74\x07\x84\x02\x02\u0B74\u0BB1\x05\u02CC\u0167" + + "\x02\u0B75\u0B76\x07\u0233\x02\x02\u0B76\u0B77\x07\x84\x02\x02\u0B77\u0B78" + + "\x05\u02A2\u0152\x02\u0B78\u0B79\x07Z\x02\x02\u0B79\u0B7A\x07\u0364\x02" + + "\x02\u0B7A\u0B7F\x05p9\x02\u0B7B\u0B7C\x07\u0366\x02\x02\u0B7C\u0B7E\x05" + + "p9\x02\u0B7D\u0B7B\x03\x02\x02\x02\u0B7E\u0B81\x03\x02\x02\x02\u0B7F\u0B7D" + + "\x03\x02\x02\x02\u0B7F\u0B80\x03\x02\x02\x02\u0B80\u0B82\x03\x02\x02\x02" + + "\u0B81\u0B7F\x03\x02\x02\x02\u0B82\u0B83\x07\u0365\x02\x02\u0B83\u0BB1" + + "\x03\x02\x02\x02\u0B84\u0B85\x07\u0186\x02\x02\u0B85\u0B86\x07\x84\x02" + + "\x02\u0B86\u0B87\x05\u02A4\u0153\x02\u0B87\u0B88\x07\xC4\x02\x02\u0B88" + + "\u0B89\x07\xAF\x02\x02\u0B89\u0B8C\x05\u0290\u0149\x02\u0B8A\u0B8B\t+" + + "\x02\x02\u0B8B\u0B8D\x07\u02AB\x02\x02\u0B8C\u0B8A\x03\x02\x02\x02\u0B8C" + + "\u0B8D\x03\x02\x02\x02\u0B8D\u0BB1\x03\x02\x02\x02\u0B8E\u0B8F\x07\f\x02" + + "\x02\u0B8F\u0B92\x07\x84\x02\x02\u0B90\u0B93\x05\u02A2\u0152\x02\u0B91" + + "\u0B93\x07\t\x02\x02\u0B92\u0B90\x03\x02\x02\x02\u0B92\u0B91\x03\x02\x02" + + "\x02\u0B93\u0BB1\x03\x02\x02\x02\u0B94\u0B95\x07\x1D\x02\x02\u0B95\u0B98" + + "\x07\x84\x02\x02\u0B96\u0B99\x05\u02A2\u0152\x02\u0B97\u0B99\x07\t\x02" + + "\x02\u0B98\u0B96\x03\x02\x02\x02\u0B98\u0B97\x03\x02\x02\x02\u0B99\u0BB1" + + "\x03\x02\x02\x02\u0B9A\u0B9B\x07z\x02\x02\u0B9B\u0B9E\x07\x84\x02\x02" + + "\u0B9C\u0B9F\x05\u02A2\u0152\x02\u0B9D\u0B9F\x07\t\x02\x02\u0B9E\u0B9C" + + "\x03\x02\x02\x02\u0B9E\u0B9D\x03\x02\x02\x02\u0B9F\u0BB1\x03\x02\x02\x02" + + "\u0BA0\u0BA1\x07\u0228\x02\x02\u0BA1\u0BA4\x07\x84\x02\x02\u0BA2\u0BA5" + + "\x05\u02A2\u0152\x02\u0BA3\u0BA5\x07\t\x02\x02\u0BA4\u0BA2\x03\x02\x02" + + "\x02\u0BA4\u0BA3\x03\x02\x02\x02\u0BA5\u0BB1\x03\x02\x02\x02\u0BA6\u0BA7" + + "\x07\u0234\x02\x02\u0BA7\u0BAA\x07\x84\x02\x02\u0BA8\u0BAB\x05\u02A2\u0152" + + "\x02\u0BA9\u0BAB\x07\t\x02\x02\u0BAA\u0BA8\x03\x02\x02\x02\u0BAA\u0BA9" + + "\x03\x02\x02\x02\u0BAB\u0BB1\x03\x02\x02\x02\u0BAC\u0BAD\x07\u0232\x02" + + "\x02\u0BAD\u0BB1\x07\u0211\x02\x02\u0BAE\u0BAF\x07\u02A7\x02\x02\u0BAF" + + "\u0BB1\x07\u0211\x02\x02\u0BB0\u0B4E\x03\x02\x02\x02\u0BB0\u0B5B\x03\x02" + + "\x02\x02\u0BB0\u0B5E\x03\x02\x02\x02\u0BB0\u0B65\x03\x02\x02\x02\u0BB0" + + "\u0B6C\x03\x02\x02\x02\u0BB0\u0B72\x03\x02\x02\x02\u0BB0\u0B75\x03\x02" + + "\x02\x02\u0BB0\u0B84\x03\x02\x02\x02\u0BB0\u0B8E\x03\x02\x02\x02\u0BB0" + + "\u0B94\x03\x02\x02\x02\u0BB0\u0B9A\x03\x02\x02\x02\u0BB0\u0BA0\x03\x02" + + "\x02\x02\u0BB0\u0BA6\x03\x02\x02\x02\u0BB0\u0BAC\x03\x02\x02\x02\u0BB0" + + "\u0BAE\x03\x02\x02\x02\u0BB1\x91\x03\x02\x02\x02\u0BB2\u0BB3\x075\x02" + + "\x02\u0BB3\u0BB5\t\x02\x02\x02\u0BB4\u0BB6\x05\u02FA\u017E\x02\u0BB5\u0BB4" + + "\x03\x02\x02\x02\u0BB5\u0BB6\x03\x02\x02\x02\u0BB6\u0BB7\x03\x02\x02\x02" + + "\u0BB7\u0BB8\x05\u0278\u013D\x02\u0BB8\x93\x03\x02\x02\x02\u0BB9\u0BBA" + + "\x075\x02\x02\u0BBA\u0BBC\x07\u0183\x02\x02\u0BBB\u0BBD\x05\u02FA\u017E" + + "\x02\u0BBC\u0BBB\x03\x02\x02\x02\u0BBC\u0BBD\x03\x02\x02\x02\u0BBD\u0BBE" + + "\x03\x02\x02\x02\u0BBE\u0BBF\x05\u02C2\u0162\x02\u0BBF\x95\x03\x02\x02" + + "\x02\u0BC0\u0BC1\x075\x02\x02\u0BC1\u0BC3\x07T\x02\x02\u0BC2\u0BC4\t\x03" + + "\x02\x02\u0BC3\u0BC2\x03\x02\x02\x02\u0BC3\u0BC4\x03\x02\x02\x02\u0BC4" + + "\u0BC5\x03\x02\x02\x02\u0BC5\u0BC6\x05\u0286\u0144\x02\u0BC6\u0BC7\x07" + + "y\x02\x02\u0BC7\u0BD4\x05\u0290\u0149\x02\u0BC8\u0BCA\x07\u0136\x02\x02" + + "\u0BC9\u0BCB\x07\u035B\x02\x02\u0BCA\u0BC9\x03\x02\x02\x02\u0BCA\u0BCB" + + "\x03\x02\x02\x02\u0BCB\u0BCC\x03\x02\x02\x02\u0BCC\u0BD3\t\x05\x02\x02" + + "\u0BCD\u0BCF\x07j\x02\x02\u0BCE\u0BD0\x07\u035B\x02\x02\u0BCF\u0BCE\x03" + + "\x02\x02\x02\u0BCF\u0BD0\x03\x02\x02\x02\u0BD0\u0BD1\x03\x02\x02\x02\u0BD1" + + "\u0BD3\t\x06\x02\x02\u0BD2\u0BC8\x03\x02\x02\x02\u0BD2\u0BCD\x03\x02\x02" + + "\x02\u0BD3\u0BD6\x03\x02\x02\x02\u0BD4\u0BD2\x03\x02\x02\x02\u0BD4\u0BD5" + + "\x03\x02\x02\x02\u0BD5\x97\x03\x02\x02\x02\u0BD6\u0BD4\x03\x02\x02\x02" + + "\u0BD7\u0BD8\x075\x02\x02\u0BD8\u0BD9\x07\u01C5\x02\x02\u0BD9\u0BDA\x07" + + "L\x02\x02\u0BDA\u0BDB\x05\u02C6\u0164\x02\u0BDB\u0BDD\x07\u017E\x02\x02" + + "\u0BDC\u0BDE\x07\u035B\x02\x02\u0BDD\u0BDC\x03\x02\x02\x02\u0BDD\u0BDE" + + "\x03\x02\x02\x02\u0BDE\u0BDF\x03\x02\x02\x02\u0BDF\u0BE0\x05\u02B8\u015D" + + "\x02\u0BE0\x99\x03\x02\x02\x02\u0BE1\u0BE2\x075\x02\x02\u0BE2\u0BE4\x07" + + "\x86\x02\x02\u0BE3\u0BE5\x05\u02FA\u017E\x02\u0BE4\u0BE3\x03\x02\x02\x02" + + "\u0BE4\u0BE5\x03\x02\x02\x02\u0BE5\u0BE6\x03\x02\x02\x02\u0BE6\u0BE7\x05" + + "\u02C2\u0162\x02\u0BE7\x9B\x03\x02\x02\x02\u0BE8\u0BE9\x075\x02\x02\u0BE9" + + "\u0BEB\x07\u019B\x02\x02\u0BEA\u0BEC\x05\u02FA\u017E\x02\u0BEB\u0BEA\x03" + + "\x02\x02\x02\u0BEB\u0BEC\x03\x02\x02\x02\u0BEC\u0BED\x03\x02\x02\x02\u0BED" + + "\u0BEE\x05\u027C\u013F\x02\u0BEE\x9D\x03\x02\x02\x02\u0BEF\u0BF0\x075" + + "\x02\x02\u0BF0\u0BF2\x07\u0252\x02\x02\u0BF1\u0BF3\x05\u02FA\u017E\x02" + + "\u0BF2\u0BF1\x03\x02\x02\x02\u0BF2\u0BF3\x03\x02\x02\x02\u0BF3\u0BF4\x03" + + "\x02\x02\x02\u0BF4\u0BF5\x05\u02C6\u0164\x02\u0BF5\x9F\x03\x02\x02\x02" + + "\u0BF6\u0BF7\x075\x02\x02\u0BF7\u0BF8\x07\xA3\x02\x02\u0BF8\u0BF9\x07" + + "\x8B\x02\x02\u0BF9\u0BFB\x07\u0345\x02\x02\u0BFA\u0BFC\x05\u02FA\u017E" + + "\x02\u0BFB\u0BFA\x03\x02\x02\x02\u0BFB\u0BFC\x03\x02\x02\x02\u0BFC\u0BFD" + + "\x03\x02\x02\x02\u0BFD\u0BFE\x07\u0375\x02\x02\u0BFE\xA1\x03\x02\x02\x02" + + "\u0BFF\u0C01\x075\x02\x02\u0C00\u0C02\x07\u0296\x02\x02\u0C01\u0C00\x03" + + "\x02\x02\x02\u0C01\u0C02\x03\x02\x02\x02\u0C02\u0C03\x03\x02\x02\x02\u0C03" + + "\u0C05\x07\xAF\x02\x02\u0C04\u0C06\x05\u02FA\u017E\x02\u0C05\u0C04\x03" + + "\x02\x02\x02\u0C05\u0C06\x03\x02\x02\x02\u0C06\u0C07\x03\x02\x02\x02\u0C07" + + "\u0C09\x05\u028E\u0148\x02\u0C08\u0C0A\t,\x02\x02\u0C09\u0C08\x03\x02" + + "\x02\x02\u0C09\u0C0A\x03\x02\x02\x02\u0C0A\xA3\x03\x02\x02\x02\u0C0B\u0C0D" + + "\x075\x02\x02\u0C0C\u0C0E\x07\xB6\x02\x02\u0C0D\u0C0C\x03\x02\x02\x02" + + "\u0C0D\u0C0E\x03\x02\x02\x02\u0C0E\u0C0F\x03\x02\x02\x02\u0C0F\u0C10\x07" + + "\u0294\x02\x02\u0C10\u0C16\x05\u029E\u0150\x02\u0C11\u0C13\x07\u017E\x02" + + "\x02\u0C12\u0C14\x07\u035B\x02\x02\u0C13\u0C12\x03\x02\x02\x02\u0C13\u0C14" + + "\x03\x02\x02\x02\u0C14\u0C15\x03\x02\x02\x02\u0C15\u0C17\x05\u02B8\u015D" + + "\x02\u0C16\u0C11\x03\x02\x02\x02\u0C16\u0C17\x03\x02\x02\x02\u0C17\xA5" + + "\x03\x02\x02\x02\u0C18\u0C19\x075\x02\x02\u0C19\u0C1B\x07\xB4\x02\x02" + + "\u0C1A\u0C1C\x05\u02FA\u017E\x02\u0C1B\u0C1A\x03\x02\x02\x02\u0C1B\u0C1C" + + "\x03\x02\x02\x02\u0C1C\u0C1D\x03\x02\x02\x02\u0C1D\u0C1E\x05\u02C2\u0162" + + "\x02\u0C1E\xA7\x03\x02\x02\x02\u0C1F\u0C20\x075\x02\x02\u0C20\u0C22\x07" + + "\u02AE\x02\x02\u0C21\u0C23\x05\u02FA\u017E\x02\u0C22\u0C21\x03\x02\x02" + + "\x02\u0C22\u0C23\x03\x02\x02\x02\u0C23\u0C24\x03\x02\x02\x02\u0C24\u0C29" + + "\x05\u0280\u0141\x02\u0C25\u0C26\x07\u0366\x02\x02\u0C26\u0C28\x05\u0280" + + "\u0141\x02\u0C27\u0C25\x03\x02\x02\x02\u0C28\u0C2B\x03\x02\x02\x02\u0C29" + + "\u0C27\x03\x02\x02\x02\u0C29\u0C2A\x03\x02\x02\x02\u0C2A\u0C2D\x03\x02" + + "\x02\x02\u0C2B\u0C29\x03\x02\x02\x02\u0C2C\u0C2E\t,\x02\x02\u0C2D\u0C2C" + + "\x03\x02\x02\x02\u0C2D\u0C2E\x03\x02\x02\x02\u0C2E\xA9\x03\x02\x02\x02" + + "\u0C2F\u0C30\x075\x02\x02\u0C30\u0C32\x07\u0248\x02\x02\u0C31\u0C33\x05" + + "\u02FA\u017E\x02\u0C32\u0C31\x03\x02\x02\x02\u0C32\u0C33\x03\x02\x02\x02" + + "\u0C33\u0C34\x03\x02\x02\x02\u0C34\u0C35\x05\u0292\u014A\x02\u0C35\xAB" + + "\x03\x02\x02\x02\u0C36\u0C37\x07\x9D\x02\x02\u0C37\u0C38\x07,\x02\x02" + + "\u0C38\u0C3C\x07\u0248\x02\x02\u0C39\u0C3D\x07\u01FB\x02\x02\u0C3A\u0C3D" + + "\x07\t\x02\x02\u0C3B\u0C3D\x05\u0292\u014A\x02\u0C3C\u0C39\x03\x02\x02" + + "\x02\u0C3C\u0C3A\x03\x02\x02\x02\u0C3C\u0C3B\x03\x02\x02\x02\u0C3D\u0C3E" + + "\x03"; + private static readonly _serializedATNSegment8: string = + "\x02\x02\x02\u0C3E\u0C3F\x07\xB2\x02\x02\u0C3F\u0C44\x05\u0294\u014B\x02" + + "\u0C40\u0C41\x07\u0366\x02\x02\u0C41\u0C43\x05\u0294\u014B\x02\u0C42\u0C40" + + "\x03\x02\x02\x02\u0C43\u0C46\x03\x02\x02\x02\u0C44\u0C42\x03\x02\x02\x02" + + "\u0C44\u0C45\x03\x02\x02\x02\u0C45\u0C4B\x03\x02\x02\x02\u0C46\u0C44\x03" + + "\x02\x02\x02\u0C47\u0C48\x07\x9D\x02\x02\u0C48\u0C49\x07\u0248\x02\x02" + + "\u0C49\u0C4B\x05\u01D6\xEC\x02\u0C4A\u0C36\x03\x02\x02\x02\u0C4A\u0C47" + + "\x03\x02\x02\x02\u0C4B\xAD\x03\x02\x02\x02\u0C4C\u0C4D\x07\x8F\x02\x02" + + "\u0C4D\u0C4E\x07\xAF\x02\x02\u0C4E\u0C53\x05\xB0Y\x02\u0C4F\u0C50\x07" + + "\u0366\x02\x02\u0C50\u0C52\x05\xB0Y\x02\u0C51\u0C4F\x03\x02\x02\x02\u0C52" + + "\u0C55\x03\x02\x02\x02\u0C53\u0C51\x03\x02\x02\x02\u0C53\u0C54\x03\x02" + + "\x02\x02\u0C54\xAF\x03\x02\x02\x02\u0C55\u0C53\x03\x02\x02\x02\u0C56\u0C57" + + "\x05\u0290\u0149\x02\u0C57\u0C58\x07\xB2\x02\x02\u0C58\u0C59\x05\u028C" + + "\u0147\x02\u0C59\xB1\x03\x02\x02\x02\u0C5A\u0C5C\x07\u029E\x02\x02\u0C5B" + + "\u0C5D\x07\xAF\x02\x02\u0C5C\u0C5B\x03\x02\x02\x02\u0C5C\u0C5D\x03\x02" + + "\x02\x02\u0C5D\u0C5E\x03\x02\x02\x02\u0C5E\u0C5F\x05\u0290\u0149\x02\u0C5F" + + "\xB3\x03\x02\x02\x02\u0C60\u0C61\x07\x17\x02\x02\u0C61\u0C68\x05\u02C2" + + "\u0162\x02\u0C62\u0C65\x07\u0364\x02\x02\u0C63\u0C66\x05\u02F0\u0179\x02" + + "\u0C64\u0C66\x05\u02E8\u0175\x02\u0C65\u0C63\x03\x02\x02\x02\u0C65\u0C64" + + "\x03\x02\x02\x02\u0C65\u0C66\x03\x02\x02\x02\u0C66\u0C67\x03\x02\x02\x02" + + "\u0C67\u0C69\x07\u0365\x02\x02\u0C68\u0C62\x03\x02\x02\x02\u0C68\u0C69" + + "\x03\x02\x02\x02\u0C69\xB5\x03\x02\x02\x02\u0C6A\u0C6D\x05\xECw\x02\u0C6B" + + "\u0C6D\x05\xEEx\x02\u0C6C\u0C6A\x03\x02\x02\x02\u0C6C\u0C6B\x03\x02\x02" + + "\x02\u0C6D\xB7\x03\x02\x02\x02\u0C6E\u0C6F\x07\u0175\x02\x02\u0C6F\u0C70" + + "\x05\u02E8\u0175\x02\u0C70\xB9\x03\x02\x02\x02\u0C71\u0C76\x05\xF0y\x02" + + "\u0C72\u0C76\x05\xF2z\x02\u0C73\u0C76\x05\xF4{\x02\u0C74\u0C76\x05\xF6" + + "|\x02\u0C75\u0C71\x03\x02\x02\x02\u0C75\u0C72\x03\x02\x02\x02\u0C75\u0C73" + + "\x03\x02\x02\x02\u0C75\u0C74\x03\x02\x02\x02\u0C76\xBB\x03\x02\x02\x02" + + "\u0C77\u0C79\x07X\x02\x02\u0C78\u0C7A\t-\x02\x02\u0C79\u0C78\x03\x02\x02" + + "\x02\u0C79\u0C7A\x03\x02\x02\x02\u0C7A\u0C7C\x03\x02\x02\x02\u0C7B\u0C7D" + + "\x07Q\x02\x02\u0C7C\u0C7B\x03\x02\x02\x02\u0C7C\u0C7D\x03\x02\x02\x02" + + "\u0C7D\u0C7F\x03\x02\x02\x02\u0C7E\u0C80\x07Z\x02\x02\u0C7F\u0C7E\x03" + + "\x02\x02\x02\u0C7F\u0C80\x03\x02\x02\x02\u0C80\u0C81\x03\x02\x02\x02\u0C81" + + "\u0C88\x05\u0290\u0149\x02\u0C82\u0C83\x07\x84\x02\x02\u0C83\u0C85\x07" + + "\u0364\x02\x02\u0C84\u0C86\x05\u02A2\u0152\x02\u0C85\u0C84\x03\x02\x02" + + "\x02\u0C85\u0C86\x03\x02\x02\x02\u0C86\u0C87\x03\x02\x02\x02\u0C87\u0C89" + + "\x07\u0365\x02\x02\u0C88\u0C82\x03\x02\x02\x02\u0C88\u0C89\x03\x02\x02" + + "\x02\u0C89\u0C95\x03\x02\x02\x02\u0C8A\u0C8C\x05\u0108\x85\x02\u0C8B\u0C8A" + + "\x03\x02\x02\x02\u0C8B\u0C8C\x03\x02\x02\x02\u0C8C\u0C8F\x03\x02\x02\x02" + + "\u0C8D\u0C90\x05\u02EA\u0176\x02\u0C8E\u0C90\x05\xC0a\x02\u0C8F\u0C8D" + + "\x03\x02\x02\x02\u0C8F\u0C8E\x03\x02\x02\x02\u0C8F\u0C90\x03\x02\x02\x02" + + "\u0C90\u0C92\x03\x02\x02\x02\u0C91\u0C93\x05\xBE`\x02\u0C92\u0C91\x03" + + "\x02\x02\x02\u0C92\u0C93\x03\x02\x02\x02\u0C93\u0C96\x03\x02\x02\x02\u0C94" + + "\u0C96\x05\xE4s\x02\u0C95\u0C8B\x03\x02\x02\x02\u0C95\u0C94\x03\x02\x02" + + "\x02\u0C96\u0C98\x03\x02\x02\x02\u0C97\u0C99\x05\xBE`\x02\u0C98\u0C97" + + "\x03\x02\x02\x02\u0C98\u0C99\x03\x02\x02\x02\u0C99\u0CA6\x03\x02\x02\x02" + + "\u0C9A\u0C9B\x07y\x02\x02\u0C9B\u0C9C\x07\u0177\x02\x02\u0C9C\u0C9D\x07" + + "^\x02\x02\u0C9D\u0C9E\x07\xBB\x02\x02\u0C9E\u0CA3\x05\xE6t\x02\u0C9F\u0CA0" + + "\x07\u0366\x02\x02\u0CA0\u0CA2\x05\xE6t\x02\u0CA1\u0C9F\x03\x02\x02\x02" + + "\u0CA2\u0CA5\x03\x02\x02\x02\u0CA3\u0CA1\x03\x02\x02\x02\u0CA3\u0CA4\x03" + + "\x02\x02\x02\u0CA4\u0CA7\x03\x02\x02\x02\u0CA5\u0CA3\x03\x02\x02\x02\u0CA6" + + "\u0C9A\x03\x02\x02\x02\u0CA6\u0CA7\x03\x02\x02\x02\u0CA7\xBD\x03\x02\x02" + + "\x02\u0CA8\u0CA9\x07\x0F\x02\x02\u0CA9\u0CAB\x05\u02C6\u0164\x02\u0CAA" + + "\u0CAC\x05\u0108\x85\x02\u0CAB\u0CAA\x03\x02\x02\x02\u0CAB\u0CAC\x03\x02" + + "\x02\x02\u0CAC\xBF\x03\x02\x02\x02\u0CAD\u0CB2\x05\xCEh\x02\u0CAE\u0CAF" + + "\x07\xAF\x02\x02\u0CAF\u0CB2\x05\u0290\u0149\x02\u0CB0\u0CB2\x05\xE2r" + + "\x02\u0CB1\u0CAD\x03\x02\x02\x02\u0CB1\u0CAE\x03\x02\x02\x02\u0CB1\u0CB0" + + "\x03\x02\x02\x02\u0CB2\xC1\x03\x02\x02\x02\u0CB3\u0CB9\x05\xC4c\x02\u0CB4" + + "\u0CB6\x07\u033E\x02\x02\u0CB5\u0CB7\t.\x02\x02\u0CB6\u0CB5\x03\x02\x02" + + "\x02\u0CB6\u0CB7\x03\x02\x02\x02\u0CB7\u0CB8\x03\x02\x02\x02\u0CB8\u0CBA" + + "\x05\xC4c\x02\u0CB9\u0CB4\x03\x02\x02\x02\u0CBA\u0CBB\x03\x02\x02\x02" + + "\u0CBB\u0CB9\x03\x02\x02\x02\u0CBB\u0CBC\x03\x02\x02\x02\u0CBC\xC3\x03" + + "\x02\x02\x02\u0CBD\u0CBF\x07\u0364\x02\x02\u0CBE\u0CBD\x03\x02\x02\x02" + + "\u0CBE\u0CBF\x03\x02\x02\x02\u0CBF\u0CC0\x03\x02\x02\x02\u0CC0\u0CC2\x05" + + "\u0116\x8C\x02\u0CC1\u0CC3\x07\u0365\x02\x02\u0CC2\u0CC1\x03\x02\x02\x02" + + "\u0CC2\u0CC3\x03\x02\x02\x02\u0CC3\xC5\x03\x02\x02\x02\u0CC4\u0CC5\x07" + + "i\x02\x02\u0CC5\u0CC7\x07\u016A\x02\x02\u0CC6\u0CC8\t/\x02\x02\u0CC7\u0CC6" + + "\x03\x02\x02\x02\u0CC7\u0CC8\x03\x02\x02\x02\u0CC8\u0CCA\x03\x02\x02\x02" + + "\u0CC9\u0CCB\x07\u01C4\x02\x02\u0CCA\u0CC9\x03\x02\x02\x02\u0CCA\u0CCB" + + "\x03\x02\x02\x02\u0CCB\u0CCC\x03\x02\x02\x02\u0CCC\u0CCD\x07U\x02\x02" + + "\u0CCD\u0CCF\x07\u0374\x02\x02\u0CCE\u0CD0\t\b\x02\x02\u0CCF\u0CCE\x03" + + "\x02\x02\x02\u0CCF\u0CD0\x03\x02\x02\x02\u0CD0\u0CD1\x03\x02\x02\x02\u0CD1" + + "\u0CD2\x07Z\x02\x02\u0CD2\u0CD3\x07\xAF\x02\x02\u0CD3\u0CD9\x05\u0290" + + "\u0149\x02\u0CD4\u0CD5\x07\x84\x02\x02\u0CD5\u0CD6\x07\u0364\x02\x02\u0CD6" + + "\u0CD7\x05\u02A2\u0152\x02\u0CD7\u0CD8\x07\u0365\x02\x02\u0CD8\u0CDA\x03" + + "\x02\x02\x02\u0CD9\u0CD4\x03\x02\x02\x02\u0CD9\u0CDA\x03\x02\x02\x02\u0CDA" + + "\u0CDE\x03\x02\x02\x02\u0CDB\u0CDC\x07\x1C\x02\x02\u0CDC\u0CDD\x07\x9D" + + "\x02\x02\u0CDD\u0CDF\x05\u02B4\u015B\x02\u0CDE\u0CDB\x03\x02\x02\x02\u0CDE" + + "\u0CDF\x03\x02\x02\x02\u0CDF\u0CE6\x03\x02\x02\x02\u0CE0\u0CE2\t0\x02" + + "\x02\u0CE1\u0CE3\x05\u0132\x9A\x02\u0CE2\u0CE1\x03\x02\x02\x02\u0CE3\u0CE4" + + "\x03\x02\x02\x02\u0CE4\u0CE2\x03\x02\x02\x02\u0CE4\u0CE5\x03\x02\x02\x02" + + "\u0CE5\u0CE7\x03\x02\x02\x02\u0CE6\u0CE0\x03\x02\x02\x02\u0CE6\u0CE7\x03" + + "\x02\x02\x02\u0CE7\u0CEE\x03\x02\x02\x02\u0CE8\u0CEA\x07h\x02\x02\u0CE9" + + "\u0CEB\x05\u0134\x9B\x02\u0CEA\u0CE9\x03\x02\x02\x02\u0CEB\u0CEC\x03\x02" + + "\x02\x02\u0CEC\u0CEA\x03\x02\x02\x02\u0CEC\u0CED\x03\x02\x02\x02\u0CED" + + "\u0CEF\x03\x02\x02\x02\u0CEE\u0CE8\x03\x02\x02\x02\u0CEE\u0CEF\x03\x02" + + "\x02\x02\u0CEF\u0CF4\x03\x02\x02\x02\u0CF0\u0CF1\x07Q\x02\x02\u0CF1\u0CF2" + + "\x05\u02CC\u0167\x02\u0CF2\u0CF3\t1\x02\x02\u0CF3\u0CF5\x03\x02\x02\x02" + + "\u0CF4\u0CF0\x03\x02\x02\x02\u0CF4\u0CF5\x03\x02\x02\x02\u0CF5\u0D01\x03" + + "\x02\x02\x02\u0CF6\u0CF7\x07\u0364\x02\x02\u0CF7\u0CFC\x05\xE8u\x02\u0CF8" + + "\u0CF9\x07\u0366\x02\x02\u0CF9\u0CFB\x05\xE8u\x02\u0CFA\u0CF8\x03\x02" + + "\x02\x02\u0CFB\u0CFE\x03\x02\x02\x02\u0CFC\u0CFA\x03\x02\x02\x02\u0CFC" + + "\u0CFD\x03\x02\x02\x02\u0CFD\u0CFF\x03\x02\x02\x02\u0CFE\u0CFC\x03\x02" + + "\x02\x02\u0CFF\u0D00\x07\u0365\x02\x02\u0D00\u0D02\x03\x02\x02\x02\u0D01" + + "\u0CF6\x03\x02\x02\x02\u0D01\u0D02\x03\x02\x02\x02\u0D02\u0D0C\x03\x02" + + "\x02\x02\u0D03\u0D04\x07\x9D\x02\x02\u0D04\u0D09\x05\xE6t\x02\u0D05\u0D06" + + "\x07\u0366\x02\x02\u0D06\u0D08\x05\xE6t\x02\u0D07\u0D05\x03\x02\x02\x02" + + "\u0D08\u0D0B\x03\x02\x02\x02\u0D09\u0D07\x03\x02\x02\x02\u0D09\u0D0A\x03" + + "\x02\x02\x02\u0D0A\u0D0D\x03\x02\x02\x02\u0D0B\u0D09\x03\x02\x02\x02\u0D0C" + + "\u0D03\x03\x02\x02\x02\u0D0C\u0D0D\x03\x02\x02\x02\u0D0D\xC7\x03\x02\x02" + + "\x02\u0D0E\u0D0F\x07i\x02\x02\u0D0F\u0D11\x07\u02B9\x02\x02\u0D10\u0D12" + + "\t/\x02\x02\u0D11\u0D10\x03\x02\x02\x02\u0D11\u0D12\x03\x02\x02\x02\u0D12" + + "\u0D14\x03\x02\x02\x02\u0D13\u0D15\x07\u01C4\x02\x02\u0D14\u0D13\x03\x02" + + "\x02\x02\u0D14\u0D15\x03\x02\x02\x02\u0D15\u0D16\x03\x02\x02\x02\u0D16" + + "\u0D17\x07U\x02\x02\u0D17\u0D19\x07\u0374\x02\x02\u0D18\u0D1A\t\b\x02" + + "\x02\u0D19\u0D18\x03\x02\x02\x02\u0D19\u0D1A\x03\x02\x02\x02\u0D1A\u0D1B" + + "\x03\x02\x02\x02\u0D1B\u0D1C\x07Z\x02\x02\u0D1C\u0D1D\x07\xAF\x02\x02" + + "\u0D1D\u0D21\x05\u0290\u0149\x02\u0D1E\u0D1F\x07\x1C\x02\x02\u0D1F\u0D20" + + "\x07\x9D\x02\x02\u0D20\u0D22\x05\u02B4\u015B\x02\u0D21\u0D1E\x03\x02\x02" + + "\x02\u0D21\u0D22\x03\x02\x02\x02\u0D22\u0D2D\x03\x02\x02\x02\u0D23\u0D24" + + "\x07\u024D\x02\x02\u0D24\u0D25\x07\u01A9\x02\x02\u0D25\u0D27\x07\x16\x02" + + "\x02\u0D26\u0D28\x07\u035D\x02\x02\u0D27\u0D26\x03\x02\x02\x02\u0D27\u0D28" + + "\x03\x02\x02\x02\u0D28\u0D29\x03\x02\x02\x02\u0D29\u0D2B\x07\u0374\x02" + + "\x02\u0D2A\u0D2C\x07\u035C\x02\x02\u0D2B\u0D2A\x03\x02\x02\x02\u0D2B\u0D2C" + + "\x03\x02\x02\x02\u0D2C\u0D2E\x03\x02\x02\x02\u0D2D\u0D23\x03\x02\x02\x02" + + "\u0D2D\u0D2E\x03\x02\x02\x02\u0D2E\u0D33\x03\x02\x02\x02\u0D2F\u0D30\x07" + + "Q\x02\x02\u0D30\u0D31\x05\u02CC\u0167\x02\u0D31\u0D32\t1\x02\x02\u0D32" + + "\u0D34\x03\x02\x02\x02\u0D33\u0D2F\x03\x02\x02\x02\u0D33\u0D34\x03\x02" + + "\x02\x02\u0D34\u0D40\x03\x02\x02\x02\u0D35\u0D36\x07\u0364\x02\x02\u0D36" + + "\u0D3B\x05\xE8u\x02\u0D37\u0D38\x07\u0366\x02\x02\u0D38\u0D3A\x05\xE8" + + "u\x02\u0D39\u0D37\x03\x02\x02\x02\u0D3A\u0D3D\x03\x02\x02\x02\u0D3B\u0D39" + + "\x03\x02\x02\x02\u0D3B\u0D3C\x03\x02\x02\x02\u0D3C\u0D3E\x03\x02\x02\x02" + + "\u0D3D\u0D3B\x03\x02\x02\x02\u0D3E\u0D3F\x07\u0365\x02\x02\u0D3F\u0D41" + + "\x03\x02\x02\x02\u0D40\u0D35\x03\x02\x02\x02\u0D40\u0D41\x03\x02\x02\x02" + + "\u0D41\u0D4B\x03\x02\x02\x02\u0D42\u0D43\x07\x9D\x02\x02\u0D43\u0D48\x05" + + "\xE6t\x02\u0D44\u0D45\x07\u0366\x02\x02\u0D45\u0D47\x05\xE6t\x02\u0D46" + + "\u0D44\x03\x02\x02\x02\u0D47\u0D4A\x03\x02\x02\x02\u0D48\u0D46\x03\x02" + + "\x02\x02\u0D48\u0D49\x03\x02\x02\x02\u0D49\u0D4C\x03\x02\x02\x02\u0D4A" + + "\u0D48\x03\x02\x02\x02\u0D4B\u0D42\x03\x02\x02\x02\u0D4B\u0D4C\x03\x02" + + "\x02\x02\u0D4C\xC9\x03\x02\x02\x02\u0D4D\u0D4E\x07\u0364\x02\x02\u0D4E" + + "\u0D50\x05\xDCo\x02\u0D4F\u0D51\x05\xFE\x80\x02\u0D50\u0D4F\x03\x02\x02" + + "\x02\u0D50\u0D51\x03\x02\x02\x02\u0D51\u0D53\x03\x02\x02\x02\u0D52\u0D54" + + "\x05\u0140\xA1\x02\u0D53\u0D52\x03\x02\x02\x02\u0D53\u0D54\x03\x02\x02" + + "\x02\u0D54\u0D55\x03\x02\x02\x02\u0D55\u0D57\x07\u0365\x02\x02\u0D56\u0D58" + + "\x05\xFE\x80\x02\u0D57\u0D56\x03\x02\x02\x02\u0D57\u0D58\x03\x02\x02\x02" + + "\u0D58\u0D5A\x03\x02\x02\x02\u0D59\u0D5B\x05\u0140\xA1\x02\u0D5A\u0D59" + + "\x03\x02\x02\x02\u0D5A\u0D5B\x03\x02\x02\x02\u0D5B\u0D5D\x03\x02\x02\x02" + + "\u0D5C\u0D5E\x05\u0130\x99\x02\u0D5D\u0D5C\x03\x02\x02\x02\u0D5D\u0D5E" + + "\x03\x02\x02\x02\u0D5E\xCB\x03\x02\x02\x02\u0D5F\u0D61\x07\x91\x02\x02" + + "\u0D60\u0D62\t2\x02\x02\u0D61\u0D60\x03\x02\x02\x02\u0D61\u0D62\x03\x02" + + "\x02\x02\u0D62\u0D64\x03\x02\x02\x02\u0D63\u0D65\x07Z\x02\x02\u0D64\u0D63" + + "\x03\x02\x02\x02\u0D64\u0D65\x03\x02\x02\x02\u0D65\u0D66\x03\x02\x02\x02" + + "\u0D66\u0D6C\x05\u0290\u0149\x02\u0D67\u0D68\x07\x84\x02\x02\u0D68\u0D69" + + "\x07\u0364\x02\x02\u0D69\u0D6A\x05\u02A2\u0152\x02\u0D6A\u0D6B\x07\u0365" + + "\x02\x02\u0D6B\u0D6D\x03\x02\x02\x02\u0D6C\u0D67\x03\x02\x02\x02\u0D6C" + + "\u0D6D\x03\x02\x02\x02\u0D6D\u0D76\x03\x02\x02\x02\u0D6E\u0D6F\x07\u0364" + + "\x02\x02\u0D6F\u0D70\x05\u0298\u014D\x02\u0D70\u0D71\x07\u0365\x02\x02" + + "\u0D71\u0D73\x03\x02\x02\x02\u0D72\u0D6E\x03\x02\x02\x02\u0D72\u0D73\x03" + + "\x02\x02\x02\u0D73\u0D74\x03\x02\x02\x02\u0D74\u0D77\x05\xE0q\x02\u0D75" + + "\u0D77\x05\xE4s\x02\u0D76\u0D72\x03\x02\x02\x02\u0D76\u0D75\x03\x02\x02" + + "\x02\u0D77\xCD\x03\x02\x02\x02\u0D78\u0D7A\x05\u0116\x8C\x02\u0D79\u0D7B" + + "\x05\xEAv\x02\u0D7A\u0D79\x03\x02\x02\x02\u0D7A\u0D7B\x03\x02\x02\x02" + + "\u0D7B\u0DBE\x03\x02\x02\x02\u0D7C\u0D7E\x05\u0118\x8D\x02\u0D7D\u0D7F" + + "\x05\xEAv\x02\u0D7E\u0D7D\x03\x02\x02\x02\u0D7E\u0D7F\x03\x02\x02\x02" + + "\u0D7F\u0D81\x03\x02\x02\x02\u0D80\u0D82\x05\u0130\x99\x02\u0D81\u0D80" + + "\x03\x02\x02\x02\u0D81\u0D82\x03\x02\x02\x02\u0D82\u0DBE\x03\x02\x02\x02" + + "\u0D83\u0D85\x05\u0112\x8A\x02\u0D84\u0D86\x05\xEAv\x02\u0D85\u0D84\x03" + + "\x02\x02\x02\u0D85\u0D86\x03\x02\x02\x02\u0D86\u0DBE\x03\x02\x02\x02\u0D87" + + "\u0D89\x05\u0118\x8D\x02\u0D88\u0D8A\x05\u011C\x8F\x02\u0D89\u0D88\x03" + + "\x02\x02\x02\u0D8A\u0D8B\x03\x02\x02\x02\u0D8B\u0D89\x03\x02\x02\x02\u0D8B" + + "\u0D8C\x03\x02\x02\x02\u0D8C\u0D95\x03\x02\x02\x02\u0D8D\u0D8F\x07\xB7" + + "\x02\x02\u0D8E\u0D90\t.\x02\x02\u0D8F\u0D8E\x03\x02\x02\x02\u0D8F\u0D90" + + "\x03\x02\x02\x02\u0D90\u0D93\x03\x02\x02\x02\u0D91\u0D94\x05\u0116\x8C" + + "\x02\u0D92\u0D94\x05\u0112\x8A\x02\u0D93\u0D91\x03\x02\x02\x02\u0D93\u0D92" + + "\x03\x02\x02\x02\u0D94\u0D96\x03\x02\x02\x02\u0D95\u0D8D\x03\x02\x02\x02" + + "\u0D95\u0D96\x03\x02\x02\x02\u0D96\u0D98\x03\x02\x02\x02\u0D97\u0D99\x05" + + "\xFE\x80\x02\u0D98\u0D97\x03\x02\x02\x02\u0D98\u0D99\x03\x02\x02\x02\u0D99" + + "\u0D9B\x03\x02\x02\x02\u0D9A\u0D9C\x05\u0140\xA1\x02\u0D9B\u0D9A\x03\x02" + + "\x02\x02\u0D9B\u0D9C\x03\x02\x02\x02\u0D9C\u0D9E\x03\x02\x02\x02\u0D9D" + + "\u0D9F\x05\xEAv\x02\u0D9E\u0D9D\x03\x02\x02\x02\u0D9E\u0D9F\x03\x02\x02" + + "\x02\u0D9F\u0DBE\x03\x02\x02\x02\u0DA0\u0DA2\x05\u0114\x8B\x02\u0DA1\u0DA3" + + "\x05\u011A\x8E\x02\u0DA2\u0DA1\x03\x02\x02\x02\u0DA3\u0DA4\x03\x02\x02" + + "\x02\u0DA4\u0DA2\x03\x02\x02\x02\u0DA4\u0DA5\x03\x02\x02\x02\u0DA5\u0DAB" + + "\x03\x02\x02\x02\u0DA6\u0DA8\x07\xB7\x02\x02\u0DA7\u0DA9\t.\x02\x02\u0DA8" + + "\u0DA7\x03\x02\x02\x02\u0DA8\u0DA9\x03\x02\x02\x02\u0DA9\u0DAA\x03\x02" + + "\x02\x02\u0DAA\u0DAC\x05\u0112\x8A\x02\u0DAB\u0DA6\x03\x02\x02\x02\u0DAB" + + "\u0DAC\x03\x02\x02\x02\u0DAC\u0DAE\x03\x02\x02\x02\u0DAD\u0DAF\x05\xFE" + + "\x80\x02\u0DAE\u0DAD\x03\x02\x02\x02\u0DAE\u0DAF\x03\x02\x02\x02\u0DAF" + + "\u0DB1\x03\x02\x02\x02\u0DB0\u0DB2\x05\u0140\xA1\x02\u0DB1\u0DB0\x03\x02" + + "\x02\x02\u0DB1\u0DB2\x03\x02\x02\x02\u0DB2\u0DB4\x03\x02\x02\x02\u0DB3" + + "\u0DB5\x05\xEAv\x02\u0DB4\u0DB3\x03\x02\x02\x02\u0DB4\u0DB5\x03\x02\x02" + + "\x02\u0DB5\u0DBE\x03\x02\x02\x02\u0DB6\u0DB9\x05\u0118\x8D\x02\u0DB7\u0DB8" + + "\x07\u0366\x02\x02\u0DB8\u0DBA\x05\u011E\x90\x02\u0DB9\u0DB7\x03\x02\x02" + + "\x02\u0DBA\u0DBB\x03\x02\x02\x02\u0DBB\u0DB9\x03\x02\x02\x02\u0DBB\u0DBC" + + "\x03\x02\x02\x02\u0DBC\u0DBE\x03\x02\x02\x02\u0DBD\u0D78\x03\x02\x02\x02" + + "\u0DBD\u0D7C\x03\x02\x02\x02\u0DBD\u0D83\x03\x02\x02\x02\u0DBD\u0D87\x03" + + "\x02\x02\x02\u0DBD\u0DA0\x03\x02\x02\x02\u0DBD\u0DB6\x03\x02\x02\x02\u0DBE" + + "\xCF\x03\x02\x02\x02\u0DBF\u0DC1\x050\x19\x02\u0DC0\u0DBF\x03\x02\x02" + + "\x02\u0DC0\u0DC1\x03\x02\x02\x02\u0DC1\u0DC2\x03\x02\x02\x02\u0DC2\u0DC4" + + "\x05\xD2j\x02\u0DC3\u0DC5\x05\xFE\x80\x02\u0DC4\u0DC3\x03\x02\x02\x02" + + "\u0DC4\u0DC5\x03\x02\x02\x02\u0DC5\u0DC7\x03\x02\x02\x02\u0DC6\u0DC8\x05" + + "\u0140\xA1\x02\u0DC7\u0DC6\x03\x02\x02\x02\u0DC7\u0DC8\x03\x02\x02\x02" + + "\u0DC8\u0DCA\x03\x02\x02\x02\u0DC9\u0DCB\x05\u0130\x99\x02\u0DCA\u0DC9" + + "\x03\x02\x02\x02\u0DCA\u0DCB\x03\x02\x02\x02\u0DCB\xD1\x03\x02\x02\x02" + + "\u0DCC\u0DCD\bj\x01\x02\u0DCD\u0DCE\x05\xD4k\x02\u0DCE\u0DDD\x03\x02\x02" + + "\x02\u0DCF\u0DD0\f\x04\x02\x02\u0DD0\u0DD2\x07\xB7\x02\x02\u0DD1\u0DD3" + + "\t.\x02\x02\u0DD2\u0DD1\x03\x02\x02\x02\u0DD2\u0DD3\x03\x02\x02\x02\u0DD3" + + "\u0DD4\x03\x02\x02\x02\u0DD4\u0DDC\x05\xD4k\x02\u0DD5\u0DD6\f\x03\x02" + + "\x02\u0DD6\u0DD8\x07=\x02\x02\u0DD7\u0DD9\t.\x02\x02\u0DD8\u0DD7\x03\x02" + + "\x02\x02\u0DD8\u0DD9\x03\x02\x02\x02\u0DD9\u0DDA\x03\x02\x02\x02\u0DDA" + + "\u0DDC\x05\xD4k\x02\u0DDB\u0DCF\x03\x02\x02\x02\u0DDB\u0DD5\x03\x02\x02" + + "\x02\u0DDC\u0DDF\x03\x02\x02\x02\u0DDD\u0DDB\x03\x02\x02\x02\u0DDD\u0DDE" + + "\x03\x02\x02\x02\u0DDE\xD3\x03\x02\x02\x02\u0DDF\u0DDD\x03\x02\x02\x02" + + "\u0DE0\u0DE1\bk\x01\x02\u0DE1\u0DE2\x05\xD6l\x02\u0DE2\u0DEB\x03\x02\x02" + + "\x02\u0DE3\u0DE4\f\x03\x02\x02\u0DE4\u0DE6\x07\u033E\x02\x02\u0DE5\u0DE7" + + "\t.\x02\x02\u0DE6\u0DE5\x03\x02\x02\x02\u0DE6\u0DE7\x03\x02\x02\x02\u0DE7" + + "\u0DE8\x03\x02\x02\x02\u0DE8\u0DEA\x05\xD6l\x02\u0DE9\u0DE3\x03\x02\x02" + + "\x02\u0DEA\u0DED\x03\x02\x02\x02\u0DEB\u0DE9\x03\x02\x02\x02\u0DEB\u0DEC" + + "\x03\x02\x02\x02\u0DEC\xD5\x03\x02\x02\x02\u0DED\u0DEB\x03\x02\x02\x02" + + "\u0DEE\u0DFD\x05\xDEp\x02\u0DEF\u0DF0\x07\u0364\x02\x02\u0DF0\u0DF2\x05" + + "\xD2j\x02\u0DF1\u0DF3\x05\xFE\x80\x02\u0DF2\u0DF1\x03\x02\x02\x02\u0DF2" + + "\u0DF3\x03\x02\x02\x02\u0DF3\u0DF5\x03\x02\x02\x02\u0DF4\u0DF6\x05\u0140" + + "\xA1\x02\u0DF5\u0DF4\x03\x02\x02\x02\u0DF5\u0DF6\x03\x02\x02\x02\u0DF6" + + "\u0DF8\x03\x02\x02\x02\u0DF7\u0DF9\x05\u0130\x99\x02\u0DF8\u0DF7\x03\x02" + + "\x02\x02\u0DF8\u0DF9\x03\x02\x02\x02\u0DF9\u0DFA\x03\x02\x02\x02\u0DFA" + + "\u0DFB\x07\u0365\x02\x02\u0DFB\u0DFD\x03\x02\x02\x02\u0DFC\u0DEE\x03\x02" + + "\x02\x02\u0DFC\u0DEF\x03\x02\x02\x02\u0DFD\xD7\x03\x02\x02\x02\u0DFE\u0E01" + + "\x05\xFA~\x02\u0DFF\u0E01\x05\xFC\x7F\x02\u0E00\u0DFE\x03\x02\x02\x02" + + "\u0E00\u0DFF\x03\x02\x02\x02\u0E01\xD9\x03\x02\x02\x02\u0E02\u0E06\x05" + + "\xE2r\x02\u0E03\u0E04\x07\x7F\x02\x02\u0E04\u0E05\x07\x16\x02\x02\u0E05" + + "\u0E07\x05\u02A6\u0154\x02\u0E06\u0E03\x03\x02\x02\x02\u0E06\u0E07\x03" + + "\x02\x02\x02\u0E07\u0E0A\x03\x02\x02\x02\u0E08\u0E09\x07f\x02\x02\u0E09" + + "\u0E0B\x05\u0142\xA2\x02\u0E0A\u0E08\x03\x02\x02\x02\u0E0A\u0E0B\x03\x02" + + "\x02\x02\u0E0B\xDB\x03\x02\x02\x02\u0E0C\u0E11\x05\xDEp\x02\u0E0D\u0E0E" + + "\t3\x02\x02\u0E0E\u0E10\x05\xDEp\x02\u0E0F\u0E0D\x03\x02\x02\x02\u0E10" + + "\u0E13\x03\x02\x02\x02\u0E11\u0E0F\x03\x02\x02\x02\u0E11\u0E12\x03\x02" + + "\x02\x02\u0E12\u0E15\x03\x02\x02\x02\u0E13\u0E11\x03\x02\x02\x02\u0E14" + + "\u0E16\x05\xFE\x80\x02\u0E15\u0E14\x03\x02\x02\x02\u0E15\u0E16\x03\x02" + + "\x02\x02\u0E16\u0E18\x03\x02\x02\x02\u0E17\u0E19\x05\u0140\xA1\x02\u0E18" + + "\u0E17\x03\x02\x02\x02\u0E18\u0E19\x03\x02\x02\x02\u0E19\u0E1B\x03\x02" + + "\x02\x02\u0E1A\u0E1C\x05\u0130\x99\x02\u0E1B\u0E1A\x03\x02\x02\x02\u0E1B" + + "\u0E1C\x03\x02\x02\x02\u0E1C\xDD\x03\x02\x02\x02\u0E1D\u0E21\x05\xCEh" + + "\x02\u0E1E\u0E21\x05\u026E\u0138\x02\u0E1F\u0E21\x05\xDAn\x02\u0E20\u0E1D" + + "\x03\x02\x02\x02\u0E20\u0E1E\x03\x02\x02\x02\u0E20\u0E1F\x03\x02\x02\x02" + + "\u0E21\xDF\x03\x02\x02\x02\u0E22\u0E28\x05\xCEh\x02\u0E23\u0E24\x07\xAF" + + "\x02\x02\u0E24\u0E28\x05\u0290\u0149\x02\u0E25\u0E28\x05\u02EA\u0176\x02" + + "\u0E26\u0E28\x05\xE2r\x02\u0E27\u0E22\x03\x02\x02\x02\u0E27\u0E23\x03" + + "\x02\x02\x02\u0E27\u0E25\x03\x02\x02\x02\u0E27\u0E26\x03\x02\x02\x02\u0E28" + + "\xE1\x03\x02\x02\x02\u0E29\u0E2A\x07\xBF\x02\x02\u0E2A\u0E2B\x07\u024C" + + "\x02\x02\u0E2B\u0E31\x05\u02EC\u0177\x02\u0E2C\u0E2D\x07\u0366\x02\x02" + + "\u0E2D\u0E2E\x07\u024C\x02\x02\u0E2E\u0E30\x05\u02EC\u0177\x02\u0E2F\u0E2C" + + "\x03\x02\x02\x02\u0E30\u0E33\x03\x02\x02\x02\u0E31\u0E2F\x03\x02\x02\x02" + + "\u0E31\u0E32\x03\x02\x02\x02\u0E32\xE3\x03\x02\x02\x02\u0E33\u0E31\x03" + + "\x02\x02\x02\u0E34\u0E35\x07\x9D\x02\x02\u0E35\u0E3A\x05\xE6t\x02\u0E36" + + "\u0E37\x07\u0366\x02\x02\u0E37\u0E39\x05\xE6t\x02\u0E38\u0E36\x03\x02" + + "\x02\x02\u0E39\u0E3C\x03\x02\x02\x02\u0E3A\u0E38\x03\x02\x02\x02\u0E3A" + + "\u0E3B\x03\x02\x02\x02\u0E3B\xE5\x03\x02\x02\x02\u0E3C\u0E3A\x03\x02\x02" + + "\x02\u0E3D\u0E3E\x05\u029A\u014E\x02\u0E3E\u0E3F\x07\u035B\x02\x02\u0E3F" + + "\u0E40\x05\u02EE\u0178\x02\u0E40\xE7\x03\x02\x02\x02\u0E41\u0E44\x05\u02C6" + + "\u0164\x02\u0E42\u0E44\x07\u037F\x02\x02\u0E43\u0E41\x03\x02\x02\x02\u0E43" + + "\u0E42\x03\x02\x02\x02\u0E44\xE9\x03\x02\x02\x02\u0E45\u0E46\x07C\x02" + + "\x02\u0E46\u0E50\t4\x02\x02\u0E47\u0E48\x07\u0200\x02\x02\u0E48\u0E4D" + + "\x05\u0290\u0149\x02\u0E49\u0E4A\x07\u0366\x02\x02\u0E4A\u0E4C\x05\u0290" + + "\u0149\x02\u0E4B\u0E49\x03\x02\x02\x02\u0E4C\u0E4F\x03\x02\x02\x02\u0E4D" + + "\u0E4B\x03\x02\x02\x02\u0E4D\u0E4E\x03\x02\x02\x02\u0E4E\u0E51\x03\x02" + + "\x02\x02\u0E4F\u0E4D\x03\x02\x02\x02\u0E50\u0E47\x03\x02\x02\x02\u0E50" + + "\u0E51\x03\x02\x02\x02\u0E51\u0E54\x03\x02\x02\x02\u0E52\u0E53\t5\x02" + + "\x02\u0E53\u0E55\x07k\x02\x02\u0E54\u0E52\x03\x02\x02\x02\u0E54\u0E55" + + "\x03\x02\x02\x02\u0E55\u0E5B\x03\x02\x02\x02\u0E56\u0E57\x07j\x02\x02" + + "\u0E57\u0E58\x07R\x02\x02\u0E58\u0E59\x07\u0254\x02\x02\u0E59\u0E5B\x07" + + "\u01ED\x02\x02\u0E5A\u0E45\x03\x02\x02\x02\u0E5A\u0E56\x03\x02\x02\x02" + + "\u0E5B\xEB\x03\x02\x02\x02\u0E5C\u0E5E\x07.\x02\x02\u0E5D\u0E5F\x07m\x02" + + "\x02\u0E5E\u0E5D\x03\x02\x02\x02\u0E5E\u0E5F\x03\x02\x02\x02\u0E5F\u0E61" + + "\x03\x02\x02\x02\u0E60\u0E62\x07\u0227\x02\x02\u0E61\u0E60\x03\x02\x02" + + "\x02\u0E61\u0E62\x03\x02\x02\x02\u0E62\u0E64\x03\x02\x02\x02\u0E63\u0E65" + + "\x07Q\x02\x02\u0E64\u0E63\x03\x02\x02\x02\u0E64\u0E65\x03\x02\x02\x02" + + "\u0E65\u0E66\x03\x02\x02\x02\u0E66\u0E67\x07F\x02\x02\u0E67\u0E6C\x05" + + "\u0290\u0149\x02\u0E68\u0E6A\x07\x0F\x02\x02\u0E69\u0E68\x03\x02\x02\x02" + + "\u0E69\u0E6A\x03\x02\x02\x02\u0E6A\u0E6B\x03\x02\x02\x02\u0E6B\u0E6D\x05" + + "\u02C6\u0164\x02\u0E6C\u0E69\x03\x02\x02\x02\u0E6C\u0E6D\x03\x02\x02\x02" + + "\u0E6D\u0E73\x03\x02\x02\x02\u0E6E\u0E6F\x07\x84\x02\x02\u0E6F\u0E70\x07" + + "\u0364\x02\x02\u0E70\u0E71\x05\u02A2\u0152\x02\u0E71\u0E72\x07\u0365\x02" + + "\x02\u0E72\u0E74\x03\x02\x02\x02\u0E73\u0E6E\x03\x02\x02\x02\u0E73\u0E74" + + "\x03\x02\x02\x02\u0E74\u0E77\x03\x02\x02\x02\u0E75\u0E76\x07\xC2\x02\x02" + + "\u0E76\u0E78\x05\u0328\u0195\x02\u0E77\u0E75\x03\x02\x02\x02\u0E77\u0E78" + + "\x03\x02\x02\x02\u0E78\u0E7A\x03\x02\x02\x02\u0E79\u0E7B\x05\xFE\x80\x02" + + "\u0E7A\u0E79\x03\x02\x02\x02\u0E7A\u0E7B\x03\x02\x02\x02\u0E7B\u0E7E\x03" + + "\x02\x02\x02\u0E7C\u0E7D\x07f\x02\x02\u0E7D\u0E7F\x05\u0142\xA2\x02\u0E7E" + + "\u0E7C\x03\x02\x02\x02\u0E7E\u0E7F\x03\x02\x02\x02\u0E7F\xED\x03\x02\x02" + + "\x02\u0E80\u0E82\x07.\x02\x02\u0E81\u0E83\x07m\x02\x02\u0E82\u0E81\x03" + + "\x02\x02\x02\u0E82\u0E83\x03\x02\x02\x02\u0E83\u0E85\x03\x02\x02\x02\u0E84" + + "\u0E86\x07\u0227\x02\x02\u0E85\u0E84\x03\x02\x02\x02\u0E85\u0E86\x03\x02" + + "\x02\x02\u0E86\u0E88\x03\x02\x02\x02\u0E87\u0E89\x07Q\x02\x02\u0E88\u0E87" + + "\x03\x02\x02\x02\u0E88\u0E89\x03\x02\x02\x02\u0E89\u0EB1\x03\x02\x02\x02" + + "\u0E8A\u0E8D\x05\u0290\u0149\x02\u0E8B\u0E8C\x07\u0363\x02\x02\u0E8C\u0E8E" + + "\x07\u0354\x02\x02\u0E8D\u0E8B\x03\x02\x02\x02\u0E8D\u0E8E\x03\x02\x02" + + "\x02\u0E8E\u0E97\x03\x02\x02\x02\u0E8F\u0E90\x07\u0366\x02\x02\u0E90\u0E93" + + "\x05\u0290\u0149\x02\u0E91\u0E92\x07\u0363\x02\x02\u0E92\u0E94\x07\u0354" + + "\x02\x02\u0E93\u0E91\x03\x02\x02\x02\u0E93\u0E94\x03\x02\x02\x02\u0E94" + + "\u0E96\x03\x02\x02\x02\u0E95\u0E8F\x03\x02\x02\x02\u0E96\u0E99\x03\x02" + + "\x02\x02\u0E97\u0E95\x03\x02\x02\x02\u0E97\u0E98\x03\x02\x02\x02\u0E98" + + "\u0E9A\x03\x02\x02\x02\u0E99\u0E97\x03\x02\x02\x02\u0E9A\u0E9B\x07F\x02" + + "\x02\u0E9B\u0E9C\x05\u0102\x82\x02\u0E9C\u0EB2\x03\x02\x02\x02\u0E9D\u0E9E" + + "\x07F\x02\x02\u0E9E\u0EA1\x05\u0290\u0149\x02\u0E9F\u0EA0\x07\u0363\x02" + + "\x02\u0EA0\u0EA2\x07\u0354\x02\x02\u0EA1\u0E9F\x03\x02\x02\x02\u0EA1\u0EA2" + + "\x03\x02\x02\x02\u0EA2\u0EAB\x03\x02\x02\x02\u0EA3\u0EA4\x07\u0366\x02" + + "\x02\u0EA4\u0EA7\x05\u0290\u0149\x02\u0EA5\u0EA6\x07\u0363\x02\x02\u0EA6" + + "\u0EA8\x07\u0354\x02\x02\u0EA7\u0EA5\x03\x02\x02\x02\u0EA7\u0EA8\x03\x02" + + "\x02\x02\u0EA8\u0EAA\x03\x02\x02\x02\u0EA9\u0EA3\x03\x02\x02\x02\u0EAA" + + "\u0EAD\x03\x02\x02\x02\u0EAB\u0EA9\x03\x02\x02\x02\u0EAB\u0EAC\x03\x02" + + "\x02\x02\u0EAC\u0EAE\x03\x02\x02\x02\u0EAD\u0EAB\x03\x02\x02\x02\u0EAE" + + "\u0EAF\x07\xBE\x02\x02\u0EAF\u0EB0\x05\u0102\x82\x02\u0EB0\u0EB2\x03\x02" + + "\x02\x02\u0EB1\u0E8A\x03\x02\x02\x02\u0EB1\u0E9D\x03\x02\x02\x02\u0EB2" + + "\u0EB5\x03\x02\x02\x02\u0EB3\u0EB4\x07\xC2\x02\x02\u0EB4\u0EB6\x05\u0328" + + "\u0195\x02\u0EB5\u0EB3\x03\x02\x02\x02\u0EB5\u0EB6\x03\x02\x02\x02\u0EB6" + + "\xEF\x03\x02\x02\x02\u0EB7\u0EB8\x07\u01A3\x02\x02\u0EB8\u0EB9\x05\u0290" + + "\u0149\x02\u0EB9\u0EBE\x07\u0206\x02\x02\u0EBA\u0EBC\x07\x0F\x02\x02\u0EBB" + + "\u0EBA\x03\x02\x02\x02\u0EBB\u0EBC\x03\x02\x02\x02\u0EBC\u0EBD\x03\x02" + + "\x02\x02\u0EBD\u0EBF\x05\u02C6\u0164\x02\u0EBE\u0EBB\x03\x02\x02\x02\u0EBE" + + "\u0EBF\x03\x02\x02\x02\u0EBF\xF1\x03\x02\x02\x02\u0EC0\u0EC1\x07\u01A3" + + "\x02\x02\u0EC1\u0EC2\x05\u0290\u0149\x02\u0EC2\u0EC3\x07\x89\x02\x02\u0EC3" + + "\u0ECA\x05\u0286\u0144\x02\u0EC4\u0EC5\x05\u0332\u019A\x02\u0EC5\u0EC6" + + "\x07\u0364\x02\x02\u0EC6\u0EC7\x05\u02F0\u0179\x02\u0EC7\u0EC8\x07\u0365" + + "\x02\x02\u0EC8\u0ECB\x03\x02\x02\x02\u0EC9\u0ECB\t6\x02\x02\u0ECA\u0EC4" + + "\x03\x02\x02\x02\u0ECA\u0EC9\x03\x02\x02\x02\u0ECB\u0ECE\x03\x02\x02\x02" + + "\u0ECC\u0ECD\x07\xC2\x02\x02\u0ECD\u0ECF\x05\u0328\u0195\x02\u0ECE\u0ECC" + + "\x03\x02\x02\x02\u0ECE\u0ECF\x03\x02\x02\x02\u0ECF\u0ED2\x03\x02\x02\x02" + + "\u0ED0\u0ED1\x07f\x02\x02\u0ED1\u0ED3\x05\u0142\xA2\x02\u0ED2\u0ED0\x03" + + "\x02\x02\x02\u0ED2\u0ED3\x03\x02\x02\x02\u0ED3\xF3\x03\x02\x02\x02\u0ED4" + + "\u0ED5\x07\u01A3\x02\x02\u0ED5\u0ED6\x05\u0290\u0149\x02\u0ED6\u0ED7\x07" + + "\x89\x02\x02\u0ED7\u0EDA\t7\x02\x02\u0ED8\u0ED9\x07\xC2\x02\x02\u0ED9" + + "\u0EDB\x05\u0328\u0195\x02\u0EDA\u0ED8\x03\x02\x02\x02\u0EDA\u0EDB\x03" + + "\x02\x02\x02\u0EDB\u0EDE\x03\x02\x02\x02\u0EDC\u0EDD\x07f\x02\x02\u0EDD" + + "\u0EDF\x05\u0142\xA2\x02\u0EDE\u0EDC\x03\x02\x02\x02\u0EDE\u0EDF\x03\x02" + + "\x02\x02\u0EDF\xF5\x03\x02\x02\x02\u0EE0\u0EE1\x07\u01A3\x02\x02\u0EE1" + + "\u0EE2\x05\u0290\u0149\x02\u0EE2\u0EE3\x07\u0150\x02\x02\u0EE3\xF7\x03" + + "\x02\x02\x02\u0EE4\u0EE5\x07\u01AB\x02\x02\u0EE5\u0EE6\x07\xAF\x02\x02" + + "\u0EE6\u0EE7\x07F\x02\x02\u0EE7\u0EEC\x05\u02D0\u0169\x02\u0EE8\u0EE9" + + "\x07\u0366\x02"; + private static readonly _serializedATNSegment9: string = + "\x02\u0EE9\u0EEB\x05\u02D0\u0169\x02\u0EEA\u0EE8\x03\x02\x02\x02\u0EEB" + + "\u0EEE\x03\x02\x02\x02\u0EEC\u0EEA\x03\x02\x02\x02\u0EEC\u0EED\x03\x02" + + "\x02\x02\u0EED\xF9\x03\x02\x02\x02\u0EEE\u0EEC\x03\x02\x02\x02\u0EEF\u0EF1" + + "\x07\xBB\x02\x02\u0EF0\u0EF2\x07m\x02\x02\u0EF1\u0EF0\x03\x02\x02\x02" + + "\u0EF1\u0EF2\x03\x02\x02\x02\u0EF2\u0EF4\x03\x02\x02\x02\u0EF3\u0EF5\x07" + + "Q\x02\x02\u0EF4\u0EF3\x03\x02\x02\x02\u0EF4\u0EF5\x03\x02\x02\x02\u0EF5" + + "\u0EF6\x03\x02\x02\x02\u0EF6\u0EFB\x05\u0290\u0149\x02\u0EF7\u0EF9\x07" + + "\x0F\x02\x02\u0EF8\u0EF7\x03\x02\x02\x02\u0EF8\u0EF9\x03\x02\x02\x02\u0EF9" + + "\u0EFA\x03\x02\x02\x02\u0EFA\u0EFC\x05\u02C6\u0164\x02\u0EFB\u0EF8\x03" + + "\x02\x02\x02\u0EFB\u0EFC\x03\x02\x02\x02\u0EFC\u0EFD\x03\x02\x02\x02\u0EFD" + + "\u0EFE\x07\x9D\x02\x02\u0EFE\u0F03\x05\xE6t\x02\u0EFF\u0F00\x07\u0366" + + "\x02\x02\u0F00\u0F02\x05\xE6t\x02\u0F01\u0EFF\x03\x02\x02\x02\u0F02\u0F05" + + "\x03\x02\x02\x02\u0F03\u0F01\x03\x02\x02\x02\u0F03\u0F04\x03\x02\x02\x02" + + "\u0F04\u0F08\x03\x02\x02\x02\u0F05\u0F03\x03\x02\x02\x02\u0F06\u0F07\x07" + + "\xC2\x02\x02\u0F07\u0F09\x05\u0328\u0195\x02\u0F08\u0F06\x03\x02\x02\x02" + + "\u0F08\u0F09\x03\x02\x02\x02\u0F09\u0F0B\x03\x02\x02\x02\u0F0A\u0F0C\x05" + + "\xFE\x80\x02\u0F0B\u0F0A\x03\x02\x02\x02\u0F0B\u0F0C\x03\x02\x02\x02\u0F0C" + + "\u0F0E\x03\x02\x02\x02\u0F0D\u0F0F\x05\u0140\xA1\x02\u0F0E\u0F0D\x03\x02" + + "\x02\x02\u0F0E\u0F0F\x03\x02\x02\x02\u0F0F\xFB\x03\x02\x02\x02\u0F10\u0F12" + + "\x07\xBB\x02\x02\u0F11\u0F13\x07m\x02\x02\u0F12\u0F11\x03\x02\x02\x02" + + "\u0F12\u0F13\x03\x02\x02\x02\u0F13\u0F15\x03\x02\x02\x02\u0F14\u0F16\x07" + + "Q\x02\x02\u0F15\u0F14\x03\x02\x02\x02\u0F15\u0F16\x03\x02\x02\x02\u0F16" + + "\u0F17\x03\x02\x02\x02\u0F17\u0F18\x05\u0102\x82\x02\u0F18\u0F19\x07\x9D" + + "\x02\x02\u0F19\u0F1E\x05\xE6t\x02\u0F1A\u0F1B\x07\u0366\x02\x02\u0F1B" + + "\u0F1D\x05\xE6t\x02\u0F1C\u0F1A\x03\x02\x02\x02\u0F1D\u0F20\x03\x02\x02" + + "\x02\u0F1E\u0F1C\x03\x02\x02\x02\u0F1E\u0F1F\x03\x02\x02\x02\u0F1F\u0F23" + + "\x03\x02\x02\x02\u0F20\u0F1E\x03\x02\x02\x02\u0F21\u0F22\x07\xC2\x02\x02" + + "\u0F22\u0F24\x05\u0328\u0195\x02\u0F23\u0F21\x03\x02\x02\x02\u0F23\u0F24" + + "\x03\x02\x02\x02\u0F24\xFD\x03\x02\x02\x02\u0F25\u0F26\x07\x7F\x02\x02" + + "\u0F26\u0F27\x07\x16\x02\x02\u0F27\u0F2C\x05\u0100\x81\x02\u0F28\u0F29" + + "\x07\u0366\x02\x02\u0F29\u0F2B\x05\u0100\x81\x02\u0F2A\u0F28\x03\x02\x02" + + "\x02\u0F2B\u0F2E\x03\x02\x02\x02\u0F2C\u0F2A\x03\x02\x02\x02\u0F2C\u0F2D" + + "\x03\x02\x02\x02\u0F2D\xFF\x03\x02\x02\x02\u0F2E\u0F2C\x03\x02\x02\x02" + + "\u0F2F\u0F31\x05\u0328\u0195\x02\u0F30\u0F32\t8\x02\x02\u0F31\u0F30\x03" + + "\x02\x02\x02\u0F31\u0F32\x03\x02\x02\x02\u0F32\u0101\x03\x02\x02\x02\u0F33" + + "\u0F38\x05\u0104\x83\x02\u0F34\u0F35\x07\u0366\x02\x02\u0F35\u0F37\x05" + + "\u0104\x83\x02\u0F36\u0F34\x03\x02\x02\x02\u0F37\u0F3A\x03\x02\x02\x02" + + "\u0F38\u0F36\x03\x02\x02\x02\u0F38\u0F39\x03\x02\x02\x02\u0F39\u0103\x03" + + "\x02\x02\x02\u0F3A\u0F38\x03\x02\x02\x02\u0F3B\u0F3F\x05\u0106\x84\x02" + + "\u0F3C\u0F3E\x05\u010E\x88\x02\u0F3D\u0F3C\x03\x02\x02\x02\u0F3E\u0F41" + + "\x03\x02\x02\x02\u0F3F\u0F3D\x03\x02\x02\x02\u0F3F\u0F40\x03\x02\x02\x02" + + "\u0F40\u0F4E\x03\x02\x02\x02\u0F41\u0F3F\x03\x02\x02\x02\u0F42\u0F43\x07" + + "\u0364\x02\x02\u0F43\u0F47\x05\u0106\x84\x02\u0F44\u0F46\x05\u010E\x88" + + "\x02\u0F45\u0F44\x03\x02\x02\x02\u0F46\u0F49\x03\x02\x02\x02\u0F47\u0F45" + + "\x03\x02\x02\x02\u0F47\u0F48\x03\x02\x02\x02\u0F48\u0F4A\x03\x02\x02\x02" + + "\u0F49\u0F47\x03\x02\x02\x02\u0F4A\u0F4B\x07\u0365\x02\x02\u0F4B\u0F4E" + + "\x03\x02\x02\x02\u0F4C\u0F4E\x05\u0120\x91\x02\u0F4D\u0F3B\x03\x02\x02" + + "\x02\u0F4D\u0F42\x03\x02\x02\x02\u0F4D\u0F4C\x03\x02\x02\x02\u0F4E\u0105" + + "\x03\x02\x02\x02\u0F4F\u0F55\x05\u0290\u0149\x02\u0F50\u0F51\x07\x84\x02" + + "\x02\u0F51\u0F52\x07\u0364\x02\x02\u0F52\u0F53\x05\u02A2\u0152\x02\u0F53" + + "\u0F54\x07\u0365\x02\x02\u0F54\u0F56\x03\x02\x02\x02\u0F55\u0F50\x03\x02" + + "\x02\x02\u0F55\u0F56\x03\x02\x02\x02\u0F56\u0F5B\x03\x02\x02\x02\u0F57" + + "\u0F59\x07\x0F\x02\x02\u0F58\u0F57\x03\x02\x02\x02\u0F58\u0F59\x03\x02" + + "\x02\x02\u0F59\u0F5A\x03\x02\x02\x02\u0F5A\u0F5C\x05\u02C6\u0164\x02\u0F5B" + + "\u0F58\x03\x02\x02\x02\u0F5B\u0F5C\x03\x02\x02\x02\u0F5C\u0F65\x03\x02" + + "\x02\x02\u0F5D\u0F62\x05\u010A\x86\x02\u0F5E\u0F5F\x07\u0366\x02\x02\u0F5F" + + "\u0F61\x05\u010A\x86\x02\u0F60\u0F5E\x03\x02\x02\x02\u0F61\u0F64\x03\x02" + + "\x02\x02\u0F62\u0F60\x03\x02\x02\x02\u0F62\u0F63\x03\x02\x02\x02\u0F63" + + "\u0F66\x03\x02\x02\x02\u0F64\u0F62\x03\x02\x02\x02\u0F65\u0F5D\x03\x02" + + "\x02\x02\u0F65\u0F66\x03\x02\x02\x02\u0F66\u0F7D\x03\x02\x02\x02\u0F67" + + "\u0F69\x07a\x02\x02\u0F68\u0F67\x03\x02\x02\x02\u0F68\u0F69\x03\x02\x02" + + "\x02\u0F69\u0F6F\x03\x02\x02\x02\u0F6A\u0F70\x05\xCEh\x02\u0F6B\u0F6C" + + "\x07\u0364\x02\x02\u0F6C\u0F6D\x05\xCEh\x02\u0F6D\u0F6E\x07\u0365\x02" + + "\x02\u0F6E\u0F70\x03\x02\x02\x02\u0F6F\u0F6A\x03\x02\x02\x02\u0F6F\u0F6B" + + "\x03\x02\x02\x02\u0F70\u0F72\x03\x02\x02\x02\u0F71\u0F73\x07\x0F\x02\x02" + + "\u0F72\u0F71\x03\x02\x02\x02\u0F72\u0F73\x03\x02\x02\x02\u0F73\u0F74\x03" + + "\x02\x02\x02\u0F74\u0F76\x05\u02C6\u0164\x02\u0F75\u0F77\x05\u0108\x85" + + "\x02\u0F76\u0F75\x03\x02\x02\x02\u0F76\u0F77\x03\x02\x02\x02\u0F77\u0F7D" + + "\x03\x02\x02\x02\u0F78\u0F79\x07\u0364\x02\x02\u0F79\u0F7A\x05\u0102\x82" + + "\x02\u0F7A\u0F7B\x07\u0365\x02\x02\u0F7B\u0F7D\x03\x02\x02\x02\u0F7C\u0F4F" + + "\x03\x02\x02\x02\u0F7C\u0F68\x03\x02\x02\x02\u0F7C\u0F78\x03\x02\x02\x02" + + "\u0F7D\u0107\x03\x02\x02\x02\u0F7E\u0F7F\x07\u0364\x02\x02\u0F7F\u0F80" + + "\x05\u0298\u014D\x02\u0F80\u0F81\x07\u0365\x02\x02\u0F81\u0109\x03\x02" + + "\x02\x02\u0F82\u0F83\t9\x02\x02\u0F83\u0F86\t\x14\x02\x02\u0F84\u0F85" + + "\x07C\x02\x02\u0F85\u0F87\x05\u010C\x87\x02\u0F86\u0F84\x03\x02\x02\x02" + + "\u0F86\u0F87\x03\x02\x02\x02\u0F87\u0F88\x03\x02\x02\x02\u0F88\u0F8A\x07" + + "\u0364\x02\x02\u0F89\u0F8B\x05\u0284\u0143\x02\u0F8A\u0F89\x03\x02\x02" + + "\x02\u0F8A\u0F8B\x03\x02\x02\x02\u0F8B\u0F8C\x03\x02\x02\x02\u0F8C\u0F8D" + + "\x07\u0365\x02\x02\u0F8D\u010B\x03\x02\x02\x02\u0F8E\u0F94\x07]\x02\x02" + + "\u0F8F\u0F90\x07\x7F\x02\x02\u0F90\u0F94\x07\x16\x02\x02\u0F91\u0F92\x07" + + "L\x02\x02\u0F92\u0F94\x07\x16\x02\x02\u0F93\u0F8E\x03\x02\x02\x02\u0F93" + + "\u0F8F\x03\x02\x02\x02\u0F93\u0F91\x03\x02\x02\x02\u0F94\u010D\x03\x02" + + "\x02\x02\u0F95\u0F97\t:\x02\x02\u0F96\u0F95\x03\x02\x02\x02\u0F96\u0F97" + + "\x03\x02\x02\x02\u0F97\u0F98\x03\x02\x02\x02\u0F98\u0F9A\x07]\x02\x02" + + "\u0F99\u0F9B\x07a\x02\x02\u0F9A\u0F99\x03\x02\x02\x02\u0F9A\u0F9B\x03" + + "\x02\x02\x02\u0F9B\u0F9C\x03\x02\x02\x02\u0F9C\u0FA0\x05\u0106\x84\x02" + + "\u0F9D\u0F9F\x05\u0110\x89\x02\u0F9E\u0F9D\x03\x02\x02\x02\u0F9F\u0FA2" + + "\x03\x02\x02\x02\u0FA0\u0F9E\x03\x02\x02\x02\u0FA0\u0FA1\x03\x02\x02\x02" + + "\u0FA1\u0FC7\x03\x02\x02\x02\u0FA2\u0FA0\x03\x02\x02\x02\u0FA3\u0FA4\x07" + + "\xAE\x02\x02\u0FA4\u0FA8\x05\u0106\x84\x02\u0FA5\u0FA7\x05\u0110\x89\x02" + + "\u0FA6\u0FA5\x03\x02\x02\x02\u0FA7\u0FAA\x03\x02\x02\x02\u0FA8\u0FA6\x03" + + "\x02\x02\x02\u0FA8\u0FA9\x03\x02\x02\x02\u0FA9\u0FC7\x03\x02\x02\x02\u0FAA" + + "\u0FA8\x03\x02\x02\x02\u0FAB\u0FAD\t;\x02\x02\u0FAC\u0FAE\x07\x81\x02" + + "\x02\u0FAD\u0FAC\x03\x02\x02\x02\u0FAD\u0FAE\x03\x02\x02\x02\u0FAE\u0FAF" + + "\x03\x02\x02\x02\u0FAF\u0FB1\x07]\x02\x02\u0FB0\u0FB2\x07a\x02\x02\u0FB1" + + "\u0FB0\x03\x02\x02\x02\u0FB1\u0FB2\x03\x02\x02\x02\u0FB2\u0FB3\x03\x02" + + "\x02\x02\u0FB3\u0FB7\x05\u0106\x84\x02\u0FB4\u0FB6\x05\u0110\x89\x02\u0FB5" + + "\u0FB4\x03\x02\x02\x02\u0FB6\u0FB9\x03\x02\x02\x02\u0FB7\u0FB5\x03\x02" + + "\x02\x02\u0FB7\u0FB8\x03\x02\x02\x02\u0FB8\u0FC7\x03\x02\x02\x02\u0FB9" + + "\u0FB7\x03\x02\x02\x02\u0FBA\u0FC2\x07s\x02\x02\u0FBB\u0FBE\x07V\x02\x02" + + "\u0FBC\u0FBE\t;\x02\x02\u0FBD\u0FBB\x03\x02\x02\x02\u0FBD\u0FBC\x03\x02" + + "\x02\x02\u0FBE\u0FC0\x03\x02\x02\x02\u0FBF\u0FC1\x07\x81\x02\x02\u0FC0" + + "\u0FBF\x03\x02\x02\x02\u0FC0\u0FC1\x03\x02\x02\x02\u0FC1\u0FC3\x03\x02" + + "\x02\x02\u0FC2\u0FBD\x03\x02\x02\x02\u0FC2\u0FC3\x03\x02\x02\x02\u0FC3" + + "\u0FC4\x03\x02\x02\x02\u0FC4\u0FC5\x07]\x02\x02\u0FC5\u0FC7\x05\u0106" + + "\x84\x02\u0FC6\u0F96\x03\x02\x02\x02\u0FC6\u0FA3\x03\x02\x02\x02\u0FC6" + + "\u0FAB\x03\x02\x02\x02\u0FC6\u0FBA\x03\x02\x02\x02\u0FC7\u010F\x03\x02" + + "\x02\x02\u0FC8\u0FC9\x07y\x02\x02\u0FC9\u0FD0\x05\u0328\u0195\x02\u0FCA" + + "\u0FCB\x07\xBE\x02\x02\u0FCB\u0FCC\x07\u0364\x02\x02\u0FCC\u0FCD\x05\u0298" + + "\u014D\x02\u0FCD\u0FCE\x07\u0365\x02\x02\u0FCE\u0FD0\x03\x02\x02\x02\u0FCF" + + "\u0FC8\x03\x02\x02\x02\u0FCF\u0FCA\x03\x02\x02\x02\u0FD0\u0111\x03\x02" + + "\x02\x02\u0FD1\u0FD2\x07\u0364\x02\x02\u0FD2\u0FD3\x05\u0116\x8C\x02\u0FD3" + + "\u0FD4\x07\u0365\x02\x02\u0FD4\u0FDA\x03\x02\x02\x02\u0FD5\u0FD6\x07\u0364" + + "\x02\x02\u0FD6\u0FD7\x05\u0112\x8A\x02\u0FD7\u0FD8\x07\u0365\x02\x02\u0FD8" + + "\u0FDA\x03\x02\x02\x02\u0FD9\u0FD1\x03\x02\x02\x02\u0FD9\u0FD5\x03\x02" + + "\x02\x02\u0FDA\u0113\x03\x02\x02\x02\u0FDB\u0FDC\x07\u0364\x02\x02\u0FDC" + + "\u0FDD\x05\u0118\x8D\x02\u0FDD\u0FDE\x07\u0365\x02\x02\u0FDE\u0FE4\x03" + + "\x02\x02\x02\u0FDF\u0FE0\x07\u0364\x02\x02\u0FE0\u0FE1\x05\u0114\x8B\x02" + + "\u0FE1\u0FE2\x07\u0365\x02\x02\u0FE2\u0FE4\x03\x02\x02\x02\u0FE3\u0FDB" + + "\x03\x02\x02\x02\u0FE3\u0FDF\x03\x02\x02\x02\u0FE4\u0115\x03\x02\x02\x02" + + "\u0FE5\u0FE9\x07\x9C\x02\x02\u0FE6\u0FE8\x05\u012A\x96\x02\u0FE7\u0FE6" + + "\x03\x02\x02\x02\u0FE8\u0FEB\x03\x02\x02\x02\u0FE9\u0FE7\x03\x02\x02\x02" + + "\u0FE9\u0FEA\x03\x02\x02\x02\u0FEA\u0FEC\x03\x02\x02\x02\u0FEB\u0FE9\x03" + + "\x02\x02\x02\u0FEC\u0FEE\x05\u012C\x97\x02\u0FED\u0FEF\x05\u0130\x99\x02" + + "\u0FEE\u0FED\x03\x02\x02\x02\u0FEE\u0FEF\x03\x02\x02\x02\u0FEF\u0FF0\x03" + + "\x02\x02\x02\u0FF0\u0FF2\x05\u0136\x9C\x02\u0FF1\u0FF3\x05\u0138\x9D\x02" + + "\u0FF2\u0FF1\x03\x02\x02\x02\u0FF2\u0FF3\x03\x02\x02\x02\u0FF3\u0FF5\x03" + + "\x02\x02\x02\u0FF4\u0FF6\x05\u013A\x9E\x02\u0FF5\u0FF4\x03\x02\x02\x02" + + "\u0FF5\u0FF6\x03\x02\x02\x02\u0FF6\u0FF8\x03\x02\x02\x02\u0FF7\u0FF9\x05" + + "\u013C\x9F\x02\u0FF8\u0FF7\x03\x02\x02\x02\u0FF8\u0FF9\x03\x02\x02\x02" + + "\u0FF9\u0FFB\x03\x02\x02\x02\u0FFA\u0FFC\x05\xFE\x80\x02\u0FFB\u0FFA\x03" + + "\x02\x02\x02\u0FFB\u0FFC\x03\x02\x02\x02\u0FFC\u0FFE\x03\x02\x02\x02\u0FFD" + + "\u0FFF\x05\u0140\xA1\x02\u0FFE\u0FFD\x03\x02\x02\x02\u0FFE\u0FFF\x03\x02" + + "\x02\x02\u0FFF\u101C\x03\x02\x02\x02\u1000\u1004\x07\x9C\x02\x02\u1001" + + "\u1003\x05\u012A\x96\x02\u1002\u1001\x03\x02\x02\x02\u1003\u1006\x03\x02" + + "\x02\x02\u1004\u1002\x03\x02\x02\x02\u1004\u1005\x03\x02\x02\x02\u1005" + + "\u1007\x03\x02\x02\x02\u1006\u1004\x03\x02\x02\x02\u1007\u1008\x05\u012C" + + "\x97\x02\u1008\u100A\x05\u0136\x9C\x02\u1009\u100B\x05\u0138\x9D\x02\u100A" + + "\u1009\x03\x02\x02\x02\u100A\u100B\x03\x02\x02\x02\u100B\u100D\x03\x02" + + "\x02\x02\u100C\u100E\x05\u013A\x9E\x02\u100D\u100C\x03\x02\x02\x02\u100D" + + "\u100E\x03\x02\x02\x02\u100E\u1010\x03\x02\x02\x02\u100F\u1011\x05\u013C" + + "\x9F\x02\u1010\u100F\x03\x02\x02\x02\u1010\u1011\x03\x02\x02\x02\u1011" + + "\u1013\x03\x02\x02\x02\u1012\u1014\x05\xFE\x80\x02\u1013\u1012\x03\x02" + + "\x02\x02\u1013\u1014\x03\x02\x02\x02\u1014\u1016\x03\x02\x02\x02\u1015" + + "\u1017\x05\u0140\xA1\x02\u1016\u1015\x03\x02\x02\x02\u1016\u1017\x03\x02" + + "\x02\x02\u1017\u1019\x03\x02\x02\x02\u1018\u101A\x05\u0130\x99\x02\u1019" + + "\u1018\x03\x02\x02\x02\u1019\u101A\x03\x02\x02\x02\u101A\u101C\x03\x02" + + "\x02\x02\u101B\u0FE5\x03\x02\x02\x02\u101B\u1000\x03\x02\x02\x02\u101C" + + "\u0117\x03\x02\x02\x02\u101D\u1021\x07\x9C\x02\x02\u101E\u1020\x05\u012A" + + "\x96\x02\u101F\u101E\x03\x02\x02\x02\u1020\u1023\x03\x02\x02\x02\u1021" + + "\u101F\x03\x02\x02\x02\u1021\u1022\x03\x02\x02\x02\u1022\u1024\x03\x02" + + "\x02\x02\u1023\u1021\x03\x02\x02\x02\u1024\u1025\x05\u012C\x97\x02\u1025" + + "\u1027\x05\u0136\x9C\x02\u1026\u1028\x05\u0138\x9D\x02\u1027\u1026\x03" + + "\x02\x02\x02\u1027\u1028\x03\x02\x02\x02\u1028\u102A\x03\x02\x02\x02\u1029" + + "\u102B\x05\u013A\x9E\x02\u102A\u1029\x03\x02\x02\x02\u102A\u102B\x03\x02" + + "\x02\x02\u102B\u102D\x03\x02\x02\x02\u102C\u102E\x05\u013C\x9F\x02\u102D" + + "\u102C\x03\x02\x02\x02\u102D\u102E\x03\x02\x02\x02\u102E\u1030\x03\x02" + + "\x02\x02\u102F\u1031\x05\xFE\x80\x02\u1030\u102F\x03\x02\x02\x02\u1030" + + "\u1031\x03\x02\x02\x02\u1031\u1033\x03\x02\x02\x02\u1032\u1034\x05\u0140" + + "\xA1\x02\u1033\u1032\x03\x02\x02\x02\u1033\u1034\x03\x02\x02\x02\u1034" + + "\u0119\x03\x02\x02\x02\u1035\u1037\x07\xB7\x02\x02\u1036\u1038\t.\x02" + + "\x02\u1037\u1036\x03\x02\x02\x02\u1037\u1038\x03\x02\x02\x02\u1038\u1039" + + "\x03\x02\x02\x02\u1039\u103A\x05\u0114\x8B\x02\u103A\u011B\x03\x02\x02" + + "\x02\u103B\u103D\x07\xB7\x02\x02\u103C\u103E\t.\x02\x02\u103D\u103C\x03" + + "\x02\x02\x02\u103D\u103E\x03\x02\x02\x02\u103E\u1041\x03\x02\x02\x02\u103F" + + "\u1042\x05\u0118\x8D\x02\u1040\u1042\x05\u0114\x8B\x02\u1041\u103F\x03" + + "\x02\x02\x02\u1041\u1040\x03\x02\x02\x02\u1042\u011D\x03\x02\x02\x02\u1043" + + "\u1052\x07a\x02\x02\u1044\u1053\x05\u0118\x8D\x02\u1045\u1053\x05\u0114" + + "\x8B\x02\u1046\u1049\x07\u0364\x02\x02\u1047\u104A\x05\u0118\x8D\x02\u1048" + + "\u104A\x05\u0114\x8B\x02\u1049\u1047\x03\x02\x02\x02\u1049\u1048\x03\x02" + + "\x02\x02\u104A\u104B\x03\x02\x02\x02\u104B\u1050\x07\u0365\x02\x02\u104C" + + "\u104E\x07\x0F\x02\x02\u104D\u104C\x03\x02\x02\x02\u104D\u104E\x03\x02" + + "\x02\x02\u104E\u104F\x03\x02\x02\x02\u104F\u1051\x05\u02C6\u0164\x02\u1050" + + "\u104D\x03\x02\x02\x02\u1050\u1051\x03\x02\x02\x02\u1051\u1053\x03\x02" + + "\x02\x02\u1052\u1044\x03\x02\x02\x02\u1052\u1045\x03\x02\x02\x02\u1052" + + "\u1046\x03\x02\x02\x02\u1053\u011F\x03\x02\x02\x02\u1054\u1055\x07\xFF" + + "\x02\x02\u1055\u1056\x07\u0364\x02\x02\u1056\u1057\x07\u0374\x02\x02\u1057" + + "\u1058\x07\u0366\x02\x02\u1058\u1059\x07\u0374\x02\x02\u1059\u105A\x07" + + "\u0153\x02\x02\u105A\u105B\x07\u0364\x02\x02\u105B\u105C\x05\u0122\x92" + + "\x02\u105C\u105D\x07\u0365\x02\x02\u105D\u1062\x07\u0365\x02\x02\u105E" + + "\u1060\x07\x0F\x02\x02\u105F\u105E\x03\x02\x02\x02\u105F\u1060\x03\x02" + + "\x02\x02\u1060\u1061\x03\x02\x02\x02\u1061\u1063\x05\u02C6\u0164\x02\u1062" + + "\u105F\x03\x02\x02\x02\u1062\u1063\x03\x02\x02\x02\u1063\u0121\x03\x02" + + "\x02\x02\u1064\u1069\x05\u0124\x93\x02\u1065\u1066\x07\u0366\x02\x02\u1066" + + "\u1068\x05\u0124\x93\x02\u1067\u1065\x03\x02\x02\x02\u1068\u106B\x03\x02" + + "\x02\x02\u1069\u1067\x03\x02\x02\x02\u1069\u106A\x03\x02\x02\x02\u106A" + + "\u0123\x03\x02\x02\x02\u106B\u1069\x03\x02\x02\x02\u106C\u107D\x05\u029A" + + "\u014E\x02\u106D\u106E\x07C\x02\x02\u106E\u107E\x07\u0102\x02\x02\u106F" + + "\u107B\x05\u02DA\u016E\x02\u1070\u1071\x07\u0103\x02\x02\u1071\u1073\x07" + + "\u0374\x02\x02\u1072\u1074\x05\u0126\x94\x02\u1073\u1072\x03\x02\x02\x02" + + "\u1073\u1074\x03\x02\x02\x02\u1074\u1076\x03\x02\x02\x02\u1075\u1077\x05" + + "\u0128\x95\x02\u1076\u1075\x03\x02\x02\x02\u1076\u1077\x03\x02\x02\x02" + + "\u1077\u107C\x03\x02\x02\x02\u1078\u1079\x07>\x02\x02\u1079\u107A\x07" + + "\u0103\x02\x02\u107A\u107C\x07\u0374\x02\x02\u107B\u1070\x03\x02\x02\x02" + + "\u107B\u1078\x03\x02\x02\x02\u107C\u107E\x03\x02\x02\x02\u107D\u106D\x03" + + "\x02\x02\x02\u107D\u106F\x03\x02\x02\x02\u107E\u108A\x03\x02\x02\x02\u107F" + + "\u1081\x07\u0101\x02\x02\u1080\u1082\x07\u0103\x02\x02\u1081\u1080\x03" + + "\x02\x02\x02\u1081\u1082\x03\x02\x02\x02\u1082\u1083\x03\x02\x02\x02\u1083" + + "\u1084\x07\u0374\x02\x02\u1084\u1085\x07\u0153\x02\x02\u1085\u1086\x07" + + "\u0364\x02\x02\u1086\u1087\x05\u0122\x92\x02\u1087\u1088\x07\u0365\x02" + + "\x02\u1088\u108A\x03\x02\x02\x02\u1089\u106C\x03\x02\x02\x02\u1089\u107F" + + "\x03\x02\x02\x02\u108A\u0125\x03\x02\x02\x02\u108B\u1090\x07v\x02\x02" + + "\u108C\u1090\x07\u0180\x02\x02\u108D\u108E\x07,\x02\x02\u108E\u1090\x05" + + "\u02F6\u017C\x02\u108F\u108B\x03\x02\x02\x02\u108F\u108C\x03\x02\x02\x02" + + "\u108F\u108D\x03\x02\x02\x02\u1090\u1091\x03\x02\x02\x02\u1091\u1092\x07" + + "y\x02\x02\u1092\u1093\x079\x02\x02\u1093\u0127\x03\x02\x02\x02\u1094\u1099" + + "\x07v\x02\x02\u1095\u1099\x07\u0180\x02\x02\u1096\u1097\x07,\x02\x02\u1097" + + "\u1099\x05\u02F6\u017C\x02\u1098\u1094\x03\x02\x02\x02\u1098\u1095\x03" + + "\x02\x02\x02\u1098\u1096\x03\x02\x02\x02\u1099\u109A\x03\x02\x02\x02\u109A" + + "\u109B\x07y\x02\x02\u109B\u109C\x07\u0180\x02\x02\u109C\u0129\x03\x02" + + "\x02\x02\u109D\u10A6\t<\x02\x02\u109E\u10A6\x07N\x02\x02\u109F\u10A6\x07" + + "\xAE\x02\x02\u10A0\u10A6\x07\xAA\x02\x02\u10A1\u10A6\x07\xA8\x02\x02\u10A2" + + "\u10A6\x07\u027E\x02\x02\u10A3\u10A6\t=\x02\x02\u10A4\u10A6\x07\xA9\x02" + + "\x02\u10A5\u109D\x03\x02\x02\x02\u10A5\u109E\x03\x02\x02\x02\u10A5\u109F" + + "\x03\x02\x02\x02\u10A5\u10A0\x03\x02\x02\x02\u10A5\u10A1\x03\x02\x02\x02" + + "\u10A5\u10A2\x03\x02\x02\x02\u10A5\u10A3\x03\x02\x02\x02\u10A5\u10A4\x03" + + "\x02\x02\x02\u10A6\u012B\x03\x02\x02\x02\u10A7\u10AA\x07\u0354\x02\x02" + + "\u10A8\u10AA\x05\u012E\x98\x02\u10A9\u10A7\x03\x02\x02\x02\u10A9\u10A8" + + "\x03\x02\x02\x02\u10AA\u10AF\x03\x02\x02\x02\u10AB\u10AC\x07\u0366\x02" + + "\x02\u10AC\u10AE\x05\u012E\x98\x02\u10AD\u10AB\x03\x02\x02\x02\u10AE\u10B1" + + "\x03\x02\x02\x02\u10AF\u10AD\x03\x02\x02\x02\u10AF\u10B0\x03\x02\x02\x02" + + "\u10B0\u012D\x03\x02\x02\x02\u10B1\u10AF\x03\x02\x02\x02\u10B2\u10B3\x05" + + "\u02C2\u0162\x02\u10B3\u10B4\x07\u0363\x02\x02\u10B4\u10B5\x07\u0354\x02" + + "\x02\u10B5\u10D0\x03\x02\x02\x02\u10B6\u10BB\x05\u029A\u014E\x02\u10B7" + + "\u10B9\x07\x0F\x02\x02\u10B8\u10B7\x03\x02\x02\x02\u10B8\u10B9\x03\x02" + + "\x02\x02\u10B9\u10BA\x03\x02\x02\x02\u10BA\u10BC\x05\u02C6\u0164\x02\u10BB" + + "\u10B8\x03\x02\x02\x02\u10BB\u10BC\x03\x02\x02\x02\u10BC\u10D0\x03\x02" + + "\x02\x02\u10BD\u10C2\x05\u0300\u0181\x02\u10BE\u10C0\x07\x0F\x02\x02\u10BF" + + "\u10BE\x03\x02\x02\x02\u10BF\u10C0\x03\x02\x02\x02\u10C0\u10C1\x03\x02" + + "\x02\x02\u10C1\u10C3\x05\u02C6\u0164\x02\u10C2\u10BF\x03\x02\x02\x02\u10C2" + + "\u10C3\x03\x02\x02\x02\u10C3\u10D0\x03\x02\x02\x02\u10C4\u10C5\x07\u037F" + + "\x02\x02\u10C5\u10C7\x07\u034B\x02\x02\u10C6\u10C4\x03\x02\x02\x02\u10C6" + + "\u10C7\x03\x02\x02\x02\u10C7\u10C8\x03\x02\x02\x02\u10C8\u10CD\x05\u0328" + + "\u0195\x02\u10C9\u10CB\x07\x0F\x02\x02\u10CA\u10C9\x03\x02\x02\x02\u10CA" + + "\u10CB\x03\x02\x02\x02\u10CB\u10CC\x03\x02\x02\x02\u10CC\u10CE\x05\u02C6" + + "\u0164\x02\u10CD\u10CA\x03\x02\x02\x02\u10CD\u10CE\x03\x02\x02\x02\u10CE" + + "\u10D0\x03\x02\x02\x02\u10CF\u10B2\x03\x02\x02\x02\u10CF\u10B6\x03\x02" + + "\x02\x02\u10CF\u10BD\x03\x02\x02\x02\u10CF\u10C6\x03\x02\x02\x02\u10D0" + + "\u012F\x03\x02\x02\x02\u10D1\u10D2\x07Z\x02\x02\u10D2\u10D7\x05\xE8u\x02" + + "\u10D3\u10D4\x07\u0366\x02\x02\u10D4\u10D6\x05\xE8u\x02\u10D5\u10D3\x03" + + "\x02\x02\x02\u10D6\u10D9\x03\x02\x02\x02\u10D7\u10D5\x03\x02\x02\x02\u10D7" + + "\u10D8\x03\x02\x02\x02\u10D8\u10F6\x03\x02\x02\x02\u10D9\u10D7\x03\x02" + + "\x02\x02\u10DA\u10DB\x07Z\x02\x02\u10DB\u10DC\x07\u0176\x02\x02\u10DC" + + "\u10F6\x07\u0374\x02\x02\u10DD\u10DE\x07Z\x02\x02\u10DE\u10DF\x07\x82" + + "\x02\x02\u10DF\u10E3\x07\u0374\x02\x02\u10E0\u10E1\x07\x1C\x02\x02\u10E1" + + "\u10E2\x07\x9D\x02\x02\u10E2\u10E4\x05\u02B4\u015B\x02\u10E3\u10E0\x03" + + "\x02\x02\x02\u10E3\u10E4\x03\x02\x02\x02\u10E4\u10EB\x03\x02\x02\x02\u10E5" + + "\u10E7\t0\x02\x02\u10E6\u10E8\x05\u0132\x9A\x02\u10E7\u10E6\x03\x02\x02" + + "\x02\u10E8\u10E9\x03\x02\x02\x02\u10E9\u10E7\x03\x02\x02\x02\u10E9\u10EA" + + "\x03\x02\x02\x02\u10EA\u10EC\x03\x02\x02\x02\u10EB\u10E5\x03\x02\x02\x02" + + "\u10EB\u10EC\x03\x02\x02\x02\u10EC\u10F3\x03\x02\x02\x02\u10ED\u10EF\x07" + + "h\x02\x02\u10EE\u10F0\x05\u0134\x9B\x02\u10EF\u10EE\x03\x02\x02\x02\u10F0" + + "\u10F1\x03\x02\x02\x02\u10F1\u10EF\x03\x02\x02\x02\u10F1\u10F2\x03\x02" + + "\x02\x02\u10F2\u10F4\x03\x02\x02\x02\u10F3\u10ED\x03\x02\x02\x02\u10F3" + + "\u10F4\x03\x02\x02\x02\u10F4\u10F6\x03\x02\x02\x02\u10F5\u10D1\x03\x02" + + "\x02\x02\u10F5\u10DA\x03\x02\x02\x02\u10F5\u10DD\x03\x02\x02\x02\u10F6" + + "\u0131\x03\x02\x02\x02\u10F7\u10F8\x07\xB0\x02\x02\u10F8\u10F9\x07\x16" + + "\x02\x02\u10F9\u1104\x07\u0374\x02\x02\u10FA\u10FC\x07}\x02\x02\u10FB" + + "\u10FA\x03\x02\x02\x02\u10FB\u10FC\x03\x02\x02\x02\u10FC\u10FD\x03\x02" + + "\x02\x02\u10FD\u10FE\x07:\x02\x02\u10FE\u10FF\x07\x16\x02\x02\u10FF\u1104" + + "\x07\u0374\x02\x02\u1100\u1101\x07<\x02\x02\u1101\u1102\x07\x16\x02\x02" + + "\u1102\u1104\x07\u0374\x02\x02\u1103\u10F7\x03\x02\x02\x02\u1103\u10FB" + + "\x03\x02\x02\x02\u1103\u1100\x03\x02\x02\x02\u1104\u0133\x03\x02\x02\x02" + + "\u1105\u1106\x07\xAD\x02\x02\u1106\u1107\x07\x16\x02\x02\u1107\u110C\x07" + + "\u0374\x02\x02\u1108\u1109\x07\xB0\x02\x02\u1109\u110A\x07\x16\x02\x02" + + "\u110A\u110C\x07\u0374\x02\x02\u110B\u1105\x03\x02\x02\x02\u110B\u1108" + + "\x03\x02\x02\x02\u110C\u0135\x03\x02\x02\x02\u110D\u110E\x07F\x02\x02" + + "\u110E\u1110\x05\u0102\x82\x02\u110F\u110D\x03\x02\x02\x02\u110F\u1110" + + "\x03\x02\x02\x02\u1110\u1113\x03\x02\x02\x02\u1111\u1112\x07\xC2\x02\x02" + + "\u1112\u1114\x05\u0328\u0195\x02\u1113\u1111\x03\x02\x02\x02\u1113\u1114" + + "\x03\x02\x02\x02\u1114\u0137\x03\x02\x02\x02\u1115\u1116\x07L\x02\x02" + + "\u1116\u1117\x07\x16\x02\x02\u1117\u111C\x05\u013E\xA0\x02\u1118\u1119" + + "\x07\u0366\x02\x02\u1119\u111B\x05\u013E\xA0\x02\u111A\u1118\x03\x02\x02" + + "\x02\u111B\u111E\x03\x02\x02\x02\u111C\u111A\x03\x02\x02\x02\u111C\u111D" + + "\x03\x02\x02\x02\u111D\u1121\x03\x02\x02\x02\u111E\u111C\x03\x02\x02\x02" + + "\u111F\u1120\x07\xC4\x02\x02\u1120\u1122\x07\u024A\x02\x02\u1121\u111F" + + "\x03\x02\x02\x02\u1121\u1122\x03\x02\x02\x02\u1122\u0139\x03\x02\x02\x02" + + "\u1123\u1124\x07M\x02\x02\u1124\u1125\x05\u0328\u0195\x02\u1125\u013B" + + "\x03\x02\x02\x02\u1126\u1127\x07\u02B3\x02\x02\u1127\u1128\x05\u0312\u018A" + + "\x02\u1128\u1129\x07\x0F\x02\x02\u1129\u112A\x07\u0364\x02\x02\u112A\u112B" + + "\x05\u0310\u0189\x02\u112B\u1135\x07\u0365\x02\x02\u112C\u112D\x07\u0366" + + "\x02\x02\u112D\u112E\x05\u0312\u018A\x02\u112E\u112F\x07\x0F\x02\x02\u112F" + + "\u1130\x07\u0364\x02\x02\u1130\u1131\x05\u0310\u0189\x02\u1131\u1132\x07" + + "\u0365\x02\x02\u1132\u1134\x03\x02\x02\x02\u1133\u112C\x03\x02\x02\x02" + + "\u1134\u1137\x03\x02\x02\x02\u1135\u1133\x03\x02\x02\x02\u1135\u1136\x03" + + "\x02\x02\x02\u1136\u013D\x03\x02\x02\x02\u1137\u1135\x03\x02\x02\x02\u1138" + + "\u113A\x05\u0328\u0195\x02\u1139\u113B\t8\x02\x02\u113A\u1139\x03\x02" + + "\x02\x02\u113A\u113B\x03\x02\x02\x02\u113B\u013F\x03\x02\x02\x02\u113C" + + "\u1147\x07f\x02\x02\u113D\u113E\x05\u0142\xA2\x02\u113E\u113F\x07\u0366" + + "\x02\x02\u113F\u1141\x03\x02\x02\x02\u1140\u113D\x03\x02\x02\x02\u1140" + + "\u1141\x03\x02\x02\x02\u1141\u1142\x03\x02\x02\x02\u1142\u1148\x05\u0142" + + "\xA2\x02\u1143\u1144\x05\u0142\xA2\x02\u1144\u1145\x07\u01FF\x02\x02\u1145" + + "\u1146\x05\u0142\xA2\x02\u1146\u1148\x03\x02\x02\x02\u1147\u1140\x03\x02" + + "\x02\x02\u1147\u1143\x03\x02\x02\x02\u1148\u0141\x03\x02\x02\x02\u1149" + + "\u114D\x05\u02CC\u0167\x02\u114A\u114D\x05\u02B2\u015A\x02\u114B\u114D" + + "\x05\u02C8\u0165\x02\u114C\u1149\x03\x02\x02\x02\u114C\u114A\x03\x02\x02" + + "\x02\u114C\u114B\x03\x02\x02\x02\u114D\u0143\x03\x02\x02\x02\u114E\u114F" + + "\x07\u0282\x02\x02\u114F\u1158\x07\u029A\x02\x02\u1150\u1155\x05\u015A" + + "\xAE\x02\u1151\u1152\x07\u0366\x02\x02\u1152\u1154\x05\u015A\xAE\x02\u1153" + + "\u1151\x03\x02\x02\x02\u1154\u1157\x03\x02\x02\x02\u1155\u1153\x03\x02" + + "\x02\x02\u1155\u1156\x03\x02\x02\x02\u1156\u1159\x03\x02\x02\x02\u1157" + + "\u1155\x03\x02\x02\x02\u1158\u1150\x03\x02\x02\x02\u1158\u1159\x03\x02" + + "\x02\x02\u1159\u0145\x03\x02\x02\x02\u115A\u115C\x07\u013F\x02\x02\u115B" + + "\u115D\x07\u02B5\x02\x02\u115C\u115B\x03\x02\x02\x02\u115C\u115D\x03\x02" + + "\x02\x02\u115D\u0147\x03\x02\x02\x02\u115E\u1160\x07\u0157\x02\x02\u115F" + + "\u1161\x07\u02B5\x02\x02\u1160\u115F\x03\x02\x02\x02\u1160\u1161\x03\x02" + + "\x02\x02\u1161\u1167\x03\x02\x02\x02\u1162\u1164\x07\r\x02\x02\u1163\u1165" + + "\x07\u01F8\x02\x02\u1164\u1163\x03\x02\x02\x02\u1164\u1165\x03\x02\x02" + + "\x02\u1165\u1166\x03\x02\x02\x02\u1166\u1168\x07\u0148\x02\x02\u1167\u1162" + + "\x03\x02\x02\x02\u1167\u1168\x03\x02\x02\x02\u1168\u116D\x03\x02\x02\x02" + + "\u1169\u116B\x07\u01F8\x02\x02\u116A\u1169\x03\x02\x02\x02\u116A\u116B" + + "\x03\x02\x02\x02\u116B\u116C\x03\x02\x02\x02\u116C\u116E\x07\x8E\x02\x02" + + "\u116D\u116A\x03\x02\x02\x02\u116D\u116E\x03\x02\x02\x02\u116E\u0149\x03" + + "\x02\x02\x02\u116F\u1171\x07\u0249\x02\x02\u1170\u1172\x07\u02B5\x02\x02" + + "\u1171\u1170\x03\x02\x02\x02\u1171\u1172\x03\x02\x02\x02\u1172\u1178\x03" + + "\x02\x02\x02\u1173\u1175\x07\r\x02\x02\u1174\u1176\x07\u01F8\x02\x02\u1175" + + "\u1174\x03\x02\x02\x02\u1175\u1176\x03\x02\x02\x02\u1176\u1177\x03\x02" + + "\x02\x02\u1177\u1179\x07\u0148\x02\x02\u1178\u1173\x03\x02\x02\x02\u1178" + + "\u1179\x03\x02\x02\x02\u1179\u117E\x03\x02\x02\x02\u117A\u117C\x07\u01F8" + + "\x02\x02\u117B\u117A\x03\x02\x02\x02\u117B\u117C\x03\x02\x02\x02\u117C" + + "\u117D\x03\x02\x02\x02\u117D\u117F\x07\x8E\x02\x02\u117E\u117B\x03\x02" + + "\x02\x02\u117E\u117F\x03\x02\x02\x02\u117F\u014B\x03\x02\x02\x02\u1180" + + "\u1181\x07\u024F\x02\x02\u1181\u1182\x05\u02C6\u0164\x02\u1182\u014D\x03" + + "\x02\x02\x02\u1183\u1185\x07\u0249\x02\x02\u1184\u1186\x07\u02B5\x02\x02" + + "\u1185\u1184\x03\x02\x02\x02\u1185\u1186\x03\x02\x02\x02\u1186\u1187\x03" + + "\x02\x02\x02\u1187\u1189\x07\xB2\x02\x02\u1188\u118A\x07\u024F\x02\x02" + + "\u1189\u1188\x03\x02\x02\x02\u1189\u118A\x03\x02\x02\x02\u118A\u118B\x03" + + "\x02\x02\x02\u118B\u118C\x05\u02C6\u0164\x02\u118C\u014F\x03\x02\x02\x02" + + "\u118D\u118E\x07\x8E\x02\x02\u118E\u118F\x07\u024F\x02\x02\u118F\u1190" + + "\x05\u02C6\u0164\x02\u1190\u0151\x03\x02\x02\x02\u1191\u1192\x07j\x02" + + "\x02\u1192\u1193\t>\x02\x02\u1193\u1198\x05\u015C\xAF\x02\u1194\u1195" + + "\x07\u0366\x02\x02\u1195"; + private static readonly _serializedATNSegment10: string = + "\u1197\x05\u015C\xAF\x02\u1196\u1194\x03\x02\x02\x02\u1197\u119A\x03\x02" + + "\x02\x02\u1198\u1196\x03\x02\x02\x02\u1198\u1199\x03\x02\x02\x02\u1199" + + "\u0153\x03\x02\x02\x02\u119A\u1198\x03\x02\x02\x02\u119B\u119C\x07\xB9" + + "\x02\x02\u119C\u119D\x07\u02F2\x02\x02\u119D\u0155\x03\x02\x02\x02\u119E" + + "\u119F\x07\x9D\x02\x02\u119F\u11A0\x07\u013B\x02\x02\u11A0\u11A1\x07\u035B" + + "\x02\x02\u11A1\u11A2\t\x1B\x02\x02\u11A2\u0157\x03\x02\x02\x02\u11A3\u11A5" + + "\x07\x9D\x02\x02\u11A4\u11A6\t?\x02\x02\u11A5\u11A4\x03\x02\x02\x02\u11A5" + + "\u11A6\x03\x02\x02\x02\u11A6\u11A7\x03\x02\x02\x02\u11A7\u11A8\x07\u029A" + + "\x02\x02\u11A8\u11AD\x05\u0160\xB1\x02\u11A9\u11AA\x07\u0366\x02\x02\u11AA" + + "\u11AC\x05\u0160\xB1\x02\u11AB\u11A9\x03\x02\x02\x02\u11AC\u11AF\x03\x02" + + "\x02\x02\u11AD\u11AB\x03\x02\x02\x02\u11AD\u11AE\x03\x02\x02\x02\u11AE" + + "\u0159\x03\x02\x02\x02\u11AF\u11AD\x03\x02\x02\x02\u11B0\u11B1\x07\xC4" + + "\x02\x02\u11B1\u11B2\x07\u0160\x02\x02\u11B2\u11B8\x07\u025A\x02\x02\u11B3" + + "\u11B4\x07\x89\x02\x02\u11B4\u11B8\x07\xC5\x02\x02\u11B5\u11B6\x07\x89" + + "\x02\x02\u11B6\u11B8\x07\u0205\x02\x02\u11B7\u11B0\x03\x02\x02\x02\u11B7" + + "\u11B3\x03\x02\x02\x02\u11B7\u11B5\x03\x02\x02\x02\u11B8\u015B\x03\x02" + + "\x02\x02\u11B9\u11BE\x05\u0290\u0149\x02\u11BA\u11BC\x07\x0F\x02\x02\u11BB" + + "\u11BA\x03\x02\x02\x02\u11BB\u11BC\x03\x02\x02\x02\u11BC\u11BD\x03\x02" + + "\x02\x02\u11BD\u11BF\x05\u02C6\u0164\x02\u11BE\u11BB\x03\x02\x02\x02\u11BE" + + "\u11BF\x03\x02\x02\x02\u11BF\u11C0\x03\x02\x02\x02\u11C0\u11C1\x05\u015E" + + "\xB0\x02\u11C1\u015D\x03\x02\x02\x02\u11C2\u11C4\x07\x89\x02\x02\u11C3" + + "\u11C5\x07\u01C4\x02\x02\u11C4\u11C3\x03\x02\x02\x02\u11C4\u11C5\x03\x02" + + "\x02\x02\u11C5\u11CB\x03\x02\x02\x02\u11C6\u11C8\x07m\x02\x02\u11C7\u11C6" + + "\x03\x02\x02\x02\u11C7\u11C8\x03\x02\x02\x02\u11C8\u11C9\x03\x02\x02\x02" + + "\u11C9\u11CB\x07\xC5\x02\x02\u11CA\u11C2\x03\x02\x02\x02\u11CA\u11C7\x03" + + "\x02\x02\x02\u11CB\u015F\x03\x02\x02\x02\u11CC\u11CD\x07\u01BA\x02\x02" + + "\u11CD\u11CE\x07\u01C2\x02\x02\u11CE\u11D4\x05\u0162\xB2\x02\u11CF\u11D0" + + "\x07\x89\x02\x02\u11D0\u11D4\x07\xC5\x02\x02\u11D1\u11D2\x07\x89\x02\x02" + + "\u11D2\u11D4\x07\u0205\x02\x02\u11D3\u11CC\x03\x02\x02\x02\u11D3\u11CF" + + "\x03\x02\x02\x02\u11D3\u11D1\x03\x02\x02\x02\u11D4\u0161\x03\x02\x02\x02" + + "\u11D5\u11D6\x07\u032B\x02\x02\u11D6\u11DD\x07\x89\x02\x02\u11D7\u11D8" + + "\x07\x89\x02\x02\u11D8\u11DD\x07\u032C\x02\x02\u11D9\u11DA\x07\x89\x02" + + "\x02\u11DA\u11DD\x07\u032D\x02\x02\u11DB\u11DD\x07\u032E\x02\x02\u11DC" + + "\u11D5\x03\x02\x02\x02\u11DC\u11D7\x03\x02\x02\x02\u11DC\u11D9\x03\x02" + + "\x02\x02\u11DC\u11DB\x03\x02\x02\x02\u11DD\u0163\x03\x02\x02\x02\u11DE" + + "\u11DF\x07\x1B\x02\x02\u11DF\u11E0\x07\u01C7\x02\x02\u11E0\u11E1\x07\xB2" + + "\x02\x02\u11E1\u11E6\x05\u0174\xBB\x02\u11E2\u11E3\x07\u0366\x02\x02\u11E3" + + "\u11E5\x05\u0174\xBB\x02\u11E4\u11E2\x03\x02\x02\x02\u11E5\u11E8\x03\x02" + + "\x02\x02\u11E6\u11E4\x03\x02\x02\x02\u11E6\u11E7\x03\x02\x02\x02\u11E7" + + "\u11EA\x03\x02\x02\x02\u11E8\u11E6\x03\x02\x02\x02\u11E9\u11EB\x05\u0188" + + "\xC5\x02\u11EA\u11E9\x03\x02\x02\x02\u11EA\u11EB\x03\x02\x02\x02\u11EB" + + "\u0165\x03\x02\x02\x02\u11EC\u11ED\x07\x1B\x02\x02\u11ED\u11EE\x07\u023E" + + "\x02\x02\u11EE\u11EF\x07\u0192\x02\x02\u11EF\u11F4\x05\u018A\xC6\x02\u11F0" + + "\u11F1\x07\u0366\x02\x02\u11F1\u11F3\x05\u018A\xC6\x02\u11F2\u11F0\x03" + + "\x02\x02\x02\u11F3\u11F6\x03\x02\x02\x02\u11F4\u11F2\x03\x02\x02\x02\u11F4" + + "\u11F5\x03\x02\x02\x02\u11F5\u11F8\x03\x02\x02\x02\u11F6\u11F4\x03\x02" + + "\x02\x02\u11F7\u11F9\x05\u0188\xC5\x02\u11F8\u11F7\x03\x02\x02\x02\u11F8" + + "\u11F9\x03\x02\x02\x02\u11F9\u0167\x03\x02\x02\x02\u11FA\u11FB\x07\x1B" + + "\x02\x02\u11FB\u11FC\x07\u023E\x02\x02\u11FC\u11FD\x07\u025F\x02\x02\u11FD" + + "\u11FE\x07\xB2\x02\x02\u11FE\u1203\x05\u017E\xC0\x02\u11FF\u1200\x07\u0366" + + "\x02\x02\u1200\u1202\x05\u017E\xC0\x02\u1201\u11FF\x03\x02\x02\x02\u1202" + + "\u1205\x03\x02\x02\x02\u1203\u1201\x03\x02\x02\x02\u1203\u1204\x03\x02" + + "\x02\x02\u1204\u1207\x03\x02\x02\x02\u1205\u1203\x03\x02\x02\x02\u1206" + + "\u1208\x05\u0188\xC5\x02\u1207\u1206\x03\x02\x02\x02\u1207\u1208\x03\x02" + + "\x02\x02\u1208\u0169\x03\x02\x02\x02\u1209\u120A\x07\x87\x02\x02\u120A" + + "\u120B\t@\x02\x02\u120B\u1210\x07\u01C6\x02\x02\u120C\u120D\x07\xB2\x02" + + "\x02\u120D\u1211\x07\u0374\x02\x02\u120E\u120F\x07\x12\x02\x02\u120F\u1211" + + "\x07\u0374\x02\x02\u1210\u120C\x03\x02\x02\x02\u1210\u120E\x03\x02\x02" + + "\x02\u1211\u016B\x03\x02\x02\x02\u1212\u1213\x07\u0282\x02\x02\u1213\u121C" + + "\tA\x02\x02\u1214\u1219\x05\u018E\xC8\x02\u1215\u1216\x07\u0366\x02\x02" + + "\u1216\u1218\x05\u018E\xC8\x02\u1217\u1215\x03\x02\x02\x02\u1218\u121B" + + "\x03\x02\x02\x02\u1219\u1217\x03\x02\x02\x02\u1219\u121A\x03\x02\x02\x02" + + "\u121A\u121D\x03\x02\x02\x02\u121B\u1219\x03\x02\x02\x02\u121C\u1214\x03" + + "\x02\x02\x02\u121C\u121D\x03\x02\x02\x02\u121D\u1220\x03\x02\x02\x02\u121E" + + "\u121F\x07\u02A6\x02\x02\u121F\u1221\x05\u0190\xC9\x02\u1220\u121E\x03" + + "\x02\x02\x02\u1220\u1221\x03\x02\x02\x02\u1221\u1225\x03\x02\x02\x02\u1222" + + "\u1224\x05\u0192\xCA\x02\u1223\u1222\x03\x02\x02\x02\u1224\u1227\x03\x02" + + "\x02\x02\u1225\u1223\x03\x02\x02\x02\u1225\u1226\x03\x02\x02\x02\u1226" + + "\u1229\x03\x02\x02\x02\u1227\u1225\x03\x02\x02\x02\u1228\u122A\x05\u0188" + + "\xC5\x02\u1229\u1228\x03\x02\x02\x02\u1229\u122A\x03\x02\x02\x02\u122A" + + "\u016D\x03\x02\x02\x02\u122B\u122C\x07\u0288\x02\x02\u122C\u1235\tA\x02" + + "\x02\u122D\u1232\x05\u018E\xC8\x02\u122E\u122F\x07\u0366\x02\x02\u122F" + + "\u1231\x05\u018E\xC8\x02\u1230\u122E\x03\x02\x02\x02\u1231\u1234\x03\x02" + + "\x02\x02\u1232\u1230\x03\x02\x02\x02\u1232\u1233\x03\x02\x02\x02\u1233" + + "\u1236\x03\x02\x02\x02\u1234\u1232\x03\x02\x02\x02\u1235\u122D\x03\x02" + + "\x02\x02\u1235\u1236\x03\x02\x02\x02\u1236\u1238\x03\x02\x02\x02\u1237" + + "\u1239\x05\u0188\xC5\x02\u1238\u1237\x03\x02\x02\x02\u1238\u1239\x03\x02" + + "\x02\x02\u1239\u016F\x03\x02\x02\x02\u123A\u123B\x07\u0282\x02\x02\u123B" + + "\u123F\x07\u01A1\x02\x02\u123C\u123D\x07\u02A8\x02\x02\u123D\u123E\x07" + + "\u035B\x02\x02\u123E\u1240\x07\u0374\x02\x02\u123F\u123C\x03\x02\x02\x02" + + "\u123F\u1240\x03\x02\x02\x02\u1240\u1245\x03\x02\x02\x02\u1241\u1242\x07" + + "\u0366\x02\x02\u1242\u1243\x07\u0213\x02\x02\u1243\u1244\x07\u035B\x02" + + "\x02\u1244\u1246\x07\u0374\x02\x02\u1245\u1241\x03\x02\x02\x02\u1245\u1246" + + "\x03\x02\x02\x02\u1246\u124B\x03\x02\x02\x02\u1247\u1248\x07\u0366\x02" + + "\x02\u1248\u1249\x07\u016D\x02\x02\u1249\u124A\x07\u035B\x02\x02\u124A" + + "\u124C\x07\u0374\x02\x02\u124B\u1247\x03\x02\x02\x02\u124B\u124C\x03\x02" + + "\x02\x02\u124C\u0171\x03\x02\x02\x02\u124D\u124E\x07\u0288\x02\x02\u124E" + + "\u124F\x07\u01A1\x02\x02\u124F\u0173\x03\x02\x02\x02\u1250\u1251\x05\u0176" + + "\xBC\x02\u1251\u1252\x07\u035B\x02\x02\u1252\u1253\x07\u0374\x02\x02\u1253" + + "\u126C\x03\x02\x02\x02\u1254\u1255\x05\u0178\xBD\x02\u1255\u1256\x07\u035B" + + "\x02\x02\u1256\u1257\x05\u02CC\u0167\x02\u1257\u126C\x03\x02\x02\x02\u1258" + + "\u1259\x05\u017A\xBE\x02\u1259\u125A\x07\u035B\x02\x02\u125A\u125B\t\x1B" + + "\x02\x02\u125B\u126C\x03\x02\x02\x02\u125C\u126C\x05\u017C\xBF\x02\u125D" + + "\u125E\x07\u01AA\x02\x02\u125E\u125F\x07\u035B\x02\x02\u125F\u1268\x07" + + "\u0364\x02\x02\u1260\u1265\x05\u02C6\u0164\x02\u1261\u1262\x07\u0366\x02" + + "\x02\u1262\u1264\x05\u02C6\u0164\x02\u1263\u1261\x03\x02\x02\x02\u1264" + + "\u1267\x03\x02\x02\x02\u1265\u1263\x03\x02\x02\x02\u1265\u1266\x03\x02" + + "\x02\x02\u1266\u1269\x03\x02\x02\x02\u1267\u1265\x03\x02\x02\x02\u1268" + + "\u1260\x03\x02\x02\x02\u1268\u1269\x03\x02\x02\x02\u1269\u126A\x03\x02" + + "\x02\x02\u126A\u126C\x07\u0365\x02\x02\u126B\u1250\x03\x02\x02\x02\u126B" + + "\u1254\x03\x02\x02\x02\u126B\u1258\x03\x02\x02\x02\u126B\u125C\x03\x02" + + "\x02\x02\u126B\u125D\x03\x02\x02\x02\u126C\u0175\x03\x02\x02\x02\u126D" + + "\u126E\tB\x02\x02\u126E\u0177\x03\x02\x02\x02\u126F\u1270\tC\x02\x02\u1270" + + "\u0179\x03\x02\x02\x02\u1271\u1272\tD\x02\x02\u1272\u017B\x03\x02\x02" + + "\x02\u1273\u1274\x07\u0221\x02\x02\u1274\u1275\x07\u035B\x02\x02\u1275" + + "\u1281\tE\x02\x02\u1276\u1277\x07\u0240\x02\x02\u1277\u1278\x07\u035B" + + "\x02\x02\u1278\u1281\tF\x02\x02\u1279\u127A\x07\u0138\x02\x02\u127A\u127E" + + "\x07\u035B\x02\x02\u127B\u127F\x07\u01FD\x02\x02\u127C\u127F\x07\u01C4" + + "\x02\x02\u127D\u127F\x05\u0194\xCB\x02\u127E\u127B\x03\x02\x02\x02\u127E" + + "\u127C\x03\x02\x02\x02\u127E\u127D\x03\x02\x02\x02\u127F\u1281\x03\x02" + + "\x02\x02\u1280\u1273\x03\x02\x02\x02\u1280\u1276\x03\x02\x02\x02\u1280" + + "\u1279\x03\x02\x02\x02\u1281\u017D\x03\x02\x02\x02\u1282\u1283\x05\u0180" + + "\xC1\x02\u1283\u1284\x07\u035B\x02\x02\u1284\u1285\x07\u0374\x02\x02\u1285" + + "\u129E\x03\x02\x02\x02\u1286\u1287\x05\u0182\xC2\x02\u1287\u1288\x07\u035B" + + "\x02\x02\u1288\u1289\x05\u02CC\u0167\x02\u1289\u129E\x03\x02\x02\x02\u128A" + + "\u128B\x05\u0184\xC3\x02\u128B\u128C\x07\u035B\x02\x02\u128C\u128D\t\x1B" + + "\x02\x02\u128D\u129E\x03\x02\x02\x02\u128E\u129E\x05\u0186\xC4\x02\u128F" + + "\u1290\x07\u01AA\x02\x02\u1290\u1291\x07\u035B\x02\x02\u1291\u129A\x07" + + "\u0364\x02\x02\u1292\u1297\x05\u02C6\u0164\x02\u1293\u1294\x07\u0366\x02" + + "\x02\u1294\u1296\x05\u02C6\u0164\x02\u1295\u1293\x03\x02\x02\x02\u1296" + + "\u1299\x03\x02\x02\x02\u1297\u1295\x03\x02\x02\x02\u1297\u1298\x03\x02" + + "\x02\x02\u1298\u129B\x03\x02\x02\x02\u1299\u1297\x03\x02\x02\x02\u129A" + + "\u1292\x03\x02\x02\x02\u129A\u129B\x03\x02\x02\x02\u129B\u129C\x03\x02" + + "\x02\x02\u129C\u129E\x07\u0365\x02\x02\u129D\u1282\x03\x02\x02\x02\u129D" + + "\u1286\x03\x02\x02\x02\u129D\u128A\x03\x02\x02\x02\u129D\u128E\x03\x02" + + "\x02\x02\u129D\u128F\x03\x02\x02\x02\u129E\u017F\x03\x02\x02\x02\u129F" + + "\u12A0\tG\x02\x02\u12A0\u0181\x03\x02\x02\x02\u12A1\u12A2\tH\x02\x02\u12A2" + + "\u0183\x03\x02\x02\x02\u12A3\u12A4\tI\x02\x02\u12A4\u0185\x03\x02\x02" + + "\x02\u12A5\u12A6\x07\u0221\x02\x02\u12A6\u12A7\x07\u035B\x02\x02\u12A7" + + "\u12B3\tE\x02\x02\u12A8\u12A9\x07\u0240\x02\x02\u12A9\u12AA\x07\u035B" + + "\x02\x02\u12AA\u12B3\tJ\x02\x02\u12AB\u12AC\x07\u0138\x02\x02\u12AC\u12B0" + + "\x07\u035B\x02\x02\u12AD\u12B1\x07\u01FD\x02\x02\u12AE\u12B1\x07\u01C4" + + "\x02\x02\u12AF\u12B1\x05\u0194\xCB\x02\u12B0\u12AD\x03\x02\x02\x02\u12B0" + + "\u12AE\x03\x02\x02\x02\u12B0\u12AF\x03\x02\x02\x02\u12B1\u12B3\x03\x02" + + "\x02\x02\u12B2\u12A5\x03\x02\x02\x02\u12B2\u12A8\x03\x02\x02\x02\u12B2" + + "\u12AB\x03\x02\x02\x02\u12B3\u0187\x03\x02\x02\x02\u12B4\u12B5\x07C\x02" + + "\x02\u12B5\u12B6\x07\u014A\x02\x02\u12B6\u12B7\x07\u0374\x02\x02\u12B7" + + "\u0189\x03\x02\x02\x02\u12B8\u12B9\x07\u0237\x02\x02\u12B9\u12BA\x07\u035B" + + "\x02\x02\u12BA\u12BB\x07\u0364\x02\x02\u12BB\u12C0\x05\u0278\u013D\x02" + + "\u12BC\u12BD\x07\u0366\x02\x02\u12BD\u12BF\x05\u0278\u013D\x02\u12BE\u12BC" + + "\x03\x02\x02\x02\u12BF\u12C2\x03\x02\x02\x02\u12C0\u12BE\x03\x02\x02\x02" + + "\u12C0\u12C1\x03\x02\x02\x02\u12C1\u12C3\x03\x02\x02\x02\u12C2\u12C0\x03" + + "\x02\x02\x02\u12C3\u12C4\x07\u0365\x02\x02\u12C4\u12F8\x03\x02\x02\x02" + + "\u12C5\u12C6\x07\u0239\x02\x02\u12C6\u12C7\x07\u035B\x02\x02\u12C7\u12C8" + + "\x07\u0364\x02\x02\u12C8\u12CD\x05\u0278\u013D\x02\u12C9\u12CA\x07\u0366" + + "\x02\x02\u12CA\u12CC\x05\u0278\u013D\x02\u12CB\u12C9\x03\x02\x02\x02\u12CC" + + "\u12CF\x03\x02\x02\x02\u12CD\u12CB\x03\x02\x02\x02\u12CD\u12CE\x03\x02" + + "\x02\x02\u12CE\u12D0\x03\x02\x02\x02\u12CF\u12CD\x03\x02\x02\x02\u12D0" + + "\u12D1\x07\u0365\x02\x02\u12D1\u12F8\x03\x02\x02\x02\u12D2\u12D3\x07\u0238" + + "\x02\x02\u12D3\u12D4\x07\u035B\x02\x02\u12D4\u12D5\x07\u0364\x02\x02\u12D5" + + "\u12D6\x05\u028E\u0148\x02\u12D6\u12D7\x07\u0365\x02\x02\u12D7\u12F8\x03" + + "\x02\x02\x02\u12D8\u12D9\x07\u023A\x02\x02\u12D9\u12DA\x07\u035B\x02\x02" + + "\u12DA\u12DB\x07\u0364\x02\x02\u12DB\u12DC\x05\u028E\u0148\x02\u12DC\u12DD" + + "\x07\u0365\x02\x02\u12DD\u12F8\x03\x02\x02\x02\u12DE\u12DF\x07\u023C\x02" + + "\x02\u12DF\u12E0\x07\u035B\x02\x02\u12E0\u12E1\x07\u0364\x02\x02\u12E1" + + "\u12E2\x05\u02F2\u017A\x02\u12E2\u12E3\x07\u0365\x02\x02\u12E3\u12F8\x03" + + "\x02\x02\x02\u12E4\u12E5\x07\u023D\x02\x02\u12E5\u12E6\x07\u035B\x02\x02" + + "\u12E6\u12E7\x07\u0364\x02\x02\u12E7\u12E8\x05\u02F2\u017A\x02\u12E8\u12E9" + + "\x07\u0365\x02\x02\u12E9\u12F8\x03\x02\x02\x02\u12EA\u12EB\x07\u023B\x02" + + "\x02\u12EB\u12EC\x07\u035B\x02\x02\u12EC\u12ED\x07\u0364\x02\x02\u12ED" + + "\u12F2\x05\u018C\xC7\x02\u12EE\u12EF\x07\u0366\x02\x02\u12EF\u12F1\x05" + + "\u018C\xC7\x02\u12F0\u12EE\x03\x02\x02\x02\u12F1\u12F4\x03\x02\x02\x02" + + "\u12F2\u12F0\x03\x02\x02\x02\u12F2\u12F3\x03\x02\x02\x02\u12F3\u12F5\x03" + + "\x02\x02\x02\u12F4\u12F2\x03\x02\x02\x02\u12F5\u12F6\x07\u0365\x02\x02" + + "\u12F6\u12F8\x03\x02\x02\x02\u12F7\u12B8\x03\x02\x02\x02\u12F7\u12C5\x03" + + "\x02\x02\x02\u12F7\u12D2\x03\x02\x02\x02\u12F7\u12D8\x03\x02\x02\x02\u12F7" + + "\u12DE\x03\x02\x02\x02\u12F7\u12E4\x03\x02\x02\x02\u12F7\u12EA\x03\x02" + + "\x02\x02\u12F8\u018B\x03\x02\x02\x02\u12F9\u12FA\x07\u0364\x02\x02\u12FA" + + "\u12FB\x05\u0290\u0149\x02\u12FB\u12FC\x07\u0366\x02\x02\u12FC\u12FD\x05" + + "\u0290\u0149\x02\u12FD\u12FE\x07\u0365\x02\x02\u12FE\u018D\x03\x02\x02" + + "\x02\u12FF\u1300\tK\x02\x02\u1300\u018F\x03\x02\x02\x02\u1301\u1302\t" + + "L\x02\x02\u1302\u1303\x07\u035B\x02\x02\u1303\u131B\x05\u0194\xCB\x02" + + "\u1304\u1305\x07\u01CE\x02\x02\u1305\u1306\x07\u035B\x02\x02\u1306\u1307" + + "\x07\u0374\x02\x02\u1307\u1308\x07\u0366\x02\x02\u1308\u1309\x07\u01CF" + + "\x02\x02\u1309\u130A\x07\u035B\x02\x02\u130A\u131B\x05\u02CC\u0167\x02" + + "\u130B\u130C\x07\u0265\x02\x02\u130C\u130D\x07\u035B\x02\x02\u130D\u130E" + + "\x07\u0374\x02\x02\u130E\u130F\x07\u0366\x02\x02\u130F\u1310\x07\u0266" + + "\x02\x02\u1310\u1311\x07\u035B\x02\x02\u1311\u131B\x05\u02CC\u0167\x02" + + "\u1312\u1313\x07\u022F\x02\x02\u1313\u1314\x07\u035B\x02\x02\u1314\u1315" + + "\x07\u0374\x02\x02\u1315\u1316\x07\u0366\x02\x02\u1316\u1317\x07\u0230" + + "\x02\x02\u1317\u1318\x07\u035B\x02\x02\u1318\u131B\x05\u02CC\u0167\x02" + + "\u1319\u131B\x07\u027C\x02\x02\u131A\u1301\x03\x02\x02\x02\u131A\u1304" + + "\x03\x02\x02\x02\u131A\u130B\x03\x02\x02\x02\u131A\u1312\x03\x02\x02\x02" + + "\u131A\u1319\x03\x02\x02\x02\u131B\u0191\x03\x02\x02\x02\u131C\u131D\x07" + + "\u02A8\x02\x02\u131D\u131E\x07\u035B\x02\x02\u131E\u1329\x07\u0374\x02" + + "\x02\u131F\u1320\x07\u0213\x02\x02\u1320\u1321\x07\u035B\x02\x02\u1321" + + "\u1329\x07\u0374\x02\x02\u1322\u1323\x07\u016D\x02\x02\u1323\u1324\x07" + + "\u035B\x02\x02\u1324\u1329\x07\u0374\x02\x02\u1325\u1326\x07\u0219\x02" + + "\x02\u1326\u1327\x07\u035B\x02\x02\u1327\u1329\x07\u0374\x02\x02\u1328" + + "\u131C\x03\x02\x02\x02\u1328\u131F\x03\x02\x02\x02\u1328\u1322\x03\x02" + + "\x02\x02\u1328\u1325\x03\x02\x02\x02\u1329\u0193\x03\x02\x02\x02\u132A" + + "\u132F\x05\u02BC\u015F\x02\u132B\u132C\x07\u0366\x02\x02\u132C\u132E\x05" + + "\u02BC\u015F\x02\u132D\u132B\x03\x02\x02\x02\u132E\u1331\x03\x02\x02\x02" + + "\u132F\u132D\x03\x02\x02\x02\u132F\u1330\x03\x02\x02\x02\u1330\u1334\x03" + + "\x02\x02\x02\u1331\u132F\x03\x02\x02\x02\u1332\u1334\x07\u0374\x02\x02" + + "\u1333\u132A\x03\x02\x02\x02\u1333\u1332\x03\x02\x02\x02\u1334\u0195\x03" + + "\x02\x02\x02\u1335\u1336\x07\u02B8\x02\x02\u1336\u1337\tM\x02\x02\u1337" + + "\u1339\x05\u02BE\u0160\x02\u1338\u133A\tN\x02\x02\u1339\u1338\x03\x02" + + "\x02\x02\u1339\u133A\x03\x02\x02\x02\u133A\u0197\x03\x02\x02\x02\u133B" + + "\u133C\x07\u02B8\x02\x02\u133C\u133D\x07\u017C\x02\x02\u133D\u1343\x05" + + "\u02BE\u0160\x02\u133E\u1341\x07\u0290\x02\x02\u133F\u1340\x07C\x02\x02" + + "\u1340\u1342\x07\u01EB\x02\x02\u1341\u133F\x03\x02\x02\x02\u1341\u1342" + + "\x03\x02\x02\x02\u1342\u1344\x03\x02\x02\x02\u1343\u133E\x03\x02\x02\x02" + + "\u1343\u1344\x03\x02\x02\x02\u1344\u0199\x03\x02\x02\x02\u1345\u1346\x07" + + "\u02B8\x02\x02\u1346\u1347\x07\u021E\x02\x02\u1347\u1348\x05\u02BE\u0160" + + "\x02\u1348\u019B\x03\x02\x02\x02\u1349\u134A\x07\u02B8\x02\x02\u134A\u134B" + + "\x07\u0157\x02\x02\u134B\u134E\x05\u02BE\u0160\x02\u134C\u134D\x07\u0203" + + "\x02\x02\u134D\u134F\x07\u0217\x02\x02\u134E\u134C\x03\x02\x02\x02\u134E" + + "\u134F\x03\x02\x02\x02\u134F\u019D\x03\x02\x02\x02\u1350\u1351\x07\u02B8" + + "\x02\x02\u1351\u1352\x07\u0249\x02\x02\u1352\u1353\x05\u02BE\u0160\x02" + + "\u1353\u019F\x03\x02\x02\x02\u1354\u1355\x07\u02B8\x02\x02\u1355\u1358" + + "\x07\u0229\x02\x02\u1356\u1357\x07#\x02\x02\u1357\u1359\x05\u02BE\u0160" + + "\x02\u1358\u1356\x03\x02\x02\x02\u1358\u1359\x03\x02\x02\x02\u1359\u01A1" + + "\x03\x02\x02\x02\u135A\u135B\x07\u021E\x02\x02\u135B\u135C\x05\u02C6\u0164" + + "\x02\u135C\u135F\x07F\x02\x02\u135D\u1360\x07\u0374\x02\x02\u135E\u1360" + + "\x07\u037F\x02\x02\u135F\u135D\x03\x02\x02\x02\u135F\u135E\x03\x02\x02" + + "\x02\u1360\u01A3\x03\x02\x02\x02\u1361\u1362\x07\u02CF\x02\x02\u1362\u1365" + + "\x05\u02C6\u0164\x02\u1363\u1364\x07\xBE\x02\x02\u1364\u1366\x05\u02F4" + + "\u017B\x02\u1365\u1363\x03\x02\x02\x02\u1365\u1366\x03\x02\x02\x02\u1366" + + "\u01A5\x03\x02\x02\x02\u1367\u1368\tO\x02\x02\u1368\u1369\x07\u021E\x02" + + "\x02\u1369\u136A\x05\u02C6\u0164\x02\u136A\u01A7\x03\x02\x02\x02\u136B" + + "\u136E\x05\u01AA\xD6\x02\u136C\u136E\x05\x06\x04\x02\u136D\u136B\x03\x02" + + "\x02\x02\u136D\u136C\x03\x02\x02\x02\u136E\u01A9\x03\x02\x02\x02\u136F" + + "\u1370\x05\u02C6\u0164\x02\u1370\u1371\x07\u0370\x02\x02\u1371\u1373\x03" + + "\x02\x02\x02\u1372\u136F\x03\x02\x02\x02\u1372\u1373\x03\x02\x02\x02\u1373" + + "\u1374\x03\x02\x02\x02\u1374\u137A\x07\u013F\x02\x02\u1375\u1376\x05\u01BE" + + "\xE0\x02\u1376\u1377\x07\u0367\x02\x02\u1377\u1379\x03\x02\x02\x02\u1378" + + "\u1375\x03\x02\x02\x02\u1379\u137C\x03\x02\x02\x02\u137A\u1378\x03\x02" + + "\x02\x02\u137A\u137B\x03\x02\x02\x02\u137B\u1382\x03\x02\x02\x02\u137C" + + "\u137A\x03\x02\x02\x02\u137D\u137E\x05\u01C0\xE1\x02\u137E\u137F\x07\u0367" + + "\x02\x02\u137F\u1381\x03\x02\x02\x02\u1380\u137D\x03\x02\x02\x02\u1381" + + "\u1384\x03\x02\x02\x02\u1382\u1380\x03\x02\x02\x02\u1382\u1383\x03\x02" + + "\x02\x02\u1383\u138A\x03\x02\x02\x02\u1384\u1382\x03\x02\x02\x02\u1385" + + "\u1386\x05\u01C2\xE2\x02\u1386\u1387\x07\u0367\x02\x02\u1387\u1389\x03" + + "\x02\x02\x02\u1388\u1385\x03\x02\x02\x02\u1389\u138C\x03\x02\x02\x02\u138A" + + "\u1388\x03\x02\x02\x02\u138A\u138B\x03\x02\x02\x02\u138B\u1392\x03\x02" + + "\x02\x02\u138C\u138A\x03\x02\x02\x02\u138D\u138E\x05\u01C4\xE3\x02\u138E" + + "\u138F\x07\u0367\x02\x02\u138F\u1391\x03\x02\x02\x02\u1390\u138D\x03\x02" + + "\x02\x02\u1391\u1394\x03\x02\x02\x02\u1392\u1390\x03\x02\x02\x02\u1392" + + "\u1393\x03\x02\x02\x02\u1393\u1398\x03\x02\x02\x02\u1394\u1392\x03\x02" + + "\x02\x02\u1395\u1397\x05\u01C8\xE5\x02\u1396\u1395\x03\x02\x02\x02\u1397" + + "\u139A\x03\x02\x02\x02\u1398\u1396\x03\x02\x02\x02\u1398\u1399\x03\x02" + + "\x02\x02\u1399\u139B\x03\x02\x02\x02\u139A\u1398\x03\x02\x02\x02\u139B" + + "\u139D\x07\u017C\x02\x02\u139C\u139E\x05\u02C6\u0164\x02\u139D\u139C\x03" + + "\x02\x02\x02\u139D\u139E\x03\x02\x02\x02\u139E\u01AB\x03\x02\x02\x02\u139F" + + "\u13A2\x07\x19\x02\x02\u13A0\u13A3\x05\u02C6\u0164\x02\u13A1\u13A3\x05" + + "\u0328\u0195\x02\u13A2\u13A0\x03\x02\x02\x02\u13A2\u13A1\x03\x02\x02\x02" + + "\u13A2\u13A3\x03\x02\x02\x02\u13A3\u13A5\x03\x02\x02\x02\u13A4\u13A6\x05" + + "\u01CA\xE6\x02\u13A5\u13A4\x03\x02\x02\x02\u13A6\u13A7\x03\x02\x02\x02" + + "\u13A7\u13A5\x03\x02\x02\x02\u13A7\u13A8\x03\x02\x02\x02\u13A8\u13AF\x03" + + "\x02\x02\x02\u13A9\u13AB\x077\x02\x02\u13AA\u13AC\x05\u01C8\xE5\x02\u13AB" + + "\u13AA\x03\x02\x02\x02\u13AC\u13AD\x03\x02\x02\x02\u13AD\u13AB\x03\x02" + + "\x02\x02\u13AD\u13AE\x03\x02\x02\x02\u13AE\u13B0\x03\x02\x02\x02\u13AF" + + "\u13A9\x03\x02\x02\x02\u13AF\u13B0\x03\x02\x02\x02\u13B0\u13B1\x03\x02" + + "\x02\x02\u13B1\u13B2\x07\u017C\x02\x02\u13B2\u13B3\x07\x19\x02\x02\u13B3" + + "\u01AD\x03\x02\x02\x02\u13B4\u13B5\x07P\x02\x02\u13B5\u13B6\x05\u0328" + + "\u0195\x02\u13B6\u13B8\x07\xB1\x02\x02\u13B7\u13B9\x05\u01C8\xE5\x02\u13B8" + + "\u13B7\x03\x02\x02\x02\u13B9\u13BA\x03\x02\x02\x02\u13BA\u13B8\x03\x02" + + "\x02\x02\u13BA\u13BB\x03\x02\x02\x02\u13BB\u13BF\x03\x02\x02\x02\u13BC" + + "\u13BE\x05\u01CC\xE7\x02\u13BD\u13BC\x03\x02\x02\x02\u13BE\u13C1\x03\x02" + + "\x02\x02\u13BF\u13BD\x03\x02\x02\x02\u13BF\u13C0\x03\x02\x02\x02\u13C0" + + "\u13C8\x03\x02\x02\x02\u13C1\u13BF\x03\x02\x02\x02\u13C2\u13C4\x077\x02" + + "\x02\u13C3\u13C5\x05\u01C8\xE5\x02\u13C4\u13C3\x03\x02\x02\x02\u13C5\u13C6" + + "\x03\x02\x02\x02\u13C6\u13C4\x03\x02\x02\x02\u13C6\u13C7\x03\x02\x02\x02" + + "\u13C7\u13C9\x03\x02\x02\x02\u13C8\u13C2\x03\x02\x02\x02\u13C8\u13C9\x03" + + "\x02\x02\x02\u13C9\u13CA\x03\x02\x02\x02\u13CA\u13CB\x07\u017C\x02\x02" + + "\u13CB\u13CC\x07P\x02\x02\u13CC\u01AF\x03\x02\x02\x02\u13CD\u13CE\x07" + + "\\\x02\x02\u13CE\u13CF\x05\u02C6\u0164\x02\u13CF\u01B1\x03\x02\x02\x02" + + "\u13D0\u13D1\x07c\x02\x02\u13D1\u13D2\x05\u02C6\u0164\x02\u13D2\u01B3" + + "\x03\x02\x02\x02\u13D3\u13D4\x05\u02C6\u0164\x02\u13D4\u13D5\x07\u0370" + + "\x02\x02\u13D5\u13D7\x03\x02\x02\x02\u13D6\u13D3\x03\x02\x02\x02\u13D6" + + "\u13D7\x03\x02\x02\x02\u13D7\u13D8\x03\x02\x02\x02\u13D8\u13DA\x07l\x02" + + "\x02\u13D9\u13DB\x05\u01C8\xE5\x02\u13DA\u13D9\x03\x02\x02\x02\u13DB\u13DC" + + "\x03\x02\x02\x02\u13DC\u13DA\x03\x02\x02\x02\u13DC\u13DD\x03\x02\x02\x02" + + "\u13DD\u13DE\x03\x02\x02\x02\u13DE\u13DF\x07\u017C\x02\x02\u13DF\u13E1" + + "\x07l\x02\x02\u13E0\u13E2\x05\u02C6\u0164\x02\u13E1\u13E0\x03\x02\x02" + + "\x02\u13E1\u13E2\x03\x02\x02\x02\u13E2\u01B5\x03\x02\x02\x02\u13E3\u13E4" + + "\x05\u02C6\u0164\x02\u13E4\u13E5\x07\u0370\x02\x02\u13E5\u13E7\x03\x02" + + "\x02\x02\u13E6\u13E3\x03\x02\x02\x02\u13E6\u13E7\x03\x02\x02\x02\u13E7" + + "\u13E8\x03\x02\x02\x02\u13E8\u13EA\x07\x90\x02\x02\u13E9\u13EB\x05\u01C8" + + "\xE5\x02\u13EA\u13E9\x03\x02\x02\x02\u13EB\u13EC\x03\x02\x02\x02\u13EC" + + "\u13EA\x03\x02\x02\x02\u13EC\u13ED\x03\x02\x02\x02\u13ED\u13EE\x03\x02" + + "\x02\x02\u13EE\u13EF\x07\u02A6\x02\x02\u13EF\u13F0\x05\u0328\u0195\x02" + + "\u13F0\u13F1\x07\u017C\x02\x02\u13F1\u13F3\x07\x90\x02\x02\u13F2\u13F4" + + "\x05\u02C6\u0164\x02\u13F3\u13F2\x03\x02\x02\x02\u13F3\u13F4\x03\x02\x02" + + "\x02\u13F4\u01B7\x03\x02\x02\x02\u13F5\u13F6\x07\x96\x02\x02\u13F6\u13F7" + + "\x05\u0328\u0195\x02\u13F7\u01B9\x03\x02\x02\x02\u13F8\u13F9\x05\u02C6" + + "\u0164\x02\u13F9\u13FA\x07\u0370\x02\x02\u13FA\u13FC\x03\x02\x02\x02\u13FB" + + "\u13F8\x03\x02\x02\x02\u13FB\u13FC\x03\x02\x02\x02\u13FC\u13FD\x03\x02" + + "\x02\x02\u13FD\u13FE\x07\xC3\x02\x02\u13FE\u13FF\x05\u0328\u0195\x02\u13FF" + + "\u1401\x07\u0175\x02\x02\u1400\u1402\x05\u01C8\xE5\x02\u1401\u1400\x03" + + "\x02\x02\x02\u1402\u1403\x03\x02\x02\x02\u1403\u1401\x03\x02\x02\x02\u1403" + + "\u1404\x03\x02\x02\x02\u1404\u1405\x03\x02\x02\x02\u1405\u1406\x07\u017C" + + "\x02\x02\u1406\u1408\x07\xC3\x02\x02\u1407\u1409\x05\u02C6\u0164\x02\u1408" + + "\u1407\x03\x02\x02\x02\u1408\u1409\x03\x02\x02\x02\u1409\u01BB\x03\x02" + + "\x02\x02\u140A\u140B\x07\u0150\x02\x02\u140B\u141A\x05\u02C6\u0164\x02" + + "\u140C\u1411\x07B\x02\x02\u140D\u140F\x07\u01F7\x02\x02\u140E\u140D\x03" + + "\x02\x02\x02\u140E\u140F\x03\x02\x02\x02\u140F\u1410\x03\x02\x02\x02\u1410" + + "\u1412\x07F\x02\x02\u1411\u140E\x03\x02\x02\x02\u1411\u1412\x03\x02\x02" + + "\x02\u1412\u1413\x03\x02\x02\x02\u1413\u1414\x05\u02C6\u0164\x02\u1414" + + "\u1415\x07Z\x02\x02\u1415\u1416\x05\u02C4\u0163\x02\u1416\u141A\x03\x02" + + "\x02\x02\u1417\u1418\x07\u0206\x02\x02\u1418\u141A\x05\u02C6\u0164\x02" + + "\u1419\u140A\x03\x02\x02\x02\u1419\u140C\x03\x02\x02\x02\u1419\u1417\x03" + + "\x02\x02\x02\u141A\u01BD\x03\x02\x02\x02\u141B\u141C\x07+\x02\x02\u141C" + + "\u141D\x05\u02C4\u0163\x02\u141D\u1420\x05\u02DA\u016E\x02\u141E\u141F" + + "\x07,\x02\x02\u141F\u1421\x05\u0328\u0195\x02\u1420\u141E\x03\x02\x02" + + "\x02\u1420\u1421\x03\x02\x02\x02\u1421\u01BF\x03\x02\x02\x02\u1422\u1423" + + "\x07+\x02\x02\u1423\u1424\x05\u02C6\u0164\x02\u1424\u1425\x07 \x02\x02" + + "\u1425\u142C\x07C\x02\x02\u1426\u142D\x05\u02CC\u0167\x02\u1427\u1429" + + "\x07\xA6\x02\x02\u1428\u142A\x07\u02AC\x02\x02\u1429\u1428\x03\x02\x02" + + "\x02\u1429\u142A\x03\x02\x02\x02\u142A\u142B\x03\x02\x02\x02\u142B\u142D" + + "\x07\u0374\x02\x02\u142C\u1426\x03\x02\x02\x02\u142C\u1427\x03\x02\x02" + + "\x02\u142D\u01C1\x03\x02\x02\x02\u142E\u142F\x07+\x02\x02\u142F\u1430" + + "\x05\u02C6\u0164\x02\u1430\u1431\x07(\x02\x02\u1431\u1432\x07C\x02\x02" + + "\u1432\u1433\x05\xCEh\x02\u1433\u01C3\x03\x02\x02\x02\u1434\u1435\x07" + + "+\x02\x02\u1435\u1436\tP\x02\x02\u1436\u1437\x07\u01A3\x02\x02\u1437\u1438" + + "\x07C\x02\x02\u1438\u143D\x05\u01C6\xE4\x02\u1439\u143A\x07\u0366\x02" + + "\x02\u143A\u143C\x05\u01C6\xE4\x02\u143B\u1439\x03\x02\x02\x02\u143C\u143F" + + "\x03\x02\x02\x02\u143D\u143B\x03\x02\x02\x02\u143D\u143E\x03\x02\x02\x02" + + "\u143E\u1440\x03\x02\x02\x02\u143F\u143D\x03\x02\x02\x02\u1440\u1441\x05" + + "\u01A8\xD5\x02\u1441\u01C5\x03\x02\x02\x02\u1442\u144E\x05\u02CC\u0167" + + "\x02\u1443\u1445\x07\xA6\x02\x02\u1444\u1446\x07\u02AC\x02\x02\u1445\u1444" + + "\x03\x02\x02\x02\u1445\u1446\x03\x02\x02\x02\u1446\u1447\x03\x02\x02\x02" + + "\u1447\u144E\x07\u0374\x02\x02\u1448\u144E\x05\u02C6\u0164\x02\u1449\u144E" + + "\x07\xA7\x02\x02\u144A\u144B\x07t\x02\x02\u144B\u144E\x07\u0199\x02\x02" + + "\u144C\u144E\x07\xA5\x02\x02\u144D\u1442\x03\x02\x02\x02\u144D\u1443\x03" + + "\x02\x02\x02\u144D\u1448\x03\x02\x02\x02\u144D\u1449\x03\x02\x02\x02\u144D" + + "\u144A\x03\x02\x02\x02\u144D\u144C\x03\x02\x02\x02\u144E\u01C7\x03\x02" + + "\x02\x02\u144F\u1452\x05\x14\v\x02\u1450\u1452\x05\x06\x04\x02\u1451\u144F" + + "\x03\x02\x02\x02\u1451\u1450\x03\x02\x02\x02\u1452\u1453\x03\x02\x02\x02" + + "\u1453\u1454\x07\u0367\x02\x02\u1454\u01C9\x03\x02\x02\x02\u1455\u1458" + + "\x07\xC1\x02\x02\u1456\u1459\x05\u02D8\u016D\x02\u1457\u1459\x05\u0328" + + "\u0195\x02\u1458\u1456\x03\x02\x02\x02\u1458\u1457\x03\x02\x02\x02\u1459" + + "\u145A\x03\x02\x02\x02\u145A\u145C\x07\xB1\x02\x02\u145B\u145D\x05\u01C8" + + "\xE5\x02\u145C\u145B\x03\x02\x02\x02\u145D\u145E\x03\x02\x02\x02\u145E" + + "\u145C\x03"; + private static readonly _serializedATNSegment11: string = + "\x02\x02\x02\u145E\u145F\x03\x02\x02\x02\u145F\u01CB\x03\x02\x02\x02\u1460" + + "\u1461\x078\x02\x02\u1461\u1462\x05\u0328\u0195\x02\u1462\u1464\x07\xB1" + + "\x02\x02\u1463\u1465\x05\u01C8\xE5\x02\u1464\u1463\x03\x02\x02\x02\u1465" + + "\u1466\x03\x02\x02\x02\u1466\u1464\x03\x02\x02\x02\u1466\u1467\x03\x02" + + "\x02\x02\u1467\u01CD\x03\x02\x02\x02\u1468\u1469\x07\n\x02\x02\u1469\u146B" + + "\x07\u02A8\x02\x02\u146A\u146C\x05\u02FA\u017E\x02\u146B\u146A\x03\x02" + + "\x02\x02\u146B\u146C\x03\x02\x02\x02\u146C\u14A5\x03\x02\x02\x02\u146D" + + "\u1472\x05\u01EE\xF8\x02\u146E\u146F\x07\u0366\x02\x02\u146F\u1471\x05" + + "\u01EE\xF8\x02\u1470\u146E\x03\x02\x02\x02\u1471\u1474\x03\x02\x02\x02" + + "\u1472\u1470\x03\x02\x02\x02\u1472\u1473\x03\x02\x02\x02\u1473\u14A6\x03" + + "\x02\x02\x02\u1474\u1472\x03\x02\x02\x02\u1475\u147A\x05\u01F0\xF9\x02" + + "\u1476\u1477\x07\u0366\x02\x02\u1477\u1479\x05\u01F0\xF9\x02\u1478\u1476" + + "\x03\x02\x02\x02\u1479\u147C\x03\x02\x02\x02\u147A\u1478\x03\x02\x02\x02" + + "\u147A\u147B\x03\x02\x02\x02\u147B\u148B\x03\x02\x02\x02\u147C\u147A\x03" + + "\x02\x02\x02\u147D\u1489\x07\x92\x02\x02\u147E\u148A\x07\u01FB\x02\x02" + + "\u147F\u1486\x05\u01FC\xFF\x02\u1480\u1482\x07\r\x02\x02\u1481\u1480\x03" + + "\x02\x02\x02\u1481\u1482\x03\x02\x02\x02\u1482\u1483\x03\x02\x02\x02\u1483" + + "\u1485\x05\u01FC\xFF\x02\u1484\u1481\x03\x02\x02\x02\u1485\u1488\x03\x02" + + "\x02\x02\u1486\u1484\x03\x02\x02\x02\u1486\u1487\x03\x02\x02\x02\u1487" + + "\u148A\x03\x02\x02\x02\u1488\u1486\x03\x02\x02\x02\u1489\u147E\x03\x02" + + "\x02\x02\u1489\u147F\x03\x02\x02\x02\u148A\u148C\x03\x02\x02\x02\u148B" + + "\u147D\x03\x02\x02\x02\u148B\u148C\x03\x02\x02\x02\u148C\u1493\x03\x02" + + "\x02\x02\u148D\u148F\x07\xC4\x02\x02\u148E\u1490\x05\u01FE\u0100\x02\u148F" + + "\u148E\x03\x02\x02\x02\u1490\u1491\x03\x02\x02\x02\u1491\u148F\x03\x02" + + "\x02\x02\u1491\u1492\x03\x02\x02\x02\u1492\u1494\x03\x02\x02\x02\u1493" + + "\u148D\x03\x02\x02\x02\u1493\u1494\x03\x02\x02\x02\u1494\u1499\x03\x02" + + "\x02\x02\u1495\u1498\x05\u0200\u0101\x02\u1496\u1498\x05\u0202\u0102\x02" + + "\u1497\u1495\x03\x02\x02\x02\u1497\u1496\x03\x02\x02\x02\u1498\u149B\x03" + + "\x02\x02\x02\u1499\u1497\x03\x02\x02\x02\u1499\u149A\x03\x02\x02\x02\u149A" + + "\u149E\x03\x02\x02\x02\u149B\u1499\x03\x02\x02\x02\u149C\u149D\tQ\x02" + + "\x02\u149D\u149F\x07\u0374\x02\x02\u149E\u149C\x03\x02\x02\x02\u149E\u149F" + + "\x03\x02\x02\x02\u149F\u14A6\x03\x02\x02\x02\u14A0\u14A1\x05\u0294\u014B" + + "\x02\u14A1\u14A2\x07,\x02\x02\u14A2\u14A3\x07\u0248\x02\x02\u14A3\u14A4" + + "\x05\u01D6\xEC\x02\u14A4\u14A6\x03\x02\x02\x02\u14A5\u146D\x03\x02\x02" + + "\x02\u14A5\u1475\x03\x02\x02\x02\u14A5\u14A0\x03\x02\x02\x02\u14A6\u01CF" + + "\x03\x02\x02\x02\u14A7\u14A8\x07$\x02\x02\u14A8\u14AA\x07\u02A8\x02\x02" + + "\u14A9\u14AB\x05\u02FC\u017F\x02\u14AA\u14A9\x03\x02\x02\x02\u14AA\u14AB" + + "\x03\x02\x02\x02\u14AB\u14AC\x03\x02\x02\x02\u14AC\u14AE\x05\u02B0\u0159" + + "\x02\u14AD\u14AF\x05\u01F2\xFA\x02\u14AE\u14AD\x03\x02\x02\x02\u14AE\u14AF" + + "\x03\x02\x02\x02\u14AF\u14B7\x03\x02\x02\x02\u14B0\u14B1\x07\u0366\x02" + + "\x02\u14B1\u14B3\x05\u02B0\u0159\x02\u14B2\u14B4\x05\u01F2\xFA\x02\u14B3" + + "\u14B2\x03\x02\x02\x02\u14B3\u14B4\x03\x02\x02\x02\u14B4\u14B6\x03\x02" + + "\x02\x02\u14B5\u14B0\x03\x02\x02\x02\u14B6\u14B9\x03\x02\x02\x02\u14B7" + + "\u14B5\x03\x02\x02\x02\u14B7\u14B8\x03\x02\x02\x02\u14B8\u14BD\x03\x02" + + "\x02\x02\u14B9\u14B7\x03\x02\x02\x02\u14BA\u14BB\x07,\x02\x02\u14BB\u14BC" + + "\x07\u0248\x02\x02\u14BC\u14BE\x05\u01D6\xEC\x02\u14BD\u14BA\x03\x02\x02" + + "\x02\u14BD\u14BE\x03\x02\x02\x02\u14BE\u14CD\x03\x02\x02\x02\u14BF\u14CB" + + "\x07\x92\x02\x02\u14C0\u14CC\x07\u01FB\x02\x02\u14C1\u14C8\x05\u01FC\xFF" + + "\x02\u14C2\u14C4\x07\r\x02\x02\u14C3\u14C2\x03\x02\x02\x02\u14C3\u14C4" + + "\x03\x02\x02\x02\u14C4\u14C5\x03\x02\x02\x02\u14C5\u14C7\x05\u01FC\xFF" + + "\x02\u14C6\u14C3\x03\x02\x02\x02\u14C7\u14CA\x03\x02\x02\x02\u14C8\u14C6" + + "\x03\x02\x02\x02\u14C8\u14C9\x03\x02\x02\x02\u14C9\u14CC\x03\x02\x02\x02" + + "\u14CA\u14C8\x03\x02\x02\x02\u14CB\u14C0\x03\x02\x02\x02\u14CB\u14C1\x03" + + "\x02\x02\x02\u14CC\u14CE\x03\x02\x02\x02\u14CD\u14BF\x03\x02\x02\x02\u14CD" + + "\u14CE\x03\x02\x02\x02\u14CE\u14D5\x03\x02\x02\x02\u14CF\u14D1\x07\xC4" + + "\x02\x02\u14D0\u14D2\x05\u01FE\u0100\x02\u14D1\u14D0\x03\x02\x02\x02\u14D2" + + "\u14D3\x03\x02\x02\x02\u14D3\u14D1\x03\x02\x02\x02\u14D3\u14D4\x03\x02" + + "\x02\x02\u14D4\u14D6\x03\x02\x02\x02\u14D5\u14CF\x03\x02\x02\x02\u14D5" + + "\u14D6\x03\x02\x02\x02\u14D6\u14DB\x03\x02\x02\x02\u14D7\u14DA\x05\u0200" + + "\u0101\x02\u14D8\u14DA\x05\u0202\u0102\x02\u14D9\u14D7\x03\x02\x02\x02" + + "\u14D9\u14D8\x03\x02\x02\x02\u14DA\u14DD\x03\x02\x02\x02\u14DB\u14D9\x03" + + "\x02\x02\x02\u14DB\u14DC\x03\x02\x02\x02\u14DC\u14E0\x03\x02\x02\x02\u14DD" + + "\u14DB\x03\x02\x02\x02\u14DE\u14DF\tQ\x02\x02\u14DF\u14E1\x07\u0374\x02" + + "\x02\u14E0\u14DE\x03\x02\x02\x02\u14E0\u14E1\x03\x02\x02\x02\u14E1\u01D1" + + "\x03\x02\x02\x02\u14E2\u14E3\x075\x02\x02\u14E3\u14E5\x07\u02A8\x02\x02" + + "\u14E4\u14E6\x05\u02FA\u017E\x02\u14E5\u14E4\x03\x02\x02\x02\u14E5\u14E6" + + "\x03\x02\x02\x02\u14E6\u14E7\x03\x02\x02\x02\u14E7\u14EC\x05\u02B0\u0159" + + "\x02\u14E8\u14E9\x07\u0366\x02\x02\u14E9\u14EB\x05\u02B0\u0159\x02\u14EA" + + "\u14E8\x03\x02\x02\x02\u14EB\u14EE\x03\x02\x02\x02\u14EC\u14EA\x03\x02" + + "\x02\x02\u14EC\u14ED\x03\x02\x02\x02\u14ED\u01D3\x03\x02\x02\x02\u14EE" + + "\u14EC\x03\x02\x02\x02\u14EF\u14F0\x07K\x02\x02\u14F0\u14F5\x05\u020A" + + "\u0106\x02\u14F1\u14F2\x07\u0366\x02\x02\u14F2\u14F4\x05\u020A\u0106\x02" + + "\u14F3\u14F1\x03\x02\x02\x02\u14F4\u14F7\x03\x02\x02\x02\u14F5\u14F3\x03" + + "\x02\x02\x02\u14F5\u14F6\x03\x02\x02\x02\u14F6\u14F8\x03\x02\x02\x02\u14F7" + + "\u14F5\x03\x02\x02\x02\u14F8\u14FA\x07y\x02\x02\u14F9\u14FB\x05\u01EA" + + "\xF6\x02\u14FA\u14F9\x03\x02\x02\x02\u14FA\u14FB\x03\x02\x02\x02\u14FB" + + "\u14FC\x03\x02\x02\x02\u14FC\u14FD\x05\u020E\u0108\x02\u14FD\u1507\x07" + + "\xB2\x02\x02\u14FE\u1503\x05\u01F6\xFC\x02\u14FF\u1500\x07\u0366\x02\x02" + + "\u1500\u1502\x05\u01F6\xFC\x02\u1501\u14FF\x03\x02\x02\x02\u1502\u1505" + + "\x03\x02\x02\x02\u1503\u1501\x03\x02\x02\x02\u1503\u1504\x03\x02\x02\x02" + + "\u1504\u1508\x03\x02\x02\x02\u1505\u1503\x03\x02\x02\x02\u1506\u1508\x05" + + "\u0292\u014A\x02\u1507\u14FE\x03\x02\x02\x02\u1507\u1506\x03\x02\x02\x02" + + "\u1508\u1517\x03\x02\x02\x02\u1509\u1515\x07\x92\x02\x02\u150A\u1516\x07" + + "\u01FB\x02\x02\u150B\u1512\x05\u01FC\xFF\x02\u150C\u150E\x07\r\x02\x02" + + "\u150D\u150C\x03\x02\x02\x02\u150D\u150E\x03\x02\x02\x02\u150E\u150F\x03" + + "\x02\x02\x02\u150F\u1511\x05\u01FC\xFF\x02\u1510\u150D\x03\x02\x02\x02" + + "\u1511\u1514\x03\x02\x02\x02\u1512\u1510\x03\x02\x02\x02\u1512\u1513\x03" + + "\x02\x02\x02\u1513\u1516\x03\x02\x02\x02\u1514\u1512\x03\x02\x02\x02\u1515" + + "\u150A\x03\x02\x02\x02\u1515\u150B\x03\x02\x02\x02\u1516\u1518\x03\x02" + + "\x02\x02\u1517\u1509\x03\x02\x02\x02\u1517\u1518\x03\x02\x02\x02\u1518" + + "\u1522\x03\x02\x02\x02\u1519\u151F\x07\xC4\x02\x02\u151A\u151B\x07K\x02" + + "\x02\u151B\u151E\x07{\x02\x02\u151C\u151E\x05\u01FE\u0100\x02\u151D\u151A" + + "\x03\x02\x02\x02\u151D\u151C\x03\x02\x02\x02\u151E\u1521\x03\x02\x02\x02" + + "\u151F\u151D\x03\x02\x02\x02\u151F\u1520\x03\x02\x02\x02\u1520\u1523\x03" + + "\x02\x02\x02\u1521\u151F\x03\x02\x02\x02\u1522\u1519\x03\x02\x02\x02\u1522" + + "\u1523\x03\x02\x02\x02\u1523\u152B\x03\x02\x02\x02\u1524\u1525\x07\x0F" + + "\x02\x02\u1525\u1529\x05\u02B0\u0159\x02\u1526\u1527\x07\xC4\x02\x02\u1527" + + "\u1528\x07\u0248\x02\x02\u1528\u152A\x05\u01D6\xEC\x02\u1529\u1526\x03" + + "\x02\x02\x02\u1529\u152A\x03\x02\x02\x02\u152A\u152C\x03\x02\x02\x02\u152B" + + "\u1524\x03\x02\x02\x02\u152B\u152C\x03\x02\x02\x02\u152C\u1549\x03\x02" + + "\x02\x02\u152D\u1530\x07K\x02\x02\u152E\u152F\x07\u0225\x02\x02\u152F" + + "\u1531\x07y\x02\x02\u1530\u152E\x03\x02\x02\x02\u1530\u1531\x03\x02\x02" + + "\x02\u1531\u1532\x03\x02\x02\x02\u1532\u1537\x05\u0294\u014B\x02\u1533" + + "\u1534\x07\u0366\x02\x02\u1534\u1536\x05\u0294\u014B\x02\u1535\u1533\x03" + + "\x02\x02\x02\u1536\u1539\x03\x02\x02\x02\u1537\u1535\x03\x02\x02\x02\u1537" + + "\u1538\x03\x02\x02\x02\u1538\u153A\x03\x02\x02\x02\u1539\u1537\x03\x02" + + "\x02\x02\u153A\u153B\x07\xB2\x02\x02\u153B\u1540\x05\u0294\u014B\x02\u153C" + + "\u153D\x07\u0366\x02\x02\u153D\u153F\x05\u0294\u014B\x02\u153E\u153C\x03" + + "\x02\x02\x02\u153F\u1542\x03\x02\x02\x02\u1540\u153E\x03\x02\x02\x02\u1540" + + "\u1541\x03\x02\x02\x02\u1541\u1546\x03\x02\x02\x02\u1542\u1540\x03\x02" + + "\x02\x02\u1543\u1544\x07\xC4\x02\x02\u1544\u1545\x07\u02C2\x02\x02\u1545" + + "\u1547\x07{\x02\x02\u1546\u1543\x03\x02\x02\x02\u1546\u1547\x03\x02\x02" + + "\x02\u1547\u1549\x03\x02\x02\x02\u1548\u14EF\x03\x02\x02\x02\u1548\u152D" + + "\x03\x02\x02\x02\u1549\u01D5\x03\x02\x02\x02\u154A\u1553\x07,\x02\x02" + + "\u154B\u1553\x07\u01FB\x02\x02\u154C\u154F\x07\t\x02\x02\u154D\u154E\x07" + + "=\x02\x02\u154E\u1550\x05\u0292\u014A\x02\u154F\u154D\x03\x02\x02\x02" + + "\u154F\u1550\x03\x02\x02\x02\u1550\u1553\x03\x02\x02\x02\u1551\u1553\x05" + + "\u0292\u014A\x02\u1552\u154A\x03\x02\x02\x02\u1552\u154B\x03\x02\x02\x02" + + "\u1552\u154C\x03\x02\x02\x02\u1552\u1551\x03\x02\x02\x02\u1553\u01D7\x03" + + "\x02\x02\x02\u1554\u1555\x07K\x02\x02\u1555\u1556\x07\u0225\x02\x02\u1556" + + "\u1557\x07y\x02\x02\u1557\u1558\x05\u02B0\u0159\x02\u1558\u1559\x07\xB2" + + "\x02\x02\u1559\u155E\x05\u02B0\u0159\x02\u155A\u155B\x07\u0366\x02\x02" + + "\u155B\u155D\x05\u02B0\u0159\x02\u155C\u155A\x03\x02\x02\x02\u155D\u1560" + + "\x03\x02\x02\x02\u155E\u155C\x03\x02\x02\x02\u155E\u155F\x03\x02\x02\x02" + + "\u155F\u1564\x03\x02\x02\x02\u1560\u155E\x03\x02\x02\x02\u1561\u1562\x07" + + "\xC4\x02\x02\u1562\u1563\x07K\x02\x02\u1563\u1565\x07{\x02\x02\u1564\u1561" + + "\x03\x02\x02\x02\u1564\u1565\x03\x02\x02\x02\u1565\u01D9\x03\x02\x02\x02" + + "\u1566\u1567\x07\n\x02\x02\u1567\u1568\x07\u02E5\x02\x02\u1568\u1569\x07" + + "L\x02\x02\u1569\u156F\x05\u028A\u0146\x02\u156A\u156C\x07\xC0\x02\x02" + + "\u156B\u156D\x07\u035B\x02\x02\u156C\u156B\x03\x02\x02\x02\u156C\u156D" + + "\x03\x02\x02\x02\u156D\u156E\x03\x02\x02\x02\u156E\u1570\x05\u01E2\xF2" + + "\x02\u156F\u156A\x03\x02\x02\x02\u156F\u1570\x03\x02\x02\x02\u1570\u1576" + + "\x03\x02\x02\x02\u1571\u1573\x07\u0347\x02\x02\u1572\u1574\x07\u035B\x02" + + "\x02\u1573\u1572\x03\x02\x02\x02\u1573\u1574\x03\x02\x02\x02\u1574\u1575" + + "\x03\x02\x02\x02\u1575\u1577\x05\u02CC\u0167\x02\u1576\u1571\x03\x02\x02" + + "\x02\u1576\u1577\x03\x02\x02\x02\u1577\u157C\x03\x02\x02\x02\u1578\u157A" + + "\t(\x02\x02\u1579\u157B\x07D\x02\x02\u157A\u1579\x03\x02\x02\x02\u157A" + + "\u157B\x03\x02\x02\x02\u157B\u157D\x03\x02\x02\x02\u157C\u1578\x03\x02" + + "\x02\x02\u157C\u157D\x03\x02\x02\x02\u157D\u01DB\x03\x02\x02\x02\u157E" + + "\u157F\x07$\x02\x02\u157F\u1580\x07\u02E5\x02\x02\u1580\u1581\x07L\x02" + + "\x02\u1581\u1582\x05\u0288\u0145\x02\u1582\u1583\x07\u0349\x02\x02\u1583" + + "\u1584\x07\u035B\x02\x02\u1584\u158A\tR\x02\x02\u1585\u1587\x07\xC0\x02" + + "\x02\u1586\u1588\x07\u035B\x02\x02\u1587\u1586\x03\x02\x02\x02\u1587\u1588" + + "\x03\x02\x02\x02\u1588\u1589\x03\x02\x02\x02\u1589\u158B\x05\u01E2\xF2" + + "\x02\u158A\u1585\x03\x02\x02\x02\u158A\u158B\x03\x02\x02\x02\u158B\u1591" + + "\x03\x02\x02\x02\u158C\u158E\x07\u0347\x02\x02\u158D\u158F\x07\u035B\x02" + + "\x02\u158E\u158D\x03\x02\x02\x02\u158E\u158F\x03\x02\x02\x02\u158F\u1590" + + "\x03\x02\x02\x02\u1590\u1592\x05\u02CC\u0167\x02\u1591\u158C\x03\x02\x02" + + "\x02\u1591\u1592\x03\x02\x02\x02\u1592\u1594\x03\x02\x02\x02\u1593\u1595" + + "\t(\x02\x02\u1594\u1593\x03\x02\x02\x02\u1594\u1595\x03\x02\x02\x02\u1595" + + "\u01DD\x03\x02\x02\x02\u1596\u1597\x075\x02\x02\u1597\u1598\x07\u02E5" + + "\x02\x02\u1598\u1599\x07L\x02\x02\u1599\u159B\x05\u028A\u0146\x02\u159A" + + "\u159C\x07D\x02\x02\u159B\u159A\x03\x02\x02\x02\u159B\u159C\x03\x02\x02" + + "\x02\u159C\u01DF\x03\x02\x02\x02\u159D\u159E\x07\x9D\x02\x02\u159E\u159F" + + "\x07\u02E5\x02\x02\u159F\u15A0\x07L\x02\x02\u15A0\u15AA\x05\u028A\u0146" + + "\x02\u15A1\u15A2\x07C\x02\x02\u15A2\u15A7\x05\u02CC\u0167\x02\u15A3\u15A4" + + "\x07\u0366\x02\x02\u15A4\u15A6\x05\u02CC\u0167\x02\u15A5\u15A3\x03\x02" + + "\x02\x02\u15A6\u15A9\x03\x02\x02\x02\u15A7\u15A5\x03\x02\x02\x02\u15A7" + + "\u15A8\x03\x02\x02\x02\u15A8\u15AB\x03\x02\x02\x02\u15A9\u15A7\x03\x02" + + "\x02\x02\u15AA\u15A1\x03\x02\x02\x02\u15AA\u15AB\x03\x02\x02\x02\u15AB" + + "\u01E1\x03\x02\x02\x02\u15AC\u15B2\x05\u02CC\u0167\x02\u15AD\u15AE\x05" + + "\u02CC\u0167\x02\u15AE\u15AF\x07\u0358\x02\x02\u15AF\u15B0\x05\u02CC\u0167" + + "\x02\u15B0\u15B2\x03\x02\x02\x02\u15B1\u15AC\x03\x02\x02\x02\u15B1\u15AD" + + "\x03\x02\x02\x02\u15B2\u15B7\x03\x02\x02\x02\u15B3\u15B4\x07\u0366\x02" + + "\x02\u15B4\u15B6\x05\u01E2\xF2\x02\u15B5\u15B3\x03\x02\x02\x02\u15B6\u15B9" + + "\x03\x02\x02\x02\u15B7\u15B5\x03\x02\x02\x02\u15B7\u15B8\x03\x02\x02\x02" + + "\u15B8\u01E3\x03\x02\x02\x02\u15B9\u15B7\x03\x02\x02\x02\u15BA\u15BB\x07" + + "\x8F\x02\x02\u15BB\u15BC\x07\u02A8\x02\x02\u15BC\u15C1\x05\u0210\u0109" + + "\x02\u15BD\u15BE\x07\u0366\x02\x02\u15BE\u15C0\x05\u0210\u0109\x02\u15BF" + + "\u15BD\x03\x02\x02\x02\u15C0\u15C3\x03\x02\x02\x02\u15C1\u15BF\x03\x02" + + "\x02\x02\u15C1\u15C2\x03\x02\x02\x02\u15C2\u01E5\x03\x02\x02\x02\u15C3" + + "\u15C1\x03\x02\x02\x02\u15C4\u15C6\x07\x97\x02\x02\u15C5\u15C7\x05\u02FA" + + "\u017E\x02\u15C6\u15C5\x03\x02\x02\x02\u15C6\u15C7\x03\x02\x02\x02\u15C7" + + "\u15C8\x03\x02\x02\x02\u15C8\u15CD\x05\u020A\u0106\x02\u15C9\u15CA\x07" + + "\u0366\x02\x02\u15CA\u15CC\x05\u020A\u0106\x02\u15CB\u15C9\x03\x02\x02" + + "\x02\u15CC\u15CF\x03\x02\x02\x02\u15CD\u15CB\x03\x02\x02\x02\u15CD\u15CE" + + "\x03\x02\x02\x02\u15CE\u15D0\x03\x02\x02\x02\u15CF\u15CD\x03\x02\x02\x02" + + "\u15D0\u15D2\x07y\x02\x02\u15D1\u15D3\x05\u01EA\xF6\x02\u15D2\u15D1\x03" + + "\x02\x02\x02\u15D2\u15D3\x03\x02\x02\x02\u15D3\u15D4\x03\x02\x02\x02\u15D4" + + "\u15D5\x05\u020E\u0108\x02\u15D5\u15D6\x07F\x02\x02\u15D6\u15D8\x05\u0292" + + "\u014A\x02\u15D7\u15D9\x05\u01E8\xF5\x02\u15D8\u15D7\x03\x02\x02\x02\u15D8" + + "\u15D9\x03\x02\x02\x02\u15D9\u15F9\x03\x02\x02\x02\u15DA\u15DC\x07\x97" + + "\x02\x02\u15DB\u15DD\x05\u02FA\u017E\x02\u15DC\u15DB\x03\x02\x02\x02\u15DC" + + "\u15DD\x03\x02\x02\x02\u15DD\u15DE\x03\x02\x02\x02\u15DE\u15E0\x07\t\x02" + + "\x02\u15DF\u15E1\x07\u02E0\x02\x02\u15E0\u15DF\x03\x02\x02\x02\u15E0\u15E1" + + "\x03\x02\x02\x02\u15E1\u15E2\x03\x02\x02\x02\u15E2\u15E3\x07\u0366\x02" + + "\x02\u15E3\u15E4\x07K\x02\x02\u15E4\u15E5\x07{\x02\x02\u15E5\u15E6\x07" + + "F\x02\x02\u15E6\u15E8\x05\u0292\u014A\x02\u15E7\u15E9\x05\u01E8\xF5\x02" + + "\u15E8\u15E7\x03\x02\x02\x02\u15E8\u15E9\x03\x02\x02\x02\u15E9\u15F9\x03" + + "\x02\x02\x02\u15EA\u15EC\x07\x97\x02\x02\u15EB\u15ED\x05\u02FA\u017E\x02" + + "\u15EC\u15EB\x03\x02\x02\x02\u15EC\u15ED\x03\x02\x02\x02\u15ED\u15F0\x03" + + "\x02\x02\x02\u15EE\u15EF\x07\u0225\x02\x02\u15EF\u15F1\x07y\x02\x02\u15F0" + + "\u15EE\x03\x02\x02\x02\u15F0\u15F1\x03\x02\x02\x02\u15F1\u15F2\x03\x02" + + "\x02\x02\u15F2\u15F3\x05\u0292\u014A\x02\u15F3\u15F4\x07F\x02\x02\u15F4" + + "\u15F6\x05\u0292\u014A\x02\u15F5\u15F7\x05\u01E8\xF5\x02\u15F6\u15F5\x03" + + "\x02\x02\x02\u15F6\u15F7\x03\x02\x02\x02\u15F7\u15F9\x03\x02\x02\x02\u15F8" + + "\u15C4\x03\x02\x02\x02\u15F8\u15DA\x03\x02\x02\x02\u15F8\u15EA\x03\x02" + + "\x02\x02\u15F9\u01E7\x03\x02\x02\x02\u15FA\u15FB\x07Q\x02\x02\u15FB\u15FC" + + "\x07\u02A4\x02\x02\u15FC\u15FD\x07\u02A8\x02\x02\u15FD\u01E9\x03\x02\x02" + + "\x02\u15FE\u15FF\tS\x02\x02\u15FF\u01EB\x03\x02\x02\x02\u1600\u1601\x07" + + "\x9D\x02\x02\u1601\u1604\x07\u0213\x02\x02\u1602\u1603\x07C\x02\x02\u1603" + + "\u1605\x05\u02B0\u0159\x02\u1604\u1602\x03\x02\x02\x02\u1604\u1605\x03" + + "\x02\x02\x02\u1605\u1606\x03\x02\x02\x02\u1606\u1609\x07\u035B\x02\x02" + + "\u1607\u160A\x05\u0322\u0192\x02\u1608\u160A\x07\u0374\x02\x02\u1609\u1607" + + "\x03\x02\x02\x02\u1609\u1608\x03\x02\x02\x02\u160A\u1621\x03\x02\x02\x02" + + "\u160B\u160C\x07\x9D\x02\x02\u160C\u160F\x07\u0213\x02\x02\u160D\u160E" + + "\x07C\x02\x02\u160E\u1610\x05\u02B0\u0159\x02\u160F\u160D\x03\x02\x02" + + "\x02\u160F\u1610\x03\x02\x02\x02\u1610\u1615\x03\x02\x02\x02\u1611\u1612" + + "\x07\xB2\x02\x02\u1612\u1616\x07\u033F\x02\x02\u1613\u1614\x07\u035B\x02" + + "\x02\u1614\u1616\x07\u0374\x02\x02\u1615\u1611\x03\x02\x02\x02\u1615\u1613" + + "\x03\x02\x02\x02\u1616\u1619\x03\x02\x02\x02\u1617\u1618\x07\x91\x02\x02" + + "\u1618\u161A\x07\u0374\x02\x02\u1619\u1617\x03\x02\x02\x02\u1619\u161A" + + "\x03\x02\x02\x02\u161A\u161E\x03\x02\x02\x02\u161B\u161C\x07\x95\x02\x02" + + "\u161C\u161D\x07&\x02\x02\u161D\u161F\x07\u0213\x02\x02\u161E\u161B\x03" + + "\x02\x02\x02\u161E\u161F\x03\x02\x02\x02\u161F\u1621\x03\x02\x02\x02\u1620" + + "\u1600\x03\x02\x02\x02\u1620\u160B\x03\x02\x02\x02\u1621\u01ED\x03\x02" + + "\x02\x02\u1622\u1623\x05\u02B0\u0159\x02\u1623\u1624\x05\u0200\u0101\x02" + + "\u1624\u01EF\x03\x02\x02\x02\u1625\u1626\x05\u02B0\u0159\x02\u1626\u1627" + + "\x07\u01A9\x02\x02\u1627\u1628\x07\x16\x02\x02\u1628\u1629\x07\u0374\x02" + + "\x02\u1629\u162A\x05\u01F8\xFD\x02\u162A\u164C\x03\x02\x02\x02\u162B\u162C" + + "\x05\u02B0\u0159\x02\u162C\u162D\x07\u01A9\x02\x02\u162D\u162E\x07\x16" + + "\x02\x02\u162E\u162F\x07\u033F\x02\x02\u162F\u1630\x07\u0213\x02\x02\u1630" + + "\u1631\x05\u01F8\xFD\x02\u1631\u164C\x03\x02\x02\x02\u1632\u1633\x05\u02B0" + + "\u0159\x02\u1633\u1634\x07\u01A9\x02\x02\u1634\u1635\x07\xC4\x02\x02\u1635" + + "\u1636\x05\u01FA\xFE\x02\u1636\u164C\x03\x02\x02\x02\u1637\u1638\x05\u02B0" + + "\u0159\x02\u1638\u1639\x07\u0173\x02\x02\u1639\u163A\x07\u0201\x02\x02" + + "\u163A\u163B\x07\u0213\x02\x02\u163B\u164C\x03\x02\x02\x02\u163C\u1642" + + "\x05\u02B0\u0159\x02\u163D\u163E\tT\x02\x02\u163E\u1640\x05\u0208\u0105" + + "\x02\u163F\u1641\x05\u0204\u0103\x02\u1640\u163F\x03\x02\x02\x02\u1640" + + "\u1641\x03\x02\x02\x02\u1641\u1643\x03\x02\x02\x02\u1642\u163D\x03\x02" + + "\x02\x02\u1643\u1644\x03\x02\x02\x02\u1644\u1642\x03\x02\x02\x02\u1644" + + "\u1645\x03\x02\x02\x02\u1645\u164C\x03\x02\x02\x02\u1646\u1648\x05\u02B0" + + "\u0159\x02\u1647\u1649\x05\u0206\u0104\x02\u1648\u1647\x03\x02\x02\x02" + + "\u1648\u1649\x03\x02\x02\x02\u1649\u164C\x03\x02\x02\x02\u164A\u164C\x05" + + "\u02B0\u0159\x02\u164B\u1625\x03\x02\x02\x02\u164B\u162B\x03\x02\x02\x02" + + "\u164B\u1632\x03\x02\x02\x02\u164B\u1637\x03\x02\x02\x02\u164B\u163C\x03" + + "\x02\x02\x02\u164B\u1646\x03\x02\x02\x02\u164B\u164A\x03\x02\x02\x02\u164C" + + "\u01F1\x03\x02\x02\x02\u164D\u164E\x07\u01A9\x02\x02\u164E\u1654\x07\x16" + + "\x02\x02\u164F\u1655\x07\u0374\x02\x02\u1650\u1651\x07\u033F\x02\x02\u1651" + + "\u1655\x07\u0213\x02\x02\u1652\u1653\x07\u0213\x02\x02\u1653\u1655\x07" + + "\u0374\x02\x02\u1654\u164F\x03\x02\x02\x02\u1654\u1650\x03\x02\x02\x02" + + "\u1654\u1652\x03\x02\x02\x02\u1655\u1658\x03\x02\x02\x02\u1656\u1657\x07" + + "\r\x02\x02\u1657\u1659\x05\u01F2\xFA\x02\u1658\u1656\x03\x02\x02\x02\u1658" + + "\u1659\x03\x02\x02\x02\u1659\u1672\x03\x02\x02\x02\u165A\u165B\x07\u01A9" + + "\x02\x02\u165B\u165C\x07\xC4\x02\x02\u165C\u1665\x05\u02C6\u0164\x02\u165D" + + "\u1661\x07\x16\x02\x02\u165E\u1662\x07\u0374\x02\x02\u165F\u1660\x07\u033F" + + "\x02\x02\u1660\u1662\x07\u0213\x02\x02\u1661\u165E\x03\x02\x02\x02\u1661" + + "\u165F\x03\x02\x02\x02\u1662\u1666\x03\x02\x02\x02\u1663\u1664\x07\x0F" + + "\x02\x02\u1664\u1666\x07\u0374\x02\x02\u1665\u165D\x03\x02\x02\x02\u1665" + + "\u1663\x03\x02\x02\x02\u1665\u1666\x03\x02\x02\x02\u1666\u1669\x03\x02" + + "\x02\x02\u1667\u1668\x07\r\x02\x02\u1668\u166A\x05\u01F2\xFA\x02\u1669" + + "\u1667\x03\x02\x02\x02\u1669\u166A\x03\x02\x02\x02\u166A\u1672\x03\x02" + + "\x02\x02\u166B\u166C\x07\u01A9\x02\x02\u166C\u166D\x07\xC4\x02\x02\u166D" + + "\u166F\x05\u02C6\u0164\x02\u166E\u1670\x05\u01F4\xFB\x02\u166F\u166E\x03" + + "\x02\x02\x02\u166F\u1670\x03\x02\x02\x02\u1670\u1672\x03\x02\x02\x02\u1671" + + "\u164D\x03\x02\x02\x02\u1671\u165A\x03\x02\x02\x02\u1671\u166B\x03\x02" + + "\x02\x02\u1672\u01F3\x03\x02\x02\x02\u1673\u1674\x07\u01AD\x02\x02\u1674" + + "\u1675\x07\u02C6\x02\x02\u1675\u1676\x07\u01A9\x02\x02\u1676\u167A\x07" + + "\x16\x02\x02\u1677\u1678\x07\u033F\x02\x02\u1678\u167B\x07\u0213\x02\x02" + + "\u1679\u167B\x07\u0374\x02\x02\u167A\u1677\x03\x02\x02\x02\u167A\u1679" + + "\x03\x02\x02\x02\u167B\u1685\x03\x02\x02\x02\u167C\u167D\x07\u01AD\x02" + + "\x02\u167D\u167E\x07\u02C6\x02\x02\u167E\u167F\x07\u01A9\x02\x02\u167F" + + "\u1680\x07\xC4\x02\x02\u1680\u1681\x05\u02C6\u0164\x02\u1681\u1682\x07" + + "\x0F\x02\x02\u1682\u1683\x07\u0374\x02\x02\u1683\u1685\x03\x02\x02\x02" + + "\u1684\u1673\x03\x02\x02\x02\u1684\u167C\x03\x02\x02\x02\u1685\u01F5\x03" + + "\x02\x02\x02\u1686\u1687\x05\u02B0\u0159\x02\u1687\u1688\x07\u01A9\x02" + + "\x02\u1688\u1689\x07\x16\x02\x02\u1689\u168A\x07\u0213\x02\x02\u168A\u168B" + + "\x07\u0374\x02\x02\u168B\u16A0\x03\x02\x02\x02\u168C\u168D\x05\u02B0\u0159" + + "\x02\u168D\u168E\x07\u01A9\x02\x02\u168E\u168F\x07\x16\x02\x02\u168F\u1690" + + "\x07\u033F\x02\x02\u1690\u1691\x07\u0213\x02\x02\u1691\u1692\x05\u01F8" + + "\xFD\x02\u1692\u16A0\x03\x02\x02\x02\u1693\u1694\x05\u02B0\u0159\x02\u1694" + + "\u1695\x07\u01A9\x02\x02\u1695\u1696\x07\x16\x02\x02\u1696\u1697\x07\u0374" + + "\x02\x02\u1697\u1698\x05\u01F8\xFD\x02\u1698\u16A0\x03\x02\x02\x02\u1699" + + "\u169A\x05\u02B0\u0159\x02\u169A\u169B\x07\u01A9\x02\x02\u169B\u169C\x07" + + "\xC4\x02\x02\u169C\u169D\x05\u01FA\xFE\x02\u169D\u16A0\x03\x02\x02\x02" + + "\u169E\u16A0\x05\u02B0\u0159\x02\u169F\u1686\x03\x02\x02\x02\u169F\u168C" + + "\x03\x02\x02\x02\u169F\u1693\x03\x02\x02\x02\u169F\u1699\x03\x02\x02\x02" + + "\u169F\u169E\x03\x02\x02\x02\u16A0\u01F7\x03\x02\x02\x02\u16A1\u16A2\x07" + + "\x91\x02\x02\u16A2\u16A4\x07\u0374\x02\x02\u16A3\u16A1\x03\x02\x02\x02" + + "\u16A3\u16A4\x03\x02\x02\x02\u16A4\u16A8\x03\x02\x02\x02\u16A5\u16A6\x07" + + "\x95\x02\x02\u16A6\u16A7\x07&\x02\x02\u16A7\u16A9\x07\u0213\x02\x02\u16A8" + + "\u16A5\x03\x02\x02\x02\u16A8\u16A9\x03\x02\x02\x02\u16A9\u01F9\x03\x02" + + "\x02\x02\u16AA\u16B2\x05\u02C6\u0164\x02\u16AB\u16AF\tU\x02\x02\u16AC" + + "\u16B0\x07\u0374\x02\x02\u16AD\u16AE\x07\u033F\x02\x02\u16AE\u16B0\x07" + + "\u0213\x02\x02\u16AF\u16AC\x03\x02\x02\x02\u16AF\u16AD\x03\x02\x02\x02" + + "\u16B0\u16B1\x03\x02\x02\x02\u16B1\u16B3\x05\u01F8\xFD\x02\u16B2\u16AB" + + "\x03\x02\x02\x02\u16B2\u16B3\x03\x02\x02\x02\u16B3\u16B9\x03\x02\x02\x02" + + "\u16B4\u16B5\x05\u02C6\u0164\x02\u16B5\u16B6\x07\xBE\x02\x02\u16B6\u16B7" + + "\x05\u0322\u0192\x02\u16B7\u16B9\x03\x02\x02\x02\u16B8\u16AA\x03\x02\x02" + + "\x02\u16B8\u16B4\x03\x02\x02\x02\u16B9\u01FB\x03\x02\x02\x02\u16BA\u16C3" + + "\x07\xAB\x02\x02\u16BB\u16C3\x07\u02B7\x02\x02\u16BC\u16BD\x07\u014D\x02" + + "\x02\u16BD\u16C3\x07\u0374\x02\x02\u16BE\u16BF\x07\u01BB\x02\x02\u16BF" + + "\u16C3\x07\u0374\x02\x02\u16C0\u16C1\x07\u028D\x02\x02\u16C1\u16C3\x07" + + "\u0374\x02\x02\u16C2\u16BA\x03\x02\x02\x02\u16C2\u16BB\x03\x02\x02\x02" + + "\u16C2\u16BC\x03\x02\x02\x02\u16C2\u16BE\x03\x02\x02\x02\u16C2\u16C0\x03" + + "\x02\x02\x02\u16C3\u01FD\x03\x02\x02\x02\u16C4\u16C5\x07\u01E1\x02\x02" + + "\u16C5\u16CD\x05\u02CC\u0167\x02\u16C6\u16C7\x07\u01E4\x02\x02\u16C7\u16CD" + + "\x05\u02CC\u0167\x02\u16C8\u16C9\x07\u01E0\x02\x02\u16C9\u16CD\x05\u02CC" + + "\u0167\x02\u16CA\u16CB\x07\u01E5\x02\x02\u16CB\u16CD\x05\u02CC\u0167\x02" + + "\u16CC\u16C4\x03\x02\x02\x02\u16CC\u16C6\x03\x02\x02\x02\u16CC\u16C8\x03" + + "\x02\x02\x02\u16CC\u16CA\x03\x02\x02\x02\u16CD\u01FF\x03\x02\x02\x02\u16CE" + + "\u16CF\x07\u0213\x02\x02\u16CF\u16D6\x07\u0188\x02\x02\u16D0\u16D7\x07" + + ",\x02\x02\u16D1\u16D7\x07\u01F6\x02\x02\u16D2\u16D3\x07Y\x02\x02\u16D3" + + "\u16D4\x05\u02CC\u0167\x02\u16D4\u16D5\x07\u02BC\x02\x02\u16D5\u16D7\x03" + + "\x02\x02\x02\u16D6\u16D0\x03\x02\x02\x02\u16D6\u16D1\x03\x02\x02\x02\u16D6" + + "\u16D2\x03\x02\x02\x02\u16D6\u16D7\x03\x02\x02\x02\u16D7\u16F5\x03\x02" + + "\x02\x02\u16D8\u16D9\x07\u0213\x02\x02\u16D9\u16DC\x07\u01A6\x02\x02\u16DA" + + "\u16DD\x07,\x02\x02\u16DB\u16DD\x05\u02CC\u0167\x02\u16DC\u16DA\x03\x02" + + "\x02\x02\u16DC\u16DB\x03\x02\x02\x02\u16DD\u16F5\x03\x02\x02\x02\u16DE" + + "\u16DF\x07\u0213\x02\x02\u16DF\u16E0\x07\u0247\x02\x02\u16E0\u16E5\x07" + + "Y\x02\x02\u16E1\u16E6\x07,\x02\x02\u16E2\u16E3\x05\u02CC\u0167\x02\u16E3" + + "\u16E4\x07\u02BC\x02\x02\u16E4\u16E6\x03\x02\x02\x02\u16E5\u16E1\x03\x02" + + "\x02\x02\u16E5\u16E2\x03\x02\x02\x02\u16E6\u16F5\x03\x02\x02\x02\u16E7" + + "\u16E8\x07\u0213\x02\x02\u16E8\u16E9\x07\x92\x02\x02\u16E9\u16EB\x07&" + + "\x02\x02\u16EA\u16EC\tV\x02\x02\u16EB\u16EA\x03\x02\x02\x02\u16EB\u16EC" + + "\x03\x02\x02\x02\u16EC\u16F5\x03\x02\x02\x02\u16ED\u16EE\x07\u018D\x02" + + "\x02\u16EE\u16F5\x05\u02CC\u0167\x02\u16EF\u16F2\x07\u0214\x02\x02\u16F0" + + "\u16F3\x05\u02CC\u0167\x02\u16F1\u16F3\x07\u029F\x02\x02\u16F2\u16F0\x03" + + "\x02\x02\x02\u16F2\u16F1\x03\x02\x02\x02\u16F3\u16F5\x03\x02\x02\x02\u16F4" + + "\u16CE\x03\x02\x02\x02\u16F4\u16D8\x03\x02\x02\x02\u16F4\u16DE\x03\x02" + + "\x02\x02\u16F4\u16E7\x03\x02\x02\x02\u16F4\u16ED\x03\x02\x02\x02\u16F4" + + "\u16EF\x03\x02\x02\x02\u16F5\u0201\x03\x02\x02\x02\u16F6\u16F7\x07\u0132" + + "\x02\x02\u16F7\u16F8\tW\x02\x02\u16F8\u0203\x03\x02\x02\x02\u16F9\u16FC" + + "\x07\u01A9\x02\x02\u16FA\u16FB\x07\xC4\x02\x02\u16FB\u16FD\x05\u02C6\u0164" + + "\x02\u16FC\u16FA\x03\x02\x02\x02\u16FC\u16FD\x03\x02\x02\x02\u16FD\u1706" + + "\x03\x02\x02\x02\u16FE\u1702\x07\x16\x02\x02\u16FF\u1703\x07\u0374\x02" + + "\x02\u1700\u1701\x07\u033F\x02\x02\u1701\u1703\x07\u0213\x02\x02\u1702" + + "\u16FF\x03\x02\x02\x02\u1702\u1700\x03\x02\x02\x02\u1703\u1707\x03\x02" + + "\x02\x02\u1704\u1705\x07\x0F\x02\x02\u1705\u1707\x07\u0374\x02\x02\u1706" + + "\u16FE\x03\x02\x02\x02\u1706\u1704\x03\x02\x02\x02\u1707\u0205\x03\x02" + + "\x02\x02\u1708\u1709\x05\u0208\u0105\x02\u1709\u170A\x07\u01AF\x02\x02" + + "\u170A\u170B\x07\u022D\x02\x02\u170B\u1718\x03\x02\x02\x02\u170C\u170D" + + "\x05\u0208\u0105\x02\u170D\u170E\x07\u0193\x02\x02\u170E\u170F\x07\u022D" + + "\x02\x02\u170F\u1710\x07\x9D\x02"; + private static readonly _serializedATNSegment12: string = + "\x02\u1710\u1711\x07\u014C\x02\x02\u1711\u1712\x07\x0F\x02\x02\u1712\u1713" + + "\x07\u0374\x02\x02\u1713\u1718\x03\x02\x02\x02\u1714\u1715\x05\u0208\u0105" + + "\x02\u1715\u1716\x07\u02A5\x02\x02\u1716\u1718\x03\x02\x02\x02\u1717\u1708" + + "\x03\x02\x02\x02\u1717\u170C\x03\x02\x02\x02\u1717\u1714\x03\x02\x02\x02" + + "\u1718\u0207\x03\x02\x02\x02\u1719\u171A\tX\x02\x02\u171A\u171B\x07\u018C" + + "\x02\x02\u171B\u0209\x03\x02\x02\x02\u171C\u1721\x05\u020C\u0107\x02\u171D" + + "\u171E\x07\u0364\x02\x02\u171E\u171F\x05\u0298\u014D\x02\u171F\u1720\x07" + + "\u0365\x02\x02\u1720\u1722\x03\x02\x02\x02\u1721\u171D\x03\x02\x02\x02" + + "\u1721\u1722\x03\x02\x02\x02\u1722\u020B\x03\x02\x02\x02\u1723\u1725\x07" + + "\t\x02\x02\u1724\u1726\x07\u02E0\x02\x02\u1725\u1724\x03\x02\x02\x02\u1725" + + "\u1726\x03\x02\x02\x02\u1726\u1781\x03\x02\x02\x02\u1727\u1729\x07\n\x02" + + "\x02\u1728\u172A\x07\u02E9\x02\x02\u1729\u1728\x03\x02\x02\x02\u1729\u172A" + + "\x03\x02\x02\x02\u172A\u1781\x03\x02\x02\x02\u172B\u1733\x07$\x02\x02" + + "\u172C\u172D\x07\u0296\x02\x02\u172D\u1734\x07\u02F2\x02\x02\u172E\u1734" + + "\x07\u02E9\x02\x02\u172F\u1734\x07\u02AE\x02\x02\u1730\u1734\x07\u02A8" + + "\x02\x02\u1731\u1734\x07\u0294\x02\x02\u1732\u1734\x07\u0248\x02\x02\u1733" + + "\u172C\x03\x02\x02\x02\u1733\u172E\x03\x02\x02\x02\u1733\u172F\x03\x02" + + "\x02\x02\u1733\u1730\x03\x02\x02\x02\u1733\u1731\x03\x02\x02\x02\u1733" + + "\u1732\x03\x02\x02\x02\u1733\u1734\x03\x02\x02\x02\u1734\u1781\x03\x02" + + "\x02\x02\u1735\u1781\x07.\x02\x02\u1736\u1738\x075\x02\x02\u1737\u1739" + + "\x07\u0248\x02\x02\u1738\u1737\x03\x02\x02\x02\u1738\u1739\x03\x02\x02" + + "\x02\u1739\u1781\x03\x02\x02\x02\u173A\u1781\x07\u0183\x02\x02\u173B\u1781" + + "\x07\u02CF\x02\x02\u173C\u1781\x07\u02D0\x02\x02\u173D\u173E\x07K\x02" + + "\x02\u173E\u1781\x07{\x02\x02\u173F\u1781\x07T\x02\x02\u1740\u1781\x07" + + "X\x02\x02\u1741\u1742\x07j\x02\x02\u1742\u1781\x07\u02F2\x02\x02\u1743" + + "\u1781\x07\u02E1\x02\x02\u1744\u1781\x07\u0225\x02\x02\u1745\u1781\x07" + + "\x8C\x02\x02\u1746\u1781\x07\u02E2\x02\x02\u1747\u1748\x07\u023E\x02\x02" + + "\u1748\u1781\tY\x02\x02\u1749\u1781\x07\x9C\x02\x02\u174A\u174B\x07\x9F" + + "\x02\x02\u174B\u1781\tZ\x02\x02\u174C\u1781\x07\u02EF\x02\x02\u174D\u1781" + + "\x07\u02F0\x02\x02\u174E\u1781\x07\xB4\x02\x02\u174F\u1781\x07\xBB\x02" + + "\x02\u1750\u1781\x07\xBC\x02\x02\u1751\u1781\x07\u02C3\x02\x02\u1752\u1781" + + "\x07\u02C4\x02\x02\u1753\u1781\x07\u02C5\x02\x02\u1754\u1781\x07\u02C7" + + "\x02\x02\u1755\u1781\x07\u02C8\x02\x02\u1756\u1781\x07\u02C9\x02\x02\u1757" + + "\u1781\x07\u02CA\x02\x02\u1758\u1781\x07\u02CC\x02\x02\u1759\u1781\x07" + + "\u02CD\x02\x02\u175A\u1781\x07\u02CE\x02\x02\u175B\u1781\x07\u02D1\x02" + + "\x02\u175C\u1781\x07\u02D2\x02\x02\u175D\u1781\x07\u02D3\x02\x02\u175E" + + "\u1781\x07\u02D4\x02\x02\u175F\u1781\x07\u02D5\x02\x02\u1760\u1781\x07" + + "\u02D6\x02\x02\u1761\u1781\x07\u02D7\x02\x02\u1762\u1781\x07\u02D8\x02" + + "\x02\u1763\u1781\x07\u02D9\x02\x02\u1764\u1781\x07\u02DA\x02\x02\u1765" + + "\u1781\x07\u02DD\x02\x02\u1766\u1781\x07\u02DE\x02\x02\u1767\u1781\x07" + + "\u02DF\x02\x02\u1768\u1781\x07\u02E3\x02\x02\u1769\u1781\x07\u02E4\x02" + + "\x02\u176A\u1781\x07\u02E6\x02\x02\u176B\u1781\x07\u02E7\x02\x02\u176C" + + "\u1781\x07\u02E8\x02\x02\u176D\u1781\x07\u02EB\x02\x02\u176E\u1781\x07" + + "\u02EC\x02\x02\u176F\u1781\x07\u02ED\x02\x02\u1770\u1781\x07\xA2\x02\x02" + + "\u1771\u1781\x07\u02EE\x02\x02\u1772\u1781\x07\u0346\x02\x02\u1773\u1781" + + "\x07\u02F1\x02\x02\u1774\u1781\x07\u02F3\x02\x02\u1775\u1781\x07\u0348" + + "\x02\x02\u1776\u1781\x07\u02F4\x02\x02\u1777\u1781\x07\u02F5\x02\x02\u1778" + + "\u1779\x07i\x02\x02\u1779\u177A\x07F\x02\x02\u177A\u1781\x07\u02EA\x02" + + "\x02\u177B\u177C\x07\x9C\x02\x02\u177C\u177D\x07Z\x02\x02\u177D\u1781" + + "\x07\u02EA\x02\x02\u177E\u177F\x07\u02DB\x02\x02\u177F\u1781\x07\u02DC" + + "\x02\x02\u1780\u1723\x03\x02\x02\x02\u1780\u1727\x03\x02\x02\x02\u1780" + + "\u172B\x03\x02\x02\x02\u1780\u1735\x03\x02\x02\x02\u1780\u1736\x03\x02" + + "\x02\x02\u1780\u173A\x03\x02\x02\x02\u1780\u173B\x03\x02\x02\x02\u1780" + + "\u173C\x03\x02\x02\x02\u1780\u173D\x03\x02\x02\x02\u1780\u173F\x03\x02" + + "\x02\x02\u1780\u1740\x03\x02\x02\x02\u1780\u1741\x03\x02\x02\x02\u1780" + + "\u1743\x03\x02\x02\x02\u1780\u1744\x03\x02\x02\x02\u1780\u1745\x03\x02" + + "\x02\x02\u1780\u1746\x03\x02\x02\x02\u1780\u1747\x03\x02\x02\x02\u1780" + + "\u1749\x03\x02\x02\x02\u1780\u174A\x03\x02\x02\x02\u1780\u174C\x03\x02" + + "\x02\x02\u1780\u174D\x03\x02\x02\x02\u1780\u174E\x03\x02\x02\x02\u1780" + + "\u174F\x03\x02\x02\x02\u1780\u1750\x03\x02\x02\x02\u1780\u1751\x03\x02" + + "\x02\x02\u1780\u1752\x03\x02\x02\x02\u1780\u1753\x03\x02\x02\x02\u1780" + + "\u1754\x03\x02\x02\x02\u1780\u1755\x03\x02\x02\x02\u1780\u1756\x03\x02" + + "\x02\x02\u1780\u1757\x03\x02\x02\x02\u1780\u1758\x03\x02\x02\x02\u1780" + + "\u1759\x03\x02\x02\x02\u1780\u175A\x03\x02\x02\x02\u1780\u175B\x03\x02" + + "\x02\x02\u1780\u175C\x03\x02\x02\x02\u1780\u175D\x03\x02\x02\x02\u1780" + + "\u175E\x03\x02\x02\x02\u1780\u175F\x03\x02\x02\x02\u1780\u1760\x03\x02" + + "\x02\x02\u1780\u1761\x03\x02\x02\x02\u1780\u1762\x03\x02\x02\x02\u1780" + + "\u1763\x03\x02\x02\x02\u1780\u1764\x03\x02\x02\x02\u1780\u1765\x03\x02" + + "\x02\x02\u1780\u1766\x03\x02\x02\x02\u1780\u1767\x03\x02\x02\x02\u1780" + + "\u1768\x03\x02\x02\x02\u1780\u1769\x03\x02\x02\x02\u1780\u176A\x03\x02" + + "\x02\x02\u1780\u176B\x03\x02\x02\x02\u1780\u176C\x03\x02\x02\x02\u1780" + + "\u176D\x03\x02\x02\x02\u1780\u176E\x03\x02\x02\x02\u1780\u176F\x03\x02" + + "\x02\x02\u1780\u1770\x03\x02\x02\x02\u1780\u1771\x03\x02\x02\x02\u1780" + + "\u1772\x03\x02\x02\x02\u1780\u1773\x03\x02\x02\x02\u1780\u1774\x03\x02" + + "\x02\x02\u1780\u1775\x03\x02\x02\x02\u1780\u1776\x03\x02\x02\x02\u1780" + + "\u1777\x03\x02\x02\x02\u1780\u1778\x03\x02\x02\x02\u1780\u177B\x03\x02" + + "\x02\x02\u1780\u177E\x03\x02\x02\x02\u1781\u020D\x03\x02\x02\x02\u1782" + + "\u1793\x07\u0354\x02\x02\u1783\u1784\x07\u0354\x02\x02\u1784\u1785\x07" + + "\u0363\x02\x02\u1785\u1793\x07\u0354\x02\x02\u1786\u1787\x05\u02C6\u0164" + + "\x02\u1787\u1788\x07\u0363\x02\x02\u1788\u1789\x07\u0354\x02\x02\u1789" + + "\u1793\x03\x02\x02\x02\u178A\u178B\x05\u02C6\u0164\x02\u178B\u178C\x07" + + "\u0363\x02\x02\u178C\u178D\x05\u02C6\u0164\x02\u178D\u1793\x03\x02\x02" + + "\x02\u178E\u178F\x05\u02C6\u0164\x02\u178F\u1790\x05\u02CA\u0166\x02\u1790" + + "\u1793\x03\x02\x02\x02\u1791\u1793\x05\u02C6\u0164\x02\u1792\u1782\x03" + + "\x02\x02\x02\u1792\u1783\x03\x02\x02\x02\u1792\u1786\x03\x02\x02\x02\u1792" + + "\u178A\x03\x02\x02\x02\u1792\u178E\x03\x02\x02\x02\u1792\u1791\x03\x02" + + "\x02\x02\u1793\u020F\x03\x02\x02\x02\u1794\u1795\x05\u02B0\u0159\x02\u1795" + + "\u1796\x07\xB2\x02\x02\u1796\u1797\x05\u02B0\u0159\x02\u1797\u0211\x03" + + "\x02\x02\x02\u1798\u179A\x07\f\x02\x02\u1799\u179B\x05\u021C\u010F\x02" + + "\u179A\u1799\x03\x02\x02\x02\u179A\u179B\x03\x02\x02\x02\u179B\u179C\x03" + + "\x02\x02\x02\u179C\u179D\x07\xAF\x02\x02\u179D\u17C9\x05\u028E\u0148\x02" + + "\u179E\u17A0\x07\f\x02\x02\u179F\u17A1\x05\u021C\u010F\x02\u17A0\u179F" + + "\x03\x02\x02\x02\u17A0\u17A1\x03\x02\x02\x02\u17A1\u17A2\x03\x02\x02\x02" + + "\u17A2\u17A3\x07\xAF\x02\x02\u17A3\u17A4\x05\u0290\u0149\x02\u17A4\u17A5" + + "\x07\xBB\x02\x02\u17A5\u17A6\x07O\x02\x02\u17A6\u17A7\x07y\x02\x02\u17A7" + + "\u17AC\x05\u0298\u014D\x02\u17A8\u17A9\x07\xC4\x02\x02\u17A9\u17AA\x05" + + "\u02CC\u0167\x02\u17AA\u17AB\x07\x15\x02\x02\u17AB\u17AD\x03\x02\x02\x02" + + "\u17AC\u17A8\x03\x02\x02\x02\u17AC\u17AD\x03\x02\x02\x02\u17AD\u17C9\x03" + + "\x02\x02\x02\u17AE\u17B0\x07\f\x02\x02\u17AF\u17B1\x05\u021C\u010F\x02" + + "\u17B0\u17AF\x03\x02\x02\x02\u17B0\u17B1\x03\x02\x02\x02\u17B1\u17B2\x03" + + "\x02\x02\x02\u17B2\u17B3\x07\xAF\x02\x02\u17B3\u17B4\x05\u0290\u0149\x02" + + "\u17B4\u17B5\x07\xBB\x02\x02\u17B5\u17B6\x07O\x02\x02\u17B6\u17B7\x07" + + "y\x02\x02\u17B7\u17BB\x05\u029A\u014E\x02\u17B8\u17B9\x07\xBE\x02\x02" + + "\u17B9\u17BA\x07\u016A\x02\x02\u17BA\u17BC\x07\u0374\x02\x02\u17BB\u17B8" + + "\x03\x02\x02\x02\u17BB\u17BC\x03\x02\x02\x02\u17BC\u17C9\x03\x02\x02\x02" + + "\u17BD\u17BF\x07\f\x02\x02\u17BE\u17C0\x05\u021C\u010F\x02\u17BF\u17BE" + + "\x03\x02\x02\x02\u17BF\u17C0\x03\x02\x02\x02\u17C0\u17C1\x03\x02\x02\x02" + + "\u17C1\u17C2\x07\xAF\x02\x02\u17C2\u17C3\x05\u0290\u0149\x02\u17C3\u17C4" + + "\x075\x02\x02\u17C4\u17C5\x07O\x02\x02\u17C5\u17C6\x07y\x02\x02\u17C6" + + "\u17C7\x05\u0298\u014D\x02\u17C7\u17C9\x03\x02\x02\x02\u17C8\u1798\x03" + + "\x02\x02\x02\u17C8\u179E\x03\x02\x02\x02\u17C8\u17AE\x03\x02\x02\x02\u17C8" + + "\u17BD\x03\x02\x02\x02\u17C9\u0213\x03\x02\x02\x02\u17CA\u17CB\x07\x1D" + + "\x02\x02\u17CB\u17CC\x07\xAF\x02\x02\u17CC\u17D0\x05\u028E\u0148\x02\u17CD" + + "\u17CF\x05\u021E\u0110\x02\u17CE\u17CD\x03\x02\x02\x02\u17CF\u17D2\x03" + + "\x02\x02\x02\u17D0\u17CE\x03\x02\x02\x02\u17D0\u17D1\x03\x02\x02\x02\u17D1" + + "\u0215\x03\x02\x02\x02\u17D2\u17D0\x03\x02\x02\x02\u17D3\u17D4\x07\u014B" + + "\x02\x02\u17D4\u17D5\x07\xAF\x02\x02\u17D5\u17D7\x05\u028E\u0148\x02\u17D6" + + "\u17D8\t[\x02\x02\u17D7\u17D6\x03\x02\x02\x02\u17D7\u17D8\x03\x02\x02" + + "\x02\u17D8\u0217\x03\x02\x02\x02\u17D9\u17DB\x07z\x02\x02\u17DA\u17DC" + + "\x05\u021C\u010F\x02\u17DB\u17DA\x03\x02\x02\x02\u17DB\u17DC\x03\x02\x02" + + "\x02\u17DC\u17DD\x03\x02\x02\x02\u17DD\u17DE\t>\x02\x02\u17DE\u17DF\x05" + + "\u028E\u0148\x02\u17DF\u0219\x03\x02\x02\x02\u17E0\u17E2\x07\u0234\x02" + + "\x02\u17E1\u17E3\x05\u021C\u010F\x02\u17E2\u17E1\x03\x02\x02\x02\u17E2" + + "\u17E3\x03\x02\x02\x02\u17E3\u17E4\x03\x02\x02\x02\u17E4\u17E5\x07\xAF" + + "\x02\x02\u17E5\u17E7\x05\u028E\u0148\x02\u17E6\u17E8\x07\u0227\x02\x02" + + "\u17E7\u17E6\x03\x02\x02\x02\u17E7\u17E8\x03\x02\x02\x02\u17E8\u17EA\x03" + + "\x02\x02\x02\u17E9\u17EB\x07\u018A\x02\x02\u17EA\u17E9\x03\x02\x02\x02" + + "\u17EA\u17EB\x03\x02\x02\x02\u17EB\u17ED\x03\x02\x02\x02\u17EC\u17EE\x07" + + "\u02A9\x02\x02\u17ED\u17EC\x03\x02\x02\x02\u17ED\u17EE\x03\x02\x02\x02" + + "\u17EE\u021B\x03\x02\x02\x02\u17EF\u17F0\t\\\x02\x02\u17F0\u021D\x03\x02" + + "\x02\x02\u17F1\u17F2\x07C\x02\x02\u17F2\u17F9\x07\u02A7\x02\x02\u17F3" + + "\u17F9\x07\u0227\x02\x02\u17F4\u17F9\x07\u018E\x02\x02\u17F5\u17F9\x07" + + "\u01E6\x02\x02\u17F6\u17F9\x07\u018A\x02\x02\u17F7\u17F9\x07\u0149\x02" + + "\x02\u17F8\u17F1\x03\x02\x02\x02\u17F8\u17F3\x03\x02\x02\x02\u17F8\u17F4" + + "\x03\x02\x02\x02\u17F8\u17F5\x03\x02\x02\x02\u17F8\u17F6\x03\x02\x02\x02" + + "\u17F8\u17F7\x03\x02\x02\x02\u17F9\u021F\x03\x02\x02\x02\u17FA\u17FC\x07" + + "$\x02\x02\u17FB\u17FD\x07\u0135\x02\x02\u17FC\u17FB\x03\x02\x02\x02\u17FC" + + "\u17FD\x03\x02\x02\x02\u17FD\u17FE\x03\x02\x02\x02\u17FE\u1800\x07\u019B" + + "\x02\x02\u17FF\u1801\x05\u02FC\u017F\x02\u1800\u17FF\x03\x02\x02\x02\u1800" + + "\u1801\x03\x02\x02\x02\u1801\u1802\x03\x02\x02\x02\u1802\u1803\x05\u027A" + + "\u013E\x02\u1803\u1804\x07\u0246\x02\x02\u1804\u1805\t]\x02\x02\u1805" + + "\u1806\x07\u025D\x02\x02\u1806\u1807\x07\u0374\x02\x02\u1807\u0221\x03" + + "\x02\x02\x02\u1808\u1809\x07\u01B2\x02\x02\u1809\u180A\x07\u015A\x02\x02" + + "\u180A\u180F\x05\u02C6\u0164\x02\u180B\u180C\x07\u0366\x02\x02\u180C\u180E" + + "\x05\u02C6\u0164\x02\u180D\u180B\x03\x02\x02\x02\u180E\u1811\x03\x02\x02" + + "\x02\u180F\u180D\x03\x02\x02\x02\u180F\u1810\x03\x02\x02\x02\u1810\u181B" + + "\x03\x02\x02\x02\u1811\u180F\x03\x02\x02\x02\u1812\u1813\x07\x9D\x02\x02" + + "\u1813\u1818\x05\u0224\u0113\x02\u1814\u1815\x07\u0366\x02\x02\u1815\u1817" + + "\x05\u0224\u0113\x02\u1816\u1814\x03\x02\x02\x02\u1817\u181A\x03\x02\x02" + + "\x02\u1818\u1816\x03\x02\x02\x02\u1818\u1819\x03\x02\x02\x02\u1819\u181C" + + "\x03\x02\x02\x02\u181A\u1818\x03\x02\x02\x02\u181B\u1812\x03\x02\x02\x02" + + "\u181B\u181C\x03\x02\x02\x02\u181C\u0223\x03\x02\x02\x02\u181D\u181E\t" + + "^\x02\x02\u181E\u181F\x05\u02C2\u0162\x02\u181F\u1820\x07\u035B\x02\x02" + + "\u1820\u1821\x05\u0328\u0195\x02\u1821\u0225\x03\x02\x02\x02\u1822\u1823" + + "\x07\u02A3\x02\x02\u1823\u1824\x07\u015A\x02\x02\u1824\u1829\x05\u02C6" + + "\u0164\x02\u1825\u1826\x07\u0366\x02\x02\u1826\u1828\x05\u02C6\u0164\x02" + + "\u1827\u1825\x03\x02\x02\x02\u1828\u182B\x03\x02\x02\x02\u1829\u1827\x03" + + "\x02\x02\x02\u1829\u182A\x03\x02\x02\x02\u182A\u0227\x03\x02\x02\x02\u182B" + + "\u1829\x03\x02\x02\x02\u182C\u182D\x07\u01B2\x02\x02\u182D\u182E\x07\u0218" + + "\x02\x02\u182E\u182F\x05\u02C6\u0164\x02\u182F\u1830\x07\u025D\x02\x02" + + "\u1830\u1831\x07\u0374\x02\x02\u1831\u0229\x03\x02\x02\x02\u1832\u1833" + + "\x07\u02A3\x02\x02\u1833\u1834\x07\u0218\x02\x02\u1834\u1835\x05\u02C6" + + "\u0164\x02\u1835\u022B\x03\x02\x02\x02\u1836\u1837\x07\u02CB\x02\x02\u1837" + + "\u1838\x07\u01C4\x02\x02\u1838\u1839\x07\u016A\x02\x02\u1839\u183B\x07" + + "\u0171\x02\x02\u183A\u183C\x07\u035B\x02\x02\u183B\u183A\x03\x02\x02\x02" + + "\u183B\u183C\x03\x02\x02\x02\u183C\u183D\x03\x02\x02\x02\u183D\u1855\x07" + + "\u0374\x02\x02\u183E\u183F\x07\u02CB\x02\x02\u183F\u1840\x07\u01B3\x02" + + "\x02\u1840\u1841\x07F\x02\x02\u1841\u1842\x05\u02A8\u0155\x02\u1842\u1843" + + "\x07\u01A9\x02\x02\u1843\u1844\x07\x16\x02\x02\u1844\u184B\x07\u0374\x02" + + "\x02\u1845\u1846\x07\u016A\x02\x02\u1846\u1848\x07\u0171\x02\x02\u1847" + + "\u1849\x07\u035B\x02\x02\u1848\u1847\x03\x02\x02\x02\u1848\u1849\x03\x02" + + "\x02\x02\u1849\u184A\x03\x02\x02\x02\u184A\u184C\x07\u0374\x02\x02\u184B" + + "\u1845\x03\x02\x02\x02\u184B\u184C\x03\x02\x02\x02\u184C\u1852\x03\x02" + + "\x02\x02\u184D\u184F\x07\x92\x02\x02\u184E\u1850\x07\u01F8\x02\x02\u184F" + + "\u184E\x03\x02\x02\x02\u184F\u1850\x03\x02\x02\x02\u1850\u1851\x03\x02" + + "\x02\x02\u1851\u1853\x07\xAB\x02\x02\u1852\u184D\x03\x02\x02\x02\u1852" + + "\u1853\x03\x02\x02\x02\u1853\u1855\x03\x02\x02\x02\u1854\u1836\x03\x02" + + "\x02\x02\u1854\u183E\x03\x02\x02\x02\u1855\u022D\x03\x02\x02\x02\u1856" + + "\u1857\x07\x9D\x02\x02\u1857\u1858\x05\u0232\u011A\x02\u1858\u185B\t_" + + "\x02\x02\u1859\u185C\x05\u0328\u0195\x02\u185A\u185C\x07y\x02\x02\u185B" + + "\u1859\x03\x02\x02\x02\u185B\u185A\x03\x02\x02\x02\u185C\u1866\x03\x02" + + "\x02\x02\u185D\u185E\x07\u0366\x02\x02\u185E\u185F\x05\u0232\u011A\x02" + + "\u185F\u1862\t_\x02\x02\u1860\u1863\x05\u0328\u0195\x02\u1861\u1863\x07" + + "y\x02\x02\u1862\u1860\x03\x02\x02\x02\u1862\u1861\x03\x02\x02\x02\u1863" + + "\u1865\x03\x02\x02\x02\u1864\u185D\x03\x02\x02\x02\u1865\u1868\x03\x02" + + "\x02\x02\u1866\u1864\x03\x02\x02\x02\u1866\u1867\x03\x02\x02\x02\u1867" + + "\u188B\x03\x02\x02\x02\u1868\u1866\x03\x02\x02\x02\u1869\u186A\x07\x9D" + + "\x02\x02\u186A\u186D\x058\x1D\x02\u186B\u186E\x05\u02B4\u015B\x02\u186C" + + "\u186E\x07,\x02\x02\u186D\u186B\x03\x02\x02\x02\u186D\u186C\x03\x02\x02" + + "\x02\u186E\u188B\x03\x02\x02\x02\u186F\u1870\x07\x9D\x02\x02\u1870\u1877" + + "\x07\u01F3\x02\x02\u1871\u1874\x05\u02B4\u015B\x02\u1872\u1873\x07\x1E" + + "\x02\x02\u1873\u1875\x05\u02B6\u015C\x02\u1874\u1872\x03\x02\x02\x02\u1874" + + "\u1875\x03\x02\x02\x02\u1875\u1878\x03\x02\x02\x02\u1876\u1878\x07,\x02" + + "\x02\u1877\u1871\x03\x02\x02\x02\u1877\u1876\x03\x02\x02\x02\u1878\u188B" + + "\x03\x02\x02\x02\u1879\u188B\x05\u01EC\xF7\x02\u187A\u188B\x05\u0158\xAD" + + "\x02\u187B\u188B\x05\u0156\xAC\x02\u187C\u187D\x07\x9D\x02\x02\u187D\u187E" + + "\x05\u02C2\u0162\x02\u187E\u187F\t_\x02\x02\u187F\u1887\x05\u0328\u0195" + + "\x02\u1880\u1881\x07\u0366\x02\x02\u1881\u1882\x05\u02C2\u0162\x02\u1882" + + "\u1883\t_\x02\x02\u1883\u1884\x05\u0328\u0195\x02\u1884\u1886\x03\x02" + + "\x02\x02\u1885\u1880\x03\x02\x02\x02\u1886\u1889\x03\x02\x02\x02\u1887" + + "\u1885\x03\x02\x02\x02\u1887\u1888\x03\x02\x02\x02\u1888\u188B\x03\x02" + + "\x02\x02\u1889\u1887\x03\x02\x02\x02\u188A\u1856\x03\x02\x02\x02\u188A" + + "\u1869\x03\x02\x02\x02\u188A\u186F\x03\x02\x02\x02\u188A\u1879\x03\x02" + + "\x02\x02\u188A\u187A\x03\x02\x02\x02\u188A\u187B\x03\x02\x02\x02\u188A" + + "\u187C\x03\x02\x02\x02\u188B\u022F\x03\x02\x02\x02\u188C\u188D\x07\x9F" + + "\x02\x02\u188D\u188E\t@\x02\x02\u188E\u1945\x07\u01C6\x02\x02\u188F\u1890" + + "\x07\x9F\x02\x02\u1890\u1891\t`\x02\x02\u1891\u1894\x07\u0184\x02\x02" + + "\u1892\u1893\x07R\x02\x02\u1893\u1895\x07\u0374\x02\x02\u1894\u1892\x03" + + "\x02\x02\x02\u1894\u1895\x03\x02\x02\x02\u1895\u1898\x03\x02\x02\x02\u1896" + + "\u1897\x07F\x02\x02\u1897\u1899\x05\u02CC\u0167\x02\u1898\u1896\x03\x02" + + "\x02\x02\u1898\u1899\x03\x02\x02\x02\u1899\u18A1\x03\x02\x02\x02\u189A" + + "\u189E\x07f\x02\x02\u189B\u189C\x05\u02CC\u0167\x02\u189C\u189D\x07\u0366" + + "\x02\x02\u189D\u189F\x03\x02\x02\x02\u189E\u189B\x03\x02\x02\x02\u189E" + + "\u189F\x03\x02\x02\x02\u189F\u18A0\x03\x02\x02\x02\u18A0\u18A2\x05\u02CC" + + "\u0167\x02\u18A1\u189A\x03\x02\x02\x02\u18A1\u18A2\x03\x02\x02\x02\u18A2" + + "\u18A4\x03\x02\x02\x02\u18A3\u18A5\x05\u0188\xC5\x02\u18A4\u18A3\x03\x02" + + "\x02\x02\u18A4\u18A5\x03\x02\x02\x02\u18A5\u1945\x03\x02\x02\x02\u18A6" + + "\u18A7\x07\x9F\x02\x02\u18A7\u18A9\x05\u0234\u011B\x02\u18A8\u18AA\x05" + + "\u0236\u011C\x02\u18A9\u18A8\x03\x02\x02\x02\u18A9\u18AA\x03\x02\x02\x02" + + "\u18AA\u1945\x03\x02\x02\x02\u18AB\u18AD\x07\x9F\x02\x02\u18AC\u18AE\x07" + + "\u018A\x02\x02\u18AD\u18AC\x03\x02\x02\x02\u18AD\u18AE\x03\x02\x02\x02" + + "\u18AE\u18B0\x03\x02\x02\x02\u18AF\u18B1\x07\u019A\x02\x02\u18B0\u18AF" + + "\x03\x02\x02\x02\u18B0\u18B1\x03\x02\x02\x02\u18B1\u18B2\x03\x02\x02\x02" + + "\u18B2\u18B3\t0\x02\x02\u18B3\u18B4\ta\x02\x02\u18B4\u18B7\x05\u0290\u0149" + + "\x02\u18B5\u18B6\ta\x02\x02\u18B6\u18B8\x05\u0278\u013D\x02\u18B7\u18B5" + + "\x03\x02\x02\x02\u18B7\u18B8\x03\x02\x02\x02\u18B8\u18BA\x03\x02\x02\x02" + + "\u18B9\u18BB\x05\u0236\u011C\x02\u18BA\u18B9\x03\x02\x02\x02\u18BA\u18BB" + + "\x03\x02\x02\x02\u18BB\u1945\x03\x02\x02\x02\u18BC\u18BD\x07\x9F\x02\x02" + + "\u18BD\u18BE\x07$\x02\x02\u18BE\u18C0\t\x02\x02\x02\u18BF\u18C1\x05\u02FC" + + "\u017F\x02\u18C0\u18BF\x03\x02\x02\x02\u18C0\u18C1\x03\x02\x02\x02\u18C1" + + "\u18C2\x03\x02\x02\x02\u18C2\u1945\x05\u0276\u013C\x02\u18C3\u18C4\x07" + + "\x9F\x02\x02\u18C4\u18C5\x07$\x02\x02\u18C5\u18C6\tb\x02\x02\u18C6\u1945" + + "\x05\u02C2\u0162\x02\u18C7\u18C8\x07\x9F\x02\x02\u18C8\u18C9\x07$\x02" + + "\x02\u18C9\u18CA\x07\u019B\x02\x02\u18CA\u1945\x05\u027A\u013E\x02\u18CB" + + "\u18CC\x07\x9F\x02\x02\u18CC\u18CD\x07$\x02\x02\u18CD\u18CE\x07\u02AE" + + "\x02\x02\u18CE\u1945\x05\u027E\u0140\x02\u18CF\u18D0\x07\x9F\x02\x02\u18D0" + + "\u18D1\x07$\x02\x02\u18D1\u18D2\x07\xAF\x02\x02\u18D2\u1945\x05\u028C" + + "\u0147\x02\u18D3\u18D4\x07\x9F\x02\x02\u18D4\u18D5\x07$\x02\x02\u18D5" + + "\u18D6\x07\u02A8\x02\x02\u18D6\u1945\x05\u02B0\u0159\x02\u18D7\u18D8\x07" + + "\x9F\x02\x02\u18D8\u18D9\x07\u017E\x02\x02\u18D9\u18DA\x05\u02B8\u015D" + + "\x02\u18DA\u18DB\tc\x02\x02\u18DB\u1945\x03\x02\x02\x02\u18DC\u18DD\x07" + + "\x9F\x02\x02\u18DD\u1945\x05\u0238\u011D\x02\u18DE\u18DF\x07\x9F\x02\x02" + + "\u18DF\u18E7\td\x02\x02\u18E0\u18E4\x07f\x02\x02\u18E1\u18E2\x05\u02CC" + + "\u0167\x02\u18E2\u18E3\x07\u0366\x02\x02\u18E3\u18E5\x03\x02\x02\x02\u18E4" + + "\u18E1\x03\x02\x02\x02\u18E4\u18E5\x03\x02\x02\x02\u18E5\u18E6\x03\x02" + + "\x02\x02\u18E6\u18E8\x05\u02CC\u0167\x02\u18E7\u18E0\x03\x02\x02\x02\u18E7" + + "\u18E8\x03\x02\x02\x02\u18E8\u1945\x03\x02\x02\x02\u18E9\u18EA\x07\x9F" + + "\x02\x02\u18EA\u18EB\x07\u0108\x02\x02\u18EB\u18EC\x07\u0364\x02\x02\u18EC" + + "\u18ED\x07\u0354\x02\x02\u18ED\u18EE\x07\u0365\x02\x02\u18EE\u1945\td" + + "\x02\x02\u18EF\u18F0\x07\x9F\x02\x02\u18F0\u18F3\x05\u023A\u011E\x02\u18F1" + + "\u18F2\ta\x02\x02\u18F2\u18F4\x05\u0278\u013D\x02\u18F3\u18F1\x03\x02" + + "\x02\x02\u18F3\u18F4\x03\x02\x02\x02\u18F4\u18F6\x03\x02\x02\x02\u18F5" + + "\u18F7\x05\u0236\u011C\x02\u18F6\u18F5\x03\x02\x02\x02\u18F6\u18F7\x03" + + "\x02\x02\x02\u18F7\u1945\x03\x02\x02\x02\u18F8\u18F9\x07\x9F\x02\x02\u18F9" + + "\u18FA\x07\x86\x02\x02\u18FA\u18FB\x07\u0152\x02\x02\u18FB\u1945\x05\u02C2" + + "\u0162\x02\u18FC\u18FD\x07\x9F\x02\x02\u18FD\u18FE\x07\u019B\x02\x02\u18FE" + + "\u18FF\x07\u0152\x02\x02\u18FF\u1945\x05\u027C\u013F\x02\u1900\u1901\x07" + + "\x9F\x02\x02\u1901\u1908\x07\u01A0\x02\x02\u1902\u1903\x07C\x02\x02\u1903" + + "\u1906\x05\u0294\u014B\x02\u1904\u1905\x07\xBE\x02\x02\u1905\u1907\x05" + + "\u0292\u014A\x02\u1906\u1904\x03\x02\x02\x02\u1906\u1907\x03\x02\x02\x02" + + "\u1907\u1909\x03\x02\x02\x02\u1908\u1902\x03\x02\x02\x02\u1908\u1909\x03" + + "\x02\x02\x02\u1909\u1945\x03\x02\x02\x02\u190A\u190C\x07\x9F\x02\x02\u190B" + + "\u190D\x07\u018A\x02\x02\u190C\u190B\x03\x02\x02\x02\u190C\u190D\x03\x02" + + "\x02\x02\u190D\u190E\x03\x02\x02\x02\u190E\u190F\te\x02\x02\u190F\u1910" + + "\ta\x02\x02\u1910\u1913\x05\u0290\u0149\x02\u1911\u1912\ta\x02\x02\u1912" + + "\u1914\x05\u0278\u013D\x02\u1913\u1911\x03\x02\x02\x02\u1913\u1914\x03" + + "\x02\x02\x02\u1914\u1917\x03\x02\x02\x02\u1915\u1916\x07\xC2\x02\x02\u1916" + + "\u1918\x05\u0328\u0195\x02\u1917\u1915\x03\x02\x02\x02\u1917\u1918\x03" + + "\x02\x02\x02\u1918\u1945\x03\x02\x02\x02\u1919\u191A\x07\x9F\x02\x02\u191A" + + "\u191B\x07\u0206\x02\x02\u191B\u191E\x07\u02F2\x02\x02\u191C\u191D\ta" + + "\x02\x02\u191D\u191F\x05\u0278\u013D\x02\u191E\u191C\x03\x02\x02\x02\u191E" + + "\u191F\x03\x02\x02\x02\u191F\u1921\x03\x02\x02\x02\u1920\u1922\x05\u0236" + + "\u011C\x02\u1921\u1920\x03\x02\x02\x02\u1921\u1922\x03\x02\x02\x02\u1922" + + "\u1945\x03\x02\x02\x02\u1923\u1924\x07\x9F\x02\x02\u1924\u192D\x07\u0223" + + "\x02\x02\u1925\u192A\x05\u023C\u011F\x02\u1926\u1927\x07\u0366\x02\x02" + + "\u1927\u1929\x05\u023C\u011F\x02\u1928\u1926\x03\x02\x02\x02\u1929\u192C" + + "\x03\x02\x02\x02\u192A\u1928\x03\x02\x02\x02\u192A\u192B\x03\x02\x02\x02" + + "\u192B\u192E\x03\x02\x02\x02\u192C\u192A\x03\x02\x02\x02\u192D\u1925\x03" + + "\x02\x02\x02\u192D\u192E\x03\x02\x02\x02\u192E\u1932\x03\x02\x02\x02\u192F" + + "\u1930\x07C\x02\x02\u1930\u1931\x07\u0226\x02\x02\u1931\u1933\x05\u02CC" + + "\u0167\x02\u1932\u192F\x03\x02\x02\x02\u1932\u1933\x03\x02\x02\x02\u1933" + + "\u193A\x03\x02\x02\x02\u1934\u1935\x07f\x02\x02\u1935\u1938\x05\u02CC" + + "\u0167\x02\u1936\u1937\x07\u01FF\x02\x02\u1937\u1939\x05\u02CC\u0167\x02" + + "\u1938\u1936\x03\x02\x02\x02\u1938\u1939\x03\x02\x02\x02\u1939\u193B\x03" + + "\x02\x02\x02\u193A\u1934\x03\x02\x02\x02\u193A\u193B\x03\x02\x02\x02\u193B" + + "\u1945\x03\x02\x02\x02\u193C\u193D\x07\x9F\x02\x02\u193D\u193E\tA\x02" + + "\x02\u193E\u1940\x07\u0287\x02\x02\u193F\u1941\x05\u0188\xC5\x02\u1940" + + "\u193F\x03\x02\x02\x02\u1940\u1941\x03\x02\x02\x02\u1941\u1945\x03\x02" + + "\x02\x02\u1942\u1943\x07\x9F\x02\x02\u1943\u1945\x07\u0236\x02\x02\u1944" + + "\u188C\x03\x02\x02\x02\u1944\u188F\x03\x02\x02\x02\u1944\u18A6\x03\x02" + + "\x02\x02\u1944\u18AB\x03\x02\x02\x02\u1944\u18BC\x03\x02\x02\x02\u1944" + + "\u18C3\x03\x02\x02\x02\u1944\u18C7\x03\x02\x02\x02\u1944\u18CB\x03\x02" + + "\x02\x02\u1944\u18CF\x03\x02\x02\x02\u1944\u18D3\x03\x02\x02\x02\u1944" + + "\u18D7\x03\x02\x02\x02\u1944\u18DC\x03\x02\x02\x02\u1944\u18DE\x03\x02" + + "\x02\x02\u1944\u18E9\x03\x02\x02\x02\u1944\u18EF\x03\x02\x02\x02\u1944" + + "\u18F8\x03\x02\x02\x02\u1944\u18FC\x03\x02\x02\x02\u1944\u1900\x03\x02" + + "\x02\x02\u1944\u190A\x03\x02\x02\x02\u1944\u1919\x03\x02\x02\x02\u1944" + + "\u1923\x03\x02\x02\x02\u1944\u193C\x03\x02\x02\x02\u1944\u1942\x03\x02" + + "\x02\x02\u1945\u0231\x03\x02\x02\x02\u1946\u1951\x07\u037F\x02\x02\u1947" + + "\u1951\x07\u0380\x02\x02\u1948\u1949\x07\u0368\x02\x02\u1949\u194B\x07" + + "\u0368\x02\x02\u194A\u1948\x03\x02\x02\x02\u194A\u194B\x03\x02\x02\x02" + + "\u194B\u194C\x03\x02\x02\x02\u194C\u194E\tf\x02\x02\u194D\u194A\x03\x02" + + "\x02\x02\u194D\u194E\x03\x02\x02\x02\u194E\u194F\x03\x02\x02\x02\u194F" + + "\u1951\x05\u02C6\u0164\x02\u1950\u1946\x03\x02\x02\x02\u1950\u1947\x03" + + "\x02\x02\x02\u1950\u194D\x03\x02\x02\x02\u1951\u0233\x03\x02\x02\x02\u1952" + + "\u1953\x07\x1C\x02\x02\u1953\u1961\x07\x9D\x02\x02\u1954\u1961\x07\u0339" + + "\x02\x02\u1955\u1961\x07\u033A\x02\x02\u1956\u1961\x07*\x02\x02\u1957" + + "\u1961\x07\x9B\x02\x02\u1958\u1959\x07\u019B\x02\x02\u1959\u1961\x07\u0287" + + "\x02\x02\u195A\u195B\x07\x86\x02\x02\u195B\u1961\x07\u0287\x02\x02\u195C" + + "\u195E\t?\x02\x02\u195D\u195C\x03\x02\x02\x02\u195D\u195E\x03\x02\x02" + + "\x02\u195E\u195F\x03\x02\x02\x02\u195F\u1961\tg\x02\x02\u1960\u1952\x03" + + "\x02\x02\x02\u1960\u1954\x03\x02\x02\x02\u1960\u1955\x03\x02\x02\x02\u1960" + + "\u1956\x03\x02\x02\x02\u1960\u1957\x03\x02\x02\x02\u1960\u1958\x03\x02" + + "\x02\x02\u1960\u195A\x03\x02\x02\x02\u1960\u195D\x03\x02\x02\x02\u1961" + + "\u0235\x03\x02\x02\x02\u1962\u1963\x07e\x02\x02\u1963\u1967\x07\u0374" + + "\x02\x02\u1964\u1965\x07\xC2\x02\x02\u1965\u1967\x05\u0328\u0195\x02\u1966" + + "\u1962\x03\x02\x02\x02\u1966\u1964\x03\x02\x02\x02\u1967\u0237\x03\x02" + + "\x02\x02\u1968\u196A\x07\u0289\x02\x02\u1969\u1968\x03\x02\x02\x02\u1969" + + "\u196A\x03\x02\x02\x02\u196A\u196B\x03\x02\x02\x02\u196B\u197A\x07\u017F" + + "\x02\x02\u196C\u196D\x07\u01C7\x02\x02\u196D\u197A\x07\u0287\x02\x02\u196E" + + "\u197A\x07\u021A\x02\x02\u196F\u197A\x07\u02E0\x02\x02\u1970\u1972\x07" + + "\u019A\x02\x02\u1971\u1970\x03\x02\x02\x02\u1971\u1972\x03\x02\x02\x02" + + "\u1972\u1973\x03\x02\x02\x02\u1973\u197A\x07\u0222\x02\x02\u1974\u197A" + + "\x07\u0224\x02\x02\u1975\u1976\x07\u0258\x02\x02\u1976\u197A\x07\u01A8" + + "\x02\x02\u1977\u197A\x07\u013A\x02\x02\u1978\u197A\x07\u0166\x02\x02\u1979" + + "\u1969\x03\x02\x02\x02\u1979\u196C\x03\x02\x02\x02\u1979\u196E\x03\x02" + + "\x02\x02\u1979\u196F\x03\x02\x02\x02\u1979\u1971\x03\x02\x02\x02\u1979" + + "\u1974\x03\x02\x02\x02\u1979\u1975\x03\x02\x02\x02\u1979\u1977\x03\x02" + + "\x02\x02\u1979\u1978\x03\x02\x02\x02\u197A\u0239\x03\x02\x02\x02\u197B" + + "\u1987\x07\u0184\x02\x02\u197C\u197D\x07\xAF\x02\x02\u197D\u1987\x07\u0287" + + "\x02\x02\u197E\u1980\x07\u018A\x02\x02\u197F\u197E\x03\x02\x02\x02\u197F" + + "\u1980\x03\x02\x02\x02\u1980\u1982\x03\x02\x02\x02\u1981\u1983\x07\u019A" + + "\x02\x02\u1982\u1981\x03\x02\x02\x02\u1982\u1983\x03\x02\x02\x02\u1983" + + "\u1984\x03\x02\x02\x02\u1984\u1987\x07\u02F2\x02\x02\u1985\u1987\x07\u029D" + + "\x02\x02\u1986"; + private static readonly _serializedATNSegment13: string = + "\u197B\x03\x02\x02\x02\u1986\u197C\x03\x02\x02\x02\u1986\u197F\x03\x02" + + "\x02\x02\u1986\u1985\x03\x02\x02\x02\u1987\u023B\x03\x02\x02\x02\u1988" + + "\u1995\x07\t\x02\x02\u1989\u198A\x07\u0142\x02\x02\u198A\u1995\x07\u01B7" + + "\x02\x02\u198B\u198C\x07\u0165\x02\x02\u198C\u1995\x07\u0292\x02\x02\u198D" + + "\u1995\x07\u0168\x02\x02\u198E\u1995\x07\u01B9\x02\x02\u198F\u1995\x07" + + "\u0324\x02\x02\u1990\u1991\x07\u020B\x02\x02\u1991\u1995\x07\u018F\x02" + + "\x02\u1992\u1995\x07\u025F\x02\x02\u1993\u1995\x07\u0291\x02\x02\u1994" + + "\u1988\x03\x02\x02\x02\u1994\u1989\x03\x02\x02\x02\u1994\u198B\x03\x02" + + "\x02\x02\u1994\u198D\x03\x02\x02\x02\u1994\u198E\x03\x02\x02\x02\u1994" + + "\u198F\x03\x02\x02\x02\u1994\u1990\x03\x02\x02\x02\u1994\u1992\x03\x02" + + "\x02\x02\u1994\u1993\x03\x02\x02\x02\u1995\u023D\x03\x02\x02\x02\u1996" + + "\u1997\x07\u0140\x02\x02\u1997\u1998\x07\u0374\x02\x02\u1998\u023F\x03" + + "\x02\x02\x02\u1999\u199A\x07\u0146\x02\x02\u199A\u19AC\x07T\x02\x02\u199B" + + "\u19A0\x05\u0254\u012B\x02\u199C\u199D\x07\u0366\x02\x02\u199D\u199F\x05" + + "\u0254\u012B\x02\u199E\u199C\x03\x02\x02\x02\u199F\u19A2\x03\x02\x02\x02" + + "\u19A0\u199E\x03\x02\x02\x02\u19A0\u19A1\x03\x02\x02\x02\u19A1\u19AD\x03" + + "\x02\x02\x02\u19A2\u19A0\x03\x02\x02\x02\u19A3\u19A4\x05\u0290\u0149\x02" + + "\u19A4\u19A5\x07\x84\x02\x02\u19A5\u19A8\x07\u0364\x02\x02\u19A6\u19A9" + + "\x05\u02A2\u0152\x02\u19A7\u19A9\x07\t\x02\x02\u19A8\u19A6\x03\x02\x02" + + "\x02\u19A8\u19A7\x03\x02\x02\x02\u19A9\u19AA\x03\x02\x02\x02\u19AA\u19AB" + + "\x07\u0365\x02\x02\u19AB\u19AD\x03\x02\x02\x02\u19AC\u199B\x03\x02\x02" + + "\x02\u19AC\u19A3\x03\x02\x02\x02\u19AD\u19AE\x03\x02\x02\x02\u19AE\u19AF" + + "\x07R\x02\x02\u19AF\u19B0\x05\u0278\u013D\x02\u19B0\u0241\x03\x02\x02" + + "\x02\u19B1\u19B3\x07\u0196\x02\x02\u19B2\u19B4\x05\u021C\u010F\x02\u19B3" + + "\u19B2\x03\x02\x02\x02\u19B3\u19B4\x03\x02\x02\x02\u19B4\u19B5\x03\x02" + + "\x02\x02\u19B5\u19BA\x05\u0256\u012C\x02\u19B6\u19B7\x07\u0366\x02\x02" + + "\u19B7\u19B9\x05\u0256\u012C\x02\u19B8\u19B6\x03\x02\x02\x02\u19B9\u19BC" + + "\x03\x02\x02\x02\u19BA\u19B8\x03\x02\x02\x02\u19BA\u19BB\x03\x02\x02\x02" + + "\u19BB\u0243\x03\x02\x02\x02\u19BC\u19BA\x03\x02\x02\x02\u19BD\u19BF\x07" + + "`\x02\x02\u19BE\u19C0\th\x02\x02\u19BF\u19BE\x03\x02\x02\x02\u19BF\u19C0" + + "\x03\x02\x02\x02\u19C0\u19C1\x03\x02\x02\x02\u19C1\u19C2\x05\u0328\u0195" + + "\x02\u19C2\u0245\x03\x02\x02\x02\u19C3\u19C4\x07i\x02\x02\u19C4\u19C5" + + "\x07T\x02\x02\u19C5\u19C6\x07Z\x02\x02\u19C6\u19C7\x07\u0146\x02\x02\u19C7" + + "\u19CC\x05\u025A\u012E\x02\u19C8\u19C9\x07\u0366\x02\x02\u19C9\u19CB\x05" + + "\u025A\u012E\x02\u19CA\u19C8\x03\x02\x02\x02\u19CB\u19CE\x03\x02\x02\x02" + + "\u19CC\u19CA\x03\x02\x02\x02\u19CC\u19CD\x03\x02\x02\x02\u19CD\u0247\x03" + + "\x02\x02\x02\u19CE\u19CC\x03\x02\x02\x02\u19CF\u19D0\x07\u0241\x02\x02" + + "\u19D0\u19D5\x05\u024A\u0126\x02\u19D1\u19D2\x07\u0366\x02\x02\u19D2\u19D4" + + "\x05\u024A\u0126\x02\u19D3\u19D1\x03\x02\x02\x02\u19D4\u19D7\x03\x02\x02" + + "\x02\u19D5\u19D3\x03\x02\x02\x02\u19D5\u19D6\x03\x02\x02\x02\u19D6\u0249" + + "\x03\x02\x02\x02\u19D7\u19D5\x03\x02\x02\x02\u19D8\u19DE\x07\u01C7\x02" + + "\x02\u19D9\u19DE\x07\u0235\x02\x02\u19DA\u19DB\x07\u0226\x02\x02\u19DB" + + "\u19DE\x07\u0146\x02\x02\u19DC\u19DE\x07\u0258\x02\x02\u19DD\u19D8\x03" + + "\x02\x02\x02\u19DD\u19D9\x03\x02\x02\x02\u19DD\u19DA\x03\x02\x02\x02\u19DD" + + "\u19DC\x03\x02\x02\x02\u19DE\u024B\x03\x02\x02\x02\u19DF\u19E0\x07\u0241" + + "\x02\x02\u19E0\u19E5\x07\u0215\x02\x02\u19E1\u19E3\x05\u02FA\u017E\x02" + + "\u19E2\u19E1\x03\x02\x02\x02\u19E2\u19E3\x03\x02\x02\x02\u19E3\u19E4\x03" + + "\x02\x02\x02\u19E4\u19E6\x05\u02C6\u0164\x02\u19E5\u19E2\x03\x02\x02\x02" + + "\u19E5\u19E6\x03\x02\x02\x02\u19E6\u024D\x03\x02\x02\x02\u19E7\u19E8\x07" + + "\u0241\x02\x02\u19E8\u19EA\tA\x02\x02\u19E9\u19EB\x07\t\x02\x02\u19EA" + + "\u19E9\x03\x02\x02\x02\u19EA\u19EB\x03\x02\x02\x02\u19EB\u19ED\x03\x02" + + "\x02\x02\u19EC\u19EE\x05\u0188\xC5\x02\u19ED\u19EC\x03\x02\x02\x02\u19ED" + + "\u19EE\x03\x02\x02\x02\u19EE\u024F\x03\x02\x02\x02\u19EF\u19F0\x07\u0242" + + "\x02\x02\u19F0\u0251\x03\x02\x02\x02\u19F1\u19F2\x07\u02EF\x02\x02\u19F2" + + "\u0253\x03\x02\x02\x02\u19F3\u19F9\x05\u0290\u0149\x02\u19F4\u19F5\t\x14" + + "\x02\x02\u19F5\u19F6\x07\u0364\x02\x02\u19F6\u19F7\x05\u0284\u0143\x02" + + "\u19F7\u19F8\x07\u0365\x02\x02\u19F8\u19FA\x03\x02\x02\x02\u19F9\u19F4" + + "\x03\x02\x02\x02\u19F9\u19FA\x03\x02\x02\x02\u19FA\u0255\x03\x02\x02\x02" + + "\u19FB\u1A0E\x07\u0170\x02\x02\u19FC\u1A0E\x07\u01A8\x02\x02\u19FD\u19FF" + + "\ti\x02\x02\u19FE\u19FD\x03\x02\x02\x02\u19FE\u19FF\x03\x02\x02\x02\u19FF" + + "\u1A00\x03\x02\x02\x02\u1A00\u1A0E\x07\u01C6\x02\x02\u1A01\u1A0E\x07\u0207" + + "\x02\x02\u1A02\u1A0E\x07\u02E0\x02\x02\u1A03\u1A04\x07\u0226\x02\x02\u1A04" + + "\u1A0E\x07\u0146\x02\x02\u1A05\u1A0E\x07\u0287\x02\x02\u1A06\u1A0E\x07" + + "\u02AA\x02\x02\u1A07\u1A0B\x07\u02F2\x02\x02\u1A08\u1A09\x07\xC4\x02\x02" + + "\u1A09\u1A0A\x07\x89\x02\x02\u1A0A\u1A0C\x07j\x02\x02\u1A0B\u1A08\x03" + + "\x02\x02\x02\u1A0B\u1A0C\x03\x02\x02\x02\u1A0C\u1A0E\x03\x02\x02\x02\u1A0D" + + "\u19FB\x03\x02\x02\x02\u1A0D\u19FC\x03\x02\x02\x02\u1A0D\u19FE\x03\x02" + + "\x02\x02\u1A0D\u1A01\x03\x02\x02\x02\u1A0D\u1A02\x03\x02\x02\x02\u1A0D" + + "\u1A03\x03\x02\x02\x02\u1A0D\u1A05\x03\x02\x02\x02\u1A0D\u1A06\x03\x02" + + "\x02\x02\u1A0D\u1A07\x03\x02\x02\x02\u1A0E\u1A1C\x03\x02\x02\x02\u1A0F" + + "\u1A10\x07\u022E\x02\x02\u1A10\u1A12\x07\u01C6\x02\x02\u1A11\u1A13\x05" + + "\u0188\xC5\x02\u1A12\u1A11\x03\x02\x02\x02\u1A12\u1A13\x03\x02\x02\x02" + + "\u1A13\u1A1C\x03\x02\x02\x02\u1A14\u1A16\t>\x02\x02\u1A15\u1A17\x05\u028E" + + "\u0148\x02\u1A16\u1A15\x03\x02\x02\x02\u1A16\u1A17\x03\x02\x02\x02\u1A17" + + "\u1A19\x03\x02\x02\x02\u1A18\u1A1A\x05\u0258\u012D\x02\u1A19\u1A18\x03" + + "\x02\x02\x02\u1A19\u1A1A\x03\x02\x02\x02\u1A1A\u1A1C\x03\x02\x02\x02\u1A1B" + + "\u1A0D\x03\x02\x02\x02\u1A1B\u1A0F\x03\x02\x02\x02\u1A1B\u1A14\x03\x02" + + "\x02\x02\u1A1C\u0257\x03\x02\x02\x02\u1A1D\u1A1E\x07\xC4\x02\x02\u1A1E" + + "\u1A1F\x07\x89\x02\x02\u1A1F\u1A23\x07j\x02\x02\u1A20\u1A21\x07C\x02\x02" + + "\u1A21\u1A23\x07\u0189\x02\x02\u1A22\u1A1D\x03\x02\x02\x02\u1A22\u1A20" + + "\x03\x02\x02\x02\u1A23\u0259\x03\x02\x02\x02\u1A24\u1A2C\x05\u0290\u0149" + + "\x02\u1A25\u1A26\x07\x84\x02\x02\u1A26\u1A29\x07\u0364\x02\x02\u1A27\u1A2A" + + "\x05\u02A2\u0152\x02\u1A28\u1A2A\x07\t\x02\x02\u1A29\u1A27\x03\x02\x02" + + "\x02\u1A29\u1A28\x03\x02\x02\x02\u1A2A\u1A2B\x03\x02\x02\x02\u1A2B\u1A2D" + + "\x07\u0365\x02\x02\u1A2C\u1A25\x03\x02\x02\x02\u1A2C\u1A2D\x03\x02\x02" + + "\x02\u1A2D\u1A35\x03\x02\x02\x02\u1A2E\u1A30\t\x14\x02\x02\u1A2F\u1A2E" + + "\x03\x02\x02\x02\u1A2F\u1A30\x03\x02\x02\x02\u1A30\u1A31\x03\x02\x02\x02" + + "\u1A31\u1A32\x07\u0364\x02\x02\u1A32\u1A33\x05\u0284\u0143\x02\u1A33\u1A34" + + "\x07\u0365\x02\x02\u1A34\u1A36\x03\x02\x02\x02\u1A35\u1A2F\x03\x02\x02" + + "\x02\u1A35\u1A36\x03\x02\x02\x02\u1A36\u1A39\x03\x02\x02\x02\u1A37\u1A38" + + "\x07Q\x02\x02\u1A38\u1A3A\x07\u01C0\x02\x02\u1A39\u1A37\x03\x02\x02\x02" + + "\u1A39\u1A3A\x03\x02\x02\x02\u1A3A\u025B\x03\x02\x02\x02\u1A3B\u1A3C\t" + + "j\x02\x02\u1A3C\u1A3F\x05\u0290\u0149\x02\u1A3D\u1A40\x05\u029A\u014E" + + "\x02\u1A3E\u1A40\x07\u0374\x02\x02\u1A3F\u1A3D\x03\x02\x02\x02\u1A3F\u1A3E" + + "\x03\x02\x02\x02\u1A3F\u1A40\x03\x02\x02\x02\u1A40\u025D\x03\x02\x02\x02" + + "\u1A41\u1A47\tj\x02\x02\u1A42\u1A48\x07\u018A\x02\x02\u1A43\u1A48\x07" + + "\u0212\x02\x02\u1A44\u1A45\x07\u033C\x02\x02\u1A45\u1A46\x07\u035B\x02" + + "\x02\u1A46\u1A48\tk\x02\x02\u1A47\u1A42\x03\x02\x02\x02\u1A47\u1A43\x03" + + "\x02\x02\x02\u1A47\u1A44\x03\x02\x02\x02\u1A47\u1A48\x03\x02\x02\x02\u1A48" + + "\u1A49\x03\x02\x02\x02\u1A49\u1A4A\x05\u0274\u013B\x02\u1A4A\u025F\x03" + + "\x02\x02\x02\u1A4B\u1A4C\tj\x02\x02\u1A4C\u1A50\x07\f\x02\x02\u1A4D\u1A4E" + + "\x07\u033C\x02\x02\u1A4E\u1A4F\x07\u035B\x02\x02\u1A4F\u1A51\x07\u029C" + + "\x02\x02\u1A50\u1A4D\x03\x02\x02\x02\u1A50\u1A51\x03\x02\x02\x02\u1A51" + + "\u1A52\x03\x02\x02\x02\u1A52\u1A53\x05\xCEh\x02\u1A53\u0261\x03\x02\x02" + + "\x02\u1A54\u1A55\x07\u01A5\x02\x02\u1A55\u1A56\x07\u0374\x02\x02\u1A56" + + "\u0263\x03\x02\x02\x02\u1A57\u1A58\x07\xBD\x02\x02\u1A58\u1A59\x05\u0278" + + "\u013D\x02\u1A59\u0265\x03\x02\x02\x02\u1A5A\u1A62\x07\xA0\x02\x02\u1A5B" + + "\u1A5D\x07\xA6\x02\x02\u1A5C\u1A5E\x07\u02AC\x02\x02\u1A5D\u1A5C\x03\x02" + + "\x02\x02\u1A5D\u1A5E\x03\x02\x02\x02\u1A5E\u1A5F\x03\x02\x02\x02\u1A5F" + + "\u1A63\x05\u02D0\u0169\x02\u1A60\u1A63\x07\u037C\x02\x02\u1A61\u1A63\x07" + + "\u037D\x02\x02\u1A62\u1A5B\x03\x02\x02\x02\u1A62\u1A60\x03\x02\x02\x02" + + "\u1A62\u1A61\x03\x02\x02\x02\u1A63\u1A6D\x03\x02\x02\x02\u1A64\u1A65\x07" + + "\x9D\x02\x02\u1A65\u1A6A\x05\u026A\u0136\x02\u1A66\u1A67\x07\u0366\x02" + + "\x02\u1A67\u1A69\x05\u026A\u0136\x02\u1A68\u1A66\x03\x02\x02\x02\u1A69" + + "\u1A6C\x03\x02\x02\x02\u1A6A\u1A68\x03\x02\x02\x02\u1A6A\u1A6B\x03\x02" + + "\x02\x02\u1A6B\u1A6E\x03\x02\x02\x02\u1A6C\u1A6A\x03\x02\x02\x02\u1A6D" + + "\u1A64\x03\x02\x02\x02\u1A6D\u1A6E\x03\x02\x02\x02\u1A6E\u0267\x03\x02" + + "\x02\x02\u1A6F\u1A77\x07\x93\x02\x02\u1A70\u1A72\x07\xA6\x02\x02\u1A71" + + "\u1A73\x07\u02AC\x02\x02\u1A72\u1A71\x03\x02\x02\x02\u1A72\u1A73\x03\x02" + + "\x02\x02\u1A73\u1A74\x03\x02\x02\x02\u1A74\u1A78\x05\u02D0\u0169\x02\u1A75" + + "\u1A78\x07\u037C\x02\x02\u1A76\u1A78\x07\u037D\x02\x02\u1A77\u1A70\x03" + + "\x02\x02\x02\u1A77\u1A75\x03\x02\x02\x02\u1A77\u1A76\x03\x02\x02\x02\u1A77" + + "\u1A78\x03\x02\x02\x02\u1A78\u1A82\x03\x02\x02\x02\u1A79\u1A7A\x07\x9D" + + "\x02\x02\u1A7A\u1A7F\x05\u026A\u0136\x02\u1A7B\u1A7C\x07\u0366\x02\x02" + + "\u1A7C\u1A7E\x05\u026A\u0136\x02\u1A7D\u1A7B\x03\x02\x02\x02\u1A7E\u1A81" + + "\x03\x02\x02\x02\u1A7F\u1A7D\x03\x02\x02\x02\u1A7F\u1A80\x03\x02\x02\x02" + + "\u1A80\u1A83\x03\x02\x02\x02\u1A81\u1A7F\x03\x02\x02\x02\u1A82\u1A79\x03" + + "\x02\x02\x02\u1A82\u1A83\x03\x02\x02\x02\u1A83\u0269\x03\x02\x02\x02\u1A84" + + "\u1A85\tl\x02\x02\u1A85\u1A8A\x07\u035B\x02\x02\u1A86\u1A8B\x05\u02D0" + + "\u0169\x02\u1A87\u1A8B\x07\u0375\x02\x02\u1A88\u1A8B\x05\u02B2\u015A\x02" + + "\u1A89\u1A8B\x05\u02C8\u0165\x02\u1A8A\u1A86\x03\x02\x02\x02\u1A8A\u1A87" + + "\x03\x02\x02\x02\u1A8A\u1A88\x03\x02\x02\x02\u1A8A\u1A89\x03\x02\x02\x02" + + "\u1A8B\u026B\x03\x02\x02\x02\u1A8C\u1A8E\x07\xC4\x02\x02\u1A8D\u1A8F\x07" + + "\u022A\x02\x02\u1A8E\u1A8D\x03\x02\x02\x02\u1A8E\u1A8F\x03\x02\x02\x02" + + "\u1A8F\u1A90\x03\x02\x02\x02\u1A90\u1A95\x052\x1A\x02\u1A91\u1A92\x07" + + "\u0366\x02\x02\u1A92\u1A94\x052\x1A\x02\u1A93\u1A91\x03\x02\x02\x02\u1A94" + + "\u1A97\x03\x02\x02\x02\u1A95\u1A93\x03\x02\x02\x02\u1A95\u1A96\x03\x02" + + "\x02\x02\u1A96\u026D\x03\x02\x02\x02\u1A97\u1A95\x03\x02\x02\x02\u1A98" + + "\u1A99\x07\xAF\x02\x02\u1A99\u1A9B\x05\u0290\u0149\x02\u1A9A\u1A9C\x05" + + "\xFE\x80\x02\u1A9B\u1A9A\x03\x02\x02\x02\u1A9B\u1A9C\x03\x02\x02\x02\u1A9C" + + "\u1A9E\x03\x02\x02\x02\u1A9D\u1A9F\x05\u0140\xA1\x02\u1A9E\u1A9D\x03\x02" + + "\x02\x02\u1A9E\u1A9F\x03\x02\x02\x02\u1A9F\u026F\x03\x02\x02\x02\u1AA0" + + "\u1AA2\x07J\x02\x02\u1AA1\u1AA3\tm\x02\x02\u1AA2\u1AA1\x03\x02\x02\x02" + + "\u1AA2\u1AA3\x03\x02\x02\x02\u1AA3\u1AA4\x03\x02\x02\x02\u1AA4\u1AC4\x07" + + "2\x02\x02\u1AA5\u1AA6\x05\u0232\u011A\x02\u1AA6\u1AA7\x07\u035B\x02\x02" + + "\u1AA7\u1AAF\tn\x02\x02\u1AA8\u1AA9\x07\u0366\x02\x02\u1AA9\u1AAA\x05" + + "\u0232\u011A\x02\u1AAA\u1AAB\x07\u035B\x02\x02\u1AAB\u1AAC\tn\x02\x02" + + "\u1AAC\u1AAE\x03\x02\x02\x02\u1AAD\u1AA8\x03\x02\x02\x02\u1AAE\u1AB1\x03" + + "\x02\x02\x02\u1AAF\u1AAD\x03\x02\x02\x02\u1AAF\u1AB0\x03\x02\x02\x02\u1AB0" + + "\u1AC5\x03\x02\x02\x02\u1AB1\u1AAF\x03\x02\x02\x02\u1AB2\u1AB5\x07 \x02" + + "\x02\u1AB3\u1AB6\x05\u02CC\u0167\x02\u1AB4\u1AB6\x05\u0232\u011A\x02\u1AB5" + + "\u1AB3\x03\x02\x02\x02\u1AB5\u1AB4\x03\x02\x02\x02\u1AB6\u1AB7\x03\x02" + + "\x02\x02\u1AB7\u1AB8\x05\u0232\u011A\x02\u1AB8\u1AB9\x07\u035B\x02\x02" + + "\u1AB9\u1AC1\x05\u0272\u013A\x02\u1ABA\u1ABB\x07\u0366\x02\x02\u1ABB\u1ABC" + + "\x05\u0232\u011A\x02\u1ABC\u1ABD\x07\u035B\x02\x02\u1ABD\u1ABE\x05\u0272" + + "\u013A\x02\u1ABE\u1AC0\x03\x02\x02\x02\u1ABF\u1ABA\x03\x02\x02\x02\u1AC0" + + "\u1AC3\x03\x02\x02\x02\u1AC1\u1ABF\x03\x02\x02\x02\u1AC1\u1AC2\x03\x02" + + "\x02\x02\u1AC2\u1AC5\x03\x02\x02\x02\u1AC3\u1AC1\x03\x02\x02\x02\u1AC4" + + "\u1AA5\x03\x02\x02\x02\u1AC4\u1AB2\x03\x02\x02\x02\u1AC5\u0271\x03\x02" + + "\x02\x02\u1AC6\u1AC7\to\x02\x02\u1AC7\u0273\x03\x02\x02\x02\u1AC8\u1ACE" + + "\x05\xCEh\x02\u1AC9\u1ACE\x05\xB6\\\x02\u1ACA\u1ACE\x05\xBC_\x02\u1ACB" + + "\u1ACE\x05\xCCg\x02\u1ACC\u1ACE\x05\xD8m\x02\u1ACD\u1AC8\x03\x02\x02\x02" + + "\u1ACD\u1AC9\x03\x02\x02\x02\u1ACD\u1ACA\x03\x02\x02\x02\u1ACD\u1ACB\x03" + + "\x02\x02\x02\u1ACD\u1ACC\x03\x02\x02\x02\u1ACE\u1AD3\x03\x02\x02\x02\u1ACF" + + "\u1AD0\x07C\x02\x02\u1AD0\u1AD1\x07\u015F\x02\x02\u1AD1\u1AD3\x05\u02C6" + + "\u0164\x02\u1AD2\u1ACD\x03\x02\x02\x02\u1AD2\u1ACF\x03\x02\x02\x02\u1AD3" + + "\u0275\x03\x02\x02\x02\u1AD4\u1AD5\x05\u02C2\u0162\x02\u1AD5\u0277\x03" + + "\x02\x02\x02\u1AD6\u1AD7\x05\u02C2\u0162\x02\u1AD7\u0279\x03\x02\x02\x02" + + "\u1AD8\u1AD9\x05\u02C2\u0162\x02\u1AD9\u027B\x03\x02\x02\x02\u1ADA\u1ADB" + + "\x05\u02C2\u0162\x02\u1ADB\u027D\x03\x02\x02\x02\u1ADC\u1ADD\x05\u02C2" + + "\u0162\x02\u1ADD\u027F\x03\x02\x02\x02\u1ADE\u1ADF\x05\u02C2\u0162\x02" + + "\u1ADF\u0281\x03\x02\x02\x02\u1AE0\u1AE1\x05\u02C6\u0164\x02\u1AE1\u0283" + + "\x03\x02\x02\x02\u1AE2\u1AE7\x05\u0286\u0144\x02\u1AE3\u1AE4\x07\u0366" + + "\x02\x02\u1AE4\u1AE6\x05\u0286\u0144\x02\u1AE5\u1AE3\x03\x02\x02\x02\u1AE6" + + "\u1AE9\x03\x02\x02\x02\u1AE7\u1AE5\x03\x02\x02\x02\u1AE7\u1AE8\x03\x02" + + "\x02\x02\u1AE8\u0285\x03\x02\x02\x02\u1AE9\u1AE7\x03\x02\x02\x02\u1AEA" + + "\u1AEB\x05\u02C6\u0164\x02\u1AEB\u0287\x03\x02\x02\x02\u1AEC\u1AED\x05" + + "\u02C6\u0164\x02\u1AED\u0289\x03\x02\x02\x02\u1AEE\u1AEF\x05\u02C6\u0164" + + "\x02\u1AEF\u028B\x03\x02\x02\x02\u1AF0\u1AF1\x05\u02C2\u0162\x02\u1AF1" + + "\u028D\x03\x02\x02\x02\u1AF2\u1AF7\x05\u0290\u0149\x02\u1AF3\u1AF4\x07" + + "\u0366\x02\x02\u1AF4\u1AF6\x05\u0290\u0149\x02\u1AF5\u1AF3\x03\x02\x02" + + "\x02\u1AF6\u1AF9\x03\x02\x02\x02\u1AF7\u1AF5\x03\x02\x02\x02\u1AF7\u1AF8" + + "\x03\x02\x02\x02\u1AF8\u028F\x03\x02\x02\x02\u1AF9\u1AF7\x03\x02\x02\x02" + + "\u1AFA\u1AFB\x05\u02C2\u0162\x02\u1AFB\u0291\x03\x02\x02\x02\u1AFC\u1B01" + + "\x05\u0294\u014B\x02\u1AFD\u1AFE\x07\u0366\x02\x02\u1AFE\u1B00\x05\u0294" + + "\u014B\x02\u1AFF\u1AFD\x03\x02\x02\x02\u1B00\u1B03\x03\x02\x02\x02\u1B01" + + "\u1AFF\x03\x02\x02\x02\u1B01\u1B02\x03\x02\x02\x02\u1B02\u0293\x03\x02" + + "\x02\x02\u1B03\u1B01\x03\x02\x02\x02\u1B04\u1B07\x05\u02B0\u0159\x02\u1B05" + + "\u1B07\x05\u02C6\u0164\x02\u1B06\u1B04\x03\x02\x02\x02\u1B06\u1B05\x03" + + "\x02\x02\x02\u1B07\u0295\x03\x02\x02\x02\u1B08\u1B0D\x05\u02C6\u0164\x02" + + "\u1B09\u1B0B\x05\u02CA\u0166\x02\u1B0A\u1B0C\x05\u02CA\u0166\x02\u1B0B" + + "\u1B0A\x03\x02\x02\x02\u1B0B\u1B0C\x03\x02\x02\x02\u1B0C\u1B0E\x03\x02" + + "\x02\x02\u1B0D\u1B09\x03\x02\x02\x02\u1B0D\u1B0E\x03\x02\x02\x02\u1B0E" + + "\u1B17\x03\x02\x02\x02\u1B0F\u1B11\v\x02\x02\x02\u1B10\u1B0F\x03\x02\x02" + + "\x02\u1B10\u1B11\x03\x02\x02\x02\u1B11\u1B12\x03\x02\x02\x02\u1B12\u1B14" + + "\x05\u02CA\u0166\x02\u1B13\u1B15\x05\u02CA\u0166\x02\u1B14\u1B13\x03\x02" + + "\x02\x02\u1B14\u1B15\x03\x02\x02\x02\u1B15\u1B17\x03\x02\x02\x02\u1B16" + + "\u1B08\x03\x02\x02\x02\u1B16\u1B10\x03\x02\x02\x02\u1B17\u0297\x03\x02" + + "\x02\x02\u1B18\u1B1D\x05\u029A\u014E\x02\u1B19\u1B1A\x07\u0366\x02\x02" + + "\u1B1A\u1B1C\x05\u029A\u014E\x02\u1B1B\u1B19\x03\x02\x02\x02\u1B1C\u1B1F" + + "\x03\x02\x02\x02\u1B1D\u1B1B\x03\x02\x02\x02\u1B1D\u1B1E\x03\x02\x02\x02" + + "\u1B1E\u0299\x03\x02\x02\x02\u1B1F\u1B1D\x03\x02\x02\x02\u1B20\u1B25\x05" + + "\u02C6\u0164\x02\u1B21\u1B23\x05\u02CA\u0166\x02\u1B22\u1B24\x05\u02CA" + + "\u0166\x02\u1B23\u1B22\x03\x02\x02\x02\u1B23\u1B24\x03\x02\x02\x02\u1B24" + + "\u1B26\x03\x02\x02\x02\u1B25\u1B21\x03\x02\x02\x02\u1B25\u1B26\x03\x02" + + "\x02\x02\u1B26\u1B2F\x03\x02\x02\x02\u1B27\u1B29\v\x02\x02\x02\u1B28\u1B27" + + "\x03\x02\x02\x02\u1B28\u1B29\x03\x02\x02\x02\u1B29\u1B2A\x03\x02\x02\x02" + + "\u1B2A\u1B2C\x05\u02CA\u0166\x02\u1B2B\u1B2D\x05\u02CA\u0166\x02\u1B2C" + + "\u1B2B\x03\x02\x02\x02\u1B2C\u1B2D\x03\x02\x02\x02\u1B2D\u1B2F\x03\x02" + + "\x02\x02\u1B2E\u1B20\x03\x02\x02\x02\u1B2E\u1B28\x03\x02\x02\x02\u1B2F" + + "\u029B\x03\x02\x02\x02\u1B30\u1B31\x05\u02C6\u0164\x02\u1B31\u029D\x03" + + "\x02\x02\x02\u1B32\u1B33\x05\u02C6\u0164\x02\u1B33\u029F\x03\x02\x02\x02" + + "\u1B34\u1B35\x05\u02C6\u0164\x02\u1B35\u02A1\x03\x02\x02\x02\u1B36\u1B3B" + + "\x05\u02A4\u0153\x02\u1B37\u1B38\x07\u0366\x02\x02\u1B38\u1B3A\x05\u02A4" + + "\u0153\x02\u1B39\u1B37\x03\x02\x02\x02\u1B3A\u1B3D\x03\x02\x02\x02\u1B3B" + + "\u1B39\x03\x02\x02\x02\u1B3B\u1B3C\x03\x02\x02\x02\u1B3C\u02A3\x03\x02" + + "\x02\x02\u1B3D\u1B3B\x03\x02\x02\x02\u1B3E\u1B3F\x05\u02C6\u0164\x02\u1B3F" + + "\u02A5\x03\x02\x02\x02\u1B40\u1B45\x05\u02C6\u0164\x02\u1B41\u1B42\x07" + + "\u0364\x02\x02\u1B42\u1B43\x05\u02CC\u0167\x02\u1B43\u1B44\x07\u0365\x02" + + "\x02\u1B44\u1B46\x03\x02\x02\x02\u1B45\u1B41\x03\x02\x02\x02\u1B45\u1B46" + + "\x03\x02\x02\x02\u1B46\u1B49\x03\x02\x02\x02\u1B47\u1B49\x05\u0328\u0195" + + "\x02\u1B48\u1B40\x03\x02\x02\x02\u1B48\u1B47\x03\x02\x02\x02\u1B49\u1B4B" + + "\x03\x02\x02\x02\u1B4A\u1B4C\t8\x02\x02\u1B4B\u1B4A\x03\x02\x02\x02\u1B4B" + + "\u1B4C\x03\x02\x02\x02\u1B4C\u02A7\x03\x02\x02\x02\u1B4D\u1B4E\x05\u02AA" + + "\u0156\x02\u1B4E\u1B4F\x07\u0370\x02\x02\u1B4F\u1B50\x05\u02CC\u0167\x02" + + "\u1B50\u02A9\x03\x02\x02\x02\u1B51\u1B52\x05\u02AC\u0157\x02\u1B52\u1B53" + + "\x07\u037E\x02\x02\u1B53\u02AB\x03\x02\x02\x02\u1B54\u1B59\x07\u0374\x02" + + "\x02\u1B55\u1B59\x07\u037C\x02\x02\u1B56\u1B59\x07\u02C2\x02\x02\u1B57" + + "\u1B59\x05\u0346\u01A4\x02\u1B58\u1B54\x03\x02\x02\x02\u1B58\u1B55\x03" + + "\x02\x02\x02\u1B58\u1B56\x03\x02\x02\x02\u1B58\u1B57\x03\x02\x02\x02\u1B59" + + "\u02AD\x03\x02\x02\x02\u1B5A\u1B5B\tp\x02\x02\u1B5B\u02AF\x03\x02\x02" + + "\x02\u1B5C\u1B5E\x05\u02AC\u0157\x02\u1B5D\u1B5F\x05\u02AE\u0158\x02\u1B5E" + + "\u1B5D\x03\x02\x02\x02\u1B5E\u1B5F\x03\x02\x02\x02\u1B5F\u1B62\x03\x02" + + "\x02\x02\u1B60\u1B62\x05:\x1E\x02\u1B61\u1B5C\x03\x02\x02\x02\u1B61\u1B60" + + "\x03\x02\x02\x02\u1B62\u02B1\x03\x02\x02\x02\u1B63\u1B64\tq\x02\x02\u1B64" + + "\u02B3\x03\x02\x02\x02\u1B65\u1B6A\x07\xE6\x02\x02\u1B66\u1B6A\x05\u033C" + + "\u019F\x02\u1B67\u1B6A\x07\u0374\x02\x02\u1B68\u1B6A\x07\u0371\x02\x02" + + "\u1B69\u1B65\x03\x02\x02\x02\u1B69\u1B66\x03\x02\x02\x02\u1B69\u1B67\x03" + + "\x02\x02\x02\u1B69\u1B68\x03\x02\x02\x02\u1B6A\u02B5\x03\x02\x02\x02\u1B6B" + + "\u1B6C\x05\u02C6\u0164\x02\u1B6C\u02B7\x03\x02\x02\x02\u1B6D\u1B71\x05" + + "\u02BA\u015E\x02\u1B6E\u1B71\x07\u037C\x02\x02\u1B6F\u1B71\x07\u0374\x02" + + "\x02\u1B70\u1B6D\x03\x02\x02\x02\u1B70\u1B6E\x03\x02\x02\x02\u1B70\u1B6F" + + "\x03\x02\x02\x02\u1B71\u02B9\x03\x02\x02\x02\u1B72\u1B73\tr\x02\x02\u1B73" + + "\u02BB\x03\x02\x02\x02\u1B74\u1B75\x05\u02CC\u0167\x02\u1B75\u1B76\x07" + + "\u0358\x02\x02\u1B76\u1B77\x05\u02CC\u0167\x02\u1B77\u1B78\x07\u0358\x02" + + "\x02\u1B78\u1B79\x05\u02CC\u0167\x02\u1B79\u1B7A\x07\u0358\x02\x02\u1B7A" + + "\u1B7B\x05\u02CC\u0167\x02\u1B7B\u1B7C\x07\u0358\x02\x02\u1B7C\u1B82\x05" + + "\u02CC\u0167\x02\u1B7D\u1B7E\x07\u0370\x02\x02\u1B7E\u1B7F\x05\u02CC\u0167" + + "\x02\u1B7F\u1B80\x07\u0358\x02\x02\u1B80\u1B81\x05\u02CC\u0167\x02\u1B81" + + "\u1B83\x03\x02\x02\x02\u1B82\u1B7D\x03\x02\x02\x02\u1B83\u1B84\x03\x02" + + "\x02\x02\u1B84\u1B82\x03\x02\x02\x02\u1B84\u1B85\x03\x02\x02\x02\u1B85" + + "\u02BD\x03\x02\x02\x02\u1B86\u1B8D\x05\u02C0\u0161\x02\u1B87\u1B88\x07" + + "\u0366\x02\x02\u1B88\u1B8B\x05\u02C0\u0161\x02\u1B89\u1B8A\x07\u0366\x02" + + "\x02\u1B8A\u1B8C\x05\u02CC\u0167\x02\u1B8B\u1B89\x03\x02\x02\x02\u1B8B" + + "\u1B8C\x03\x02\x02\x02\u1B8C\u1B8E\x03\x02\x02\x02\u1B8D\u1B87\x03\x02" + + "\x02\x02\u1B8D\u1B8E\x03\x02\x02\x02\u1B8E\u02BF\x03\x02\x02\x02\u1B8F" + + "\u1B97\x07\u0374\x02\x02\u1B90\u1B97\x07\u0379\x02\x02\u1B91\u1B93\x07" + + "\u0376\x02\x02\u1B92\u1B91\x03\x02\x02\x02\u1B93\u1B94\x03\x02\x02\x02" + + "\u1B94\u1B92\x03\x02\x02\x02\u1B94\u1B95\x03\x02\x02\x02\u1B95\u1B97\x03" + + "\x02\x02\x02\u1B96\u1B8F\x03\x02\x02\x02\u1B96\u1B90\x03\x02\x02\x02\u1B96" + + "\u1B92\x03\x02\x02\x02\u1B97\u02C1\x03\x02\x02\x02\u1B98\u1B9A\x05\u02C6" + + "\u0164\x02\u1B99\u1B9B\x05\u02CA\u0166\x02\u1B9A\u1B99\x03\x02\x02\x02" + + "\u1B9A\u1B9B\x03\x02\x02\x02\u1B9B\u02C3\x03\x02\x02\x02\u1B9C\u1BA1\x05" + + "\u02C6\u0164\x02\u1B9D\u1B9E\x07\u0366\x02\x02\u1B9E\u1BA0\x05\u02C6\u0164" + + "\x02\u1B9F\u1B9D\x03\x02\x02\x02\u1BA0\u1BA3\x03\x02\x02\x02\u1BA1\u1B9F" + + "\x03\x02\x02\x02\u1BA1\u1BA2\x03\x02\x02\x02\u1BA2\u02C5\x03\x02\x02\x02" + + "\u1BA3\u1BA1\x03\x02\x02\x02\u1BA4\u1BA8\x05\u02C8\u0165\x02\u1BA5\u1BA8" + + "\x07\u0371\x02\x02\u1BA6\u1BA8\x07\u0374\x02\x02\u1BA7\u1BA4\x03\x02\x02" + + "\x02\u1BA7\u1BA5\x03\x02\x02\x02\u1BA7\u1BA6\x03\x02\x02\x02\u1BA8\u02C7" + + "\x03\x02\x02\x02\u1BA9\u1BB3\x07\u037C\x02\x02\u1BAA\u1BB3\x05\u033C\u019F" + + "\x02\u1BAB\u1BB3\x05\u033E\u01A0\x02\u1BAC\u1BB3\x05\u02BA\u015E\x02\u1BAD" + + "\u1BB3\x05\u0340\u01A1\x02\u1BAE\u1BB3\x05\u0342\u01A2\x02\u1BAF\u1BB3" + + "\x05\u0344\u01A3\x02\u1BB0\u1BB3\x05\u0346\u01A4\x02\u1BB1\u1BB3\x05\u0320" + + "\u0191\x02\u1BB2\u1BA9\x03\x02\x02\x02\u1BB2\u1BAA\x03\x02\x02\x02\u1BB2" + + "\u1BAB\x03\x02\x02\x02\u1BB2\u1BAC\x03\x02\x02\x02\u1BB2\u1BAD\x03\x02" + + "\x02\x02\u1BB2\u1BAE\x03\x02\x02\x02\u1BB2\u1BAF\x03\x02\x02\x02\u1BB2" + + "\u1BB0\x03\x02\x02\x02\u1BB2\u1BB1\x03\x02\x02\x02\u1BB3\u02C9\x03\x02" + + "\x02\x02\u1BB4\u1BB8\x07\u037B\x02\x02\u1BB5\u1BB6\x07\u0363\x02\x02\u1BB6" + + "\u1BB8\x05\u02C6\u0164\x02\u1BB7\u1BB4\x03\x02\x02\x02\u1BB7\u1BB5\x03" + + "\x02\x02\x02\u1BB8\u02CB\x03\x02\x02\x02\u1BB9\u1BBA\ts\x02\x02\u1BBA" + + "\u02CD\x03\x02\x02\x02\u1BBB\u1BBE\x07\u0372\x02\x02\u1BBC\u1BBE\x05\u02CC" + + "\u0167\x02\u1BBD\u1BBB\x03\x02\x02\x02\u1BBD\u1BBC\x03\x02\x02\x02\u1BBE" + + "\u02CF\x03\x02\x02\x02\u1BBF\u1BC1\x07\u037A\x02\x02\u1BC0\u1BBF\x03\x02" + + "\x02\x02\u1BC0\u1BC1\x03\x02\x02\x02\u1BC1\u1BC2\x03\x02\x02\x02\u1BC2" + + "\u1BC5\x07\u0374\x02\x02\u1BC3\u1BC5\x07\u0373\x02\x02\u1BC4\u1BC0\x03" + + "\x02\x02\x02\u1BC4\u1BC3\x03\x02\x02\x02\u1BC5\u1BC7\x03\x02\x02\x02\u1BC6" + + "\u1BC8\x07\u0374\x02\x02\u1BC7\u1BC6\x03\x02\x02\x02\u1BC8\u1BC9\x03\x02" + + "\x02\x02\u1BC9\u1BC7\x03\x02\x02\x02\u1BC9\u1BCA\x03\x02\x02\x02\u1BCA" + + "\u1BD7\x03\x02\x02\x02\u1BCB\u1BCD\x07\u037A\x02\x02\u1BCC\u1BCB\x03\x02" + + "\x02\x02\u1BCC\u1BCD\x03\x02\x02\x02\u1BCD\u1BCE\x03\x02\x02\x02\u1BCE" + + "\u1BD1\x07\u0374\x02\x02\u1BCF\u1BD1\x07\u0373\x02\x02\u1BD0\u1BCC\x03" + + "\x02\x02\x02\u1BD0\u1BCF\x03\x02\x02\x02\u1BD1\u1BD4\x03\x02\x02\x02\u1BD2" + + "\u1BD3\x07\x1E\x02\x02\u1BD3\u1BD5\x05\u02B6\u015C\x02\u1BD4\u1BD2\x03" + + "\x02\x02\x02\u1BD4\u1BD5\x03\x02\x02\x02\u1BD5\u1BD7\x03\x02\x02\x02\u1BD6" + + "\u1BC4\x03\x02\x02\x02\u1BD6\u1BD0\x03\x02\x02\x02\u1BD7\u02D1\x03\x02" + + "\x02\x02\u1BD8\u1BD9\tt\x02\x02\u1BD9\u02D3\x03\x02\x02\x02\u1BDA\u1BDC" + + "\x07\u037A\x02\x02\u1BDB\u1BDA\x03\x02\x02\x02\u1BDB\u1BDC\x03\x02\x02" + + "\x02\u1BDC\u1BDD\x03\x02\x02\x02\u1BDD\u1BDE\x07\u0376\x02\x02\u1BDE\u02D5" + + "\x03\x02\x02\x02\u1BDF\u1BE1\x07t\x02\x02\u1BE0\u1BDF\x03\x02\x02\x02" + + "\u1BE0\u1BE1\x03\x02\x02\x02\u1BE1\u1BE2\x03\x02\x02\x02\u1BE2\u1BE3\t" + + "u\x02\x02\u1BE3\u02D7\x03\x02\x02\x02\u1BE4\u1BF1\x05\u02D0\u0169\x02" + + "\u1BE5\u1BF1\x05\u02CC\u0167\x02\u1BE6\u1BE7\x07\u0358\x02\x02\u1BE7\u1BF1" + + "\x05\u02CC\u0167\x02\u1BE8\u1BF1\x05\u02D4\u016B\x02\u1BE9\u1BF1\x05\u02D2" + + "\u016A\x02\u1BEA\u1BF1\x07\u0377\x02\x02\u1BEB\u1BF1\x07\u0379\x02\x02" + + "\u1BEC\u1BEE\x07t\x02\x02\u1BED\u1BEC\x03\x02\x02\x02\u1BED\u1BEE\x03" + + "\x02\x02\x02\u1BEE\u1BEF\x03\x02\x02\x02\u1BEF\u1BF1\tu\x02\x02\u1BF0" + + "\u1BE4\x03\x02\x02\x02\u1BF0\u1BE5\x03\x02\x02\x02\u1BF0\u1BE6\x03\x02" + + "\x02\x02\u1BF0\u1BE8\x03\x02\x02\x02\u1BF0\u1BE9\x03\x02\x02\x02\u1BF0" + + "\u1BEA\x03\x02\x02\x02\u1BF0\u1BEB\x03\x02\x02\x02\u1BF0\u1BED\x03\x02" + + "\x02\x02\u1BF1\u02D9\x03\x02\x02\x02\u1BF2\u1BF4\tv\x02\x02\u1BF3\u1BF5" + + "\x07\xF2\x02\x02\u1BF4\u1BF3\x03\x02\x02\x02\u1BF4\u1BF5\x03\x02\x02\x02" + + "\u1BF5\u1BF7\x03\x02\x02\x02\u1BF6\u1BF8\x05\u02E0\u0171\x02\u1BF7\u1BF6" + + "\x03\x02\x02\x02\u1BF7\u1BF8\x03\x02\x02\x02\u1BF8\u1BFA\x03\x02\x02\x02" + + "\u1BF9\u1BFB\x07\xE6\x02\x02\u1BFA\u1BF9\x03\x02\x02\x02\u1BFA\u1BFB\x03" + + "\x02\x02\x02\u1BFB\u1BFF\x03\x02\x02\x02\u1BFC\u1BFD\x058\x1D\x02\u1BFD" + + "\u1BFE\x05\u02B4\u015B\x02\u1BFE\u1C00\x03\x02\x02\x02\u1BFF\u1BFC\x03" + + "\x02\x02\x02\u1BFF\u1C00\x03\x02\x02\x02\u1C00\u1C04\x03\x02\x02\x02\u1C01" + + "\u1C02\x07\x1E\x02\x02\u1C02\u1C05\x05\u02B6\u015C\x02\u1C03\u1C05\x07" + + "\xE6\x02\x02\u1C04\u1C01\x03\x02\x02\x02\u1C04\u1C03\x03\x02\x02\x02\u1C04" + + "\u1C05\x03\x02\x02\x02\u1C05\u1C71\x03\x02\x02\x02\u1C06\u1C07\x07\xE5" + + "\x02\x02\u1C07\u1C08\tw\x02\x02\u1C08\u1C0A\x07\xF2\x02\x02\u1C09\u1C0B" + + "\x05\u02E0\u0171\x02\u1C0A\u1C09\x03\x02\x02\x02\u1C0A\u1C0B\x03\x02\x02" + + "\x02\u1C0B\u1C0D\x03\x02\x02\x02\u1C0C\u1C0E\x07\xE6\x02\x02\u1C0D\u1C0C" + + "\x03\x02\x02\x02\u1C0D\u1C0E\x03\x02\x02\x02\u1C0E\u1C71\x03\x02\x02\x02" + + "\u1C0F\u1C10\x07\xE5\x02\x02\u1C10\u1C12\tx\x02\x02\u1C11\u1C13\x05\u02E0" + + "\u0171\x02\u1C12\u1C11\x03\x02\x02\x02\u1C12\u1C13\x03\x02\x02\x02\u1C13" + + "\u1C15\x03\x02\x02\x02\u1C14\u1C16\x07\xE6\x02\x02\u1C15\u1C14\x03\x02" + + "\x02\x02\u1C15\u1C16\x03\x02\x02\x02\u1C16\u1C71\x03\x02\x02\x02\u1C17" + + "\u1C18\x07\u01F4\x02\x02\u1C18\u1C1A\x07\xE3\x02\x02\u1C19\u1C1B\x05\u02E0" + + "\u0171\x02\u1C1A\u1C19\x03\x02\x02\x02\u1C1A\u1C1B\x03\x02\x02\x02\u1C1B" + + "\u1C1D\x03\x02\x02\x02\u1C1C\u1C1E\x07\xE6\x02\x02\u1C1D\u1C1C\x03\x02" + + "\x02\x02\u1C1D\u1C1E\x03\x02\x02\x02\u1C1E\u1C71\x03\x02\x02\x02\u1C1F" + + "\u1C21\ty\x02\x02\u1C20\u1C22\x05\u02E0\u0171\x02\u1C21\u1C20\x03\x02" + + "\x02\x02\u1C21\u1C22\x03\x02\x02\x02\u1C22\u1C26\x03\x02\x02\x02\u1C23" + + "\u1C25\tz\x02\x02\u1C24\u1C23\x03\x02\x02\x02\u1C25\u1C28\x03\x02\x02" + + "\x02\u1C26\u1C24\x03"; + private static readonly _serializedATNSegment14: string = + "\x02\x02\x02\u1C26\u1C27\x03\x02\x02\x02\u1C27\u1C71\x03\x02\x02\x02\u1C28" + + "\u1C26\x03\x02\x02\x02\u1C29\u1C2B\x07\xD4\x02\x02\u1C2A\u1C2C\x05\u02E2" + + "\u0172\x02\u1C2B\u1C2A\x03\x02\x02\x02\u1C2B\u1C2C\x03\x02\x02\x02\u1C2C" + + "\u1C30\x03\x02\x02\x02\u1C2D\u1C2F\tz\x02\x02\u1C2E\u1C2D\x03\x02\x02" + + "\x02\u1C2F\u1C32\x03\x02\x02\x02\u1C30\u1C2E\x03\x02\x02\x02\u1C30\u1C31" + + "\x03\x02\x02\x02\u1C31\u1C71\x03\x02\x02\x02\u1C32\u1C30\x03\x02\x02\x02" + + "\u1C33\u1C35\x07\xD5\x02\x02\u1C34\u1C36\x07\xD6\x02\x02\u1C35\u1C34\x03" + + "\x02\x02\x02\u1C35\u1C36\x03\x02\x02\x02\u1C36\u1C38\x03\x02\x02\x02\u1C37" + + "\u1C39\x05\u02E2\u0172\x02\u1C38\u1C37\x03\x02\x02\x02\u1C38\u1C39\x03" + + "\x02\x02\x02\u1C39\u1C3D\x03\x02\x02\x02\u1C3A\u1C3C\tz\x02\x02\u1C3B" + + "\u1C3A\x03\x02\x02\x02\u1C3C\u1C3F\x03\x02\x02\x02\u1C3D\u1C3B\x03\x02" + + "\x02\x02\u1C3D\u1C3E\x03\x02\x02\x02\u1C3E\u1C71\x03\x02\x02\x02\u1C3F" + + "\u1C3D\x03\x02\x02\x02\u1C40\u1C42\t{\x02\x02\u1C41\u1C43\x05\u02E4\u0173" + + "\x02\u1C42\u1C41\x03\x02\x02\x02\u1C42\u1C43\x03\x02\x02\x02\u1C43\u1C47" + + "\x03\x02\x02\x02\u1C44\u1C46\tz\x02\x02\u1C45\u1C44\x03\x02\x02\x02\u1C46" + + "\u1C49\x03\x02\x02\x02\u1C47\u1C45\x03\x02\x02\x02\u1C47\u1C48\x03\x02" + + "\x02\x02\u1C48\u1C71\x03\x02\x02\x02\u1C49\u1C47\x03\x02\x02\x02\u1C4A" + + "\u1C71\t|\x02\x02\u1C4B\u1C4D\t}\x02\x02\u1C4C\u1C4E\x05\u02E0\u0171\x02" + + "\u1C4D\u1C4C\x03\x02\x02\x02\u1C4D\u1C4E\x03\x02\x02\x02\u1C4E\u1C71\x03" + + "\x02\x02\x02\u1C4F\u1C50\t~\x02\x02\u1C50\u1C52\x05\u02DC\u016F\x02\u1C51" + + "\u1C53\x07\xE6\x02\x02\u1C52\u1C51\x03\x02\x02\x02\u1C52\u1C53\x03\x02" + + "\x02\x02\u1C53\u1C57\x03\x02\x02\x02\u1C54\u1C55\x058\x1D\x02\u1C55\u1C56" + + "\x05\u02B4\u015B\x02\u1C56\u1C58\x03\x02\x02\x02\u1C57\u1C54\x03\x02\x02" + + "\x02\u1C57\u1C58\x03\x02\x02\x02\u1C58\u1C71\x03\x02\x02\x02\u1C59\u1C5C" + + "\t\x7F\x02\x02\u1C5A\u1C5B\x07\u0344\x02\x02\u1C5B\u1C5D\x05\u02CC\u0167" + + "\x02\u1C5C\u1C5A\x03\x02\x02\x02\u1C5C\u1C5D\x03\x02\x02\x02\u1C5D\u1C71" + + "\x03\x02\x02\x02\u1C5E\u1C60\x07\xEB\x02\x02\u1C5F\u1C61\x07\xE3\x02\x02" + + "\u1C60\u1C5F\x03\x02\x02\x02\u1C60\u1C61\x03\x02\x02\x02\u1C61\u1C63\x03" + + "\x02\x02\x02\u1C62\u1C64\x07\xE6\x02\x02\u1C63\u1C62\x03\x02\x02\x02\u1C63" + + "\u1C64\x03\x02\x02\x02\u1C64\u1C68\x03\x02\x02\x02\u1C65\u1C66\x058\x1D" + + "\x02\u1C66\u1C67\x05\u02B4\u015B\x02\u1C67\u1C69\x03\x02\x02\x02\u1C68" + + "\u1C65\x03\x02\x02\x02\u1C68\u1C69\x03\x02\x02\x02\u1C69\u1C6C\x03\x02" + + "\x02\x02\u1C6A\u1C6B\x07\x1E\x02\x02\u1C6B\u1C6D\x05\u02B6\u015C\x02\u1C6C" + + "\u1C6A\x03\x02\x02\x02\u1C6C\u1C6D\x03\x02\x02\x02\u1C6D\u1C71\x03\x02" + + "\x02\x02\u1C6E\u1C6F\x07\xEB\x02\x02\u1C6F\u1C71\x07\xE7\x02\x02\u1C70" + + "\u1BF2\x03\x02\x02\x02\u1C70\u1C06\x03\x02\x02\x02\u1C70\u1C0F\x03\x02" + + "\x02\x02\u1C70\u1C17\x03\x02\x02\x02\u1C70\u1C1F\x03\x02\x02\x02\u1C70" + + "\u1C29\x03\x02\x02\x02\u1C70\u1C33\x03\x02\x02\x02\u1C70\u1C40\x03\x02" + + "\x02\x02\u1C70\u1C4A\x03\x02\x02\x02\u1C70\u1C4B\x03\x02\x02\x02\u1C70" + + "\u1C4F\x03\x02\x02\x02\u1C70\u1C59\x03\x02\x02\x02\u1C70\u1C5E\x03\x02" + + "\x02\x02\u1C70\u1C6E\x03\x02\x02\x02\u1C71\u02DB\x03\x02\x02\x02\u1C72" + + "\u1C73\x07\u0364\x02\x02\u1C73\u1C78\x07\u0374\x02\x02\u1C74\u1C75\x07" + + "\u0366\x02\x02\u1C75\u1C77\x07\u0374\x02\x02\u1C76\u1C74\x03\x02\x02\x02" + + "\u1C77\u1C7A\x03\x02\x02\x02\u1C78\u1C76\x03\x02\x02\x02\u1C78\u1C79\x03" + + "\x02\x02\x02\u1C79\u1C7B\x03\x02\x02\x02\u1C7A\u1C78\x03\x02\x02\x02\u1C7B" + + "\u1C7C\x07\u0365\x02\x02\u1C7C\u02DD\x03\x02\x02\x02\u1C7D\u1C7F\t\x80" + + "\x02\x02\u1C7E\u1C80\x05\u02E0\u0171\x02\u1C7F\u1C7E\x03\x02\x02\x02\u1C7F" + + "\u1C80\x03\x02\x02\x02\u1C80\u1C94\x03\x02\x02\x02\u1C81\u1C83\x07\xE2" + + "\x02\x02\u1C82\u1C84\x05\u02E0\u0171\x02\u1C83\u1C82\x03\x02\x02\x02\u1C83" + + "\u1C84\x03\x02\x02\x02\u1C84\u1C88\x03\x02\x02\x02\u1C85\u1C86\x058\x1D" + + "\x02\u1C86\u1C87\x05\u02B4\u015B\x02\u1C87\u1C89\x03\x02\x02\x02\u1C88" + + "\u1C85\x03\x02\x02\x02\u1C88\u1C89\x03\x02\x02\x02\u1C89\u1C94\x03\x02" + + "\x02\x02\u1C8A\u1C94\t\x81\x02\x02\u1C8B\u1C8D\t\x82\x02\x02\u1C8C\u1C8E" + + "\x05\u02E4\u0173\x02\u1C8D\u1C8C\x03\x02\x02\x02\u1C8D\u1C8E\x03\x02\x02" + + "\x02\u1C8E\u1C94\x03\x02\x02\x02\u1C8F\u1C91\t\x83\x02\x02\u1C90\u1C92" + + "\t\x84\x02\x02\u1C91\u1C90\x03\x02\x02\x02\u1C91\u1C92\x03\x02\x02\x02" + + "\u1C92\u1C94\x03\x02\x02\x02\u1C93\u1C7D\x03\x02\x02\x02\u1C93\u1C81\x03" + + "\x02\x02\x02\u1C93\u1C8A\x03\x02\x02\x02\u1C93\u1C8B\x03\x02\x02\x02\u1C93" + + "\u1C8F\x03\x02\x02\x02\u1C94\u1C96\x03\x02\x02\x02\u1C95\u1C97\x07\x0E" + + "\x02\x02\u1C96\u1C95\x03\x02\x02\x02\u1C96\u1C97\x03\x02\x02\x02\u1C97" + + "\u02DF\x03\x02\x02\x02\u1C98\u1C99\x07\u0364\x02\x02\u1C99\u1C9A\x05\u02CC" + + "\u0167\x02\u1C9A\u1C9B\x07\u0365\x02\x02\u1C9B\u02E1\x03\x02\x02\x02\u1C9C" + + "\u1C9D\x07\u0364\x02\x02\u1C9D\u1C9E\x05\u02CC\u0167\x02\u1C9E\u1C9F\x07" + + "\u0366\x02\x02\u1C9F\u1CA0\x05\u02CC\u0167\x02\u1CA0\u1CA1\x07\u0365\x02" + + "\x02\u1CA1\u02E3\x03\x02\x02\x02\u1CA2\u1CA3\x07\u0364\x02\x02\u1CA3\u1CA6" + + "\x05\u02CC\u0167\x02\u1CA4\u1CA5\x07\u0366\x02\x02\u1CA5\u1CA7\x05\u02CC" + + "\u0167\x02\u1CA6\u1CA4\x03\x02\x02\x02\u1CA6\u1CA7\x03\x02\x02\x02\u1CA7" + + "\u1CA8\x03\x02\x02\x02\u1CA8\u1CA9\x07\u0365\x02\x02\u1CA9\u02E5\x03\x02" + + "\x02\x02\u1CAA\u1CAB\x07\u0364\x02\x02\u1CAB\u1CB0\x05\u02A6\u0154\x02" + + "\u1CAC\u1CAD\x07\u0366\x02\x02\u1CAD\u1CAF\x05\u02A6\u0154\x02\u1CAE\u1CAC" + + "\x03\x02\x02\x02\u1CAF\u1CB2\x03\x02\x02\x02\u1CB0\u1CAE\x03\x02\x02\x02" + + "\u1CB0\u1CB1\x03\x02\x02\x02\u1CB1\u1CB3\x03\x02\x02\x02\u1CB2\u1CB0\x03" + + "\x02\x02\x02\u1CB3\u1CB4\x07\u0365\x02\x02\u1CB4\u02E7\x03\x02\x02\x02" + + "\u1CB5\u1CBA\x05\u0328\u0195\x02\u1CB6\u1CB7\x07\u0366\x02\x02\u1CB7\u1CB9" + + "\x05\u0328\u0195\x02\u1CB8\u1CB6\x03\x02\x02\x02\u1CB9\u1CBC\x03\x02\x02" + + "\x02\u1CBA\u1CB8\x03\x02\x02\x02\u1CBA\u1CBB\x03\x02\x02\x02\u1CBB\u02E9" + + "\x03\x02\x02\x02\u1CBC\u1CBA\x03\x02\x02\x02\u1CBD\u1CBE\t\x85\x02\x02" + + "\u1CBE\u1CC3\x05\u02EC\u0177\x02\u1CBF\u1CC0\x07\u0366\x02\x02\u1CC0\u1CC2" + + "\x05\u02EC\u0177\x02\u1CC1\u1CBF\x03\x02\x02\x02\u1CC2\u1CC5\x03\x02\x02" + + "\x02\u1CC3\u1CC1\x03\x02\x02\x02\u1CC3\u1CC4\x03\x02\x02\x02\u1CC4\u02EB" + + "\x03\x02\x02\x02\u1CC5\u1CC3\x03\x02\x02\x02\u1CC6\u1CC7\x07\u0364\x02" + + "\x02\u1CC7\u1CCC\x05\u02EE\u0178\x02\u1CC8\u1CC9\x07\u0366\x02\x02\u1CC9" + + "\u1CCB\x05\u02EE\u0178\x02\u1CCA\u1CC8\x03\x02\x02\x02\u1CCB\u1CCE\x03" + + "\x02\x02\x02\u1CCC\u1CCA\x03\x02\x02\x02\u1CCC\u1CCD\x03\x02\x02\x02\u1CCD" + + "\u1CCF\x03\x02\x02\x02\u1CCE\u1CCC\x03\x02\x02\x02\u1CCF\u1CD0\x07\u0365" + + "\x02\x02\u1CD0\u02ED\x03\x02\x02\x02\u1CD1\u1CD4\x05\u0328\u0195\x02\u1CD2" + + "\u1CD4\x07,\x02\x02\u1CD3\u1CD1\x03\x02\x02\x02\u1CD3\u1CD2\x03\x02\x02" + + "\x02\u1CD4\u02EF\x03\x02\x02\x02\u1CD5\u1CDA\x05\u02D8\u016D\x02\u1CD6" + + "\u1CD7\x07\u0366\x02\x02\u1CD7\u1CD9\x05\u02D8\u016D\x02\u1CD8\u1CD6\x03" + + "\x02\x02\x02\u1CD9\u1CDC\x03\x02\x02\x02\u1CDA\u1CD8\x03\x02\x02\x02\u1CDA" + + "\u1CDB\x03\x02\x02\x02\u1CDB\u02F1\x03\x02\x02\x02\u1CDC\u1CDA\x03\x02" + + "\x02\x02\u1CDD\u1CE2\x07\u0374\x02\x02\u1CDE\u1CDF\x07\u0366\x02\x02\u1CDF" + + "\u1CE1\x07\u0374\x02\x02\u1CE0\u1CDE\x03\x02\x02\x02\u1CE1\u1CE4\x03\x02" + + "\x02\x02\u1CE2\u1CE0\x03\x02\x02\x02\u1CE2\u1CE3\x03\x02\x02\x02\u1CE3" + + "\u02F3\x03\x02\x02\x02\u1CE4\u1CE2\x03\x02\x02\x02\u1CE5\u1CEA\x07\u037F" + + "\x02\x02\u1CE6\u1CE7\x07\u0366\x02\x02\u1CE7\u1CE9\x07\u037F\x02\x02\u1CE8" + + "\u1CE6\x03\x02\x02\x02\u1CE9\u1CEC\x03\x02\x02\x02\u1CEA\u1CE8\x03\x02" + + "\x02\x02\u1CEA\u1CEB\x03\x02\x02\x02\u1CEB\u02F5\x03\x02\x02\x02\u1CEC" + + "\u1CEA\x03\x02\x02\x02\u1CED\u1D08\x07v\x02\x02\u1CEE\u1CEF\x07\x1A\x02" + + "\x02\u1CEF\u1CF0\x07\u0364\x02\x02\u1CF0\u1CF1\x05\u0328\u0195\x02\u1CF1" + + "\u1CF2\x07\x0F\x02\x02\u1CF2\u1CF3\x05\u02DE\u0170\x02\u1CF3\u1CF4\x07" + + "\u0365\x02\x02\u1CF4\u1D08\x03\x02\x02\x02\u1CF5\u1CF7\x05\u032E\u0198" + + "\x02\u1CF6\u1CF5\x03\x02\x02\x02\u1CF6\u1CF7\x03\x02\x02\x02\u1CF7\u1CF8" + + "\x03\x02\x02\x02\u1CF8\u1D08\x05\u02D8\u016D\x02\u1CF9\u1CFD\x05\u02F8" + + "\u017D\x02\u1CFA\u1CFB\x07y\x02\x02\u1CFB\u1CFC\x07\xBB\x02\x02\u1CFC" + + "\u1CFE\x05\u02F8\u017D\x02\u1CFD\u1CFA\x03\x02\x02\x02\u1CFD\u1CFE\x03" + + "\x02\x02\x02\u1CFE\u1D08\x03\x02\x02\x02\u1CFF\u1D00\x07\u0364\x02\x02" + + "\u1D00\u1D01\x05\u0328\u0195\x02\u1D01\u1D02\x07\u0365\x02\x02\u1D02\u1D08" + + "\x03\x02\x02\x02\u1D03\u1D04\x07\u0364\x02\x02\u1D04\u1D05\x05\u02C2\u0162" + + "\x02\u1D05\u1D06\x07\u0365\x02\x02\u1D06\u1D08\x03\x02\x02\x02\u1D07\u1CED" + + "\x03\x02\x02\x02\u1D07\u1CEE\x03\x02\x02\x02\u1D07\u1CF6\x03\x02\x02\x02" + + "\u1D07\u1CF9\x03\x02\x02\x02\u1D07\u1CFF\x03\x02\x02\x02\u1D07\u1D03\x03" + + "\x02\x02\x02\u1D08\u02F7\x03\x02\x02\x02\u1D09\u1D0F\t\x86\x02\x02\u1D0A" + + "\u1D0C\x07\u0364\x02\x02\u1D0B\u1D0D\x05\u02CC\u0167\x02\u1D0C\u1D0B\x03" + + "\x02\x02\x02\u1D0C\u1D0D\x03\x02\x02\x02\u1D0D\u1D0E\x03\x02\x02\x02\u1D0E" + + "\u1D10\x07\u0365\x02\x02\u1D0F\u1D0A\x03\x02\x02\x02\u1D0F\u1D10\x03\x02" + + "\x02\x02\u1D10\u1D18\x03\x02\x02\x02\u1D11\u1D12\x07\u0129\x02\x02\u1D12" + + "\u1D14\x07\u0364\x02\x02\u1D13\u1D15\x05\u02CC\u0167\x02\u1D14\u1D13\x03" + + "\x02\x02\x02\u1D14\u1D15\x03\x02\x02\x02\u1D15\u1D16\x03\x02\x02\x02\u1D16" + + "\u1D18\x07\u0365\x02\x02\u1D17\u1D09\x03\x02\x02\x02\u1D17\u1D11\x03\x02" + + "\x02\x02\u1D18\u02F9\x03\x02\x02\x02\u1D19\u1D1A\x07P\x02\x02\u1D1A\u1D1B" + + "\x07>\x02\x02\u1D1B\u02FB\x03\x02\x02\x02\u1D1C\u1D1D\x07P\x02\x02\u1D1D" + + "\u1D1E\x07t\x02\x02\u1D1E\u1D1F\x07>\x02\x02\u1D1F\u02FD\x03\x02\x02\x02" + + "\u1D20\u1D21\x07~\x02\x02\u1D21\u1D22\x07\x91\x02\x02\u1D22\u02FF\x03" + + "\x02\x02\x02\u1D23\u1D36\x05\u0302\u0182\x02\u1D24\u1D36\x05\u030A\u0186" + + "\x02\u1D25\u1D36\x05\u030C\u0187\x02\u1D26\u1D27\x05\u0320\u0191\x02\u1D27" + + "\u1D29\x07\u0364\x02\x02\u1D28\u1D2A\x05\u0324\u0193\x02\u1D29\u1D28\x03" + + "\x02\x02\x02\u1D29\u1D2A\x03\x02\x02\x02\u1D2A\u1D2B\x03\x02\x02\x02\u1D2B" + + "\u1D2C\x07\u0365\x02\x02\u1D2C\u1D36\x03\x02\x02\x02\u1D2D\u1D2E\x05\u02C2" + + "\u0162\x02\u1D2E\u1D30\x07\u0364\x02\x02\u1D2F\u1D31\x05\u0324\u0193\x02" + + "\u1D30\u1D2F\x03\x02\x02\x02\u1D30\u1D31\x03\x02\x02\x02\u1D31\u1D32\x03" + + "\x02\x02\x02\u1D32\u1D33\x07\u0365\x02\x02\u1D33\u1D36\x03\x02\x02\x02" + + "\u1D34\u1D36\x05\u0322\u0192\x02\u1D35\u1D23\x03\x02\x02\x02\u1D35\u1D24" + + "\x03\x02\x02\x02\u1D35\u1D25\x03\x02\x02\x02\u1D35\u1D26\x03\x02\x02\x02" + + "\u1D35\u1D2D\x03\x02\x02\x02\u1D35\u1D34\x03\x02\x02\x02\u1D36\u0301\x03" + + "\x02\x02\x02\u1D37\u1D3A\t\x87\x02\x02\u1D38\u1D39\x07\u0364\x02\x02\u1D39" + + "\u1D3B\x07\u0365\x02\x02\u1D3A\u1D38\x03\x02\x02\x02\u1D3A\u1D3B\x03\x02" + + "\x02\x02\u1D3B\u1DEB\x03\x02\x02\x02\u1D3C\u1DEB\x05:\x1E\x02\u1D3D\u1D3E" + + "\x07#\x02\x02\u1D3E\u1D3F\x07\u0364\x02\x02\u1D3F\u1D40\x05\u0328\u0195" + + "\x02\u1D40\u1D41\x07\u0366\x02\x02\u1D41\u1D42\x05\u02DE\u0170\x02\u1D42" + + "\u1D43\x07\u0365\x02\x02\u1D43\u1DEB\x03\x02\x02\x02\u1D44\u1D45\x07#" + + "\x02\x02\u1D45\u1D46\x07\u0364\x02\x02\u1D46\u1D47\x05\u0328\u0195\x02" + + "\u1D47\u1D48\x07\xBE\x02\x02\u1D48\u1D49\x05\u02B4\u015B\x02\u1D49\u1D4A" + + "\x07\u0365\x02\x02\u1D4A\u1DEB\x03\x02\x02\x02\u1D4B\u1D4C\x07\x1A\x02" + + "\x02\u1D4C\u1D4D\x07\u0364\x02\x02\u1D4D\u1D4E\x05\u0328\u0195\x02\u1D4E" + + "\u1D4F\x07\x0F\x02\x02\u1D4F\u1D50\x05\u02DE\u0170\x02\u1D50\u1D51\x07" + + "\u0365\x02\x02\u1D51\u1DEB\x03\x02\x02\x02\u1D52\u1D53\x07\xBF\x02\x02" + + "\u1D53\u1D54\x07\u0364\x02\x02\u1D54\u1D55\x05\u029A\u014E\x02\u1D55\u1D56" + + "\x07\u0365\x02\x02\u1D56\u1DEB\x03\x02\x02\x02\u1D57\u1D58\x07\x19\x02" + + "\x02\u1D58\u1D5A\x05\u0328\u0195\x02\u1D59\u1D5B\x05\u0304\u0183\x02\u1D5A" + + "\u1D59\x03\x02\x02\x02\u1D5B\u1D5C\x03\x02\x02\x02\u1D5C\u1D5A\x03\x02" + + "\x02\x02\u1D5C\u1D5D\x03\x02\x02\x02\u1D5D\u1D60\x03\x02\x02\x02\u1D5E" + + "\u1D5F\x077\x02\x02\u1D5F\u1D61\x05\u0326\u0194\x02\u1D60\u1D5E\x03\x02" + + "\x02\x02\u1D60\u1D61\x03\x02\x02\x02\u1D61\u1D62\x03\x02\x02\x02\u1D62" + + "\u1D63\x07\u017C\x02\x02\u1D63\u1DEB\x03\x02\x02\x02\u1D64\u1D66\x07\x19" + + "\x02\x02\u1D65\u1D67\x05\u0304\u0183\x02\u1D66\u1D65\x03\x02\x02\x02\u1D67" + + "\u1D68\x03\x02\x02\x02\u1D68\u1D66\x03\x02\x02\x02\u1D68\u1D69\x03\x02" + + "\x02\x02\u1D69\u1D6C\x03\x02\x02\x02\u1D6A\u1D6B\x077\x02\x02\u1D6B\u1D6D" + + "\x05\u0326\u0194\x02\u1D6C\u1D6A\x03\x02\x02\x02\u1D6C\u1D6D\x03\x02\x02" + + "\x02\u1D6D\u1D6E\x03\x02\x02\x02\u1D6E\u1D6F\x07\u017C\x02\x02\u1D6F\u1DEB" + + "\x03\x02\x02\x02\u1D70\u1D71\x07\xE2\x02\x02\u1D71\u1D72\x07\u0364\x02" + + "\x02\u1D72\u1D75\x05\u0324\u0193\x02\u1D73\u1D74\x07\xBE\x02\x02\u1D74" + + "\u1D76\x05\u02B4\u015B\x02\u1D75\u1D73\x03\x02\x02\x02\u1D75\u1D76\x03" + + "\x02\x02\x02\u1D76\u1D77\x03\x02\x02\x02\u1D77\u1D78\x07\u0365\x02\x02" + + "\u1D78\u1DEB\x03\x02\x02\x02\u1D79\u1D7A\x07\u012A\x02\x02\u1D7A\u1D7D" + + "\x07\u0364\x02\x02\u1D7B\u1D7E\x05\u02D0\u0169\x02\u1D7C\u1D7E\x05\u0328" + + "\u0195\x02\u1D7D\u1D7B\x03\x02\x02\x02\u1D7D\u1D7C\x03\x02\x02\x02\u1D7E" + + "\u1D7F\x03\x02\x02\x02\u1D7F\u1D82\x07R\x02\x02\u1D80\u1D83\x05\u02D0" + + "\u0169\x02\u1D81\u1D83\x05\u0328\u0195\x02\u1D82\u1D80\x03\x02\x02\x02" + + "\u1D82\u1D81\x03\x02\x02\x02\u1D83\u1D84\x03\x02\x02\x02\u1D84\u1D85\x07" + + "\u0365\x02\x02\u1D85\u1DEB\x03\x02\x02\x02\u1D86\u1D87\t\x88\x02\x02\u1D87" + + "\u1D8A\x07\u0364\x02\x02\u1D88\u1D8B\x05\u02D0\u0169\x02\u1D89\u1D8B\x05" + + "\u0328\u0195\x02\u1D8A\u1D88\x03\x02\x02\x02\u1D8A\u1D89\x03\x02\x02\x02" + + "\u1D8B\u1D8C\x03\x02\x02\x02\u1D8C\u1D8F\x07F\x02\x02\u1D8D\u1D90\x05" + + "\u02CC\u0167\x02\u1D8E\u1D90\x05\u0328\u0195\x02\u1D8F\u1D8D\x03\x02\x02" + + "\x02\u1D8F\u1D8E\x03\x02\x02\x02\u1D90\u1D96\x03\x02\x02\x02\u1D91\u1D94" + + "\x07C\x02\x02\u1D92\u1D95\x05\u02CC\u0167\x02\u1D93\u1D95\x05\u0328\u0195" + + "\x02\u1D94\u1D92\x03\x02\x02\x02\u1D94\u1D93\x03\x02\x02\x02\u1D95\u1D97" + + "\x03\x02\x02\x02\u1D96\u1D91\x03\x02\x02\x02\u1D96\u1D97\x03\x02\x02\x02" + + "\u1D97\u1D98\x03\x02\x02\x02\u1D98\u1D99\x07\u0365\x02\x02\u1D99\u1DEB" + + "\x03\x02\x02\x02\u1D9A\u1D9B\x07\u012E\x02\x02\u1D9B\u1D9C\x07\u0364\x02" + + "\x02\u1D9C\u1D9F\t\x89\x02\x02\u1D9D\u1DA0\x05\u02D0\u0169\x02\u1D9E\u1DA0" + + "\x05\u0328\u0195\x02\u1D9F\u1D9D\x03\x02\x02\x02\u1D9F\u1D9E\x03\x02\x02" + + "\x02\u1D9F\u1DA0\x03\x02\x02\x02\u1DA0\u1DA1\x03\x02\x02\x02\u1DA1\u1DA4" + + "\x07F\x02\x02\u1DA2\u1DA5\x05\u02D0\u0169\x02\u1DA3\u1DA5\x05\u0328\u0195" + + "\x02\u1DA4\u1DA2\x03\x02\x02\x02\u1DA4\u1DA3\x03\x02\x02\x02\u1DA5\u1DA6" + + "\x03\x02\x02\x02\u1DA6\u1DA7\x07\u0365\x02\x02\u1DA7\u1DEB\x03\x02\x02" + + "\x02\u1DA8\u1DA9\x07\u012E\x02\x02\u1DA9\u1DAC\x07\u0364\x02\x02\u1DAA" + + "\u1DAD\x05\u02D0\u0169\x02\u1DAB\u1DAD\x05\u0328\u0195\x02\u1DAC\u1DAA" + + "\x03\x02\x02\x02\u1DAC\u1DAB\x03\x02\x02\x02\u1DAD\u1DAE\x03\x02\x02\x02" + + "\u1DAE\u1DB1\x07F\x02\x02\u1DAF\u1DB2\x05\u02D0\u0169\x02\u1DB0\u1DB2" + + "\x05\u0328\u0195\x02\u1DB1\u1DAF\x03\x02\x02\x02\u1DB1\u1DB0\x03\x02\x02" + + "\x02\u1DB2\u1DB3\x03\x02\x02\x02\u1DB3\u1DB4\x07\u0365\x02\x02\u1DB4\u1DEB" + + "\x03\x02\x02\x02\u1DB5\u1DB6\x07\u034A\x02\x02\u1DB6\u1DB9\x07\u0364\x02" + + "\x02\u1DB7\u1DBA\x05\u02D0\u0169\x02\u1DB8\u1DBA\x05\u0328\u0195\x02\u1DB9" + + "\u1DB7\x03\x02\x02\x02\u1DB9\u1DB8\x03\x02\x02\x02\u1DBA\u1DC1\x03\x02" + + "\x02\x02\u1DBB\u1DBC\x07\x0F\x02\x02\u1DBC\u1DBD\t\x8A\x02\x02\u1DBD\u1DBE" + + "\x07\u0364\x02\x02\u1DBE\u1DBF\x05\u02CC\u0167\x02\u1DBF\u1DC0\x07\u0365" + + "\x02\x02\u1DC0\u1DC2\x03\x02\x02\x02\u1DC1\u1DBB\x03\x02\x02\x02\u1DC1" + + "\u1DC2\x03\x02\x02\x02\u1DC2\u1DC4\x03\x02\x02\x02\u1DC3\u1DC5\x05\u0306" + + "\u0184\x02\u1DC4\u1DC3\x03\x02\x02\x02\u1DC4\u1DC5\x03\x02\x02\x02\u1DC5" + + "\u1DC6\x03\x02\x02\x02\u1DC6\u1DC7\x07\u0365\x02\x02\u1DC7\u1DEB\x03\x02" + + "\x02\x02\u1DC8\u1DC9\x07\u0127\x02\x02\u1DC9\u1DCA\x07\u0364\x02\x02\u1DCA" + + "\u1DCB\x05D#\x02\u1DCB\u1DCE\x07F\x02\x02\u1DCC\u1DCF\x05\u02D0\u0169" + + "\x02\u1DCD\u1DCF\x05\u0328\u0195\x02\u1DCE\u1DCC\x03\x02\x02\x02\u1DCE" + + "\u1DCD\x03\x02\x02\x02\u1DCF\u1DD0\x03\x02\x02\x02\u1DD0\u1DD1\x07\u0365" + + "\x02\x02\u1DD1\u1DEB\x03\x02\x02\x02\u1DD2\u1DD3\x07\u033D\x02\x02\u1DD3" + + "\u1DD4\x07\u0364\x02\x02\u1DD4\u1DD5\t\x8B\x02\x02\u1DD5\u1DD6\x07\u0366" + + "\x02\x02\u1DD6\u1DD7\x05\u02D0\u0169\x02\u1DD7\u1DD8\x07\u0365\x02\x02" + + "\u1DD8\u1DEB\x03\x02\x02\x02\u1DD9\u1DDA\x07\u0100\x02\x02\u1DDA\u1DDB" + + "\x07\u0364\x02\x02\u1DDB\u1DDC\x05\u0328\u0195\x02\u1DDC\u1DDD\x07\u0366" + + "\x02\x02\u1DDD\u1DE0\x05\u0328\u0195\x02\u1DDE\u1DDF\x07\u0245\x02\x02" + + "\u1DDF\u1DE1\x05\u02DE\u0170\x02\u1DE0\u1DDE\x03\x02\x02\x02\u1DE0\u1DE1" + + "\x03\x02\x02\x02\u1DE1\u1DE3\x03\x02\x02\x02\u1DE2\u1DE4\x05\u0126\x94" + + "\x02\u1DE3\u1DE2\x03\x02\x02\x02\u1DE3\u1DE4\x03\x02\x02\x02\u1DE4\u1DE6" + + "\x03\x02\x02\x02\u1DE5\u1DE7\x05\u0128\x95\x02\u1DE6\u1DE5\x03\x02\x02" + + "\x02\u1DE6\u1DE7\x03\x02\x02\x02\u1DE7\u1DE8\x03\x02\x02\x02\u1DE8\u1DE9" + + "\x07\u0365\x02\x02\u1DE9\u1DEB\x03\x02\x02\x02\u1DEA\u1D37\x03\x02\x02" + + "\x02\u1DEA\u1D3C\x03\x02\x02\x02\u1DEA\u1D3D\x03\x02\x02\x02\u1DEA\u1D44" + + "\x03\x02\x02\x02\u1DEA\u1D4B\x03\x02\x02\x02\u1DEA\u1D52\x03\x02\x02\x02" + + "\u1DEA\u1D57\x03\x02\x02\x02\u1DEA\u1D64\x03\x02\x02\x02\u1DEA\u1D70\x03" + + "\x02\x02\x02\u1DEA\u1D79\x03\x02\x02\x02\u1DEA\u1D86\x03\x02\x02\x02\u1DEA" + + "\u1D9A\x03\x02\x02\x02\u1DEA\u1DA8\x03\x02\x02\x02\u1DEA\u1DB5\x03\x02" + + "\x02\x02\u1DEA\u1DC8\x03\x02\x02\x02\u1DEA\u1DD2\x03\x02\x02\x02\u1DEA" + + "\u1DD9\x03\x02\x02\x02\u1DEB\u0303\x03\x02\x02\x02\u1DEC\u1DED\x07\xC1" + + "\x02\x02\u1DED\u1DEE\x05\u0326\u0194\x02\u1DEE\u1DEF\x07\xB1\x02\x02\u1DEF" + + "\u1DF0\x05\u0326\u0194\x02\u1DF0\u0305\x03\x02\x02\x02\u1DF1\u1DF2\x07" + + "\u01C2\x02\x02\u1DF2\u1DF7\x05\u0308\u0185\x02\u1DF3\u1DF4\x07\u0366\x02" + + "\x02\u1DF4\u1DF6\x05\u0308\u0185\x02\u1DF5\u1DF3\x03\x02\x02\x02\u1DF6" + + "\u1DF9\x03\x02\x02\x02\u1DF7\u1DF5\x03\x02\x02\x02\u1DF7\u1DF8\x03\x02" + + "\x02\x02\u1DF8\u1E00\x03\x02\x02\x02\u1DF9\u1DF7\x03\x02\x02\x02\u1DFA" + + "\u1DFB\x07\u01C2\x02\x02\u1DFB\u1DFC\x05\u02CC\u0167\x02\u1DFC\u1DFD\x07" + + "\u0358\x02\x02\u1DFD\u1DFE\x05\u02CC\u0167\x02\u1DFE\u1E00\x03\x02\x02" + + "\x02\u1DFF\u1DF1\x03\x02\x02\x02\u1DFF\u1DFA\x03\x02\x02\x02\u1E00\u0307" + + "\x03\x02\x02\x02\u1E01\u1E03\x05\u02CC\u0167\x02\u1E02\u1E04\t\x8C\x02" + + "\x02\u1E03\u1E02\x03\x02\x02\x02\u1E03\u1E04\x03\x02\x02\x02\u1E04\u0309" + + "\x03\x02\x02\x02\u1E05\u1E06\t\x8D\x02\x02\u1E06\u1E08\x07\u0364\x02\x02" + + "\u1E07\u1E09\t.\x02\x02\u1E08\u1E07\x03\x02\x02\x02\u1E08\u1E09\x03\x02" + + "\x02\x02\u1E09\u1E0A\x03\x02\x02\x02\u1E0A\u1E0B\x05\u0326\u0194\x02\u1E0B" + + "\u1E0D\x07\u0365\x02\x02\u1E0C\u1E0E\x05\u030E\u0188\x02\u1E0D\u1E0C\x03" + + "\x02\x02\x02\u1E0D\u1E0E\x03\x02\x02\x02\u1E0E\u1E41\x03\x02\x02\x02\u1E0F" + + "\u1E10\x07\u0108\x02\x02\u1E10\u1E18\x07\u0364\x02\x02\u1E11\u1E19\x07" + + "\u0354\x02\x02\u1E12\u1E14\x07\t\x02\x02\u1E13\u1E12\x03\x02\x02\x02\u1E13" + + "\u1E14\x03\x02\x02\x02\u1E14\u1E15\x03\x02\x02\x02\u1E15\u1E19\x05\u0326" + + "\u0194\x02\u1E16\u1E17\x073\x02\x02\u1E17\u1E19\x05\u0324\u0193\x02\u1E18" + + "\u1E11\x03\x02\x02\x02\u1E18\u1E13\x03\x02\x02\x02\u1E18\u1E16\x03\x02" + + "\x02\x02\u1E19\u1E1A\x03\x02\x02\x02\u1E1A\u1E1C\x07\u0365\x02\x02\u1E1B" + + "\u1E1D\x05\u030E\u0188\x02\u1E1C\u1E1B\x03\x02\x02\x02\u1E1C\u1E1D\x03" + + "\x02\x02\x02\u1E1D\u1E41\x03\x02\x02\x02\u1E1E\u1E1F\t\x8E\x02\x02\u1E1F" + + "\u1E21\x07\u0364\x02\x02\u1E20\u1E22\x07\t\x02\x02\u1E21\u1E20\x03\x02" + + "\x02\x02\u1E21\u1E22\x03\x02\x02\x02\u1E22\u1E23\x03\x02\x02\x02\u1E23" + + "\u1E24\x05\u0326\u0194\x02\u1E24\u1E26\x07\u0365\x02\x02\u1E25\u1E27\x05" + + "\u030E\u0188\x02\u1E26\u1E25\x03\x02\x02\x02\u1E26\u1E27\x03\x02\x02\x02" + + "\u1E27\u1E41\x03\x02\x02\x02\u1E28\u1E29\x07\u010C\x02\x02\u1E29\u1E2B" + + "\x07\u0364\x02\x02\u1E2A\u1E2C\x073\x02\x02\u1E2B\u1E2A\x03\x02\x02\x02" + + "\u1E2B\u1E2C\x03\x02\x02\x02\u1E2C\u1E2D\x03\x02\x02\x02\u1E2D\u1E38\x05" + + "\u0324\u0193\x02\u1E2E\u1E2F\x07\x7F\x02\x02\u1E2F\u1E30\x07\x16\x02\x02" + + "\u1E30\u1E35\x05\u0100\x81\x02\u1E31\u1E32\x07\u0366\x02\x02\u1E32\u1E34" + + "\x05\u0100\x81\x02\u1E33\u1E31\x03\x02\x02\x02\u1E34\u1E37\x03\x02\x02" + + "\x02\u1E35\u1E33\x03\x02\x02\x02\u1E35\u1E36\x03\x02\x02\x02\u1E36\u1E39" + + "\x03\x02\x02\x02\u1E37\u1E35\x03\x02\x02\x02\u1E38\u1E2E\x03\x02\x02\x02" + + "\u1E38\u1E39\x03\x02\x02\x02\u1E39\u1E3C\x03\x02\x02\x02\u1E3A\u1E3B\x07" + + "\x9E\x02\x02\u1E3B\u1E3D\x07\u0374\x02\x02\u1E3C\u1E3A\x03\x02\x02\x02" + + "\u1E3C\u1E3D\x03\x02\x02\x02\u1E3D\u1E3E\x03\x02\x02\x02\u1E3E\u1E3F\x07" + + "\u0365\x02\x02\u1E3F\u1E41\x03\x02\x02\x02\u1E40\u1E05\x03\x02\x02\x02" + + "\u1E40\u1E0F\x03\x02\x02\x02\u1E40\u1E1E\x03\x02\x02\x02\u1E40\u1E28\x03" + + "\x02\x02\x02\u1E41\u030B\x03\x02\x02\x02\u1E42\u1E43\t\x8F\x02\x02\u1E43" + + "\u1E44\x07\u0364\x02\x02\u1E44\u1E47\x05\u0328\u0195\x02\u1E45\u1E46\x07" + + "\u0366\x02\x02\u1E46\u1E48\x05\u02CC\u0167\x02\u1E47\u1E45\x03\x02\x02" + + "\x02\u1E47\u1E48\x03\x02\x02\x02\u1E48\u1E4B\x03\x02\x02\x02\u1E49\u1E4A" + + "\x07\u0366\x02\x02\u1E4A\u1E4C\x05\u02CC\u0167\x02\u1E4B\u1E49\x03\x02" + + "\x02\x02\u1E4B\u1E4C\x03\x02\x02\x02\u1E4C\u1E4D\x03\x02\x02\x02\u1E4D" + + "\u1E4E\x07\u0365\x02\x02\u1E4E\u1E4F\x05\u030E\u0188\x02\u1E4F\u1E69\x03" + + "\x02\x02\x02\u1E50\u1E51\t\x90\x02\x02\u1E51\u1E52\x07\u0364\x02\x02\u1E52" + + "\u1E53\x05\u0328\u0195\x02\u1E53\u1E54\x07\u0365\x02\x02\u1E54\u1E55\x05" + + "\u030E\u0188\x02\u1E55\u1E69\x03\x02\x02\x02\u1E56\u1E57\t\x91\x02\x02" + + "\u1E57\u1E58\x07\u0364\x02\x02\u1E58\u1E59\x07\u0365\x02\x02\u1E59\u1E69" + + "\x05\u030E\u0188\x02\u1E5A\u1E5B\x07\u0113\x02\x02\u1E5B\u1E5C\x07\u0364" + + "\x02\x02\u1E5C\u1E5D\x05\u0328\u0195\x02\u1E5D\u1E5E\x07\u0366\x02\x02" + + "\u1E5E\u1E5F\x05\u02CC\u0167\x02\u1E5F\u1E60\x07\u0365\x02\x02\u1E60\u1E61" + + "\x05\u030E\u0188\x02\u1E61\u1E69\x03\x02\x02\x02\u1E62\u1E63\x07\u0112" + + "\x02\x02\u1E63\u1E64\x07\u0364\x02\x02\u1E64\u1E65\x05\u02CC\u0167\x02" + + "\u1E65\u1E66\x07\u0365\x02\x02\u1E66\u1E67\x05\u030E\u0188\x02\u1E67\u1E69" + + "\x03\x02\x02\x02\u1E68\u1E42\x03\x02\x02\x02\u1E68\u1E50\x03\x02\x02\x02" + + "\u1E68\u1E56\x03\x02\x02\x02\u1E68\u1E5A\x03\x02\x02\x02\u1E68\u1E62\x03" + + "\x02\x02\x02\u1E69\u030D\x03\x02\x02\x02\u1E6A\u1E70\x07\x83\x02\x02\u1E6B" + + "\u1E6C\x07\u0364\x02\x02\u1E6C\u1E6D\x05\u0310\u0189\x02\u1E6D\u1E6E\x07" + + "\u0365\x02\x02\u1E6E\u1E71\x03\x02\x02\x02\u1E6F\u1E71\x05\u0312\u018A" + + "\x02\u1E70\u1E6B\x03\x02\x02\x02\u1E70\u1E6F\x03\x02\x02\x02\u1E71\u030F" + + "\x03\x02\x02\x02\u1E72\u1E74\x05\u0312\u018A\x02\u1E73\u1E72\x03\x02\x02" + + "\x02\u1E73\u1E74\x03\x02\x02\x02\u1E74\u1E76\x03\x02\x02\x02\u1E75\u1E77" + + "\x05\u031E\u0190\x02\u1E76\u1E75\x03\x02\x02\x02\u1E76\u1E77\x03\x02\x02" + + "\x02\u1E77\u1E79\x03\x02\x02\x02\u1E78\u1E7A\x05\xFE\x80\x02\u1E79\u1E78" + + "\x03\x02\x02\x02\u1E79\u1E7A\x03\x02\x02\x02\u1E7A\u1E7C\x03\x02\x02\x02" + + "\u1E7B\u1E7D\x05\u0314\u018B\x02\u1E7C\u1E7B\x03\x02\x02\x02\u1E7C\u1E7D" + + "\x03\x02\x02\x02\u1E7D\u0311\x03\x02\x02\x02\u1E7E\u1E7F\x05\u02C6\u0164" + + "\x02\u1E7F\u0313\x03\x02\x02\x02\u1E80\u1E81\x05\u0316\u018C\x02\u1E81" + + "\u1E82\x05\u0318\u018D\x02\u1E82\u0315\x03\x02\x02\x02\u1E83\u1E84\t\x92" + + "\x02\x02\u1E84\u0317\x03\x02\x02\x02\u1E85\u1E88\x05\u031C\u018F\x02\u1E86" + + "\u1E88\x05\u031A\u018E\x02\u1E87\u1E85\x03\x02\x02\x02\u1E87\u1E86\x03" + + "\x02\x02\x02\u1E88\u0319\x03\x02\x02\x02\u1E89\u1E8A\x07\x13\x02\x02\u1E8A" + + "\u1E8B\x05\u031C\u018F\x02\u1E8B\u1E8C\x07\r\x02\x02\u1E8C\u1E8D\x05\u031C" + + "\u018F\x02\u1E8D\u031B\x03\x02\x02\x02\u1E8E\u1E8F\x07&\x02\x02\u1E8F" + + "\u1E96\x07\u024C\x02\x02\u1E90\u1E91\x07\u029F\x02\x02\u1E91\u1E96\t\x93" + + "\x02\x02\u1E92\u1E93\x05\u0328\u0195\x02\u1E93\u1E94\t\x93\x02\x02\u1E94" + + "\u1E96\x03\x02\x02\x02\u1E95\u1E8E\x03\x02\x02\x02\u1E95\u1E90\x03\x02" + + "\x02\x02\u1E95\u1E92\x03\x02\x02\x02\u1E96\u031D\x03\x02\x02\x02\u1E97" + + "\u1E98\x07\x84\x02\x02\u1E98\u1E99\x07\x16\x02\x02\u1E99\u1E9E\x05\u0328" + + "\u0195\x02\u1E9A\u1E9B\x07\u0366\x02\x02\u1E9B\u1E9D\x05\u0328\u0195\x02" + + "\u1E9C\u1E9A\x03\x02\x02\x02\u1E9D\u1EA0\x03\x02\x02\x02\u1E9E\u1E9C\x03" + + "\x02\x02\x02\u1E9E\u1E9F\x03\x02\x02\x02\u1E9F\u031F\x03\x02\x02\x02\u1EA0" + + "\u1E9E\x03\x02\x02\x02\u1EA1\u1EBA\x05\u0348\u01A5\x02\u1EA2\u1EBA\x07" + + "\u02F7\x02\x02\u1EA3\u1EBA\x07\u0123\x02\x02\u1EA4\u1EBA\x07\u011F\x02" + + "\x02\u1EA5\u1EBA\x07\u0120\x02\x02\u1EA6\u1EBA\x07\u0121\x02\x02\u1EA7" + + "\u1EBA\x07\u0124\x02\x02\u1EA8\u1EBA\x07\u0125\x02\x02\u1EA9\u1EBA\x07" + + "\u0126\x02\x02\u1EAA\u1EBA\x07P\x02\x02\u1EAB\u1EBA\x07X\x02\x02\u1EAC" + + "\u1EBA\x07\u0122\x02\x02\u1EAD\u1EBA\x07\u0128\x02\x02\u1EAE\u1EBA\x07" + + "\u01EA\x02\x02\u1EAF\u1EBA\x07\u0129\x02\x02\u1EB0\u1EBA\x07\x90\x02\x02" + + "\u1EB1\u1EBA\x07\x91\x02\x02\u1EB2\u1EBA\x07\u012B\x02\x02\u1EB3\u1EBA" + + "\x07\u012C\x02\x02\u1EB4\u1EBA\x07\u012D\x02\x02\u1EB5\u1EBA\x07\u012E" + + "\x02\x02\u1EB6\u1EBA\x07\u012F\x02\x02\u1EB7\u1EBA\x07\u0130\x02\x02\u1EB8" + + "\u1EBA\x07\u0131\x02\x02\u1EB9\u1EA1\x03\x02\x02\x02\u1EB9\u1EA2\x03\x02" + + "\x02\x02\u1EB9\u1EA3\x03\x02\x02\x02\u1EB9\u1EA4\x03\x02\x02\x02\u1EB9" + + "\u1EA5\x03\x02\x02\x02\u1EB9\u1EA6\x03\x02\x02\x02\u1EB9\u1EA7\x03\x02" + + "\x02\x02\u1EB9\u1EA8\x03\x02\x02\x02\u1EB9\u1EA9\x03\x02\x02\x02\u1EB9" + + "\u1EAA\x03\x02\x02\x02\u1EB9\u1EAB\x03\x02\x02\x02\u1EB9\u1EAC\x03\x02" + + "\x02\x02\u1EB9\u1EAD\x03\x02\x02\x02\u1EB9\u1EAE\x03\x02\x02\x02\u1EB9" + + "\u1EAF\x03\x02\x02\x02\u1EB9\u1EB0\x03\x02\x02\x02\u1EB9\u1EB1\x03\x02" + + "\x02\x02\u1EB9\u1EB2\x03\x02\x02\x02\u1EB9\u1EB3\x03\x02\x02\x02\u1EB9" + + "\u1EB4\x03\x02\x02\x02\u1EB9\u1EB5\x03\x02\x02\x02\u1EB9\u1EB6\x03\x02" + + "\x02\x02\u1EB9\u1EB7\x03\x02\x02\x02\u1EB9\u1EB8\x03\x02\x02\x02\u1EBA" + + "\u0321\x03\x02\x02\x02\u1EBB\u1EBC\t\x94\x02\x02\u1EBC\u1EBD\x07\u0364" + + "\x02\x02\u1EBD\u1EBE\x05\u0326\u0194\x02\u1EBE\u1EBF\x07\u0365\x02\x02" + + "\u1EBF\u0323\x03\x02\x02\x02\u1EC0\u1EC5\x05\u0326\u0194\x02\u1EC1\u1EC2" + + "\x07\u0366\x02\x02\u1EC2\u1EC4\x05\u0326\u0194\x02\u1EC3\u1EC1\x03\x02" + + "\x02\x02\u1EC4\u1EC7\x03\x02\x02"; + private static readonly _serializedATNSegment15: string = + "\x02\u1EC5\u1EC3\x03\x02\x02\x02\u1EC5\u1EC6\x03\x02\x02\x02\u1EC6\u0325" + + "\x03\x02\x02\x02\u1EC7\u1EC5\x03\x02\x02\x02\u1EC8\u1ECD\x05\u02D8\u016D" + + "\x02\u1EC9\u1ECD\x05\u029A\u014E\x02\u1ECA\u1ECD\x05\u0300\u0181\x02\u1ECB" + + "\u1ECD\x05\u0328\u0195\x02\u1ECC\u1EC8\x03\x02\x02\x02\u1ECC\u1EC9\x03" + + "\x02\x02\x02\u1ECC\u1ECA\x03\x02\x02\x02\u1ECC\u1ECB\x03\x02\x02\x02\u1ECD" + + "\u0327\x03\x02\x02\x02\u1ECE\u1ECF\b\u0195\x01\x02\u1ECF\u1ED0\t\x95\x02" + + "\x02\u1ED0\u1EDA\x05\u0328\u0195\x06\u1ED1\u1ED2\x05\u032A\u0196\x02\u1ED2" + + "\u1ED4\x07[\x02\x02\u1ED3\u1ED5\x07t\x02\x02\u1ED4\u1ED3\x03\x02\x02\x02" + + "\u1ED4\u1ED5\x03\x02\x02\x02\u1ED5\u1ED6\x03\x02\x02\x02\u1ED6\u1ED7\t" + + "\x96\x02\x02\u1ED7\u1EDA\x03\x02\x02\x02\u1ED8\u1EDA\x05\u032A\u0196\x02" + + "\u1ED9\u1ECE\x03\x02\x02\x02\u1ED9\u1ED1\x03\x02\x02\x02\u1ED9\u1ED8\x03" + + "\x02\x02\x02\u1EDA\u1EE1\x03\x02\x02\x02\u1EDB\u1EDC\f\x05\x02\x02\u1EDC" + + "\u1EDD\x05\u0334\u019B\x02\u1EDD\u1EDE\x05\u0328\u0195\x06\u1EDE\u1EE0" + + "\x03\x02\x02\x02\u1EDF\u1EDB\x03\x02\x02\x02\u1EE0\u1EE3\x03\x02\x02\x02" + + "\u1EE1\u1EDF\x03\x02\x02\x02\u1EE1\u1EE2\x03\x02\x02\x02\u1EE2\u0329\x03" + + "\x02\x02\x02\u1EE3\u1EE1\x03\x02\x02\x02\u1EE4\u1EE5\b\u0196\x01\x02\u1EE5" + + "\u1EE6\x05\u032C\u0197\x02\u1EE6\u1F27\x03\x02\x02\x02\u1EE7\u1EE8\f\n" + + "\x02\x02\u1EE8\u1EE9\x05\u0330\u0199\x02\u1EE9\u1EEA\x05\u032A\u0196\v" + + "\u1EEA\u1F26\x03\x02\x02\x02\u1EEB\u1EED\f\b\x02\x02\u1EEC\u1EEE\x07t" + + "\x02\x02\u1EED\u1EEC\x03\x02\x02\x02\u1EED\u1EEE\x03\x02\x02\x02\u1EEE" + + "\u1EEF\x03\x02\x02\x02\u1EEF\u1EF0\x07\x13\x02\x02\u1EF0\u1EF1\x05\u032A" + + "\u0196\x02\u1EF1\u1EF2\x07\r\x02\x02\u1EF2\u1EF3\x05\u032A\u0196\t\u1EF3" + + "\u1F26\x03\x02\x02\x02\u1EF4\u1EF5\f\x07\x02\x02\u1EF5\u1EF6\x07\u025E" + + "\x02\x02\u1EF6\u1EF7\x07e\x02\x02\u1EF7\u1F26\x05\u032A\u0196\b\u1EF8" + + "\u1EFA\f\x05\x02\x02\u1EF9\u1EFB\x07t\x02\x02\u1EFA\u1EF9\x03\x02\x02" + + "\x02\u1EFA\u1EFB\x03\x02\x02\x02\u1EFB\u1EFC\x03\x02\x02\x02\u1EFC\u1EFD" + + "\t\x97\x02\x02\u1EFD\u1F26\x05\u032A\u0196\x06\u1EFE\u1F00\f\f\x02\x02" + + "\u1EFF\u1F01\x07t\x02\x02\u1F00\u1EFF\x03\x02\x02\x02\u1F00\u1F01\x03" + + "\x02\x02\x02\u1F01\u1F02\x03\x02\x02\x02\u1F02\u1F03\x07R\x02\x02\u1F03" + + "\u1F06\x07\u0364\x02\x02\u1F04\u1F07\x05\xCEh\x02\u1F05\u1F07\x05\u02E8" + + "\u0175\x02\u1F06\u1F04\x03\x02\x02\x02\u1F06\u1F05\x03\x02\x02\x02\u1F07" + + "\u1F08\x03\x02\x02\x02\u1F08\u1F09\x07\u0365\x02\x02\u1F09\u1F26\x03\x02" + + "\x02\x02\u1F0A\u1F0B\f\v\x02\x02\u1F0B\u1F0C\x07[\x02\x02\u1F0C\u1F26" + + "\x05\u02D6\u016C\x02\u1F0D\u1F0E\f\t\x02\x02\u1F0E\u1F0F\x05\u0330\u0199" + + "\x02\u1F0F\u1F10\t\x98\x02\x02\u1F10\u1F11\x07\u0364\x02\x02\u1F11\u1F12" + + "\x05\xCEh\x02\u1F12\u1F13\x07\u0365\x02\x02\u1F13\u1F26\x03\x02\x02\x02" + + "\u1F14\u1F16\f\x06\x02\x02\u1F15\u1F17\x07t\x02\x02\u1F16\u1F15\x03\x02" + + "\x02\x02\u1F16\u1F17\x03\x02\x02\x02\u1F17\u1F18\x03\x02\x02\x02\u1F18" + + "\u1F19\x07e\x02\x02\u1F19\u1F1C\x05\u032A\u0196\x02\u1F1A\u1F1B\x07\u0182" + + "\x02\x02\u1F1B\u1F1D\x07\u0374\x02\x02\u1F1C\u1F1A\x03\x02\x02\x02\u1F1C" + + "\u1F1D\x03\x02\x02\x02\u1F1D\u1F26\x03\x02\x02\x02\u1F1E\u1F1F\f\x04\x02" + + "\x02\u1F1F\u1F20\x07\u01E7\x02\x02\u1F20\u1F21\x07\u0200\x02\x02\u1F21" + + "\u1F22\x07\u0364\x02\x02\u1F22\u1F23\x05\u032A\u0196\x02\u1F23\u1F24\x07" + + "\u0365\x02\x02\u1F24\u1F26\x03\x02\x02\x02\u1F25\u1EE7\x03\x02\x02\x02" + + "\u1F25\u1EEB\x03\x02\x02\x02\u1F25\u1EF4\x03\x02\x02\x02\u1F25\u1EF8\x03" + + "\x02\x02\x02\u1F25\u1EFE\x03\x02\x02\x02\u1F25\u1F0A\x03\x02\x02\x02\u1F25" + + "\u1F0D\x03\x02\x02\x02\u1F25\u1F14\x03\x02\x02\x02\u1F25\u1F1E\x03\x02" + + "\x02\x02\u1F26\u1F29\x03\x02\x02\x02\u1F27\u1F25\x03\x02\x02\x02\u1F27" + + "\u1F28\x03\x02\x02\x02\u1F28\u032B\x03\x02\x02\x02\u1F29\u1F27\x03\x02" + + "\x02\x02\u1F2A\u1F2B\b\u0197\x01\x02\u1F2B\u1F5B\x05\u02D8\u016D\x02\u1F2C" + + "\u1F5B\x05\u029A\u014E\x02\u1F2D\u1F5B\x05\u0300\u0181\x02\u1F2E\u1F5B" + + "\x05\u02B2\u015A\x02\u1F2F\u1F30\x05\u032E\u0198\x02\u1F30\u1F31\x05\u032C" + + "\u0197\r\u1F31\u1F5B\x03\x02\x02\x02\u1F32\u1F33\x07\xE6\x02\x02\u1F33" + + "\u1F5B\x05\u032C\u0197\f\u1F34\u1F35\x07\u037F\x02\x02\u1F35\u1F36\x07" + + "\u034B\x02\x02\u1F36\u1F5B\x05\u032C\u0197\v\u1F37\u1F38\x07\u0364\x02" + + "\x02\u1F38\u1F3D\x05\u0328\u0195\x02\u1F39\u1F3A\x07\u0366\x02\x02\u1F3A" + + "\u1F3C\x05\u0328\u0195\x02\u1F3B\u1F39\x03\x02\x02\x02\u1F3C\u1F3F\x03" + + "\x02\x02\x02\u1F3D\u1F3B\x03\x02\x02\x02\u1F3D\u1F3E\x03\x02\x02\x02\u1F3E" + + "\u1F40\x03\x02\x02\x02\u1F3F\u1F3D\x03\x02\x02\x02\u1F40\u1F41\x07\u0365" + + "\x02\x02\u1F41\u1F5B\x03\x02\x02\x02\u1F42\u1F43\x07\u024C\x02\x02\u1F43" + + "\u1F44\x07\u0364\x02\x02\u1F44\u1F47\x05\u0328\u0195\x02\u1F45\u1F46\x07" + + "\u0366\x02\x02\u1F46\u1F48\x05\u0328\u0195\x02\u1F47\u1F45\x03\x02\x02" + + "\x02\u1F48\u1F49\x03\x02\x02\x02\u1F49\u1F47\x03\x02\x02\x02\u1F49\u1F4A" + + "\x03\x02\x02\x02\u1F4A\u1F4B\x03\x02\x02\x02\u1F4B\u1F4C\x07\u0365\x02" + + "\x02\u1F4C\u1F5B\x03\x02\x02\x02\u1F4D\u1F4E\x07>\x02\x02\u1F4E\u1F4F" + + "\x07\u0364\x02\x02\u1F4F\u1F50\x05\xCEh\x02\u1F50\u1F51\x07\u0365\x02" + + "\x02\u1F51\u1F5B\x03\x02\x02\x02\u1F52\u1F53\x07\u0364\x02\x02\u1F53\u1F54" + + "\x05\xCEh\x02\u1F54\u1F55\x07\u0365\x02\x02\u1F55\u1F5B\x03\x02\x02\x02" + + "\u1F56\u1F57\x07Y\x02\x02\u1F57\u1F58\x05\u0328\u0195\x02\u1F58\u1F59" + + "\x05D#\x02\u1F59\u1F5B\x03\x02\x02\x02\u1F5A\u1F2A\x03\x02\x02\x02\u1F5A" + + "\u1F2C\x03\x02\x02\x02\u1F5A\u1F2D\x03\x02\x02\x02\u1F5A\u1F2E\x03\x02" + + "\x02\x02\u1F5A\u1F2F\x03\x02\x02\x02\u1F5A\u1F32\x03\x02\x02\x02\u1F5A" + + "\u1F34\x03\x02\x02\x02\u1F5A\u1F37\x03\x02\x02\x02\u1F5A\u1F42\x03\x02" + + "\x02\x02\u1F5A\u1F4D\x03\x02\x02\x02\u1F5A\u1F52\x03\x02\x02\x02\u1F5A" + + "\u1F56\x03\x02\x02\x02\u1F5B\u1F6D\x03\x02\x02\x02\u1F5C\u1F5D\f\x05\x02" + + "\x02\u1F5D\u1F5E\x05\u0336\u019C\x02\u1F5E\u1F5F\x05\u032C\u0197\x06\u1F5F" + + "\u1F6C\x03\x02\x02\x02\u1F60\u1F61\f\x04\x02\x02\u1F61\u1F62\x05\u0338" + + "\u019D\x02\u1F62\u1F63\x05\u032C\u0197\x05\u1F63\u1F6C\x03\x02\x02\x02" + + "\u1F64\u1F65\f\x03\x02\x02\u1F65\u1F66\x05\u033A\u019E\x02\u1F66\u1F67" + + "\x05\u032C\u0197\x04\u1F67\u1F6C\x03\x02\x02\x02\u1F68\u1F69\f\x0F\x02" + + "\x02\u1F69\u1F6A\x07\x1E\x02\x02\u1F6A\u1F6C\x05\u02B6\u015C\x02\u1F6B" + + "\u1F5C\x03\x02\x02\x02\u1F6B\u1F60\x03\x02\x02\x02\u1F6B\u1F64\x03\x02" + + "\x02\x02\u1F6B\u1F68\x03\x02\x02\x02\u1F6C\u1F6F\x03\x02\x02\x02\u1F6D" + + "\u1F6B\x03\x02\x02\x02\u1F6D\u1F6E\x03\x02\x02\x02\u1F6E\u032D\x03\x02" + + "\x02\x02\u1F6F\u1F6D\x03\x02\x02\x02\u1F70\u1F71\t\x99\x02\x02\u1F71\u032F" + + "\x03\x02\x02\x02\u1F72\u1F7B\x05\u0332\u019A\x02\u1F73\u1F74\x07\u035D" + + "\x02\x02\u1F74\u1F7B\x07\u035C\x02\x02\u1F75\u1F76\x07\u035E\x02\x02\u1F76" + + "\u1F7B\x07\u035B\x02\x02\u1F77\u1F78\x07\u035D\x02\x02\u1F78\u1F79\x07" + + "\u035B\x02\x02\u1F79\u1F7B\x07\u035C\x02\x02\u1F7A\u1F72\x03\x02\x02\x02" + + "\u1F7A\u1F73\x03\x02\x02\x02\u1F7A\u1F75\x03\x02\x02\x02\u1F7A\u1F77\x03" + + "\x02\x02\x02\u1F7B\u0331\x03\x02\x02\x02\u1F7C\u1F84\x07\u035B\x02\x02" + + "\u1F7D\u1F84\x07\u035C\x02\x02\u1F7E\u1F84\x07\u035D\x02\x02\u1F7F\u1F80" + + "\x07\u035D\x02\x02\u1F80\u1F84\x07\u035B\x02\x02\u1F81\u1F82\x07\u035C" + + "\x02\x02\u1F82\u1F84\x07\u035B\x02\x02\u1F83\u1F7C\x03\x02\x02\x02\u1F83" + + "\u1F7D\x03\x02\x02\x02\u1F83\u1F7E\x03\x02\x02\x02\u1F83\u1F7F\x03\x02" + + "\x02\x02\u1F83\u1F81\x03\x02\x02\x02\u1F84\u0333\x03\x02\x02\x02\u1F85" + + "\u1F8D\x07\r\x02\x02\u1F86\u1F87\x07\u0361\x02\x02\u1F87\u1F8D\x07\u0361" + + "\x02\x02\u1F88\u1F8D\x07\xC6\x02\x02\u1F89\u1F8D\x07~\x02\x02\u1F8A\u1F8B" + + "\x07\u0360\x02\x02\u1F8B\u1F8D\x07\u0360\x02\x02\u1F8C\u1F85\x03\x02\x02" + + "\x02\u1F8C\u1F86\x03\x02\x02\x02\u1F8C\u1F88\x03\x02\x02\x02\u1F8C\u1F89" + + "\x03\x02\x02\x02\u1F8C\u1F8A\x03\x02\x02\x02\u1F8D\u0335\x03\x02\x02\x02" + + "\u1F8E\u1F8F\x07\u035D\x02\x02\u1F8F\u1F96\x07\u035D\x02\x02\u1F90\u1F91" + + "\x07\u035C\x02\x02\u1F91\u1F96\x07\u035C\x02\x02\u1F92\u1F96\x07\u0361" + + "\x02\x02\u1F93\u1F96\x07\u0362\x02\x02\u1F94\u1F96\x07\u0360\x02\x02\u1F95" + + "\u1F8E\x03\x02\x02\x02\u1F95\u1F90\x03\x02\x02\x02\u1F95\u1F92\x03\x02" + + "\x02\x02\u1F95\u1F93\x03\x02\x02\x02\u1F95\u1F94\x03\x02\x02\x02\u1F96" + + "\u0337\x03\x02\x02\x02\u1F97\u1F98\t\x9A\x02\x02\u1F98\u0339\x03\x02\x02" + + "\x02\u1F99\u1F9A\x07\u0358\x02\x02\u1F9A\u1F9F\x07\u035C\x02\x02\u1F9B" + + "\u1F9C\x07\u0358\x02\x02\u1F9C\u1F9D\x07\u035C\x02\x02\u1F9D\u1F9F\x07" + + "\u035C\x02\x02\u1F9E\u1F99\x03\x02\x02\x02\u1F9E\u1F9B\x03\x02\x02\x02" + + "\u1F9F\u033B\x03\x02\x02\x02\u1FA0\u1FA1\t\x9B\x02\x02\u1FA1\u033D\x03" + + "\x02\x02\x02\u1FA2\u1FA3\t\x9C\x02\x02\u1FA3\u033F\x03\x02\x02\x02\u1FA4" + + "\u1FA5\t\x9D\x02\x02\u1FA5\u0341\x03\x02\x02\x02\u1FA6\u1FA7\t\x9E\x02" + + "\x02\u1FA7\u0343\x03\x02\x02\x02\u1FA8\u1FA9\t\x9F\x02\x02\u1FA9\u0345" + + "\x03\x02\x02\x02\u1FAA\u1FAB\t\xA0\x02\x02\u1FAB\u0347\x03\x02\x02\x02" + + "\u1FAC\u1FAD\t\xA1\x02\x02\u1FAD\u0349\x03\x02\x02\x02\u0497\u034B\u0351" + + "\u0353\u0358\u035B\u0364\u038F\u03A2\u03AD\u03BD\u03C2\u03CE\u03F1\u03FB" + + "\u0400\u0406\u040B\u040F\u0418\u041B\u041E\u0422\u0429\u042C\u0431\u0439" + + "\u043E\u0443\u0446\u0448\u0454\u0457\u045B\u045E\u0462\u0465\u0469\u046C" + + "\u046F\u0473\u0476\u047A\u0480\u0484\u0489\u048F\u0496\u049E\u04B0\u04B7" + + "\u04BB\u04C1\u04C6\u04C9\u04CC\u04D0\u04D4\u04D8\u04DC\u04E1\u04E4\u04E7" + + "\u04EA\u04ED\u04F3\u04F7\u0501\u0503\u0507\u050E\u0512\u0515\u051A\u051E" + + "\u0521\u0525\u0528\u052C\u0539\u053C\u0540\u0543\u0547\u054A\u054E\u0551" + + "\u0555\u0558\u055B\u055F\u0562\u0566\u056C\u0570\u057C\u0582\u058D\u0592" + + "\u059A\u059E\u05A3\u05A6\u05AB\u05B3\u05B8\u05BE\u05C3\u05C7\u05C9\u05CC" + + "\u05D0\u05D4\u05D7\u05DB\u05DF\u05E3\u05E9\u05EC\u05F3\u05F8\u05FE\u0605" + + "\u060B\u0613\u0616\u061D\u0620\u0622\u0628\u062E\u063F\u0646\u064D\u0659" + + "\u065E\u0661\u0664\u066E\u067B\u0680\u0690\u0698\u06A2\u06A5\u06AB\u06B0" + + "\u06B3\u06B9\u06BD\u06C2\u06C8\u06CC\u06D0\u06D3\u06D6\u06DC\u06E0\u06E5" + + "\u06F0\u06F3\u06FA\u06FD\u0701\u0707\u0713\u0716\u071B\u0728\u072F\u0735" + + "\u073A\u073E\u0741\u0749\u0751\u0753\u075D\u0761\u0764\u0768\u076D\u0772" + + "\u0777\u077B\u077F\u0783\u0787\u078B\u078F\u0794\u0799\u079E\u07A4\u07A9" + + "\u07AE\u07B3\u07B8\u07BD\u07C3\u07C8\u07CD\u07D2\u07D7\u07DC\u07E1\u07E6" + + "\u07ED\u07F2\u07F7\u07FC\u0800\u0805\u080D\u0812\u0818\u0824\u082B\u082D" + + "\u0835\u083A\u083D\u0845\u084B\u084F\u085C\u0868\u086A\u086D\u0875\u087B" + + "\u0881\u088E\u0895\u089E\u08A3\u08AE\u08B7\u08BC\u08C8\u08CF\u08D8\u08DD" + + "\u08E9\u08F0\u08F9\u08FE\u0905\u090E\u0913\u0915\u091A\u0922\u092B\u092F" + + "\u0932\u0936\u093B\u0941\u0947\u094C\u0951\u0956\u095B\u095E\u0963\u0968" + + "\u0972\u0976\u097D\u0982\u0985\u098A\u098D\u0991\u0995\u099D\u09B0\u09B3" + + "\u09B6\u09BA\u09C4\u09D1\u09DE\u09E1\u09E7\u09EA\u09EE\u09F7\u09FA\u09FD" + + "\u0A02\u0A06\u0A09\u0A0D\u0A11\u0A14\u0A18\u0A1B\u0A1F\u0A22\u0A28\u0A2B" + + "\u0A30\u0A38\u0A3E\u0A42\u0A46\u0A4B\u0A50\u0A57\u0A5B\u0A66\u0A6E\u0A71" + + "\u0A77\u0A7D\u0A80\u0A86\u0A8C\u0A8E\u0A93\u0A99\u0A9F\u0AA1\u0AA5\u0AA8" + + "\u0AAB\u0AB1\u0AB7\u0AB9\u0ABE\u0AC5\u0ACE\u0AD1\u0AD5\u0ADA\u0AE4\u0AED" + + "\u0AF5\u0AF8\u0B00\u0B03\u0B0A\u0B0F\u0B17\u0B27\u0B2C\u0B33\u0B46\u0B4C" + + "\u0B56\u0B62\u0B69\u0B70\u0B7F\u0B8C\u0B92\u0B98\u0B9E\u0BA4\u0BAA\u0BB0" + + "\u0BB5\u0BBC\u0BC3\u0BCA\u0BCF\u0BD2\u0BD4\u0BDD\u0BE4\u0BEB\u0BF2\u0BFB" + + "\u0C01\u0C05\u0C09\u0C0D\u0C13\u0C16\u0C1B\u0C22\u0C29\u0C2D\u0C32\u0C3C" + + "\u0C44\u0C4A\u0C53\u0C5C\u0C65\u0C68\u0C6C\u0C75\u0C79\u0C7C\u0C7F\u0C85" + + "\u0C88\u0C8B\u0C8F\u0C92\u0C95\u0C98\u0CA3\u0CA6\u0CAB\u0CB1\u0CB6\u0CBB" + + "\u0CBE\u0CC2\u0CC7\u0CCA\u0CCF\u0CD9\u0CDE\u0CE4\u0CE6\u0CEC\u0CEE\u0CF4" + + "\u0CFC\u0D01\u0D09\u0D0C\u0D11\u0D14\u0D19\u0D21\u0D27\u0D2B\u0D2D\u0D33" + + "\u0D3B\u0D40\u0D48\u0D4B\u0D50\u0D53\u0D57\u0D5A\u0D5D\u0D61\u0D64\u0D6C" + + "\u0D72\u0D76\u0D7A\u0D7E\u0D81\u0D85\u0D8B\u0D8F\u0D93\u0D95\u0D98\u0D9B" + + "\u0D9E\u0DA4\u0DA8\u0DAB\u0DAE\u0DB1\u0DB4\u0DBB\u0DBD\u0DC0\u0DC4\u0DC7" + + "\u0DCA\u0DD2\u0DD8\u0DDB\u0DDD\u0DE6\u0DEB\u0DF2\u0DF5\u0DF8\u0DFC\u0E00" + + "\u0E06\u0E0A\u0E11\u0E15\u0E18\u0E1B\u0E20\u0E27\u0E31\u0E3A\u0E43\u0E4D" + + "\u0E50\u0E54\u0E5A\u0E5E\u0E61\u0E64\u0E69\u0E6C\u0E73\u0E77\u0E7A\u0E7E" + + "\u0E82\u0E85\u0E88\u0E8D\u0E93\u0E97\u0EA1\u0EA7\u0EAB\u0EB1\u0EB5\u0EBB" + + "\u0EBE\u0ECA\u0ECE\u0ED2\u0EDA\u0EDE\u0EEC\u0EF1\u0EF4\u0EF8\u0EFB\u0F03" + + "\u0F08\u0F0B\u0F0E\u0F12\u0F15\u0F1E\u0F23\u0F2C\u0F31\u0F38\u0F3F\u0F47" + + "\u0F4D\u0F55\u0F58\u0F5B\u0F62\u0F65\u0F68\u0F6F\u0F72\u0F76\u0F7C\u0F86" + + "\u0F8A\u0F93\u0F96\u0F9A\u0FA0\u0FA8\u0FAD\u0FB1\u0FB7\u0FBD\u0FC0\u0FC2" + + "\u0FC6\u0FCF\u0FD9\u0FE3\u0FE9\u0FEE\u0FF2\u0FF5\u0FF8\u0FFB\u0FFE\u1004" + + "\u100A\u100D\u1010\u1013\u1016\u1019\u101B\u1021\u1027\u102A\u102D\u1030" + + "\u1033\u1037\u103D\u1041\u1049\u104D\u1050\u1052\u105F\u1062\u1069\u1073" + + "\u1076\u107B\u107D\u1081\u1089\u108F\u1098\u10A5\u10A9\u10AF\u10B8\u10BB" + + "\u10BF\u10C2\u10C6\u10CA\u10CD\u10CF\u10D7\u10E3\u10E9\u10EB\u10F1\u10F3" + + "\u10F5\u10FB\u1103\u110B\u110F\u1113\u111C\u1121\u1135\u113A\u1140\u1147" + + "\u114C\u1155\u1158\u115C\u1160\u1164\u1167\u116A\u116D\u1171\u1175\u1178" + + "\u117B\u117E\u1185\u1189\u1198\u11A5\u11AD\u11B7\u11BB\u11BE\u11C4\u11C7" + + "\u11CA\u11D3\u11DC\u11E6\u11EA\u11F4\u11F8\u1203\u1207\u1210\u1219\u121C" + + "\u1220\u1225\u1229\u1232\u1235\u1238\u123F\u1245\u124B\u1265\u1268\u126B" + + "\u127E\u1280\u1297\u129A\u129D\u12B0\u12B2\u12C0\u12CD\u12F2\u12F7\u131A" + + "\u1328\u132F\u1333\u1339\u1341\u1343\u134E\u1358\u135F\u1365\u136D\u1372" + + "\u137A\u1382\u138A\u1392\u1398\u139D\u13A2\u13A7\u13AD\u13AF\u13BA\u13BF" + + "\u13C6\u13C8\u13D6\u13DC\u13E1\u13E6\u13EC\u13F3\u13FB\u1403\u1408\u140E" + + "\u1411\u1419\u1420\u1429\u142C\u143D\u1445\u144D\u1451\u1458\u145E\u1466" + + "\u146B\u1472\u147A\u1481\u1486\u1489\u148B\u1491\u1493\u1497\u1499\u149E" + + "\u14A5\u14AA\u14AE\u14B3\u14B7\u14BD\u14C3\u14C8\u14CB\u14CD\u14D3\u14D5" + + "\u14D9\u14DB\u14E0\u14E5\u14EC\u14F5\u14FA\u1503\u1507\u150D\u1512\u1515" + + "\u1517\u151D\u151F\u1522\u1529\u152B\u1530\u1537\u1540\u1546\u1548\u154F" + + "\u1552\u155E\u1564\u156C\u156F\u1573\u1576\u157A\u157C\u1587\u158A\u158E" + + "\u1591\u1594\u159B\u15A7\u15AA\u15B1\u15B7\u15C1\u15C6\u15CD\u15D2\u15D8" + + "\u15DC\u15E0\u15E8\u15EC\u15F0\u15F6\u15F8\u1604\u1609\u160F\u1615\u1619" + + "\u161E\u1620\u1640\u1644\u1648\u164B\u1654\u1658\u1661\u1665\u1669\u166F" + + "\u1671\u167A\u1684\u169F\u16A3\u16A8\u16AF\u16B2\u16B8\u16C2\u16CC\u16D6" + + "\u16DC\u16E5\u16EB\u16F2\u16F4\u16FC\u1702\u1706\u1717\u1721\u1725\u1729" + + "\u1733\u1738\u1780\u1792\u179A\u17A0\u17AC\u17B0\u17BB\u17BF\u17C8\u17D0" + + "\u17D7\u17DB\u17E2\u17E7\u17EA\u17ED\u17F8\u17FC\u1800\u180F\u1818\u181B" + + "\u1829\u183B\u1848\u184B\u184F\u1852\u1854\u185B\u1862\u1866\u186D\u1874" + + "\u1877\u1887\u188A\u1894\u1898\u189E\u18A1\u18A4\u18A9\u18AD\u18B0\u18B7" + + "\u18BA\u18C0\u18E4\u18E7\u18F3\u18F6\u1906\u1908\u190C\u1913\u1917\u191E" + + "\u1921\u192A\u192D\u1932\u1938\u193A\u1940\u1944\u194A\u194D\u1950\u195D" + + "\u1960\u1966\u1969\u1971\u1979\u197F\u1982\u1986\u1994\u19A0\u19A8\u19AC" + + "\u19B3\u19BA\u19BF\u19CC\u19D5\u19DD\u19E2\u19E5\u19EA\u19ED\u19F9\u19FE" + + "\u1A0B\u1A0D\u1A12\u1A16\u1A19\u1A1B\u1A22\u1A29\u1A2C\u1A2F\u1A35\u1A39" + + "\u1A3F\u1A47\u1A50\u1A5D\u1A62\u1A6A\u1A6D\u1A72\u1A77\u1A7F\u1A82\u1A8A" + + "\u1A8E\u1A95\u1A9B\u1A9E\u1AA2\u1AAF\u1AB5\u1AC1\u1AC4\u1ACD\u1AD2\u1AE7" + + "\u1AF7\u1B01\u1B06\u1B0B\u1B0D\u1B10\u1B14\u1B16\u1B1D\u1B23\u1B25\u1B28" + + "\u1B2C\u1B2E\u1B3B\u1B45\u1B48\u1B4B\u1B58\u1B5E\u1B61\u1B69\u1B70\u1B84" + + "\u1B8B\u1B8D\u1B94\u1B96\u1B9A\u1BA1\u1BA7\u1BB2\u1BB7\u1BBD\u1BC0\u1BC4" + + "\u1BC9\u1BCC\u1BD0\u1BD4\u1BD6\u1BDB\u1BE0\u1BED\u1BF0\u1BF4\u1BF7\u1BFA" + + "\u1BFF\u1C04\u1C0A\u1C0D\u1C12\u1C15\u1C1A\u1C1D\u1C21\u1C26\u1C2B\u1C30" + + "\u1C35\u1C38\u1C3D\u1C42\u1C47\u1C4D\u1C52\u1C57\u1C5C\u1C60\u1C63\u1C68" + + "\u1C6C\u1C70\u1C78\u1C7F\u1C83\u1C88\u1C8D\u1C91\u1C93\u1C96\u1CA6\u1CB0" + + "\u1CBA\u1CC3\u1CCC\u1CD3\u1CDA\u1CE2\u1CEA\u1CF6\u1CFD\u1D07\u1D0C\u1D0F" + + "\u1D14\u1D17\u1D29\u1D30\u1D35\u1D3A\u1D5C\u1D60\u1D68\u1D6C\u1D75\u1D7D" + + "\u1D82\u1D8A\u1D8F\u1D94\u1D96\u1D9F\u1DA4\u1DAC\u1DB1\u1DB9\u1DC1\u1DC4" + + "\u1DCE\u1DE0\u1DE3\u1DE6\u1DEA\u1DF7\u1DFF\u1E03\u1E08\u1E0D\u1E13\u1E18" + + "\u1E1C\u1E21\u1E26\u1E2B\u1E35\u1E38\u1E3C\u1E40\u1E47\u1E4B\u1E68\u1E70" + + "\u1E73\u1E76\u1E79\u1E7C\u1E87\u1E95\u1E9E\u1EB9\u1EC5\u1ECC\u1ED4\u1ED9" + + "\u1EE1\u1EED\u1EFA\u1F00\u1F06\u1F16\u1F1C\u1F25\u1F27\u1F3D\u1F49\u1F5A" + + "\u1F6B\u1F6D\u1F7A\u1F83\u1F8C\u1F95\u1F9E"; + public static readonly _serializedATN: string = Utils.join( + [ + MySqlParser._serializedATNSegment0, + MySqlParser._serializedATNSegment1, + MySqlParser._serializedATNSegment2, + MySqlParser._serializedATNSegment3, + MySqlParser._serializedATNSegment4, + MySqlParser._serializedATNSegment5, + MySqlParser._serializedATNSegment6, + MySqlParser._serializedATNSegment7, + MySqlParser._serializedATNSegment8, + MySqlParser._serializedATNSegment9, + MySqlParser._serializedATNSegment10, + MySqlParser._serializedATNSegment11, + MySqlParser._serializedATNSegment12, + MySqlParser._serializedATNSegment13, + MySqlParser._serializedATNSegment14, + MySqlParser._serializedATNSegment15, + ], + "", + ); + public static __ATN: ATN; + public static get _ATN(): ATN { + if (!MySqlParser.__ATN) { + MySqlParser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(MySqlParser._serializedATN)); + } + + return MySqlParser.__ATN; + } + +} + +export class ProgramContext extends ParserRuleContext { + public EOF(): TerminalNode { return this.getToken(MySqlParser.EOF, 0); } + public sqlStatements(): SqlStatementsContext | undefined { + return this.tryGetRuleContext(0, SqlStatementsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_program; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterProgram) { + listener.enterProgram(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitProgram) { + listener.exitProgram(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitProgram) { + return visitor.visitProgram(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SqlStatementsContext extends ParserRuleContext { + public sqlStatement(): SqlStatementContext[]; + public sqlStatement(i: number): SqlStatementContext; + public sqlStatement(i?: number): SqlStatementContext | SqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(SqlStatementContext); + } else { + return this.getRuleContext(i, SqlStatementContext); + } + } + public emptyStatement_(): EmptyStatement_Context[]; + public emptyStatement_(i: number): EmptyStatement_Context; + public emptyStatement_(i?: number): EmptyStatement_Context | EmptyStatement_Context[] { + if (i === undefined) { + return this.getRuleContexts(EmptyStatement_Context); + } else { + return this.getRuleContext(i, EmptyStatement_Context); + } + } + public SEMI(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.SEMI, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_sqlStatements; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSqlStatements) { + listener.enterSqlStatements(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSqlStatements) { + listener.exitSqlStatements(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSqlStatements) { + return visitor.visitSqlStatements(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SqlStatementContext extends ParserRuleContext { + public ddlStatement(): DdlStatementContext | undefined { + return this.tryGetRuleContext(0, DdlStatementContext); + } + public dmlStatement(): DmlStatementContext | undefined { + return this.tryGetRuleContext(0, DmlStatementContext); + } + public transactionStatement(): TransactionStatementContext | undefined { + return this.tryGetRuleContext(0, TransactionStatementContext); + } + public replicationStatement(): ReplicationStatementContext | undefined { + return this.tryGetRuleContext(0, ReplicationStatementContext); + } + public preparedStatement(): PreparedStatementContext | undefined { + return this.tryGetRuleContext(0, PreparedStatementContext); + } + public administrationStatement(): AdministrationStatementContext | undefined { + return this.tryGetRuleContext(0, AdministrationStatementContext); + } + public utilityStatement(): UtilityStatementContext | undefined { + return this.tryGetRuleContext(0, UtilityStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_sqlStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSqlStatement) { + listener.enterSqlStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSqlStatement) { + listener.exitSqlStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSqlStatement) { + return visitor.visitSqlStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class EmptyStatement_Context extends ParserRuleContext { + public SEMI(): TerminalNode { return this.getToken(MySqlParser.SEMI, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_emptyStatement_; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterEmptyStatement_) { + listener.enterEmptyStatement_(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitEmptyStatement_) { + listener.exitEmptyStatement_(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitEmptyStatement_) { + return visitor.visitEmptyStatement_(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DdlStatementContext extends ParserRuleContext { + public createDatabase(): CreateDatabaseContext | undefined { + return this.tryGetRuleContext(0, CreateDatabaseContext); + } + public createEvent(): CreateEventContext | undefined { + return this.tryGetRuleContext(0, CreateEventContext); + } + public createIndex(): CreateIndexContext | undefined { + return this.tryGetRuleContext(0, CreateIndexContext); + } + public createLogfileGroup(): CreateLogfileGroupContext | undefined { + return this.tryGetRuleContext(0, CreateLogfileGroupContext); + } + public createProcedure(): CreateProcedureContext | undefined { + return this.tryGetRuleContext(0, CreateProcedureContext); + } + public createFunction(): CreateFunctionContext | undefined { + return this.tryGetRuleContext(0, CreateFunctionContext); + } + public createServer(): CreateServerContext | undefined { + return this.tryGetRuleContext(0, CreateServerContext); + } + public createTable(): CreateTableContext | undefined { + return this.tryGetRuleContext(0, CreateTableContext); + } + public createTablespaceInnodb(): CreateTablespaceInnodbContext | undefined { + return this.tryGetRuleContext(0, CreateTablespaceInnodbContext); + } + public createTablespaceNdb(): CreateTablespaceNdbContext | undefined { + return this.tryGetRuleContext(0, CreateTablespaceNdbContext); + } + public createTrigger(): CreateTriggerContext | undefined { + return this.tryGetRuleContext(0, CreateTriggerContext); + } + public createView(): CreateViewContext | undefined { + return this.tryGetRuleContext(0, CreateViewContext); + } + public createRole(): CreateRoleContext | undefined { + return this.tryGetRuleContext(0, CreateRoleContext); + } + public alterDatabase(): AlterDatabaseContext | undefined { + return this.tryGetRuleContext(0, AlterDatabaseContext); + } + public alterEvent(): AlterEventContext | undefined { + return this.tryGetRuleContext(0, AlterEventContext); + } + public alterFunction(): AlterFunctionContext | undefined { + return this.tryGetRuleContext(0, AlterFunctionContext); + } + public alterInstance(): AlterInstanceContext | undefined { + return this.tryGetRuleContext(0, AlterInstanceContext); + } + public alterLogfileGroup(): AlterLogfileGroupContext | undefined { + return this.tryGetRuleContext(0, AlterLogfileGroupContext); + } + public alterProcedure(): AlterProcedureContext | undefined { + return this.tryGetRuleContext(0, AlterProcedureContext); + } + public alterServer(): AlterServerContext | undefined { + return this.tryGetRuleContext(0, AlterServerContext); + } + public alterTable(): AlterTableContext | undefined { + return this.tryGetRuleContext(0, AlterTableContext); + } + public alterTablespace(): AlterTablespaceContext | undefined { + return this.tryGetRuleContext(0, AlterTablespaceContext); + } + public alterView(): AlterViewContext | undefined { + return this.tryGetRuleContext(0, AlterViewContext); + } + public dropDatabase(): DropDatabaseContext | undefined { + return this.tryGetRuleContext(0, DropDatabaseContext); + } + public dropEvent(): DropEventContext | undefined { + return this.tryGetRuleContext(0, DropEventContext); + } + public dropIndex(): DropIndexContext | undefined { + return this.tryGetRuleContext(0, DropIndexContext); + } + public dropLogfileGroup(): DropLogfileGroupContext | undefined { + return this.tryGetRuleContext(0, DropLogfileGroupContext); + } + public dropProcedure(): DropProcedureContext | undefined { + return this.tryGetRuleContext(0, DropProcedureContext); + } + public dropFunction(): DropFunctionContext | undefined { + return this.tryGetRuleContext(0, DropFunctionContext); + } + public dropServer(): DropServerContext | undefined { + return this.tryGetRuleContext(0, DropServerContext); + } + public dropSpatial(): DropSpatialContext | undefined { + return this.tryGetRuleContext(0, DropSpatialContext); + } + public dropTable(): DropTableContext | undefined { + return this.tryGetRuleContext(0, DropTableContext); + } + public dropTablespace(): DropTablespaceContext | undefined { + return this.tryGetRuleContext(0, DropTablespaceContext); + } + public dropTrigger(): DropTriggerContext | undefined { + return this.tryGetRuleContext(0, DropTriggerContext); + } + public dropView(): DropViewContext | undefined { + return this.tryGetRuleContext(0, DropViewContext); + } + public dropRole(): DropRoleContext | undefined { + return this.tryGetRuleContext(0, DropRoleContext); + } + public setRole(): SetRoleContext | undefined { + return this.tryGetRuleContext(0, SetRoleContext); + } + public renameTable(): RenameTableContext | undefined { + return this.tryGetRuleContext(0, RenameTableContext); + } + public truncateTable(): TruncateTableContext | undefined { + return this.tryGetRuleContext(0, TruncateTableContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ddlStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDdlStatement) { + listener.enterDdlStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDdlStatement) { + listener.exitDdlStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDdlStatement) { + return visitor.visitDdlStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DmlStatementContext extends ParserRuleContext { + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public setOperations(): SetOperationsContext | undefined { + return this.tryGetRuleContext(0, SetOperationsContext); + } + public insertStatement(): InsertStatementContext | undefined { + return this.tryGetRuleContext(0, InsertStatementContext); + } + public updateStatement(): UpdateStatementContext | undefined { + return this.tryGetRuleContext(0, UpdateStatementContext); + } + public deleteStatement(): DeleteStatementContext | undefined { + return this.tryGetRuleContext(0, DeleteStatementContext); + } + public replaceStatement(): ReplaceStatementContext | undefined { + return this.tryGetRuleContext(0, ReplaceStatementContext); + } + public callStatement(): CallStatementContext | undefined { + return this.tryGetRuleContext(0, CallStatementContext); + } + public interSectStatement(): InterSectStatementContext | undefined { + return this.tryGetRuleContext(0, InterSectStatementContext); + } + public loadDataStatement(): LoadDataStatementContext | undefined { + return this.tryGetRuleContext(0, LoadDataStatementContext); + } + public loadXmlStatement(): LoadXmlStatementContext | undefined { + return this.tryGetRuleContext(0, LoadXmlStatementContext); + } + public parenthesizedQuery(): ParenthesizedQueryContext | undefined { + return this.tryGetRuleContext(0, ParenthesizedQueryContext); + } + public doStatement(): DoStatementContext | undefined { + return this.tryGetRuleContext(0, DoStatementContext); + } + public handlerStatement(): HandlerStatementContext | undefined { + return this.tryGetRuleContext(0, HandlerStatementContext); + } + public importTableStatement(): ImportTableStatementContext | undefined { + return this.tryGetRuleContext(0, ImportTableStatementContext); + } + public valuesStatement(): ValuesStatementContext | undefined { + return this.tryGetRuleContext(0, ValuesStatementContext); + } + public withStatement(): WithStatementContext | undefined { + return this.tryGetRuleContext(0, WithStatementContext); + } + public tableStatement(): TableStatementContext | undefined { + return this.tryGetRuleContext(0, TableStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dmlStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDmlStatement) { + listener.enterDmlStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDmlStatement) { + listener.exitDmlStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDmlStatement) { + return visitor.visitDmlStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TransactionStatementContext extends ParserRuleContext { + public startTransaction(): StartTransactionContext | undefined { + return this.tryGetRuleContext(0, StartTransactionContext); + } + public beginWork(): BeginWorkContext | undefined { + return this.tryGetRuleContext(0, BeginWorkContext); + } + public commitWork(): CommitWorkContext | undefined { + return this.tryGetRuleContext(0, CommitWorkContext); + } + public rollbackWork(): RollbackWorkContext | undefined { + return this.tryGetRuleContext(0, RollbackWorkContext); + } + public savepointStatement(): SavepointStatementContext | undefined { + return this.tryGetRuleContext(0, SavepointStatementContext); + } + public rollbackStatement(): RollbackStatementContext | undefined { + return this.tryGetRuleContext(0, RollbackStatementContext); + } + public releaseStatement(): ReleaseStatementContext | undefined { + return this.tryGetRuleContext(0, ReleaseStatementContext); + } + public lockTables(): LockTablesContext | undefined { + return this.tryGetRuleContext(0, LockTablesContext); + } + public unlockTables(): UnlockTablesContext | undefined { + return this.tryGetRuleContext(0, UnlockTablesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_transactionStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTransactionStatement) { + listener.enterTransactionStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTransactionStatement) { + listener.exitTransactionStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTransactionStatement) { + return visitor.visitTransactionStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReplicationStatementContext extends ParserRuleContext { + public changeMaster(): ChangeMasterContext | undefined { + return this.tryGetRuleContext(0, ChangeMasterContext); + } + public changeReplicationFilter(): ChangeReplicationFilterContext | undefined { + return this.tryGetRuleContext(0, ChangeReplicationFilterContext); + } + public changeReplicationSource(): ChangeReplicationSourceContext | undefined { + return this.tryGetRuleContext(0, ChangeReplicationSourceContext); + } + public purgeBinaryLogs(): PurgeBinaryLogsContext | undefined { + return this.tryGetRuleContext(0, PurgeBinaryLogsContext); + } + public startSlaveOrReplica(): StartSlaveOrReplicaContext | undefined { + return this.tryGetRuleContext(0, StartSlaveOrReplicaContext); + } + public stopSlaveOrReplica(): StopSlaveOrReplicaContext | undefined { + return this.tryGetRuleContext(0, StopSlaveOrReplicaContext); + } + public startGroupReplication(): StartGroupReplicationContext | undefined { + return this.tryGetRuleContext(0, StartGroupReplicationContext); + } + public stopGroupReplication(): StopGroupReplicationContext | undefined { + return this.tryGetRuleContext(0, StopGroupReplicationContext); + } + public xaStartTransaction(): XaStartTransactionContext | undefined { + return this.tryGetRuleContext(0, XaStartTransactionContext); + } + public xaEndTransaction(): XaEndTransactionContext | undefined { + return this.tryGetRuleContext(0, XaEndTransactionContext); + } + public xaPrepareStatement(): XaPrepareStatementContext | undefined { + return this.tryGetRuleContext(0, XaPrepareStatementContext); + } + public xaCommitWork(): XaCommitWorkContext | undefined { + return this.tryGetRuleContext(0, XaCommitWorkContext); + } + public xaRollbackWork(): XaRollbackWorkContext | undefined { + return this.tryGetRuleContext(0, XaRollbackWorkContext); + } + public xaRecoverWork(): XaRecoverWorkContext | undefined { + return this.tryGetRuleContext(0, XaRecoverWorkContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_replicationStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReplicationStatement) { + listener.enterReplicationStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReplicationStatement) { + listener.exitReplicationStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReplicationStatement) { + return visitor.visitReplicationStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PreparedStatementContext extends ParserRuleContext { + public prepareStatement(): PrepareStatementContext | undefined { + return this.tryGetRuleContext(0, PrepareStatementContext); + } + public executeStatement(): ExecuteStatementContext | undefined { + return this.tryGetRuleContext(0, ExecuteStatementContext); + } + public deallocatePrepare(): DeallocatePrepareContext | undefined { + return this.tryGetRuleContext(0, DeallocatePrepareContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_preparedStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPreparedStatement) { + listener.enterPreparedStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPreparedStatement) { + listener.exitPreparedStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPreparedStatement) { + return visitor.visitPreparedStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CompoundStatementContext extends ParserRuleContext { + public blockStatement(): BlockStatementContext | undefined { + return this.tryGetRuleContext(0, BlockStatementContext); + } + public caseStatement(): CaseStatementContext | undefined { + return this.tryGetRuleContext(0, CaseStatementContext); + } + public ifStatement(): IfStatementContext | undefined { + return this.tryGetRuleContext(0, IfStatementContext); + } + public leaveStatement(): LeaveStatementContext | undefined { + return this.tryGetRuleContext(0, LeaveStatementContext); + } + public loopStatement(): LoopStatementContext | undefined { + return this.tryGetRuleContext(0, LoopStatementContext); + } + public repeatStatement(): RepeatStatementContext | undefined { + return this.tryGetRuleContext(0, RepeatStatementContext); + } + public whileStatement(): WhileStatementContext | undefined { + return this.tryGetRuleContext(0, WhileStatementContext); + } + public iterateStatement(): IterateStatementContext | undefined { + return this.tryGetRuleContext(0, IterateStatementContext); + } + public returnStatement(): ReturnStatementContext | undefined { + return this.tryGetRuleContext(0, ReturnStatementContext); + } + public cursorStatement(): CursorStatementContext | undefined { + return this.tryGetRuleContext(0, CursorStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_compoundStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCompoundStatement) { + listener.enterCompoundStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCompoundStatement) { + listener.exitCompoundStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCompoundStatement) { + return visitor.visitCompoundStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AdministrationStatementContext extends ParserRuleContext { + public alterUser(): AlterUserContext | undefined { + return this.tryGetRuleContext(0, AlterUserContext); + } + public createUser(): CreateUserContext | undefined { + return this.tryGetRuleContext(0, CreateUserContext); + } + public dropUser(): DropUserContext | undefined { + return this.tryGetRuleContext(0, DropUserContext); + } + public grantStatement(): GrantStatementContext | undefined { + return this.tryGetRuleContext(0, GrantStatementContext); + } + public grantProxy(): GrantProxyContext | undefined { + return this.tryGetRuleContext(0, GrantProxyContext); + } + public renameUser(): RenameUserContext | undefined { + return this.tryGetRuleContext(0, RenameUserContext); + } + public revokeStatement(): RevokeStatementContext | undefined { + return this.tryGetRuleContext(0, RevokeStatementContext); + } + public alterResourceGroup(): AlterResourceGroupContext | undefined { + return this.tryGetRuleContext(0, AlterResourceGroupContext); + } + public createResourceGroup(): CreateResourceGroupContext | undefined { + return this.tryGetRuleContext(0, CreateResourceGroupContext); + } + public dropResourceGroup(): DropResourceGroupContext | undefined { + return this.tryGetRuleContext(0, DropResourceGroupContext); + } + public setResourceGroup(): SetResourceGroupContext | undefined { + return this.tryGetRuleContext(0, SetResourceGroupContext); + } + public analyzeTable(): AnalyzeTableContext | undefined { + return this.tryGetRuleContext(0, AnalyzeTableContext); + } + public checkTable(): CheckTableContext | undefined { + return this.tryGetRuleContext(0, CheckTableContext); + } + public checksumTable(): ChecksumTableContext | undefined { + return this.tryGetRuleContext(0, ChecksumTableContext); + } + public optimizeTable(): OptimizeTableContext | undefined { + return this.tryGetRuleContext(0, OptimizeTableContext); + } + public repairTable(): RepairTableContext | undefined { + return this.tryGetRuleContext(0, RepairTableContext); + } + public installComponent(): InstallComponentContext | undefined { + return this.tryGetRuleContext(0, InstallComponentContext); + } + public uninstallComponent(): UninstallComponentContext | undefined { + return this.tryGetRuleContext(0, UninstallComponentContext); + } + public installPlugin(): InstallPluginContext | undefined { + return this.tryGetRuleContext(0, InstallPluginContext); + } + public uninstallPlugin(): UninstallPluginContext | undefined { + return this.tryGetRuleContext(0, UninstallPluginContext); + } + public cloneStatement(): CloneStatementContext | undefined { + return this.tryGetRuleContext(0, CloneStatementContext); + } + public setStatement(): SetStatementContext | undefined { + return this.tryGetRuleContext(0, SetStatementContext); + } + public showStatement(): ShowStatementContext | undefined { + return this.tryGetRuleContext(0, ShowStatementContext); + } + public binlogStatement(): BinlogStatementContext | undefined { + return this.tryGetRuleContext(0, BinlogStatementContext); + } + public cacheIndexStatement(): CacheIndexStatementContext | undefined { + return this.tryGetRuleContext(0, CacheIndexStatementContext); + } + public flushStatement(): FlushStatementContext | undefined { + return this.tryGetRuleContext(0, FlushStatementContext); + } + public killStatement(): KillStatementContext | undefined { + return this.tryGetRuleContext(0, KillStatementContext); + } + public loadIndexIntoCache(): LoadIndexIntoCacheContext | undefined { + return this.tryGetRuleContext(0, LoadIndexIntoCacheContext); + } + public resetStatement(): ResetStatementContext | undefined { + return this.tryGetRuleContext(0, ResetStatementContext); + } + public resetPersist(): ResetPersistContext | undefined { + return this.tryGetRuleContext(0, ResetPersistContext); + } + public resetAllChannel(): ResetAllChannelContext | undefined { + return this.tryGetRuleContext(0, ResetAllChannelContext); + } + public reStartStatement(): ReStartStatementContext | undefined { + return this.tryGetRuleContext(0, ReStartStatementContext); + } + public shutdownStatement(): ShutdownStatementContext | undefined { + return this.tryGetRuleContext(0, ShutdownStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_administrationStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAdministrationStatement) { + listener.enterAdministrationStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAdministrationStatement) { + listener.exitAdministrationStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAdministrationStatement) { + return visitor.visitAdministrationStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UtilityStatementContext extends ParserRuleContext { + public simpleDescribeStatement(): SimpleDescribeStatementContext | undefined { + return this.tryGetRuleContext(0, SimpleDescribeStatementContext); + } + public fullDescribeStatement(): FullDescribeStatementContext | undefined { + return this.tryGetRuleContext(0, FullDescribeStatementContext); + } + public analyzeDescribeStatement(): AnalyzeDescribeStatementContext | undefined { + return this.tryGetRuleContext(0, AnalyzeDescribeStatementContext); + } + public helpStatement(): HelpStatementContext | undefined { + return this.tryGetRuleContext(0, HelpStatementContext); + } + public useStatement(): UseStatementContext | undefined { + return this.tryGetRuleContext(0, UseStatementContext); + } + public signalStatement(): SignalStatementContext | undefined { + return this.tryGetRuleContext(0, SignalStatementContext); + } + public resignalStatement(): ResignalStatementContext | undefined { + return this.tryGetRuleContext(0, ResignalStatementContext); + } + public diagnosticsStatement(): DiagnosticsStatementContext | undefined { + return this.tryGetRuleContext(0, DiagnosticsStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_utilityStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUtilityStatement) { + listener.enterUtilityStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUtilityStatement) { + listener.exitUtilityStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUtilityStatement) { + return visitor.visitUtilityStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateDatabaseContext extends ParserRuleContext { + public _dbFormat!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public databaseNameCreate(): DatabaseNameCreateContext { + return this.getRuleContext(0, DatabaseNameCreateContext); + } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public createDatabaseOption(): CreateDatabaseOptionContext[]; + public createDatabaseOption(i: number): CreateDatabaseOptionContext; + public createDatabaseOption(i?: number): CreateDatabaseOptionContext | CreateDatabaseOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(CreateDatabaseOptionContext); + } else { + return this.getRuleContext(i, CreateDatabaseOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createDatabase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateDatabase) { + listener.enterCreateDatabase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateDatabase) { + listener.exitCreateDatabase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateDatabase) { + return visitor.visitCreateDatabase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateEventContext extends ParserRuleContext { + public _event_name!: FullIdContext; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_EVENT(): TerminalNode { return this.getToken(MySqlParser.KW_EVENT, 0); } + public KW_ON(): TerminalNode[]; + public KW_ON(i: number): TerminalNode; + public KW_ON(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ON); + } else { + return this.getToken(MySqlParser.KW_ON, i); + } + } + public KW_SCHEDULE(): TerminalNode { return this.getToken(MySqlParser.KW_SCHEDULE, 0); } + public scheduleExpression(): ScheduleExpressionContext { + return this.getRuleContext(0, ScheduleExpressionContext); + } + public KW_DO(): TerminalNode { return this.getToken(MySqlParser.KW_DO, 0); } + public routineBody(): RoutineBodyContext { + return this.getRuleContext(0, RoutineBodyContext); + } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public KW_COMPLETION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPLETION, 0); } + public KW_PRESERVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRESERVE, 0); } + public enableType(): EnableTypeContext | undefined { + return this.tryGetRuleContext(0, EnableTypeContext); + } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createEvent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateEvent) { + listener.enterCreateEvent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateEvent) { + listener.exitCreateEvent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateEvent) { + return visitor.visitCreateEvent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateIndexContext extends ParserRuleContext { + public _intimeAction!: Token; + public _indexCategory!: Token; + public _algType!: Token; + public _lockType!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public indexNameCreate(): IndexNameCreateContext { + return this.getRuleContext(0, IndexNameCreateContext); + } + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + public KW_ALGORITHM(): TerminalNode[]; + public KW_ALGORITHM(i: number): TerminalNode; + public KW_ALGORITHM(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ALGORITHM); + } else { + return this.getToken(MySqlParser.KW_ALGORITHM, i); + } + } + public KW_LOCK(): TerminalNode[]; + public KW_LOCK(i: number): TerminalNode; + public KW_LOCK(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_LOCK); + } else { + return this.getToken(MySqlParser.KW_LOCK, i); + } + } + public KW_ONLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLINE, 0); } + public KW_OFFLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFLINE, 0); } + public KW_UNIQUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNIQUE, 0); } + public KW_FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULLTEXT, 0); } + public KW_SPATIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SPATIAL, 0); } + public KW_DEFAULT(): TerminalNode[]; + public KW_DEFAULT(i: number): TerminalNode; + public KW_DEFAULT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DEFAULT); + } else { + return this.getToken(MySqlParser.KW_DEFAULT, i); + } + } + public KW_INPLACE(): TerminalNode[]; + public KW_INPLACE(i: number): TerminalNode; + public KW_INPLACE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_INPLACE); + } else { + return this.getToken(MySqlParser.KW_INPLACE, i); + } + } + public KW_COPY(): TerminalNode[]; + public KW_COPY(i: number): TerminalNode; + public KW_COPY(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_COPY); + } else { + return this.getToken(MySqlParser.KW_COPY, i); + } + } + public KW_NONE(): TerminalNode[]; + public KW_NONE(i: number): TerminalNode; + public KW_NONE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_NONE); + } else { + return this.getToken(MySqlParser.KW_NONE, i); + } + } + public KW_SHARED(): TerminalNode[]; + public KW_SHARED(i: number): TerminalNode; + public KW_SHARED(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_SHARED); + } else { + return this.getToken(MySqlParser.KW_SHARED, i); + } + } + public KW_EXCLUSIVE(): TerminalNode[]; + public KW_EXCLUSIVE(i: number): TerminalNode; + public KW_EXCLUSIVE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_EXCLUSIVE); + } else { + return this.getToken(MySqlParser.KW_EXCLUSIVE, i); + } + } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createIndex; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateIndex) { + listener.enterCreateIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateIndex) { + listener.exitCreateIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateIndex) { + return visitor.visitCreateIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateLogfileGroupContext extends ParserRuleContext { + public _logfileGroupName!: UidContext; + public _undoFile!: Token; + public _initSize!: FileSizeLiteralContext; + public _undoSize!: FileSizeLiteralContext; + public _redoSize!: FileSizeLiteralContext; + public _nodegroup!: UidContext; + public _comment!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_LOGFILE(): TerminalNode { return this.getToken(MySqlParser.KW_LOGFILE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_UNDOFILE(): TerminalNode { return this.getToken(MySqlParser.KW_UNDOFILE, 0); } + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public KW_INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIAL_SIZE, 0); } + public KW_UNDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO_BUFFER_SIZE, 0); } + public KW_REDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REDO_BUFFER_SIZE, 0); } + public KW_NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NODEGROUP, 0); } + public KW_WAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WAIT, 0); } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public fileSizeLiteral(): FileSizeLiteralContext[]; + public fileSizeLiteral(i: number): FileSizeLiteralContext; + public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(FileSizeLiteralContext); + } else { + return this.getRuleContext(i, FileSizeLiteralContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createLogfileGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateLogfileGroup) { + listener.enterCreateLogfileGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateLogfileGroup) { + listener.exitCreateLogfileGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateLogfileGroup) { + return visitor.visitCreateLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateProcedureContext extends ParserRuleContext { + public _sp_name!: FullIdContext; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_PROCEDURE(): TerminalNode { return this.getToken(MySqlParser.KW_PROCEDURE, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public routineBody(): RoutineBodyContext { + return this.getRuleContext(0, RoutineBodyContext); + } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public procedureParameter(): ProcedureParameterContext[]; + public procedureParameter(i: number): ProcedureParameterContext; + public procedureParameter(i?: number): ProcedureParameterContext | ProcedureParameterContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureParameterContext); + } else { + return this.getRuleContext(i, ProcedureParameterContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public routineOption(): RoutineOptionContext[]; + public routineOption(i: number): RoutineOptionContext; + public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(RoutineOptionContext); + } else { + return this.getRuleContext(i, RoutineOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createProcedure; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateProcedure) { + listener.enterCreateProcedure(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateProcedure) { + listener.exitCreateProcedure(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateProcedure) { + return visitor.visitCreateProcedure(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateRoleContext extends ParserRuleContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_ROLE(): TerminalNode { return this.getToken(MySqlParser.KW_ROLE, 0); } + public userOrRoleNames(): UserOrRoleNamesContext { + return this.getRuleContext(0, UserOrRoleNamesContext); + } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createRole; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateRole) { + listener.enterCreateRole(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateRole) { + listener.exitCreateRole(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateRole) { + return visitor.visitCreateRole(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateServerContext extends ParserRuleContext { + public _servername!: UidContext; + public _wrapperName!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_SERVER(): TerminalNode { return this.getToken(MySqlParser.KW_SERVER, 0); } + public KW_FOREIGN(): TerminalNode { return this.getToken(MySqlParser.KW_FOREIGN, 0); } + public KW_DATA(): TerminalNode { return this.getToken(MySqlParser.KW_DATA, 0); } + public KW_WRAPPER(): TerminalNode { return this.getToken(MySqlParser.KW_WRAPPER, 0); } + public KW_OPTIONS(): TerminalNode { return this.getToken(MySqlParser.KW_OPTIONS, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public serverOption(): ServerOptionContext[]; + public serverOption(i: number): ServerOptionContext; + public serverOption(i?: number): ServerOptionContext | ServerOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(ServerOptionContext); + } else { + return this.getRuleContext(i, ServerOptionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_MYSQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createServer; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateServer) { + listener.enterCreateServer(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateServer) { + listener.exitCreateServer(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateServer) { + return visitor.visitCreateServer(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateTableContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createTable; } + public copyFrom(ctx: CreateTableContext): void { + super.copyFrom(ctx); + } +} +export class CopyCreateTableContext extends CreateTableContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + public createDefinitions(): CreateDefinitionsContext { + return this.getRuleContext(0, CreateDefinitionsContext); + } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public tableOption(): TableOptionContext[]; + public tableOption(i: number): TableOptionContext; + public tableOption(i?: number): TableOptionContext | TableOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TableOptionContext); + } else { + return this.getRuleContext(i, TableOptionContext); + } + } + public partitionDefinitions(): PartitionDefinitionsContext | undefined { + return this.tryGetRuleContext(0, PartitionDefinitionsContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: CreateTableContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCopyCreateTable) { + listener.enterCopyCreateTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCopyCreateTable) { + listener.exitCopyCreateTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCopyCreateTable) { + return visitor.visitCopyCreateTable(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ColumnCreateTableContext extends CreateTableContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public createDefinitions(): CreateDefinitionsContext | undefined { + return this.tryGetRuleContext(0, CreateDefinitionsContext); + } + public tableOption(): TableOptionContext[]; + public tableOption(i: number): TableOptionContext; + public tableOption(i?: number): TableOptionContext | TableOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TableOptionContext); + } else { + return this.getRuleContext(i, TableOptionContext); + } + } + public partitionDefinitions(): PartitionDefinitionsContext | undefined { + return this.tryGetRuleContext(0, PartitionDefinitionsContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: CreateTableContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnCreateTable) { + listener.enterColumnCreateTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnCreateTable) { + listener.exitColumnCreateTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnCreateTable) { + return visitor.visitColumnCreateTable(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class QueryCreateTableContext extends CreateTableContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + public KW_LIKE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIKE, 0); } + public tableName(): TableNameContext | undefined { + return this.tryGetRuleContext(0, TableNameContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + constructor(ctx: CreateTableContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryCreateTable) { + listener.enterQueryCreateTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryCreateTable) { + listener.exitQueryCreateTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryCreateTable) { + return visitor.visitQueryCreateTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateTablespaceInnodbContext extends ParserRuleContext { + public _datafile!: Token; + public _autoextendSize!: FileSizeLiteralContext; + public _fileBlockSize!: FileSizeLiteralContext; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceNameCreate(): TablespaceNameCreateContext { + return this.getRuleContext(0, TablespaceNameCreateContext); + } + public KW_UNDO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO, 0); } + public KW_ADD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ADD, 0); } + public KW_DATAFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATAFILE, 0); } + public KW_AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); } + public KW_FILE_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FILE_BLOCK_SIZE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public KW_ENGINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext | undefined { + return this.tryGetRuleContext(0, EngineNameContext); + } + public KW_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE_ATTRIBUTE, 0); } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public fileSizeLiteral(): FileSizeLiteralContext[]; + public fileSizeLiteral(i: number): FileSizeLiteralContext; + public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(FileSizeLiteralContext); + } else { + return this.getRuleContext(i, FileSizeLiteralContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createTablespaceInnodb; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateTablespaceInnodb) { + listener.enterCreateTablespaceInnodb(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateTablespaceInnodb) { + listener.exitCreateTablespaceInnodb(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateTablespaceInnodb) { + return visitor.visitCreateTablespaceInnodb(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateTablespaceNdbContext extends ParserRuleContext { + public _datafile!: Token; + public _logfileGroupName!: UidContext; + public _extentSize!: FileSizeLiteralContext; + public _initialSize!: FileSizeLiteralContext; + public _autoextendSize!: FileSizeLiteralContext; + public _maxSize!: FileSizeLiteralContext; + public _nodegroup!: UidContext; + public _comment!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceNameCreate(): TablespaceNameCreateContext { + return this.getRuleContext(0, TablespaceNameCreateContext); + } + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_DATAFILE(): TerminalNode { return this.getToken(MySqlParser.KW_DATAFILE, 0); } + public KW_USE(): TerminalNode { return this.getToken(MySqlParser.KW_USE, 0); } + public KW_LOGFILE(): TerminalNode { return this.getToken(MySqlParser.KW_LOGFILE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public KW_UNDO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO, 0); } + public KW_EXTENT_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENT_SIZE, 0); } + public KW_INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIAL_SIZE, 0); } + public KW_AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); } + public KW_MAX_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_SIZE, 0); } + public KW_NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NODEGROUP, 0); } + public KW_WAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WAIT, 0); } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public fileSizeLiteral(): FileSizeLiteralContext[]; + public fileSizeLiteral(i: number): FileSizeLiteralContext; + public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(FileSizeLiteralContext); + } else { + return this.getRuleContext(i, FileSizeLiteralContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createTablespaceNdb; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateTablespaceNdb) { + listener.enterCreateTablespaceNdb(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateTablespaceNdb) { + listener.exitCreateTablespaceNdb(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateTablespaceNdb) { + return visitor.visitCreateTablespaceNdb(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateTriggerContext extends ParserRuleContext { + public _trigger_name!: FullIdContext; + public _triggerTime!: Token; + public _triggerEvent!: Token; + public _triggerPlace!: Token; + public _other_trigger_name!: FullIdContext; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TRIGGER(): TerminalNode { return this.getToken(MySqlParser.KW_TRIGGER, 0); } + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public KW_EACH(): TerminalNode { return this.getToken(MySqlParser.KW_EACH, 0); } + public KW_ROW(): TerminalNode { return this.getToken(MySqlParser.KW_ROW, 0); } + public routineBody(): RoutineBodyContext { + return this.getRuleContext(0, RoutineBodyContext); + } + public fullId(): FullIdContext[]; + public fullId(i: number): FullIdContext; + public fullId(i?: number): FullIdContext | FullIdContext[] { + if (i === undefined) { + return this.getRuleContexts(FullIdContext); + } else { + return this.getRuleContext(i, FullIdContext); + } + } + public KW_BEFORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BEFORE, 0); } + public KW_AFTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AFTER, 0); } + public KW_INSERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSERT, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public KW_DELETE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELETE, 0); } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public KW_FOLLOWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOLLOWS, 0); } + public KW_PRECEDES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRECEDES, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createTrigger; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateTrigger) { + listener.enterCreateTrigger(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateTrigger) { + listener.exitCreateTrigger(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateTrigger) { + return visitor.visitCreateTrigger(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WithClauseContext extends ParserRuleContext { + public KW_WITH(): TerminalNode { return this.getToken(MySqlParser.KW_WITH, 0); } + public commonTableExpressions(): CommonTableExpressionsContext { + return this.getRuleContext(0, CommonTableExpressionsContext); + } + public KW_RECURSIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RECURSIVE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_withClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWithClause) { + listener.enterWithClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWithClause) { + listener.exitWithClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWithClause) { + return visitor.visitWithClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CommonTableExpressionsContext extends ParserRuleContext { + public _cteName!: UidContext; + public _cteColumnName!: UidContext; + public KW_AS(): TerminalNode { return this.getToken(MySqlParser.KW_AS, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public dmlStatement(): DmlStatementContext { + return this.getRuleContext(0, DmlStatementContext); + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public commonTableExpressions(): CommonTableExpressionsContext | undefined { + return this.tryGetRuleContext(0, CommonTableExpressionsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_commonTableExpressions; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCommonTableExpressions) { + listener.enterCommonTableExpressions(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCommonTableExpressions) { + listener.exitCommonTableExpressions(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCommonTableExpressions) { + return visitor.visitCommonTableExpressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateViewContext extends ParserRuleContext { + public _algType!: Token; + public _secContext!: Token; + public _checkOption!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_VIEW(): TerminalNode { return this.getToken(MySqlParser.KW_VIEW, 0); } + public viewNameCreate(): ViewNameCreateContext { + return this.getRuleContext(0, ViewNameCreateContext); + } + public KW_AS(): TerminalNode { return this.getToken(MySqlParser.KW_AS, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public orReplace(): OrReplaceContext | undefined { + return this.tryGetRuleContext(0, OrReplaceContext); + } + public KW_ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALGORITHM, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public KW_SQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL, 0); } + public KW_SECURITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECURITY, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public KW_UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDEFINED, 0); } + public KW_MERGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MERGE, 0); } + public KW_TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPTABLE, 0); } + public KW_DEFINER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFINER, 0); } + public KW_INVOKER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKER, 0); } + public withClause(): WithClauseContext | undefined { + return this.tryGetRuleContext(0, WithClauseContext); + } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECK, 0); } + public KW_OPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTION, 0); } + public KW_CASCADED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADED, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createView; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateView) { + listener.enterCreateView(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateView) { + listener.exitCreateView(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateView) { + return visitor.visitCreateView(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateDatabaseOptionContext extends ParserRuleContext { + public charSet(): CharSetContext | undefined { + return this.tryGetRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_DEFAULT(): TerminalNode[]; + public KW_DEFAULT(i: number): TerminalNode; + public KW_DEFAULT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DEFAULT); + } else { + return this.getToken(MySqlParser.KW_DEFAULT, i); + } + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + public KW_ENCRYPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCRYPTION, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLY, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createDatabaseOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateDatabaseOption) { + listener.enterCreateDatabaseOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateDatabaseOption) { + listener.exitCreateDatabaseOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateDatabaseOption) { + return visitor.visitCreateDatabaseOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CharSetContext extends ParserRuleContext { + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_CHARSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARSET, 0); } + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_charSet; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCharSet) { + listener.enterCharSet(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCharSet) { + listener.exitCharSet(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCharSet) { + return visitor.visitCharSet(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CurrentUserExpressionContext extends ParserRuleContext { + public KW_CURRENT_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_USER, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_currentUserExpression; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCurrentUserExpression) { + listener.enterCurrentUserExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCurrentUserExpression) { + listener.exitCurrentUserExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCurrentUserExpression) { + return visitor.visitCurrentUserExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OwnerStatementContext extends ParserRuleContext { + public KW_DEFINER(): TerminalNode { return this.getToken(MySqlParser.KW_DEFINER, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public userName(): UserNameContext | undefined { + return this.tryGetRuleContext(0, UserNameContext); + } + public currentUserExpression(): CurrentUserExpressionContext | undefined { + return this.tryGetRuleContext(0, CurrentUserExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ownerStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOwnerStatement) { + listener.enterOwnerStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOwnerStatement) { + listener.exitOwnerStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOwnerStatement) { + return visitor.visitOwnerStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ScheduleExpressionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_scheduleExpression; } + public copyFrom(ctx: ScheduleExpressionContext): void { + super.copyFrom(ctx); + } +} +export class PreciseScheduleContext extends ScheduleExpressionContext { + public KW_AT(): TerminalNode { return this.getToken(MySqlParser.KW_AT, 0); } + public timestampValue(): TimestampValueContext { + return this.getRuleContext(0, TimestampValueContext); + } + public intervalExpr(): IntervalExprContext[]; + public intervalExpr(i: number): IntervalExprContext; + public intervalExpr(i?: number): IntervalExprContext | IntervalExprContext[] { + if (i === undefined) { + return this.getRuleContexts(IntervalExprContext); + } else { + return this.getRuleContext(i, IntervalExprContext); + } + } + constructor(ctx: ScheduleExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPreciseSchedule) { + listener.enterPreciseSchedule(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPreciseSchedule) { + listener.exitPreciseSchedule(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPreciseSchedule) { + return visitor.visitPreciseSchedule(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IntervalScheduleContext extends ScheduleExpressionContext { + public _startTimestamp!: TimestampValueContext; + public _intervalExpr!: IntervalExprContext; + public _startIntervals: IntervalExprContext[] = []; + public _endTimestamp!: TimestampValueContext; + public _endIntervals: IntervalExprContext[] = []; + public KW_EVERY(): TerminalNode { return this.getToken(MySqlParser.KW_EVERY, 0); } + public intervalType(): IntervalTypeContext { + return this.getRuleContext(0, IntervalTypeContext); + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_STARTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STARTS, 0); } + public KW_ENDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENDS, 0); } + public timestampValue(): TimestampValueContext[]; + public timestampValue(i: number): TimestampValueContext; + public timestampValue(i?: number): TimestampValueContext | TimestampValueContext[] { + if (i === undefined) { + return this.getRuleContexts(TimestampValueContext); + } else { + return this.getRuleContext(i, TimestampValueContext); + } + } + public intervalExpr(): IntervalExprContext[]; + public intervalExpr(i: number): IntervalExprContext; + public intervalExpr(i?: number): IntervalExprContext | IntervalExprContext[] { + if (i === undefined) { + return this.getRuleContexts(IntervalExprContext); + } else { + return this.getRuleContext(i, IntervalExprContext); + } + } + constructor(ctx: ScheduleExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIntervalSchedule) { + listener.enterIntervalSchedule(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIntervalSchedule) { + listener.exitIntervalSchedule(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIntervalSchedule) { + return visitor.visitIntervalSchedule(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TimestampValueContext extends ParserRuleContext { + public KW_CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIMESTAMP, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_timestampValue; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTimestampValue) { + listener.enterTimestampValue(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTimestampValue) { + listener.exitTimestampValue(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTimestampValue) { + return visitor.visitTimestampValue(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IntervalExprContext extends ParserRuleContext { + public PLUS(): TerminalNode { return this.getToken(MySqlParser.PLUS, 0); } + public KW_INTERVAL(): TerminalNode { return this.getToken(MySqlParser.KW_INTERVAL, 0); } + public intervalType(): IntervalTypeContext { + return this.getRuleContext(0, IntervalTypeContext); + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_intervalExpr; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIntervalExpr) { + listener.enterIntervalExpr(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIntervalExpr) { + listener.exitIntervalExpr(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIntervalExpr) { + return visitor.visitIntervalExpr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IntervalTypeContext extends ParserRuleContext { + public intervalTypeBase(): IntervalTypeBaseContext | undefined { + return this.tryGetRuleContext(0, IntervalTypeBaseContext); + } + public KW_YEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_YEAR, 0); } + public KW_YEAR_MONTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_YEAR_MONTH, 0); } + public KW_DAY_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY_HOUR, 0); } + public KW_DAY_MINUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY_MINUTE, 0); } + public KW_DAY_SECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY_SECOND, 0); } + public KW_HOUR_MINUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOUR_MINUTE, 0); } + public KW_HOUR_SECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOUR_SECOND, 0); } + public KW_MINUTE_SECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MINUTE_SECOND, 0); } + public KW_SECOND_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECOND_MICROSECOND, 0); } + public KW_MINUTE_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MINUTE_MICROSECOND, 0); } + public KW_HOUR_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOUR_MICROSECOND, 0); } + public KW_DAY_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY_MICROSECOND, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_intervalType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIntervalType) { + listener.enterIntervalType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIntervalType) { + listener.exitIntervalType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIntervalType) { + return visitor.visitIntervalType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class EnableTypeContext extends ParserRuleContext { + public KW_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENABLE, 0); } + public KW_DISABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISABLE, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_enableType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterEnableType) { + listener.enterEnableType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitEnableType) { + listener.exitEnableType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitEnableType) { + return visitor.visitEnableType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexTypeContext extends ParserRuleContext { + public KW_USING(): TerminalNode { return this.getToken(MySqlParser.KW_USING, 0); } + public KW_BTREE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BTREE, 0); } + public KW_HASH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HASH, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexType) { + listener.enterIndexType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexType) { + listener.exitIndexType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexType) { + return visitor.visitIndexType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexOptionContext extends ParserRuleContext { + public _parserName!: UidContext; + public KW_KEY_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY_BLOCK_SIZE, 0); } + public fileSizeLiteral(): FileSizeLiteralContext | undefined { + return this.tryGetRuleContext(0, FileSizeLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_PARSER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARSER, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_VISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VISIBLE, 0); } + public KW_INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVISIBLE, 0); } + public KW_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE_ATTRIBUTE, 0); } + public KW_SECONDARY_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexOption) { + listener.enterIndexOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexOption) { + listener.exitIndexOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexOption) { + return visitor.visitIndexOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ProcedureParameterContext extends ParserRuleContext { + public _direction!: Token; + public _paramName!: UidContext; + public dataType(): DataTypeContext { + return this.getRuleContext(0, DataTypeContext); + } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_IN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IN, 0); } + public KW_OUT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OUT, 0); } + public KW_INOUT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INOUT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_procedureParameter; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterProcedureParameter) { + listener.enterProcedureParameter(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitProcedureParameter) { + listener.exitProcedureParameter(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitProcedureParameter) { + return visitor.visitProcedureParameter(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RoutineOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_routineOption; } + public copyFrom(ctx: RoutineOptionContext): void { + super.copyFrom(ctx); + } +} +export class RoutineCommentContext extends RoutineOptionContext { + public KW_COMMENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: RoutineOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineComment) { + listener.enterRoutineComment(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineComment) { + listener.exitRoutineComment(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineComment) { + return visitor.visitRoutineComment(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RoutineLanguageContext extends RoutineOptionContext { + public KW_LANGUAGE(): TerminalNode { return this.getToken(MySqlParser.KW_LANGUAGE, 0); } + public KW_SQL(): TerminalNode { return this.getToken(MySqlParser.KW_SQL, 0); } + constructor(ctx: RoutineOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineLanguage) { + listener.enterRoutineLanguage(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineLanguage) { + listener.exitRoutineLanguage(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineLanguage) { + return visitor.visitRoutineLanguage(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RoutineBehaviorContext extends RoutineOptionContext { + public KW_DETERMINISTIC(): TerminalNode { return this.getToken(MySqlParser.KW_DETERMINISTIC, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(ctx: RoutineOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineBehavior) { + listener.enterRoutineBehavior(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineBehavior) { + listener.exitRoutineBehavior(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineBehavior) { + return visitor.visitRoutineBehavior(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RoutineDataContext extends RoutineOptionContext { + public KW_CONTAINS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTAINS, 0); } + public KW_SQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL, 0); } + public KW_NO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO, 0); } + public KW_READS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READS, 0); } + public KW_DATA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATA, 0); } + public KW_MODIFIES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MODIFIES, 0); } + constructor(ctx: RoutineOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineData) { + listener.enterRoutineData(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineData) { + listener.exitRoutineData(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineData) { + return visitor.visitRoutineData(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RoutineSecurityContext extends RoutineOptionContext { + public _context!: Token; + public KW_SQL(): TerminalNode { return this.getToken(MySqlParser.KW_SQL, 0); } + public KW_SECURITY(): TerminalNode { return this.getToken(MySqlParser.KW_SECURITY, 0); } + public KW_DEFINER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFINER, 0); } + public KW_INVOKER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKER, 0); } + constructor(ctx: RoutineOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineSecurity) { + listener.enterRoutineSecurity(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineSecurity) { + listener.exitRoutineSecurity(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineSecurity) { + return visitor.visitRoutineSecurity(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ServerOptionContext extends ParserRuleContext { + public KW_HOST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOST, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_SOCKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOCKET, 0); } + public KW_OWNER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OWNER, 0); } + public KW_PORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PORT, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_serverOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterServerOption) { + listener.enterServerOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitServerOption) { + listener.exitServerOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitServerOption) { + return visitor.visitServerOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateDefinitionsContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public createDefinition(): CreateDefinitionContext[]; + public createDefinition(i: number): CreateDefinitionContext; + public createDefinition(i?: number): CreateDefinitionContext | CreateDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(CreateDefinitionContext); + } else { + return this.getRuleContext(i, CreateDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createDefinitions; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateDefinitions) { + listener.enterCreateDefinitions(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateDefinitions) { + listener.exitCreateDefinitions(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateDefinitions) { + return visitor.visitCreateDefinitions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateDefinitionContext extends ParserRuleContext { + public columnName(): ColumnNameContext | undefined { + return this.tryGetRuleContext(0, ColumnNameContext); + } + public columnDefinition(): ColumnDefinitionContext | undefined { + return this.tryGetRuleContext(0, ColumnDefinitionContext); + } + public indexColumnNames(): IndexColumnNamesContext | undefined { + return this.tryGetRuleContext(0, IndexColumnNamesContext); + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + public indexName(): IndexNameContext | undefined { + return this.tryGetRuleContext(0, IndexNameContext); + } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + public KW_FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULLTEXT, 0); } + public KW_SPATIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SPATIAL, 0); } + public KW_PRIMARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIMARY, 0); } + public constraintSymbol(): ConstraintSymbolContext | undefined { + return this.tryGetRuleContext(0, ConstraintSymbolContext); + } + public KW_UNIQUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNIQUE, 0); } + public KW_FOREIGN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOREIGN, 0); } + public referenceDefinition(): ReferenceDefinitionContext | undefined { + return this.tryGetRuleContext(0, ReferenceDefinitionContext); + } + public KW_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECK, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public checkConstraintDefinition(): CheckConstraintDefinitionContext | undefined { + return this.tryGetRuleContext(0, CheckConstraintDefinitionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createDefinition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateDefinition) { + listener.enterCreateDefinition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateDefinition) { + listener.exitCreateDefinition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateDefinition) { + return visitor.visitCreateDefinition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CheckConstraintDefinitionContext extends ParserRuleContext { + public KW_CHECK(): TerminalNode { return this.getToken(MySqlParser.KW_CHECK, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public constraintSymbol(): ConstraintSymbolContext | undefined { + return this.tryGetRuleContext(0, ConstraintSymbolContext); + } + public KW_ENFORCED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENFORCED, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_checkConstraintDefinition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCheckConstraintDefinition) { + listener.enterCheckConstraintDefinition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCheckConstraintDefinition) { + listener.exitCheckConstraintDefinition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCheckConstraintDefinition) { + return visitor.visitCheckConstraintDefinition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConstraintSymbolContext extends ParserRuleContext { + public _symbol!: UidContext; + public KW_CONSTRAINT(): TerminalNode { return this.getToken(MySqlParser.KW_CONSTRAINT, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_constraintSymbol; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterConstraintSymbol) { + listener.enterConstraintSymbol(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitConstraintSymbol) { + listener.exitConstraintSymbol(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitConstraintSymbol) { + return visitor.visitConstraintSymbol(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ColumnDefinitionContext extends ParserRuleContext { + public dataType(): DataTypeContext { + return this.getRuleContext(0, DataTypeContext); + } + public columnConstraint(): ColumnConstraintContext[]; + public columnConstraint(i: number): ColumnConstraintContext; + public columnConstraint(i?: number): ColumnConstraintContext | ColumnConstraintContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnConstraintContext); + } else { + return this.getRuleContext(i, ColumnConstraintContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_columnDefinition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnDefinition) { + listener.enterColumnDefinition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnDefinition) { + listener.exitColumnDefinition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnDefinition) { + return visitor.visitColumnDefinition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ColumnConstraintContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_columnConstraint; } + public copyFrom(ctx: ColumnConstraintContext): void { + super.copyFrom(ctx); + } +} +export class NullColumnConstraintContext extends ColumnConstraintContext { + public nullNotnull(): NullNotnullContext { + return this.getRuleContext(0, NullNotnullContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNullColumnConstraint) { + listener.enterNullColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNullColumnConstraint) { + listener.exitNullColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNullColumnConstraint) { + return visitor.visitNullColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefaultColumnConstraintContext extends ColumnConstraintContext { + public KW_DEFAULT(): TerminalNode { return this.getToken(MySqlParser.KW_DEFAULT, 0); } + public defaultValue(): DefaultValueContext { + return this.getRuleContext(0, DefaultValueContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefaultColumnConstraint) { + listener.enterDefaultColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefaultColumnConstraint) { + listener.exitDefaultColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefaultColumnConstraint) { + return visitor.visitDefaultColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class VisibilityColumnConstraintContext extends ColumnConstraintContext { + public KW_VISIBLE(): TerminalNode { return this.getToken(MySqlParser.KW_VISIBLE, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterVisibilityColumnConstraint) { + listener.enterVisibilityColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitVisibilityColumnConstraint) { + listener.exitVisibilityColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitVisibilityColumnConstraint) { + return visitor.visitVisibilityColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class InvisibilityColumnConstraintContext extends ColumnConstraintContext { + public KW_INVISIBLE(): TerminalNode { return this.getToken(MySqlParser.KW_INVISIBLE, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInvisibilityColumnConstraint) { + listener.enterInvisibilityColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInvisibilityColumnConstraint) { + listener.exitInvisibilityColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInvisibilityColumnConstraint) { + return visitor.visitInvisibilityColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AutoIncrementColumnConstraintContext extends ColumnConstraintContext { + public KW_AUTO_INCREMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTO_INCREMENT, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public currentTimestamp(): CurrentTimestampContext | undefined { + return this.tryGetRuleContext(0, CurrentTimestampContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAutoIncrementColumnConstraint) { + listener.enterAutoIncrementColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAutoIncrementColumnConstraint) { + listener.exitAutoIncrementColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAutoIncrementColumnConstraint) { + return visitor.visitAutoIncrementColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PrimaryKeyColumnConstraintContext extends ColumnConstraintContext { + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public KW_PRIMARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIMARY, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrimaryKeyColumnConstraint) { + listener.enterPrimaryKeyColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrimaryKeyColumnConstraint) { + listener.exitPrimaryKeyColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrimaryKeyColumnConstraint) { + return visitor.visitPrimaryKeyColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class UniqueKeyColumnConstraintContext extends ColumnConstraintContext { + public KW_UNIQUE(): TerminalNode { return this.getToken(MySqlParser.KW_UNIQUE, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUniqueKeyColumnConstraint) { + listener.enterUniqueKeyColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUniqueKeyColumnConstraint) { + listener.exitUniqueKeyColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUniqueKeyColumnConstraint) { + return visitor.visitUniqueKeyColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CommentColumnConstraintContext extends ColumnConstraintContext { + public KW_COMMENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCommentColumnConstraint) { + listener.enterCommentColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCommentColumnConstraint) { + listener.exitCommentColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCommentColumnConstraint) { + return visitor.visitCommentColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class FormatColumnConstraintContext extends ColumnConstraintContext { + public _colformat!: Token; + public KW_COLUMN_FORMAT(): TerminalNode { return this.getToken(MySqlParser.KW_COLUMN_FORMAT, 0); } + public KW_FIXED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIXED, 0); } + public KW_DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DYNAMIC, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFormatColumnConstraint) { + listener.enterFormatColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFormatColumnConstraint) { + listener.exitFormatColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFormatColumnConstraint) { + return visitor.visitFormatColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class StorageColumnConstraintContext extends ColumnConstraintContext { + public _storageval!: Token; + public KW_STORAGE(): TerminalNode { return this.getToken(MySqlParser.KW_STORAGE, 0); } + public KW_DISK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISK, 0); } + public KW_MEMORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMORY, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStorageColumnConstraint) { + listener.enterStorageColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStorageColumnConstraint) { + listener.exitStorageColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStorageColumnConstraint) { + return visitor.visitStorageColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ReferenceColumnConstraintContext extends ColumnConstraintContext { + public referenceDefinition(): ReferenceDefinitionContext { + return this.getRuleContext(0, ReferenceDefinitionContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReferenceColumnConstraint) { + listener.enterReferenceColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReferenceColumnConstraint) { + listener.exitReferenceColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReferenceColumnConstraint) { + return visitor.visitReferenceColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CollateColumnConstraintContext extends ColumnConstraintContext { + public KW_COLLATE(): TerminalNode { return this.getToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext { + return this.getRuleContext(0, CollationNameContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCollateColumnConstraint) { + listener.enterCollateColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCollateColumnConstraint) { + listener.exitCollateColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCollateColumnConstraint) { + return visitor.visitCollateColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class GeneratedColumnConstraintContext extends ColumnConstraintContext { + public KW_AS(): TerminalNode { return this.getToken(MySqlParser.KW_AS, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_GENERATED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GENERATED, 0); } + public KW_ALWAYS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALWAYS, 0); } + public KW_VIRTUAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VIRTUAL, 0); } + public KW_STORED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STORED, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGeneratedColumnConstraint) { + listener.enterGeneratedColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGeneratedColumnConstraint) { + listener.exitGeneratedColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGeneratedColumnConstraint) { + return visitor.visitGeneratedColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SerialDefaultColumnConstraintContext extends ColumnConstraintContext { + public KW_SERIAL(): TerminalNode { return this.getToken(MySqlParser.KW_SERIAL, 0); } + public KW_DEFAULT(): TerminalNode { return this.getToken(MySqlParser.KW_DEFAULT, 0); } + public KW_VALUE(): TerminalNode { return this.getToken(MySqlParser.KW_VALUE, 0); } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSerialDefaultColumnConstraint) { + listener.enterSerialDefaultColumnConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSerialDefaultColumnConstraint) { + listener.exitSerialDefaultColumnConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSerialDefaultColumnConstraint) { + return visitor.visitSerialDefaultColumnConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CheckExprContext extends ColumnConstraintContext { + public checkConstraintDefinition(): CheckConstraintDefinitionContext { + return this.getRuleContext(0, CheckConstraintDefinitionContext); + } + constructor(ctx: ColumnConstraintContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCheckExpr) { + listener.enterCheckExpr(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCheckExpr) { + listener.exitCheckExpr(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCheckExpr) { + return visitor.visitCheckExpr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReferenceDefinitionContext extends ParserRuleContext { + public _matchType!: Token; + public KW_REFERENCES(): TerminalNode { return this.getToken(MySqlParser.KW_REFERENCES, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public indexColumnNames(): IndexColumnNamesContext | undefined { + return this.tryGetRuleContext(0, IndexColumnNamesContext); + } + public KW_MATCH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MATCH, 0); } + public referenceAction(): ReferenceActionContext | undefined { + return this.tryGetRuleContext(0, ReferenceActionContext); + } + public KW_FULL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULL, 0); } + public KW_PARTIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTIAL, 0); } + public KW_SIMPLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SIMPLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_referenceDefinition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReferenceDefinition) { + listener.enterReferenceDefinition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReferenceDefinition) { + listener.exitReferenceDefinition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReferenceDefinition) { + return visitor.visitReferenceDefinition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReferenceActionContext extends ParserRuleContext { + public _onDelete!: ReferenceControlTypeContext; + public _onUpdate!: ReferenceControlTypeContext; + public KW_ON(): TerminalNode[]; + public KW_ON(i: number): TerminalNode; + public KW_ON(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ON); + } else { + return this.getToken(MySqlParser.KW_ON, i); + } + } + public KW_DELETE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELETE, 0); } + public referenceControlType(): ReferenceControlTypeContext[]; + public referenceControlType(i: number): ReferenceControlTypeContext; + public referenceControlType(i?: number): ReferenceControlTypeContext | ReferenceControlTypeContext[] { + if (i === undefined) { + return this.getRuleContexts(ReferenceControlTypeContext); + } else { + return this.getRuleContext(i, ReferenceControlTypeContext); + } + } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_referenceAction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReferenceAction) { + listener.enterReferenceAction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReferenceAction) { + listener.exitReferenceAction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReferenceAction) { + return visitor.visitReferenceAction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReferenceControlTypeContext extends ParserRuleContext { + public KW_RESTRICT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESTRICT, 0); } + public KW_CASCADE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADE, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_NO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO, 0); } + public KW_ACTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ACTION, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_referenceControlType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReferenceControlType) { + listener.enterReferenceControlType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReferenceControlType) { + listener.exitReferenceControlType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReferenceControlType) { + return visitor.visitReferenceControlType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableOption; } + public copyFrom(ctx: TableOptionContext): void { + super.copyFrom(ctx); + } +} +export class TableOptionEngineContext extends TableOptionContext { + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public engineName(): EngineNameContext | undefined { + return this.tryGetRuleContext(0, EngineNameContext); + } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionEngine) { + listener.enterTableOptionEngine(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionEngine) { + listener.exitTableOptionEngine(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionEngine) { + return visitor.visitTableOptionEngine(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionEngineAttributeContext extends TableOptionContext { + public KW_ENGINE_ATTRIBUTE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE_ATTRIBUTE, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionEngineAttribute) { + listener.enterTableOptionEngineAttribute(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionEngineAttribute) { + listener.exitTableOptionEngineAttribute(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionEngineAttribute) { + return visitor.visitTableOptionEngineAttribute(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionAutoextendSizeContext extends TableOptionContext { + public KW_AUTOEXTEND_SIZE(): TerminalNode { return this.getToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionAutoextendSize) { + listener.enterTableOptionAutoextendSize(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionAutoextendSize) { + listener.exitTableOptionAutoextendSize(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionAutoextendSize) { + return visitor.visitTableOptionAutoextendSize(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionAutoIncrementContext extends TableOptionContext { + public KW_AUTO_INCREMENT(): TerminalNode { return this.getToken(MySqlParser.KW_AUTO_INCREMENT, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionAutoIncrement) { + listener.enterTableOptionAutoIncrement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionAutoIncrement) { + listener.exitTableOptionAutoIncrement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionAutoIncrement) { + return visitor.visitTableOptionAutoIncrement(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionAverageContext extends TableOptionContext { + public KW_AVG_ROW_LENGTH(): TerminalNode { return this.getToken(MySqlParser.KW_AVG_ROW_LENGTH, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionAverage) { + listener.enterTableOptionAverage(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionAverage) { + listener.exitTableOptionAverage(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionAverage) { + return visitor.visitTableOptionAverage(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionCharsetContext extends TableOptionContext { + public charSet(): CharSetContext { + return this.getRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_DEFAULT(): TerminalNode[]; + public KW_DEFAULT(i: number): TerminalNode; + public KW_DEFAULT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DEFAULT); + } else { + return this.getToken(MySqlParser.KW_DEFAULT, i); + } + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionCharset) { + listener.enterTableOptionCharset(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionCharset) { + listener.exitTableOptionCharset(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionCharset) { + return visitor.visitTableOptionCharset(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionChecksumContext extends TableOptionContext { + public _boolValue!: Token; + public KW_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECKSUM, 0); } + public KW_PAGE_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE_CHECKSUM, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionChecksum) { + listener.enterTableOptionChecksum(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionChecksum) { + listener.exitTableOptionChecksum(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionChecksum) { + return visitor.visitTableOptionChecksum(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionCollateContext extends TableOptionContext { + public KW_COLLATE(): TerminalNode { return this.getToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext { + return this.getRuleContext(0, CollationNameContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionCollate) { + listener.enterTableOptionCollate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionCollate) { + listener.exitTableOptionCollate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionCollate) { + return visitor.visitTableOptionCollate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionCommentContext extends TableOptionContext { + public KW_COMMENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionComment) { + listener.enterTableOptionComment(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionComment) { + listener.exitTableOptionComment(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionComment) { + return visitor.visitTableOptionComment(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionCompressionContext extends TableOptionContext { + public KW_COMPRESSION(): TerminalNode { return this.getToken(MySqlParser.KW_COMPRESSION, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionCompression) { + listener.enterTableOptionCompression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionCompression) { + listener.exitTableOptionCompression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionCompression) { + return visitor.visitTableOptionCompression(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionConnectionContext extends TableOptionContext { + public KW_CONNECTION(): TerminalNode { return this.getToken(MySqlParser.KW_CONNECTION, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionConnection) { + listener.enterTableOptionConnection(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionConnection) { + listener.exitTableOptionConnection(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionConnection) { + return visitor.visitTableOptionConnection(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionDataDirectoryContext extends TableOptionContext { + public KW_DIRECTORY(): TerminalNode { return this.getToken(MySqlParser.KW_DIRECTORY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_DATA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATA, 0); } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionDataDirectory) { + listener.enterTableOptionDataDirectory(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionDataDirectory) { + listener.exitTableOptionDataDirectory(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionDataDirectory) { + return visitor.visitTableOptionDataDirectory(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionDelayContext extends TableOptionContext { + public _boolValue!: Token; + public KW_DELAY_KEY_WRITE(): TerminalNode { return this.getToken(MySqlParser.KW_DELAY_KEY_WRITE, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionDelay) { + listener.enterTableOptionDelay(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionDelay) { + listener.exitTableOptionDelay(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionDelay) { + return visitor.visitTableOptionDelay(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionEncryptionContext extends TableOptionContext { + public KW_ENCRYPTION(): TerminalNode { return this.getToken(MySqlParser.KW_ENCRYPTION, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionEncryption) { + listener.enterTableOptionEncryption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionEncryption) { + listener.exitTableOptionEncryption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionEncryption) { + return visitor.visitTableOptionEncryption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionPageCompressedContext extends TableOptionContext { + public KW_PAGE_COMPRESSED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE_COMPRESSED, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionPageCompressed) { + listener.enterTableOptionPageCompressed(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionPageCompressed) { + listener.exitTableOptionPageCompressed(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionPageCompressed) { + return visitor.visitTableOptionPageCompressed(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionPageCompressionLevelContext extends TableOptionContext { + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public KW_PAGE_COMPRESSION_LEVEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE_COMPRESSION_LEVEL, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionPageCompressionLevel) { + listener.enterTableOptionPageCompressionLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionPageCompressionLevel) { + listener.exitTableOptionPageCompressionLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionPageCompressionLevel) { + return visitor.visitTableOptionPageCompressionLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionEncryptionKeyIdContext extends TableOptionContext { + public KW_ENCRYPTION_KEY_ID(): TerminalNode { return this.getToken(MySqlParser.KW_ENCRYPTION_KEY_ID, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionEncryptionKeyId) { + listener.enterTableOptionEncryptionKeyId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionEncryptionKeyId) { + listener.exitTableOptionEncryptionKeyId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionEncryptionKeyId) { + return visitor.visitTableOptionEncryptionKeyId(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionIndexDirectoryContext extends TableOptionContext { + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public KW_DIRECTORY(): TerminalNode { return this.getToken(MySqlParser.KW_DIRECTORY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionIndexDirectory) { + listener.enterTableOptionIndexDirectory(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionIndexDirectory) { + listener.exitTableOptionIndexDirectory(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionIndexDirectory) { + return visitor.visitTableOptionIndexDirectory(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionInsertMethodContext extends TableOptionContext { + public _insertMethod!: Token; + public KW_INSERT_METHOD(): TerminalNode { return this.getToken(MySqlParser.KW_INSERT_METHOD, 0); } + public KW_NO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_LAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAST, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionInsertMethod) { + listener.enterTableOptionInsertMethod(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionInsertMethod) { + listener.exitTableOptionInsertMethod(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionInsertMethod) { + return visitor.visitTableOptionInsertMethod(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionKeyBlockSizeContext extends TableOptionContext { + public KW_KEY_BLOCK_SIZE(): TerminalNode { return this.getToken(MySqlParser.KW_KEY_BLOCK_SIZE, 0); } + public fileSizeLiteral(): FileSizeLiteralContext { + return this.getRuleContext(0, FileSizeLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionKeyBlockSize) { + listener.enterTableOptionKeyBlockSize(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionKeyBlockSize) { + listener.exitTableOptionKeyBlockSize(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionKeyBlockSize) { + return visitor.visitTableOptionKeyBlockSize(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionMaxRowsContext extends TableOptionContext { + public KW_MAX_ROWS(): TerminalNode { return this.getToken(MySqlParser.KW_MAX_ROWS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionMaxRows) { + listener.enterTableOptionMaxRows(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionMaxRows) { + listener.exitTableOptionMaxRows(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionMaxRows) { + return visitor.visitTableOptionMaxRows(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionMinRowsContext extends TableOptionContext { + public KW_MIN_ROWS(): TerminalNode { return this.getToken(MySqlParser.KW_MIN_ROWS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionMinRows) { + listener.enterTableOptionMinRows(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionMinRows) { + listener.exitTableOptionMinRows(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionMinRows) { + return visitor.visitTableOptionMinRows(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionPackKeysContext extends TableOptionContext { + public _extBoolValue!: Token; + public KW_PACK_KEYS(): TerminalNode { return this.getToken(MySqlParser.KW_PACK_KEYS, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionPackKeys) { + listener.enterTableOptionPackKeys(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionPackKeys) { + listener.exitTableOptionPackKeys(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionPackKeys) { + return visitor.visitTableOptionPackKeys(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionPasswordContext extends TableOptionContext { + public KW_PASSWORD(): TerminalNode { return this.getToken(MySqlParser.KW_PASSWORD, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionPassword) { + listener.enterTableOptionPassword(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionPassword) { + listener.exitTableOptionPassword(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionPassword) { + return visitor.visitTableOptionPassword(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionRowFormatContext extends TableOptionContext { + public _rowFormat!: Token; + public KW_ROW_FORMAT(): TerminalNode { return this.getToken(MySqlParser.KW_ROW_FORMAT, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DYNAMIC, 0); } + public KW_FIXED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIXED, 0); } + public KW_COMPRESSED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPRESSED, 0); } + public KW_REDUNDANT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REDUNDANT, 0); } + public KW_COMPACT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPACT, 0); } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionRowFormat) { + listener.enterTableOptionRowFormat(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionRowFormat) { + listener.exitTableOptionRowFormat(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionRowFormat) { + return visitor.visitTableOptionRowFormat(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionStartTransactionContext extends TableOptionContext { + public KW_START(): TerminalNode { return this.getToken(MySqlParser.KW_START, 0); } + public KW_TRANSACTION(): TerminalNode { return this.getToken(MySqlParser.KW_TRANSACTION, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionStartTransaction) { + listener.enterTableOptionStartTransaction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionStartTransaction) { + listener.exitTableOptionStartTransaction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionStartTransaction) { + return visitor.visitTableOptionStartTransaction(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionSecondaryEngineAttributeContext extends TableOptionContext { + public KW_SECONDARY_ENGINE_ATTRIBUTE(): TerminalNode { return this.getToken(MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionSecondaryEngineAttribute) { + listener.enterTableOptionSecondaryEngineAttribute(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionSecondaryEngineAttribute) { + listener.exitTableOptionSecondaryEngineAttribute(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionSecondaryEngineAttribute) { + return visitor.visitTableOptionSecondaryEngineAttribute(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionRecalculationContext extends TableOptionContext { + public _extBoolValue!: Token; + public KW_STATS_AUTO_RECALC(): TerminalNode { return this.getToken(MySqlParser.KW_STATS_AUTO_RECALC, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionRecalculation) { + listener.enterTableOptionRecalculation(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionRecalculation) { + listener.exitTableOptionRecalculation(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionRecalculation) { + return visitor.visitTableOptionRecalculation(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionPersistentContext extends TableOptionContext { + public _extBoolValue!: Token; + public KW_STATS_PERSISTENT(): TerminalNode { return this.getToken(MySqlParser.KW_STATS_PERSISTENT, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionPersistent) { + listener.enterTableOptionPersistent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionPersistent) { + listener.exitTableOptionPersistent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionPersistent) { + return visitor.visitTableOptionPersistent(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionSamplePageContext extends TableOptionContext { + public KW_STATS_SAMPLE_PAGES(): TerminalNode { return this.getToken(MySqlParser.KW_STATS_SAMPLE_PAGES, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionSamplePage) { + listener.enterTableOptionSamplePage(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionSamplePage) { + listener.exitTableOptionSamplePage(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionSamplePage) { + return visitor.visitTableOptionSamplePage(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionTablespaceContext extends TableOptionContext { + public KW_TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceName(): TablespaceNameContext | undefined { + return this.tryGetRuleContext(0, TablespaceNameContext); + } + public tablespaceStorage(): TablespaceStorageContext | undefined { + return this.tryGetRuleContext(0, TablespaceStorageContext); + } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionTablespace) { + listener.enterTableOptionTablespace(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionTablespace) { + listener.exitTableOptionTablespace(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionTablespace) { + return visitor.visitTableOptionTablespace(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionTableTypeContext extends TableOptionContext { + public KW_TABLE_TYPE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE_TYPE, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public tableType(): TableTypeContext { + return this.getRuleContext(0, TableTypeContext); + } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionTableType) { + listener.enterTableOptionTableType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionTableType) { + listener.exitTableOptionTableType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionTableType) { + return visitor.visitTableOptionTableType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionTransactionalContext extends TableOptionContext { + public KW_TRANSACTIONAL(): TerminalNode { return this.getToken(MySqlParser.KW_TRANSACTIONAL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionTransactional) { + listener.enterTableOptionTransactional(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionTransactional) { + listener.exitTableOptionTransactional(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionTransactional) { + return visitor.visitTableOptionTransactional(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableOptionUnionContext extends TableOptionContext { + public KW_UNION(): TerminalNode { return this.getToken(MySqlParser.KW_UNION, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: TableOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableOptionUnion) { + listener.enterTableOptionUnion(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableOptionUnion) { + listener.exitTableOptionUnion(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableOptionUnion) { + return visitor.visitTableOptionUnion(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableTypeContext extends ParserRuleContext { + public KW_MYSQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL, 0); } + public KW_ODBC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ODBC, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableType) { + listener.enterTableType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableType) { + listener.exitTableType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableType) { + return visitor.visitTableType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TablespaceStorageContext extends ParserRuleContext { + public KW_STORAGE(): TerminalNode { return this.getToken(MySqlParser.KW_STORAGE, 0); } + public KW_DISK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISK, 0); } + public KW_MEMORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMORY, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tablespaceStorage; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTablespaceStorage) { + listener.enterTablespaceStorage(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTablespaceStorage) { + listener.exitTablespaceStorage(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTablespaceStorage) { + return visitor.visitTablespaceStorage(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionDefinitionsContext extends ParserRuleContext { + public _count!: DecimalLiteralContext; + public _subCount!: DecimalLiteralContext; + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public KW_BY(): TerminalNode[]; + public KW_BY(i: number): TerminalNode; + public KW_BY(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_BY); + } else { + return this.getToken(MySqlParser.KW_BY, i); + } + } + public partitionFunctionDefinition(): PartitionFunctionDefinitionContext { + return this.getRuleContext(0, PartitionFunctionDefinitionContext); + } + public KW_PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITIONS, 0); } + public KW_SUBPARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBPARTITION, 0); } + public subpartitionFunctionDefinition(): SubpartitionFunctionDefinitionContext | undefined { + return this.tryGetRuleContext(0, SubpartitionFunctionDefinitionContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public partitionDefinition(): PartitionDefinitionContext[]; + public partitionDefinition(i: number): PartitionDefinitionContext; + public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinitionContext); + } else { + return this.getRuleContext(i, PartitionDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public KW_SUBPARTITIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBPARTITIONS, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionDefinitions; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionDefinitions) { + listener.enterPartitionDefinitions(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionDefinitions) { + listener.exitPartitionDefinitions(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionDefinitions) { + return visitor.visitPartitionDefinitions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionFunctionDefinitionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionFunctionDefinition; } + public copyFrom(ctx: PartitionFunctionDefinitionContext): void { + super.copyFrom(ctx); + } +} +export class PartitionFunctionHashContext extends PartitionFunctionDefinitionContext { + public KW_HASH(): TerminalNode { return this.getToken(MySqlParser.KW_HASH, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_LINEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINEAR, 0); } + constructor(ctx: PartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionFunctionHash) { + listener.enterPartitionFunctionHash(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionFunctionHash) { + listener.exitPartitionFunctionHash(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionFunctionHash) { + return visitor.visitPartitionFunctionHash(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionFunctionKeyContext extends PartitionFunctionDefinitionContext { + public _algType!: Token; + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_LINEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINEAR, 0); } + public KW_ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALGORITHM, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.TWO_DECIMAL, 0); } + constructor(ctx: PartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionFunctionKey) { + listener.enterPartitionFunctionKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionFunctionKey) { + listener.exitPartitionFunctionKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionFunctionKey) { + return visitor.visitPartitionFunctionKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionFunctionRangeContext extends PartitionFunctionDefinitionContext { + public KW_RANGE(): TerminalNode { return this.getToken(MySqlParser.KW_RANGE, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + constructor(ctx: PartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionFunctionRange) { + listener.enterPartitionFunctionRange(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionFunctionRange) { + listener.exitPartitionFunctionRange(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionFunctionRange) { + return visitor.visitPartitionFunctionRange(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionFunctionListContext extends PartitionFunctionDefinitionContext { + public KW_LIST(): TerminalNode { return this.getToken(MySqlParser.KW_LIST, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + constructor(ctx: PartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionFunctionList) { + listener.enterPartitionFunctionList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionFunctionList) { + listener.exitPartitionFunctionList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionFunctionList) { + return visitor.visitPartitionFunctionList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SubpartitionFunctionDefinitionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_subpartitionFunctionDefinition; } + public copyFrom(ctx: SubpartitionFunctionDefinitionContext): void { + super.copyFrom(ctx); + } +} +export class SubPartitionFunctionHashContext extends SubpartitionFunctionDefinitionContext { + public KW_HASH(): TerminalNode { return this.getToken(MySqlParser.KW_HASH, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_LINEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINEAR, 0); } + constructor(ctx: SubpartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubPartitionFunctionHash) { + listener.enterSubPartitionFunctionHash(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubPartitionFunctionHash) { + listener.exitSubPartitionFunctionHash(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubPartitionFunctionHash) { + return visitor.visitSubPartitionFunctionHash(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SubPartitionFunctionKeyContext extends SubpartitionFunctionDefinitionContext { + public _algType!: Token; + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public columnNames(): ColumnNamesContext { + return this.getRuleContext(0, ColumnNamesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_LINEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINEAR, 0); } + public KW_ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALGORITHM, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.TWO_DECIMAL, 0); } + constructor(ctx: SubpartitionFunctionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubPartitionFunctionKey) { + listener.enterSubPartitionFunctionKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubPartitionFunctionKey) { + listener.exitSubPartitionFunctionKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubPartitionFunctionKey) { + return visitor.visitSubPartitionFunctionKey(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionDefinitionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionDefinition; } + public copyFrom(ctx: PartitionDefinitionContext): void { + super.copyFrom(ctx); + } +} +export class PartitionComparisonContext extends PartitionDefinitionContext { + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionName(): PartitionNameContext { + return this.getRuleContext(0, PartitionNameContext); + } + public KW_VALUES(): TerminalNode { return this.getToken(MySqlParser.KW_VALUES, 0); } + public KW_LESS(): TerminalNode { return this.getToken(MySqlParser.KW_LESS, 0); } + public KW_THAN(): TerminalNode { return this.getToken(MySqlParser.KW_THAN, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public partitionDefinerAtom(): PartitionDefinerAtomContext[]; + public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; + public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getRuleContext(i, PartitionDefinerAtomContext); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public partitionOption(): PartitionOptionContext[]; + public partitionOption(i: number): PartitionOptionContext; + public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionOptionContext); + } else { + return this.getRuleContext(i, PartitionOptionContext); + } + } + public subpartitionDefinition(): SubpartitionDefinitionContext[]; + public subpartitionDefinition(i: number): SubpartitionDefinitionContext; + public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getRuleContext(i, SubpartitionDefinitionContext); + } + } + constructor(ctx: PartitionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionComparison) { + listener.enterPartitionComparison(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionComparison) { + listener.exitPartitionComparison(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionComparison) { + return visitor.visitPartitionComparison(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionListAtomContext extends PartitionDefinitionContext { + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionName(): PartitionNameContext { + return this.getRuleContext(0, PartitionNameContext); + } + public KW_VALUES(): TerminalNode { return this.getToken(MySqlParser.KW_VALUES, 0); } + public KW_IN(): TerminalNode { return this.getToken(MySqlParser.KW_IN, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public partitionDefinerAtom(): PartitionDefinerAtomContext[]; + public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; + public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getRuleContext(i, PartitionDefinerAtomContext); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public partitionOption(): PartitionOptionContext[]; + public partitionOption(i: number): PartitionOptionContext; + public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionOptionContext); + } else { + return this.getRuleContext(i, PartitionOptionContext); + } + } + public subpartitionDefinition(): SubpartitionDefinitionContext[]; + public subpartitionDefinition(i: number): SubpartitionDefinitionContext; + public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getRuleContext(i, SubpartitionDefinitionContext); + } + } + constructor(ctx: PartitionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionListAtom) { + listener.enterPartitionListAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionListAtom) { + listener.exitPartitionListAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionListAtom) { + return visitor.visitPartitionListAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionListVectorContext extends PartitionDefinitionContext { + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionName(): PartitionNameContext { + return this.getRuleContext(0, PartitionNameContext); + } + public KW_VALUES(): TerminalNode { return this.getToken(MySqlParser.KW_VALUES, 0); } + public KW_IN(): TerminalNode { return this.getToken(MySqlParser.KW_IN, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public partitionDefinerVector(): PartitionDefinerVectorContext[]; + public partitionDefinerVector(i: number): PartitionDefinerVectorContext; + public partitionDefinerVector(i?: number): PartitionDefinerVectorContext | PartitionDefinerVectorContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinerVectorContext); + } else { + return this.getRuleContext(i, PartitionDefinerVectorContext); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public partitionOption(): PartitionOptionContext[]; + public partitionOption(i: number): PartitionOptionContext; + public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionOptionContext); + } else { + return this.getRuleContext(i, PartitionOptionContext); + } + } + public subpartitionDefinition(): SubpartitionDefinitionContext[]; + public subpartitionDefinition(i: number): SubpartitionDefinitionContext; + public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getRuleContext(i, SubpartitionDefinitionContext); + } + } + constructor(ctx: PartitionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionListVector) { + listener.enterPartitionListVector(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionListVector) { + listener.exitPartitionListVector(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionListVector) { + return visitor.visitPartitionListVector(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionSimpleContext extends PartitionDefinitionContext { + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionName(): PartitionNameContext { + return this.getRuleContext(0, PartitionNameContext); + } + public partitionOption(): PartitionOptionContext[]; + public partitionOption(i: number): PartitionOptionContext; + public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionOptionContext); + } else { + return this.getRuleContext(i, PartitionOptionContext); + } + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public subpartitionDefinition(): SubpartitionDefinitionContext[]; + public subpartitionDefinition(i: number): SubpartitionDefinitionContext; + public subpartitionDefinition(i?: number): SubpartitionDefinitionContext | SubpartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(SubpartitionDefinitionContext); + } else { + return this.getRuleContext(i, SubpartitionDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: PartitionDefinitionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionSimple) { + listener.enterPartitionSimple(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionSimple) { + listener.exitPartitionSimple(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionSimple) { + return visitor.visitPartitionSimple(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionDefinerAtomContext extends ParserRuleContext { + public constant(): ConstantContext | undefined { + return this.tryGetRuleContext(0, ConstantContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_MAXVALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAXVALUE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionDefinerAtom; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionDefinerAtom) { + listener.enterPartitionDefinerAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionDefinerAtom) { + listener.exitPartitionDefinerAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionDefinerAtom) { + return visitor.visitPartitionDefinerAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionDefinerVectorContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public partitionDefinerAtom(): PartitionDefinerAtomContext[]; + public partitionDefinerAtom(i: number): PartitionDefinerAtomContext; + public partitionDefinerAtom(i?: number): PartitionDefinerAtomContext | PartitionDefinerAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinerAtomContext); + } else { + return this.getRuleContext(i, PartitionDefinerAtomContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionDefinerVector; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionDefinerVector) { + listener.enterPartitionDefinerVector(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionDefinerVector) { + listener.exitPartitionDefinerVector(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionDefinerVector) { + return visitor.visitPartitionDefinerVector(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SubpartitionDefinitionContext extends ParserRuleContext { + public _logicalName!: UidContext; + public KW_SUBPARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_SUBPARTITION, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public partitionOption(): PartitionOptionContext[]; + public partitionOption(i: number): PartitionOptionContext; + public partitionOption(i?: number): PartitionOptionContext | PartitionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionOptionContext); + } else { + return this.getRuleContext(i, PartitionOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_subpartitionDefinition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubpartitionDefinition) { + listener.enterSubpartitionDefinition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubpartitionDefinition) { + listener.exitSubpartitionDefinition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubpartitionDefinition) { + return visitor.visitSubpartitionDefinition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionOption; } + public copyFrom(ctx: PartitionOptionContext): void { + super.copyFrom(ctx); + } +} +export class PartitionOptionEngineContext extends PartitionOptionContext { + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_STORAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STORAGE, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionEngine) { + listener.enterPartitionOptionEngine(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionEngine) { + listener.exitPartitionOptionEngine(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionEngine) { + return visitor.visitPartitionOptionEngine(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionCommentContext extends PartitionOptionContext { + public _comment!: Token; + public KW_COMMENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionComment) { + listener.enterPartitionOptionComment(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionComment) { + listener.exitPartitionOptionComment(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionComment) { + return visitor.visitPartitionOptionComment(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionDataDirectoryContext extends PartitionOptionContext { + public _dataDirectory!: Token; + public KW_DATA(): TerminalNode { return this.getToken(MySqlParser.KW_DATA, 0); } + public KW_DIRECTORY(): TerminalNode { return this.getToken(MySqlParser.KW_DIRECTORY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionDataDirectory) { + listener.enterPartitionOptionDataDirectory(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionDataDirectory) { + listener.exitPartitionOptionDataDirectory(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionDataDirectory) { + return visitor.visitPartitionOptionDataDirectory(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionIndexDirectoryContext extends PartitionOptionContext { + public _indexDirectory!: Token; + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public KW_DIRECTORY(): TerminalNode { return this.getToken(MySqlParser.KW_DIRECTORY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionIndexDirectory) { + listener.enterPartitionOptionIndexDirectory(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionIndexDirectory) { + listener.exitPartitionOptionIndexDirectory(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionIndexDirectory) { + return visitor.visitPartitionOptionIndexDirectory(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionMaxRowsContext extends PartitionOptionContext { + public _maxRows!: DecimalLiteralContext; + public KW_MAX_ROWS(): TerminalNode { return this.getToken(MySqlParser.KW_MAX_ROWS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionMaxRows) { + listener.enterPartitionOptionMaxRows(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionMaxRows) { + listener.exitPartitionOptionMaxRows(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionMaxRows) { + return visitor.visitPartitionOptionMaxRows(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionMinRowsContext extends PartitionOptionContext { + public _minRows!: DecimalLiteralContext; + public KW_MIN_ROWS(): TerminalNode { return this.getToken(MySqlParser.KW_MIN_ROWS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionMinRows) { + listener.enterPartitionOptionMinRows(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionMinRows) { + listener.exitPartitionOptionMinRows(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionMinRows) { + return visitor.visitPartitionOptionMinRows(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionTablespaceContext extends PartitionOptionContext { + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceName(): TablespaceNameContext { + return this.getRuleContext(0, TablespaceNameContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionTablespace) { + listener.enterPartitionOptionTablespace(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionTablespace) { + listener.exitPartitionOptionTablespace(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionTablespace) { + return visitor.visitPartitionOptionTablespace(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PartitionOptionNodeGroupContext extends PartitionOptionContext { + public _nodegroup!: UidContext; + public KW_NODEGROUP(): TerminalNode { return this.getToken(MySqlParser.KW_NODEGROUP, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: PartitionOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionOptionNodeGroup) { + listener.enterPartitionOptionNodeGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionOptionNodeGroup) { + listener.exitPartitionOptionNodeGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionOptionNodeGroup) { + return visitor.visitPartitionOptionNodeGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterDatabaseContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterDatabase; } + public copyFrom(ctx: AlterDatabaseContext): void { + super.copyFrom(ctx); + } +} +export class AlterSimpleDatabaseContext extends AlterDatabaseContext { + public _dbFormat!: Token; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public databaseName(): DatabaseNameContext | undefined { + return this.tryGetRuleContext(0, DatabaseNameContext); + } + public createDatabaseOption(): CreateDatabaseOptionContext[]; + public createDatabaseOption(i: number): CreateDatabaseOptionContext; + public createDatabaseOption(i?: number): CreateDatabaseOptionContext | CreateDatabaseOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(CreateDatabaseOptionContext); + } else { + return this.getRuleContext(i, CreateDatabaseOptionContext); + } + } + constructor(ctx: AlterDatabaseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterSimpleDatabase) { + listener.enterAlterSimpleDatabase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterSimpleDatabase) { + listener.exitAlterSimpleDatabase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterSimpleDatabase) { + return visitor.visitAlterSimpleDatabase(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterUpgradeNameContext extends AlterDatabaseContext { + public _dbFormat!: Token; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext); + } + public KW_UPGRADE(): TerminalNode { return this.getToken(MySqlParser.KW_UPGRADE, 0); } + public KW_DATA(): TerminalNode { return this.getToken(MySqlParser.KW_DATA, 0); } + public KW_DIRECTORY(): TerminalNode { return this.getToken(MySqlParser.KW_DIRECTORY, 0); } + public KW_NAME(): TerminalNode { return this.getToken(MySqlParser.KW_NAME, 0); } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + constructor(ctx: AlterDatabaseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterUpgradeName) { + listener.enterAlterUpgradeName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterUpgradeName) { + listener.exitAlterUpgradeName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterUpgradeName) { + return visitor.visitAlterUpgradeName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterEventContext extends ParserRuleContext { + public _event_name!: FullIdContext; + public _new_event_name!: FullIdContext; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_EVENT(): TerminalNode { return this.getToken(MySqlParser.KW_EVENT, 0); } + public fullId(): FullIdContext[]; + public fullId(i: number): FullIdContext; + public fullId(i?: number): FullIdContext | FullIdContext[] { + if (i === undefined) { + return this.getRuleContexts(FullIdContext); + } else { + return this.getRuleContext(i, FullIdContext); + } + } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public KW_ON(): TerminalNode[]; + public KW_ON(i: number): TerminalNode; + public KW_ON(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ON); + } else { + return this.getToken(MySqlParser.KW_ON, i); + } + } + public KW_SCHEDULE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEDULE, 0); } + public scheduleExpression(): ScheduleExpressionContext | undefined { + return this.tryGetRuleContext(0, ScheduleExpressionContext); + } + public KW_COMPLETION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPLETION, 0); } + public KW_PRESERVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRESERVE, 0); } + public KW_RENAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RENAME, 0); } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public enableType(): EnableTypeContext | undefined { + return this.tryGetRuleContext(0, EnableTypeContext); + } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_DO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DO, 0); } + public routineBody(): RoutineBodyContext | undefined { + return this.tryGetRuleContext(0, RoutineBodyContext); + } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterEvent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterEvent) { + listener.enterAlterEvent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterEvent) { + listener.exitAlterEvent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterEvent) { + return visitor.visitAlterEvent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterFunctionContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_FUNCTION(): TerminalNode { return this.getToken(MySqlParser.KW_FUNCTION, 0); } + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext); + } + public routineOption(): RoutineOptionContext[]; + public routineOption(i: number): RoutineOptionContext; + public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(RoutineOptionContext); + } else { + return this.getRuleContext(i, RoutineOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterFunction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterFunction) { + listener.enterAlterFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterFunction) { + listener.exitAlterFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterFunction) { + return visitor.visitAlterFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterInstanceContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_INSTANCE(): TerminalNode { return this.getToken(MySqlParser.KW_INSTANCE, 0); } + public KW_ROTATE(): TerminalNode { return this.getToken(MySqlParser.KW_ROTATE, 0); } + public KW_INNODB(): TerminalNode { return this.getToken(MySqlParser.KW_INNODB, 0); } + public KW_MASTER(): TerminalNode { return this.getToken(MySqlParser.KW_MASTER, 0); } + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterInstance; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterInstance) { + listener.enterAlterInstance(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterInstance) { + listener.exitAlterInstance(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterInstance) { + return visitor.visitAlterInstance(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterLogfileGroupContext extends ParserRuleContext { + public _logfileGroupName!: UidContext; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_LOGFILE(): TerminalNode { return this.getToken(MySqlParser.KW_LOGFILE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_UNDOFILE(): TerminalNode { return this.getToken(MySqlParser.KW_UNDOFILE, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIAL_SIZE, 0); } + public fileSizeLiteral(): FileSizeLiteralContext | undefined { + return this.tryGetRuleContext(0, FileSizeLiteralContext); + } + public KW_WAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WAIT, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterLogfileGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterLogfileGroup) { + listener.enterAlterLogfileGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterLogfileGroup) { + listener.exitAlterLogfileGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterLogfileGroup) { + return visitor.visitAlterLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterProcedureContext extends ParserRuleContext { + public _proc_name!: FullIdContext; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_PROCEDURE(): TerminalNode { return this.getToken(MySqlParser.KW_PROCEDURE, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public routineOption(): RoutineOptionContext[]; + public routineOption(i: number): RoutineOptionContext; + public routineOption(i?: number): RoutineOptionContext | RoutineOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(RoutineOptionContext); + } else { + return this.getRuleContext(i, RoutineOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterProcedure; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterProcedure) { + listener.enterAlterProcedure(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterProcedure) { + listener.exitAlterProcedure(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterProcedure) { + return visitor.visitAlterProcedure(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterServerContext extends ParserRuleContext { + public _serverName!: UidContext; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_SERVER(): TerminalNode { return this.getToken(MySqlParser.KW_SERVER, 0); } + public KW_OPTIONS(): TerminalNode { return this.getToken(MySqlParser.KW_OPTIONS, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public serverOption(): ServerOptionContext[]; + public serverOption(i: number): ServerOptionContext; + public serverOption(i?: number): ServerOptionContext | ServerOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(ServerOptionContext); + } else { + return this.getRuleContext(i, ServerOptionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterServer; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterServer) { + listener.enterAlterServer(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterServer) { + listener.exitAlterServer(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterServer) { + return visitor.visitAlterServer(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterTableContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public alterOption(): AlterOptionContext[]; + public alterOption(i: number): AlterOptionContext; + public alterOption(i?: number): AlterOptionContext | AlterOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(AlterOptionContext); + } else { + return this.getRuleContext(i, AlterOptionContext); + } + } + public alterPartitionSpecification(): AlterPartitionSpecificationContext[]; + public alterPartitionSpecification(i: number): AlterPartitionSpecificationContext; + public alterPartitionSpecification(i?: number): AlterPartitionSpecificationContext | AlterPartitionSpecificationContext[] { + if (i === undefined) { + return this.getRuleContexts(AlterPartitionSpecificationContext); + } else { + return this.getRuleContext(i, AlterPartitionSpecificationContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterTable) { + listener.enterAlterTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterTable) { + listener.exitAlterTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterTable) { + return visitor.visitAlterTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterTablespaceContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceName(): TablespaceNameContext { + return this.getRuleContext(0, TablespaceNameContext); + } + public KW_DATAFILE(): TerminalNode { return this.getToken(MySqlParser.KW_DATAFILE, 0); } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public KW_ADD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ADD, 0); } + public KW_DROP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DROP, 0); } + public KW_UNDO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO, 0); } + public KW_INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIAL_SIZE, 0); } + public fileSizeLiteral(): FileSizeLiteralContext[]; + public fileSizeLiteral(i: number): FileSizeLiteralContext; + public fileSizeLiteral(i?: number): FileSizeLiteralContext | FileSizeLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(FileSizeLiteralContext); + } else { + return this.getRuleContext(i, FileSizeLiteralContext); + } + } + public KW_WAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WAIT, 0); } + public KW_RENAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RENAME, 0); } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public tablespaceNameCreate(): TablespaceNameCreateContext | undefined { + return this.tryGetRuleContext(0, TablespaceNameCreateContext); + } + public KW_AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_ENCRYPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCRYPTION, 0); } + public KW_ENGINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext | undefined { + return this.tryGetRuleContext(0, EngineNameContext); + } + public KW_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE_ATTRIBUTE, 0); } + public KW_ACTIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ACTIVE, 0); } + public KW_INACTIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INACTIVE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterTablespace; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterTablespace) { + listener.enterAlterTablespace(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterTablespace) { + listener.exitAlterTablespace(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterTablespace) { + return visitor.visitAlterTablespace(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterViewContext extends ParserRuleContext { + public _algType!: Token; + public _secContext!: Token; + public _checkOpt!: Token; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_VIEW(): TerminalNode { return this.getToken(MySqlParser.KW_VIEW, 0); } + public viewName(): ViewNameContext { + return this.getRuleContext(0, ViewNameContext); + } + public KW_AS(): TerminalNode { return this.getToken(MySqlParser.KW_AS, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public KW_ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALGORITHM, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ownerStatement(): OwnerStatementContext | undefined { + return this.tryGetRuleContext(0, OwnerStatementContext); + } + public KW_SQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL, 0); } + public KW_SECURITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECURITY, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECK, 0); } + public KW_OPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTION, 0); } + public KW_UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDEFINED, 0); } + public KW_MERGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MERGE, 0); } + public KW_TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPTABLE, 0); } + public KW_DEFINER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFINER, 0); } + public KW_INVOKER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKER, 0); } + public KW_CASCADED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADED, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterView; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterView) { + listener.enterAlterView(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterView) { + listener.exitAlterView(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterView) { + return visitor.visitAlterView(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterOption; } + public copyFrom(ctx: AlterOptionContext): void { + super.copyFrom(ctx); + } +} +export class AlterByTableOptionContext extends AlterOptionContext { + public tableOption(): TableOptionContext[]; + public tableOption(i: number): TableOptionContext; + public tableOption(i?: number): TableOptionContext | TableOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TableOptionContext); + } else { + return this.getRuleContext(i, TableOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByTableOption) { + listener.enterAlterByTableOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByTableOption) { + listener.exitAlterByTableOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByTableOption) { + return visitor.visitAlterByTableOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddColumnContext extends AlterOptionContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext; + public columnName(i?: number): ColumnNameContext | ColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnNameContext); + } else { + return this.getRuleContext(i, ColumnNameContext); + } + } + public columnDefinition(): ColumnDefinitionContext { + return this.getRuleContext(0, ColumnDefinitionContext); + } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_AFTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AFTER, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddColumn) { + listener.enterAlterByAddColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddColumn) { + listener.exitAlterByAddColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddColumn) { + return visitor.visitAlterByAddColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddColumnsContext extends AlterOptionContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext; + public columnName(i?: number): ColumnNameContext | ColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnNameContext); + } else { + return this.getRuleContext(i, ColumnNameContext); + } + } + public columnDefinition(): ColumnDefinitionContext[]; + public columnDefinition(i: number): ColumnDefinitionContext; + public columnDefinition(i?: number): ColumnDefinitionContext | ColumnDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnDefinitionContext); + } else { + return this.getRuleContext(i, ColumnDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddColumns) { + listener.enterAlterByAddColumns(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddColumns) { + listener.exitAlterByAddColumns(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddColumns) { + return visitor.visitAlterByAddColumns(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddIndexContext extends AlterOptionContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + public indexName(): IndexNameContext | undefined { + return this.tryGetRuleContext(0, IndexNameContext); + } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddIndex) { + listener.enterAlterByAddIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddIndex) { + listener.exitAlterByAddIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddIndex) { + return visitor.visitAlterByAddIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddSpecialIndexContext extends AlterOptionContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public KW_FULLTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULLTEXT, 0); } + public KW_SPATIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SPATIAL, 0); } + public indexName(): IndexNameContext | undefined { + return this.tryGetRuleContext(0, IndexNameContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddSpecialIndex) { + listener.enterAlterByAddSpecialIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddSpecialIndex) { + listener.exitAlterByAddSpecialIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddSpecialIndex) { + return visitor.visitAlterByAddSpecialIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddPrimaryKeyContext extends AlterOptionContext { + public _symbol!: UidContext; + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_PRIMARY(): TerminalNode { return this.getToken(MySqlParser.KW_PRIMARY, 0); } + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public KW_CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT, 0); } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddPrimaryKey) { + listener.enterAlterByAddPrimaryKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddPrimaryKey) { + listener.exitAlterByAddPrimaryKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddPrimaryKey) { + return visitor.visitAlterByAddPrimaryKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddUniqueKeyContext extends AlterOptionContext { + public _symbol!: UidContext; + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_UNIQUE(): TerminalNode { return this.getToken(MySqlParser.KW_UNIQUE, 0); } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public KW_CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT, 0); } + public indexName(): IndexNameContext | undefined { + return this.tryGetRuleContext(0, IndexNameContext); + } + public indexType(): IndexTypeContext | undefined { + return this.tryGetRuleContext(0, IndexTypeContext); + } + public indexOption(): IndexOptionContext[]; + public indexOption(i: number): IndexOptionContext; + public indexOption(i?: number): IndexOptionContext | IndexOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexOptionContext); + } else { + return this.getRuleContext(i, IndexOptionContext); + } + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddUniqueKey) { + listener.enterAlterByAddUniqueKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddUniqueKey) { + listener.exitAlterByAddUniqueKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddUniqueKey) { + return visitor.visitAlterByAddUniqueKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddForeignKeyContext extends AlterOptionContext { + public _symbol!: UidContext; + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_FOREIGN(): TerminalNode { return this.getToken(MySqlParser.KW_FOREIGN, 0); } + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public indexColumnNames(): IndexColumnNamesContext { + return this.getRuleContext(0, IndexColumnNamesContext); + } + public referenceDefinition(): ReferenceDefinitionContext { + return this.getRuleContext(0, ReferenceDefinitionContext); + } + public KW_CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT, 0); } + public indexName(): IndexNameContext | undefined { + return this.tryGetRuleContext(0, IndexNameContext); + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddForeignKey) { + listener.enterAlterByAddForeignKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddForeignKey) { + listener.exitAlterByAddForeignKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddForeignKey) { + return visitor.visitAlterByAddForeignKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAddCheckTableConstraintContext extends AlterOptionContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public checkConstraintDefinition(): CheckConstraintDefinitionContext | undefined { + return this.tryGetRuleContext(0, CheckConstraintDefinitionContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddCheckTableConstraint) { + listener.enterAlterByAddCheckTableConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddCheckTableConstraint) { + listener.exitAlterByAddCheckTableConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddCheckTableConstraint) { + return visitor.visitAlterByAddCheckTableConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropConstraintCheckContext extends AlterOptionContext { + public _symbol!: UidContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECK, 0); } + public KW_CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropConstraintCheck) { + listener.enterAlterByDropConstraintCheck(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropConstraintCheck) { + listener.exitAlterByDropConstraintCheck(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropConstraintCheck) { + return visitor.visitAlterByDropConstraintCheck(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAlterCheckTableConstraintContext extends AlterOptionContext { + public _symbol!: UidContext; + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECK, 0); } + public KW_CONSTRAINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + public KW_ENFORCED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENFORCED, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAlterCheckTableConstraint) { + listener.enterAlterByAlterCheckTableConstraint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAlterCheckTableConstraint) { + listener.exitAlterByAlterCheckTableConstraint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAlterCheckTableConstraint) { + return visitor.visitAlterByAlterCheckTableConstraint(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterBySetAlgorithmContext extends AlterOptionContext { + public KW_ALGORITHM(): TerminalNode { return this.getToken(MySqlParser.KW_ALGORITHM, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_INSTANT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSTANT, 0); } + public KW_INPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INPLACE, 0); } + public KW_COPY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COPY, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterBySetAlgorithm) { + listener.enterAlterBySetAlgorithm(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterBySetAlgorithm) { + listener.exitAlterBySetAlgorithm(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterBySetAlgorithm) { + return visitor.visitAlterBySetAlgorithm(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAlterColumnDefaultContext extends AlterOptionContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public defaultValue(): DefaultValueContext | undefined { + return this.tryGetRuleContext(0, DefaultValueContext); + } + public KW_DROP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DROP, 0); } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + public KW_VISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VISIBLE, 0); } + public KW_INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVISIBLE, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAlterColumnDefault) { + listener.enterAlterByAlterColumnDefault(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAlterColumnDefault) { + listener.exitAlterByAlterColumnDefault(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAlterColumnDefault) { + return visitor.visitAlterByAlterColumnDefault(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAlterIndexVisibilityContext extends AlterOptionContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public indexName(): IndexNameContext { + return this.getRuleContext(0, IndexNameContext); + } + public KW_VISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VISIBLE, 0); } + public KW_INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVISIBLE, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAlterIndexVisibility) { + listener.enterAlterByAlterIndexVisibility(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAlterIndexVisibility) { + listener.exitAlterByAlterIndexVisibility(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAlterIndexVisibility) { + return visitor.visitAlterByAlterIndexVisibility(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByChangeColumnContext extends AlterOptionContext { + public _oldColumn!: ColumnNameContext; + public _newColumn!: ColumnNameCreateContext; + public KW_CHANGE(): TerminalNode { return this.getToken(MySqlParser.KW_CHANGE, 0); } + public columnDefinition(): ColumnDefinitionContext { + return this.getRuleContext(0, ColumnDefinitionContext); + } + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext; + public columnName(i?: number): ColumnNameContext | ColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnNameContext); + } else { + return this.getRuleContext(i, ColumnNameContext); + } + } + public columnNameCreate(): ColumnNameCreateContext { + return this.getRuleContext(0, ColumnNameCreateContext); + } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_AFTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AFTER, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByChangeColumn) { + listener.enterAlterByChangeColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByChangeColumn) { + listener.exitAlterByChangeColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByChangeColumn) { + return visitor.visitAlterByChangeColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDefaultCharsetContext extends AlterOptionContext { + public KW_CHARACTER(): TerminalNode { return this.getToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public charsetName(): CharsetNameContext { + return this.getRuleContext(0, CharsetNameContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDefaultCharset) { + listener.enterAlterByDefaultCharset(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDefaultCharset) { + listener.exitAlterByDefaultCharset(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDefaultCharset) { + return visitor.visitAlterByDefaultCharset(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByConvertCharsetContext extends AlterOptionContext { + public KW_CONVERT(): TerminalNode { return this.getToken(MySqlParser.KW_CONVERT, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public charsetName(): CharsetNameContext { + return this.getRuleContext(0, CharsetNameContext); + } + public KW_CHARSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARSET, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByConvertCharset) { + listener.enterAlterByConvertCharset(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByConvertCharset) { + listener.exitAlterByConvertCharset(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByConvertCharset) { + return visitor.visitAlterByConvertCharset(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterKeysContext extends AlterOptionContext { + public KW_KEYS(): TerminalNode { return this.getToken(MySqlParser.KW_KEYS, 0); } + public KW_DISABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISABLE, 0); } + public KW_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENABLE, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterKeys) { + listener.enterAlterKeys(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterKeys) { + listener.exitAlterKeys(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterKeys) { + return visitor.visitAlterKeys(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterTablespaceOptionContext extends AlterOptionContext { + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public KW_DISCARD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISCARD, 0); } + public KW_IMPORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IMPORT, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterTablespaceOption) { + listener.enterAlterTablespaceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterTablespaceOption) { + listener.exitAlterTablespaceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterTablespaceOption) { + return visitor.visitAlterTablespaceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropColumnContext extends AlterOptionContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropColumn) { + listener.enterAlterByDropColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropColumn) { + listener.exitAlterByDropColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropColumn) { + return visitor.visitAlterByDropColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropIndexContext extends AlterOptionContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public indexName(): IndexNameContext { + return this.getRuleContext(0, IndexNameContext); + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropIndex) { + listener.enterAlterByDropIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropIndex) { + listener.exitAlterByDropIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropIndex) { + return visitor.visitAlterByDropIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropPrimaryKeyContext extends AlterOptionContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_PRIMARY(): TerminalNode { return this.getToken(MySqlParser.KW_PRIMARY, 0); } + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropPrimaryKey) { + listener.enterAlterByDropPrimaryKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropPrimaryKey) { + listener.exitAlterByDropPrimaryKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropPrimaryKey) { + return visitor.visitAlterByDropPrimaryKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropForeignKeyContext extends AlterOptionContext { + public _fk_symbol!: UidContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_FOREIGN(): TerminalNode { return this.getToken(MySqlParser.KW_FOREIGN, 0); } + public KW_KEY(): TerminalNode { return this.getToken(MySqlParser.KW_KEY, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropForeignKey) { + listener.enterAlterByDropForeignKey(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropForeignKey) { + listener.exitAlterByDropForeignKey(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropForeignKey) { + return visitor.visitAlterByDropForeignKey(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByForceContext extends AlterOptionContext { + public KW_FORCE(): TerminalNode { return this.getToken(MySqlParser.KW_FORCE, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByForce) { + listener.enterAlterByForce(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByForce) { + listener.exitAlterByForce(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByForce) { + return visitor.visitAlterByForce(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByLockContext extends AlterOptionContext { + public _lockType!: Token; + public KW_LOCK(): TerminalNode { return this.getToken(MySqlParser.KW_LOCK, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public KW_SHARED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHARED, 0); } + public KW_EXCLUSIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCLUSIVE, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByLock) { + listener.enterAlterByLock(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByLock) { + listener.exitAlterByLock(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByLock) { + return visitor.visitAlterByLock(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByModifyColumnContext extends AlterOptionContext { + public KW_MODIFY(): TerminalNode { return this.getToken(MySqlParser.KW_MODIFY, 0); } + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext; + public columnName(i?: number): ColumnNameContext | ColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnNameContext); + } else { + return this.getRuleContext(i, ColumnNameContext); + } + } + public columnDefinition(): ColumnDefinitionContext { + return this.getRuleContext(0, ColumnDefinitionContext); + } + public KW_COLUMN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_AFTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AFTER, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByModifyColumn) { + listener.enterAlterByModifyColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByModifyColumn) { + listener.exitAlterByModifyColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByModifyColumn) { + return visitor.visitAlterByModifyColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByOrderContext extends AlterOptionContext { + public KW_ORDER(): TerminalNode { return this.getToken(MySqlParser.KW_ORDER, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public columnNames(): ColumnNamesContext { + return this.getRuleContext(0, ColumnNamesContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByOrder) { + listener.enterAlterByOrder(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByOrder) { + listener.exitAlterByOrder(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByOrder) { + return visitor.visitAlterByOrder(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRenameColumnContext extends AlterOptionContext { + public _olcdColumn!: ColumnNameContext; + public _newColumn!: ColumnNameCreateContext; + public KW_RENAME(): TerminalNode { return this.getToken(MySqlParser.KW_RENAME, 0); } + public KW_COLUMN(): TerminalNode { return this.getToken(MySqlParser.KW_COLUMN, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public columnNameCreate(): ColumnNameCreateContext { + return this.getRuleContext(0, ColumnNameCreateContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRenameColumn) { + listener.enterAlterByRenameColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRenameColumn) { + listener.exitAlterByRenameColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRenameColumn) { + return visitor.visitAlterByRenameColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRenameIndexContext extends AlterOptionContext { + public _indexFormat!: Token; + public KW_RENAME(): TerminalNode { return this.getToken(MySqlParser.KW_RENAME, 0); } + public indexName(): IndexNameContext { + return this.getRuleContext(0, IndexNameContext); + } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public indexNameCreate(): IndexNameCreateContext { + return this.getRuleContext(0, IndexNameCreateContext); + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRenameIndex) { + listener.enterAlterByRenameIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRenameIndex) { + listener.exitAlterByRenameIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRenameIndex) { + return visitor.visitAlterByRenameIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRenameContext extends AlterOptionContext { + public _renameFormat!: Token; + public KW_RENAME(): TerminalNode { return this.getToken(MySqlParser.KW_RENAME, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRename) { + listener.enterAlterByRename(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRename) { + listener.exitAlterByRename(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRename) { + return visitor.visitAlterByRename(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByValidateContext extends AlterOptionContext { + public KW_VALIDATION(): TerminalNode { return this.getToken(MySqlParser.KW_VALIDATION, 0); } + public KW_WITHOUT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITHOUT, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByValidate) { + listener.enterAlterByValidate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByValidate) { + listener.exitAlterByValidate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByValidate) { + return visitor.visitAlterByValidate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterPartitionContext extends AlterOptionContext { + public alterPartitionSpecification(): AlterPartitionSpecificationContext { + return this.getRuleContext(0, AlterPartitionSpecificationContext); + } + constructor(ctx: AlterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterPartition) { + listener.enterAlterPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterPartition) { + listener.exitAlterPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterPartition) { + return visitor.visitAlterPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterPartitionSpecificationContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterPartitionSpecification; } + public copyFrom(ctx: AlterPartitionSpecificationContext): void { + super.copyFrom(ctx); + } +} +export class AlterByAddPartitionContext extends AlterPartitionSpecificationContext { + public KW_ADD(): TerminalNode { return this.getToken(MySqlParser.KW_ADD, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public partitionDefinition(): PartitionDefinitionContext[]; + public partitionDefinition(i: number): PartitionDefinitionContext; + public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinitionContext); + } else { + return this.getRuleContext(i, PartitionDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAddPartition) { + listener.enterAlterByAddPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAddPartition) { + listener.exitAlterByAddPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAddPartition) { + return visitor.visitAlterByAddPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDropPartitionContext extends AlterPartitionSpecificationContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext { + return this.getRuleContext(0, PartitionNamesContext); + } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDropPartition) { + listener.enterAlterByDropPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDropPartition) { + listener.exitAlterByDropPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDropPartition) { + return visitor.visitAlterByDropPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByDiscardPartitionContext extends AlterPartitionSpecificationContext { + public KW_DISCARD(): TerminalNode { return this.getToken(MySqlParser.KW_DISCARD, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByDiscardPartition) { + listener.enterAlterByDiscardPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByDiscardPartition) { + listener.exitAlterByDiscardPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByDiscardPartition) { + return visitor.visitAlterByDiscardPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByImportPartitionContext extends AlterPartitionSpecificationContext { + public KW_IMPORT(): TerminalNode { return this.getToken(MySqlParser.KW_IMPORT, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByImportPartition) { + listener.enterAlterByImportPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByImportPartition) { + listener.exitAlterByImportPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByImportPartition) { + return visitor.visitAlterByImportPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByTruncatePartitionContext extends AlterPartitionSpecificationContext { + public KW_TRUNCATE(): TerminalNode { return this.getToken(MySqlParser.KW_TRUNCATE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByTruncatePartition) { + listener.enterAlterByTruncatePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByTruncatePartition) { + listener.exitAlterByTruncatePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByTruncatePartition) { + return visitor.visitAlterByTruncatePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByCoalescePartitionContext extends AlterPartitionSpecificationContext { + public KW_COALESCE(): TerminalNode { return this.getToken(MySqlParser.KW_COALESCE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByCoalescePartition) { + listener.enterAlterByCoalescePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByCoalescePartition) { + listener.exitAlterByCoalescePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByCoalescePartition) { + return visitor.visitAlterByCoalescePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByReorganizePartitionContext extends AlterPartitionSpecificationContext { + public KW_REORGANIZE(): TerminalNode { return this.getToken(MySqlParser.KW_REORGANIZE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext { + return this.getRuleContext(0, PartitionNamesContext); + } + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public partitionDefinition(): PartitionDefinitionContext[]; + public partitionDefinition(i: number): PartitionDefinitionContext; + public partitionDefinition(i?: number): PartitionDefinitionContext | PartitionDefinitionContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionDefinitionContext); + } else { + return this.getRuleContext(i, PartitionDefinitionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByReorganizePartition) { + listener.enterAlterByReorganizePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByReorganizePartition) { + listener.exitAlterByReorganizePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByReorganizePartition) { + return visitor.visitAlterByReorganizePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByExchangePartitionContext extends AlterPartitionSpecificationContext { + public _validationFormat!: Token; + public KW_EXCHANGE(): TerminalNode { return this.getToken(MySqlParser.KW_EXCHANGE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionName(): PartitionNameContext { + return this.getRuleContext(0, PartitionNameContext); + } + public KW_WITH(): TerminalNode[]; + public KW_WITH(i: number): TerminalNode; + public KW_WITH(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_WITH); + } else { + return this.getToken(MySqlParser.KW_WITH, i); + } + } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_VALIDATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALIDATION, 0); } + public KW_WITHOUT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITHOUT, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByExchangePartition) { + listener.enterAlterByExchangePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByExchangePartition) { + listener.exitAlterByExchangePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByExchangePartition) { + return visitor.visitAlterByExchangePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByAnalyzePartitionContext extends AlterPartitionSpecificationContext { + public KW_ANALYZE(): TerminalNode { return this.getToken(MySqlParser.KW_ANALYZE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByAnalyzePartition) { + listener.enterAlterByAnalyzePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByAnalyzePartition) { + listener.exitAlterByAnalyzePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByAnalyzePartition) { + return visitor.visitAlterByAnalyzePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByCheckPartitionContext extends AlterPartitionSpecificationContext { + public KW_CHECK(): TerminalNode { return this.getToken(MySqlParser.KW_CHECK, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByCheckPartition) { + listener.enterAlterByCheckPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByCheckPartition) { + listener.exitAlterByCheckPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByCheckPartition) { + return visitor.visitAlterByCheckPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByOptimizePartitionContext extends AlterPartitionSpecificationContext { + public KW_OPTIMIZE(): TerminalNode { return this.getToken(MySqlParser.KW_OPTIMIZE, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByOptimizePartition) { + listener.enterAlterByOptimizePartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByOptimizePartition) { + listener.exitAlterByOptimizePartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByOptimizePartition) { + return visitor.visitAlterByOptimizePartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRebuildPartitionContext extends AlterPartitionSpecificationContext { + public KW_REBUILD(): TerminalNode { return this.getToken(MySqlParser.KW_REBUILD, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRebuildPartition) { + listener.enterAlterByRebuildPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRebuildPartition) { + listener.exitAlterByRebuildPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRebuildPartition) { + return visitor.visitAlterByRebuildPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRepairPartitionContext extends AlterPartitionSpecificationContext { + public KW_REPAIR(): TerminalNode { return this.getToken(MySqlParser.KW_REPAIR, 0); } + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRepairPartition) { + listener.enterAlterByRepairPartition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRepairPartition) { + listener.exitAlterByRepairPartition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRepairPartition) { + return visitor.visitAlterByRepairPartition(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByRemovePartitioningContext extends AlterPartitionSpecificationContext { + public KW_REMOVE(): TerminalNode { return this.getToken(MySqlParser.KW_REMOVE, 0); } + public KW_PARTITIONING(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITIONING, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByRemovePartitioning) { + listener.enterAlterByRemovePartitioning(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByRemovePartitioning) { + listener.exitAlterByRemovePartitioning(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByRemovePartitioning) { + return visitor.visitAlterByRemovePartitioning(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AlterByUpgradePartitioningContext extends AlterPartitionSpecificationContext { + public KW_UPGRADE(): TerminalNode { return this.getToken(MySqlParser.KW_UPGRADE, 0); } + public KW_PARTITIONING(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITIONING, 0); } + constructor(ctx: AlterPartitionSpecificationContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterByUpgradePartitioning) { + listener.enterAlterByUpgradePartitioning(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterByUpgradePartitioning) { + listener.exitAlterByUpgradePartitioning(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterByUpgradePartitioning) { + return visitor.visitAlterByUpgradePartitioning(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropDatabaseContext extends ParserRuleContext { + public _dbFormat!: Token; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext); + } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropDatabase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropDatabase) { + listener.enterDropDatabase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropDatabase) { + listener.exitDropDatabase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropDatabase) { + return visitor.visitDropDatabase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropEventContext extends ParserRuleContext { + public _event_name!: FullIdContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_EVENT(): TerminalNode { return this.getToken(MySqlParser.KW_EVENT, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropEvent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropEvent) { + listener.enterDropEvent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropEvent) { + listener.exitDropEvent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropEvent) { + return visitor.visitDropEvent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropIndexContext extends ParserRuleContext { + public _intimeAction!: Token; + public _algType!: Token; + public _lockType!: Token; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public indexName(): IndexNameContext { + return this.getRuleContext(0, IndexNameContext); + } + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_ALGORITHM(): TerminalNode[]; + public KW_ALGORITHM(i: number): TerminalNode; + public KW_ALGORITHM(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ALGORITHM); + } else { + return this.getToken(MySqlParser.KW_ALGORITHM, i); + } + } + public KW_LOCK(): TerminalNode[]; + public KW_LOCK(i: number): TerminalNode; + public KW_LOCK(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_LOCK); + } else { + return this.getToken(MySqlParser.KW_LOCK, i); + } + } + public KW_ONLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLINE, 0); } + public KW_OFFLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFLINE, 0); } + public KW_DEFAULT(): TerminalNode[]; + public KW_DEFAULT(i: number): TerminalNode; + public KW_DEFAULT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DEFAULT); + } else { + return this.getToken(MySqlParser.KW_DEFAULT, i); + } + } + public KW_INPLACE(): TerminalNode[]; + public KW_INPLACE(i: number): TerminalNode; + public KW_INPLACE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_INPLACE); + } else { + return this.getToken(MySqlParser.KW_INPLACE, i); + } + } + public KW_COPY(): TerminalNode[]; + public KW_COPY(i: number): TerminalNode; + public KW_COPY(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_COPY); + } else { + return this.getToken(MySqlParser.KW_COPY, i); + } + } + public KW_NONE(): TerminalNode[]; + public KW_NONE(i: number): TerminalNode; + public KW_NONE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_NONE); + } else { + return this.getToken(MySqlParser.KW_NONE, i); + } + } + public KW_SHARED(): TerminalNode[]; + public KW_SHARED(i: number): TerminalNode; + public KW_SHARED(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_SHARED); + } else { + return this.getToken(MySqlParser.KW_SHARED, i); + } + } + public KW_EXCLUSIVE(): TerminalNode[]; + public KW_EXCLUSIVE(i: number): TerminalNode; + public KW_EXCLUSIVE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_EXCLUSIVE); + } else { + return this.getToken(MySqlParser.KW_EXCLUSIVE, i); + } + } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropIndex; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropIndex) { + listener.enterDropIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropIndex) { + listener.exitDropIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropIndex) { + return visitor.visitDropIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropLogfileGroupContext extends ParserRuleContext { + public _logfileGroupName!: UidContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_LOGFILE(): TerminalNode { return this.getToken(MySqlParser.KW_LOGFILE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropLogfileGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropLogfileGroup) { + listener.enterDropLogfileGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropLogfileGroup) { + listener.exitDropLogfileGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropLogfileGroup) { + return visitor.visitDropLogfileGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropProcedureContext extends ParserRuleContext { + public _sp_name!: FullIdContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_PROCEDURE(): TerminalNode { return this.getToken(MySqlParser.KW_PROCEDURE, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropProcedure; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropProcedure) { + listener.enterDropProcedure(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropProcedure) { + listener.exitDropProcedure(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropProcedure) { + return visitor.visitDropProcedure(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropFunctionContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_FUNCTION(): TerminalNode { return this.getToken(MySqlParser.KW_FUNCTION, 0); } + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropFunction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropFunction) { + listener.enterDropFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropFunction) { + listener.exitDropFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropFunction) { + return visitor.visitDropFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropServerContext extends ParserRuleContext { + public _serverName!: UidContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_SERVER(): TerminalNode { return this.getToken(MySqlParser.KW_SERVER, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropServer; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropServer) { + listener.enterDropServer(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropServer) { + listener.exitDropServer(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropServer) { + return visitor.visitDropServer(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropSpatialContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_SPATIAL(): TerminalNode { return this.getToken(MySqlParser.KW_SPATIAL, 0); } + public KW_REFERENCE(): TerminalNode { return this.getToken(MySqlParser.KW_REFERENCE, 0); } + public KW_SYSTEM(): TerminalNode { return this.getToken(MySqlParser.KW_SYSTEM, 0); } + public DECIMAL_LITERAL(): TerminalNode { return this.getToken(MySqlParser.DECIMAL_LITERAL, 0); } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropSpatial; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropSpatial) { + listener.enterDropSpatial(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropSpatial) { + listener.exitDropSpatial(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropSpatial) { + return visitor.visitDropSpatial(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropTableContext extends ParserRuleContext { + public _dropType!: Token; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public KW_RESTRICT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESTRICT, 0); } + public KW_CASCADE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropTable) { + listener.enterDropTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropTable) { + listener.exitDropTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropTable) { + return visitor.visitDropTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropTablespaceContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_TABLESPACE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLESPACE, 0); } + public tablespaceName(): TablespaceNameContext { + return this.getRuleContext(0, TablespaceNameContext); + } + public KW_UNDO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO, 0); } + public KW_ENGINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext | undefined { + return this.tryGetRuleContext(0, EngineNameContext); + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropTablespace; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropTablespace) { + listener.enterDropTablespace(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropTablespace) { + listener.exitDropTablespace(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropTablespace) { + return visitor.visitDropTablespace(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropTriggerContext extends ParserRuleContext { + public _trigger_name!: FullIdContext; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_TRIGGER(): TerminalNode { return this.getToken(MySqlParser.KW_TRIGGER, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropTrigger; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropTrigger) { + listener.enterDropTrigger(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropTrigger) { + listener.exitDropTrigger(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropTrigger) { + return visitor.visitDropTrigger(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropViewContext extends ParserRuleContext { + public _dropType!: Token; + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_VIEW(): TerminalNode { return this.getToken(MySqlParser.KW_VIEW, 0); } + public viewName(): ViewNameContext[]; + public viewName(i: number): ViewNameContext; + public viewName(i?: number): ViewNameContext | ViewNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ViewNameContext); + } else { + return this.getRuleContext(i, ViewNameContext); + } + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_RESTRICT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESTRICT, 0); } + public KW_CASCADE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropView; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropView) { + listener.enterDropView(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropView) { + listener.exitDropView(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropView) { + return visitor.visitDropView(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropRoleContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_ROLE(): TerminalNode { return this.getToken(MySqlParser.KW_ROLE, 0); } + public userOrRoleNames(): UserOrRoleNamesContext { + return this.getRuleContext(0, UserOrRoleNamesContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropRole; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropRole) { + listener.enterDropRole(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropRole) { + listener.exitDropRole(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropRole) { + return visitor.visitDropRole(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetRoleContext extends ParserRuleContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_ROLE(): TerminalNode { return this.getToken(MySqlParser.KW_ROLE, 0); } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public userOrRoleNames(): UserOrRoleNamesContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNamesContext); + } + public userOrRoleName(): UserOrRoleNameContext[]; + public userOrRoleName(i: number): UserOrRoleNameContext; + public userOrRoleName(i?: number): UserOrRoleNameContext | UserOrRoleNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserOrRoleNameContext); + } else { + return this.getRuleContext(i, UserOrRoleNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public roleOption(): RoleOptionContext | undefined { + return this.tryGetRuleContext(0, RoleOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setRole; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetRole) { + listener.enterSetRole(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetRole) { + listener.exitSetRole(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetRole) { + return visitor.visitSetRole(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RenameTableContext extends ParserRuleContext { + public KW_RENAME(): TerminalNode { return this.getToken(MySqlParser.KW_RENAME, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public renameTableClause(): RenameTableClauseContext[]; + public renameTableClause(i: number): RenameTableClauseContext; + public renameTableClause(i?: number): RenameTableClauseContext | RenameTableClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(RenameTableClauseContext); + } else { + return this.getRuleContext(i, RenameTableClauseContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_renameTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRenameTable) { + listener.enterRenameTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRenameTable) { + listener.exitRenameTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRenameTable) { + return visitor.visitRenameTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RenameTableClauseContext extends ParserRuleContext { + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_renameTableClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRenameTableClause) { + listener.enterRenameTableClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRenameTableClause) { + listener.exitRenameTableClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRenameTableClause) { + return visitor.visitRenameTableClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TruncateTableContext extends ParserRuleContext { + public KW_TRUNCATE(): TerminalNode { return this.getToken(MySqlParser.KW_TRUNCATE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_truncateTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTruncateTable) { + listener.enterTruncateTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTruncateTable) { + listener.exitTruncateTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTruncateTable) { + return visitor.visitTruncateTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CallStatementContext extends ParserRuleContext { + public _sp_name!: FullIdContext; + public KW_CALL(): TerminalNode { return this.getToken(MySqlParser.KW_CALL, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public constants(): ConstantsContext | undefined { + return this.tryGetRuleContext(0, ConstantsContext); + } + public expressions(): ExpressionsContext | undefined { + return this.tryGetRuleContext(0, ExpressionsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_callStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCallStatement) { + listener.enterCallStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCallStatement) { + listener.exitCallStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCallStatement) { + return visitor.visitCallStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeleteStatementContext extends ParserRuleContext { + public singleDeleteStatement(): SingleDeleteStatementContext | undefined { + return this.tryGetRuleContext(0, SingleDeleteStatementContext); + } + public multipleDeleteStatement(): MultipleDeleteStatementContext | undefined { + return this.tryGetRuleContext(0, MultipleDeleteStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_deleteStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeleteStatement) { + listener.enterDeleteStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeleteStatement) { + listener.exitDeleteStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeleteStatement) { + return visitor.visitDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DoStatementContext extends ParserRuleContext { + public KW_DO(): TerminalNode { return this.getToken(MySqlParser.KW_DO, 0); } + public expressions(): ExpressionsContext { + return this.getRuleContext(0, ExpressionsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_doStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDoStatement) { + listener.enterDoStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDoStatement) { + listener.exitDoStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDoStatement) { + return visitor.visitDoStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerStatementContext extends ParserRuleContext { + public handlerOpenStatement(): HandlerOpenStatementContext | undefined { + return this.tryGetRuleContext(0, HandlerOpenStatementContext); + } + public handlerReadIndexStatement(): HandlerReadIndexStatementContext | undefined { + return this.tryGetRuleContext(0, HandlerReadIndexStatementContext); + } + public handlerReadStatement(): HandlerReadStatementContext | undefined { + return this.tryGetRuleContext(0, HandlerReadStatementContext); + } + public handlerCloseStatement(): HandlerCloseStatementContext | undefined { + return this.tryGetRuleContext(0, HandlerCloseStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerStatement) { + listener.enterHandlerStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerStatement) { + listener.exitHandlerStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerStatement) { + return visitor.visitHandlerStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InsertStatementContext extends ParserRuleContext { + public _priority!: Token; + public _duplicatedFirst!: UpdatedElementContext; + public _updatedElement!: UpdatedElementContext; + public _duplicatedElements: UpdatedElementContext[] = []; + public KW_INSERT(): TerminalNode { return this.getToken(MySqlParser.KW_INSERT, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public setAssignmentList(): SetAssignmentListContext | undefined { + return this.tryGetRuleContext(0, SetAssignmentListContext); + } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_INTO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTO, 0); } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public asRowAlias(): AsRowAliasContext[]; + public asRowAlias(i: number): AsRowAliasContext; + public asRowAlias(i?: number): AsRowAliasContext | AsRowAliasContext[] { + if (i === undefined) { + return this.getRuleContexts(AsRowAliasContext); + } else { + return this.getRuleContext(i, AsRowAliasContext); + } + } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_DUPLICATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DUPLICATE, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public KW_DELAYED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELAYED, 0); } + public KW_HIGH_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HIGH_PRIORITY, 0); } + public fullColumnNames(): FullColumnNamesContext | undefined { + return this.tryGetRuleContext(0, FullColumnNamesContext); + } + public valuesOrValueList(): ValuesOrValueListContext | undefined { + return this.tryGetRuleContext(0, ValuesOrValueListContext); + } + public selectOrTableOrValues(): SelectOrTableOrValuesContext | undefined { + return this.tryGetRuleContext(0, SelectOrTableOrValuesContext); + } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_insertStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInsertStatement) { + listener.enterInsertStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInsertStatement) { + listener.exitInsertStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInsertStatement) { + return visitor.visitInsertStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AsRowAliasContext extends ParserRuleContext { + public _rowAlias!: UidContext; + public KW_AS(): TerminalNode { return this.getToken(MySqlParser.KW_AS, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public fullColumnNames(): FullColumnNamesContext | undefined { + return this.tryGetRuleContext(0, FullColumnNamesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_asRowAlias; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAsRowAlias) { + listener.enterAsRowAlias(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAsRowAlias) { + listener.exitAsRowAlias(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAsRowAlias) { + return visitor.visitAsRowAlias(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectOrTableOrValuesContext extends ParserRuleContext { + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext | undefined { + return this.tryGetRuleContext(0, TableNameContext); + } + public rowValuesList(): RowValuesListContext | undefined { + return this.tryGetRuleContext(0, RowValuesListContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectOrTableOrValues; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectOrTableOrValues) { + listener.enterSelectOrTableOrValues(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectOrTableOrValues) { + listener.exitSelectOrTableOrValues(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectOrTableOrValues) { + return visitor.visitSelectOrTableOrValues(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InterSectStatementContext extends ParserRuleContext { + public interSectQuery(): InterSectQueryContext[]; + public interSectQuery(i: number): InterSectQueryContext; + public interSectQuery(i?: number): InterSectQueryContext | InterSectQueryContext[] { + if (i === undefined) { + return this.getRuleContexts(InterSectQueryContext); + } else { + return this.getRuleContext(i, InterSectQueryContext); + } + } + public KW_INTERSECT(): TerminalNode[]; + public KW_INTERSECT(i: number): TerminalNode; + public KW_INTERSECT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_INTERSECT); + } else { + return this.getToken(MySqlParser.KW_INTERSECT, i); + } + } + public KW_ALL(): TerminalNode[]; + public KW_ALL(i: number): TerminalNode; + public KW_ALL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ALL); + } else { + return this.getToken(MySqlParser.KW_ALL, i); + } + } + public KW_DISTINCT(): TerminalNode[]; + public KW_DISTINCT(i: number): TerminalNode; + public KW_DISTINCT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DISTINCT); + } else { + return this.getToken(MySqlParser.KW_DISTINCT, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_interSectStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInterSectStatement) { + listener.enterInterSectStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInterSectStatement) { + listener.exitInterSectStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInterSectStatement) { + return visitor.visitInterSectStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InterSectQueryContext extends ParserRuleContext { + public querySpecification(): QuerySpecificationContext { + return this.getRuleContext(0, QuerySpecificationContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_interSectQuery; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInterSectQuery) { + listener.enterInterSectQuery(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInterSectQuery) { + listener.exitInterSectQuery(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInterSectQuery) { + return visitor.visitInterSectQuery(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LoadDataStatementContext extends ParserRuleContext { + public _priority!: Token; + public _filename!: Token; + public _violation!: Token; + public _charset!: CharsetNameContext; + public _fieldsFormat!: Token; + public _linesFormat!: Token; + public KW_LOAD(): TerminalNode { return this.getToken(MySqlParser.KW_LOAD, 0); } + public KW_DATA(): TerminalNode { return this.getToken(MySqlParser.KW_DATA, 0); } + public KW_INFILE(): TerminalNode { return this.getToken(MySqlParser.KW_INFILE, 0); } + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode[]; + public KW_SET(i: number): TerminalNode; + public KW_SET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_SET); + } else { + return this.getToken(MySqlParser.KW_SET, i); + } + } + public KW_LINES(): TerminalNode[]; + public KW_LINES(i: number): TerminalNode; + public KW_LINES(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_LINES); + } else { + return this.getToken(MySqlParser.KW_LINES, i); + } + } + public KW_IGNORE(): TerminalNode[]; + public KW_IGNORE(i: number): TerminalNode; + public KW_IGNORE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_IGNORE); + } else { + return this.getToken(MySqlParser.KW_IGNORE, i); + } + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public assignmentField(): AssignmentFieldContext[]; + public assignmentField(i: number): AssignmentFieldContext; + public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { + if (i === undefined) { + return this.getRuleContexts(AssignmentFieldContext); + } else { + return this.getRuleContext(i, AssignmentFieldContext); + } + } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public KW_CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONCURRENT, 0); } + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public KW_FIELDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIELDS, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public KW_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROWS, 0); } + public selectFieldsInto(): SelectFieldsIntoContext[]; + public selectFieldsInto(i: number): SelectFieldsIntoContext; + public selectFieldsInto(i?: number): SelectFieldsIntoContext | SelectFieldsIntoContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectFieldsIntoContext); + } else { + return this.getRuleContext(i, SelectFieldsIntoContext); + } + } + public selectLinesInto(): SelectLinesIntoContext[]; + public selectLinesInto(i: number): SelectLinesIntoContext; + public selectLinesInto(i?: number): SelectLinesIntoContext | SelectLinesIntoContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectLinesIntoContext); + } else { + return this.getRuleContext(i, SelectLinesIntoContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_loadDataStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLoadDataStatement) { + listener.enterLoadDataStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLoadDataStatement) { + listener.exitLoadDataStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLoadDataStatement) { + return visitor.visitLoadDataStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LoadXmlStatementContext extends ParserRuleContext { + public _priority!: Token; + public _filename!: Token; + public _violation!: Token; + public _charset!: CharsetNameContext; + public _tag!: Token; + public _linesFormat!: Token; + public KW_LOAD(): TerminalNode { return this.getToken(MySqlParser.KW_LOAD, 0); } + public KW_XML(): TerminalNode { return this.getToken(MySqlParser.KW_XML, 0); } + public KW_INFILE(): TerminalNode { return this.getToken(MySqlParser.KW_INFILE, 0); } + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode[]; + public KW_SET(i: number): TerminalNode; + public KW_SET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_SET); + } else { + return this.getToken(MySqlParser.KW_SET, i); + } + } + public KW_ROWS(): TerminalNode[]; + public KW_ROWS(i: number): TerminalNode; + public KW_ROWS(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ROWS); + } else { + return this.getToken(MySqlParser.KW_ROWS, i); + } + } + public KW_IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public KW_IGNORE(): TerminalNode[]; + public KW_IGNORE(i: number): TerminalNode; + public KW_IGNORE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_IGNORE); + } else { + return this.getToken(MySqlParser.KW_IGNORE, i); + } + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public assignmentField(): AssignmentFieldContext[]; + public assignmentField(i: number): AssignmentFieldContext; + public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { + if (i === undefined) { + return this.getRuleContexts(AssignmentFieldContext); + } else { + return this.getRuleContext(i, AssignmentFieldContext); + } + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public KW_CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONCURRENT, 0); } + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public KW_LINES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINES, 0); } + public LESS_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LESS_SYMBOL, 0); } + public GREATER_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GREATER_SYMBOL, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_loadXmlStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLoadXmlStatement) { + listener.enterLoadXmlStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLoadXmlStatement) { + listener.exitLoadXmlStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLoadXmlStatement) { + return visitor.visitLoadXmlStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ParenthesizedQueryContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public parenthesizedQueryExpression(): ParenthesizedQueryExpressionContext { + return this.getRuleContext(0, ParenthesizedQueryExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public orderByClause(): OrderByClauseContext[]; + public orderByClause(i: number): OrderByClauseContext; + public orderByClause(i?: number): OrderByClauseContext | OrderByClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(OrderByClauseContext); + } else { + return this.getRuleContext(i, OrderByClauseContext); + } + } + public limitClause(): LimitClauseContext[]; + public limitClause(i: number): LimitClauseContext; + public limitClause(i?: number): LimitClauseContext | LimitClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(LimitClauseContext); + } else { + return this.getRuleContext(i, LimitClauseContext); + } + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_parenthesizedQuery; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterParenthesizedQuery) { + listener.enterParenthesizedQuery(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitParenthesizedQuery) { + listener.exitParenthesizedQuery(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitParenthesizedQuery) { + return visitor.visitParenthesizedQuery(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReplaceStatementContext extends ParserRuleContext { + public _priority!: Token; + public KW_REPLACE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLACE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public replaceStatementValuesOrSelectOrTable(): ReplaceStatementValuesOrSelectOrTableContext | undefined { + return this.tryGetRuleContext(0, ReplaceStatementValuesOrSelectOrTableContext); + } + public setAssignmentList(): SetAssignmentListContext | undefined { + return this.tryGetRuleContext(0, SetAssignmentListContext); + } + public KW_INTO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTO, 0); } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public KW_DELAYED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELAYED, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_replaceStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReplaceStatement) { + listener.enterReplaceStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReplaceStatement) { + listener.exitReplaceStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReplaceStatement) { + return visitor.visitReplaceStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectStatement; } + public copyFrom(ctx: SelectStatementContext): void { + super.copyFrom(ctx); + } +} +export class SimpleSelectContext extends SelectStatementContext { + public querySpecification(): QuerySpecificationContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationContext); + } + public lockClause(): LockClauseContext | undefined { + return this.tryGetRuleContext(0, LockClauseContext); + } + public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationNointoContext); + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + constructor(ctx: SelectStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleSelect) { + listener.enterSimpleSelect(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleSelect) { + listener.exitSimpleSelect(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleSelect) { + return visitor.visitSimpleSelect(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ParenthesisSelectContext extends SelectStatementContext { + public queryExpression(): QueryExpressionContext { + return this.getRuleContext(0, QueryExpressionContext); + } + public lockClause(): LockClauseContext | undefined { + return this.tryGetRuleContext(0, LockClauseContext); + } + constructor(ctx: SelectStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterParenthesisSelect) { + listener.enterParenthesisSelect(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitParenthesisSelect) { + listener.exitParenthesisSelect(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitParenthesisSelect) { + return visitor.visitParenthesisSelect(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class UnionSelectContext extends SelectStatementContext { + public _unionType!: Token; + public querySpecificationNointo(): QuerySpecificationNointoContext { + return this.getRuleContext(0, QuerySpecificationNointoContext); + } + public unionStatement(): UnionStatementContext[]; + public unionStatement(i: number): UnionStatementContext; + public unionStatement(i?: number): UnionStatementContext | UnionStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(UnionStatementContext); + } else { + return this.getRuleContext(i, UnionStatementContext); + } + } + public KW_UNION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNION, 0); } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public lockClause(): LockClauseContext | undefined { + return this.tryGetRuleContext(0, LockClauseContext); + } + public querySpecification(): QuerySpecificationContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationContext); + } + public queryExpression(): QueryExpressionContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + constructor(ctx: SelectStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnionSelect) { + listener.enterUnionSelect(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnionSelect) { + listener.exitUnionSelect(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnionSelect) { + return visitor.visitUnionSelect(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class UnionParenthesisSelectContext extends SelectStatementContext { + public _unionType!: Token; + public queryExpressionNointo(): QueryExpressionNointoContext { + return this.getRuleContext(0, QueryExpressionNointoContext); + } + public unionParenthesis(): UnionParenthesisContext[]; + public unionParenthesis(i: number): UnionParenthesisContext; + public unionParenthesis(i?: number): UnionParenthesisContext | UnionParenthesisContext[] { + if (i === undefined) { + return this.getRuleContexts(UnionParenthesisContext); + } else { + return this.getRuleContext(i, UnionParenthesisContext); + } + } + public KW_UNION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNION, 0); } + public queryExpression(): QueryExpressionContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public lockClause(): LockClauseContext | undefined { + return this.tryGetRuleContext(0, LockClauseContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + constructor(ctx: SelectStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnionParenthesisSelect) { + listener.enterUnionParenthesisSelect(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnionParenthesisSelect) { + listener.exitUnionParenthesisSelect(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnionParenthesisSelect) { + return visitor.visitUnionParenthesisSelect(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class WithLateralStatementContext extends SelectStatementContext { + public querySpecificationNointo(): QuerySpecificationNointoContext { + return this.getRuleContext(0, QuerySpecificationNointoContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public lateralStatement(): LateralStatementContext[]; + public lateralStatement(i: number): LateralStatementContext; + public lateralStatement(i?: number): LateralStatementContext | LateralStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(LateralStatementContext); + } else { + return this.getRuleContext(i, LateralStatementContext); + } + } + constructor(ctx: SelectStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWithLateralStatement) { + listener.enterWithLateralStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWithLateralStatement) { + listener.exitWithLateralStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWithLateralStatement) { + return visitor.visitWithLateralStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetOperationsContext extends ParserRuleContext { + public queryExpressionBody(): QueryExpressionBodyContext { + return this.getRuleContext(0, QueryExpressionBodyContext); + } + public withClause(): WithClauseContext | undefined { + return this.tryGetRuleContext(0, WithClauseContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setOperations; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetOperations) { + listener.enterSetOperations(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetOperations) { + listener.exitSetOperations(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetOperations) { + return visitor.visitSetOperations(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryExpressionBodyContext extends ParserRuleContext { + public queryItem(): QueryItemContext { + return this.getRuleContext(0, QueryItemContext); + } + public queryExpressionBody(): QueryExpressionBodyContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionBodyContext); + } + public KW_UNION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNION, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + public KW_EXCEPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCEPT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryExpressionBody; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryExpressionBody) { + listener.enterQueryExpressionBody(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryExpressionBody) { + listener.exitQueryExpressionBody(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryExpressionBody) { + return visitor.visitQueryExpressionBody(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryItemContext extends ParserRuleContext { + public queryPrimary(): QueryPrimaryContext { + return this.getRuleContext(0, QueryPrimaryContext); + } + public queryItem(): QueryItemContext | undefined { + return this.tryGetRuleContext(0, QueryItemContext); + } + public KW_INTERSECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTERSECT, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryItem; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryItem) { + listener.enterQueryItem(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryItem) { + listener.exitQueryItem(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryItem) { + return visitor.visitQueryItem(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryPrimaryContext extends ParserRuleContext { + public queryBlock(): QueryBlockContext | undefined { + return this.tryGetRuleContext(0, QueryBlockContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public queryExpressionBody(): QueryExpressionBodyContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionBodyContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryPrimary; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryPrimary) { + listener.enterQueryPrimary(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryPrimary) { + listener.exitQueryPrimary(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryPrimary) { + return visitor.visitQueryPrimary(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UpdateStatementContext extends ParserRuleContext { + public singleUpdateStatement(): SingleUpdateStatementContext | undefined { + return this.tryGetRuleContext(0, SingleUpdateStatementContext); + } + public multipleUpdateStatement(): MultipleUpdateStatementContext | undefined { + return this.tryGetRuleContext(0, MultipleUpdateStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_updateStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUpdateStatement) { + listener.enterUpdateStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUpdateStatement) { + listener.exitUpdateStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUpdateStatement) { + return visitor.visitUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ValuesStatementContext extends ParserRuleContext { + public rowValuesList(): RowValuesListContext { + return this.getRuleContext(0, RowValuesListContext); + } + public KW_ORDER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDER, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public indexColumnName(): IndexColumnNameContext | undefined { + return this.tryGetRuleContext(0, IndexColumnNameContext); + } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public limitClauseAtom(): LimitClauseAtomContext | undefined { + return this.tryGetRuleContext(0, LimitClauseAtomContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_valuesStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterValuesStatement) { + listener.enterValuesStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitValuesStatement) { + listener.exitValuesStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitValuesStatement) { + return visitor.visitValuesStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ParenthesizedQueryExpressionContext extends ParserRuleContext { + public queryBlock(): QueryBlockContext[]; + public queryBlock(i: number): QueryBlockContext; + public queryBlock(i?: number): QueryBlockContext | QueryBlockContext[] { + if (i === undefined) { + return this.getRuleContexts(QueryBlockContext); + } else { + return this.getRuleContext(i, QueryBlockContext); + } + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + public KW_UNION(): TerminalNode[]; + public KW_UNION(i: number): TerminalNode; + public KW_UNION(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_UNION); + } else { + return this.getToken(MySqlParser.KW_UNION, i); + } + } + public KW_INTERSECT(): TerminalNode[]; + public KW_INTERSECT(i: number): TerminalNode; + public KW_INTERSECT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_INTERSECT); + } else { + return this.getToken(MySqlParser.KW_INTERSECT, i); + } + } + public KW_EXCEPT(): TerminalNode[]; + public KW_EXCEPT(i: number): TerminalNode; + public KW_EXCEPT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_EXCEPT); + } else { + return this.getToken(MySqlParser.KW_EXCEPT, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_parenthesizedQueryExpression; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterParenthesizedQueryExpression) { + listener.enterParenthesizedQueryExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitParenthesizedQueryExpression) { + listener.exitParenthesizedQueryExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitParenthesizedQueryExpression) { + return visitor.visitParenthesizedQueryExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryBlockContext extends ParserRuleContext { + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public tableStatement(): TableStatementContext | undefined { + return this.tryGetRuleContext(0, TableStatementContext); + } + public valuesStatement(): ValuesStatementContext | undefined { + return this.tryGetRuleContext(0, ValuesStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryBlock; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryBlock) { + listener.enterQueryBlock(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryBlock) { + listener.exitQueryBlock(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryBlock) { + return visitor.visitQueryBlock(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReplaceStatementValuesOrSelectOrTableContext extends ParserRuleContext { + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext | undefined { + return this.tryGetRuleContext(0, TableNameContext); + } + public valuesOrValueList(): ValuesOrValueListContext | undefined { + return this.tryGetRuleContext(0, ValuesOrValueListContext); + } + public rowValuesList(): RowValuesListContext | undefined { + return this.tryGetRuleContext(0, RowValuesListContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_replaceStatementValuesOrSelectOrTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReplaceStatementValuesOrSelectOrTable) { + listener.enterReplaceStatementValuesOrSelectOrTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReplaceStatementValuesOrSelectOrTable) { + listener.exitReplaceStatementValuesOrSelectOrTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReplaceStatementValuesOrSelectOrTable) { + return visitor.visitReplaceStatementValuesOrSelectOrTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RowValuesListContext extends ParserRuleContext { + public KW_VALUES(): TerminalNode { return this.getToken(MySqlParser.KW_VALUES, 0); } + public KW_ROW(): TerminalNode[]; + public KW_ROW(i: number): TerminalNode; + public KW_ROW(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ROW); + } else { + return this.getToken(MySqlParser.KW_ROW, i); + } + } + public expressionsWithDefaults(): ExpressionsWithDefaultsContext[]; + public expressionsWithDefaults(i: number): ExpressionsWithDefaultsContext; + public expressionsWithDefaults(i?: number): ExpressionsWithDefaultsContext | ExpressionsWithDefaultsContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionsWithDefaultsContext); + } else { + return this.getRuleContext(i, ExpressionsWithDefaultsContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_rowValuesList; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRowValuesList) { + listener.enterRowValuesList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRowValuesList) { + listener.exitRowValuesList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRowValuesList) { + return visitor.visitRowValuesList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetAssignmentListContext extends ParserRuleContext { + public _setFirst!: UpdatedElementContext; + public _updatedElement!: UpdatedElementContext; + public _setElements: UpdatedElementContext[] = []; + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setAssignmentList; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetAssignmentList) { + listener.enterSetAssignmentList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetAssignmentList) { + listener.exitSetAssignmentList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetAssignmentList) { + return visitor.visitSetAssignmentList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UpdatedElementContext extends ParserRuleContext { + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public expressionOrDefault(): ExpressionOrDefaultContext { + return this.getRuleContext(0, ExpressionOrDefaultContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_updatedElement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUpdatedElement) { + listener.enterUpdatedElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUpdatedElement) { + listener.exitUpdatedElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUpdatedElement) { + return visitor.visitUpdatedElement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AssignmentFieldContext extends ParserRuleContext { + public _var_name!: UidContext; + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_assignmentField; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAssignmentField) { + listener.enterAssignmentField(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAssignmentField) { + listener.exitAssignmentField(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAssignmentField) { + return visitor.visitAssignmentField(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LockClauseContext extends ParserRuleContext { + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public KW_SHARE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHARE, 0); } + public KW_OF(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OF, 0); } + public tableName(): TableNameContext[]; + public tableName(i: number): TableNameContext; + public tableName(i?: number): TableNameContext | TableNameContext[] { + if (i === undefined) { + return this.getRuleContexts(TableNameContext); + } else { + return this.getRuleContext(i, TableNameContext); + } + } + public KW_LOCKED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCKED, 0); } + public KW_NOWAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOWAIT, 0); } + public KW_SKIP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SKIP, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_LOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCK, 0); } + public KW_IN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IN, 0); } + public KW_MODE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MODE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lockClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLockClause) { + listener.enterLockClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLockClause) { + listener.exitLockClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLockClause) { + return visitor.visitLockClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SingleDeleteStatementContext extends ParserRuleContext { + public _priority!: Token; + public _table_alias!: UidContext; + public KW_DELETE(): TerminalNode { return this.getToken(MySqlParser.KW_DELETE, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public limitClauseAtom(): LimitClauseAtomContext | undefined { + return this.tryGetRuleContext(0, LimitClauseAtomContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_singleDeleteStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSingleDeleteStatement) { + listener.enterSingleDeleteStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSingleDeleteStatement) { + listener.exitSingleDeleteStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSingleDeleteStatement) { + return visitor.visitSingleDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class MultipleDeleteStatementContext extends ParserRuleContext { + public _priority!: Token; + public KW_DELETE(): TerminalNode { return this.getToken(MySqlParser.KW_DELETE, 0); } + public tableName(): TableNameContext[]; + public tableName(i: number): TableNameContext; + public tableName(i?: number): TableNameContext | TableNameContext[] { + if (i === undefined) { + return this.getRuleContexts(TableNameContext); + } else { + return this.getRuleContext(i, TableNameContext); + } + } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public tableSources(): TableSourcesContext | undefined { + return this.tryGetRuleContext(0, TableSourcesContext); + } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public DOT(): TerminalNode[]; + public DOT(i: number): TerminalNode; + public DOT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.DOT); + } else { + return this.getToken(MySqlParser.DOT, i); + } + } + public STAR(): TerminalNode[]; + public STAR(i: number): TerminalNode; + public STAR(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STAR); + } else { + return this.getToken(MySqlParser.STAR, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_multipleDeleteStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMultipleDeleteStatement) { + listener.enterMultipleDeleteStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMultipleDeleteStatement) { + listener.exitMultipleDeleteStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMultipleDeleteStatement) { + return visitor.visitMultipleDeleteStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerOpenStatementContext extends ParserRuleContext { + public _table_alias!: UidContext; + public KW_HANDLER(): TerminalNode { return this.getToken(MySqlParser.KW_HANDLER, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_OPEN(): TerminalNode { return this.getToken(MySqlParser.KW_OPEN, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerOpenStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerOpenStatement) { + listener.enterHandlerOpenStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerOpenStatement) { + listener.exitHandlerOpenStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerOpenStatement) { + return visitor.visitHandlerOpenStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerReadIndexStatementContext extends ParserRuleContext { + public _moveOrder!: Token; + public KW_HANDLER(): TerminalNode { return this.getToken(MySqlParser.KW_HANDLER, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_READ(): TerminalNode { return this.getToken(MySqlParser.KW_READ, 0); } + public indexName(): IndexNameContext { + return this.getRuleContext(0, IndexNameContext); + } + public comparisonBase(): ComparisonBaseContext | undefined { + return this.tryGetRuleContext(0, ComparisonBaseContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public constants(): ConstantsContext | undefined { + return this.tryGetRuleContext(0, ConstantsContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public limitClauseAtom(): LimitClauseAtomContext | undefined { + return this.tryGetRuleContext(0, LimitClauseAtomContext); + } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_NEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEXT, 0); } + public KW_PREV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PREV, 0); } + public KW_LAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAST, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerReadIndexStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerReadIndexStatement) { + listener.enterHandlerReadIndexStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerReadIndexStatement) { + listener.exitHandlerReadIndexStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerReadIndexStatement) { + return visitor.visitHandlerReadIndexStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerReadStatementContext extends ParserRuleContext { + public _moveOrder!: Token; + public KW_HANDLER(): TerminalNode { return this.getToken(MySqlParser.KW_HANDLER, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_READ(): TerminalNode { return this.getToken(MySqlParser.KW_READ, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_NEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEXT, 0); } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public limitClauseAtom(): LimitClauseAtomContext | undefined { + return this.tryGetRuleContext(0, LimitClauseAtomContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerReadStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerReadStatement) { + listener.enterHandlerReadStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerReadStatement) { + listener.exitHandlerReadStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerReadStatement) { + return visitor.visitHandlerReadStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerCloseStatementContext extends ParserRuleContext { + public KW_HANDLER(): TerminalNode { return this.getToken(MySqlParser.KW_HANDLER, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_CLOSE(): TerminalNode { return this.getToken(MySqlParser.KW_CLOSE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerCloseStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerCloseStatement) { + listener.enterHandlerCloseStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerCloseStatement) { + listener.exitHandlerCloseStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerCloseStatement) { + return visitor.visitHandlerCloseStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ImportTableStatementContext extends ParserRuleContext { + public KW_IMPORT(): TerminalNode { return this.getToken(MySqlParser.KW_IMPORT, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public stringLiteral(): StringLiteralContext[]; + public stringLiteral(i: number): StringLiteralContext; + public stringLiteral(i?: number): StringLiteralContext | StringLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(StringLiteralContext); + } else { + return this.getRuleContext(i, StringLiteralContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_importTableStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterImportTableStatement) { + listener.enterImportTableStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitImportTableStatement) { + listener.exitImportTableStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitImportTableStatement) { + return visitor.visitImportTableStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SingleUpdateStatementContext extends ParserRuleContext { + public _priority!: Token; + public _table_alias!: UidContext; + public KW_UPDATE(): TerminalNode { return this.getToken(MySqlParser.KW_UPDATE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_singleUpdateStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSingleUpdateStatement) { + listener.enterSingleUpdateStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSingleUpdateStatement) { + listener.exitSingleUpdateStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSingleUpdateStatement) { + return visitor.visitSingleUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class MultipleUpdateStatementContext extends ParserRuleContext { + public _priority!: Token; + public KW_UPDATE(): TerminalNode { return this.getToken(MySqlParser.KW_UPDATE, 0); } + public tableSources(): TableSourcesContext { + return this.getRuleContext(0, TableSourcesContext); + } + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public updatedElement(): UpdatedElementContext[]; + public updatedElement(i: number): UpdatedElementContext; + public updatedElement(i?: number): UpdatedElementContext | UpdatedElementContext[] { + if (i === undefined) { + return this.getRuleContexts(UpdatedElementContext); + } else { + return this.getRuleContext(i, UpdatedElementContext); + } + } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_multipleUpdateStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMultipleUpdateStatement) { + listener.enterMultipleUpdateStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMultipleUpdateStatement) { + listener.exitMultipleUpdateStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMultipleUpdateStatement) { + return visitor.visitMultipleUpdateStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OrderByClauseContext extends ParserRuleContext { + public KW_ORDER(): TerminalNode { return this.getToken(MySqlParser.KW_ORDER, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public orderByExpression(): OrderByExpressionContext[]; + public orderByExpression(i: number): OrderByExpressionContext; + public orderByExpression(i?: number): OrderByExpressionContext | OrderByExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(OrderByExpressionContext); + } else { + return this.getRuleContext(i, OrderByExpressionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_orderByClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOrderByClause) { + listener.enterOrderByClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOrderByClause) { + listener.exitOrderByClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOrderByClause) { + return visitor.visitOrderByClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OrderByExpressionContext extends ParserRuleContext { + public _order!: Token; + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_ASC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASC, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_orderByExpression; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOrderByExpression) { + listener.enterOrderByExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOrderByExpression) { + listener.exitOrderByExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOrderByExpression) { + return visitor.visitOrderByExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableSourcesContext extends ParserRuleContext { + public tableSource(): TableSourceContext[]; + public tableSource(i: number): TableSourceContext; + public tableSource(i?: number): TableSourceContext | TableSourceContext[] { + if (i === undefined) { + return this.getRuleContexts(TableSourceContext); + } else { + return this.getRuleContext(i, TableSourceContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableSources; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableSources) { + listener.enterTableSources(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableSources) { + listener.exitTableSources(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableSources) { + return visitor.visitTableSources(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableSourceContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableSource; } + public copyFrom(ctx: TableSourceContext): void { + super.copyFrom(ctx); + } +} +export class TableSourceBaseContext extends TableSourceContext { + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public joinPart(): JoinPartContext[]; + public joinPart(i: number): JoinPartContext; + public joinPart(i?: number): JoinPartContext | JoinPartContext[] { + if (i === undefined) { + return this.getRuleContexts(JoinPartContext); + } else { + return this.getRuleContext(i, JoinPartContext); + } + } + constructor(ctx: TableSourceContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableSourceBase) { + listener.enterTableSourceBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableSourceBase) { + listener.exitTableSourceBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableSourceBase) { + return visitor.visitTableSourceBase(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableSourceNestedContext extends TableSourceContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public joinPart(): JoinPartContext[]; + public joinPart(i: number): JoinPartContext; + public joinPart(i?: number): JoinPartContext | JoinPartContext[] { + if (i === undefined) { + return this.getRuleContexts(JoinPartContext); + } else { + return this.getRuleContext(i, JoinPartContext); + } + } + constructor(ctx: TableSourceContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableSourceNested) { + listener.enterTableSourceNested(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableSourceNested) { + listener.exitTableSourceNested(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableSourceNested) { + return visitor.visitTableSourceNested(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableJsonContext extends TableSourceContext { + public jsonTable(): JsonTableContext { + return this.getRuleContext(0, JsonTableContext); + } + constructor(ctx: TableSourceContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableJson) { + listener.enterTableJson(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableJson) { + listener.exitTableJson(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableJson) { + return visitor.visitTableJson(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableSourceItemContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableSourceItem; } + public copyFrom(ctx: TableSourceItemContext): void { + super.copyFrom(ctx); + } +} +export class AtomTableItemContext extends TableSourceItemContext { + public _alias!: UidContext; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public indexHint(): IndexHintContext[]; + public indexHint(i: number): IndexHintContext; + public indexHint(i?: number): IndexHintContext | IndexHintContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexHintContext); + } else { + return this.getRuleContext(i, IndexHintContext); + } + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: TableSourceItemContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAtomTableItem) { + listener.enterAtomTableItem(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAtomTableItem) { + listener.exitAtomTableItem(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAtomTableItem) { + return visitor.visitAtomTableItem(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SubqueryTableItemContext extends TableSourceItemContext { + public _parenthesisSubquery!: SelectStatementContext; + public _alias!: UidContext; + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_LATERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATERAL, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public fullColumnNames(): FullColumnNamesContext | undefined { + return this.tryGetRuleContext(0, FullColumnNamesContext); + } + constructor(ctx: TableSourceItemContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubqueryTableItem) { + listener.enterSubqueryTableItem(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubqueryTableItem) { + listener.exitSubqueryTableItem(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubqueryTableItem) { + return visitor.visitSubqueryTableItem(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableSourcesItemContext extends TableSourceItemContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tableSources(): TableSourcesContext { + return this.getRuleContext(0, TableSourcesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: TableSourceItemContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableSourcesItem) { + listener.enterTableSourcesItem(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableSourcesItem) { + listener.exitTableSourcesItem(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableSourcesItem) { + return visitor.visitTableSourcesItem(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FullColumnNamesContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public columnNames(): ColumnNamesContext { + return this.getRuleContext(0, ColumnNamesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_fullColumnNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFullColumnNames) { + listener.enterFullColumnNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFullColumnNames) { + listener.exitFullColumnNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFullColumnNames) { + return visitor.visitFullColumnNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexHintContext extends ParserRuleContext { + public _indexHintAction!: Token; + public _keyFormat!: Token; + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_USE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USE, 0); } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_FORCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORCE, 0); } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public indexHintType(): IndexHintTypeContext | undefined { + return this.tryGetRuleContext(0, IndexHintTypeContext); + } + public indexNames(): IndexNamesContext | undefined { + return this.tryGetRuleContext(0, IndexNamesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexHint; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexHint) { + listener.enterIndexHint(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexHint) { + listener.exitIndexHint(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexHint) { + return visitor.visitIndexHint(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexHintTypeContext extends ParserRuleContext { + public KW_JOIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JOIN, 0); } + public KW_ORDER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDER, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public KW_GROUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexHintType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexHintType) { + listener.enterIndexHintType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexHintType) { + listener.exitIndexHintType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexHintType) { + return visitor.visitIndexHintType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JoinPartContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_joinPart; } + public copyFrom(ctx: JoinPartContext): void { + super.copyFrom(ctx); + } +} +export class InnerJoinContext extends JoinPartContext { + public KW_JOIN(): TerminalNode { return this.getToken(MySqlParser.KW_JOIN, 0); } + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public KW_LATERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATERAL, 0); } + public joinSpec(): JoinSpecContext[]; + public joinSpec(i: number): JoinSpecContext; + public joinSpec(i?: number): JoinSpecContext | JoinSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(JoinSpecContext); + } else { + return this.getRuleContext(i, JoinSpecContext); + } + } + public KW_INNER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNER, 0); } + public KW_CROSS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CROSS, 0); } + constructor(ctx: JoinPartContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInnerJoin) { + listener.enterInnerJoin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInnerJoin) { + listener.exitInnerJoin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInnerJoin) { + return visitor.visitInnerJoin(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class StraightJoinContext extends JoinPartContext { + public KW_STRAIGHT_JOIN(): TerminalNode { return this.getToken(MySqlParser.KW_STRAIGHT_JOIN, 0); } + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public joinSpec(): JoinSpecContext[]; + public joinSpec(i: number): JoinSpecContext; + public joinSpec(i?: number): JoinSpecContext | JoinSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(JoinSpecContext); + } else { + return this.getRuleContext(i, JoinSpecContext); + } + } + constructor(ctx: JoinPartContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStraightJoin) { + listener.enterStraightJoin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStraightJoin) { + listener.exitStraightJoin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStraightJoin) { + return visitor.visitStraightJoin(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class OuterJoinContext extends JoinPartContext { + public KW_JOIN(): TerminalNode { return this.getToken(MySqlParser.KW_JOIN, 0); } + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public KW_LEFT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEFT, 0); } + public KW_RIGHT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RIGHT, 0); } + public KW_OUTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OUTER, 0); } + public KW_LATERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATERAL, 0); } + public joinSpec(): JoinSpecContext[]; + public joinSpec(i: number): JoinSpecContext; + public joinSpec(i?: number): JoinSpecContext | JoinSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(JoinSpecContext); + } else { + return this.getRuleContext(i, JoinSpecContext); + } + } + constructor(ctx: JoinPartContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOuterJoin) { + listener.enterOuterJoin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOuterJoin) { + listener.exitOuterJoin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOuterJoin) { + return visitor.visitOuterJoin(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NaturalJoinContext extends JoinPartContext { + public KW_NATURAL(): TerminalNode { return this.getToken(MySqlParser.KW_NATURAL, 0); } + public KW_JOIN(): TerminalNode { return this.getToken(MySqlParser.KW_JOIN, 0); } + public tableSourceItem(): TableSourceItemContext { + return this.getRuleContext(0, TableSourceItemContext); + } + public KW_INNER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNER, 0); } + public KW_LEFT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEFT, 0); } + public KW_RIGHT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RIGHT, 0); } + public KW_OUTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OUTER, 0); } + constructor(ctx: JoinPartContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNaturalJoin) { + listener.enterNaturalJoin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNaturalJoin) { + listener.exitNaturalJoin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNaturalJoin) { + return visitor.visitNaturalJoin(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JoinSpecContext extends ParserRuleContext { + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_joinSpec; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJoinSpec) { + listener.enterJoinSpec(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJoinSpec) { + listener.exitJoinSpec(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJoinSpec) { + return visitor.visitJoinSpec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryExpressionContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public querySpecification(): QuerySpecificationContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public queryExpression(): QueryExpressionContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryExpression; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryExpression) { + listener.enterQueryExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryExpression) { + listener.exitQueryExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryExpression) { + return visitor.visitQueryExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QueryExpressionNointoContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationNointoContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public queryExpressionNointo(): QueryExpressionNointoContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionNointoContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_queryExpressionNointo; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQueryExpressionNointo) { + listener.enterQueryExpressionNointo(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQueryExpressionNointo) { + listener.exitQueryExpressionNointo(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQueryExpressionNointo) { + return visitor.visitQueryExpressionNointo(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QuerySpecificationContext extends ParserRuleContext { + public KW_SELECT(): TerminalNode { return this.getToken(MySqlParser.KW_SELECT, 0); } + public selectElements(): SelectElementsContext { + return this.getRuleContext(0, SelectElementsContext); + } + public fromClause(): FromClauseContext { + return this.getRuleContext(0, FromClauseContext); + } + public selectSpec(): SelectSpecContext[]; + public selectSpec(i: number): SelectSpecContext; + public selectSpec(i?: number): SelectSpecContext | SelectSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectSpecContext); + } else { + return this.getRuleContext(i, SelectSpecContext); + } + } + public intoClause(): IntoClauseContext | undefined { + return this.tryGetRuleContext(0, IntoClauseContext); + } + public groupByClause(): GroupByClauseContext | undefined { + return this.tryGetRuleContext(0, GroupByClauseContext); + } + public havingClause(): HavingClauseContext | undefined { + return this.tryGetRuleContext(0, HavingClauseContext); + } + public windowClause(): WindowClauseContext | undefined { + return this.tryGetRuleContext(0, WindowClauseContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_querySpecification; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQuerySpecification) { + listener.enterQuerySpecification(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQuerySpecification) { + listener.exitQuerySpecification(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQuerySpecification) { + return visitor.visitQuerySpecification(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class QuerySpecificationNointoContext extends ParserRuleContext { + public KW_SELECT(): TerminalNode { return this.getToken(MySqlParser.KW_SELECT, 0); } + public selectElements(): SelectElementsContext { + return this.getRuleContext(0, SelectElementsContext); + } + public fromClause(): FromClauseContext { + return this.getRuleContext(0, FromClauseContext); + } + public selectSpec(): SelectSpecContext[]; + public selectSpec(i: number): SelectSpecContext; + public selectSpec(i?: number): SelectSpecContext | SelectSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectSpecContext); + } else { + return this.getRuleContext(i, SelectSpecContext); + } + } + public groupByClause(): GroupByClauseContext | undefined { + return this.tryGetRuleContext(0, GroupByClauseContext); + } + public havingClause(): HavingClauseContext | undefined { + return this.tryGetRuleContext(0, HavingClauseContext); + } + public windowClause(): WindowClauseContext | undefined { + return this.tryGetRuleContext(0, WindowClauseContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_querySpecificationNointo; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterQuerySpecificationNointo) { + listener.enterQuerySpecificationNointo(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitQuerySpecificationNointo) { + listener.exitQuerySpecificationNointo(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitQuerySpecificationNointo) { + return visitor.visitQuerySpecificationNointo(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UnionParenthesisContext extends ParserRuleContext { + public _unionType!: Token; + public KW_UNION(): TerminalNode { return this.getToken(MySqlParser.KW_UNION, 0); } + public queryExpressionNointo(): QueryExpressionNointoContext { + return this.getRuleContext(0, QueryExpressionNointoContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_unionParenthesis; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnionParenthesis) { + listener.enterUnionParenthesis(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnionParenthesis) { + listener.exitUnionParenthesis(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnionParenthesis) { + return visitor.visitUnionParenthesis(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UnionStatementContext extends ParserRuleContext { + public _unionType!: Token; + public KW_UNION(): TerminalNode { return this.getToken(MySqlParser.KW_UNION, 0); } + public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationNointoContext); + } + public queryExpressionNointo(): QueryExpressionNointoContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionNointoContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_unionStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnionStatement) { + listener.enterUnionStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnionStatement) { + listener.exitUnionStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnionStatement) { + return visitor.visitUnionStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LateralStatementContext extends ParserRuleContext { + public _alias!: UidContext; + public KW_LATERAL(): TerminalNode { return this.getToken(MySqlParser.KW_LATERAL, 0); } + public querySpecificationNointo(): QuerySpecificationNointoContext | undefined { + return this.tryGetRuleContext(0, QuerySpecificationNointoContext); + } + public queryExpressionNointo(): QueryExpressionNointoContext | undefined { + return this.tryGetRuleContext(0, QueryExpressionNointoContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lateralStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLateralStatement) { + listener.enterLateralStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLateralStatement) { + listener.exitLateralStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLateralStatement) { + return visitor.visitLateralStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonTableContext extends ParserRuleContext { + public _alias!: UidContext; + public KW_JSON_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_JSON_TABLE, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public KW_COLUMNS(): TerminalNode { return this.getToken(MySqlParser.KW_COLUMNS, 0); } + public jsonColumnList(): JsonColumnListContext { + return this.getRuleContext(0, JsonColumnListContext); + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonTable) { + listener.enterJsonTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonTable) { + listener.exitJsonTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonTable) { + return visitor.visitJsonTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonColumnListContext extends ParserRuleContext { + public jsonColumn(): JsonColumnContext[]; + public jsonColumn(i: number): JsonColumnContext; + public jsonColumn(i?: number): JsonColumnContext | JsonColumnContext[] { + if (i === undefined) { + return this.getRuleContexts(JsonColumnContext); + } else { + return this.getRuleContext(i, JsonColumnContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonColumnList; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonColumnList) { + listener.enterJsonColumnList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonColumnList) { + listener.exitJsonColumnList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonColumnList) { + return visitor.visitJsonColumnList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonColumnContext extends ParserRuleContext { + public columnName(): ColumnNameContext | undefined { + return this.tryGetRuleContext(0, ColumnNameContext); + } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_ORDINALITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDINALITY, 0); } + public dataType(): DataTypeContext | undefined { + return this.tryGetRuleContext(0, DataTypeContext); + } + public KW_PATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PATH, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_EXISTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXISTS, 0); } + public jsonOnEmpty(): JsonOnEmptyContext | undefined { + return this.tryGetRuleContext(0, JsonOnEmptyContext); + } + public jsonOnError(): JsonOnErrorContext | undefined { + return this.tryGetRuleContext(0, JsonOnErrorContext); + } + public KW_NESTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NESTED, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public jsonColumnList(): JsonColumnListContext | undefined { + return this.tryGetRuleContext(0, JsonColumnListContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonColumn; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonColumn) { + listener.enterJsonColumn(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonColumn) { + listener.exitJsonColumn(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonColumn) { + return visitor.visitJsonColumn(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonOnEmptyContext extends ParserRuleContext { + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public KW_EMPTY(): TerminalNode { return this.getToken(MySqlParser.KW_EMPTY, 0); } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_ERROR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERROR, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public defaultValue(): DefaultValueContext | undefined { + return this.tryGetRuleContext(0, DefaultValueContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonOnEmpty; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonOnEmpty) { + listener.enterJsonOnEmpty(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonOnEmpty) { + listener.exitJsonOnEmpty(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonOnEmpty) { + return visitor.visitJsonOnEmpty(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonOnErrorContext extends ParserRuleContext { + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public KW_ERROR(): TerminalNode[]; + public KW_ERROR(i: number): TerminalNode; + public KW_ERROR(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ERROR); + } else { + return this.getToken(MySqlParser.KW_ERROR, i); + } + } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public defaultValue(): DefaultValueContext | undefined { + return this.tryGetRuleContext(0, DefaultValueContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonOnError; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonOnError) { + listener.enterJsonOnError(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonOnError) { + listener.exitJsonOnError(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonOnError) { + return visitor.visitJsonOnError(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectSpecContext extends ParserRuleContext { + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + public KW_DISTINCTROW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCTROW, 0); } + public KW_HIGH_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HIGH_PRIORITY, 0); } + public KW_STRAIGHT_JOIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STRAIGHT_JOIN, 0); } + public KW_SQL_SMALL_RESULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_SMALL_RESULT, 0); } + public KW_SQL_BIG_RESULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_BIG_RESULT, 0); } + public KW_SQL_BUFFER_RESULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_BUFFER_RESULT, 0); } + public KW_SQL_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_CACHE, 0); } + public KW_SQL_NO_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_NO_CACHE, 0); } + public KW_SQL_CALC_FOUND_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_CALC_FOUND_ROWS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectSpec; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectSpec) { + listener.enterSelectSpec(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectSpec) { + listener.exitSelectSpec(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectSpec) { + return visitor.visitSelectSpec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectElementsContext extends ParserRuleContext { + public _star!: Token; + public selectElement(): SelectElementContext[]; + public selectElement(i: number): SelectElementContext; + public selectElement(i?: number): SelectElementContext | SelectElementContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectElementContext); + } else { + return this.getRuleContext(i, SelectElementContext); + } + } + public STAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STAR, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectElements; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectElements) { + listener.enterSelectElements(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectElements) { + listener.exitSelectElements(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectElements) { + return visitor.visitSelectElements(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectElementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectElement; } + public copyFrom(ctx: SelectElementContext): void { + super.copyFrom(ctx); + } +} +export class SelectStarElementContext extends SelectElementContext { + public _select_element!: FullIdContext; + public DOT(): TerminalNode { return this.getToken(MySqlParser.DOT, 0); } + public STAR(): TerminalNode { return this.getToken(MySqlParser.STAR, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(ctx: SelectElementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectStarElement) { + listener.enterSelectStarElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectStarElement) { + listener.exitSelectStarElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectStarElement) { + return visitor.visitSelectStarElement(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SelectColumnElementContext extends SelectElementContext { + public _alias!: UidContext; + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(ctx: SelectElementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectColumnElement) { + listener.enterSelectColumnElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectColumnElement) { + listener.exitSelectColumnElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectColumnElement) { + return visitor.visitSelectColumnElement(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SelectFunctionElementContext extends SelectElementContext { + public _alias!: UidContext; + public functionCall(): FunctionCallContext { + return this.getRuleContext(0, FunctionCallContext); + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(ctx: SelectElementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectFunctionElement) { + listener.enterSelectFunctionElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectFunctionElement) { + listener.exitSelectFunctionElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectFunctionElement) { + return visitor.visitSelectFunctionElement(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SelectExpressionElementContext extends SelectElementContext { + public _alias!: UidContext; + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + public VAR_ASSIGN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.VAR_ASSIGN, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(ctx: SelectElementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectExpressionElement) { + listener.enterSelectExpressionElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectExpressionElement) { + listener.exitSelectExpressionElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectExpressionElement) { + return visitor.visitSelectExpressionElement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IntoClauseContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_intoClause; } + public copyFrom(ctx: IntoClauseContext): void { + super.copyFrom(ctx); + } +} +export class SelectIntoVariablesContext extends IntoClauseContext { + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public assignmentField(): AssignmentFieldContext[]; + public assignmentField(i: number): AssignmentFieldContext; + public assignmentField(i?: number): AssignmentFieldContext | AssignmentFieldContext[] { + if (i === undefined) { + return this.getRuleContexts(AssignmentFieldContext); + } else { + return this.getRuleContext(i, AssignmentFieldContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: IntoClauseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectIntoVariables) { + listener.enterSelectIntoVariables(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectIntoVariables) { + listener.exitSelectIntoVariables(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectIntoVariables) { + return visitor.visitSelectIntoVariables(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SelectIntoDumpFileContext extends IntoClauseContext { + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public KW_DUMPFILE(): TerminalNode { return this.getToken(MySqlParser.KW_DUMPFILE, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: IntoClauseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectIntoDumpFile) { + listener.enterSelectIntoDumpFile(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectIntoDumpFile) { + listener.exitSelectIntoDumpFile(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectIntoDumpFile) { + return visitor.visitSelectIntoDumpFile(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SelectIntoTextFileContext extends IntoClauseContext { + public _filename!: Token; + public _charset!: CharsetNameContext; + public _fieldsFormat!: Token; + public KW_INTO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTO, 0); } + public KW_OUTFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OUTFILE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_LINES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINES, 0); } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_FIELDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIELDS, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public selectFieldsInto(): SelectFieldsIntoContext[]; + public selectFieldsInto(i: number): SelectFieldsIntoContext; + public selectFieldsInto(i?: number): SelectFieldsIntoContext | SelectFieldsIntoContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectFieldsIntoContext); + } else { + return this.getRuleContext(i, SelectFieldsIntoContext); + } + } + public selectLinesInto(): SelectLinesIntoContext[]; + public selectLinesInto(i: number): SelectLinesIntoContext; + public selectLinesInto(i?: number): SelectLinesIntoContext | SelectLinesIntoContext[] { + if (i === undefined) { + return this.getRuleContexts(SelectLinesIntoContext); + } else { + return this.getRuleContext(i, SelectLinesIntoContext); + } + } + constructor(ctx: IntoClauseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectIntoTextFile) { + listener.enterSelectIntoTextFile(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectIntoTextFile) { + listener.exitSelectIntoTextFile(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectIntoTextFile) { + return visitor.visitSelectIntoTextFile(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectFieldsIntoContext extends ParserRuleContext { + public _terminationField!: Token; + public _enclosion!: Token; + public _escaping!: Token; + public KW_TERMINATED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TERMINATED, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_ENCLOSED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCLOSED, 0); } + public KW_OPTIONALLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIONALLY, 0); } + public KW_ESCAPED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ESCAPED, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectFieldsInto; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectFieldsInto) { + listener.enterSelectFieldsInto(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectFieldsInto) { + listener.exitSelectFieldsInto(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectFieldsInto) { + return visitor.visitSelectFieldsInto(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SelectLinesIntoContext extends ParserRuleContext { + public _starting!: Token; + public _terminationLine!: Token; + public KW_STARTING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STARTING, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_TERMINATED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TERMINATED, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_selectLinesInto; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSelectLinesInto) { + listener.enterSelectLinesInto(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSelectLinesInto) { + listener.exitSelectLinesInto(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSelectLinesInto) { + return visitor.visitSelectLinesInto(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FromClauseContext extends ParserRuleContext { + public _whereExpr!: ExpressionContext; + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public tableSources(): TableSourcesContext | undefined { + return this.tryGetRuleContext(0, TableSourcesContext); + } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_fromClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFromClause) { + listener.enterFromClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFromClause) { + listener.exitFromClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFromClause) { + return visitor.visitFromClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GroupByClauseContext extends ParserRuleContext { + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public groupByItem(): GroupByItemContext[]; + public groupByItem(i: number): GroupByItemContext; + public groupByItem(i?: number): GroupByItemContext | GroupByItemContext[] { + if (i === undefined) { + return this.getRuleContexts(GroupByItemContext); + } else { + return this.getRuleContext(i, GroupByItemContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_ROLLUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLLUP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_groupByClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGroupByClause) { + listener.enterGroupByClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGroupByClause) { + listener.exitGroupByClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGroupByClause) { + return visitor.visitGroupByClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HavingClauseContext extends ParserRuleContext { + public _havingExpr!: ExpressionContext; + public KW_HAVING(): TerminalNode { return this.getToken(MySqlParser.KW_HAVING, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_havingClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHavingClause) { + listener.enterHavingClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHavingClause) { + listener.exitHavingClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHavingClause) { + return visitor.visitHavingClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WindowClauseContext extends ParserRuleContext { + public KW_WINDOW(): TerminalNode { return this.getToken(MySqlParser.KW_WINDOW, 0); } + public windowName(): WindowNameContext[]; + public windowName(i: number): WindowNameContext; + public windowName(i?: number): WindowNameContext | WindowNameContext[] { + if (i === undefined) { + return this.getRuleContexts(WindowNameContext); + } else { + return this.getRuleContext(i, WindowNameContext); + } + } + public KW_AS(): TerminalNode[]; + public KW_AS(i: number): TerminalNode; + public KW_AS(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_AS); + } else { + return this.getToken(MySqlParser.KW_AS, i); + } + } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public windowSpec(): WindowSpecContext[]; + public windowSpec(i: number): WindowSpecContext; + public windowSpec(i?: number): WindowSpecContext | WindowSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(WindowSpecContext); + } else { + return this.getRuleContext(i, WindowSpecContext); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_windowClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWindowClause) { + listener.enterWindowClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWindowClause) { + listener.exitWindowClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWindowClause) { + return visitor.visitWindowClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GroupByItemContext extends ParserRuleContext { + public _order!: Token; + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_ASC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASC, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_groupByItem; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGroupByItem) { + listener.enterGroupByItem(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGroupByItem) { + listener.exitGroupByItem(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGroupByItem) { + return visitor.visitGroupByItem(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LimitClauseContext extends ParserRuleContext { + public _offset!: LimitClauseAtomContext; + public _limit!: LimitClauseAtomContext; + public KW_LIMIT(): TerminalNode { return this.getToken(MySqlParser.KW_LIMIT, 0); } + public KW_OFFSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFSET, 0); } + public limitClauseAtom(): LimitClauseAtomContext[]; + public limitClauseAtom(i: number): LimitClauseAtomContext; + public limitClauseAtom(i?: number): LimitClauseAtomContext | LimitClauseAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(LimitClauseAtomContext); + } else { + return this.getRuleContext(i, LimitClauseAtomContext); + } + } + public COMMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COMMA, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_limitClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLimitClause) { + listener.enterLimitClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLimitClause) { + listener.exitLimitClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLimitClause) { + return visitor.visitLimitClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LimitClauseAtomContext extends ParserRuleContext { + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public mysqlVariable(): MysqlVariableContext | undefined { + return this.tryGetRuleContext(0, MysqlVariableContext); + } + public simpleId(): SimpleIdContext | undefined { + return this.tryGetRuleContext(0, SimpleIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_limitClauseAtom; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLimitClauseAtom) { + listener.enterLimitClauseAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLimitClauseAtom) { + listener.exitLimitClauseAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLimitClauseAtom) { + return visitor.visitLimitClauseAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StartTransactionContext extends ParserRuleContext { + public KW_START(): TerminalNode { return this.getToken(MySqlParser.KW_START, 0); } + public KW_TRANSACTION(): TerminalNode { return this.getToken(MySqlParser.KW_TRANSACTION, 0); } + public transactionMode(): TransactionModeContext[]; + public transactionMode(i: number): TransactionModeContext; + public transactionMode(i?: number): TransactionModeContext | TransactionModeContext[] { + if (i === undefined) { + return this.getRuleContexts(TransactionModeContext); + } else { + return this.getRuleContext(i, TransactionModeContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_startTransaction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStartTransaction) { + listener.enterStartTransaction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStartTransaction) { + listener.exitStartTransaction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStartTransaction) { + return visitor.visitStartTransaction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BeginWorkContext extends ParserRuleContext { + public KW_BEGIN(): TerminalNode { return this.getToken(MySqlParser.KW_BEGIN, 0); } + public KW_WORK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WORK, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_beginWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBeginWork) { + listener.enterBeginWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBeginWork) { + listener.exitBeginWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBeginWork) { + return visitor.visitBeginWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CommitWorkContext extends ParserRuleContext { + public _nochain!: Token; + public _norelease!: Token; + public KW_COMMIT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMIT, 0); } + public KW_WORK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WORK, 0); } + public KW_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AND, 0); } + public KW_CHAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAIN, 0); } + public KW_RELEASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELEASE, 0); } + public KW_NO(): TerminalNode[]; + public KW_NO(i: number): TerminalNode; + public KW_NO(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_NO); + } else { + return this.getToken(MySqlParser.KW_NO, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_commitWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCommitWork) { + listener.enterCommitWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCommitWork) { + listener.exitCommitWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCommitWork) { + return visitor.visitCommitWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RollbackWorkContext extends ParserRuleContext { + public _nochain!: Token; + public _norelease!: Token; + public KW_ROLLBACK(): TerminalNode { return this.getToken(MySqlParser.KW_ROLLBACK, 0); } + public KW_WORK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WORK, 0); } + public KW_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AND, 0); } + public KW_CHAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAIN, 0); } + public KW_RELEASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELEASE, 0); } + public KW_NO(): TerminalNode[]; + public KW_NO(i: number): TerminalNode; + public KW_NO(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_NO); + } else { + return this.getToken(MySqlParser.KW_NO, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_rollbackWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRollbackWork) { + listener.enterRollbackWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRollbackWork) { + listener.exitRollbackWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRollbackWork) { + return visitor.visitRollbackWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SavepointStatementContext extends ParserRuleContext { + public _identifier!: UidContext; + public KW_SAVEPOINT(): TerminalNode { return this.getToken(MySqlParser.KW_SAVEPOINT, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_savepointStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSavepointStatement) { + listener.enterSavepointStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSavepointStatement) { + listener.exitSavepointStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSavepointStatement) { + return visitor.visitSavepointStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RollbackStatementContext extends ParserRuleContext { + public _identifier!: UidContext; + public KW_ROLLBACK(): TerminalNode { return this.getToken(MySqlParser.KW_ROLLBACK, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_WORK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WORK, 0); } + public KW_SAVEPOINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SAVEPOINT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_rollbackStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRollbackStatement) { + listener.enterRollbackStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRollbackStatement) { + listener.exitRollbackStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRollbackStatement) { + return visitor.visitRollbackStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReleaseStatementContext extends ParserRuleContext { + public _identifier!: UidContext; + public KW_RELEASE(): TerminalNode { return this.getToken(MySqlParser.KW_RELEASE, 0); } + public KW_SAVEPOINT(): TerminalNode { return this.getToken(MySqlParser.KW_SAVEPOINT, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_releaseStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReleaseStatement) { + listener.enterReleaseStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReleaseStatement) { + listener.exitReleaseStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReleaseStatement) { + return visitor.visitReleaseStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LockTablesContext extends ParserRuleContext { + public KW_LOCK(): TerminalNode { return this.getToken(MySqlParser.KW_LOCK, 0); } + public lockTableElement(): LockTableElementContext[]; + public lockTableElement(i: number): LockTableElementContext; + public lockTableElement(i?: number): LockTableElementContext | LockTableElementContext[] { + if (i === undefined) { + return this.getRuleContexts(LockTableElementContext); + } else { + return this.getRuleContext(i, LockTableElementContext); + } + } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lockTables; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLockTables) { + listener.enterLockTables(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLockTables) { + listener.exitLockTables(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLockTables) { + return visitor.visitLockTables(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UnlockTablesContext extends ParserRuleContext { + public KW_UNLOCK(): TerminalNode { return this.getToken(MySqlParser.KW_UNLOCK, 0); } + public KW_TABLES(): TerminalNode { return this.getToken(MySqlParser.KW_TABLES, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_unlockTables; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnlockTables) { + listener.enterUnlockTables(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnlockTables) { + listener.exitUnlockTables(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnlockTables) { + return visitor.visitUnlockTables(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetAutocommitStatementContext extends ParserRuleContext { + public _autocommitValue!: Token; + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_AUTOCOMMIT(): TerminalNode { return this.getToken(MySqlParser.KW_AUTOCOMMIT, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setAutocommitStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetAutocommitStatement) { + listener.enterSetAutocommitStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetAutocommitStatement) { + listener.exitSetAutocommitStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetAutocommitStatement) { + return visitor.visitSetAutocommitStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetTransactionStatementContext extends ParserRuleContext { + public _transactionContext!: Token; + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_TRANSACTION(): TerminalNode { return this.getToken(MySqlParser.KW_TRANSACTION, 0); } + public transactionOption(): TransactionOptionContext[]; + public transactionOption(i: number): TransactionOptionContext; + public transactionOption(i?: number): TransactionOptionContext | TransactionOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TransactionOptionContext); + } else { + return this.getRuleContext(i, TransactionOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_GLOBAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GLOBAL, 0); } + public KW_SESSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setTransactionStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetTransactionStatement) { + listener.enterSetTransactionStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetTransactionStatement) { + listener.exitSetTransactionStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetTransactionStatement) { + return visitor.visitSetTransactionStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TransactionModeContext extends ParserRuleContext { + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_CONSISTENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSISTENT, 0); } + public KW_SNAPSHOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SNAPSHOT, 0); } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_WRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WRITE, 0); } + public KW_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_transactionMode; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTransactionMode) { + listener.enterTransactionMode(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTransactionMode) { + listener.exitTransactionMode(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTransactionMode) { + return visitor.visitTransactionMode(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LockTableElementContext extends ParserRuleContext { + public _alias!: UidContext; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public lockAction(): LockActionContext { + return this.getRuleContext(0, LockActionContext); + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lockTableElement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLockTableElement) { + listener.enterLockTableElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLockTableElement) { + listener.exitLockTableElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLockTableElement) { + return visitor.visitLockTableElement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LockActionContext extends ParserRuleContext { + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public KW_WRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WRITE, 0); } + public KW_LOW_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOW_PRIORITY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lockAction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLockAction) { + listener.enterLockAction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLockAction) { + listener.exitLockAction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLockAction) { + return visitor.visitLockAction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TransactionOptionContext extends ParserRuleContext { + public KW_ISOLATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ISOLATION, 0); } + public KW_LEVEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEVEL, 0); } + public transactionLevel(): TransactionLevelContext | undefined { + return this.tryGetRuleContext(0, TransactionLevelContext); + } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_WRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WRITE, 0); } + public KW_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_transactionOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTransactionOption) { + listener.enterTransactionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTransactionOption) { + listener.exitTransactionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTransactionOption) { + return visitor.visitTransactionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TransactionLevelContext extends ParserRuleContext { + public KW_REPEATABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPEATABLE, 0); } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_COMMITTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMITTED, 0); } + public KW_UNCOMMITTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNCOMMITTED, 0); } + public KW_SERIALIZABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERIALIZABLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_transactionLevel; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTransactionLevel) { + listener.enterTransactionLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTransactionLevel) { + listener.exitTransactionLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTransactionLevel) { + return visitor.visitTransactionLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ChangeMasterContext extends ParserRuleContext { + public KW_CHANGE(): TerminalNode { return this.getToken(MySqlParser.KW_CHANGE, 0); } + public KW_MASTER(): TerminalNode { return this.getToken(MySqlParser.KW_MASTER, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public masterOption(): MasterOptionContext[]; + public masterOption(i: number): MasterOptionContext; + public masterOption(i?: number): MasterOptionContext | MasterOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(MasterOptionContext); + } else { + return this.getRuleContext(i, MasterOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_changeMaster; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChangeMaster) { + listener.enterChangeMaster(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChangeMaster) { + listener.exitChangeMaster(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChangeMaster) { + return visitor.visitChangeMaster(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ChangeReplicationFilterContext extends ParserRuleContext { + public KW_CHANGE(): TerminalNode { return this.getToken(MySqlParser.KW_CHANGE, 0); } + public KW_REPLICATION(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATION, 0); } + public KW_FILTER(): TerminalNode { return this.getToken(MySqlParser.KW_FILTER, 0); } + public replicationFilter(): ReplicationFilterContext[]; + public replicationFilter(i: number): ReplicationFilterContext; + public replicationFilter(i?: number): ReplicationFilterContext | ReplicationFilterContext[] { + if (i === undefined) { + return this.getRuleContexts(ReplicationFilterContext); + } else { + return this.getRuleContext(i, ReplicationFilterContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_changeReplicationFilter; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChangeReplicationFilter) { + listener.enterChangeReplicationFilter(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChangeReplicationFilter) { + listener.exitChangeReplicationFilter(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChangeReplicationFilter) { + return visitor.visitChangeReplicationFilter(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ChangeReplicationSourceContext extends ParserRuleContext { + public KW_CHANGE(): TerminalNode { return this.getToken(MySqlParser.KW_CHANGE, 0); } + public KW_REPLICATION(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATION, 0); } + public KW_SOURCE(): TerminalNode { return this.getToken(MySqlParser.KW_SOURCE, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public replicationSourceOption(): ReplicationSourceOptionContext[]; + public replicationSourceOption(i: number): ReplicationSourceOptionContext; + public replicationSourceOption(i?: number): ReplicationSourceOptionContext | ReplicationSourceOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(ReplicationSourceOptionContext); + } else { + return this.getRuleContext(i, ReplicationSourceOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_changeReplicationSource; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChangeReplicationSource) { + listener.enterChangeReplicationSource(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChangeReplicationSource) { + listener.exitChangeReplicationSource(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChangeReplicationSource) { + return visitor.visitChangeReplicationSource(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PurgeBinaryLogsContext extends ParserRuleContext { + public _purgeFormat!: Token; + public _fileName!: Token; + public _timeValue!: Token; + public KW_PURGE(): TerminalNode { return this.getToken(MySqlParser.KW_PURGE, 0); } + public KW_LOGS(): TerminalNode { return this.getToken(MySqlParser.KW_LOGS, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_MASTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER, 0); } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public KW_BEFORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BEFORE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_purgeBinaryLogs; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPurgeBinaryLogs) { + listener.enterPurgeBinaryLogs(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPurgeBinaryLogs) { + listener.exitPurgeBinaryLogs(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPurgeBinaryLogs) { + return visitor.visitPurgeBinaryLogs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StartSlaveOrReplicaContext extends ParserRuleContext { + public KW_START(): TerminalNode { return this.getToken(MySqlParser.KW_START, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_REPLICA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICA, 0); } + public threadType(): ThreadTypeContext[]; + public threadType(i: number): ThreadTypeContext; + public threadType(i?: number): ThreadTypeContext | ThreadTypeContext[] { + if (i === undefined) { + return this.getRuleContexts(ThreadTypeContext); + } else { + return this.getRuleContext(i, ThreadTypeContext); + } + } + public KW_UNTIL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNTIL, 0); } + public untilOption(): UntilOptionContext | undefined { + return this.tryGetRuleContext(0, UntilOptionContext); + } + public connectionOptions(): ConnectionOptionsContext[]; + public connectionOptions(i: number): ConnectionOptionsContext; + public connectionOptions(i?: number): ConnectionOptionsContext | ConnectionOptionsContext[] { + if (i === undefined) { + return this.getRuleContexts(ConnectionOptionsContext); + } else { + return this.getRuleContext(i, ConnectionOptionsContext); + } + } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_startSlaveOrReplica; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStartSlaveOrReplica) { + listener.enterStartSlaveOrReplica(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStartSlaveOrReplica) { + listener.exitStartSlaveOrReplica(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStartSlaveOrReplica) { + return visitor.visitStartSlaveOrReplica(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StopSlaveOrReplicaContext extends ParserRuleContext { + public KW_STOP(): TerminalNode { return this.getToken(MySqlParser.KW_STOP, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_REPLICA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICA, 0); } + public threadType(): ThreadTypeContext[]; + public threadType(i: number): ThreadTypeContext; + public threadType(i?: number): ThreadTypeContext | ThreadTypeContext[] { + if (i === undefined) { + return this.getRuleContexts(ThreadTypeContext); + } else { + return this.getRuleContext(i, ThreadTypeContext); + } + } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_stopSlaveOrReplica; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStopSlaveOrReplica) { + listener.enterStopSlaveOrReplica(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStopSlaveOrReplica) { + listener.exitStopSlaveOrReplica(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStopSlaveOrReplica) { + return visitor.visitStopSlaveOrReplica(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StartGroupReplicationContext extends ParserRuleContext { + public KW_START(): TerminalNode { return this.getToken(MySqlParser.KW_START, 0); } + public KW_GROUP_REPLICATION(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP_REPLICATION, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_DEFAULT_AUTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT_AUTH, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_startGroupReplication; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStartGroupReplication) { + listener.enterStartGroupReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStartGroupReplication) { + listener.exitStartGroupReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStartGroupReplication) { + return visitor.visitStartGroupReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StopGroupReplicationContext extends ParserRuleContext { + public KW_STOP(): TerminalNode { return this.getToken(MySqlParser.KW_STOP, 0); } + public KW_GROUP_REPLICATION(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP_REPLICATION, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_stopGroupReplication; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStopGroupReplication) { + listener.enterStopGroupReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStopGroupReplication) { + listener.exitStopGroupReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStopGroupReplication) { + return visitor.visitStopGroupReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class MasterOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_masterOption; } + public copyFrom(ctx: MasterOptionContext): void { + super.copyFrom(ctx); + } +} +export class MasterStringOptionContext extends MasterOptionContext { + public stringMasterOption(): StringMasterOptionContext { + return this.getRuleContext(0, StringMasterOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: MasterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMasterStringOption) { + listener.enterMasterStringOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMasterStringOption) { + listener.exitMasterStringOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMasterStringOption) { + return visitor.visitMasterStringOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MasterDecimalOptionContext extends MasterOptionContext { + public decimalMasterOption(): DecimalMasterOptionContext { + return this.getRuleContext(0, DecimalMasterOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: MasterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMasterDecimalOption) { + listener.enterMasterDecimalOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMasterDecimalOption) { + listener.exitMasterDecimalOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMasterDecimalOption) { + return visitor.visitMasterDecimalOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MasterBoolOptionContext extends MasterOptionContext { + public _boolVal!: Token; + public boolMasterOption(): BoolMasterOptionContext { + return this.getRuleContext(0, BoolMasterOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + constructor(ctx: MasterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMasterBoolOption) { + listener.enterMasterBoolOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMasterBoolOption) { + listener.exitMasterBoolOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMasterBoolOption) { + return visitor.visitMasterBoolOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class V8AddMasterOptionContext extends MasterOptionContext { + public v8NewMasterOption(): V8NewMasterOptionContext { + return this.getRuleContext(0, V8NewMasterOptionContext); + } + constructor(ctx: MasterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterV8AddMasterOption) { + listener.enterV8AddMasterOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitV8AddMasterOption) { + listener.exitV8AddMasterOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitV8AddMasterOption) { + return visitor.visitV8AddMasterOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MasterUidListOptionContext extends MasterOptionContext { + public _server_id!: UidContext; + public KW_IGNORE_SERVER_IDS(): TerminalNode { return this.getToken(MySqlParser.KW_IGNORE_SERVER_IDS, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: MasterOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMasterUidListOption) { + listener.enterMasterUidListOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMasterUidListOption) { + listener.exitMasterUidListOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMasterUidListOption) { + return visitor.visitMasterUidListOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StringMasterOptionContext extends ParserRuleContext { + public KW_MASTER_BIND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_BIND, 0); } + public KW_MASTER_HOST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_HOST, 0); } + public KW_MASTER_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_USER, 0); } + public KW_MASTER_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_PASSWORD, 0); } + public KW_MASTER_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_LOG_FILE, 0); } + public KW_RELAY_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_FILE, 0); } + public KW_MASTER_COMPRESSION_ALGORITHMS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_COMPRESSION_ALGORITHMS, 0); } + public KW_MASTER_SSL_CA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CA, 0); } + public KW_MASTER_SSL_CAPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CAPATH, 0); } + public KW_MASTER_SSL_CERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CERT, 0); } + public KW_MASTER_SSL_CRL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CRL, 0); } + public KW_MASTER_SSL_CRLPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CRLPATH, 0); } + public KW_MASTER_SSL_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_KEY, 0); } + public KW_MASTER_SSL_CIPHER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CIPHER, 0); } + public KW_MASTER_TLS_VERSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_TLS_VERSION, 0); } + public KW_MASTER_TLS_CIPHERSUITES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_TLS_CIPHERSUITES, 0); } + public KW_MASTER_PUBLIC_KEY_PATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_PUBLIC_KEY_PATH, 0); } + public KW_NETWORK_NAMESPACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NETWORK_NAMESPACE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_stringMasterOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStringMasterOption) { + listener.enterStringMasterOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStringMasterOption) { + listener.exitStringMasterOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStringMasterOption) { + return visitor.visitStringMasterOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DecimalMasterOptionContext extends ParserRuleContext { + public KW_MASTER_PORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_PORT, 0); } + public KW_MASTER_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_LOG_POS, 0); } + public KW_RELAY_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_POS, 0); } + public KW_MASTER_HEARTBEAT_PERIOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_HEARTBEAT_PERIOD, 0); } + public KW_MASTER_CONNECT_RETRY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_CONNECT_RETRY, 0); } + public KW_MASTER_RETRY_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_RETRY_COUNT, 0); } + public KW_MASTER_DELAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_DELAY, 0); } + public KW_MASTER_ZSTD_COMPRESSION_LEVEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_ZSTD_COMPRESSION_LEVEL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_decimalMasterOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDecimalMasterOption) { + listener.enterDecimalMasterOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDecimalMasterOption) { + listener.exitDecimalMasterOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDecimalMasterOption) { + return visitor.visitDecimalMasterOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BoolMasterOptionContext extends ParserRuleContext { + public KW_REQUIRE_ROW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE_ROW_FORMAT, 0); } + public KW_MASTER_AUTO_POSITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_AUTO_POSITION, 0); } + public KW_SOURCE_CONNECTION_AUTO_FAILOVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER, 0); } + public KW_MASTER_SSL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL, 0); } + public KW_MASTER_SSL_VERIFY_SERVER_CERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_VERIFY_SERVER_CERT, 0); } + public KW_GET_MASTER_PUBLIC_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GET_MASTER_PUBLIC_KEY, 0); } + public KW_GTID_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GTID_ONLY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_boolMasterOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBoolMasterOption) { + listener.enterBoolMasterOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBoolMasterOption) { + listener.exitBoolMasterOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBoolMasterOption) { + return visitor.visitBoolMasterOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class V8NewMasterOptionContext extends ParserRuleContext { + public KW_PRIVILEGE_CHECKS_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGE_CHECKS_USER, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK, 0); } + public KW_STREAM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STREAM, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_OFF(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFF, 0); } + public KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public gtuidSet(): GtuidSetContext | undefined { + return this.tryGetRuleContext(0, GtuidSetContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_v8NewMasterOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterV8NewMasterOption) { + listener.enterV8NewMasterOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitV8NewMasterOption) { + listener.exitV8NewMasterOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitV8NewMasterOption) { + return visitor.visitV8NewMasterOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReplicationSourceOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_replicationSourceOption; } + public copyFrom(ctx: ReplicationSourceOptionContext): void { + super.copyFrom(ctx); + } +} +export class SourceStringOptionContext extends ReplicationSourceOptionContext { + public stringSourceOption(): StringSourceOptionContext { + return this.getRuleContext(0, StringSourceOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ReplicationSourceOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceStringOption) { + listener.enterSourceStringOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceStringOption) { + listener.exitSourceStringOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceStringOption) { + return visitor.visitSourceStringOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SourceDecimalOptionContext extends ReplicationSourceOptionContext { + public decimalSourceOption(): DecimalSourceOptionContext { + return this.getRuleContext(0, DecimalSourceOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: ReplicationSourceOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceDecimalOption) { + listener.enterSourceDecimalOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceDecimalOption) { + listener.exitSourceDecimalOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceDecimalOption) { + return visitor.visitSourceDecimalOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SourceBoolOptionContext extends ReplicationSourceOptionContext { + public _boolVal!: Token; + public boolSourceOption(): BoolSourceOptionContext { + return this.getRuleContext(0, BoolSourceOptionContext); + } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + constructor(ctx: ReplicationSourceOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceBoolOption) { + listener.enterSourceBoolOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceBoolOption) { + listener.exitSourceBoolOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceBoolOption) { + return visitor.visitSourceBoolOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SourceOtherOptionContext extends ReplicationSourceOptionContext { + public otherSourceOption(): OtherSourceOptionContext { + return this.getRuleContext(0, OtherSourceOptionContext); + } + constructor(ctx: ReplicationSourceOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceOtherOption) { + listener.enterSourceOtherOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceOtherOption) { + listener.exitSourceOtherOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceOtherOption) { + return visitor.visitSourceOtherOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SourceUidListOptionContext extends ReplicationSourceOptionContext { + public _server_id!: UidContext; + public KW_IGNORE_SERVER_IDS(): TerminalNode { return this.getToken(MySqlParser.KW_IGNORE_SERVER_IDS, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ReplicationSourceOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceUidListOption) { + listener.enterSourceUidListOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceUidListOption) { + listener.exitSourceUidListOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceUidListOption) { + return visitor.visitSourceUidListOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StringSourceOptionContext extends ParserRuleContext { + public KW_SOURCE_BIND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_BIND, 0); } + public KW_SOURCE_HOST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_HOST, 0); } + public KW_SOURCE_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_USER, 0); } + public KW_SOURCE_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_PASSWORD, 0); } + public KW_SOURCE_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_LOG_FILE, 0); } + public KW_RELAY_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_FILE, 0); } + public KW_SOURCE_COMPRESSION_ALGORITHMS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_COMPRESSION_ALGORITHMS, 0); } + public KW_SOURCE_SSL_CA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CA, 0); } + public KW_SOURCE_SSL_CAPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CAPATH, 0); } + public KW_SOURCE_SSL_CERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CERT, 0); } + public KW_SOURCE_SSL_CRL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CRL, 0); } + public KW_SOURCE_SSL_CRLPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CRLPATH, 0); } + public KW_SOURCE_SSL_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_KEY, 0); } + public KW_SOURCE_SSL_CIPHER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_CIPHER, 0); } + public KW_SOURCE_TLS_VERSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_TLS_VERSION, 0); } + public KW_SOURCE_TLS_CIPHERSUITES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_TLS_CIPHERSUITES, 0); } + public KW_SOURCE_PUBLIC_KEY_PATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_PUBLIC_KEY_PATH, 0); } + public KW_NETWORK_NAMESPACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NETWORK_NAMESPACE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_stringSourceOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStringSourceOption) { + listener.enterStringSourceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStringSourceOption) { + listener.exitStringSourceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStringSourceOption) { + return visitor.visitStringSourceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DecimalSourceOptionContext extends ParserRuleContext { + public KW_SOURCE_PORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_PORT, 0); } + public KW_SOURCE_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_LOG_POS, 0); } + public KW_RELAY_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_POS, 0); } + public KW_SOURCE_HEARTBEAT_PERIOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_HEARTBEAT_PERIOD, 0); } + public KW_SOURCE_CONNECT_RETRY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_CONNECT_RETRY, 0); } + public KW_SOURCE_RETRY_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_RETRY_COUNT, 0); } + public KW_SOURCE_DELAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_DELAY, 0); } + public KW_SOURCE_ZSTD_COMPRESSION_LEVEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_ZSTD_COMPRESSION_LEVEL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_decimalSourceOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDecimalSourceOption) { + listener.enterDecimalSourceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDecimalSourceOption) { + listener.exitDecimalSourceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDecimalSourceOption) { + return visitor.visitDecimalSourceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BoolSourceOptionContext extends ParserRuleContext { + public KW_REQUIRE_ROW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE_ROW_FORMAT, 0); } + public KW_SOURCE_AUTO_POSITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_AUTO_POSITION, 0); } + public KW_SOURCE_CONNECTION_AUTO_FAILOVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_CONNECTION_AUTO_FAILOVER, 0); } + public KW_SOURCE_SSL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL, 0); } + public KW_SOURCE_SSL_VERIFY_SERVER_CERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE_SSL_VERIFY_SERVER_CERT, 0); } + public KW_GET_SOURCE_PUBLIC_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GET_SOURCE_PUBLIC_KEY, 0); } + public KW_GTID_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GTID_ONLY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_boolSourceOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBoolSourceOption) { + listener.enterBoolSourceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBoolSourceOption) { + listener.exitBoolSourceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBoolSourceOption) { + return visitor.visitBoolSourceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OtherSourceOptionContext extends ParserRuleContext { + public KW_PRIVILEGE_CHECKS_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGE_CHECKS_USER, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE_TABLE_PRIMARY_KEY_CHECK, 0); } + public KW_STREAM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STREAM, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_OFF(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFF, 0); } + public KW_GENERATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GENERATE, 0); } + public KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public gtuidSet(): GtuidSetContext | undefined { + return this.tryGetRuleContext(0, GtuidSetContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_otherSourceOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOtherSourceOption) { + listener.enterOtherSourceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOtherSourceOption) { + listener.exitOtherSourceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOtherSourceOption) { + return visitor.visitOtherSourceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ChannelOptionContext extends ParserRuleContext { + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public KW_CHANNEL(): TerminalNode { return this.getToken(MySqlParser.KW_CHANNEL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_channelOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChannelOption) { + listener.enterChannelOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChannelOption) { + listener.exitChannelOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChannelOption) { + return visitor.visitChannelOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReplicationFilterContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_replicationFilter; } + public copyFrom(ctx: ReplicationFilterContext): void { + super.copyFrom(ctx); + } +} +export class DoDbReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_DO_DB(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_DO_DB, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public databaseName(): DatabaseNameContext[]; + public databaseName(i: number): DatabaseNameContext; + public databaseName(i?: number): DatabaseNameContext | DatabaseNameContext[] { + if (i === undefined) { + return this.getRuleContexts(DatabaseNameContext); + } else { + return this.getRuleContext(i, DatabaseNameContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDoDbReplication) { + listener.enterDoDbReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDoDbReplication) { + listener.exitDoDbReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDoDbReplication) { + return visitor.visitDoDbReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IgnoreDbReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_IGNORE_DB(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_IGNORE_DB, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public databaseName(): DatabaseNameContext[]; + public databaseName(i: number): DatabaseNameContext; + public databaseName(i?: number): DatabaseNameContext | DatabaseNameContext[] { + if (i === undefined) { + return this.getRuleContexts(DatabaseNameContext); + } else { + return this.getRuleContext(i, DatabaseNameContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIgnoreDbReplication) { + listener.enterIgnoreDbReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIgnoreDbReplication) { + listener.exitIgnoreDbReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIgnoreDbReplication) { + return visitor.visitIgnoreDbReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DoTableReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_DO_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_DO_TABLE, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDoTableReplication) { + listener.enterDoTableReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDoTableReplication) { + listener.exitDoTableReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDoTableReplication) { + return visitor.visitDoTableReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IgnoreTableReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_IGNORE_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_IGNORE_TABLE, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIgnoreTableReplication) { + listener.enterIgnoreTableReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIgnoreTableReplication) { + listener.exitIgnoreTableReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIgnoreTableReplication) { + return visitor.visitIgnoreTableReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class WildDoTableReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_WILD_DO_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_WILD_DO_TABLE, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public simpleStrings(): SimpleStringsContext { + return this.getRuleContext(0, SimpleStringsContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWildDoTableReplication) { + listener.enterWildDoTableReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWildDoTableReplication) { + listener.exitWildDoTableReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWildDoTableReplication) { + return visitor.visitWildDoTableReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class WildIgnoreTableReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_WILD_IGNORE_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public simpleStrings(): SimpleStringsContext { + return this.getRuleContext(0, SimpleStringsContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWildIgnoreTableReplication) { + listener.enterWildIgnoreTableReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWildIgnoreTableReplication) { + listener.exitWildIgnoreTableReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWildIgnoreTableReplication) { + return visitor.visitWildIgnoreTableReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RewriteDbReplicationContext extends ReplicationFilterContext { + public KW_REPLICATE_REWRITE_DB(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICATE_REWRITE_DB, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public tablePair(): TablePairContext[]; + public tablePair(i: number): TablePairContext; + public tablePair(i?: number): TablePairContext | TablePairContext[] { + if (i === undefined) { + return this.getRuleContexts(TablePairContext); + } else { + return this.getRuleContext(i, TablePairContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ReplicationFilterContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRewriteDbReplication) { + listener.enterRewriteDbReplication(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRewriteDbReplication) { + listener.exitRewriteDbReplication(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRewriteDbReplication) { + return visitor.visitRewriteDbReplication(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TablePairContext extends ParserRuleContext { + public _firstTable!: TableNameContext; + public _secondTable!: TableNameContext; + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public tableName(): TableNameContext[]; + public tableName(i: number): TableNameContext; + public tableName(i?: number): TableNameContext | TableNameContext[] { + if (i === undefined) { + return this.getRuleContexts(TableNameContext); + } else { + return this.getRuleContext(i, TableNameContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tablePair; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTablePair) { + listener.enterTablePair(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTablePair) { + listener.exitTablePair(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTablePair) { + return visitor.visitTablePair(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ThreadTypeContext extends ParserRuleContext { + public KW_IO_THREAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IO_THREAD, 0); } + public KW_SQL_THREAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_THREAD, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_threadType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterThreadType) { + listener.enterThreadType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitThreadType) { + listener.exitThreadType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitThreadType) { + return visitor.visitThreadType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UntilOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_untilOption; } + public copyFrom(ctx: UntilOptionContext): void { + super.copyFrom(ctx); + } +} +export class GtidsUntilOptionContext extends UntilOptionContext { + public _gtids!: Token; + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public gtuidSet(): GtuidSetContext { + return this.getRuleContext(0, GtuidSetContext); + } + public KW_SQL_BEFORE_GTIDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_BEFORE_GTIDS, 0); } + public KW_SQL_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_AFTER_GTIDS, 0); } + constructor(ctx: UntilOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGtidsUntilOption) { + listener.enterGtidsUntilOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGtidsUntilOption) { + listener.exitGtidsUntilOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGtidsUntilOption) { + return visitor.visitGtidsUntilOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MasterLogUntilOptionContext extends UntilOptionContext { + public KW_MASTER_LOG_FILE(): TerminalNode { return this.getToken(MySqlParser.KW_MASTER_LOG_FILE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public KW_MASTER_LOG_POS(): TerminalNode { return this.getToken(MySqlParser.KW_MASTER_LOG_POS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: UntilOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMasterLogUntilOption) { + listener.enterMasterLogUntilOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMasterLogUntilOption) { + listener.exitMasterLogUntilOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMasterLogUntilOption) { + return visitor.visitMasterLogUntilOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SourceLogUntilOptionContext extends UntilOptionContext { + public KW_SOURCE_LOG_FILE(): TerminalNode { return this.getToken(MySqlParser.KW_SOURCE_LOG_FILE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public KW_SOURCE_LOG_POS(): TerminalNode { return this.getToken(MySqlParser.KW_SOURCE_LOG_POS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: UntilOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSourceLogUntilOption) { + listener.enterSourceLogUntilOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSourceLogUntilOption) { + listener.exitSourceLogUntilOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSourceLogUntilOption) { + return visitor.visitSourceLogUntilOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RelayLogUntilOptionContext extends UntilOptionContext { + public KW_RELAY_LOG_FILE(): TerminalNode { return this.getToken(MySqlParser.KW_RELAY_LOG_FILE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public KW_RELAY_LOG_POS(): TerminalNode { return this.getToken(MySqlParser.KW_RELAY_LOG_POS, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: UntilOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRelayLogUntilOption) { + listener.enterRelayLogUntilOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRelayLogUntilOption) { + listener.exitRelayLogUntilOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRelayLogUntilOption) { + return visitor.visitRelayLogUntilOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SqlGapsUntilOptionContext extends UntilOptionContext { + public KW_SQL_AFTER_MTS_GAPS(): TerminalNode { return this.getToken(MySqlParser.KW_SQL_AFTER_MTS_GAPS, 0); } + constructor(ctx: UntilOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSqlGapsUntilOption) { + listener.enterSqlGapsUntilOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSqlGapsUntilOption) { + listener.exitSqlGapsUntilOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSqlGapsUntilOption) { + return visitor.visitSqlGapsUntilOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConnectionOptionsContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_connectionOptions; } + public copyFrom(ctx: ConnectionOptionsContext): void { + super.copyFrom(ctx); + } +} +export class UserConnectionOptionContext extends ConnectionOptionsContext { + public _conOptUser!: Token; + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ConnectionOptionsContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserConnectionOption) { + listener.enterUserConnectionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserConnectionOption) { + listener.exitUserConnectionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserConnectionOption) { + return visitor.visitUserConnectionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PasswordConnectionOptionContext extends ConnectionOptionsContext { + public _conOptPassword!: Token; + public KW_PASSWORD(): TerminalNode { return this.getToken(MySqlParser.KW_PASSWORD, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ConnectionOptionsContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPasswordConnectionOption) { + listener.enterPasswordConnectionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPasswordConnectionOption) { + listener.exitPasswordConnectionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPasswordConnectionOption) { + return visitor.visitPasswordConnectionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefaultAuthConnectionOptionContext extends ConnectionOptionsContext { + public _conOptDefAuth!: Token; + public KW_DEFAULT_AUTH(): TerminalNode { return this.getToken(MySqlParser.KW_DEFAULT_AUTH, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ConnectionOptionsContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefaultAuthConnectionOption) { + listener.enterDefaultAuthConnectionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefaultAuthConnectionOption) { + listener.exitDefaultAuthConnectionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefaultAuthConnectionOption) { + return visitor.visitDefaultAuthConnectionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PluginDirConnectionOptionContext extends ConnectionOptionsContext { + public _conOptPluginDir!: Token; + public KW_PLUGIN_DIR(): TerminalNode { return this.getToken(MySqlParser.KW_PLUGIN_DIR, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: ConnectionOptionsContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPluginDirConnectionOption) { + listener.enterPluginDirConnectionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPluginDirConnectionOption) { + listener.exitPluginDirConnectionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPluginDirConnectionOption) { + return visitor.visitPluginDirConnectionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GtuidSetContext extends ParserRuleContext { + public uuidSet(): UuidSetContext[]; + public uuidSet(i: number): UuidSetContext; + public uuidSet(i?: number): UuidSetContext | UuidSetContext[] { + if (i === undefined) { + return this.getRuleContexts(UuidSetContext); + } else { + return this.getRuleContext(i, UuidSetContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_gtuidSet; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGtuidSet) { + listener.enterGtuidSet(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGtuidSet) { + listener.exitGtuidSet(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGtuidSet) { + return visitor.visitGtuidSet(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaStartTransactionContext extends ParserRuleContext { + public _xaStart!: Token; + public _xaAction!: Token; + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public xid(): XidContext { + return this.getRuleContext(0, XidContext); + } + public KW_START(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_START, 0); } + public KW_BEGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BEGIN, 0); } + public KW_JOIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JOIN, 0); } + public KW_RESUME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESUME, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaStartTransaction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaStartTransaction) { + listener.enterXaStartTransaction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaStartTransaction) { + listener.exitXaStartTransaction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaStartTransaction) { + return visitor.visitXaStartTransaction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaEndTransactionContext extends ParserRuleContext { + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public xid(): XidContext { + return this.getRuleContext(0, XidContext); + } + public KW_SUSPEND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUSPEND, 0); } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_MIGRATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIGRATE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaEndTransaction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaEndTransaction) { + listener.enterXaEndTransaction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaEndTransaction) { + listener.exitXaEndTransaction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaEndTransaction) { + return visitor.visitXaEndTransaction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaPrepareStatementContext extends ParserRuleContext { + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public KW_PREPARE(): TerminalNode { return this.getToken(MySqlParser.KW_PREPARE, 0); } + public xid(): XidContext { + return this.getRuleContext(0, XidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaPrepareStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaPrepareStatement) { + listener.enterXaPrepareStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaPrepareStatement) { + listener.exitXaPrepareStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaPrepareStatement) { + return visitor.visitXaPrepareStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaCommitWorkContext extends ParserRuleContext { + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public KW_COMMIT(): TerminalNode { return this.getToken(MySqlParser.KW_COMMIT, 0); } + public xid(): XidContext { + return this.getRuleContext(0, XidContext); + } + public KW_ONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONE, 0); } + public KW_PHASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PHASE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaCommitWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaCommitWork) { + listener.enterXaCommitWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaCommitWork) { + listener.exitXaCommitWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaCommitWork) { + return visitor.visitXaCommitWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaRollbackWorkContext extends ParserRuleContext { + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public KW_ROLLBACK(): TerminalNode { return this.getToken(MySqlParser.KW_ROLLBACK, 0); } + public xid(): XidContext { + return this.getRuleContext(0, XidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaRollbackWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaRollbackWork) { + listener.enterXaRollbackWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaRollbackWork) { + listener.exitXaRollbackWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaRollbackWork) { + return visitor.visitXaRollbackWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XaRecoverWorkContext extends ParserRuleContext { + public KW_XA(): TerminalNode { return this.getToken(MySqlParser.KW_XA, 0); } + public KW_RECOVER(): TerminalNode { return this.getToken(MySqlParser.KW_RECOVER, 0); } + public KW_CONVERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONVERT, 0); } + public xid(): XidContext | undefined { + return this.tryGetRuleContext(0, XidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xaRecoverWork; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXaRecoverWork) { + listener.enterXaRecoverWork(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXaRecoverWork) { + listener.exitXaRecoverWork(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXaRecoverWork) { + return visitor.visitXaRecoverWork(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrepareStatementContext extends ParserRuleContext { + public _stmt_name!: UidContext; + public _query!: Token; + public _variable!: Token; + public KW_PREPARE(): TerminalNode { return this.getToken(MySqlParser.KW_PREPARE, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_prepareStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrepareStatement) { + listener.enterPrepareStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrepareStatement) { + listener.exitPrepareStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrepareStatement) { + return visitor.visitPrepareStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExecuteStatementContext extends ParserRuleContext { + public _stmt_name!: UidContext; + public KW_EXECUTE(): TerminalNode { return this.getToken(MySqlParser.KW_EXECUTE, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public userVariables(): UserVariablesContext | undefined { + return this.tryGetRuleContext(0, UserVariablesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_executeStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExecuteStatement) { + listener.enterExecuteStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExecuteStatement) { + listener.exitExecuteStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExecuteStatement) { + return visitor.visitExecuteStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeallocatePrepareContext extends ParserRuleContext { + public _dropFormat!: Token; + public _stmt_name!: UidContext; + public KW_PREPARE(): TerminalNode { return this.getToken(MySqlParser.KW_PREPARE, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public KW_DEALLOCATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEALLOCATE, 0); } + public KW_DROP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DROP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_deallocatePrepare; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeallocatePrepare) { + listener.enterDeallocatePrepare(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeallocatePrepare) { + listener.exitDeallocatePrepare(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeallocatePrepare) { + return visitor.visitDeallocatePrepare(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RoutineBodyContext extends ParserRuleContext { + public blockStatement(): BlockStatementContext | undefined { + return this.tryGetRuleContext(0, BlockStatementContext); + } + public sqlStatement(): SqlStatementContext | undefined { + return this.tryGetRuleContext(0, SqlStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_routineBody; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoutineBody) { + listener.enterRoutineBody(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoutineBody) { + listener.exitRoutineBody(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoutineBody) { + return visitor.visitRoutineBody(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BlockStatementContext extends ParserRuleContext { + public _begin!: UidContext; + public _end!: UidContext; + public KW_BEGIN(): TerminalNode { return this.getToken(MySqlParser.KW_BEGIN, 0); } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COLON_SYMB, 0); } + public declareVariable(): DeclareVariableContext[]; + public declareVariable(i: number): DeclareVariableContext; + public declareVariable(i?: number): DeclareVariableContext | DeclareVariableContext[] { + if (i === undefined) { + return this.getRuleContexts(DeclareVariableContext); + } else { + return this.getRuleContext(i, DeclareVariableContext); + } + } + public SEMI(): TerminalNode[]; + public SEMI(i: number): TerminalNode; + public SEMI(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.SEMI); + } else { + return this.getToken(MySqlParser.SEMI, i); + } + } + public declareCondition(): DeclareConditionContext[]; + public declareCondition(i: number): DeclareConditionContext; + public declareCondition(i?: number): DeclareConditionContext | DeclareConditionContext[] { + if (i === undefined) { + return this.getRuleContexts(DeclareConditionContext); + } else { + return this.getRuleContext(i, DeclareConditionContext); + } + } + public declareCursor(): DeclareCursorContext[]; + public declareCursor(i: number): DeclareCursorContext; + public declareCursor(i?: number): DeclareCursorContext | DeclareCursorContext[] { + if (i === undefined) { + return this.getRuleContexts(DeclareCursorContext); + } else { + return this.getRuleContext(i, DeclareCursorContext); + } + } + public declareHandler(): DeclareHandlerContext[]; + public declareHandler(i: number): DeclareHandlerContext; + public declareHandler(i?: number): DeclareHandlerContext | DeclareHandlerContext[] { + if (i === undefined) { + return this.getRuleContexts(DeclareHandlerContext); + } else { + return this.getRuleContext(i, DeclareHandlerContext); + } + } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_blockStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBlockStatement) { + listener.enterBlockStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBlockStatement) { + listener.exitBlockStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBlockStatement) { + return visitor.visitBlockStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CaseStatementContext extends ParserRuleContext { + public _case_value!: UidContext; + public KW_CASE(): TerminalNode[]; + public KW_CASE(i: number): TerminalNode; + public KW_CASE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_CASE); + } else { + return this.getToken(MySqlParser.KW_CASE, i); + } + } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public caseAlternative(): CaseAlternativeContext[]; + public caseAlternative(i: number): CaseAlternativeContext; + public caseAlternative(i?: number): CaseAlternativeContext | CaseAlternativeContext[] { + if (i === undefined) { + return this.getRuleContexts(CaseAlternativeContext); + } else { + return this.getRuleContext(i, CaseAlternativeContext); + } + } + public KW_ELSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ELSE, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_caseStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCaseStatement) { + listener.enterCaseStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCaseStatement) { + listener.exitCaseStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCaseStatement) { + return visitor.visitCaseStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IfStatementContext extends ParserRuleContext { + public _procedureSqlStatement!: ProcedureSqlStatementContext; + public _thenStatements: ProcedureSqlStatementContext[] = []; + public _elseStatements: ProcedureSqlStatementContext[] = []; + public KW_IF(): TerminalNode[]; + public KW_IF(i: number): TerminalNode; + public KW_IF(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_IF); + } else { + return this.getToken(MySqlParser.KW_IF, i); + } + } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_THEN(): TerminalNode { return this.getToken(MySqlParser.KW_THEN, 0); } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public elifAlternative(): ElifAlternativeContext[]; + public elifAlternative(i: number): ElifAlternativeContext; + public elifAlternative(i?: number): ElifAlternativeContext | ElifAlternativeContext[] { + if (i === undefined) { + return this.getRuleContexts(ElifAlternativeContext); + } else { + return this.getRuleContext(i, ElifAlternativeContext); + } + } + public KW_ELSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ELSE, 0); } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ifStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIfStatement) { + listener.enterIfStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIfStatement) { + listener.exitIfStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIfStatement) { + return visitor.visitIfStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IterateStatementContext extends ParserRuleContext { + public _label!: UidContext; + public KW_ITERATE(): TerminalNode { return this.getToken(MySqlParser.KW_ITERATE, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_iterateStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIterateStatement) { + listener.enterIterateStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIterateStatement) { + listener.exitIterateStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIterateStatement) { + return visitor.visitIterateStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LeaveStatementContext extends ParserRuleContext { + public _label!: UidContext; + public KW_LEAVE(): TerminalNode { return this.getToken(MySqlParser.KW_LEAVE, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_leaveStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLeaveStatement) { + listener.enterLeaveStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLeaveStatement) { + listener.exitLeaveStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLeaveStatement) { + return visitor.visitLeaveStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LoopStatementContext extends ParserRuleContext { + public _begin_label!: UidContext; + public _end_label!: UidContext; + public KW_LOOP(): TerminalNode[]; + public KW_LOOP(i: number): TerminalNode; + public KW_LOOP(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_LOOP); + } else { + return this.getToken(MySqlParser.KW_LOOP, i); + } + } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COLON_SYMB, 0); } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_loopStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLoopStatement) { + listener.enterLoopStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLoopStatement) { + listener.exitLoopStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLoopStatement) { + return visitor.visitLoopStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RepeatStatementContext extends ParserRuleContext { + public _begin_label!: UidContext; + public _end_label!: UidContext; + public KW_REPEAT(): TerminalNode[]; + public KW_REPEAT(i: number): TerminalNode; + public KW_REPEAT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_REPEAT); + } else { + return this.getToken(MySqlParser.KW_REPEAT, i); + } + } + public KW_UNTIL(): TerminalNode { return this.getToken(MySqlParser.KW_UNTIL, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COLON_SYMB, 0); } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_repeatStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRepeatStatement) { + listener.enterRepeatStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRepeatStatement) { + listener.exitRepeatStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRepeatStatement) { + return visitor.visitRepeatStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReturnStatementContext extends ParserRuleContext { + public KW_RETURN(): TerminalNode { return this.getToken(MySqlParser.KW_RETURN, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_returnStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReturnStatement) { + listener.enterReturnStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReturnStatement) { + listener.exitReturnStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReturnStatement) { + return visitor.visitReturnStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WhileStatementContext extends ParserRuleContext { + public _begin_label!: UidContext; + public _end_label!: UidContext; + public KW_WHILE(): TerminalNode[]; + public KW_WHILE(i: number): TerminalNode; + public KW_WHILE(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_WHILE); + } else { + return this.getToken(MySqlParser.KW_WHILE, i); + } + } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_DO(): TerminalNode { return this.getToken(MySqlParser.KW_DO, 0); } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public COLON_SYMB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COLON_SYMB, 0); } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_whileStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWhileStatement) { + listener.enterWhileStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWhileStatement) { + listener.exitWhileStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWhileStatement) { + return visitor.visitWhileStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CursorStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_cursorStatement; } + public copyFrom(ctx: CursorStatementContext): void { + super.copyFrom(ctx); + } +} +export class CloseCursorContext extends CursorStatementContext { + public _cursor_name!: UidContext; + public KW_CLOSE(): TerminalNode { return this.getToken(MySqlParser.KW_CLOSE, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: CursorStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCloseCursor) { + listener.enterCloseCursor(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCloseCursor) { + listener.exitCloseCursor(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCloseCursor) { + return visitor.visitCloseCursor(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class FetchCursorContext extends CursorStatementContext { + public _cursor_name!: UidContext; + public _var_names!: UidListContext; + public KW_FETCH(): TerminalNode { return this.getToken(MySqlParser.KW_FETCH, 0); } + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public uidList(): UidListContext { + return this.getRuleContext(0, UidListContext); + } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public KW_NEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEXT, 0); } + constructor(ctx: CursorStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFetchCursor) { + listener.enterFetchCursor(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFetchCursor) { + listener.exitFetchCursor(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFetchCursor) { + return visitor.visitFetchCursor(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class OpenCursorContext extends CursorStatementContext { + public _cursor_name!: UidContext; + public KW_OPEN(): TerminalNode { return this.getToken(MySqlParser.KW_OPEN, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: CursorStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOpenCursor) { + listener.enterOpenCursor(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOpenCursor) { + listener.exitOpenCursor(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOpenCursor) { + return visitor.visitOpenCursor(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeclareVariableContext extends ParserRuleContext { + public _var_names!: UidListContext; + public KW_DECLARE(): TerminalNode { return this.getToken(MySqlParser.KW_DECLARE, 0); } + public dataType(): DataTypeContext { + return this.getRuleContext(0, DataTypeContext); + } + public uidList(): UidListContext { + return this.getRuleContext(0, UidListContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_declareVariable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeclareVariable) { + listener.enterDeclareVariable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeclareVariable) { + listener.exitDeclareVariable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeclareVariable) { + return visitor.visitDeclareVariable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeclareConditionContext extends ParserRuleContext { + public _condition_name!: UidContext; + public KW_DECLARE(): TerminalNode { return this.getToken(MySqlParser.KW_DECLARE, 0); } + public KW_CONDITION(): TerminalNode { return this.getToken(MySqlParser.KW_CONDITION, 0); } + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public KW_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQLSTATE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_declareCondition; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeclareCondition) { + listener.enterDeclareCondition(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeclareCondition) { + listener.exitDeclareCondition(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeclareCondition) { + return visitor.visitDeclareCondition(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeclareCursorContext extends ParserRuleContext { + public _condition_name!: UidContext; + public KW_DECLARE(): TerminalNode { return this.getToken(MySqlParser.KW_DECLARE, 0); } + public KW_CURSOR(): TerminalNode { return this.getToken(MySqlParser.KW_CURSOR, 0); } + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_declareCursor; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeclareCursor) { + listener.enterDeclareCursor(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeclareCursor) { + listener.exitDeclareCursor(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeclareCursor) { + return visitor.visitDeclareCursor(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DeclareHandlerContext extends ParserRuleContext { + public _handlerAction!: Token; + public KW_DECLARE(): TerminalNode { return this.getToken(MySqlParser.KW_DECLARE, 0); } + public KW_HANDLER(): TerminalNode { return this.getToken(MySqlParser.KW_HANDLER, 0); } + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public handlerConditionValue(): HandlerConditionValueContext[]; + public handlerConditionValue(i: number): HandlerConditionValueContext; + public handlerConditionValue(i?: number): HandlerConditionValueContext | HandlerConditionValueContext[] { + if (i === undefined) { + return this.getRuleContexts(HandlerConditionValueContext); + } else { + return this.getRuleContext(i, HandlerConditionValueContext); + } + } + public routineBody(): RoutineBodyContext { + return this.getRuleContext(0, RoutineBodyContext); + } + public KW_CONTINUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTINUE, 0); } + public KW_EXIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXIT, 0); } + public KW_UNDO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_declareHandler; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDeclareHandler) { + listener.enterDeclareHandler(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDeclareHandler) { + listener.exitDeclareHandler(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDeclareHandler) { + return visitor.visitDeclareHandler(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HandlerConditionValueContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_handlerConditionValue; } + public copyFrom(ctx: HandlerConditionValueContext): void { + super.copyFrom(ctx); + } +} +export class HandlerConditionCodeContext extends HandlerConditionValueContext { + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionCode) { + listener.enterHandlerConditionCode(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionCode) { + listener.exitHandlerConditionCode(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionCode) { + return visitor.visitHandlerConditionCode(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class HandlerConditionStateContext extends HandlerConditionValueContext { + public KW_SQLSTATE(): TerminalNode { return this.getToken(MySqlParser.KW_SQLSTATE, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionState) { + listener.enterHandlerConditionState(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionState) { + listener.exitHandlerConditionState(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionState) { + return visitor.visitHandlerConditionState(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class HandlerConditionNameContext extends HandlerConditionValueContext { + public _condition_name!: UidContext; + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionName) { + listener.enterHandlerConditionName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionName) { + listener.exitHandlerConditionName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionName) { + return visitor.visitHandlerConditionName(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class HandlerConditionWarningContext extends HandlerConditionValueContext { + public KW_SQLWARNING(): TerminalNode { return this.getToken(MySqlParser.KW_SQLWARNING, 0); } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionWarning) { + listener.enterHandlerConditionWarning(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionWarning) { + listener.exitHandlerConditionWarning(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionWarning) { + return visitor.visitHandlerConditionWarning(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class HandlerConditionNotfoundContext extends HandlerConditionValueContext { + public KW_NOT(): TerminalNode { return this.getToken(MySqlParser.KW_NOT, 0); } + public KW_FOUND(): TerminalNode { return this.getToken(MySqlParser.KW_FOUND, 0); } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionNotfound) { + listener.enterHandlerConditionNotfound(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionNotfound) { + listener.exitHandlerConditionNotfound(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionNotfound) { + return visitor.visitHandlerConditionNotfound(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class HandlerConditionExceptionContext extends HandlerConditionValueContext { + public KW_SQLEXCEPTION(): TerminalNode { return this.getToken(MySqlParser.KW_SQLEXCEPTION, 0); } + constructor(ctx: HandlerConditionValueContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHandlerConditionException) { + listener.enterHandlerConditionException(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHandlerConditionException) { + listener.exitHandlerConditionException(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHandlerConditionException) { + return visitor.visitHandlerConditionException(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ProcedureSqlStatementContext extends ParserRuleContext { + public SEMI(): TerminalNode { return this.getToken(MySqlParser.SEMI, 0); } + public compoundStatement(): CompoundStatementContext | undefined { + return this.tryGetRuleContext(0, CompoundStatementContext); + } + public sqlStatement(): SqlStatementContext | undefined { + return this.tryGetRuleContext(0, SqlStatementContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_procedureSqlStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterProcedureSqlStatement) { + listener.enterProcedureSqlStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitProcedureSqlStatement) { + listener.exitProcedureSqlStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitProcedureSqlStatement) { + return visitor.visitProcedureSqlStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CaseAlternativeContext extends ParserRuleContext { + public KW_WHEN(): TerminalNode { return this.getToken(MySqlParser.KW_WHEN, 0); } + public KW_THEN(): TerminalNode { return this.getToken(MySqlParser.KW_THEN, 0); } + public constant(): ConstantContext | undefined { + return this.tryGetRuleContext(0, ConstantContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_caseAlternative; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCaseAlternative) { + listener.enterCaseAlternative(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCaseAlternative) { + listener.exitCaseAlternative(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCaseAlternative) { + return visitor.visitCaseAlternative(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ElifAlternativeContext extends ParserRuleContext { + public KW_ELSEIF(): TerminalNode { return this.getToken(MySqlParser.KW_ELSEIF, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_THEN(): TerminalNode { return this.getToken(MySqlParser.KW_THEN, 0); } + public procedureSqlStatement(): ProcedureSqlStatementContext[]; + public procedureSqlStatement(i: number): ProcedureSqlStatementContext; + public procedureSqlStatement(i?: number): ProcedureSqlStatementContext | ProcedureSqlStatementContext[] { + if (i === undefined) { + return this.getRuleContexts(ProcedureSqlStatementContext); + } else { + return this.getRuleContext(i, ProcedureSqlStatementContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_elifAlternative; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterElifAlternative) { + listener.enterElifAlternative(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitElifAlternative) { + listener.exitElifAlternative(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitElifAlternative) { + return visitor.visitElifAlternative(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterUserContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public userSpecification(): UserSpecificationContext[]; + public userSpecification(i: number): UserSpecificationContext; + public userSpecification(i?: number): UserSpecificationContext | UserSpecificationContext[] { + if (i === undefined) { + return this.getRuleContexts(UserSpecificationContext); + } else { + return this.getRuleContext(i, UserSpecificationContext); + } + } + public alterUserAuthOption(): AlterUserAuthOptionContext[]; + public alterUserAuthOption(i: number): AlterUserAuthOptionContext; + public alterUserAuthOption(i?: number): AlterUserAuthOptionContext | AlterUserAuthOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(AlterUserAuthOptionContext); + } else { + return this.getRuleContext(i, AlterUserAuthOptionContext); + } + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_ROLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE, 0); } + public roleOption(): RoleOptionContext | undefined { + return this.tryGetRuleContext(0, RoleOptionContext); + } + public userOrRoleName(): UserOrRoleNameContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNameContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_REQUIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public userPasswordOption(): UserPasswordOptionContext[]; + public userPasswordOption(i: number): UserPasswordOptionContext; + public userPasswordOption(i?: number): UserPasswordOptionContext | UserPasswordOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserPasswordOptionContext); + } else { + return this.getRuleContext(i, UserPasswordOptionContext); + } + } + public userLockOption(): UserLockOptionContext[]; + public userLockOption(i: number): UserLockOptionContext; + public userLockOption(i?: number): UserLockOptionContext | UserLockOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserLockOptionContext); + } else { + return this.getRuleContext(i, UserLockOptionContext); + } + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public KW_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ATTRIBUTE, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public tlsOption(): TlsOptionContext[]; + public tlsOption(i: number): TlsOptionContext; + public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TlsOptionContext); + } else { + return this.getRuleContext(i, TlsOptionContext); + } + } + public userResourceOption(): UserResourceOptionContext[]; + public userResourceOption(i: number): UserResourceOptionContext; + public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserResourceOptionContext); + } else { + return this.getRuleContext(i, UserResourceOptionContext); + } + } + public KW_AND(): TerminalNode[]; + public KW_AND(i: number): TerminalNode; + public KW_AND(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_AND); + } else { + return this.getToken(MySqlParser.KW_AND, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterUser; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterUser) { + listener.enterAlterUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterUser) { + listener.exitAlterUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterUser) { + return visitor.visitAlterUser(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateUserContext extends ParserRuleContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public userName(): UserNameContext[]; + public userName(i: number): UserNameContext; + public userName(i?: number): UserNameContext | UserNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserNameContext); + } else { + return this.getRuleContext(i, UserNameContext); + } + } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + public createUserAuthOption(): CreateUserAuthOptionContext[]; + public createUserAuthOption(i: number): CreateUserAuthOptionContext; + public createUserAuthOption(i?: number): CreateUserAuthOptionContext | CreateUserAuthOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(CreateUserAuthOptionContext); + } else { + return this.getRuleContext(i, CreateUserAuthOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_ROLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE, 0); } + public roleOption(): RoleOptionContext | undefined { + return this.tryGetRuleContext(0, RoleOptionContext); + } + public KW_REQUIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public userPasswordOption(): UserPasswordOptionContext[]; + public userPasswordOption(i: number): UserPasswordOptionContext; + public userPasswordOption(i?: number): UserPasswordOptionContext | UserPasswordOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserPasswordOptionContext); + } else { + return this.getRuleContext(i, UserPasswordOptionContext); + } + } + public userLockOption(): UserLockOptionContext[]; + public userLockOption(i: number): UserLockOptionContext; + public userLockOption(i?: number): UserLockOptionContext | UserLockOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserLockOptionContext); + } else { + return this.getRuleContext(i, UserLockOptionContext); + } + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public KW_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ATTRIBUTE, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public tlsOption(): TlsOptionContext[]; + public tlsOption(i: number): TlsOptionContext; + public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TlsOptionContext); + } else { + return this.getRuleContext(i, TlsOptionContext); + } + } + public userResourceOption(): UserResourceOptionContext[]; + public userResourceOption(i: number): UserResourceOptionContext; + public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserResourceOptionContext); + } else { + return this.getRuleContext(i, UserResourceOptionContext); + } + } + public KW_AND(): TerminalNode[]; + public KW_AND(i: number): TerminalNode; + public KW_AND(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_AND); + } else { + return this.getToken(MySqlParser.KW_AND, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createUser; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateUser) { + listener.enterCreateUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateUser) { + listener.exitCreateUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateUser) { + return visitor.visitCreateUser(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropUserContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public userName(): UserNameContext[]; + public userName(i: number): UserNameContext; + public userName(i?: number): UserNameContext | UserNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserNameContext); + } else { + return this.getRuleContext(i, UserNameContext); + } + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropUser; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropUser) { + listener.enterDropUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropUser) { + listener.exitDropUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropUser) { + return visitor.visitDropUser(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GrantStatementContext extends ParserRuleContext { + public _tlsNone!: Token; + public KW_GRANT(): TerminalNode[]; + public KW_GRANT(i: number): TerminalNode; + public KW_GRANT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_GRANT); + } else { + return this.getToken(MySqlParser.KW_GRANT, i); + } + } + public privelegeClause(): PrivelegeClauseContext[]; + public privelegeClause(i: number): PrivelegeClauseContext; + public privelegeClause(i?: number): PrivelegeClauseContext | PrivelegeClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(PrivelegeClauseContext); + } else { + return this.getRuleContext(i, PrivelegeClauseContext); + } + } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public privilegeLevel(): PrivilegeLevelContext | undefined { + return this.tryGetRuleContext(0, PrivilegeLevelContext); + } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public userOrRoleNames(): UserOrRoleNamesContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNamesContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public privilegeObjectType(): PrivilegeObjectTypeContext | undefined { + return this.tryGetRuleContext(0, PrivilegeObjectTypeContext); + } + public KW_REQUIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE, 0); } + public KW_WITH(): TerminalNode[]; + public KW_WITH(i: number): TerminalNode; + public KW_WITH(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_WITH); + } else { + return this.getToken(MySqlParser.KW_WITH, i); + } + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public userName(): UserNameContext | undefined { + return this.tryGetRuleContext(0, UserNameContext); + } + public userAuthOption(): UserAuthOptionContext[]; + public userAuthOption(i: number): UserAuthOptionContext; + public userAuthOption(i?: number): UserAuthOptionContext | UserAuthOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserAuthOptionContext); + } else { + return this.getRuleContext(i, UserAuthOptionContext); + } + } + public tlsOption(): TlsOptionContext[]; + public tlsOption(i: number): TlsOptionContext; + public tlsOption(i?: number): TlsOptionContext | TlsOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(TlsOptionContext); + } else { + return this.getRuleContext(i, TlsOptionContext); + } + } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public KW_OPTION(): TerminalNode[]; + public KW_OPTION(i: number): TerminalNode; + public KW_OPTION(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_OPTION); + } else { + return this.getToken(MySqlParser.KW_OPTION, i); + } + } + public userResourceOption(): UserResourceOptionContext[]; + public userResourceOption(i: number): UserResourceOptionContext; + public userResourceOption(i?: number): UserResourceOptionContext | UserResourceOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(UserResourceOptionContext); + } else { + return this.getRuleContext(i, UserResourceOptionContext); + } + } + public KW_ROLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE, 0); } + public roleOption(): RoleOptionContext | undefined { + return this.tryGetRuleContext(0, RoleOptionContext); + } + public KW_AND(): TerminalNode[]; + public KW_AND(i: number): TerminalNode; + public KW_AND(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_AND); + } else { + return this.getToken(MySqlParser.KW_AND, i); + } + } + public userOrRoleName(): UserOrRoleNameContext[]; + public userOrRoleName(i: number): UserOrRoleNameContext; + public userOrRoleName(i?: number): UserOrRoleNameContext | UserOrRoleNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserOrRoleNameContext); + } else { + return this.getRuleContext(i, UserOrRoleNameContext); + } + } + public KW_PROXY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROXY, 0); } + public KW_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ADMIN, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_grantStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGrantStatement) { + listener.enterGrantStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGrantStatement) { + listener.exitGrantStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGrantStatement) { + return visitor.visitGrantStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RoleOptionContext extends ParserRuleContext { + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_EXCEPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCEPT, 0); } + public userOrRoleNames(): UserOrRoleNamesContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNamesContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_roleOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRoleOption) { + listener.enterRoleOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRoleOption) { + listener.exitRoleOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRoleOption) { + return visitor.visitRoleOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GrantProxyContext extends ParserRuleContext { + public _fromFirst!: UserNameContext; + public _toFirst!: UserNameContext; + public _userName!: UserNameContext; + public _toOther: UserNameContext[] = []; + public KW_GRANT(): TerminalNode[]; + public KW_GRANT(i: number): TerminalNode; + public KW_GRANT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_GRANT); + } else { + return this.getToken(MySqlParser.KW_GRANT, i); + } + } + public KW_PROXY(): TerminalNode { return this.getToken(MySqlParser.KW_PROXY, 0); } + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public userName(): UserNameContext[]; + public userName(i: number): UserNameContext; + public userName(i?: number): UserNameContext | UserNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserNameContext); + } else { + return this.getRuleContext(i, UserNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_OPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTION, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_grantProxy; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGrantProxy) { + listener.enterGrantProxy(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGrantProxy) { + listener.exitGrantProxy(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGrantProxy) { + return visitor.visitGrantProxy(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterResourceGroupContext extends ParserRuleContext { + public KW_ALTER(): TerminalNode { return this.getToken(MySqlParser.KW_ALTER, 0); } + public KW_RESOURCE(): TerminalNode { return this.getToken(MySqlParser.KW_RESOURCE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public groupName(): GroupNameContext { + return this.getRuleContext(0, GroupNameContext); + } + public KW_VCPU(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VCPU, 0); } + public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext | undefined { + return this.tryGetRuleContext(0, ResourceGroupVcpuSpecContext); + } + public KW_THREAD_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_THREAD_PRIORITY, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public KW_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENABLE, 0); } + public KW_DISABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISABLE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public KW_FORCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORCE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterResourceGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterResourceGroup) { + listener.enterAlterResourceGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterResourceGroup) { + listener.exitAlterResourceGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterResourceGroup) { + return visitor.visitAlterResourceGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateResourceGroupContext extends ParserRuleContext { + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_RESOURCE(): TerminalNode { return this.getToken(MySqlParser.KW_RESOURCE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public groupNameCreate(): GroupNameCreateContext { + return this.getRuleContext(0, GroupNameCreateContext); + } + public KW_TYPE(): TerminalNode { return this.getToken(MySqlParser.KW_TYPE, 0); } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public KW_SYSTEM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSTEM, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public KW_VCPU(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VCPU, 0); } + public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext | undefined { + return this.tryGetRuleContext(0, ResourceGroupVcpuSpecContext); + } + public KW_THREAD_PRIORITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_THREAD_PRIORITY, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public KW_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENABLE, 0); } + public KW_DISABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISABLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createResourceGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateResourceGroup) { + listener.enterCreateResourceGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateResourceGroup) { + listener.exitCreateResourceGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateResourceGroup) { + return visitor.visitCreateResourceGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DropResourceGroupContext extends ParserRuleContext { + public KW_DROP(): TerminalNode { return this.getToken(MySqlParser.KW_DROP, 0); } + public KW_RESOURCE(): TerminalNode { return this.getToken(MySqlParser.KW_RESOURCE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public groupName(): GroupNameContext { + return this.getRuleContext(0, GroupNameContext); + } + public KW_FORCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORCE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dropResourceGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDropResourceGroup) { + listener.enterDropResourceGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDropResourceGroup) { + listener.exitDropResourceGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDropResourceGroup) { + return visitor.visitDropResourceGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetResourceGroupContext extends ParserRuleContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_RESOURCE(): TerminalNode { return this.getToken(MySqlParser.KW_RESOURCE, 0); } + public KW_GROUP(): TerminalNode { return this.getToken(MySqlParser.KW_GROUP, 0); } + public groupName(): GroupNameContext { + return this.getRuleContext(0, GroupNameContext); + } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setResourceGroup; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetResourceGroup) { + listener.enterSetResourceGroup(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetResourceGroup) { + listener.exitSetResourceGroup(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetResourceGroup) { + return visitor.visitSetResourceGroup(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResourceGroupVcpuSpecContext extends ParserRuleContext { + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public MINUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MINUS, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public resourceGroupVcpuSpec(): ResourceGroupVcpuSpecContext[]; + public resourceGroupVcpuSpec(i: number): ResourceGroupVcpuSpecContext; + public resourceGroupVcpuSpec(i?: number): ResourceGroupVcpuSpecContext | ResourceGroupVcpuSpecContext[] { + if (i === undefined) { + return this.getRuleContexts(ResourceGroupVcpuSpecContext); + } else { + return this.getRuleContext(i, ResourceGroupVcpuSpecContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resourceGroupVcpuSpec; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResourceGroupVcpuSpec) { + listener.enterResourceGroupVcpuSpec(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResourceGroupVcpuSpec) { + listener.exitResourceGroupVcpuSpec(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResourceGroupVcpuSpec) { + return visitor.visitResourceGroupVcpuSpec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RenameUserContext extends ParserRuleContext { + public KW_RENAME(): TerminalNode { return this.getToken(MySqlParser.KW_RENAME, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public renameUserClause(): RenameUserClauseContext[]; + public renameUserClause(i: number): RenameUserClauseContext; + public renameUserClause(i?: number): RenameUserClauseContext | RenameUserClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(RenameUserClauseContext); + } else { + return this.getRuleContext(i, RenameUserClauseContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_renameUser; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRenameUser) { + listener.enterRenameUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRenameUser) { + listener.exitRenameUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRenameUser) { + return visitor.visitRenameUser(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RevokeStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_revokeStatement; } + public copyFrom(ctx: RevokeStatementContext): void { + super.copyFrom(ctx); + } +} +export class DetailRevokeContext extends RevokeStatementContext { + public KW_REVOKE(): TerminalNode { return this.getToken(MySqlParser.KW_REVOKE, 0); } + public privelegeClause(): PrivelegeClauseContext[]; + public privelegeClause(i: number): PrivelegeClauseContext; + public privelegeClause(i?: number): PrivelegeClauseContext | PrivelegeClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(PrivelegeClauseContext); + } else { + return this.getRuleContext(i, PrivelegeClauseContext); + } + } + public KW_ON(): TerminalNode { return this.getToken(MySqlParser.KW_ON, 0); } + public privilegeLevel(): PrivilegeLevelContext { + return this.getRuleContext(0, PrivilegeLevelContext); + } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public userOrRoleNames(): UserOrRoleNamesContext { + return this.getRuleContext(0, UserOrRoleNamesContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public privilegeObjectType(): PrivilegeObjectTypeContext | undefined { + return this.tryGetRuleContext(0, PrivilegeObjectTypeContext); + } + public ignoreUnknownUser(): IgnoreUnknownUserContext | undefined { + return this.tryGetRuleContext(0, IgnoreUnknownUserContext); + } + constructor(ctx: RevokeStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDetailRevoke) { + listener.enterDetailRevoke(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDetailRevoke) { + listener.exitDetailRevoke(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDetailRevoke) { + return visitor.visitDetailRevoke(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShortRevokeContext extends RevokeStatementContext { + public KW_REVOKE(): TerminalNode { return this.getToken(MySqlParser.KW_REVOKE, 0); } + public KW_ALL(): TerminalNode { return this.getToken(MySqlParser.KW_ALL, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public KW_GRANT(): TerminalNode { return this.getToken(MySqlParser.KW_GRANT, 0); } + public KW_OPTION(): TerminalNode { return this.getToken(MySqlParser.KW_OPTION, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public userOrRoleNames(): UserOrRoleNamesContext { + return this.getRuleContext(0, UserOrRoleNamesContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public KW_PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGES, 0); } + public ignoreUnknownUser(): IgnoreUnknownUserContext | undefined { + return this.tryGetRuleContext(0, IgnoreUnknownUserContext); + } + constructor(ctx: RevokeStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShortRevoke) { + listener.enterShortRevoke(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShortRevoke) { + listener.exitShortRevoke(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShortRevoke) { + return visitor.visitShortRevoke(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ProxyAndRoleRevokeContext extends RevokeStatementContext { + public KW_REVOKE(): TerminalNode { return this.getToken(MySqlParser.KW_REVOKE, 0); } + public userOrRoleNames(): UserOrRoleNamesContext[]; + public userOrRoleNames(i: number): UserOrRoleNamesContext; + public userOrRoleNames(i?: number): UserOrRoleNamesContext | UserOrRoleNamesContext[] { + if (i === undefined) { + return this.getRuleContexts(UserOrRoleNamesContext); + } else { + return this.getRuleContext(i, UserOrRoleNamesContext); + } + } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + public KW_PROXY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROXY, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public ignoreUnknownUser(): IgnoreUnknownUserContext | undefined { + return this.tryGetRuleContext(0, IgnoreUnknownUserContext); + } + constructor(ctx: RevokeStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterProxyAndRoleRevoke) { + listener.enterProxyAndRoleRevoke(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitProxyAndRoleRevoke) { + listener.exitProxyAndRoleRevoke(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitProxyAndRoleRevoke) { + return visitor.visitProxyAndRoleRevoke(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IgnoreUnknownUserContext extends ParserRuleContext { + public KW_IGNORE(): TerminalNode { return this.getToken(MySqlParser.KW_IGNORE, 0); } + public KW_UNKNOWN(): TerminalNode { return this.getToken(MySqlParser.KW_UNKNOWN, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ignoreUnknownUser; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIgnoreUnknownUser) { + listener.enterIgnoreUnknownUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIgnoreUnknownUser) { + listener.exitIgnoreUnknownUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIgnoreUnknownUser) { + return visitor.visitIgnoreUnknownUser(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrivilegeObjectTypeContext extends ParserRuleContext { + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public KW_FUNCTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FUNCTION, 0); } + public KW_PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCEDURE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_privilegeObjectType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrivilegeObjectType) { + listener.enterPrivilegeObjectType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrivilegeObjectType) { + listener.exitPrivilegeObjectType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrivilegeObjectType) { + return visitor.visitPrivilegeObjectType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetPasswordStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setPasswordStatement; } + public copyFrom(ctx: SetPasswordStatementContext): void { + super.copyFrom(ctx); + } +} +export class V57Context extends SetPasswordStatementContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_PASSWORD(): TerminalNode { return this.getToken(MySqlParser.KW_PASSWORD, 0); } + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public passwordFunctionClause(): PasswordFunctionClauseContext | undefined { + return this.tryGetRuleContext(0, PasswordFunctionClauseContext); + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public userName(): UserNameContext | undefined { + return this.tryGetRuleContext(0, UserNameContext); + } + constructor(ctx: SetPasswordStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterV57) { + listener.enterV57(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitV57) { + listener.exitV57(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitV57) { + return visitor.visitV57(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class V80Context extends SetPasswordStatementContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_PASSWORD(): TerminalNode[]; + public KW_PASSWORD(i: number): TerminalNode; + public KW_PASSWORD(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_PASSWORD); + } else { + return this.getToken(MySqlParser.KW_PASSWORD, i); + } + } + public KW_TO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TO, 0); } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public userName(): UserNameContext | undefined { + return this.tryGetRuleContext(0, UserNameContext); + } + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public KW_RETAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETAIN, 0); } + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + constructor(ctx: SetPasswordStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterV80) { + listener.enterV80(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitV80) { + listener.exitV80(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitV80) { + return visitor.visitV80(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserSpecificationContext extends ParserRuleContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public userPasswordOption(): UserPasswordOptionContext { + return this.getRuleContext(0, UserPasswordOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userSpecification; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserSpecification) { + listener.enterUserSpecification(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserSpecification) { + listener.exitUserSpecification(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserSpecification) { + return visitor.visitUserSpecification(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AlterUserAuthOptionContext extends ParserRuleContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public KW_IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public authOptionClause(): AuthOptionClauseContext | undefined { + return this.tryGetRuleContext(0, AuthOptionClauseContext); + } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public authenticationRule(): AuthenticationRuleContext | undefined { + return this.tryGetRuleContext(0, AuthenticationRuleContext); + } + public KW_DISCARD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISCARD, 0); } + public KW_OLD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OLD, 0); } + public factor(): FactorContext[]; + public factor(i: number): FactorContext; + public factor(i?: number): FactorContext | FactorContext[] { + if (i === undefined) { + return this.getRuleContexts(FactorContext); + } else { + return this.getRuleContext(i, FactorContext); + } + } + public KW_ADD(): TerminalNode[]; + public KW_ADD(i: number): TerminalNode; + public KW_ADD(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ADD); + } else { + return this.getToken(MySqlParser.KW_ADD, i); + } + } + public KW_MODIFY(): TerminalNode[]; + public KW_MODIFY(i: number): TerminalNode; + public KW_MODIFY(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_MODIFY); + } else { + return this.getToken(MySqlParser.KW_MODIFY, i); + } + } + public KW_DROP(): TerminalNode[]; + public KW_DROP(i: number): TerminalNode; + public KW_DROP(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_DROP); + } else { + return this.getToken(MySqlParser.KW_DROP, i); + } + } + public factorAuthOption(): FactorAuthOptionContext[]; + public factorAuthOption(i: number): FactorAuthOptionContext; + public factorAuthOption(i?: number): FactorAuthOptionContext | FactorAuthOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(FactorAuthOptionContext); + } else { + return this.getRuleContext(i, FactorAuthOptionContext); + } + } + public registrationOption(): RegistrationOptionContext | undefined { + return this.tryGetRuleContext(0, RegistrationOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_alterUserAuthOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAlterUserAuthOption) { + listener.enterAlterUserAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAlterUserAuthOption) { + listener.exitAlterUserAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAlterUserAuthOption) { + return visitor.visitAlterUserAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateUserAuthOptionContext extends ParserRuleContext { + public _authPlugin!: UidContext; + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AND, 0); } + public createUserAuthOption(): CreateUserAuthOptionContext | undefined { + return this.tryGetRuleContext(0, CreateUserAuthOptionContext); + } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public createUserInitialAuthOption(): CreateUserInitialAuthOptionContext | undefined { + return this.tryGetRuleContext(0, CreateUserInitialAuthOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createUserAuthOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateUserAuthOption) { + listener.enterCreateUserAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateUserAuthOption) { + listener.exitCreateUserAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateUserAuthOption) { + return visitor.visitCreateUserAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateUserInitialAuthOptionContext extends ParserRuleContext { + public _authPlugin!: UidContext; + public KW_INITIAL(): TerminalNode { return this.getToken(MySqlParser.KW_INITIAL, 0); } + public KW_AUTHENTICATION(): TerminalNode { return this.getToken(MySqlParser.KW_AUTHENTICATION, 0); } + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createUserInitialAuthOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateUserInitialAuthOption) { + listener.enterCreateUserInitialAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateUserInitialAuthOption) { + listener.exitCreateUserInitialAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateUserInitialAuthOption) { + return visitor.visitCreateUserInitialAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserAuthOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userAuthOption; } + public copyFrom(ctx: UserAuthOptionContext): void { + super.copyFrom(ctx); + } +} +export class HashAuthOptionContext extends UserAuthOptionContext { + public _hashed!: Token; + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public KW_PASSWORD(): TerminalNode { return this.getToken(MySqlParser.KW_PASSWORD, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: UserAuthOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHashAuthOption) { + listener.enterHashAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHashAuthOption) { + listener.exitHashAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHashAuthOption) { + return visitor.visitHashAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RandomAuthOptionContext extends UserAuthOptionContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public KW_RANDOM(): TerminalNode { return this.getToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode { return this.getToken(MySqlParser.KW_PASSWORD, 0); } + public authOptionClause(): AuthOptionClauseContext { + return this.getRuleContext(0, AuthOptionClauseContext); + } + constructor(ctx: UserAuthOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRandomAuthOption) { + listener.enterRandomAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRandomAuthOption) { + listener.exitRandomAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRandomAuthOption) { + return visitor.visitRandomAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class StringAuthOptionContext extends UserAuthOptionContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public authOptionClause(): AuthOptionClauseContext { + return this.getRuleContext(0, AuthOptionClauseContext); + } + constructor(ctx: UserAuthOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStringAuthOption) { + listener.enterStringAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStringAuthOption) { + listener.exitStringAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStringAuthOption) { + return visitor.visitStringAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ModuleAuthOptionContext extends UserAuthOptionContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_WITH(): TerminalNode { return this.getToken(MySqlParser.KW_WITH, 0); } + public authenticationRule(): AuthenticationRuleContext { + return this.getRuleContext(0, AuthenticationRuleContext); + } + constructor(ctx: UserAuthOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterModuleAuthOption) { + listener.enterModuleAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitModuleAuthOption) { + listener.exitModuleAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitModuleAuthOption) { + return visitor.visitModuleAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SimpleAuthOptionContext extends UserAuthOptionContext { + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + constructor(ctx: UserAuthOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleAuthOption) { + listener.enterSimpleAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleAuthOption) { + listener.exitSimpleAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleAuthOption) { + return visitor.visitSimpleAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AuthOptionClauseContext extends ParserRuleContext { + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_RETAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETAIN, 0); } + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_authOptionClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAuthOptionClause) { + listener.enterAuthOptionClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAuthOptionClause) { + listener.exitAuthOptionClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAuthOptionClause) { + return visitor.visitAuthOptionClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AuthenticationRuleContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_authenticationRule; } + public copyFrom(ctx: AuthenticationRuleContext): void { + super.copyFrom(ctx); + } +} +export class ModuleContext extends AuthenticationRuleContext { + public _authPlugin!: UidContext; + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public authOptionClause(): AuthOptionClauseContext | undefined { + return this.tryGetRuleContext(0, AuthOptionClauseContext); + } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + constructor(ctx: AuthenticationRuleContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterModule) { + listener.enterModule(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitModule) { + listener.exitModule(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitModule) { + return visitor.visitModule(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PasswordModuleOptionContext extends AuthenticationRuleContext { + public _authPlugin!: UidContext; + public KW_USING(): TerminalNode { return this.getToken(MySqlParser.KW_USING, 0); } + public passwordFunctionClause(): PasswordFunctionClauseContext { + return this.getRuleContext(0, PasswordFunctionClauseContext); + } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: AuthenticationRuleContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPasswordModuleOption) { + listener.enterPasswordModuleOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPasswordModuleOption) { + listener.exitPasswordModuleOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPasswordModuleOption) { + return visitor.visitPasswordModuleOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TlsOptionContext extends ParserRuleContext { + public KW_SSL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SSL, 0); } + public KW_X509(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_X509, 0); } + public KW_CIPHER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CIPHER, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_ISSUER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ISSUER, 0); } + public KW_SUBJECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBJECT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tlsOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTlsOption) { + listener.enterTlsOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTlsOption) { + listener.exitTlsOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTlsOption) { + return visitor.visitTlsOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserResourceOptionContext extends ParserRuleContext { + public KW_MAX_QUERIES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_QUERIES_PER_HOUR, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public KW_MAX_UPDATES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_UPDATES_PER_HOUR, 0); } + public KW_MAX_CONNECTIONS_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR, 0); } + public KW_MAX_USER_CONNECTIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_USER_CONNECTIONS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userResourceOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserResourceOption) { + listener.enterUserResourceOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserResourceOption) { + listener.exitUserResourceOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserResourceOption) { + return visitor.visitUserResourceOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserPasswordOptionContext extends ParserRuleContext { + public _expireType!: Token; + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_EXPIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPIRE, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public KW_DAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_NEVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEVER, 0); } + public KW_INTERVAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTERVAL, 0); } + public KW_HISTORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HISTORY, 0); } + public KW_REUSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REUSE, 0); } + public KW_REQUIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE, 0); } + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + public KW_OPTIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIONAL, 0); } + public KW_FAILED_LOGIN_ATTEMPTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAILED_LOGIN_ATTEMPTS, 0); } + public KW_PASSWORD_LOCK_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD_LOCK_TIME, 0); } + public KW_UNBOUNDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNBOUNDED, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userPasswordOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserPasswordOption) { + listener.enterUserPasswordOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserPasswordOption) { + listener.exitUserPasswordOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserPasswordOption) { + return visitor.visitUserPasswordOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserLockOptionContext extends ParserRuleContext { + public _lockType!: Token; + public KW_ACCOUNT(): TerminalNode { return this.getToken(MySqlParser.KW_ACCOUNT, 0); } + public KW_LOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCK, 0); } + public KW_UNLOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNLOCK, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userLockOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserLockOption) { + listener.enterUserLockOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserLockOption) { + listener.exitUserLockOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserLockOption) { + return visitor.visitUserLockOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FactorAuthOptionContext extends ParserRuleContext { + public _authPlugin!: UidContext; + public KW_IDENTIFIED(): TerminalNode { return this.getToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_factorAuthOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFactorAuthOption) { + listener.enterFactorAuthOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFactorAuthOption) { + listener.exitFactorAuthOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFactorAuthOption) { + return visitor.visitFactorAuthOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RegistrationOptionContext extends ParserRuleContext { + public factor(): FactorContext { + return this.getRuleContext(0, FactorContext); + } + public KW_INITIATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIATE, 0); } + public KW_REGISTRATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REGISTRATION, 0); } + public KW_FINISH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FINISH, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_CHALLENGE_RESPONSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHALLENGE_RESPONSE, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_UNREGISTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNREGISTER, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_registrationOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRegistrationOption) { + listener.enterRegistrationOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRegistrationOption) { + listener.exitRegistrationOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRegistrationOption) { + return visitor.visitRegistrationOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FactorContext extends ParserRuleContext { + public KW_FACTOR(): TerminalNode { return this.getToken(MySqlParser.KW_FACTOR, 0); } + public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.TWO_DECIMAL, 0); } + public THREE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.THREE_DECIMAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_factor; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFactor) { + listener.enterFactor(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFactor) { + listener.exitFactor(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFactor) { + return visitor.visitFactor(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrivelegeClauseContext extends ParserRuleContext { + public privilege(): PrivilegeContext { + return this.getRuleContext(0, PrivilegeContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_privelegeClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrivelegeClause) { + listener.enterPrivelegeClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrivelegeClause) { + listener.exitPrivelegeClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrivelegeClause) { + return visitor.visitPrivelegeClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrivilegeContext extends ParserRuleContext { + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGES, 0); } + public KW_ALTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALTER, 0); } + public KW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROUTINE, 0); } + public KW_CREATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CREATE, 0); } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public KW_VIEW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VIEW, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public KW_TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLESPACE, 0); } + public KW_ROLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE, 0); } + public KW_DELETE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELETE, 0); } + public KW_DROP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DROP, 0); } + public KW_EVENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVENT, 0); } + public KW_EXECUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXECUTE, 0); } + public KW_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FILE, 0); } + public KW_GRANT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GRANT, 0); } + public KW_OPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTION, 0); } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_INSERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSERT, 0); } + public KW_LOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCK, 0); } + public KW_PROCESS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCESS, 0); } + public KW_PROXY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROXY, 0); } + public KW_REFERENCES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REFERENCES, 0); } + public KW_RELOAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELOAD, 0); } + public KW_REPLICATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION, 0); } + public KW_CLIENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLIENT, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_SELECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SELECT, 0); } + public KW_SHOW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHOW, 0); } + public KW_DATABASES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASES, 0); } + public KW_SHUTDOWN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHUTDOWN, 0); } + public KW_SUPER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUPER, 0); } + public KW_TRIGGER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRIGGER, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public KW_USAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USAGE, 0); } + public KW_APPLICATION_PASSWORD_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_APPLICATION_PASSWORD_ADMIN, 0); } + public KW_AUDIT_ABORT_EXEMPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUDIT_ABORT_EXEMPT, 0); } + public KW_AUDIT_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUDIT_ADMIN, 0); } + public KW_AUTHENTICATION_POLICY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN, 0); } + public KW_BACKUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BACKUP_ADMIN, 0); } + public KW_BINLOG_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG_ADMIN, 0); } + public KW_BINLOG_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN, 0); } + public KW_CLONE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLONE_ADMIN, 0); } + public KW_CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECTION_ADMIN, 0); } + public KW_ENCRYPTION_KEY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCRYPTION_KEY_ADMIN, 0); } + public KW_FIREWALL_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_ADMIN, 0); } + public KW_FIREWALL_EXEMPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_EXEMPT, 0); } + public KW_FIREWALL_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_USER, 0); } + public KW_FLUSH_OPTIMIZER_COSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLUSH_OPTIMIZER_COSTS, 0); } + public KW_FLUSH_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLUSH_STATUS, 0); } + public KW_FLUSH_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLUSH_TABLES, 0); } + public KW_FLUSH_USER_RESOURCES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLUSH_USER_RESOURCES, 0); } + public KW_GROUP_REPLICATION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP_REPLICATION_ADMIN, 0); } + public KW_INNODB_REDO_LOG_ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE, 0); } + public KW_INNODB_REDO_LOG_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNODB_REDO_LOG_ENABLE, 0); } + public KW_NDB_STORED_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NDB_STORED_USER, 0); } + public KW_PASSWORDLESS_USER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORDLESS_USER_ADMIN, 0); } + public KW_PERSIST_RO_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN, 0); } + public KW_REPLICATION_APPLIER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION_APPLIER, 0); } + public KW_REPLICATION_SLAVE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION_SLAVE_ADMIN, 0); } + public KW_RESOURCE_GROUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESOURCE_GROUP_ADMIN, 0); } + public KW_RESOURCE_GROUP_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESOURCE_GROUP_USER, 0); } + public KW_ROLE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE_ADMIN, 0); } + public KW_SERVICE_CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERVICE_CONNECTION_ADMIN, 0); } + public KW_SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION_VARIABLES_ADMIN, 0); } + public KW_SET_USER_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET_USER_ID, 0); } + public KW_SKIP_QUERY_REWRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SKIP_QUERY_REWRITE, 0); } + public KW_SHOW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHOW_ROUTINE, 0); } + public KW_SYSTEM_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSTEM_USER, 0); } + public KW_SYSTEM_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSTEM_VARIABLES_ADMIN, 0); } + public KW_TABLE_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_ENCRYPTION_ADMIN, 0); } + public KW_TP_CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TP_CONNECTION_ADMIN, 0); } + public KW_VERSION_TOKEN_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VERSION_TOKEN_ADMIN, 0); } + public KW_XA_RECOVER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_XA_RECOVER_ADMIN, 0); } + public KW_LOAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOAD, 0); } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public KW_S3(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_S3, 0); } + public KW_INTO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTO, 0); } + public KW_INVOKE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKE, 0); } + public KW_LAMBDA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAMBDA, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_privilege; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrivilege) { + listener.enterPrivilege(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrivilege) { + listener.exitPrivilege(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrivilege) { + return visitor.visitPrivilege(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrivilegeLevelContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_privilegeLevel; } + public copyFrom(ctx: PrivilegeLevelContext): void { + super.copyFrom(ctx); + } +} +export class CurrentSchemaPriviLevelContext extends PrivilegeLevelContext { + public STAR(): TerminalNode { return this.getToken(MySqlParser.STAR, 0); } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCurrentSchemaPriviLevel) { + listener.enterCurrentSchemaPriviLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCurrentSchemaPriviLevel) { + listener.exitCurrentSchemaPriviLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCurrentSchemaPriviLevel) { + return visitor.visitCurrentSchemaPriviLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class GlobalPrivLevelContext extends PrivilegeLevelContext { + public STAR(): TerminalNode[]; + public STAR(i: number): TerminalNode; + public STAR(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STAR); + } else { + return this.getToken(MySqlParser.STAR, i); + } + } + public DOT(): TerminalNode { return this.getToken(MySqlParser.DOT, 0); } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGlobalPrivLevel) { + listener.enterGlobalPrivLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGlobalPrivLevel) { + listener.exitGlobalPrivLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGlobalPrivLevel) { + return visitor.visitGlobalPrivLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefiniteSchemaPrivLevelContext extends PrivilegeLevelContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public DOT(): TerminalNode { return this.getToken(MySqlParser.DOT, 0); } + public STAR(): TerminalNode { return this.getToken(MySqlParser.STAR, 0); } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefiniteSchemaPrivLevel) { + listener.enterDefiniteSchemaPrivLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefiniteSchemaPrivLevel) { + listener.exitDefiniteSchemaPrivLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefiniteSchemaPrivLevel) { + return visitor.visitDefiniteSchemaPrivLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefiniteFullTablePrivLevelContext extends PrivilegeLevelContext { + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public DOT(): TerminalNode { return this.getToken(MySqlParser.DOT, 0); } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefiniteFullTablePrivLevel) { + listener.enterDefiniteFullTablePrivLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefiniteFullTablePrivLevel) { + listener.exitDefiniteFullTablePrivLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefiniteFullTablePrivLevel) { + return visitor.visitDefiniteFullTablePrivLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefiniteFullTablePrivLevel2Context extends PrivilegeLevelContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public dottedId(): DottedIdContext { + return this.getRuleContext(0, DottedIdContext); + } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefiniteFullTablePrivLevel2) { + listener.enterDefiniteFullTablePrivLevel2(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefiniteFullTablePrivLevel2) { + listener.exitDefiniteFullTablePrivLevel2(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefiniteFullTablePrivLevel2) { + return visitor.visitDefiniteFullTablePrivLevel2(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DefiniteTablePrivLevelContext extends PrivilegeLevelContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: PrivilegeLevelContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefiniteTablePrivLevel) { + listener.enterDefiniteTablePrivLevel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefiniteTablePrivLevel) { + listener.exitDefiniteTablePrivLevel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefiniteTablePrivLevel) { + return visitor.visitDefiniteTablePrivLevel(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RenameUserClauseContext extends ParserRuleContext { + public _fromFirst!: UserNameContext; + public _toFirst!: UserNameContext; + public KW_TO(): TerminalNode { return this.getToken(MySqlParser.KW_TO, 0); } + public userName(): UserNameContext[]; + public userName(i: number): UserNameContext; + public userName(i?: number): UserNameContext | UserNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserNameContext); + } else { + return this.getRuleContext(i, UserNameContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_renameUserClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRenameUserClause) { + listener.enterRenameUserClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRenameUserClause) { + listener.exitRenameUserClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRenameUserClause) { + return visitor.visitRenameUserClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AnalyzeTableContext extends ParserRuleContext { + public KW_ANALYZE(): TerminalNode { return this.getToken(MySqlParser.KW_ANALYZE, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNames(): TableNamesContext | undefined { + return this.tryGetRuleContext(0, TableNamesContext); + } + public tableActionOption(): TableActionOptionContext | undefined { + return this.tryGetRuleContext(0, TableActionOptionContext); + } + public tableName(): TableNameContext | undefined { + return this.tryGetRuleContext(0, TableNameContext); + } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public KW_HISTOGRAM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HISTOGRAM, 0); } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public columnNames(): ColumnNamesContext | undefined { + return this.tryGetRuleContext(0, ColumnNamesContext); + } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public KW_BUCKETS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BUCKETS, 0); } + public columnName(): ColumnNameContext | undefined { + return this.tryGetRuleContext(0, ColumnNameContext); + } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public KW_DATA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATA, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_DROP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DROP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_analyzeTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAnalyzeTable) { + listener.enterAnalyzeTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAnalyzeTable) { + listener.exitAnalyzeTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAnalyzeTable) { + return visitor.visitAnalyzeTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CheckTableContext extends ParserRuleContext { + public KW_CHECK(): TerminalNode { return this.getToken(MySqlParser.KW_CHECK, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public checkTableOption(): CheckTableOptionContext[]; + public checkTableOption(i: number): CheckTableOptionContext; + public checkTableOption(i?: number): CheckTableOptionContext | CheckTableOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(CheckTableOptionContext); + } else { + return this.getRuleContext(i, CheckTableOptionContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_checkTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCheckTable) { + listener.enterCheckTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCheckTable) { + listener.exitCheckTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCheckTable) { + return visitor.visitCheckTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ChecksumTableContext extends ParserRuleContext { + public _actionOption!: Token; + public KW_CHECKSUM(): TerminalNode { return this.getToken(MySqlParser.KW_CHECKSUM, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_checksumTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChecksumTable) { + listener.enterChecksumTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChecksumTable) { + listener.exitChecksumTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChecksumTable) { + return visitor.visitChecksumTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OptimizeTableContext extends ParserRuleContext { + public KW_OPTIMIZE(): TerminalNode { return this.getToken(MySqlParser.KW_OPTIMIZE, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public tableActionOption(): TableActionOptionContext | undefined { + return this.tryGetRuleContext(0, TableActionOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_optimizeTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOptimizeTable) { + listener.enterOptimizeTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOptimizeTable) { + listener.exitOptimizeTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOptimizeTable) { + return visitor.visitOptimizeTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class RepairTableContext extends ParserRuleContext { + public KW_REPAIR(): TerminalNode { return this.getToken(MySqlParser.KW_REPAIR, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNames(): TableNamesContext { + return this.getRuleContext(0, TableNamesContext); + } + public tableActionOption(): TableActionOptionContext | undefined { + return this.tryGetRuleContext(0, TableActionOptionContext); + } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_USE_FRM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USE_FRM, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_repairTable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRepairTable) { + listener.enterRepairTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRepairTable) { + listener.exitRepairTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRepairTable) { + return visitor.visitRepairTable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableActionOptionContext extends ParserRuleContext { + public KW_NO_WRITE_TO_BINLOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO_WRITE_TO_BINLOG, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableActionOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableActionOption) { + listener.enterTableActionOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableActionOption) { + listener.exitTableActionOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableActionOption) { + return visitor.visitTableActionOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CheckTableOptionContext extends ParserRuleContext { + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_UPGRADE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPGRADE, 0); } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_FAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAST, 0); } + public KW_MEDIUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEDIUM, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_CHANGED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHANGED, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_checkTableOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCheckTableOption) { + listener.enterCheckTableOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCheckTableOption) { + listener.exitCheckTableOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCheckTableOption) { + return visitor.visitCheckTableOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CreateFunctionContext extends ParserRuleContext { + public _returnType!: Token; + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_FUNCTION(): TerminalNode { return this.getToken(MySqlParser.KW_FUNCTION, 0); } + public functionNameCreate(): FunctionNameCreateContext { + return this.getRuleContext(0, FunctionNameCreateContext); + } + public KW_RETURNS(): TerminalNode { return this.getToken(MySqlParser.KW_RETURNS, 0); } + public KW_SONAME(): TerminalNode { return this.getToken(MySqlParser.KW_SONAME, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public KW_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STRING, 0); } + public KW_INTEGER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTEGER, 0); } + public KW_REAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REAL, 0); } + public KW_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DECIMAL, 0); } + public KW_AGGREGATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AGGREGATE, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_createFunction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCreateFunction) { + listener.enterCreateFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCreateFunction) { + listener.exitCreateFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCreateFunction) { + return visitor.visitCreateFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InstallComponentContext extends ParserRuleContext { + public _component_name!: UidContext; + public KW_INSTALL(): TerminalNode { return this.getToken(MySqlParser.KW_INSTALL, 0); } + public KW_COMPONENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMPONENT, 0); } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public variableExpr(): VariableExprContext[]; + public variableExpr(i: number): VariableExprContext; + public variableExpr(i?: number): VariableExprContext | VariableExprContext[] { + if (i === undefined) { + return this.getRuleContexts(VariableExprContext); + } else { + return this.getRuleContext(i, VariableExprContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_installComponent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInstallComponent) { + listener.enterInstallComponent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInstallComponent) { + listener.exitInstallComponent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInstallComponent) { + return visitor.visitInstallComponent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class VariableExprContext extends ParserRuleContext { + public _system_var_name!: FullIdContext; + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_GLOBAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GLOBAL, 0); } + public GLOBAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GLOBAL_ID, 0); } + public KW_PERSIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERSIST, 0); } + public PERSIST_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.PERSIST_ID, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_variableExpr; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterVariableExpr) { + listener.enterVariableExpr(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitVariableExpr) { + listener.exitVariableExpr(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitVariableExpr) { + return visitor.visitVariableExpr(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UninstallComponentContext extends ParserRuleContext { + public _component_name!: UidContext; + public KW_UNINSTALL(): TerminalNode { return this.getToken(MySqlParser.KW_UNINSTALL, 0); } + public KW_COMPONENT(): TerminalNode { return this.getToken(MySqlParser.KW_COMPONENT, 0); } + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_uninstallComponent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUninstallComponent) { + listener.enterUninstallComponent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUninstallComponent) { + listener.exitUninstallComponent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUninstallComponent) { + return visitor.visitUninstallComponent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class InstallPluginContext extends ParserRuleContext { + public _pluginName!: UidContext; + public KW_INSTALL(): TerminalNode { return this.getToken(MySqlParser.KW_INSTALL, 0); } + public KW_PLUGIN(): TerminalNode { return this.getToken(MySqlParser.KW_PLUGIN, 0); } + public KW_SONAME(): TerminalNode { return this.getToken(MySqlParser.KW_SONAME, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_installPlugin; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInstallPlugin) { + listener.enterInstallPlugin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInstallPlugin) { + listener.exitInstallPlugin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInstallPlugin) { + return visitor.visitInstallPlugin(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UninstallPluginContext extends ParserRuleContext { + public _pluginName!: UidContext; + public KW_UNINSTALL(): TerminalNode { return this.getToken(MySqlParser.KW_UNINSTALL, 0); } + public KW_PLUGIN(): TerminalNode { return this.getToken(MySqlParser.KW_PLUGIN, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_uninstallPlugin; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUninstallPlugin) { + listener.enterUninstallPlugin(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUninstallPlugin) { + listener.exitUninstallPlugin(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUninstallPlugin) { + return visitor.visitUninstallPlugin(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CloneStatementContext extends ParserRuleContext { + public KW_CLONE(): TerminalNode { return this.getToken(MySqlParser.KW_CLONE, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public KW_DATA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATA, 0); } + public KW_DIRECTORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DIRECTORY, 0); } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public KW_INSTANCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSTANCE, 0); } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public userHostPort(): UserHostPortContext | undefined { + return this.tryGetRuleContext(0, UserHostPortContext); + } + public KW_IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public KW_REQUIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REQUIRE, 0); } + public KW_SSL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SSL, 0); } + public KW_NO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_cloneStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCloneStatement) { + listener.enterCloneStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCloneStatement) { + listener.exitCloneStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCloneStatement) { + return visitor.visitCloneStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SetStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_setStatement; } + public copyFrom(ctx: SetStatementContext): void { + super.copyFrom(ctx); + } +} +export class SetVariableContext extends SetStatementContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public variableClause(): VariableClauseContext[]; + public variableClause(i: number): VariableClauseContext; + public variableClause(i?: number): VariableClauseContext | VariableClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(VariableClauseContext); + } else { + return this.getRuleContext(i, VariableClauseContext); + } + } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public VAR_ASSIGN(): TerminalNode[]; + public VAR_ASSIGN(i: number): TerminalNode; + public VAR_ASSIGN(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.VAR_ASSIGN); + } else { + return this.getToken(MySqlParser.VAR_ASSIGN, i); + } + } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public KW_ON(): TerminalNode[]; + public KW_ON(i: number): TerminalNode; + public KW_ON(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ON); + } else { + return this.getToken(MySqlParser.KW_ON, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetVariable) { + listener.enterSetVariable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetVariable) { + listener.exitSetVariable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetVariable) { + return visitor.visitSetVariable(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetCharsetContext extends SetStatementContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public charSet(): CharSetContext { + return this.getRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetCharset) { + listener.enterSetCharset(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetCharset) { + listener.exitSetCharset(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetCharset) { + return visitor.visitSetCharset(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetNamesContext extends SetStatementContext { + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public KW_NAMES(): TerminalNode { return this.getToken(MySqlParser.KW_NAMES, 0); } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetNames) { + listener.enterSetNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetNames) { + listener.exitSetNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetNames) { + return visitor.visitSetNames(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetPasswordContext extends SetStatementContext { + public setPasswordStatement(): SetPasswordStatementContext { + return this.getRuleContext(0, SetPasswordStatementContext); + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetPassword) { + listener.enterSetPassword(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetPassword) { + listener.exitSetPassword(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetPassword) { + return visitor.visitSetPassword(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetTransactionContext extends SetStatementContext { + public setTransactionStatement(): SetTransactionStatementContext { + return this.getRuleContext(0, SetTransactionStatementContext); + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetTransaction) { + listener.enterSetTransaction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetTransaction) { + listener.exitSetTransaction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetTransaction) { + return visitor.visitSetTransaction(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetAutocommitContext extends SetStatementContext { + public setAutocommitStatement(): SetAutocommitStatementContext { + return this.getRuleContext(0, SetAutocommitStatementContext); + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetAutocommit) { + listener.enterSetAutocommit(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetAutocommit) { + listener.exitSetAutocommit(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetAutocommit) { + return visitor.visitSetAutocommit(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SetNewValueInsideTriggerContext extends SetStatementContext { + public _system_var_name!: FullIdContext; + public KW_SET(): TerminalNode { return this.getToken(MySqlParser.KW_SET, 0); } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public fullId(): FullIdContext[]; + public fullId(i: number): FullIdContext; + public fullId(i?: number): FullIdContext | FullIdContext[] { + if (i === undefined) { + return this.getRuleContexts(FullIdContext); + } else { + return this.getRuleContext(i, FullIdContext); + } + } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public VAR_ASSIGN(): TerminalNode[]; + public VAR_ASSIGN(i: number): TerminalNode; + public VAR_ASSIGN(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.VAR_ASSIGN); + } else { + return this.getToken(MySqlParser.VAR_ASSIGN, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: SetStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSetNewValueInsideTrigger) { + listener.enterSetNewValueInsideTrigger(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSetNewValueInsideTrigger) { + listener.exitSetNewValueInsideTrigger(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSetNewValueInsideTrigger) { + return visitor.visitSetNewValueInsideTrigger(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowStatementContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showStatement; } + public copyFrom(ctx: ShowStatementContext): void { + super.copyFrom(ctx); + } +} +export class ShowMasterLogsContext extends ShowStatementContext { + public _logFormat!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_LOGS(): TerminalNode { return this.getToken(MySqlParser.KW_LOGS, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_MASTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowMasterLogs) { + listener.enterShowMasterLogs(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowMasterLogs) { + listener.exitShowMasterLogs(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowMasterLogs) { + return visitor.visitShowMasterLogs(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowLogEventsContext extends ShowStatementContext { + public _logFormat!: Token; + public _filename!: Token; + public _fromPosition!: DecimalLiteralContext; + public _offset!: DecimalLiteralContext; + public _rowCount!: DecimalLiteralContext; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_EVENTS(): TerminalNode { return this.getToken(MySqlParser.KW_EVENTS, 0); } + public KW_BINLOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG, 0); } + public KW_RELAYLOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAYLOG, 0); } + public KW_IN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IN, 0); } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public COMMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COMMA, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowLogEvents) { + listener.enterShowLogEvents(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowLogEvents) { + listener.exitShowLogEvents(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowLogEvents) { + return visitor.visitShowLogEvents(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowObjectFilterContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public showCommonEntity(): ShowCommonEntityContext { + return this.getRuleContext(0, ShowCommonEntityContext); + } + public showFilter(): ShowFilterContext | undefined { + return this.tryGetRuleContext(0, ShowFilterContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowObjectFilter) { + listener.enterShowObjectFilter(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowObjectFilter) { + listener.exitShowObjectFilter(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowObjectFilter) { + return visitor.visitShowObjectFilter(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowColumnsContext extends ShowStatementContext { + public _columnsFormat!: Token; + public _tableFormat!: Token; + public _schemaFormat!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public KW_FIELDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIELDS, 0); } + public KW_FROM(): TerminalNode[]; + public KW_FROM(i: number): TerminalNode; + public KW_FROM(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_FROM); + } else { + return this.getToken(MySqlParser.KW_FROM, i); + } + } + public KW_IN(): TerminalNode[]; + public KW_IN(i: number): TerminalNode; + public KW_IN(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_IN); + } else { + return this.getToken(MySqlParser.KW_IN, i); + } + } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_FULL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULL, 0); } + public databaseName(): DatabaseNameContext | undefined { + return this.tryGetRuleContext(0, DatabaseNameContext); + } + public showFilter(): ShowFilterContext | undefined { + return this.tryGetRuleContext(0, ShowFilterContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowColumns) { + listener.enterShowColumns(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowColumns) { + listener.exitShowColumns(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowColumns) { + return visitor.visitShowColumns(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateDbContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public databaseNameCreate(): DatabaseNameCreateContext { + return this.getRuleContext(0, DatabaseNameCreateContext); + } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public ifNotExists(): IfNotExistsContext | undefined { + return this.tryGetRuleContext(0, IfNotExistsContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateDb) { + listener.enterShowCreateDb(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateDb) { + listener.exitShowCreateDb(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateDb) { + return visitor.visitShowCreateDb(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateFullIdObjectContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public KW_EVENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVENT, 0); } + public KW_PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCEDURE, 0); } + public KW_TRIGGER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRIGGER, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateFullIdObject) { + listener.enterShowCreateFullIdObject(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateFullIdObject) { + listener.exitShowCreateFullIdObject(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateFullIdObject) { + return visitor.visitShowCreateFullIdObject(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateFunctionContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_FUNCTION(): TerminalNode { return this.getToken(MySqlParser.KW_FUNCTION, 0); } + public functionNameCreate(): FunctionNameCreateContext { + return this.getRuleContext(0, FunctionNameCreateContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateFunction) { + listener.enterShowCreateFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateFunction) { + listener.exitShowCreateFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateFunction) { + return visitor.visitShowCreateFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateViewContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_VIEW(): TerminalNode { return this.getToken(MySqlParser.KW_VIEW, 0); } + public viewNameCreate(): ViewNameCreateContext { + return this.getRuleContext(0, ViewNameCreateContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateView) { + listener.enterShowCreateView(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateView) { + listener.exitShowCreateView(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateView) { + return visitor.visitShowCreateView(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateTableContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableNameCreate(): TableNameCreateContext { + return this.getRuleContext(0, TableNameCreateContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateTable) { + listener.enterShowCreateTable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateTable) { + listener.exitShowCreateTable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateTable) { + return visitor.visitShowCreateTable(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCreateUserContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_CREATE(): TerminalNode { return this.getToken(MySqlParser.KW_CREATE, 0); } + public KW_USER(): TerminalNode { return this.getToken(MySqlParser.KW_USER, 0); } + public userName(): UserNameContext { + return this.getRuleContext(0, UserNameContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCreateUser) { + listener.enterShowCreateUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCreateUser) { + listener.exitShowCreateUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCreateUser) { + return visitor.visitShowCreateUser(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowEngineContext extends ShowStatementContext { + public _engineOption!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_ENGINE(): TerminalNode { return this.getToken(MySqlParser.KW_ENGINE, 0); } + public engineName(): EngineNameContext { + return this.getRuleContext(0, EngineNameContext); + } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_MUTEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MUTEX, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowEngine) { + listener.enterShowEngine(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowEngine) { + listener.exitShowEngine(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowEngine) { + return visitor.visitShowEngine(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowGlobalInfoContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public showGlobalInfoClause(): ShowGlobalInfoClauseContext { + return this.getRuleContext(0, ShowGlobalInfoClauseContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowGlobalInfo) { + listener.enterShowGlobalInfo(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowGlobalInfo) { + listener.exitShowGlobalInfo(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowGlobalInfo) { + return visitor.visitShowGlobalInfo(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowErrorsContext extends ShowStatementContext { + public _errorFormat!: Token; + public _offset!: DecimalLiteralContext; + public _rowCount!: DecimalLiteralContext; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_ERRORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERRORS, 0); } + public KW_WARNINGS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WARNINGS, 0); } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public COMMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COMMA, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowErrors) { + listener.enterShowErrors(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowErrors) { + listener.exitShowErrors(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowErrors) { + return visitor.visitShowErrors(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowCountErrorsContext extends ShowStatementContext { + public _errorFormat!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_COUNT(): TerminalNode { return this.getToken(MySqlParser.KW_COUNT, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public STAR(): TerminalNode { return this.getToken(MySqlParser.STAR, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_ERRORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERRORS, 0); } + public KW_WARNINGS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WARNINGS, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCountErrors) { + listener.enterShowCountErrors(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCountErrors) { + listener.exitShowCountErrors(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCountErrors) { + return visitor.visitShowCountErrors(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowSchemaFilterContext extends ShowStatementContext { + public _schemaFormat!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public showSchemaEntity(): ShowSchemaEntityContext { + return this.getRuleContext(0, ShowSchemaEntityContext); + } + public databaseName(): DatabaseNameContext | undefined { + return this.tryGetRuleContext(0, DatabaseNameContext); + } + public showFilter(): ShowFilterContext | undefined { + return this.tryGetRuleContext(0, ShowFilterContext); + } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public KW_IN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IN, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowSchemaFilter) { + listener.enterShowSchemaFilter(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowSchemaFilter) { + listener.exitShowSchemaFilter(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowSchemaFilter) { + return visitor.visitShowSchemaFilter(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowPercedureCodeContext extends ShowStatementContext { + public _proc_name!: FullIdContext; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_PROCEDURE(): TerminalNode { return this.getToken(MySqlParser.KW_PROCEDURE, 0); } + public KW_CODE(): TerminalNode { return this.getToken(MySqlParser.KW_CODE, 0); } + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowPercedureCode) { + listener.enterShowPercedureCode(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowPercedureCode) { + listener.exitShowPercedureCode(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowPercedureCode) { + return visitor.visitShowPercedureCode(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowFunctionCodeContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_FUNCTION(): TerminalNode { return this.getToken(MySqlParser.KW_FUNCTION, 0); } + public KW_CODE(): TerminalNode { return this.getToken(MySqlParser.KW_CODE, 0); } + public functionName(): FunctionNameContext { + return this.getRuleContext(0, FunctionNameContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowFunctionCode) { + listener.enterShowFunctionCode(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowFunctionCode) { + listener.exitShowFunctionCode(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowFunctionCode) { + return visitor.visitShowFunctionCode(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowGrantsContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_GRANTS(): TerminalNode { return this.getToken(MySqlParser.KW_GRANTS, 0); } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public userOrRoleName(): UserOrRoleNameContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNameContext); + } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public userOrRoleNames(): UserOrRoleNamesContext | undefined { + return this.tryGetRuleContext(0, UserOrRoleNamesContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowGrants) { + listener.enterShowGrants(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowGrants) { + listener.exitShowGrants(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowGrants) { + return visitor.visitShowGrants(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowIndexesContext extends ShowStatementContext { + public _indexFormat!: Token; + public _tableFormat!: Token; + public _schemaFormat!: Token; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_INDEXES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEXES, 0); } + public KW_KEYS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEYS, 0); } + public KW_FROM(): TerminalNode[]; + public KW_FROM(i: number): TerminalNode; + public KW_FROM(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_FROM); + } else { + return this.getToken(MySqlParser.KW_FROM, i); + } + } + public KW_IN(): TerminalNode[]; + public KW_IN(i: number): TerminalNode; + public KW_IN(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_IN); + } else { + return this.getToken(MySqlParser.KW_IN, i); + } + } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public databaseName(): DatabaseNameContext | undefined { + return this.tryGetRuleContext(0, DatabaseNameContext); + } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowIndexes) { + listener.enterShowIndexes(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowIndexes) { + listener.exitShowIndexes(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowIndexes) { + return visitor.visitShowIndexes(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowOpenTablesContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_OPEN(): TerminalNode { return this.getToken(MySqlParser.KW_OPEN, 0); } + public KW_TABLES(): TerminalNode { return this.getToken(MySqlParser.KW_TABLES, 0); } + public databaseName(): DatabaseNameContext | undefined { + return this.tryGetRuleContext(0, DatabaseNameContext); + } + public showFilter(): ShowFilterContext | undefined { + return this.tryGetRuleContext(0, ShowFilterContext); + } + public KW_FROM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FROM, 0); } + public KW_IN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IN, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowOpenTables) { + listener.enterShowOpenTables(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowOpenTables) { + listener.exitShowOpenTables(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowOpenTables) { + return visitor.visitShowOpenTables(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowProfileContext extends ShowStatementContext { + public _queryCount!: DecimalLiteralContext; + public _rowCount!: DecimalLiteralContext; + public _offset!: DecimalLiteralContext; + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_PROFILE(): TerminalNode { return this.getToken(MySqlParser.KW_PROFILE, 0); } + public showProfileType(): ShowProfileTypeContext[]; + public showProfileType(i: number): ShowProfileTypeContext; + public showProfileType(i?: number): ShowProfileTypeContext | ShowProfileTypeContext[] { + if (i === undefined) { + return this.getRuleContexts(ShowProfileTypeContext); + } else { + return this.getRuleContext(i, ShowProfileTypeContext); + } + } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_QUERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUERY, 0); } + public KW_LIMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIMIT, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_OFFSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFSET, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowProfile) { + listener.enterShowProfile(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowProfile) { + listener.exitShowProfile(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowProfile) { + return visitor.visitShowProfile(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowSlaveStatusContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_STATUS(): TerminalNode { return this.getToken(MySqlParser.KW_STATUS, 0); } + public KW_REPLICA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICA, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowSlaveStatus) { + listener.enterShowSlaveStatus(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowSlaveStatus) { + listener.exitShowSlaveStatus(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowSlaveStatus) { + return visitor.visitShowSlaveStatus(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ShowReplicasContext extends ShowStatementContext { + public KW_SHOW(): TerminalNode { return this.getToken(MySqlParser.KW_SHOW, 0); } + public KW_REPLICAS(): TerminalNode { return this.getToken(MySqlParser.KW_REPLICAS, 0); } + constructor(ctx: ShowStatementContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowReplicas) { + listener.enterShowReplicas(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowReplicas) { + listener.exitShowReplicas(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowReplicas) { + return visitor.visitShowReplicas(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class VariableClauseContext extends ParserRuleContext { + public _target!: UidContext; + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + public GLOBAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GLOBAL_ID, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public KW_GLOBAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GLOBAL, 0); } + public KW_PERSIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERSIST, 0); } + public KW_PERSIST_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERSIST_ONLY, 0); } + public KW_SESSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public AT_SIGN(): TerminalNode[]; + public AT_SIGN(i: number): TerminalNode; + public AT_SIGN(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.AT_SIGN); + } else { + return this.getToken(MySqlParser.AT_SIGN, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_variableClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterVariableClause) { + listener.enterVariableClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitVariableClause) { + listener.exitVariableClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitVariableClause) { + return visitor.visitVariableClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowCommonEntityContext extends ParserRuleContext { + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_CHARSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARSET, 0); } + public KW_COLLATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATION, 0); } + public KW_DATABASES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASES, 0); } + public KW_SCHEMAS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMAS, 0); } + public KW_FUNCTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FUNCTION, 0); } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_PROCEDURE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCEDURE, 0); } + public KW_VARIABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARIABLES, 0); } + public KW_GLOBAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GLOBAL, 0); } + public KW_SESSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showCommonEntity; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowCommonEntity) { + listener.enterShowCommonEntity(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowCommonEntity) { + listener.exitShowCommonEntity(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowCommonEntity) { + return visitor.visitShowCommonEntity(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowFilterContext extends ParserRuleContext { + public KW_LIKE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIKE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public KW_WHERE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WHERE, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showFilter; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowFilter) { + listener.enterShowFilter(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowFilter) { + listener.exitShowFilter(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowFilter) { + return visitor.visitShowFilter(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowGlobalInfoClauseContext extends ParserRuleContext { + public KW_ENGINES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINES, 0); } + public KW_STORAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STORAGE, 0); } + public KW_MASTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER, 0); } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_PLUGINS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PLUGINS, 0); } + public KW_PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGES, 0); } + public KW_PROCESSLIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCESSLIST, 0); } + public KW_FULL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULL, 0); } + public KW_PROFILES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROFILES, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_HOSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOSTS, 0); } + public KW_AUTHORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTHORS, 0); } + public KW_CONTRIBUTORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTRIBUTORS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showGlobalInfoClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowGlobalInfoClause) { + listener.enterShowGlobalInfoClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowGlobalInfoClause) { + listener.exitShowGlobalInfoClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowGlobalInfoClause) { + return visitor.visitShowGlobalInfoClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowSchemaEntityContext extends ParserRuleContext { + public KW_EVENTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVENTS, 0); } + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_FULL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULL, 0); } + public KW_TRIGGERS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRIGGERS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showSchemaEntity; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowSchemaEntity) { + listener.enterShowSchemaEntity(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowSchemaEntity) { + listener.exitShowSchemaEntity(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowSchemaEntity) { + return visitor.visitShowSchemaEntity(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShowProfileTypeContext extends ParserRuleContext { + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_BLOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BLOCK, 0); } + public KW_IO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IO, 0); } + public KW_CONTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTEXT, 0); } + public KW_SWITCHES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SWITCHES, 0); } + public KW_CPU(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CPU, 0); } + public KW_IPC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IPC, 0); } + public KW_MEMORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMORY, 0); } + public KW_PAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE, 0); } + public KW_FAULTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAULTS, 0); } + public KW_SOURCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE, 0); } + public KW_SWAPS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SWAPS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_showProfileType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShowProfileType) { + listener.enterShowProfileType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShowProfileType) { + listener.exitShowProfileType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShowProfileType) { + return visitor.visitShowProfileType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BinlogStatementContext extends ParserRuleContext { + public KW_BINLOG(): TerminalNode { return this.getToken(MySqlParser.KW_BINLOG, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_binlogStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBinlogStatement) { + listener.enterBinlogStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBinlogStatement) { + listener.exitBinlogStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBinlogStatement) { + return visitor.visitBinlogStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CacheIndexStatementContext extends ParserRuleContext { + public KW_CACHE(): TerminalNode { return this.getToken(MySqlParser.KW_CACHE, 0); } + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public KW_IN(): TerminalNode { return this.getToken(MySqlParser.KW_IN, 0); } + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext); + } + public tableIndex(): TableIndexContext[]; + public tableIndex(i: number): TableIndexContext; + public tableIndex(i?: number): TableIndexContext | TableIndexContext[] { + if (i === undefined) { + return this.getRuleContexts(TableIndexContext); + } else { + return this.getRuleContext(i, TableIndexContext); + } + } + public tableName(): TableNameContext | undefined { + return this.tryGetRuleContext(0, TableNameContext); + } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_cacheIndexStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCacheIndexStatement) { + listener.enterCacheIndexStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCacheIndexStatement) { + listener.exitCacheIndexStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCacheIndexStatement) { + return visitor.visitCacheIndexStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FlushStatementContext extends ParserRuleContext { + public KW_FLUSH(): TerminalNode { return this.getToken(MySqlParser.KW_FLUSH, 0); } + public flushOption(): FlushOptionContext[]; + public flushOption(i: number): FlushOptionContext; + public flushOption(i?: number): FlushOptionContext | FlushOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(FlushOptionContext); + } else { + return this.getRuleContext(i, FlushOptionContext); + } + } + public tableActionOption(): TableActionOptionContext | undefined { + return this.tryGetRuleContext(0, TableActionOptionContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_flushStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFlushStatement) { + listener.enterFlushStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFlushStatement) { + listener.exitFlushStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFlushStatement) { + return visitor.visitFlushStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class KillStatementContext extends ParserRuleContext { + public _connectionFormat!: Token; + public KW_KILL(): TerminalNode { return this.getToken(MySqlParser.KW_KILL, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_CONNECTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECTION, 0); } + public KW_QUERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUERY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_killStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterKillStatement) { + listener.enterKillStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitKillStatement) { + listener.exitKillStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitKillStatement) { + return visitor.visitKillStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LoadIndexIntoCacheContext extends ParserRuleContext { + public KW_LOAD(): TerminalNode { return this.getToken(MySqlParser.KW_LOAD, 0); } + public KW_INDEX(): TerminalNode { return this.getToken(MySqlParser.KW_INDEX, 0); } + public KW_INTO(): TerminalNode { return this.getToken(MySqlParser.KW_INTO, 0); } + public KW_CACHE(): TerminalNode { return this.getToken(MySqlParser.KW_CACHE, 0); } + public loadedTableIndexes(): LoadedTableIndexesContext[]; + public loadedTableIndexes(i: number): LoadedTableIndexesContext; + public loadedTableIndexes(i?: number): LoadedTableIndexesContext | LoadedTableIndexesContext[] { + if (i === undefined) { + return this.getRuleContexts(LoadedTableIndexesContext); + } else { + return this.getRuleContext(i, LoadedTableIndexesContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_loadIndexIntoCache; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLoadIndexIntoCache) { + listener.enterLoadIndexIntoCache(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLoadIndexIntoCache) { + listener.exitLoadIndexIntoCache(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLoadIndexIntoCache) { + return visitor.visitLoadIndexIntoCache(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResetStatementContext extends ParserRuleContext { + public KW_RESET(): TerminalNode { return this.getToken(MySqlParser.KW_RESET, 0); } + public resetOption(): ResetOptionContext[]; + public resetOption(i: number): ResetOptionContext; + public resetOption(i?: number): ResetOptionContext | ResetOptionContext[] { + if (i === undefined) { + return this.getRuleContexts(ResetOptionContext); + } else { + return this.getRuleContext(i, ResetOptionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resetStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResetStatement) { + listener.enterResetStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResetStatement) { + listener.exitResetStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResetStatement) { + return visitor.visitResetStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResetOptionContext extends ParserRuleContext { + public KW_MASTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER, 0); } + public KW_REPLICA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICA, 0); } + public KW_QUERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUERY, 0); } + public KW_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CACHE, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resetOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResetOption) { + listener.enterResetOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResetOption) { + listener.exitResetOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResetOption) { + return visitor.visitResetOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResetPersistContext extends ParserRuleContext { + public _system_var_name!: UidContext; + public KW_RESET(): TerminalNode { return this.getToken(MySqlParser.KW_RESET, 0); } + public KW_PERSIST(): TerminalNode { return this.getToken(MySqlParser.KW_PERSIST, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public ifExists(): IfExistsContext | undefined { + return this.tryGetRuleContext(0, IfExistsContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resetPersist; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResetPersist) { + listener.enterResetPersist(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResetPersist) { + listener.exitResetPersist(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResetPersist) { + return visitor.visitResetPersist(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResetAllChannelContext extends ParserRuleContext { + public KW_RESET(): TerminalNode { return this.getToken(MySqlParser.KW_RESET, 0); } + public KW_REPLICA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICA, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resetAllChannel; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResetAllChannel) { + listener.enterResetAllChannel(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResetAllChannel) { + listener.exitResetAllChannel(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResetAllChannel) { + return visitor.visitResetAllChannel(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ReStartStatementContext extends ParserRuleContext { + public KW_RESTART(): TerminalNode { return this.getToken(MySqlParser.KW_RESTART, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_reStartStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterReStartStatement) { + listener.enterReStartStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitReStartStatement) { + listener.exitReStartStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitReStartStatement) { + return visitor.visitReStartStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ShutdownStatementContext extends ParserRuleContext { + public KW_SHUTDOWN(): TerminalNode { return this.getToken(MySqlParser.KW_SHUTDOWN, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_shutdownStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterShutdownStatement) { + listener.enterShutdownStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitShutdownStatement) { + listener.exitShutdownStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitShutdownStatement) { + return visitor.visitShutdownStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableIndexContext extends ParserRuleContext { + public _indexFormat!: Token; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public indexNames(): IndexNamesContext | undefined { + return this.tryGetRuleContext(0, IndexNamesContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableIndex; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableIndex) { + listener.enterTableIndex(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableIndex) { + listener.exitTableIndex(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableIndex) { + return visitor.visitTableIndex(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FlushOptionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_flushOption; } + public copyFrom(ctx: FlushOptionContext): void { + super.copyFrom(ctx); + } +} +export class SimpleFlushOptionContext extends FlushOptionContext { + public KW_DES_KEY_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DES_KEY_FILE, 0); } + public KW_HOSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOSTS, 0); } + public KW_LOGS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOGS, 0); } + public KW_OPTIMIZER_COSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIMIZER_COSTS, 0); } + public KW_PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGES, 0); } + public KW_QUERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUERY, 0); } + public KW_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CACHE, 0); } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_USER_RESOURCES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER_RESOURCES, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_LOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCK, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_ENGINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE, 0); } + public KW_ERROR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERROR, 0); } + public KW_GENERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GENERAL, 0); } + public KW_RELAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY, 0); } + public KW_SLOW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLOW, 0); } + constructor(ctx: FlushOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleFlushOption) { + listener.enterSimpleFlushOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleFlushOption) { + listener.exitSimpleFlushOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleFlushOption) { + return visitor.visitSimpleFlushOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ChannelFlushOptionContext extends FlushOptionContext { + public KW_RELAY(): TerminalNode { return this.getToken(MySqlParser.KW_RELAY, 0); } + public KW_LOGS(): TerminalNode { return this.getToken(MySqlParser.KW_LOGS, 0); } + public channelOption(): ChannelOptionContext | undefined { + return this.tryGetRuleContext(0, ChannelOptionContext); + } + constructor(ctx: FlushOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterChannelFlushOption) { + listener.enterChannelFlushOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitChannelFlushOption) { + listener.exitChannelFlushOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitChannelFlushOption) { + return visitor.visitChannelFlushOption(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TableFlushOptionContext extends FlushOptionContext { + public KW_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE, 0); } + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public tableNames(): TableNamesContext | undefined { + return this.tryGetRuleContext(0, TableNamesContext); + } + public flushTableOption(): FlushTableOptionContext | undefined { + return this.tryGetRuleContext(0, FlushTableOptionContext); + } + constructor(ctx: FlushOptionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableFlushOption) { + listener.enterTableFlushOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableFlushOption) { + listener.exitTableFlushOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableFlushOption) { + return visitor.visitTableFlushOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FlushTableOptionContext extends ParserRuleContext { + public KW_WITH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITH, 0); } + public KW_READ(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_READ, 0); } + public KW_LOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCK, 0); } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + public KW_EXPORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPORT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_flushTableOption; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFlushTableOption) { + listener.enterFlushTableOption(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFlushTableOption) { + listener.exitFlushTableOption(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFlushTableOption) { + return visitor.visitFlushTableOption(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LoadedTableIndexesContext extends ParserRuleContext { + public _indexFormat!: Token; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_PARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITION, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public indexNames(): IndexNamesContext | undefined { + return this.tryGetRuleContext(0, IndexNamesContext); + } + public KW_IGNORE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE, 0); } + public KW_LEAVES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEAVES, 0); } + public partitionNames(): PartitionNamesContext | undefined { + return this.tryGetRuleContext(0, PartitionNamesContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_INDEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEX, 0); } + public KW_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_loadedTableIndexes; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLoadedTableIndexes) { + listener.enterLoadedTableIndexes(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLoadedTableIndexes) { + listener.exitLoadedTableIndexes(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLoadedTableIndexes) { + return visitor.visitLoadedTableIndexes(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SimpleDescribeStatementContext extends ParserRuleContext { + public _command!: Token; + public _column!: ColumnNameContext; + public _pattern!: Token; + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public KW_EXPLAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPLAIN, 0); } + public KW_DESCRIBE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESCRIBE, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + public columnName(): ColumnNameContext | undefined { + return this.tryGetRuleContext(0, ColumnNameContext); + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_simpleDescribeStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleDescribeStatement) { + listener.enterSimpleDescribeStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleDescribeStatement) { + listener.exitSimpleDescribeStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleDescribeStatement) { + return visitor.visitSimpleDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FullDescribeStatementContext extends ParserRuleContext { + public _command!: Token; + public describeObjectClause(): DescribeObjectClauseContext { + return this.getRuleContext(0, DescribeObjectClauseContext); + } + public KW_EXPLAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPLAIN, 0); } + public KW_DESCRIBE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESCRIBE, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITIONS, 0); } + public KW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORMAT, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public KW_TRADITIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRADITIONAL, 0); } + public KW_JSON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON, 0); } + public KW_TREE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TREE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_fullDescribeStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFullDescribeStatement) { + listener.enterFullDescribeStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFullDescribeStatement) { + listener.exitFullDescribeStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFullDescribeStatement) { + return visitor.visitFullDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AnalyzeDescribeStatementContext extends ParserRuleContext { + public _command!: Token; + public KW_ANALYZE(): TerminalNode { return this.getToken(MySqlParser.KW_ANALYZE, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public KW_EXPLAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPLAIN, 0); } + public KW_DESCRIBE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESCRIBE, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + public KW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORMAT, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public KW_TREE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TREE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_analyzeDescribeStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAnalyzeDescribeStatement) { + listener.enterAnalyzeDescribeStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAnalyzeDescribeStatement) { + listener.exitAnalyzeDescribeStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAnalyzeDescribeStatement) { + return visitor.visitAnalyzeDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HelpStatementContext extends ParserRuleContext { + public KW_HELP(): TerminalNode { return this.getToken(MySqlParser.KW_HELP, 0); } + public STRING_LITERAL(): TerminalNode { return this.getToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_helpStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHelpStatement) { + listener.enterHelpStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHelpStatement) { + listener.exitHelpStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHelpStatement) { + return visitor.visitHelpStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UseStatementContext extends ParserRuleContext { + public KW_USE(): TerminalNode { return this.getToken(MySqlParser.KW_USE, 0); } + public databaseName(): DatabaseNameContext { + return this.getRuleContext(0, DatabaseNameContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_useStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUseStatement) { + listener.enterUseStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUseStatement) { + listener.exitUseStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUseStatement) { + return visitor.visitUseStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SignalStatementContext extends ParserRuleContext { + public KW_SIGNAL(): TerminalNode { return this.getToken(MySqlParser.KW_SIGNAL, 0); } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.REVERSE_QUOTE_ID, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public signalConditionInformation(): SignalConditionInformationContext[]; + public signalConditionInformation(i: number): SignalConditionInformationContext; + public signalConditionInformation(i?: number): SignalConditionInformationContext | SignalConditionInformationContext[] { + if (i === undefined) { + return this.getRuleContexts(SignalConditionInformationContext); + } else { + return this.getRuleContext(i, SignalConditionInformationContext); + } + } + public KW_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQLSTATE, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_signalStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSignalStatement) { + listener.enterSignalStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSignalStatement) { + listener.exitSignalStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSignalStatement) { + return visitor.visitSignalStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ResignalStatementContext extends ParserRuleContext { + public KW_RESIGNAL(): TerminalNode { return this.getToken(MySqlParser.KW_RESIGNAL, 0); } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public REVERSE_QUOTE_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.REVERSE_QUOTE_ID, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public signalConditionInformation(): SignalConditionInformationContext[]; + public signalConditionInformation(i: number): SignalConditionInformationContext; + public signalConditionInformation(i?: number): SignalConditionInformationContext | SignalConditionInformationContext[] { + if (i === undefined) { + return this.getRuleContexts(SignalConditionInformationContext); + } else { + return this.getRuleContext(i, SignalConditionInformationContext); + } + } + public KW_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQLSTATE, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_resignalStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterResignalStatement) { + listener.enterResignalStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitResignalStatement) { + listener.exitResignalStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitResignalStatement) { + return visitor.visitResignalStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SignalConditionInformationContext extends ParserRuleContext { + public EQUAL_SYMBOL(): TerminalNode { return this.getToken(MySqlParser.EQUAL_SYMBOL, 0); } + public KW_CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLASS_ORIGIN, 0); } + public KW_SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBCLASS_ORIGIN, 0); } + public KW_MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MESSAGE_TEXT, 0); } + public KW_MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL_ERRNO, 0); } + public KW_CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_CATALOG, 0); } + public KW_CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_SCHEMA, 0); } + public KW_CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_NAME, 0); } + public KW_CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CATALOG_NAME, 0); } + public KW_SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA_NAME, 0); } + public KW_TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_NAME, 0); } + public KW_COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN_NAME, 0); } + public KW_CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURSOR_NAME, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public DECIMAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DECIMAL_LITERAL, 0); } + public mysqlVariable(): MysqlVariableContext | undefined { + return this.tryGetRuleContext(0, MysqlVariableContext); + } + public simpleId(): SimpleIdContext | undefined { + return this.tryGetRuleContext(0, SimpleIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_signalConditionInformation; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSignalConditionInformation) { + listener.enterSignalConditionInformation(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSignalConditionInformation) { + listener.exitSignalConditionInformation(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSignalConditionInformation) { + return visitor.visitSignalConditionInformation(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WithStatementContext extends ParserRuleContext { + public KW_WITH(): TerminalNode { return this.getToken(MySqlParser.KW_WITH, 0); } + public commonTableExpressions(): CommonTableExpressionsContext[]; + public commonTableExpressions(i: number): CommonTableExpressionsContext; + public commonTableExpressions(i?: number): CommonTableExpressionsContext | CommonTableExpressionsContext[] { + if (i === undefined) { + return this.getRuleContexts(CommonTableExpressionsContext); + } else { + return this.getRuleContext(i, CommonTableExpressionsContext); + } + } + public KW_RECURSIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RECURSIVE, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_withStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWithStatement) { + listener.enterWithStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWithStatement) { + listener.exitWithStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWithStatement) { + return visitor.visitWithStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableStatementContext extends ParserRuleContext { + public KW_TABLE(): TerminalNode { return this.getToken(MySqlParser.KW_TABLE, 0); } + public tableName(): TableNameContext { + return this.getRuleContext(0, TableNameContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public limitClause(): LimitClauseContext | undefined { + return this.tryGetRuleContext(0, LimitClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableStatement) { + listener.enterTableStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableStatement) { + listener.exitTableStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableStatement) { + return visitor.visitTableStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DiagnosticsStatementContext extends ParserRuleContext { + public KW_GET(): TerminalNode { return this.getToken(MySqlParser.KW_GET, 0); } + public KW_DIAGNOSTICS(): TerminalNode { return this.getToken(MySqlParser.KW_DIAGNOSTICS, 0); } + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + public KW_STACKED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STACKED, 0); } + public variableClause(): VariableClauseContext[]; + public variableClause(i: number): VariableClauseContext; + public variableClause(i?: number): VariableClauseContext | VariableClauseContext[] { + if (i === undefined) { + return this.getRuleContexts(VariableClauseContext); + } else { + return this.getRuleContext(i, VariableClauseContext); + } + } + public EQUAL_SYMBOL(): TerminalNode[]; + public EQUAL_SYMBOL(i: number): TerminalNode; + public EQUAL_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.EQUAL_SYMBOL); + } else { + return this.getToken(MySqlParser.EQUAL_SYMBOL, i); + } + } + public KW_CONDITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONDITION, 0); } + public diagnosticsConditionInformationName(): DiagnosticsConditionInformationNameContext[]; + public diagnosticsConditionInformationName(i: number): DiagnosticsConditionInformationNameContext; + public diagnosticsConditionInformationName(i?: number): DiagnosticsConditionInformationNameContext | DiagnosticsConditionInformationNameContext[] { + if (i === undefined) { + return this.getRuleContexts(DiagnosticsConditionInformationNameContext); + } else { + return this.getRuleContext(i, DiagnosticsConditionInformationNameContext); + } + } + public KW_NUMBER(): TerminalNode[]; + public KW_NUMBER(i: number): TerminalNode; + public KW_NUMBER(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_NUMBER); + } else { + return this.getToken(MySqlParser.KW_NUMBER, i); + } + } + public KW_ROW_COUNT(): TerminalNode[]; + public KW_ROW_COUNT(i: number): TerminalNode; + public KW_ROW_COUNT(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ROW_COUNT); + } else { + return this.getToken(MySqlParser.KW_ROW_COUNT, i); + } + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_diagnosticsStatement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDiagnosticsStatement) { + listener.enterDiagnosticsStatement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDiagnosticsStatement) { + listener.exitDiagnosticsStatement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDiagnosticsStatement) { + return visitor.visitDiagnosticsStatement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DiagnosticsConditionInformationNameContext extends ParserRuleContext { + public KW_CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLASS_ORIGIN, 0); } + public KW_SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBCLASS_ORIGIN, 0); } + public KW_RETURNED_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETURNED_SQLSTATE, 0); } + public KW_MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MESSAGE_TEXT, 0); } + public KW_MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL_ERRNO, 0); } + public KW_CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_CATALOG, 0); } + public KW_CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_SCHEMA, 0); } + public KW_CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_NAME, 0); } + public KW_CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CATALOG_NAME, 0); } + public KW_SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA_NAME, 0); } + public KW_TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_NAME, 0); } + public KW_COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN_NAME, 0); } + public KW_CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURSOR_NAME, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_diagnosticsConditionInformationName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDiagnosticsConditionInformationName) { + listener.enterDiagnosticsConditionInformationName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDiagnosticsConditionInformationName) { + listener.exitDiagnosticsConditionInformationName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDiagnosticsConditionInformationName) { + return visitor.visitDiagnosticsConditionInformationName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DescribeObjectClauseContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_describeObjectClause; } + public copyFrom(ctx: DescribeObjectClauseContext): void { + super.copyFrom(ctx); + } +} +export class DescribeStatementsContext extends DescribeObjectClauseContext { + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public deleteStatement(): DeleteStatementContext | undefined { + return this.tryGetRuleContext(0, DeleteStatementContext); + } + public insertStatement(): InsertStatementContext | undefined { + return this.tryGetRuleContext(0, InsertStatementContext); + } + public replaceStatement(): ReplaceStatementContext | undefined { + return this.tryGetRuleContext(0, ReplaceStatementContext); + } + public updateStatement(): UpdateStatementContext | undefined { + return this.tryGetRuleContext(0, UpdateStatementContext); + } + constructor(ctx: DescribeObjectClauseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDescribeStatements) { + listener.enterDescribeStatements(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDescribeStatements) { + listener.exitDescribeStatements(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDescribeStatements) { + return visitor.visitDescribeStatements(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DescribeConnectionContext extends DescribeObjectClauseContext { + public _connection_id!: UidContext; + public KW_FOR(): TerminalNode { return this.getToken(MySqlParser.KW_FOR, 0); } + public KW_CONNECTION(): TerminalNode { return this.getToken(MySqlParser.KW_CONNECTION, 0); } + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(ctx: DescribeObjectClauseContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDescribeConnection) { + listener.enterDescribeConnection(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDescribeConnection) { + listener.exitDescribeConnection(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDescribeConnection) { + return visitor.visitDescribeConnection(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DatabaseNameCreateContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_databaseNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDatabaseNameCreate) { + listener.enterDatabaseNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDatabaseNameCreate) { + listener.exitDatabaseNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDatabaseNameCreate) { + return visitor.visitDatabaseNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DatabaseNameContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_databaseName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDatabaseName) { + listener.enterDatabaseName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDatabaseName) { + listener.exitDatabaseName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDatabaseName) { + return visitor.visitDatabaseName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionNameCreateContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionNameCreate) { + listener.enterFunctionNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionNameCreate) { + listener.exitFunctionNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionNameCreate) { + return visitor.visitFunctionNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionNameContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionName) { + listener.enterFunctionName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionName) { + listener.exitFunctionName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionName) { + return visitor.visitFunctionName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ViewNameCreateContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_viewNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterViewNameCreate) { + listener.enterViewNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitViewNameCreate) { + listener.exitViewNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitViewNameCreate) { + return visitor.visitViewNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ViewNameContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_viewName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterViewName) { + listener.enterViewName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitViewName) { + listener.exitViewName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitViewName) { + return visitor.visitViewName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexNameCreateContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexNameCreate) { + listener.enterIndexNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexNameCreate) { + listener.exitIndexNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexNameCreate) { + return visitor.visitIndexNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexNamesContext extends ParserRuleContext { + public indexName(): IndexNameContext[]; + public indexName(i: number): IndexNameContext; + public indexName(i?: number): IndexNameContext | IndexNameContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexNameContext); + } else { + return this.getRuleContext(i, IndexNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexNames) { + listener.enterIndexNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexNames) { + listener.exitIndexNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexNames) { + return visitor.visitIndexNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexName) { + listener.enterIndexName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexName) { + listener.exitIndexName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexName) { + return visitor.visitIndexName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GroupNameCreateContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_groupNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGroupNameCreate) { + listener.enterGroupNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGroupNameCreate) { + listener.exitGroupNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGroupNameCreate) { + return visitor.visitGroupNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class GroupNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_groupName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGroupName) { + listener.enterGroupName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGroupName) { + listener.exitGroupName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGroupName) { + return visitor.visitGroupName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableNameCreateContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableNameCreate) { + listener.enterTableNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableNameCreate) { + listener.exitTableNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableNameCreate) { + return visitor.visitTableNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableNamesContext extends ParserRuleContext { + public tableName(): TableNameContext[]; + public tableName(i: number): TableNameContext; + public tableName(i?: number): TableNameContext | TableNameContext[] { + if (i === undefined) { + return this.getRuleContexts(TableNameContext); + } else { + return this.getRuleContext(i, TableNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableNames) { + listener.enterTableNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableNames) { + listener.exitTableNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableNames) { + return visitor.visitTableNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TableNameContext extends ParserRuleContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tableName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTableName) { + listener.enterTableName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTableName) { + listener.exitTableName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTableName) { + return visitor.visitTableName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserOrRoleNamesContext extends ParserRuleContext { + public userOrRoleName(): UserOrRoleNameContext[]; + public userOrRoleName(i: number): UserOrRoleNameContext; + public userOrRoleName(i?: number): UserOrRoleNameContext | UserOrRoleNameContext[] { + if (i === undefined) { + return this.getRuleContexts(UserOrRoleNameContext); + } else { + return this.getRuleContext(i, UserOrRoleNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userOrRoleNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserOrRoleNames) { + listener.enterUserOrRoleNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserOrRoleNames) { + listener.exitUserOrRoleNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserOrRoleNames) { + return visitor.visitUserOrRoleNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserOrRoleNameContext extends ParserRuleContext { + public userName(): UserNameContext | undefined { + return this.tryGetRuleContext(0, UserNameContext); + } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userOrRoleName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserOrRoleName) { + listener.enterUserOrRoleName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserOrRoleName) { + listener.exitUserOrRoleName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserOrRoleName) { + return visitor.visitUserOrRoleName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ColumnNameCreateContext extends ParserRuleContext { + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public dottedId(): DottedIdContext[]; + public dottedId(i: number): DottedIdContext; + public dottedId(i?: number): DottedIdContext | DottedIdContext[] { + if (i === undefined) { + return this.getRuleContexts(DottedIdContext); + } else { + return this.getRuleContext(i, DottedIdContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_columnNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnNameCreate) { + listener.enterColumnNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnNameCreate) { + listener.exitColumnNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnNameCreate) { + return visitor.visitColumnNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ColumnNamesContext extends ParserRuleContext { + public columnName(): ColumnNameContext[]; + public columnName(i: number): ColumnNameContext; + public columnName(i?: number): ColumnNameContext | ColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(ColumnNameContext); + } else { + return this.getRuleContext(i, ColumnNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_columnNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnNames) { + listener.enterColumnNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnNames) { + listener.exitColumnNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnNames) { + return visitor.visitColumnNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ColumnNameContext extends ParserRuleContext { + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public dottedId(): DottedIdContext[]; + public dottedId(i: number): DottedIdContext; + public dottedId(i?: number): DottedIdContext | DottedIdContext[] { + if (i === undefined) { + return this.getRuleContexts(DottedIdContext); + } else { + return this.getRuleContext(i, DottedIdContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_columnName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnName) { + listener.enterColumnName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnName) { + listener.exitColumnName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnName) { + return visitor.visitColumnName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TablespaceNameCreateContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tablespaceNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTablespaceNameCreate) { + listener.enterTablespaceNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTablespaceNameCreate) { + listener.exitTablespaceNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTablespaceNameCreate) { + return visitor.visitTablespaceNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TablespaceNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_tablespaceName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTablespaceName) { + listener.enterTablespaceName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTablespaceName) { + listener.exitTablespaceName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTablespaceName) { + return visitor.visitTablespaceName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionNameCreateContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionNameCreate; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionNameCreate) { + listener.enterPartitionNameCreate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionNameCreate) { + listener.exitPartitionNameCreate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionNameCreate) { + return visitor.visitPartitionNameCreate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionNamesContext extends ParserRuleContext { + public partitionName(): PartitionNameContext[]; + public partitionName(i: number): PartitionNameContext; + public partitionName(i?: number): PartitionNameContext | PartitionNameContext[] { + if (i === undefined) { + return this.getRuleContexts(PartitionNameContext); + } else { + return this.getRuleContext(i, PartitionNameContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionNames) { + listener.enterPartitionNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionNames) { + listener.exitPartitionNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionNames) { + return visitor.visitPartitionNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionName) { + listener.enterPartitionName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionName) { + listener.exitPartitionName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionName) { + return visitor.visitPartitionName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexColumnNameContext extends ParserRuleContext { + public _sortType!: Token; + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_ASC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASC, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexColumnName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexColumnName) { + listener.enterIndexColumnName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexColumnName) { + listener.exitIndexColumnName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexColumnName) { + return visitor.visitIndexColumnName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserHostPortContext extends ParserRuleContext { + public userAtHost(): UserAtHostContext { + return this.getRuleContext(0, UserAtHostContext); + } + public COLON_SYMB(): TerminalNode { return this.getToken(MySqlParser.COLON_SYMB, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userHostPort; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserHostPort) { + listener.enterUserHostPort(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserHostPort) { + listener.exitUserHostPort(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserHostPort) { + return visitor.visitUserHostPort(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserAtHostContext extends ParserRuleContext { + public simpleUserName(): SimpleUserNameContext { + return this.getRuleContext(0, SimpleUserNameContext); + } + public HOST_IP_ADDRESS(): TerminalNode { return this.getToken(MySqlParser.HOST_IP_ADDRESS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userAtHost; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserAtHost) { + listener.enterUserAtHost(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserAtHost) { + listener.exitUserAtHost(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserAtHost) { + return visitor.visitUserAtHost(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SimpleUserNameContext extends ParserRuleContext { + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public KW_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ADMIN, 0); } + public keywordsCanBeId(): KeywordsCanBeIdContext | undefined { + return this.tryGetRuleContext(0, KeywordsCanBeIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_simpleUserName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleUserName) { + listener.enterSimpleUserName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleUserName) { + listener.exitSimpleUserName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleUserName) { + return visitor.visitSimpleUserName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HostNameContext extends ParserRuleContext { + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + public HOST_IP_ADDRESS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.HOST_IP_ADDRESS, 0); } + public AT_SIGN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.AT_SIGN, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_hostName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHostName) { + listener.enterHostName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHostName) { + listener.exitHostName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHostName) { + return visitor.visitHostName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserNameContext extends ParserRuleContext { + public simpleUserName(): SimpleUserNameContext | undefined { + return this.tryGetRuleContext(0, SimpleUserNameContext); + } + public hostName(): HostNameContext | undefined { + return this.tryGetRuleContext(0, HostNameContext); + } + public currentUserExpression(): CurrentUserExpressionContext | undefined { + return this.tryGetRuleContext(0, CurrentUserExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserName) { + listener.enterUserName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserName) { + listener.exitUserName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserName) { + return visitor.visitUserName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class MysqlVariableContext extends ParserRuleContext { + public LOCAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LOCAL_ID, 0); } + public GLOBAL_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GLOBAL_ID, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_mysqlVariable; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMysqlVariable) { + listener.enterMysqlVariable(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMysqlVariable) { + listener.exitMysqlVariable(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMysqlVariable) { + return visitor.visitMysqlVariable(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CharsetNameContext extends ParserRuleContext { + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public charsetNameBase(): CharsetNameBaseContext | undefined { + return this.tryGetRuleContext(0, CharsetNameBaseContext); + } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public CHARSET_REVERSE_QOUTE_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.CHARSET_REVERSE_QOUTE_STRING, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_charsetName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCharsetName) { + listener.enterCharsetName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCharsetName) { + listener.exitCharsetName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCharsetName) { + return visitor.visitCharsetName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CollationNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_collationName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCollationName) { + listener.enterCollationName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCollationName) { + listener.exitCollationName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCollationName) { + return visitor.visitCollationName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class EngineNameContext extends ParserRuleContext { + public engineNameBase(): EngineNameBaseContext | undefined { + return this.tryGetRuleContext(0, EngineNameBaseContext); + } + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_engineName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterEngineName) { + listener.enterEngineName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitEngineName) { + listener.exitEngineName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitEngineName) { + return visitor.visitEngineName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class EngineNameBaseContext extends ParserRuleContext { + public KW_ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ARCHIVE, 0); } + public KW_BLACKHOLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BLACKHOLE, 0); } + public KW_CONNECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECT, 0); } + public KW_CSV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CSV, 0); } + public KW_FEDERATED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FEDERATED, 0); } + public KW_INNODB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNODB, 0); } + public KW_MEMORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMORY, 0); } + public KW_MRG_MYISAM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MRG_MYISAM, 0); } + public KW_MYISAM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYISAM, 0); } + public KW_NDB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NDB, 0); } + public KW_NDBCLUSTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NDBCLUSTER, 0); } + public KW_PERFORMANCE_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERFORMANCE_SCHEMA, 0); } + public KW_TOKUDB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TOKUDB, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_engineNameBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterEngineNameBase) { + listener.enterEngineNameBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitEngineNameBase) { + listener.exitEngineNameBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitEngineNameBase) { + return visitor.visitEngineNameBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UuidSetContext extends ParserRuleContext { + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public MINUS(): TerminalNode[]; + public MINUS(i: number): TerminalNode; + public MINUS(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.MINUS); + } else { + return this.getToken(MySqlParser.MINUS, i); + } + } + public COLON_SYMB(): TerminalNode[]; + public COLON_SYMB(i: number): TerminalNode; + public COLON_SYMB(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COLON_SYMB); + } else { + return this.getToken(MySqlParser.COLON_SYMB, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_uuidSet; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUuidSet) { + listener.enterUuidSet(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUuidSet) { + listener.exitUuidSet(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUuidSet) { + return visitor.visitUuidSet(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XidContext extends ParserRuleContext { + public _globalTableUid!: XuidStringIdContext; + public _qualifier!: XuidStringIdContext; + public _idFormat!: DecimalLiteralContext; + public xuidStringId(): XuidStringIdContext[]; + public xuidStringId(i: number): XuidStringIdContext; + public xuidStringId(i?: number): XuidStringIdContext | XuidStringIdContext[] { + if (i === undefined) { + return this.getRuleContexts(XuidStringIdContext); + } else { + return this.getRuleContext(i, XuidStringIdContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xid; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXid) { + listener.enterXid(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXid) { + listener.exitXid(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXid) { + return visitor.visitXid(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class XuidStringIdContext extends ParserRuleContext { + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public BIT_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_STRING, 0); } + public HEXADECIMAL_LITERAL(): TerminalNode[]; + public HEXADECIMAL_LITERAL(i: number): TerminalNode; + public HEXADECIMAL_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.HEXADECIMAL_LITERAL); + } else { + return this.getToken(MySqlParser.HEXADECIMAL_LITERAL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_xuidStringId; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterXuidStringId) { + listener.enterXuidStringId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitXuidStringId) { + listener.exitXuidStringId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitXuidStringId) { + return visitor.visitXuidStringId(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FullIdContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + public dottedId(): DottedIdContext | undefined { + return this.tryGetRuleContext(0, DottedIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_fullId; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFullId) { + listener.enterFullId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFullId) { + listener.exitFullId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFullId) { + return visitor.visitFullId(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UidListContext extends ParserRuleContext { + public uid(): UidContext[]; + public uid(i: number): UidContext; + public uid(i?: number): UidContext | UidContext[] { + if (i === undefined) { + return this.getRuleContexts(UidContext); + } else { + return this.getRuleContext(i, UidContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_uidList; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUidList) { + listener.enterUidList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUidList) { + listener.exitUidList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUidList) { + return visitor.visitUidList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UidContext extends ParserRuleContext { + public simpleId(): SimpleIdContext | undefined { + return this.tryGetRuleContext(0, SimpleIdContext); + } + public CHARSET_REVERSE_QOUTE_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.CHARSET_REVERSE_QOUTE_STRING, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_uid; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUid) { + listener.enterUid(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUid) { + listener.exitUid(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUid) { + return visitor.visitUid(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SimpleIdContext extends ParserRuleContext { + public ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ID, 0); } + public charsetNameBase(): CharsetNameBaseContext | undefined { + return this.tryGetRuleContext(0, CharsetNameBaseContext); + } + public transactionLevelBase(): TransactionLevelBaseContext | undefined { + return this.tryGetRuleContext(0, TransactionLevelBaseContext); + } + public engineNameBase(): EngineNameBaseContext | undefined { + return this.tryGetRuleContext(0, EngineNameBaseContext); + } + public privilegesBase(): PrivilegesBaseContext | undefined { + return this.tryGetRuleContext(0, PrivilegesBaseContext); + } + public intervalTypeBase(): IntervalTypeBaseContext | undefined { + return this.tryGetRuleContext(0, IntervalTypeBaseContext); + } + public dataTypeBase(): DataTypeBaseContext | undefined { + return this.tryGetRuleContext(0, DataTypeBaseContext); + } + public keywordsCanBeId(): KeywordsCanBeIdContext | undefined { + return this.tryGetRuleContext(0, KeywordsCanBeIdContext); + } + public scalarFunctionName(): ScalarFunctionNameContext | undefined { + return this.tryGetRuleContext(0, ScalarFunctionNameContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_simpleId; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleId) { + listener.enterSimpleId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleId) { + listener.exitSimpleId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleId) { + return visitor.visitSimpleId(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DottedIdContext extends ParserRuleContext { + public DOT_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DOT_ID, 0); } + public DOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DOT, 0); } + public uid(): UidContext | undefined { + return this.tryGetRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dottedId; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDottedId) { + listener.enterDottedId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDottedId) { + listener.exitDottedId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDottedId) { + return visitor.visitDottedId(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DecimalLiteralContext extends ParserRuleContext { + public DECIMAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DECIMAL_LITERAL, 0); } + public ZERO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ZERO_DECIMAL, 0); } + public ONE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.ONE_DECIMAL, 0); } + public TWO_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.TWO_DECIMAL, 0); } + public THREE_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.THREE_DECIMAL, 0); } + public REAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.REAL_LITERAL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_decimalLiteral; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDecimalLiteral) { + listener.enterDecimalLiteral(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDecimalLiteral) { + listener.exitDecimalLiteral(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDecimalLiteral) { + return visitor.visitDecimalLiteral(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FileSizeLiteralContext extends ParserRuleContext { + public FILESIZE_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.FILESIZE_LITERAL, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_fileSizeLiteral; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFileSizeLiteral) { + listener.enterFileSizeLiteral(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFileSizeLiteral) { + listener.exitFileSizeLiteral(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFileSizeLiteral) { + return visitor.visitFileSizeLiteral(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class StringLiteralContext extends ParserRuleContext { + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public START_NATIONAL_STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.START_NATIONAL_STRING_LITERAL, 0); } + public STRING_CHARSET_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_CHARSET_NAME, 0); } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_stringLiteral; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStringLiteral) { + listener.enterStringLiteral(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStringLiteral) { + listener.exitStringLiteral(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStringLiteral) { + return visitor.visitStringLiteral(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BooleanLiteralContext extends ParserRuleContext { + public KW_TRUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRUE, 0); } + public KW_FALSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FALSE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_booleanLiteral; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBooleanLiteral) { + listener.enterBooleanLiteral(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBooleanLiteral) { + listener.exitBooleanLiteral(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBooleanLiteral) { + return visitor.visitBooleanLiteral(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class HexadecimalLiteralContext extends ParserRuleContext { + public HEXADECIMAL_LITERAL(): TerminalNode { return this.getToken(MySqlParser.HEXADECIMAL_LITERAL, 0); } + public STRING_CHARSET_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_CHARSET_NAME, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_hexadecimalLiteral; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterHexadecimalLiteral) { + listener.enterHexadecimalLiteral(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitHexadecimalLiteral) { + listener.exitHexadecimalLiteral(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitHexadecimalLiteral) { + return visitor.visitHexadecimalLiteral(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class NullNotnullContext extends ParserRuleContext { + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public NULL_SPEC_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.NULL_SPEC_LITERAL, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_nullNotnull; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNullNotnull) { + listener.enterNullNotnull(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNullNotnull) { + listener.exitNullNotnull(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNullNotnull) { + return visitor.visitNullNotnull(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConstantContext extends ParserRuleContext { + public _nullLiteral!: Token; + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public MINUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MINUS, 0); } + public hexadecimalLiteral(): HexadecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, HexadecimalLiteralContext); + } + public booleanLiteral(): BooleanLiteralContext | undefined { + return this.tryGetRuleContext(0, BooleanLiteralContext); + } + public REAL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.REAL_LITERAL, 0); } + public BIT_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_STRING, 0); } + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public NULL_SPEC_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.NULL_SPEC_LITERAL, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_constant; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterConstant) { + listener.enterConstant(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitConstant) { + listener.exitConstant(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitConstant) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DataTypeContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dataType; } + public copyFrom(ctx: DataTypeContext): void { + super.copyFrom(ctx); + } +} +export class StringDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_VARCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARCHAR, 0); } + public KW_TINYTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TINYTEXT, 0); } + public KW_TEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEXT, 0); } + public KW_MEDIUMTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEDIUMTEXT, 0); } + public KW_LONGTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LONGTEXT, 0); } + public KW_NCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NCHAR, 0); } + public KW_NVARCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NVARCHAR, 0); } + public KW_LONG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LONG, 0); } + public KW_VARYING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARYING, 0); } + public lengthOneDimension(): LengthOneDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthOneDimensionContext); + } + public KW_BINARY(): TerminalNode[]; + public KW_BINARY(i: number): TerminalNode; + public KW_BINARY(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_BINARY); + } else { + return this.getToken(MySqlParser.KW_BINARY, i); + } + } + public charSet(): CharSetContext | undefined { + return this.tryGetRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterStringDataType) { + listener.enterStringDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitStringDataType) { + listener.exitStringDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitStringDataType) { + return visitor.visitStringDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NationalVaryingStringDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_NATIONAL(): TerminalNode { return this.getToken(MySqlParser.KW_NATIONAL, 0); } + public KW_VARYING(): TerminalNode { return this.getToken(MySqlParser.KW_VARYING, 0); } + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public lengthOneDimension(): LengthOneDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthOneDimensionContext); + } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNationalVaryingStringDataType) { + listener.enterNationalVaryingStringDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNationalVaryingStringDataType) { + listener.exitNationalVaryingStringDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNationalVaryingStringDataType) { + return visitor.visitNationalVaryingStringDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NationalStringDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_NATIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NATIONAL, 0); } + public KW_VARCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARCHAR, 0); } + public KW_CHARACTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARACTER, 0); } + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + public lengthOneDimension(): LengthOneDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthOneDimensionContext); + } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_NCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NCHAR, 0); } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNationalStringDataType) { + listener.enterNationalStringDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNationalStringDataType) { + listener.exitNationalStringDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNationalStringDataType) { + return visitor.visitNationalStringDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DimensionDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_TINYINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TINYINT, 0); } + public KW_SMALLINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SMALLINT, 0); } + public KW_MEDIUMINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEDIUMINT, 0); } + public KW_INT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT, 0); } + public KW_INTEGER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTEGER, 0); } + public KW_BIGINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIGINT, 0); } + public KW_MIDDLEINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIDDLEINT, 0); } + public KW_INT1(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT1, 0); } + public KW_INT2(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT2, 0); } + public KW_INT3(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT3, 0); } + public KW_INT4(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT4, 0); } + public KW_INT8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT8, 0); } + public lengthOneDimension(): LengthOneDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthOneDimensionContext); + } + public KW_SIGNED(): TerminalNode[]; + public KW_SIGNED(i: number): TerminalNode; + public KW_SIGNED(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_SIGNED); + } else { + return this.getToken(MySqlParser.KW_SIGNED, i); + } + } + public KW_UNSIGNED(): TerminalNode[]; + public KW_UNSIGNED(i: number): TerminalNode; + public KW_UNSIGNED(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_UNSIGNED); + } else { + return this.getToken(MySqlParser.KW_UNSIGNED, i); + } + } + public KW_ZEROFILL(): TerminalNode[]; + public KW_ZEROFILL(i: number): TerminalNode; + public KW_ZEROFILL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.KW_ZEROFILL); + } else { + return this.getToken(MySqlParser.KW_ZEROFILL, i); + } + } + public KW_REAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REAL, 0); } + public lengthTwoDimension(): LengthTwoDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthTwoDimensionContext); + } + public KW_DOUBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DOUBLE, 0); } + public KW_PRECISION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRECISION, 0); } + public KW_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DECIMAL, 0); } + public KW_DEC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEC, 0); } + public KW_FIXED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIXED, 0); } + public KW_NUMERIC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NUMERIC, 0); } + public KW_FLOAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLOAT, 0); } + public KW_FLOAT4(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLOAT4, 0); } + public KW_FLOAT8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLOAT8, 0); } + public lengthTwoOptionalDimension(): LengthTwoOptionalDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthTwoOptionalDimensionContext); + } + public KW_BIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT, 0); } + public KW_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIME, 0); } + public KW_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIMESTAMP, 0); } + public KW_DATETIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATETIME, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_VARBINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARBINARY, 0); } + public KW_BLOB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BLOB, 0); } + public KW_YEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_YEAR, 0); } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDimensionDataType) { + listener.enterDimensionDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDimensionDataType) { + listener.exitDimensionDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDimensionDataType) { + return visitor.visitDimensionDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SimpleDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE, 0); } + public KW_TINYBLOB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TINYBLOB, 0); } + public KW_MEDIUMBLOB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEDIUMBLOB, 0); } + public KW_LONGBLOB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LONGBLOB, 0); } + public KW_BOOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BOOL, 0); } + public KW_BOOLEAN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BOOLEAN, 0); } + public KW_SERIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERIAL, 0); } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleDataType) { + listener.enterSimpleDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleDataType) { + listener.exitSimpleDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleDataType) { + return visitor.visitSimpleDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CollectionDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public collectionOptions(): CollectionOptionsContext { + return this.getRuleContext(0, CollectionOptionsContext); + } + public KW_ENUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENUM, 0); } + public KW_SET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public charSet(): CharSetContext | undefined { + return this.tryGetRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCollectionDataType) { + listener.enterCollectionDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCollectionDataType) { + listener.exitCollectionDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCollectionDataType) { + return visitor.visitCollectionDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SpatialDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_GEOMETRYCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GEOMETRYCOLLECTION, 0); } + public KW_GEOMCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GEOMCOLLECTION, 0); } + public KW_LINESTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINESTRING, 0); } + public KW_MULTILINESTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTILINESTRING, 0); } + public KW_MULTIPOINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTIPOINT, 0); } + public KW_MULTIPOLYGON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTIPOLYGON, 0); } + public KW_POINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_POINT, 0); } + public KW_POLYGON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_POLYGON, 0); } + public KW_JSON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON, 0); } + public KW_GEOMETRY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GEOMETRY, 0); } + public KW_SRID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SRID, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSpatialDataType) { + listener.enterSpatialDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSpatialDataType) { + listener.exitSpatialDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSpatialDataType) { + return visitor.visitSpatialDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class LongVarcharDataTypeContext extends DataTypeContext { + public _typeName!: Token; + public KW_LONG(): TerminalNode { return this.getToken(MySqlParser.KW_LONG, 0); } + public KW_VARCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARCHAR, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public charSet(): CharSetContext | undefined { + return this.tryGetRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_COLLATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext | undefined { + return this.tryGetRuleContext(0, CollationNameContext); + } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLongVarcharDataType) { + listener.enterLongVarcharDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLongVarcharDataType) { + listener.exitLongVarcharDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLongVarcharDataType) { + return visitor.visitLongVarcharDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class LongVarbinaryDataTypeContext extends DataTypeContext { + public KW_LONG(): TerminalNode { return this.getToken(MySqlParser.KW_LONG, 0); } + public KW_VARBINARY(): TerminalNode { return this.getToken(MySqlParser.KW_VARBINARY, 0); } + constructor(ctx: DataTypeContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLongVarbinaryDataType) { + listener.enterLongVarbinaryDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLongVarbinaryDataType) { + listener.exitLongVarbinaryDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLongVarbinaryDataType) { + return visitor.visitLongVarbinaryDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CollectionOptionsContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_collectionOptions; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCollectionOptions) { + listener.enterCollectionOptions(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCollectionOptions) { + listener.exitCollectionOptions(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCollectionOptions) { + return visitor.visitCollectionOptions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConvertedDataTypeContext extends ParserRuleContext { + public _typeName!: Token; + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + public KW_SIGNED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SIGNED, 0); } + public KW_UNSIGNED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNSIGNED, 0); } + public KW_ARRAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ARRAY, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_NCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NCHAR, 0); } + public KW_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE, 0); } + public KW_DATETIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATETIME, 0); } + public KW_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIME, 0); } + public KW_JSON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON, 0); } + public KW_INT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INT, 0); } + public KW_INTEGER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INTEGER, 0); } + public KW_DECIMAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DECIMAL, 0); } + public KW_DEC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEC, 0); } + public lengthOneDimension(): LengthOneDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthOneDimensionContext); + } + public charSet(): CharSetContext | undefined { + return this.tryGetRuleContext(0, CharSetContext); + } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public lengthTwoOptionalDimension(): LengthTwoOptionalDimensionContext | undefined { + return this.tryGetRuleContext(0, LengthTwoOptionalDimensionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_convertedDataType; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterConvertedDataType) { + listener.enterConvertedDataType(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitConvertedDataType) { + listener.exitConvertedDataType(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitConvertedDataType) { + return visitor.visitConvertedDataType(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LengthOneDimensionContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lengthOneDimension; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLengthOneDimension) { + listener.enterLengthOneDimension(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLengthOneDimension) { + listener.exitLengthOneDimension(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLengthOneDimension) { + return visitor.visitLengthOneDimension(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LengthTwoDimensionContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lengthTwoDimension; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLengthTwoDimension) { + listener.enterLengthTwoDimension(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLengthTwoDimension) { + listener.exitLengthTwoDimension(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLengthTwoDimension) { + return visitor.visitLengthTwoDimension(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LengthTwoOptionalDimensionContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COMMA, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_lengthTwoOptionalDimension; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLengthTwoOptionalDimension) { + listener.enterLengthTwoOptionalDimension(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLengthTwoOptionalDimension) { + listener.exitLengthTwoOptionalDimension(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLengthTwoOptionalDimension) { + return visitor.visitLengthTwoOptionalDimension(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IndexColumnNamesContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public indexColumnName(): IndexColumnNameContext[]; + public indexColumnName(i: number): IndexColumnNameContext; + public indexColumnName(i?: number): IndexColumnNameContext | IndexColumnNameContext[] { + if (i === undefined) { + return this.getRuleContexts(IndexColumnNameContext); + } else { + return this.getRuleContext(i, IndexColumnNameContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_indexColumnNames; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIndexColumnNames) { + listener.enterIndexColumnNames(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIndexColumnNames) { + listener.exitIndexColumnNames(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIndexColumnNames) { + return visitor.visitIndexColumnNames(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionsContext extends ParserRuleContext { + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_expressions; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExpressions) { + listener.enterExpressions(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExpressions) { + listener.exitExpressions(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExpressions) { + return visitor.visitExpressions(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ValuesOrValueListContext extends ParserRuleContext { + public expressionsWithDefaults(): ExpressionsWithDefaultsContext[]; + public expressionsWithDefaults(i: number): ExpressionsWithDefaultsContext; + public expressionsWithDefaults(i?: number): ExpressionsWithDefaultsContext | ExpressionsWithDefaultsContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionsWithDefaultsContext); + } else { + return this.getRuleContext(i, ExpressionsWithDefaultsContext); + } + } + public KW_VALUES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUES, 0); } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_valuesOrValueList; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterValuesOrValueList) { + listener.enterValuesOrValueList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitValuesOrValueList) { + listener.exitValuesOrValueList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitValuesOrValueList) { + return visitor.visitValuesOrValueList(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionsWithDefaultsContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expressionOrDefault(): ExpressionOrDefaultContext[]; + public expressionOrDefault(i: number): ExpressionOrDefaultContext; + public expressionOrDefault(i?: number): ExpressionOrDefaultContext | ExpressionOrDefaultContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionOrDefaultContext); + } else { + return this.getRuleContext(i, ExpressionOrDefaultContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_expressionsWithDefaults; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExpressionsWithDefaults) { + listener.enterExpressionsWithDefaults(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExpressionsWithDefaults) { + listener.exitExpressionsWithDefaults(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExpressionsWithDefaults) { + return visitor.visitExpressionsWithDefaults(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionOrDefaultContext extends ParserRuleContext { + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_expressionOrDefault; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExpressionOrDefault) { + listener.enterExpressionOrDefault(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExpressionOrDefault) { + listener.exitExpressionOrDefault(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExpressionOrDefault) { + return visitor.visitExpressionOrDefault(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ConstantsContext extends ParserRuleContext { + public constant(): ConstantContext[]; + public constant(i: number): ConstantContext; + public constant(i?: number): ConstantContext | ConstantContext[] { + if (i === undefined) { + return this.getRuleContexts(ConstantContext); + } else { + return this.getRuleContext(i, ConstantContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_constants; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterConstants) { + listener.enterConstants(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitConstants) { + listener.exitConstants(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitConstants) { + return visitor.visitConstants(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SimpleStringsContext extends ParserRuleContext { + public STRING_LITERAL(): TerminalNode[]; + public STRING_LITERAL(i: number): TerminalNode; + public STRING_LITERAL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.STRING_LITERAL); + } else { + return this.getToken(MySqlParser.STRING_LITERAL, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_simpleStrings; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleStrings) { + listener.enterSimpleStrings(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleStrings) { + listener.exitSimpleStrings(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleStrings) { + return visitor.visitSimpleStrings(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UserVariablesContext extends ParserRuleContext { + public LOCAL_ID(): TerminalNode[]; + public LOCAL_ID(i: number): TerminalNode; + public LOCAL_ID(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LOCAL_ID); + } else { + return this.getToken(MySqlParser.LOCAL_ID, i); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_userVariables; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUserVariables) { + listener.enterUserVariables(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUserVariables) { + listener.exitUserVariables(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUserVariables) { + return visitor.visitUserVariables(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DefaultValueContext extends ParserRuleContext { + public KW_NULL_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NULL_LITERAL, 0); } + public KW_CAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CAST, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public convertedDataType(): ConvertedDataTypeContext | undefined { + return this.tryGetRuleContext(0, ConvertedDataTypeContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public constant(): ConstantContext | undefined { + return this.tryGetRuleContext(0, ConstantContext); + } + public unaryOperator(): UnaryOperatorContext | undefined { + return this.tryGetRuleContext(0, UnaryOperatorContext); + } + public currentTimestamp(): CurrentTimestampContext[]; + public currentTimestamp(i: number): CurrentTimestampContext; + public currentTimestamp(i?: number): CurrentTimestampContext | CurrentTimestampContext[] { + if (i === undefined) { + return this.getRuleContexts(CurrentTimestampContext); + } else { + return this.getRuleContext(i, CurrentTimestampContext); + } + } + public KW_ON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ON, 0); } + public KW_UPDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPDATE, 0); } + public fullId(): FullIdContext | undefined { + return this.tryGetRuleContext(0, FullIdContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_defaultValue; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDefaultValue) { + listener.enterDefaultValue(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDefaultValue) { + listener.exitDefaultValue(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDefaultValue) { + return visitor.visitDefaultValue(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CurrentTimestampContext extends ParserRuleContext { + public KW_NOW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOW, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public KW_CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIMESTAMP, 0); } + public KW_LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCALTIME, 0); } + public KW_LOCALTIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCALTIMESTAMP, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_currentTimestamp; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCurrentTimestamp) { + listener.enterCurrentTimestamp(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCurrentTimestamp) { + listener.exitCurrentTimestamp(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCurrentTimestamp) { + return visitor.visitCurrentTimestamp(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IfExistsContext extends ParserRuleContext { + public KW_IF(): TerminalNode { return this.getToken(MySqlParser.KW_IF, 0); } + public KW_EXISTS(): TerminalNode { return this.getToken(MySqlParser.KW_EXISTS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ifExists; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIfExists) { + listener.enterIfExists(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIfExists) { + listener.exitIfExists(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIfExists) { + return visitor.visitIfExists(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IfNotExistsContext extends ParserRuleContext { + public KW_IF(): TerminalNode { return this.getToken(MySqlParser.KW_IF, 0); } + public KW_NOT(): TerminalNode { return this.getToken(MySqlParser.KW_NOT, 0); } + public KW_EXISTS(): TerminalNode { return this.getToken(MySqlParser.KW_EXISTS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_ifNotExists; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIfNotExists) { + listener.enterIfNotExists(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIfNotExists) { + listener.exitIfNotExists(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIfNotExists) { + return visitor.visitIfNotExists(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OrReplaceContext extends ParserRuleContext { + public KW_OR(): TerminalNode { return this.getToken(MySqlParser.KW_OR, 0); } + public KW_REPLACE(): TerminalNode { return this.getToken(MySqlParser.KW_REPLACE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_orReplace; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOrReplace) { + listener.enterOrReplace(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOrReplace) { + listener.exitOrReplace(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOrReplace) { + return visitor.visitOrReplace(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionCallContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionCall; } + public copyFrom(ctx: FunctionCallContext): void { + super.copyFrom(ctx); + } +} +export class SpecificFunctionCallContext extends FunctionCallContext { + public specificFunction(): SpecificFunctionContext { + return this.getRuleContext(0, SpecificFunctionContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSpecificFunctionCall) { + listener.enterSpecificFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSpecificFunctionCall) { + listener.exitSpecificFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSpecificFunctionCall) { + return visitor.visitSpecificFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class AggregateFunctionCallContext extends FunctionCallContext { + public aggregateWindowedFunction(): AggregateWindowedFunctionContext { + return this.getRuleContext(0, AggregateWindowedFunctionContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAggregateFunctionCall) { + listener.enterAggregateFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAggregateFunctionCall) { + listener.exitAggregateFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAggregateFunctionCall) { + return visitor.visitAggregateFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NonAggregateFunctionCallContext extends FunctionCallContext { + public nonAggregateWindowedFunction(): NonAggregateWindowedFunctionContext { + return this.getRuleContext(0, NonAggregateWindowedFunctionContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNonAggregateFunctionCall) { + listener.enterNonAggregateFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNonAggregateFunctionCall) { + listener.exitNonAggregateFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNonAggregateFunctionCall) { + return visitor.visitNonAggregateFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ScalarFunctionCallContext extends FunctionCallContext { + public scalarFunctionName(): ScalarFunctionNameContext { + return this.getRuleContext(0, ScalarFunctionNameContext); + } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public functionArgs(): FunctionArgsContext | undefined { + return this.tryGetRuleContext(0, FunctionArgsContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterScalarFunctionCall) { + listener.enterScalarFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitScalarFunctionCall) { + listener.exitScalarFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitScalarFunctionCall) { + return visitor.visitScalarFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class UdfFunctionCallContext extends FunctionCallContext { + public fullId(): FullIdContext { + return this.getRuleContext(0, FullIdContext); + } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public functionArgs(): FunctionArgsContext | undefined { + return this.tryGetRuleContext(0, FunctionArgsContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUdfFunctionCall) { + listener.enterUdfFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUdfFunctionCall) { + listener.exitUdfFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUdfFunctionCall) { + return visitor.visitUdfFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PasswordFunctionCallContext extends FunctionCallContext { + public passwordFunctionClause(): PasswordFunctionClauseContext { + return this.getRuleContext(0, PasswordFunctionClauseContext); + } + constructor(ctx: FunctionCallContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPasswordFunctionCall) { + listener.enterPasswordFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPasswordFunctionCall) { + listener.exitPasswordFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPasswordFunctionCall) { + return visitor.visitPasswordFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class SpecificFunctionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_specificFunction; } + public copyFrom(ctx: SpecificFunctionContext): void { + super.copyFrom(ctx); + } +} +export class SimpleFunctionCallContext extends SpecificFunctionContext { + public KW_CURRENT_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_DATE, 0); } + public KW_CURRENT_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIME, 0); } + public KW_CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIMESTAMP, 0); } + public KW_LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCALTIME, 0); } + public KW_UTC_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTC_TIMESTAMP, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSimpleFunctionCall) { + listener.enterSimpleFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSimpleFunctionCall) { + listener.exitSimpleFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSimpleFunctionCall) { + return visitor.visitSimpleFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CurrentUserContext extends SpecificFunctionContext { + public currentUserExpression(): CurrentUserExpressionContext { + return this.getRuleContext(0, CurrentUserExpressionContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCurrentUser) { + listener.enterCurrentUser(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCurrentUser) { + listener.exitCurrentUser(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCurrentUser) { + return visitor.visitCurrentUser(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class DataTypeFunctionCallContext extends SpecificFunctionContext { + public _separator!: Token; + public KW_CONVERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONVERT, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public convertedDataType(): ConvertedDataTypeContext | undefined { + return this.tryGetRuleContext(0, ConvertedDataTypeContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.COMMA, 0); } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + public KW_CAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CAST, 0); } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDataTypeFunctionCall) { + listener.enterDataTypeFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDataTypeFunctionCall) { + listener.exitDataTypeFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDataTypeFunctionCall) { + return visitor.visitDataTypeFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ValuesFunctionCallContext extends SpecificFunctionContext { + public KW_VALUES(): TerminalNode { return this.getToken(MySqlParser.KW_VALUES, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterValuesFunctionCall) { + listener.enterValuesFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitValuesFunctionCall) { + listener.exitValuesFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitValuesFunctionCall) { + return visitor.visitValuesFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CaseExpressionFunctionCallContext extends SpecificFunctionContext { + public _elseArg!: FunctionArgContext; + public KW_CASE(): TerminalNode { return this.getToken(MySqlParser.KW_CASE, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public caseFuncAlternative(): CaseFuncAlternativeContext[]; + public caseFuncAlternative(i: number): CaseFuncAlternativeContext; + public caseFuncAlternative(i?: number): CaseFuncAlternativeContext | CaseFuncAlternativeContext[] { + if (i === undefined) { + return this.getRuleContexts(CaseFuncAlternativeContext); + } else { + return this.getRuleContext(i, CaseFuncAlternativeContext); + } + } + public KW_ELSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ELSE, 0); } + public functionArg(): FunctionArgContext | undefined { + return this.tryGetRuleContext(0, FunctionArgContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCaseExpressionFunctionCall) { + listener.enterCaseExpressionFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCaseExpressionFunctionCall) { + listener.exitCaseExpressionFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCaseExpressionFunctionCall) { + return visitor.visitCaseExpressionFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CaseFunctionCallContext extends SpecificFunctionContext { + public _elseArg!: FunctionArgContext; + public KW_CASE(): TerminalNode { return this.getToken(MySqlParser.KW_CASE, 0); } + public KW_END(): TerminalNode { return this.getToken(MySqlParser.KW_END, 0); } + public caseFuncAlternative(): CaseFuncAlternativeContext[]; + public caseFuncAlternative(i: number): CaseFuncAlternativeContext; + public caseFuncAlternative(i?: number): CaseFuncAlternativeContext | CaseFuncAlternativeContext[] { + if (i === undefined) { + return this.getRuleContexts(CaseFuncAlternativeContext); + } else { + return this.getRuleContext(i, CaseFuncAlternativeContext); + } + } + public KW_ELSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ELSE, 0); } + public functionArg(): FunctionArgContext | undefined { + return this.tryGetRuleContext(0, FunctionArgContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCaseFunctionCall) { + listener.enterCaseFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCaseFunctionCall) { + listener.exitCaseFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCaseFunctionCall) { + return visitor.visitCaseFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CharFunctionCallContext extends SpecificFunctionContext { + public KW_CHAR(): TerminalNode { return this.getToken(MySqlParser.KW_CHAR, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public functionArgs(): FunctionArgsContext { + return this.getRuleContext(0, FunctionArgsContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_USING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USING, 0); } + public charsetName(): CharsetNameContext | undefined { + return this.tryGetRuleContext(0, CharsetNameContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCharFunctionCall) { + listener.enterCharFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCharFunctionCall) { + listener.exitCharFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCharFunctionCall) { + return visitor.visitCharFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PositionFunctionCallContext extends SpecificFunctionContext { + public _positionString!: StringLiteralContext; + public _positionExpression!: ExpressionContext; + public _inString!: StringLiteralContext; + public _inExpression!: ExpressionContext; + public KW_POSITION(): TerminalNode { return this.getToken(MySqlParser.KW_POSITION, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public KW_IN(): TerminalNode { return this.getToken(MySqlParser.KW_IN, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public stringLiteral(): StringLiteralContext[]; + public stringLiteral(i: number): StringLiteralContext; + public stringLiteral(i?: number): StringLiteralContext | StringLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(StringLiteralContext); + } else { + return this.getRuleContext(i, StringLiteralContext); + } + } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPositionFunctionCall) { + listener.enterPositionFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPositionFunctionCall) { + listener.exitPositionFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPositionFunctionCall) { + return visitor.visitPositionFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SubstrFunctionCallContext extends SpecificFunctionContext { + public _sourceString!: StringLiteralContext; + public _sourceExpression!: ExpressionContext; + public _fromDecimal!: DecimalLiteralContext; + public _fromExpression!: ExpressionContext; + public _forDecimal!: DecimalLiteralContext; + public _forExpression!: ExpressionContext; + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_SUBSTR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBSTR, 0); } + public KW_SUBSTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBSTRING, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public KW_FOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOR, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubstrFunctionCall) { + listener.enterSubstrFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubstrFunctionCall) { + listener.exitSubstrFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubstrFunctionCall) { + return visitor.visitSubstrFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class TrimFunctionCallContext extends SpecificFunctionContext { + public _positioinForm!: Token; + public _sourceString!: StringLiteralContext; + public _sourceExpression!: ExpressionContext; + public _fromString!: StringLiteralContext; + public _fromExpression!: ExpressionContext; + public KW_TRIM(): TerminalNode { return this.getToken(MySqlParser.KW_TRIM, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_BOTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BOTH, 0); } + public KW_LEADING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEADING, 0); } + public KW_TRAILING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRAILING, 0); } + public stringLiteral(): StringLiteralContext[]; + public stringLiteral(i: number): StringLiteralContext; + public stringLiteral(i?: number): StringLiteralContext | StringLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(StringLiteralContext); + } else { + return this.getRuleContext(i, StringLiteralContext); + } + } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTrimFunctionCall) { + listener.enterTrimFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTrimFunctionCall) { + listener.exitTrimFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTrimFunctionCall) { + return visitor.visitTrimFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class WeightFunctionCallContext extends SpecificFunctionContext { + public _stringFormat!: Token; + public KW_WEIGHT_STRING(): TerminalNode { return this.getToken(MySqlParser.KW_WEIGHT_STRING, 0); } + public LR_BRACKET(): TerminalNode[]; + public LR_BRACKET(i: number): TerminalNode; + public LR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LR_BRACKET); + } else { + return this.getToken(MySqlParser.LR_BRACKET, i); + } + } + public RR_BRACKET(): TerminalNode[]; + public RR_BRACKET(i: number): TerminalNode; + public RR_BRACKET(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.RR_BRACKET); + } else { + return this.getToken(MySqlParser.RR_BRACKET, i); + } + } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public KW_AS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AS, 0); } + public decimalLiteral(): DecimalLiteralContext | undefined { + return this.tryGetRuleContext(0, DecimalLiteralContext); + } + public levelsInWeightString(): LevelsInWeightStringContext | undefined { + return this.tryGetRuleContext(0, LevelsInWeightStringContext); + } + public KW_CHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAR, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWeightFunctionCall) { + listener.enterWeightFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWeightFunctionCall) { + listener.exitWeightFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWeightFunctionCall) { + return visitor.visitWeightFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ExtractFunctionCallContext extends SpecificFunctionContext { + public _sourceString!: StringLiteralContext; + public _sourceExpression!: ExpressionContext; + public KW_EXTRACT(): TerminalNode { return this.getToken(MySqlParser.KW_EXTRACT, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public intervalType(): IntervalTypeContext { + return this.getRuleContext(0, IntervalTypeContext); + } + public KW_FROM(): TerminalNode { return this.getToken(MySqlParser.KW_FROM, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public stringLiteral(): StringLiteralContext | undefined { + return this.tryGetRuleContext(0, StringLiteralContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExtractFunctionCall) { + listener.enterExtractFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExtractFunctionCall) { + listener.exitExtractFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExtractFunctionCall) { + return visitor.visitExtractFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class GetFormatFunctionCallContext extends SpecificFunctionContext { + public _datetimeFormat!: Token; + public KW_GET_FORMAT(): TerminalNode { return this.getToken(MySqlParser.KW_GET_FORMAT, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public stringLiteral(): StringLiteralContext { + return this.getRuleContext(0, StringLiteralContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE, 0); } + public KW_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIME, 0); } + public KW_DATETIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATETIME, 0); } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterGetFormatFunctionCall) { + listener.enterGetFormatFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitGetFormatFunctionCall) { + listener.exitGetFormatFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitGetFormatFunctionCall) { + return visitor.visitGetFormatFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class JsonValueFunctionCallContext extends SpecificFunctionContext { + public KW_JSON_VALUE(): TerminalNode { return this.getToken(MySqlParser.KW_JSON_VALUE, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public COMMA(): TerminalNode { return this.getToken(MySqlParser.COMMA, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_RETURNING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETURNING, 0); } + public convertedDataType(): ConvertedDataTypeContext | undefined { + return this.tryGetRuleContext(0, ConvertedDataTypeContext); + } + public jsonOnEmpty(): JsonOnEmptyContext | undefined { + return this.tryGetRuleContext(0, JsonOnEmptyContext); + } + public jsonOnError(): JsonOnErrorContext | undefined { + return this.tryGetRuleContext(0, JsonOnErrorContext); + } + constructor(ctx: SpecificFunctionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonValueFunctionCall) { + listener.enterJsonValueFunctionCall(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonValueFunctionCall) { + listener.exitJsonValueFunctionCall(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonValueFunctionCall) { + return visitor.visitJsonValueFunctionCall(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CaseFuncAlternativeContext extends ParserRuleContext { + public _condition!: FunctionArgContext; + public _consequent!: FunctionArgContext; + public KW_WHEN(): TerminalNode { return this.getToken(MySqlParser.KW_WHEN, 0); } + public KW_THEN(): TerminalNode { return this.getToken(MySqlParser.KW_THEN, 0); } + public functionArg(): FunctionArgContext[]; + public functionArg(i: number): FunctionArgContext; + public functionArg(i?: number): FunctionArgContext | FunctionArgContext[] { + if (i === undefined) { + return this.getRuleContexts(FunctionArgContext); + } else { + return this.getRuleContext(i, FunctionArgContext); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_caseFuncAlternative; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCaseFuncAlternative) { + listener.enterCaseFuncAlternative(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCaseFuncAlternative) { + listener.exitCaseFuncAlternative(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCaseFuncAlternative) { + return visitor.visitCaseFuncAlternative(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LevelsInWeightStringContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_levelsInWeightString; } + public copyFrom(ctx: LevelsInWeightStringContext): void { + super.copyFrom(ctx); + } +} +export class LevelWeightListContext extends LevelsInWeightStringContext { + public KW_LEVEL(): TerminalNode { return this.getToken(MySqlParser.KW_LEVEL, 0); } + public levelInWeightListElement(): LevelInWeightListElementContext[]; + public levelInWeightListElement(i: number): LevelInWeightListElementContext; + public levelInWeightListElement(i?: number): LevelInWeightListElementContext | LevelInWeightListElementContext[] { + if (i === undefined) { + return this.getRuleContexts(LevelInWeightListElementContext); + } else { + return this.getRuleContext(i, LevelInWeightListElementContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: LevelsInWeightStringContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLevelWeightList) { + listener.enterLevelWeightList(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLevelWeightList) { + listener.exitLevelWeightList(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLevelWeightList) { + return visitor.visitLevelWeightList(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class LevelWeightRangeContext extends LevelsInWeightStringContext { + public _firstLevel!: DecimalLiteralContext; + public _lastLevel!: DecimalLiteralContext; + public KW_LEVEL(): TerminalNode { return this.getToken(MySqlParser.KW_LEVEL, 0); } + public MINUS(): TerminalNode { return this.getToken(MySqlParser.MINUS, 0); } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + constructor(ctx: LevelsInWeightStringContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLevelWeightRange) { + listener.enterLevelWeightRange(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLevelWeightRange) { + listener.exitLevelWeightRange(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLevelWeightRange) { + return visitor.visitLevelWeightRange(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LevelInWeightListElementContext extends ParserRuleContext { + public _orderType!: Token; + public decimalLiteral(): DecimalLiteralContext { + return this.getRuleContext(0, DecimalLiteralContext); + } + public KW_ASC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASC, 0); } + public KW_DESC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DESC, 0); } + public KW_REVERSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REVERSE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_levelInWeightListElement; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLevelInWeightListElement) { + listener.enterLevelInWeightListElement(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLevelInWeightListElement) { + listener.exitLevelInWeightListElement(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLevelInWeightListElement) { + return visitor.visitLevelInWeightListElement(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class AggregateWindowedFunctionContext extends ParserRuleContext { + public _aggregator!: Token; + public _starArg!: Token; + public _separator!: Token; + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public functionArg(): FunctionArgContext | undefined { + return this.tryGetRuleContext(0, FunctionArgContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_AVG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AVG, 0); } + public KW_MAX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX, 0); } + public KW_MIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIN, 0); } + public KW_SUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUM, 0); } + public overClause(): OverClauseContext | undefined { + return this.tryGetRuleContext(0, OverClauseContext); + } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_DISTINCT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISTINCT, 0); } + public KW_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COUNT, 0); } + public functionArgs(): FunctionArgsContext | undefined { + return this.tryGetRuleContext(0, FunctionArgsContext); + } + public STAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STAR, 0); } + public KW_BIT_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_AND, 0); } + public KW_BIT_OR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_OR, 0); } + public KW_BIT_XOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_XOR, 0); } + public KW_STD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STD, 0); } + public KW_STDDEV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV, 0); } + public KW_STDDEV_POP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV_POP, 0); } + public KW_STDDEV_SAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV_SAMP, 0); } + public KW_VAR_POP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VAR_POP, 0); } + public KW_VAR_SAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VAR_SAMP, 0); } + public KW_VARIANCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARIANCE, 0); } + public KW_GROUP_CONCAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP_CONCAT, 0); } + public KW_ORDER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDER, 0); } + public KW_BY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BY, 0); } + public orderByExpression(): OrderByExpressionContext[]; + public orderByExpression(i: number): OrderByExpressionContext; + public orderByExpression(i?: number): OrderByExpressionContext | OrderByExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(OrderByExpressionContext); + } else { + return this.getRuleContext(i, OrderByExpressionContext); + } + } + public KW_SEPARATOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SEPARATOR, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_aggregateWindowedFunction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterAggregateWindowedFunction) { + listener.enterAggregateWindowedFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitAggregateWindowedFunction) { + listener.exitAggregateWindowedFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitAggregateWindowedFunction) { + return visitor.visitAggregateWindowedFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class NonAggregateWindowedFunctionContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public overClause(): OverClauseContext { + return this.getRuleContext(0, OverClauseContext); + } + public KW_LAG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAG, 0); } + public KW_LEAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEAD, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + public decimalLiteral(): DecimalLiteralContext[]; + public decimalLiteral(i: number): DecimalLiteralContext; + public decimalLiteral(i?: number): DecimalLiteralContext | DecimalLiteralContext[] { + if (i === undefined) { + return this.getRuleContexts(DecimalLiteralContext); + } else { + return this.getRuleContext(i, DecimalLiteralContext); + } + } + public KW_FIRST_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST_VALUE, 0); } + public KW_LAST_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAST_VALUE, 0); } + public KW_CUME_DIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CUME_DIST, 0); } + public KW_DENSE_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DENSE_RANK, 0); } + public KW_PERCENT_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERCENT_RANK, 0); } + public KW_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANK, 0); } + public KW_ROW_NUMBER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW_NUMBER, 0); } + public KW_NTH_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NTH_VALUE, 0); } + public KW_NTILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NTILE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_nonAggregateWindowedFunction; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNonAggregateWindowedFunction) { + listener.enterNonAggregateWindowedFunction(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNonAggregateWindowedFunction) { + listener.exitNonAggregateWindowedFunction(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNonAggregateWindowedFunction) { + return visitor.visitNonAggregateWindowedFunction(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class OverClauseContext extends ParserRuleContext { + public KW_OVER(): TerminalNode { return this.getToken(MySqlParser.KW_OVER, 0); } + public LR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LR_BRACKET, 0); } + public windowSpec(): WindowSpecContext | undefined { + return this.tryGetRuleContext(0, WindowSpecContext); + } + public RR_BRACKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.RR_BRACKET, 0); } + public windowName(): WindowNameContext | undefined { + return this.tryGetRuleContext(0, WindowNameContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_overClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterOverClause) { + listener.enterOverClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitOverClause) { + listener.exitOverClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitOverClause) { + return visitor.visitOverClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WindowSpecContext extends ParserRuleContext { + public windowName(): WindowNameContext | undefined { + return this.tryGetRuleContext(0, WindowNameContext); + } + public partitionClause(): PartitionClauseContext | undefined { + return this.tryGetRuleContext(0, PartitionClauseContext); + } + public orderByClause(): OrderByClauseContext | undefined { + return this.tryGetRuleContext(0, OrderByClauseContext); + } + public frameClause(): FrameClauseContext | undefined { + return this.tryGetRuleContext(0, FrameClauseContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_windowSpec; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWindowSpec) { + listener.enterWindowSpec(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWindowSpec) { + listener.exitWindowSpec(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWindowSpec) { + return visitor.visitWindowSpec(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class WindowNameContext extends ParserRuleContext { + public uid(): UidContext { + return this.getRuleContext(0, UidContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_windowName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterWindowName) { + listener.enterWindowName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitWindowName) { + listener.exitWindowName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitWindowName) { + return visitor.visitWindowName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FrameClauseContext extends ParserRuleContext { + public frameUnits(): FrameUnitsContext { + return this.getRuleContext(0, FrameUnitsContext); + } + public frameExtent(): FrameExtentContext { + return this.getRuleContext(0, FrameExtentContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_frameClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFrameClause) { + listener.enterFrameClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFrameClause) { + listener.exitFrameClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFrameClause) { + return visitor.visitFrameClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FrameUnitsContext extends ParserRuleContext { + public KW_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROWS, 0); } + public KW_RANGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANGE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_frameUnits; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFrameUnits) { + listener.enterFrameUnits(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFrameUnits) { + listener.exitFrameUnits(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFrameUnits) { + return visitor.visitFrameUnits(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FrameExtentContext extends ParserRuleContext { + public frameRange(): FrameRangeContext | undefined { + return this.tryGetRuleContext(0, FrameRangeContext); + } + public frameBetween(): FrameBetweenContext | undefined { + return this.tryGetRuleContext(0, FrameBetweenContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_frameExtent; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFrameExtent) { + listener.enterFrameExtent(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFrameExtent) { + listener.exitFrameExtent(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFrameExtent) { + return visitor.visitFrameExtent(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FrameBetweenContext extends ParserRuleContext { + public KW_BETWEEN(): TerminalNode { return this.getToken(MySqlParser.KW_BETWEEN, 0); } + public frameRange(): FrameRangeContext[]; + public frameRange(i: number): FrameRangeContext; + public frameRange(i?: number): FrameRangeContext | FrameRangeContext[] { + if (i === undefined) { + return this.getRuleContexts(FrameRangeContext); + } else { + return this.getRuleContext(i, FrameRangeContext); + } + } + public KW_AND(): TerminalNode { return this.getToken(MySqlParser.KW_AND, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_frameBetween; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFrameBetween) { + listener.enterFrameBetween(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFrameBetween) { + listener.exitFrameBetween(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFrameBetween) { + return visitor.visitFrameBetween(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FrameRangeContext extends ParserRuleContext { + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + public KW_ROW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW, 0); } + public KW_UNBOUNDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNBOUNDED, 0); } + public KW_PRECEDING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRECEDING, 0); } + public KW_FOLLOWING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOLLOWING, 0); } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_frameRange; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFrameRange) { + listener.enterFrameRange(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFrameRange) { + listener.exitFrameRange(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFrameRange) { + return visitor.visitFrameRange(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PartitionClauseContext extends ParserRuleContext { + public KW_PARTITION(): TerminalNode { return this.getToken(MySqlParser.KW_PARTITION, 0); } + public KW_BY(): TerminalNode { return this.getToken(MySqlParser.KW_BY, 0); } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_partitionClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPartitionClause) { + listener.enterPartitionClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPartitionClause) { + listener.exitPartitionClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPartitionClause) { + return visitor.visitPartitionClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ScalarFunctionNameContext extends ParserRuleContext { + public functionNameBase(): FunctionNameBaseContext | undefined { + return this.tryGetRuleContext(0, FunctionNameBaseContext); + } + public KW_ASCII(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASCII, 0); } + public KW_CURDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURDATE, 0); } + public KW_CURRENT_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_DATE, 0); } + public KW_CURRENT_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIME, 0); } + public KW_CURRENT_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_TIMESTAMP, 0); } + public KW_CURTIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURTIME, 0); } + public KW_DATE_ADD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE_ADD, 0); } + public KW_DATE_SUB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE_SUB, 0); } + public KW_IF(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IF, 0); } + public KW_INSERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSERT, 0); } + public KW_LOCALTIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCALTIME, 0); } + public KW_LOCALTIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCALTIMESTAMP, 0); } + public KW_MID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MID, 0); } + public KW_NOW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOW, 0); } + public KW_REPEAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPEAT, 0); } + public KW_REPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLACE, 0); } + public KW_SUBSTR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBSTR, 0); } + public KW_SUBSTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBSTRING, 0); } + public KW_SYSDATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSDATE, 0); } + public KW_TRIM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRIM, 0); } + public KW_UTC_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTC_DATE, 0); } + public KW_UTC_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTC_TIME, 0); } + public KW_UTC_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTC_TIMESTAMP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_scalarFunctionName; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterScalarFunctionName) { + listener.enterScalarFunctionName(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitScalarFunctionName) { + listener.exitScalarFunctionName(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitScalarFunctionName) { + return visitor.visitScalarFunctionName(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PasswordFunctionClauseContext extends ParserRuleContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public functionArg(): FunctionArgContext { + return this.getRuleContext(0, FunctionArgContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_OLD_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OLD_PASSWORD, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_passwordFunctionClause; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPasswordFunctionClause) { + listener.enterPasswordFunctionClause(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPasswordFunctionClause) { + listener.exitPasswordFunctionClause(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPasswordFunctionClause) { + return visitor.visitPasswordFunctionClause(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionArgsContext extends ParserRuleContext { + public functionArg(): FunctionArgContext[]; + public functionArg(i: number): FunctionArgContext; + public functionArg(i?: number): FunctionArgContext | FunctionArgContext[] { + if (i === undefined) { + return this.getRuleContexts(FunctionArgContext); + } else { + return this.getRuleContext(i, FunctionArgContext); + } + } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionArgs; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionArgs) { + listener.enterFunctionArgs(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionArgs) { + listener.exitFunctionArgs(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionArgs) { + return visitor.visitFunctionArgs(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionArgContext extends ParserRuleContext { + public constant(): ConstantContext | undefined { + return this.tryGetRuleContext(0, ConstantContext); + } + public columnName(): ColumnNameContext | undefined { + return this.tryGetRuleContext(0, ColumnNameContext); + } + public functionCall(): FunctionCallContext | undefined { + return this.tryGetRuleContext(0, FunctionCallContext); + } + public expression(): ExpressionContext | undefined { + return this.tryGetRuleContext(0, ExpressionContext); + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionArg; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionArg) { + listener.enterFunctionArg(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionArg) { + listener.exitFunctionArg(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionArg) { + return visitor.visitFunctionArg(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_expression; } + public copyFrom(ctx: ExpressionContext): void { + super.copyFrom(ctx); + } +} +export class NotExpressionContext extends ExpressionContext { + public _notOperator!: Token; + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EXCLAMATION_SYMBOL, 0); } + constructor(ctx: ExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNotExpression) { + listener.enterNotExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNotExpression) { + listener.exitNotExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNotExpression) { + return visitor.visitNotExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class LogicalExpressionContext extends ExpressionContext { + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public logicalOperator(): LogicalOperatorContext { + return this.getRuleContext(0, LogicalOperatorContext); + } + constructor(ctx: ExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLogicalExpression) { + listener.enterLogicalExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLogicalExpression) { + listener.exitLogicalExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLogicalExpression) { + return visitor.visitLogicalExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IsExpressionContext extends ExpressionContext { + public _testValue!: Token; + public predicate(): PredicateContext { + return this.getRuleContext(0, PredicateContext); + } + public KW_IS(): TerminalNode { return this.getToken(MySqlParser.KW_IS, 0); } + public KW_TRUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRUE, 0); } + public KW_FALSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FALSE, 0); } + public KW_UNKNOWN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNKNOWN, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(ctx: ExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIsExpression) { + listener.enterIsExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIsExpression) { + listener.exitIsExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIsExpression) { + return visitor.visitIsExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class PredicateExpressionContext extends ExpressionContext { + public predicate(): PredicateContext { + return this.getRuleContext(0, PredicateContext); + } + constructor(ctx: ExpressionContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPredicateExpression) { + listener.enterPredicateExpression(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPredicateExpression) { + listener.exitPredicateExpression(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPredicateExpression) { + return visitor.visitPredicateExpression(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PredicateContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_predicate; } + public copyFrom(ctx: PredicateContext): void { + super.copyFrom(ctx); + } +} +export class InPredicateContext extends PredicateContext { + public predicate(): PredicateContext { + return this.getRuleContext(0, PredicateContext); + } + public KW_IN(): TerminalNode { return this.getToken(MySqlParser.KW_IN, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public selectStatement(): SelectStatementContext | undefined { + return this.tryGetRuleContext(0, SelectStatementContext); + } + public expressions(): ExpressionsContext | undefined { + return this.tryGetRuleContext(0, ExpressionsContext); + } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterInPredicate) { + listener.enterInPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitInPredicate) { + listener.exitInPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitInPredicate) { + return visitor.visitInPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IsNullPredicateContext extends PredicateContext { + public predicate(): PredicateContext { + return this.getRuleContext(0, PredicateContext); + } + public KW_IS(): TerminalNode { return this.getToken(MySqlParser.KW_IS, 0); } + public nullNotnull(): NullNotnullContext { + return this.getRuleContext(0, NullNotnullContext); + } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIsNullPredicate) { + listener.enterIsNullPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIsNullPredicate) { + listener.exitIsNullPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIsNullPredicate) { + return visitor.visitIsNullPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class BinaryComparisonPredicateContext extends PredicateContext { + public _left!: PredicateContext; + public _right!: PredicateContext; + public comparisonOperator(): ComparisonOperatorContext { + return this.getRuleContext(0, ComparisonOperatorContext); + } + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBinaryComparisonPredicate) { + listener.enterBinaryComparisonPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBinaryComparisonPredicate) { + listener.exitBinaryComparisonPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBinaryComparisonPredicate) { + return visitor.visitBinaryComparisonPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SubqueryComparisonPredicateContext extends PredicateContext { + public _quantifier!: Token; + public predicate(): PredicateContext { + return this.getRuleContext(0, PredicateContext); + } + public comparisonOperator(): ComparisonOperatorContext { + return this.getRuleContext(0, ComparisonOperatorContext); + } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public KW_ALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALL, 0); } + public KW_ANY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ANY, 0); } + public KW_SOME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOME, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubqueryComparisonPredicate) { + listener.enterSubqueryComparisonPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubqueryComparisonPredicate) { + listener.exitSubqueryComparisonPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubqueryComparisonPredicate) { + return visitor.visitSubqueryComparisonPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class BetweenPredicateContext extends PredicateContext { + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + public KW_BETWEEN(): TerminalNode { return this.getToken(MySqlParser.KW_BETWEEN, 0); } + public KW_AND(): TerminalNode { return this.getToken(MySqlParser.KW_AND, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBetweenPredicate) { + listener.enterBetweenPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBetweenPredicate) { + listener.exitBetweenPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBetweenPredicate) { + return visitor.visitBetweenPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SoundsLikePredicateContext extends PredicateContext { + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + public KW_SOUNDS(): TerminalNode { return this.getToken(MySqlParser.KW_SOUNDS, 0); } + public KW_LIKE(): TerminalNode { return this.getToken(MySqlParser.KW_LIKE, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSoundsLikePredicate) { + listener.enterSoundsLikePredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSoundsLikePredicate) { + listener.exitSoundsLikePredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSoundsLikePredicate) { + return visitor.visitSoundsLikePredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class LikePredicateContext extends PredicateContext { + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + public KW_LIKE(): TerminalNode { return this.getToken(MySqlParser.KW_LIKE, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + public KW_ESCAPE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ESCAPE, 0); } + public STRING_LITERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STRING_LITERAL, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLikePredicate) { + listener.enterLikePredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLikePredicate) { + listener.exitLikePredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLikePredicate) { + return visitor.visitLikePredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class RegexpPredicateContext extends PredicateContext { + public _regex!: Token; + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + public KW_REGEXP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REGEXP, 0); } + public KW_RLIKE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RLIKE, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterRegexpPredicate) { + listener.enterRegexpPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitRegexpPredicate) { + listener.exitRegexpPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitRegexpPredicate) { + return visitor.visitRegexpPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class JsonMemberOfPredicateContext extends PredicateContext { + public predicate(): PredicateContext[]; + public predicate(i: number): PredicateContext; + public predicate(i?: number): PredicateContext | PredicateContext[] { + if (i === undefined) { + return this.getRuleContexts(PredicateContext); + } else { + return this.getRuleContext(i, PredicateContext); + } + } + public KW_MEMBER(): TerminalNode { return this.getToken(MySqlParser.KW_MEMBER, 0); } + public KW_OF(): TerminalNode { return this.getToken(MySqlParser.KW_OF, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonMemberOfPredicate) { + listener.enterJsonMemberOfPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonMemberOfPredicate) { + listener.exitJsonMemberOfPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonMemberOfPredicate) { + return visitor.visitJsonMemberOfPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ExpressionAtomPredicateContext extends PredicateContext { + public expressionAtom(): ExpressionAtomContext { + return this.getRuleContext(0, ExpressionAtomContext); + } + constructor(ctx: PredicateContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExpressionAtomPredicate) { + listener.enterExpressionAtomPredicate(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExpressionAtomPredicate) { + listener.exitExpressionAtomPredicate(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExpressionAtomPredicate) { + return visitor.visitExpressionAtomPredicate(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ExpressionAtomContext extends ParserRuleContext { + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_expressionAtom; } + public copyFrom(ctx: ExpressionAtomContext): void { + super.copyFrom(ctx); + } +} +export class ConstantExpressionAtomContext extends ExpressionAtomContext { + public constant(): ConstantContext { + return this.getRuleContext(0, ConstantContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterConstantExpressionAtom) { + listener.enterConstantExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitConstantExpressionAtom) { + listener.exitConstantExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitConstantExpressionAtom) { + return visitor.visitConstantExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ColumnNameExpressionAtomContext extends ExpressionAtomContext { + public columnName(): ColumnNameContext { + return this.getRuleContext(0, ColumnNameContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterColumnNameExpressionAtom) { + listener.enterColumnNameExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitColumnNameExpressionAtom) { + listener.exitColumnNameExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitColumnNameExpressionAtom) { + return visitor.visitColumnNameExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class FunctionCallExpressionAtomContext extends ExpressionAtomContext { + public functionCall(): FunctionCallContext { + return this.getRuleContext(0, FunctionCallContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionCallExpressionAtom) { + listener.enterFunctionCallExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionCallExpressionAtom) { + listener.exitFunctionCallExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionCallExpressionAtom) { + return visitor.visitFunctionCallExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class CollateExpressionAtomContext extends ExpressionAtomContext { + public expressionAtom(): ExpressionAtomContext { + return this.getRuleContext(0, ExpressionAtomContext); + } + public KW_COLLATE(): TerminalNode { return this.getToken(MySqlParser.KW_COLLATE, 0); } + public collationName(): CollationNameContext { + return this.getRuleContext(0, CollationNameContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCollateExpressionAtom) { + listener.enterCollateExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCollateExpressionAtom) { + listener.exitCollateExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCollateExpressionAtom) { + return visitor.visitCollateExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MysqlVariableExpressionAtomContext extends ExpressionAtomContext { + public mysqlVariable(): MysqlVariableContext { + return this.getRuleContext(0, MysqlVariableContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMysqlVariableExpressionAtom) { + listener.enterMysqlVariableExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMysqlVariableExpressionAtom) { + listener.exitMysqlVariableExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMysqlVariableExpressionAtom) { + return visitor.visitMysqlVariableExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class UnaryExpressionAtomContext extends ExpressionAtomContext { + public unaryOperator(): UnaryOperatorContext { + return this.getRuleContext(0, UnaryOperatorContext); + } + public expressionAtom(): ExpressionAtomContext { + return this.getRuleContext(0, ExpressionAtomContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnaryExpressionAtom) { + listener.enterUnaryExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnaryExpressionAtom) { + listener.exitUnaryExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnaryExpressionAtom) { + return visitor.visitUnaryExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class BinaryExpressionAtomContext extends ExpressionAtomContext { + public KW_BINARY(): TerminalNode { return this.getToken(MySqlParser.KW_BINARY, 0); } + public expressionAtom(): ExpressionAtomContext { + return this.getRuleContext(0, ExpressionAtomContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBinaryExpressionAtom) { + listener.enterBinaryExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBinaryExpressionAtom) { + listener.exitBinaryExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBinaryExpressionAtom) { + return visitor.visitBinaryExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class VariableAssignExpressionAtomContext extends ExpressionAtomContext { + public LOCAL_ID(): TerminalNode { return this.getToken(MySqlParser.LOCAL_ID, 0); } + public VAR_ASSIGN(): TerminalNode { return this.getToken(MySqlParser.VAR_ASSIGN, 0); } + public expressionAtom(): ExpressionAtomContext { + return this.getRuleContext(0, ExpressionAtomContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterVariableAssignExpressionAtom) { + listener.enterVariableAssignExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitVariableAssignExpressionAtom) { + listener.exitVariableAssignExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitVariableAssignExpressionAtom) { + return visitor.visitVariableAssignExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NestedExpressionAtomContext extends ExpressionAtomContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNestedExpressionAtom) { + listener.enterNestedExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNestedExpressionAtom) { + listener.exitNestedExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNestedExpressionAtom) { + return visitor.visitNestedExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class NestedRowExpressionAtomContext extends ExpressionAtomContext { + public KW_ROW(): TerminalNode { return this.getToken(MySqlParser.KW_ROW, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public expression(): ExpressionContext[]; + public expression(i: number): ExpressionContext; + public expression(i?: number): ExpressionContext | ExpressionContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionContext); + } else { + return this.getRuleContext(i, ExpressionContext); + } + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + public COMMA(): TerminalNode[]; + public COMMA(i: number): TerminalNode; + public COMMA(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.COMMA); + } else { + return this.getToken(MySqlParser.COMMA, i); + } + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterNestedRowExpressionAtom) { + listener.enterNestedRowExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitNestedRowExpressionAtom) { + listener.exitNestedRowExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitNestedRowExpressionAtom) { + return visitor.visitNestedRowExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class ExistsExpressionAtomContext extends ExpressionAtomContext { + public KW_EXISTS(): TerminalNode { return this.getToken(MySqlParser.KW_EXISTS, 0); } + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterExistsExpressionAtom) { + listener.enterExistsExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitExistsExpressionAtom) { + listener.exitExistsExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitExistsExpressionAtom) { + return visitor.visitExistsExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class SubqueryExpressionAtomContext extends ExpressionAtomContext { + public LR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.LR_BRACKET, 0); } + public selectStatement(): SelectStatementContext { + return this.getRuleContext(0, SelectStatementContext); + } + public RR_BRACKET(): TerminalNode { return this.getToken(MySqlParser.RR_BRACKET, 0); } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterSubqueryExpressionAtom) { + listener.enterSubqueryExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitSubqueryExpressionAtom) { + listener.exitSubqueryExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitSubqueryExpressionAtom) { + return visitor.visitSubqueryExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class IntervalExpressionAtomContext extends ExpressionAtomContext { + public KW_INTERVAL(): TerminalNode { return this.getToken(MySqlParser.KW_INTERVAL, 0); } + public expression(): ExpressionContext { + return this.getRuleContext(0, ExpressionContext); + } + public intervalType(): IntervalTypeContext { + return this.getRuleContext(0, IntervalTypeContext); + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIntervalExpressionAtom) { + listener.enterIntervalExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIntervalExpressionAtom) { + listener.exitIntervalExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIntervalExpressionAtom) { + return visitor.visitIntervalExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class BitExpressionAtomContext extends ExpressionAtomContext { + public _left!: ExpressionAtomContext; + public _right!: ExpressionAtomContext; + public bitOperator(): BitOperatorContext { + return this.getRuleContext(0, BitOperatorContext); + } + public expressionAtom(): ExpressionAtomContext[]; + public expressionAtom(i: number): ExpressionAtomContext; + public expressionAtom(i?: number): ExpressionAtomContext | ExpressionAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionAtomContext); + } else { + return this.getRuleContext(i, ExpressionAtomContext); + } + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBitExpressionAtom) { + listener.enterBitExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBitExpressionAtom) { + listener.exitBitExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBitExpressionAtom) { + return visitor.visitBitExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class MathExpressionAtomContext extends ExpressionAtomContext { + public _left!: ExpressionAtomContext; + public _right!: ExpressionAtomContext; + public mathOperator(): MathOperatorContext { + return this.getRuleContext(0, MathOperatorContext); + } + public expressionAtom(): ExpressionAtomContext[]; + public expressionAtom(i: number): ExpressionAtomContext; + public expressionAtom(i?: number): ExpressionAtomContext | ExpressionAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionAtomContext); + } else { + return this.getRuleContext(i, ExpressionAtomContext); + } + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMathExpressionAtom) { + listener.enterMathExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMathExpressionAtom) { + listener.exitMathExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMathExpressionAtom) { + return visitor.visitMathExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} +export class JsonExpressionAtomContext extends ExpressionAtomContext { + public _left!: ExpressionAtomContext; + public _right!: ExpressionAtomContext; + public jsonOperator(): JsonOperatorContext { + return this.getRuleContext(0, JsonOperatorContext); + } + public expressionAtom(): ExpressionAtomContext[]; + public expressionAtom(i: number): ExpressionAtomContext; + public expressionAtom(i?: number): ExpressionAtomContext | ExpressionAtomContext[] { + if (i === undefined) { + return this.getRuleContexts(ExpressionAtomContext); + } else { + return this.getRuleContext(i, ExpressionAtomContext); + } + } + constructor(ctx: ExpressionAtomContext) { + super(ctx.parent, ctx.invokingState); + this.copyFrom(ctx); + } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonExpressionAtom) { + listener.enterJsonExpressionAtom(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonExpressionAtom) { + listener.exitJsonExpressionAtom(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonExpressionAtom) { + return visitor.visitJsonExpressionAtom(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class UnaryOperatorContext extends ParserRuleContext { + public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EXCLAMATION_SYMBOL, 0); } + public BIT_NOT_OP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_NOT_OP, 0); } + public PLUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.PLUS, 0); } + public MINUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MINUS, 0); } + public KW_NOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_unaryOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterUnaryOperator) { + listener.enterUnaryOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitUnaryOperator) { + listener.exitUnaryOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitUnaryOperator) { + return visitor.visitUnaryOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ComparisonOperatorContext extends ParserRuleContext { + public comparisonBase(): ComparisonBaseContext | undefined { + return this.tryGetRuleContext(0, ComparisonBaseContext); + } + public LESS_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LESS_SYMBOL, 0); } + public GREATER_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GREATER_SYMBOL, 0); } + public EXCLAMATION_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EXCLAMATION_SYMBOL, 0); } + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_comparisonOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterComparisonOperator) { + listener.enterComparisonOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitComparisonOperator) { + listener.exitComparisonOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitComparisonOperator) { + return visitor.visitComparisonOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class ComparisonBaseContext extends ParserRuleContext { + public EQUAL_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.EQUAL_SYMBOL, 0); } + public GREATER_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.GREATER_SYMBOL, 0); } + public LESS_SYMBOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.LESS_SYMBOL, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_comparisonBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterComparisonBase) { + listener.enterComparisonBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitComparisonBase) { + listener.exitComparisonBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitComparisonBase) { + return visitor.visitComparisonBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class LogicalOperatorContext extends ParserRuleContext { + public KW_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AND, 0); } + public BIT_AND_OP(): TerminalNode[]; + public BIT_AND_OP(i: number): TerminalNode; + public BIT_AND_OP(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.BIT_AND_OP); + } else { + return this.getToken(MySqlParser.BIT_AND_OP, i); + } + } + public KW_XOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_XOR, 0); } + public KW_OR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OR, 0); } + public BIT_OR_OP(): TerminalNode[]; + public BIT_OR_OP(i: number): TerminalNode; + public BIT_OR_OP(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.BIT_OR_OP); + } else { + return this.getToken(MySqlParser.BIT_OR_OP, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_logicalOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterLogicalOperator) { + listener.enterLogicalOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitLogicalOperator) { + listener.exitLogicalOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitLogicalOperator) { + return visitor.visitLogicalOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class BitOperatorContext extends ParserRuleContext { + public LESS_SYMBOL(): TerminalNode[]; + public LESS_SYMBOL(i: number): TerminalNode; + public LESS_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.LESS_SYMBOL); + } else { + return this.getToken(MySqlParser.LESS_SYMBOL, i); + } + } + public GREATER_SYMBOL(): TerminalNode[]; + public GREATER_SYMBOL(i: number): TerminalNode; + public GREATER_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.GREATER_SYMBOL); + } else { + return this.getToken(MySqlParser.GREATER_SYMBOL, i); + } + } + public BIT_AND_OP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_AND_OP, 0); } + public BIT_XOR_OP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_XOR_OP, 0); } + public BIT_OR_OP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.BIT_OR_OP, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_bitOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterBitOperator) { + listener.enterBitOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitBitOperator) { + listener.exitBitOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitBitOperator) { + return visitor.visitBitOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class MathOperatorContext extends ParserRuleContext { + public STAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.STAR, 0); } + public DIVIDE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DIVIDE, 0); } + public MODULE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MODULE, 0); } + public DIV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.DIV, 0); } + public MOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MOD, 0); } + public PLUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.PLUS, 0); } + public MINUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MINUS, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_mathOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterMathOperator) { + listener.enterMathOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitMathOperator) { + listener.exitMathOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitMathOperator) { + return visitor.visitMathOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class JsonOperatorContext extends ParserRuleContext { + public MINUS(): TerminalNode { return this.getToken(MySqlParser.MINUS, 0); } + public GREATER_SYMBOL(): TerminalNode[]; + public GREATER_SYMBOL(i: number): TerminalNode; + public GREATER_SYMBOL(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(MySqlParser.GREATER_SYMBOL); + } else { + return this.getToken(MySqlParser.GREATER_SYMBOL, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_jsonOperator; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterJsonOperator) { + listener.enterJsonOperator(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitJsonOperator) { + listener.exitJsonOperator(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitJsonOperator) { + return visitor.visitJsonOperator(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class CharsetNameBaseContext extends ParserRuleContext { + public KW_ARMSCII8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ARMSCII8, 0); } + public KW_ASCII(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ASCII, 0); } + public KW_BIG5(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIG5, 0); } + public KW_BINARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINARY, 0); } + public KW_CP1250(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP1250, 0); } + public KW_CP1251(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP1251, 0); } + public KW_CP1256(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP1256, 0); } + public KW_CP1257(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP1257, 0); } + public KW_CP850(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP850, 0); } + public KW_CP852(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP852, 0); } + public KW_CP866(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP866, 0); } + public KW_CP932(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CP932, 0); } + public KW_DEC8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEC8, 0); } + public KW_EUCJPMS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EUCJPMS, 0); } + public KW_EUCKR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EUCKR, 0); } + public KW_GB18030(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GB18030, 0); } + public KW_GB2312(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GB2312, 0); } + public KW_GBK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GBK, 0); } + public KW_GEOSTD8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GEOSTD8, 0); } + public KW_GREEK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GREEK, 0); } + public KW_HEBREW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HEBREW, 0); } + public KW_HP8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HP8, 0); } + public KW_KEYBCS2(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEYBCS2, 0); } + public KW_KOI8R(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KOI8R, 0); } + public KW_KOI8U(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KOI8U, 0); } + public KW_LATIN1(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATIN1, 0); } + public KW_LATIN2(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATIN2, 0); } + public KW_LATIN5(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATIN5, 0); } + public KW_LATIN7(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATIN7, 0); } + public KW_MACCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MACCE, 0); } + public KW_MACROMAN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MACROMAN, 0); } + public KW_SJIS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SJIS, 0); } + public KW_SWE7(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SWE7, 0); } + public KW_TIS620(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIS620, 0); } + public KW_UCS2(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UCS2, 0); } + public KW_UJIS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UJIS, 0); } + public KW_UTF16(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF16, 0); } + public KW_UTF16LE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF16LE, 0); } + public KW_UTF32(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF32, 0); } + public KW_UTF8(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF8, 0); } + public KW_UTF8MB3(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF8MB3, 0); } + public KW_UTF8MB4(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UTF8MB4, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_charsetNameBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterCharsetNameBase) { + listener.enterCharsetNameBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitCharsetNameBase) { + listener.exitCharsetNameBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitCharsetNameBase) { + return visitor.visitCharsetNameBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class TransactionLevelBaseContext extends ParserRuleContext { + public KW_REPEATABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPEATABLE, 0); } + public KW_COMMITTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMITTED, 0); } + public KW_UNCOMMITTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNCOMMITTED, 0); } + public KW_SERIALIZABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERIALIZABLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_transactionLevelBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterTransactionLevelBase) { + listener.enterTransactionLevelBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitTransactionLevelBase) { + listener.exitTransactionLevelBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitTransactionLevelBase) { + return visitor.visitTransactionLevelBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class PrivilegesBaseContext extends ParserRuleContext { + public KW_TABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLES, 0); } + public KW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROUTINE, 0); } + public KW_EXECUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXECUTE, 0); } + public KW_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FILE, 0); } + public KW_PROCESS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCESS, 0); } + public KW_RELOAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELOAD, 0); } + public KW_SHUTDOWN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHUTDOWN, 0); } + public KW_SUPER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUPER, 0); } + public KW_PRIVILEGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIVILEGES, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_privilegesBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterPrivilegesBase) { + listener.enterPrivilegesBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitPrivilegesBase) { + listener.exitPrivilegesBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitPrivilegesBase) { + return visitor.visitPrivilegesBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class IntervalTypeBaseContext extends ParserRuleContext { + public KW_QUARTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUARTER, 0); } + public KW_MONTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MONTH, 0); } + public KW_DAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY, 0); } + public KW_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOUR, 0); } + public KW_MINUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MINUTE, 0); } + public KW_WEEK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WEEK, 0); } + public KW_SECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECOND, 0); } + public KW_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MICROSECOND, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_intervalTypeBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterIntervalTypeBase) { + listener.enterIntervalTypeBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitIntervalTypeBase) { + listener.exitIntervalTypeBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitIntervalTypeBase) { + return visitor.visitIntervalTypeBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class DataTypeBaseContext extends ParserRuleContext { + public KW_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE, 0); } + public KW_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIME, 0); } + public KW_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIMESTAMP, 0); } + public KW_DATETIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATETIME, 0); } + public KW_YEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_YEAR, 0); } + public KW_ENUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENUM, 0); } + public KW_TEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEXT, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_dataTypeBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterDataTypeBase) { + listener.enterDataTypeBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitDataTypeBase) { + listener.exitDataTypeBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitDataTypeBase) { + return visitor.visitDataTypeBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class KeywordsCanBeIdContext extends ParserRuleContext { + public KW_ACCOUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ACCOUNT, 0); } + public KW_ACTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ACTION, 0); } + public KW_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ADMIN, 0); } + public KW_AFTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AFTER, 0); } + public KW_AGGREGATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AGGREGATE, 0); } + public KW_ALGORITHM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ALGORITHM, 0); } + public KW_ANY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ANY, 0); } + public KW_ARRAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ARRAY, 0); } + public KW_AT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AT, 0); } + public KW_AUDIT_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUDIT_ADMIN, 0); } + public KW_AUDIT_ABORT_EXEMPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUDIT_ABORT_EXEMPT, 0); } + public KW_AUTHORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTHORS, 0); } + public KW_AUTOCOMMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTOCOMMIT, 0); } + public KW_AUTOEXTEND_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTOEXTEND_SIZE, 0); } + public KW_AUTO_INCREMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTO_INCREMENT, 0); } + public KW_AUTHENTICATION_POLICY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AUTHENTICATION_POLICY_ADMIN, 0); } + public KW_AVG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AVG, 0); } + public KW_AVG_ROW_LENGTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_AVG_ROW_LENGTH, 0); } + public KW_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ATTRIBUTE, 0); } + public KW_BACKUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BACKUP_ADMIN, 0); } + public KW_BEGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BEGIN, 0); } + public KW_BINLOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG, 0); } + public KW_BINLOG_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG_ADMIN, 0); } + public KW_BINLOG_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BINLOG_ENCRYPTION_ADMIN, 0); } + public KW_BIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT, 0); } + public KW_BIT_AND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_AND, 0); } + public KW_BIT_OR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_OR, 0); } + public KW_BIT_XOR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BIT_XOR, 0); } + public KW_BLOCK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BLOCK, 0); } + public KW_BOOL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BOOL, 0); } + public KW_BOOLEAN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BOOLEAN, 0); } + public KW_BTREE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BTREE, 0); } + public KW_BUCKETS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_BUCKETS, 0); } + public KW_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CACHE, 0); } + public KW_CASCADED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CASCADED, 0); } + public KW_CHAIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHAIN, 0); } + public KW_CHANGED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHANGED, 0); } + public KW_CHANNEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHANNEL, 0); } + public KW_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHECKSUM, 0); } + public KW_PAGE_CHECKSUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE_CHECKSUM, 0); } + public KW_CATALOG_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CATALOG_NAME, 0); } + public KW_CIPHER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CIPHER, 0); } + public KW_CLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLASS_ORIGIN, 0); } + public KW_CLIENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLIENT, 0); } + public KW_CLONE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLONE_ADMIN, 0); } + public KW_CLOSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CLOSE, 0); } + public KW_COALESCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COALESCE, 0); } + public KW_CODE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CODE, 0); } + public KW_COLUMNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMNS, 0); } + public KW_COLUMN_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN_FORMAT, 0); } + public KW_COLUMN_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLUMN_NAME, 0); } + public KW_COMMENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMENT, 0); } + public KW_COMMIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMMIT, 0); } + public KW_COMPACT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPACT, 0); } + public KW_COMPLETION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPLETION, 0); } + public KW_COMPRESSED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPRESSED, 0); } + public KW_COMPRESSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COMPRESSION, 0); } + public KW_CONCURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONCURRENT, 0); } + public KW_CONDITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONDITION, 0); } + public KW_CONNECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECT, 0); } + public KW_CONNECTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECTION, 0); } + public KW_CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONNECTION_ADMIN, 0); } + public KW_CONSISTENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSISTENT, 0); } + public KW_CONSTRAINT_CATALOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_CATALOG, 0); } + public KW_CONSTRAINT_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_NAME, 0); } + public KW_CONSTRAINT_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONSTRAINT_SCHEMA, 0); } + public KW_CONTAINS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTAINS, 0); } + public KW_CONTEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTEXT, 0); } + public KW_CONTRIBUTORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CONTRIBUTORS, 0); } + public KW_COPY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COPY, 0); } + public KW_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COUNT, 0); } + public KW_CPU(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CPU, 0); } + public KW_CURRENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT, 0); } + public KW_CURRENT_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURRENT_USER, 0); } + public KW_CURSOR_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CURSOR_NAME, 0); } + public KW_DATA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATA, 0); } + public KW_DATAFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATAFILE, 0); } + public KW_DEALLOCATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEALLOCATE, 0); } + public KW_DEFAULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT, 0); } + public KW_DEFAULT_AUTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFAULT_AUTH, 0); } + public KW_DEFINER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DEFINER, 0); } + public KW_DELAY_KEY_WRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DELAY_KEY_WRITE, 0); } + public KW_DES_KEY_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DES_KEY_FILE, 0); } + public KW_DIAGNOSTICS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DIAGNOSTICS, 0); } + public KW_DIRECTORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DIRECTORY, 0); } + public KW_DISABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISABLE, 0); } + public KW_DISCARD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISCARD, 0); } + public KW_DISK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DISK, 0); } + public KW_DO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DO, 0); } + public KW_DUMPFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DUMPFILE, 0); } + public KW_DUPLICATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DUPLICATE, 0); } + public KW_DYNAMIC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DYNAMIC, 0); } + public KW_EMPTY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EMPTY, 0); } + public KW_ENABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENABLE, 0); } + public KW_ENCRYPTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCRYPTION, 0); } + public KW_ENCRYPTION_KEY_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENCRYPTION_KEY_ADMIN, 0); } + public KW_END(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_END, 0); } + public KW_ENDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENDS, 0); } + public KW_ENGINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE, 0); } + public KW_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINE_ATTRIBUTE, 0); } + public KW_ENGINES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENGINES, 0); } + public KW_ENFORCED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ENFORCED, 0); } + public KW_ERROR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERROR, 0); } + public KW_ERRORS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ERRORS, 0); } + public KW_ESCAPE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ESCAPE, 0); } + public KW_EVENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVENT, 0); } + public KW_EVENTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVENTS, 0); } + public KW_EVERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EVERY, 0); } + public KW_EXCEPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCEPT, 0); } + public KW_EXCHANGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCHANGE, 0); } + public KW_EXCLUSIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXCLUSIVE, 0); } + public KW_EXPIRE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPIRE, 0); } + public KW_EXPORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXPORT, 0); } + public KW_EXTENDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENDED, 0); } + public KW_EXTENT_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_EXTENT_SIZE, 0); } + public KW_FAILED_LOGIN_ATTEMPTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAILED_LOGIN_ATTEMPTS, 0); } + public KW_FAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAST, 0); } + public KW_FAULTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FAULTS, 0); } + public KW_FIELDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIELDS, 0); } + public KW_FILE_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FILE_BLOCK_SIZE, 0); } + public KW_FILTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FILTER, 0); } + public KW_FIREWALL_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_ADMIN, 0); } + public KW_FIREWALL_EXEMPT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_EXEMPT, 0); } + public KW_FIREWALL_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIREWALL_USER, 0); } + public KW_FIRST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST, 0); } + public KW_FIXED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIXED, 0); } + public KW_FLUSH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FLUSH, 0); } + public KW_FOLLOWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOLLOWS, 0); } + public KW_FOUND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FOUND, 0); } + public KW_FULL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FULL, 0); } + public KW_FUNCTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FUNCTION, 0); } + public KW_GENERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GENERAL, 0); } + public KW_GLOBAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GLOBAL, 0); } + public KW_GRANTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GRANTS, 0); } + public KW_GROUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP, 0); } + public KW_GROUP_CONCAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP_CONCAT, 0); } + public KW_GROUP_REPLICATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP_REPLICATION, 0); } + public KW_GROUP_REPLICATION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GROUP_REPLICATION_ADMIN, 0); } + public KW_HANDLER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HANDLER, 0); } + public KW_HASH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HASH, 0); } + public KW_HELP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HELP, 0); } + public KW_HISTORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HISTORY, 0); } + public KW_HOST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOST, 0); } + public KW_HOSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOSTS, 0); } + public KW_IDENTIFIED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IDENTIFIED, 0); } + public KW_IGNORE_SERVER_IDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IGNORE_SERVER_IDS, 0); } + public KW_IMPORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IMPORT, 0); } + public KW_INDEXES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INDEXES, 0); } + public KW_INITIAL_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INITIAL_SIZE, 0); } + public KW_INNODB_REDO_LOG_ARCHIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INNODB_REDO_LOG_ARCHIVE, 0); } + public KW_INPLACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INPLACE, 0); } + public KW_INSERT_METHOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSERT_METHOD, 0); } + public KW_INSTALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSTALL, 0); } + public KW_INSTANCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSTANCE, 0); } + public KW_INSTANT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INSTANT, 0); } + public KW_INVOKE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKE, 0); } + public KW_INVOKER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVOKER, 0); } + public KW_IO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IO, 0); } + public KW_IO_THREAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IO_THREAD, 0); } + public KW_IPC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_IPC, 0); } + public KW_ISOLATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ISOLATION, 0); } + public KW_ISSUER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ISSUER, 0); } + public KW_JSON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON, 0); } + public KW_KEY_BLOCK_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_KEY_BLOCK_SIZE, 0); } + public KW_LAMBDA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAMBDA, 0); } + public KW_LANGUAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LANGUAGE, 0); } + public KW_LAST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAST, 0); } + public KW_LATERAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LATERAL, 0); } + public KW_LEAVES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEAVES, 0); } + public KW_LESS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LESS, 0); } + public KW_LEVEL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEVEL, 0); } + public KW_LIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LIST, 0); } + public KW_LOCAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOCAL, 0); } + public KW_LOGFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOGFILE, 0); } + public KW_LOGS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LOGS, 0); } + public KW_MASTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER, 0); } + public KW_MASTER_AUTO_POSITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_AUTO_POSITION, 0); } + public KW_MASTER_CONNECT_RETRY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_CONNECT_RETRY, 0); } + public KW_MASTER_DELAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_DELAY, 0); } + public KW_MASTER_HEARTBEAT_PERIOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_HEARTBEAT_PERIOD, 0); } + public KW_MASTER_HOST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_HOST, 0); } + public KW_MASTER_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_LOG_FILE, 0); } + public KW_MASTER_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_LOG_POS, 0); } + public KW_MASTER_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_PASSWORD, 0); } + public KW_MASTER_PORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_PORT, 0); } + public KW_MASTER_RETRY_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_RETRY_COUNT, 0); } + public KW_MASTER_SSL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL, 0); } + public KW_MASTER_SSL_CA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CA, 0); } + public KW_MASTER_SSL_CAPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CAPATH, 0); } + public KW_MASTER_SSL_CERT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CERT, 0); } + public KW_MASTER_SSL_CIPHER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CIPHER, 0); } + public KW_MASTER_SSL_CRL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CRL, 0); } + public KW_MASTER_SSL_CRLPATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_CRLPATH, 0); } + public KW_MASTER_SSL_KEY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_SSL_KEY, 0); } + public KW_MASTER_TLS_VERSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_TLS_VERSION, 0); } + public KW_MASTER_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MASTER_USER, 0); } + public KW_MAX_CONNECTIONS_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_CONNECTIONS_PER_HOUR, 0); } + public KW_MAX_QUERIES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_QUERIES_PER_HOUR, 0); } + public KW_MAX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX, 0); } + public KW_MAX_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_ROWS, 0); } + public KW_MAX_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_SIZE, 0); } + public KW_MAX_UPDATES_PER_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_UPDATES_PER_HOUR, 0); } + public KW_MAX_USER_CONNECTIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MAX_USER_CONNECTIONS, 0); } + public KW_MEDIUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEDIUM, 0); } + public KW_MEMBER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMBER, 0); } + public KW_MEMORY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MEMORY, 0); } + public KW_MERGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MERGE, 0); } + public KW_MESSAGE_TEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MESSAGE_TEXT, 0); } + public KW_MID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MID, 0); } + public KW_MIGRATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIGRATE, 0); } + public KW_MIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIN, 0); } + public KW_MIN_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MIN_ROWS, 0); } + public KW_MODE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MODE, 0); } + public KW_MODIFY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MODIFY, 0); } + public KW_MUTEX(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MUTEX, 0); } + public KW_MYSQL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL, 0); } + public KW_MYSQL_ERRNO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MYSQL_ERRNO, 0); } + public KW_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NAME, 0); } + public KW_NAMES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NAMES, 0); } + public KW_NCHAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NCHAR, 0); } + public KW_NDB_STORED_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NDB_STORED_USER, 0); } + public KW_NESTED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NESTED, 0); } + public KW_NEVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEVER, 0); } + public KW_NEXT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NEXT, 0); } + public KW_NO(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NO, 0); } + public KW_NODEGROUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NODEGROUP, 0); } + public KW_NONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NONE, 0); } + public KW_NOWAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NOWAIT, 0); } + public KW_NUMBER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NUMBER, 0); } + public KW_ODBC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ODBC, 0); } + public KW_OFFLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFLINE, 0); } + public KW_OFFSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OFFSET, 0); } + public KW_OF(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OF, 0); } + public KW_OLD_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OLD_PASSWORD, 0); } + public KW_ONE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONE, 0); } + public KW_ONLINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLINE, 0); } + public KW_ONLY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ONLY, 0); } + public KW_OPEN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPEN, 0); } + public KW_OPTIMIZER_COSTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIMIZER_COSTS, 0); } + public KW_OPTIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIONAL, 0); } + public KW_OPTIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OPTIONS, 0); } + public KW_ORDER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDER, 0); } + public KW_ORDINALITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ORDINALITY, 0); } + public KW_OWNER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_OWNER, 0); } + public KW_PACK_KEYS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PACK_KEYS, 0); } + public KW_PAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PAGE, 0); } + public KW_PARSER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARSER, 0); } + public KW_PARTIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTIAL, 0); } + public KW_PARTITIONING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITIONING, 0); } + public KW_PARTITIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PARTITIONS, 0); } + public KW_PASSWORD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD, 0); } + public KW_PASSWORDLESS_USER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORDLESS_USER_ADMIN, 0); } + public KW_PASSWORD_LOCK_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PASSWORD_LOCK_TIME, 0); } + public KW_PATH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PATH, 0); } + public KW_PERSIST_RO_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERSIST_RO_VARIABLES_ADMIN, 0); } + public KW_PHASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PHASE, 0); } + public KW_PLUGINS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PLUGINS, 0); } + public KW_PLUGIN_DIR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PLUGIN_DIR, 0); } + public KW_PLUGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PLUGIN, 0); } + public KW_PORT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PORT, 0); } + public KW_PRECEDES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRECEDES, 0); } + public KW_PREPARE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PREPARE, 0); } + public KW_PRESERVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRESERVE, 0); } + public KW_PREV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PREV, 0); } + public KW_PRIMARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PRIMARY, 0); } + public KW_PROCESSLIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROCESSLIST, 0); } + public KW_PROFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROFILE, 0); } + public KW_PROFILES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROFILES, 0); } + public KW_PROXY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PROXY, 0); } + public KW_QUERY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUERY, 0); } + public KW_QUICK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUICK, 0); } + public KW_REBUILD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REBUILD, 0); } + public KW_RECOVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RECOVER, 0); } + public KW_RECURSIVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RECURSIVE, 0); } + public KW_REDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REDO_BUFFER_SIZE, 0); } + public KW_REDUNDANT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REDUNDANT, 0); } + public KW_RELAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY, 0); } + public KW_RELAYLOG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAYLOG, 0); } + public KW_RELAY_LOG_FILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_FILE, 0); } + public KW_RELAY_LOG_POS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RELAY_LOG_POS, 0); } + public KW_REMOVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REMOVE, 0); } + public KW_REORGANIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REORGANIZE, 0); } + public KW_REPAIR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPAIR, 0); } + public KW_REPLICATE_DO_DB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_DO_DB, 0); } + public KW_REPLICATE_DO_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_DO_TABLE, 0); } + public KW_REPLICATE_IGNORE_DB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_IGNORE_DB, 0); } + public KW_REPLICATE_IGNORE_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_IGNORE_TABLE, 0); } + public KW_REPLICATE_REWRITE_DB(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_REWRITE_DB, 0); } + public KW_REPLICATE_WILD_DO_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_WILD_DO_TABLE, 0); } + public KW_REPLICATE_WILD_IGNORE_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATE_WILD_IGNORE_TABLE, 0); } + public KW_REPLICATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION, 0); } + public KW_REPLICATION_APPLIER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION_APPLIER, 0); } + public KW_REPLICATION_SLAVE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REPLICATION_SLAVE_ADMIN, 0); } + public KW_RESET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESET, 0); } + public KW_RESOURCE_GROUP_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESOURCE_GROUP_ADMIN, 0); } + public KW_RESOURCE_GROUP_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESOURCE_GROUP_USER, 0); } + public KW_RESUME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RESUME, 0); } + public KW_RETURNED_SQLSTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETURNED_SQLSTATE, 0); } + public KW_RETURNS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RETURNS, 0); } + public KW_REUSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REUSE, 0); } + public KW_ROLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE, 0); } + public KW_ROLE_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLE_ADMIN, 0); } + public KW_ROLLBACK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLLBACK, 0); } + public KW_ROLLUP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROLLUP, 0); } + public KW_ROTATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROTATE, 0); } + public KW_ROW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW, 0); } + public KW_ROWS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROWS, 0); } + public KW_ROW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW_FORMAT, 0); } + public KW_S3(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_S3, 0); } + public KW_SAVEPOINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SAVEPOINT, 0); } + public KW_SCHEDULE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEDULE, 0); } + public KW_SCHEMA_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA_NAME, 0); } + public KW_SECURITY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECURITY, 0); } + public KW_SECONDARY_ENGINE_ATTRIBUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECONDARY_ENGINE_ATTRIBUTE, 0); } + public KW_SERIAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERIAL, 0); } + public KW_SERVER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SERVER, 0); } + public KW_SESSION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION, 0); } + public KW_SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION_VARIABLES_ADMIN, 0); } + public KW_SET_USER_ID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SET_USER_ID, 0); } + public KW_SHARE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHARE, 0); } + public KW_SHARED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHARED, 0); } + public KW_SHOW_ROUTINE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SHOW_ROUTINE, 0); } + public KW_SIGNED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SIGNED, 0); } + public KW_SIMPLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SIMPLE, 0); } + public KW_SLAVE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLAVE, 0); } + public KW_SLOW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SLOW, 0); } + public KW_SKIP_QUERY_REWRITE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SKIP_QUERY_REWRITE, 0); } + public KW_SNAPSHOT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SNAPSHOT, 0); } + public KW_SOCKET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOCKET, 0); } + public KW_SOME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOME, 0); } + public KW_SONAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SONAME, 0); } + public KW_SOUNDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOUNDS, 0); } + public KW_SOURCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SOURCE, 0); } + public KW_SQL_AFTER_GTIDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_AFTER_GTIDS, 0); } + public KW_SQL_AFTER_MTS_GAPS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_AFTER_MTS_GAPS, 0); } + public KW_SQL_BEFORE_GTIDS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_BEFORE_GTIDS, 0); } + public KW_SQL_BUFFER_RESULT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_BUFFER_RESULT, 0); } + public KW_SQL_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_CACHE, 0); } + public KW_SQL_NO_CACHE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_NO_CACHE, 0); } + public KW_SQL_THREAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SQL_THREAD, 0); } + public KW_STACKED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STACKED, 0); } + public KW_START(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_START, 0); } + public KW_STARTS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STARTS, 0); } + public KW_STATS_AUTO_RECALC(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATS_AUTO_RECALC, 0); } + public KW_STATS_PERSISTENT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATS_PERSISTENT, 0); } + public KW_STATS_SAMPLE_PAGES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATS_SAMPLE_PAGES, 0); } + public KW_STATUS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STATUS, 0); } + public KW_STD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STD, 0); } + public KW_STDDEV(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV, 0); } + public KW_STDDEV_POP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV_POP, 0); } + public KW_STDDEV_SAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STDDEV_SAMP, 0); } + public KW_STOP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STOP, 0); } + public KW_STORAGE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STORAGE, 0); } + public KW_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_STRING, 0); } + public KW_SUBCLASS_ORIGIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBCLASS_ORIGIN, 0); } + public KW_SUBJECT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBJECT, 0); } + public KW_SUBPARTITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBPARTITION, 0); } + public KW_SUBPARTITIONS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUBPARTITIONS, 0); } + public KW_SUM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUM, 0); } + public KW_SUSPEND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SUSPEND, 0); } + public KW_SWAPS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SWAPS, 0); } + public KW_SWITCHES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SWITCHES, 0); } + public KW_SYSTEM_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSTEM_VARIABLES_ADMIN, 0); } + public KW_TABLE_NAME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_NAME, 0); } + public KW_TABLESPACE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLESPACE, 0); } + public KW_TABLE_ENCRYPTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_ENCRYPTION_ADMIN, 0); } + public KW_TABLE_TYPE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TABLE_TYPE, 0); } + public KW_TEMPORARY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPORARY, 0); } + public KW_TEMPTABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TEMPTABLE, 0); } + public KW_THAN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_THAN, 0); } + public KW_TP_CONNECTION_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TP_CONNECTION_ADMIN, 0); } + public KW_TRADITIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRADITIONAL, 0); } + public KW_TRANSACTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRANSACTION, 0); } + public KW_TRANSACTIONAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRANSACTIONAL, 0); } + public KW_TRIGGERS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRIGGERS, 0); } + public KW_TRUNCATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TRUNCATE, 0); } + public KW_UNBOUNDED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNBOUNDED, 0); } + public KW_UNDEFINED(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDEFINED, 0); } + public KW_UNDOFILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDOFILE, 0); } + public KW_UNDO_BUFFER_SIZE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNDO_BUFFER_SIZE, 0); } + public KW_UNINSTALL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNINSTALL, 0); } + public KW_UNKNOWN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNKNOWN, 0); } + public KW_UNTIL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UNTIL, 0); } + public KW_UPGRADE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_UPGRADE, 0); } + public KW_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER, 0); } + public KW_USE_FRM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USE_FRM, 0); } + public KW_USER_RESOURCES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_USER_RESOURCES, 0); } + public KW_VALIDATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALIDATION, 0); } + public KW_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VALUE, 0); } + public KW_VAR_POP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VAR_POP, 0); } + public KW_VAR_SAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VAR_SAMP, 0); } + public KW_VARIABLES(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARIABLES, 0); } + public KW_VARIANCE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VARIANCE, 0); } + public KW_VERSION_TOKEN_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VERSION_TOKEN_ADMIN, 0); } + public KW_VIEW(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VIEW, 0); } + public KW_VIRTUAL(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VIRTUAL, 0); } + public KW_WAIT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WAIT, 0); } + public KW_WARNINGS(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WARNINGS, 0); } + public KW_WITHOUT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WITHOUT, 0); } + public KW_WORK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WORK, 0); } + public KW_WRAPPER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WRAPPER, 0); } + public KW_X509(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_X509, 0); } + public KW_XA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_XA, 0); } + public KW_XA_RECOVER_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_XA_RECOVER_ADMIN, 0); } + public KW_XML(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_XML, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_keywordsCanBeId; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterKeywordsCanBeId) { + listener.enterKeywordsCanBeId(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitKeywordsCanBeId) { + listener.exitKeywordsCanBeId(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitKeywordsCanBeId) { + return visitor.visitKeywordsCanBeId(this); + } else { + return visitor.visitChildren(this); + } + } +} + + +export class FunctionNameBaseContext extends ParserRuleContext { + public KW_CHARSET(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CHARSET, 0); } + public KW_COLLATION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COLLATION, 0); } + public KW_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_COUNT, 0); } + public KW_CUME_DIST(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_CUME_DIST, 0); } + public KW_DATABASE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATABASE, 0); } + public KW_DATE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DATE, 0); } + public KW_DAY(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DAY, 0); } + public KW_DENSE_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_DENSE_RANK, 0); } + public KW_FIRST_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FIRST_VALUE, 0); } + public KW_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_FORMAT, 0); } + public KW_GEOMETRYCOLLECTION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GEOMETRYCOLLECTION, 0); } + public KW_GET_FORMAT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_GET_FORMAT, 0); } + public KW_HOUR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_HOUR, 0); } + public KW_INVISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_INVISIBLE, 0); } + public KW_LAG(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAG, 0); } + public KW_LAST_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LAST_VALUE, 0); } + public KW_LEAD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEAD, 0); } + public KW_LEFT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LEFT, 0); } + public KW_LINESTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_LINESTRING, 0); } + public KW_MICROSECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MICROSECOND, 0); } + public KW_MINUTE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MINUTE, 0); } + public MOD(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.MOD, 0); } + public KW_MONTH(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MONTH, 0); } + public KW_MULTILINESTRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTILINESTRING, 0); } + public KW_MULTIPOINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTIPOINT, 0); } + public KW_MULTIPOLYGON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_MULTIPOLYGON, 0); } + public KW_NTH_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NTH_VALUE, 0); } + public KW_NTILE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_NTILE, 0); } + public KW_PERCENT_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_PERCENT_RANK, 0); } + public KW_POINT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_POINT, 0); } + public KW_POLYGON(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_POLYGON, 0); } + public KW_POSITION(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_POSITION, 0); } + public KW_QUARTER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_QUARTER, 0); } + public KW_RANDOM(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANDOM, 0); } + public KW_RANK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RANK, 0); } + public KW_REVERSE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_REVERSE, 0); } + public KW_RIGHT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_RIGHT, 0); } + public KW_ROW_COUNT(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW_COUNT, 0); } + public KW_ROW_NUMBER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_ROW_NUMBER, 0); } + public KW_SCHEMA(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SCHEMA, 0); } + public KW_SECOND(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SECOND, 0); } + public KW_SESSION_VARIABLES_ADMIN(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SESSION_VARIABLES_ADMIN, 0); } + public KW_SRID(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SRID, 0); } + public KW_SYSTEM_USER(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_SYSTEM_USER, 0); } + public KW_TIME(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIME, 0); } + public KW_TIMESTAMP(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_TIMESTAMP, 0); } + public KW_VISIBLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_VISIBLE, 0); } + public KW_WEEK(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WEEK, 0); } + public KW_WEIGHT_STRING(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_WEIGHT_STRING, 0); } + public KW_YEAR(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_YEAR, 0); } + public KW_JSON_VALUE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON_VALUE, 0); } + public KW_JSON_TABLE(): TerminalNode | undefined { return this.tryGetToken(MySqlParser.KW_JSON_TABLE, 0); } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return MySqlParser.RULE_functionNameBase; } + // @Override + public enterRule(listener: MySqlParserListener): void { + if (listener.enterFunctionNameBase) { + listener.enterFunctionNameBase(this); + } + } + // @Override + public exitRule(listener: MySqlParserListener): void { + if (listener.exitFunctionNameBase) { + listener.exitFunctionNameBase(this); + } + } + // @Override + public accept(visitor: MySqlParserVisitor): Result { + if (visitor.visitFunctionNameBase) { + return visitor.visitFunctionNameBase(this); + } else { + return visitor.visitChildren(this); + } + } +} + + diff --git a/src/lib/mysql/MySqlParserListener.ts b/src/lib/mysql/MySqlParserListener.ts new file mode 100644 index 0000000..078c3f1 --- /dev/null +++ b/src/lib/mysql/MySqlParserListener.ts @@ -0,0 +1,9211 @@ +// Generated from /Users/liuyi/Desktop/Projects/dtstack/dt-sql-parser/src/grammar/mysql/MySqlParser.g4 by ANTLR 4.9.0-SNAPSHOT + + +import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener"; + +import { AlterByTableOptionContext } from "./MySqlParser"; +import { AlterByAddColumnContext } from "./MySqlParser"; +import { AlterByAddColumnsContext } from "./MySqlParser"; +import { AlterByAddIndexContext } from "./MySqlParser"; +import { AlterByAddSpecialIndexContext } from "./MySqlParser"; +import { AlterByAddPrimaryKeyContext } from "./MySqlParser"; +import { AlterByAddUniqueKeyContext } from "./MySqlParser"; +import { AlterByAddForeignKeyContext } from "./MySqlParser"; +import { AlterByAddCheckTableConstraintContext } from "./MySqlParser"; +import { AlterByDropConstraintCheckContext } from "./MySqlParser"; +import { AlterByAlterCheckTableConstraintContext } from "./MySqlParser"; +import { AlterBySetAlgorithmContext } from "./MySqlParser"; +import { AlterByAlterColumnDefaultContext } from "./MySqlParser"; +import { AlterByAlterIndexVisibilityContext } from "./MySqlParser"; +import { AlterByChangeColumnContext } from "./MySqlParser"; +import { AlterByDefaultCharsetContext } from "./MySqlParser"; +import { AlterByConvertCharsetContext } from "./MySqlParser"; +import { AlterKeysContext } from "./MySqlParser"; +import { AlterTablespaceOptionContext } from "./MySqlParser"; +import { AlterByDropColumnContext } from "./MySqlParser"; +import { AlterByDropIndexContext } from "./MySqlParser"; +import { AlterByDropPrimaryKeyContext } from "./MySqlParser"; +import { AlterByDropForeignKeyContext } from "./MySqlParser"; +import { AlterByForceContext } from "./MySqlParser"; +import { AlterByLockContext } from "./MySqlParser"; +import { AlterByModifyColumnContext } from "./MySqlParser"; +import { AlterByOrderContext } from "./MySqlParser"; +import { AlterByRenameColumnContext } from "./MySqlParser"; +import { AlterByRenameIndexContext } from "./MySqlParser"; +import { AlterByRenameContext } from "./MySqlParser"; +import { AlterByValidateContext } from "./MySqlParser"; +import { AlterPartitionContext } from "./MySqlParser"; +import { ModuleContext } from "./MySqlParser"; +import { PasswordModuleOptionContext } from "./MySqlParser"; +import { SimpleFunctionCallContext } from "./MySqlParser"; +import { CurrentUserContext } from "./MySqlParser"; +import { DataTypeFunctionCallContext } from "./MySqlParser"; +import { ValuesFunctionCallContext } from "./MySqlParser"; +import { CaseExpressionFunctionCallContext } from "./MySqlParser"; +import { CaseFunctionCallContext } from "./MySqlParser"; +import { CharFunctionCallContext } from "./MySqlParser"; +import { PositionFunctionCallContext } from "./MySqlParser"; +import { SubstrFunctionCallContext } from "./MySqlParser"; +import { TrimFunctionCallContext } from "./MySqlParser"; +import { WeightFunctionCallContext } from "./MySqlParser"; +import { ExtractFunctionCallContext } from "./MySqlParser"; +import { GetFormatFunctionCallContext } from "./MySqlParser"; +import { JsonValueFunctionCallContext } from "./MySqlParser"; +import { InnerJoinContext } from "./MySqlParser"; +import { StraightJoinContext } from "./MySqlParser"; +import { OuterJoinContext } from "./MySqlParser"; +import { NaturalJoinContext } from "./MySqlParser"; +import { SetVariableContext } from "./MySqlParser"; +import { SetCharsetContext } from "./MySqlParser"; +import { SetNamesContext } from "./MySqlParser"; +import { SetPasswordContext } from "./MySqlParser"; +import { SetTransactionContext } from "./MySqlParser"; +import { SetAutocommitContext } from "./MySqlParser"; +import { SetNewValueInsideTriggerContext } from "./MySqlParser"; +import { AtomTableItemContext } from "./MySqlParser"; +import { SubqueryTableItemContext } from "./MySqlParser"; +import { TableSourcesItemContext } from "./MySqlParser"; +import { AlterByAddPartitionContext } from "./MySqlParser"; +import { AlterByDropPartitionContext } from "./MySqlParser"; +import { AlterByDiscardPartitionContext } from "./MySqlParser"; +import { AlterByImportPartitionContext } from "./MySqlParser"; +import { AlterByTruncatePartitionContext } from "./MySqlParser"; +import { AlterByCoalescePartitionContext } from "./MySqlParser"; +import { AlterByReorganizePartitionContext } from "./MySqlParser"; +import { AlterByExchangePartitionContext } from "./MySqlParser"; +import { AlterByAnalyzePartitionContext } from "./MySqlParser"; +import { AlterByCheckPartitionContext } from "./MySqlParser"; +import { AlterByOptimizePartitionContext } from "./MySqlParser"; +import { AlterByRebuildPartitionContext } from "./MySqlParser"; +import { AlterByRepairPartitionContext } from "./MySqlParser"; +import { AlterByRemovePartitioningContext } from "./MySqlParser"; +import { AlterByUpgradePartitioningContext } from "./MySqlParser"; +import { SourceStringOptionContext } from "./MySqlParser"; +import { SourceDecimalOptionContext } from "./MySqlParser"; +import { SourceBoolOptionContext } from "./MySqlParser"; +import { SourceOtherOptionContext } from "./MySqlParser"; +import { SourceUidListOptionContext } from "./MySqlParser"; +import { SimpleSelectContext } from "./MySqlParser"; +import { ParenthesisSelectContext } from "./MySqlParser"; +import { UnionSelectContext } from "./MySqlParser"; +import { UnionParenthesisSelectContext } from "./MySqlParser"; +import { WithLateralStatementContext } from "./MySqlParser"; +import { StringDataTypeContext } from "./MySqlParser"; +import { NationalVaryingStringDataTypeContext } from "./MySqlParser"; +import { NationalStringDataTypeContext } from "./MySqlParser"; +import { DimensionDataTypeContext } from "./MySqlParser"; +import { SimpleDataTypeContext } from "./MySqlParser"; +import { CollectionDataTypeContext } from "./MySqlParser"; +import { SpatialDataTypeContext } from "./MySqlParser"; +import { LongVarcharDataTypeContext } from "./MySqlParser"; +import { LongVarbinaryDataTypeContext } from "./MySqlParser"; +import { NullColumnConstraintContext } from "./MySqlParser"; +import { DefaultColumnConstraintContext } from "./MySqlParser"; +import { VisibilityColumnConstraintContext } from "./MySqlParser"; +import { InvisibilityColumnConstraintContext } from "./MySqlParser"; +import { AutoIncrementColumnConstraintContext } from "./MySqlParser"; +import { PrimaryKeyColumnConstraintContext } from "./MySqlParser"; +import { UniqueKeyColumnConstraintContext } from "./MySqlParser"; +import { CommentColumnConstraintContext } from "./MySqlParser"; +import { FormatColumnConstraintContext } from "./MySqlParser"; +import { StorageColumnConstraintContext } from "./MySqlParser"; +import { ReferenceColumnConstraintContext } from "./MySqlParser"; +import { CollateColumnConstraintContext } from "./MySqlParser"; +import { GeneratedColumnConstraintContext } from "./MySqlParser"; +import { SerialDefaultColumnConstraintContext } from "./MySqlParser"; +import { CheckExprContext } from "./MySqlParser"; +import { SubPartitionFunctionHashContext } from "./MySqlParser"; +import { SubPartitionFunctionKeyContext } from "./MySqlParser"; +import { V57Context } from "./MySqlParser"; +import { V80Context } from "./MySqlParser"; +import { DescribeStatementsContext } from "./MySqlParser"; +import { DescribeConnectionContext } from "./MySqlParser"; +import { SpecificFunctionCallContext } from "./MySqlParser"; +import { AggregateFunctionCallContext } from "./MySqlParser"; +import { NonAggregateFunctionCallContext } from "./MySqlParser"; +import { ScalarFunctionCallContext } from "./MySqlParser"; +import { UdfFunctionCallContext } from "./MySqlParser"; +import { PasswordFunctionCallContext } from "./MySqlParser"; +import { TableOptionEngineContext } from "./MySqlParser"; +import { TableOptionEngineAttributeContext } from "./MySqlParser"; +import { TableOptionAutoextendSizeContext } from "./MySqlParser"; +import { TableOptionAutoIncrementContext } from "./MySqlParser"; +import { TableOptionAverageContext } from "./MySqlParser"; +import { TableOptionCharsetContext } from "./MySqlParser"; +import { TableOptionChecksumContext } from "./MySqlParser"; +import { TableOptionCollateContext } from "./MySqlParser"; +import { TableOptionCommentContext } from "./MySqlParser"; +import { TableOptionCompressionContext } from "./MySqlParser"; +import { TableOptionConnectionContext } from "./MySqlParser"; +import { TableOptionDataDirectoryContext } from "./MySqlParser"; +import { TableOptionDelayContext } from "./MySqlParser"; +import { TableOptionEncryptionContext } from "./MySqlParser"; +import { TableOptionPageCompressedContext } from "./MySqlParser"; +import { TableOptionPageCompressionLevelContext } from "./MySqlParser"; +import { TableOptionEncryptionKeyIdContext } from "./MySqlParser"; +import { TableOptionIndexDirectoryContext } from "./MySqlParser"; +import { TableOptionInsertMethodContext } from "./MySqlParser"; +import { TableOptionKeyBlockSizeContext } from "./MySqlParser"; +import { TableOptionMaxRowsContext } from "./MySqlParser"; +import { TableOptionMinRowsContext } from "./MySqlParser"; +import { TableOptionPackKeysContext } from "./MySqlParser"; +import { TableOptionPasswordContext } from "./MySqlParser"; +import { TableOptionRowFormatContext } from "./MySqlParser"; +import { TableOptionStartTransactionContext } from "./MySqlParser"; +import { TableOptionSecondaryEngineAttributeContext } from "./MySqlParser"; +import { TableOptionRecalculationContext } from "./MySqlParser"; +import { TableOptionPersistentContext } from "./MySqlParser"; +import { TableOptionSamplePageContext } from "./MySqlParser"; +import { TableOptionTablespaceContext } from "./MySqlParser"; +import { TableOptionTableTypeContext } from "./MySqlParser"; +import { TableOptionTransactionalContext } from "./MySqlParser"; +import { TableOptionUnionContext } from "./MySqlParser"; +import { ConstantExpressionAtomContext } from "./MySqlParser"; +import { ColumnNameExpressionAtomContext } from "./MySqlParser"; +import { FunctionCallExpressionAtomContext } from "./MySqlParser"; +import { CollateExpressionAtomContext } from "./MySqlParser"; +import { MysqlVariableExpressionAtomContext } from "./MySqlParser"; +import { UnaryExpressionAtomContext } from "./MySqlParser"; +import { BinaryExpressionAtomContext } from "./MySqlParser"; +import { VariableAssignExpressionAtomContext } from "./MySqlParser"; +import { NestedExpressionAtomContext } from "./MySqlParser"; +import { NestedRowExpressionAtomContext } from "./MySqlParser"; +import { ExistsExpressionAtomContext } from "./MySqlParser"; +import { SubqueryExpressionAtomContext } from "./MySqlParser"; +import { IntervalExpressionAtomContext } from "./MySqlParser"; +import { BitExpressionAtomContext } from "./MySqlParser"; +import { MathExpressionAtomContext } from "./MySqlParser"; +import { JsonExpressionAtomContext } from "./MySqlParser"; +import { MasterStringOptionContext } from "./MySqlParser"; +import { MasterDecimalOptionContext } from "./MySqlParser"; +import { MasterBoolOptionContext } from "./MySqlParser"; +import { V8AddMasterOptionContext } from "./MySqlParser"; +import { MasterUidListOptionContext } from "./MySqlParser"; +import { GtidsUntilOptionContext } from "./MySqlParser"; +import { MasterLogUntilOptionContext } from "./MySqlParser"; +import { SourceLogUntilOptionContext } from "./MySqlParser"; +import { RelayLogUntilOptionContext } from "./MySqlParser"; +import { SqlGapsUntilOptionContext } from "./MySqlParser"; +import { CopyCreateTableContext } from "./MySqlParser"; +import { ColumnCreateTableContext } from "./MySqlParser"; +import { QueryCreateTableContext } from "./MySqlParser"; +import { PartitionFunctionHashContext } from "./MySqlParser"; +import { PartitionFunctionKeyContext } from "./MySqlParser"; +import { PartitionFunctionRangeContext } from "./MySqlParser"; +import { PartitionFunctionListContext } from "./MySqlParser"; +import { HandlerConditionCodeContext } from "./MySqlParser"; +import { HandlerConditionStateContext } from "./MySqlParser"; +import { HandlerConditionNameContext } from "./MySqlParser"; +import { HandlerConditionWarningContext } from "./MySqlParser"; +import { HandlerConditionNotfoundContext } from "./MySqlParser"; +import { HandlerConditionExceptionContext } from "./MySqlParser"; +import { LevelWeightListContext } from "./MySqlParser"; +import { LevelWeightRangeContext } from "./MySqlParser"; +import { InPredicateContext } from "./MySqlParser"; +import { IsNullPredicateContext } from "./MySqlParser"; +import { BinaryComparisonPredicateContext } from "./MySqlParser"; +import { SubqueryComparisonPredicateContext } from "./MySqlParser"; +import { BetweenPredicateContext } from "./MySqlParser"; +import { SoundsLikePredicateContext } from "./MySqlParser"; +import { LikePredicateContext } from "./MySqlParser"; +import { RegexpPredicateContext } from "./MySqlParser"; +import { JsonMemberOfPredicateContext } from "./MySqlParser"; +import { ExpressionAtomPredicateContext } from "./MySqlParser"; +import { UserConnectionOptionContext } from "./MySqlParser"; +import { PasswordConnectionOptionContext } from "./MySqlParser"; +import { DefaultAuthConnectionOptionContext } from "./MySqlParser"; +import { PluginDirConnectionOptionContext } from "./MySqlParser"; +import { SelectIntoVariablesContext } from "./MySqlParser"; +import { SelectIntoDumpFileContext } from "./MySqlParser"; +import { SelectIntoTextFileContext } from "./MySqlParser"; +import { PartitionOptionEngineContext } from "./MySqlParser"; +import { PartitionOptionCommentContext } from "./MySqlParser"; +import { PartitionOptionDataDirectoryContext } from "./MySqlParser"; +import { PartitionOptionIndexDirectoryContext } from "./MySqlParser"; +import { PartitionOptionMaxRowsContext } from "./MySqlParser"; +import { PartitionOptionMinRowsContext } from "./MySqlParser"; +import { PartitionOptionTablespaceContext } from "./MySqlParser"; +import { PartitionOptionNodeGroupContext } from "./MySqlParser"; +import { DoDbReplicationContext } from "./MySqlParser"; +import { IgnoreDbReplicationContext } from "./MySqlParser"; +import { DoTableReplicationContext } from "./MySqlParser"; +import { IgnoreTableReplicationContext } from "./MySqlParser"; +import { WildDoTableReplicationContext } from "./MySqlParser"; +import { WildIgnoreTableReplicationContext } from "./MySqlParser"; +import { RewriteDbReplicationContext } from "./MySqlParser"; +import { SelectStarElementContext } from "./MySqlParser"; +import { SelectColumnElementContext } from "./MySqlParser"; +import { SelectFunctionElementContext } from "./MySqlParser"; +import { SelectExpressionElementContext } from "./MySqlParser"; +import { NotExpressionContext } from "./MySqlParser"; +import { LogicalExpressionContext } from "./MySqlParser"; +import { IsExpressionContext } from "./MySqlParser"; +import { PredicateExpressionContext } from "./MySqlParser"; +import { PartitionComparisonContext } from "./MySqlParser"; +import { PartitionListAtomContext } from "./MySqlParser"; +import { PartitionListVectorContext } from "./MySqlParser"; +import { PartitionSimpleContext } from "./MySqlParser"; +import { HashAuthOptionContext } from "./MySqlParser"; +import { RandomAuthOptionContext } from "./MySqlParser"; +import { StringAuthOptionContext } from "./MySqlParser"; +import { ModuleAuthOptionContext } from "./MySqlParser"; +import { SimpleAuthOptionContext } from "./MySqlParser"; +import { SimpleFlushOptionContext } from "./MySqlParser"; +import { ChannelFlushOptionContext } from "./MySqlParser"; +import { TableFlushOptionContext } from "./MySqlParser"; +import { CloseCursorContext } from "./MySqlParser"; +import { FetchCursorContext } from "./MySqlParser"; +import { OpenCursorContext } from "./MySqlParser"; +import { TableSourceBaseContext } from "./MySqlParser"; +import { TableSourceNestedContext } from "./MySqlParser"; +import { TableJsonContext } from "./MySqlParser"; +import { PreciseScheduleContext } from "./MySqlParser"; +import { IntervalScheduleContext } from "./MySqlParser"; +import { RoutineCommentContext } from "./MySqlParser"; +import { RoutineLanguageContext } from "./MySqlParser"; +import { RoutineBehaviorContext } from "./MySqlParser"; +import { RoutineDataContext } from "./MySqlParser"; +import { RoutineSecurityContext } from "./MySqlParser"; +import { CurrentSchemaPriviLevelContext } from "./MySqlParser"; +import { GlobalPrivLevelContext } from "./MySqlParser"; +import { DefiniteSchemaPrivLevelContext } from "./MySqlParser"; +import { DefiniteFullTablePrivLevelContext } from "./MySqlParser"; +import { DefiniteFullTablePrivLevel2Context } from "./MySqlParser"; +import { DefiniteTablePrivLevelContext } from "./MySqlParser"; +import { ShowMasterLogsContext } from "./MySqlParser"; +import { ShowLogEventsContext } from "./MySqlParser"; +import { ShowObjectFilterContext } from "./MySqlParser"; +import { ShowColumnsContext } from "./MySqlParser"; +import { ShowCreateDbContext } from "./MySqlParser"; +import { ShowCreateFullIdObjectContext } from "./MySqlParser"; +import { ShowCreateFunctionContext } from "./MySqlParser"; +import { ShowCreateViewContext } from "./MySqlParser"; +import { ShowCreateTableContext } from "./MySqlParser"; +import { ShowCreateUserContext } from "./MySqlParser"; +import { ShowEngineContext } from "./MySqlParser"; +import { ShowGlobalInfoContext } from "./MySqlParser"; +import { ShowErrorsContext } from "./MySqlParser"; +import { ShowCountErrorsContext } from "./MySqlParser"; +import { ShowSchemaFilterContext } from "./MySqlParser"; +import { ShowPercedureCodeContext } from "./MySqlParser"; +import { ShowFunctionCodeContext } from "./MySqlParser"; +import { ShowGrantsContext } from "./MySqlParser"; +import { ShowIndexesContext } from "./MySqlParser"; +import { ShowOpenTablesContext } from "./MySqlParser"; +import { ShowProfileContext } from "./MySqlParser"; +import { ShowSlaveStatusContext } from "./MySqlParser"; +import { ShowReplicasContext } from "./MySqlParser"; +import { AlterSimpleDatabaseContext } from "./MySqlParser"; +import { AlterUpgradeNameContext } from "./MySqlParser"; +import { DetailRevokeContext } from "./MySqlParser"; +import { ShortRevokeContext } from "./MySqlParser"; +import { ProxyAndRoleRevokeContext } from "./MySqlParser"; +import { ProgramContext } from "./MySqlParser"; +import { SqlStatementsContext } from "./MySqlParser"; +import { SqlStatementContext } from "./MySqlParser"; +import { EmptyStatement_Context } from "./MySqlParser"; +import { DdlStatementContext } from "./MySqlParser"; +import { DmlStatementContext } from "./MySqlParser"; +import { TransactionStatementContext } from "./MySqlParser"; +import { ReplicationStatementContext } from "./MySqlParser"; +import { PreparedStatementContext } from "./MySqlParser"; +import { CompoundStatementContext } from "./MySqlParser"; +import { AdministrationStatementContext } from "./MySqlParser"; +import { UtilityStatementContext } from "./MySqlParser"; +import { CreateDatabaseContext } from "./MySqlParser"; +import { CreateEventContext } from "./MySqlParser"; +import { CreateIndexContext } from "./MySqlParser"; +import { CreateLogfileGroupContext } from "./MySqlParser"; +import { CreateProcedureContext } from "./MySqlParser"; +import { CreateRoleContext } from "./MySqlParser"; +import { CreateServerContext } from "./MySqlParser"; +import { CreateTableContext } from "./MySqlParser"; +import { CreateTablespaceInnodbContext } from "./MySqlParser"; +import { CreateTablespaceNdbContext } from "./MySqlParser"; +import { CreateTriggerContext } from "./MySqlParser"; +import { WithClauseContext } from "./MySqlParser"; +import { CommonTableExpressionsContext } from "./MySqlParser"; +import { CreateViewContext } from "./MySqlParser"; +import { CreateDatabaseOptionContext } from "./MySqlParser"; +import { CharSetContext } from "./MySqlParser"; +import { CurrentUserExpressionContext } from "./MySqlParser"; +import { OwnerStatementContext } from "./MySqlParser"; +import { ScheduleExpressionContext } from "./MySqlParser"; +import { TimestampValueContext } from "./MySqlParser"; +import { IntervalExprContext } from "./MySqlParser"; +import { IntervalTypeContext } from "./MySqlParser"; +import { EnableTypeContext } from "./MySqlParser"; +import { IndexTypeContext } from "./MySqlParser"; +import { IndexOptionContext } from "./MySqlParser"; +import { ProcedureParameterContext } from "./MySqlParser"; +import { RoutineOptionContext } from "./MySqlParser"; +import { ServerOptionContext } from "./MySqlParser"; +import { CreateDefinitionsContext } from "./MySqlParser"; +import { CreateDefinitionContext } from "./MySqlParser"; +import { CheckConstraintDefinitionContext } from "./MySqlParser"; +import { ConstraintSymbolContext } from "./MySqlParser"; +import { ColumnDefinitionContext } from "./MySqlParser"; +import { ColumnConstraintContext } from "./MySqlParser"; +import { ReferenceDefinitionContext } from "./MySqlParser"; +import { ReferenceActionContext } from "./MySqlParser"; +import { ReferenceControlTypeContext } from "./MySqlParser"; +import { TableOptionContext } from "./MySqlParser"; +import { TableTypeContext } from "./MySqlParser"; +import { TablespaceStorageContext } from "./MySqlParser"; +import { PartitionDefinitionsContext } from "./MySqlParser"; +import { PartitionFunctionDefinitionContext } from "./MySqlParser"; +import { SubpartitionFunctionDefinitionContext } from "./MySqlParser"; +import { PartitionDefinitionContext } from "./MySqlParser"; +import { PartitionDefinerAtomContext } from "./MySqlParser"; +import { PartitionDefinerVectorContext } from "./MySqlParser"; +import { SubpartitionDefinitionContext } from "./MySqlParser"; +import { PartitionOptionContext } from "./MySqlParser"; +import { AlterDatabaseContext } from "./MySqlParser"; +import { AlterEventContext } from "./MySqlParser"; +import { AlterFunctionContext } from "./MySqlParser"; +import { AlterInstanceContext } from "./MySqlParser"; +import { AlterLogfileGroupContext } from "./MySqlParser"; +import { AlterProcedureContext } from "./MySqlParser"; +import { AlterServerContext } from "./MySqlParser"; +import { AlterTableContext } from "./MySqlParser"; +import { AlterTablespaceContext } from "./MySqlParser"; +import { AlterViewContext } from "./MySqlParser"; +import { AlterOptionContext } from "./MySqlParser"; +import { AlterPartitionSpecificationContext } from "./MySqlParser"; +import { DropDatabaseContext } from "./MySqlParser"; +import { DropEventContext } from "./MySqlParser"; +import { DropIndexContext } from "./MySqlParser"; +import { DropLogfileGroupContext } from "./MySqlParser"; +import { DropProcedureContext } from "./MySqlParser"; +import { DropFunctionContext } from "./MySqlParser"; +import { DropServerContext } from "./MySqlParser"; +import { DropSpatialContext } from "./MySqlParser"; +import { DropTableContext } from "./MySqlParser"; +import { DropTablespaceContext } from "./MySqlParser"; +import { DropTriggerContext } from "./MySqlParser"; +import { DropViewContext } from "./MySqlParser"; +import { DropRoleContext } from "./MySqlParser"; +import { SetRoleContext } from "./MySqlParser"; +import { RenameTableContext } from "./MySqlParser"; +import { RenameTableClauseContext } from "./MySqlParser"; +import { TruncateTableContext } from "./MySqlParser"; +import { CallStatementContext } from "./MySqlParser"; +import { DeleteStatementContext } from "./MySqlParser"; +import { DoStatementContext } from "./MySqlParser"; +import { HandlerStatementContext } from "./MySqlParser"; +import { InsertStatementContext } from "./MySqlParser"; +import { AsRowAliasContext } from "./MySqlParser"; +import { SelectOrTableOrValuesContext } from "./MySqlParser"; +import { InterSectStatementContext } from "./MySqlParser"; +import { InterSectQueryContext } from "./MySqlParser"; +import { LoadDataStatementContext } from "./MySqlParser"; +import { LoadXmlStatementContext } from "./MySqlParser"; +import { ParenthesizedQueryContext } from "./MySqlParser"; +import { ReplaceStatementContext } from "./MySqlParser"; +import { SelectStatementContext } from "./MySqlParser"; +import { SetOperationsContext } from "./MySqlParser"; +import { QueryExpressionBodyContext } from "./MySqlParser"; +import { QueryItemContext } from "./MySqlParser"; +import { QueryPrimaryContext } from "./MySqlParser"; +import { UpdateStatementContext } from "./MySqlParser"; +import { ValuesStatementContext } from "./MySqlParser"; +import { ParenthesizedQueryExpressionContext } from "./MySqlParser"; +import { QueryBlockContext } from "./MySqlParser"; +import { ReplaceStatementValuesOrSelectOrTableContext } from "./MySqlParser"; +import { RowValuesListContext } from "./MySqlParser"; +import { SetAssignmentListContext } from "./MySqlParser"; +import { UpdatedElementContext } from "./MySqlParser"; +import { AssignmentFieldContext } from "./MySqlParser"; +import { LockClauseContext } from "./MySqlParser"; +import { SingleDeleteStatementContext } from "./MySqlParser"; +import { MultipleDeleteStatementContext } from "./MySqlParser"; +import { HandlerOpenStatementContext } from "./MySqlParser"; +import { HandlerReadIndexStatementContext } from "./MySqlParser"; +import { HandlerReadStatementContext } from "./MySqlParser"; +import { HandlerCloseStatementContext } from "./MySqlParser"; +import { ImportTableStatementContext } from "./MySqlParser"; +import { SingleUpdateStatementContext } from "./MySqlParser"; +import { MultipleUpdateStatementContext } from "./MySqlParser"; +import { OrderByClauseContext } from "./MySqlParser"; +import { OrderByExpressionContext } from "./MySqlParser"; +import { TableSourcesContext } from "./MySqlParser"; +import { TableSourceContext } from "./MySqlParser"; +import { TableSourceItemContext } from "./MySqlParser"; +import { FullColumnNamesContext } from "./MySqlParser"; +import { IndexHintContext } from "./MySqlParser"; +import { IndexHintTypeContext } from "./MySqlParser"; +import { JoinPartContext } from "./MySqlParser"; +import { JoinSpecContext } from "./MySqlParser"; +import { QueryExpressionContext } from "./MySqlParser"; +import { QueryExpressionNointoContext } from "./MySqlParser"; +import { QuerySpecificationContext } from "./MySqlParser"; +import { QuerySpecificationNointoContext } from "./MySqlParser"; +import { UnionParenthesisContext } from "./MySqlParser"; +import { UnionStatementContext } from "./MySqlParser"; +import { LateralStatementContext } from "./MySqlParser"; +import { JsonTableContext } from "./MySqlParser"; +import { JsonColumnListContext } from "./MySqlParser"; +import { JsonColumnContext } from "./MySqlParser"; +import { JsonOnEmptyContext } from "./MySqlParser"; +import { JsonOnErrorContext } from "./MySqlParser"; +import { SelectSpecContext } from "./MySqlParser"; +import { SelectElementsContext } from "./MySqlParser"; +import { SelectElementContext } from "./MySqlParser"; +import { IntoClauseContext } from "./MySqlParser"; +import { SelectFieldsIntoContext } from "./MySqlParser"; +import { SelectLinesIntoContext } from "./MySqlParser"; +import { FromClauseContext } from "./MySqlParser"; +import { GroupByClauseContext } from "./MySqlParser"; +import { HavingClauseContext } from "./MySqlParser"; +import { WindowClauseContext } from "./MySqlParser"; +import { GroupByItemContext } from "./MySqlParser"; +import { LimitClauseContext } from "./MySqlParser"; +import { LimitClauseAtomContext } from "./MySqlParser"; +import { StartTransactionContext } from "./MySqlParser"; +import { BeginWorkContext } from "./MySqlParser"; +import { CommitWorkContext } from "./MySqlParser"; +import { RollbackWorkContext } from "./MySqlParser"; +import { SavepointStatementContext } from "./MySqlParser"; +import { RollbackStatementContext } from "./MySqlParser"; +import { ReleaseStatementContext } from "./MySqlParser"; +import { LockTablesContext } from "./MySqlParser"; +import { UnlockTablesContext } from "./MySqlParser"; +import { SetAutocommitStatementContext } from "./MySqlParser"; +import { SetTransactionStatementContext } from "./MySqlParser"; +import { TransactionModeContext } from "./MySqlParser"; +import { LockTableElementContext } from "./MySqlParser"; +import { LockActionContext } from "./MySqlParser"; +import { TransactionOptionContext } from "./MySqlParser"; +import { TransactionLevelContext } from "./MySqlParser"; +import { ChangeMasterContext } from "./MySqlParser"; +import { ChangeReplicationFilterContext } from "./MySqlParser"; +import { ChangeReplicationSourceContext } from "./MySqlParser"; +import { PurgeBinaryLogsContext } from "./MySqlParser"; +import { StartSlaveOrReplicaContext } from "./MySqlParser"; +import { StopSlaveOrReplicaContext } from "./MySqlParser"; +import { StartGroupReplicationContext } from "./MySqlParser"; +import { StopGroupReplicationContext } from "./MySqlParser"; +import { MasterOptionContext } from "./MySqlParser"; +import { StringMasterOptionContext } from "./MySqlParser"; +import { DecimalMasterOptionContext } from "./MySqlParser"; +import { BoolMasterOptionContext } from "./MySqlParser"; +import { V8NewMasterOptionContext } from "./MySqlParser"; +import { ReplicationSourceOptionContext } from "./MySqlParser"; +import { StringSourceOptionContext } from "./MySqlParser"; +import { DecimalSourceOptionContext } from "./MySqlParser"; +import { BoolSourceOptionContext } from "./MySqlParser"; +import { OtherSourceOptionContext } from "./MySqlParser"; +import { ChannelOptionContext } from "./MySqlParser"; +import { ReplicationFilterContext } from "./MySqlParser"; +import { TablePairContext } from "./MySqlParser"; +import { ThreadTypeContext } from "./MySqlParser"; +import { UntilOptionContext } from "./MySqlParser"; +import { ConnectionOptionsContext } from "./MySqlParser"; +import { GtuidSetContext } from "./MySqlParser"; +import { XaStartTransactionContext } from "./MySqlParser"; +import { XaEndTransactionContext } from "./MySqlParser"; +import { XaPrepareStatementContext } from "./MySqlParser"; +import { XaCommitWorkContext } from "./MySqlParser"; +import { XaRollbackWorkContext } from "./MySqlParser"; +import { XaRecoverWorkContext } from "./MySqlParser"; +import { PrepareStatementContext } from "./MySqlParser"; +import { ExecuteStatementContext } from "./MySqlParser"; +import { DeallocatePrepareContext } from "./MySqlParser"; +import { RoutineBodyContext } from "./MySqlParser"; +import { BlockStatementContext } from "./MySqlParser"; +import { CaseStatementContext } from "./MySqlParser"; +import { IfStatementContext } from "./MySqlParser"; +import { IterateStatementContext } from "./MySqlParser"; +import { LeaveStatementContext } from "./MySqlParser"; +import { LoopStatementContext } from "./MySqlParser"; +import { RepeatStatementContext } from "./MySqlParser"; +import { ReturnStatementContext } from "./MySqlParser"; +import { WhileStatementContext } from "./MySqlParser"; +import { CursorStatementContext } from "./MySqlParser"; +import { DeclareVariableContext } from "./MySqlParser"; +import { DeclareConditionContext } from "./MySqlParser"; +import { DeclareCursorContext } from "./MySqlParser"; +import { DeclareHandlerContext } from "./MySqlParser"; +import { HandlerConditionValueContext } from "./MySqlParser"; +import { ProcedureSqlStatementContext } from "./MySqlParser"; +import { CaseAlternativeContext } from "./MySqlParser"; +import { ElifAlternativeContext } from "./MySqlParser"; +import { AlterUserContext } from "./MySqlParser"; +import { CreateUserContext } from "./MySqlParser"; +import { DropUserContext } from "./MySqlParser"; +import { GrantStatementContext } from "./MySqlParser"; +import { RoleOptionContext } from "./MySqlParser"; +import { GrantProxyContext } from "./MySqlParser"; +import { AlterResourceGroupContext } from "./MySqlParser"; +import { CreateResourceGroupContext } from "./MySqlParser"; +import { DropResourceGroupContext } from "./MySqlParser"; +import { SetResourceGroupContext } from "./MySqlParser"; +import { ResourceGroupVcpuSpecContext } from "./MySqlParser"; +import { RenameUserContext } from "./MySqlParser"; +import { RevokeStatementContext } from "./MySqlParser"; +import { IgnoreUnknownUserContext } from "./MySqlParser"; +import { PrivilegeObjectTypeContext } from "./MySqlParser"; +import { SetPasswordStatementContext } from "./MySqlParser"; +import { UserSpecificationContext } from "./MySqlParser"; +import { AlterUserAuthOptionContext } from "./MySqlParser"; +import { CreateUserAuthOptionContext } from "./MySqlParser"; +import { CreateUserInitialAuthOptionContext } from "./MySqlParser"; +import { UserAuthOptionContext } from "./MySqlParser"; +import { AuthOptionClauseContext } from "./MySqlParser"; +import { AuthenticationRuleContext } from "./MySqlParser"; +import { TlsOptionContext } from "./MySqlParser"; +import { UserResourceOptionContext } from "./MySqlParser"; +import { UserPasswordOptionContext } from "./MySqlParser"; +import { UserLockOptionContext } from "./MySqlParser"; +import { FactorAuthOptionContext } from "./MySqlParser"; +import { RegistrationOptionContext } from "./MySqlParser"; +import { FactorContext } from "./MySqlParser"; +import { PrivelegeClauseContext } from "./MySqlParser"; +import { PrivilegeContext } from "./MySqlParser"; +import { PrivilegeLevelContext } from "./MySqlParser"; +import { RenameUserClauseContext } from "./MySqlParser"; +import { AnalyzeTableContext } from "./MySqlParser"; +import { CheckTableContext } from "./MySqlParser"; +import { ChecksumTableContext } from "./MySqlParser"; +import { OptimizeTableContext } from "./MySqlParser"; +import { RepairTableContext } from "./MySqlParser"; +import { TableActionOptionContext } from "./MySqlParser"; +import { CheckTableOptionContext } from "./MySqlParser"; +import { CreateFunctionContext } from "./MySqlParser"; +import { InstallComponentContext } from "./MySqlParser"; +import { VariableExprContext } from "./MySqlParser"; +import { UninstallComponentContext } from "./MySqlParser"; +import { InstallPluginContext } from "./MySqlParser"; +import { UninstallPluginContext } from "./MySqlParser"; +import { CloneStatementContext } from "./MySqlParser"; +import { SetStatementContext } from "./MySqlParser"; +import { ShowStatementContext } from "./MySqlParser"; +import { VariableClauseContext } from "./MySqlParser"; +import { ShowCommonEntityContext } from "./MySqlParser"; +import { ShowFilterContext } from "./MySqlParser"; +import { ShowGlobalInfoClauseContext } from "./MySqlParser"; +import { ShowSchemaEntityContext } from "./MySqlParser"; +import { ShowProfileTypeContext } from "./MySqlParser"; +import { BinlogStatementContext } from "./MySqlParser"; +import { CacheIndexStatementContext } from "./MySqlParser"; +import { FlushStatementContext } from "./MySqlParser"; +import { KillStatementContext } from "./MySqlParser"; +import { LoadIndexIntoCacheContext } from "./MySqlParser"; +import { ResetStatementContext } from "./MySqlParser"; +import { ResetOptionContext } from "./MySqlParser"; +import { ResetPersistContext } from "./MySqlParser"; +import { ResetAllChannelContext } from "./MySqlParser"; +import { ReStartStatementContext } from "./MySqlParser"; +import { ShutdownStatementContext } from "./MySqlParser"; +import { TableIndexContext } from "./MySqlParser"; +import { FlushOptionContext } from "./MySqlParser"; +import { FlushTableOptionContext } from "./MySqlParser"; +import { LoadedTableIndexesContext } from "./MySqlParser"; +import { SimpleDescribeStatementContext } from "./MySqlParser"; +import { FullDescribeStatementContext } from "./MySqlParser"; +import { AnalyzeDescribeStatementContext } from "./MySqlParser"; +import { HelpStatementContext } from "./MySqlParser"; +import { UseStatementContext } from "./MySqlParser"; +import { SignalStatementContext } from "./MySqlParser"; +import { ResignalStatementContext } from "./MySqlParser"; +import { SignalConditionInformationContext } from "./MySqlParser"; +import { WithStatementContext } from "./MySqlParser"; +import { TableStatementContext } from "./MySqlParser"; +import { DiagnosticsStatementContext } from "./MySqlParser"; +import { DiagnosticsConditionInformationNameContext } from "./MySqlParser"; +import { DescribeObjectClauseContext } from "./MySqlParser"; +import { DatabaseNameCreateContext } from "./MySqlParser"; +import { DatabaseNameContext } from "./MySqlParser"; +import { FunctionNameCreateContext } from "./MySqlParser"; +import { FunctionNameContext } from "./MySqlParser"; +import { ViewNameCreateContext } from "./MySqlParser"; +import { ViewNameContext } from "./MySqlParser"; +import { IndexNameCreateContext } from "./MySqlParser"; +import { IndexNamesContext } from "./MySqlParser"; +import { IndexNameContext } from "./MySqlParser"; +import { GroupNameCreateContext } from "./MySqlParser"; +import { GroupNameContext } from "./MySqlParser"; +import { TableNameCreateContext } from "./MySqlParser"; +import { TableNamesContext } from "./MySqlParser"; +import { TableNameContext } from "./MySqlParser"; +import { UserOrRoleNamesContext } from "./MySqlParser"; +import { UserOrRoleNameContext } from "./MySqlParser"; +import { ColumnNameCreateContext } from "./MySqlParser"; +import { ColumnNamesContext } from "./MySqlParser"; +import { ColumnNameContext } from "./MySqlParser"; +import { TablespaceNameCreateContext } from "./MySqlParser"; +import { TablespaceNameContext } from "./MySqlParser"; +import { PartitionNameCreateContext } from "./MySqlParser"; +import { PartitionNamesContext } from "./MySqlParser"; +import { PartitionNameContext } from "./MySqlParser"; +import { IndexColumnNameContext } from "./MySqlParser"; +import { UserHostPortContext } from "./MySqlParser"; +import { UserAtHostContext } from "./MySqlParser"; +import { SimpleUserNameContext } from "./MySqlParser"; +import { HostNameContext } from "./MySqlParser"; +import { UserNameContext } from "./MySqlParser"; +import { MysqlVariableContext } from "./MySqlParser"; +import { CharsetNameContext } from "./MySqlParser"; +import { CollationNameContext } from "./MySqlParser"; +import { EngineNameContext } from "./MySqlParser"; +import { EngineNameBaseContext } from "./MySqlParser"; +import { UuidSetContext } from "./MySqlParser"; +import { XidContext } from "./MySqlParser"; +import { XuidStringIdContext } from "./MySqlParser"; +import { FullIdContext } from "./MySqlParser"; +import { UidListContext } from "./MySqlParser"; +import { UidContext } from "./MySqlParser"; +import { SimpleIdContext } from "./MySqlParser"; +import { DottedIdContext } from "./MySqlParser"; +import { DecimalLiteralContext } from "./MySqlParser"; +import { FileSizeLiteralContext } from "./MySqlParser"; +import { StringLiteralContext } from "./MySqlParser"; +import { BooleanLiteralContext } from "./MySqlParser"; +import { HexadecimalLiteralContext } from "./MySqlParser"; +import { NullNotnullContext } from "./MySqlParser"; +import { ConstantContext } from "./MySqlParser"; +import { DataTypeContext } from "./MySqlParser"; +import { CollectionOptionsContext } from "./MySqlParser"; +import { ConvertedDataTypeContext } from "./MySqlParser"; +import { LengthOneDimensionContext } from "./MySqlParser"; +import { LengthTwoDimensionContext } from "./MySqlParser"; +import { LengthTwoOptionalDimensionContext } from "./MySqlParser"; +import { IndexColumnNamesContext } from "./MySqlParser"; +import { ExpressionsContext } from "./MySqlParser"; +import { ValuesOrValueListContext } from "./MySqlParser"; +import { ExpressionsWithDefaultsContext } from "./MySqlParser"; +import { ExpressionOrDefaultContext } from "./MySqlParser"; +import { ConstantsContext } from "./MySqlParser"; +import { SimpleStringsContext } from "./MySqlParser"; +import { UserVariablesContext } from "./MySqlParser"; +import { DefaultValueContext } from "./MySqlParser"; +import { CurrentTimestampContext } from "./MySqlParser"; +import { IfExistsContext } from "./MySqlParser"; +import { IfNotExistsContext } from "./MySqlParser"; +import { OrReplaceContext } from "./MySqlParser"; +import { FunctionCallContext } from "./MySqlParser"; +import { SpecificFunctionContext } from "./MySqlParser"; +import { CaseFuncAlternativeContext } from "./MySqlParser"; +import { LevelsInWeightStringContext } from "./MySqlParser"; +import { LevelInWeightListElementContext } from "./MySqlParser"; +import { AggregateWindowedFunctionContext } from "./MySqlParser"; +import { NonAggregateWindowedFunctionContext } from "./MySqlParser"; +import { OverClauseContext } from "./MySqlParser"; +import { WindowSpecContext } from "./MySqlParser"; +import { WindowNameContext } from "./MySqlParser"; +import { FrameClauseContext } from "./MySqlParser"; +import { FrameUnitsContext } from "./MySqlParser"; +import { FrameExtentContext } from "./MySqlParser"; +import { FrameBetweenContext } from "./MySqlParser"; +import { FrameRangeContext } from "./MySqlParser"; +import { PartitionClauseContext } from "./MySqlParser"; +import { ScalarFunctionNameContext } from "./MySqlParser"; +import { PasswordFunctionClauseContext } from "./MySqlParser"; +import { FunctionArgsContext } from "./MySqlParser"; +import { FunctionArgContext } from "./MySqlParser"; +import { ExpressionContext } from "./MySqlParser"; +import { PredicateContext } from "./MySqlParser"; +import { ExpressionAtomContext } from "./MySqlParser"; +import { UnaryOperatorContext } from "./MySqlParser"; +import { ComparisonOperatorContext } from "./MySqlParser"; +import { ComparisonBaseContext } from "./MySqlParser"; +import { LogicalOperatorContext } from "./MySqlParser"; +import { BitOperatorContext } from "./MySqlParser"; +import { MathOperatorContext } from "./MySqlParser"; +import { JsonOperatorContext } from "./MySqlParser"; +import { CharsetNameBaseContext } from "./MySqlParser"; +import { TransactionLevelBaseContext } from "./MySqlParser"; +import { PrivilegesBaseContext } from "./MySqlParser"; +import { IntervalTypeBaseContext } from "./MySqlParser"; +import { DataTypeBaseContext } from "./MySqlParser"; +import { KeywordsCanBeIdContext } from "./MySqlParser"; +import { FunctionNameBaseContext } from "./MySqlParser"; + + +/** + * This interface defines a complete listener for a parse tree produced by + * `MySqlParser`. + */ +export interface MySqlParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by the `alterByTableOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByTableOption?: (ctx: AlterByTableOptionContext) => void; + /** + * Exit a parse tree produced by the `alterByTableOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByTableOption?: (ctx: AlterByTableOptionContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddColumn?: (ctx: AlterByAddColumnContext) => void; + /** + * Exit a parse tree produced by the `alterByAddColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddColumn?: (ctx: AlterByAddColumnContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddColumns` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => void; + /** + * Exit a parse tree produced by the `alterByAddColumns` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddIndex?: (ctx: AlterByAddIndexContext) => void; + /** + * Exit a parse tree produced by the `alterByAddIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddIndex?: (ctx: AlterByAddIndexContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddSpecialIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => void; + /** + * Exit a parse tree produced by the `alterByAddSpecialIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => void; + /** + * Exit a parse tree produced by the `alterByAddPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddUniqueKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => void; + /** + * Exit a parse tree produced by the `alterByAddUniqueKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => void; + /** + * Exit a parse tree produced by the `alterByAddForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => void; + /** + * Exit a parse tree produced by the `alterByAddCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropConstraintCheck` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDropConstraintCheck?: (ctx: AlterByDropConstraintCheckContext) => void; + /** + * Exit a parse tree produced by the `alterByDropConstraintCheck` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDropConstraintCheck?: (ctx: AlterByDropConstraintCheckContext) => void; + + /** + * Enter a parse tree produced by the `alterByAlterCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAlterCheckTableConstraint?: (ctx: AlterByAlterCheckTableConstraintContext) => void; + /** + * Exit a parse tree produced by the `alterByAlterCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAlterCheckTableConstraint?: (ctx: AlterByAlterCheckTableConstraintContext) => void; + + /** + * Enter a parse tree produced by the `alterBySetAlgorithm` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => void; + /** + * Exit a parse tree produced by the `alterBySetAlgorithm` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => void; + + /** + * Enter a parse tree produced by the `alterByAlterColumnDefault` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAlterColumnDefault?: (ctx: AlterByAlterColumnDefaultContext) => void; + /** + * Exit a parse tree produced by the `alterByAlterColumnDefault` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAlterColumnDefault?: (ctx: AlterByAlterColumnDefaultContext) => void; + + /** + * Enter a parse tree produced by the `alterByAlterIndexVisibility` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => void; + /** + * Exit a parse tree produced by the `alterByAlterIndexVisibility` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => void; + + /** + * Enter a parse tree produced by the `alterByChangeColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => void; + /** + * Exit a parse tree produced by the `alterByChangeColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => void; + + /** + * Enter a parse tree produced by the `alterByDefaultCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => void; + /** + * Exit a parse tree produced by the `alterByDefaultCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => void; + + /** + * Enter a parse tree produced by the `alterByConvertCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => void; + /** + * Exit a parse tree produced by the `alterByConvertCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => void; + + /** + * Enter a parse tree produced by the `alterKeys` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterKeys?: (ctx: AlterKeysContext) => void; + /** + * Exit a parse tree produced by the `alterKeys` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterKeys?: (ctx: AlterKeysContext) => void; + + /** + * Enter a parse tree produced by the `alterTablespaceOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => void; + /** + * Exit a parse tree produced by the `alterTablespaceOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDropColumn?: (ctx: AlterByDropColumnContext) => void; + /** + * Exit a parse tree produced by the `alterByDropColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDropColumn?: (ctx: AlterByDropColumnContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDropIndex?: (ctx: AlterByDropIndexContext) => void; + /** + * Exit a parse tree produced by the `alterByDropIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDropIndex?: (ctx: AlterByDropIndexContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => void; + /** + * Exit a parse tree produced by the `alterByDropPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => void; + /** + * Exit a parse tree produced by the `alterByDropForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => void; + + /** + * Enter a parse tree produced by the `alterByForce` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByForce?: (ctx: AlterByForceContext) => void; + /** + * Exit a parse tree produced by the `alterByForce` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByForce?: (ctx: AlterByForceContext) => void; + + /** + * Enter a parse tree produced by the `alterByLock` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByLock?: (ctx: AlterByLockContext) => void; + /** + * Exit a parse tree produced by the `alterByLock` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByLock?: (ctx: AlterByLockContext) => void; + + /** + * Enter a parse tree produced by the `alterByModifyColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => void; + /** + * Exit a parse tree produced by the `alterByModifyColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => void; + + /** + * Enter a parse tree produced by the `alterByOrder` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByOrder?: (ctx: AlterByOrderContext) => void; + /** + * Exit a parse tree produced by the `alterByOrder` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByOrder?: (ctx: AlterByOrderContext) => void; + + /** + * Enter a parse tree produced by the `alterByRenameColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => void; + /** + * Exit a parse tree produced by the `alterByRenameColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => void; + + /** + * Enter a parse tree produced by the `alterByRenameIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => void; + /** + * Exit a parse tree produced by the `alterByRenameIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => void; + + /** + * Enter a parse tree produced by the `alterByRename` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByRename?: (ctx: AlterByRenameContext) => void; + /** + * Exit a parse tree produced by the `alterByRename` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByRename?: (ctx: AlterByRenameContext) => void; + + /** + * Enter a parse tree produced by the `alterByValidate` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterByValidate?: (ctx: AlterByValidateContext) => void; + /** + * Exit a parse tree produced by the `alterByValidate` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterByValidate?: (ctx: AlterByValidateContext) => void; + + /** + * Enter a parse tree produced by the `alterPartition` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterPartition?: (ctx: AlterPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterPartition` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterPartition?: (ctx: AlterPartitionContext) => void; + + /** + * Enter a parse tree produced by the `module` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + enterModule?: (ctx: ModuleContext) => void; + /** + * Exit a parse tree produced by the `module` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + exitModule?: (ctx: ModuleContext) => void; + + /** + * Enter a parse tree produced by the `passwordModuleOption` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + enterPasswordModuleOption?: (ctx: PasswordModuleOptionContext) => void; + /** + * Exit a parse tree produced by the `passwordModuleOption` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + exitPasswordModuleOption?: (ctx: PasswordModuleOptionContext) => void; + + /** + * Enter a parse tree produced by the `simpleFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `simpleFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `currentUser` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterCurrentUser?: (ctx: CurrentUserContext) => void; + /** + * Exit a parse tree produced by the `currentUser` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitCurrentUser?: (ctx: CurrentUserContext) => void; + + /** + * Enter a parse tree produced by the `dataTypeFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `dataTypeFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `valuesFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `valuesFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `caseExpressionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterCaseExpressionFunctionCall?: (ctx: CaseExpressionFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `caseExpressionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitCaseExpressionFunctionCall?: (ctx: CaseExpressionFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `caseFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterCaseFunctionCall?: (ctx: CaseFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `caseFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitCaseFunctionCall?: (ctx: CaseFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `charFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterCharFunctionCall?: (ctx: CharFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `charFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitCharFunctionCall?: (ctx: CharFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `positionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterPositionFunctionCall?: (ctx: PositionFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `positionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitPositionFunctionCall?: (ctx: PositionFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `substrFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `substrFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `trimFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterTrimFunctionCall?: (ctx: TrimFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `trimFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitTrimFunctionCall?: (ctx: TrimFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `weightFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterWeightFunctionCall?: (ctx: WeightFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `weightFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitWeightFunctionCall?: (ctx: WeightFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `extractFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `extractFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `getFormatFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `getFormatFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `jsonValueFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterJsonValueFunctionCall?: (ctx: JsonValueFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `jsonValueFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitJsonValueFunctionCall?: (ctx: JsonValueFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `innerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + enterInnerJoin?: (ctx: InnerJoinContext) => void; + /** + * Exit a parse tree produced by the `innerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + exitInnerJoin?: (ctx: InnerJoinContext) => void; + + /** + * Enter a parse tree produced by the `straightJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + enterStraightJoin?: (ctx: StraightJoinContext) => void; + /** + * Exit a parse tree produced by the `straightJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + exitStraightJoin?: (ctx: StraightJoinContext) => void; + + /** + * Enter a parse tree produced by the `outerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + enterOuterJoin?: (ctx: OuterJoinContext) => void; + /** + * Exit a parse tree produced by the `outerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + exitOuterJoin?: (ctx: OuterJoinContext) => void; + + /** + * Enter a parse tree produced by the `naturalJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + enterNaturalJoin?: (ctx: NaturalJoinContext) => void; + /** + * Exit a parse tree produced by the `naturalJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + exitNaturalJoin?: (ctx: NaturalJoinContext) => void; + + /** + * Enter a parse tree produced by the `setVariable` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetVariable?: (ctx: SetVariableContext) => void; + /** + * Exit a parse tree produced by the `setVariable` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetVariable?: (ctx: SetVariableContext) => void; + + /** + * Enter a parse tree produced by the `setCharset` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetCharset?: (ctx: SetCharsetContext) => void; + /** + * Exit a parse tree produced by the `setCharset` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetCharset?: (ctx: SetCharsetContext) => void; + + /** + * Enter a parse tree produced by the `setNames` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetNames?: (ctx: SetNamesContext) => void; + /** + * Exit a parse tree produced by the `setNames` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetNames?: (ctx: SetNamesContext) => void; + + /** + * Enter a parse tree produced by the `setPassword` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetPassword?: (ctx: SetPasswordContext) => void; + /** + * Exit a parse tree produced by the `setPassword` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetPassword?: (ctx: SetPasswordContext) => void; + + /** + * Enter a parse tree produced by the `setTransaction` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetTransaction?: (ctx: SetTransactionContext) => void; + /** + * Exit a parse tree produced by the `setTransaction` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetTransaction?: (ctx: SetTransactionContext) => void; + + /** + * Enter a parse tree produced by the `setAutocommit` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetAutocommit?: (ctx: SetAutocommitContext) => void; + /** + * Exit a parse tree produced by the `setAutocommit` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetAutocommit?: (ctx: SetAutocommitContext) => void; + + /** + * Enter a parse tree produced by the `setNewValueInsideTrigger` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => void; + /** + * Exit a parse tree produced by the `setNewValueInsideTrigger` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => void; + + /** + * Enter a parse tree produced by the `atomTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + enterAtomTableItem?: (ctx: AtomTableItemContext) => void; + /** + * Exit a parse tree produced by the `atomTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + exitAtomTableItem?: (ctx: AtomTableItemContext) => void; + + /** + * Enter a parse tree produced by the `subqueryTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + enterSubqueryTableItem?: (ctx: SubqueryTableItemContext) => void; + /** + * Exit a parse tree produced by the `subqueryTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + exitSubqueryTableItem?: (ctx: SubqueryTableItemContext) => void; + + /** + * Enter a parse tree produced by the `tableSourcesItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + enterTableSourcesItem?: (ctx: TableSourcesItemContext) => void; + /** + * Exit a parse tree produced by the `tableSourcesItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + exitTableSourcesItem?: (ctx: TableSourcesItemContext) => void; + + /** + * Enter a parse tree produced by the `alterByAddPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByAddPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByDropPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByDropPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByDiscardPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByDiscardPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByImportPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByImportPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByTruncatePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByTruncatePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByCoalescePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByCoalescePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByReorganizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByReorganizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByExchangePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByExchangePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByAnalyzePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByAnalyzePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByCheckPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByCheckPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByOptimizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByOptimizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByRebuildPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByRebuildPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByRepairPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => void; + /** + * Exit a parse tree produced by the `alterByRepairPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => void; + + /** + * Enter a parse tree produced by the `alterByRemovePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => void; + /** + * Exit a parse tree produced by the `alterByRemovePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => void; + + /** + * Enter a parse tree produced by the `alterByUpgradePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => void; + /** + * Exit a parse tree produced by the `alterByUpgradePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => void; + + /** + * Enter a parse tree produced by the `sourceStringOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterSourceStringOption?: (ctx: SourceStringOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceStringOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitSourceStringOption?: (ctx: SourceStringOptionContext) => void; + + /** + * Enter a parse tree produced by the `sourceDecimalOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterSourceDecimalOption?: (ctx: SourceDecimalOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceDecimalOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitSourceDecimalOption?: (ctx: SourceDecimalOptionContext) => void; + + /** + * Enter a parse tree produced by the `sourceBoolOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterSourceBoolOption?: (ctx: SourceBoolOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceBoolOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitSourceBoolOption?: (ctx: SourceBoolOptionContext) => void; + + /** + * Enter a parse tree produced by the `sourceOtherOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterSourceOtherOption?: (ctx: SourceOtherOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceOtherOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitSourceOtherOption?: (ctx: SourceOtherOptionContext) => void; + + /** + * Enter a parse tree produced by the `sourceUidListOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterSourceUidListOption?: (ctx: SourceUidListOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceUidListOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitSourceUidListOption?: (ctx: SourceUidListOptionContext) => void; + + /** + * Enter a parse tree produced by the `simpleSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterSimpleSelect?: (ctx: SimpleSelectContext) => void; + /** + * Exit a parse tree produced by the `simpleSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitSimpleSelect?: (ctx: SimpleSelectContext) => void; + + /** + * Enter a parse tree produced by the `parenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterParenthesisSelect?: (ctx: ParenthesisSelectContext) => void; + /** + * Exit a parse tree produced by the `parenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitParenthesisSelect?: (ctx: ParenthesisSelectContext) => void; + + /** + * Enter a parse tree produced by the `unionSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterUnionSelect?: (ctx: UnionSelectContext) => void; + /** + * Exit a parse tree produced by the `unionSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitUnionSelect?: (ctx: UnionSelectContext) => void; + + /** + * Enter a parse tree produced by the `unionParenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => void; + /** + * Exit a parse tree produced by the `unionParenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => void; + + /** + * Enter a parse tree produced by the `withLateralStatement` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterWithLateralStatement?: (ctx: WithLateralStatementContext) => void; + /** + * Exit a parse tree produced by the `withLateralStatement` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitWithLateralStatement?: (ctx: WithLateralStatementContext) => void; + + /** + * Enter a parse tree produced by the `stringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterStringDataType?: (ctx: StringDataTypeContext) => void; + /** + * Exit a parse tree produced by the `stringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitStringDataType?: (ctx: StringDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `nationalVaryingStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => void; + /** + * Exit a parse tree produced by the `nationalVaryingStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `nationalStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterNationalStringDataType?: (ctx: NationalStringDataTypeContext) => void; + /** + * Exit a parse tree produced by the `nationalStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitNationalStringDataType?: (ctx: NationalStringDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `dimensionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterDimensionDataType?: (ctx: DimensionDataTypeContext) => void; + /** + * Exit a parse tree produced by the `dimensionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitDimensionDataType?: (ctx: DimensionDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `simpleDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterSimpleDataType?: (ctx: SimpleDataTypeContext) => void; + /** + * Exit a parse tree produced by the `simpleDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitSimpleDataType?: (ctx: SimpleDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `collectionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterCollectionDataType?: (ctx: CollectionDataTypeContext) => void; + /** + * Exit a parse tree produced by the `collectionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitCollectionDataType?: (ctx: CollectionDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `spatialDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterSpatialDataType?: (ctx: SpatialDataTypeContext) => void; + /** + * Exit a parse tree produced by the `spatialDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitSpatialDataType?: (ctx: SpatialDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `longVarcharDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => void; + /** + * Exit a parse tree produced by the `longVarcharDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `longVarbinaryDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => void; + /** + * Exit a parse tree produced by the `longVarbinaryDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => void; + + /** + * Enter a parse tree produced by the `nullColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterNullColumnConstraint?: (ctx: NullColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `nullColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitNullColumnConstraint?: (ctx: NullColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `defaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `defaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `visibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterVisibilityColumnConstraint?: (ctx: VisibilityColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `visibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitVisibilityColumnConstraint?: (ctx: VisibilityColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `invisibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterInvisibilityColumnConstraint?: (ctx: InvisibilityColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `invisibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitInvisibilityColumnConstraint?: (ctx: InvisibilityColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `autoIncrementColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `autoIncrementColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `primaryKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `primaryKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `uniqueKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `uniqueKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `commentColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `commentColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `formatColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `formatColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `storageColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `storageColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `referenceColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `referenceColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `collateColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `collateColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `generatedColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `generatedColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `serialDefaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => void; + /** + * Exit a parse tree produced by the `serialDefaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by the `checkExpr` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterCheckExpr?: (ctx: CheckExprContext) => void; + /** + * Exit a parse tree produced by the `checkExpr` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitCheckExpr?: (ctx: CheckExprContext) => void; + + /** + * Enter a parse tree produced by the `subPartitionFunctionHash` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => void; + /** + * Exit a parse tree produced by the `subPartitionFunctionHash` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => void; + + /** + * Enter a parse tree produced by the `subPartitionFunctionKey` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => void; + /** + * Exit a parse tree produced by the `subPartitionFunctionKey` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => void; + + /** + * Enter a parse tree produced by the `v57` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + enterV57?: (ctx: V57Context) => void; + /** + * Exit a parse tree produced by the `v57` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + exitV57?: (ctx: V57Context) => void; + + /** + * Enter a parse tree produced by the `v80` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + enterV80?: (ctx: V80Context) => void; + /** + * Exit a parse tree produced by the `v80` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + exitV80?: (ctx: V80Context) => void; + + /** + * Enter a parse tree produced by the `describeStatements` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + enterDescribeStatements?: (ctx: DescribeStatementsContext) => void; + /** + * Exit a parse tree produced by the `describeStatements` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + exitDescribeStatements?: (ctx: DescribeStatementsContext) => void; + + /** + * Enter a parse tree produced by the `describeConnection` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + enterDescribeConnection?: (ctx: DescribeConnectionContext) => void; + /** + * Exit a parse tree produced by the `describeConnection` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + exitDescribeConnection?: (ctx: DescribeConnectionContext) => void; + + /** + * Enter a parse tree produced by the `specificFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `specificFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `aggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `aggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `nonAggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterNonAggregateFunctionCall?: (ctx: NonAggregateFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `nonAggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitNonAggregateFunctionCall?: (ctx: NonAggregateFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `scalarFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `scalarFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `udfFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterUdfFunctionCall?: (ctx: UdfFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `udfFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitUdfFunctionCall?: (ctx: UdfFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `passwordFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => void; + /** + * Exit a parse tree produced by the `passwordFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionEngine` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionEngine?: (ctx: TableOptionEngineContext) => void; + /** + * Exit a parse tree produced by the `tableOptionEngine` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionEngine?: (ctx: TableOptionEngineContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionEngineAttribute?: (ctx: TableOptionEngineAttributeContext) => void; + /** + * Exit a parse tree produced by the `tableOptionEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionEngineAttribute?: (ctx: TableOptionEngineAttributeContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionAutoextendSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => void; + /** + * Exit a parse tree produced by the `tableOptionAutoextendSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionAutoIncrement` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => void; + /** + * Exit a parse tree produced by the `tableOptionAutoIncrement` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionAverage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionAverage?: (ctx: TableOptionAverageContext) => void; + /** + * Exit a parse tree produced by the `tableOptionAverage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionAverage?: (ctx: TableOptionAverageContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionCharset` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionCharset?: (ctx: TableOptionCharsetContext) => void; + /** + * Exit a parse tree produced by the `tableOptionCharset` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionCharset?: (ctx: TableOptionCharsetContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionChecksum` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionChecksum?: (ctx: TableOptionChecksumContext) => void; + /** + * Exit a parse tree produced by the `tableOptionChecksum` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionChecksum?: (ctx: TableOptionChecksumContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionCollate` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionCollate?: (ctx: TableOptionCollateContext) => void; + /** + * Exit a parse tree produced by the `tableOptionCollate` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionCollate?: (ctx: TableOptionCollateContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionComment` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionComment?: (ctx: TableOptionCommentContext) => void; + /** + * Exit a parse tree produced by the `tableOptionComment` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionComment?: (ctx: TableOptionCommentContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionCompression` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionCompression?: (ctx: TableOptionCompressionContext) => void; + /** + * Exit a parse tree produced by the `tableOptionCompression` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionCompression?: (ctx: TableOptionCompressionContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionConnection` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionConnection?: (ctx: TableOptionConnectionContext) => void; + /** + * Exit a parse tree produced by the `tableOptionConnection` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionConnection?: (ctx: TableOptionConnectionContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionDataDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => void; + /** + * Exit a parse tree produced by the `tableOptionDataDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionDelay` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionDelay?: (ctx: TableOptionDelayContext) => void; + /** + * Exit a parse tree produced by the `tableOptionDelay` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionDelay?: (ctx: TableOptionDelayContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionEncryption` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => void; + /** + * Exit a parse tree produced by the `tableOptionEncryption` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionPageCompressed` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionPageCompressed?: (ctx: TableOptionPageCompressedContext) => void; + /** + * Exit a parse tree produced by the `tableOptionPageCompressed` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionPageCompressed?: (ctx: TableOptionPageCompressedContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionPageCompressionLevel` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionPageCompressionLevel?: (ctx: TableOptionPageCompressionLevelContext) => void; + /** + * Exit a parse tree produced by the `tableOptionPageCompressionLevel` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionPageCompressionLevel?: (ctx: TableOptionPageCompressionLevelContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionEncryptionKeyId` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionEncryptionKeyId?: (ctx: TableOptionEncryptionKeyIdContext) => void; + /** + * Exit a parse tree produced by the `tableOptionEncryptionKeyId` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionEncryptionKeyId?: (ctx: TableOptionEncryptionKeyIdContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionIndexDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => void; + /** + * Exit a parse tree produced by the `tableOptionIndexDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionInsertMethod` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => void; + /** + * Exit a parse tree produced by the `tableOptionInsertMethod` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionKeyBlockSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => void; + /** + * Exit a parse tree produced by the `tableOptionKeyBlockSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionMaxRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => void; + /** + * Exit a parse tree produced by the `tableOptionMaxRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionMinRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => void; + /** + * Exit a parse tree produced by the `tableOptionMinRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionPackKeys` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => void; + /** + * Exit a parse tree produced by the `tableOptionPackKeys` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionPassword` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionPassword?: (ctx: TableOptionPasswordContext) => void; + /** + * Exit a parse tree produced by the `tableOptionPassword` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionPassword?: (ctx: TableOptionPasswordContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionRowFormat` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => void; + /** + * Exit a parse tree produced by the `tableOptionRowFormat` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionStartTransaction` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionStartTransaction?: (ctx: TableOptionStartTransactionContext) => void; + /** + * Exit a parse tree produced by the `tableOptionStartTransaction` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionStartTransaction?: (ctx: TableOptionStartTransactionContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionSecondaryEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionSecondaryEngineAttribute?: (ctx: TableOptionSecondaryEngineAttributeContext) => void; + /** + * Exit a parse tree produced by the `tableOptionSecondaryEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionSecondaryEngineAttribute?: (ctx: TableOptionSecondaryEngineAttributeContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionRecalculation` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => void; + /** + * Exit a parse tree produced by the `tableOptionRecalculation` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionPersistent` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionPersistent?: (ctx: TableOptionPersistentContext) => void; + /** + * Exit a parse tree produced by the `tableOptionPersistent` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionPersistent?: (ctx: TableOptionPersistentContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionSamplePage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => void; + /** + * Exit a parse tree produced by the `tableOptionSamplePage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionTablespace` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; + /** + * Exit a parse tree produced by the `tableOptionTablespace` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionTableType` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionTableType?: (ctx: TableOptionTableTypeContext) => void; + /** + * Exit a parse tree produced by the `tableOptionTableType` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionTableType?: (ctx: TableOptionTableTypeContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionTransactional` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionTransactional?: (ctx: TableOptionTransactionalContext) => void; + /** + * Exit a parse tree produced by the `tableOptionTransactional` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionTransactional?: (ctx: TableOptionTransactionalContext) => void; + + /** + * Enter a parse tree produced by the `tableOptionUnion` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOptionUnion?: (ctx: TableOptionUnionContext) => void; + /** + * Exit a parse tree produced by the `tableOptionUnion` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOptionUnion?: (ctx: TableOptionUnionContext) => void; + + /** + * Enter a parse tree produced by the `constantExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `constantExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `columnNameExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterColumnNameExpressionAtom?: (ctx: ColumnNameExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `columnNameExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitColumnNameExpressionAtom?: (ctx: ColumnNameExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `functionCallExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `functionCallExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `collateExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `collateExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `mysqlVariableExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `mysqlVariableExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `unaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `unaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `binaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `binaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `variableAssignExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterVariableAssignExpressionAtom?: (ctx: VariableAssignExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `variableAssignExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitVariableAssignExpressionAtom?: (ctx: VariableAssignExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `nestedExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `nestedExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `nestedRowExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `nestedRowExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `existsExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterExistsExpressionAtom?: (ctx: ExistsExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `existsExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitExistsExpressionAtom?: (ctx: ExistsExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `subqueryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterSubqueryExpressionAtom?: (ctx: SubqueryExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `subqueryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitSubqueryExpressionAtom?: (ctx: SubqueryExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `intervalExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `intervalExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `bitExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterBitExpressionAtom?: (ctx: BitExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `bitExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitBitExpressionAtom?: (ctx: BitExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `mathExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterMathExpressionAtom?: (ctx: MathExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `mathExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitMathExpressionAtom?: (ctx: MathExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `jsonExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterJsonExpressionAtom?: (ctx: JsonExpressionAtomContext) => void; + /** + * Exit a parse tree produced by the `jsonExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitJsonExpressionAtom?: (ctx: JsonExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by the `masterStringOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterMasterStringOption?: (ctx: MasterStringOptionContext) => void; + /** + * Exit a parse tree produced by the `masterStringOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitMasterStringOption?: (ctx: MasterStringOptionContext) => void; + + /** + * Enter a parse tree produced by the `masterDecimalOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => void; + /** + * Exit a parse tree produced by the `masterDecimalOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => void; + + /** + * Enter a parse tree produced by the `masterBoolOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterMasterBoolOption?: (ctx: MasterBoolOptionContext) => void; + /** + * Exit a parse tree produced by the `masterBoolOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitMasterBoolOption?: (ctx: MasterBoolOptionContext) => void; + + /** + * Enter a parse tree produced by the `v8AddMasterOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterV8AddMasterOption?: (ctx: V8AddMasterOptionContext) => void; + /** + * Exit a parse tree produced by the `v8AddMasterOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitV8AddMasterOption?: (ctx: V8AddMasterOptionContext) => void; + + /** + * Enter a parse tree produced by the `masterUidListOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterMasterUidListOption?: (ctx: MasterUidListOptionContext) => void; + /** + * Exit a parse tree produced by the `masterUidListOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitMasterUidListOption?: (ctx: MasterUidListOptionContext) => void; + + /** + * Enter a parse tree produced by the `gtidsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => void; + /** + * Exit a parse tree produced by the `gtidsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => void; + + /** + * Enter a parse tree produced by the `masterLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => void; + /** + * Exit a parse tree produced by the `masterLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => void; + + /** + * Enter a parse tree produced by the `sourceLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterSourceLogUntilOption?: (ctx: SourceLogUntilOptionContext) => void; + /** + * Exit a parse tree produced by the `sourceLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitSourceLogUntilOption?: (ctx: SourceLogUntilOptionContext) => void; + + /** + * Enter a parse tree produced by the `relayLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => void; + /** + * Exit a parse tree produced by the `relayLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => void; + + /** + * Enter a parse tree produced by the `sqlGapsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => void; + /** + * Exit a parse tree produced by the `sqlGapsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => void; + + /** + * Enter a parse tree produced by the `copyCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + enterCopyCreateTable?: (ctx: CopyCreateTableContext) => void; + /** + * Exit a parse tree produced by the `copyCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + exitCopyCreateTable?: (ctx: CopyCreateTableContext) => void; + + /** + * Enter a parse tree produced by the `columnCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + enterColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; + /** + * Exit a parse tree produced by the `columnCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + exitColumnCreateTable?: (ctx: ColumnCreateTableContext) => void; + + /** + * Enter a parse tree produced by the `queryCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + enterQueryCreateTable?: (ctx: QueryCreateTableContext) => void; + /** + * Exit a parse tree produced by the `queryCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + */ + exitQueryCreateTable?: (ctx: QueryCreateTableContext) => void; + + /** + * Enter a parse tree produced by the `partitionFunctionHash` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => void; + /** + * Exit a parse tree produced by the `partitionFunctionHash` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => void; + + /** + * Enter a parse tree produced by the `partitionFunctionKey` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => void; + /** + * Exit a parse tree produced by the `partitionFunctionKey` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => void; + + /** + * Enter a parse tree produced by the `partitionFunctionRange` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => void; + /** + * Exit a parse tree produced by the `partitionFunctionRange` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => void; + + /** + * Enter a parse tree produced by the `partitionFunctionList` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterPartitionFunctionList?: (ctx: PartitionFunctionListContext) => void; + /** + * Exit a parse tree produced by the `partitionFunctionList` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitPartitionFunctionList?: (ctx: PartitionFunctionListContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionCode` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionCode` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionState` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionState?: (ctx: HandlerConditionStateContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionState` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionState?: (ctx: HandlerConditionStateContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionName` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionName?: (ctx: HandlerConditionNameContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionName` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionName?: (ctx: HandlerConditionNameContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionWarning` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionWarning` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionNotfound` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionNotfound` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => void; + + /** + * Enter a parse tree produced by the `handlerConditionException` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => void; + /** + * Exit a parse tree produced by the `handlerConditionException` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => void; + + /** + * Enter a parse tree produced by the `levelWeightList` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + enterLevelWeightList?: (ctx: LevelWeightListContext) => void; + /** + * Exit a parse tree produced by the `levelWeightList` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + exitLevelWeightList?: (ctx: LevelWeightListContext) => void; + + /** + * Enter a parse tree produced by the `levelWeightRange` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + enterLevelWeightRange?: (ctx: LevelWeightRangeContext) => void; + /** + * Exit a parse tree produced by the `levelWeightRange` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + exitLevelWeightRange?: (ctx: LevelWeightRangeContext) => void; + + /** + * Enter a parse tree produced by the `inPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterInPredicate?: (ctx: InPredicateContext) => void; + /** + * Exit a parse tree produced by the `inPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitInPredicate?: (ctx: InPredicateContext) => void; + + /** + * Enter a parse tree produced by the `isNullPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterIsNullPredicate?: (ctx: IsNullPredicateContext) => void; + /** + * Exit a parse tree produced by the `isNullPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitIsNullPredicate?: (ctx: IsNullPredicateContext) => void; + + /** + * Enter a parse tree produced by the `binaryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterBinaryComparisonPredicate?: (ctx: BinaryComparisonPredicateContext) => void; + /** + * Exit a parse tree produced by the `binaryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitBinaryComparisonPredicate?: (ctx: BinaryComparisonPredicateContext) => void; + + /** + * Enter a parse tree produced by the `subqueryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterSubqueryComparisonPredicate?: (ctx: SubqueryComparisonPredicateContext) => void; + /** + * Exit a parse tree produced by the `subqueryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitSubqueryComparisonPredicate?: (ctx: SubqueryComparisonPredicateContext) => void; + + /** + * Enter a parse tree produced by the `betweenPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterBetweenPredicate?: (ctx: BetweenPredicateContext) => void; + /** + * Exit a parse tree produced by the `betweenPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitBetweenPredicate?: (ctx: BetweenPredicateContext) => void; + + /** + * Enter a parse tree produced by the `soundsLikePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => void; + /** + * Exit a parse tree produced by the `soundsLikePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => void; + + /** + * Enter a parse tree produced by the `likePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterLikePredicate?: (ctx: LikePredicateContext) => void; + /** + * Exit a parse tree produced by the `likePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitLikePredicate?: (ctx: LikePredicateContext) => void; + + /** + * Enter a parse tree produced by the `regexpPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterRegexpPredicate?: (ctx: RegexpPredicateContext) => void; + /** + * Exit a parse tree produced by the `regexpPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitRegexpPredicate?: (ctx: RegexpPredicateContext) => void; + + /** + * Enter a parse tree produced by the `jsonMemberOfPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterJsonMemberOfPredicate?: (ctx: JsonMemberOfPredicateContext) => void; + /** + * Exit a parse tree produced by the `jsonMemberOfPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitJsonMemberOfPredicate?: (ctx: JsonMemberOfPredicateContext) => void; + + /** + * Enter a parse tree produced by the `expressionAtomPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => void; + /** + * Exit a parse tree produced by the `expressionAtomPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => void; + + /** + * Enter a parse tree produced by the `userConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + enterUserConnectionOption?: (ctx: UserConnectionOptionContext) => void; + /** + * Exit a parse tree produced by the `userConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + exitUserConnectionOption?: (ctx: UserConnectionOptionContext) => void; + + /** + * Enter a parse tree produced by the `passwordConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + enterPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => void; + /** + * Exit a parse tree produced by the `passwordConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + exitPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => void; + + /** + * Enter a parse tree produced by the `defaultAuthConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + enterDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => void; + /** + * Exit a parse tree produced by the `defaultAuthConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + exitDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => void; + + /** + * Enter a parse tree produced by the `pluginDirConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + enterPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => void; + /** + * Exit a parse tree produced by the `pluginDirConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + exitPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => void; + + /** + * Enter a parse tree produced by the `selectIntoVariables` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + enterSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => void; + /** + * Exit a parse tree produced by the `selectIntoVariables` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + exitSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => void; + + /** + * Enter a parse tree produced by the `selectIntoDumpFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + enterSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => void; + /** + * Exit a parse tree produced by the `selectIntoDumpFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + exitSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => void; + + /** + * Enter a parse tree produced by the `selectIntoTextFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + enterSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => void; + /** + * Exit a parse tree produced by the `selectIntoTextFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + exitSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionEngine` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionEngine` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionComment` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionComment` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionDataDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionDataDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionIndexDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionIndexDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionMaxRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionMaxRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionMinRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionMinRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionTablespace` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionTablespace` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => void; + + /** + * Enter a parse tree produced by the `partitionOptionNodeGroup` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => void; + /** + * Exit a parse tree produced by the `partitionOptionNodeGroup` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => void; + + /** + * Enter a parse tree produced by the `doDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterDoDbReplication?: (ctx: DoDbReplicationContext) => void; + /** + * Exit a parse tree produced by the `doDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitDoDbReplication?: (ctx: DoDbReplicationContext) => void; + + /** + * Enter a parse tree produced by the `ignoreDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => void; + /** + * Exit a parse tree produced by the `ignoreDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => void; + + /** + * Enter a parse tree produced by the `doTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterDoTableReplication?: (ctx: DoTableReplicationContext) => void; + /** + * Exit a parse tree produced by the `doTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitDoTableReplication?: (ctx: DoTableReplicationContext) => void; + + /** + * Enter a parse tree produced by the `ignoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => void; + /** + * Exit a parse tree produced by the `ignoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => void; + + /** + * Enter a parse tree produced by the `wildDoTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => void; + /** + * Exit a parse tree produced by the `wildDoTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => void; + + /** + * Enter a parse tree produced by the `wildIgnoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => void; + /** + * Exit a parse tree produced by the `wildIgnoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => void; + + /** + * Enter a parse tree produced by the `rewriteDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => void; + /** + * Exit a parse tree produced by the `rewriteDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => void; + + /** + * Enter a parse tree produced by the `selectStarElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + enterSelectStarElement?: (ctx: SelectStarElementContext) => void; + /** + * Exit a parse tree produced by the `selectStarElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + exitSelectStarElement?: (ctx: SelectStarElementContext) => void; + + /** + * Enter a parse tree produced by the `selectColumnElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + enterSelectColumnElement?: (ctx: SelectColumnElementContext) => void; + /** + * Exit a parse tree produced by the `selectColumnElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + exitSelectColumnElement?: (ctx: SelectColumnElementContext) => void; + + /** + * Enter a parse tree produced by the `selectFunctionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + enterSelectFunctionElement?: (ctx: SelectFunctionElementContext) => void; + /** + * Exit a parse tree produced by the `selectFunctionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + exitSelectFunctionElement?: (ctx: SelectFunctionElementContext) => void; + + /** + * Enter a parse tree produced by the `selectExpressionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + enterSelectExpressionElement?: (ctx: SelectExpressionElementContext) => void; + /** + * Exit a parse tree produced by the `selectExpressionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + exitSelectExpressionElement?: (ctx: SelectExpressionElementContext) => void; + + /** + * Enter a parse tree produced by the `notExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + enterNotExpression?: (ctx: NotExpressionContext) => void; + /** + * Exit a parse tree produced by the `notExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + exitNotExpression?: (ctx: NotExpressionContext) => void; + + /** + * Enter a parse tree produced by the `logicalExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + enterLogicalExpression?: (ctx: LogicalExpressionContext) => void; + /** + * Exit a parse tree produced by the `logicalExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + exitLogicalExpression?: (ctx: LogicalExpressionContext) => void; + + /** + * Enter a parse tree produced by the `isExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + enterIsExpression?: (ctx: IsExpressionContext) => void; + /** + * Exit a parse tree produced by the `isExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + exitIsExpression?: (ctx: IsExpressionContext) => void; + + /** + * Enter a parse tree produced by the `predicateExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + enterPredicateExpression?: (ctx: PredicateExpressionContext) => void; + /** + * Exit a parse tree produced by the `predicateExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + */ + exitPredicateExpression?: (ctx: PredicateExpressionContext) => void; + + /** + * Enter a parse tree produced by the `partitionComparison` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + enterPartitionComparison?: (ctx: PartitionComparisonContext) => void; + /** + * Exit a parse tree produced by the `partitionComparison` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + exitPartitionComparison?: (ctx: PartitionComparisonContext) => void; + + /** + * Enter a parse tree produced by the `partitionListAtom` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + enterPartitionListAtom?: (ctx: PartitionListAtomContext) => void; + /** + * Exit a parse tree produced by the `partitionListAtom` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + exitPartitionListAtom?: (ctx: PartitionListAtomContext) => void; + + /** + * Enter a parse tree produced by the `partitionListVector` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + enterPartitionListVector?: (ctx: PartitionListVectorContext) => void; + /** + * Exit a parse tree produced by the `partitionListVector` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + exitPartitionListVector?: (ctx: PartitionListVectorContext) => void; + + /** + * Enter a parse tree produced by the `partitionSimple` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + enterPartitionSimple?: (ctx: PartitionSimpleContext) => void; + /** + * Exit a parse tree produced by the `partitionSimple` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + exitPartitionSimple?: (ctx: PartitionSimpleContext) => void; + + /** + * Enter a parse tree produced by the `hashAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterHashAuthOption?: (ctx: HashAuthOptionContext) => void; + /** + * Exit a parse tree produced by the `hashAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitHashAuthOption?: (ctx: HashAuthOptionContext) => void; + + /** + * Enter a parse tree produced by the `randomAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterRandomAuthOption?: (ctx: RandomAuthOptionContext) => void; + /** + * Exit a parse tree produced by the `randomAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitRandomAuthOption?: (ctx: RandomAuthOptionContext) => void; + + /** + * Enter a parse tree produced by the `stringAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterStringAuthOption?: (ctx: StringAuthOptionContext) => void; + /** + * Exit a parse tree produced by the `stringAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitStringAuthOption?: (ctx: StringAuthOptionContext) => void; + + /** + * Enter a parse tree produced by the `moduleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterModuleAuthOption?: (ctx: ModuleAuthOptionContext) => void; + /** + * Exit a parse tree produced by the `moduleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitModuleAuthOption?: (ctx: ModuleAuthOptionContext) => void; + + /** + * Enter a parse tree produced by the `simpleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => void; + /** + * Exit a parse tree produced by the `simpleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => void; + + /** + * Enter a parse tree produced by the `simpleFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + enterSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => void; + /** + * Exit a parse tree produced by the `simpleFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + exitSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => void; + + /** + * Enter a parse tree produced by the `channelFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + enterChannelFlushOption?: (ctx: ChannelFlushOptionContext) => void; + /** + * Exit a parse tree produced by the `channelFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + exitChannelFlushOption?: (ctx: ChannelFlushOptionContext) => void; + + /** + * Enter a parse tree produced by the `tableFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + enterTableFlushOption?: (ctx: TableFlushOptionContext) => void; + /** + * Exit a parse tree produced by the `tableFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + exitTableFlushOption?: (ctx: TableFlushOptionContext) => void; + + /** + * Enter a parse tree produced by the `CloseCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + enterCloseCursor?: (ctx: CloseCursorContext) => void; + /** + * Exit a parse tree produced by the `CloseCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + exitCloseCursor?: (ctx: CloseCursorContext) => void; + + /** + * Enter a parse tree produced by the `FetchCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + enterFetchCursor?: (ctx: FetchCursorContext) => void; + /** + * Exit a parse tree produced by the `FetchCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + exitFetchCursor?: (ctx: FetchCursorContext) => void; + + /** + * Enter a parse tree produced by the `OpenCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + enterOpenCursor?: (ctx: OpenCursorContext) => void; + /** + * Exit a parse tree produced by the `OpenCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + exitOpenCursor?: (ctx: OpenCursorContext) => void; + + /** + * Enter a parse tree produced by the `tableSourceBase` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + enterTableSourceBase?: (ctx: TableSourceBaseContext) => void; + /** + * Exit a parse tree produced by the `tableSourceBase` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + exitTableSourceBase?: (ctx: TableSourceBaseContext) => void; + + /** + * Enter a parse tree produced by the `tableSourceNested` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + enterTableSourceNested?: (ctx: TableSourceNestedContext) => void; + /** + * Exit a parse tree produced by the `tableSourceNested` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + exitTableSourceNested?: (ctx: TableSourceNestedContext) => void; + + /** + * Enter a parse tree produced by the `tableJson` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + enterTableJson?: (ctx: TableJsonContext) => void; + /** + * Exit a parse tree produced by the `tableJson` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + exitTableJson?: (ctx: TableJsonContext) => void; + + /** + * Enter a parse tree produced by the `preciseSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + enterPreciseSchedule?: (ctx: PreciseScheduleContext) => void; + /** + * Exit a parse tree produced by the `preciseSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + exitPreciseSchedule?: (ctx: PreciseScheduleContext) => void; + + /** + * Enter a parse tree produced by the `intervalSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + enterIntervalSchedule?: (ctx: IntervalScheduleContext) => void; + /** + * Exit a parse tree produced by the `intervalSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + exitIntervalSchedule?: (ctx: IntervalScheduleContext) => void; + + /** + * Enter a parse tree produced by the `routineComment` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineComment?: (ctx: RoutineCommentContext) => void; + /** + * Exit a parse tree produced by the `routineComment` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineComment?: (ctx: RoutineCommentContext) => void; + + /** + * Enter a parse tree produced by the `routineLanguage` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineLanguage?: (ctx: RoutineLanguageContext) => void; + /** + * Exit a parse tree produced by the `routineLanguage` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineLanguage?: (ctx: RoutineLanguageContext) => void; + + /** + * Enter a parse tree produced by the `routineBehavior` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineBehavior?: (ctx: RoutineBehaviorContext) => void; + /** + * Exit a parse tree produced by the `routineBehavior` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineBehavior?: (ctx: RoutineBehaviorContext) => void; + + /** + * Enter a parse tree produced by the `routineData` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineData?: (ctx: RoutineDataContext) => void; + /** + * Exit a parse tree produced by the `routineData` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineData?: (ctx: RoutineDataContext) => void; + + /** + * Enter a parse tree produced by the `routineSecurity` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineSecurity?: (ctx: RoutineSecurityContext) => void; + /** + * Exit a parse tree produced by the `routineSecurity` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineSecurity?: (ctx: RoutineSecurityContext) => void; + + /** + * Enter a parse tree produced by the `currentSchemaPriviLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => void; + /** + * Exit a parse tree produced by the `currentSchemaPriviLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => void; + + /** + * Enter a parse tree produced by the `globalPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => void; + /** + * Exit a parse tree produced by the `globalPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => void; + + /** + * Enter a parse tree produced by the `definiteSchemaPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => void; + /** + * Exit a parse tree produced by the `definiteSchemaPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => void; + + /** + * Enter a parse tree produced by the `definiteFullTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => void; + /** + * Exit a parse tree produced by the `definiteFullTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => void; + + /** + * Enter a parse tree produced by the `definiteFullTablePrivLevel2` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => void; + /** + * Exit a parse tree produced by the `definiteFullTablePrivLevel2` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => void; + + /** + * Enter a parse tree produced by the `definiteTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => void; + /** + * Exit a parse tree produced by the `definiteTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => void; + + /** + * Enter a parse tree produced by the `showMasterLogs` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowMasterLogs?: (ctx: ShowMasterLogsContext) => void; + /** + * Exit a parse tree produced by the `showMasterLogs` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowMasterLogs?: (ctx: ShowMasterLogsContext) => void; + + /** + * Enter a parse tree produced by the `showLogEvents` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowLogEvents?: (ctx: ShowLogEventsContext) => void; + /** + * Exit a parse tree produced by the `showLogEvents` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowLogEvents?: (ctx: ShowLogEventsContext) => void; + + /** + * Enter a parse tree produced by the `showObjectFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowObjectFilter?: (ctx: ShowObjectFilterContext) => void; + /** + * Exit a parse tree produced by the `showObjectFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowObjectFilter?: (ctx: ShowObjectFilterContext) => void; + + /** + * Enter a parse tree produced by the `showColumns` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowColumns?: (ctx: ShowColumnsContext) => void; + /** + * Exit a parse tree produced by the `showColumns` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowColumns?: (ctx: ShowColumnsContext) => void; + + /** + * Enter a parse tree produced by the `showCreateDb` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateDb?: (ctx: ShowCreateDbContext) => void; + /** + * Exit a parse tree produced by the `showCreateDb` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateDb?: (ctx: ShowCreateDbContext) => void; + + /** + * Enter a parse tree produced by the `showCreateFullIdObject` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => void; + /** + * Exit a parse tree produced by the `showCreateFullIdObject` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => void; + + /** + * Enter a parse tree produced by the `showCreateFunction` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateFunction?: (ctx: ShowCreateFunctionContext) => void; + /** + * Exit a parse tree produced by the `showCreateFunction` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateFunction?: (ctx: ShowCreateFunctionContext) => void; + + /** + * Enter a parse tree produced by the `showCreateView` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateView?: (ctx: ShowCreateViewContext) => void; + /** + * Exit a parse tree produced by the `showCreateView` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateView?: (ctx: ShowCreateViewContext) => void; + + /** + * Enter a parse tree produced by the `showCreateTable` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateTable?: (ctx: ShowCreateTableContext) => void; + /** + * Exit a parse tree produced by the `showCreateTable` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateTable?: (ctx: ShowCreateTableContext) => void; + + /** + * Enter a parse tree produced by the `showCreateUser` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCreateUser?: (ctx: ShowCreateUserContext) => void; + /** + * Exit a parse tree produced by the `showCreateUser` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCreateUser?: (ctx: ShowCreateUserContext) => void; + + /** + * Enter a parse tree produced by the `showEngine` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowEngine?: (ctx: ShowEngineContext) => void; + /** + * Exit a parse tree produced by the `showEngine` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowEngine?: (ctx: ShowEngineContext) => void; + + /** + * Enter a parse tree produced by the `showGlobalInfo` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => void; + /** + * Exit a parse tree produced by the `showGlobalInfo` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => void; + + /** + * Enter a parse tree produced by the `showErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowErrors?: (ctx: ShowErrorsContext) => void; + /** + * Exit a parse tree produced by the `showErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowErrors?: (ctx: ShowErrorsContext) => void; + + /** + * Enter a parse tree produced by the `showCountErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowCountErrors?: (ctx: ShowCountErrorsContext) => void; + /** + * Exit a parse tree produced by the `showCountErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowCountErrors?: (ctx: ShowCountErrorsContext) => void; + + /** + * Enter a parse tree produced by the `showSchemaFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => void; + /** + * Exit a parse tree produced by the `showSchemaFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => void; + + /** + * Enter a parse tree produced by the `showPercedureCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowPercedureCode?: (ctx: ShowPercedureCodeContext) => void; + /** + * Exit a parse tree produced by the `showPercedureCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowPercedureCode?: (ctx: ShowPercedureCodeContext) => void; + + /** + * Enter a parse tree produced by the `showFunctionCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowFunctionCode?: (ctx: ShowFunctionCodeContext) => void; + /** + * Exit a parse tree produced by the `showFunctionCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowFunctionCode?: (ctx: ShowFunctionCodeContext) => void; + + /** + * Enter a parse tree produced by the `showGrants` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowGrants?: (ctx: ShowGrantsContext) => void; + /** + * Exit a parse tree produced by the `showGrants` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowGrants?: (ctx: ShowGrantsContext) => void; + + /** + * Enter a parse tree produced by the `showIndexes` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowIndexes?: (ctx: ShowIndexesContext) => void; + /** + * Exit a parse tree produced by the `showIndexes` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowIndexes?: (ctx: ShowIndexesContext) => void; + + /** + * Enter a parse tree produced by the `showOpenTables` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowOpenTables?: (ctx: ShowOpenTablesContext) => void; + /** + * Exit a parse tree produced by the `showOpenTables` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowOpenTables?: (ctx: ShowOpenTablesContext) => void; + + /** + * Enter a parse tree produced by the `showProfile` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowProfile?: (ctx: ShowProfileContext) => void; + /** + * Exit a parse tree produced by the `showProfile` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowProfile?: (ctx: ShowProfileContext) => void; + + /** + * Enter a parse tree produced by the `showSlaveStatus` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => void; + /** + * Exit a parse tree produced by the `showSlaveStatus` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => void; + + /** + * Enter a parse tree produced by the `showReplicas` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowReplicas?: (ctx: ShowReplicasContext) => void; + /** + * Exit a parse tree produced by the `showReplicas` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowReplicas?: (ctx: ShowReplicasContext) => void; + + /** + * Enter a parse tree produced by the `alterSimpleDatabase` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + enterAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => void; + /** + * Exit a parse tree produced by the `alterSimpleDatabase` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + exitAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => void; + + /** + * Enter a parse tree produced by the `alterUpgradeName` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + enterAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => void; + /** + * Exit a parse tree produced by the `alterUpgradeName` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + exitAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => void; + + /** + * Enter a parse tree produced by the `detailRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + enterDetailRevoke?: (ctx: DetailRevokeContext) => void; + /** + * Exit a parse tree produced by the `detailRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + exitDetailRevoke?: (ctx: DetailRevokeContext) => void; + + /** + * Enter a parse tree produced by the `shortRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + enterShortRevoke?: (ctx: ShortRevokeContext) => void; + /** + * Exit a parse tree produced by the `shortRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + exitShortRevoke?: (ctx: ShortRevokeContext) => void; + + /** + * Enter a parse tree produced by the `proxyAndRoleRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + enterProxyAndRoleRevoke?: (ctx: ProxyAndRoleRevokeContext) => void; + /** + * Exit a parse tree produced by the `proxyAndRoleRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + exitProxyAndRoleRevoke?: (ctx: ProxyAndRoleRevokeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.program`. + * @param ctx the parse tree + */ + enterProgram?: (ctx: ProgramContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.program`. + * @param ctx the parse tree + */ + exitProgram?: (ctx: ProgramContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.sqlStatements`. + * @param ctx the parse tree + */ + enterSqlStatements?: (ctx: SqlStatementsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.sqlStatements`. + * @param ctx the parse tree + */ + exitSqlStatements?: (ctx: SqlStatementsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.sqlStatement`. + * @param ctx the parse tree + */ + enterSqlStatement?: (ctx: SqlStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.sqlStatement`. + * @param ctx the parse tree + */ + exitSqlStatement?: (ctx: SqlStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.emptyStatement_`. + * @param ctx the parse tree + */ + enterEmptyStatement_?: (ctx: EmptyStatement_Context) => void; + /** + * Exit a parse tree produced by `MySqlParser.emptyStatement_`. + * @param ctx the parse tree + */ + exitEmptyStatement_?: (ctx: EmptyStatement_Context) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ddlStatement`. + * @param ctx the parse tree + */ + enterDdlStatement?: (ctx: DdlStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ddlStatement`. + * @param ctx the parse tree + */ + exitDdlStatement?: (ctx: DdlStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dmlStatement`. + * @param ctx the parse tree + */ + enterDmlStatement?: (ctx: DmlStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dmlStatement`. + * @param ctx the parse tree + */ + exitDmlStatement?: (ctx: DmlStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.transactionStatement`. + * @param ctx the parse tree + */ + enterTransactionStatement?: (ctx: TransactionStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.transactionStatement`. + * @param ctx the parse tree + */ + exitTransactionStatement?: (ctx: TransactionStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.replicationStatement`. + * @param ctx the parse tree + */ + enterReplicationStatement?: (ctx: ReplicationStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.replicationStatement`. + * @param ctx the parse tree + */ + exitReplicationStatement?: (ctx: ReplicationStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.preparedStatement`. + * @param ctx the parse tree + */ + enterPreparedStatement?: (ctx: PreparedStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.preparedStatement`. + * @param ctx the parse tree + */ + exitPreparedStatement?: (ctx: PreparedStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.compoundStatement`. + * @param ctx the parse tree + */ + enterCompoundStatement?: (ctx: CompoundStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.compoundStatement`. + * @param ctx the parse tree + */ + exitCompoundStatement?: (ctx: CompoundStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.administrationStatement`. + * @param ctx the parse tree + */ + enterAdministrationStatement?: (ctx: AdministrationStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.administrationStatement`. + * @param ctx the parse tree + */ + exitAdministrationStatement?: (ctx: AdministrationStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.utilityStatement`. + * @param ctx the parse tree + */ + enterUtilityStatement?: (ctx: UtilityStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.utilityStatement`. + * @param ctx the parse tree + */ + exitUtilityStatement?: (ctx: UtilityStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createDatabase`. + * @param ctx the parse tree + */ + enterCreateDatabase?: (ctx: CreateDatabaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createDatabase`. + * @param ctx the parse tree + */ + exitCreateDatabase?: (ctx: CreateDatabaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createEvent`. + * @param ctx the parse tree + */ + enterCreateEvent?: (ctx: CreateEventContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createEvent`. + * @param ctx the parse tree + */ + exitCreateEvent?: (ctx: CreateEventContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createIndex`. + * @param ctx the parse tree + */ + enterCreateIndex?: (ctx: CreateIndexContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createIndex`. + * @param ctx the parse tree + */ + exitCreateIndex?: (ctx: CreateIndexContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createLogfileGroup`. + * @param ctx the parse tree + */ + enterCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createLogfileGroup`. + * @param ctx the parse tree + */ + exitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createProcedure`. + * @param ctx the parse tree + */ + enterCreateProcedure?: (ctx: CreateProcedureContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createProcedure`. + * @param ctx the parse tree + */ + exitCreateProcedure?: (ctx: CreateProcedureContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createRole`. + * @param ctx the parse tree + */ + enterCreateRole?: (ctx: CreateRoleContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createRole`. + * @param ctx the parse tree + */ + exitCreateRole?: (ctx: CreateRoleContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createServer`. + * @param ctx the parse tree + */ + enterCreateServer?: (ctx: CreateServerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createServer`. + * @param ctx the parse tree + */ + exitCreateServer?: (ctx: CreateServerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createTable`. + * @param ctx the parse tree + */ + enterCreateTable?: (ctx: CreateTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createTable`. + * @param ctx the parse tree + */ + exitCreateTable?: (ctx: CreateTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * @param ctx the parse tree + */ + enterCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * @param ctx the parse tree + */ + exitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createTablespaceNdb`. + * @param ctx the parse tree + */ + enterCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createTablespaceNdb`. + * @param ctx the parse tree + */ + exitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createTrigger`. + * @param ctx the parse tree + */ + enterCreateTrigger?: (ctx: CreateTriggerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createTrigger`. + * @param ctx the parse tree + */ + exitCreateTrigger?: (ctx: CreateTriggerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.withClause`. + * @param ctx the parse tree + */ + enterWithClause?: (ctx: WithClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.withClause`. + * @param ctx the parse tree + */ + exitWithClause?: (ctx: WithClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.commonTableExpressions`. + * @param ctx the parse tree + */ + enterCommonTableExpressions?: (ctx: CommonTableExpressionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.commonTableExpressions`. + * @param ctx the parse tree + */ + exitCommonTableExpressions?: (ctx: CommonTableExpressionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createView`. + * @param ctx the parse tree + */ + enterCreateView?: (ctx: CreateViewContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createView`. + * @param ctx the parse tree + */ + exitCreateView?: (ctx: CreateViewContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createDatabaseOption`. + * @param ctx the parse tree + */ + enterCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createDatabaseOption`. + * @param ctx the parse tree + */ + exitCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.charSet`. + * @param ctx the parse tree + */ + enterCharSet?: (ctx: CharSetContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.charSet`. + * @param ctx the parse tree + */ + exitCharSet?: (ctx: CharSetContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.currentUserExpression`. + * @param ctx the parse tree + */ + enterCurrentUserExpression?: (ctx: CurrentUserExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.currentUserExpression`. + * @param ctx the parse tree + */ + exitCurrentUserExpression?: (ctx: CurrentUserExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ownerStatement`. + * @param ctx the parse tree + */ + enterOwnerStatement?: (ctx: OwnerStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ownerStatement`. + * @param ctx the parse tree + */ + exitOwnerStatement?: (ctx: OwnerStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + enterScheduleExpression?: (ctx: ScheduleExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + */ + exitScheduleExpression?: (ctx: ScheduleExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.timestampValue`. + * @param ctx the parse tree + */ + enterTimestampValue?: (ctx: TimestampValueContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.timestampValue`. + * @param ctx the parse tree + */ + exitTimestampValue?: (ctx: TimestampValueContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.intervalExpr`. + * @param ctx the parse tree + */ + enterIntervalExpr?: (ctx: IntervalExprContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.intervalExpr`. + * @param ctx the parse tree + */ + exitIntervalExpr?: (ctx: IntervalExprContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.intervalType`. + * @param ctx the parse tree + */ + enterIntervalType?: (ctx: IntervalTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.intervalType`. + * @param ctx the parse tree + */ + exitIntervalType?: (ctx: IntervalTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.enableType`. + * @param ctx the parse tree + */ + enterEnableType?: (ctx: EnableTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.enableType`. + * @param ctx the parse tree + */ + exitEnableType?: (ctx: EnableTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexType`. + * @param ctx the parse tree + */ + enterIndexType?: (ctx: IndexTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexType`. + * @param ctx the parse tree + */ + exitIndexType?: (ctx: IndexTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexOption`. + * @param ctx the parse tree + */ + enterIndexOption?: (ctx: IndexOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexOption`. + * @param ctx the parse tree + */ + exitIndexOption?: (ctx: IndexOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.procedureParameter`. + * @param ctx the parse tree + */ + enterProcedureParameter?: (ctx: ProcedureParameterContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.procedureParameter`. + * @param ctx the parse tree + */ + exitProcedureParameter?: (ctx: ProcedureParameterContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + enterRoutineOption?: (ctx: RoutineOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.routineOption`. + * @param ctx the parse tree + */ + exitRoutineOption?: (ctx: RoutineOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.serverOption`. + * @param ctx the parse tree + */ + enterServerOption?: (ctx: ServerOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.serverOption`. + * @param ctx the parse tree + */ + exitServerOption?: (ctx: ServerOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createDefinitions`. + * @param ctx the parse tree + */ + enterCreateDefinitions?: (ctx: CreateDefinitionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createDefinitions`. + * @param ctx the parse tree + */ + exitCreateDefinitions?: (ctx: CreateDefinitionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createDefinition`. + * @param ctx the parse tree + */ + enterCreateDefinition?: (ctx: CreateDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createDefinition`. + * @param ctx the parse tree + */ + exitCreateDefinition?: (ctx: CreateDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.checkConstraintDefinition`. + * @param ctx the parse tree + */ + enterCheckConstraintDefinition?: (ctx: CheckConstraintDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.checkConstraintDefinition`. + * @param ctx the parse tree + */ + exitCheckConstraintDefinition?: (ctx: CheckConstraintDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.constraintSymbol`. + * @param ctx the parse tree + */ + enterConstraintSymbol?: (ctx: ConstraintSymbolContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.constraintSymbol`. + * @param ctx the parse tree + */ + exitConstraintSymbol?: (ctx: ConstraintSymbolContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.columnDefinition`. + * @param ctx the parse tree + */ + enterColumnDefinition?: (ctx: ColumnDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.columnDefinition`. + * @param ctx the parse tree + */ + exitColumnDefinition?: (ctx: ColumnDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + enterColumnConstraint?: (ctx: ColumnConstraintContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.columnConstraint`. + * @param ctx the parse tree + */ + exitColumnConstraint?: (ctx: ColumnConstraintContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.referenceDefinition`. + * @param ctx the parse tree + */ + enterReferenceDefinition?: (ctx: ReferenceDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.referenceDefinition`. + * @param ctx the parse tree + */ + exitReferenceDefinition?: (ctx: ReferenceDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.referenceAction`. + * @param ctx the parse tree + */ + enterReferenceAction?: (ctx: ReferenceActionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.referenceAction`. + * @param ctx the parse tree + */ + exitReferenceAction?: (ctx: ReferenceActionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.referenceControlType`. + * @param ctx the parse tree + */ + enterReferenceControlType?: (ctx: ReferenceControlTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.referenceControlType`. + * @param ctx the parse tree + */ + exitReferenceControlType?: (ctx: ReferenceControlTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + enterTableOption?: (ctx: TableOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableOption`. + * @param ctx the parse tree + */ + exitTableOption?: (ctx: TableOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableType`. + * @param ctx the parse tree + */ + enterTableType?: (ctx: TableTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableType`. + * @param ctx the parse tree + */ + exitTableType?: (ctx: TableTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tablespaceStorage`. + * @param ctx the parse tree + */ + enterTablespaceStorage?: (ctx: TablespaceStorageContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tablespaceStorage`. + * @param ctx the parse tree + */ + exitTablespaceStorage?: (ctx: TablespaceStorageContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionDefinitions`. + * @param ctx the parse tree + */ + enterPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionDefinitions`. + * @param ctx the parse tree + */ + exitPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + enterSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + */ + exitSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + enterPartitionDefinition?: (ctx: PartitionDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + */ + exitPartitionDefinition?: (ctx: PartitionDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionDefinerAtom`. + * @param ctx the parse tree + */ + enterPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionDefinerAtom`. + * @param ctx the parse tree + */ + exitPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionDefinerVector`. + * @param ctx the parse tree + */ + enterPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionDefinerVector`. + * @param ctx the parse tree + */ + exitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.subpartitionDefinition`. + * @param ctx the parse tree + */ + enterSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.subpartitionDefinition`. + * @param ctx the parse tree + */ + exitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + enterPartitionOption?: (ctx: PartitionOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionOption`. + * @param ctx the parse tree + */ + exitPartitionOption?: (ctx: PartitionOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + enterAlterDatabase?: (ctx: AlterDatabaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterDatabase`. + * @param ctx the parse tree + */ + exitAlterDatabase?: (ctx: AlterDatabaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterEvent`. + * @param ctx the parse tree + */ + enterAlterEvent?: (ctx: AlterEventContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterEvent`. + * @param ctx the parse tree + */ + exitAlterEvent?: (ctx: AlterEventContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterFunction`. + * @param ctx the parse tree + */ + enterAlterFunction?: (ctx: AlterFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterFunction`. + * @param ctx the parse tree + */ + exitAlterFunction?: (ctx: AlterFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterInstance`. + * @param ctx the parse tree + */ + enterAlterInstance?: (ctx: AlterInstanceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterInstance`. + * @param ctx the parse tree + */ + exitAlterInstance?: (ctx: AlterInstanceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterLogfileGroup`. + * @param ctx the parse tree + */ + enterAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterLogfileGroup`. + * @param ctx the parse tree + */ + exitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterProcedure`. + * @param ctx the parse tree + */ + enterAlterProcedure?: (ctx: AlterProcedureContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterProcedure`. + * @param ctx the parse tree + */ + exitAlterProcedure?: (ctx: AlterProcedureContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterServer`. + * @param ctx the parse tree + */ + enterAlterServer?: (ctx: AlterServerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterServer`. + * @param ctx the parse tree + */ + exitAlterServer?: (ctx: AlterServerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterTable`. + * @param ctx the parse tree + */ + enterAlterTable?: (ctx: AlterTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterTable`. + * @param ctx the parse tree + */ + exitAlterTable?: (ctx: AlterTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterTablespace`. + * @param ctx the parse tree + */ + enterAlterTablespace?: (ctx: AlterTablespaceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterTablespace`. + * @param ctx the parse tree + */ + exitAlterTablespace?: (ctx: AlterTablespaceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterView`. + * @param ctx the parse tree + */ + enterAlterView?: (ctx: AlterViewContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterView`. + * @param ctx the parse tree + */ + exitAlterView?: (ctx: AlterViewContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + enterAlterOption?: (ctx: AlterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterOption`. + * @param ctx the parse tree + */ + exitAlterOption?: (ctx: AlterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + enterAlterPartitionSpecification?: (ctx: AlterPartitionSpecificationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + */ + exitAlterPartitionSpecification?: (ctx: AlterPartitionSpecificationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropDatabase`. + * @param ctx the parse tree + */ + enterDropDatabase?: (ctx: DropDatabaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropDatabase`. + * @param ctx the parse tree + */ + exitDropDatabase?: (ctx: DropDatabaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropEvent`. + * @param ctx the parse tree + */ + enterDropEvent?: (ctx: DropEventContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropEvent`. + * @param ctx the parse tree + */ + exitDropEvent?: (ctx: DropEventContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropIndex`. + * @param ctx the parse tree + */ + enterDropIndex?: (ctx: DropIndexContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropIndex`. + * @param ctx the parse tree + */ + exitDropIndex?: (ctx: DropIndexContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropLogfileGroup`. + * @param ctx the parse tree + */ + enterDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropLogfileGroup`. + * @param ctx the parse tree + */ + exitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropProcedure`. + * @param ctx the parse tree + */ + enterDropProcedure?: (ctx: DropProcedureContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropProcedure`. + * @param ctx the parse tree + */ + exitDropProcedure?: (ctx: DropProcedureContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropFunction`. + * @param ctx the parse tree + */ + enterDropFunction?: (ctx: DropFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropFunction`. + * @param ctx the parse tree + */ + exitDropFunction?: (ctx: DropFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropServer`. + * @param ctx the parse tree + */ + enterDropServer?: (ctx: DropServerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropServer`. + * @param ctx the parse tree + */ + exitDropServer?: (ctx: DropServerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropSpatial`. + * @param ctx the parse tree + */ + enterDropSpatial?: (ctx: DropSpatialContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropSpatial`. + * @param ctx the parse tree + */ + exitDropSpatial?: (ctx: DropSpatialContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropTable`. + * @param ctx the parse tree + */ + enterDropTable?: (ctx: DropTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropTable`. + * @param ctx the parse tree + */ + exitDropTable?: (ctx: DropTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropTablespace`. + * @param ctx the parse tree + */ + enterDropTablespace?: (ctx: DropTablespaceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropTablespace`. + * @param ctx the parse tree + */ + exitDropTablespace?: (ctx: DropTablespaceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropTrigger`. + * @param ctx the parse tree + */ + enterDropTrigger?: (ctx: DropTriggerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropTrigger`. + * @param ctx the parse tree + */ + exitDropTrigger?: (ctx: DropTriggerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropView`. + * @param ctx the parse tree + */ + enterDropView?: (ctx: DropViewContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropView`. + * @param ctx the parse tree + */ + exitDropView?: (ctx: DropViewContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropRole`. + * @param ctx the parse tree + */ + enterDropRole?: (ctx: DropRoleContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropRole`. + * @param ctx the parse tree + */ + exitDropRole?: (ctx: DropRoleContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setRole`. + * @param ctx the parse tree + */ + enterSetRole?: (ctx: SetRoleContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setRole`. + * @param ctx the parse tree + */ + exitSetRole?: (ctx: SetRoleContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.renameTable`. + * @param ctx the parse tree + */ + enterRenameTable?: (ctx: RenameTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.renameTable`. + * @param ctx the parse tree + */ + exitRenameTable?: (ctx: RenameTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.renameTableClause`. + * @param ctx the parse tree + */ + enterRenameTableClause?: (ctx: RenameTableClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.renameTableClause`. + * @param ctx the parse tree + */ + exitRenameTableClause?: (ctx: RenameTableClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.truncateTable`. + * @param ctx the parse tree + */ + enterTruncateTable?: (ctx: TruncateTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.truncateTable`. + * @param ctx the parse tree + */ + exitTruncateTable?: (ctx: TruncateTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.callStatement`. + * @param ctx the parse tree + */ + enterCallStatement?: (ctx: CallStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.callStatement`. + * @param ctx the parse tree + */ + exitCallStatement?: (ctx: CallStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.deleteStatement`. + * @param ctx the parse tree + */ + enterDeleteStatement?: (ctx: DeleteStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.deleteStatement`. + * @param ctx the parse tree + */ + exitDeleteStatement?: (ctx: DeleteStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.doStatement`. + * @param ctx the parse tree + */ + enterDoStatement?: (ctx: DoStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.doStatement`. + * @param ctx the parse tree + */ + exitDoStatement?: (ctx: DoStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerStatement`. + * @param ctx the parse tree + */ + enterHandlerStatement?: (ctx: HandlerStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerStatement`. + * @param ctx the parse tree + */ + exitHandlerStatement?: (ctx: HandlerStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.insertStatement`. + * @param ctx the parse tree + */ + enterInsertStatement?: (ctx: InsertStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.insertStatement`. + * @param ctx the parse tree + */ + exitInsertStatement?: (ctx: InsertStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.asRowAlias`. + * @param ctx the parse tree + */ + enterAsRowAlias?: (ctx: AsRowAliasContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.asRowAlias`. + * @param ctx the parse tree + */ + exitAsRowAlias?: (ctx: AsRowAliasContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectOrTableOrValues`. + * @param ctx the parse tree + */ + enterSelectOrTableOrValues?: (ctx: SelectOrTableOrValuesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectOrTableOrValues`. + * @param ctx the parse tree + */ + exitSelectOrTableOrValues?: (ctx: SelectOrTableOrValuesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.interSectStatement`. + * @param ctx the parse tree + */ + enterInterSectStatement?: (ctx: InterSectStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.interSectStatement`. + * @param ctx the parse tree + */ + exitInterSectStatement?: (ctx: InterSectStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.interSectQuery`. + * @param ctx the parse tree + */ + enterInterSectQuery?: (ctx: InterSectQueryContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.interSectQuery`. + * @param ctx the parse tree + */ + exitInterSectQuery?: (ctx: InterSectQueryContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.loadDataStatement`. + * @param ctx the parse tree + */ + enterLoadDataStatement?: (ctx: LoadDataStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.loadDataStatement`. + * @param ctx the parse tree + */ + exitLoadDataStatement?: (ctx: LoadDataStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.loadXmlStatement`. + * @param ctx the parse tree + */ + enterLoadXmlStatement?: (ctx: LoadXmlStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.loadXmlStatement`. + * @param ctx the parse tree + */ + exitLoadXmlStatement?: (ctx: LoadXmlStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.parenthesizedQuery`. + * @param ctx the parse tree + */ + enterParenthesizedQuery?: (ctx: ParenthesizedQueryContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.parenthesizedQuery`. + * @param ctx the parse tree + */ + exitParenthesizedQuery?: (ctx: ParenthesizedQueryContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.replaceStatement`. + * @param ctx the parse tree + */ + enterReplaceStatement?: (ctx: ReplaceStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.replaceStatement`. + * @param ctx the parse tree + */ + exitReplaceStatement?: (ctx: ReplaceStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + enterSelectStatement?: (ctx: SelectStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectStatement`. + * @param ctx the parse tree + */ + exitSelectStatement?: (ctx: SelectStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setOperations`. + * @param ctx the parse tree + */ + enterSetOperations?: (ctx: SetOperationsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setOperations`. + * @param ctx the parse tree + */ + exitSetOperations?: (ctx: SetOperationsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryExpressionBody`. + * @param ctx the parse tree + */ + enterQueryExpressionBody?: (ctx: QueryExpressionBodyContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryExpressionBody`. + * @param ctx the parse tree + */ + exitQueryExpressionBody?: (ctx: QueryExpressionBodyContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryItem`. + * @param ctx the parse tree + */ + enterQueryItem?: (ctx: QueryItemContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryItem`. + * @param ctx the parse tree + */ + exitQueryItem?: (ctx: QueryItemContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryPrimary`. + * @param ctx the parse tree + */ + enterQueryPrimary?: (ctx: QueryPrimaryContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryPrimary`. + * @param ctx the parse tree + */ + exitQueryPrimary?: (ctx: QueryPrimaryContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.updateStatement`. + * @param ctx the parse tree + */ + enterUpdateStatement?: (ctx: UpdateStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.updateStatement`. + * @param ctx the parse tree + */ + exitUpdateStatement?: (ctx: UpdateStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.valuesStatement`. + * @param ctx the parse tree + */ + enterValuesStatement?: (ctx: ValuesStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.valuesStatement`. + * @param ctx the parse tree + */ + exitValuesStatement?: (ctx: ValuesStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.parenthesizedQueryExpression`. + * @param ctx the parse tree + */ + enterParenthesizedQueryExpression?: (ctx: ParenthesizedQueryExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.parenthesizedQueryExpression`. + * @param ctx the parse tree + */ + exitParenthesizedQueryExpression?: (ctx: ParenthesizedQueryExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryBlock`. + * @param ctx the parse tree + */ + enterQueryBlock?: (ctx: QueryBlockContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryBlock`. + * @param ctx the parse tree + */ + exitQueryBlock?: (ctx: QueryBlockContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.replaceStatementValuesOrSelectOrTable`. + * @param ctx the parse tree + */ + enterReplaceStatementValuesOrSelectOrTable?: (ctx: ReplaceStatementValuesOrSelectOrTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.replaceStatementValuesOrSelectOrTable`. + * @param ctx the parse tree + */ + exitReplaceStatementValuesOrSelectOrTable?: (ctx: ReplaceStatementValuesOrSelectOrTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.rowValuesList`. + * @param ctx the parse tree + */ + enterRowValuesList?: (ctx: RowValuesListContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.rowValuesList`. + * @param ctx the parse tree + */ + exitRowValuesList?: (ctx: RowValuesListContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setAssignmentList`. + * @param ctx the parse tree + */ + enterSetAssignmentList?: (ctx: SetAssignmentListContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setAssignmentList`. + * @param ctx the parse tree + */ + exitSetAssignmentList?: (ctx: SetAssignmentListContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.updatedElement`. + * @param ctx the parse tree + */ + enterUpdatedElement?: (ctx: UpdatedElementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.updatedElement`. + * @param ctx the parse tree + */ + exitUpdatedElement?: (ctx: UpdatedElementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.assignmentField`. + * @param ctx the parse tree + */ + enterAssignmentField?: (ctx: AssignmentFieldContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.assignmentField`. + * @param ctx the parse tree + */ + exitAssignmentField?: (ctx: AssignmentFieldContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lockClause`. + * @param ctx the parse tree + */ + enterLockClause?: (ctx: LockClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lockClause`. + * @param ctx the parse tree + */ + exitLockClause?: (ctx: LockClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.singleDeleteStatement`. + * @param ctx the parse tree + */ + enterSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.singleDeleteStatement`. + * @param ctx the parse tree + */ + exitSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.multipleDeleteStatement`. + * @param ctx the parse tree + */ + enterMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.multipleDeleteStatement`. + * @param ctx the parse tree + */ + exitMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerOpenStatement`. + * @param ctx the parse tree + */ + enterHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerOpenStatement`. + * @param ctx the parse tree + */ + exitHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerReadIndexStatement`. + * @param ctx the parse tree + */ + enterHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerReadIndexStatement`. + * @param ctx the parse tree + */ + exitHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerReadStatement`. + * @param ctx the parse tree + */ + enterHandlerReadStatement?: (ctx: HandlerReadStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerReadStatement`. + * @param ctx the parse tree + */ + exitHandlerReadStatement?: (ctx: HandlerReadStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerCloseStatement`. + * @param ctx the parse tree + */ + enterHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerCloseStatement`. + * @param ctx the parse tree + */ + exitHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.importTableStatement`. + * @param ctx the parse tree + */ + enterImportTableStatement?: (ctx: ImportTableStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.importTableStatement`. + * @param ctx the parse tree + */ + exitImportTableStatement?: (ctx: ImportTableStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.singleUpdateStatement`. + * @param ctx the parse tree + */ + enterSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.singleUpdateStatement`. + * @param ctx the parse tree + */ + exitSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.multipleUpdateStatement`. + * @param ctx the parse tree + */ + enterMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.multipleUpdateStatement`. + * @param ctx the parse tree + */ + exitMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.orderByClause`. + * @param ctx the parse tree + */ + enterOrderByClause?: (ctx: OrderByClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.orderByClause`. + * @param ctx the parse tree + */ + exitOrderByClause?: (ctx: OrderByClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.orderByExpression`. + * @param ctx the parse tree + */ + enterOrderByExpression?: (ctx: OrderByExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.orderByExpression`. + * @param ctx the parse tree + */ + exitOrderByExpression?: (ctx: OrderByExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableSources`. + * @param ctx the parse tree + */ + enterTableSources?: (ctx: TableSourcesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableSources`. + * @param ctx the parse tree + */ + exitTableSources?: (ctx: TableSourcesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + enterTableSource?: (ctx: TableSourceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableSource`. + * @param ctx the parse tree + */ + exitTableSource?: (ctx: TableSourceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + enterTableSourceItem?: (ctx: TableSourceItemContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + */ + exitTableSourceItem?: (ctx: TableSourceItemContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.fullColumnNames`. + * @param ctx the parse tree + */ + enterFullColumnNames?: (ctx: FullColumnNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.fullColumnNames`. + * @param ctx the parse tree + */ + exitFullColumnNames?: (ctx: FullColumnNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexHint`. + * @param ctx the parse tree + */ + enterIndexHint?: (ctx: IndexHintContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexHint`. + * @param ctx the parse tree + */ + exitIndexHint?: (ctx: IndexHintContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexHintType`. + * @param ctx the parse tree + */ + enterIndexHintType?: (ctx: IndexHintTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexHintType`. + * @param ctx the parse tree + */ + exitIndexHintType?: (ctx: IndexHintTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + enterJoinPart?: (ctx: JoinPartContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.joinPart`. + * @param ctx the parse tree + */ + exitJoinPart?: (ctx: JoinPartContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.joinSpec`. + * @param ctx the parse tree + */ + enterJoinSpec?: (ctx: JoinSpecContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.joinSpec`. + * @param ctx the parse tree + */ + exitJoinSpec?: (ctx: JoinSpecContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryExpression`. + * @param ctx the parse tree + */ + enterQueryExpression?: (ctx: QueryExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryExpression`. + * @param ctx the parse tree + */ + exitQueryExpression?: (ctx: QueryExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.queryExpressionNointo`. + * @param ctx the parse tree + */ + enterQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.queryExpressionNointo`. + * @param ctx the parse tree + */ + exitQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.querySpecification`. + * @param ctx the parse tree + */ + enterQuerySpecification?: (ctx: QuerySpecificationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.querySpecification`. + * @param ctx the parse tree + */ + exitQuerySpecification?: (ctx: QuerySpecificationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.querySpecificationNointo`. + * @param ctx the parse tree + */ + enterQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.querySpecificationNointo`. + * @param ctx the parse tree + */ + exitQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.unionParenthesis`. + * @param ctx the parse tree + */ + enterUnionParenthesis?: (ctx: UnionParenthesisContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.unionParenthesis`. + * @param ctx the parse tree + */ + exitUnionParenthesis?: (ctx: UnionParenthesisContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.unionStatement`. + * @param ctx the parse tree + */ + enterUnionStatement?: (ctx: UnionStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.unionStatement`. + * @param ctx the parse tree + */ + exitUnionStatement?: (ctx: UnionStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lateralStatement`. + * @param ctx the parse tree + */ + enterLateralStatement?: (ctx: LateralStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lateralStatement`. + * @param ctx the parse tree + */ + exitLateralStatement?: (ctx: LateralStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonTable`. + * @param ctx the parse tree + */ + enterJsonTable?: (ctx: JsonTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonTable`. + * @param ctx the parse tree + */ + exitJsonTable?: (ctx: JsonTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonColumnList`. + * @param ctx the parse tree + */ + enterJsonColumnList?: (ctx: JsonColumnListContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonColumnList`. + * @param ctx the parse tree + */ + exitJsonColumnList?: (ctx: JsonColumnListContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonColumn`. + * @param ctx the parse tree + */ + enterJsonColumn?: (ctx: JsonColumnContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonColumn`. + * @param ctx the parse tree + */ + exitJsonColumn?: (ctx: JsonColumnContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonOnEmpty`. + * @param ctx the parse tree + */ + enterJsonOnEmpty?: (ctx: JsonOnEmptyContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonOnEmpty`. + * @param ctx the parse tree + */ + exitJsonOnEmpty?: (ctx: JsonOnEmptyContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonOnError`. + * @param ctx the parse tree + */ + enterJsonOnError?: (ctx: JsonOnErrorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonOnError`. + * @param ctx the parse tree + */ + exitJsonOnError?: (ctx: JsonOnErrorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectSpec`. + * @param ctx the parse tree + */ + enterSelectSpec?: (ctx: SelectSpecContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectSpec`. + * @param ctx the parse tree + */ + exitSelectSpec?: (ctx: SelectSpecContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectElements`. + * @param ctx the parse tree + */ + enterSelectElements?: (ctx: SelectElementsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectElements`. + * @param ctx the parse tree + */ + exitSelectElements?: (ctx: SelectElementsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + enterSelectElement?: (ctx: SelectElementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectElement`. + * @param ctx the parse tree + */ + exitSelectElement?: (ctx: SelectElementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + enterIntoClause?: (ctx: IntoClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.intoClause`. + * @param ctx the parse tree + */ + exitIntoClause?: (ctx: IntoClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectFieldsInto`. + * @param ctx the parse tree + */ + enterSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectFieldsInto`. + * @param ctx the parse tree + */ + exitSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.selectLinesInto`. + * @param ctx the parse tree + */ + enterSelectLinesInto?: (ctx: SelectLinesIntoContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.selectLinesInto`. + * @param ctx the parse tree + */ + exitSelectLinesInto?: (ctx: SelectLinesIntoContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.fromClause`. + * @param ctx the parse tree + */ + enterFromClause?: (ctx: FromClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.fromClause`. + * @param ctx the parse tree + */ + exitFromClause?: (ctx: FromClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.groupByClause`. + * @param ctx the parse tree + */ + enterGroupByClause?: (ctx: GroupByClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.groupByClause`. + * @param ctx the parse tree + */ + exitGroupByClause?: (ctx: GroupByClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.havingClause`. + * @param ctx the parse tree + */ + enterHavingClause?: (ctx: HavingClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.havingClause`. + * @param ctx the parse tree + */ + exitHavingClause?: (ctx: HavingClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.windowClause`. + * @param ctx the parse tree + */ + enterWindowClause?: (ctx: WindowClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.windowClause`. + * @param ctx the parse tree + */ + exitWindowClause?: (ctx: WindowClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.groupByItem`. + * @param ctx the parse tree + */ + enterGroupByItem?: (ctx: GroupByItemContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.groupByItem`. + * @param ctx the parse tree + */ + exitGroupByItem?: (ctx: GroupByItemContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.limitClause`. + * @param ctx the parse tree + */ + enterLimitClause?: (ctx: LimitClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.limitClause`. + * @param ctx the parse tree + */ + exitLimitClause?: (ctx: LimitClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.limitClauseAtom`. + * @param ctx the parse tree + */ + enterLimitClauseAtom?: (ctx: LimitClauseAtomContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.limitClauseAtom`. + * @param ctx the parse tree + */ + exitLimitClauseAtom?: (ctx: LimitClauseAtomContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.startTransaction`. + * @param ctx the parse tree + */ + enterStartTransaction?: (ctx: StartTransactionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.startTransaction`. + * @param ctx the parse tree + */ + exitStartTransaction?: (ctx: StartTransactionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.beginWork`. + * @param ctx the parse tree + */ + enterBeginWork?: (ctx: BeginWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.beginWork`. + * @param ctx the parse tree + */ + exitBeginWork?: (ctx: BeginWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.commitWork`. + * @param ctx the parse tree + */ + enterCommitWork?: (ctx: CommitWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.commitWork`. + * @param ctx the parse tree + */ + exitCommitWork?: (ctx: CommitWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.rollbackWork`. + * @param ctx the parse tree + */ + enterRollbackWork?: (ctx: RollbackWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.rollbackWork`. + * @param ctx the parse tree + */ + exitRollbackWork?: (ctx: RollbackWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.savepointStatement`. + * @param ctx the parse tree + */ + enterSavepointStatement?: (ctx: SavepointStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.savepointStatement`. + * @param ctx the parse tree + */ + exitSavepointStatement?: (ctx: SavepointStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.rollbackStatement`. + * @param ctx the parse tree + */ + enterRollbackStatement?: (ctx: RollbackStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.rollbackStatement`. + * @param ctx the parse tree + */ + exitRollbackStatement?: (ctx: RollbackStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.releaseStatement`. + * @param ctx the parse tree + */ + enterReleaseStatement?: (ctx: ReleaseStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.releaseStatement`. + * @param ctx the parse tree + */ + exitReleaseStatement?: (ctx: ReleaseStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lockTables`. + * @param ctx the parse tree + */ + enterLockTables?: (ctx: LockTablesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lockTables`. + * @param ctx the parse tree + */ + exitLockTables?: (ctx: LockTablesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.unlockTables`. + * @param ctx the parse tree + */ + enterUnlockTables?: (ctx: UnlockTablesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.unlockTables`. + * @param ctx the parse tree + */ + exitUnlockTables?: (ctx: UnlockTablesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setAutocommitStatement`. + * @param ctx the parse tree + */ + enterSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setAutocommitStatement`. + * @param ctx the parse tree + */ + exitSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setTransactionStatement`. + * @param ctx the parse tree + */ + enterSetTransactionStatement?: (ctx: SetTransactionStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setTransactionStatement`. + * @param ctx the parse tree + */ + exitSetTransactionStatement?: (ctx: SetTransactionStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.transactionMode`. + * @param ctx the parse tree + */ + enterTransactionMode?: (ctx: TransactionModeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.transactionMode`. + * @param ctx the parse tree + */ + exitTransactionMode?: (ctx: TransactionModeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lockTableElement`. + * @param ctx the parse tree + */ + enterLockTableElement?: (ctx: LockTableElementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lockTableElement`. + * @param ctx the parse tree + */ + exitLockTableElement?: (ctx: LockTableElementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lockAction`. + * @param ctx the parse tree + */ + enterLockAction?: (ctx: LockActionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lockAction`. + * @param ctx the parse tree + */ + exitLockAction?: (ctx: LockActionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.transactionOption`. + * @param ctx the parse tree + */ + enterTransactionOption?: (ctx: TransactionOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.transactionOption`. + * @param ctx the parse tree + */ + exitTransactionOption?: (ctx: TransactionOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.transactionLevel`. + * @param ctx the parse tree + */ + enterTransactionLevel?: (ctx: TransactionLevelContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.transactionLevel`. + * @param ctx the parse tree + */ + exitTransactionLevel?: (ctx: TransactionLevelContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.changeMaster`. + * @param ctx the parse tree + */ + enterChangeMaster?: (ctx: ChangeMasterContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.changeMaster`. + * @param ctx the parse tree + */ + exitChangeMaster?: (ctx: ChangeMasterContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.changeReplicationFilter`. + * @param ctx the parse tree + */ + enterChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.changeReplicationFilter`. + * @param ctx the parse tree + */ + exitChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.changeReplicationSource`. + * @param ctx the parse tree + */ + enterChangeReplicationSource?: (ctx: ChangeReplicationSourceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.changeReplicationSource`. + * @param ctx the parse tree + */ + exitChangeReplicationSource?: (ctx: ChangeReplicationSourceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.purgeBinaryLogs`. + * @param ctx the parse tree + */ + enterPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.purgeBinaryLogs`. + * @param ctx the parse tree + */ + exitPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.startSlaveOrReplica`. + * @param ctx the parse tree + */ + enterStartSlaveOrReplica?: (ctx: StartSlaveOrReplicaContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.startSlaveOrReplica`. + * @param ctx the parse tree + */ + exitStartSlaveOrReplica?: (ctx: StartSlaveOrReplicaContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.stopSlaveOrReplica`. + * @param ctx the parse tree + */ + enterStopSlaveOrReplica?: (ctx: StopSlaveOrReplicaContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.stopSlaveOrReplica`. + * @param ctx the parse tree + */ + exitStopSlaveOrReplica?: (ctx: StopSlaveOrReplicaContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.startGroupReplication`. + * @param ctx the parse tree + */ + enterStartGroupReplication?: (ctx: StartGroupReplicationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.startGroupReplication`. + * @param ctx the parse tree + */ + exitStartGroupReplication?: (ctx: StartGroupReplicationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.stopGroupReplication`. + * @param ctx the parse tree + */ + enterStopGroupReplication?: (ctx: StopGroupReplicationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.stopGroupReplication`. + * @param ctx the parse tree + */ + exitStopGroupReplication?: (ctx: StopGroupReplicationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + enterMasterOption?: (ctx: MasterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.masterOption`. + * @param ctx the parse tree + */ + exitMasterOption?: (ctx: MasterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.stringMasterOption`. + * @param ctx the parse tree + */ + enterStringMasterOption?: (ctx: StringMasterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.stringMasterOption`. + * @param ctx the parse tree + */ + exitStringMasterOption?: (ctx: StringMasterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.decimalMasterOption`. + * @param ctx the parse tree + */ + enterDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.decimalMasterOption`. + * @param ctx the parse tree + */ + exitDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.boolMasterOption`. + * @param ctx the parse tree + */ + enterBoolMasterOption?: (ctx: BoolMasterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.boolMasterOption`. + * @param ctx the parse tree + */ + exitBoolMasterOption?: (ctx: BoolMasterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.v8NewMasterOption`. + * @param ctx the parse tree + */ + enterV8NewMasterOption?: (ctx: V8NewMasterOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.v8NewMasterOption`. + * @param ctx the parse tree + */ + exitV8NewMasterOption?: (ctx: V8NewMasterOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + enterReplicationSourceOption?: (ctx: ReplicationSourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + */ + exitReplicationSourceOption?: (ctx: ReplicationSourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.stringSourceOption`. + * @param ctx the parse tree + */ + enterStringSourceOption?: (ctx: StringSourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.stringSourceOption`. + * @param ctx the parse tree + */ + exitStringSourceOption?: (ctx: StringSourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.decimalSourceOption`. + * @param ctx the parse tree + */ + enterDecimalSourceOption?: (ctx: DecimalSourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.decimalSourceOption`. + * @param ctx the parse tree + */ + exitDecimalSourceOption?: (ctx: DecimalSourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.boolSourceOption`. + * @param ctx the parse tree + */ + enterBoolSourceOption?: (ctx: BoolSourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.boolSourceOption`. + * @param ctx the parse tree + */ + exitBoolSourceOption?: (ctx: BoolSourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.otherSourceOption`. + * @param ctx the parse tree + */ + enterOtherSourceOption?: (ctx: OtherSourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.otherSourceOption`. + * @param ctx the parse tree + */ + exitOtherSourceOption?: (ctx: OtherSourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.channelOption`. + * @param ctx the parse tree + */ + enterChannelOption?: (ctx: ChannelOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.channelOption`. + * @param ctx the parse tree + */ + exitChannelOption?: (ctx: ChannelOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + enterReplicationFilter?: (ctx: ReplicationFilterContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.replicationFilter`. + * @param ctx the parse tree + */ + exitReplicationFilter?: (ctx: ReplicationFilterContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tablePair`. + * @param ctx the parse tree + */ + enterTablePair?: (ctx: TablePairContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tablePair`. + * @param ctx the parse tree + */ + exitTablePair?: (ctx: TablePairContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.threadType`. + * @param ctx the parse tree + */ + enterThreadType?: (ctx: ThreadTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.threadType`. + * @param ctx the parse tree + */ + exitThreadType?: (ctx: ThreadTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + enterUntilOption?: (ctx: UntilOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.untilOption`. + * @param ctx the parse tree + */ + exitUntilOption?: (ctx: UntilOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + enterConnectionOptions?: (ctx: ConnectionOptionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.connectionOptions`. + * @param ctx the parse tree + */ + exitConnectionOptions?: (ctx: ConnectionOptionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.gtuidSet`. + * @param ctx the parse tree + */ + enterGtuidSet?: (ctx: GtuidSetContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.gtuidSet`. + * @param ctx the parse tree + */ + exitGtuidSet?: (ctx: GtuidSetContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaStartTransaction`. + * @param ctx the parse tree + */ + enterXaStartTransaction?: (ctx: XaStartTransactionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaStartTransaction`. + * @param ctx the parse tree + */ + exitXaStartTransaction?: (ctx: XaStartTransactionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaEndTransaction`. + * @param ctx the parse tree + */ + enterXaEndTransaction?: (ctx: XaEndTransactionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaEndTransaction`. + * @param ctx the parse tree + */ + exitXaEndTransaction?: (ctx: XaEndTransactionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaPrepareStatement`. + * @param ctx the parse tree + */ + enterXaPrepareStatement?: (ctx: XaPrepareStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaPrepareStatement`. + * @param ctx the parse tree + */ + exitXaPrepareStatement?: (ctx: XaPrepareStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaCommitWork`. + * @param ctx the parse tree + */ + enterXaCommitWork?: (ctx: XaCommitWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaCommitWork`. + * @param ctx the parse tree + */ + exitXaCommitWork?: (ctx: XaCommitWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaRollbackWork`. + * @param ctx the parse tree + */ + enterXaRollbackWork?: (ctx: XaRollbackWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaRollbackWork`. + * @param ctx the parse tree + */ + exitXaRollbackWork?: (ctx: XaRollbackWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xaRecoverWork`. + * @param ctx the parse tree + */ + enterXaRecoverWork?: (ctx: XaRecoverWorkContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xaRecoverWork`. + * @param ctx the parse tree + */ + exitXaRecoverWork?: (ctx: XaRecoverWorkContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.prepareStatement`. + * @param ctx the parse tree + */ + enterPrepareStatement?: (ctx: PrepareStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.prepareStatement`. + * @param ctx the parse tree + */ + exitPrepareStatement?: (ctx: PrepareStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.executeStatement`. + * @param ctx the parse tree + */ + enterExecuteStatement?: (ctx: ExecuteStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.executeStatement`. + * @param ctx the parse tree + */ + exitExecuteStatement?: (ctx: ExecuteStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.deallocatePrepare`. + * @param ctx the parse tree + */ + enterDeallocatePrepare?: (ctx: DeallocatePrepareContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.deallocatePrepare`. + * @param ctx the parse tree + */ + exitDeallocatePrepare?: (ctx: DeallocatePrepareContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.routineBody`. + * @param ctx the parse tree + */ + enterRoutineBody?: (ctx: RoutineBodyContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.routineBody`. + * @param ctx the parse tree + */ + exitRoutineBody?: (ctx: RoutineBodyContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.blockStatement`. + * @param ctx the parse tree + */ + enterBlockStatement?: (ctx: BlockStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.blockStatement`. + * @param ctx the parse tree + */ + exitBlockStatement?: (ctx: BlockStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.caseStatement`. + * @param ctx the parse tree + */ + enterCaseStatement?: (ctx: CaseStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.caseStatement`. + * @param ctx the parse tree + */ + exitCaseStatement?: (ctx: CaseStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ifStatement`. + * @param ctx the parse tree + */ + enterIfStatement?: (ctx: IfStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ifStatement`. + * @param ctx the parse tree + */ + exitIfStatement?: (ctx: IfStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.iterateStatement`. + * @param ctx the parse tree + */ + enterIterateStatement?: (ctx: IterateStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.iterateStatement`. + * @param ctx the parse tree + */ + exitIterateStatement?: (ctx: IterateStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.leaveStatement`. + * @param ctx the parse tree + */ + enterLeaveStatement?: (ctx: LeaveStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.leaveStatement`. + * @param ctx the parse tree + */ + exitLeaveStatement?: (ctx: LeaveStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.loopStatement`. + * @param ctx the parse tree + */ + enterLoopStatement?: (ctx: LoopStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.loopStatement`. + * @param ctx the parse tree + */ + exitLoopStatement?: (ctx: LoopStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.repeatStatement`. + * @param ctx the parse tree + */ + enterRepeatStatement?: (ctx: RepeatStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.repeatStatement`. + * @param ctx the parse tree + */ + exitRepeatStatement?: (ctx: RepeatStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.returnStatement`. + * @param ctx the parse tree + */ + enterReturnStatement?: (ctx: ReturnStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.returnStatement`. + * @param ctx the parse tree + */ + exitReturnStatement?: (ctx: ReturnStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.whileStatement`. + * @param ctx the parse tree + */ + enterWhileStatement?: (ctx: WhileStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.whileStatement`. + * @param ctx the parse tree + */ + exitWhileStatement?: (ctx: WhileStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + enterCursorStatement?: (ctx: CursorStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.cursorStatement`. + * @param ctx the parse tree + */ + exitCursorStatement?: (ctx: CursorStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.declareVariable`. + * @param ctx the parse tree + */ + enterDeclareVariable?: (ctx: DeclareVariableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.declareVariable`. + * @param ctx the parse tree + */ + exitDeclareVariable?: (ctx: DeclareVariableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.declareCondition`. + * @param ctx the parse tree + */ + enterDeclareCondition?: (ctx: DeclareConditionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.declareCondition`. + * @param ctx the parse tree + */ + exitDeclareCondition?: (ctx: DeclareConditionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.declareCursor`. + * @param ctx the parse tree + */ + enterDeclareCursor?: (ctx: DeclareCursorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.declareCursor`. + * @param ctx the parse tree + */ + exitDeclareCursor?: (ctx: DeclareCursorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.declareHandler`. + * @param ctx the parse tree + */ + enterDeclareHandler?: (ctx: DeclareHandlerContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.declareHandler`. + * @param ctx the parse tree + */ + exitDeclareHandler?: (ctx: DeclareHandlerContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + enterHandlerConditionValue?: (ctx: HandlerConditionValueContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + */ + exitHandlerConditionValue?: (ctx: HandlerConditionValueContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.procedureSqlStatement`. + * @param ctx the parse tree + */ + enterProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.procedureSqlStatement`. + * @param ctx the parse tree + */ + exitProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.caseAlternative`. + * @param ctx the parse tree + */ + enterCaseAlternative?: (ctx: CaseAlternativeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.caseAlternative`. + * @param ctx the parse tree + */ + exitCaseAlternative?: (ctx: CaseAlternativeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.elifAlternative`. + * @param ctx the parse tree + */ + enterElifAlternative?: (ctx: ElifAlternativeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.elifAlternative`. + * @param ctx the parse tree + */ + exitElifAlternative?: (ctx: ElifAlternativeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterUser`. + * @param ctx the parse tree + */ + enterAlterUser?: (ctx: AlterUserContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterUser`. + * @param ctx the parse tree + */ + exitAlterUser?: (ctx: AlterUserContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createUser`. + * @param ctx the parse tree + */ + enterCreateUser?: (ctx: CreateUserContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createUser`. + * @param ctx the parse tree + */ + exitCreateUser?: (ctx: CreateUserContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropUser`. + * @param ctx the parse tree + */ + enterDropUser?: (ctx: DropUserContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropUser`. + * @param ctx the parse tree + */ + exitDropUser?: (ctx: DropUserContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.grantStatement`. + * @param ctx the parse tree + */ + enterGrantStatement?: (ctx: GrantStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.grantStatement`. + * @param ctx the parse tree + */ + exitGrantStatement?: (ctx: GrantStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.roleOption`. + * @param ctx the parse tree + */ + enterRoleOption?: (ctx: RoleOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.roleOption`. + * @param ctx the parse tree + */ + exitRoleOption?: (ctx: RoleOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.grantProxy`. + * @param ctx the parse tree + */ + enterGrantProxy?: (ctx: GrantProxyContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.grantProxy`. + * @param ctx the parse tree + */ + exitGrantProxy?: (ctx: GrantProxyContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterResourceGroup`. + * @param ctx the parse tree + */ + enterAlterResourceGroup?: (ctx: AlterResourceGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterResourceGroup`. + * @param ctx the parse tree + */ + exitAlterResourceGroup?: (ctx: AlterResourceGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createResourceGroup`. + * @param ctx the parse tree + */ + enterCreateResourceGroup?: (ctx: CreateResourceGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createResourceGroup`. + * @param ctx the parse tree + */ + exitCreateResourceGroup?: (ctx: CreateResourceGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dropResourceGroup`. + * @param ctx the parse tree + */ + enterDropResourceGroup?: (ctx: DropResourceGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dropResourceGroup`. + * @param ctx the parse tree + */ + exitDropResourceGroup?: (ctx: DropResourceGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setResourceGroup`. + * @param ctx the parse tree + */ + enterSetResourceGroup?: (ctx: SetResourceGroupContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setResourceGroup`. + * @param ctx the parse tree + */ + exitSetResourceGroup?: (ctx: SetResourceGroupContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * @param ctx the parse tree + */ + enterResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * @param ctx the parse tree + */ + exitResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.renameUser`. + * @param ctx the parse tree + */ + enterRenameUser?: (ctx: RenameUserContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.renameUser`. + * @param ctx the parse tree + */ + exitRenameUser?: (ctx: RenameUserContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + enterRevokeStatement?: (ctx: RevokeStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.revokeStatement`. + * @param ctx the parse tree + */ + exitRevokeStatement?: (ctx: RevokeStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ignoreUnknownUser`. + * @param ctx the parse tree + */ + enterIgnoreUnknownUser?: (ctx: IgnoreUnknownUserContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ignoreUnknownUser`. + * @param ctx the parse tree + */ + exitIgnoreUnknownUser?: (ctx: IgnoreUnknownUserContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.privilegeObjectType`. + * @param ctx the parse tree + */ + enterPrivilegeObjectType?: (ctx: PrivilegeObjectTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.privilegeObjectType`. + * @param ctx the parse tree + */ + exitPrivilegeObjectType?: (ctx: PrivilegeObjectTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + enterSetPasswordStatement?: (ctx: SetPasswordStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + */ + exitSetPasswordStatement?: (ctx: SetPasswordStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userSpecification`. + * @param ctx the parse tree + */ + enterUserSpecification?: (ctx: UserSpecificationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userSpecification`. + * @param ctx the parse tree + */ + exitUserSpecification?: (ctx: UserSpecificationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.alterUserAuthOption`. + * @param ctx the parse tree + */ + enterAlterUserAuthOption?: (ctx: AlterUserAuthOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.alterUserAuthOption`. + * @param ctx the parse tree + */ + exitAlterUserAuthOption?: (ctx: AlterUserAuthOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createUserAuthOption`. + * @param ctx the parse tree + */ + enterCreateUserAuthOption?: (ctx: CreateUserAuthOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createUserAuthOption`. + * @param ctx the parse tree + */ + exitCreateUserAuthOption?: (ctx: CreateUserAuthOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createUserInitialAuthOption`. + * @param ctx the parse tree + */ + enterCreateUserInitialAuthOption?: (ctx: CreateUserInitialAuthOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createUserInitialAuthOption`. + * @param ctx the parse tree + */ + exitCreateUserInitialAuthOption?: (ctx: CreateUserInitialAuthOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + enterUserAuthOption?: (ctx: UserAuthOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userAuthOption`. + * @param ctx the parse tree + */ + exitUserAuthOption?: (ctx: UserAuthOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.authOptionClause`. + * @param ctx the parse tree + */ + enterAuthOptionClause?: (ctx: AuthOptionClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.authOptionClause`. + * @param ctx the parse tree + */ + exitAuthOptionClause?: (ctx: AuthOptionClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + enterAuthenticationRule?: (ctx: AuthenticationRuleContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.authenticationRule`. + * @param ctx the parse tree + */ + exitAuthenticationRule?: (ctx: AuthenticationRuleContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tlsOption`. + * @param ctx the parse tree + */ + enterTlsOption?: (ctx: TlsOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tlsOption`. + * @param ctx the parse tree + */ + exitTlsOption?: (ctx: TlsOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userResourceOption`. + * @param ctx the parse tree + */ + enterUserResourceOption?: (ctx: UserResourceOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userResourceOption`. + * @param ctx the parse tree + */ + exitUserResourceOption?: (ctx: UserResourceOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userPasswordOption`. + * @param ctx the parse tree + */ + enterUserPasswordOption?: (ctx: UserPasswordOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userPasswordOption`. + * @param ctx the parse tree + */ + exitUserPasswordOption?: (ctx: UserPasswordOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userLockOption`. + * @param ctx the parse tree + */ + enterUserLockOption?: (ctx: UserLockOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userLockOption`. + * @param ctx the parse tree + */ + exitUserLockOption?: (ctx: UserLockOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.factorAuthOption`. + * @param ctx the parse tree + */ + enterFactorAuthOption?: (ctx: FactorAuthOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.factorAuthOption`. + * @param ctx the parse tree + */ + exitFactorAuthOption?: (ctx: FactorAuthOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.registrationOption`. + * @param ctx the parse tree + */ + enterRegistrationOption?: (ctx: RegistrationOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.registrationOption`. + * @param ctx the parse tree + */ + exitRegistrationOption?: (ctx: RegistrationOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.factor`. + * @param ctx the parse tree + */ + enterFactor?: (ctx: FactorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.factor`. + * @param ctx the parse tree + */ + exitFactor?: (ctx: FactorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.privelegeClause`. + * @param ctx the parse tree + */ + enterPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.privelegeClause`. + * @param ctx the parse tree + */ + exitPrivelegeClause?: (ctx: PrivelegeClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.privilege`. + * @param ctx the parse tree + */ + enterPrivilege?: (ctx: PrivilegeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.privilege`. + * @param ctx the parse tree + */ + exitPrivilege?: (ctx: PrivilegeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + enterPrivilegeLevel?: (ctx: PrivilegeLevelContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + */ + exitPrivilegeLevel?: (ctx: PrivilegeLevelContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.renameUserClause`. + * @param ctx the parse tree + */ + enterRenameUserClause?: (ctx: RenameUserClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.renameUserClause`. + * @param ctx the parse tree + */ + exitRenameUserClause?: (ctx: RenameUserClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.analyzeTable`. + * @param ctx the parse tree + */ + enterAnalyzeTable?: (ctx: AnalyzeTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.analyzeTable`. + * @param ctx the parse tree + */ + exitAnalyzeTable?: (ctx: AnalyzeTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.checkTable`. + * @param ctx the parse tree + */ + enterCheckTable?: (ctx: CheckTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.checkTable`. + * @param ctx the parse tree + */ + exitCheckTable?: (ctx: CheckTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.checksumTable`. + * @param ctx the parse tree + */ + enterChecksumTable?: (ctx: ChecksumTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.checksumTable`. + * @param ctx the parse tree + */ + exitChecksumTable?: (ctx: ChecksumTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.optimizeTable`. + * @param ctx the parse tree + */ + enterOptimizeTable?: (ctx: OptimizeTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.optimizeTable`. + * @param ctx the parse tree + */ + exitOptimizeTable?: (ctx: OptimizeTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.repairTable`. + * @param ctx the parse tree + */ + enterRepairTable?: (ctx: RepairTableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.repairTable`. + * @param ctx the parse tree + */ + exitRepairTable?: (ctx: RepairTableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableActionOption`. + * @param ctx the parse tree + */ + enterTableActionOption?: (ctx: TableActionOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableActionOption`. + * @param ctx the parse tree + */ + exitTableActionOption?: (ctx: TableActionOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.checkTableOption`. + * @param ctx the parse tree + */ + enterCheckTableOption?: (ctx: CheckTableOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.checkTableOption`. + * @param ctx the parse tree + */ + exitCheckTableOption?: (ctx: CheckTableOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.createFunction`. + * @param ctx the parse tree + */ + enterCreateFunction?: (ctx: CreateFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.createFunction`. + * @param ctx the parse tree + */ + exitCreateFunction?: (ctx: CreateFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.installComponent`. + * @param ctx the parse tree + */ + enterInstallComponent?: (ctx: InstallComponentContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.installComponent`. + * @param ctx the parse tree + */ + exitInstallComponent?: (ctx: InstallComponentContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.variableExpr`. + * @param ctx the parse tree + */ + enterVariableExpr?: (ctx: VariableExprContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.variableExpr`. + * @param ctx the parse tree + */ + exitVariableExpr?: (ctx: VariableExprContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.uninstallComponent`. + * @param ctx the parse tree + */ + enterUninstallComponent?: (ctx: UninstallComponentContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.uninstallComponent`. + * @param ctx the parse tree + */ + exitUninstallComponent?: (ctx: UninstallComponentContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.installPlugin`. + * @param ctx the parse tree + */ + enterInstallPlugin?: (ctx: InstallPluginContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.installPlugin`. + * @param ctx the parse tree + */ + exitInstallPlugin?: (ctx: InstallPluginContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.uninstallPlugin`. + * @param ctx the parse tree + */ + enterUninstallPlugin?: (ctx: UninstallPluginContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.uninstallPlugin`. + * @param ctx the parse tree + */ + exitUninstallPlugin?: (ctx: UninstallPluginContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.cloneStatement`. + * @param ctx the parse tree + */ + enterCloneStatement?: (ctx: CloneStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.cloneStatement`. + * @param ctx the parse tree + */ + exitCloneStatement?: (ctx: CloneStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + enterSetStatement?: (ctx: SetStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.setStatement`. + * @param ctx the parse tree + */ + exitSetStatement?: (ctx: SetStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + enterShowStatement?: (ctx: ShowStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showStatement`. + * @param ctx the parse tree + */ + exitShowStatement?: (ctx: ShowStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.variableClause`. + * @param ctx the parse tree + */ + enterVariableClause?: (ctx: VariableClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.variableClause`. + * @param ctx the parse tree + */ + exitVariableClause?: (ctx: VariableClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showCommonEntity`. + * @param ctx the parse tree + */ + enterShowCommonEntity?: (ctx: ShowCommonEntityContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showCommonEntity`. + * @param ctx the parse tree + */ + exitShowCommonEntity?: (ctx: ShowCommonEntityContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showFilter`. + * @param ctx the parse tree + */ + enterShowFilter?: (ctx: ShowFilterContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showFilter`. + * @param ctx the parse tree + */ + exitShowFilter?: (ctx: ShowFilterContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showGlobalInfoClause`. + * @param ctx the parse tree + */ + enterShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showGlobalInfoClause`. + * @param ctx the parse tree + */ + exitShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showSchemaEntity`. + * @param ctx the parse tree + */ + enterShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showSchemaEntity`. + * @param ctx the parse tree + */ + exitShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.showProfileType`. + * @param ctx the parse tree + */ + enterShowProfileType?: (ctx: ShowProfileTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.showProfileType`. + * @param ctx the parse tree + */ + exitShowProfileType?: (ctx: ShowProfileTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.binlogStatement`. + * @param ctx the parse tree + */ + enterBinlogStatement?: (ctx: BinlogStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.binlogStatement`. + * @param ctx the parse tree + */ + exitBinlogStatement?: (ctx: BinlogStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.cacheIndexStatement`. + * @param ctx the parse tree + */ + enterCacheIndexStatement?: (ctx: CacheIndexStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.cacheIndexStatement`. + * @param ctx the parse tree + */ + exitCacheIndexStatement?: (ctx: CacheIndexStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.flushStatement`. + * @param ctx the parse tree + */ + enterFlushStatement?: (ctx: FlushStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.flushStatement`. + * @param ctx the parse tree + */ + exitFlushStatement?: (ctx: FlushStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.killStatement`. + * @param ctx the parse tree + */ + enterKillStatement?: (ctx: KillStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.killStatement`. + * @param ctx the parse tree + */ + exitKillStatement?: (ctx: KillStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.loadIndexIntoCache`. + * @param ctx the parse tree + */ + enterLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.loadIndexIntoCache`. + * @param ctx the parse tree + */ + exitLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resetStatement`. + * @param ctx the parse tree + */ + enterResetStatement?: (ctx: ResetStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resetStatement`. + * @param ctx the parse tree + */ + exitResetStatement?: (ctx: ResetStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resetOption`. + * @param ctx the parse tree + */ + enterResetOption?: (ctx: ResetOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resetOption`. + * @param ctx the parse tree + */ + exitResetOption?: (ctx: ResetOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resetPersist`. + * @param ctx the parse tree + */ + enterResetPersist?: (ctx: ResetPersistContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resetPersist`. + * @param ctx the parse tree + */ + exitResetPersist?: (ctx: ResetPersistContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resetAllChannel`. + * @param ctx the parse tree + */ + enterResetAllChannel?: (ctx: ResetAllChannelContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resetAllChannel`. + * @param ctx the parse tree + */ + exitResetAllChannel?: (ctx: ResetAllChannelContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.reStartStatement`. + * @param ctx the parse tree + */ + enterReStartStatement?: (ctx: ReStartStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.reStartStatement`. + * @param ctx the parse tree + */ + exitReStartStatement?: (ctx: ReStartStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.shutdownStatement`. + * @param ctx the parse tree + */ + enterShutdownStatement?: (ctx: ShutdownStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.shutdownStatement`. + * @param ctx the parse tree + */ + exitShutdownStatement?: (ctx: ShutdownStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableIndex`. + * @param ctx the parse tree + */ + enterTableIndex?: (ctx: TableIndexContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableIndex`. + * @param ctx the parse tree + */ + exitTableIndex?: (ctx: TableIndexContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + enterFlushOption?: (ctx: FlushOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.flushOption`. + * @param ctx the parse tree + */ + exitFlushOption?: (ctx: FlushOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.flushTableOption`. + * @param ctx the parse tree + */ + enterFlushTableOption?: (ctx: FlushTableOptionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.flushTableOption`. + * @param ctx the parse tree + */ + exitFlushTableOption?: (ctx: FlushTableOptionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.loadedTableIndexes`. + * @param ctx the parse tree + */ + enterLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.loadedTableIndexes`. + * @param ctx the parse tree + */ + exitLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.simpleDescribeStatement`. + * @param ctx the parse tree + */ + enterSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.simpleDescribeStatement`. + * @param ctx the parse tree + */ + exitSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.fullDescribeStatement`. + * @param ctx the parse tree + */ + enterFullDescribeStatement?: (ctx: FullDescribeStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.fullDescribeStatement`. + * @param ctx the parse tree + */ + exitFullDescribeStatement?: (ctx: FullDescribeStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.analyzeDescribeStatement`. + * @param ctx the parse tree + */ + enterAnalyzeDescribeStatement?: (ctx: AnalyzeDescribeStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.analyzeDescribeStatement`. + * @param ctx the parse tree + */ + exitAnalyzeDescribeStatement?: (ctx: AnalyzeDescribeStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.helpStatement`. + * @param ctx the parse tree + */ + enterHelpStatement?: (ctx: HelpStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.helpStatement`. + * @param ctx the parse tree + */ + exitHelpStatement?: (ctx: HelpStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.useStatement`. + * @param ctx the parse tree + */ + enterUseStatement?: (ctx: UseStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.useStatement`. + * @param ctx the parse tree + */ + exitUseStatement?: (ctx: UseStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.signalStatement`. + * @param ctx the parse tree + */ + enterSignalStatement?: (ctx: SignalStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.signalStatement`. + * @param ctx the parse tree + */ + exitSignalStatement?: (ctx: SignalStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.resignalStatement`. + * @param ctx the parse tree + */ + enterResignalStatement?: (ctx: ResignalStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.resignalStatement`. + * @param ctx the parse tree + */ + exitResignalStatement?: (ctx: ResignalStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.signalConditionInformation`. + * @param ctx the parse tree + */ + enterSignalConditionInformation?: (ctx: SignalConditionInformationContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.signalConditionInformation`. + * @param ctx the parse tree + */ + exitSignalConditionInformation?: (ctx: SignalConditionInformationContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.withStatement`. + * @param ctx the parse tree + */ + enterWithStatement?: (ctx: WithStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.withStatement`. + * @param ctx the parse tree + */ + exitWithStatement?: (ctx: WithStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableStatement`. + * @param ctx the parse tree + */ + enterTableStatement?: (ctx: TableStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableStatement`. + * @param ctx the parse tree + */ + exitTableStatement?: (ctx: TableStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.diagnosticsStatement`. + * @param ctx the parse tree + */ + enterDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.diagnosticsStatement`. + * @param ctx the parse tree + */ + exitDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.diagnosticsConditionInformationName`. + * @param ctx the parse tree + */ + enterDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.diagnosticsConditionInformationName`. + * @param ctx the parse tree + */ + exitDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + enterDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + */ + exitDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.databaseNameCreate`. + * @param ctx the parse tree + */ + enterDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.databaseNameCreate`. + * @param ctx the parse tree + */ + exitDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.databaseName`. + * @param ctx the parse tree + */ + enterDatabaseName?: (ctx: DatabaseNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.databaseName`. + * @param ctx the parse tree + */ + exitDatabaseName?: (ctx: DatabaseNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionNameCreate`. + * @param ctx the parse tree + */ + enterFunctionNameCreate?: (ctx: FunctionNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionNameCreate`. + * @param ctx the parse tree + */ + exitFunctionNameCreate?: (ctx: FunctionNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionName`. + * @param ctx the parse tree + */ + enterFunctionName?: (ctx: FunctionNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionName`. + * @param ctx the parse tree + */ + exitFunctionName?: (ctx: FunctionNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.viewNameCreate`. + * @param ctx the parse tree + */ + enterViewNameCreate?: (ctx: ViewNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.viewNameCreate`. + * @param ctx the parse tree + */ + exitViewNameCreate?: (ctx: ViewNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.viewName`. + * @param ctx the parse tree + */ + enterViewName?: (ctx: ViewNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.viewName`. + * @param ctx the parse tree + */ + exitViewName?: (ctx: ViewNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexNameCreate`. + * @param ctx the parse tree + */ + enterIndexNameCreate?: (ctx: IndexNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexNameCreate`. + * @param ctx the parse tree + */ + exitIndexNameCreate?: (ctx: IndexNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexNames`. + * @param ctx the parse tree + */ + enterIndexNames?: (ctx: IndexNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexNames`. + * @param ctx the parse tree + */ + exitIndexNames?: (ctx: IndexNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexName`. + * @param ctx the parse tree + */ + enterIndexName?: (ctx: IndexNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexName`. + * @param ctx the parse tree + */ + exitIndexName?: (ctx: IndexNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.groupNameCreate`. + * @param ctx the parse tree + */ + enterGroupNameCreate?: (ctx: GroupNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.groupNameCreate`. + * @param ctx the parse tree + */ + exitGroupNameCreate?: (ctx: GroupNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.groupName`. + * @param ctx the parse tree + */ + enterGroupName?: (ctx: GroupNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.groupName`. + * @param ctx the parse tree + */ + exitGroupName?: (ctx: GroupNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableNameCreate`. + * @param ctx the parse tree + */ + enterTableNameCreate?: (ctx: TableNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableNameCreate`. + * @param ctx the parse tree + */ + exitTableNameCreate?: (ctx: TableNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableNames`. + * @param ctx the parse tree + */ + enterTableNames?: (ctx: TableNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableNames`. + * @param ctx the parse tree + */ + exitTableNames?: (ctx: TableNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tableName`. + * @param ctx the parse tree + */ + enterTableName?: (ctx: TableNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tableName`. + * @param ctx the parse tree + */ + exitTableName?: (ctx: TableNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userOrRoleNames`. + * @param ctx the parse tree + */ + enterUserOrRoleNames?: (ctx: UserOrRoleNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userOrRoleNames`. + * @param ctx the parse tree + */ + exitUserOrRoleNames?: (ctx: UserOrRoleNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userOrRoleName`. + * @param ctx the parse tree + */ + enterUserOrRoleName?: (ctx: UserOrRoleNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userOrRoleName`. + * @param ctx the parse tree + */ + exitUserOrRoleName?: (ctx: UserOrRoleNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.columnNameCreate`. + * @param ctx the parse tree + */ + enterColumnNameCreate?: (ctx: ColumnNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.columnNameCreate`. + * @param ctx the parse tree + */ + exitColumnNameCreate?: (ctx: ColumnNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.columnNames`. + * @param ctx the parse tree + */ + enterColumnNames?: (ctx: ColumnNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.columnNames`. + * @param ctx the parse tree + */ + exitColumnNames?: (ctx: ColumnNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.columnName`. + * @param ctx the parse tree + */ + enterColumnName?: (ctx: ColumnNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.columnName`. + * @param ctx the parse tree + */ + exitColumnName?: (ctx: ColumnNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * @param ctx the parse tree + */ + enterTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * @param ctx the parse tree + */ + exitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.tablespaceName`. + * @param ctx the parse tree + */ + enterTablespaceName?: (ctx: TablespaceNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.tablespaceName`. + * @param ctx the parse tree + */ + exitTablespaceName?: (ctx: TablespaceNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionNameCreate`. + * @param ctx the parse tree + */ + enterPartitionNameCreate?: (ctx: PartitionNameCreateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionNameCreate`. + * @param ctx the parse tree + */ + exitPartitionNameCreate?: (ctx: PartitionNameCreateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionNames`. + * @param ctx the parse tree + */ + enterPartitionNames?: (ctx: PartitionNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionNames`. + * @param ctx the parse tree + */ + exitPartitionNames?: (ctx: PartitionNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionName`. + * @param ctx the parse tree + */ + enterPartitionName?: (ctx: PartitionNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionName`. + * @param ctx the parse tree + */ + exitPartitionName?: (ctx: PartitionNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexColumnName`. + * @param ctx the parse tree + */ + enterIndexColumnName?: (ctx: IndexColumnNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexColumnName`. + * @param ctx the parse tree + */ + exitIndexColumnName?: (ctx: IndexColumnNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userHostPort`. + * @param ctx the parse tree + */ + enterUserHostPort?: (ctx: UserHostPortContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userHostPort`. + * @param ctx the parse tree + */ + exitUserHostPort?: (ctx: UserHostPortContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userAtHost`. + * @param ctx the parse tree + */ + enterUserAtHost?: (ctx: UserAtHostContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userAtHost`. + * @param ctx the parse tree + */ + exitUserAtHost?: (ctx: UserAtHostContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.simpleUserName`. + * @param ctx the parse tree + */ + enterSimpleUserName?: (ctx: SimpleUserNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.simpleUserName`. + * @param ctx the parse tree + */ + exitSimpleUserName?: (ctx: SimpleUserNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.hostName`. + * @param ctx the parse tree + */ + enterHostName?: (ctx: HostNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.hostName`. + * @param ctx the parse tree + */ + exitHostName?: (ctx: HostNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userName`. + * @param ctx the parse tree + */ + enterUserName?: (ctx: UserNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userName`. + * @param ctx the parse tree + */ + exitUserName?: (ctx: UserNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.mysqlVariable`. + * @param ctx the parse tree + */ + enterMysqlVariable?: (ctx: MysqlVariableContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.mysqlVariable`. + * @param ctx the parse tree + */ + exitMysqlVariable?: (ctx: MysqlVariableContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.charsetName`. + * @param ctx the parse tree + */ + enterCharsetName?: (ctx: CharsetNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.charsetName`. + * @param ctx the parse tree + */ + exitCharsetName?: (ctx: CharsetNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.collationName`. + * @param ctx the parse tree + */ + enterCollationName?: (ctx: CollationNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.collationName`. + * @param ctx the parse tree + */ + exitCollationName?: (ctx: CollationNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.engineName`. + * @param ctx the parse tree + */ + enterEngineName?: (ctx: EngineNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.engineName`. + * @param ctx the parse tree + */ + exitEngineName?: (ctx: EngineNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.engineNameBase`. + * @param ctx the parse tree + */ + enterEngineNameBase?: (ctx: EngineNameBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.engineNameBase`. + * @param ctx the parse tree + */ + exitEngineNameBase?: (ctx: EngineNameBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.uuidSet`. + * @param ctx the parse tree + */ + enterUuidSet?: (ctx: UuidSetContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.uuidSet`. + * @param ctx the parse tree + */ + exitUuidSet?: (ctx: UuidSetContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xid`. + * @param ctx the parse tree + */ + enterXid?: (ctx: XidContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xid`. + * @param ctx the parse tree + */ + exitXid?: (ctx: XidContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.xuidStringId`. + * @param ctx the parse tree + */ + enterXuidStringId?: (ctx: XuidStringIdContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.xuidStringId`. + * @param ctx the parse tree + */ + exitXuidStringId?: (ctx: XuidStringIdContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.fullId`. + * @param ctx the parse tree + */ + enterFullId?: (ctx: FullIdContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.fullId`. + * @param ctx the parse tree + */ + exitFullId?: (ctx: FullIdContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.uidList`. + * @param ctx the parse tree + */ + enterUidList?: (ctx: UidListContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.uidList`. + * @param ctx the parse tree + */ + exitUidList?: (ctx: UidListContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.uid`. + * @param ctx the parse tree + */ + enterUid?: (ctx: UidContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.uid`. + * @param ctx the parse tree + */ + exitUid?: (ctx: UidContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.simpleId`. + * @param ctx the parse tree + */ + enterSimpleId?: (ctx: SimpleIdContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.simpleId`. + * @param ctx the parse tree + */ + exitSimpleId?: (ctx: SimpleIdContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dottedId`. + * @param ctx the parse tree + */ + enterDottedId?: (ctx: DottedIdContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dottedId`. + * @param ctx the parse tree + */ + exitDottedId?: (ctx: DottedIdContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.decimalLiteral`. + * @param ctx the parse tree + */ + enterDecimalLiteral?: (ctx: DecimalLiteralContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.decimalLiteral`. + * @param ctx the parse tree + */ + exitDecimalLiteral?: (ctx: DecimalLiteralContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.fileSizeLiteral`. + * @param ctx the parse tree + */ + enterFileSizeLiteral?: (ctx: FileSizeLiteralContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.fileSizeLiteral`. + * @param ctx the parse tree + */ + exitFileSizeLiteral?: (ctx: FileSizeLiteralContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.stringLiteral`. + * @param ctx the parse tree + */ + enterStringLiteral?: (ctx: StringLiteralContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.stringLiteral`. + * @param ctx the parse tree + */ + exitStringLiteral?: (ctx: StringLiteralContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.booleanLiteral`. + * @param ctx the parse tree + */ + enterBooleanLiteral?: (ctx: BooleanLiteralContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.booleanLiteral`. + * @param ctx the parse tree + */ + exitBooleanLiteral?: (ctx: BooleanLiteralContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.hexadecimalLiteral`. + * @param ctx the parse tree + */ + enterHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.hexadecimalLiteral`. + * @param ctx the parse tree + */ + exitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.nullNotnull`. + * @param ctx the parse tree + */ + enterNullNotnull?: (ctx: NullNotnullContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.nullNotnull`. + * @param ctx the parse tree + */ + exitNullNotnull?: (ctx: NullNotnullContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.constant`. + * @param ctx the parse tree + */ + enterConstant?: (ctx: ConstantContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.constant`. + * @param ctx the parse tree + */ + exitConstant?: (ctx: ConstantContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dataType`. + * @param ctx the parse tree + */ + enterDataType?: (ctx: DataTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dataType`. + * @param ctx the parse tree + */ + exitDataType?: (ctx: DataTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.collectionOptions`. + * @param ctx the parse tree + */ + enterCollectionOptions?: (ctx: CollectionOptionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.collectionOptions`. + * @param ctx the parse tree + */ + exitCollectionOptions?: (ctx: CollectionOptionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.convertedDataType`. + * @param ctx the parse tree + */ + enterConvertedDataType?: (ctx: ConvertedDataTypeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.convertedDataType`. + * @param ctx the parse tree + */ + exitConvertedDataType?: (ctx: ConvertedDataTypeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lengthOneDimension`. + * @param ctx the parse tree + */ + enterLengthOneDimension?: (ctx: LengthOneDimensionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lengthOneDimension`. + * @param ctx the parse tree + */ + exitLengthOneDimension?: (ctx: LengthOneDimensionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lengthTwoDimension`. + * @param ctx the parse tree + */ + enterLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lengthTwoDimension`. + * @param ctx the parse tree + */ + exitLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.lengthTwoOptionalDimension`. + * @param ctx the parse tree + */ + enterLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.lengthTwoOptionalDimension`. + * @param ctx the parse tree + */ + exitLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.indexColumnNames`. + * @param ctx the parse tree + */ + enterIndexColumnNames?: (ctx: IndexColumnNamesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.indexColumnNames`. + * @param ctx the parse tree + */ + exitIndexColumnNames?: (ctx: IndexColumnNamesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.expressions`. + * @param ctx the parse tree + */ + enterExpressions?: (ctx: ExpressionsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.expressions`. + * @param ctx the parse tree + */ + exitExpressions?: (ctx: ExpressionsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.valuesOrValueList`. + * @param ctx the parse tree + */ + enterValuesOrValueList?: (ctx: ValuesOrValueListContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.valuesOrValueList`. + * @param ctx the parse tree + */ + exitValuesOrValueList?: (ctx: ValuesOrValueListContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.expressionsWithDefaults`. + * @param ctx the parse tree + */ + enterExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.expressionsWithDefaults`. + * @param ctx the parse tree + */ + exitExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.expressionOrDefault`. + * @param ctx the parse tree + */ + enterExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.expressionOrDefault`. + * @param ctx the parse tree + */ + exitExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.constants`. + * @param ctx the parse tree + */ + enterConstants?: (ctx: ConstantsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.constants`. + * @param ctx the parse tree + */ + exitConstants?: (ctx: ConstantsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.simpleStrings`. + * @param ctx the parse tree + */ + enterSimpleStrings?: (ctx: SimpleStringsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.simpleStrings`. + * @param ctx the parse tree + */ + exitSimpleStrings?: (ctx: SimpleStringsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.userVariables`. + * @param ctx the parse tree + */ + enterUserVariables?: (ctx: UserVariablesContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.userVariables`. + * @param ctx the parse tree + */ + exitUserVariables?: (ctx: UserVariablesContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.defaultValue`. + * @param ctx the parse tree + */ + enterDefaultValue?: (ctx: DefaultValueContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.defaultValue`. + * @param ctx the parse tree + */ + exitDefaultValue?: (ctx: DefaultValueContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.currentTimestamp`. + * @param ctx the parse tree + */ + enterCurrentTimestamp?: (ctx: CurrentTimestampContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.currentTimestamp`. + * @param ctx the parse tree + */ + exitCurrentTimestamp?: (ctx: CurrentTimestampContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ifExists`. + * @param ctx the parse tree + */ + enterIfExists?: (ctx: IfExistsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ifExists`. + * @param ctx the parse tree + */ + exitIfExists?: (ctx: IfExistsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.ifNotExists`. + * @param ctx the parse tree + */ + enterIfNotExists?: (ctx: IfNotExistsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.ifNotExists`. + * @param ctx the parse tree + */ + exitIfNotExists?: (ctx: IfNotExistsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.orReplace`. + * @param ctx the parse tree + */ + enterOrReplace?: (ctx: OrReplaceContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.orReplace`. + * @param ctx the parse tree + */ + exitOrReplace?: (ctx: OrReplaceContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + enterFunctionCall?: (ctx: FunctionCallContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionCall`. + * @param ctx the parse tree + */ + exitFunctionCall?: (ctx: FunctionCallContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + enterSpecificFunction?: (ctx: SpecificFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.specificFunction`. + * @param ctx the parse tree + */ + exitSpecificFunction?: (ctx: SpecificFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.caseFuncAlternative`. + * @param ctx the parse tree + */ + enterCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.caseFuncAlternative`. + * @param ctx the parse tree + */ + exitCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + enterLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + */ + exitLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.levelInWeightListElement`. + * @param ctx the parse tree + */ + enterLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.levelInWeightListElement`. + * @param ctx the parse tree + */ + exitLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.aggregateWindowedFunction`. + * @param ctx the parse tree + */ + enterAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.aggregateWindowedFunction`. + * @param ctx the parse tree + */ + exitAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.nonAggregateWindowedFunction`. + * @param ctx the parse tree + */ + enterNonAggregateWindowedFunction?: (ctx: NonAggregateWindowedFunctionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.nonAggregateWindowedFunction`. + * @param ctx the parse tree + */ + exitNonAggregateWindowedFunction?: (ctx: NonAggregateWindowedFunctionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.overClause`. + * @param ctx the parse tree + */ + enterOverClause?: (ctx: OverClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.overClause`. + * @param ctx the parse tree + */ + exitOverClause?: (ctx: OverClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.windowSpec`. + * @param ctx the parse tree + */ + enterWindowSpec?: (ctx: WindowSpecContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.windowSpec`. + * @param ctx the parse tree + */ + exitWindowSpec?: (ctx: WindowSpecContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.windowName`. + * @param ctx the parse tree + */ + enterWindowName?: (ctx: WindowNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.windowName`. + * @param ctx the parse tree + */ + exitWindowName?: (ctx: WindowNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.frameClause`. + * @param ctx the parse tree + */ + enterFrameClause?: (ctx: FrameClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.frameClause`. + * @param ctx the parse tree + */ + exitFrameClause?: (ctx: FrameClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.frameUnits`. + * @param ctx the parse tree + */ + enterFrameUnits?: (ctx: FrameUnitsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.frameUnits`. + * @param ctx the parse tree + */ + exitFrameUnits?: (ctx: FrameUnitsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.frameExtent`. + * @param ctx the parse tree + */ + enterFrameExtent?: (ctx: FrameExtentContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.frameExtent`. + * @param ctx the parse tree + */ + exitFrameExtent?: (ctx: FrameExtentContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.frameBetween`. + * @param ctx the parse tree + */ + enterFrameBetween?: (ctx: FrameBetweenContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.frameBetween`. + * @param ctx the parse tree + */ + exitFrameBetween?: (ctx: FrameBetweenContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.frameRange`. + * @param ctx the parse tree + */ + enterFrameRange?: (ctx: FrameRangeContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.frameRange`. + * @param ctx the parse tree + */ + exitFrameRange?: (ctx: FrameRangeContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.partitionClause`. + * @param ctx the parse tree + */ + enterPartitionClause?: (ctx: PartitionClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.partitionClause`. + * @param ctx the parse tree + */ + exitPartitionClause?: (ctx: PartitionClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.scalarFunctionName`. + * @param ctx the parse tree + */ + enterScalarFunctionName?: (ctx: ScalarFunctionNameContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.scalarFunctionName`. + * @param ctx the parse tree + */ + exitScalarFunctionName?: (ctx: ScalarFunctionNameContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.passwordFunctionClause`. + * @param ctx the parse tree + */ + enterPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.passwordFunctionClause`. + * @param ctx the parse tree + */ + exitPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionArgs`. + * @param ctx the parse tree + */ + enterFunctionArgs?: (ctx: FunctionArgsContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionArgs`. + * @param ctx the parse tree + */ + exitFunctionArgs?: (ctx: FunctionArgsContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionArg`. + * @param ctx the parse tree + */ + enterFunctionArg?: (ctx: FunctionArgContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionArg`. + * @param ctx the parse tree + */ + exitFunctionArg?: (ctx: FunctionArgContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.expression`. + * @param ctx the parse tree + */ + enterExpression?: (ctx: ExpressionContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.expression`. + * @param ctx the parse tree + */ + exitExpression?: (ctx: ExpressionContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.predicate`. + * @param ctx the parse tree + */ + enterPredicate?: (ctx: PredicateContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.predicate`. + * @param ctx the parse tree + */ + exitPredicate?: (ctx: PredicateContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + enterExpressionAtom?: (ctx: ExpressionAtomContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.expressionAtom`. + * @param ctx the parse tree + */ + exitExpressionAtom?: (ctx: ExpressionAtomContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.unaryOperator`. + * @param ctx the parse tree + */ + enterUnaryOperator?: (ctx: UnaryOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.unaryOperator`. + * @param ctx the parse tree + */ + exitUnaryOperator?: (ctx: UnaryOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.comparisonOperator`. + * @param ctx the parse tree + */ + enterComparisonOperator?: (ctx: ComparisonOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.comparisonOperator`. + * @param ctx the parse tree + */ + exitComparisonOperator?: (ctx: ComparisonOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.comparisonBase`. + * @param ctx the parse tree + */ + enterComparisonBase?: (ctx: ComparisonBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.comparisonBase`. + * @param ctx the parse tree + */ + exitComparisonBase?: (ctx: ComparisonBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.logicalOperator`. + * @param ctx the parse tree + */ + enterLogicalOperator?: (ctx: LogicalOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.logicalOperator`. + * @param ctx the parse tree + */ + exitLogicalOperator?: (ctx: LogicalOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.bitOperator`. + * @param ctx the parse tree + */ + enterBitOperator?: (ctx: BitOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.bitOperator`. + * @param ctx the parse tree + */ + exitBitOperator?: (ctx: BitOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.mathOperator`. + * @param ctx the parse tree + */ + enterMathOperator?: (ctx: MathOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.mathOperator`. + * @param ctx the parse tree + */ + exitMathOperator?: (ctx: MathOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.jsonOperator`. + * @param ctx the parse tree + */ + enterJsonOperator?: (ctx: JsonOperatorContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.jsonOperator`. + * @param ctx the parse tree + */ + exitJsonOperator?: (ctx: JsonOperatorContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.charsetNameBase`. + * @param ctx the parse tree + */ + enterCharsetNameBase?: (ctx: CharsetNameBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.charsetNameBase`. + * @param ctx the parse tree + */ + exitCharsetNameBase?: (ctx: CharsetNameBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.transactionLevelBase`. + * @param ctx the parse tree + */ + enterTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.transactionLevelBase`. + * @param ctx the parse tree + */ + exitTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.privilegesBase`. + * @param ctx the parse tree + */ + enterPrivilegesBase?: (ctx: PrivilegesBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.privilegesBase`. + * @param ctx the parse tree + */ + exitPrivilegesBase?: (ctx: PrivilegesBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.intervalTypeBase`. + * @param ctx the parse tree + */ + enterIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.intervalTypeBase`. + * @param ctx the parse tree + */ + exitIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.dataTypeBase`. + * @param ctx the parse tree + */ + enterDataTypeBase?: (ctx: DataTypeBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.dataTypeBase`. + * @param ctx the parse tree + */ + exitDataTypeBase?: (ctx: DataTypeBaseContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.keywordsCanBeId`. + * @param ctx the parse tree + */ + enterKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.keywordsCanBeId`. + * @param ctx the parse tree + */ + exitKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => void; + + /** + * Enter a parse tree produced by `MySqlParser.functionNameBase`. + * @param ctx the parse tree + */ + enterFunctionNameBase?: (ctx: FunctionNameBaseContext) => void; + /** + * Exit a parse tree produced by `MySqlParser.functionNameBase`. + * @param ctx the parse tree + */ + exitFunctionNameBase?: (ctx: FunctionNameBaseContext) => void; +} + diff --git a/src/lib/mysql/MySqlParserVisitor.ts b/src/lib/mysql/MySqlParserVisitor.ts new file mode 100644 index 0000000..cbb5261 --- /dev/null +++ b/src/lib/mysql/MySqlParserVisitor.ts @@ -0,0 +1,6049 @@ +// Generated from /Users/liuyi/Desktop/Projects/dtstack/dt-sql-parser/src/grammar/mysql/MySqlParser.g4 by ANTLR 4.9.0-SNAPSHOT + + +import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor"; + +import { AlterByTableOptionContext } from "./MySqlParser"; +import { AlterByAddColumnContext } from "./MySqlParser"; +import { AlterByAddColumnsContext } from "./MySqlParser"; +import { AlterByAddIndexContext } from "./MySqlParser"; +import { AlterByAddSpecialIndexContext } from "./MySqlParser"; +import { AlterByAddPrimaryKeyContext } from "./MySqlParser"; +import { AlterByAddUniqueKeyContext } from "./MySqlParser"; +import { AlterByAddForeignKeyContext } from "./MySqlParser"; +import { AlterByAddCheckTableConstraintContext } from "./MySqlParser"; +import { AlterByDropConstraintCheckContext } from "./MySqlParser"; +import { AlterByAlterCheckTableConstraintContext } from "./MySqlParser"; +import { AlterBySetAlgorithmContext } from "./MySqlParser"; +import { AlterByAlterColumnDefaultContext } from "./MySqlParser"; +import { AlterByAlterIndexVisibilityContext } from "./MySqlParser"; +import { AlterByChangeColumnContext } from "./MySqlParser"; +import { AlterByDefaultCharsetContext } from "./MySqlParser"; +import { AlterByConvertCharsetContext } from "./MySqlParser"; +import { AlterKeysContext } from "./MySqlParser"; +import { AlterTablespaceOptionContext } from "./MySqlParser"; +import { AlterByDropColumnContext } from "./MySqlParser"; +import { AlterByDropIndexContext } from "./MySqlParser"; +import { AlterByDropPrimaryKeyContext } from "./MySqlParser"; +import { AlterByDropForeignKeyContext } from "./MySqlParser"; +import { AlterByForceContext } from "./MySqlParser"; +import { AlterByLockContext } from "./MySqlParser"; +import { AlterByModifyColumnContext } from "./MySqlParser"; +import { AlterByOrderContext } from "./MySqlParser"; +import { AlterByRenameColumnContext } from "./MySqlParser"; +import { AlterByRenameIndexContext } from "./MySqlParser"; +import { AlterByRenameContext } from "./MySqlParser"; +import { AlterByValidateContext } from "./MySqlParser"; +import { AlterPartitionContext } from "./MySqlParser"; +import { ModuleContext } from "./MySqlParser"; +import { PasswordModuleOptionContext } from "./MySqlParser"; +import { SimpleFunctionCallContext } from "./MySqlParser"; +import { CurrentUserContext } from "./MySqlParser"; +import { DataTypeFunctionCallContext } from "./MySqlParser"; +import { ValuesFunctionCallContext } from "./MySqlParser"; +import { CaseExpressionFunctionCallContext } from "./MySqlParser"; +import { CaseFunctionCallContext } from "./MySqlParser"; +import { CharFunctionCallContext } from "./MySqlParser"; +import { PositionFunctionCallContext } from "./MySqlParser"; +import { SubstrFunctionCallContext } from "./MySqlParser"; +import { TrimFunctionCallContext } from "./MySqlParser"; +import { WeightFunctionCallContext } from "./MySqlParser"; +import { ExtractFunctionCallContext } from "./MySqlParser"; +import { GetFormatFunctionCallContext } from "./MySqlParser"; +import { JsonValueFunctionCallContext } from "./MySqlParser"; +import { InnerJoinContext } from "./MySqlParser"; +import { StraightJoinContext } from "./MySqlParser"; +import { OuterJoinContext } from "./MySqlParser"; +import { NaturalJoinContext } from "./MySqlParser"; +import { SetVariableContext } from "./MySqlParser"; +import { SetCharsetContext } from "./MySqlParser"; +import { SetNamesContext } from "./MySqlParser"; +import { SetPasswordContext } from "./MySqlParser"; +import { SetTransactionContext } from "./MySqlParser"; +import { SetAutocommitContext } from "./MySqlParser"; +import { SetNewValueInsideTriggerContext } from "./MySqlParser"; +import { AtomTableItemContext } from "./MySqlParser"; +import { SubqueryTableItemContext } from "./MySqlParser"; +import { TableSourcesItemContext } from "./MySqlParser"; +import { AlterByAddPartitionContext } from "./MySqlParser"; +import { AlterByDropPartitionContext } from "./MySqlParser"; +import { AlterByDiscardPartitionContext } from "./MySqlParser"; +import { AlterByImportPartitionContext } from "./MySqlParser"; +import { AlterByTruncatePartitionContext } from "./MySqlParser"; +import { AlterByCoalescePartitionContext } from "./MySqlParser"; +import { AlterByReorganizePartitionContext } from "./MySqlParser"; +import { AlterByExchangePartitionContext } from "./MySqlParser"; +import { AlterByAnalyzePartitionContext } from "./MySqlParser"; +import { AlterByCheckPartitionContext } from "./MySqlParser"; +import { AlterByOptimizePartitionContext } from "./MySqlParser"; +import { AlterByRebuildPartitionContext } from "./MySqlParser"; +import { AlterByRepairPartitionContext } from "./MySqlParser"; +import { AlterByRemovePartitioningContext } from "./MySqlParser"; +import { AlterByUpgradePartitioningContext } from "./MySqlParser"; +import { SourceStringOptionContext } from "./MySqlParser"; +import { SourceDecimalOptionContext } from "./MySqlParser"; +import { SourceBoolOptionContext } from "./MySqlParser"; +import { SourceOtherOptionContext } from "./MySqlParser"; +import { SourceUidListOptionContext } from "./MySqlParser"; +import { SimpleSelectContext } from "./MySqlParser"; +import { ParenthesisSelectContext } from "./MySqlParser"; +import { UnionSelectContext } from "./MySqlParser"; +import { UnionParenthesisSelectContext } from "./MySqlParser"; +import { WithLateralStatementContext } from "./MySqlParser"; +import { StringDataTypeContext } from "./MySqlParser"; +import { NationalVaryingStringDataTypeContext } from "./MySqlParser"; +import { NationalStringDataTypeContext } from "./MySqlParser"; +import { DimensionDataTypeContext } from "./MySqlParser"; +import { SimpleDataTypeContext } from "./MySqlParser"; +import { CollectionDataTypeContext } from "./MySqlParser"; +import { SpatialDataTypeContext } from "./MySqlParser"; +import { LongVarcharDataTypeContext } from "./MySqlParser"; +import { LongVarbinaryDataTypeContext } from "./MySqlParser"; +import { NullColumnConstraintContext } from "./MySqlParser"; +import { DefaultColumnConstraintContext } from "./MySqlParser"; +import { VisibilityColumnConstraintContext } from "./MySqlParser"; +import { InvisibilityColumnConstraintContext } from "./MySqlParser"; +import { AutoIncrementColumnConstraintContext } from "./MySqlParser"; +import { PrimaryKeyColumnConstraintContext } from "./MySqlParser"; +import { UniqueKeyColumnConstraintContext } from "./MySqlParser"; +import { CommentColumnConstraintContext } from "./MySqlParser"; +import { FormatColumnConstraintContext } from "./MySqlParser"; +import { StorageColumnConstraintContext } from "./MySqlParser"; +import { ReferenceColumnConstraintContext } from "./MySqlParser"; +import { CollateColumnConstraintContext } from "./MySqlParser"; +import { GeneratedColumnConstraintContext } from "./MySqlParser"; +import { SerialDefaultColumnConstraintContext } from "./MySqlParser"; +import { CheckExprContext } from "./MySqlParser"; +import { SubPartitionFunctionHashContext } from "./MySqlParser"; +import { SubPartitionFunctionKeyContext } from "./MySqlParser"; +import { V57Context } from "./MySqlParser"; +import { V80Context } from "./MySqlParser"; +import { DescribeStatementsContext } from "./MySqlParser"; +import { DescribeConnectionContext } from "./MySqlParser"; +import { SpecificFunctionCallContext } from "./MySqlParser"; +import { AggregateFunctionCallContext } from "./MySqlParser"; +import { NonAggregateFunctionCallContext } from "./MySqlParser"; +import { ScalarFunctionCallContext } from "./MySqlParser"; +import { UdfFunctionCallContext } from "./MySqlParser"; +import { PasswordFunctionCallContext } from "./MySqlParser"; +import { TableOptionEngineContext } from "./MySqlParser"; +import { TableOptionEngineAttributeContext } from "./MySqlParser"; +import { TableOptionAutoextendSizeContext } from "./MySqlParser"; +import { TableOptionAutoIncrementContext } from "./MySqlParser"; +import { TableOptionAverageContext } from "./MySqlParser"; +import { TableOptionCharsetContext } from "./MySqlParser"; +import { TableOptionChecksumContext } from "./MySqlParser"; +import { TableOptionCollateContext } from "./MySqlParser"; +import { TableOptionCommentContext } from "./MySqlParser"; +import { TableOptionCompressionContext } from "./MySqlParser"; +import { TableOptionConnectionContext } from "./MySqlParser"; +import { TableOptionDataDirectoryContext } from "./MySqlParser"; +import { TableOptionDelayContext } from "./MySqlParser"; +import { TableOptionEncryptionContext } from "./MySqlParser"; +import { TableOptionPageCompressedContext } from "./MySqlParser"; +import { TableOptionPageCompressionLevelContext } from "./MySqlParser"; +import { TableOptionEncryptionKeyIdContext } from "./MySqlParser"; +import { TableOptionIndexDirectoryContext } from "./MySqlParser"; +import { TableOptionInsertMethodContext } from "./MySqlParser"; +import { TableOptionKeyBlockSizeContext } from "./MySqlParser"; +import { TableOptionMaxRowsContext } from "./MySqlParser"; +import { TableOptionMinRowsContext } from "./MySqlParser"; +import { TableOptionPackKeysContext } from "./MySqlParser"; +import { TableOptionPasswordContext } from "./MySqlParser"; +import { TableOptionRowFormatContext } from "./MySqlParser"; +import { TableOptionStartTransactionContext } from "./MySqlParser"; +import { TableOptionSecondaryEngineAttributeContext } from "./MySqlParser"; +import { TableOptionRecalculationContext } from "./MySqlParser"; +import { TableOptionPersistentContext } from "./MySqlParser"; +import { TableOptionSamplePageContext } from "./MySqlParser"; +import { TableOptionTablespaceContext } from "./MySqlParser"; +import { TableOptionTableTypeContext } from "./MySqlParser"; +import { TableOptionTransactionalContext } from "./MySqlParser"; +import { TableOptionUnionContext } from "./MySqlParser"; +import { ConstantExpressionAtomContext } from "./MySqlParser"; +import { ColumnNameExpressionAtomContext } from "./MySqlParser"; +import { FunctionCallExpressionAtomContext } from "./MySqlParser"; +import { CollateExpressionAtomContext } from "./MySqlParser"; +import { MysqlVariableExpressionAtomContext } from "./MySqlParser"; +import { UnaryExpressionAtomContext } from "./MySqlParser"; +import { BinaryExpressionAtomContext } from "./MySqlParser"; +import { VariableAssignExpressionAtomContext } from "./MySqlParser"; +import { NestedExpressionAtomContext } from "./MySqlParser"; +import { NestedRowExpressionAtomContext } from "./MySqlParser"; +import { ExistsExpressionAtomContext } from "./MySqlParser"; +import { SubqueryExpressionAtomContext } from "./MySqlParser"; +import { IntervalExpressionAtomContext } from "./MySqlParser"; +import { BitExpressionAtomContext } from "./MySqlParser"; +import { MathExpressionAtomContext } from "./MySqlParser"; +import { JsonExpressionAtomContext } from "./MySqlParser"; +import { MasterStringOptionContext } from "./MySqlParser"; +import { MasterDecimalOptionContext } from "./MySqlParser"; +import { MasterBoolOptionContext } from "./MySqlParser"; +import { V8AddMasterOptionContext } from "./MySqlParser"; +import { MasterUidListOptionContext } from "./MySqlParser"; +import { GtidsUntilOptionContext } from "./MySqlParser"; +import { MasterLogUntilOptionContext } from "./MySqlParser"; +import { SourceLogUntilOptionContext } from "./MySqlParser"; +import { RelayLogUntilOptionContext } from "./MySqlParser"; +import { SqlGapsUntilOptionContext } from "./MySqlParser"; +import { CopyCreateTableContext } from "./MySqlParser"; +import { ColumnCreateTableContext } from "./MySqlParser"; +import { QueryCreateTableContext } from "./MySqlParser"; +import { PartitionFunctionHashContext } from "./MySqlParser"; +import { PartitionFunctionKeyContext } from "./MySqlParser"; +import { PartitionFunctionRangeContext } from "./MySqlParser"; +import { PartitionFunctionListContext } from "./MySqlParser"; +import { HandlerConditionCodeContext } from "./MySqlParser"; +import { HandlerConditionStateContext } from "./MySqlParser"; +import { HandlerConditionNameContext } from "./MySqlParser"; +import { HandlerConditionWarningContext } from "./MySqlParser"; +import { HandlerConditionNotfoundContext } from "./MySqlParser"; +import { HandlerConditionExceptionContext } from "./MySqlParser"; +import { LevelWeightListContext } from "./MySqlParser"; +import { LevelWeightRangeContext } from "./MySqlParser"; +import { InPredicateContext } from "./MySqlParser"; +import { IsNullPredicateContext } from "./MySqlParser"; +import { BinaryComparisonPredicateContext } from "./MySqlParser"; +import { SubqueryComparisonPredicateContext } from "./MySqlParser"; +import { BetweenPredicateContext } from "./MySqlParser"; +import { SoundsLikePredicateContext } from "./MySqlParser"; +import { LikePredicateContext } from "./MySqlParser"; +import { RegexpPredicateContext } from "./MySqlParser"; +import { JsonMemberOfPredicateContext } from "./MySqlParser"; +import { ExpressionAtomPredicateContext } from "./MySqlParser"; +import { UserConnectionOptionContext } from "./MySqlParser"; +import { PasswordConnectionOptionContext } from "./MySqlParser"; +import { DefaultAuthConnectionOptionContext } from "./MySqlParser"; +import { PluginDirConnectionOptionContext } from "./MySqlParser"; +import { SelectIntoVariablesContext } from "./MySqlParser"; +import { SelectIntoDumpFileContext } from "./MySqlParser"; +import { SelectIntoTextFileContext } from "./MySqlParser"; +import { PartitionOptionEngineContext } from "./MySqlParser"; +import { PartitionOptionCommentContext } from "./MySqlParser"; +import { PartitionOptionDataDirectoryContext } from "./MySqlParser"; +import { PartitionOptionIndexDirectoryContext } from "./MySqlParser"; +import { PartitionOptionMaxRowsContext } from "./MySqlParser"; +import { PartitionOptionMinRowsContext } from "./MySqlParser"; +import { PartitionOptionTablespaceContext } from "./MySqlParser"; +import { PartitionOptionNodeGroupContext } from "./MySqlParser"; +import { DoDbReplicationContext } from "./MySqlParser"; +import { IgnoreDbReplicationContext } from "./MySqlParser"; +import { DoTableReplicationContext } from "./MySqlParser"; +import { IgnoreTableReplicationContext } from "./MySqlParser"; +import { WildDoTableReplicationContext } from "./MySqlParser"; +import { WildIgnoreTableReplicationContext } from "./MySqlParser"; +import { RewriteDbReplicationContext } from "./MySqlParser"; +import { SelectStarElementContext } from "./MySqlParser"; +import { SelectColumnElementContext } from "./MySqlParser"; +import { SelectFunctionElementContext } from "./MySqlParser"; +import { SelectExpressionElementContext } from "./MySqlParser"; +import { NotExpressionContext } from "./MySqlParser"; +import { LogicalExpressionContext } from "./MySqlParser"; +import { IsExpressionContext } from "./MySqlParser"; +import { PredicateExpressionContext } from "./MySqlParser"; +import { PartitionComparisonContext } from "./MySqlParser"; +import { PartitionListAtomContext } from "./MySqlParser"; +import { PartitionListVectorContext } from "./MySqlParser"; +import { PartitionSimpleContext } from "./MySqlParser"; +import { HashAuthOptionContext } from "./MySqlParser"; +import { RandomAuthOptionContext } from "./MySqlParser"; +import { StringAuthOptionContext } from "./MySqlParser"; +import { ModuleAuthOptionContext } from "./MySqlParser"; +import { SimpleAuthOptionContext } from "./MySqlParser"; +import { SimpleFlushOptionContext } from "./MySqlParser"; +import { ChannelFlushOptionContext } from "./MySqlParser"; +import { TableFlushOptionContext } from "./MySqlParser"; +import { CloseCursorContext } from "./MySqlParser"; +import { FetchCursorContext } from "./MySqlParser"; +import { OpenCursorContext } from "./MySqlParser"; +import { TableSourceBaseContext } from "./MySqlParser"; +import { TableSourceNestedContext } from "./MySqlParser"; +import { TableJsonContext } from "./MySqlParser"; +import { PreciseScheduleContext } from "./MySqlParser"; +import { IntervalScheduleContext } from "./MySqlParser"; +import { RoutineCommentContext } from "./MySqlParser"; +import { RoutineLanguageContext } from "./MySqlParser"; +import { RoutineBehaviorContext } from "./MySqlParser"; +import { RoutineDataContext } from "./MySqlParser"; +import { RoutineSecurityContext } from "./MySqlParser"; +import { CurrentSchemaPriviLevelContext } from "./MySqlParser"; +import { GlobalPrivLevelContext } from "./MySqlParser"; +import { DefiniteSchemaPrivLevelContext } from "./MySqlParser"; +import { DefiniteFullTablePrivLevelContext } from "./MySqlParser"; +import { DefiniteFullTablePrivLevel2Context } from "./MySqlParser"; +import { DefiniteTablePrivLevelContext } from "./MySqlParser"; +import { ShowMasterLogsContext } from "./MySqlParser"; +import { ShowLogEventsContext } from "./MySqlParser"; +import { ShowObjectFilterContext } from "./MySqlParser"; +import { ShowColumnsContext } from "./MySqlParser"; +import { ShowCreateDbContext } from "./MySqlParser"; +import { ShowCreateFullIdObjectContext } from "./MySqlParser"; +import { ShowCreateFunctionContext } from "./MySqlParser"; +import { ShowCreateViewContext } from "./MySqlParser"; +import { ShowCreateTableContext } from "./MySqlParser"; +import { ShowCreateUserContext } from "./MySqlParser"; +import { ShowEngineContext } from "./MySqlParser"; +import { ShowGlobalInfoContext } from "./MySqlParser"; +import { ShowErrorsContext } from "./MySqlParser"; +import { ShowCountErrorsContext } from "./MySqlParser"; +import { ShowSchemaFilterContext } from "./MySqlParser"; +import { ShowPercedureCodeContext } from "./MySqlParser"; +import { ShowFunctionCodeContext } from "./MySqlParser"; +import { ShowGrantsContext } from "./MySqlParser"; +import { ShowIndexesContext } from "./MySqlParser"; +import { ShowOpenTablesContext } from "./MySqlParser"; +import { ShowProfileContext } from "./MySqlParser"; +import { ShowSlaveStatusContext } from "./MySqlParser"; +import { ShowReplicasContext } from "./MySqlParser"; +import { AlterSimpleDatabaseContext } from "./MySqlParser"; +import { AlterUpgradeNameContext } from "./MySqlParser"; +import { DetailRevokeContext } from "./MySqlParser"; +import { ShortRevokeContext } from "./MySqlParser"; +import { ProxyAndRoleRevokeContext } from "./MySqlParser"; +import { ProgramContext } from "./MySqlParser"; +import { SqlStatementsContext } from "./MySqlParser"; +import { SqlStatementContext } from "./MySqlParser"; +import { EmptyStatement_Context } from "./MySqlParser"; +import { DdlStatementContext } from "./MySqlParser"; +import { DmlStatementContext } from "./MySqlParser"; +import { TransactionStatementContext } from "./MySqlParser"; +import { ReplicationStatementContext } from "./MySqlParser"; +import { PreparedStatementContext } from "./MySqlParser"; +import { CompoundStatementContext } from "./MySqlParser"; +import { AdministrationStatementContext } from "./MySqlParser"; +import { UtilityStatementContext } from "./MySqlParser"; +import { CreateDatabaseContext } from "./MySqlParser"; +import { CreateEventContext } from "./MySqlParser"; +import { CreateIndexContext } from "./MySqlParser"; +import { CreateLogfileGroupContext } from "./MySqlParser"; +import { CreateProcedureContext } from "./MySqlParser"; +import { CreateRoleContext } from "./MySqlParser"; +import { CreateServerContext } from "./MySqlParser"; +import { CreateTableContext } from "./MySqlParser"; +import { CreateTablespaceInnodbContext } from "./MySqlParser"; +import { CreateTablespaceNdbContext } from "./MySqlParser"; +import { CreateTriggerContext } from "./MySqlParser"; +import { WithClauseContext } from "./MySqlParser"; +import { CommonTableExpressionsContext } from "./MySqlParser"; +import { CreateViewContext } from "./MySqlParser"; +import { CreateDatabaseOptionContext } from "./MySqlParser"; +import { CharSetContext } from "./MySqlParser"; +import { CurrentUserExpressionContext } from "./MySqlParser"; +import { OwnerStatementContext } from "./MySqlParser"; +import { ScheduleExpressionContext } from "./MySqlParser"; +import { TimestampValueContext } from "./MySqlParser"; +import { IntervalExprContext } from "./MySqlParser"; +import { IntervalTypeContext } from "./MySqlParser"; +import { EnableTypeContext } from "./MySqlParser"; +import { IndexTypeContext } from "./MySqlParser"; +import { IndexOptionContext } from "./MySqlParser"; +import { ProcedureParameterContext } from "./MySqlParser"; +import { RoutineOptionContext } from "./MySqlParser"; +import { ServerOptionContext } from "./MySqlParser"; +import { CreateDefinitionsContext } from "./MySqlParser"; +import { CreateDefinitionContext } from "./MySqlParser"; +import { CheckConstraintDefinitionContext } from "./MySqlParser"; +import { ConstraintSymbolContext } from "./MySqlParser"; +import { ColumnDefinitionContext } from "./MySqlParser"; +import { ColumnConstraintContext } from "./MySqlParser"; +import { ReferenceDefinitionContext } from "./MySqlParser"; +import { ReferenceActionContext } from "./MySqlParser"; +import { ReferenceControlTypeContext } from "./MySqlParser"; +import { TableOptionContext } from "./MySqlParser"; +import { TableTypeContext } from "./MySqlParser"; +import { TablespaceStorageContext } from "./MySqlParser"; +import { PartitionDefinitionsContext } from "./MySqlParser"; +import { PartitionFunctionDefinitionContext } from "./MySqlParser"; +import { SubpartitionFunctionDefinitionContext } from "./MySqlParser"; +import { PartitionDefinitionContext } from "./MySqlParser"; +import { PartitionDefinerAtomContext } from "./MySqlParser"; +import { PartitionDefinerVectorContext } from "./MySqlParser"; +import { SubpartitionDefinitionContext } from "./MySqlParser"; +import { PartitionOptionContext } from "./MySqlParser"; +import { AlterDatabaseContext } from "./MySqlParser"; +import { AlterEventContext } from "./MySqlParser"; +import { AlterFunctionContext } from "./MySqlParser"; +import { AlterInstanceContext } from "./MySqlParser"; +import { AlterLogfileGroupContext } from "./MySqlParser"; +import { AlterProcedureContext } from "./MySqlParser"; +import { AlterServerContext } from "./MySqlParser"; +import { AlterTableContext } from "./MySqlParser"; +import { AlterTablespaceContext } from "./MySqlParser"; +import { AlterViewContext } from "./MySqlParser"; +import { AlterOptionContext } from "./MySqlParser"; +import { AlterPartitionSpecificationContext } from "./MySqlParser"; +import { DropDatabaseContext } from "./MySqlParser"; +import { DropEventContext } from "./MySqlParser"; +import { DropIndexContext } from "./MySqlParser"; +import { DropLogfileGroupContext } from "./MySqlParser"; +import { DropProcedureContext } from "./MySqlParser"; +import { DropFunctionContext } from "./MySqlParser"; +import { DropServerContext } from "./MySqlParser"; +import { DropSpatialContext } from "./MySqlParser"; +import { DropTableContext } from "./MySqlParser"; +import { DropTablespaceContext } from "./MySqlParser"; +import { DropTriggerContext } from "./MySqlParser"; +import { DropViewContext } from "./MySqlParser"; +import { DropRoleContext } from "./MySqlParser"; +import { SetRoleContext } from "./MySqlParser"; +import { RenameTableContext } from "./MySqlParser"; +import { RenameTableClauseContext } from "./MySqlParser"; +import { TruncateTableContext } from "./MySqlParser"; +import { CallStatementContext } from "./MySqlParser"; +import { DeleteStatementContext } from "./MySqlParser"; +import { DoStatementContext } from "./MySqlParser"; +import { HandlerStatementContext } from "./MySqlParser"; +import { InsertStatementContext } from "./MySqlParser"; +import { AsRowAliasContext } from "./MySqlParser"; +import { SelectOrTableOrValuesContext } from "./MySqlParser"; +import { InterSectStatementContext } from "./MySqlParser"; +import { InterSectQueryContext } from "./MySqlParser"; +import { LoadDataStatementContext } from "./MySqlParser"; +import { LoadXmlStatementContext } from "./MySqlParser"; +import { ParenthesizedQueryContext } from "./MySqlParser"; +import { ReplaceStatementContext } from "./MySqlParser"; +import { SelectStatementContext } from "./MySqlParser"; +import { SetOperationsContext } from "./MySqlParser"; +import { QueryExpressionBodyContext } from "./MySqlParser"; +import { QueryItemContext } from "./MySqlParser"; +import { QueryPrimaryContext } from "./MySqlParser"; +import { UpdateStatementContext } from "./MySqlParser"; +import { ValuesStatementContext } from "./MySqlParser"; +import { ParenthesizedQueryExpressionContext } from "./MySqlParser"; +import { QueryBlockContext } from "./MySqlParser"; +import { ReplaceStatementValuesOrSelectOrTableContext } from "./MySqlParser"; +import { RowValuesListContext } from "./MySqlParser"; +import { SetAssignmentListContext } from "./MySqlParser"; +import { UpdatedElementContext } from "./MySqlParser"; +import { AssignmentFieldContext } from "./MySqlParser"; +import { LockClauseContext } from "./MySqlParser"; +import { SingleDeleteStatementContext } from "./MySqlParser"; +import { MultipleDeleteStatementContext } from "./MySqlParser"; +import { HandlerOpenStatementContext } from "./MySqlParser"; +import { HandlerReadIndexStatementContext } from "./MySqlParser"; +import { HandlerReadStatementContext } from "./MySqlParser"; +import { HandlerCloseStatementContext } from "./MySqlParser"; +import { ImportTableStatementContext } from "./MySqlParser"; +import { SingleUpdateStatementContext } from "./MySqlParser"; +import { MultipleUpdateStatementContext } from "./MySqlParser"; +import { OrderByClauseContext } from "./MySqlParser"; +import { OrderByExpressionContext } from "./MySqlParser"; +import { TableSourcesContext } from "./MySqlParser"; +import { TableSourceContext } from "./MySqlParser"; +import { TableSourceItemContext } from "./MySqlParser"; +import { FullColumnNamesContext } from "./MySqlParser"; +import { IndexHintContext } from "./MySqlParser"; +import { IndexHintTypeContext } from "./MySqlParser"; +import { JoinPartContext } from "./MySqlParser"; +import { JoinSpecContext } from "./MySqlParser"; +import { QueryExpressionContext } from "./MySqlParser"; +import { QueryExpressionNointoContext } from "./MySqlParser"; +import { QuerySpecificationContext } from "./MySqlParser"; +import { QuerySpecificationNointoContext } from "./MySqlParser"; +import { UnionParenthesisContext } from "./MySqlParser"; +import { UnionStatementContext } from "./MySqlParser"; +import { LateralStatementContext } from "./MySqlParser"; +import { JsonTableContext } from "./MySqlParser"; +import { JsonColumnListContext } from "./MySqlParser"; +import { JsonColumnContext } from "./MySqlParser"; +import { JsonOnEmptyContext } from "./MySqlParser"; +import { JsonOnErrorContext } from "./MySqlParser"; +import { SelectSpecContext } from "./MySqlParser"; +import { SelectElementsContext } from "./MySqlParser"; +import { SelectElementContext } from "./MySqlParser"; +import { IntoClauseContext } from "./MySqlParser"; +import { SelectFieldsIntoContext } from "./MySqlParser"; +import { SelectLinesIntoContext } from "./MySqlParser"; +import { FromClauseContext } from "./MySqlParser"; +import { GroupByClauseContext } from "./MySqlParser"; +import { HavingClauseContext } from "./MySqlParser"; +import { WindowClauseContext } from "./MySqlParser"; +import { GroupByItemContext } from "./MySqlParser"; +import { LimitClauseContext } from "./MySqlParser"; +import { LimitClauseAtomContext } from "./MySqlParser"; +import { StartTransactionContext } from "./MySqlParser"; +import { BeginWorkContext } from "./MySqlParser"; +import { CommitWorkContext } from "./MySqlParser"; +import { RollbackWorkContext } from "./MySqlParser"; +import { SavepointStatementContext } from "./MySqlParser"; +import { RollbackStatementContext } from "./MySqlParser"; +import { ReleaseStatementContext } from "./MySqlParser"; +import { LockTablesContext } from "./MySqlParser"; +import { UnlockTablesContext } from "./MySqlParser"; +import { SetAutocommitStatementContext } from "./MySqlParser"; +import { SetTransactionStatementContext } from "./MySqlParser"; +import { TransactionModeContext } from "./MySqlParser"; +import { LockTableElementContext } from "./MySqlParser"; +import { LockActionContext } from "./MySqlParser"; +import { TransactionOptionContext } from "./MySqlParser"; +import { TransactionLevelContext } from "./MySqlParser"; +import { ChangeMasterContext } from "./MySqlParser"; +import { ChangeReplicationFilterContext } from "./MySqlParser"; +import { ChangeReplicationSourceContext } from "./MySqlParser"; +import { PurgeBinaryLogsContext } from "./MySqlParser"; +import { StartSlaveOrReplicaContext } from "./MySqlParser"; +import { StopSlaveOrReplicaContext } from "./MySqlParser"; +import { StartGroupReplicationContext } from "./MySqlParser"; +import { StopGroupReplicationContext } from "./MySqlParser"; +import { MasterOptionContext } from "./MySqlParser"; +import { StringMasterOptionContext } from "./MySqlParser"; +import { DecimalMasterOptionContext } from "./MySqlParser"; +import { BoolMasterOptionContext } from "./MySqlParser"; +import { V8NewMasterOptionContext } from "./MySqlParser"; +import { ReplicationSourceOptionContext } from "./MySqlParser"; +import { StringSourceOptionContext } from "./MySqlParser"; +import { DecimalSourceOptionContext } from "./MySqlParser"; +import { BoolSourceOptionContext } from "./MySqlParser"; +import { OtherSourceOptionContext } from "./MySqlParser"; +import { ChannelOptionContext } from "./MySqlParser"; +import { ReplicationFilterContext } from "./MySqlParser"; +import { TablePairContext } from "./MySqlParser"; +import { ThreadTypeContext } from "./MySqlParser"; +import { UntilOptionContext } from "./MySqlParser"; +import { ConnectionOptionsContext } from "./MySqlParser"; +import { GtuidSetContext } from "./MySqlParser"; +import { XaStartTransactionContext } from "./MySqlParser"; +import { XaEndTransactionContext } from "./MySqlParser"; +import { XaPrepareStatementContext } from "./MySqlParser"; +import { XaCommitWorkContext } from "./MySqlParser"; +import { XaRollbackWorkContext } from "./MySqlParser"; +import { XaRecoverWorkContext } from "./MySqlParser"; +import { PrepareStatementContext } from "./MySqlParser"; +import { ExecuteStatementContext } from "./MySqlParser"; +import { DeallocatePrepareContext } from "./MySqlParser"; +import { RoutineBodyContext } from "./MySqlParser"; +import { BlockStatementContext } from "./MySqlParser"; +import { CaseStatementContext } from "./MySqlParser"; +import { IfStatementContext } from "./MySqlParser"; +import { IterateStatementContext } from "./MySqlParser"; +import { LeaveStatementContext } from "./MySqlParser"; +import { LoopStatementContext } from "./MySqlParser"; +import { RepeatStatementContext } from "./MySqlParser"; +import { ReturnStatementContext } from "./MySqlParser"; +import { WhileStatementContext } from "./MySqlParser"; +import { CursorStatementContext } from "./MySqlParser"; +import { DeclareVariableContext } from "./MySqlParser"; +import { DeclareConditionContext } from "./MySqlParser"; +import { DeclareCursorContext } from "./MySqlParser"; +import { DeclareHandlerContext } from "./MySqlParser"; +import { HandlerConditionValueContext } from "./MySqlParser"; +import { ProcedureSqlStatementContext } from "./MySqlParser"; +import { CaseAlternativeContext } from "./MySqlParser"; +import { ElifAlternativeContext } from "./MySqlParser"; +import { AlterUserContext } from "./MySqlParser"; +import { CreateUserContext } from "./MySqlParser"; +import { DropUserContext } from "./MySqlParser"; +import { GrantStatementContext } from "./MySqlParser"; +import { RoleOptionContext } from "./MySqlParser"; +import { GrantProxyContext } from "./MySqlParser"; +import { AlterResourceGroupContext } from "./MySqlParser"; +import { CreateResourceGroupContext } from "./MySqlParser"; +import { DropResourceGroupContext } from "./MySqlParser"; +import { SetResourceGroupContext } from "./MySqlParser"; +import { ResourceGroupVcpuSpecContext } from "./MySqlParser"; +import { RenameUserContext } from "./MySqlParser"; +import { RevokeStatementContext } from "./MySqlParser"; +import { IgnoreUnknownUserContext } from "./MySqlParser"; +import { PrivilegeObjectTypeContext } from "./MySqlParser"; +import { SetPasswordStatementContext } from "./MySqlParser"; +import { UserSpecificationContext } from "./MySqlParser"; +import { AlterUserAuthOptionContext } from "./MySqlParser"; +import { CreateUserAuthOptionContext } from "./MySqlParser"; +import { CreateUserInitialAuthOptionContext } from "./MySqlParser"; +import { UserAuthOptionContext } from "./MySqlParser"; +import { AuthOptionClauseContext } from "./MySqlParser"; +import { AuthenticationRuleContext } from "./MySqlParser"; +import { TlsOptionContext } from "./MySqlParser"; +import { UserResourceOptionContext } from "./MySqlParser"; +import { UserPasswordOptionContext } from "./MySqlParser"; +import { UserLockOptionContext } from "./MySqlParser"; +import { FactorAuthOptionContext } from "./MySqlParser"; +import { RegistrationOptionContext } from "./MySqlParser"; +import { FactorContext } from "./MySqlParser"; +import { PrivelegeClauseContext } from "./MySqlParser"; +import { PrivilegeContext } from "./MySqlParser"; +import { PrivilegeLevelContext } from "./MySqlParser"; +import { RenameUserClauseContext } from "./MySqlParser"; +import { AnalyzeTableContext } from "./MySqlParser"; +import { CheckTableContext } from "./MySqlParser"; +import { ChecksumTableContext } from "./MySqlParser"; +import { OptimizeTableContext } from "./MySqlParser"; +import { RepairTableContext } from "./MySqlParser"; +import { TableActionOptionContext } from "./MySqlParser"; +import { CheckTableOptionContext } from "./MySqlParser"; +import { CreateFunctionContext } from "./MySqlParser"; +import { InstallComponentContext } from "./MySqlParser"; +import { VariableExprContext } from "./MySqlParser"; +import { UninstallComponentContext } from "./MySqlParser"; +import { InstallPluginContext } from "./MySqlParser"; +import { UninstallPluginContext } from "./MySqlParser"; +import { CloneStatementContext } from "./MySqlParser"; +import { SetStatementContext } from "./MySqlParser"; +import { ShowStatementContext } from "./MySqlParser"; +import { VariableClauseContext } from "./MySqlParser"; +import { ShowCommonEntityContext } from "./MySqlParser"; +import { ShowFilterContext } from "./MySqlParser"; +import { ShowGlobalInfoClauseContext } from "./MySqlParser"; +import { ShowSchemaEntityContext } from "./MySqlParser"; +import { ShowProfileTypeContext } from "./MySqlParser"; +import { BinlogStatementContext } from "./MySqlParser"; +import { CacheIndexStatementContext } from "./MySqlParser"; +import { FlushStatementContext } from "./MySqlParser"; +import { KillStatementContext } from "./MySqlParser"; +import { LoadIndexIntoCacheContext } from "./MySqlParser"; +import { ResetStatementContext } from "./MySqlParser"; +import { ResetOptionContext } from "./MySqlParser"; +import { ResetPersistContext } from "./MySqlParser"; +import { ResetAllChannelContext } from "./MySqlParser"; +import { ReStartStatementContext } from "./MySqlParser"; +import { ShutdownStatementContext } from "./MySqlParser"; +import { TableIndexContext } from "./MySqlParser"; +import { FlushOptionContext } from "./MySqlParser"; +import { FlushTableOptionContext } from "./MySqlParser"; +import { LoadedTableIndexesContext } from "./MySqlParser"; +import { SimpleDescribeStatementContext } from "./MySqlParser"; +import { FullDescribeStatementContext } from "./MySqlParser"; +import { AnalyzeDescribeStatementContext } from "./MySqlParser"; +import { HelpStatementContext } from "./MySqlParser"; +import { UseStatementContext } from "./MySqlParser"; +import { SignalStatementContext } from "./MySqlParser"; +import { ResignalStatementContext } from "./MySqlParser"; +import { SignalConditionInformationContext } from "./MySqlParser"; +import { WithStatementContext } from "./MySqlParser"; +import { TableStatementContext } from "./MySqlParser"; +import { DiagnosticsStatementContext } from "./MySqlParser"; +import { DiagnosticsConditionInformationNameContext } from "./MySqlParser"; +import { DescribeObjectClauseContext } from "./MySqlParser"; +import { DatabaseNameCreateContext } from "./MySqlParser"; +import { DatabaseNameContext } from "./MySqlParser"; +import { FunctionNameCreateContext } from "./MySqlParser"; +import { FunctionNameContext } from "./MySqlParser"; +import { ViewNameCreateContext } from "./MySqlParser"; +import { ViewNameContext } from "./MySqlParser"; +import { IndexNameCreateContext } from "./MySqlParser"; +import { IndexNamesContext } from "./MySqlParser"; +import { IndexNameContext } from "./MySqlParser"; +import { GroupNameCreateContext } from "./MySqlParser"; +import { GroupNameContext } from "./MySqlParser"; +import { TableNameCreateContext } from "./MySqlParser"; +import { TableNamesContext } from "./MySqlParser"; +import { TableNameContext } from "./MySqlParser"; +import { UserOrRoleNamesContext } from "./MySqlParser"; +import { UserOrRoleNameContext } from "./MySqlParser"; +import { ColumnNameCreateContext } from "./MySqlParser"; +import { ColumnNamesContext } from "./MySqlParser"; +import { ColumnNameContext } from "./MySqlParser"; +import { TablespaceNameCreateContext } from "./MySqlParser"; +import { TablespaceNameContext } from "./MySqlParser"; +import { PartitionNameCreateContext } from "./MySqlParser"; +import { PartitionNamesContext } from "./MySqlParser"; +import { PartitionNameContext } from "./MySqlParser"; +import { IndexColumnNameContext } from "./MySqlParser"; +import { UserHostPortContext } from "./MySqlParser"; +import { UserAtHostContext } from "./MySqlParser"; +import { SimpleUserNameContext } from "./MySqlParser"; +import { HostNameContext } from "./MySqlParser"; +import { UserNameContext } from "./MySqlParser"; +import { MysqlVariableContext } from "./MySqlParser"; +import { CharsetNameContext } from "./MySqlParser"; +import { CollationNameContext } from "./MySqlParser"; +import { EngineNameContext } from "./MySqlParser"; +import { EngineNameBaseContext } from "./MySqlParser"; +import { UuidSetContext } from "./MySqlParser"; +import { XidContext } from "./MySqlParser"; +import { XuidStringIdContext } from "./MySqlParser"; +import { FullIdContext } from "./MySqlParser"; +import { UidListContext } from "./MySqlParser"; +import { UidContext } from "./MySqlParser"; +import { SimpleIdContext } from "./MySqlParser"; +import { DottedIdContext } from "./MySqlParser"; +import { DecimalLiteralContext } from "./MySqlParser"; +import { FileSizeLiteralContext } from "./MySqlParser"; +import { StringLiteralContext } from "./MySqlParser"; +import { BooleanLiteralContext } from "./MySqlParser"; +import { HexadecimalLiteralContext } from "./MySqlParser"; +import { NullNotnullContext } from "./MySqlParser"; +import { ConstantContext } from "./MySqlParser"; +import { DataTypeContext } from "./MySqlParser"; +import { CollectionOptionsContext } from "./MySqlParser"; +import { ConvertedDataTypeContext } from "./MySqlParser"; +import { LengthOneDimensionContext } from "./MySqlParser"; +import { LengthTwoDimensionContext } from "./MySqlParser"; +import { LengthTwoOptionalDimensionContext } from "./MySqlParser"; +import { IndexColumnNamesContext } from "./MySqlParser"; +import { ExpressionsContext } from "./MySqlParser"; +import { ValuesOrValueListContext } from "./MySqlParser"; +import { ExpressionsWithDefaultsContext } from "./MySqlParser"; +import { ExpressionOrDefaultContext } from "./MySqlParser"; +import { ConstantsContext } from "./MySqlParser"; +import { SimpleStringsContext } from "./MySqlParser"; +import { UserVariablesContext } from "./MySqlParser"; +import { DefaultValueContext } from "./MySqlParser"; +import { CurrentTimestampContext } from "./MySqlParser"; +import { IfExistsContext } from "./MySqlParser"; +import { IfNotExistsContext } from "./MySqlParser"; +import { OrReplaceContext } from "./MySqlParser"; +import { FunctionCallContext } from "./MySqlParser"; +import { SpecificFunctionContext } from "./MySqlParser"; +import { CaseFuncAlternativeContext } from "./MySqlParser"; +import { LevelsInWeightStringContext } from "./MySqlParser"; +import { LevelInWeightListElementContext } from "./MySqlParser"; +import { AggregateWindowedFunctionContext } from "./MySqlParser"; +import { NonAggregateWindowedFunctionContext } from "./MySqlParser"; +import { OverClauseContext } from "./MySqlParser"; +import { WindowSpecContext } from "./MySqlParser"; +import { WindowNameContext } from "./MySqlParser"; +import { FrameClauseContext } from "./MySqlParser"; +import { FrameUnitsContext } from "./MySqlParser"; +import { FrameExtentContext } from "./MySqlParser"; +import { FrameBetweenContext } from "./MySqlParser"; +import { FrameRangeContext } from "./MySqlParser"; +import { PartitionClauseContext } from "./MySqlParser"; +import { ScalarFunctionNameContext } from "./MySqlParser"; +import { PasswordFunctionClauseContext } from "./MySqlParser"; +import { FunctionArgsContext } from "./MySqlParser"; +import { FunctionArgContext } from "./MySqlParser"; +import { ExpressionContext } from "./MySqlParser"; +import { PredicateContext } from "./MySqlParser"; +import { ExpressionAtomContext } from "./MySqlParser"; +import { UnaryOperatorContext } from "./MySqlParser"; +import { ComparisonOperatorContext } from "./MySqlParser"; +import { ComparisonBaseContext } from "./MySqlParser"; +import { LogicalOperatorContext } from "./MySqlParser"; +import { BitOperatorContext } from "./MySqlParser"; +import { MathOperatorContext } from "./MySqlParser"; +import { JsonOperatorContext } from "./MySqlParser"; +import { CharsetNameBaseContext } from "./MySqlParser"; +import { TransactionLevelBaseContext } from "./MySqlParser"; +import { PrivilegesBaseContext } from "./MySqlParser"; +import { IntervalTypeBaseContext } from "./MySqlParser"; +import { DataTypeBaseContext } from "./MySqlParser"; +import { KeywordsCanBeIdContext } from "./MySqlParser"; +import { FunctionNameBaseContext } from "./MySqlParser"; + + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by `MySqlParser`. + * + * @param The return type of the visit operation. Use `void` for + * operations with no return type. + */ +export interface MySqlParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by the `alterByTableOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByTableOption?: (ctx: AlterByTableOptionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddColumn?: (ctx: AlterByAddColumnContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddColumns` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddColumns?: (ctx: AlterByAddColumnsContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddIndex?: (ctx: AlterByAddIndexContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddSpecialIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddSpecialIndex?: (ctx: AlterByAddSpecialIndexContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddPrimaryKey?: (ctx: AlterByAddPrimaryKeyContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddUniqueKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddUniqueKey?: (ctx: AlterByAddUniqueKeyContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddForeignKey?: (ctx: AlterByAddForeignKeyContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddCheckTableConstraint?: (ctx: AlterByAddCheckTableConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropConstraintCheck` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropConstraintCheck?: (ctx: AlterByDropConstraintCheckContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAlterCheckTableConstraint` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAlterCheckTableConstraint?: (ctx: AlterByAlterCheckTableConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `alterBySetAlgorithm` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterBySetAlgorithm?: (ctx: AlterBySetAlgorithmContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAlterColumnDefault` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAlterColumnDefault?: (ctx: AlterByAlterColumnDefaultContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAlterIndexVisibility` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAlterIndexVisibility?: (ctx: AlterByAlterIndexVisibilityContext) => Result; + + /** + * Visit a parse tree produced by the `alterByChangeColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByChangeColumn?: (ctx: AlterByChangeColumnContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDefaultCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDefaultCharset?: (ctx: AlterByDefaultCharsetContext) => Result; + + /** + * Visit a parse tree produced by the `alterByConvertCharset` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByConvertCharset?: (ctx: AlterByConvertCharsetContext) => Result; + + /** + * Visit a parse tree produced by the `alterKeys` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterKeys?: (ctx: AlterKeysContext) => Result; + + /** + * Visit a parse tree produced by the `alterTablespaceOption` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterTablespaceOption?: (ctx: AlterTablespaceOptionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropColumn?: (ctx: AlterByDropColumnContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropIndex?: (ctx: AlterByDropIndexContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropPrimaryKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropPrimaryKey?: (ctx: AlterByDropPrimaryKeyContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropForeignKey` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropForeignKey?: (ctx: AlterByDropForeignKeyContext) => Result; + + /** + * Visit a parse tree produced by the `alterByForce` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByForce?: (ctx: AlterByForceContext) => Result; + + /** + * Visit a parse tree produced by the `alterByLock` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByLock?: (ctx: AlterByLockContext) => Result; + + /** + * Visit a parse tree produced by the `alterByModifyColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByModifyColumn?: (ctx: AlterByModifyColumnContext) => Result; + + /** + * Visit a parse tree produced by the `alterByOrder` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByOrder?: (ctx: AlterByOrderContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRenameColumn` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRenameColumn?: (ctx: AlterByRenameColumnContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRenameIndex` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRenameIndex?: (ctx: AlterByRenameIndexContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRename` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRename?: (ctx: AlterByRenameContext) => Result; + + /** + * Visit a parse tree produced by the `alterByValidate` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByValidate?: (ctx: AlterByValidateContext) => Result; + + /** + * Visit a parse tree produced by the `alterPartition` + * labeled alternative in `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterPartition?: (ctx: AlterPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `module` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + * @return the visitor result + */ + visitModule?: (ctx: ModuleContext) => Result; + + /** + * Visit a parse tree produced by the `passwordModuleOption` + * labeled alternative in `MySqlParser.authenticationRule`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPasswordModuleOption?: (ctx: PasswordModuleOptionContext) => Result; + + /** + * Visit a parse tree produced by the `simpleFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleFunctionCall?: (ctx: SimpleFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `currentUser` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCurrentUser?: (ctx: CurrentUserContext) => Result; + + /** + * Visit a parse tree produced by the `dataTypeFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDataTypeFunctionCall?: (ctx: DataTypeFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `valuesFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitValuesFunctionCall?: (ctx: ValuesFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `caseExpressionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCaseExpressionFunctionCall?: (ctx: CaseExpressionFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `caseFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCaseFunctionCall?: (ctx: CaseFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `charFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCharFunctionCall?: (ctx: CharFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `positionFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPositionFunctionCall?: (ctx: PositionFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `substrFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubstrFunctionCall?: (ctx: SubstrFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `trimFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTrimFunctionCall?: (ctx: TrimFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `weightFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWeightFunctionCall?: (ctx: WeightFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `extractFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExtractFunctionCall?: (ctx: ExtractFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `getFormatFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGetFormatFunctionCall?: (ctx: GetFormatFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `jsonValueFunctionCall` + * labeled alternative in `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonValueFunctionCall?: (ctx: JsonValueFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `innerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInnerJoin?: (ctx: InnerJoinContext) => Result; + + /** + * Visit a parse tree produced by the `straightJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStraightJoin?: (ctx: StraightJoinContext) => Result; + + /** + * Visit a parse tree produced by the `outerJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOuterJoin?: (ctx: OuterJoinContext) => Result; + + /** + * Visit a parse tree produced by the `naturalJoin` + * labeled alternative in `MySqlParser.joinPart`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNaturalJoin?: (ctx: NaturalJoinContext) => Result; + + /** + * Visit a parse tree produced by the `setVariable` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetVariable?: (ctx: SetVariableContext) => Result; + + /** + * Visit a parse tree produced by the `setCharset` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetCharset?: (ctx: SetCharsetContext) => Result; + + /** + * Visit a parse tree produced by the `setNames` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetNames?: (ctx: SetNamesContext) => Result; + + /** + * Visit a parse tree produced by the `setPassword` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetPassword?: (ctx: SetPasswordContext) => Result; + + /** + * Visit a parse tree produced by the `setTransaction` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetTransaction?: (ctx: SetTransactionContext) => Result; + + /** + * Visit a parse tree produced by the `setAutocommit` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetAutocommit?: (ctx: SetAutocommitContext) => Result; + + /** + * Visit a parse tree produced by the `setNewValueInsideTrigger` + * labeled alternative in `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetNewValueInsideTrigger?: (ctx: SetNewValueInsideTriggerContext) => Result; + + /** + * Visit a parse tree produced by the `atomTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAtomTableItem?: (ctx: AtomTableItemContext) => Result; + + /** + * Visit a parse tree produced by the `subqueryTableItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubqueryTableItem?: (ctx: SubqueryTableItemContext) => Result; + + /** + * Visit a parse tree produced by the `tableSourcesItem` + * labeled alternative in `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSourcesItem?: (ctx: TableSourcesItemContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAddPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAddPartition?: (ctx: AlterByAddPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDropPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDropPartition?: (ctx: AlterByDropPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByDiscardPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByDiscardPartition?: (ctx: AlterByDiscardPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByImportPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByImportPartition?: (ctx: AlterByImportPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByTruncatePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByTruncatePartition?: (ctx: AlterByTruncatePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByCoalescePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByCoalescePartition?: (ctx: AlterByCoalescePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByReorganizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByReorganizePartition?: (ctx: AlterByReorganizePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByExchangePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByExchangePartition?: (ctx: AlterByExchangePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByAnalyzePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByAnalyzePartition?: (ctx: AlterByAnalyzePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByCheckPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByCheckPartition?: (ctx: AlterByCheckPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByOptimizePartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByOptimizePartition?: (ctx: AlterByOptimizePartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRebuildPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRebuildPartition?: (ctx: AlterByRebuildPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRepairPartition` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRepairPartition?: (ctx: AlterByRepairPartitionContext) => Result; + + /** + * Visit a parse tree produced by the `alterByRemovePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByRemovePartitioning?: (ctx: AlterByRemovePartitioningContext) => Result; + + /** + * Visit a parse tree produced by the `alterByUpgradePartitioning` + * labeled alternative in `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterByUpgradePartitioning?: (ctx: AlterByUpgradePartitioningContext) => Result; + + /** + * Visit a parse tree produced by the `sourceStringOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceStringOption?: (ctx: SourceStringOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sourceDecimalOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceDecimalOption?: (ctx: SourceDecimalOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sourceBoolOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceBoolOption?: (ctx: SourceBoolOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sourceOtherOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceOtherOption?: (ctx: SourceOtherOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sourceUidListOption` + * labeled alternative in `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceUidListOption?: (ctx: SourceUidListOptionContext) => Result; + + /** + * Visit a parse tree produced by the `simpleSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleSelect?: (ctx: SimpleSelectContext) => Result; + + /** + * Visit a parse tree produced by the `parenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParenthesisSelect?: (ctx: ParenthesisSelectContext) => Result; + + /** + * Visit a parse tree produced by the `unionSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnionSelect?: (ctx: UnionSelectContext) => Result; + + /** + * Visit a parse tree produced by the `unionParenthesisSelect` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnionParenthesisSelect?: (ctx: UnionParenthesisSelectContext) => Result; + + /** + * Visit a parse tree produced by the `withLateralStatement` + * labeled alternative in `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWithLateralStatement?: (ctx: WithLateralStatementContext) => Result; + + /** + * Visit a parse tree produced by the `stringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStringDataType?: (ctx: StringDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `nationalVaryingStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNationalVaryingStringDataType?: (ctx: NationalVaryingStringDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `nationalStringDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNationalStringDataType?: (ctx: NationalStringDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `dimensionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDimensionDataType?: (ctx: DimensionDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `simpleDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleDataType?: (ctx: SimpleDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `collectionDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCollectionDataType?: (ctx: CollectionDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `spatialDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSpatialDataType?: (ctx: SpatialDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `longVarcharDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLongVarcharDataType?: (ctx: LongVarcharDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `longVarbinaryDataType` + * labeled alternative in `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLongVarbinaryDataType?: (ctx: LongVarbinaryDataTypeContext) => Result; + + /** + * Visit a parse tree produced by the `nullColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNullColumnConstraint?: (ctx: NullColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `defaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefaultColumnConstraint?: (ctx: DefaultColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `visibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitVisibilityColumnConstraint?: (ctx: VisibilityColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `invisibilityColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInvisibilityColumnConstraint?: (ctx: InvisibilityColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `autoIncrementColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAutoIncrementColumnConstraint?: (ctx: AutoIncrementColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `primaryKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrimaryKeyColumnConstraint?: (ctx: PrimaryKeyColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `uniqueKeyColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUniqueKeyColumnConstraint?: (ctx: UniqueKeyColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `commentColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCommentColumnConstraint?: (ctx: CommentColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `formatColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFormatColumnConstraint?: (ctx: FormatColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `storageColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStorageColumnConstraint?: (ctx: StorageColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `referenceColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReferenceColumnConstraint?: (ctx: ReferenceColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `collateColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCollateColumnConstraint?: (ctx: CollateColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `generatedColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGeneratedColumnConstraint?: (ctx: GeneratedColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `serialDefaultColumnConstraint` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSerialDefaultColumnConstraint?: (ctx: SerialDefaultColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by the `checkExpr` + * labeled alternative in `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCheckExpr?: (ctx: CheckExprContext) => Result; + + /** + * Visit a parse tree produced by the `subPartitionFunctionHash` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubPartitionFunctionHash?: (ctx: SubPartitionFunctionHashContext) => Result; + + /** + * Visit a parse tree produced by the `subPartitionFunctionKey` + * labeled alternative in `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubPartitionFunctionKey?: (ctx: SubPartitionFunctionKeyContext) => Result; + + /** + * Visit a parse tree produced by the `v57` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitV57?: (ctx: V57Context) => Result; + + /** + * Visit a parse tree produced by the `v80` + * labeled alternative in `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitV80?: (ctx: V80Context) => Result; + + /** + * Visit a parse tree produced by the `describeStatements` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDescribeStatements?: (ctx: DescribeStatementsContext) => Result; + + /** + * Visit a parse tree produced by the `describeConnection` + * labeled alternative in `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDescribeConnection?: (ctx: DescribeConnectionContext) => Result; + + /** + * Visit a parse tree produced by the `specificFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSpecificFunctionCall?: (ctx: SpecificFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `aggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAggregateFunctionCall?: (ctx: AggregateFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `nonAggregateFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNonAggregateFunctionCall?: (ctx: NonAggregateFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `scalarFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitScalarFunctionCall?: (ctx: ScalarFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `udfFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUdfFunctionCall?: (ctx: UdfFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `passwordFunctionCall` + * labeled alternative in `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPasswordFunctionCall?: (ctx: PasswordFunctionCallContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionEngine` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionEngine?: (ctx: TableOptionEngineContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionEngineAttribute?: (ctx: TableOptionEngineAttributeContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionAutoextendSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionAutoextendSize?: (ctx: TableOptionAutoextendSizeContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionAutoIncrement` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionAutoIncrement?: (ctx: TableOptionAutoIncrementContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionAverage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionAverage?: (ctx: TableOptionAverageContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionCharset` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionCharset?: (ctx: TableOptionCharsetContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionChecksum` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionChecksum?: (ctx: TableOptionChecksumContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionCollate` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionCollate?: (ctx: TableOptionCollateContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionComment` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionComment?: (ctx: TableOptionCommentContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionCompression` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionCompression?: (ctx: TableOptionCompressionContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionConnection` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionConnection?: (ctx: TableOptionConnectionContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionDataDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionDataDirectory?: (ctx: TableOptionDataDirectoryContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionDelay` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionDelay?: (ctx: TableOptionDelayContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionEncryption` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionEncryption?: (ctx: TableOptionEncryptionContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionPageCompressed` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionPageCompressed?: (ctx: TableOptionPageCompressedContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionPageCompressionLevel` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionPageCompressionLevel?: (ctx: TableOptionPageCompressionLevelContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionEncryptionKeyId` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionEncryptionKeyId?: (ctx: TableOptionEncryptionKeyIdContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionIndexDirectory` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionIndexDirectory?: (ctx: TableOptionIndexDirectoryContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionInsertMethod` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionInsertMethod?: (ctx: TableOptionInsertMethodContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionKeyBlockSize` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionKeyBlockSize?: (ctx: TableOptionKeyBlockSizeContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionMaxRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionMaxRows?: (ctx: TableOptionMaxRowsContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionMinRows` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionMinRows?: (ctx: TableOptionMinRowsContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionPackKeys` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionPackKeys?: (ctx: TableOptionPackKeysContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionPassword` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionPassword?: (ctx: TableOptionPasswordContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionRowFormat` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionRowFormat?: (ctx: TableOptionRowFormatContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionStartTransaction` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionStartTransaction?: (ctx: TableOptionStartTransactionContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionSecondaryEngineAttribute` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionSecondaryEngineAttribute?: (ctx: TableOptionSecondaryEngineAttributeContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionRecalculation` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionRecalculation?: (ctx: TableOptionRecalculationContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionPersistent` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionPersistent?: (ctx: TableOptionPersistentContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionSamplePage` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionSamplePage?: (ctx: TableOptionSamplePageContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionTablespace` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionTablespace?: (ctx: TableOptionTablespaceContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionTableType` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionTableType?: (ctx: TableOptionTableTypeContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionTransactional` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionTransactional?: (ctx: TableOptionTransactionalContext) => Result; + + /** + * Visit a parse tree produced by the `tableOptionUnion` + * labeled alternative in `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOptionUnion?: (ctx: TableOptionUnionContext) => Result; + + /** + * Visit a parse tree produced by the `constantExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConstantExpressionAtom?: (ctx: ConstantExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `columnNameExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnNameExpressionAtom?: (ctx: ColumnNameExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `functionCallExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionCallExpressionAtom?: (ctx: FunctionCallExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `collateExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCollateExpressionAtom?: (ctx: CollateExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `mysqlVariableExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMysqlVariableExpressionAtom?: (ctx: MysqlVariableExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `unaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnaryExpressionAtom?: (ctx: UnaryExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `binaryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBinaryExpressionAtom?: (ctx: BinaryExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `variableAssignExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitVariableAssignExpressionAtom?: (ctx: VariableAssignExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `nestedExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNestedExpressionAtom?: (ctx: NestedExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `nestedRowExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNestedRowExpressionAtom?: (ctx: NestedRowExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `existsExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExistsExpressionAtom?: (ctx: ExistsExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `subqueryExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubqueryExpressionAtom?: (ctx: SubqueryExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `intervalExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntervalExpressionAtom?: (ctx: IntervalExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `bitExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBitExpressionAtom?: (ctx: BitExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `mathExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMathExpressionAtom?: (ctx: MathExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `jsonExpressionAtom` + * labeled alternative in `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonExpressionAtom?: (ctx: JsonExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by the `masterStringOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterStringOption?: (ctx: MasterStringOptionContext) => Result; + + /** + * Visit a parse tree produced by the `masterDecimalOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterDecimalOption?: (ctx: MasterDecimalOptionContext) => Result; + + /** + * Visit a parse tree produced by the `masterBoolOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterBoolOption?: (ctx: MasterBoolOptionContext) => Result; + + /** + * Visit a parse tree produced by the `v8AddMasterOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitV8AddMasterOption?: (ctx: V8AddMasterOptionContext) => Result; + + /** + * Visit a parse tree produced by the `masterUidListOption` + * labeled alternative in `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterUidListOption?: (ctx: MasterUidListOptionContext) => Result; + + /** + * Visit a parse tree produced by the `gtidsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGtidsUntilOption?: (ctx: GtidsUntilOptionContext) => Result; + + /** + * Visit a parse tree produced by the `masterLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterLogUntilOption?: (ctx: MasterLogUntilOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sourceLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSourceLogUntilOption?: (ctx: SourceLogUntilOptionContext) => Result; + + /** + * Visit a parse tree produced by the `relayLogUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRelayLogUntilOption?: (ctx: RelayLogUntilOptionContext) => Result; + + /** + * Visit a parse tree produced by the `sqlGapsUntilOption` + * labeled alternative in `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSqlGapsUntilOption?: (ctx: SqlGapsUntilOptionContext) => Result; + + /** + * Visit a parse tree produced by the `copyCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCopyCreateTable?: (ctx: CopyCreateTableContext) => Result; + + /** + * Visit a parse tree produced by the `columnCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnCreateTable?: (ctx: ColumnCreateTableContext) => Result; + + /** + * Visit a parse tree produced by the `queryCreateTable` + * labeled alternative in `MySqlParser.createTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryCreateTable?: (ctx: QueryCreateTableContext) => Result; + + /** + * Visit a parse tree produced by the `partitionFunctionHash` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionFunctionHash?: (ctx: PartitionFunctionHashContext) => Result; + + /** + * Visit a parse tree produced by the `partitionFunctionKey` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionFunctionKey?: (ctx: PartitionFunctionKeyContext) => Result; + + /** + * Visit a parse tree produced by the `partitionFunctionRange` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionFunctionRange?: (ctx: PartitionFunctionRangeContext) => Result; + + /** + * Visit a parse tree produced by the `partitionFunctionList` + * labeled alternative in `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionFunctionList?: (ctx: PartitionFunctionListContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionCode` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionCode?: (ctx: HandlerConditionCodeContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionState` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionState?: (ctx: HandlerConditionStateContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionName` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionName?: (ctx: HandlerConditionNameContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionWarning` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionWarning?: (ctx: HandlerConditionWarningContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionNotfound` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionNotfound?: (ctx: HandlerConditionNotfoundContext) => Result; + + /** + * Visit a parse tree produced by the `handlerConditionException` + * labeled alternative in `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionException?: (ctx: HandlerConditionExceptionContext) => Result; + + /** + * Visit a parse tree produced by the `levelWeightList` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLevelWeightList?: (ctx: LevelWeightListContext) => Result; + + /** + * Visit a parse tree produced by the `levelWeightRange` + * labeled alternative in `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLevelWeightRange?: (ctx: LevelWeightRangeContext) => Result; + + /** + * Visit a parse tree produced by the `inPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInPredicate?: (ctx: InPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `isNullPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIsNullPredicate?: (ctx: IsNullPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `binaryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBinaryComparisonPredicate?: (ctx: BinaryComparisonPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `subqueryComparisonPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubqueryComparisonPredicate?: (ctx: SubqueryComparisonPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `betweenPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBetweenPredicate?: (ctx: BetweenPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `soundsLikePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSoundsLikePredicate?: (ctx: SoundsLikePredicateContext) => Result; + + /** + * Visit a parse tree produced by the `likePredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLikePredicate?: (ctx: LikePredicateContext) => Result; + + /** + * Visit a parse tree produced by the `regexpPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRegexpPredicate?: (ctx: RegexpPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `jsonMemberOfPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonMemberOfPredicate?: (ctx: JsonMemberOfPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `expressionAtomPredicate` + * labeled alternative in `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressionAtomPredicate?: (ctx: ExpressionAtomPredicateContext) => Result; + + /** + * Visit a parse tree produced by the `userConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserConnectionOption?: (ctx: UserConnectionOptionContext) => Result; + + /** + * Visit a parse tree produced by the `passwordConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPasswordConnectionOption?: (ctx: PasswordConnectionOptionContext) => Result; + + /** + * Visit a parse tree produced by the `defaultAuthConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefaultAuthConnectionOption?: (ctx: DefaultAuthConnectionOptionContext) => Result; + + /** + * Visit a parse tree produced by the `pluginDirConnectionOption` + * labeled alternative in `MySqlParser.connectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPluginDirConnectionOption?: (ctx: PluginDirConnectionOptionContext) => Result; + + /** + * Visit a parse tree produced by the `selectIntoVariables` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectIntoVariables?: (ctx: SelectIntoVariablesContext) => Result; + + /** + * Visit a parse tree produced by the `selectIntoDumpFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectIntoDumpFile?: (ctx: SelectIntoDumpFileContext) => Result; + + /** + * Visit a parse tree produced by the `selectIntoTextFile` + * labeled alternative in `MySqlParser.intoClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectIntoTextFile?: (ctx: SelectIntoTextFileContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionEngine` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionEngine?: (ctx: PartitionOptionEngineContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionComment` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionComment?: (ctx: PartitionOptionCommentContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionDataDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionDataDirectory?: (ctx: PartitionOptionDataDirectoryContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionIndexDirectory` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionIndexDirectory?: (ctx: PartitionOptionIndexDirectoryContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionMaxRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionMaxRows?: (ctx: PartitionOptionMaxRowsContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionMinRows` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionMinRows?: (ctx: PartitionOptionMinRowsContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionTablespace` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionTablespace?: (ctx: PartitionOptionTablespaceContext) => Result; + + /** + * Visit a parse tree produced by the `partitionOptionNodeGroup` + * labeled alternative in `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOptionNodeGroup?: (ctx: PartitionOptionNodeGroupContext) => Result; + + /** + * Visit a parse tree produced by the `doDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDoDbReplication?: (ctx: DoDbReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `ignoreDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIgnoreDbReplication?: (ctx: IgnoreDbReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `doTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDoTableReplication?: (ctx: DoTableReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `ignoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIgnoreTableReplication?: (ctx: IgnoreTableReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `wildDoTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWildDoTableReplication?: (ctx: WildDoTableReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `wildIgnoreTableReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWildIgnoreTableReplication?: (ctx: WildIgnoreTableReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `rewriteDbReplication` + * labeled alternative in `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRewriteDbReplication?: (ctx: RewriteDbReplicationContext) => Result; + + /** + * Visit a parse tree produced by the `selectStarElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectStarElement?: (ctx: SelectStarElementContext) => Result; + + /** + * Visit a parse tree produced by the `selectColumnElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectColumnElement?: (ctx: SelectColumnElementContext) => Result; + + /** + * Visit a parse tree produced by the `selectFunctionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectFunctionElement?: (ctx: SelectFunctionElementContext) => Result; + + /** + * Visit a parse tree produced by the `selectExpressionElement` + * labeled alternative in `MySqlParser.selectElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectExpressionElement?: (ctx: SelectExpressionElementContext) => Result; + + /** + * Visit a parse tree produced by the `notExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNotExpression?: (ctx: NotExpressionContext) => Result; + + /** + * Visit a parse tree produced by the `logicalExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLogicalExpression?: (ctx: LogicalExpressionContext) => Result; + + /** + * Visit a parse tree produced by the `isExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIsExpression?: (ctx: IsExpressionContext) => Result; + + /** + * Visit a parse tree produced by the `predicateExpression` + * labeled alternative in `MySqlParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPredicateExpression?: (ctx: PredicateExpressionContext) => Result; + + /** + * Visit a parse tree produced by the `partitionComparison` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionComparison?: (ctx: PartitionComparisonContext) => Result; + + /** + * Visit a parse tree produced by the `partitionListAtom` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionListAtom?: (ctx: PartitionListAtomContext) => Result; + + /** + * Visit a parse tree produced by the `partitionListVector` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionListVector?: (ctx: PartitionListVectorContext) => Result; + + /** + * Visit a parse tree produced by the `partitionSimple` + * labeled alternative in `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionSimple?: (ctx: PartitionSimpleContext) => Result; + + /** + * Visit a parse tree produced by the `hashAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHashAuthOption?: (ctx: HashAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by the `randomAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRandomAuthOption?: (ctx: RandomAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by the `stringAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStringAuthOption?: (ctx: StringAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by the `moduleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitModuleAuthOption?: (ctx: ModuleAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by the `simpleAuthOption` + * labeled alternative in `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleAuthOption?: (ctx: SimpleAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by the `simpleFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleFlushOption?: (ctx: SimpleFlushOptionContext) => Result; + + /** + * Visit a parse tree produced by the `channelFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChannelFlushOption?: (ctx: ChannelFlushOptionContext) => Result; + + /** + * Visit a parse tree produced by the `tableFlushOption` + * labeled alternative in `MySqlParser.flushOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableFlushOption?: (ctx: TableFlushOptionContext) => Result; + + /** + * Visit a parse tree produced by the `CloseCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCloseCursor?: (ctx: CloseCursorContext) => Result; + + /** + * Visit a parse tree produced by the `FetchCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFetchCursor?: (ctx: FetchCursorContext) => Result; + + /** + * Visit a parse tree produced by the `OpenCursor` + * labeled alternative in `MySqlParser.cursorStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOpenCursor?: (ctx: OpenCursorContext) => Result; + + /** + * Visit a parse tree produced by the `tableSourceBase` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSourceBase?: (ctx: TableSourceBaseContext) => Result; + + /** + * Visit a parse tree produced by the `tableSourceNested` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSourceNested?: (ctx: TableSourceNestedContext) => Result; + + /** + * Visit a parse tree produced by the `tableJson` + * labeled alternative in `MySqlParser.tableSource`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableJson?: (ctx: TableJsonContext) => Result; + + /** + * Visit a parse tree produced by the `preciseSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPreciseSchedule?: (ctx: PreciseScheduleContext) => Result; + + /** + * Visit a parse tree produced by the `intervalSchedule` + * labeled alternative in `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntervalSchedule?: (ctx: IntervalScheduleContext) => Result; + + /** + * Visit a parse tree produced by the `routineComment` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineComment?: (ctx: RoutineCommentContext) => Result; + + /** + * Visit a parse tree produced by the `routineLanguage` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineLanguage?: (ctx: RoutineLanguageContext) => Result; + + /** + * Visit a parse tree produced by the `routineBehavior` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineBehavior?: (ctx: RoutineBehaviorContext) => Result; + + /** + * Visit a parse tree produced by the `routineData` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineData?: (ctx: RoutineDataContext) => Result; + + /** + * Visit a parse tree produced by the `routineSecurity` + * labeled alternative in `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineSecurity?: (ctx: RoutineSecurityContext) => Result; + + /** + * Visit a parse tree produced by the `currentSchemaPriviLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCurrentSchemaPriviLevel?: (ctx: CurrentSchemaPriviLevelContext) => Result; + + /** + * Visit a parse tree produced by the `globalPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGlobalPrivLevel?: (ctx: GlobalPrivLevelContext) => Result; + + /** + * Visit a parse tree produced by the `definiteSchemaPrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefiniteSchemaPrivLevel?: (ctx: DefiniteSchemaPrivLevelContext) => Result; + + /** + * Visit a parse tree produced by the `definiteFullTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefiniteFullTablePrivLevel?: (ctx: DefiniteFullTablePrivLevelContext) => Result; + + /** + * Visit a parse tree produced by the `definiteFullTablePrivLevel2` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefiniteFullTablePrivLevel2?: (ctx: DefiniteFullTablePrivLevel2Context) => Result; + + /** + * Visit a parse tree produced by the `definiteTablePrivLevel` + * labeled alternative in `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefiniteTablePrivLevel?: (ctx: DefiniteTablePrivLevelContext) => Result; + + /** + * Visit a parse tree produced by the `showMasterLogs` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowMasterLogs?: (ctx: ShowMasterLogsContext) => Result; + + /** + * Visit a parse tree produced by the `showLogEvents` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowLogEvents?: (ctx: ShowLogEventsContext) => Result; + + /** + * Visit a parse tree produced by the `showObjectFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowObjectFilter?: (ctx: ShowObjectFilterContext) => Result; + + /** + * Visit a parse tree produced by the `showColumns` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowColumns?: (ctx: ShowColumnsContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateDb` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateDb?: (ctx: ShowCreateDbContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateFullIdObject` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateFullIdObject?: (ctx: ShowCreateFullIdObjectContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateFunction` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateFunction?: (ctx: ShowCreateFunctionContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateView` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateView?: (ctx: ShowCreateViewContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateTable` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateTable?: (ctx: ShowCreateTableContext) => Result; + + /** + * Visit a parse tree produced by the `showCreateUser` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCreateUser?: (ctx: ShowCreateUserContext) => Result; + + /** + * Visit a parse tree produced by the `showEngine` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowEngine?: (ctx: ShowEngineContext) => Result; + + /** + * Visit a parse tree produced by the `showGlobalInfo` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowGlobalInfo?: (ctx: ShowGlobalInfoContext) => Result; + + /** + * Visit a parse tree produced by the `showErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowErrors?: (ctx: ShowErrorsContext) => Result; + + /** + * Visit a parse tree produced by the `showCountErrors` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCountErrors?: (ctx: ShowCountErrorsContext) => Result; + + /** + * Visit a parse tree produced by the `showSchemaFilter` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowSchemaFilter?: (ctx: ShowSchemaFilterContext) => Result; + + /** + * Visit a parse tree produced by the `showPercedureCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowPercedureCode?: (ctx: ShowPercedureCodeContext) => Result; + + /** + * Visit a parse tree produced by the `showFunctionCode` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowFunctionCode?: (ctx: ShowFunctionCodeContext) => Result; + + /** + * Visit a parse tree produced by the `showGrants` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowGrants?: (ctx: ShowGrantsContext) => Result; + + /** + * Visit a parse tree produced by the `showIndexes` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowIndexes?: (ctx: ShowIndexesContext) => Result; + + /** + * Visit a parse tree produced by the `showOpenTables` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowOpenTables?: (ctx: ShowOpenTablesContext) => Result; + + /** + * Visit a parse tree produced by the `showProfile` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowProfile?: (ctx: ShowProfileContext) => Result; + + /** + * Visit a parse tree produced by the `showSlaveStatus` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowSlaveStatus?: (ctx: ShowSlaveStatusContext) => Result; + + /** + * Visit a parse tree produced by the `showReplicas` + * labeled alternative in `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowReplicas?: (ctx: ShowReplicasContext) => Result; + + /** + * Visit a parse tree produced by the `alterSimpleDatabase` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterSimpleDatabase?: (ctx: AlterSimpleDatabaseContext) => Result; + + /** + * Visit a parse tree produced by the `alterUpgradeName` + * labeled alternative in `MySqlParser.alterDatabase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterUpgradeName?: (ctx: AlterUpgradeNameContext) => Result; + + /** + * Visit a parse tree produced by the `detailRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDetailRevoke?: (ctx: DetailRevokeContext) => Result; + + /** + * Visit a parse tree produced by the `shortRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShortRevoke?: (ctx: ShortRevokeContext) => Result; + + /** + * Visit a parse tree produced by the `proxyAndRoleRevoke` + * labeled alternative in `MySqlParser.revokeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitProxyAndRoleRevoke?: (ctx: ProxyAndRoleRevokeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.program`. + * @param ctx the parse tree + * @return the visitor result + */ + visitProgram?: (ctx: ProgramContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.sqlStatements`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSqlStatements?: (ctx: SqlStatementsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.sqlStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSqlStatement?: (ctx: SqlStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.emptyStatement_`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEmptyStatement_?: (ctx: EmptyStatement_Context) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ddlStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDdlStatement?: (ctx: DdlStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dmlStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDmlStatement?: (ctx: DmlStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.transactionStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTransactionStatement?: (ctx: TransactionStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.replicationStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReplicationStatement?: (ctx: ReplicationStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.preparedStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPreparedStatement?: (ctx: PreparedStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.compoundStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCompoundStatement?: (ctx: CompoundStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.administrationStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAdministrationStatement?: (ctx: AdministrationStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.utilityStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUtilityStatement?: (ctx: UtilityStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createDatabase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateDatabase?: (ctx: CreateDatabaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createEvent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateEvent?: (ctx: CreateEventContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createIndex`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateIndex?: (ctx: CreateIndexContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createLogfileGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateLogfileGroup?: (ctx: CreateLogfileGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createProcedure`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateProcedure?: (ctx: CreateProcedureContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createRole`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateRole?: (ctx: CreateRoleContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createServer`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateServer?: (ctx: CreateServerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateTable?: (ctx: CreateTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createTablespaceInnodb`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateTablespaceInnodb?: (ctx: CreateTablespaceInnodbContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createTablespaceNdb`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateTablespaceNdb?: (ctx: CreateTablespaceNdbContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createTrigger`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateTrigger?: (ctx: CreateTriggerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.withClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWithClause?: (ctx: WithClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.commonTableExpressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCommonTableExpressions?: (ctx: CommonTableExpressionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createView`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateView?: (ctx: CreateViewContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createDatabaseOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateDatabaseOption?: (ctx: CreateDatabaseOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.charSet`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCharSet?: (ctx: CharSetContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.currentUserExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCurrentUserExpression?: (ctx: CurrentUserExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ownerStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOwnerStatement?: (ctx: OwnerStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.scheduleExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitScheduleExpression?: (ctx: ScheduleExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.timestampValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTimestampValue?: (ctx: TimestampValueContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.intervalExpr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntervalExpr?: (ctx: IntervalExprContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.intervalType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntervalType?: (ctx: IntervalTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.enableType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEnableType?: (ctx: EnableTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexType?: (ctx: IndexTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexOption?: (ctx: IndexOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.procedureParameter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitProcedureParameter?: (ctx: ProcedureParameterContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.routineOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineOption?: (ctx: RoutineOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.serverOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitServerOption?: (ctx: ServerOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createDefinitions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateDefinitions?: (ctx: CreateDefinitionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateDefinition?: (ctx: CreateDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.checkConstraintDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCheckConstraintDefinition?: (ctx: CheckConstraintDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.constraintSymbol`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConstraintSymbol?: (ctx: ConstraintSymbolContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.columnDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnDefinition?: (ctx: ColumnDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.columnConstraint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnConstraint?: (ctx: ColumnConstraintContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.referenceDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReferenceDefinition?: (ctx: ReferenceDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.referenceAction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReferenceAction?: (ctx: ReferenceActionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.referenceControlType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReferenceControlType?: (ctx: ReferenceControlTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableOption?: (ctx: TableOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableType?: (ctx: TableTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tablespaceStorage`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTablespaceStorage?: (ctx: TablespaceStorageContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionDefinitions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionDefinitions?: (ctx: PartitionDefinitionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionFunctionDefinition?: (ctx: PartitionFunctionDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.subpartitionFunctionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubpartitionFunctionDefinition?: (ctx: SubpartitionFunctionDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionDefinition?: (ctx: PartitionDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionDefinerAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionDefinerAtom?: (ctx: PartitionDefinerAtomContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionDefinerVector`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionDefinerVector?: (ctx: PartitionDefinerVectorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.subpartitionDefinition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSubpartitionDefinition?: (ctx: SubpartitionDefinitionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionOption?: (ctx: PartitionOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterDatabase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterDatabase?: (ctx: AlterDatabaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterEvent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterEvent?: (ctx: AlterEventContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterFunction?: (ctx: AlterFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterInstance`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterInstance?: (ctx: AlterInstanceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterLogfileGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterLogfileGroup?: (ctx: AlterLogfileGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterProcedure`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterProcedure?: (ctx: AlterProcedureContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterServer`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterServer?: (ctx: AlterServerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterTable?: (ctx: AlterTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterTablespace`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterTablespace?: (ctx: AlterTablespaceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterView`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterView?: (ctx: AlterViewContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterOption?: (ctx: AlterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterPartitionSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterPartitionSpecification?: (ctx: AlterPartitionSpecificationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropDatabase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropDatabase?: (ctx: DropDatabaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropEvent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropEvent?: (ctx: DropEventContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropIndex`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropIndex?: (ctx: DropIndexContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropLogfileGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropLogfileGroup?: (ctx: DropLogfileGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropProcedure`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropProcedure?: (ctx: DropProcedureContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropFunction?: (ctx: DropFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropServer`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropServer?: (ctx: DropServerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropSpatial`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropSpatial?: (ctx: DropSpatialContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropTable?: (ctx: DropTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropTablespace`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropTablespace?: (ctx: DropTablespaceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropTrigger`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropTrigger?: (ctx: DropTriggerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropView`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropView?: (ctx: DropViewContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropRole`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropRole?: (ctx: DropRoleContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setRole`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetRole?: (ctx: SetRoleContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.renameTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRenameTable?: (ctx: RenameTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.renameTableClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRenameTableClause?: (ctx: RenameTableClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.truncateTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTruncateTable?: (ctx: TruncateTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.callStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCallStatement?: (ctx: CallStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.deleteStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeleteStatement?: (ctx: DeleteStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.doStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDoStatement?: (ctx: DoStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerStatement?: (ctx: HandlerStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.insertStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInsertStatement?: (ctx: InsertStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.asRowAlias`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAsRowAlias?: (ctx: AsRowAliasContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectOrTableOrValues`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectOrTableOrValues?: (ctx: SelectOrTableOrValuesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.interSectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInterSectStatement?: (ctx: InterSectStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.interSectQuery`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInterSectQuery?: (ctx: InterSectQueryContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.loadDataStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLoadDataStatement?: (ctx: LoadDataStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.loadXmlStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLoadXmlStatement?: (ctx: LoadXmlStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.parenthesizedQuery`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParenthesizedQuery?: (ctx: ParenthesizedQueryContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.replaceStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReplaceStatement?: (ctx: ReplaceStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectStatement?: (ctx: SelectStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setOperations`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetOperations?: (ctx: SetOperationsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryExpressionBody`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryExpressionBody?: (ctx: QueryExpressionBodyContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryItem?: (ctx: QueryItemContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryPrimary`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryPrimary?: (ctx: QueryPrimaryContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.updateStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUpdateStatement?: (ctx: UpdateStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.valuesStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitValuesStatement?: (ctx: ValuesStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.parenthesizedQueryExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitParenthesizedQueryExpression?: (ctx: ParenthesizedQueryExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryBlock`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryBlock?: (ctx: QueryBlockContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.replaceStatementValuesOrSelectOrTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReplaceStatementValuesOrSelectOrTable?: (ctx: ReplaceStatementValuesOrSelectOrTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.rowValuesList`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRowValuesList?: (ctx: RowValuesListContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setAssignmentList`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetAssignmentList?: (ctx: SetAssignmentListContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.updatedElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUpdatedElement?: (ctx: UpdatedElementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.assignmentField`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAssignmentField?: (ctx: AssignmentFieldContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lockClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLockClause?: (ctx: LockClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.singleDeleteStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSingleDeleteStatement?: (ctx: SingleDeleteStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.multipleDeleteStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMultipleDeleteStatement?: (ctx: MultipleDeleteStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerOpenStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerOpenStatement?: (ctx: HandlerOpenStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerReadIndexStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerReadIndexStatement?: (ctx: HandlerReadIndexStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerReadStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerReadStatement?: (ctx: HandlerReadStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerCloseStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerCloseStatement?: (ctx: HandlerCloseStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.importTableStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitImportTableStatement?: (ctx: ImportTableStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.singleUpdateStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSingleUpdateStatement?: (ctx: SingleUpdateStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.multipleUpdateStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMultipleUpdateStatement?: (ctx: MultipleUpdateStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.orderByClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOrderByClause?: (ctx: OrderByClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.orderByExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOrderByExpression?: (ctx: OrderByExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableSources`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSources?: (ctx: TableSourcesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableSource`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSource?: (ctx: TableSourceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableSourceItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableSourceItem?: (ctx: TableSourceItemContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.fullColumnNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFullColumnNames?: (ctx: FullColumnNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexHint`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexHint?: (ctx: IndexHintContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexHintType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexHintType?: (ctx: IndexHintTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.joinPart`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJoinPart?: (ctx: JoinPartContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.joinSpec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJoinSpec?: (ctx: JoinSpecContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryExpression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryExpression?: (ctx: QueryExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.queryExpressionNointo`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQueryExpressionNointo?: (ctx: QueryExpressionNointoContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.querySpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQuerySpecification?: (ctx: QuerySpecificationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.querySpecificationNointo`. + * @param ctx the parse tree + * @return the visitor result + */ + visitQuerySpecificationNointo?: (ctx: QuerySpecificationNointoContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.unionParenthesis`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnionParenthesis?: (ctx: UnionParenthesisContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.unionStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnionStatement?: (ctx: UnionStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lateralStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLateralStatement?: (ctx: LateralStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonTable?: (ctx: JsonTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonColumnList`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonColumnList?: (ctx: JsonColumnListContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonColumn`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonColumn?: (ctx: JsonColumnContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonOnEmpty`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonOnEmpty?: (ctx: JsonOnEmptyContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonOnError`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonOnError?: (ctx: JsonOnErrorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectSpec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectSpec?: (ctx: SelectSpecContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectElements`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectElements?: (ctx: SelectElementsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectElement?: (ctx: SelectElementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.intoClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntoClause?: (ctx: IntoClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectFieldsInto`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectFieldsInto?: (ctx: SelectFieldsIntoContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.selectLinesInto`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSelectLinesInto?: (ctx: SelectLinesIntoContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.fromClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFromClause?: (ctx: FromClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.groupByClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroupByClause?: (ctx: GroupByClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.havingClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHavingClause?: (ctx: HavingClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.windowClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWindowClause?: (ctx: WindowClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.groupByItem`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroupByItem?: (ctx: GroupByItemContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.limitClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLimitClause?: (ctx: LimitClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.limitClauseAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLimitClauseAtom?: (ctx: LimitClauseAtomContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.startTransaction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStartTransaction?: (ctx: StartTransactionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.beginWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBeginWork?: (ctx: BeginWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.commitWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCommitWork?: (ctx: CommitWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.rollbackWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRollbackWork?: (ctx: RollbackWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.savepointStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSavepointStatement?: (ctx: SavepointStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.rollbackStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRollbackStatement?: (ctx: RollbackStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.releaseStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReleaseStatement?: (ctx: ReleaseStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lockTables`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLockTables?: (ctx: LockTablesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.unlockTables`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnlockTables?: (ctx: UnlockTablesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setAutocommitStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetAutocommitStatement?: (ctx: SetAutocommitStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setTransactionStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetTransactionStatement?: (ctx: SetTransactionStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.transactionMode`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTransactionMode?: (ctx: TransactionModeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lockTableElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLockTableElement?: (ctx: LockTableElementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lockAction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLockAction?: (ctx: LockActionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.transactionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTransactionOption?: (ctx: TransactionOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.transactionLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTransactionLevel?: (ctx: TransactionLevelContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.changeMaster`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChangeMaster?: (ctx: ChangeMasterContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.changeReplicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChangeReplicationFilter?: (ctx: ChangeReplicationFilterContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.changeReplicationSource`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChangeReplicationSource?: (ctx: ChangeReplicationSourceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.purgeBinaryLogs`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPurgeBinaryLogs?: (ctx: PurgeBinaryLogsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.startSlaveOrReplica`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStartSlaveOrReplica?: (ctx: StartSlaveOrReplicaContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.stopSlaveOrReplica`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStopSlaveOrReplica?: (ctx: StopSlaveOrReplicaContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.startGroupReplication`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStartGroupReplication?: (ctx: StartGroupReplicationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.stopGroupReplication`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStopGroupReplication?: (ctx: StopGroupReplicationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.masterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMasterOption?: (ctx: MasterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.stringMasterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStringMasterOption?: (ctx: StringMasterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.decimalMasterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDecimalMasterOption?: (ctx: DecimalMasterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.boolMasterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBoolMasterOption?: (ctx: BoolMasterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.v8NewMasterOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitV8NewMasterOption?: (ctx: V8NewMasterOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.replicationSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReplicationSourceOption?: (ctx: ReplicationSourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.stringSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStringSourceOption?: (ctx: StringSourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.decimalSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDecimalSourceOption?: (ctx: DecimalSourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.boolSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBoolSourceOption?: (ctx: BoolSourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.otherSourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOtherSourceOption?: (ctx: OtherSourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.channelOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChannelOption?: (ctx: ChannelOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.replicationFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReplicationFilter?: (ctx: ReplicationFilterContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tablePair`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTablePair?: (ctx: TablePairContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.threadType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitThreadType?: (ctx: ThreadTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.untilOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUntilOption?: (ctx: UntilOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.connectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConnectionOptions?: (ctx: ConnectionOptionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.gtuidSet`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGtuidSet?: (ctx: GtuidSetContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaStartTransaction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaStartTransaction?: (ctx: XaStartTransactionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaEndTransaction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaEndTransaction?: (ctx: XaEndTransactionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaPrepareStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaPrepareStatement?: (ctx: XaPrepareStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaCommitWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaCommitWork?: (ctx: XaCommitWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaRollbackWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaRollbackWork?: (ctx: XaRollbackWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xaRecoverWork`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXaRecoverWork?: (ctx: XaRecoverWorkContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.prepareStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrepareStatement?: (ctx: PrepareStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.executeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExecuteStatement?: (ctx: ExecuteStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.deallocatePrepare`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeallocatePrepare?: (ctx: DeallocatePrepareContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.routineBody`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoutineBody?: (ctx: RoutineBodyContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.blockStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBlockStatement?: (ctx: BlockStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.caseStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCaseStatement?: (ctx: CaseStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ifStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIfStatement?: (ctx: IfStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.iterateStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIterateStatement?: (ctx: IterateStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.leaveStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLeaveStatement?: (ctx: LeaveStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.loopStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLoopStatement?: (ctx: LoopStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.repeatStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRepeatStatement?: (ctx: RepeatStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.returnStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReturnStatement?: (ctx: ReturnStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.whileStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWhileStatement?: (ctx: WhileStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.cursorStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCursorStatement?: (ctx: CursorStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.declareVariable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeclareVariable?: (ctx: DeclareVariableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.declareCondition`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeclareCondition?: (ctx: DeclareConditionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.declareCursor`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeclareCursor?: (ctx: DeclareCursorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.declareHandler`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDeclareHandler?: (ctx: DeclareHandlerContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.handlerConditionValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHandlerConditionValue?: (ctx: HandlerConditionValueContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.procedureSqlStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitProcedureSqlStatement?: (ctx: ProcedureSqlStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.caseAlternative`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCaseAlternative?: (ctx: CaseAlternativeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.elifAlternative`. + * @param ctx the parse tree + * @return the visitor result + */ + visitElifAlternative?: (ctx: ElifAlternativeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterUser`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterUser?: (ctx: AlterUserContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createUser`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateUser?: (ctx: CreateUserContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropUser`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropUser?: (ctx: DropUserContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.grantStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGrantStatement?: (ctx: GrantStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.roleOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRoleOption?: (ctx: RoleOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.grantProxy`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGrantProxy?: (ctx: GrantProxyContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterResourceGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterResourceGroup?: (ctx: AlterResourceGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createResourceGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateResourceGroup?: (ctx: CreateResourceGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dropResourceGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDropResourceGroup?: (ctx: DropResourceGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setResourceGroup`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetResourceGroup?: (ctx: SetResourceGroupContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resourceGroupVcpuSpec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResourceGroupVcpuSpec?: (ctx: ResourceGroupVcpuSpecContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.renameUser`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRenameUser?: (ctx: RenameUserContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.revokeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRevokeStatement?: (ctx: RevokeStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ignoreUnknownUser`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIgnoreUnknownUser?: (ctx: IgnoreUnknownUserContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.privilegeObjectType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrivilegeObjectType?: (ctx: PrivilegeObjectTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setPasswordStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetPasswordStatement?: (ctx: SetPasswordStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userSpecification`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserSpecification?: (ctx: UserSpecificationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.alterUserAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAlterUserAuthOption?: (ctx: AlterUserAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createUserAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateUserAuthOption?: (ctx: CreateUserAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createUserInitialAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateUserInitialAuthOption?: (ctx: CreateUserInitialAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserAuthOption?: (ctx: UserAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.authOptionClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAuthOptionClause?: (ctx: AuthOptionClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.authenticationRule`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAuthenticationRule?: (ctx: AuthenticationRuleContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tlsOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTlsOption?: (ctx: TlsOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userResourceOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserResourceOption?: (ctx: UserResourceOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userPasswordOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserPasswordOption?: (ctx: UserPasswordOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userLockOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserLockOption?: (ctx: UserLockOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.factorAuthOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFactorAuthOption?: (ctx: FactorAuthOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.registrationOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRegistrationOption?: (ctx: RegistrationOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.factor`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFactor?: (ctx: FactorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.privelegeClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrivelegeClause?: (ctx: PrivelegeClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.privilege`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrivilege?: (ctx: PrivilegeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.privilegeLevel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrivilegeLevel?: (ctx: PrivilegeLevelContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.renameUserClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRenameUserClause?: (ctx: RenameUserClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.analyzeTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAnalyzeTable?: (ctx: AnalyzeTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.checkTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCheckTable?: (ctx: CheckTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.checksumTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitChecksumTable?: (ctx: ChecksumTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.optimizeTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOptimizeTable?: (ctx: OptimizeTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.repairTable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitRepairTable?: (ctx: RepairTableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableActionOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableActionOption?: (ctx: TableActionOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.checkTableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCheckTableOption?: (ctx: CheckTableOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.createFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCreateFunction?: (ctx: CreateFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.installComponent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInstallComponent?: (ctx: InstallComponentContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.variableExpr`. + * @param ctx the parse tree + * @return the visitor result + */ + visitVariableExpr?: (ctx: VariableExprContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.uninstallComponent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUninstallComponent?: (ctx: UninstallComponentContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.installPlugin`. + * @param ctx the parse tree + * @return the visitor result + */ + visitInstallPlugin?: (ctx: InstallPluginContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.uninstallPlugin`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUninstallPlugin?: (ctx: UninstallPluginContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.cloneStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCloneStatement?: (ctx: CloneStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.setStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSetStatement?: (ctx: SetStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowStatement?: (ctx: ShowStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.variableClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitVariableClause?: (ctx: VariableClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showCommonEntity`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowCommonEntity?: (ctx: ShowCommonEntityContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showFilter`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowFilter?: (ctx: ShowFilterContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showGlobalInfoClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowGlobalInfoClause?: (ctx: ShowGlobalInfoClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showSchemaEntity`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowSchemaEntity?: (ctx: ShowSchemaEntityContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.showProfileType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShowProfileType?: (ctx: ShowProfileTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.binlogStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBinlogStatement?: (ctx: BinlogStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.cacheIndexStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCacheIndexStatement?: (ctx: CacheIndexStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.flushStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFlushStatement?: (ctx: FlushStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.killStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKillStatement?: (ctx: KillStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.loadIndexIntoCache`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLoadIndexIntoCache?: (ctx: LoadIndexIntoCacheContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resetStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResetStatement?: (ctx: ResetStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resetOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResetOption?: (ctx: ResetOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resetPersist`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResetPersist?: (ctx: ResetPersistContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resetAllChannel`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResetAllChannel?: (ctx: ResetAllChannelContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.reStartStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitReStartStatement?: (ctx: ReStartStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.shutdownStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitShutdownStatement?: (ctx: ShutdownStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableIndex`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableIndex?: (ctx: TableIndexContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.flushOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFlushOption?: (ctx: FlushOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.flushTableOption`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFlushTableOption?: (ctx: FlushTableOptionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.loadedTableIndexes`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLoadedTableIndexes?: (ctx: LoadedTableIndexesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.simpleDescribeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleDescribeStatement?: (ctx: SimpleDescribeStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.fullDescribeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFullDescribeStatement?: (ctx: FullDescribeStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.analyzeDescribeStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAnalyzeDescribeStatement?: (ctx: AnalyzeDescribeStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.helpStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHelpStatement?: (ctx: HelpStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.useStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUseStatement?: (ctx: UseStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.signalStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSignalStatement?: (ctx: SignalStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.resignalStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitResignalStatement?: (ctx: ResignalStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.signalConditionInformation`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSignalConditionInformation?: (ctx: SignalConditionInformationContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.withStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWithStatement?: (ctx: WithStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableStatement?: (ctx: TableStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.diagnosticsStatement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDiagnosticsStatement?: (ctx: DiagnosticsStatementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.diagnosticsConditionInformationName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDiagnosticsConditionInformationName?: (ctx: DiagnosticsConditionInformationNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.describeObjectClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDescribeObjectClause?: (ctx: DescribeObjectClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.databaseNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDatabaseNameCreate?: (ctx: DatabaseNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.databaseName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDatabaseName?: (ctx: DatabaseNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionNameCreate?: (ctx: FunctionNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionName?: (ctx: FunctionNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.viewNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitViewNameCreate?: (ctx: ViewNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.viewName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitViewName?: (ctx: ViewNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexNameCreate?: (ctx: IndexNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexNames?: (ctx: IndexNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexName?: (ctx: IndexNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.groupNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroupNameCreate?: (ctx: GroupNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.groupName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitGroupName?: (ctx: GroupNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableNameCreate?: (ctx: TableNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableNames?: (ctx: TableNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tableName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTableName?: (ctx: TableNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userOrRoleNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserOrRoleNames?: (ctx: UserOrRoleNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userOrRoleName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserOrRoleName?: (ctx: UserOrRoleNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.columnNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnNameCreate?: (ctx: ColumnNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.columnNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnNames?: (ctx: ColumnNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.columnName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitColumnName?: (ctx: ColumnNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tablespaceNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTablespaceNameCreate?: (ctx: TablespaceNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.tablespaceName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTablespaceName?: (ctx: TablespaceNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionNameCreate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionNameCreate?: (ctx: PartitionNameCreateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionNames?: (ctx: PartitionNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionName?: (ctx: PartitionNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexColumnName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexColumnName?: (ctx: IndexColumnNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userHostPort`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserHostPort?: (ctx: UserHostPortContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userAtHost`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserAtHost?: (ctx: UserAtHostContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.simpleUserName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleUserName?: (ctx: SimpleUserNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.hostName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHostName?: (ctx: HostNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserName?: (ctx: UserNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.mysqlVariable`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMysqlVariable?: (ctx: MysqlVariableContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.charsetName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCharsetName?: (ctx: CharsetNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.collationName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCollationName?: (ctx: CollationNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.engineName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEngineName?: (ctx: EngineNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.engineNameBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitEngineNameBase?: (ctx: EngineNameBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.uuidSet`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUuidSet?: (ctx: UuidSetContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xid`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXid?: (ctx: XidContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.xuidStringId`. + * @param ctx the parse tree + * @return the visitor result + */ + visitXuidStringId?: (ctx: XuidStringIdContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.fullId`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFullId?: (ctx: FullIdContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.uidList`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUidList?: (ctx: UidListContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.uid`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUid?: (ctx: UidContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.simpleId`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleId?: (ctx: SimpleIdContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dottedId`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDottedId?: (ctx: DottedIdContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.decimalLiteral`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDecimalLiteral?: (ctx: DecimalLiteralContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.fileSizeLiteral`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFileSizeLiteral?: (ctx: FileSizeLiteralContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.stringLiteral`. + * @param ctx the parse tree + * @return the visitor result + */ + visitStringLiteral?: (ctx: StringLiteralContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.booleanLiteral`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBooleanLiteral?: (ctx: BooleanLiteralContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.hexadecimalLiteral`. + * @param ctx the parse tree + * @return the visitor result + */ + visitHexadecimalLiteral?: (ctx: HexadecimalLiteralContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.nullNotnull`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNullNotnull?: (ctx: NullNotnullContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.constant`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConstant?: (ctx: ConstantContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDataType?: (ctx: DataTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.collectionOptions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCollectionOptions?: (ctx: CollectionOptionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.convertedDataType`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConvertedDataType?: (ctx: ConvertedDataTypeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lengthOneDimension`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLengthOneDimension?: (ctx: LengthOneDimensionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lengthTwoDimension`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLengthTwoDimension?: (ctx: LengthTwoDimensionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.lengthTwoOptionalDimension`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLengthTwoOptionalDimension?: (ctx: LengthTwoOptionalDimensionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.indexColumnNames`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIndexColumnNames?: (ctx: IndexColumnNamesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.expressions`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressions?: (ctx: ExpressionsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.valuesOrValueList`. + * @param ctx the parse tree + * @return the visitor result + */ + visitValuesOrValueList?: (ctx: ValuesOrValueListContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.expressionsWithDefaults`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressionsWithDefaults?: (ctx: ExpressionsWithDefaultsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.expressionOrDefault`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressionOrDefault?: (ctx: ExpressionOrDefaultContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.constants`. + * @param ctx the parse tree + * @return the visitor result + */ + visitConstants?: (ctx: ConstantsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.simpleStrings`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSimpleStrings?: (ctx: SimpleStringsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.userVariables`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUserVariables?: (ctx: UserVariablesContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.defaultValue`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDefaultValue?: (ctx: DefaultValueContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.currentTimestamp`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCurrentTimestamp?: (ctx: CurrentTimestampContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ifExists`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIfExists?: (ctx: IfExistsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.ifNotExists`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIfNotExists?: (ctx: IfNotExistsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.orReplace`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOrReplace?: (ctx: OrReplaceContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionCall`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionCall?: (ctx: FunctionCallContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.specificFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitSpecificFunction?: (ctx: SpecificFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.caseFuncAlternative`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCaseFuncAlternative?: (ctx: CaseFuncAlternativeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.levelsInWeightString`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLevelsInWeightString?: (ctx: LevelsInWeightStringContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.levelInWeightListElement`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLevelInWeightListElement?: (ctx: LevelInWeightListElementContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.aggregateWindowedFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitAggregateWindowedFunction?: (ctx: AggregateWindowedFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.nonAggregateWindowedFunction`. + * @param ctx the parse tree + * @return the visitor result + */ + visitNonAggregateWindowedFunction?: (ctx: NonAggregateWindowedFunctionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.overClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitOverClause?: (ctx: OverClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.windowSpec`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWindowSpec?: (ctx: WindowSpecContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.windowName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitWindowName?: (ctx: WindowNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.frameClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFrameClause?: (ctx: FrameClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.frameUnits`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFrameUnits?: (ctx: FrameUnitsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.frameExtent`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFrameExtent?: (ctx: FrameExtentContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.frameBetween`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFrameBetween?: (ctx: FrameBetweenContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.frameRange`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFrameRange?: (ctx: FrameRangeContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.partitionClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPartitionClause?: (ctx: PartitionClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.scalarFunctionName`. + * @param ctx the parse tree + * @return the visitor result + */ + visitScalarFunctionName?: (ctx: ScalarFunctionNameContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.passwordFunctionClause`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPasswordFunctionClause?: (ctx: PasswordFunctionClauseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionArgs`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionArgs?: (ctx: FunctionArgsContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionArg`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionArg?: (ctx: FunctionArgContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.expression`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpression?: (ctx: ExpressionContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.predicate`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPredicate?: (ctx: PredicateContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.expressionAtom`. + * @param ctx the parse tree + * @return the visitor result + */ + visitExpressionAtom?: (ctx: ExpressionAtomContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.unaryOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitUnaryOperator?: (ctx: UnaryOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.comparisonOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitComparisonOperator?: (ctx: ComparisonOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.comparisonBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitComparisonBase?: (ctx: ComparisonBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.logicalOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitLogicalOperator?: (ctx: LogicalOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.bitOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitBitOperator?: (ctx: BitOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.mathOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitMathOperator?: (ctx: MathOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.jsonOperator`. + * @param ctx the parse tree + * @return the visitor result + */ + visitJsonOperator?: (ctx: JsonOperatorContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.charsetNameBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitCharsetNameBase?: (ctx: CharsetNameBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.transactionLevelBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitTransactionLevelBase?: (ctx: TransactionLevelBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.privilegesBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitPrivilegesBase?: (ctx: PrivilegesBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.intervalTypeBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitIntervalTypeBase?: (ctx: IntervalTypeBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.dataTypeBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitDataTypeBase?: (ctx: DataTypeBaseContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.keywordsCanBeId`. + * @param ctx the parse tree + * @return the visitor result + */ + visitKeywordsCanBeId?: (ctx: KeywordsCanBeIdContext) => Result; + + /** + * Visit a parse tree produced by `MySqlParser.functionNameBase`. + * @param ctx the parse tree + * @return the visitor result + */ + visitFunctionNameBase?: (ctx: FunctionNameBaseContext) => Result; +} + diff --git a/src/parser/index.ts b/src/parser/index.ts index b12568a..bc0d133 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -1,4 +1,4 @@ -export { default as GenericSQL } from './generic'; +export { default as MySQL } from './mysql'; export { default as PLSQL } from './plsql'; export { default as HiveSQL } from './hive'; export { default as FlinkSQL } from './flinksql'; diff --git a/src/parser/generic.ts b/src/parser/mysql.ts similarity index 57% rename from src/parser/generic.ts rename to src/parser/mysql.ts index a50bb2f..7245b31 100644 --- a/src/parser/generic.ts +++ b/src/parser/mysql.ts @@ -1,18 +1,18 @@ import { Token } from 'antlr4ts'; import { CandidatesCollection } from 'antlr4-c3'; -import { SqlLexer } from '../lib/generic/SqlLexer'; -import { SqlParser, ProgramContext } from '../lib/generic/SqlParser'; +import { MySqlLexer } from '../lib/mysql/MySqlLexer'; +import { MySqlParser, ProgramContext } from '../lib/mysql/MySqlParser'; import BasicParser from './common/basicParser'; import { Suggestions } from './common/basic-parser-types'; -export default class GenericSQL extends BasicParser { - protected createLexerFormCharStream(charStreams): SqlLexer { - const lexer = new SqlLexer(charStreams); +export default class MySQL extends BasicParser { + protected createLexerFormCharStream(charStreams): MySqlLexer { + const lexer = new MySqlLexer(charStreams); return lexer; } - protected createParserFromTokenStream(tokenStream): SqlParser { - return new SqlParser(tokenStream); + protected createParserFromTokenStream(tokenStream): MySqlParser { + return new MySqlParser(tokenStream); } protected preferredRules: Set = new Set(); diff --git a/test/parser/generic/lexer.test.ts b/test/parser/generic/lexer.test.ts deleted file mode 100644 index bef2c72..0000000 --- a/test/parser/generic/lexer.test.ts +++ /dev/null @@ -1,12 +0,0 @@ -import GenericSQL from '../../../src/parser/generic'; - -describe('GenericSQL Lexer tests', () => { - const mysqlParser = new GenericSQL(); - - const sql = 'select id,name,sex from user1;'; - const tokens = mysqlParser.getAllTokens(sql); - - test('token counts', () => { - expect(tokens.length).toBe(12); - }); -}); diff --git a/test/parser/mysql/lexer.test.ts b/test/parser/mysql/lexer.test.ts new file mode 100644 index 0000000..403aad2 --- /dev/null +++ b/test/parser/mysql/lexer.test.ts @@ -0,0 +1,12 @@ +import MySQL from '../../../src/parser/mysql'; + +describe('MySQL Lexer tests', () => { + const parser = new MySQL(); + + const sql = 'select id,name,sex from user1;'; + const tokens = parser.getAllTokens(sql); + + test('token counts', () => { + expect(tokens.length).toBe(12); + }); +}); diff --git a/test/parser/generic/listener.test.ts b/test/parser/mysql/listener.test.ts similarity index 67% rename from test/parser/generic/listener.test.ts rename to test/parser/mysql/listener.test.ts index 0559185..fa4d2bc 100644 --- a/test/parser/generic/listener.test.ts +++ b/test/parser/mysql/listener.test.ts @@ -1,17 +1,17 @@ -import GenericSQL from '../../../src/parser/generic'; -import { SqlParserListener } from '../../../src/lib/generic/SqlParserListener'; +import MySQL from '../../../src/parser/mysql'; +import { MySqlParserListener } from '../../../src/lib/mysql/MySqlParserListener'; import { ParseTreeListener } from 'antlr4ts/tree'; -describe('Generic SQL Listener Tests', () => { +describe('MySQL Listener Tests', () => { const expectTableName = 'user1'; const sql = `select id,name,sex from ${expectTableName};`; - const parser = new GenericSQL(); + const parser = new MySQL(); const parseTree = parser.parse(sql); test('Listener enterTableName', async () => { let result = ''; - class MyListener implements SqlParserListener { + class MyListener implements MySqlParserListener { enterTableName = (ctx): void => { result = ctx.text.toLowerCase(); }; diff --git a/test/parser/generic/syntax.test.ts b/test/parser/mysql/syntax.test.ts similarity index 87% rename from test/parser/generic/syntax.test.ts rename to test/parser/mysql/syntax.test.ts index 2e88be6..975dc4a 100644 --- a/test/parser/generic/syntax.test.ts +++ b/test/parser/mysql/syntax.test.ts @@ -1,7 +1,7 @@ -import GenericSQL from '../../../src/parser/generic'; +import MySQL from '../../../src/parser/mysql'; -describe('Generic SQL Syntax Tests', () => { - const parser = new GenericSQL(); +describe('MySQL Syntax Tests', () => { + const parser = new MySQL(); test('Select Statement', () => { const sql = 'select id,name from user1;'; diff --git a/test/parser/mysql/syntax/administration.test.ts b/test/parser/mysql/syntax/administration.test.ts new file mode 100644 index 0000000..a4f4a89 --- /dev/null +++ b/test/parser/mysql/syntax/administration.test.ts @@ -0,0 +1,51 @@ +import MySQL from '../../../../src/parser/mysql'; +import { readSQL } from '../../../helper'; + +const parser = new MySQL(); + +const features = { + alterUser: readSQL(__dirname, 'alterUser.sql'), + createRole: readSQL(__dirname, 'createRole.sql'), + createUser: readSQL(__dirname, 'createUser.sql'), + dropRole: readSQL(__dirname, 'dropRole.sql'), + dropUser: readSQL(__dirname, 'dropUser.sql'), + grant: readSQL(__dirname, 'grant.sql'), + renameUser: readSQL(__dirname, 'renameUser.sql'), + revoke: readSQL(__dirname, 'revoke.sql'), + setDefaultRole: readSQL(__dirname, 'setDefaultRole.sql'), + setPassword: readSQL(__dirname, 'setPassword.sql'), + setRole: readSQL(__dirname, 'setRole.sql'), + alterResourceGroup: readSQL(__dirname, 'alterResourceGroup.sql'), + createResourceGroup: readSQL(__dirname, 'createResourceGroup.sql'), + dropResourceGroup: readSQL(__dirname, 'dropResourceGroup.sql'), + setResourceGroup: readSQL(__dirname, 'setResourceGroup.sql'), + analyzeTable: readSQL(__dirname, 'analyzeTable.sql'), + checkTable: readSQL(__dirname, 'checkTable.sql'), + checkSumTable: readSQL(__dirname, 'checkSumTable.sql'), + optimizeTable: readSQL(__dirname, 'optimizeTable.sql'), + repairTable: readSQL(__dirname, 'repairTable.sql'), + installComponent: readSQL(__dirname, 'installComponent.sql'), + installPlugin: readSQL(__dirname, 'installPlugin.sql'), + uninstallComponent: readSQL(__dirname, 'uninstallComponent.sql'), + uninstallPlugin: readSQL(__dirname, 'uninstallPlugin.sql'), + clone: readSQL(__dirname, 'clone.sql'), + set: readSQL(__dirname, 'set.sql'), + setCharacterSet: readSQL(__dirname, 'setCharacterSet.sql'), + setNames: readSQL(__dirname, 'setNames.sql'), + show: readSQL(__dirname, 'show.sql'), + otherAdministrative: readSQL(__dirname, 'otherAdministrative.sql'), +}; + +describe('MySQL Database Administration Syntax Tests', () => { + Object.keys(features).forEach((key) => { + features[key].forEach((sql) => { + it(sql, () => { + const result = parser.validate(sql); + if (result.length) { + console.log(result, `\n请检查 sql: ${sql}`); + } + expect(result.length).toBe(0); + }); + }); + }); +}); diff --git a/test/parser/mysql/syntax/ddl.test.ts b/test/parser/mysql/syntax/ddl.test.ts new file mode 100644 index 0000000..bac48b8 --- /dev/null +++ b/test/parser/mysql/syntax/ddl.test.ts @@ -0,0 +1,58 @@ +import MySQL from '../../../../src/parser/mysql'; +import { readSQL } from '../../../helper'; + +const parser = new MySQL(); + +const features = { + alterDatabase: readSQL(__dirname, 'alterDatabase.sql'), + alterEvent: readSQL(__dirname, 'alterEvent.sql'), + alterFunction: readSQL(__dirname, 'alterFunction.sql'), + alterInstance: readSQL(__dirname, 'alterInstance.sql'), + alterLogFileGroup: readSQL(__dirname, 'alterLogFileGroup.sql'), + alterProcedure: readSQL(__dirname, 'alterProcedure.sql'), + alterServer: readSQL(__dirname, 'alterServer.sql'), + alterTable: readSQL(__dirname, 'alterTable.sql'), + alterTableAndGeneratedColumns: readSQL(__dirname, 'alterTableAndGeneratedColumns.sql'), + alterTablePartition: readSQL(__dirname, 'alterTablePartition.sql'), + alterTableSpace: readSQL(__dirname, 'alterTableSpace.sql'), + alterView: readSQL(__dirname, 'alterView.sql'), + createDatabase: readSQL(__dirname, 'createDatabase.sql'), + createEvent: readSQL(__dirname, 'createEvent.sql'), + createFunction: readSQL(__dirname, 'createFunction.sql'), + createIndex: readSQL(__dirname, 'createIndex.sql'), + createLogFileGroup: readSQL(__dirname, 'createLogFileGroup.sql'), + createProcedure: readSQL(__dirname, 'createProcedure.sql'), + createServer: readSQL(__dirname, 'createServer.sql'), + createTable: readSQL(__dirname, 'createTable.sql'), + createTableSpace: readSQL(__dirname, 'createTableSpace.sql'), + createTrigger: readSQL(__dirname, 'createTrigger.sql'), + createView: readSQL(__dirname, 'createView.sql'), + dropDatabase: readSQL(__dirname, 'dropDatabase.sql'), + dropEvent: readSQL(__dirname, 'dropEvent.sql'), + dropFunction: readSQL(__dirname, 'dropFunction.sql'), + dropIndex: readSQL(__dirname, 'dropIndex.sql'), + dropLogFileGroup: readSQL(__dirname, 'dropLogFileGroup.sql'), + dropProcedure: readSQL(__dirname, 'dropProcedure.sql'), + dropServer: readSQL(__dirname, 'dropServer.sql'), + dropSpatialReferenceSystem: readSQL(__dirname, 'dropSpatialReferenceSystem.sql'), + dropTable: readSQL(__dirname, 'dropTable.sql'), + dropTableSpace: readSQL(__dirname, 'dropTableSpace.sql'), + dropTrigger: readSQL(__dirname, 'dropTrigger.sql'), + dropView: readSQL(__dirname, 'dropView.sql'), + renameTable: readSQL(__dirname, 'renameTable.sql'), + truncateTable: readSQL(__dirname, 'truncateTable.sql'), +}; + +describe('MySQL DDL Syntax Tests', () => { + Object.keys(features).forEach((key) => { + features[key].forEach((sql) => { + it(sql, () => { + const result = parser.validate(sql); + if (result.length) { + console.log(result, `\n请检查 sql: ${sql}`); + } + expect(result.length).toBe(0); + }); + }); + }); +}); diff --git a/test/parser/mysql/syntax/dml.test.ts b/test/parser/mysql/syntax/dml.test.ts new file mode 100644 index 0000000..b708a27 --- /dev/null +++ b/test/parser/mysql/syntax/dml.test.ts @@ -0,0 +1,42 @@ +import MySQL from '../../../../src/parser/mysql'; +import { readSQL } from '../../../helper'; + +const parser = new MySQL(); + +const features = { + call: readSQL(__dirname, 'call.sql'), + delete: readSQL(__dirname, 'delete.sql'), + do: readSQL(__dirname, 'do.sql'), + handler: readSQL(__dirname, 'handler.sql'), + importTable: readSQL(__dirname, 'importTable.sql'), + insert: readSQL(__dirname, 'insert.sql'), + insertSelect: readSQL(__dirname, 'insertSelect.sql'), + interSect: readSQL(__dirname, 'interSect.sql'), + loadData: readSQL(__dirname, 'loadData.sql'), + loadXml: readSQL(__dirname, 'loadXml.sql'), + parenthesizedQuery: readSQL(__dirname, 'parenthesizedQuery.sql'), + replace: readSQL(__dirname, 'replace.sql'), + select: readSQL(__dirname, 'select.sql'), + selectJoin: readSQL(__dirname, 'selectJoin.sql'), + setOperations: readSQL(__dirname, 'setOperations.sql'), + subQueries: readSQL(__dirname, 'subQueries.sql'), + table: readSQL(__dirname, 'table.sql'), + update: readSQL(__dirname, 'update.sql'), + union: readSQL(__dirname, 'union.sql'), + values: readSQL(__dirname, 'values.sql'), + with: readSQL(__dirname, 'with.sql'), +}; + +describe('MySQL DML Syntax Tests', () => { + Object.keys(features).forEach((key) => { + features[key].forEach((sql) => { + it(sql, () => { + const result = parser.validate(sql); + if (result.length) { + console.log(result, `\n请检查 sql: ${sql}`); + } + expect(result.length).toBe(0); + }); + }); + }); +}); diff --git a/test/parser/mysql/syntax/fixtures/alterDatabase.sql b/test/parser/mysql/syntax/fixtures/alterDatabase.sql new file mode 100644 index 0000000..2834cff --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterDatabase.sql @@ -0,0 +1,20 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-database.html + +/* ALTER {DATABASE | SCHEMA} [db_name] + alter_option ... + +alter_option: { + [DEFAULT] CHARACTER SET [=] charset_name + | [DEFAULT] COLLATE [=] collation_name + | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'} + | READ ONLY [=] {DEFAULT | 0 | 1} +} */ + + +ALTER DATABASE mydb READ ONLY = 0 DEFAULT COLLATE utf8mb4_bin; +ALTER SCHEMA mydb READ ONLY = 1 DEFAULT COLLATE utf8mb4_bin; + +ALTER DATABASE READ ONLY = DEFAULT; + +ALTER DATABASE mydb READ ONLY = 0; +ALTER DATABASE mydb READ ONLY = 1; diff --git a/test/parser/mysql/syntax/fixtures/alterEvent.sql b/test/parser/mysql/syntax/fixtures/alterEvent.sql new file mode 100644 index 0000000..beefd0f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterEvent.sql @@ -0,0 +1,26 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-event.html + +/* ALTER + [DEFINER = user] + EVENT event_name + [ON SCHEDULE schedule] + [ON COMPLETION [NOT] PRESERVE] + [RENAME TO new_event_name] + [ENABLE | DISABLE | DISABLE ON SLAVE] + [COMMENT 'string'] + [DO event_body] */ + + +ALTER EVENT no_such_event ON SCHEDULE EVERY '2:3' DAY_HOUR; + +ALTER EVENT myevent ON SCHEDULE EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 4 HOUR; + +ALTER EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY DO TRUNCATE TABLE myschema.mytable; + +ALTER EVENT myevent DISABLE; + +ALTER EVENT myevent RENAME TO yourevent; + +ALTER EVENT myevent RENAME TO yourevent; + +ALTER EVENT olddb.myevent RENAME TO newdb.myevent; diff --git a/test/parser/mysql/syntax/fixtures/alterFunction.sql b/test/parser/mysql/syntax/fixtures/alterFunction.sql new file mode 100644 index 0000000..0ebdf96 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterFunction.sql @@ -0,0 +1,23 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-function.html + +/* ALTER FUNCTION func_name [characteristic ...] + +characteristic: { + COMMENT 'string' + | LANGUAGE SQL + | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } + | SQL SECURITY { DEFINER | INVOKER } +} */ + + +ALTER FUNCTION function_name; +ALTER FUNCTION function_name COMMENT 'get id'; +ALTER FUNCTION function_name COMMENT 'get id' LANGUAGE SQL; +ALTER FUNCTION function_name LANGUAGE SQL; +ALTER FUNCTION function_name NOT DETERMINISTIC; +ALTER FUNCTION function_name CONTAINS SQL; +ALTER FUNCTION function_name NO SQL; +ALTER FUNCTION function_name READS SQL DATA; +ALTER FUNCTION function_name MODIFIES SQL DATA; +ALTER FUNCTION function_name SQL SECURITY DEFINER; +ALTER FUNCTION function_name SQL SECURITY INVOKER; diff --git a/test/parser/mysql/syntax/fixtures/alterInstance.sql b/test/parser/mysql/syntax/fixtures/alterInstance.sql new file mode 100644 index 0000000..1824f8d --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterInstance.sql @@ -0,0 +1,16 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-instance.html + +/* ALTER INSTANCE instance_action + +instance_action: { + | {ENABLE|DISABLE} INNODB REDO_LOG + | ROTATE INNODB MASTER KEY + | ROTATE BINLOG MASTER KEY + | RELOAD TLS + [FOR CHANNEL {mysql_main | mysql_admin}] + [NO ROLLBACK ON ERROR] + | RELOAD KEYRING +} */ + + +ALTER INSTANCE ROTATE INNODB MASTER KEY; diff --git a/test/parser/mysql/syntax/fixtures/alterLogFileGroup.sql b/test/parser/mysql/syntax/fixtures/alterLogFileGroup.sql new file mode 100644 index 0000000..602f8c7 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterLogFileGroup.sql @@ -0,0 +1,14 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-logfile-group.html + +/* ALTER LOGFILE GROUP logfile_group + ADD UNDOFILE 'file_name' + [INITIAL_SIZE [=] size] + [WAIT] + ENGINE [=] engine_name */ + + +ALTER LOGFILE GROUP lg_3 ADD UNDOFILE 'undo_10.dat' INITIAL_SIZE=32M ENGINE=NDBCLUSTER; +ALTER LOGFILE GROUP lg_3 ADD UNDOFILE 'undo_10.dat' ENGINE=NDBCLUSTER; + +ALTER LOGFILE GROUP lg_3 ADD UNDOFILE 'undo_10.dat' INITIAL_SIZE=32M WAIT ENGINE=NDBCLUSTER; +ALTER LOGFILE GROUP lg_3 ADD UNDOFILE 'undo_10.dat' WAIT ENGINE=NDBCLUSTER; diff --git a/test/parser/mysql/syntax/fixtures/alterProcedure.sql b/test/parser/mysql/syntax/fixtures/alterProcedure.sql new file mode 100644 index 0000000..b488a0e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterProcedure.sql @@ -0,0 +1,25 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-procedure.html + +/* ALTER PROCEDURE proc_name [characteristic ...] + +characteristic: { + COMMENT 'string' + | LANGUAGE SQL + | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } + | SQL SECURITY { DEFINER | INVOKER } +} */ + + +-- 和 ALTER FUNCTION 语法类似 + +ALTER PROCEDURE procedure_name; +ALTER PROCEDURE procedure_name COMMENT 'get id'; +ALTER PROCEDURE procedure_name COMMENT 'get id' LANGUAGE SQL; +ALTER PROCEDURE procedure_name LANGUAGE SQL; +ALTER PROCEDURE procedure_name NOT DETERMINISTIC; +ALTER PROCEDURE procedure_name CONTAINS SQL; +ALTER PROCEDURE procedure_name NO SQL; +ALTER PROCEDURE procedure_name READS SQL DATA; +ALTER PROCEDURE procedure_name MODIFIES SQL DATA; +ALTER PROCEDURE procedure_name SQL SECURITY DEFINER; +ALTER PROCEDURE procedure_name SQL SECURITY INVOKER; diff --git a/test/parser/mysql/syntax/fixtures/alterResourceGroup.sql b/test/parser/mysql/syntax/fixtures/alterResourceGroup.sql new file mode 100644 index 0000000..66d018c --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterResourceGroup.sql @@ -0,0 +1,25 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-resource-group.html + +/* ALTER RESOURCE GROUP group_name + [VCPU [=] vcpu_spec [, vcpu_spec] ...] + [THREAD_PRIORITY [=] N] + [ENABLE|DISABLE [FORCE]] + +vcpu_spec: {N | M - N} */ + + +ALTER RESOURCE GROUP group_name VCPU = 2, 3 THREAD_PRIORITY = 5 DISABLE FORCE; +ALTER RESOURCE GROUP group_name VCPU = 2, 3 THREAD_PRIORITY = 5 ENABLE FORCE; +ALTER RESOURCE GROUP group_name VCPU 2 THREAD_PRIORITY 5 ENABLE FORCE; +ALTER RESOURCE GROUP group_name VCPU 2 THREAD_PRIORITY 5 ENABLE; +ALTER RESOURCE GROUP group_name VCPU 2 THREAD_PRIORITY 5 DISABLE; +ALTER RESOURCE GROUP group_name VCPU 2 THREAD_PRIORITY 5; +ALTER RESOURCE GROUP group_name VCPU 2 DISABLE FORCE; +ALTER RESOURCE GROUP group_name DISABLE FORCE; +ALTER RESOURCE GROUP group_name ENABLE FORCE; +ALTER RESOURCE GROUP group_name; + +ALTER RESOURCE GROUP rg1 VCPU = 0-63; +ALTER RESOURCE GROUP rg1 VCPU = 0-63, 64-65, 66; +ALTER RESOURCE GROUP rg2 THREAD_PRIORITY = 5; +ALTER RESOURCE GROUP rg3 DISABLE FORCE; diff --git a/test/parser/mysql/syntax/fixtures/alterServer.sql b/test/parser/mysql/syntax/fixtures/alterServer.sql new file mode 100644 index 0000000..b9ee371 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterServer.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-server.html + +/* ALTER SERVER server_name + OPTIONS (option [, option] ...) */ + + +ALTER SERVER server_name OPTIONS (USER 'sally'); diff --git a/test/parser/mysql/syntax/fixtures/alterTable.sql b/test/parser/mysql/syntax/fixtures/alterTable.sql new file mode 100644 index 0000000..ae1c310 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterTable.sql @@ -0,0 +1,105 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-table.html + + +ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d; +ALTER TABLE t1 ENGINE = InnoDB; +ALTER TABLE t1 ROW_FORMAT = COMPRESSED; +ALTER TABLE t1 AUTO_INCREMENT = 13; +ALTER TABLE t1 CHARACTER SET = utf8mb4; +ALTER TABLE t1 COMMENT = 'New table comment'; +ALTER TABLE t1 COMMENT = 'NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RA_BY_NODE'; +ALTER TABLE t1 CHANGE COLUMN old_col_name new_col_name BLOB COMMENT 'NDB_COLUMN=BLOB_INLINE_SIZE=4096,MAX_BLOB_PART_SIZE'; + +ALTER TABLE t1 CHANGE a b BIGINT NOT NULL; +ALTER TABLE t1 CHANGE b b INT NOT NULL; +ALTER TABLE t1 MODIFY b INT NOT NULL; +ALTER TABLE t1 CHANGE b a INT NOT NULL; +ALTER TABLE t1 RENAME COLUMN b TO a; +-- swap a and b +ALTER TABLE t1 RENAME COLUMN a TO b, + RENAME COLUMN b TO a; +-- "rotate" a, b, c through a cycle +ALTER TABLE t1 RENAME COLUMN a TO b, + RENAME COLUMN b TO c, + RENAME COLUMN c TO a; +ALTER TABLE t1 MODIFY col1 BIGINT; +ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED DEFAULT 1 COMMENT 'my column'; + +ALTER TABLE tbl_name DROP CHECK symbol; +ALTER TABLE tbl_name DROP CONSTRAINT symbol; +ALTER TABLE t MODIFY latin1_text_col TEXT CHARACTER SET utf8mb4; + +ALTER TABLE t MODIFY latin1_varchar_col VARCHAR CHARACTER SET utf8mb4; +ALTER TABLE tbl_name CONVERT TO CHARSET utf8mb4; +ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4; +ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4; +ALTER TABLE tbl_name DEFAULT CHARACTER SET 'utf8mb4'; + + +-- https://dev.mysql.com/doc/refman/8.0/en/alter-table-examples.html + +ALTER TABLE t1 RENAME t2; +ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20); +ALTER TABLE t2 ADD d TIMESTAMP; +ALTER TABLE t2 ADD INDEX (d), ADD UNIQUE (a); +ALTER TABLE t2 DROP COLUMN c; +ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (c); +ALTER TABLE t1 TABLESPACE ts_1 STORAGE DISK; +ALTER TABLE t2 STORAGE DISK; +ALTER TABLE t2 TABLESPACE ts_1 STORAGE DISK; +ALTER TABLE t3 MODIFY c2 INT STORAGE MEMORY; +ALTER TABLE t2 ADD id INT AUTO_INCREMENT PRIMARY KEY; +ALTER TABLE t2 RENAME t1; + + +ALTER TABLE t1 ADD PARTITION (PARTITION p3 VALUES LESS THAN (2002)); +ALTER TABLE t1 DROP PARTITION p0, p1; +ALTER TABLE t1 DISCARD PARTITION p2, p3 TABLESPACE; +ALTER TABLE t1 IMPORT PARTITION p2, p3 TABLESPACE; +ALTER TABLE t1 TRUNCATE PARTITION p0; +ALTER TABLE t1 TRUNCATE PARTITION p1, p3; +ALTER TABLE t2 COALESCE PARTITION 2; +ALTER TABLE t1 ANALYZE PARTITION p1, ANALYZE PARTITION p2; +ALTER TABLE t1 ANALYZE PARTITION p1, CHECK PARTITION p2; +ALTER TABLE t1 ANALYZE PARTITION p1, p2; +ALTER TABLE t1 ANALYZE PARTITION p1; +ALTER TABLE t1 CHECK PARTITION p2; +ALTER TABLE t1 ADD COLUMN c2 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 MODIFY COLUMN c2 TINYINT GENERATED ALWAYS AS (c1 + 5) STORED; +ALTER TABLE t1 CHANGE c2 c3 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 DROP COLUMN c3; +ALTER TABLE t1 ADD COLUMN c2 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 MODIFY COLUMN c2 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 MODIFY COLUMN c2 INT; + + +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ADD CONSTRAINT c2_positive CHECK (c2 > 0) NOT ENFORCED; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ADD CHECK (c2 > 0) ENFORCED; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ADD CHECK (c2 > 0); +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALTER c2 SET VISIBLE; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP DEFAULT; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALGORITHM = INSTANT; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CHECK c2_positive; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALTER CHECK c2_positive NOT ENFORCED; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALTER CONSTRAINT c2_positive NOT ENFORCED; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALTER CONSTRAINT c2_positive ENFORCED; + +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, ALTER CONSTRAINT c2_positive ENFORCED, ALTER CONSTRAINT c2_positive NOT ENFORCED; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED; + +ALTER TABLE your_partitioned_table ADD PARTITION (PARTITION p5 VALUES LESS THAN (2030)); +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED ADD PARTITION (PARTITION p5 VALUES LESS THAN (2030)) DROP PARTITION p0; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED DISCARD PARTITION p0 TABLESPACE DISCARD PARTITION ALL TABLESPACE; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED IMPORT PARTITION p0 TABLESPACE IMPORT PARTITION ALL TABLESPACE; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED TRUNCATE PARTITION p0 TRUNCATE PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED COALESCE PARTITION 10 COALESCE PARTITION 100; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED REORGANIZE PARTITION p0 INTO (PARTITION p5 VALUES LESS THAN (2030), PARTITION p6 VALUES LESS THAN (2030)); +ALTER TABLE t1 ALTER COLUMN c1 SET VISIBLE, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED EXCHANGE PARTITION p0 WITH TABLE t1 WITH VALIDATION; +ALTER TABLE t1 ALTER COLUMN c1 SET VISIBLE, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED EXCHANGE PARTITION p0 WITH TABLE t1 WITHOUT VALIDATION; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED ANALYZE PARTITION p0 ANALYZE PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED CHECK PARTITION p0 CHECK PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED OPTIMIZE PARTITION p0 OPTIMIZE PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED REBUILD PARTITION p0 REBUILD PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 DROP DEFAULT, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED REPAIR PARTITION p0 REPAIR PARTITION ALL; +ALTER TABLE t1 ALTER COLUMN c1 SET VISIBLE, DROP CONSTRAINT c2_positive, ALTER CHECK c2_positive NOT ENFORCED REMOVE PARTITIONING UPGRADE PARTITIONING; diff --git a/test/parser/mysql/syntax/fixtures/alterTableAndGeneratedColumns.sql b/test/parser/mysql/syntax/fixtures/alterTableAndGeneratedColumns.sql new file mode 100644 index 0000000..477f6d7 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterTableAndGeneratedColumns.sql @@ -0,0 +1,10 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-table-generated-columns.html + + +ALTER TABLE t1 ADD COLUMN c2 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 MODIFY COLUMN c2 TINYINT GENERATED ALWAYS AS (c1 + 5) STORED; +ALTER TABLE t1 CHANGE c2 c3 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 DROP COLUMN c3; +ALTER TABLE t1 DROP COLUMN c2; +ALTER TABLE t1 MODIFY COLUMN c2 INT GENERATED ALWAYS AS (c1 + 1) STORED; +ALTER TABLE t1 MODIFY COLUMN c2 INT; diff --git a/test/parser/mysql/syntax/fixtures/alterTablePartition.sql b/test/parser/mysql/syntax/fixtures/alterTablePartition.sql new file mode 100644 index 0000000..e2c1b7a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterTablePartition.sql @@ -0,0 +1,14 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-table-partition-operations.html + +ALTER TABLE t1 ADD PARTITION (PARTITION p3 VALUES LESS THAN (2002)); +ALTER TABLE t1 DROP PARTITION p0, p1; +ALTER TABLE t1 DISCARD PARTITION p2, p3 TABLESPACE; +ALTER TABLE t1 IMPORT PARTITION p2, p3 TABLESPACE; +ALTER TABLE t1 TRUNCATE PARTITION p0; +ALTER TABLE t1 TRUNCATE PARTITION p1, p3; +ALTER TABLE t2 COALESCE PARTITION 2; +ALTER TABLE t1 ANALYZE PARTITION p1, ANALYZE PARTITION p2; +ALTER TABLE t1 ANALYZE PARTITION p1, CHECK PARTITION p2; +ALTER TABLE t1 ANALYZE PARTITION p1, p2; +ALTER TABLE t1 ANALYZE PARTITION p1; +ALTER TABLE t1 CHECK PARTITION p2; diff --git a/test/parser/mysql/syntax/fixtures/alterTableSpace.sql b/test/parser/mysql/syntax/fixtures/alterTableSpace.sql new file mode 100644 index 0000000..58a49df --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterTableSpace.sql @@ -0,0 +1,45 @@ +-- v5.7: https://dev.mysql.com/doc/refman/5.7/en/alter-tablespace.html + +/* ALTER TABLESPACE tablespace_name + {ADD | DROP} DATAFILE 'file_name' + [INITIAL_SIZE [=] size] + [WAIT] + ENGINE [=] engine_name */ + + +ALTER TABLESPACE tablespace_name ADD DATAFILE "file_name" ENGINE 'engine_name'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" ENGINE 'engine_name'; + +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" INITIAL_SIZE = 1G ENGINE 'engine_name'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" INITIAL_SIZE 1G ENGINE 'engine_name'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" INITIAL_SIZE 1G WAIT ENGINE 'engine_name'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" INITIAL_SIZE 1G WAIT ENGINE = 'engine_name'; + + + + + +-- v8: https://dev.mysql.com/doc/refman/8.0/en/alter-tablespace.html + +/* ALTER [UNDO] TABLESPACE tablespace_name + NDB only: + {ADD | DROP} DATAFILE 'file_name' + [INITIAL_SIZE [=] size] + [WAIT] + InnoDB and NDB: + [RENAME TO tablespace_name] + InnoDB only: + [AUTOEXTEND_SIZE [=] 'value'] + [SET {ACTIVE | INACTIVE}] + [ENCRYPTION [=] {'Y' | 'N'}] + InnoDB and NDB: + [ENGINE [=] engine_name] + Reserved for future use: + [ENGINE_ATTRIBUTE [=] 'string'] */ + + +ALTER UNDO TABLESPACE tablespace_name ADD DATAFILE "file_name" INITIAL_SIZE = 500M WAIT RENAME TO new_tablespace_name AUTOEXTEND_SIZE = 500M SET ACTIVE ENCRYPTION = 'Y' ENGINE 'engine_name' ENGINE_ATTRIBUTE = 'aaa'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name" INITIAL_SIZE 500M WAIT AUTOEXTEND_SIZE = 500M SET ACTIVE ENCRYPTION = 'N' ENGINE 'engine_name' ENGINE_ATTRIBUTE = 'aaa'; +ALTER TABLESPACE tablespace_name DROP DATAFILE "file_name"; + + diff --git a/test/parser/mysql/syntax/fixtures/alterUser.sql b/test/parser/mysql/syntax/fixtures/alterUser.sql new file mode 100644 index 0000000..0e6e74b --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterUser.sql @@ -0,0 +1,217 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-user.html + +/* ALTER USER [IF EXISTS] + user [auth_option] [, user [auth_option]] ... + [REQUIRE {NONE | tls_option [[AND] tls_option] ...}] + [WITH resource_option [resource_option] ...] + [password_option | lock_option] ... + [COMMENT 'comment_string' | ATTRIBUTE 'json_object'] + +ALTER USER [IF EXISTS] + USER() user_func_auth_option + +ALTER USER [IF EXISTS] + user [registration_option] + +ALTER USER [IF EXISTS] + USER() [registration_option] + +ALTER USER [IF EXISTS] + user DEFAULT ROLE + {NONE | ALL | role [, role ] ...} + +user: + (see Section 6.2.4, “Specifying Account Names”) + +auth_option: { + IDENTIFIED BY 'auth_string' + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + | IDENTIFIED BY RANDOM PASSWORD + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + | IDENTIFIED WITH auth_plugin + | IDENTIFIED WITH auth_plugin BY 'auth_string' + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + | IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + | IDENTIFIED WITH auth_plugin AS 'auth_string' + | DISCARD OLD PASSWORD + | ADD factor factor_auth_option [ADD factor factor_auth_option] + | MODIFY factor factor_auth_option [MODIFY factor factor_auth_option] + | DROP factor [DROP factor] +} + +user_func_auth_option: { + IDENTIFIED BY 'auth_string' + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + | DISCARD OLD PASSWORD +} + +factor_auth_option: { + IDENTIFIED BY 'auth_string' + | IDENTIFIED BY RANDOM PASSWORD + | IDENTIFIED WITH auth_plugin BY 'auth_string' + | IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD + | IDENTIFIED WITH auth_plugin AS 'auth_string' +} + +registration_option: { + factor INITIATE REGISTRATION + | factor FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string' + | factor UNREGISTER +} + +factor: {2 | 3} FACTOR + +tls_option: { + SSL + | X509 + | CIPHER 'cipher' + | ISSUER 'issuer' + | SUBJECT 'subject' +} + +resource_option: { + MAX_QUERIES_PER_HOUR count + | MAX_UPDATES_PER_HOUR count + | MAX_CONNECTIONS_PER_HOUR count + | MAX_USER_CONNECTIONS count +} + +password_option: { + PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY] + | PASSWORD HISTORY {DEFAULT | N} + | PASSWORD REUSE INTERVAL {DEFAULT | N DAY} + | PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL] + | FAILED_LOGIN_ATTEMPTS N + | PASSWORD_LOCK_TIME {N | UNBOUNDED} +} + +lock_option: { + ACCOUNT LOCK + | ACCOUNT UNLOCK +} */ + + +ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'new_password' PASSWORD EXPIRE; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password' PASSWORD EXPIRE INTERVAL 180 DAY; +ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK; +ALTER USER 'jeffrey'@'localhost' ACCOUNT UNLOCK; +ALTER USER 'jeffrey'@'localhost' REQUIRE SSL WITH MAX_CONNECTIONS_PER_HOUR 20; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'jeffrey_new_password', 'jeanne'@'localhost', 'josh'@'localhost' IDENTIFIED BY 'josh_new_password' REPLACE 'josh_current_password' RETAIN CURRENT PASSWORD REQUIRE SSL WITH MAX_USER_CONNECTIONS 2 PASSWORD HISTORY 5; +ALTER USER 'josh'@'localhost' DISCARD OLD PASSWORD; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password' REPLACE 'current_password'; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'new_password' RETAIN CURRENT PASSWORD; +ALTER USER 'jeffery'@'localhost' DISCARD OLD PASSWORD; +ALTER USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password AS '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4'; +ALTER USER 'user' DROP 2 FACTOR DROP 3 FACTOR; +ALTER USER 'joe'@'10.0.0.1' DEFAULT ROLE administrator, developer; +ALTER USER 'jeffrey'@'localhost' REQUIRE NONE; +ALTER USER 'jeffrey'@'localhost' REQUIRE SSL; +ALTER USER 'jeffrey'@'localhost' REQUIRE X509; +ALTER USER 'jeffrey'@'localhost' REQUIRE ISSUER '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL/CN=CA/emailAddress=ca@example.com'; +ALTER USER 'jeffrey'@'localhost' REQUIRE SUBJECT '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL demo client certificate/ CN=client/emailAddress=client@example.com'; +ALTER USER 'jeffrey'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA'; +ALTER USER 'jeffrey'@'localhost' REQUIRE SUBJECT '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL demo client certificate/ CN=client/emailAddress=client@example.com' AND ISSUER '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL/CN=CA/emailAddress=ca@example.com' AND CIPHER 'EDH-RSA-DES-CBC3-SHA'; +ALTER USER 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100; +ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE; +ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE DEFAULT; +ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE NEVER; +ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY; +ALTER USER 'jeffrey'@'localhost' PASSWORD HISTORY DEFAULT; +ALTER USER 'jeffrey'@'localhost' PASSWORD HISTORY 6; +ALTER USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL DEFAULT; +ALTER USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL 360 DAY; +ALTER USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT; +ALTER USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT OPTIONAL; +ALTER USER 'jeffrey'@'localhost' PASSWORD REQUIRE CURRENT DEFAULT; +ALTER USER 'jeffrey'@'localhost' FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 2; +ALTER USER 'bill'@'localhost' ATTRIBUTE '{"baz": "faz", "foo": "moo"}'; +ALTER USER 'bill'@'localhost' ATTRIBUTE '{"foo": null}'; +ALTER USER 'bill'@'localhost' COMMENT 'Something about Bill'; +ALTER USER 'bill'@'localhost' COMMENT ''; +ALTER USER 'bill'@'localhost' ATTRIBUTE '{"comment": null}'; + + +ALTER USER IF EXISTS 'user' IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string'; +ALTER USER 'user' IDENTIFIED BY 'auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY 'auth_string'; + +ALTER USER IF EXISTS 'user' IDENTIFIED BY RANDOM PASSWORD REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY RANDOM PASSWORD REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY RANDOM PASSWORD REPLACE 'current_auth_string'; +ALTER USER 'user' IDENTIFIED BY RANDOM PASSWORD RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED BY RANDOM PASSWORD; + +ALTER USER IF EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' REPLACE 'current_auth_string'; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string'; + +ALTER USER IF EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD REPLACE 'current_auth_string'; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD; + +ALTER USER IF EXISTS 'user' IDENTIFIED WITH 'auth_plugin' AS 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' AS 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' AS 'auth_string' REPLACE 'current_auth_string'; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' AS 'auth_string' RETAIN CURRENT PASSWORD; +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin' AS 'auth_string'; + +ALTER USER 'user' IDENTIFIED WITH 'auth_plugin'; + +ALTER USER USER() DISCARD OLD PASSWORD; +ALTER USER 'user' DISCARD OLD PASSWORD; + +ALTER USER IF EXISTS 'user' ADD 2 FACTOR IDENTIFIED BY 'auth_string' ADD 2 FACTOR IDENTIFIED BY 'auth_string'; +ALTER USER 'user' ADD 2 FACTOR IDENTIFIED BY 'auth_string' ADD 2 FACTOR IDENTIFIED BY 'auth_string'; +ALTER USER 'user' ADD 2 FACTOR IDENTIFIED BY RANDOM PASSWORD; +ALTER USER 'user' ADD 2 FACTOR IDENTIFIED WITH 'auth_plugin' BY 'auth_string'; +ALTER USER 'user' ADD 3 FACTOR IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD; +ALTER USER 'user' ADD 3 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string'; +ALTER USER 'user' ADD 3 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string' ADD 2 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string'; + +ALTER USER IF EXISTS 'user' MODIFY 2 FACTOR IDENTIFIED BY 'auth_string' MODIFY 2 FACTOR IDENTIFIED BY 'auth_string'; +ALTER USER 'user' MODIFY 2 FACTOR IDENTIFIED BY 'auth_string' MODIFY 2 FACTOR IDENTIFIED BY 'auth_string'; +ALTER USER 'user' MODIFY 2 FACTOR IDENTIFIED BY RANDOM PASSWORD; +ALTER USER 'user' MODIFY 2 FACTOR IDENTIFIED WITH 'auth_plugin' BY 'auth_string'; +ALTER USER 'user' MODIFY 3 FACTOR IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD; +ALTER USER 'user' MODIFY 3 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string'; +ALTER USER 'user' MODIFY 3 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string' MODIFY 2 FACTOR IDENTIFIED WITH 'auth_plugin' AS 'auth_string'; + +ALTER USER 'user' DROP 2 FACTOR DROP 3 FACTOR; + +ALTER USER IF EXISTS USER() IDENTIFIED BY 'auth_string'; +ALTER USER USER() IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +ALTER USER USER() IDENTIFIED BY 'auth_string' REPLACE 'current_auth_string'; +ALTER USER USER() IDENTIFIED BY 'auth_string' RETAIN CURRENT PASSWORD; +ALTER USER USER() DISCARD OLD PASSWORD; +ALTER USER USER() IDENTIFIED BY 'auth_string'; + +ALTER USER IF EXISTS 'user' 2 FACTOR INITIATE REGISTRATION; +ALTER USER 'user' 2 FACTOR INITIATE REGISTRATION; +ALTER USER 'user' 3 FACTOR FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string'; +ALTER USER 'user' 3 FACTOR UNREGISTER; +ALTER USER 'user'; + +ALTER USER IF EXISTS USER() 2 FACTOR INITIATE REGISTRATION; +ALTER USER USER() 2 FACTOR INITIATE REGISTRATION; +ALTER USER USER() 3 FACTOR FINISH REGISTRATION SET CHALLENGE_RESPONSE AS 'auth_string'; +ALTER USER USER() 3 FACTOR UNREGISTER; +ALTER USER USER(); + +ALTER USER IF EXISTS 'user' DEFAULT ROLE NONE; +ALTER USER 'user' DEFAULT ROLE NONE; +ALTER USER 'user' DEFAULT ROLE ALL; +ALTER USER 'user' DEFAULT ROLE developer; diff --git a/test/parser/mysql/syntax/fixtures/alterView.sql b/test/parser/mysql/syntax/fixtures/alterView.sql new file mode 100644 index 0000000..564c5af --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/alterView.sql @@ -0,0 +1,22 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/alter-view.html + +/* ALTER + [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] + [DEFINER = user] + [SQL SECURITY { DEFINER | INVOKER }] + VIEW view_name [(column_list)] + AS select_statement + [WITH [CASCADED | LOCAL] CHECK OPTION] */ + + + +ALTER ALGORITHM = UNDEFINED DEFINER = 'user' SQL SECURITY DEFINER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; +ALTER ALGORITHM = MERGE DEFINER = 'user' SQL SECURITY DEFINER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; +ALTER ALGORITHM = TEMPTABLE DEFINER = 'user' SQL SECURITY DEFINER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; +ALTER ALGORITHM = UNDEFINED DEFINER = 'user' SQL SECURITY INVOKER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; +ALTER ALGORITHM = MERGE DEFINER = 'user' SQL SECURITY INVOKER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; +ALTER ALGORITHM = TEMPTABLE DEFINER = 'user' SQL SECURITY INVOKER VIEW view_name AS SELECT column1, column2, new_column FROM my_table WHERE condition WITH CASCADED CHECK OPTION; + +ALTER VIEW my_view AS SELECT column1, column2, new_column FROM my_table WHERE condition; +ALTER VIEW my_view AS SELECT column1, column2, new_column FROM my_table; +ALTER VIEW my_view AS SELECT column1, column2 AS new_column FROM my_table; diff --git a/test/parser/mysql/syntax/fixtures/analyzeTable.sql b/test/parser/mysql/syntax/fixtures/analyzeTable.sql new file mode 100644 index 0000000..d458562 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/analyzeTable.sql @@ -0,0 +1,48 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/analyze-table.html + +/* ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name [, tbl_name] ... + +ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name + UPDATE HISTOGRAM ON col_name [, col_name] ... + [WITH N BUCKETS] + +ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name + UPDATE HISTOGRAM ON col_name [USING DATA 'json_data'] + +ANALYZE [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name + DROP HISTOGRAM ON col_name [, col_name] ... */ + + +ANALYZE TABLE t UPDATE HISTOGRAM ON c1, c2, c3 WITH 10 BUCKETS; +ANALYZE TABLE t UPDATE HISTOGRAM ON c1, c3 WITH 10 BUCKETS; +ANALYZE TABLE t DROP HISTOGRAM ON c2; +ANALYZE TABLE t UPDATE HISTOGRAM ON c1; +ANALYZE TABLE t DROP HISTOGRAM ON c1; +ANALYZE TABLE t UPDATE HISTOGRAM ON c1 USING DATA '{"buckets": [[206, 0.0625], [456, 0.125], [608, 0.1875]], "data-type": "int", "null-values": 0.0, "collation-id": 8, "last-updated": "2022-10-11 16:13:14.563319", "sampling-rate": 1.0, "histogram-type": "singleton", "number-of-buckets-specified": 100}'; + + +ANALYZE NO_WRITE_TO_BINLOG TABLE t1, t2, t3; +ANALYZE LOCAL TABLE t1, t2, t3; +ANALYZE TABLE t1, t2, t3; + +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 UPDATE HISTOGRAM ON c1, c2, c3 WITH 12 BUCKETS; +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 UPDATE HISTOGRAM ON c1, c2, c3; +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 UPDATE HISTOGRAM ON c1 WITH 13 BUCKETS; +ANALYZE LOCAL TABLE t1 UPDATE HISTOGRAM ON c1, c2, c3; +ANALYZE LOCAL TABLE t1 UPDATE HISTOGRAM ON c1; +ANALYZE LOCAL TABLE t1 UPDATE HISTOGRAM ON c1 WITH 14 BUCKETS; +ANALYZE TABLE t1 UPDATE HISTOGRAM ON c1 WITH 14 BUCKETS; + +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 UPDATE HISTOGRAM ON c1 USING DATA '{"buckets": [[206, 0.0625], [456, 0.125], [608, 0.1875]], "data-type": "int", "null-values": 0.0, "collation-id": 8, "last-updated": "2022-10-11 16:13:14.563319", "sampling-rate": 1.0, "histogram-type": "singleton", "number-of-buckets-specified": 100}'; +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 UPDATE HISTOGRAM ON c1; +ANALYZE LOCAL TABLE t1 UPDATE HISTOGRAM ON c1 USING DATA '{"buckets": [[206, 0.0625], [456, 0.125], [608, 0.1875]], "data-type": "int", "null-values": 0.0, "collation-id": 8, "last-updated": "2022-10-11 16:13:14.563319", "sampling-rate": 1.0, "histogram-type": "singleton", "number-of-buckets-specified": 100}'; +ANALYZE LOCAL TABLE t1 UPDATE HISTOGRAM ON c1; +ANALYZE TABLE t1 UPDATE HISTOGRAM ON c1; + +ANALYZE NO_WRITE_TO_BINLOG TABLE t1 DROP HISTOGRAM ON c1, c2, c3; +ANALYZE LOCAL TABLE t1 DROP HISTOGRAM ON c1, c2, c3; +ANALYZE TABLE t1 DROP HISTOGRAM ON c1, c2, c3; diff --git a/test/parser/mysql/syntax/fixtures/call.sql b/test/parser/mysql/syntax/fixtures/call.sql new file mode 100644 index 0000000..85ce110 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/call.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/call.html + +/* CALL sp_name([parameter[,...]]) +CALL sp_name[()] */ + + +CALL p(@version, @increment); +CALL p; diff --git a/test/parser/mysql/syntax/fixtures/changeMasterTo.sql b/test/parser/mysql/syntax/fixtures/changeMasterTo.sql new file mode 100644 index 0000000..01d5e49 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/changeMasterTo.sql @@ -0,0 +1,89 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/change-master-to.html + +/* CHANGE MASTER TO option [, option] ... [ channel_option ] + +option: { + MASTER_BIND = 'interface_name' + | MASTER_HOST = 'host_name' + | MASTER_USER = 'user_name' + | MASTER_PASSWORD = 'password' + | MASTER_PORT = port_num + | PRIVILEGE_CHECKS_USER = {'account' | NULL} + | REQUIRE_ROW_FORMAT = {0|1} + | REQUIRE_TABLE_PRIMARY_KEY_CHECK = {STREAM | ON | OFF} + | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = {OFF | LOCAL | uuid} + | MASTER_LOG_FILE = 'source_log_name' + | MASTER_LOG_POS = source_log_pos + | MASTER_AUTO_POSITION = {0|1} + | RELAY_LOG_FILE = 'relay_log_name' + | RELAY_LOG_POS = relay_log_pos + | MASTER_HEARTBEAT_PERIOD = interval + | MASTER_CONNECT_RETRY = interval + | MASTER_RETRY_COUNT = count + | SOURCE_CONNECTION_AUTO_FAILOVER = {0|1} + | MASTER_DELAY = interval + | MASTER_COMPRESSION_ALGORITHMS = 'algorithm[,algorithm][,algorithm]' + | MASTER_ZSTD_COMPRESSION_LEVEL = level + | MASTER_SSL = {0|1} + | MASTER_SSL_CA = 'ca_file_name' + | MASTER_SSL_CAPATH = 'ca_directory_name' + | MASTER_SSL_CERT = 'cert_file_name' + | MASTER_SSL_CRL = 'crl_file_name' + | MASTER_SSL_CRLPATH = 'crl_directory_name' + | MASTER_SSL_KEY = 'key_file_name' + | MASTER_SSL_CIPHER = 'cipher_list' + | MASTER_SSL_VERIFY_SERVER_CERT = {0|1} + | MASTER_TLS_VERSION = 'protocol_list' + | MASTER_TLS_CIPHERSUITES = 'ciphersuite_list' + | MASTER_PUBLIC_KEY_PATH = 'key_file_name' + | GET_MASTER_PUBLIC_KEY = {0|1} + | NETWORK_NAMESPACE = 'namespace' + | IGNORE_SERVER_IDS = (server_id_list), + | GTID_ONLY = {0|1} +} + +channel_option: + FOR CHANNEL channel + +server_id_list: + [server_id [, server_id] ... ] */ + + +CHANGE MASTER TO MASTER_BIND = 'interface_name', MASTER_HOST = 'host_name' FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_BIND = 'interface_name'; +CHANGE MASTER TO MASTER_USER = 'user_name', MASTER_PASSWORD = 'password' FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_PORT = 3011; +CHANGE MASTER TO MASTER_CONNECT_RETRY = 10, MASTER_RETRY_COUNT = 5 FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_DELAY = 10, MASTER_HEARTBEAT_PERIOD = 5 FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_LOG_FILE = 'source_log_name', MASTER_LOG_POS = 4 FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_AUTO_POSITION = 0, MASTER_AUTO_POSITION = 1 FOR CHANNEL 'channel'; +CHANGE MASTER TO RELAY_LOG_FILE = 'relay_log_name', RELAY_LOG_POS = 4025, MASTER_SSL = 0, MASTER_SSL = 1 FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_SSL_CA = 'ca_file_name', MASTER_SSL_CAPATH = 'ca_directory_name', MASTER_SSL_CERT = 'cert_file_name' FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_SSL_CRL = 'crl_file_name', MASTER_SSL_CRLPATH = 'crl_directory_name', MASTER_SSL_KEY = 'key_file_name' FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_SSL_CIPHER = 'cipher_list', MASTER_SSL_VERIFY_SERVER_CERT = 0, MASTER_SSL_VERIFY_SERVER_CERT = 1 FOR CHANNEL 'channel'; +CHANGE MASTER TO MASTER_TLS_VERSION = 'protocol_list', IGNORE_SERVER_IDS = ('127.0.0.1', '127.0.0.1') FOR CHANNEL 'channel'; + +CHANGE MASTER TO PRIVILEGE_CHECKS_USER = 'account', PRIVILEGE_CHECKS_USER = NULL, REQUIRE_ROW_FORMAT = 0, REQUIRE_ROW_FORMAT = 1; +CHANGE MASTER TO REQUIRE_TABLE_PRIMARY_KEY_CHECK = STREAM, REQUIRE_TABLE_PRIMARY_KEY_CHECK = ON, REQUIRE_TABLE_PRIMARY_KEY_CHECK = OFF; +CHANGE MASTER TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = OFF, ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL, ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c'; +CHANGE MASTER TO SOURCE_CONNECTION_AUTO_FAILOVER = 0, SOURCE_CONNECTION_AUTO_FAILOVER = 1; +CHANGE MASTER TO MASTER_COMPRESSION_ALGORITHMS = 'zlib,zstd', MASTER_COMPRESSION_ALGORITHMS = 'zlib'; +CHANGE MASTER TO MASTER_ZSTD_COMPRESSION_LEVEL = 1, MASTER_TLS_CIPHERSUITES = 'ciphersuite_list', MASTER_PUBLIC_KEY_PATH = 'key_file_name'; +CHANGE MASTER TO GET_MASTER_PUBLIC_KEY = 0, GET_MASTER_PUBLIC_KEY = 1; +CHANGE MASTER TO NETWORK_NAMESPACE = 'namespace', GTID_ONLY = 0, GTID_ONLY = 1; + +CHANGE MASTER TO MASTER_HOST='host1', MASTER_PORT=3002 FOR CHANNEL 'channel2'; +CHANGE MASTER TO MASTER_PASSWORD='new3cre'; + +CHANGE MASTER TO IGNORE_SERVER_IDS = (); + +CHANGE MASTER TO + MASTER_HOST='source2.example.com', + MASTER_USER='replication', + MASTER_PASSWORD='password', + MASTER_PORT=3306, + MASTER_LOG_FILE='source2-bin.001', + MASTER_LOG_POS=4, + MASTER_CONNECT_RETRY=10; + +CHANGE MASTER TO RELAY_LOG_FILE='replica-relay-bin.006', RELAY_LOG_POS=4025; diff --git a/test/parser/mysql/syntax/fixtures/changeReplicationFilter.sql b/test/parser/mysql/syntax/fixtures/changeReplicationFilter.sql new file mode 100644 index 0000000..e7a7a0a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/changeReplicationFilter.sql @@ -0,0 +1,41 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/change-replication-filter.html + +/* CHANGE REPLICATION FILTER filter[, filter] + [, ...] [FOR CHANNEL channel] + +filter: { + REPLICATE_DO_DB = (db_list) + | REPLICATE_IGNORE_DB = (db_list) + | REPLICATE_DO_TABLE = (tbl_list) + | REPLICATE_IGNORE_TABLE = (tbl_list) + | REPLICATE_WILD_DO_TABLE = (wild_tbl_list) + | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) + | REPLICATE_REWRITE_DB = (db_pair_list) +} + +db_list: + db_name[, db_name][, ...] + +tbl_list: + db_name.table_name[, db_name.table_name][, ...] +wild_tbl_list: + 'db_pattern.table_pattern'[, 'db_pattern.table_pattern'][, ...] + +db_pair_list: + (db_pair)[, (db_pair)][, ...] + +db_pair: + from_db, to_db */ + + +CHANGE REPLICATION FILTER REPLICATE_DO_DB = (d1), REPLICATE_IGNORE_DB = (d2); +CHANGE REPLICATION FILTER REPLICATE_DO_TABLE = (t1), REPLICATE_IGNORE_TABLE = (t2); + +CHANGE REPLICATION FILTER REPLICATE_DO_DB = (d1) FOR CHANNEL 'channel_1'; +CHANGE REPLICATION FILTER REPLICATE_DO_DB = (db1, db2), REPLICATE_DO_DB = (db3, db4); +CHANGE REPLICATION FILTER REPLICATE_DO_DB = (db3, db4); +CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db1.old%'); +CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db1.new%', 'db2.new%'); +CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db1.old%'), REPLICATE_WILD_IGNORE_TABLE = ('db1.new%', 'db2.new%'); +CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((db1, db2)); +CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((dbA, dbB), (dbC, dbD)); diff --git a/test/parser/mysql/syntax/fixtures/changeReplicationSource.sql b/test/parser/mysql/syntax/fixtures/changeReplicationSource.sql new file mode 100644 index 0000000..ba49ac5 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/changeReplicationSource.sql @@ -0,0 +1,58 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html + +/* CHANGE REPLICATION SOURCE TO option [, option] ... [ channel_option ] + +option: { + SOURCE_BIND = 'interface_name' + | SOURCE_HOST = 'host_name' + | SOURCE_USER = 'user_name' + | SOURCE_PASSWORD = 'password' + | SOURCE_PORT = port_num + | PRIVILEGE_CHECKS_USER = {NULL | 'account'} + | REQUIRE_ROW_FORMAT = {0|1} + | REQUIRE_TABLE_PRIMARY_KEY_CHECK = {STREAM | ON | OFF | GENERATE} + | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = {OFF | LOCAL | uuid} + | SOURCE_LOG_FILE = 'source_log_name' + | SOURCE_LOG_POS = source_log_pos + | SOURCE_AUTO_POSITION = {0|1} + | RELAY_LOG_FILE = 'relay_log_name' + | RELAY_LOG_POS = relay_log_pos + | SOURCE_HEARTBEAT_PERIOD = interval + | SOURCE_CONNECT_RETRY = interval + | SOURCE_RETRY_COUNT = count + | SOURCE_CONNECTION_AUTO_FAILOVER = {0|1} + | SOURCE_DELAY = interval + | SOURCE_COMPRESSION_ALGORITHMS = 'algorithm[,algorithm][,algorithm]' + | SOURCE_ZSTD_COMPRESSION_LEVEL = level + | SOURCE_SSL = {0|1} + | SOURCE_SSL_CA = 'ca_file_name' + | SOURCE_SSL_CAPATH = 'ca_directory_name' + | SOURCE_SSL_CERT = 'cert_file_name' + | SOURCE_SSL_CRL = 'crl_file_name' + | SOURCE_SSL_CRLPATH = 'crl_directory_name' + | SOURCE_SSL_KEY = 'key_file_name' + | SOURCE_SSL_CIPHER = 'cipher_list' + | SOURCE_SSL_VERIFY_SERVER_CERT = {0|1} + | SOURCE_TLS_VERSION = 'protocol_list' + | SOURCE_TLS_CIPHERSUITES = 'ciphersuite_list' + | SOURCE_PUBLIC_KEY_PATH = 'key_file_name' + | GET_SOURCE_PUBLIC_KEY = {0|1} + | NETWORK_NAMESPACE = 'namespace' + | IGNORE_SERVER_IDS = (server_id_list), + | GTID_ONLY = {0|1} +} + +channel_option: + FOR CHANNEL channel + +server_id_list: + [server_id [, server_id] ... ] */ + + +CHANGE REPLICATION SOURCE TO SOURCE_BIND = 'interface_name', SOURCE_HOST = 'host_name', SOURCE_USER = 'user_name', SOURCE_PASSWORD = 'password', SOURCE_PORT = 3011, SOURCE_LOG_FILE = 'source_log_name', SOURCE_LOG_POS = 10, RELAY_LOG_FILE = 'relay_log_name', RELAY_LOG_POS = 5, SOURCE_HEARTBEAT_PERIOD = 6, SOURCE_CONNECT_RETRY = 7, SOURCE_RETRY_COUNT = 4, SOURCE_DELAY = 8, SOURCE_COMPRESSION_ALGORITHMS = 'zlib,zstd', SOURCE_ZSTD_COMPRESSION_LEVEL = 11, SOURCE_SSL_CA = 'ca_file_name', SOURCE_SSL_CAPATH = 'ca_directory_name', SOURCE_SSL_CERT = 'cert_file_name', SOURCE_SSL_CRL = 'crl_file_name', SOURCE_SSL_CRLPATH = 'crl_directory_name', SOURCE_SSL_KEY = 'key_file_name', SOURCE_SSL_CIPHER = 'cipher_list', SOURCE_TLS_VERSION = 'protocol_list', SOURCE_TLS_CIPHERSUITES = 'ciphersuite_list', SOURCE_PUBLIC_KEY_PATH = 'key_file_name', NETWORK_NAMESPACE = 'namespace', IGNORE_SERVER_IDS = ('127.0.0.1', '127.0.0.1') FOR CHANNEL 'channel'; +CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = NULL, REQUIRE_ROW_FORMAT = 0, REQUIRE_TABLE_PRIMARY_KEY_CHECK = STREAM, ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = OFF, SOURCE_AUTO_POSITION = 0, SOURCE_CONNECTION_AUTO_FAILOVER = 1, SOURCE_SSL = 1, SOURCE_SSL_VERIFY_SERVER_CERT = 0, GET_SOURCE_PUBLIC_KEY = 1, GTID_ONLY = 1 FOR CHANNEL 'channel'; +CHANGE REPLICATION SOURCE TO PRIVILEGE_CHECKS_USER = 'account', REQUIRE_ROW_FORMAT = 0, REQUIRE_TABLE_PRIMARY_KEY_CHECK = GENERATE, ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = LOCAL, SOURCE_AUTO_POSITION = 0, SOURCE_CONNECTION_AUTO_FAILOVER = 1, SOURCE_SSL = 1, SOURCE_SSL_VERIFY_SERVER_CERT = 0, GET_SOURCE_PUBLIC_KEY = 1, GTID_ONLY = 1 FOR CHANNEL 'channel'; + +CHANGE REPLICATION SOURCE TO SOURCE_HOST='source2.example.com', SOURCE_USER='replication', SOURCE_PASSWORD='password', SOURCE_PORT=3306, SOURCE_LOG_FILE='source2-bin.001', SOURCE_LOG_POS=4, SOURCE_CONNECT_RETRY=10; +CHANGE REPLICATION SOURCE TO SOURCE_HOST='source3.example.com', SOURCE_USER='replication', SOURCE_PASSWORD='password', SOURCE_PORT=3306, SOURCE_AUTO_POSITION = 1 FOR CHANNEL "source_3"; +CHANGE REPLICATION SOURCE TO RELAY_LOG_FILE='replica-relay-bin.006', RELAY_LOG_POS=4025; diff --git a/test/parser/mysql/syntax/fixtures/checkSumTable.sql b/test/parser/mysql/syntax/fixtures/checkSumTable.sql new file mode 100644 index 0000000..7e65699 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/checkSumTable.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/checksum-table.html + +/* CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED] */ + + +CHECKSUM TABLE t1, t2, t3 QUICK; +CHECKSUM TABLE t1, t2, t3 EXTENDED; +CHECKSUM TABLE t1 QUICK; +CHECKSUM TABLE t1 EXTENDED; diff --git a/test/parser/mysql/syntax/fixtures/checkTable.sql b/test/parser/mysql/syntax/fixtures/checkTable.sql new file mode 100644 index 0000000..1dbca34 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/checkTable.sql @@ -0,0 +1,19 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/check-table.html + +/* CHECK TABLE tbl_name [, tbl_name] ... [option] ... + +option: { + FOR UPGRADE + | QUICK + | FAST + | MEDIUM + | EXTENDED + | CHANGED +} */ + + +CHECK TABLE t1, t2, t3 FOR UPGRADE QUICK FAST MEDIUM EXTENDED CHANGED; +CHECK TABLE t1 FOR UPGRADE QUICK FAST MEDIUM EXTENDED CHANGED; +CHECK TABLE t1 FOR UPGRADE QUICK; +CHECK TABLE t1 FAST MEDIUM EXTENDED CHANGED; +CHECK TABLE t1; diff --git a/test/parser/mysql/syntax/fixtures/clone.sql b/test/parser/mysql/syntax/fixtures/clone.sql new file mode 100644 index 0000000..ca14391 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/clone.sql @@ -0,0 +1,18 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/clone.html + +/* CLONE clone_action + +clone_action: { + LOCAL DATA DIRECTORY [=] 'clone_dir' + | INSTANCE FROM 'user'@'host':port + IDENTIFIED BY 'password' + [DATA DIRECTORY [=] 'clone_dir'] + [REQUIRE [NO] SSL] +} */ + + +CLONE LOCAL DATA DIRECTORY = 'clone_dir'; +CLONE LOCAL DATA DIRECTORY 'clone_dir'; + +CLONE INSTANCE FROM root@127.0.0.1:3306 IDENTIFIED BY 'password' DATA DIRECTORY = 'clone_dir' REQUIRE NO SSL; +CLONE INSTANCE FROM root@127.0.0.1:3306 IDENTIFIED BY 'password' REQUIRE SSL; diff --git a/test/parser/mysql/syntax/fixtures/commit.sql b/test/parser/mysql/syntax/fixtures/commit.sql new file mode 100644 index 0000000..73bbd01 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/commit.sql @@ -0,0 +1,48 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/commit.html + +/* START TRANSACTION + [transaction_characteristic [, transaction_characteristic] ...] + +transaction_characteristic: { + WITH CONSISTENT SNAPSHOT + | READ WRITE + | READ ONLY +} + +BEGIN [WORK] +COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] +ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] +SET autocommit = {0 | 1} */ + + +START TRANSACTION WITH CONSISTENT SNAPSHOT, WITH CONSISTENT SNAPSHOT; +START TRANSACTION WITH CONSISTENT SNAPSHOT; +START TRANSACTION READ WRITE, READ WRITE; +START TRANSACTION READ WRITE; +START TRANSACTION READ ONLY, READ ONLY; +START TRANSACTION READ ONLY; +START TRANSACTION; + +BEGIN WORK; +BEGIN; + +COMMIT WORK AND NO CHAIN NO RELEASE; +COMMIT AND NO CHAIN NO RELEASE; +COMMIT WORK AND CHAIN NO RELEASE; +COMMIT AND NO CHAIN RELEASE; +COMMIT AND CHAIN RELEASE; +COMMIT AND CHAIN; +COMMIT NO RELEASE; +COMMIT RELEASE; + +ROLLBACK WORK AND NO CHAIN NO RELEASE; +ROLLBACK AND NO CHAIN NO RELEASE; +ROLLBACK WORK AND CHAIN NO RELEASE; +ROLLBACK AND NO CHAIN RELEASE; +ROLLBACK AND CHAIN RELEASE; +ROLLBACK AND CHAIN; +ROLLBACK NO RELEASE; +ROLLBACK RELEASE; + +SET autocommit=0; +SET autocommit=1; diff --git a/test/parser/mysql/syntax/fixtures/createDatabase.sql b/test/parser/mysql/syntax/fixtures/createDatabase.sql new file mode 100644 index 0000000..3c840fe --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createDatabase.sql @@ -0,0 +1,34 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-database.html + +/* CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name + [create_option] ... + +create_option: [DEFAULT] { + CHARACTER SET [=] charset_name + | COLLATE [=] collation_name + | ENCRYPTION [=] {'Y' | 'N'} +} */ + + +-- https://dev.mysql.com/doc/refman/5.7/en/create-database.html + +/* CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name + [create_option] ... + +create_option: [DEFAULT] { + CHARACTER SET [=] charset_name + | COLLATE [=] collation_name +} */ + + +CREATE DATABASE IF NOT EXISTS db_name; +CREATE DATABASE db_name CHARACTER SET utf8mb4; +CREATE DATABASE db_name COLLATE utf8mb4_unicode_ci; +CREATE DATABASE db_name ENCRYPTION = 'Y'; +CREATE DATABASE db_name DEFAULT ENCRYPTION 'N'; + +CREATE SCHEMA IF NOT EXISTS db_name DEFAULT ENCRYPTION 'Y'; +CREATE SCHEMA db_name DEFAULT CHARACTER SET utf8mb4; +CREATE SCHEMA db_name DEFAULT COLLATE utf8mb4_unicode_ci; +CREATE SCHEMA db_name DEFAULT ENCRYPTION = 'Y'; +CREATE SCHEMA db_name DEFAULT ENCRYPTION 'N'; diff --git a/test/parser/mysql/syntax/fixtures/createEvent.sql b/test/parser/mysql/syntax/fixtures/createEvent.sql new file mode 100644 index 0000000..843c34b --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createEvent.sql @@ -0,0 +1,41 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-event.html + +/* CREATE + [DEFINER = user] + EVENT + [IF NOT EXISTS] + event_name + ON SCHEDULE schedule + [ON COMPLETION [NOT] PRESERVE] + [ENABLE | DISABLE | DISABLE ON SLAVE] + [COMMENT 'string'] + DO event_body + +schedule: { + AT timestamp [+ INTERVAL interval] ... + | EVERY interval + [STARTS timestamp [+ INTERVAL interval] ...] + [ENDS timestamp [+ INTERVAL interval] ...] +} + +interval: + quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE | + WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE | + DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND} */ + + +CREATE EVENT IF NOT EXISTS my_event ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO UPDATE my_schema.my_table SET mycol = mycol + 1; + +CREATE EVENT e_totals ON SCHEDULE AT '2006-02-10 23:59:00' DO INSERT INTO test.totals VALUES (NOW()); + +CREATE EVENT e_hourly ON SCHEDULE EVERY 1 HOUR COMMENT 'Clears out sessions table each hour.' DO DELETE FROM site_activity.sessions; + +CREATE EVENT e_daily + ON SCHEDULE + EVERY 1 DAY + COMMENT 'Saves total number of sessions then clears the table each day' + DO INSERT INTO site_activity.totals (time, total) + SELECT CURRENT_TIMESTAMP, COUNT(*) + FROM site_activity.sessions; + +CREATE EVENT e_call_my ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY DO CALL myproc(5, 27); diff --git a/test/parser/mysql/syntax/fixtures/createFunction.sql b/test/parser/mysql/syntax/fixtures/createFunction.sql new file mode 100644 index 0000000..a3fdd92 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createFunction.sql @@ -0,0 +1,13 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-function-loadable.html + +/* CREATE [AGGREGATE] FUNCTION [IF NOT EXISTS] function_name + RETURNS {STRING|INTEGER|REAL|DECIMAL} + SONAME shared_library_name */ + + + +CREATE FUNCTION IF NOT EXISTS my_concat_ws RETURNS STRING SONAME 'udf_my_concat_ws.so'; +CREATE FUNCTION my_concat_ws RETURNS INTEGER SONAME 'udf_my_concat_ws.so'; +CREATE FUNCTION my_concat_ws RETURNS REAL SONAME 'udf_my_concat_ws.so'; +CREATE FUNCTION my_concat_ws RETURNS DECIMAL SONAME 'udf_my_concat_ws.so'; +CREATE FUNCTION IF NOT EXISTS my_concat_ws RETURNS DECIMAL SONAME 'udf_my_concat_ws.so'; diff --git a/test/parser/mysql/syntax/fixtures/createIndex.sql b/test/parser/mysql/syntax/fixtures/createIndex.sql new file mode 100644 index 0000000..bffd650 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createIndex.sql @@ -0,0 +1,43 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-index.html + +/* CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name + [index_type] + ON tbl_name (key_part,...) + [index_option] + [algorithm_option | lock_option] ... + +key_part: {col_name [(length)] | (expr)} [ASC | DESC] + +index_option: { + KEY_BLOCK_SIZE [=] value + | index_type + | WITH PARSER parser_name + | COMMENT 'string' + | {VISIBLE | INVISIBLE} + | ENGINE_ATTRIBUTE [=] 'string' + | SECONDARY_ENGINE_ATTRIBUTE [=] 'string' +} + +index_type: + USING {BTREE | HASH} + +algorithm_option: + ALGORITHM [=] {DEFAULT | INPLACE | COPY} + +lock_option: + LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE} + */ + + +CREATE UNIQUE INDEX index_name ON table_name (name(10)); +CREATE FULLTEXT INDEX index_name ON table_name (name(10)); +CREATE SPATIAL INDEX index_name ON table_name (name(10)); + +CREATE INDEX part_of_name ON customer (name(10)); + +CREATE INDEX idx1 ON t1 ((col1 + col2)); +CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1); + +CREATE INDEX id_index ON lookup (id) USING BTREE; +CREATE INDEX id_index ON t1 (id) COMMENT 'MERGE_THRESHOLD=40'; +CREATE INDEX i1 ON t1 (c1) ENGINE_ATTRIBUTE='{"key":"value"}'; diff --git a/test/parser/mysql/syntax/fixtures/createLogFileGroup.sql b/test/parser/mysql/syntax/fixtures/createLogFileGroup.sql new file mode 100644 index 0000000..164f0a6 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createLogFileGroup.sql @@ -0,0 +1,30 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-logfile-group.html + +/* CREATE LOGFILE GROUP logfile_group + ADD UNDOFILE 'undo_file' + [INITIAL_SIZE [=] initial_size] + [UNDO_BUFFER_SIZE [=] undo_buffer_size] + [REDO_BUFFER_SIZE [=] redo_buffer_size] + [NODEGROUP [=] nodegroup_id] + [WAIT] + [COMMENT [=] 'string'] + ENGINE [=] engine_name */ + + +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' INITIAL_SIZE 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' ENGINE = NDB; + +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' UNDO_BUFFER_SIZE = 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' UNDO_BUFFER_SIZE 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' ENGINE = NDB; + +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' REDO_BUFFER_SIZE = 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' REDO_BUFFER_SIZE 10M ENGINE = NDB; +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' ENGINE = NDB; + +CREATE LOGFILE GROUP my_logfile_group ADD UNDOFILE 'undo_1.log' INITIAL_SIZE = 1G UNDO_BUFFER_SIZE = 16M ENGINE INNODB; + +CREATE LOGFILE GROUP lg1 ADD UNDOFILE 'undo.dat' INITIAL_SIZE = 10M UNDO_BUFFER_SIZE = 10M REDO_BUFFER_SIZE = 10M NODEGROUP = nodegroup_id WAIT COMMENT = 'logfile' ENGINE = NDB; + +CREATE LOGFILE GROUP myg1 ADD UNDOFILE 'myundo-1.dat' ENGINE=NDB; diff --git a/test/parser/mysql/syntax/fixtures/createProcedure.sql b/test/parser/mysql/syntax/fixtures/createProcedure.sql new file mode 100644 index 0000000..283f851 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createProcedure.sql @@ -0,0 +1,23 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-procedure.html + +/* CREATE + [DEFINER = user] + PROCEDURE [IF NOT EXISTS] sp_name ([proc_parameter[,...]]) + [characteristic ...] routine_body + + proc_parameter: + [ IN | OUT | INOUT ] param_name type + + characteristic: { + COMMENT 'string' + | LANGUAGE SQL + | [NOT] DETERMINISTIC + | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } + | SQL SECURITY { DEFINER | INVOKER } + } */ + + +CREATE DEFINER = 'admin'@'localhost' PROCEDURE account_count() SQL SECURITY INVOKER SELECT 'Number of accounts:', COUNT(*) FROM mysql.user; + +CREATE PROCEDURE AddTwoNumbers(IN a INT, IN b INT) SELECT a + b AS Sum; +CREATE PROCEDURE IF NOT EXISTS AddTwoNumbers(IN a INT, IN b INT) SELECT a + b AS Sum; diff --git a/test/parser/mysql/syntax/fixtures/createResourceGroup.sql b/test/parser/mysql/syntax/fixtures/createResourceGroup.sql new file mode 100644 index 0000000..e7bf29f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createResourceGroup.sql @@ -0,0 +1,26 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-resource-group.html + +/* CREATE RESOURCE GROUP group_name + TYPE = {SYSTEM|USER} + [VCPU [=] vcpu_spec [, vcpu_spec] ...] + [THREAD_PRIORITY [=] N] + [ENABLE|DISABLE] + +vcpu_spec: {N | M - N} */ + + +CREATE RESOURCE GROUP group_name TYPE = SYSTEM VCPU = 2, 3 THREAD_PRIORITY = 5 DISABLE; +CREATE RESOURCE GROUP group_name TYPE = SYSTEM VCPU = 2, 3 THREAD_PRIORITY = 5 ENABLE; +CREATE RESOURCE GROUP group_name TYPE = SYSTEM VCPU 2 THREAD_PRIORITY 5 ENABLE; +CREATE RESOURCE GROUP group_name TYPE = SYSTEM VCPU 2 THREAD_PRIORITY 5 ENABLE; +CREATE RESOURCE GROUP group_name TYPE = USER VCPU 2 THREAD_PRIORITY 5 DISABLE; +CREATE RESOURCE GROUP group_name TYPE = USER VCPU 2 THREAD_PRIORITY 5; +CREATE RESOURCE GROUP group_name TYPE = USER VCPU 2 DISABLE; +CREATE RESOURCE GROUP group_name TYPE = USER DISABLE; +CREATE RESOURCE GROUP group_name TYPE = USER ENABLE; +CREATE RESOURCE GROUP group_name TYPE = USER; + +CREATE RESOURCE GROUP rg1 TYPE = USER VCPU = 0-63; +CREATE RESOURCE GROUP rg1 TYPE = USER VCPU = 0-63, 64-65, 66; +CREATE RESOURCE GROUP rg2 TYPE = USER THREAD_PRIORITY = 5; +CREATE RESOURCE GROUP rg3 TYPE = USER DISABLE; diff --git a/test/parser/mysql/syntax/fixtures/createRole.sql b/test/parser/mysql/syntax/fixtures/createRole.sql new file mode 100644 index 0000000..eaca45d --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createRole.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-role.html + +/* CREATE ROLE [IF NOT EXISTS] role [, role ] ... */ + + +CREATE ROLE 'admin', 'developer'; +CREATE ROLE 'webapp'@'localhost'; diff --git a/test/parser/mysql/syntax/fixtures/createServer.sql b/test/parser/mysql/syntax/fixtures/createServer.sql new file mode 100644 index 0000000..09cce5d --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createServer.sql @@ -0,0 +1,17 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-server.html + +/* CREATE SERVER server_name + FOREIGN DATA WRAPPER wrapper_name + OPTIONS (option [, option] ...) + +option: { + HOST character-literal + | DATABASE character-literal + | USER character-literal + | PASSWORD character-literal + | SOCKET character-literal + | OWNER character-literal + | PORT numeric-literal +} */ + +CREATE SERVER server_name FOREIGN DATA WRAPPER mysql OPTIONS (USER 'Remote', HOST '198.51.100.106', DATABASE 'test'); diff --git a/test/parser/mysql/syntax/fixtures/createTable.sql b/test/parser/mysql/syntax/fixtures/createTable.sql new file mode 100644 index 0000000..ce82208 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createTable.sql @@ -0,0 +1,119 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-table.html + + +CREATE TEMPORARY TABLE new_tbl SELECT * FROM orig_tbl LIMIT 0; + +CREATE TABLE new_tbl LIKE orig_tbl; +CREATE TABLE new_tbl SELECT * FROM orig_tbl LIMIT 0; +CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl; + +CREATE TABLE test (a INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (a), KEY(b)) ENGINE=InnoDB SELECT b,c FROM test2; + +CREATE TABLE bar (m INT) SELECT n FROM foo; + +CREATE TABLE artists_and_works SELECT artist.name, COUNT(work.artist_id) AS number_of_works FROM artist LEFT JOIN work ON artist.id = work.artist_id GROUP BY artist.id; + +CREATE TABLE new_tbl AS SELECT * FROM orig_tbl; +CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin); +CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10))); +CREATE TABLE t1 (c1 INT) ENGINE_ATTRIBUTE='{"key":"value"}'; +CREATE TABLE my_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; +CREATE TABLE t1 (c1 INT STORAGE DISK, c2 INT STORAGE MEMORY) TABLESPACE ts_1 ENGINE NDB; +CREATE TABLE t1 (c1 INT STORAGE MEMORY, c2 INT STORAGE MEMORY) TABLESPACE ts_1 ENGINE NDB; + +CREATE TABLE lookup (id INT, INDEX USING BTREE (id)) ENGINE = MEMORY; +CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 VARCHAR(100), c3 VARCHAR(100)) ENGINE=NDB COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE"; + +CREATE TABLE t1 (col1 INT, col2 CHAR(5)) PARTITION BY HASH(col1); +CREATE TABLE t1 (col1 INT, col2 CHAR(5), col3 DATETIME) PARTITION BY HASH (YEAR(col3)); + +CREATE TABLE tk (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY KEY(col3) PARTITIONS 4; +CREATE TABLE tk (col1 INT, col2 CHAR(5), col3 DATE) PARTITION BY LINEAR KEY(col3) PARTITIONS 5; +CREATE TABLE t1 (year_col INT, some_data INT) PARTITION BY RANGE (year_col) ( + PARTITION p0 VALUES LESS THAN (1991), + PARTITION p1 VALUES LESS THAN (1995), + PARTITION p2 VALUES LESS THAN (1999), + PARTITION p3 VALUES LESS THAN (2002), + PARTITION p4 VALUES LESS THAN (2006), + PARTITION p5 VALUES LESS THAN MAXVALUE +); +CREATE TABLE rc (a INT NOT NULL, b INT NOT NULL) PARTITION BY RANGE COLUMNS(a,b) ( + PARTITION p0 VALUES LESS THAN (10,5), + PARTITION p1 VALUES LESS THAN (20,10), + PARTITION p2 VALUES LESS THAN (50,MAXVALUE), + PARTITION p3 VALUES LESS THAN (65,MAXVALUE), + PARTITION p4 VALUES LESS THAN (MAXVALUE,MAXVALUE) +); +CREATE TABLE client_firms (id INT, name VARCHAR(35)) PARTITION BY LIST (id) ( + PARTITION r0 VALUES IN (1, 5, 9, 13, 17, 21), + PARTITION r1 VALUES IN (2, 6, 10, 14, 18, 22), + PARTITION r2 VALUES IN (3, 7, 11, 15, 19, 23), + PARTITION r3 VALUES IN (4, 8, 12, 16, 20, 24) +); +CREATE TABLE lc (a INT NULL, b INT NULL) PARTITION BY LIST COLUMNS(a,b) ( + PARTITION p0 VALUES IN( (0,0), (NULL,NULL) ), + PARTITION p1 VALUES IN( (0,1), (0,2), (0,3), (1,1), (1,2) ), + PARTITION p2 VALUES IN( (1,0), (2,0), (2,1), (3,0), (3,1) ), + PARTITION p3 VALUES IN( (1,3), (2,2), (2,3), (3,2), (3,3) ) +); +CREATE TABLE th (id INT, name VARCHAR(30), adate DATE) PARTITION BY LIST(YEAR(adate)) ( + PARTITION p1999 VALUES IN (1995, 1999, 2003) + DATA DIRECTORY = '/var/appdata/95/data' + INDEX DIRECTORY = '/var/appdata/95/idx', + PARTITION p2000 VALUES IN (1996, 2000, 2004) + DATA DIRECTORY = '/var/appdata/96/data' + INDEX DIRECTORY = '/var/appdata/96/idx', + PARTITION p2001 VALUES IN (1997, 2001, 2005) + DATA DIRECTORY = '/var/appdata/97/data' + INDEX DIRECTORY = '/var/appdata/97/idx', + PARTITION p2002 VALUES IN (1998, 2002, 2006) + DATA DIRECTORY = '/var/appdata/98/data' + INDEX DIRECTORY = '/var/appdata/98/idx' +); +CREATE TABLE t1 (s1 INT, s2 INT AS (EXP(s1)) STORED) PARTITION BY LIST (s2) (PARTITION p1 VALUES IN (1)); + +CREATE TABLE foo (a TINYINT NOT NULL) SELECT b+1 AS a FROM bar; + +CREATE TABLE parent (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; +CREATE TABLE child (id INT, parent_id INT, INDEX par_ind (parent_id), FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE) ENGINE=INNODB; + +CREATE TABLE product (category INT NOT NULL, id INT NOT NULL, price DECIMAL, PRIMARY KEY(category, id)) ENGINE=INNODB; +CREATE TABLE customer (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=INNODB; +CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(no), INDEX (product_category, product_id), INDEX (customer_id), FOREIGN KEY (product_category, product_id) REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT, FOREIGN KEY (customer_id) REFERENCES customer(id)) ENGINE=INNODB; + +CREATE TABLE t1 (CHECK (c1 <> c2), c1 INT CHECK (c1 > 10), c2 INT CONSTRAINT c2_positive CHECK (c2 > 0), c3 INT CHECK (c3 < 100), CONSTRAINT c1_nonzero CHECK (c1 <> 0), CHECK (c1 > c3)); +CREATE TABLE t2 (c1 VARCHAR(10) CHARACTER SET binary, c2 TEXT CHARACTER SET binary, c3 ENUM('a','b','c') CHARACTER SET binary); +CREATE TABLE t3 (c1 VARBINARY(10), c2 BLOB, c3 ENUM('a','b','c') CHARACTER SET binary); + +CREATE TABLE triangle (sidea DOUBLE, sideb DOUBLE, sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))); +CREATE VIEW v1 AS SELECT *, CONCAT(first_name,' ',last_name) AS full_name FROM t1; +CREATE TABLE t1 (first_name VARCHAR(10), last_name VARCHAR(10), full_name VARCHAR(255) AS (CONCAT(first_name,' ',last_name))); + +CREATE TABLE t1 (c JSON, g INT GENERATED ALWAYS AS (c->"$.id"), INDEX i (g)); +CREATE TABLE t2 (a BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, c JSON DEFAULT NULL, g INT GENERATED ALWAYS AS (c->"$.id") STORED, INDEX i (g)) ENGINE=NDB; + +CREATE TABLE t1 (i INT, j DATE INVISIBLE) ENGINE = InnoDB; +CREATE TABLE t1 (col1 INT, col2 INT INVISIBLE); +CREATE TABLE t2 AS SELECT col1, col2 FROM t1; +CREATE TABLE t2 (col2 INT INVISIBLE) AS SELECT col1, col2 FROM t1; + +CREATE TABLE auto_0 (c1 VARCHAR(50), c2 INT); +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b1 BLOB, b2 BLOB COMMENT 'NDB_COLUMN=BLOB_INLINE_SIZE=8000') ENGINE NDB; +CREATE TABLE test.t2 (p INT PRIMARY KEY, c1 BLOB, c2 BLOB COMMENT 'NDB_COLUMN=MAX_BLOB_PART_SIZE') ENGINE NDB; +CREATE TABLE test.t3 (p INT NOT NULL PRIMARY KEY, c1 JSON, c2 JSON COMMENT 'NDB_COLUMN=BLOB_INLINE_SIZE=5000,MAX_BLOB_PART_SIZE') ENGINE NDB; +CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, c2 VARCHAR(100), c3 VARCHAR(100)) ENGINE=NDB + +CREATE TABLE t1 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=REDUNDANT; +CREATE TABLE t2 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=COMPACT; +CREATE TABLE t3 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=DYNAMIC; + +CREATE TABLE t4 (c1 INT PRIMARY KEY) TABLESPACE ts2 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; + +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT c2_positive CHECK (c2 > 0) NOT ENFORCED); +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT c2_positive CHECK (c2 > 0) ENFORCED); +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT c2_positive CHECK (c2 > 0)); +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT CHECK (c2 > 0) NOT ENFORCED); +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT CHECK (c2 > 0) ENFORCED); +CREATE TABLE IF NOT EXISTS tbl_name (CONSTRAINT CHECK (c2 > 0)); +CREATE TABLE IF NOT EXISTS tbl_name (CHECK (c2 > 0) ENFORCED); +CREATE TABLE IF NOT EXISTS tbl_name (CHECK (c2 > 0)); diff --git a/test/parser/mysql/syntax/fixtures/createTableSpace.sql b/test/parser/mysql/syntax/fixtures/createTableSpace.sql new file mode 100644 index 0000000..4ad8f1d --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createTableSpace.sql @@ -0,0 +1,38 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html + +/* CREATE [UNDO] TABLESPACE tablespace_name + + InnoDB and NDB: + [ADD DATAFILE 'file_name'] + [AUTOEXTEND_SIZE [=] value] + + InnoDB only: + [FILE_BLOCK_SIZE = value] + [ENCRYPTION [=] {'Y' | 'N'}] + + NDB only: + USE LOGFILE GROUP logfile_group + [EXTENT_SIZE [=] extent_size] + [INITIAL_SIZE [=] initial_size] + [MAX_SIZE [=] max_size] + [NODEGROUP [=] nodegroup_id] + [WAIT] + [COMMENT [=] 'string'] + + InnoDB and NDB: + [ENGINE [=] engine_name] + + Reserved for future use: + [ENGINE_ATTRIBUTE [=] 'string'] */ + + +CREATE TABLESPACE ts1 ADD DATAFILE 'any_directory/../ts1.ibd' AUTOEXTEND_SIZE = 100M; +CREATE TABLESPACE ts1 ENGINE_ATTRIBUTE='{"key":"value"}'; +CREATE TABLESPACE `ts1` ADD DATAFILE 'ts1.ibd' ENGINE=INNODB; +CREATE TABLESPACE `ts2` ADD DATAFILE 'ts2.ibd' FILE_BLOCK_SIZE = 8192 Engine=InnoDB; +CREATE TABLESPACE `ts3` ENGINE=INNODB; + +CREATE UNDO TABLESPACE 'undo_003' ADD DATAFILE 'undo_003.ibu'; + + + diff --git a/test/parser/mysql/syntax/fixtures/createTrigger.sql b/test/parser/mysql/syntax/fixtures/createTrigger.sql new file mode 100644 index 0000000..139745c --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createTrigger.sql @@ -0,0 +1,22 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-trigger.html + +/* CREATE + [DEFINER = user] + TRIGGER [IF NOT EXISTS] trigger_name + { BEFORE | AFTER } + { INSERT | UPDATE | DELETE } + ON tbl_name FOR EACH ROW + [{ FOLLOWS | PRECEDES } other_trigger_name] + trigger_body +*/ + + +CREATE TRIGGER IF NOT EXISTS my_trigger BEFORE INSERT ON your_table FOR EACH ROW SET NEW.column_name = some_value; +CREATE TRIGGER my_trigger BEFORE INSERT ON your_table FOR EACH ROW SET NEW.column_name = some_value; + +CREATE TRIGGER my_trigger AFTER INSERT ON your_table FOR EACH ROW SET NEW.column_name = some_value; +CREATE TRIGGER my_trigger AFTER UPDATE ON your_table FOR EACH ROW SET NEW.column_name = some_value; +CREATE TRIGGER my_trigger AFTER DELETE ON your_table FOR EACH ROW SET NEW.column_name = some_value; + +CREATE TRIGGER my_trigger AFTER INSERT ON your_table FOR EACH ROW FOLLOWS other_trigger_name SET NEW.column_name = some_value; +CREATE TRIGGER my_trigger AFTER INSERT ON your_table FOR EACH ROW PRECEDES other_trigger_name SET NEW.column_name = some_value; diff --git a/test/parser/mysql/syntax/fixtures/createUser.sql b/test/parser/mysql/syntax/fixtures/createUser.sql new file mode 100644 index 0000000..ca6cb74 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createUser.sql @@ -0,0 +1,113 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-user.html + +/* CREATE USER [IF NOT EXISTS] + user [auth_option] [, user [auth_option]] ... + DEFAULT ROLE role [, role ] ... + [REQUIRE {NONE | tls_option [[AND] tls_option] ...}] + [WITH resource_option [resource_option] ...] + [password_option | lock_option] ... + [COMMENT 'comment_string' | ATTRIBUTE 'json_object'] + +user: + (see Section 6.2.4, “Specifying Account Names”) + +auth_option: { + IDENTIFIED BY 'auth_string' [AND 2fa_auth_option] + | IDENTIFIED BY RANDOM PASSWORD [AND 2fa_auth_option] + | IDENTIFIED WITH auth_plugin [AND 2fa_auth_option] + | IDENTIFIED WITH auth_plugin BY 'auth_string' [AND 2fa_auth_option] + | IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD [AND 2fa_auth_option] + | IDENTIFIED WITH auth_plugin AS 'auth_string' [AND 2fa_auth_option] + | IDENTIFIED WITH auth_plugin [initial_auth_option] +} + +2fa_auth_option: { + IDENTIFIED BY 'auth_string' [AND 3fa_auth_option] + | IDENTIFIED BY RANDOM PASSWORD [AND 3fa_auth_option] + | IDENTIFIED WITH auth_plugin [AND 3fa_auth_option] + | IDENTIFIED WITH auth_plugin BY 'auth_string' [AND 3fa_auth_option] + | IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD [AND 3fa_auth_option] + | IDENTIFIED WITH auth_plugin AS 'auth_string' [AND 3fa_auth_option] +} + +3fa_auth_option: { + IDENTIFIED BY 'auth_string' + | IDENTIFIED BY RANDOM PASSWORD + | IDENTIFIED WITH auth_plugin + | IDENTIFIED WITH auth_plugin BY 'auth_string' + | IDENTIFIED WITH auth_plugin BY RANDOM PASSWORD + | IDENTIFIED WITH auth_plugin AS 'auth_string' +} + +initial_auth_option: { + INITIAL AUTHENTICATION IDENTIFIED BY {RANDOM PASSWORD | 'auth_string'} + | INITIAL AUTHENTICATION IDENTIFIED WITH auth_plugin AS 'auth_string' +} + +tls_option: { + SSL + | X509 + | CIPHER 'cipher' + | ISSUER 'issuer' + | SUBJECT 'subject' +} + +resource_option: { + MAX_QUERIES_PER_HOUR count + | MAX_UPDATES_PER_HOUR count + | MAX_CONNECTIONS_PER_HOUR count + | MAX_USER_CONNECTIONS count +} + +password_option: { + PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY] + | PASSWORD HISTORY {DEFAULT | N} + | PASSWORD REUSE INTERVAL {DEFAULT | N DAY} + | PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL] + | FAILED_LOGIN_ATTEMPTS N + | PASSWORD_LOCK_TIME {N | UNBOUNDED} +} + +lock_option: { + ACCOUNT LOCK + | ACCOUNT UNLOCK +} */ + + +CREATE USER IF NOT EXISTS USER() IDENTIFIED BY 'auth_string' AND IDENTIFIED BY RANDOM PASSWORD AND IDENTIFIED WITH 'auth_plugin' DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED BY 'auth_string' AND IDENTIFIED BY RANDOM PASSWORD AND IDENTIFIED WITH 'auth_plugin' DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD AND IDENTIFIED WITH auth_plugin AS 'auth_string' DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD AND IDENTIFIED WITH auth_plugin AS 'auth_string', USER() IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD AND IDENTIFIED WITH auth_plugin AS 'auth_string', USER() DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH 'auth_plugin' BY RANDOM PASSWORD DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH 'auth_plugin' BY 'auth_string' AND IDENTIFIED WITH auth_plugin AS 'auth_string' DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH auth_plugin AS 'auth_string' DEFAULT ROLE 'developer'; +CREATE USER IF NOT EXISTS 'user' IDENTIFIED WITH auth_plugin AS 'auth_string' DEFAULT ROLE 'developer'; +CREATE USER 'user' DEFAULT ROLE 'developer'; + +CREATE USER USER() IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY RANDOM PASSWORD DEFAULT ROLE 'developer'; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer'; + +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE NONE; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SUBJECT 'subject' AND CIPHER 'cipher'; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer'; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD EXPIRE DEFAULT; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD EXPIRE NEVER; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD EXPIRE INTERVAL 5 DAY; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD HISTORY DEFAULT; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD HISTORY 5; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD REUSE INTERVAL DEFAULT; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD REUSE INTERVAL 5 DAY; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD REQUIRE CURRENT DEFAULT; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD REQUIRE CURRENT OPTIONAL; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 FAILED_LOGIN_ATTEMPTS 5; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD_LOCK_TIME 5; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 PASSWORD_LOCK_TIME UNBOUNDED; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 ACCOUNT LOCK; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 ACCOUNT UNLOCK; + +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 COMMENT 'comment_string'; +CREATE USER 'user' IDENTIFIED WITH 'auth_plugin' INITIAL AUTHENTICATION IDENTIFIED BY 'auth_string' DEFAULT ROLE 'developer' REQUIRE SSL AND X509 AND ISSUER 'issuer' WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 100 MAX_USER_CONNECTIONS 4 ATTRIBUTE 'comment_string'; + +CREATE USER 'user' IDENTIFIED BY PASSWORD 'auth_string'; diff --git a/test/parser/mysql/syntax/fixtures/createView.sql b/test/parser/mysql/syntax/fixtures/createView.sql new file mode 100644 index 0000000..de05d23 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/createView.sql @@ -0,0 +1,18 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/create-view.html + +/* CREATE + [OR REPLACE] + [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] + [DEFINER = user] + [SQL SECURITY { DEFINER | INVOKER }] + VIEW view_name [(column_list)] + AS select_statement + [WITH [CASCADED | LOCAL] CHECK OPTION] */ + + +CREATE VIEW test.v AS SELECT * FROM t; +CREATE VIEW v_today (today) AS SELECT CURRENT_DATE; +CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; +CREATE VIEW v (mycol) AS SELECT 'abc'; + +CREATE VIEW v AS SELECT * FROM t WHERE t.id = f(t.name); diff --git a/test/parser/mysql/syntax/fixtures/delete.sql b/test/parser/mysql/syntax/fixtures/delete.sql new file mode 100644 index 0000000..60f5a2e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/delete.sql @@ -0,0 +1,44 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/delete.html + +/* DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias] + [PARTITION (partition_name [, partition_name] ...)] + [WHERE where_condition] + [ORDER BY ...] + [LIMIT row_count] + +DELETE [LOW_PRIORITY] [QUICK] [IGNORE] + tbl_name[.*] [, tbl_name[.*]] ... + FROM table_references + [WHERE where_condition] + +DELETE [LOW_PRIORITY] [QUICK] [IGNORE] + FROM tbl_name[.*] [, tbl_name[.*]] ... + USING table_references + [WHERE where_condition] */ + + + +DELETE LOW_PRIORITY QUICK IGNORE FROM some_log AS someLog PARTITION (partition_name, partition_name1) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE LOW_PRIORITY IGNORE FROM some_log AS someLog PARTITION (partition_name, partition_name1) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE LOW_PRIORITY QUICK FROM some_log AS someLog PARTITION (partition_name, partition_name1) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE QUICK IGNORE FROM some_log AS someLog PARTITION (partition_name, partition_name1) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE LOW_PRIORITY FROM some_log AS someLog PARTITION (partition_name) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE QUICK FROM some_log AS someLog WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE IGNORE FROM some_log AS someLog PARTITION (partition_name) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; +DELETE FROM some_log AS someLog PARTITION (partition_name) WHERE user = 'cole' ORDER BY timestamp_column LIMIT 1; + +DELETE FROM tbl_name; + +DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id; + +DELETE FROM t1, t2 USING t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id; + +DELETE t1 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL; + +DELETE a1, a2 FROM t1 AS a1 INNER JOIN t2 AS a2 WHERE a1.id=a2.id; +DELETE FROM a1, a2 USING t1 AS a1 INNER JOIN t2 AS a2 WHERE a1.id=a2.id; + +DELETE t1, t2 FROM t1 INNER JOIN t2 WHERE a1.id=a2.id; +DELETE FROM t1, t2 USING t1 INNER JOIN t2 WHERE a1.id=a2.id; + +DELETE FROM some_log WHERE user = 'cole' diff --git a/test/parser/mysql/syntax/fixtures/do.sql b/test/parser/mysql/syntax/fixtures/do.sql new file mode 100644 index 0000000..273b8bc --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/do.sql @@ -0,0 +1,6 @@ +-- https://dev.mysql.com/doc/refman/5.7/en/do.html + +-- DO expr [, expr] ... + + +DO SLEEP(5); diff --git a/test/parser/mysql/syntax/fixtures/dropDatabase.sql b/test/parser/mysql/syntax/fixtures/dropDatabase.sql new file mode 100644 index 0000000..227e28f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropDatabase.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-database.html + +-- DROP {DATABASE | SCHEMA} [IF EXISTS] db_name + +DROP DATABASE IF EXISTS db_name; +DROP DATABASE db_name; +DROP SCHEMA IF EXISTS db_name; +DROP SCHEMA db_name; diff --git a/test/parser/mysql/syntax/fixtures/dropEvent.sql b/test/parser/mysql/syntax/fixtures/dropEvent.sql new file mode 100644 index 0000000..83107c5 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropEvent.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-event.html + +-- DROP EVENT [IF EXISTS] event_name + + +DROP EVENT IF EXISTS event_name; +DROP EVENT event_name; diff --git a/test/parser/mysql/syntax/fixtures/dropFunction.sql b/test/parser/mysql/syntax/fixtures/dropFunction.sql new file mode 100644 index 0000000..e5856d4 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropFunction.sql @@ -0,0 +1,6 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-function-loadable.html + +-- DROP FUNCTION [IF EXISTS] function_name + +DROP FUNCTION IF EXISTS function_name; +DROP FUNCTION function_name; diff --git a/test/parser/mysql/syntax/fixtures/dropIndex.sql b/test/parser/mysql/syntax/fixtures/dropIndex.sql new file mode 100644 index 0000000..46d04be --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropIndex.sql @@ -0,0 +1,27 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-index.html + +/* DROP INDEX index_name ON tbl_name + [algorithm_option | lock_option] ... + +algorithm_option: + ALGORITHM [=] {DEFAULT | INPLACE | COPY} + +lock_option: + LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE} */ + + +DROP INDEX `PRIMARY` ON t ALGORITHM = DEFAULT; +DROP INDEX `PRIMARY` ON t ALGORITHM = INPLACE; +DROP INDEX `PRIMARY` ON t ALGORITHM = COPY; +DROP INDEX `PRIMARY` ON t LOCK = DEFAULT; +DROP INDEX `PRIMARY` ON t LOCK = NONE; +DROP INDEX `PRIMARY` ON t LOCK = SHARED; +DROP INDEX `PRIMARY` ON t LOCK = EXCLUSIVE; + +DROP INDEX `PRIMARY` ON t ALGORITHM DEFAULT; +DROP INDEX `PRIMARY` ON t ALGORITHM INPLACE; +DROP INDEX `PRIMARY` ON t ALGORITHM COPY; +DROP INDEX `PRIMARY` ON t LOCK DEFAULT; +DROP INDEX `PRIMARY` ON t LOCK NONE; +DROP INDEX `PRIMARY` ON t LOCK SHARED; +DROP INDEX `PRIMARY` ON t LOCK EXCLUSIVE; diff --git a/test/parser/mysql/syntax/fixtures/dropLogFileGroup.sql b/test/parser/mysql/syntax/fixtures/dropLogFileGroup.sql new file mode 100644 index 0000000..3184ce0 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropLogFileGroup.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-logfile-group.html + +/* DROP LOGFILE GROUP logfile_group + ENGINE [=] engine_name */ + + +DROP LOGFILE GROUP logfile_group ENGINE = engine_name; +DROP LOGFILE GROUP logfile_group ENGINE engine_name; diff --git a/test/parser/mysql/syntax/fixtures/dropProcedure.sql b/test/parser/mysql/syntax/fixtures/dropProcedure.sql new file mode 100644 index 0000000..2c8643a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropProcedure.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-procedure.html + +-- DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name + +DROP PROCEDURE IF EXISTS sp_name; +DROP PROCEDURE sp_name; +DROP FUNCTION IF EXISTS sp_name; +DROP FUNCTION sp_name; diff --git a/test/parser/mysql/syntax/fixtures/dropResourceGroup.sql b/test/parser/mysql/syntax/fixtures/dropResourceGroup.sql new file mode 100644 index 0000000..29cff3e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropResourceGroup.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-resource-group.html + +/* DROP RESOURCE GROUP group_name [FORCE] */ + + +DROP RESOURCE GROUP group_name FORCE; +DROP RESOURCE GROUP group_name; diff --git a/test/parser/mysql/syntax/fixtures/dropRole.sql b/test/parser/mysql/syntax/fixtures/dropRole.sql new file mode 100644 index 0000000..9575158 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropRole.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-role.html + +/* DROP ROLE [IF EXISTS] role [, role ] ... */ + + +DROP ROLE IF EXISTS 'developer', 'developer1'; +DROP ROLE IF EXISTS 'developer'; +DROP ROLE 'developer'; +DROP ROLE 'webapp'@'localhost'; diff --git a/test/parser/mysql/syntax/fixtures/dropServer.sql b/test/parser/mysql/syntax/fixtures/dropServer.sql new file mode 100644 index 0000000..bfeddeb --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropServer.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/5.7/en/drop-server.html + +-- DROP SERVER [ IF EXISTS ] server_name + + +DROP SERVER IF EXISTS server_name; +DROP SERVER server_name; diff --git a/test/parser/mysql/syntax/fixtures/dropSpatialReferenceSystem.sql b/test/parser/mysql/syntax/fixtures/dropSpatialReferenceSystem.sql new file mode 100644 index 0000000..15b3570 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropSpatialReferenceSystem.sql @@ -0,0 +1,11 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-spatial-reference-system.html + +/* DROP SPATIAL REFERENCE SYSTEM + [IF EXISTS] + srid + +srid: 32-bit unsigned integer */ + + +DROP SPATIAL REFERENCE SYSTEM IF EXISTS 4120; +DROP SPATIAL REFERENCE SYSTEM 4120; diff --git a/test/parser/mysql/syntax/fixtures/dropTable.sql b/test/parser/mysql/syntax/fixtures/dropTable.sql new file mode 100644 index 0000000..67ed13f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropTable.sql @@ -0,0 +1,17 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-table.html + +/* DROP [TEMPORARY] TABLE [IF EXISTS] + tbl_name [, tbl_name] ... + [RESTRICT | CASCADE] */ + + +DROP TEMPORARY TABLE IF EXISTS tbl_name, tbl_name RESTRICT; +DROP TEMPORARY TABLE IF EXISTS tbl_name, tbl_name CASCADE; + +DROP TABLE IF EXISTS tbl_name, tbl_name RESTRICT; +DROP TABLE tbl_name, tbl_name RESTRICT; +DROP TABLE IF EXISTS tbl_name, tbl_name CASCADE; +DROP TABLE tbl_name, tbl_name CASCADE; + +DROP TABLE IF EXISTS tbl_name RESTRICT; +DROP TABLE tbl_name CASCADE; diff --git a/test/parser/mysql/syntax/fixtures/dropTableSpace.sql b/test/parser/mysql/syntax/fixtures/dropTableSpace.sql new file mode 100644 index 0000000..1378100 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropTableSpace.sql @@ -0,0 +1,13 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-tablespace.html + +/* DROP [UNDO] TABLESPACE tablespace_name + [ENGINE [=] engine_name] */ + + +DROP UNDO TABLESPACE tablespace_name ENGINE = engine_name; +DROP TABLESPACE tablespace_name ENGINE = engine_name; +DROP UNDO TABLESPACE tablespace_name; + +DROP UNDO TABLESPACE tablespace_name ENGINE engine_name; +DROP TABLESPACE tablespace_name ENGINE engine_name; +DROP TABLESPACE tablespace_name; diff --git a/test/parser/mysql/syntax/fixtures/dropTrigger.sql b/test/parser/mysql/syntax/fixtures/dropTrigger.sql new file mode 100644 index 0000000..658b57a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropTrigger.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-trigger.html + +-- DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name + + +DROP TRIGGER IF EXISTS schema_name.trigger_name; +DROP TRIGGER IF EXISTS trigger_name; +DROP TRIGGER schema_name.trigger_name; +DROP TRIGGER trigger_name; diff --git a/test/parser/mysql/syntax/fixtures/dropUser.sql b/test/parser/mysql/syntax/fixtures/dropUser.sql new file mode 100644 index 0000000..bf961da --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropUser.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-user.html + +/* DROP USER [IF EXISTS] user [, user] ... */ + + +DROP USER IF EXISTS 'user', 'user1'; +DROP USER IF EXISTS 'user'; +DROP USER 'user'; +DROP USER 'jeffrey'@'localhost'; diff --git a/test/parser/mysql/syntax/fixtures/dropView.sql b/test/parser/mysql/syntax/fixtures/dropView.sql new file mode 100644 index 0000000..98ea4c0 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/dropView.sql @@ -0,0 +1,12 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/drop-view.html + +/* DROP VIEW [IF EXISTS] + view_name [, view_name] ... + [RESTRICT | CASCADE] */ + + +DROP VIEW IF EXISTS view_name, view_name1, view_name2 RESTRICT; +DROP VIEW IF EXISTS view_name, view_name1, view_name2 CASCADE; +DROP VIEW view_name, view_name1, view_name2 RESTRICT; +DROP VIEW view_name, view_name1, view_name2 CASCADE; +DROP VIEW view_name RESTRICT; diff --git a/test/parser/mysql/syntax/fixtures/grant.sql b/test/parser/mysql/syntax/fixtures/grant.sql new file mode 100644 index 0000000..8cf8fe3 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/grant.sql @@ -0,0 +1,100 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/grant.html + +/* GRANT + priv_type [(column_list)] + [, priv_type [(column_list)]] ... + ON [object_type] priv_level + TO user_or_role [, user_or_role] ... + [WITH GRANT OPTION] + [AS user + [WITH ROLE + DEFAULT + | NONE + | ALL + | ALL EXCEPT role [, role ] ... + | role [, role ] ... + ] + ] +} + +GRANT PROXY ON user_or_role + TO user_or_role [, user_or_role] ... + [WITH GRANT OPTION] + +GRANT role [, role] ... + TO user_or_role [, user_or_role] ... + [WITH ADMIN OPTION] + +object_type: { + TABLE + | FUNCTION + | PROCEDURE +} + +priv_level: { + * + | *.* + | db_name.* + | db_name.tbl_name + | tbl_name + | db_name.routine_name +} + +user_or_role: { + user (see Section 6.2.4, “Specifying Account Names”) + | role (see Section 6.2.5, “Specifying Role Names”) +} */ + + +GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; +GRANT 'role1', 'role2' TO 'user1'@'localhost', 'user2'@'localhost'; +GRANT SELECT ON world.* TO 'role3'; +GRANT ALL ON db1.* TO 'jeffrey'@'localhost'; +GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost'; +CREATE USER u; +GRANT SELECT ON `d_`.* TO u; +GRANT INSERT ON `d%`.* TO u; +GRANT ALL ON test.* TO ''@'localhost'; +GRANT SELECT, INSERT ON *.* TO u1; +GRANT SELECT, INSERT, UPDATE ON *.* TO u1; +GRANT ALL ON *.* TO 'some_user'@'some_host'; +GRANT SELECT, INSERT ON *.* TO 'some_user'@'some_host'; +GRANT ALL ON my_db.* TO 'some_user'@'some_host'; +GRANT SELECT, INSERT ON my_db.* TO 'some_user'@'some_host'; +GRANT ALL ON my_db.my_tbl TO 'some_user'@'some_host'; +GRANT SELECT, INSERT ON my_db.my_tbl TO 'some_user'@'some_host'; +GRANT SELECT (col1), INSERT (col1, col2) ON my_db.my_tbl TO 'some_user'@'some_host'; +GRANT CREATE ROUTINE ON my_db.* TO 'some_user'@'some_host'; +GRANT EXECUTE ON PROCEDURE my_db.my_proc TO 'some_user'@'some_host'; +GRANT PROXY ON 'local_user'@'localhost' TO 'external_user'@'some_host'; +GRANT 'role1', 'role2' TO 'user1'@'localhost', 'user2'@'localhost'; +GRANT 'u1' TO 'u1'; +GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO u1; +GRANT INSERT ON schema1.* TO r1; +GRANT SELECT ON schema2.* TO r1; +GRANT r1 TO u1; +GRANT SELECT, INSERT, UPDATE ON *.* TO u2; +GRANT SELECT, INSERT, UPDATE ON *.* TO u3 AS u4; +GRANT SELECT, INSERT, UPDATE ON *.* TO u4 AS u1 WITH ROLE r1; +GRANT USAGE ON *.* TO 'some_user'@'some_host' WITH GRANT OPTION; + +GRANT ALL ON db1.t1 TO 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD 'auth_string', 'jeffrey1'@'localhost' IDENTIFIED BY PASSWORD 'auth_string' REQUIRE NONE; +GRANT ALL ON db1.t1 TO 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD 'auth_string', 'jeffrey1'@'localhost' IDENTIFIED BY PASSWORD 'auth_string' REQUIRE CIPHER 'cipher' AND ISSUER 'issuer' SUBJECT 'subject' X509; +GRANT ALL ON db1.t1 TO 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD 'auth_string', 'jeffrey1'@'localhost' IDENTIFIED BY PASSWORD 'auth_string' REQUIRE CIPHER 'cipher' AND ISSUER 'issuer' SUBJECT 'subject' X509 WITH GRANT OPTION; +GRANT ALL ON db1.t1 TO 'jeffrey'@'localhost' IDENTIFIED BY PASSWORD 'auth_string', 'jeffrey1'@'localhost' IDENTIFIED BY PASSWORD 'auth_string' REQUIRE CIPHER 'cipher' AND ISSUER 'issuer' SUBJECT 'subject' X509 WITH MAX_UPDATES_PER_HOUR 100; + +GRANT PROXY ON 'user' TO 'user1', 'user2' WITH GRANT OPTION; +GRANT PROXY ON 'user' TO 'user1', 'user2'; +GRANT PROXY ON 'user' TO 'user1'; + +GRANT ALL ON db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE DEFAULT; +GRANT ALL ON db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE NONE; +GRANT ALL ON db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE ALL; +GRANT ALL ON db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE ALL EXCEPT 'developer'; +GRANT ALL ON db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE 'developer'; +GRANT ALL ON TABLE db1.t1 TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE 'developer'; +GRANT ALL ON FUNCTION 'fcName' TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE 'developer'; +GRANT ALL ON PROCEDURE 'name' TO 'user' WITH GRANT OPTION AS 'user1' WITH ROLE 'developer'; + +GRANT 'developer' TO 'user', 'developer1' WITH ADMIN OPTION; +GRANT 'developer' TO 'user'; diff --git a/test/parser/mysql/syntax/fixtures/groupReplication.sql b/test/parser/mysql/syntax/fixtures/groupReplication.sql new file mode 100644 index 0000000..b449878 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/groupReplication.sql @@ -0,0 +1,16 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/start-group-replication.html + +/* START GROUP_REPLICATION + [USER='user_name'] + [, PASSWORD='user_pass'] + [, DEFAULT_AUTH='plugin_name'] */ + +START GROUP_REPLICATION USER='user_name', PASSWORD='user_pass', DEFAULT_AUTH='plugin_name'; +START GROUP_REPLICATION USER='user_name', PASSWORD='user_pass'; +START GROUP_REPLICATION; + + + +-- https://dev.mysql.com/doc/refman/8.0/en/stop-group-replication.html + +STOP GROUP_REPLICATION; diff --git a/test/parser/mysql/syntax/fixtures/handler.sql b/test/parser/mysql/syntax/fixtures/handler.sql new file mode 100644 index 0000000..9afd9e0 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/handler.sql @@ -0,0 +1,52 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/handler.html + +/* HANDLER tbl_name OPEN [ [AS] alias] + +HANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...) + [ WHERE where_condition ] [LIMIT ... ] + +HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST } + [ WHERE where_condition ] [LIMIT ... ] + +HANDLER tbl_name READ { FIRST | NEXT } + [ WHERE where_condition ] [LIMIT ... ] + +HANDLER tbl_name CLOSE */ + + + +HANDLER tbl_name OPEN AS tbl_name1; +HANDLER tbl_name OPEN; + +HANDLER tbl_name READ index_name = ('value1', 'value2'); +HANDLER tbl_name READ index_name = ('value1', 'value2') WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name <= ('value1', 'value2') WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name >= ('value1', 'value2') WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name < ('value1', 'value2') WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name > ('value1', 'value2') WHERE name = 'Tony' LIMIT 10; + +HANDLER tbl_name READ index_name = ('value1', 'value2') WHERE name = 'Tony'; +HANDLER tbl_name READ index_name <= ('value1', 'value2') WHERE name = 'Tony'; +HANDLER tbl_name READ index_name >= ('value1', 'value2') WHERE name = 'Tony'; +HANDLER tbl_name READ index_name < ('value1', 'value2') WHERE name = 'Tony'; +HANDLER tbl_name READ index_name > ('value1', 'value2') WHERE name = 'Tony'; + +HANDLER tbl_name READ index_name FIRST WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name NEXT WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name PREV WHERE name = 'Tony' LIMIT 10; +HANDLER tbl_name READ index_name LAST WHERE name = 'Tony' LIMIT 10; + +HANDLER tbl_name READ index_name FIRST WHERE name = 'Tony'; +HANDLER tbl_name READ index_name NEXT WHERE name = 'Tony'; +HANDLER tbl_name READ index_name PREV WHERE name = 'Tony'; +HANDLER tbl_name READ index_name LAST WHERE name = 'Tony'; + +HANDLER tbl_name READ index_name FIRST; +HANDLER tbl_name READ index_name NEXT; +HANDLER tbl_name READ index_name PREV; +HANDLER tbl_name READ index_name LAST; + +HANDLER tbl_name READ FIRST; +HANDLER tbl_name READ NEXT; + +HANDLER tbl_name CLOSE; diff --git a/test/parser/mysql/syntax/fixtures/importTable.sql b/test/parser/mysql/syntax/fixtures/importTable.sql new file mode 100644 index 0000000..a0d95c9 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/importTable.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/import-table.html + +-- IMPORT TABLE FROM sdi_file [, sdi_file] ... + + +IMPORT TABLE FROM '/tmp/mysql-files/employees.sdi', '/tmp/mysql-files/managers1.sdi', '/tmp/mysql-files/managers2.sdi'; +IMPORT TABLE FROM '/tmp/mysql-files/employees.sdi', '/tmp/mysql-files/managers1.sdi'; +IMPORT TABLE FROM '/tmp/mysql-files/*.sdi'; diff --git a/test/parser/mysql/syntax/fixtures/insert.sql b/test/parser/mysql/syntax/fixtures/insert.sql new file mode 100644 index 0000000..6c474cd --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/insert.sql @@ -0,0 +1,88 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/insert.html + +/* INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + { {VALUES | VALUE} (value_list) [, (value_list)] ... } + [AS row_alias[(col_alias [, col_alias] ...)]] + [ON DUPLICATE KEY UPDATE assignment_list] + +INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + SET assignment_list + [AS row_alias[(col_alias [, col_alias] ...)]] + [ON DUPLICATE KEY UPDATE assignment_list] + +INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + { SELECT ... + | TABLE table_name + | VALUES row_constructor_list + } + [ON DUPLICATE KEY UPDATE assignment_list] + + +value: + {expr | DEFAULT} + +value_list: + value [, value] ... + +row_constructor_list: + ROW(value_list)[, ROW(value_list)][, ...] + +assignment: + col_name = + value + | [row_alias.]col_name + | [tbl_name.]col_name + | [row_alias.]col_alias + +assignment_list: + assignment [, assignment] ... */ + + +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (KW_DEFAULT, KW_DEFAULT), (KW_DEFAULT, KW_DEFAULT) AS row_alias(col_alias, col_alias1) ON DUPLICATE KEY UPDATE col_name = 'abc'; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUE (KW_DEFAULT, KW_DEFAULT), (KW_DEFAULT, KW_DEFAULT) AS row_alias(col_alias, col_alias1) ON DUPLICATE KEY UPDATE col_name = 'abc'; + +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (value_list), (value_list1) AS row_alias(col_alias, col_alias1) ON DUPLICATE KEY UPDATE col_name = tbl_name.col_name; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (value_list), (value_list1) AS row_alias(col_alias, col_alias1) ON DUPLICATE KEY UPDATE col_name = 'abc', col_name = tbl_name.col_name; + +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (value_list), (value_list1) AS row_alias(col_alias) ON DUPLICATE KEY UPDATE col_name = 'abc'; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (value_list), (value_list1) AS row_alias ON DUPLICATE KEY UPDATE col_name = 'abc'; + +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) SET col_name = 'abc' AS row_alias(col_alias, col_alias1) ON DUPLICATE KEY UPDATE col_name = 'abc'; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) SET col_name = 'abc' AS row_alias(col_alias) ON DUPLICATE KEY UPDATE col_name = 'abc'; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) SET col_name = 'abc', col_name1 = tbl_name.col_name AS row_alias ON DUPLICATE KEY UPDATE col_name = 'abc'; + +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9) ON DUPLICATE KEY UPDATE col_name = 'abc'; +INSERT LOW_PRIORITY IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) TABLE table_name ON DUPLICATE KEY UPDATE col_name = 'abc'; + +INSERT DELAYED IGNORE INTO tbl_name PARTITION (partition_name, partition_name1) (col_name, col_name1) TABLE table_name ON DUPLICATE KEY UPDATE col_name = 'abc'; + +INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); +INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15); +INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9); +INSERT INTO tbl_name (a,b,c) VALUES(1,2,3,4,5,6,7,8,9); +INSERT INTO tbl_name (a,b,c) VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9); + + +INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; +INSERT INTO ta TABLE tb; + +INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; +INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); +INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=3; +INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) AS new ON DUPLICATE KEY UPDATE c = new.a+new.b; +INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) AS new(m,n,p) ON DUPLICATE KEY UPDATE c = m+n; +INSERT INTO t1 SELECT c, c+d FROM t2 ON DUPLICATE KEY UPDATE b = VALUES(b); +INSERT INTO t1 SELECT * FROM (SELECT c, c+d AS e FROM t2) AS dt ON DUPLICATE KEY UPDATE b = e; +INSERT INTO t1 SET a=1,b=2,c=3 AS new ON DUPLICATE KEY UPDATE c = new.a+new.b; +INSERT INTO t1 SET a=1,b=2,c=3 AS new(m,n,p) ON DUPLICATE KEY UPDATE c = m+n; + +INSERT INTO t1 (a, b) SELECT c, d FROM t2 UNION SELECT e, f FROM t3 ON DUPLICATE KEY UPDATE b = b + c; +INSERT INTO t1 (a, b) SELECT * FROM (SELECT c, d FROM t2 UNION SELECT e, f FROM t3) AS dt ON DUPLICATE KEY UPDATE b = b + c; diff --git a/test/parser/mysql/syntax/fixtures/insertSelect.sql b/test/parser/mysql/syntax/fixtures/insertSelect.sql new file mode 100644 index 0000000..6826cd6 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/insertSelect.sql @@ -0,0 +1,35 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/insert-select.html + +/* INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + { SELECT ... + | TABLE table_name + | VALUES row_constructor_list + } + [ON DUPLICATE KEY UPDATE assignment_list] + + +value: + {expr | DEFAULT} + +value_list: + value [, value] ... + +row_constructor_list: + ROW(value_list)[, ROW(value_list)][, ...] + +assignment: + col_name = + value + | [row_alias.]col_name + | [tbl_name.]col_name + | [row_alias.]col_alias + +assignment_list: + assignment [, assignment] ... */ + + +INSERT LOW_PRIORITY IGNORE INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; +INSERT HIGH_PRIORITY IGNORE INTO tbl_temp2 (fld_id) VALUES ROW(1,-2,3), ROW(5,7,9), ROW(4,6,8); diff --git a/test/parser/mysql/syntax/fixtures/installComponent.sql b/test/parser/mysql/syntax/fixtures/installComponent.sql new file mode 100644 index 0000000..a53ce35 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/installComponent.sql @@ -0,0 +1,16 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/install-component.html + +/* INSTALL COMPONENT component_name [, component_name ... + [SET variable = expr [, variable = expr] ...] + + variable: { + {GLOBAL | @@GLOBAL.} [component_prefix.]system_var_name + | {PERSIST | @@PERSIST.} [component_prefix.]system_var_name +} */ + + +INSTALL COMPONENT 'file://component1'; +INSTALL COMPONENT 'file://component1', 'file://component2'; +INSTALL COMPONENT 'file://component1', 'file://component2' SET GLOBAL component1.var1 = 12 + 3, PERSIST component2.var2 = 'strings'; +INSTALL COMPONENT 'file://component1', 'file://component2' SET @@GLOBAL.component1.var1 = 12 + 3, @@PERSIST.component2.var2 = 'strings'; +INSTALL COMPONENT 'file://component1', 'file://component2' SET PERSIST component1.var1 = 12 + 3, GLOBAL component2.var2 = 'strings'; diff --git a/test/parser/mysql/syntax/fixtures/installPlugin.sql b/test/parser/mysql/syntax/fixtures/installPlugin.sql new file mode 100644 index 0000000..a04075f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/installPlugin.sql @@ -0,0 +1,6 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/install-plugin.html + +/* INSTALL PLUGIN plugin_name SONAME 'shared_library_name' */ + + +INSTALL PLUGIN plugin_name SONAME 'shared_library_name'; diff --git a/test/parser/mysql/syntax/fixtures/interSect.sql b/test/parser/mysql/syntax/fixtures/interSect.sql new file mode 100644 index 0000000..f17af8c --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/interSect.sql @@ -0,0 +1,12 @@ +-- https://dev.mysql.com/doc/refman/5.7/en/intersect.html + +/* query_expression_body INTERSECT [ALL | DISTINCT] query_expression_body + [INTERSECT [ALL | DISTINCT] query_expression_body] + [...] + +query_expression_body: + See Section 13.2.14, “Set Operations with UNION, INTERSECT, and EXCEPT” */ + + +(SELECT * FROM table_name1) INTERSECT (SELECT * FROM table_name2); +SELECT column_list FROM table_a WHERE age = 12 INTERSECT SELECT column1, COUNT(column2) FROM table_name GROUP BY column1; diff --git a/test/parser/mysql/syntax/fixtures/loadData.sql b/test/parser/mysql/syntax/fixtures/loadData.sql new file mode 100644 index 0000000..4fdab10 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/loadData.sql @@ -0,0 +1,40 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/load-data.html + +/* LOAD DATA + [LOW_PRIORITY | CONCURRENT] [LOCAL] + INFILE 'file_name' + [REPLACE | IGNORE] + INTO TABLE tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [CHARACTER SET charset_name] + [{FIELDS | COLUMNS} + [TERMINATED BY 'string'] + [[OPTIONALLY] ENCLOSED BY 'char'] + [ESCAPED BY 'char'] + ] + [LINES + [STARTING BY 'string'] + [TERMINATED BY 'string'] + ] + [IGNORE number {LINES | ROWS}] + [(col_name_or_user_var + [, col_name_or_user_var] ...)] + [SET col_name={expr | DEFAULT} + [, col_name={expr | DEFAULT}] ...] */ + + +LOAD DATA LOW_PRIORITY LOCAL INFILE 'data.txt' REPLACE INTO TABLE db2.my_table PARTITION (partition_name, partition_name1) CHARACTER SET utf8mb4 COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'char' ESCAPED BY 'char' LINES STARTING BY 'xxx' TERMINATED BY ',' IGNORE 1 ROWS (col_name_or_user_var) SET column2 = @var1/100; + +LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table; +LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test FIELDS TERMINATED BY ',' LINES STARTING BY 'xxx'; +LOAD DATA INFILE '/tmp/test.txt' INTO TABLE test IGNORE 1 LINES; +LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY ','; +LOAD DATA INFILE 'data.txt' INTO TABLE table2 FIELDS TERMINATED BY '\t'; +LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; +LOAD DATA INFILE '/tmp/jokes.txt' INTO TABLE jokes FIELDS TERMINATED BY '' LINES TERMINATED BY '\n%%\n' (joke); +LOAD DATA INFILE 'person_data.txt' INTO TABLE person_data; +LOAD DATA INFILE 'person_data.txt' INTO TABLE person_data (col_name_or_user_var, col_name_or_user_var1); +LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @var1) SET column2 = @var1/100; +LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, column2) SET column3 = CURRENT_TIMESTAMP; +LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @dummy, column2, @dummy, column3); +LOAD DATA INFILE '/tmp/bit_test.txt' INTO TABLE bit_test (@var1) SET b = CAST(CONV(MID(@var1, 3, LENGTH(@var1)-3), 2, 10) AS UNSIGNED); diff --git a/test/parser/mysql/syntax/fixtures/loadXml.sql b/test/parser/mysql/syntax/fixtures/loadXml.sql new file mode 100644 index 0000000..bf2aadc --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/loadXml.sql @@ -0,0 +1,29 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/load-xml.html + +/* LOAD XML + [LOW_PRIORITY | CONCURRENT] [LOCAL] + INFILE 'file_name' + [REPLACE | IGNORE] + INTO TABLE [db_name.]tbl_name + [CHARACTER SET charset_name] + [ROWS IDENTIFIED BY ''] + [IGNORE number {LINES | ROWS}] + [(field_name_or_user_var + [, field_name_or_user_var] ...)] + [SET col_name={expr | DEFAULT} + [, col_name={expr | DEFAULT}] ...] */ + +LOAD XML LOW_PRIORITY LOCAL INFILE 'person.xml' REPLACE INTO TABLE db_name.person CHARACTER SET utf8mb4 ROWS IDENTIFIED BY '' IGNORE 1 LINES (field_name_or_user_var, field_name_or_user_var1) SET column2 = @var1/100; +LOAD XML CONCURRENT INFILE 'person.xml' IGNORE INTO TABLE db_name.person CHARACTER SET utf8mb4 ROWS IDENTIFIED BY '' IGNORE 1 ROWS (field_name_or_user_var, field_name_or_user_var1) SET column2 = @var1/100; + +LOAD XML LOCAL INFILE 'person.xml' INTO TABLE db_name.person ROWS IDENTIFIED BY ''; +LOAD XML LOCAL INFILE 'person-dump.xml' INTO TABLE person2; +LOAD XML INFILE '../bin/person-dump.xml' INTO TABLE test.individual; + + + + + + +(SELECT 1 AS result UNION SELECT 2) + ORDER BY result DESC LIMIT 1 OFFSET 1; diff --git a/test/parser/mysql/syntax/fixtures/lockTable.sql b/test/parser/mysql/syntax/fixtures/lockTable.sql new file mode 100644 index 0000000..788cf08 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/lockTable.sql @@ -0,0 +1,25 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/lock-instance-for-backup.html + +/* LOCK TABLES + tbl_name [[AS] alias] lock_type + [, tbl_name [[AS] alias] lock_type] ... + +lock_type: { + READ [LOCAL] + | [LOW_PRIORITY] WRITE +} + +UNLOCK TABLES */ + + +LOCK TABLES t1 READ; +LOCK TABLE t WRITE, t AS t1 READ; +LOCK TABLE t READ; +LOCK TABLE t READ LOCAL; +LOCK TABLE t AS my_alias READ; +LOCK TABLES t1 WRITE, t2 READ; + +LOCK TABLES trans READ, customer LOW_PRIORITY WRITE; +LOCK TABLES trans READ, customer WRITE; + +UNLOCK TABLES; diff --git a/test/parser/mysql/syntax/fixtures/optimizeTable.sql b/test/parser/mysql/syntax/fixtures/optimizeTable.sql new file mode 100644 index 0000000..ce94c62 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/optimizeTable.sql @@ -0,0 +1,13 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html + +/* OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name [, tbl_name] ... */ + + +OPTIMIZE NO_WRITE_TO_BINLOG TABLE t1, t2, t3; +OPTIMIZE LOCAL TABLE t1, t2, t3; +OPTIMIZE TABLE t1, t2, t3; + +OPTIMIZE NO_WRITE_TO_BINLOG TABLE t1; +OPTIMIZE LOCAL TABLE t1; +OPTIMIZE TABLE t1; diff --git a/test/parser/mysql/syntax/fixtures/otherAdministrative.sql b/test/parser/mysql/syntax/fixtures/otherAdministrative.sql new file mode 100644 index 0000000..df90842 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/otherAdministrative.sql @@ -0,0 +1,155 @@ +/* https://dev.mysql.com/doc/refman/8.0/en/binlog.html */ + +BINLOG 'str'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/cache-index.html */ + +/* CACHE INDEX { + tbl_index_list [, tbl_index_list] ... + | tbl_name PARTITION (partition_list) + } + IN key_cache_name + +tbl_index_list: + tbl_name [{INDEX|KEY} (index_name[, index_name] ...)] + +partition_list: { + partition_name[, partition_name] ... + | ALL +} */ + +CACHE INDEX t1, t2, t3 IN hot_cache; +CACHE INDEX t1 IN non_existent_cache; +CACHE INDEX t1 INDEX (index_name, index_name1), t2 KEY (index_name2, index_name3) IN non_existent_cache; + +CACHE INDEX t1 PARTITION (partition_name, partition_name1) IN non_existent_cache; +CACHE INDEX t1 PARTITION (ALL) IN non_existent_cache; + +CACHE INDEX pt PARTITION (p0) IN kc_fast; +CACHE INDEX pt PARTITION (p1, p3) IN kc_slow; +CACHE INDEX pt PARTITION (ALL) IN kc_all; +CACHE INDEX pt IN kc_all; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/flush.html */ + +/* FLUSH [NO_WRITE_TO_BINLOG | LOCAL] { + flush_option [, flush_option] ... + | tables_option +} + +flush_option: { + BINARY LOGS + | DES_KEY_FILE + | ENGINE LOGS + | ERROR LOGS + | GENERAL LOGS + | HOSTS + | LOGS + | PRIVILEGES + | OPTIMIZER_COSTS + | RELAY LOGS [FOR CHANNEL channel] + | SLOW LOGS + | STATUS + | USER_RESOURCES +} + +tables_option: { + TABLES + | TABLES tbl_name [, tbl_name] ... + | TABLES WITH READ LOCK + | TABLES tbl_name [, tbl_name] ... WITH READ LOCK + | TABLES tbl_name [, tbl_name] ... FOR EXPORT +} */ + +FLUSH NO_WRITE_TO_BINLOG BINARY LOGS, ENGINE LOGS, ERROR LOGS, GENERAL LOGS, HOSTS, LOGS, PRIVILEGES, OPTIMIZER_COSTS, RELAY LOGS FOR CHANNEL 'channel', SLOW LOGS, STATUS, USER_RESOURCES; +FLUSH LOCAL BINARY LOGS, ENGINE LOGS, ERROR LOGS, GENERAL LOGS, HOSTS, LOGS, PRIVILEGES, OPTIMIZER_COSTS, RELAY LOGS, SLOW LOGS, STATUS, USER_RESOURCES; +FLUSH LOCAL DES_KEY_FILE, QUERY CACHE; + +FLUSH NO_WRITE_TO_BINLOG TABLES; +FLUSH NO_WRITE_TO_BINLOG TABLES t1, t2, t3; +FLUSH NO_WRITE_TO_BINLOG TABLES WITH READ LOCK; +FLUSH LOCAL TABLES t1, t2, t3 WITH READ LOCK; +FLUSH LOCAL TABLES t1, t2, t3 FOR EXPORT; + +FLUSH BINARY LOGS; +FLUSH ENGINE LOGS; +FLUSH ERROR LOGS; +FLUSH GENERAL LOGS; +FLUSH RELAY LOGS; +FLUSH SLOW LOGS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/kill.html */ + +/* KILL [CONNECTION | QUERY] processlist_id */ + +KILL CONNECTION processlist_id; +KILL QUERY processlist_id; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/load-index.html */ + +/* LOAD INDEX INTO CACHE + tbl_index_list [, tbl_index_list] ... + +tbl_index_list: + tbl_name + [PARTITION (partition_list)] + [{INDEX|KEY} (index_name[, index_name] ...)] + [IGNORE LEAVES] + +partition_list: { + partition_name[, partition_name] ... + | ALL +} */ + +LOAD INDEX INTO CACHE t1 PARTITION (p0) INDEX (index_name, index_name1), t2 IGNORE LEAVES; +LOAD INDEX INTO CACHE t1 INDEX (index_name, index_name1), t2 IGNORE LEAVES; +LOAD INDEX INTO CACHE t1 IGNORE LEAVES; +LOAD INDEX INTO CACHE pt PARTITION (p0); +LOAD INDEX INTO CACHE pt PARTITION (p1, p3); +LOAD INDEX INTO CACHE pt PARTITION (ALL); +LOAD INDEX INTO CACHE pt; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/reset.html */ + +/* RESET reset_option [, reset_option] ... + +reset_option: { + MASTER + | REPLICA + | QUERY CACHE + | SLAVE +} */ + +RESET MASTER, REPLICA, QUERY CACHE, SLAVE; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/reset-persist.html */ + +/* RESET PERSIST [[IF EXISTS] system_var_name] */ + +RESET PERSIST IF EXISTS system_var_name; +RESET PERSIST system_var_name; +RESET PERSIST; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/restart.html */ + +RESTART; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/shutdown.html */ + +SHUTDOWN; diff --git a/test/parser/mysql/syntax/fixtures/parenthesizedQuery.sql b/test/parser/mysql/syntax/fixtures/parenthesizedQuery.sql new file mode 100644 index 0000000..c034ce8 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/parenthesizedQuery.sql @@ -0,0 +1,50 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/parenthesized-query-expressions.html + +/* parenthesized_query_expression: + ( query_expression [order_by_clause] [limit_clause] ) + [order_by_clause] + [limit_clause] + [into_clause] + +query_expression: + query_block [set_op query_block [set_op query_block ...]] + [order_by_clause] + [limit_clause] + [into_clause] + +query_block: + SELECT ... | TABLE | VALUES + +order_by_clause: + ORDER BY as for SELECT + +limit_clause: + LIMIT as for SELECT + +into_clause: + INTO as for SELECT + +set_op: + UNION | INTERSECT | EXCEPT */ + + +(SELECT 1 AS result UNION SELECT 2); +(SELECT 1 AS result UNION SELECT 2) LIMIT 1; +(SELECT 1 AS result UNION SELECT 2) LIMIT 1 OFFSET 1; +(SELECT 1 AS result UNION SELECT 2) ORDER BY result DESC LIMIT 1; +(SELECT 1 AS result UNION SELECT 2) ORDER BY result DESC LIMIT 1 OFFSET 1; +(SELECT 1 AS result UNION SELECT 3 UNION SELECT 2) ORDER BY result LIMIT 1 OFFSET 1 INTO @var; +SELECT @var; + +SELECT a FROM t1 EXCEPT SELECT b FROM t2 INTERSECT SELECT c FROM t3; +SELECT a FROM t1 EXCEPT (SELECT b FROM t2 INTERSECT SELECT c FROM t3); + +(SELECT * FROM t1 ORDER BY a) UNION (SELECT * FROM t2 ORDER BY b) ORDER BY z; + +(SELECT 1 LIMIT 1) UNION (VALUES ROW(2) LIMIT 1); +(VALUES ROW(1), ROW(2) LIMIT 2) EXCEPT (SELECT 2 LIMIT 1); +VALUES ROW(1), ROW(2) INTERSECT VALUES ROW(2), ROW(1) LIMIT 1; + +(SELECT 1 LIMIT 1) UNION (SELECT 2 LIMIT 1) LIMIT 1; +(SELECT 1 LIMIT 1) UNION (SELECT 2) LIMIT 1; +(SELECT 'a' UNION SELECT 'b' LIMIT 2) LIMIT 3; diff --git a/test/parser/mysql/syntax/fixtures/prepared.sql b/test/parser/mysql/syntax/fixtures/prepared.sql new file mode 100644 index 0000000..df65073 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/prepared.sql @@ -0,0 +1,30 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/sql-prepared-statements.html + + +-- https://dev.mysql.com/doc/refman/8.0/en/prepare.html + +/* PREPARE stmt_name FROM preparable_stmt */ +PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; +PREPARE stmt2 FROM @s; + + + + +-- https://dev.mysql.com/doc/refman/8.0/en/execute.html + +/* EXECUTE stmt_name + [USING @var_name [, @var_name] ...] */ + + +EXECUTE stmt1 USING @a, @b; +EXECUTE stmt3; + + + + +-- https://dev.mysql.com/doc/refman/8.0/en/deallocate-prepare.html + +/* {DEALLOCATE | DROP} PREPARE stmt_name */ + +DEALLOCATE PREPARE stmt1; +DROP PREPARE stmt1; diff --git a/test/parser/mysql/syntax/fixtures/renameTable.sql b/test/parser/mysql/syntax/fixtures/renameTable.sql new file mode 100644 index 0000000..fa6514a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/renameTable.sql @@ -0,0 +1,15 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/rename-table.html + +/* RENAME TABLE + tbl_name TO new_tbl_name + [, tbl_name2 TO new_tbl_name2] ... */ + + +RENAME TABLE tbl_name TO new_tbl_name, tbl_name1 TO new_tbl_name1; +RENAME TABLE tbl_name TO new_tbl_name; + +RENAME TABLE old_table TO tmp_table, + new_table TO old_table, + tmp_table TO new_table; + +RENAME TABLE current_db.tbl_name TO other_db.tbl_name; diff --git a/test/parser/mysql/syntax/fixtures/renameUser.sql b/test/parser/mysql/syntax/fixtures/renameUser.sql new file mode 100644 index 0000000..76c2419 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/renameUser.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/rename-user.html + +/* RENAME USER old_user TO new_user + [, old_user TO new_user] ... */ + +RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1', 'jeffrey1'@'localhost' TO 'jeff1'@'127.0.0.1'; +RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1'; diff --git a/test/parser/mysql/syntax/fixtures/repairTable.sql b/test/parser/mysql/syntax/fixtures/repairTable.sql new file mode 100644 index 0000000..ec28379 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/repairTable.sql @@ -0,0 +1,14 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/repair-table.html + +/* REPAIR [NO_WRITE_TO_BINLOG | LOCAL] + TABLE tbl_name [, tbl_name] ... + [QUICK] [EXTENDED] [USE_FRM] */ + + +REPAIR NO_WRITE_TO_BINLOG TABLE t1, t2, t3 QUICK EXTENDED USE_FRM; +REPAIR LOCAL TABLE t1, t2, t3 QUICK EXTENDED USE_FRM; +REPAIR NO_WRITE_TO_BINLOG TABLE t1, t2, t3 QUICK EXTENDED; +REPAIR NO_WRITE_TO_BINLOG TABLE t1 QUICK EXTENDED; +REPAIR LOCAL TABLE t1, t2, t3 QUICK; +REPAIR TABLE t1, t2, t3; +REPAIR TABLE t1; diff --git a/test/parser/mysql/syntax/fixtures/replace.sql b/test/parser/mysql/syntax/fixtures/replace.sql new file mode 100644 index 0000000..0da24dd --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/replace.sql @@ -0,0 +1,66 @@ +-- https://dev.mysql.com/doc/refman/5.7/en/replace.html + +/* REPLACE [LOW_PRIORITY | DELAYED] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + { {VALUES | VALUE} (value_list) [, (value_list)] ... + | + VALUES row_constructor_list + } + +REPLACE [LOW_PRIORITY | DELAYED] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + SET assignment_list + +REPLACE [LOW_PRIORITY | DELAYED] + [INTO] tbl_name + [PARTITION (partition_name [, partition_name] ...)] + [(col_name [, col_name] ...)] + {SELECT ... | TABLE table_name} + +value: + {expr | DEFAULT} + +value_list: + value [, value] ... + +row_constructor_list: + ROW(value_list)[, ROW(value_list)][, ...] + +assignment: + col_name = value + +assignment_list: + assignment [, assignment] ... */ + + +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (1, 'Old', '2014-08-20 18:47:00'), (2, 'Old', '2014-08-20 18:48:00'); +REPLACE LOW_PRIORITY test PARTITION (partition_name, partition_name1) (col_name) VALUE ('Old'); +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9); +REPLACE DELAYED test PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES (1, 'Old', '2014-08-20 18:47:00'), (2, 'Old', '2014-08-20 18:48:00'); +REPLACE DELAYED INTO test PARTITION (partition_name, partition_name1) (col_name) VALUE ('Old'); +REPLACE DELAYED test PARTITION (partition_name, partition_name1) (col_name, col_name1) VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9); +REPLACE LOW_PRIORITY INTO test VALUES (1, 'Old', '2014-08-20 18:47:00'), (2, 'Old', '2014-08-20 18:48:00'); +REPLACE LOW_PRIORITY test VALUE ('Old'); +REPLACE LOW_PRIORITY INTO test VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9); +REPLACE DELAYED test VALUES (1, 'Old', '2014-08-20 18:47:00'), (2, 'Old', '2014-08-20 18:48:00'); +REPLACE DELAYED INTO test VALUE ('Old'); +REPLACE DELAYED test VALUES ROW(1,2,3), ROW(4,5,6), ROW(7,8,9); + +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) SET col_name = 'abc', col_name1 = tbl_name.col_name1; +REPLACE INTO test PARTITION (partition_name, partition_name1) SET col_name = 'abc', col_name1 = tbl_name.col_name1; +REPLACE LOW_PRIORITY test PARTITION (partition_name, partition_name1) SET col_name = tbl_name.col_name; +REPLACE DELAYED INTO test PARTITION (partition_name, partition_name1) SET col_name = 'abc', col_name1 = tbl_name.col_name1; +REPLACE DELAYED test PARTITION (partition_name, partition_name1) SET col_name = tbl_name.col_name; + +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) (col_name, col_name1) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) (col_name, col_name1) SELECT c, c+d AS e FROM t2; +REPLACE LOW_PRIORITY INTO test PARTITION (partition_name, partition_name1) (col_name, col_name1) TABLE table_name; +REPLACE DELAYED test SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; +REPLACE DELAYED test SELECT c, c+d AS e FROM t2; +REPLACE DELAYED test TABLE table_name; +REPLACE test TABLE table_name; + +REPLACE INTO test VALUES (1, 'Old', '2014-08-20 18:47:00'); diff --git a/test/parser/mysql/syntax/fixtures/replication.sql b/test/parser/mysql/syntax/fixtures/replication.sql new file mode 100644 index 0000000..56605f1 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/replication.sql @@ -0,0 +1,16 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/purge-binary-logs.html + +/* PURGE { BINARY | MASTER } LOGS { + TO 'log_name' + | BEFORE datetime_expr +} */ + +PURGE BINARY LOGS TO 'mysql-bin.010'; +PURGE BINARY LOGS BEFORE '2019-04-02 22:46:26'; +PURGE MASTER LOGS TO 'mysql-bin.010'; +PURGE MASTER LOGS BEFORE '2019-04-02 22:46:26'; + + +/* https://dev.mysql.com/doc/refman/5.7/en/reset-master.html */ + +RESET MASTER; diff --git a/test/parser/mysql/syntax/fixtures/resetSlaveOrReplica.sql b/test/parser/mysql/syntax/fixtures/resetSlaveOrReplica.sql new file mode 100644 index 0000000..2836f01 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/resetSlaveOrReplica.sql @@ -0,0 +1,28 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/reset-replica.html + +/* RESET REPLICA [ALL] [channel_option] + +channel_option: + FOR CHANNEL channel */ + + +RESET REPLICA ALL FOR CHANNEL 'channel'; +RESET REPLICA FOR CHANNEL 'channel'; +RESET REPLICA; + + + +-- https://dev.mysql.com/doc/refman/8.0/en/reset-slave.html + +/* RESET {SLAVE | REPLICA} [ALL] [channel_option] + +channel_option: + FOR CHANNEL channel */ + + +RESET SLAVE ALL FOR CHANNEL 'channel'; +RESET REPLICA ALL FOR CHANNEL 'channel'; +RESET SLAVE FOR CHANNEL 'channel'; +RESET REPLICA FOR CHANNEL 'channel'; +RESET SLAVE; +RESET REPLICA; diff --git a/test/parser/mysql/syntax/fixtures/revoke.sql b/test/parser/mysql/syntax/fixtures/revoke.sql new file mode 100644 index 0000000..5a6f13c --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/revoke.sql @@ -0,0 +1,63 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/revoke.html + +/* REVOKE [IF EXISTS] + priv_type [(column_list)] + [, priv_type [(column_list)]] ... + ON [object_type] priv_level + FROM user_or_role [, user_or_role] ... + [IGNORE UNKNOWN USER] + +REVOKE [IF EXISTS] ALL [PRIVILEGES], GRANT OPTION + FROM user_or_role [, user_or_role] ... + [IGNORE UNKNOWN USER] + +REVOKE [IF EXISTS] PROXY ON user_or_role + FROM user_or_role [, user_or_role] ... + [IGNORE UNKNOWN USER] + +REVOKE [IF EXISTS] role [, role ] ... + FROM user_or_role [, user_or_role ] ... + [IGNORE UNKNOWN USER] + +user_or_role: { + user (see Section 6.2.4, “Specifying Account Names”) + | role (see Section 6.2.5, “Specifying Role Names” +} */ + + +REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost'; +REVOKE 'role1', 'role2' FROM 'user1'@'localhost', 'user2'@'localhost'; +REVOKE SELECT ON world.* FROM 'role3'; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_or_role'; +REVOKE SELECT ON test.t1 FROM jerry@localhost; +REVOKE IF EXISTS SELECT ON test.t1 FROM jerry@localhost; +REVOKE SELECT ON test FROM jerry@localhost; +REVOKE IF EXISTS SELECT ON test FROM jerry@localhost; +REVOKE SELECT ON test FROM jerry@localhost IGNORE UNKNOWN USER; +REVOKE IF EXISTS SELECT ON test FROM jerry@localhost IGNORE UNKNOWN USER; + + +REVOKE IF EXISTS SELECT (col1), SELECT (col1) ON TABLE *.* FROM u2, 'developer' IGNORE UNKNOWN USER; +REVOKE SELECT (col1), SELECT (col1) ON TABLE *.* FROM u2, 'developer' IGNORE UNKNOWN USER; +REVOKE SELECT (col1), SELECT (col1) ON TABLE *.* FROM u2, 'developer'; +REVOKE SELECT (col1), SELECT (col1) ON TABLE *.* FROM u2 IGNORE UNKNOWN USER; +REVOKE SELECT (col1), SELECT (col1) ON *.* FROM u2 IGNORE UNKNOWN USER; + +REVOKE IF EXISTS ALL PRIVILEGES, GRANT OPTION FROM user_or_role, 'developer' IGNORE UNKNOWN USER; +REVOKE IF EXISTS ALL PRIVILEGES, GRANT OPTION FROM user_or_role, 'developer'; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_or_role, 'developer'; +REVOKE ALL, GRANT OPTION FROM user_or_role, 'developer'; +REVOKE ALL, GRANT OPTION FROM user_or_role IGNORE UNKNOWN USER; +REVOKE ALL, GRANT OPTION FROM user_or_role; + +REVOKE IF EXISTS PROXY ON user_or_role FROM user_or_role, 'developer' IGNORE UNKNOWN USER; +REVOKE PROXY ON user_or_role FROM user_or_role, 'developer' IGNORE UNKNOWN USER; +REVOKE PROXY ON user_or_role FROM user_or_role, 'developer'; +REVOKE PROXY ON user_or_role FROM user_or_role IGNORE UNKNOWN USER; +REVOKE PROXY ON user_or_role FROM user_or_role; + +REVOKE IF EXISTS 'role', 'role1' FROM user_or_role, 'developer' IGNORE UNKNOWN USER; +REVOKE IF EXISTS 'role', 'role1' FROM user_or_role, 'developer'; +REVOKE 'role' FROM user_or_role, 'developer'; +REVOKE 'role', 'role1' FROM user_or_role; +REVOKE 'role' FROM user_or_role; diff --git a/test/parser/mysql/syntax/fixtures/savePoint.sql b/test/parser/mysql/syntax/fixtures/savePoint.sql new file mode 100644 index 0000000..933d982 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/savePoint.sql @@ -0,0 +1,15 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/savepoint.html + +/* SAVEPOINT identifier +ROLLBACK [WORK] TO [SAVEPOINT] identifier +RELEASE SAVEPOINT identifier */ + + +SAVEPOINT identifier; + +ROLLBACK WORK TO SAVEPOINT identifier; +ROLLBACK TO SAVEPOINT identifier; +ROLLBACK WORK TO identifier; +ROLLBACK TO identifier; + +RELEASE SAVEPOINT identifier; diff --git a/test/parser/mysql/syntax/fixtures/select.sql b/test/parser/mysql/syntax/fixtures/select.sql new file mode 100644 index 0000000..3e00b77 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/select.sql @@ -0,0 +1,72 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/select.html + +/* SELECT + [ALL | DISTINCT | DISTINCTROW ] + [HIGH_PRIORITY] + [STRAIGHT_JOIN] + [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] + [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] + select_expr [, select_expr] ... + [into_option] + [FROM table_references + [PARTITION partition_list]] + [WHERE where_condition] + [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]] + [HAVING where_condition] + [WINDOW window_name AS (window_spec) + [, window_name AS (window_spec)] ...] + [ORDER BY {col_name | expr | position} + [ASC | DESC], ... [WITH ROLLUP]] + [LIMIT {[offset,] row_count | row_count OFFSET offset}] + [into_option] + [FOR {UPDATE | SHARE} + [OF tbl_name [, tbl_name] ...] + [NOWAIT | SKIP LOCKED] + | LOCK IN SHARE MODE] + [into_option] + +into_option: { + INTO OUTFILE 'file_name' + [CHARACTER SET charset_name] + export_options + | INTO DUMPFILE 'file_name' + | INTO var_name [, var_name] ... +} */ + + +SELECT 1 + 1 FROM DUAL; +SELECT AVG(score), t1.* FROM t1; +SELECT CONCAT(last_name,', ',first_name) AS full_name FROM my_table ORDER BY full_name; +SELECT CONCAT(last_name,', ',first_name) full_name FROM my_table ORDER BY full_name; +SELECT column1 column2 FROM my_table; +SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name; +SELECT t1.name, t2.salary FROM employee t1, info t2 WHERE t1.name = t2.name; +SELECT college, region, seed FROM tournament ORDER BY region, seed; +SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s; +SELECT college, region, seed FROM tournament ORDER BY 2, 3; +SELECT a, b, COUNT(c) AS t FROM test_table GROUP BY a,b ORDER BY a,t DESC; +SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2; +SELECT col_name FROM tbl_name HAVING col_name > 0; +SELECT col_name FROM tbl_name WHERE col_name > 0; +SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary) > 10; +SELECT 12 AS a, a FROM t GROUP BY a; +SELECT * FROM tbl LIMIT 5,10; +SELECT * FROM tbl LIMIT 95,18446744073709551615; +SELECT * FROM tbl LIMIT 5; +SELECT * FROM tbl WINDOW window_name AS (window_spec) LIMIT 5; + +SELECT * FROM t1, t2 FOR SHARE OF t1; +SELECT * FROM t1, t2 INTO OUTFILE '/path/to/file_name'; +SELECT ALL HIGH_PRIORITY STRAIGHT_JOIN SQL_SMALL_RESULT SQL_CACHE * FROM tbl PARTITION (partition_name, partition_name1) LOCK IN SHARE MODE; +SELECT DISTINCTROW HIGH_PRIORITY STRAIGHT_JOIN SQL_BIG_RESULT SQL_NO_CACHE * FROM tbl PARTITION (partition_name, partition_name1) FOR UPDATE OF tbl_name SKIP LOCKED; +SELECT DISTINCT HIGH_PRIORITY STRAIGHT_JOIN SQL_BUFFER_RESULT SQL_CALC_FOUND_ROWS * FROM tbl PARTITION (partition_name, partition_name1) FOR UPDATE OF tbl_name SKIP LOCKED; + +SELECT * INTO @my_var FROM t1; +SELECT * FROM t1 INTO @my_var FOR UPDATE; +SELECT 1 FOR UPDATE INTO @my_var; +SELECT * FROM t1 FOR UPDATE INTO @my_var; +SELECT id, data INTO @x, @y FROM test.t1 LIMIT 1; + +SELECT * FROM t1 AS t INTO @x,@y,@z; +SELECT * FROM t1 AS t INTO OUTFILE '/tmp/select-values.txt'; +SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table; diff --git a/test/parser/mysql/syntax/fixtures/selectJoin.sql b/test/parser/mysql/syntax/fixtures/selectJoin.sql new file mode 100644 index 0000000..7bef21e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/selectJoin.sql @@ -0,0 +1,104 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/join.html + +/* table_references: + escaped_table_reference [, escaped_table_reference] ... + +escaped_table_reference: { + table_reference + | { OJ table_reference } +} + +table_reference: { + table_factor + | joined_table +} + +table_factor: { + tbl_name [PARTITION (partition_names)] + [[AS] alias] [index_hint_list] + | [LATERAL] table_subquery [AS] alias [(col_list)] + | ( table_references ) +} + +joined_table: { + table_reference {[INNER | CROSS] JOIN | STRAIGHT_JOIN} table_factor [join_specification] + | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_specification + | table_reference NATURAL [INNER | {LEFT|RIGHT} [OUTER]] JOIN table_factor +} + +join_specification: { + ON search_condition + | USING (join_column_list) +} + +join_column_list: + column_name [, column_name] ... + +index_hint_list: + index_hint [, index_hint] ... + +index_hint: { + USE {INDEX|KEY} + [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list]) + | {IGNORE|FORCE} {INDEX|KEY} + [FOR {JOIN|ORDER BY|GROUP BY}] (index_list) +} + +index_list: + index_name [, index_name] ... */ + + +SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a = t1.a AND t3.b = t1.b AND t4.c = t1.c); +SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ON (t2.a = t1.a AND t3.b = t1.b AND t4.c = t1.c); + +SELECT t1.name, t2.salary FROM employee AS t1 INNER JOIN info AS t2 ON t1.name = t2.name; +SELECT t1.name, t2.salary FROM employee t1 INNER JOIN info t2 ON t1.name = t2.name; + +SELECT left_tbl.* FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id WHERE right_tbl.id IS NULL; +SELECT left_tbl.* FROM { OJ left_tbl LEFT OUTER JOIN right_tbl ON left_tbl.id = right_tbl.id } WHERE right_tbl.id IS NULL; + +SELECT * FROM table1, table2; +SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; +SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; +SELECT * FROM table1 LEFT JOIN table2 USING (id); +SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id LEFT JOIN table3 ON table2.id = table3.id; + +SELECT * FROM t1 NATURAL JOIN t2; +SELECT * FROM t1 JOIN t2 USING (j); +SELECT * FROM t1 NATURAL LEFT JOIN t2; +SELECT * FROM t1 NATURAL RIGHT JOIN t2; +SELECT * FROM t1 LEFT JOIN t2 ON (t1.a = t2.a); +SELECT * FROM t1 RIGHT JOIN t2 ON (t1.a = t2.a); +SELECT * FROM t1 JOIN t2 ON (i1 = i3) JOIN t3; +SELECT * FROM t1 JOIN t2 JOIN t3 ON (i1 = i3); +SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3); +SELECT * FROM (t1, t2) JOIN t3 ON (t1.i1 = t3.i3); +SELECT * FROM t1 JOIN t2 JOIN t3 ON (t1.i1 = t3.i3); + +SELECT * FROM t1 PARTITION (partition_names) AS t USE INDEX FOR JOIN (); +SELECT * FROM t1 PARTITION (partition_names) AS t USE INDEX FOR JOIN (); +SELECT * FROM t1 PARTITION (partition_names) AS t IGNORE INDEX FOR JOIN (index_name); +SELECT * FROM t1 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name); + +SELECT * FROM LATERAL (SELECT 1, 2, 3) AS t (col_list); +SELECT * FROM LATERAL (SELECT 1, 2, 3) AS t; +SELECT * FROM (SELECT 1, 2, 3) AS t; +SELECT * FROM LATERAL (SELECT 1, 2, 3) t; +SELECT * FROM (SELECT 1, 2, 3) t; + +SELECT * FROM t1 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name) INNER JOIN t1 ON search_condition; +SELECT * FROM t1 INNER JOIN t1 ON search_condition; +SELECT * FROM t1 CROSS JOIN t1 USING (join_column_list); +SELECT * FROM t1 JOIN t1 USING (join_column_list); +SELECT * FROM t1 STRAIGHT_JOIN t1 ON search_condition; +SELECT * FROM t1 STRAIGHT_JOIN t1; +SELECT * FROM t1 STRAIGHT_JOIN t1 USING (join_column_list); + +SELECT * FROM t1 LEFT OUTER JOIN t2 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name) ON search_condition; +SELECT * FROM t1 LEFT OUTER JOIN t2 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name); +SELECT * FROM t1 RIGHT JOIN t2 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name) USING (join_column_list); + +SELECT * FROM t1 NATURAL INNER OUTER JOIN t2 PARTITION (partition_names) AS t IGNORE INDEX FOR GROUP BY (index_name); +SELECT * FROM t1 NATURAL LEFT OUTER JOIN t2 PARTITION (partition_names) AS t; +SELECT * FROM t1 NATURAL RIGHT JOIN t2 PARTITION (partition_names) AS t; +SELECT * FROM t1 NATURAL JOIN t2; diff --git a/test/parser/mysql/syntax/fixtures/set.sql b/test/parser/mysql/syntax/fixtures/set.sql new file mode 100644 index 0000000..cf1fab7 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/set.sql @@ -0,0 +1,45 @@ +/* https://dev.mysql.com/doc/refman/8.0/en/set-variable.html */ + +/* SET variable = expr [, variable = expr] ... + +variable: { + user_var_name + | param_name + | local_var_name + | {GLOBAL | @@GLOBAL.} system_var_name + | {PERSIST | @@PERSIST.} system_var_name + | {PERSIST_ONLY | @@PERSIST_ONLY.} system_var_name + | [SESSION | @@SESSION. | @@] system_var_name +} */ + + + +SET @var_name = expr; +SET @name = 43; +SET @total_tax = (SELECT SUM(tax) FROM taxable_transactions); +SET GLOBAL max_connections = 1000; +SET @@GLOBAL.max_connections = 1000; +SET SESSION sql_mode = 'TRADITIONAL'; +SET LOCAL sql_mode = 'TRADITIONAL'; +SET @@SESSION.sql_mode = 'TRADITIONAL'; +SET @@LOCAL.sql_mode = 'TRADITIONAL'; +SET @@sql_mode = 'TRADITIONAL'; +SET sql_mode = 'TRADITIONAL'; +SET PERSIST max_connections = 1000; +SET @@PERSIST.max_connections = 1000; +SET PERSIST_ONLY back_log = 100; +SET @@PERSIST_ONLY.back_log = 100; +SET @@SESSION.max_join_size = DEFAULT; +SET @@SESSION.max_join_size = @@GLOBAL.max_join_size; +SET GLOBAL version = 'abc'; +SET GLOBAL sql_log_bin = ON; +SET SESSION max_connections = 1000; +SET max_connections = 1000; +SET PERSIST port = 3307; +SET PERSIST_ONLY port = 3307; +SET @x = 1, SESSION sql_mode = ''; +SET GLOBAL sort_buffer_size = 1000000, SESSION sort_buffer_size = 1000000; +SET @@GLOBAL.sort_buffer_size = 1000000, @@LOCAL.sort_buffer_size = 1000000; +SET GLOBAL max_connections = 1000, sort_buffer_size = 1000000; +SET @@GLOBAL.sort_buffer_size = 50000, sort_buffer_size = 1000000; +SELECT @@GLOBAL.sql_mode, @@SESSION.sql_mode, @@sql_mode; diff --git a/test/parser/mysql/syntax/fixtures/setCharacterSet.sql b/test/parser/mysql/syntax/fixtures/setCharacterSet.sql new file mode 100644 index 0000000..e18137f --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setCharacterSet.sql @@ -0,0 +1,11 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-character-set.html + +/* SET {CHARACTER SET | CHARSET} + {'charset_name' | DEFAULT} */ + + +SET CHARACTER SET utf8mb4; +SET CHARACTER SET DEFAULT; + +SET CHARSET utf8mb4; +SET CHARSET DEFAULT; diff --git a/test/parser/mysql/syntax/fixtures/setDefaultRole.sql b/test/parser/mysql/syntax/fixtures/setDefaultRole.sql new file mode 100644 index 0000000..f075304 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setDefaultRole.sql @@ -0,0 +1,10 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-default-role.html + +/* SET DEFAULT ROLE + {NONE | ALL | role [, role ] ...} + TO user [, user ] ... */ + + +SET DEFAULT ROLE NONE TO 'user', 'user1'; +SET DEFAULT ROLE ALL TO 'user'; +SET DEFAULT ROLE 'role', 'developer' TO 'user', 'user1' diff --git a/test/parser/mysql/syntax/fixtures/setNames.sql b/test/parser/mysql/syntax/fixtures/setNames.sql new file mode 100644 index 0000000..8bb66dc --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setNames.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-names.html + +/* SET NAMES {'charset_name' + [COLLATE 'collation_name'] | DEFAULT} */ + + +SET NAMES utf8mb4 COLLATE 'collation_name'; +SET NAMES 'utf8mb4' COLLATE 'collation_name'; +SET NAMES DEFAULT; diff --git a/test/parser/mysql/syntax/fixtures/setOperations.sql b/test/parser/mysql/syntax/fixtures/setOperations.sql new file mode 100644 index 0000000..273d8f9 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setOperations.sql @@ -0,0 +1,35 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-operations.html + +/* query_expression: + [with_clause] + query_expression_body + [order_by_clause] [limit_clause] [into_clause] + +query_expression_body: + query_term + | query_expression_body UNION [ALL | DISTINCT] query_term + | query_expression_body EXCEPT [ALL | DISTINCT] query_term + +query_term: + query_primary + | query_term INTERSECT [ALL | DISTINCT] query_primary + +query_primary: + query_block + | '(' query_expression_body [order_by_clause] [limit_clause] [into_clause] ')'*/ + + +(SELECT a FROM t1 WHERE a=10 AND b=1) EXCEPT (SELECT a FROM t2 WHERE a=11 AND b=2 ORDER BY a LIMIT 10); +(SELECT * FROM t1 ORDER BY a LIMIT 10) UNION (SELECT * FROM t2 ORDER BY a LIMIT 10); + +(SELECT a FROM t1 WHERE a=10 AND b=1 ORDER BY a LIMIT 10) UNION (SELECT a FROM t2 WHERE a=11 AND b=2 ORDER BY a LIMIT 10); +(SELECT * FROM t1 ORDER BY x LIMIT 10) INTERSECT (SELECT * FROM t2 ORDER BY a LIMIT 10); + +SELECT * FROM t1 UNION SELECT * FROM t2; + +VALUES ROW(4,-2), ROW(5,9) UNION SELECT * FROM t2; +VALUES ROW(4,-2), ROW(5,9) UNION SELECT * FROM t2; +SELECT * FROM t1 UNION VALUES ROW(4,-2),ROW(5,9); +SELECT * FROM t1 UNION VALUES ROW(4,-2),ROW(5,9); +VALUES ROW(4,-2), ROW(5,9) UNION VALUES ROW(4,-2),ROW(5,9); +VALUES ROW(4,-2), ROW(5,9), ROW(-1,3) UNION VALUES ROW(1,2), ROW(3,4), ROW(-1,3) ORDER BY column_0 DESC LIMIT 3; diff --git a/test/parser/mysql/syntax/fixtures/setPassword.sql b/test/parser/mysql/syntax/fixtures/setPassword.sql new file mode 100644 index 0000000..8e208cc --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setPassword.sql @@ -0,0 +1,39 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-password.html + +/* SET PASSWORD [FOR user] auth_option + [REPLACE 'current_auth_string'] + [RETAIN CURRENT PASSWORD] + +auth_option: { + = 'auth_string' + | TO RANDOM +} */ + + +SET PASSWORD FOR user = 'auth_string' REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +SET PASSWORD FOR user = 'auth_string' REPLACE 'current_auth_string'; +SET PASSWORD FOR user TO RANDOM RETAIN CURRENT PASSWORD; +SET PASSWORD FOR user TO RANDOM; + +SET PASSWORD TO RANDOM REPLACE 'current_auth_string' RETAIN CURRENT PASSWORD; +SET PASSWORD TO RANDOM REPLACE 'current_auth_string'; +SET PASSWORD TO RANDOM RETAIN CURRENT PASSWORD; + +SET PASSWORD = 'auth_string'; +SET PASSWORD TO RANDOM; + +SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; +SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string'; + + + + +/* https://dev.mysql.com/doc/refman/5.7/en/set-password.html */ + +/* SET PASSWORD [FOR user] = password_option */ + + +SET PASSWORD FOR user = 'auth_string'; +SET PASSWORD FOR user = PASSWORD('auth_string'); +SET PASSWORD = 'auth_string'; +SET PASSWORD = PASSWORD('auth_string'); diff --git a/test/parser/mysql/syntax/fixtures/setResourceGroup.sql b/test/parser/mysql/syntax/fixtures/setResourceGroup.sql new file mode 100644 index 0000000..853bf88 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setResourceGroup.sql @@ -0,0 +1,9 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-resource-group.html + +/* SET RESOURCE GROUP group_name + [FOR thread_id [, thread_id] ...] */ + + +SET RESOURCE GROUP rg1; +SET RESOURCE GROUP rg2 FOR 14, 78, 4; +SET RESOURCE GROUP rg2 FOR 14; diff --git a/test/parser/mysql/syntax/fixtures/setRole.sql b/test/parser/mysql/syntax/fixtures/setRole.sql new file mode 100644 index 0000000..3b39d6e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setRole.sql @@ -0,0 +1,16 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-role.html + +/* SET ROLE { + DEFAULT + | NONE + | ALL + | ALL EXCEPT role [, role ] ... + | role [, role ] ... +} */ + + +SET ROLE DEFAULT; +SET ROLE NONE; +SET ROLE ALL; +SET ROLE ALL EXCEPT 'role', 'role1'; +SET ROLE 'role', 'role1'; diff --git a/test/parser/mysql/syntax/fixtures/setTransaction.sql b/test/parser/mysql/syntax/fixtures/setTransaction.sql new file mode 100644 index 0000000..da94ba2 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/setTransaction.sql @@ -0,0 +1,34 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/set-transaction.html + +/* SET [GLOBAL | SESSION] TRANSACTION + transaction_characteristic [, transaction_characteristic] ... + +transaction_characteristic: { + ISOLATION LEVEL level + | access_mode +} + +level: { + REPEATABLE READ + | READ COMMITTED + | READ UNCOMMITTED + | SERIALIZABLE +} + +access_mode: { + READ WRITE + | READ ONLY +} */ + + +START TRANSACTION; + +SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; +SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ, ISOLATION LEVEL REPEATABLE READ; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SET GLOBAL TRANSACTION READ WRITE; +SET SESSION TRANSACTION READ ONLY; + +SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; diff --git a/test/parser/mysql/syntax/fixtures/show.sql b/test/parser/mysql/syntax/fixtures/show.sql new file mode 100644 index 0000000..10b8ee7 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/show.sql @@ -0,0 +1,474 @@ +/* https://dev.mysql.com/doc/refman/8.0/en/show-binary-logs.html */ + +SHOW BINARY LOGS; +SHOW MASTER LOGS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-binlog-events.html */ + +/* SHOW BINLOG EVENTS + [IN 'log_name'] + [FROM pos] + [LIMIT [offset,] row_count] */ + +SHOW BINLOG EVENTS IN 'log_name' FROM 50 LIMIT 100, 500; +SHOW BINLOG EVENTS FROM 50 LIMIT 100, 500; +SHOW BINLOG EVENTS IN 'log_name' LIMIT 100, 500; +SHOW BINLOG EVENTS IN 'log_name' LIMIT 500; +SHOW BINLOG EVENTS FROM 50 LIMIT 100, 500; +SHOW BINLOG EVENTS LIMIT 100, 500; +SHOW BINLOG EVENTS LIMIT 500; +SHOW BINLOG EVENTS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-character-set.html */ + +/* SHOW {CHARACTER SET | CHARSET} + [LIKE 'pattern' | WHERE expr] */ + +SHOW CHARACTER SET WHERE age = 18; +SHOW CHARSET LIKE 'pattern'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-collation.html */ + +/* SHOW COLLATION + [LIKE 'pattern' | WHERE expr] */ + + +SHOW COLLATION LIKE 'pattern'; +SHOW COLLATION WHERE age = 18; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-columns.html */ + +/* SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS} + {FROM | IN} tbl_name + [{FROM | IN} db_name] + [LIKE 'pattern' | WHERE expr] */ + +SHOW EXTENDED COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW EXTENDED FULL COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW EXTENDED COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW FULL COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW FULL COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW COLUMNS FROM tbl_name IN db_name LIKE 'pattern'; +SHOW COLUMNS IN tbl_name FROM db_name LIKE 'pattern'; +SHOW COLUMNS IN tbl_name FROM db_name WHERE age = 18; +SHOW FIELDS IN tbl_name FROM db_name LIKE 'pattern'; +SHOW FIELDS IN tbl_name FROM db_name WHERE age = 18; + +SHOW COLUMNS FROM my_table FROM my_db; +SHOW COLUMNS FROM my_db.my_table; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-database.html */ + +/* SHOW CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name */ + +SHOW CREATE DATABASE IF NOT EXISTS db_name; +SHOW CREATE SCHEMA IF NOT EXISTS db_name; +SHOW CREATE DATABASE db_name; +SHOW CREATE SCHEMA db_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-event.html */ + +SHOW CREATE EVENT event_name; +SHOW CREATE EVENT my_schema.e_daily; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-function.html */ + +SHOW CREATE FUNCTION func_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-procedure.html */ + +SHOW CREATE PROCEDURE proc_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-table.html */ + +SHOW CREATE TABLE tbl_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-trigger.html */ + +SHOW CREATE TRIGGER trigger_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-user.html */ + +/* SHOW CREATE USER user */ + +SHOW CREATE USER user; +SHOW CREATE USER 'u1'@'localhost'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-create-view.html */ + +SHOW CREATE VIEW view_name; +SHOW CREATE VIEW test.v; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-databases.html */ + +/* SHOW {DATABASES | SCHEMAS} + [LIKE 'pattern' | WHERE expr] */ + +SHOW DATABASES LIKE 'pattern'; +SHOW SCHEMAS LIKE 'pattern'; +SHOW DATABASES WHERE age = 18; +SHOW SCHEMAS WHERE age = 18; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-engine.html */ + +/* SHOW ENGINE engine_name {STATUS | MUTEX} */ + +SHOW ENGINE NDB STATUS; +SHOW ENGINE INNODB STATUS; +SHOW ENGINE INNODB MUTEX; +SHOW ENGINE PERFORMANCE_SCHEMA STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-engines.html */ + +/* SHOW [STORAGE] ENGINES */ + +SHOW STORAGE ENGINES; +SHOW ENGINES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-errors.html */ + +/* SHOW ERRORS [LIMIT [offset,] row_count] +SHOW COUNT(*) ERRORS */ + +SHOW ERRORS LIMIT 50, 100; +SHOW ERRORS LIMIT 100; +SHOW ERRORS; +SHOW COUNT(*) ERRORS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-events.html */ + +/* SHOW EVENTS + [{FROM | IN} schema_name] + [LIKE 'pattern' | WHERE expr] */ + +SHOW EVENTS FROM schema_name LIKE 'pattern'; +SHOW EVENTS IN schema_name LIKE 'pattern'; +SHOW EVENTS IN schema_name WHERE age = 18; +SHOW EVENTS WHERE age = 18; +SHOW EVENTS IN schema_name; +SHOW EVENTS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-function-code.html */ + +SHOW FUNCTION CODE func_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-function-status.html */ + +/* SHOW FUNCTION STATUS + [LIKE 'pattern' | WHERE expr] */ + +SHOW FUNCTION STATUS LIKE 'pattern'; +SHOW FUNCTION STATUS WHERE age = 18; +SHOW FUNCTION STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-grants.html */ + +/* SHOW GRANTS + [FOR user_or_role + [USING role [, role] ...]] + +user_or_role: { + user (see Section 6.2.4, “Specifying Account Names”) + | role (see Section 6.2.5, “Specifying Role Names”. +} */ + +SHOW GRANTS FOR 'jeffrey'@'localhost'; +SHOW GRANTS; +SHOW GRANTS FOR CURRENT_USER; +SHOW GRANTS FOR CURRENT_USER(); +SHOW GRANTS FOR 'u1'@'localhost' USING 'r2'; +SHOW GRANTS FOR 'u1'@'localhost' USING 'r1', 'r2'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-index.html */ + +/* SHOW [EXTENDED] {INDEX | INDEXES | KEYS} + {FROM | IN} tbl_name + [{FROM | IN} db_name] + [WHERE expr] */ + +SHOW EXTENDED INDEXES FROM tbl_name FROM db_name WHERE age = 18; +SHOW EXTENDED INDEXES FROM tbl_name IN db_name WHERE age = 18; +SHOW EXTENDED INDEX IN tbl_name IN db_name WHERE age = 18; +SHOW INDEXES FROM tbl_name FROM db_name WHERE age = 18; +SHOW INDEXES FROM tbl_name IN db_name WHERE age = 18; +SHOW INDEX IN tbl_name IN db_name WHERE age = 18; +SHOW INDEX IN tbl_name FROM db_name WHERE age = 18; +SHOW KEYS IN tbl_name WHERE age = 18; +SHOW KEYS IN tbl_name FROM db_name; +SHOW KEYS IN tbl_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-master-status.html */ + +SHOW MASTER STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-open-tables.html */ + +/* SHOW OPEN TABLES + [{FROM | IN} db_name] + [LIKE 'pattern' | WHERE expr] */ + +SHOW OPEN TABLES FROM db_name LIKE 'pattern'; +SHOW OPEN TABLES FROM db_name WHERE age = 18; +SHOW OPEN TABLES IN db_name LIKE 'pattern'; +SHOW OPEN TABLES IN db_name WHERE age = 18; +SHOW OPEN TABLES IN db_name; +SHOW OPEN TABLES WHERE age = 18; +SHOW OPEN TABLES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-plugins.html */ + +SHOW PLUGINS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-privileges.html */ + +SHOW PRIVILEGES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-procedure-code.html */ + +SHOW PROCEDURE CODE proc_name; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-procedure-status.html */ + +/* SHOW PROCEDURE STATUS + [LIKE 'pattern' | WHERE expr] */ + +SHOW PROCEDURE STATUS WHERE age = 18; +SHOW PROCEDURE STATUS LIKE 'pattern'; +SHOW PROCEDURE STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html */ + +/* SHOW [FULL] PROCESSLIST */ + +SHOW FULL PROCESSLIST; +SHOW PROCESSLIST; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-profile.html */ + +/* SHOW PROFILE [type [, type] ... ] + [FOR QUERY n] + [LIMIT row_count [OFFSET offset]] + +type: { + ALL + | BLOCK IO + | CONTEXT SWITCHES + | CPU + | IPC + | MEMORY + | PAGE FAULTS + | SOURCE + | SWAPS +} */ + +SHOW PROFILE; +SHOW PROFILE FOR QUERY 1; +SHOW PROFILE FOR QUERY 1 LIMIT 100 OFFSET 100; +SHOW PROFILE FOR QUERY 1 LIMIT 100; +SHOW PROFILE ALL FOR QUERY 1 LIMIT 100 OFFSET 100; +SHOW PROFILE ALL, BLOCK IO, CONTEXT SWITCHES, CPU, IPC, MEMORY, PAGE FAULTS, SOURCE, SWAPS FOR QUERY 1 LIMIT 100 OFFSET 100; +SHOW PROFILE ALL, BLOCK IO, CONTEXT SWITCHES, CPU FOR QUERY 1 LIMIT 100 OFFSET 100; +SHOW PROFILE IPC, MEMORY, PAGE FAULTS, SOURCE, SWAPS FOR QUERY 1 LIMIT 100; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-profiles.html */ + +SHOW PROFILES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-relaylog-events.html */ + +/* SHOW RELAYLOG EVENTS + [IN 'log_name'] + [FROM pos] + [LIMIT [offset,] row_count] + [channel_option] + +channel_option: + FOR CHANNEL channel */ + + +SHOW RELAYLOG EVENTS IN 'log_name' FROM 50 LIMIT 100, 200 FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS LIMIT 100, 200 FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS IN 'log_name' FROM 50; +SHOW RELAYLOG EVENTS FROM 50 LIMIT 100, 200 FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS LIMIT 100, 200 FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS LIMIT 200 FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS FOR CHANNEL 'channel'; +SHOW RELAYLOG EVENTS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-replicas.html */ + +SHOW REPLICAS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-slave-hosts.html */ + +/* {SHOW SLAVE HOSTS | SHOW REPLICAS} */ + +SHOW SLAVE HOSTS; +SHOW REPLICAS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html */ +/* https://dev.mysql.com/doc/refman/8.0/en/show-slave-status.html */ + +/* SHOW {REPLICA | SLAVE} STATUS [FOR CHANNEL channel] */ + +SHOW REPLICA STATUS FOR CHANNEL 'channel'; +SHOW SLAVE STATUS FOR CHANNEL 'channel'; +SHOW REPLICA STATUS; +SHOW SLAVE STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-status.html */ + +/* SHOW [GLOBAL | SESSION] STATUS + [LIKE 'pattern' | WHERE expr] */ + +SHOW GLOBAL STATUS LIKE 'pattern'; +SHOW GLOBAL STATUS WHERE age = 18; +SHOW SESSION STATUS LIKE 'pattern'; +SHOW SESSION STATUS WHERE age = 18; +SHOW STATUS LIKE 'pattern'; +SHOW STATUS WHERE age = 18; +SHOW GLOBAL STATUS; +SHOW SESSION STATUS; +SHOW STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-table-status.html */ + +/* SHOW TABLE STATUS + [{FROM | IN} db_name] + [LIKE 'pattern' | WHERE expr] */ + +SHOW TABLE STATUS FROM db_name LIKE 'pattern'; +SHOW TABLE STATUS IN db_name WHERE age = 18; +SHOW TABLE STATUS IN db_name; +SHOW TABLE STATUS WHERE age = 18; +SHOW TABLE STATUS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-tables.html */ + +/* SHOW [EXTENDED] [FULL] TABLES + [{FROM | IN} db_name] + [LIKE 'pattern' | WHERE expr] */ + +SHOW EXTENDED FULL TABLES FROM db_name LIKE 'pattern'; +SHOW EXTENDED TABLES FROM db_name LIKE 'pattern'; +SHOW FULL TABLES IN db_name WHERE age = 18; +SHOW TABLES FROM db_name LIKE 'pattern'; +SHOW TABLES IN db_name WHERE age = 18; +SHOW TABLES IN db_name; +SHOW TABLES WHERE age = 18; +SHOW TABLES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-triggers.html */ + +/* SHOW TRIGGERS + [{FROM | IN} db_name] + [LIKE 'pattern' | WHERE expr] */ + + +SHOW TRIGGERS FROM db_name LIKE 'pattern'; +SHOW TRIGGERS IN db_name WHERE age = 18; +SHOW TRIGGERS IN db_name; +SHOW TRIGGERS WHERE age = 18; +SHOW TRIGGERS; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-variables.html */ + +/* SHOW [GLOBAL | SESSION] VARIABLES + [LIKE 'pattern' | WHERE expr] */ + +SHOW GLOBAL VARIABLES LIKE 'pattern'; +SHOW SESSION VARIABLES WHERE age = 18; +SHOW VARIABLES LIKE 'pattern'; +SHOW VARIABLES WHERE age = 18; +SHOW VARIABLES; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/show-warnings.html */ + +/* SHOW WARNINGS [LIMIT [offset,] row_count] +SHOW COUNT(*) WARNINGS */ + + +SHOW WARNINGS LIMIT 100, 200; +SHOW WARNINGS LIMIT 200; +SHOW WARNINGS; +SHOW COUNT(*) WARNINGS; diff --git a/test/parser/mysql/syntax/fixtures/startSlaveOrReplica.sql b/test/parser/mysql/syntax/fixtures/startSlaveOrReplica.sql new file mode 100644 index 0000000..f2875fb --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/startSlaveOrReplica.sql @@ -0,0 +1,70 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/start-replica.html +-- https://dev.mysql.com/doc/refman/8.0/en/start-slave.html + +/* START {SLAVE | REPLICA} [thread_types] [until_option] [connection_options] [channel_option] + +thread_types: + [thread_type [, thread_type] ... ] + +thread_type: + IO_THREAD | SQL_THREAD + +until_option: + UNTIL { {SQL_BEFORE_GTIDS | SQL_AFTER_GTIDS} = gtid_set + | MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos + | SOURCE_LOG_FILE = 'log_name', SOURCE_LOG_POS = log_pos + | RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos + | SQL_AFTER_MTS_GAPS } + +connection_options: + [USER='user_name'] [PASSWORD='user_pass'] [DEFAULT_AUTH='plugin_name'] [PLUGIN_DIR='plugin_dir'] + + +channel_option: + FOR CHANNEL channel + +gtid_set: + uuid_set [, uuid_set] ... + | '' + +uuid_set: + uuid:interval[:interval]... + +uuid: + hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh + +h: + [0-9,A-F] + +interval: + n[-n] + + (n >= 1) */ + + +START SLAVE IO_THREAD UNTIL SQL_BEFORE_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START SLAVE IO_THREAD, SQL_THREAD UNTIL SQL_AFTER_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass' FOR CHANNEL 'channel'; +START SLAVE SQL_THREAD UNTIL SQL_AFTER_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass'; + +START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START SLAVE SQL_THREAD UNTIL SOURCE_LOG_FILE = 'log_name', SOURCE_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START SLAVE IO_THREAD, SQL_THREAD UNTIL RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START SLAVE SQL_THREAD UNTIL SQL_AFTER_MTS_GAPS USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; + +START SLAVE UNTIL SQL_AFTER_MTS_GAPS; +START SLAVE SQL_THREAD; +START SLAVE; + + +START REPLICA IO_THREAD UNTIL SQL_BEFORE_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START REPLICA SQL_THREAD UNTIL SQL_AFTER_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass' FOR CHANNEL 'channel'; +START REPLICA SQL_THREAD UNTIL SQL_AFTER_GTIDS = '839fa172-9f8d-4bf2-9a13-88dbc6e3814c' USER='user_name' PASSWORD='user_pass'; + +START REPLICA SQL_THREAD UNTIL MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START REPLICA SQL_THREAD UNTIL SOURCE_LOG_FILE = 'log_name', SOURCE_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START REPLICA IO_THREAD UNTIL RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = 9000 USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; +START REPLICA SQL_THREAD UNTIL SQL_AFTER_MTS_GAPS USER='user_name' PASSWORD='user_pass' DEFAULT_AUTH='plugin_name' PLUGIN_DIR='plugin_dir' FOR CHANNEL 'channel'; + +START REPLICA UNTIL SQL_AFTER_MTS_GAPS; +START REPLICA SQL_THREAD; +START REPLICA; diff --git a/test/parser/mysql/syntax/fixtures/stopSlaveOrReplica.sql b/test/parser/mysql/syntax/fixtures/stopSlaveOrReplica.sql new file mode 100644 index 0000000..f105217 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/stopSlaveOrReplica.sql @@ -0,0 +1,27 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/stop-replica.html +-- https://dev.mysql.com/doc/refman/8.0/en/stop-slave.html + +/* STOP {SLAVE | REPLICA} [thread_types] [channel_option] + +thread_types: + [thread_type [, thread_type] ... ] + +thread_type: IO_THREAD | SQL_THREAD + +channel_option: + FOR CHANNEL channel */ + + +STOP SLAVE IO_THREAD, SQL_THREAD FOR CHANNEL 'channel'; +STOP SLAVE SQL_THREAD FOR CHANNEL 'channel'; +STOP SLAVE IO_THREAD, SQL_THREAD; +STOP SLAVE SQL_THREAD; +STOP SLAVE FOR CHANNEL 'channel'; +STOP SLAVE; + +STOP REPLICA IO_THREAD, SQL_THREAD FOR CHANNEL 'channel'; +STOP REPLICA SQL_THREAD FOR CHANNEL 'channel'; +STOP REPLICA IO_THREAD, SQL_THREAD; +STOP REPLICA SQL_THREAD; +STOP REPLICA FOR CHANNEL 'channel'; +STOP REPLICA; diff --git a/test/parser/mysql/syntax/fixtures/subQueries.sql b/test/parser/mysql/syntax/fixtures/subQueries.sql new file mode 100644 index 0000000..64ef072 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/subQueries.sql @@ -0,0 +1,190 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/scalar-subqueries.html +SELECT (SELECT s2 FROM t1); +SELECT (SELECT s1 FROM t2) FROM t1; +SELECT (SELECT * FROM t2) FROM t1; +SELECT UPPER((SELECT s1 FROM t1)) FROM t2; + + +-- https://dev.mysql.com/doc/refman/8.0/en/comparisons-using-subqueries.html +SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2); +SELECT * FROM t1 AS t WHERE 2 = (SELECT COUNT(*) FROM t1 WHERE t1.id = t.id); + + +-- https://dev.mysql.com/doc/refman/8.0/en/any-in-some-subqueries.html +SELECT s1 FROM t1 WHERE s1 > ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 = ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 IN (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 <> ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 > ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 = ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 IN (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 <> ANY (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2); + + +-- https://dev.mysql.com/doc/refman/8.0/en/all-subqueries.html +SELECT s1 FROM t1 WHERE s1 > ALL (SELECT s1 FROM t2); +SELECT * FROM t1 WHERE 1 > ALL (SELECT s1 FROM t2); +SELECT * FROM t1 WHERE 1 > (SELECT s1 FROM t2); +SELECT * FROM t1 WHERE 1 > ALL (SELECT MAX(s1) FROM t2); +SELECT s1 FROM t1 WHERE s1 <> ALL (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 NOT IN (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 <> ALL (SELECT s1 FROM t2); +SELECT s1 FROM t1 WHERE s1 NOT IN (SELECT s1 FROM t2); + + +-- https://dev.mysql.com/doc/refman/8.0/en/row-subqueries.html +SELECT * FROM t1 WHERE (col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10); +SELECT * FROM t1 WHERE ROW(col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10); +SELECT * FROM t1 WHERE ROW(1) = (SELECT column1 FROM t2); +SELECT * FROM t1 WHERE (column1,column2) = (1,1); +SELECT * FROM t1 WHERE column1 = 1 AND column2 = 1; +SELECT column1,column2,column3 FROM t1 WHERE (column1,column2,column3) IN (SELECT column1,column2,column3 FROM t2); + + +-- https://dev.mysql.com/doc/refman/8.0/en/exists-and-not-exists-subqueries.html +SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2); +SELECT DISTINCT store_type FROM stores WHERE EXISTS (SELECT * FROM cities_stores WHERE cities_stores.store_type = stores.store_type); +SELECT DISTINCT store_type FROM stores WHERE NOT EXISTS (SELECT * FROM cities_stores WHERE cities_stores.store_type = stores.store_type); +SELECT DISTINCT store_type FROM stores WHERE NOT EXISTS (SELECT * FROM cities WHERE NOT EXISTS (SELECT * FROM cities_stores WHERE cities_stores.city = cities.city AND cities_stores.store_type = stores.store_type)); +SELECT column1 FROM t1 WHERE EXISTS (SELECT s1 FROM t2); + + +-- https://dev.mysql.com/doc/refman/8.0/en/correlated-subqueries.html +SELECT * FROM t1 WHERE column1 = ANY (SELECT column1 FROM t2 WHERE t2.column2 = t1.column2); +SELECT column1 FROM t1 AS x WHERE x.column1 = (SELECT column1 FROM t2 AS x WHERE x.column1 = (SELECT column1 FROM t3 WHERE x.column2 = t3.column1)); +SELECT * FROM t1 WHERE ( SELECT a FROM t2 WHERE t2.a=t1.a ) > 0; +SELECT t1.* FROM t1 LEFT OUTER JOIN (SELECT a, COUNT(*) AS ct FROM t2 GROUP BY a) AS derived ON t1.a = derived.a AND REJECT_IF((ct > 1), "ERROR 1242 (21000): Subquery returns more than 1 row") WHERE derived.a > 0; + + +-- https://dev.mysql.com/doc/refman/8.0/en/derived-tables.html +SELECT c1,c2,c3 FROM (SELECT s1 AS c1, s2 AS c2, s3*2 AS c3 FROM t1) AS t WHERE c1 > 1; +SELECT AVG(SUM(column1)) FROM t1 GROUP BY column1; +SELECT AVG(sum_column1) FROM (SELECT SUM(column1) AS sum_column1 FROM t1 GROUP BY column1) AS t1; +SELECT * FROM (SELECT 1, 2, 3, 4) AS dt; +SELECT * FROM (SELECT 1, 2, 3, 4) AS dt (a, b, c, d); +SELECT * FROM t1 WHERE t1.d > (SELECT AVG(dt.a) FROM (SELECT SUM(t2.a) AS a FROM t2 WHERE t2.b = t1.b GROUP BY t2.c) dt WHERE dt.a > 10); + + +-- https://dev.mysql.com/doc/refman/8.0/en/lateral-derived-tables.html +SELECT + salesperson.name, + -- find maximum sale size for this salesperson + (SELECT MAX(amount) AS amount + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id) + AS amount, + -- find customer for this maximum size + (SELECT customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + AND all_sales.amount = + -- find maximum size, again + (SELECT MAX(amount) AS amount + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id)) + AS customer_name +FROM + salesperson; + +SELECT + salesperson.name, + max_sale.amount, + max_sale_customer.customer_name +FROM + salesperson, + -- calculate maximum size, cache it in transient derived table max_sale + (SELECT MAX(amount) AS amount + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id) + AS max_sale, + -- find customer, reusing cached maximum size + (SELECT customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + AND all_sales.amount = + -- the cached maximum size + max_sale.amount) + AS max_sale_customer; + +SELECT + salesperson.name, + max_sale.amount, + max_sale_customer.customer_name +FROM + salesperson, + -- calculate maximum size, cache it in transient derived table max_sale + LATERAL + (SELECT MAX(amount) AS amount + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id) + AS max_sale, + -- find customer, reusing cached maximum size + LATERAL + (SELECT customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + AND all_sales.amount = + -- the cached maximum size + max_sale.amount) + AS max_sale_customer; + +SELECT + salesperson.name, + -- find maximum size and customer at same time + (SELECT amount, customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + ORDER BY amount DESC LIMIT 1) +FROM + salesperson; + +SELECT + salesperson.name, + max_sale.amount, + max_sale.customer_name +FROM + salesperson, + -- find maximum size and customer at same time + (SELECT amount, customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + ORDER BY amount DESC LIMIT 1) + AS max_sale; + +SELECT + salesperson.name, + max_sale.amount, + max_sale.customer_name +FROM + salesperson, + -- find maximum size and customer at same time + LATERAL + (SELECT amount, customer_name + FROM all_sales + WHERE all_sales.salesperson_id = salesperson.id + ORDER BY amount DESC LIMIT 1) + AS max_sale; + + +-- https://dev.mysql.com/doc/refman/8.0/en/subquery-errors.html +SELECT * FROM t1 WHERE s1 IN (SELECT s2 FROM t2 ORDER BY s1 LIMIT 1); +SELECT (SELECT column1, column2 FROM t2) FROM t1; +SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); +SELECT * FROM t1 WHERE column1 = ANY (SELECT column1 FROM t2); +UPDATE t1 SET column2 = (SELECT MAX(column1) FROM t1); + + +-- https://dev.mysql.com/doc/refman/8.0/en/optimizing-subqueries.html +SELECT * FROM t1 WHERE s1 IN (SELECT s1 FROM t1 UNION ALL SELECT s1 FROM t2); +SELECT * FROM t1 WHERE s1 IN (SELECT s1 FROM t1) OR s1 IN (SELECT s1 FROM t2); +SELECT (SELECT column1 + 5 FROM t1) FROM t2; +SELECT (SELECT column1 FROM t1) + 5 FROM t2; + + +-- https://dev.mysql.com/doc/refman/8.0/en/subquery-restrictions.html +SELECT * FROM t1 WHERE s1 IN (SELECT s2 FROM t2 ORDER BY s1 LIMIT 1); + + + diff --git a/test/parser/mysql/syntax/fixtures/table.sql b/test/parser/mysql/syntax/fixtures/table.sql new file mode 100644 index 0000000..c3a629a --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/table.sql @@ -0,0 +1,13 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/table.html + +/* TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]] */ + +SELECT * FROM t; +TABLE t; +TABLE t ORDER BY b; +TABLE t LIMIT 3; +TABLE t ORDER BY b LIMIT 3; +TABLE t ORDER BY b LIMIT 3 OFFSET 2; + +SELECT * FROM t1 WHERE a IN (SELECT x FROM t2); +SELECT * FROM t1 WHERE a IN (SELECT * FROM t2); diff --git a/test/parser/mysql/syntax/fixtures/truncateTable.sql b/test/parser/mysql/syntax/fixtures/truncateTable.sql new file mode 100644 index 0000000..5364f02 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/truncateTable.sql @@ -0,0 +1,7 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/truncate-table.html + +-- TRUNCATE [TABLE] tbl_name + + +TRUNCATE TABLE tbl_name; +TRUNCATE tbl_name; diff --git a/test/parser/mysql/syntax/fixtures/uninstallComponent.sql b/test/parser/mysql/syntax/fixtures/uninstallComponent.sql new file mode 100644 index 0000000..25ac07e --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/uninstallComponent.sql @@ -0,0 +1,8 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/uninstall-component.html + +/* UNINSTALL COMPONENT component_name [, component_name ] ... */ + + +UNINSTALL COMPONENT 'file://component1'; +UNINSTALL COMPONENT 'file://component1', 'file://component2'; +UNINSTALL COMPONENT 'file://component1', 'file://component2', 'file://component3'; diff --git a/test/parser/mysql/syntax/fixtures/uninstallPlugin.sql b/test/parser/mysql/syntax/fixtures/uninstallPlugin.sql new file mode 100644 index 0000000..4043658 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/uninstallPlugin.sql @@ -0,0 +1,6 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/uninstall-plugin.html + +/* UNINSTALL PLUGIN plugin_name */ + + +UNINSTALL PLUGIN 'plugin_name'; diff --git a/test/parser/mysql/syntax/fixtures/union.sql b/test/parser/mysql/syntax/fixtures/union.sql new file mode 100644 index 0000000..8f1e0ad --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/union.sql @@ -0,0 +1,23 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/union.html + +/* query_expression_body UNION [ALL | DISTINCT] query_block + [UNION [ALL | DISTINCT] query_expression_body] + [...] + +query_expression_body setOperations.sql */ + + +SELECT 1, 2 UNION SELECT 'a', 'b'; +(SELECT 1 UNION SELECT 1) UNION SELECT 1; +SELECT 1 FOR UPDATE UNION SELECT 1 FOR UPDATE; +(SELECT 1 FOR UPDATE) UNION (SELECT 1 FOR UPDATE); + +SELECT 1, 2 UNION ALL SELECT 'a', 'b'; +SELECT 1, 2 UNION DISTINCT SELECT 'a', 'b'; + +(SELECT 1 UNION ALL SELECT 1) UNION ALL SELECT 1; +(SELECT 1 UNION DISTINCT SELECT 1) UNION DISTINCT SELECT 1; +(SELECT 1 UNION ALL SELECT 1) UNION DISTINCT SELECT 1; +(SELECT 1 UNION DISTINCT SELECT 1) UNION ALL SELECT 1; +(SELECT 1 UNION ALL SELECT 1) UNION SELECT 1; +(SELECT 1 UNION DISTINCT SELECT 1) UNION SELECT 1; diff --git a/test/parser/mysql/syntax/fixtures/update.sql b/test/parser/mysql/syntax/fixtures/update.sql new file mode 100644 index 0000000..c2348e4 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/update.sql @@ -0,0 +1,47 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/update.html + +/* UPDATE [LOW_PRIORITY] [IGNORE] table_reference + SET assignment_list + [WHERE where_condition] + [ORDER BY ...] + [LIMIT row_count] + +value: + {expr | DEFAULT} + +assignment: + col_name = value + +assignment_list: + assignment [, assignment] ... */ + + +/* UPDATE [LOW_PRIORITY] [IGNORE] table_references + SET assignment_list + [WHERE where_condition] */ + + + +UPDATE LOW_PRIORITY IGNORE t1 SET col1 = col1 + 1 WHERE age = 12 ORDER BY id DESC LIMIT 10; +UPDATE LOW_PRIORITY t1 SET col1 = col1 + 1 WHERE age = 12 ORDER BY id DESC LIMIT 10; +UPDATE IGNORE t1 SET col1 = col1 + 1 WHERE age = 12 ORDER BY id DESC LIMIT 10; +UPDATE IGNORE t1 SET col1 = col1 + 1 WHERE age = 12 ORDER BY id DESC; +UPDATE IGNORE t1 SET col1 = col1 + 1 ORDER BY id DESC LIMIT 10; +UPDATE LOW_PRIORITY t1 SET col1 = col1 + 1 WHERE age = 12 LIMIT 10; +UPDATE t1 SET col1 = col1 + 1 LIMIT 10; +UPDATE t1 SET col1 = col1 + 1; + +UPDATE t1 SET col1 = col1 + 1; +UPDATE t1 SET col1 = col1 + 1, col2 = col1; +UPDATE t SET id = id + 1; +UPDATE t SET id = id + 1 ORDER BY id DESC; +UPDATE items,month SET items.price=month.price WHERE items.id=month.id; +UPDATE items SET retail = retail * 0.9 WHERE id IN (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity > 100); +UPDATE items, (SELECT id FROM items WHERE id IN (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity < 100)) AS discounted SET items.retail = items.retail * 0.9 WHERE items.id = discounted.id; +UPDATE /*+ NO_MERGE(discounted) */ items, (SELECT id FROM items WHERE retail / wholesale >= 1.3 AND quantity < 100) AS discounted SET items.retail = items.retail * 0.9 WHERE items.id = discounted.id; +UPDATE items, (SELECT id, retail / wholesale AS markup, quantity FROM items) AS discounted SET items.retail = items.retail * 0.9 WHERE discounted.markup >= 1.3 AND discounted.quantity < 100 AND items.id = discounted.id; + +UPDATE LOW_PRIORITY IGNORE t1 SET col1 = col1 + 1 WHERE age = 12; +UPDATE LOW_PRIORITY t1 SET col1 = col1 + 1 WHERE age = 12; +UPDATE IGNORE t1 SET col1 = col1 + 1 WHERE age = 12; +UPDATE t1 SET col1 = col1 + 1 WHERE age = 12; diff --git a/test/parser/mysql/syntax/fixtures/utility.sql b/test/parser/mysql/syntax/fixtures/utility.sql new file mode 100644 index 0000000..5e49bed --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/utility.sql @@ -0,0 +1,60 @@ +/* https://dev.mysql.com/doc/refman/8.0/en/explain.html */ + +/* {EXPLAIN | DESCRIBE | DESC} + tbl_name [col_name | wild] + +{EXPLAIN | DESCRIBE | DESC} + [explain_type] + {explainable_stmt | FOR CONNECTION connection_id} + +{EXPLAIN | DESCRIBE | DESC} ANALYZE [FORMAT = TREE] select_statement + +explain_type: { + EXTENDED + | PARTITIONS + | FORMAT = format_name +} + +format_name: { + TRADITIONAL + | JSON + | TREE +} + +explainable_stmt: { + SELECT statement + | TABLE statement + | DELETE statement + | INSERT statement + | REPLACE statement + | UPDATE statement +} */ + + +EXPLAIN t1 c1; +EXPLAIN t1 '%size%'; +DESC t1 '%size%'; +DESCRIBE t1; +DESC t1; + +EXPLAIN SELECT * FROM t1; +DESCRIBE FOR CONNECTION 'connection_id'; +DESCRIBE EXTENDED SELECT * FROM t1; +DESC EXTENDED FOR CONNECTION 'connection_id'; +DESCRIBE PARTITIONS SELECT * FROM t1; +DESC PARTITIONS FOR CONNECTION 'connection_id'; +DESC FORMAT = TRADITIONAL FOR CONNECTION 'connection_id'; +DESC FORMAT = JSON FOR CONNECTION 'connection_id'; +DESC FORMAT = TREE FOR CONNECTION 'connection_id'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/help.html */ + +HELP 'search_string'; + + + +/* https://dev.mysql.com/doc/refman/8.0/en/use.html */ + +USE db_name; diff --git a/test/parser/mysql/syntax/fixtures/values.sql b/test/parser/mysql/syntax/fixtures/values.sql new file mode 100644 index 0000000..7d754bc --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/values.sql @@ -0,0 +1,21 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/values.html + +/* VALUES row_constructor_list [ORDER BY column_designator] [LIMIT number] + +row_constructor_list: + ROW(value_list)[, ROW(value_list)][, ...] + +value_list: + value[, value][, ...] + +column_designator: + column_index */ + +VALUES ROW(1,-2,3), ROW(5,7,9), ROW(4,6,8); +VALUES ROW(1,-2,3), ROW(5,7,9), ROW(4,6,8) ORDER BY column_1; +VALUES ROW("q", 42, '2019-12-18'), ROW(23, "abc", 98.6), ROW(27.0002, "Mary Smith", '{"a": 10, "b": 25}'); +VALUES ROW(1,2), ROW(3,4), ROW(5,6), ROW(10,15), ROW(20,25); +VALUES ROW(1,2) UNION VALUES ROW(10,15); +VALUES ROW(1,2), ROW(3,4), ROW(5,6) UNION VALUES ROW(10,15),ROW(20,25); +VALUES ROW(1,2), ROW(3,4), ROW(5,6) INTERSECT VALUES ROW(10,15), ROW(20,25), ROW(3,4); +VALUES ROW(1,2), ROW(3,4), ROW(5,6) EXCEPT VALUES ROW(10,15), ROW(20,25), ROW(3,4); diff --git a/test/parser/mysql/syntax/fixtures/with.sql b/test/parser/mysql/syntax/fixtures/with.sql new file mode 100644 index 0000000..5ac0940 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/with.sql @@ -0,0 +1,179 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-similar-constructs + + +WITH cte1 AS (SELECT a, b FROM table1), cte2 AS (SELECT c, d FROM table2) SELECT b, d FROM cte1 JOIN cte2 WHERE cte1.a = cte2.c; +WITH cte (col1, col2) AS (SELECT 1, 2 UNION ALL SELECT 3, 4) SELECT col1, col2 FROM cte; +WITH cte AS (SELECT 1 AS col1, 2 AS col2 UNION ALL SELECT 3, 4) SELECT col1, col2 FROM cte; + +WITH RECURSIVE cte (n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 5) SELECT * FROM cte; +WITH RECURSIVE cte AS (SELECT 1 AS n, 'abc' AS str UNION ALL SELECT n + 1, CONCAT(str, str) FROM cte WHERE n < 3) SELECT * FROM cte; +WITH RECURSIVE cte AS (SELECT 1 AS n, CAST('abc' AS CHAR(20)) AS str UNION ALL SELECT n + 1, CONCAT(str, str) FROM cte WHERE n < 3) SELECT * FROM cte; + +WITH cte1 AS (SELECT 1) SELECT * FROM (SELECT * FROM cte2 JOIN cte1) AS dt; + +WITH RECURSIVE cte AS (SELECT 1 AS n, 1 AS p, -1 AS q UNION ALL SELECT n + 1, q * 2, p * 2 FROM cte WHERE n < 5) SELECT * FROM cte; +WITH RECURSIVE cte (n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte) SELECT * FROM cte; +WITH RECURSIVE cte (n) AS(SELECT 1 UNION ALL SELECT n + 1 FROM cte) SELECT /*+ SET_VAR(cte_max_recursion_depth = 1M) */ * FROM cte; +WITH RECURSIVE cte (n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte) SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM cte; +WITH RECURSIVE cte (n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte LIMIT 10000) SELECT * FROM cte; +WITH RECURSIVE cte (n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM cte LIMIT 10000) SELECT /*+ MAX_EXECUTION_TIME(1000) */ * FROM cte; +WITH RECURSIVE fibonacci (n, fib_n, next_fib_n) AS (SELECT 1, 0, 1 UNION ALL SELECT n + 1, next_fib_n, fib_n + next_fib_n FROM fibonacci WHERE n < 10) SELECT * FROM fibonacci; +WITH RECURSIVE dates (date) AS (SELECT MIN(date) FROM sales UNION ALL SELECT date + INTERVAL 1 DAY FROM dates WHERE date + INTERVAL 1 DAY <= (SELECT MAX(date) FROM sales)) SELECT * FROM dates; +WITH RECURSIVE dates (date) AS (SELECT MIN(date) FROM sales UNION ALL SELECT date + INTERVAL 1 DAY FROM dates WHERE date + INTERVAL 1 DAY <= (SELECT MAX(date) FROM sales)) SELECT dates.date, COALESCE(SUM(price), 0) AS sum_price FROM dates LEFT JOIN sales ON dates.date = sales.date GROUP BY dates.date ORDER BY dates.date; +WITH RECURSIVE employee_paths (id, name, path) AS (SELECT id, name, CAST(id AS CHAR(200)) FROM employees WHERE manager_id IS NULL UNION ALL SELECT e.id, e.name, CONCAT(ep.path, ',', e.id) FROM employee_paths AS ep JOIN employees AS e ON ep.id = e.manager_id) SELECT * FROM employee_paths ORDER BY path; +WITH cte AS (SELECT 1) SELECT * FROM cte; + + +WITH cte1(txt) AS (SELECT "This "), + cte2(txt) AS (SELECT CONCAT(cte1.txt,"is a ") FROM cte1), + cte3(txt) AS (SELECT "nice query" UNION + SELECT "query that rocks" UNION + SELECT "query"), + cte4(txt) AS (SELECT concat(cte2.txt, cte3.txt) FROM cte2, cte3) +SELECT MAX(txt), MIN(txt) FROM cte4; + +WITH RECURSIVE my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10) SELECT * FROM my_cte; +WITH RECURSIVE my_cte(n) AS (SELECT 1 UNION ALL SELECT 1+n FROM my_cte WHERE n<6) DELETE FROM numbers WHERE numbers.n > (SELECT AVG(n) FROM my_cte); +WITH RECURSIVE my_cte AS (SELECT 1 AS n UNION ALL SELECT 1+n FROM my_cte WHERE n<10) SELECT * FROM my_cte; +WITH RECURSIVE my_cte AS (SELECT 1 as f, 1 as next_f UNION ALL SELECT next_f, f+next_f FROM my_cte WHERE f < 500) SELECT * FROM my_cte; + +WITH RECURSIVE +digits AS +( + SELECT '0' AS d UNION ALL SELECT '1' +), +strings AS +( + SELECT '' AS s + UNION ALL + SELECT CONCAT(strings.s, digits.d) + FROM strings, digits + WHERE LENGTH(strings.s) < 4 +) +SELECT s FROM strings WHERE LENGTH(s)=4; + +WITH RECURSIVE +digits AS +( + SELECT '0' AS d UNION ALL SELECT '1' +), +strings AS +( + SELECT CAST('' AS CHAR(4)) AS s + UNION ALL + SELECT CONCAT(strings.s, digits.d) + FROM strings, digits + WHERE LENGTH(strings.s) < 4 +) +SELECT * FROM strings WHERE LENGTH(s)=4; + +WITH RECURSIVE cte AS +( + SELECT category_id, name FROM category WHERE parent IS NULL + UNION ALL + SELECT c.category_id, c.name FROM category c JOIN cte + ON cte.category_id=c.parent +) +SELECT name FROM cte; + +WITH RECURSIVE cte AS +( + SELECT category_id, name, 0 AS depth FROM category WHERE parent IS NULL + UNION ALL + SELECT c.category_id, c.name, cte.depth+1 FROM category c JOIN cte ON + cte.category_id=c.parent +) +SELECT * FROM cte ORDER BY depth; + +WITH RECURSIVE cte AS +( + SELECT category_id, name, CAST(category_id AS CHAR(200)) AS path + FROM category WHERE parent IS NULL + UNION ALL + SELECT c.category_id, c.name, CONCAT(cte.path, ",", c.category_id) + FROM category c JOIN cte ON cte.category_id=c.parent +) +SELECT * FROM cte ORDER BY path; + +WITH RECURSIVE cte AS +( + SELECT name, parent FROM category WHERE name='FLASH' + UNION ALL + SELECT c.name, c.parent FROM category c JOIN cte + ON c.category_id=cte.parent +) +SELECT * FROM cte; + +WITH RECURSIVE cte AS +( + SELECT name, parent, 0 as depth FROM category WHERE name='FLASH' + UNION ALL + SELECT c.name, c.parent, cte.depth-1 FROM category c JOIN cte + ON c.category_id=cte.parent +) +SELECT * FROM cte ORDER BY depth; + +WITH RECURSIVE cte AS +( + SELECT category_id, CAST(name AS CHAR(200)) AS name, + CAST(category_id AS CHAR(200)) AS path, + 0 as depth + FROM category WHERE parent IS NULL + UNION ALL + SELECT c.category_id, + CONCAT(REPEAT(' ', cte.depth+1), c.name), + CONCAT(cte.path, ",", c.category_id), + cte.depth+1 + FROM category c JOIN cte ON + cte.category_id=c.parent +) +SELECT * FROM cte ORDER BY path; + +WITH RECURSIVE cte AS +( + SELECT category_id, name, + CAST(category_id AS CHAR(200)) AS path, + 0 as depth + FROM category WHERE name='PORTABLE ELECTRONICS' + UNION ALL + SELECT c.category_id, + c.name, + CONCAT(cte.path, ",", c.category_id), + cte.depth+1 + FROM category c JOIN cte + ON cte.category_id=c.parent +) +SELECT * FROM cte ORDER BY path; + +WITH RECURSIVE cte AS +( + SELECT category_id, name, 0 as depth + FROM category WHERE name='PORTABLE ELECTRONICS' + UNION ALL + SELECT c.category_id, c.name, cte.depth+1 + FROM category c JOIN cte + ON cte.category_id=c.parent + WHERE cte.depth=0 +) +SELECT * FROM cte; + +WITH RECURSIVE cte AS +( + SELECT c.category_id, c.name AS cat_name, c.parent, p.name AS prod_name + FROM category c JOIN product p ON c.category_id=p.category_id + UNION ALL + SELECT c.category_id, c.name, c.parent, cte.prod_name + FROM cte JOIN category c ON c.category_id=cte.parent +) +SELECT cat_name, COUNT(*) AS prod_in_cat FROM cte +GROUP BY cat_name; + +WITH RECURSIVE descendants AS (SELECT person FROM t1 WHERE person='Thurimbert' UNION ALL SELECT t.person FROM descendants d, t1 t WHERE t.parent=d.person) SELECT * FROM descendants; +WITH RECURSIVE descendants AS (SELECT person, 1 as level FROM t1 WHERE person='Thurimbert' UNION ALL SELECT t.person, d.level+1 FROM descendants d, t1 t WHERE t.parent=d.person) SELECT * FROM descendants ORDER BY level; +WITH RECURSIVE descendants AS (SELECT person, CAST(person AS CHAR(500)) AS path FROM t1 WHERE person='Thurimbert' UNION ALL SELECT t.person, CONCAT(d.path, ',', t.person) FROM descendants d, t1 t WHERE t.parent=d.person) SELECT * FROM descendants ORDER BY path; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet FROM rockets WHERE origin='Earth' UNION ALL SELECT r.destination FROM rockets r, all_destinations d WHERE r.origin=d.planet) SELECT * FROM all_destinations; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet FROM rockets WHERE origin='Earth' UNION ALL SELECT r.destination FROM rockets r, all_destinations d WHERE r.origin=d.planet) SELECT * FROM all_destinations; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet FROM rockets WHERE origin='Earth' UNION DISTINCT SELECT r.destination FROM rockets r, all_destinations d WHERE r.origin=d.planet) SELECT * FROM all_destinations; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet, trip_time AS total_time FROM rockets WHERE origin='Earth' UNION DISTINCT SELECT r.destination, d.total_time+r.trip_time FROM rockets r, all_destinations d WHERE r.origin=d.planet) SELECT * FROM all_destinations; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet, trip_time AS total_time, CAST(destination AS CHAR(500)) AS path FROM rockets WHERE origin='Earth' UNION ALL SELECT r.destination, d.total_time+r.trip_time, CONCAT(d.path, ',', r.destination) FROM rockets r, all_destinations d WHERE r.origin=d.planet AND FIND_IN_SET(r.destination, d.path)=0) SELECT * FROM all_destinations; +WITH RECURSIVE all_destinations AS (SELECT destination AS planet, trip_time AS total_time, CAST(destination AS CHAR(500)) AS path, 0 AS is_cycle FROM rockets WHERE origin='Earth' UNION ALL SELECT r.destination, d.total_time+r.trip_time, CONCAT(d.path, ',', r.destination), FIND_IN_SET(r.destination, d.path)!=0 FROM rockets r, all_destinations d WHERE r.origin=d.planet AND is_cycle=0) SELECT * FROM all_destinations; diff --git a/test/parser/mysql/syntax/fixtures/xaTransactions.sql b/test/parser/mysql/syntax/fixtures/xaTransactions.sql new file mode 100644 index 0000000..3452af1 --- /dev/null +++ b/test/parser/mysql/syntax/fixtures/xaTransactions.sql @@ -0,0 +1,35 @@ +-- https://dev.mysql.com/doc/refman/8.0/en/xa-statements.html + +/* XA {START|BEGIN} xid [JOIN|RESUME] + +XA END xid [SUSPEND [FOR MIGRATE]] + +XA PREPARE xid + +XA COMMIT xid [ONE PHASE] + +XA ROLLBACK xid + +XA RECOVER [CONVERT xid] */ + + +XA START 'transaction_id' JOIN; +XA START 'transaction_id' RESUME; +XA START 'transaction_id'; +XA BEGIN 'transaction_id' RESUME; +XA BEGIN 'transaction_id' JOIN; +XA BEGIN 'transaction_id'; + +XA END 'transaction_id' SUSPEND FOR MIGRATE; +XA END 'transaction_id' SUSPEND; +XA END 'transaction_id'; + +XA PREPARE 'transaction_id'; + +XA COMMIT 'transaction_id' ONE PHASE; +XA COMMIT 'transaction_id'; + +XA ROLLBACK 'transaction_id'; + +XA RECOVER CONVERT 'transaction_id'; +XA RECOVER; diff --git a/test/parser/mysql/syntax/other.test.ts b/test/parser/mysql/syntax/other.test.ts new file mode 100644 index 0000000..ba17a82 --- /dev/null +++ b/test/parser/mysql/syntax/other.test.ts @@ -0,0 +1,36 @@ +import MySQL from '../../../../src/parser/mysql'; +import { readSQL } from '../../../helper'; + +const parser = new MySQL(); + +const features = { + commit: readSQL(__dirname, 'commit.sql'), + savePoint: readSQL(__dirname, 'savePoint.sql'), + lockTable: readSQL(__dirname, 'lockTable.sql'), + setTransaction: readSQL(__dirname, 'setTransaction.sql'), + xaTransactions: readSQL(__dirname, 'xaTransactions.sql'), + replication: readSQL(__dirname, 'replication.sql'), + prepared: readSQL(__dirname, 'prepared.sql'), + changeMasterTo: readSQL(__dirname, 'changeMasterTo.sql'), + changeReplicationFilter: readSQL(__dirname, 'changeReplicationFilter.sql'), + changeReplicationSource: readSQL(__dirname, 'changeReplicationSource.sql'), + resetSlaveOrReplica: readSQL(__dirname, 'resetSlaveOrReplica.sql'), + startSlaveOrReplica: readSQL(__dirname, 'startSlaveOrReplica.sql'), + stopSlaveOrReplica: readSQL(__dirname, 'stopSlaveOrReplica.sql'), + groupReplication: readSQL(__dirname, 'groupReplication.sql'), + utility: readSQL(__dirname, 'utility.sql'), +}; + +describe('MySQL Transactional and Locking, Replication, Prepared Compound and Utility Syntax Tests', () => { + Object.keys(features).forEach((key) => { + features[key].forEach((sql) => { + it(sql, () => { + const result = parser.validate(sql); + if (result.length) { + console.log(result, `\n请检查 sql: ${sql}`); + } + expect(result.length).toBe(0); + }); + }); + }); +}); diff --git a/test/parser/generic/visitor.test.ts b/test/parser/mysql/visitor.test.ts similarity index 74% rename from test/parser/generic/visitor.test.ts rename to test/parser/mysql/visitor.test.ts index 938305e..ac3ebb7 100644 --- a/test/parser/generic/visitor.test.ts +++ b/test/parser/mysql/visitor.test.ts @@ -1,11 +1,11 @@ -import GenericSQL from '../../../src/parser/generic'; -import { SqlParserVisitor } from '../../../src/lib/generic/SqlParserVisitor'; +import MySQL from '../../../src/parser/mysql'; +import { MySqlParserVisitor } from '../../../src/lib/mysql/MySqlParserVisitor'; import { AbstractParseTreeVisitor } from 'antlr4ts/tree'; -describe('Generic SQL Visitor Tests', () => { +describe('MySQL Visitor Tests', () => { const expectTableName = 'user1'; const sql = `select id,name,sex from ${expectTableName};`; - const parser = new GenericSQL(); + const parser = new MySQL(); const parseTree = parser.parse(sql, (error) => { console.log('Parse error:', error); @@ -13,7 +13,7 @@ describe('Generic SQL Visitor Tests', () => { test('Visitor visitTableName', () => { let result = ''; - class MyVisitor extends AbstractParseTreeVisitor implements SqlParserVisitor { + class MyVisitor extends AbstractParseTreeVisitor implements MySqlParserVisitor { protected defaultResult() { return result; } diff --git a/test/parser/pgsql/visitor.test.ts b/test/parser/pgsql/visitor.test.ts index 8488f6c..923e35b 100644 --- a/test/parser/pgsql/visitor.test.ts +++ b/test/parser/pgsql/visitor.test.ts @@ -2,7 +2,7 @@ import { AbstractParseTreeVisitor } from 'antlr4ts/tree/AbstractParseTreeVisitor import { PostgreSQLParserVisitor } from '../../../src/lib/pgsql/PostgreSQLParserVisitor'; import PostgresSQL from '../../../src/parser/pgsql'; -describe('Generic SQL Visitor Tests', () => { +describe('MySQL Visitor Tests', () => { const expectTableName = 'user1'; const sql = `select id,name,sex from ${expectTableName};`; const parser = new PostgresSQL();